From 6f3a5fa16bd313c3afad0ea284dc6142952711d3 Mon Sep 17 00:00:00 2001 From: Thodds Date: Tue, 16 Sep 2025 23:22:20 +0200 Subject: [PATCH] Sonic_Edition_4_2 The first upload to the repo --- .gitignore | 30 + .gitignore.rej | 40 + .vs/snc/v16/.suo | Bin 0 -> 31232 bytes Makefile.split | 4 +- Makefile.split.rej | 19 + actors/bowser_flame/model.inc.c | 8 +- actors/bowser_flame/model.inc.c.rej | 16 + actors/burn_smoke/model.inc.c | 4 + actors/burn_smoke/model.inc.c.rej | 13 + actors/butterfly/butterfly_wing.rgba16.png | Bin 0 -> 2912 bytes actors/chuckya/model.inc.c | 4 +- actors/chuckya/model.inc.c.rej | 19 + actors/common1.c | 13 +- actors/common1.c.rej | 24 + actors/common1.h | 10 + actors/common1.h.rej | 16 + actors/common1_geo.c | 4 + actors/common1_geo.c.rej | 10 + actors/door/metal_door.rgba16.png | Bin 0 -> 5465 bytes actors/door/metal_door_overlay.rgba16.png | Bin 0 -> 2283 bytes actors/emerald/emerald_blue.rgba16.png | Bin 0 -> 2165 bytes actors/emerald/emerald_cyan.rgba16.png | Bin 0 -> 2059 bytes actors/emerald/emerald_gray.rgba16.png | Bin 0 -> 1694 bytes actors/emerald/emerald_green.rgba16.png | Bin 0 -> 2239 bytes actors/emerald/emerald_purple.rgba16.png | Bin 0 -> 2139 bytes actors/emerald/emerald_red.rgba16.png | Bin 0 -> 1869 bytes actors/emerald/emerald_surface.rgba16.png | Bin 0 -> 1366 bytes actors/emerald/emerald_yellow.rgba16.png | Bin 0 -> 2152 bytes actors/emerald/geo.inc.c | 70 + actors/emerald/geo_header.h | 38 + actors/emerald/model.inc.c | 333 + actors/emerald_circle/emerald_blue.rgba16.png | Bin 0 -> 2165 bytes actors/emerald_circle/emerald_cyan.rgba16.png | Bin 0 -> 2059 bytes actors/emerald_circle/emerald_gray.rgba16.png | Bin 0 -> 1694 bytes .../emerald_circle/emerald_green.rgba16.png | Bin 0 -> 2239 bytes .../emerald_circle/emerald_purple.rgba16.png | Bin 0 -> 2139 bytes actors/emerald_circle/emerald_red.rgba16.png | Bin 0 -> 1869 bytes .../emerald_circle/emerald_yellow.rgba16.png | Bin 0 -> 2152 bytes actors/emerald_circle/geo.inc.c | 16 + actors/emerald_circle/geo_header.h | 38 + actors/emerald_circle/model.inc.c | 807 + .../metal_cap_box_front.rgba16.png | Bin 0 -> 747 bytes .../metal_cap_box_side.rgba16.png | Bin 0 -> 307 bytes .../wing_cap_box_front.rgba16.png | Bin 0 -> 710 bytes .../wing_cap_box_side.rgba16.png | Bin 0 -> 294 bytes actors/group0.c | 13 + actors/group0.c.rej | 19 + actors/group0.h | 819 + actors/group0.h.rej | 832 + actors/group0_geo.c | 7 + actors/group0_geo.c.rej | 16 + actors/group3.h | 3 + actors/group3.h.rej | 9 + actors/hoot/hoot_wing.rgba16.png | Bin 0 -> 1174 bytes actors/hoot/hoot_wing_tip.rgba16.png | Bin 0 -> 1947 bytes actors/impact_smoke/model.inc.c | 8 +- actors/impact_smoke/model.inc.c.rej | 16 + actors/king_bobomb/model.inc.c | 4 +- actors/king_bobomb/model.inc.c.rej | 19 + actors/klepto/geo.inc.c | 9 +- actors/klepto/geo.inc.c.rej | 17 + actors/klepto/klepto_wing.rgba16.png | Bin 0 -> 1852 bytes actors/klepto/klepto_wing_flap.rgba16.png | Bin 0 -> 1324 bytes actors/koopa/model.inc.c.rej | 24 + actors/mario/geo.inc.c | 2598 +- actors/mario/geo.inc.c.rej | 2649 + actors/mario/geo_header.h | 236 + actors/mario/mario_eyes_center.rgba16.png | Bin 0 -> 1245 bytes actors/mario/mario_eyes_closed.rgba16.png | Bin 0 -> 476 bytes .../mario_eyes_closed_unused_0.rgba16.png | Bin 0 -> 476 bytes .../mario_eyes_closed_unused_1.rgba16.png | Bin 0 -> 476 bytes actors/mario/mario_eyes_dead.rgba16.png | Bin 0 -> 631 bytes .../mario/mario_eyes_down_unused.rgba16.png | Bin 0 -> 1030 bytes .../mario/mario_eyes_half_closed.rgba16.png | Bin 0 -> 1016 bytes .../mario/mario_eyes_left_unused.rgba16.png | Bin 0 -> 1191 bytes .../mario/mario_eyes_right_unused.rgba16.png | Bin 0 -> 1242 bytes actors/mario/mario_eyes_up_unused.rgba16.png | Bin 0 -> 1128 bytes actors/mario/mario_logo.rgba16.png | Bin 0 -> 515 bytes actors/mario/mario_metal.rgba16.png | Bin 0 -> 4790 bytes .../mario_metal_wing_tip_unused.rgba16.png | Bin 0 -> 2860 bytes .../mario/mario_metal_wing_unused.rgba16.png | Bin 0 -> 3399 bytes actors/mario/mario_mustache.rgba16.png | Bin 0 -> 239 bytes actors/mario/mario_overalls_button.rgba16.png | Bin 0 -> 897 bytes actors/mario/mario_sideburn.rgba16.png | Bin 0 -> 692 bytes actors/mario/mario_wing.rgba16.png | Bin 0 -> 1673 bytes actors/mario/mario_wing_tip.rgba16.png | Bin 0 -> 1132 bytes actors/mario/metal.rgba16.png | Bin 0 -> 3378 bytes actors/mario/model.inc.c | 11251 +- actors/mario/model.inc.c.rej | 11293 ++ actors/mario/sonic_mouth.rgba16.png | Bin 0 -> 419 bytes actors/mario/sonic_new2.rgba16.png | Bin 0 -> 869 bytes actors/mario/sonic_trail_circle_0.ia16.png | Bin 0 -> 5529 bytes actors/mario/sonic_trail_circle_1.ia16.png | Bin 0 -> 5513 bytes actors/mario/sonic_trail_circle_2.ia16.png | Bin 0 -> 5502 bytes actors/mario/sonic_trail_circle_3.ia16.png | Bin 0 -> 5465 bytes actors/mario/sonic_trail_circle_4.ia16.png | Bin 0 -> 5446 bytes actors/mario/sonic_trail_circle_5.ia16.png | Bin 0 -> 5409 bytes actors/mario/sonic_trail_circle_6.ia16.png | Bin 0 -> 5378 bytes actors/mario/sonicballside.rgba16.png | Bin 0 -> 9860 bytes actors/mario/soniceyenew.rgba16.png | Bin 0 -> 327 bytes actors/mario/soniceyenew_closed.rgba16.png | Bin 0 -> 152 bytes actors/mario/soniceyenew_dead.rgba16.png | Bin 0 -> 675 bytes actors/mario/soniceyenew_half.rgba16.png | Bin 0 -> 316 bytes actors/mario/wing1.rgba16.png | Bin 0 -> 1341 bytes actors/mario/wing_2.rgba16.png | Bin 0 -> 1032 bytes actors/mario_cap/geo.inc.c | 115 +- actors/mario_cap/geo.inc.c.rej | 118 + actors/mario_cap/geo_header.h | 21 + actors/mario_cap/mario_cap_logo.rgba16.png | Bin 0 -> 515 bytes actors/mario_cap/mario_cap_metal.rgba16.png | Bin 0 -> 4790 bytes ...mario_cap_metal_wing_tip_unused.rgba16.png | Bin 0 -> 2860 bytes .../mario_cap_metal_wing_unused.rgba16.png | Bin 0 -> 3399 bytes actors/mario_cap/mario_cap_wing.rgba16.png | Bin 0 -> 1673 bytes .../mario_cap/mario_cap_wing_tip.rgba16.png | Bin 0 -> 1132 bytes actors/mario_cap/model.inc.c | 1187 +- actors/mario_cap/model.inc.c.rej | 1222 + actors/mario_cap/sonic_new2.rgba16.png | Bin 0 -> 869 bytes actors/marios_metal_cap/geo.inc.c | 26 + actors/marios_metal_cap/geo_header.h | 8 + actors/marios_metal_cap/metal.rgba16.png | Bin 0 -> 3378 bytes actors/marios_metal_cap/model.inc.c | 789 + actors/marios_wing_cap/geo.inc.c | 28 + actors/marios_wing_cap/geo_header.h | 31 + actors/marios_wing_cap/model.inc.c | 943 + actors/marios_wing_cap/sonic_new2.rgba16.png | Bin 0 -> 869 bytes actors/marios_wing_cap/wing1.rgba16.png | Bin 0 -> 1341 bytes actors/marios_wing_cap/wing_2.rgba16.png | Bin 0 -> 1032 bytes actors/marios_winged_metal_cap/geo.inc.c | 28 + actors/marios_winged_metal_cap/geo_header.h | 19 + .../marios_winged_metal_cap/metal.rgba16.png | Bin 0 -> 3378 bytes actors/marios_winged_metal_cap/model.inc.c | 893 + .../marios_winged_metal_cap/wing1.rgba16.png | Bin 0 -> 1341 bytes .../marios_winged_metal_cap/wing_2.rgba16.png | Bin 0 -> 1032 bytes actors/metal_box/metal_box_side.rgba16.png | Bin 0 -> 3661 bytes actors/rainbow_star/geo.inc.c | 12 + actors/rainbow_star/model.inc.c | 119 + .../rainbow_star_surface.ia16.png | Bin 0 -> 6599 bytes actors/reticle/geo.inc.c | 16 + actors/reticle/geo_header.h | 9 + actors/reticle/model.inc.c | 65 + actors/reticle/reticle.rgba16.png | Bin 0 -> 452 bytes actors/snowman/geo.inc.c | 7 +- actors/snowman/geo.inc.c.rej | 15 + actors/sonic_ball/geo.inc.c | 92 + actors/sonic_ball/geo_header.h | 15 + .../sonic_ball/mario_metal_stored.rgba16.png | Bin 0 -> 3769 bytes actors/sonic_ball/metal.rgba16.png | Bin 0 -> 3378 bytes actors/sonic_ball/model.inc.c | 260 + actors/sonic_ball/sonicball.rgba16.png | Bin 0 -> 2096 bytes actors/sonic_trail/geo.inc.c | 39 + actors/sonic_trail/model.inc.c | 203 + actors/star/model.inc.c | 2 +- actors/star/model.inc.c.rej | 10 + actors/super_ball/geo.inc.c | 92 + actors/super_ball/geo_header.h | 15 + actors/super_ball/metal.rgba16.png | Bin 0 -> 3378 bytes actors/super_ball/model.inc.c | 263 + .../super_ball/sonic_super_surface.rgba16.png | Bin 0 -> 1445 bytes actors/super_sonic/geo.inc.c | 889 + actors/super_sonic/geo_header.h | 254 + actors/super_sonic/metal.rgba16.png | Bin 0 -> 3378 bytes actors/super_sonic/model.inc.c | 4777 + actors/super_sonic/sonic_mouth.rgba16.png | Bin 0 -> 419 bytes .../super_sonic/sonic_new2_rgba16.rgba16.png | Bin 0 -> 869 bytes .../sonic_super_surface.rgba16.png | Bin 0 -> 1445 bytes .../sonic_super_surface_replacer.rgba16.png | Bin 0 -> 1445 bytes .../super_sonic/soniceyenew_closed.rgba16.png | Bin 0 -> 152 bytes .../super_sonic/soniceyenew_dead.rgba16.png | Bin 0 -> 675 bytes actors/super_sonic/super_eye.rgba16.png | Bin 0 -> 242 bytes actors/super_sonic/super_eye_half.rgba16.png | Bin 0 -> 253 bytes actors/super_sonic/wing1.rgba16.png | Bin 0 -> 1341 bytes actors/super_sonic/wing_2.rgba16.png | Bin 0 -> 1032 bytes actors/swoop/swoop_wing.rgba16.png | Bin 0 -> 1744 bytes actors/ukiki/geo.inc.c | 14 +- actors/ukiki/geo.inc.c.rej | 28 + asm/crash.s | 153 + assets/anims/anim_27.inc.c | 1128 +- assets/anims/anim_27.inc.c.rej | 1138 + assets/anims/anim_2A.inc.c | 253 +- assets/anims/anim_2A.inc.c.rej | 263 + assets/anims/anim_36.inc.c | 469 +- assets/anims/anim_36.inc.c.rej | 479 + assets/anims/anim_37.inc.c | 944 +- assets/anims/anim_37.inc.c.rej | 954 + assets/anims/anim_38.inc.c | 334 +- assets/anims/anim_38.inc.c.rej | 351 + assets/anims/anim_49.inc.c | 292 +- assets/anims/anim_49.inc.c.rej | 310 + assets/anims/anim_51.inc.c | 384 +- assets/anims/anim_51.inc.c.rej | 399 + assets/anims/anim_54.inc.c | 268 +- assets/anims/anim_54.inc.c.rej | 283 + assets/anims/anim_6F_70.inc.c | 65 +- assets/anims/anim_6F_70.inc.c.rej | 75 + assets/anims/anim_72_73.inc.c | 78 +- assets/anims/anim_81.inc.c | 616 +- assets/anims/anim_81.inc.c.rej | 633 + assets/anims/anim_84.inc.c | 896 +- assets/anims/anim_84.inc.c.rej | 913 + assets/anims/anim_87.inc.c | 252 +- assets/anims/anim_87.inc.c.rej | 269 + assets/anims/anim_CD.inc.c | 655 +- assets/anims/anim_CD.inc.c.rej | 670 + bin/cave.c | 37 +- bin/cave.c.rej | 109 + bin/debug_level_select.c | 40 +- bin/effect.c | 43 +- bin/effect.c.rej | 133 + bin/eu/translation_de.c | 2 - bin/eu/translation_de.c.rej | 9 + bin/eu/translation_en.c | 2 - bin/eu/translation_en.c.rej | 9 + bin/eu/translation_fr.c | 2 - bin/eu/translation_fr.c.rej | 9 + bin/fire.c | 51 +- bin/fire.c.rej | 151 + bin/generic.c | 47 +- bin/generic.c.rej | 139 + bin/grass.c | 51 +- bin/grass.c.rej | 151 + bin/inside.c | 37 +- bin/inside.c.rej | 109 + bin/machine.c | 37 +- bin/machine.c.rej | 109 + bin/mountain.c | 45 +- bin/mountain.c.rej | 133 + bin/outside.c | 46 +- bin/outside.c.rej | 134 + bin/segment2.c | 948 +- bin/segment2.c.rej | 2404 + bin/sky.c | 33 +- bin/sky.c.rej | 96 + bin/snow.c | 39 +- bin/snow.c.rej | 115 + bin/spooky.c | 37 +- bin/spooky.c.rej | 110 + bin/title_screen_bg.c | 61 +- bin/title_screen_bg.c.rej | 106 + bin/water.c | 33 +- bin/water.c.rej | 97 + data/behavior_data.c | 69 +- data/behavior_data.c.rej | 48 + include/behavior_data.h | 7 + include/behavior_data.h.rej | 18 + include/config.h | 4 +- include/config.h.rej | 13 + include/mario_animation_ids.h | 2 +- include/mario_animation_ids.h.rej | 10 + include/model_ids.h | 21 +- include/model_ids.h.rej | 43 + include/object_constants.h | 6 +- include/object_constants.h.rej | 21 + include/object_fields.h | 4 + include/object_fields.h.rej | 16 + include/segments.h | 1 + include/segments.h.rej | 9 + include/seq_ids.h | 3 + include/seq_ids.h.rej | 11 + include/sm64.h | 16 +- include/sm64.h.rej | 56 + include/sounds.h | 3 +- include/sounds.h.rej | 18 + include/text_strings.h.in | 39 +- include/text_strings.h.in.rej | 135 + include/types.h | 17 +- include/types.h.rej | 67 + levels/castle_grounds/area_1/collision.inc.c | 363 + levels/castle_grounds/area_1/geo.inc.c | 39 + levels/castle_grounds/area_1/macro.inc.c | 4 + levels/castle_grounds/area_1/spline.inc.c | 0 levels/castle_grounds/geo.inc.c | 1 + levels/castle_grounds/header.inc.h | 34 + levels/castle_grounds/leveldata.inc.c | 5 + levels/castle_grounds/model.inc.c | 806 + levels/castle_grounds/texture_include.inc.c | 10 + levels/course_defines.h | 50 +- levels/ending/cake.png | Bin 0 -> 45563 bytes levels/intro/geo.c | 28 +- levels/intro/geo.c.rej | 76 + levels/intro/header.h.rej | 18 + levels/intro/leveldata.c | 3996 +- levels/intro/leveldata.c.rej | 4044 + levels/level_defines.h | 76 +- levels/level_defines.h.rej | 81 + levels/menu/main_menu_seg7.01018.rgba16.png | Bin 0 -> 4112 bytes levels/menu/script.c | 16 +- levels/menu/script.c.rej | 35 + levels/scripts.c | 12 +- levels/scripts.c.rej | 27 + lib/asm/__osExceptionPreamble.s | 4 +- lib/asm/__osExceptionPreamble.s.rej | 12 + sm64.ld | 1 + sm64.ld.rej | 9 + snc.sln | 31 + snc.vcxproj | 150 + snc.vcxproj.filters | 17 + snc.vcxproj.user | 4 + sonicdecomp4.0v1.patch | 114913 +++++++++++++++ sound/samples/sfx_mario_peach/desktop.ini | 2 + sound/sequences.json | 78 +- sound/sequences.json.rej | 82 + sound/sequences/00_sound_player.s | 357 +- sound/sequences/00_sound_player.s.rej | 973 + sound/sequences/us/23_drown.m64 | Bin 0 -> 1796 bytes sound/sequences/us/24_super.m64 | Bin 0 -> 4558 bytes sound/sequences/us/25_emerald.m64 | Bin 0 -> 326 bytes src/.vs/ProjectSettings.json | 3 + src/.vs/VSWorkspaceState.json | 8 + src/.vs/slnx.sqlite | Bin 0 -> 147456 bytes src/.vs/src/v16/.suo | Bin 0 -> 82944 bytes src/audio/external.c | 21 +- src/audio/external.c.rej | 11 + src/audio/external.h | 1 + src/audio/external.h.rej | 9 + src/game/behavior_actions.h | 8 + src/game/behavior_actions.h.rej | 20 + src/game/behaviors/boo.inc.c | 6 +- src/game/behaviors/boo.inc.c.rej | 14 + src/game/behaviors/breakable_box.inc.c | 21 + src/game/behaviors/breakable_box.inc.c.rej | 29 + src/game/behaviors/celebration_star.inc.c | 29 +- src/game/behaviors/celebration_star.inc.c.rej | 44 + src/game/behaviors/emerald_circle.inc.c | 40 + src/game/behaviors/goomba.inc.c | 3 +- src/game/behaviors/goomba.inc.c.rej | 11 + src/game/behaviors/klepto.inc.c | 10 +- src/game/behaviors/klepto.inc.c.rej | 26 + src/game/behaviors/reticle.inc.c | 42 + src/game/behaviors/sparkle_spawn_star.inc.c | 11 + .../behaviors/sparkle_spawn_star.inc.c.rej | 20 + src/game/behaviors/spawn_star.inc.c | 2 + src/game/behaviors/spawn_star.inc.c.rej | 10 + .../behaviors/switch_hidden_objects.inc.c | 10 +- .../behaviors/switch_hidden_objects.inc.c.rej | 18 + src/game/behaviors/ukiki.inc.c | 4 +- src/game/behaviors/ukiki.inc.c.rej | 12 + src/game/camera.c | 43 +- src/game/camera.c.rej | 58 + src/game/crash.c | 260 + src/game/crash.h | 28 + src/game/ingame_menu.c | 43 +- src/game/ingame_menu.c.rej | 70 + src/game/ingame_menu.h | 8 +- src/game/ingame_menu.h.rej | 18 + src/game/interaction.c | 912 +- src/game/interaction.c.rej | 1808 + src/game/interaction.h | 1 + src/game/level_update.c | 25 +- src/game/level_update.c.rej | 78 + src/game/mario.c | 1212 +- src/game/mario.c.rej | 1625 + src/game/mario_actions_airborne.c | 758 +- src/game/mario_actions_airborne.c.rej | 1241 + src/game/mario_actions_automatic.c | 66 +- src/game/mario_actions_automatic.c.rej | 130 + src/game/mario_actions_cutscene.c | 197 +- src/game/mario_actions_cutscene.c.rej | 511 + src/game/mario_actions_moving.c | 800 +- src/game/mario_actions_moving.c.rej | 1309 + src/game/mario_actions_object.c | 66 +- src/game/mario_actions_object.c.rej | 138 + src/game/mario_actions_stationary.c | 474 +- src/game/mario_actions_stationary.c.rej | 964 + src/game/mario_actions_stationary.h | 2 + src/game/mario_actions_stationary.h.rej | 10 + src/game/mario_actions_submerged.c | 2252 +- src/game/mario_actions_submerged.c.orig | 1573 + src/game/mario_actions_submerged.c.rej | 2808 + src/game/mario_misc.c | 49 +- src/game/mario_misc.c.rej | 142 + src/game/mario_step.c | 12 + src/game/mario_step.c.rej | 1235 + src/game/memory.c | 8 +- src/game/memory.c.rej | 38 + src/game/memory.h | 2 + src/game/memory.h.rej | 8 + src/game/obj_behaviors.c | 4 + src/game/obj_behaviors.c.rej | 7 + src/game/obj_behaviors.h | 3 + src/game/obj_behaviors_2.c | 5 + src/game/obj_behaviors_2.c.rej | 13 + src/game/object_helpers.c | 6 +- src/game/object_helpers.c.rej | 21 + src/game/object_list_processor.c | 6 +- src/game/object_list_processor.c.rej | 21 + src/game/sound_init.c | 21 +- src/game/sound_init.c.rej | 10 + src/game/sound_init.h | 4 + src/game/sound_init.h.rej | 10 + src/game/texscroll.c | 26 + src/game/texscroll.h | 8 + .../texscroll/castle_grounds_texscroll.inc.c | 4 + .../texscroll/castle_grounds_texscroll.inc.h | 1 + src/game/texscroll/group0_texscroll.inc.c | 8 + src/game/texscroll/group0_texscroll.inc.h | 1 + src/menu/file_select.c | 42 +- src/menu/file_select.c.rej | 78 + src/menu/intro_geo.c | 603 +- src/menu/intro_geo.c.rej | 628 + src/menu/intro_geo.h | 15 +- src/menu/intro_geo.h.rej | 23 + src/menu/star_select.c | 3 +- src/menu/star_select.c.rej | 15 + text/us/courses.h | 6 +- text/us/courses.h.rej | 27 + text/us/dialogs.h | 247 +- text/us/dialogs.h.rej | 641 + textures/intro_raw/mario_face_shine.ia8.png | Bin 0 -> 169 bytes textures/segment2/font_graphics.05A00.ia4.png | Bin 0 -> 105 bytes textures/segment2/segment2.05A00.rgba16.png | Bin 0 -> 801 bytes textures/segment2/segment2.10458.ia8.png | Bin 0 -> 1999 bytes textures/sky/metal_hole.rgba16.png | Bin 0 -> 1952 bytes tools/patch_elf_32bit | Bin 0 -> 14472 bytes 413 files changed, 198047 insertions(+), 16136 deletions(-) create mode 100644 .gitignore.rej create mode 100644 .vs/snc/v16/.suo create mode 100644 Makefile.split.rej create mode 100644 actors/bowser_flame/model.inc.c.rej create mode 100644 actors/burn_smoke/model.inc.c.rej create mode 100644 actors/butterfly/butterfly_wing.rgba16.png create mode 100644 actors/chuckya/model.inc.c.rej create mode 100644 actors/common1.c.rej create mode 100644 actors/common1.h.rej create mode 100644 actors/common1_geo.c.rej create mode 100644 actors/door/metal_door.rgba16.png create mode 100644 actors/door/metal_door_overlay.rgba16.png create mode 100644 actors/emerald/emerald_blue.rgba16.png create mode 100644 actors/emerald/emerald_cyan.rgba16.png create mode 100644 actors/emerald/emerald_gray.rgba16.png create mode 100644 actors/emerald/emerald_green.rgba16.png create mode 100644 actors/emerald/emerald_purple.rgba16.png create mode 100644 actors/emerald/emerald_red.rgba16.png create mode 100644 actors/emerald/emerald_surface.rgba16.png create mode 100644 actors/emerald/emerald_yellow.rgba16.png create mode 100644 actors/emerald/geo.inc.c create mode 100644 actors/emerald/geo_header.h create mode 100644 actors/emerald/model.inc.c create mode 100644 actors/emerald_circle/emerald_blue.rgba16.png create mode 100644 actors/emerald_circle/emerald_cyan.rgba16.png create mode 100644 actors/emerald_circle/emerald_gray.rgba16.png create mode 100644 actors/emerald_circle/emerald_green.rgba16.png create mode 100644 actors/emerald_circle/emerald_purple.rgba16.png create mode 100644 actors/emerald_circle/emerald_red.rgba16.png create mode 100644 actors/emerald_circle/emerald_yellow.rgba16.png create mode 100644 actors/emerald_circle/geo.inc.c create mode 100644 actors/emerald_circle/geo_header.h create mode 100644 actors/emerald_circle/model.inc.c create mode 100644 actors/exclamation_box/metal_cap_box_front.rgba16.png create mode 100644 actors/exclamation_box/metal_cap_box_side.rgba16.png create mode 100644 actors/exclamation_box/wing_cap_box_front.rgba16.png create mode 100644 actors/exclamation_box/wing_cap_box_side.rgba16.png create mode 100644 actors/group0.c.rej create mode 100644 actors/group0.h.rej create mode 100644 actors/group0_geo.c.rej create mode 100644 actors/group3.h.rej create mode 100644 actors/hoot/hoot_wing.rgba16.png create mode 100644 actors/hoot/hoot_wing_tip.rgba16.png create mode 100644 actors/impact_smoke/model.inc.c.rej create mode 100644 actors/king_bobomb/model.inc.c.rej create mode 100644 actors/klepto/geo.inc.c.rej create mode 100644 actors/klepto/klepto_wing.rgba16.png create mode 100644 actors/klepto/klepto_wing_flap.rgba16.png create mode 100644 actors/koopa/model.inc.c.rej create mode 100644 actors/mario/geo.inc.c.rej create mode 100644 actors/mario/geo_header.h create mode 100644 actors/mario/mario_eyes_center.rgba16.png create mode 100644 actors/mario/mario_eyes_closed.rgba16.png create mode 100644 actors/mario/mario_eyes_closed_unused_0.rgba16.png create mode 100644 actors/mario/mario_eyes_closed_unused_1.rgba16.png create mode 100644 actors/mario/mario_eyes_dead.rgba16.png create mode 100644 actors/mario/mario_eyes_down_unused.rgba16.png create mode 100644 actors/mario/mario_eyes_half_closed.rgba16.png create mode 100644 actors/mario/mario_eyes_left_unused.rgba16.png create mode 100644 actors/mario/mario_eyes_right_unused.rgba16.png create mode 100644 actors/mario/mario_eyes_up_unused.rgba16.png create mode 100644 actors/mario/mario_logo.rgba16.png create mode 100644 actors/mario/mario_metal.rgba16.png create mode 100644 actors/mario/mario_metal_wing_tip_unused.rgba16.png create mode 100644 actors/mario/mario_metal_wing_unused.rgba16.png create mode 100644 actors/mario/mario_mustache.rgba16.png create mode 100644 actors/mario/mario_overalls_button.rgba16.png create mode 100644 actors/mario/mario_sideburn.rgba16.png create mode 100644 actors/mario/mario_wing.rgba16.png create mode 100644 actors/mario/mario_wing_tip.rgba16.png create mode 100644 actors/mario/metal.rgba16.png create mode 100644 actors/mario/model.inc.c.rej create mode 100644 actors/mario/sonic_mouth.rgba16.png create mode 100644 actors/mario/sonic_new2.rgba16.png create mode 100644 actors/mario/sonic_trail_circle_0.ia16.png create mode 100644 actors/mario/sonic_trail_circle_1.ia16.png create mode 100644 actors/mario/sonic_trail_circle_2.ia16.png create mode 100644 actors/mario/sonic_trail_circle_3.ia16.png create mode 100644 actors/mario/sonic_trail_circle_4.ia16.png create mode 100644 actors/mario/sonic_trail_circle_5.ia16.png create mode 100644 actors/mario/sonic_trail_circle_6.ia16.png create mode 100644 actors/mario/sonicballside.rgba16.png create mode 100644 actors/mario/soniceyenew.rgba16.png create mode 100644 actors/mario/soniceyenew_closed.rgba16.png create mode 100644 actors/mario/soniceyenew_dead.rgba16.png create mode 100644 actors/mario/soniceyenew_half.rgba16.png create mode 100644 actors/mario/wing1.rgba16.png create mode 100644 actors/mario/wing_2.rgba16.png create mode 100644 actors/mario_cap/geo.inc.c.rej create mode 100644 actors/mario_cap/geo_header.h create mode 100644 actors/mario_cap/mario_cap_logo.rgba16.png create mode 100644 actors/mario_cap/mario_cap_metal.rgba16.png create mode 100644 actors/mario_cap/mario_cap_metal_wing_tip_unused.rgba16.png create mode 100644 actors/mario_cap/mario_cap_metal_wing_unused.rgba16.png create mode 100644 actors/mario_cap/mario_cap_wing.rgba16.png create mode 100644 actors/mario_cap/mario_cap_wing_tip.rgba16.png create mode 100644 actors/mario_cap/model.inc.c.rej create mode 100644 actors/mario_cap/sonic_new2.rgba16.png create mode 100644 actors/marios_metal_cap/geo.inc.c create mode 100644 actors/marios_metal_cap/geo_header.h create mode 100644 actors/marios_metal_cap/metal.rgba16.png create mode 100644 actors/marios_metal_cap/model.inc.c create mode 100644 actors/marios_wing_cap/geo.inc.c create mode 100644 actors/marios_wing_cap/geo_header.h create mode 100644 actors/marios_wing_cap/model.inc.c create mode 100644 actors/marios_wing_cap/sonic_new2.rgba16.png create mode 100644 actors/marios_wing_cap/wing1.rgba16.png create mode 100644 actors/marios_wing_cap/wing_2.rgba16.png create mode 100644 actors/marios_winged_metal_cap/geo.inc.c create mode 100644 actors/marios_winged_metal_cap/geo_header.h create mode 100644 actors/marios_winged_metal_cap/metal.rgba16.png create mode 100644 actors/marios_winged_metal_cap/model.inc.c create mode 100644 actors/marios_winged_metal_cap/wing1.rgba16.png create mode 100644 actors/marios_winged_metal_cap/wing_2.rgba16.png create mode 100644 actors/metal_box/metal_box_side.rgba16.png create mode 100644 actors/rainbow_star/geo.inc.c create mode 100644 actors/rainbow_star/model.inc.c create mode 100644 actors/rainbow_star/rainbow_star_surface.ia16.png create mode 100644 actors/reticle/geo.inc.c create mode 100644 actors/reticle/geo_header.h create mode 100644 actors/reticle/model.inc.c create mode 100644 actors/reticle/reticle.rgba16.png create mode 100644 actors/snowman/geo.inc.c.rej create mode 100644 actors/sonic_ball/geo.inc.c create mode 100644 actors/sonic_ball/geo_header.h create mode 100644 actors/sonic_ball/mario_metal_stored.rgba16.png create mode 100644 actors/sonic_ball/metal.rgba16.png create mode 100644 actors/sonic_ball/model.inc.c create mode 100644 actors/sonic_ball/sonicball.rgba16.png create mode 100644 actors/sonic_trail/geo.inc.c create mode 100644 actors/sonic_trail/model.inc.c create mode 100644 actors/star/model.inc.c.rej create mode 100644 actors/super_ball/geo.inc.c create mode 100644 actors/super_ball/geo_header.h create mode 100644 actors/super_ball/metal.rgba16.png create mode 100644 actors/super_ball/model.inc.c create mode 100644 actors/super_ball/sonic_super_surface.rgba16.png create mode 100644 actors/super_sonic/geo.inc.c create mode 100644 actors/super_sonic/geo_header.h create mode 100644 actors/super_sonic/metal.rgba16.png create mode 100644 actors/super_sonic/model.inc.c create mode 100644 actors/super_sonic/sonic_mouth.rgba16.png create mode 100644 actors/super_sonic/sonic_new2_rgba16.rgba16.png create mode 100644 actors/super_sonic/sonic_super_surface.rgba16.png create mode 100644 actors/super_sonic/sonic_super_surface_replacer.rgba16.png create mode 100644 actors/super_sonic/soniceyenew_closed.rgba16.png create mode 100644 actors/super_sonic/soniceyenew_dead.rgba16.png create mode 100644 actors/super_sonic/super_eye.rgba16.png create mode 100644 actors/super_sonic/super_eye_half.rgba16.png create mode 100644 actors/super_sonic/wing1.rgba16.png create mode 100644 actors/super_sonic/wing_2.rgba16.png create mode 100644 actors/swoop/swoop_wing.rgba16.png create mode 100644 actors/ukiki/geo.inc.c.rej create mode 100644 asm/crash.s create mode 100644 assets/anims/anim_27.inc.c.rej create mode 100644 assets/anims/anim_2A.inc.c.rej create mode 100644 assets/anims/anim_36.inc.c.rej create mode 100644 assets/anims/anim_37.inc.c.rej create mode 100644 assets/anims/anim_38.inc.c.rej create mode 100644 assets/anims/anim_49.inc.c.rej create mode 100644 assets/anims/anim_51.inc.c.rej create mode 100644 assets/anims/anim_54.inc.c.rej create mode 100644 assets/anims/anim_6F_70.inc.c.rej create mode 100644 assets/anims/anim_81.inc.c.rej create mode 100644 assets/anims/anim_84.inc.c.rej create mode 100644 assets/anims/anim_87.inc.c.rej create mode 100644 assets/anims/anim_CD.inc.c.rej create mode 100644 bin/cave.c.rej create mode 100644 bin/effect.c.rej create mode 100644 bin/eu/translation_de.c.rej create mode 100644 bin/eu/translation_en.c.rej create mode 100644 bin/eu/translation_fr.c.rej create mode 100644 bin/fire.c.rej create mode 100644 bin/generic.c.rej create mode 100644 bin/grass.c.rej create mode 100644 bin/inside.c.rej create mode 100644 bin/machine.c.rej create mode 100644 bin/mountain.c.rej create mode 100644 bin/outside.c.rej create mode 100644 bin/segment2.c.rej create mode 100644 bin/sky.c.rej create mode 100644 bin/snow.c.rej create mode 100644 bin/spooky.c.rej create mode 100644 bin/title_screen_bg.c.rej create mode 100644 bin/water.c.rej create mode 100644 data/behavior_data.c.rej create mode 100644 include/behavior_data.h.rej create mode 100644 include/config.h.rej create mode 100644 include/mario_animation_ids.h.rej create mode 100644 include/model_ids.h.rej create mode 100644 include/object_constants.h.rej create mode 100644 include/object_fields.h.rej create mode 100644 include/segments.h.rej create mode 100644 include/seq_ids.h.rej create mode 100644 include/sm64.h.rej create mode 100644 include/sounds.h.rej create mode 100644 include/text_strings.h.in.rej create mode 100644 include/types.h.rej create mode 100644 levels/castle_grounds/area_1/collision.inc.c create mode 100644 levels/castle_grounds/area_1/geo.inc.c create mode 100644 levels/castle_grounds/area_1/macro.inc.c create mode 100644 levels/castle_grounds/area_1/spline.inc.c create mode 100644 levels/castle_grounds/geo.inc.c create mode 100644 levels/castle_grounds/header.inc.h create mode 100644 levels/castle_grounds/leveldata.inc.c create mode 100644 levels/castle_grounds/model.inc.c create mode 100644 levels/castle_grounds/texture_include.inc.c create mode 100644 levels/ending/cake.png create mode 100644 levels/intro/geo.c.rej create mode 100644 levels/intro/header.h.rej create mode 100644 levels/intro/leveldata.c.rej create mode 100644 levels/level_defines.h.rej create mode 100644 levels/menu/main_menu_seg7.01018.rgba16.png create mode 100644 levels/menu/script.c.rej create mode 100644 levels/scripts.c.rej create mode 100644 lib/asm/__osExceptionPreamble.s.rej create mode 100644 sm64.ld.rej create mode 100644 snc.sln create mode 100644 snc.vcxproj create mode 100644 snc.vcxproj.filters create mode 100644 snc.vcxproj.user create mode 100644 sonicdecomp4.0v1.patch create mode 100644 sound/samples/sfx_mario_peach/desktop.ini create mode 100644 sound/sequences.json.rej create mode 100644 sound/sequences/00_sound_player.s.rej create mode 100644 sound/sequences/us/23_drown.m64 create mode 100644 sound/sequences/us/24_super.m64 create mode 100644 sound/sequences/us/25_emerald.m64 create mode 100644 src/.vs/ProjectSettings.json create mode 100644 src/.vs/VSWorkspaceState.json create mode 100644 src/.vs/slnx.sqlite create mode 100644 src/.vs/src/v16/.suo create mode 100644 src/audio/external.c.rej create mode 100644 src/audio/external.h.rej create mode 100644 src/game/behavior_actions.h.rej create mode 100644 src/game/behaviors/boo.inc.c.rej create mode 100644 src/game/behaviors/breakable_box.inc.c.rej create mode 100644 src/game/behaviors/celebration_star.inc.c.rej create mode 100644 src/game/behaviors/emerald_circle.inc.c create mode 100644 src/game/behaviors/goomba.inc.c.rej create mode 100644 src/game/behaviors/klepto.inc.c.rej create mode 100644 src/game/behaviors/reticle.inc.c create mode 100644 src/game/behaviors/sparkle_spawn_star.inc.c.rej create mode 100644 src/game/behaviors/spawn_star.inc.c.rej create mode 100644 src/game/behaviors/switch_hidden_objects.inc.c.rej create mode 100644 src/game/behaviors/ukiki.inc.c.rej create mode 100644 src/game/camera.c.rej create mode 100644 src/game/crash.c create mode 100644 src/game/crash.h create mode 100644 src/game/ingame_menu.c.rej create mode 100644 src/game/ingame_menu.h.rej create mode 100644 src/game/interaction.c.rej create mode 100644 src/game/level_update.c.rej create mode 100644 src/game/mario.c.rej create mode 100644 src/game/mario_actions_airborne.c.rej create mode 100644 src/game/mario_actions_automatic.c.rej create mode 100644 src/game/mario_actions_cutscene.c.rej create mode 100644 src/game/mario_actions_moving.c.rej create mode 100644 src/game/mario_actions_object.c.rej create mode 100644 src/game/mario_actions_stationary.c.rej create mode 100644 src/game/mario_actions_stationary.h.rej create mode 100644 src/game/mario_actions_submerged.c.orig create mode 100644 src/game/mario_actions_submerged.c.rej create mode 100644 src/game/mario_misc.c.rej create mode 100644 src/game/mario_step.c.rej create mode 100644 src/game/memory.c.rej create mode 100644 src/game/memory.h.rej create mode 100644 src/game/obj_behaviors.c.rej create mode 100644 src/game/obj_behaviors_2.c.rej create mode 100644 src/game/object_helpers.c.rej create mode 100644 src/game/object_list_processor.c.rej create mode 100644 src/game/sound_init.c.rej create mode 100644 src/game/sound_init.h.rej create mode 100644 src/game/texscroll.c create mode 100644 src/game/texscroll.h create mode 100644 src/game/texscroll/castle_grounds_texscroll.inc.c create mode 100644 src/game/texscroll/castle_grounds_texscroll.inc.h create mode 100644 src/game/texscroll/group0_texscroll.inc.c create mode 100644 src/game/texscroll/group0_texscroll.inc.h create mode 100644 src/menu/file_select.c.rej create mode 100644 src/menu/intro_geo.c.rej create mode 100644 src/menu/intro_geo.h.rej create mode 100644 src/menu/star_select.c.rej create mode 100644 text/us/courses.h.rej create mode 100644 text/us/dialogs.h.rej create mode 100644 textures/intro_raw/mario_face_shine.ia8.png create mode 100644 textures/segment2/font_graphics.05A00.ia4.png create mode 100644 textures/segment2/segment2.05A00.rgba16.png create mode 100644 textures/segment2/segment2.10458.ia8.png create mode 100644 textures/sky/metal_hole.rgba16.png create mode 100644 tools/patch_elf_32bit 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 0000000000000000000000000000000000000000..7bbd41bfcc763bbf54d3b3daf1200035138d4e5b GIT binary patch literal 31232 zcmeHQO>`Sa9bY9Rq@igNQbHOERfAjlVXKnAoyNi6O-S81vE!sv#mJJZ$X-iAS|tuG zj|&`lyvMD*@qnHc{B$emmX+uJP!261&I0mW_GO6Y9;MTPHL$;e*fLo z?9BY<<3IoTf6T1!zIXhCpZ)6ehlV4ZH})I%wjVMMYVjdF?^C~z8OEpZ%(#2o+uMxZ z55Qv(I;aP(8hQL#M%b7&a<~_bI~+>S;iPe3XUs_tjl!{ip84qSZ@nK1BhkbYGUWm= z=8bjZBCxOFY1Y`1FFamPf+F?q_LA*QBm()0pzsrK!7x#SqLBtHqAwDFw4JWrt)~V2 z7g5+dc7d0TGO(CN7VRfwG|V%IDb_=5#{++ebCmOv{m>-2cx~ePUwa}S!t?+14z!;S zBcAj6v$%f-@UZ>+2<{v@zIz0Bm6dhi^XG7XNQ+nRA9aa4jkqTPX8>OY^Z=d$JPr5? z;2FTPfad_u19|~30#uoP??>Cn>lat2q<@g}|L$*lg82^`+)MLc(dhxyi+q6d`Xrt? z|J6I*IsbWA^PkV3N8E7$^DvO7p0LxAAEd-0oMUH z0IveR4tNa^2dJ`Fv}YBk?rV6L0o-&+vx&GIAP*=2z6B@(N&pK`2HXO?0Z`>R?>ZGu zp`^UAVQfO$DdO%`?m_V)JP!FIgeQ(S%ayT>uN!#HwVh!JcuTzl*u110KkFIw#N~_+j|kd-%D`FxT_u2f1J?{{5HV)(L}~OAemSM{LEz^c;+*q}pE9i)s2Q}GJ-vyt zDgR$b4RS^bvA0o=JbEXK*esrMc&-gmNS>U7#LZBfqBiDrM3HweETUvnjI_itEikPC zV+OHB(Q^4lrgvU@(f%+Z$%DM&pGVq%kZ2GtW7OA;d0;CV5;tXj_CyKum>i^W;P{_F z61K-H{+E%~7QcbhL>o&2TNapa*VLjh{#Nu4@&i?>lQ%ej2mF6~JK+C{T59hB|L<)6 zzXXcX-yk9-!uI|p82uetrFE zhQFCT5aS=BPC)(Qe&C-$PuzlpL*2qHK>lc}{TIZXhj4Dw&vj;Pan#s3o0QU+&m@_i+PvoVN z6+N+up5e;4iaw(Lssh))r|{!2z$^Y4q@|sRf&6_HZO-72yyiM^(DrZ>zuYNK=2O>j z3-mXI%!>Y;_$ghbQHKrCS{^hZHBp7F_Wn!@_$N^efMjte)se*|1j~BAIGn- z{xt}?Jc2W;0L$bOvL)$d!P5BV;JRdEdKVpK?}NiQ+qwxGB=9+Ip*f40RvI zDj&nO{o0d*-mq)Wm4g1;B>IUmdK`5x;#V9L=Y>M6dy5ph-(%_QLk2~^Zeu~-S&#k$ z{ZDCmE$e?`-Qn89AV;I|bua0EyCMJ6HzZr{t^I-gzjx$+ef%c{&(DHaq@nq2VGX5p zQUEX0HNI-vru=sbQQWWLmHu`4PsdN0yP5rC0GvCjRe|y!We7j?N2$8v|M6~rsp!8I zD-88t)~DC518z+N`Mbg|`M7+-< z!YlrehF|x;Rr}qP%;DyBQ`o6@?F-TW{AnNfnVY_F20!bs)XGT-)YC1Izm@*Kjhu@9 zNYnKEQsbFN$((=Gx9IyMjw`@L>ZEU~1nEn9X$5L=!Tj?*{`&lHH2w>~mct+Q;5pPm zr#n>x>fao96;ynqJ7p#>^tUWpZb2%h^s3s<8mG`RHw6{K{_Pt-B}b+IHERELp@rre z+5`Gqz)#sy`Cl91@09sZ`6HPBat5F)ng)IT>+5ePum8#h-L&yY&}HktZ~v3N{s;D- zPqzKXX@8_V%C*0l-CfNy`ajg#%e#tibf3UWC4ac#mpgD$V%=|6AFThr@qe`eetMnh z1EEES`;VIK0i*wevK;M~UfWMw^%**?5S;C=;J*W@n>*4>nXt}P^*?=}Uh(VlmlOXy zdY$$no&(WkgNnpmU6EG&pB(!oyBH^acl)(1ZOD<^faFf5j|nd*A4%*{Qp{^ieL z{C9W!CFRMh8ka`*y)^!T{wMi8_q#gnAD;yM&yW2f*#D)xij~<-`y=wa?P5q~C zv;X_$e}Vmf@7Vu!$;!$9I>i37Bm0pK>(9E%n{KoJ()K~w&};j3`;SxpZl-TldQm=6 z|M5HjCy=$C{H^>U)WK-?ZB`$p|D8dZUfaLR`d{c{*8hC>zb^l$(rbybX{}hBg~9%* zsfd*>S*5gPWpkN&DxVy9`${`H=Tobp-Tbs;w}YQ{c;>H^QJBC_&!OG=6Vddq?;iif zY2&AVJi7gR&xq}Wm3sTlSxN7<7qy)@mh3gZss+dKcL2E?NcujxCzU=Q{VYHjCkMB% z>wOqI?&FZyx#xzS$r4}<`gs@{HGNcNK=4P0^aW9moNk ztx1BTlTS;!GmJlXL7TGJNy~MRT;Q)=&>r~>qz#M|eNU3Rb>dp8s7!G;`VzQXxjROQ z`@%V!ifB_7{wcQWZ(TrrY!}bIaL-c~oKMPfoyhxme#Jx!*3hEL8moRAM)$Nywv-gu z`E9DzBhV}n>S-Rb^&wkxt)E|&<9=6uNcXqRW2t}g{F&6-YR^G5D}ni)K|e>~eCPcA z!N0uO{G9pJZ=M7D4>rX04E6U9jtvbD^bHLshx!H+WBq+&iII`Mf!IL*@W|lMSTwOF z%mi*VR;BsB^X$_xJ6kIyL(e{J{AgtTg&({%Hue4QJ^J?DpTFOu3ZkR&L+jo3R6f5XH$}6<>K$F?_F5isU{oJoh_~b;A_v2CWU0oN065cYJ7>;7;ptah``?p&G=m zH(*DYgXA^|32p>3+$?H11`q!zu6;)=jA`citjv3T-67e(m3PV5Qz5{DS z3ZBbqyzaCkfduZ+a;5ng1aR>i-v(TazeC{zxITvTP>U&*slE2ZhoUK<@07KvXm|0QqC3@63LB3Cfyre zP8Ul!@;n|Jjzsy_8=i)5rd&*q=h9`Xm@s?83*}Wao4k}p85`-`_-b@uZD?&|Efz}+ zMH2&w1FXh)9qdc+?Kn{f{-26~!r{YL6(_{a<0bI_xOY_G|B2i3UnhF80{_q6_A&$LMqiI>)>Zm?Ph{-3?J)4)k@f&WK-9dfUaQ{eyM$??5DN`e1pFYmH)_h|+G z9~0&WX?O_yKkj;Hv)I7@qxI14`+xW^Fi4<;NPSx;_vS>f=P-%Aodw%#!YrrsW4Jnl zx-Xt0AZ#hLT&6nM|07*bk;QU;E^DS|5>|o@dh#57MT_=1Aig=jv9dCS z#5fl;mra|g5Dol?dFr*jaN|9CQw@CYSo$Y7gs!*@Um{Ox@S6wx??UxM4>)A?f3Tvi zS)0G!H)Od*=0SdgwjVz0ApzX6;O>*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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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/.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 0000000000000000000000000000000000000000..7800b105aed3bb52d426b8d7cd0eb70174837fa6 GIT binary patch literal 147456 zcmeFa33wdE(J(ys>^;6@S(0U~F-K^ z2C3G?VIC1nA0wJc(#L@t0~7p5`p);B=lO-m3LDr9nGczb%n_AXxcUEUB;Y|UEzSyw z)!QO;aYHJdQ1)#a8;NIzS15z2bSj_9q@(1|^w7%GuriQ{4mc4>eH;6GH}{7J)~@J3 zD!k)U@z@#kh2h`2wdM3X!*h37tKHdBtO||M7%2i3-G?mcXEzeCT1zPUs$WkMWC z>;(C4?qAivF}!}`z?$BT+rvlpZx8ow*}QIGEwEkFzjiaU3jS|dy?TMlWqmfYCzVjL z=F%DsAwh$%v43U%#{RW^{hPu&v=aU4d@4V-bFQ8NELw~rFm7AcuRwwTG4%DW=(nI& z^snwWP+DV%0M~Bq-Pm_{@5Z_9ot-UugKcuvimWUQ507mq#D-IYDJ9{=z&ajUxg%kg z81mA3tYLd)S;^&6@zgNtqApfDnQac1(HUJf3lJ@oO=G#dGNOyno`pmiHcJ01vRs{! zV`zPD%AnJYoL5`JydrbEmZVZfT81s83!kqip>2ZtDmMY8nUILSlu7dhRi;Zqw8Z?C7q8VwQa|F9LLX2 zW#(WSN;?_aFgU%P7r^TbH^E*2&E?`@f>^y9G~bw^`An-&t-8FVN&lJ1MYTWb7RX-g z0Nf7Hw{bdA#hbT9Wz{07I5${0K!c5v2WXs=;9E{RoFhuQ&rs4PY1!M!TNj8OZCWCB z)W5b=NSlpW{wa1M701BPby$y~{S^B5FKh|^Jq?y4Zl1$tESAPo;0x= z8-hK-sqoHQ2N%AIs(oqbe=3WX;$zIbs@Vz4XH6>m#K+S(F5k)Fkh zjK~u`9i2;hVu0&V6nRlsyBuj-+|?0T+`VK`B-SA(B1%_ho3f~XJ{W6HEKWqa;~nutXQCsrq@$}nvbeoF5rHZeN4gic z54J1q?VVk6dt}L?&W`R*Xhfo`ZE<9A+h8XU^>jo!mn`lWRJuBp*pl{0PkeAmPrOHt zC_M?NZc%p!RM&yp+8uB2UNYF(CU-~VuJ$Ee-Lf3%>W(dmEbfuJBC(#tqDXsO8SLol zNi2yE0#ST$@siHP-H}Ccr3)IKfEGYkB63@MVz8q#p(s5)kwi~>Tf5wui1c)K#()!0 z#=1K@BJG2nOSvA8qR*43G4kIREygI#SA zC9$LpWZoU=Sk&1WS==SJMS2F6MbNu0S?=lVSk%$BD54DZEK%Y;iz4yCo;VDPvN#ft zceY0sEm^dvebFMhC)U*!8Eo%J#5?2dk?zEzC1mVk-HUqEv5R*pi#z1VV0Wjyq&vPS zl1OxdFbBI9MS8km?Bv8?Vo}!;=y`iP5G9nZHl-b!n@}Q)mG)R9*46?2Xm4+ew{`b` z;CMic0dw)TbXJqz0xwJ#30w=M1LTDrJrD$P;N)tlf1W+bM1 zW!qXiT04>b&qyy((w`x5|G5%yCE!ZHm4GV&R|2jCTnV@ma3$bMz?Fb20apV5>m*Rc zuo1={-$MV^PqTHj>dO**&?`YoQqqgk+0u>D15#4@!~eRDx(#+E;7Y)ifGYu40eLKlPzp{=2=P(#QQ zd^`Aj@WJ4>qHm!~^d`FHpPCwT_Y2e^ zv{x93WmB1GOh(_z=AyYmd_;i&p+u|9dtRRN(oLs6_HkrPpa#k*^Ei+xmK|$Nwq})G zI(f@Jf$ANXTqlj}JpgCf%6ZQLI2&!AT@a|AvPNX$C=jbPsW+e{@5E6hvsOMkHx5Tr z#aSn^5%|bFJ!G!j|x-^@Ecb4D8tbL4#6_9X*^b-+U#g+zv_27 za4;&UJ%)&cR4}AuOx$aC*l|X==|>AxGt`_)=anqcSf-NU?E zTKOULP3VY{F4#2N^sQQX6NRoz!duGA+v?w3Uf!sG$|ixThV~~52~)48Y&3EW+L{dl z)d;j8yXZ(NXI@@4>uo5bRP8z9^QLb){K+T5Ql=Pm#ebHPxv)5Fx zZgm;bC^_Rufts(Ej2Gf?1BiJ_&N#veZuZLprYlB_*k+QfBgzd7HauU|pf$=O&g8O_OAMM;}pl2iLgF^o2|JItJK zu&eGBsCtl$40A0TGZm;ilyq4|SZ7f6A(m1GyV(bmmqc7i#`dH#S?z^xo579C$=WR^ z)2DIcK@~`h%BC$7s0P|2Xk2on@Oh6kRxKqO3ce{f_o=GKlx^^-UqVEhD`W>_vJxH6 z#9-=k+P=%y}#>HrC9rRB`SU}DkKS&7ErQ@fbVe0WbKqlJ8G*i^o@ z!;Uk`)wh%85iJH2A~gyNN^f3$n*-V?J#&#jbwcZhva!)*G@VI+#)+k4LrS*QAgWtP z=7K?Fs-Uj53~4GEQIVh^hGS!yg1KpR3(Am2$?$xl#N< ziDJ;06Jz#QKewwSW`pZLx^2GChs;e zteIv*8T_iMiKZZ`K<{DIR8zJ=T~kFE;SE7L1}oPnF@=;!DzQ;>_GDAG!Dz-L@*Wx* z&ctKGUAnh>FI;vi>mBb2NN7saGC5<*s3lh;P zu!Lk7ETeDJ0#=Msrpiyc2T}8&fAw0be5P!Jda_rbsz8sUd8yO3c!*^}W?>Fp0|l3y zp?5EQH3DF0rEfkog0_;SGSf6xE(;FjPafhOs-;9J3${g3+Z_1`L82PI|!~_6K|)``(l`NC!&`rRl+kgLg?!_+Ioq9Bd8N`|kDK9K0%cmgJFs z5DWx94!j!rd+1NTull~|JJUDnJJxr&uge$qg+i}+Kk>d3cp`A0_ZQwDdT$H85PA%} z1!LZ{SN3l6uJSGepTXZfzw&(F^A%6Yqj*+$nmqyWZSiUGF7b=vN#e2MGI6@_q3{dg zJHjQxK4D1MC>$!Z3eyB3aC6{t{;&KS{0sa;(mnh)`7d#Ia9`%mj<#RBY=%9C9blKR&1{HypZN{*T=2ut zg`pzzW9IJAAoF$R3g$efz{t!RriYo$Orrl0I6W{7{*jg7MOjI|OaGF7Jk$~#3+_fz zXZx5~It6c2B@rDQ&cI$Iw>OoSlSK1T_lDR82JSafAMcsYE@RMMeh)4XAB=*+P_-m= z_XKt(lUMe^D+pfhtx4)T)(n}t3vtsasBceVo0;5bY;QW6gRhrhH$mNL&yuM-CbKOn zmF5wkZZFG|sc%(5yb0z5cYmSXGFtT1Z4=qqmR#zaHafh-sc+cmWa`!+ThHWnkHs_l zpkcR|o@DA~{FIC((B_)@y6H)#Zj#tWCZ`O+I?Hzh_G_l+c6h#V8r#8;9ceV5jiqz= zVnRUN;Ea%|>yaFDu{{cT%_OPotQj(OEfQO{FajHPwe!?9_AHtDY8~6dz=bGqfgZZ^ z#Jo?TuC9oasjr|Oz}peMbYkP?d64!-jkvSs?%L^)(mZ{I7 z>8h4aD#N32eHZXNzlQC!=MrY0b)c82&s4K*8og=jO`YeMFH`3tF2unVg$0{0WWiXY z&T+_+ zsiKiX>}u*%si70b zt3uxIz`*9A9h<@S+Uqcp>>HN@Zsp!_Immlz*&bU3WSX@m3*{wM6lR>SSW?cFqcm@7 zww$TigL-_$lJe+ucDb#khNm|q-~lD2x)4lm1+SD`tfde2rGf6M)d z)aoT$fzYaFtk3vcJ}ki2)0zjY7d6A|^*Ypql@CFSS$i*Ay;}#P`BIKr?wBnf6l5E8 z>fACkgNe6lss5+jgSw#km53?2q%2GBu4X%QD$^^l%Q;`}L?dYOGA*_~%N?i+t2e2= zEK6>i#&*)iM$7OTEkg1$5Ut6DwhXxyXP7)f5nG1508M9Il$z&fzEiF|4+&ED@U)np zZjFXGrKHHo`r`FyOdzZGSmDdH!Wmk`k(N?G$K`4$?FnEBV+Qk zG+3YI8E7&(dsON%so_PLZhe;PP^)!sNiACQhKHoa@+eP3Gm=cdYW+`nDk8!v3_BvK z5Qca;rs#jllhHc2c{3&KZ6^%R$Ui7xE>{aj}I^;LtY&+ z0EZH=4A2XS{uZ+TY3Y4PshM#4|2EtM_?q;J^n&!X^r-ZZ^j+y5=?>{u_%h(D(&f@6 z(go7F(&^I4(mp8*Q38Wt^&c&5mexv#O9x3^(jsY|G)tNxO_L@`0ZEXk&_|*7Lhpor z8+tYLQt0{6lMqetL$Id56Z%%@=Fs(_uY|r7x;S)x=T+9{fr0`@#Ey z-wu8=coRe>Tp9dg@S@;nf@cO#4ek%-gXv&07!Mv3+!|aTJR-OvcyMq@usygSI42km z)&{2pLqRb}1wIV?DezX{^}x%4=fU^zlfd@^_XKVSf5CNuD+8AXE(n|xCf^F0e^t=|K0x={~!Fn_5a%cqW>B2nf%EAfd4N4 zH~n7&zsZ;V7yCc!Khu8-_ZIg$_cHf9_XPJ7?t9!l-0j@W+;!ZQ+@;(F+&Nr{JAun{ zBitYt<&NSua7S=`+(BF?*UB|>VXlUo#Q8Z+I?TV%f4qMe#918U-{N2EU*$j4-{Wuh z&xfdsdjC|v3pqp#LC*%$Ef;FI~l`>ywQ-dDjZ^Q`wV??c`P zz2EWP=Do>#jrVf!&z$c)%X=z#X|mqk5ZAHOyVbkSdpN{*EcJGH7kFoTXLzf<6TDt8 zH%lAA1K{rW7Tz z32!e-yq;t z0&XGTW&*xWz)b{vjer|buc>d-H>mJ>6<(*pYZ2Kp`WgbhO2E|we1(9k2)L4fD+sup zfG-p9B?2xZ;EM!YO28!qe1U+A3HUq#7ZGqF0T&SPIRefn;IjmLhJf=3IG2EP2soR7 zvj{kofHMdd>JP9oq$0!|=cKLKL|>?2?=0ec825RfMzM?jW< z;|UlgAVWZ!fDr2oumizzhQF37Aem9Ralj)DSR@ zfNBD!5>Q3J6app_Fo}SP1WX`6A|OOSkbnRIegb?1cnRdS&PYC!s0e>UlV*)-R;6nobO27vM{Dpw`33!iyKNIjL0{%$Ay9E4!fOiOZn}FXF z@D>4Y67V|$eoMgr5by>8zaijt0$wBFRRVrZz^@4SB>}Gx@G=1}5%3EFUL@e>1iV1N z&j@&)faeH!mVjpnc$$Ex2zZi!CkS|)fX4`Ulz>MFc$k2n67UlOeoVka1pJ7A9}@5b z0=`ec_Xzkd0S^-J00H+Ca32Bp5^xUzcO$@4-yz^G0=`Yaodn!L!0iNli-6k*_$C40 zAmCO4ZXw`i0=`bbO$2<6fEx+8fq?4?xQ>8p3Al!UuM%)I0be2DDgv$~;0gjRC*aEj ze2IX|2>2oamlALZ0bd~CVgf!-z(oXHNWcXIe2#$g3HU4lpCRBp0?sAi90JZJ;4A{p zB;X7JPAA|r0!joF2{@H!X_`L;rzhj|B%Gdz(-UyIAE#qD-G|e?INgKO0#5Td&EYhQ z)8lbEiqi~E(>NW$=`c=r<8&8JQ#eiHbO@(|I8|_(z^RPWI8I|YJr1W)oF0qQoj5%P zr#oZo%nhoNmJDMx1WI>3W>5!|7U_uEFVQoF0kOBXBx^)5CGP z3a2Y^+K7h711g8h%bU98B!s#-cF2!jNO1ULC?Z#;rPCIeB7^fXL zZO3UFP8Z>HAx>Ly8o}uToX*GTJe0C6IGu~rW}ME!>1>?N!s$$$Hlftph*Bnu(*~T* zz-c{Br{lB^r?oh(!Ra)dR^xOkPOES_1*em7Itix}aXJB~5>7)n4dOI_Q$J39IQ8Px z!?6@CqC`Lmj}i_N_}7GH{4(lEMtX%}rE5{vEa^AWPo!)8U-B3IiJ&L&uK#xFSHW9@ zSAunUn7>0h%Rk#+?PsL@(unUp-y6QCeE0djChe5gNYDB{?>hdVd3!kub_ z_4a~r7g%azV3~CYA^siyr(kiN!Dsm${3^bKuj9qQn!qyd1MW5M8SX*pcJ2o5bL^$; ziLAn|W*4$kxdOKXZ0u%EV&7#SV{c_y=3V9~=3AjJgia6TnQNGfnG!P!zf!oEX<&Tx z2lVUoPw89f%jt824}{{O_4IyvSEwV<7!dt`^1mEv3`xOvgNuS;Bv$R8#MRSGPCc>a zsjr)#WuCfeBG(9b{nVPLzGlvWgH@iov6kxq8XQY$Il1Pk8!DiH^YxRsnNZ3&z2>Rw zY*|2c?G&z=ww_?~)HP+9K>5{rt_LU`PqBIG>dIIs`xV?L<0PA>uCnF;&6Odpj@C}I zdFl$&BVaF|!7T%<^NBW3eR&)-l>QR#xam}zr!KQ)0o50$aSLg5SZh7m=BZ1kbKT_# z?D*rUOB_o9yDv=T=G#i4(YzQBnWYwT!p&2kcPIgjF2bE72Z3d$+&pz*6W539f%qpo zT5aP6<8XiqK3B~}bPoDiH&2~k$90zFt1Lh3R0eo`riN?N%b48#JawKk2Fjd^dD&0B zdFmXee4syjGB=yn&$*F@mZ#3b3rjou=BYEyG-{jAFw+2^(+Q1n-VMWZ8mZIBQ_Gg@ zv{1fi%2VUZsZ*zdEXkoDi8&|bPniTwwq)}sH*kk&Sq`V+{7EypRh99C?TNFvf$?b2 zi8z14xE0C#ekUfTBX2C=u`t(LR+EW{-#0!N(%!w}bCLNy(?QFqa?*sN9)TzMfA0+@{svm4o%Px#*=)?p%Xfq)Q}vHgUk;FLBo@=1w}YG5#CSg6Dh8k z@G_qWa5V^zzwMEY2bqu8!@B@5j;H8+Y#gl2A2)?-p{>W}Nj^Fabe1)fwCLD!YMI}O z8*VyJ=Z~@F$o!7U@LDCuPuiI}e{?mxUMzW}lI>-*GJljxYdS;6t8kl2Ys%-hmeCTv zTgqrk^FLJgv=i# zaSgP7=$zx1;T55NL9*0%kog|mHS4)Nx1>B%=DKTOW9f7@&vjM6$Xq8Lb<_Dgx7d~= za~-%c>lr=QUY;p)ZMCq&FdfGm=k(knEMfCWJ-5)FC3CGL%XC`LMeJEJw*W5@UEJD< zJvZMmU*_gvVe6;%Y>VYtX6It@IGo(G%@r^*I|ujQdV0^!F3*(NS!AfS6MS~2}UoB%f)p<;ctoJe{3S^O<@=Zk*>c(``92Q-^z@pXoET zSi=~n`b>>ALuRJoS*?EKP;ETO%v4NjobEGK7^{B8FvWO~naNnM*v|NwNm%a2kv>wc z%tXx9$Yds1sjymQBrBE7gmB07(|#ssd6t;~ZjSn`0h|@XTMa+RjL*kaflfi+6?pOf zLqGQi^L#E?kTV)!Ux8w-Ni)fGYu401Y8NY5^yEpO2CzXD*;ymt^`~OxDs$B;M)K09B?JzO2CzXD*;ymt^`~OxDs$B z;7Y)ifGYu40{{IIaO3~~`^VVrp(_Db0%E^_$rQmIuV@NQ6E&l8?oQ6?@n1&q1{@n|lvi-S5!zpl>dbOPLS{5<5Y@oBLPwZw#;B zIIyO7`5h*thuyCLrBmdZ0ujz zzp;O9U;n1?4y{CgI-kmq?VPJ;0E-r*2#nj7^(&AdKn#7oEBY;{75%IG4V2axBEYp< zdpGtS-n(&bduL~h-e8+twIVAE!^2}63bEnTU`k0iF|dw@R_;icC5F7T9&6ZMSypnn zR6I3|x~PlQPG*~fWpqZD%>qOVWz$$LuZ-v-v}YkvhKURlSL9<_bM`VY z_sVPE*>c(zA6{{1?!+t3UdsOLx2`xl8tT_poE>FeGoNC`sRQcN=CYY%S#h}D15cQL zZ@y^D+T1B^zFS(O5$cmy%P3p_&Wn8W*eGa8O;c%AXe)1XYDCH9V8K@!5gY+q89+??>gGqM` zHM{75T2`x9@9L*1jD~EfC|37Jv>~%k?*sQ<*uKhSE-kHVjU0 z=LPUO!%eUkKy$fxm>^c~2F*8SXg<>_RI4s8Y0`fta#8J%x&^WqI{>!>^lh9@RPp9* zQCYP}D$WfS4$xqu0xo4(EuH?lY9MNm}-H^40}nN1K+29rdp*71Cy7mVb(! zNX0QQbRE`XXg`Ji{R>-ye^0{?y&cb--0`qSQ=&QL_=1v#U7PihwagnEa&8(X{{kr4Qd~ug)pd1rNx?kT zwyA)z@Ytc|nx>qZ^B7Q*V5%qe5W?=1FutJXjyR%FZh;rp7FzXF!=#0ZCEjPCZDIHDh zpmKsfZFD!a&Rbw>cTS%eLEm_d{WOh)rdDcO`53_jJsiwr=gATt*n~H-#krHk>K!d~ zal36-u_Bg_RkVT(`5>~XR#j?6R^;LMnnvu9qBVGEV&2(u`o2kc1AESV+dCQ+G76xl zDyxpPB2B8&iul(wrolsRs_}|dUs%TE`WIfa|EA@wZI;cw)65*pTVEq2-5Af4GM*)6 zyao=ukN+38HR{V|bN^9R$I<3kc1X!Py@e`xYWgziyt41plt6|<`$X_MbXdF&czd`} z8B{6#Bt5**z$$@DXdt{f1)iL zr}gE$?zIvJUTFWc%hE2-|7SIk(Vc(A1*nT#ouEeB{@*o3EbT%Y!kuAVy;M*h{};85 z?s>BMrBt8OtdQs)ehi>99g}LYA6itj)ZD`l_weIi@^t*0TQKch3#6*hC-9p94~M=Hx*${tZ4GsW8bY4n+rj694+gIdo)gRj zHwC+c69VrAUI=_6kPB=N91;izX#dOpyZu-B&+yCsUjHn==zG)mnD0j4Ilf)KwZ3*= z$or=E5%103FL+P(CcM4g8J-V3uXw)axzTfhXP;-gr`OZs@riGVkBhg8=ZnXSo5dyK zbdeU`5S|q75iS?@3&#jch3Wi9{7d|I`D^(z_&DFk*KvR5UgCbl-NIeSjdAO_ne0dG zlk8X7ee62634X)iY32szRAxKV%82w!^euFW-UOZgXa3FIFHncjUSTAbO=Y4n8Qqng zi{=XP5d|)`O0>$n=jFLauD|>VJ~Ady1Lc%?e7$xoJJy{AoN^pxW$cYrpDuI&d&5s6B>=gj6u3 zWK4~$-C@TW<)$AkP|Z+t3NF&i5{+dl8Qv~X3vF0yv!)+aUf$py-lmlwLU%%sDCvSt zvrXTsl{Zo7x+J`%yu7Xc&E@5d`loCXsA_0`vXC(KYRX0<*PyN0AW)4!3$lxjq;lrv zRkPlPGD_91BeKPm}obIQ#;Lc}mVW!U=DbuNxrD6N;P}8O_3PQkZJ4Kb*|6gc2_dMdeH(n={YT`c)2S zgZ0#vWbNV7CazQa&G`m>{R+ZP&c<@dXim;5O4{_2oZ3fsz72? zHf@_aHHjLCI(ZV)Ak+p-41A3 zM>ll|R0l{2uv)RIxEo_d}cGz)7x%zg}Jfg*5 zLZn7vLFvt_Z*xE!rDrY@s7`48P&PK2jHWXQ&^WPlY)Hwr8boyq$y_jqOcm6%mLW|g zBPtRU#BgjZQ!qEJZb2E+C>fql)R;E7XsTO#7M|x!VepvNf+mPp*dH$p!gZysNmd)v zX>+X@S;sUrlc5>{6$8y3E##wRrJLqdqA~c?&n9vo%)-hd96)L4)zr^&KpUl}%_QwB zFF38qiZRM8Z4@XOO+@ARsGLMU4Ks{nu4JR5*$ny}9aV&&qF{!k(sHZp)#T9}Cfkcb zdUrIJgd34Fg=nmhfF1cD-0IpYGa6xS1DT1rv2;GEux6SKW$>%2 zCYpk%0=d0TS=o$(}F~_3M?TR2FvK% zw15?3l&SKQ?!lG~^sin^mCuxIP*3&>R2ArPG%t1977wvZ$SlmEpMioOIYaMWB@cp0 znxryGgz}U}KwBkko>mF)zJt7>Od=7>CbaBHJRwC}4=ryB2dx59B|Vf%>$z1dVW6%+ zjd(Hx`ye33&C)U_(gHOZGF$iLv@B%*kJ3CPJtbWujY-Ey%cT0yKSD2u9t>RfmeF*IRi@f{1$9fO-&hS!T??2$V(sPREI8VQ4uE#IFD*jmf zlDJPiQfw4H6rK~lE}SE57b1edzsdiUzmY$ePxG7j#rzcReeO~2M($j0i0kKS**~xk zvsbfw*!64+8)E**Ji~mG`8<LN>Up3@h<0 zHq`N)CfWzh-DR4YgsDy#E`rH~ zHsU&AY{*73w+O}(az3ae==Zc>lEG^ZEDfw6b#60?U_YTPq#PT~?M>z7q>W%&5sWDG zvH=1cDqI9RinIjtPe6-pBy~lwsnFh*G{J^#DuQW+_84R{23mc0DqpY>%_xFhg<2Rd zU$iLTyAy1>Sk7;b9v|T@lPF)JC#@wqa|Fsx^hM zF&lDP5zHwh96;Jovx;C%bt4q))pkcmLE)ujv^%%Te`XQPDzs6-Wat4Ak?SF+#*;pfi2nHJ#Ri==Z5z$~Ot2hu&FM{=kEaP~lFbqFt zXsfHf2nHOo=;N78RE9mK4L`jIHXJFQAt=j0Oe=yFhbK`+MeE|PDS`oq3{mL6ef8B9 zRpTw5agff8B3N&D)xdALK)>L{VjY7SMX=v=0yzVo5Gz4V5iB@dcPg8(;bs-Vio=r| ze$WOfsgcnPNZH=;mLeE+NKeKQSu!)6z!O~c|5>Yx6v4tnZct2%8Vs(MVQdSI#`eO` z0ot0-06(8a<`CiyzZ95L_kOzYnu}lqB9|TJs7|$5T27W}sm3B0g?O?cUT74{XXNZ6 z*oH`t$K%N;STXoVh#b^&a}i8MTr1Fl?U@~m4rQWQm|=Dy&MSho*r#$##tPtdNubJi z=aS0sU|Dy;ZbVBamd$4NM&aiu?cJSM1hWybi=|UwYXL9v3aOyg!IDIC4o1#a)0`q$ zlW0{S56~XWC_Wg4p|Dq2TLk+O>0S8Q1u$a3JT#fvwMDQltw_T#omK?f5?Q!5`M;nami(pWql}JjL`J?NLs!?gd8|52{U{xY1<9gv2 zDUlBcEmpmKbww~Nk=8L&=-7rLSd_N%Ru4m6Q8g<~<&FBQi(pqGw?%IE7$|s?JgbXf zRGKj6GGI|+Ofr_RxQ?oeU`d)VMwyx-SdeIK=aeDXUFN$@HPsZshBV>YO}M6_YDE(N z3|jf=9R8VJ3z2F@mJ=B*s4apWiRMQxwg>4aFvg5gt}TKUX+;_(rx(G7L{lJJ7(uT~ zo1<-d5e!K?+9*A{2-YN8#_%H_pvjTaH(USuNX{;T$()4UV-%upyC{M`O?i5QW+MS6c)t(uy=nhKpcFqSrI5u&CzA$VJUlWmXYvO7x1b zlUUb7xCl0;6DOmx8AY%)(VNP`$<*PdB3PYhCu1eBRy3oi+MqTfeYEBj!3afS0|GDz zLB;0snuh`27{;*9D}p)NSCPrwgO82qvu~jlrj(2=*^P_SS#ncBACRs@@DRo8EZQ^XgI~p93ySaPcAEM@Sb}T*Do5cytx0$aAzZ0Gn9$+Qm2H_&%q|l*4QrIN43lsVG`PcX-_`CUQ z`1ANIzlHDO!@Q4shkFj91-`|d#if|bm~*&;xhBrbzRNz(EM@OxuVO#LjQo2D&C6^DkndLxTJWIESF)0zsl9ZMWMjcap4^2?nOGJlZ7H5esw z{IUR7L(}SU!&2ix=6kBSg$AYJ#h&k&FLU$!Tn$ANUld1b!Om;YaO_OWv&=RHxH^hf zJyfiZtAY+AADY+4RZ}!}Q8BoP;kyf3o@FM0+p7BM{KkXK_?V9<5%`(qnB;rITrYGK zyM~>ea%>OfSL+tJ$&?qIV(f!Ku8yY35tq#O<0tKes?YQ!^M|pIP+msaH#%GcW5UE^ zi6|Vp4abP{2!tTeH%{leX&`}Ibfymu8?*%^RuawOnP52~Tw~9Y`PEh2d>Vv|&Jm5% zz#|=UW&Q}EpYk&hyD%~q#cd*gT6{1xI}Jt|h`=xbD-gZm)%GwpM4N`7>$pxRfll3q z6Hz&p1*eCGqpG+Tz`<;f<#i*B`o|Q=rETYaE9$v!hDnU2(Q7ydXE!K{Mi~SDi45U5 z&(7mEIAP;p8v$_v{L5ewV$x?Oag7FPYZ6L7Ex{7fc?w2 zIt)Y}Oib`-#0lRQa9`90;(Y=d!*7)5$^w1s46euEL;5lTZa&y8qH2CNo$Iut(SaRC zK5uEZ!XV;hJAf9=ocoD$!1g9 zAW?sx$TgxoV}SmKhcuB%!h_2cNn%QIzum1$ij`IX{USbK>? zB1(h+f9#EAHM^Jkkkkda@Q&1){a2k7JR7=fK9~UNkuhv$>KJMd^_WU(_L@_Vl7ZKK<A* zMpF+GzLk8?)B||oqtcZ;&(!^)kEzW}#R@`0R3FAVI=QI_06!DsEftWh1b*3<89g(( zK6TlsTO@TK7Xiu!^a!A zWfs=3+a&u*f`5#nXr8R<%FP4Q?$?eqM)QE=0W*oYd4T(B8BT2;;LbGT%9}?G61+v} zK(Te^Y*pz%_7clR1~Qt**`Wa1gG?SDFH#pW{S?#B{e}BA_at{OcLR4GH^{B#x><&K zo2zF3&c4My%|6Ip4_0xO-NYWu)=6(k&-0S>L+M-6Rnqy=N$|zM4(V{IQ<^CWp+ARS z4LudQD|7|K59|*OhStKD12aPtg6{`khA#)c5-bJ>A&y{muq#*}^atJw{4(%N;K9HR zfzJm{2n+?*1(pToF<>ymS^i~#3H}fKulOJLKj6R7|2coof3$z4ztvyoXMC^t9`)Vh zyUuq3_$FlE3BI^*jc=~cgy?BMWxD52#s& ziDl7x5bkHsR?ZC7K4$xUQ+`L$Q8@!#6eNR-o^<=0GL)VWmnOf_MXduO$O0 z?!j7Jbs3iVMyU(2K5<49FBf%z&H-yKu!T{;Y1C#8(gN;@Svjcf7U|b2pk$GL73+48 z5rk;th-dWT7U^GONtv=m`d2ne+&Yo|rHvAJzJgyr$g3aC>8_cV@k`R2sWNy8O8|T} z__P_0@sQPQIeeq15Qf8WBv{Z+yy+?|7C5T|`w31XY#V!eGJXN*Xp>7|l8S+ST|Nnh zuQB2iNE=~yj-npHa#mm3^hDgrL4?qXg=N3$su zjG-|J;I|DrJ%`W$n1jg}>Ia-ksNMp9nIu8HzaZ@3h%}Xp?oBF+c0N!0W^t=%W)M#7 zQJVnmBp5G#m1snx5Z4jY+vC9-7SNE{%xA~qC_5Hd7Dn28g>*rkn3W`dOpk1Zov zsbnT3L0}aPUK%e~MbRkeipMpQ7lZ0mrcT4}d{dsf5K4AhSieP6p6WNIPMr!CKGcF- zA0~J4DcGVmXY(gFfEBJ%mVauL|@5E!EWFa#;r)^_d7AMf5|k4 zeQl%zdTUKY{J!zIkoN8!pNq`z!LCtjHAF#y%fH}IT167}`O2kbKIeeczd_16u(o`8 zbbRH~GCw*4HiWie(8Fkwe5Q%(uZSisPmjkz=0_Zc(D*ti$qzfs6$4MI*gY-}ncwBm z1pNb`B%gBVgpMXPB*)_*^F!FdgU1#Ib8sT~Er`roNpZ!5m-z%%`4ImNd-QBf*Sw3d zTX+OK55Pk<9%MeQ765leDwfvOXGcA_aiAXO?|@?CU}gR|%wLVWtu`KHW-3;m!^6YT zJ(*#MlY`h~q@Xo}k8Ym{L(U*P=)v7sBO-519QkB4<<^E@J{B4{N`TFP?z^HF>1?tY zwAetiCY61pE{)B?x!gKZRR&5AWgrw6LRVC3Xp$C0M7Qc~1|AwAu+$huum(r%(cfHq zGZ`dKBXEpffORc-)9ar>Me)&uC6f&4vE|eJ97@=jg;1|H|VP!OLHeuvG-j$7`sCUiN zNy9k{IKFp5tQU%R7U;Xp&#=e)4rWJoOXRag_5IysLX0ZlTh|)Uh~MF)g!SYgjNh4n zQ3JY}s>$HzrEvyP`mpGZ#)n1bJTlhX%V=f(D3#XqZ5Vom^V?KfQ$D}7jF#}-QbsHD zoBdohO_Q&}HtB!M{6;**Ay_Q69~`f+5QZRHBw=h)8u0!onaSw8oEcb3$y6etK;#mH zxNB0X$D;wE^57p&>e^&FRsw1O{S@OtW+vl(u4XqQ->A;24j(083vZEw|MG^)XymuN z9`C$SY1o?@R)#vtwRpNhH(}zN{Qq=KEgb34MwpE0OPWP^FJhqJ`I~_i7X|8~g**SQc zn!fYfV9k*E^`t-M4}Bu`ESXyX7M+h7N<{NxcwXSYM$yN30(}?O43MLRF$naxZCSAR z?!*=sqJj^lP_a8K89;Hnk%3-W0{tyZ22k9lvsKTD1p1p;%i+bLMoO)-<;eV6tT1g~ z^vo{Ll-XH6<{9d1bdg~mm0pvsU~XhCX7)12GX2bKhLgU}+~@g?|6=JZ<|8S_-6$O@ zHGzHqo6zH-+p%>&7K(-XLXnU+_`Bfa!3Q8Z;NoB@m<`Io^}&OJEx`cX4e)BKpTiEx#hj}C3MsLXTvAE9juIDNErr;*{ zs^B8{u3(t$<-Wj`JUcuGd73ji_@D5% z@n7N3;g1Io!9jcr@8Kr0pD-`7zhR$ae+W?o*R!+Psmv$L8*ux;L-Y;w7wA)vpFsZy zk`E`wYS>Qg=u$luRgVgvuVN!6jCxM^TrJzJ<=T!>pKWG0IH1bTP@j?5Mx73h9-j`g zeP&0LcHFAF>7Hs}dmRZ>C)ktI*bXyZ_kca&gg_3f$EUN)%q1+oug4~{Ed*&ez8xO>GPAP-Yi^k8v|4F}S9zXpM`sYX_+9|X71p0+Kwns;(#-Mhj{4*}d)@#Td zeM^XKK&lDvbY=Rs3G7VrsLqjZO6*MBbv2f9o%LB>i$sG0Fuar47TT&NW|w8jvykky zCZkXEV9tD_EKjCy_4ZI9?S!Ac1yfi~t?8S~@?`q!NT!z4V)`a~mP~)Gnr&msgDmJ9 zXR-qaI0dAyJ0OirUyIhjIKCcw3Lbj1r-!aWlUUylTm3xrWYl0Cse5_oNhBZa0gI1^ zo`7eZ-NQpqL}P36@6ZyNnKthZ9YSlt@a@n+Tuqs0hYr-U%Yn|>uS5HBsWJx+?Q3FJ zjqkppy=WacId5psM0Pe~cHPh-nq!8K2JI0hhS)|^)&vU$UVM^;LJpzj;_Pyyg(>WO z9Ga8CpEu*(5X~dS=@^Vda}(IvYLE^2SbvQzLtZ_Zoo^4rIkG%YJ_6|)eC#LtkSxnX zaA+0{U|9eT%~-S5@Ee*&Vs#3>p((VMtiD$2A3?T()?=uG<|jFT)sZc_g!%*xjyYb0 z`a6C*=+Pq7->`ynh!vqep1~dhE4MUC!7*=gk3K+2KPqgA^q~HNnqv)IT7jCNhJf`M zf6Ir3{ziFmga>A0j_;t}N6KWJ=nm>Vq&X_Yc2Ivt17MtIQh!22WRB~g{)m)6Rzp_|EGG`Y=joQImQ@*$`}wg?OAS7_8s@fFlBQIpD|E2vi_eYz%> zq9v?K=Ud0G{Faj#5pCbVq7+W|6^#U3* z3!2o3G&l7#Brpdg^*qwJ7-2U}sTXm5l|mk<=S=AGfCuVXq{{5!4%9PPoc3S`>S-({ zoUMxKDWsX9xa~7S>Pg&7=P(EA3AB1FK@Qa8NYz+F9H_?#naMjuJ&FfGJBOk0uGRSb zk9wH2&-mnz`YE10)?f$fCwityHT)PYaU(8`dI(G0De!^%5n8g9!yc#~qD|8HK@Zdq zu-t7S57hV3mI9Y_2za2rhlO1h?m&GP&t>)YmE5u_cA*jUtU3PXJLSsrYS|uxRy}VZ zUv(Wkm2GoCEqBb850Xx$d?XwK=_}{J2ucbqU} zk90F7Ld+DBtUYv!x)049JvfoN2Q0^_$lkGj42W7#o~wWOP2G#8H4>A7`_0T1%o)rG+?cn9Std;geFRqjv!Q#%4zZehi+e)&MEJAt zTZp*7U${m1oN$J4f{=oE`(9zbP$RJXANg0Ac}x|<(SP6{=5OaO=LWcC{MleBZ{rW; zTls0c7`ir83hfT<2pt~kq@Snn4>iFp1Ah%Z7rZNYK`>%U+FLUkMsBW=lZ?AcYM$I?(kja+wa@vTjHzoe&Bu9 z`z`Oq-qXBk?=jvZyoAj zQg%PPlU>Um!nWpH(Ono6H%QfHVRN)cfiFhEDF}IFBf2_t2mic&(@P6l2ilW7cRIVA zu5`Ca7^!z7#4$;I2Wei1gLV2fXM{|@inIvv?&^o?^sfk zJNhov1(Vy3{|wa`qvQJ=K^HX!F~l=uHRXZq#v|q z$n*mw1Lgr7J%F2&x(rq05P(7-8ajaz;m`s3B($>!`fk&cOn(RIGc|Zb`|wSsK7-x` zYOd)cHR?Rae3?2Iz0rZ*`b8pjDe9&@8&6W|5~RqTo$2%q6>&0sJ?gyasE2Mr9WWp0 zpsfx)7fpF{F5Qfph|loirmyztIml>oI^v;cqXK0IJT&&PSdVw;nTV9EOVi;E-DG5& zj&A5iBt$}OKDeR7Xih@DdTdiQk!`jf+8mAEvY0?U#=)Z8Zl{xvB6Ox>86=Z!gwB+^ z)lP@`ZL!nIn~?(!AJc5o{*pJMmu;mZ8oB|kXXAi|o`ED$c05DZqkWn6aE6|a_SEEP zW{Uo&JQ+=K?aggEmZ9skxl(?tLf4|HVLw!%YfxLtCMER+q)IK>u(B@3E6Y5u$tgGW z`EqKRx(IOwpKMBw<}(HDsE$4ajW=XNq)=ug+E!2x1?hv4kVdl6l=`}X%?}jM!truy z|9%MASF;a7y|91iNuA@6D^q7<7Whh5xRXo!ynu#H8)A{pk3~oHZz|}eNcxbgfKF78 zkLeyl8Ox(HH|^REdI|0Ugh@r=qZhbrLOm0syKxU7$Wv`<7m^D2%ize)@S}AiA11m; zNknT>JBYys$yrDhX*txHCOlCRXPEFZbvkm6q9YphF1y9nXSoBHH@+WDQm5hG7&(M% z$wntrMI(nq08yt-VIyiNh!OvD3VLm+4qtRNrF?Qddx)B$?ru%j3@1-&WLH(h;-;L~ z#14!@f#QBn7_SO>zXJnPI1du?7~0laLvi3B5Pjr^FF4*eE(hGoz2kC__n=+AwE|d1 z_;boac}W$88RsjOlyl`MEy^cb&eR;^b9}{;@+jJ~SzBtv_hiCse4cC#FcXFK4@(|hyVwtoi2g!m$QH!{sV&LQi zUfR|;9(plS&?JgS*8h~_gwztjLwD4%%Yf7|ekWELCm)CSlGvSU{ZDx+dizw0+o9VV z+5T~(cIY-_ij5PqLod=;=rK69h#h+29CjUMF>bsL-Kw?JDO!h)Ab0(^u{!huA~X{LI6S(e;}#@!U3bBy&_-Vyo>CBmKy$;1?XQx>8_&quEx z6NUO(m^Y2>bPQrxgzW(Rp3v6hLR*I13YIj7v^WGhSV9=+X*kyusDSr<)z-bSOnni( zqKpV^`hLr^Ok>NPC?(iR)Au4XLVJ|yd(iHlJeJ)`L0yO@kuwsH2X#T^(lYfq)PA+J zw((9<=cDbYEtfF+EV}>iXm%eZy)1oGx)AK!%~H2i6Z$(?`!|Hn4y8f^p?M)+@Rz~6 zgI5Gk3GNIo4_3pe{!@Wl0%r!4!16$Y|3m-7{_Ei!|0uXUpvLz%_{RTE--W)UZ<%j8 zoZG+Ty$9m)N4-aS=X*V#--G3SrRN0CQJy89D)A5Eqj1arXT*%STAU&LLHH4TyPpuc z1uy?g{sI09{zU#bI9addKH^^B?&L1w_HY}yg) z1UI6gi$ru?P@$#;CAb%Dm6_1c4XB8XZ@2^(rJ)O0(5Iy+iflMzuX=h3?n%Q}>L~aQ zI~#}k65Ni4E?vsPom0ksPnXc_5?qf)uF`>TE>Zjs3S58>LT!9zmf)H+biav{8${K+{<@l~$1(XhsX!QS`Zh^(I9!Q)ZOlLN#=c4LWLq`{>{{ZR;ec zDZ#C3_`V>0d#u+`TY{_9X5zxSI{}d77bNDC;O;auH?%2Xa~|k~O(nQA4c(NZS^ZEz zkJ8t;%__mYX=p}kL>AY8i5Fa&hHu?*_~=CA6)wT8X-LLp28qt6u>=>Up`j`_PIQ`@ z5?qyrBx4vVIxbv-o6&F;cB92a0#~D961!2NlQfjzLNsz!jnzQWDe6mbFB+QWR%1oS zHy zB7pnR2!Ul|q!Tok;DWT}P(`I}jZQhg1Xrc?tCST3leKv;uLReo_1URyA<7!@{1V)v zrm@!5oo(x*H)K%>Zd6;RvNlwmUd|M@tX0rlf@{{aUOH`wbmj|6aP1mWrsHmpbn^Kn zxQh+7+_e2D+o0&w;S$`>hNh*7T2~2VW!IMAqBgYbF^LV?P=cG<(2O&?n9v49uc5Bg zOs*6%Q|Q=m2`*~G^_N8*Ym%B-f@|84wsmq&nHa%+ZHQ5sqe>^KFTt&CX!Tf~Rysah zf@|9li!uk6i3F~0Ge}I%ES;pW1fSxe6;|%p(rKDYaAO-9{7QZ!owBB+-rr{UkaS$Q z1oyY0#+3P!bdvfK+~kJ3Z1pYa_@)wE=!O)igGWgxnq7j++|V1SLeQ=@Pz@!x%MHy1 zyQfL#)KG#8-3Wzs6KkS?Tiq~)Z9}V5)Ro{;H+21#*^jSdrpBDZ!m?=#{3&L}~9f+ahQz!M$#1$aO;9>7z3Xm*8qQG*~z?iiAy; zv4Kn72pfB>mCmNN1b4Zi#b^q!(vjg3+~0=lfU8T%deS1jH38I=-~u|v86~*g4ZWt&eMzREES+Fh2`+d; zTNK9tEuE~f1h>5*p_a#0=``UI-1&yatt`gML;{z-SxL0(jMYskIEkJV&md?MX2v@(M31*7k*GkST!bNYW zg^u_5XjF5H`^hzP72~w@%Ib?_q%-JZ9n*a}8msBWeMB1|ym7ORhORH}HHsU-S33LY z#XY3BCFIJ4E~sd8D3y+$SIiS#Gfr5QPCTcWBf6$Sh?P!QQ_K?iTC5y0c6G($$;g;P zuk@0&#ZjU-vqxZI8UmT{Gq>v-VD9Ky%4%TbXDlg&~RvdXmMypi1NG{d+!(k3ZU;Cvuo_PPJ#eSs>z{4B5l~SCO$1p)_FYz?fuf<=mu_}Nt#m^X9Z^IS zM8yqv+_xD}M;&(=an!+`#c}&aX2#J`$M=hSE3>kyt8u>b-g)PJ=XL*ae_atbA~Pc+ zBO~wHCfYPAkZtgN`(^uH`wDx3JGn^@TeprK;$%C99?d~T==tPspy8320K z*94kn?XMiMp6^aJq?ow6jXp?(*oePkq4KsW6tqil&;*YybCU3_N91eom4F7>7=*At$z)8mJ+W0b%+)Uy1(#t43gXf7V~@_lfuexgM|=(KJy_^CHlR3(0{})nxRS)25OKR6vQRp9B{- zD>QuZ0;MtMi2v@dU=B5Dyglb zJCIjS0%fUPLDMzAPHJoEerC!8)*n*4yl@SUe;Lgyw8^yqk=k{15A!QBXRx7QD|B}) zJux}0;Ipb-Lz6JKIMdbo0xi(d)pUf~A~4aDE~S9rOZ1>MB_Qq+h}nuzoV7Ibj_6J! zn6I0c+L}V;I2(TYGW>y^jBqjy@&sVwR9X-6#9jgcU=e?Eo)TpRwDgYX#@AF^#3j1& zHDv``;$#}Hd~ufOLSZ#XThC!Jg2AD+OUP^4Q`k%G;vi4vMqCu+!8KnPeHkGjv9d0v zo98{vLGh>PjWDrIM5ubk@=kE2e3nj@qr_u@Ldi~Qs``L5C3lssr1`}m{pt0gK9aoU zbUL>qpWBRwzgLwCRME1ZT?(hs@N$>ccv*T)rUuH{p;N8nQhSg_A&^x7GxdRd-puIS zpU;aCx{sz8x2IUI-T|is&T;CzX|q(Y`OGV!g8P}jWCrpiWXj;Ck8qyKF9z`zyu!2j zL{Nw|7;i(bd=jnq)mY)x`@{Rf&qkRYPyWjJ^a~%Hu^$nCC{T>K@lqUdl0%AH`Q^Tt{e`+0ctqw@ zRtCZdjO7u@*D8rI6dOcI5LBu<_I~lR$*~`Kb=A~`@FS=A@aky4r^hp=6i0oYugA*? zq1_$)jqBSU->b!GvZIUV{F$$Q(AyE&_HaKCK?ixxO7colp=KxODIxwl8Tne$^AyN8 zq1_cMQK3GLQeh2Xq}_LKfr#+%>X{2fU_GW_bS>{>B;Oe5&ItgW0A!}*9gDmgKX z9+*0ETWB}eU5m5bn%u874EZY_X2P!AHBgmgdMK#K6GLbw=BWY2PhYV#nH`IA3sRw` zG_$-3m9Op-eR8XFt%ap_!(pm%DVy+_+RQf$#zC?xes87!9~)ky$?xPI`2cM6D`hX) z40-lm)9=;S>2vh%`jO#p@pXK6cun$?6Z11<9vp3tT?QwQz+p<2h zp0~DIE3Gls35fT<&-|Ua5!L|{%^qfR<3~jMf6zGJm~QkoiX#7vyb53Zi(wydQlufG z^N$aA54Q|QLSKg73_TRuK(YDzg^mq1fCa$2;wgNkr^O603|0V5weP*}^dQP&65Zvj zvsDpKQ{3EzepZS0a_UoleIpkt+9s+V+ly?oMlKYxUU8PY$b|}43GxC@qj#ht7kby6 zx@@~*7wT3ep$>kLcnynPC|YwXvn`9nY!hRT^ zPU;KDJ6=;4D%D_Bwp9}sy42=q<=KP#jheX7q6TWRZHioIPt{puE%g0X#V)j_>e2$% z`hiNQO>--=y*72BGF2z(Tk-qtnz~Sy2CIUtpeFUJ=%t^%YUo9SRoPa>E|j3&i6|qq z;Ak~>q4ZP}DA#k|Kbz(*)SQ9(vh*016&J8fVTt6gTBa~tot7yXne<^SQ<&pFuuNgb z|JX8x*$-=(!Yp-Krf_xLmML8S>y|0Z_iL6Z9@pV5Q<&@UmMP40Sj!Y<`E|<_=KB@P z6lOY%WePJCwoKu=G8bx0rLMwiJw284kgM@tvF zOr_XijvTR|$5ZBJw3*C<^~nLZZmTb}ED0QLWRC>F7DWk_w>_W?_R=@y*uUcsCLcOV0xID>Y zwlS2Ns&P;T=~cFNq0Lkp!NSr=kFAvpEvC}BD{)}HT+(A|;X;Y2^nHpcS3>Erv~{7$ zRH|6T;_u*tvPzG$l?z>_cf@?DrN`9Lg+5cwXVqPv{LM0d4_u~h;+|B4RRdwg-e0hF05U-OqY3MT5e6K;&J<6KbrpmZ_H^#fCnRg!90Gbs)8j$E3~C`QR>w7`vOpN3+zk2?CIB?#Ez_fwHtkxe_~ z9lkgXO(|Umln!1HP_MEy4Lzw^y43SNeR1vdswHXYM%7&;20sj-*S>XncE${t^Oh-oBJvB2P z)Kfql>T$G4PvIrIwgA&(X_c-B9w}Fp=`l4+Pv$4NIw;iiYRl4-GUt&m$@Dl%(r0I8 zNsa*2t8SZ~n7I*i>kwLcoUPLnGGkm&eCe^ZO^^3FtV4$CaUPu>$F?_hNK-w&lJwZj z732sky=psdYa7K#a*q4|O+H>q7h{V6eTxw1-`@v7(X!}U(XY+WoiScj5<$oC#2bWoYvG!Qc zTK5|@#ss6M(ZOh9L?ZhmZ^nNUUm2enxjS;Xb)9vdHP;#+Ss9rU=@}`GSk?gR6sx^e zWSNj=?2|j?c6pUNSEgW(&_OoTf6)&@s_}?^qrO_7sSnjpM9#kivKxF3>BcVe%kb9l zs>H$YobXxUZsAtpFk&I>3H>f~1L7de4xJV18EOgH!q4JsvDf^-d_$WO_$1HsruL)^ z7+Qn?P!VU9)K%=lZ<~KBcM-oPC3Z%`NH0LbX7Qr`e@eWdd?|AT5LM#$waQZBc{|*M zMZe-X@86VoR(Y)i%nrn@>abavxwu6IE6FiA5I3tf0fPgvRe2g^%?WbN4a7~#-6UJf z>x$T-T($B{4a8>UwO!EAK-@^ZJb?0d^kSX5C4o)4dYy}!}9lE$o z-N=Hwahw56-(9hJj|w(X3!Gl ztacbCQKPP>&~8*z(*d(PP_bA=D5`tcDHhQQ9e$@N7OHukx4RT@!o^wEy`vQK>0GkA zNHLGP$=x}MxoXsMc8g+;dKPGp!+ucN9io^`S6*OOC}ycUnQfF=G^>;!WX>)vZ}%r= zs;8wc4lzSLEjhKBjw|UL3+?R0bZS$3Hz!ir3OZ452PdY{x##WL#8l;>S!<^zreu4` z*`0|BH6w#NGBKI@&D(_uIGSR_gF7#AHVr}@yDc#>7)__@e=D{QEqi`G!Ibux^5OKO z?`V%IZ`SG+^J}Uqt7k#(i`W#w->FjN5R30#70eedcvGi$s_Is&DAiR(zVWyMMlmNB zE>CsgDF}PA3L0(%lXxV*D5X72TLhYV{9y^Uhia9jv>n--nYBF79;BN?x0p+{2lDvH z>Oi|ck1wU&$M>f2##M}0F*OQrR>e4)qlI?HVuFg+;HmYsdjr2x+C6mb!F{b5OXr%W zh8JU$`+i|1d~@nCqgL1M4*W`K+v%oe73U?nzf;YQ3#a}&O7oU#3y@WrYj*{HLt(Dn zNyAXc?^K*cml{--i_vtcd8%?TiXOV!igN9a!WAivg5Ly`QpD*_NBl~1}~Sx7Z5MyOS!mSS8Cry~W`;$oPZO1ytoa*klQ zdhO;q>r&cQt}CSM7DJLH+N4}nw-}lnuf1JJ(Jcm3O#wBx7^G@EjkT}jrn{$P2wvhT zae&s$KoLDvVt+noO6;STQLf>Npdf*{)+{OUlA2HccLlyU)I*|-CiGk`GymDU>CI+Zs_KNd%T>aH7ETFO%XR52rQ?HAD>VmRbeC?*3-zjZNEDXgq zw*JVnu5Hf#NNG2!H-WFcFIErMm{DWlTY&djs&W*z5tW_D9Q1Q_)rAd3@g291_7d5f zhN8EEMVXt1;wN*8#Xc0>QP&utZfe0XKt=!H<>GfY|2HldzuWnjiyzJS2QC*s64}cw zIAg%lxYmqO`u`!3##(e#v~#q9eZc;Mz1?1CFS1X!lhy(28S8pz=O1gA^e-Z>!#iMW{oi0{`gc63aO{uxq*>!T|p z4oPO)J)(Dil&{uS|tVqFErYAaXTK(lZaY@|*Uoz4chSae3ms4h#%?MteS!R8-c#1bMP!IN8IeiMW9;M} z4NWR#%a$$?!SL+)`EvW;ye;rKN6j)-2~~IQ%YJyCtmZE2!=8 z*-Bg}aY+Fk_z0{ryvuFjLUXH(R&u^8l+@K{DRH5<&F>-QSGRIA`dSXc#vd_W?q%;V zt=x>hwl-6?r&1UCTBS_qFdTm9X#Y^fF4VP36(3;mD@$D{YI9rDXOquR>_SPK+d6yf z5*IpJb&)w4n*6pcTqtPOFa@h~yDxE}q|NUkdw_BmnptHu!H;Qh96AMW2Nbg%@nCr7 zoUD{lS?Il?EO()iJu$!%Oz-4#wQ-@3Rga?A5r>YP=jD3x8C$zB2<=jfF_Rt4XKUe} zm3v|o4iOT`?1>%ij>d${_LP@5%O?o6&RpSj!}#-knR+D|+d;2K((OC=EVx!Srz zVEdGN;GC3XK4+;r7;C=ANy{$0n*v>xx`S#lX_<+sgugr+0!-f7m=)&S$0k@cSSN9#4~MQfM!6f*MNZ{3Bge4C+ zJ#OwW?=f#Tx0;&}hhQD-1Ja1jzZCHZW}DN^$%q&@(j08|Gfy{9HBT}-neC9-uf#mc zY+%}^4oSrK#v$V?d4$kWn^+>Y-Bhx1ono+;-pANWC|>cG>se)v5^hoC;1Qg zjXWqnmhZ{k@)h~Keh8TZwj7h2gTmPp$)1G3F zw@2E8?7sGC$hvr(-Og@l7u!eLF7Yq2%QnvVNF25}bpTfK1qPqaE%M_Z*<6Wo0Z85n*<4u-GI1LjBOyU5!3 zviY3(wE2j6pLqxF{q@M-csZg_oQpfZz^pQ-niC*v8f=~ckC3jg5IF{Sy_wm_jGGbT z7u@r2jW1v^ve(#yJN}}v(|E$zVcd=Tz1i4cTxnctT!6b>ZOk<)jmgGX-0K1GC2@?C zjE+Vd#Ik5=9AVf-IPz2EACYe&2O}Rx-iz#xyb^gHc`Y7|+#k6!a&u%;WPM~UGF+^V zEQ>5emWyeTiILHfA(4KtIq4QTA<{ll9w~`5jwB*RM3XJ;VFhE8J=KxoZ&Hs zM;RVrc$ncKh8+wKGCaU=Kf`?t_cGkWa5uwthPxQS022!KplGTXugNHB|(wMCfWKy*IQ zc|_+DokMgs(OE>Rh|VNBgJ>nu=|odRrxBe>bPCZ5qLYbEB6>E_i9{z59Zz%|(Xm9w z5Iu|NXriNtjwCvQ=y0OLhz=z>gy>+RgNP0!I)G?@qGuBANAwJ$eTnuV+M8%EqNfw> zNwf#i(};FAzt(hhiwyBT6`V@+6uYG+rTSOzMzkx@lZkdAdJ@qSiFPJ>0@34%9!Inj z(T+qr5IvS?d-Y7}>fi7&MB5QpNfr)_1^_Slo&%an?JmF( zSkD2r)b0R;;U%wW;h&^-8{i-Ch6j8jwOauP;qeamSZX%|-h)RuV7Jt60=xqMX~6UF zn+7}se`&y@a76~(PcFydJEe9#e%&m!jet#v+5%WFwGDu^h{giA2+>yntEILcundt^ z01Kt|8^A27T?LqiFf@RPh&lrpjQ}%%A&4gf=!f7jfS!mH1L%ejDS#6Y5e3j*YL@`Y z5l;kABDISEjS)EnkdT@SFr=0SXi~dC(?UN;?R>x?i7efrujFdb1M*zZkL5X_@5@!7 zZ_AaSugevnFUjSg&&p+>Ps^pCkIE&W56BwO?Xntln_LXKMJ@u}C>MfWEf;{UmGeO_ zmh(W*mvcc^$~mAlayICEISaH(R)J2FGeOUmGeF14O3>kQI_N-|0_`iOf%cG7LA%K* zpq*s}Xa_kNw2hnu+CrWUS}Z4mHj)!S6LLJLDaV0^f}hvh)f`{V%7J7s^+TjZIbH_CpX z8{`?FSINGhm&rb$7s}qCt7R|HpT-gJ3hCB@vG2lTbNC$MZJQZ}PJO#AB z-VL<3-W9aFelqCEdKb{+k14D{4c6!fH!4caMWfwl|rVtasLKf^wT z&lo;c><6tIH0y@!w`201mBIn&b$=i}!lGi1#O0G$!ldF<7$$5z7SCJf- z9FZKD?33)C?2_!1Y@2M6EJ`*^Mw2=s1ALeGuf*qxPZIAZ{s^Cf-zR>Xcr5Wi;;zIk zi5n8vB(6Zrzw;8y;bSm6kxHBmPlKU}GZUvLPDyk|B!Sk6=82;c$%L5@@qfkt7XK=~ zKmK9-Pw_Y7e~3RDe=7cP{NDKO@tfis;R$eA+>M_TUxIvrGvia@e~tYm_9?Onz8!ll_5yMWJ|24zc?EBc-59$TkqRz}ogZ5f zTO6Acn;x4K8xtEA>mTcdSc50VI=~*GG}a{6AZEov(I2CKkA59J5dA3nZuBkWJ$Mdw z3XeqZi{60<2iHfhj$R(UFnVruDWV-zAu8bnSXB&;o&mpzuF>P8$3$C2n?)N%>c*q_BKRE*kE62Uus`~T!z*5T)WbqjGTtU?E!Xg z`&2|tXpfkN#dbs6wnNsxtV7lp_$Ghf+HJiIe~BlN^KiR$3vO!tU;PNwk3jth)Q>>@ z2-J_j|HKhcJ2Xf0q`L2Aq_yv6@J|_hCxd%3_;v>Wk4cABf7+wsjtt(O!P_!O@;^tA z{Lc|2|8oS%{~ST`KSz-K&k-d5a|Fr%96|CwN09u_5hVX}1j+v#LGnLGko?aPB>!^+ z$^RTd@;}7rrO^>2|8oS%{~ST`KSz-K&k-d5a|Fr%96|CwN09u_5hVX}1j+vpzm_{A z`JW?5{^tmi|2cx>e~uvepCd^A=LnMjIpTb7cOJuPhI1LtVOYhml3@kIa)xCLOBt3h z)G$;tEM{25u#jN^!+eH$409RgFwAC{#ZbjClVJu!CBt-v6vH%zsSHyXDi|g+Oky~j zVIso>hVcyJ7{)S;VK|FnG{Y!{kqjdkhBFLf7|Jk&VKBoWhJg$N82U4u$U$qZc>PGUHbp)4gJ94Iv|kwh&G0kBPYgdY{EOiS zhVL2v$?zS+KN$Yb@Hd7-4Bs;RmEpe_zG3*9;VXtO8NOin3&ZCO2N@19>}S}=@EOCW z44*K3%}B{f!}|>HF}%z0Cx&+z_AtE7@JEK->id6$X=$cqc1(Ve+>_jy zyfe8rxga?K-}c8RQHU?i>Z&^=R>tRPQ**eoY&PpOm|3PyPat7`&>%VFLC+=bD&$)gC z>PMh{1nNiN|Md|l*Uvz}^I$Oiy!Zo-n8|_3gO25hF1(|e-qothxsqdi=NLGP100z? zP{{VWVt*~}lp*%zWYek7t}|;sych7nOo7rl0!=pb4Zff$$ad}EH~6Ryw8)0P!B=*D zb{&q4Q=eT&O{@ahb-b9A!llWj;^pLebwe&fk8VyR9Y{$i7`!UXkEH|A356`LBbtsQ z&f}&9;^{bIwO3awqK+fZcL0dUF z5lbmu)nVfDP&7fYq?O(WYd+<+E*Oc@5j8Y)g#!3EqM8q!4dLU6#f|i1aK1TVPxNlJ z3sZX6BK^cHXCU;6esUc(DZNWey%)~6?!c5{5nuS>g9JHZAt(J%Z=gUBO0j^)qwYXK zj+oEaoDCJ^hFQ%Hzwgj{|hcD3Sj^M literal 0 HcmV?d00001 diff --git a/src/.vs/src/v16/.suo b/src/.vs/src/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..5e9a3fffb0673b36ee6a64b9c74bba3c787087da GIT binary patch literal 82944 zcmeHQ2YeL8_dlxi8Wh12I!Y2R$)(X#h$!9A353h#Ac0FR%yqPy|-n@BJ_KkgwKVG}J z#U~~o*WFaj^ylf?rka}jRW)H#Ba`U{Tvr49dHVEeKB@v(2EgTi?ku6eRVF8XZd0VG zm#GMTiK&cLDeTTQ)hMs;b``w!U7eTj95v>>D)ERnyRRI1ATT;j6HHeC`#6MpnWk2d ziudDlO;yYBljPn{17F30QNg~FQ}GjTvB`lPl$h**EYQLVum?_}{BGMY@Q=jX#YzeT zOr^l$FcqNugz*~88MsqYjwx^e_^UL)BeqS^^3OrsC!5RZ)q?kj4zIFZlTNb%3`fH^ z1JvlX5pD`t1!xFp3^)(a8c+|=6Hphx__x7dsf5+{*Wfw=&;d{f5D91lxCzh}5C!NC zVEm4Xe<}Q{mGG_bmjYOn9smm<0gwnt0we=c0G$C{09^sy0ILCUfExj~1JVHLfDAw{ zKqlaFKySbmfGYug0A$&Ifc}61fPsKPfU5vmfWd$vfT4h4fZ>1<0M_>?KsI1BU<@D! zFcx41kA5Z|80GJ4H015#`04IPvGzmZ+aRFFIrSK;MrU0e_*qWyS zrUPaGW&&mb7OmE|E&-XxBXv$ch&ZPA;SNk z+dun)xd7JhweaUD;p^egSHcV7FH*uw;NPHx`3`01a?LgG-GXb@4eOiNzHle*uL0Zz zSPNJOxEpW};9kIbzifmga0_-3FUeV{HK)g(~8gc zpF{Y0zzfQ~7Zray{2fYor{cc~e-~i4a{W5|JxX{V{5O>FTZ(@`@!wYbL+}p+-c_#O zhyQ^R{z&mZf&Zxz{#^0Dfd8cu{tEt4CHyt~Z@PAUmrxgDe#s5w5 z|4{tXieIIQOxJ3PUqkWFQT*D9Usv(#D}F=8Z>;!D6~CF{pQrfeD}GD(7bxM2;9snS zTfuLwgxkVzr-VDe@2G??h2KdDM=Sni@Xbn?_4=O+j{<4XB%IJL3ZaRVz!%kf!9J3^ z0Qx7YL6ZN>fpR;jw;E3=&*=sOuM2qlLep_U6V8IxLmk`=jfk2t^_pOg`fq(iP)i>y zuKJ99Q7z?SC^Wx;z&{=uSt@Y4k&nsH!Z;pqLnE}Kr*`34EP5-mnt;YP1AjeSHwTE8 zpZuyOp~cTJ5NTkA&wOzFQ2=TbA!jAXA@dRElaFNJC*D>e;9r5bwUrF~*ZxVp|G)0P z_W%F8{rAHNaEK`qa@UFRB_*ybaUwAaF2Ego1roS@81|1bkUe#)%K~T=ByAorxh1JT z8ae4J^$4;>N`At7PRM4DJXC}iJjlOt+0Rz&d7>ZMghw2^&;=WR4TaQCge4(XjvDa4 zqauGN;HfD7v53oYI-LmqxPU#6{Qjj1{yw-A#h;6~)J5q;@F&Sp1OBu8SK_!OyXxo&)}n`7a9i3zY;#@W%$>K-7Q8 z_+x;d<2gDJ{1(ZoCdc>v4+sDENFOWqxBFgxD z|HCQ&NhIP_5)z|-Ak9-wfaSjm!AyW?`F}>-P~=a7j4I$i+aKlQNPsB*t%zHoq$X1S zM9EsCyx`-p{InyHLZbMeMckK^bVTr5g5#I$y&TVo;@^h26GOnCU@-r&?6kMgafFi# zZWxar=RMf#7okVag5|gnPpB0HbLju2@kb;giI!hG{_(}%54k9mbb&J1(B-^1Va?VX z2SzFQiJLB1Ue#x``3+VseDSA&26ku~6EW^{O87Yj)#gM^MfNSg-x5I?yBL1jAJy@v zFMb&lM}hK8R4VdOj9CYc0#z+Zn}bB9{O2oq&_2@(Grx-ZoXfE`>raKoxNZVy3WxwS1Dp#u55O@o^QFdBecFE+j)dO|&>GMN&=$}R&>qkM zz&3RW;8H**KolSv!1jI_fNh?#hy8OrfO-ODRU&{oOEMq@&>7GL&=t@P&>heN&=Zgf zNCTt;*pKuAP?lZ}=nc36K>elpq5kXkMg;ngX=p0 zR^`48ejdQCTvMOQ2T)Ej9m)%~ME0A!X8%#FgiGMFeYlnD$%;P}ewh-U4u6Ico(2DE zC9LJ_e#lJ`K$ZkCph+pxB_|ew9-OBw1JkrY&L8Az9wMshUM z*Ye{)Jab7>R~{34u*&c9pY}iErQ8w4Pnpw$4IM5R{vp6l%4C2tvaMbu2&oVD@>U_}NzH zvLlCMo2KQT(u7(DCCpX0$1<}$3_>o*g9Z3^K?cfJdih=c)BeoJXvhZ-Dny z`5UbK!+?XeFaWKAKI!1=;=;gR4T;>tP8iO&pOfY6IFxa`#D9ToZt|P*KlN|wV$=^s z>Awtd*UPV?Y`Iw9(ht~5q@GnP@r*j4DE_60s}vtN9pEb$enU}a zJ4PCMJx$;YgtPuj%m2ReXBcwBxi8jyp#H`;7m;Dq{|F?a@}D~c>Txz0i-W8p5W|TK z7T6K`_Z#&u8?>`+o*$7Y<9Yo ze@+`R-z)03Cz+uP~sOz*td#`@8M zC9Ru1XBk_6?(lc|uI`#L__=52?JHVPyT#X8ud^})^XXe}>b1jI`dd*tdFaRzvQf!O zyIG=pvsTaMP1w=MKI!noca;p=leu>KivvIuz4eD4`!`2ZfgSBHxp*`N5Tu&CUTy*f ze2Q{M1b>{t_Rk35FAV`dX94sa%dcety?EOD=Z0AR*b3~g9OsS&h|<4#$oMH;13Q*~ z93F8@EQ0rIEh!f{&-tpW|au{0}4UA|)LW{D~FNKh*kv6u4gs34d_@ zqkV(J3DNRDiMVSN{577s_qlmJB71*0wf!FIky0XF1#&1c1A7Bi`K$H;s`T}iM4mn( z2jYgR948kkq3n=QF-pG?1L?JXLeGS}hH+6Pj_UVZnY!Ro>#WCfYOWkuy!P!;-)(U0 zIUX>No@@usrT1OhwgxM=2A^5}J^h=u3_1Ppo4NVp$#dd2xBU42{#9x;Tlu>6&$@Xv zhP8VmzDvq`FA%qu#!|(}Ru@?x6u1AGOh4~EVQY4Gi(iXs9lzUJX2@&O|4| z|M7Cvfd8ETYKfb_T)Fb{AY;CjG(zyiQR z0OjRkz!CuUS325W>8rLU+LdWm;q#l}-vT%nz&IQu(Ercew`r za%v(6dbMnpqDH@A&!qcr8$2;*?~~)Rwv`+{THqYnDC^7o7hl=Y^7%10PLs4P--3f9 zVE@s>?*a~vD8>T|jdSwYLcPjS40fgHJ8Y)Z9v@%bX7}m?Mfc5o@XJ;1Z+buQLPl=; z?@C|jJYan9Td$*jK@7(X9MQ;zN#dVB&w9s=Q8mtu+!sCa z{&PM&`Pi~XF&~}meD|-LzAx;*t&H+6Z2W48^~;}c>Yr76^~Xy-cy`48?aLQ*pW86| zo(*Xw2b=uz#O53*R^(`ZAYR&3MDbJh ztNrhwa_r1UDOjx7hZ-^E_TN6p59f2Vj`NSIj1|RC*{l)@LjkG(uBaJmacaYS-`7Qg zsvKO)Yi8L?=(~n^M38rnN@h7V$sx+k-b_pTi!Q$k9@4(Ua3DwCp$kQSlHZX3Gwg1w zE#ICOX>~^?<|QZDEO8d?^NPZ?zz8gVZCLO*pP1e`JIh&AV6)`JWm|1-XNfC&e2KHP z*c_8TW4c*!(e!=()Mqni#KtBhMa9R?$h10KcJfO`=j=S^lp=@In&;}Bk&#_uFLt`J zU4@Aj`&6rKqIJAICact$S>Ui|Slw2Vzg5@4c9%QL?sgXxjd$@$_lY?ha1|er!hH#bGvd3Es?b(Iak^*OpO_U?zViS|2;>~iR)D*Re z78KbWrFnLVAH;KMiA#x!lM|%sAB@E`Bnl5#e0*Y5Y_g1Onm96VYUQ9c6*!ArIfc&2 zU}ACN#m2@(B`6g#K^%M7jW^K}rPS0|VAIx=K?RDlBv_(il@h@o$_ZVLW2xD312Q$5 zX6NsFWonz94U?P?p166}@MrR}AKtNYPUNveB~9iOwn^n|mshvXu170YgzJ296=Myc z{%WJVvxQ1)j-+LHGzSN_;3z2`TV&5Y>wyK`(Ibr7qiJJ$R8~!@_;b-~^aseXL2p1MO?1zuv6XDC^cu_VHPp z#ur^XK<9;HO%@a!@y%gylR5shw{s z`SnzT`uBF&y>IS$nJ>NiQ^#E&X1D6JBxB{34Ig^a`qp)vKljTWTOb@CRpinUL7o3e z)KmPt?RUO23Deg!uq|D`V|DGzS55yh{>b}39D1Ynnx|t|y|eeb(*x4eUu72L40-;` zvqjrOZRM)S*!m|IbNiM9^-K=1fudBYxom~}+j{@0T^~Mt^LayuJ-^{VqowiF9_d$Y z+6~jzKhd}4*1Hb9HIKRS`9g8IE(XXPMT)XJdw(6te_hnXnZ@{d%{hHkR{`A{- z?0&jQ{j5&U9c*&`Hvw~^5KZGPJ45*?GX9H|R@P~dYJ#wTc@a$WNH^F5D&~#KQxW{! zgQ4fb!G9s}hhqOv(L;{=w10AZ%{XM2AW_R7MFRg)`&X1Skez7<OsAAkIT2J=Upp1NQ&gwkKMC?fQ?|m0o_Qw8BOj27#=JK9;ji9V!5phZS&J19mtxhMdd+8wTVLt?A4u%wg8SuN9#*st zdFUfse>v=7L8+i?<>7lfV^<$puqpZS=WZP}ZtAP&Hh6z}hiALJ`u5|c8}FRH_VwRb z9JP3=ua+^Gf6L!e{z6IevE=^!uM<7%nJk(bam}Y4vioix*1h_yiV)$3Xm%Otjv&+k? zZpryFsz=14o%y97Z!Jl+JatRJ!ui&JDsHIjzvmlV|K0`AF1zpyJGF}z%Gb~NuHOjO z{{0OpRxpjcQAA!aYLlq7Y5a4$H^0&{dhX-9vmfL3 zY`VN>Tjzy0w3{*b)4R4jd@gs9_=z09X#r`LKqcwS8D6%(JS0F6ura#aR$5Q3C1s%) zPB9OWk|^74nOgxo&fE!hn_C=*xf9am{0Y|{cueEv#$GkOQ_?00#PM}wjHy4_R;HR3 zsZN(kb-22I?k3wspZ7|AcEx^M>!a(IHmfu8=Rt?7{nBH>yM1Qe_!P6Fb{DGeo5i5l zL(ee(l>cN*7Jxb-jV8Vm@4*c8o$HV1C)z5V1vna?*} zHL_k=e3h$;X4GB(`os0o=4*?61I$6)Fb$&?Uu9OY_8&s~^KbX^`ee4ZG8BT7&)P0O zzm}=y12u0Ryx@-2l7c7G^7xpd0m*M9AMS?ZV446I6C)yLc* z+y38m{s-qh>Ha(aqvG|~m3jV$XUzN9gB_9|8{K7H)Yj#W`4>lSX?n8XfIpgj{X~Pv z>-Py5qelVe|gxTwv_)-}IgIRBCt z%>6n)Hum(-1xLBZ)-NZ#r?~EV`1Q-5BMC~bdbOE)CtcI=_K!z@GW*E#=dXS_b$+Jf z4{A`)^2(&v8d%&eHFFjpQ-&sWc(Qy-2Pjo4RXT%of-7XoX*9sxbIS) ziQtb9ZvPE={r&I2Ev-m{FNQz(_?vocPk?Co|3qBw$EFj*ufL>(_HWJyT>%iq&x6|4 z{TDywwy;jQ;GD+xogJ7RCZToGJPlW9)CJT7)CbUhrGiC||7F4A*$Je!U0OdobQ=A8 zbnA7;ThAKVZuOf<9dmxoJ=x^8cW%CX#ybkQY3GOmTn6BZ9(Ar{AIng zAa~uqQ)Nk)Zhd)!)3VXIJFV=wCyw7cXTk-a^+>sP2{Pv*2H?gwyouFSr_5h=Oo-jWVoJx9ldDew006{GP{Ze(N?}95Hs(V-LO3 zZv2S{@7w=P>#GWY$uHBqCpm-0pMliSeAAz!N4DA4y7-~CYu|f+%lBQ~0~_u9V%U}~ zQ?BdRc5Bsx`R6eQT5e}p&X(~1nd;vd?Q#8u)=0}1lGS`$ySVt#UA{~_>GF4BpVU%&U4=YLu6s*_U<{{Jx^hcf>iSHb*)73qxvFc0u5be|yx z=KvI^W?l8skI1uQ>i*BfAoD-E^9TO@zZ0Dy4a@Q#;FFg1Z>`{_(8`1Dn5=I!rA@%R>vXl4Jpl88rh`QQ!Q#n ze(}+jC+9SEE_`9~)omhj4?MXeP!5IYe;wXjtCXR$UjOS)KbAqei#q?Cev^(r_1rCW z-Pew|?a6s1m;65J^~ZZ=jDCIZYfHzD*euQPsFYKE2`isSD_!8{*~eK+9qt@=VR2G? zLVAoF>waCzx?d%WK|Sh(P$$E7+V^{I*tPACF^f+$sG6B3njp_HAb#q57rxMRd(GOt zY96SWnfCGA)Wf$gnb7bc!hIIr{cGOmbC2&s_=z8?-kg27ansHbnQ804FP_!#?u3Y5 z2&aG3uK9<%H?QoC@Uh+7>pZ_;ntd1IYxDF;>6N!mNqq981##YNSf$Cvs-ybnG|fzF zIlb>wSuxL^?1cOFFBh-uKk?nSvvL1K*KLQAQ#QqR#Qg_<*xo92-9^Ri5kB2CtLV<_ z3vJC29{7OuvFEb7k7Kx}4s;7x|Cxa%$Yz z9_KIq1mR^hQ};a6@V9C^5MFrOZ@<0q$DJ2B@b0F)-Rqp_IO!77YRbXcotib+waUKvLndbD$|Jc&ufgh`3rXyZw*%4k4XYCtlg#tJQBMpCSClhpAV6I_IJ%b|X%er2VI6 z)p+U>h8xtcGW_7r5BGf=arR!+a@WxH(|`O9;krk&whVe;!Eu)B&#S8JwbuWAH)?D)Vt$(vdeAo;IXvp9WVCc%9*uuO&BZ(k-_>!}nj@b#sT>4}U@a zIkmsV9Ur!yUc~VBiH=p{Ub(P<;eN9sRxGW4V;$1A;nHQp9+^1#rtJumk4vTb#7O8! zZiIQJtrO#AT6JQjb$H}oPa7)k$*CC5KxRv)Gi7Ubh-AZFm!;h0s;n5V4HMia?SBM= z4GZGj()j!U@W|puK3j=K83{3^gPMWr418ZDtIXxL7sjMJ9S#`exo|q>a(j`zq`(%F zQ6SyGT)^14QKOWIS?&_7s*Z{*blIFGj)L5%$f5QU7vAe;i81pR6`2k>Q(9v0R%9=A zmslN9kpoL}9R;>N_OijwiT0vyxk*XZ1Y1I4Y)ZVvZca`a9i=9&%|&mkE8lI+b=Zx? zHM$y#eU6gnTItThVrz-Lq!zJd6-=|6s+npn4@MM)IK3v7S{()MGBts*v6V`p(Y26k zQ*FpV$yI0IpO{VNt}b}c!*|@&$1|osasRn4eajn-A8KK`Ygfb5+Y@o(AGw_4WFB6@ z8O(9uU+(GPkkhvp98LY3YHTuE7h72gN>+fyD=gjn{~CT|=}IJXA(vFi$A6ei zXRmyuJ=KA7j6=CRqY3r;-&ZoZyyVG$OP%?TP*6C@b;q1|_-7bYQ7k{4%MQm?S6&MD z{r-CPXLZQyS%2oce$IClE9Wh*s(t>78Sg#x<=64kn@@SUQOy@(549_NWJ<%TRWARw z>;943m|N8rt@={iAbkni?_aC)4+%l`e^lc9vCXt_K;-^CX~X9XS+l%nLfR*Xw%$;4 z?9T=5KHK@)cMaw=|0Q2rnkdYu+=JREFBKmKc3S&?2Cb^mDK^p+NRR{3A|Icl zUBj5(&o%$kX15MrF=l_v%TIiL;(PbtRbv*9o}9O*$;O4YNjIB_H zuks2+*+9t}zkOUfo+(YkgHWQ+O1h5N?k4mscG2Z`1za#8 zofkh?shTq^KhAzS@@W5WqTY@B^w2l2jJhR$(aE?KX7fGu-)!^!xPrEu*6t2ee$74M z^S87s1ahRasJP2nolX1lt5J{FU3S66FZTc658tk6U0h}{cQ}~e*Z%z#O}E#XmLtt} ztJGJ0i2{xB-w#zRe_4SRYK})}r{+0Cw7~Jqi*B%g(m>ipS_w8CU(JYv?XDN>WfuI$ zVpUF>6plxTwzCXaqN5Ru&r%WM={u=_blBF+c$2?$XwoxbZ_C44ByYU(`A;%dW|C`n z^c?MXgmC5GnZEC5Kd(p2-_(8uwi2hyInEt3w7>bNsl3aY^H1WAhTs)_5yF-)riogPmvk_@d@M6fW&d;!3E_ zX8fk7#%1L8>`D#hjU$nI1oLM%R7?E*nn1q@d4fM}qm99(K00%`iON zGY!G*T|wB)BUtjvXB~y7b&u#0%;*e5$P{J+TUqIR>#$F@J8(dpt)!sX?Gmp)W4I?= z>>DbbE-q(jQC_yoKB?4RWV5@n&1M|)hFdws4r>{Xcyoc#d}3^7iaFVwoSb2vdHY|T)tCv`n1tM=m{Swe;*qiR*wpxFi`kqKof?;% z9NjA}Gc!4*S4v`Ls(EJRGnm5pHfLd>v&byYVE0x!-Bba=L%nixtqw@-YWTDT>#?rtou6Vc%Y8#mbnHZ0}C4 ze8Z`$G`G-RGTxpio>?5BV+6U%Gn8x3w@xnL$)RXn_Oe{-_|Vw*8iVswPy~9RGO-v) zoG42T&V+PgW_c}HOWn>w>}U?5QO`3tL)e*|Q(jZzbTOJ)eCSe8lItufvWw>j=ND88 z^Qu*a6G;V?vdZO{Fxs`zL)da|$u6B(FtH%V#)Er9>X?jC(8`Av)O}py6=W3a8l{EJ zGK6!>sbQa#QxFO{jOwUyCa{&prEL3D$k`&RL%c=|>Znx`NUG95g$Tk5)3wG(FqH`M zi4!^Fct~~#jbpAcxhPix+Q2`Ir5R{;mm(cx95 zaF-R^LtqAjSyJsda`JGzySQ{PUJv8}EjfkuqEd05G%yoHoIMT}>l~Mzi`xH|Oh{+c zV5NLHC4^gsfs{}(;Ze(lGhwudkkwBNsEWn;(x8r$jUn5+Y5Z-HQbUHnIS+-H)e&zP zf0fQH%%7DzNu!)5C7c_hG+wXIKByz399yZ|Wy78v@s{%!E0=vdgZzI;g;~|n zwQzon8L*Wrg_4*NXBW&RSK)jzT|v*kq-hDWPLe6(pE`k8lV8?}$xo=zk|-Y*rs{}i z@>Z199+zZI%r!^b<1Go%7TWYv67$AIC)lmy;!`YkdwgO_3{F%_Og7JuE7bGf+{BOh zJf_w(9t=dd3H*%8pON$C&2rfm>U8+I-gYeY^-RG!s2~>xB_mu*mbiGGS{mc2HZ0JQ zm&RoLW7h)IQcu836s!j?lYdNpn6C-bS-&+*QP)+PBDO77!hb<)P^X{tJ|QJIkguox z?vyC=R)E`}WDKYqO%srg{k)Kp%9!!G5C4f8PRjYbrSAMyOn$Iu22*7oIQC*vrShk8 z!=0_KUB0>?Nl-TUVhZ;?VOr};VIKCQxoy)`&4Y!4s zWZr6QkVnD<(eIs?mlMQfdJthQxy`6tE>ks1(e~)WW$No9Toz7TVWR2_wMV38EC1b6 zTV54xkWlk(PU7aJbL0W5%}Z+eCKmLe0d%oSXKauz5!t| ziOaO@)SGGfP~#gwge}RUt zjEO>CtXaGK4N*s9t09RPTq!kC zDHi}T44Mt}5yK&^cl8l5kzU=c_i806-3lX!(kfO=ShQ6c_^etMd%llC<5^gHWra*F zyhhi+q(mz%h}1cUTrIh_+Y*#;hS8ID>Xdi5%Yz$uuPToA;&yeWQV&UJu?-;U3YDVJ z-fu^^1|Z{~vuL%6N+?wkkIC;4l%S!<6DFemc)Og22&gQYQJL#egr@=Pdo3<+9guXP zMiC~MzWNZ&&C-gCL0B@z8a-xIS;rOjdf-OB3yA}d{PYop8s7lYs$`|lV>d|YjK69j zfiPeCbY7mN2)3AjJnG%og&*Aj0$)^qbY;XghC7nL|B&4e4Pk-R?wV*DkeJ~_GJtSb zX$a>~!iM+WK8&KSC=q7N=6VSP?wO5=Z2)n#UtnOE=ZaLyq@OS))k!~FkcqvZ&kUdn zh*0i08afAHkj=K-o*&{ak6O}53X7e+?6SV81$`(?7=4Z9L^)X^w$;H50YA5pVbFF5 zuSw$2_9fPn7evS}U91&e0TQj~xiFdZ^^|fdA;42W=nNBC-XmXs!zQLugmz2&+g810 zRYiD0i!DmkAXd^t<;Q_VY+I>>Gydk?MzvuEmAB?xsAaqIb}9B$lsG}wnQ1g*>Chf_ zl!h5`&R{Q89nbbDZ~IJuG%Ji?0G%SF#>l^jZTx5%T_w^4x00PUbC;xLQlwVEDFnEWOys#qVO>-O$U?WfY zdu;-VwlLxdQ%zq18K@!KdW0p-%;?=S;cW7&r+ulFmSE*G!=c3xCYF91=9IeX_#q#O z#VV0l!t3v~#LBObSOPJGiKWk3Dxv7N0Z5$nPuVuvNNH{5`z_lAT8ZFFJb6JSnEgSm07f_gm5l5J6`YcypW7%k z_V!6D*fRr&(!G2UTEw=YO4z6&rdpCPcGSzWzp|?DHG&L~W<}2ppc18&>RKv+N|-wE z?57o0WHEK1c}s8VAhamL1k;yLc^U~dT?rdWu<&<5*Z0~x?ME>Ggax7)K(HPff(=7h zvR7B;; z7(lRcdLdB0mcnTDRJOE-wiCXd_NBn;X=pJFCYDM#qwE%EvSr^#y|Q_cD^S9hdYLx@ z#So^JzO+BWp^oGtww=@5WNL_TMkTVAaPO#PEpJ+t4-+-4B@n{^Vr43%qDgEt!j(v@ z(2hY+h$X+|#aKSX5{+R1vDgjDE@E2`1f)$Pf0bQKSmNv2#qvY5i-j6pn85nos7hX~ zU&)(L|!&)SA@jE2t~y5}4Y@0libEu0>@ z&|;tE#1-y%^oVNW!}jW#CB(-YmvlrtZSG^7y4~ zesC%p@fbTAcllLOei@uGRLn-@PoEOG;j1Y<$Dfj?ZaXO_NbV ze%CPv)RCXXpv0o-`F=JlSgQGcsTx~HR^;0)m4$W6uT>V}$2v5FL&VFZeu^&mr^t*> z&!0Mab*Sc#->ED@JIR(l&*i`sTL?eXWtS)ssLYi~ahLQJFSbXyrK)XbJo4kjy?pp= zgK~=%FRypKjz{`zi^U<rD()Klfwl|QD+Diix@ zY9jn1YoOL*tUUIYDZx0lqP&Sq*kD++AKVN?fy%&AS+&V8pv!HJl9^JlEMTn~Qzq&i zxl(^sBK3oL0dbu<2eI~8GU_iJ1^DXe!D?45kCjIcqiVVkZIqJ7I1ZI5T3jh9`j`65 zxj;KA^w!8cPjbMI97Q_7C!P-pYd@46?)b`+n)b8AqN(}wtnYY@BPZfuzfvZZg7R1% z<(*lb%kqts@g8@&LaKS+@upU4`hTW4e7bn2%aMx%BM!Fw(DKW%*ktK#+0I}?3I#}s z{dXXG8q1%dV%L*DzEqbjG~sbzFgr>NzWyw?BHx-bmM+1qIr_N}r;lt;;s?tswL$MNof+Q_~Ud_1pac|%!6)3&4cQ|e{~4>WAW8`J;(Cf@Nh6d6n{(U$o=4=_$MIl?hx?DqaElu zmY;{-4g-kdFGAcWl>|lVKOUA(z3fgk=^n;$d)b*}8t-W7ssW+J}K`IV|%jnB{>f9!^B(^;h+L<25 zdGx+;XE|lbm>C3vuhoS4Rp%hQXB|w^ar?=-Y5A7aTbGkh80anhwlDu{=R-+3uAIG6 zH#L9G3O?R7na)LeM$n0Qn6&YN?2 z7(yuY2*x%3b13X5YXL&(Cq2C5Jt8-mT32dbDP4H#ve7NiyN3*Q<$wume5lj8_BCP|C|K^+%{;+`-&-1a#HSt-o%-HIG`0 zy2-?G{w)UZ1lz1U<~3^G(j-}kjH++8G_KoYK0WI+V*TXZ;_YPhBN+lL#JSh z`ty4x6E{KWk6lzg^0Y3No?IcfOb--1+?bTa1(DpZ4UQk!z$&`~VB0Z7rK;3lx`M|d(eOFM){Bapl)#onn z+&7lLNPL#W4K znv!-zCUZ$$q#mr-aY9Dwt&aE1SDH*btJEWxxxQOo0k2wENg4f=MAq5MpPvhl_t?%Z z1x)=*c~46pXMSRdVE#U zY6SW7vVB9S9c??3*Oz;*(lD7KgVLem9JR;$|2g9*@Fym%RA7(GU5wbhDE05P;M3MX z-laU`#wU&))%f%|D?n=}PmiUQhVwwQq|!P|J%r;BZG47lhom0~pW|*?OgQePMUi7T z)-iSMjsRNZDWTXya*mG{I%-MmZ#gT*nK|laoS~*Hp}ggIl9mC^xNzo>pXclX;Oq{^ zShQ788|(>41*8Ge0U3Z^fK0&UfZl*B09OL~0Qv&@0r~?50C>jVAi!0CEWlvE5P)xa zdCh}XwD)sxeFwm*+@}_h2e2#Gg;X43@%C!@Iu@WwU?*h1$>&c2g6@Hl# z=6vrAB|Hm0=f9aBk@-i9!Sl~=0yoP;CxSmAIQ}ZEPu3xdbDC*Zj2jS<^vW076KLl76X<5$T!R3 zv+ezXFl{C009pc?0ay=r!M_DSSXjmiHug#`yD1 z=bqE0Xl<11x_!SrbnMlUoY(aC^q)qAF_W%ClOM{EEzJq=5$<(JikDXO##?%hm zcimVp@R;+5c0)g#@YUf*?;Epg=#-RoceD4O|2M_|L-E-HnP-vyC$WO{N4=0%O#qT(vK6}7 zh{1ZL6TzP#X>xLW-+!)uO2y3{08#wx>&UlsBKQ*x?tiZXUh+Mi7=DW!Ilw>5-wpSZ z0HWnzfVlINv_$a7NvSI@_;|!W8u!`)MDg>39Mntc#PBD|kpuh_e-7>wH(h`zez)p{ zh(ERh{*y7w|9;2<+-MLY{y1q=6CfenLix+fE?WLZ8vL5Phot}UJ?ej_zxa9Y30t$f zTl`v7^KjMm>!|-xC!|}2@G=194D~HRmCjb4_wyk?RwM)IPV?KIs^0kA8t&VtY&)v?&S3m#h?Yo}d9XFea z`_?q?!5sszZO{!32fsi4w7MzHnKfRkaine3?c+9Xx$fYtS8x5HSL<)~J#g{thu(T5 z>XxyIQ#`t;LG|aqs3za^)7P61e*0pGv9`w4m#=8E;AlqbjKLdM7IxY<=O^m@ z!_o8#VOi=6pK~mw@HuN14NDmHu5?(}QYD|o^>K~`zV%Hq`4r7Y%|UqHxq7eR5v7sOA0FyVKrzbkrQn4SSE>LtGMdG=B>I5bQr%{ll|m zB;Qm#ZdT2qO?pMW@O;XV8y{%#S;qAxqwC#UXU$ii9#6AJpIR^INN*No@FGmHV=O%)DpmQ>l$;C-BGa*?)D$<+qvku8g{_ zQ{xotEp_&tOq+d8uZ&I$m(AO@;={#5__@JmF+4_wAiOwZ4<5I z?J-%U&ddUbJ;Um@lKic@4z|18S$4M@AIWg>N%x64IcbQD>&ybXBd-ekuR3+{cV=$* zzB*@=KwHfGu>YKhUPIm)SyW)lR;tTYT5K=Lk#CK+J9F~w z);xQOc=g34Ma8Aal{X04(lUh40hcyWj);p*Opb~-%Zc{$NmTtV4EaGkmzKDcs5m*n z0wfrW#WW-e4_ADAVpMFhjBJ`XGH+_-sOLQwIwymPV}ywp8ygpupj5~NaqM9?-b723 zQd47rO~3lXE>N5$!4eg#lqgROhs$l{Y1!72vQP*IIh2wp*ISMl9_83^;mS$qgmfuC zsnbXw9`QbHTTSm&6&Wt=AoIJ!@pU)o&(s%=tC Z4u6Ico(2DEC9J9N|LngSV*Gyz{vW$i-#Y*R literal 0 HcmV?d00001 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 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/tools/patch_elf_32bit b/tools/patch_elf_32bit new file mode 100644 index 0000000000000000000000000000000000000000..bccaefb36e9cef0718dcbfbc95f3d20cf7c85d71 GIT binary patch literal 14472 zcmeHOe{37|75_R(sYzSgY+;1L=z(0;!r~_BkENl3ICa}Ib5WoPbU<;P_#AsUwz1DN zpcYcODLtiuBKD)xv@O##soOtM!wJYecpTD_wL>IzP|Ha9^VkySY@*@YSrvkhSK!s45nQuJv2zK$)}SGR(I`Vi^qZ>~&T;v-)inepd7edqRwXZOc1q_&o^<~^(PeNWh>&bo;9mh#KR5oSRy;nFwnB5Va+N}Ch2MBfiW+P zfpcop9o-Cu$s;Gq$d5&xkWpXv@ardzEPm*!=S$D-y7l7~&rQ7g=8ZH4#zY%z=ucAu zW$a@dv@!O7H}qzv@d@R({hXL%^JCzpOX%FdiBo)*_Wn8eJLce*&%w9O!9O$yf88AX zIPemDtj!C=rSg~O;1|rn*U!P@(YVz36TnOGv9=x{Zm^Ol!#wK6X|sj}gQ;{Zp+{wNJde>t2ds^C@iug z9a90)N+=ADy#t|OB$f!pV~;8zVniG)tp@u;u>{)`@OP{aHhWfjR+alRy=Kp97W8** z4u+Mq(ih99O1f+F`gk&-bcK52I9^|WG9ktb8m5;t#GS3;f7JpFxrR$Lt8FmDZD2{~ zr+Rhla$LD`f~$+g7U5a&l#sKFQD4Qr12Q&RM``_<_`JcV#5zg*0m0kb4L$KBzj>R% z<2i--P@6RI^N9p3n0QF2+@?*uv&=Gf&cxHcqIyv9IJWsb-)G`!4MF<@CLY%dY6nd` z|6UV{Q4?=oFAte`ss*}?nfO{79PqG-$8(2T-o!5?67aZ*hXYt{6DHnKW-Faa1u7M& zRG?CUN(Cwv_$({%f%CdgiqDm0ypSmse^{3B0;W`ax-8>`OR2cK zEaSyesrXP?#tWEIF;tfEf~-`$vn=CsjP2RW7d;ifRI5nEiqUlLA1w3M)UprR#0dxb}-;wn}Jg;`_^iNT^ z2fR@Do;=bv3RjmrWHT6_enuYNVi&m~3pqu=pzuvl7Bi4k;TGscJkBM1ATV4`<9uy; z->;o`K-Nymxwoe~y8jol6FB;G+V;{+HZ-_0JHNUzD|JdHl?6^7y%G+4hQj;-Xpy17yVjc6~C! z=OOuHeuHhOX4#v&XtN<}GGZ~yq+WC6my}Rjm{3P*qW2v+YTcBK>v&tnm<^9^*fsweov9KIQ zIlWcv=ip9v>vnYkz%8}Tp(i2brn3QU>Ig1Dg{e>Z6c6-H%i7U^cD9g!nKhKp-kbZI zjdnBlsm-7Ji|!wJ__f08+`ecWg>^6jl%{Yml5iB%Zy1G#<0uNBT@6L=#PiC#&HDgU z9@aBngVTS2No7oUsKh$RrBDN-7`hh<%b-tsK0odWjI`bNB{;9{_G`cQcKfxDyj@=H ze78K(5CD2hVEG07jwrnTF{Cnnp;}$i^e3_Z0j(6!&iJ%bUcK(Ga_*>2Ui;_lyZHS< zd3l3JO*O}O_|1ZdW1=O>l~$=hr2>@-R4P!ZK&1ke3REia|EYitog%PYnOc*A56J!cLw&JcHZ$1D z=AM`;^~CxlB@vE=5>m3~>kx*Il3}JH__Hpl2cC_YGLu5^=qxRzLTYa`mgw`a?!<$M zkEN*eFT1hgMbrg2d&NkW_$E5W*czXu30$WegJgH<2wxd{-Nve8w6v% z`TTK^8@hOdGkQkX^MK6Z+UTgi-ML_geURO@xb>!$?i-Lse|#p}0y&zWBO$NC2ls*J z4t;FP;Ikh-cF6e(%x$B?wZF>isNY-db8N5bsddzQ9j*?CU0%T2L46oL=fUg<&KF6S~>QJqt5h$-i>TuL|@If{%z?@$eV!BAW+^z{DQHA2Q`d)O8m!00_Vyyw71`j0N^Nt8#c zaVy@12HY+#n(1A!<3f-3O4!~tfEicq@V>T?uM|ii+*nk+?*&iNc(aQg#QPO&_$U|K zRR*w>Ac!9miBR5oVMp)WQG9$~6dT#WBMrWP5ROyupoPmRF&;erAwBnlTRbk`F7)tZ zgUhrZ+~|L}q4&3~LpF+=x^{t`0=ElH2^+Z=W)U31?-WhFdX!=T)i%pL;H+mXZEjMV!JeerIoEqw39(b))NvD`6kyI5=Un1*C zrQs)mwEBpN>dD67ZR%K9P~HxIgBt2%+&mh}M42c2NFwt{zkzDn&^)Z9GqGf1mJkG8 zT8W3yLG)5_6|;!J7P_9kr08UnUglAi0TAI0*%(+S!yz@qJW4beNr(ECU^EP)kz|Y! z45iZ{NF6<>51~T+@B@a&aPP@vn5Q?{->)R_F8sf5cz)rjLg!7rn23aQK2s!GH%P|U zUGW?u{}$m-D3PH+I&X-+5jtl7t-_xWf3GmN8nXcXweT_f?-c%olEvQYzX|kb;T)v= zX`LdZ_~LXepZ7HEozTG=l0U6uga<{zFh}gt{?mH$HQ+F1@~3r?kk&yk;munA5U{w$ zkUy;}gf|F3%Af2A6QIX6i)3222-}6fHGe^~UC_arl0U7Zgn3~|@vZy+gz)bWcC;=N z(mIa*STn2t)4*X(XnaQNkU;vr0u$b>#~**QGW$!yk1%hzmA97R*|#nJlfr}dd! z2}dpd(?UTwMvel>kMJiJ|IsT9L&7&KJ4}8w?6Ves`rap`>jAR2499*U{OR~JNmvRz zBSZo^ek8vL9jrh3PfLb|u*(q3TWkE^fX3`EUvHQa;%}kmW{v*_DB)!yeh#7?UFXpM z?O5$eCVUHgoF;#|4oWrPXfyNGkY;4^e;*V$cg3>B==+-f4{KWFkLMpY@}uMUUEt7! z{OLL