From 403f796246e2f2bd5c0d10b461dd0a10a5fcc8a6 Mon Sep 17 00:00:00 2001 From: HailSanta <53960937+HailSanta@users.noreply.github.com> Date: Thu, 5 Jan 2023 17:02:12 -0500 Subject: [PATCH] area_dgb (#904) * a couple maps * almost done * ok * cleanup * ok Co-authored-by: HailSanta --- include/script_api/macros.h | 2 +- src/evt/npc_api.c | 4 +- src/world/area_dgb/dgb.h | 61 +- src/world/area_dgb/dgb_00/BFA0A0.c | 132 - src/world/area_dgb/dgb_00/BFA100.c | 858 ---- src/world/area_dgb/dgb_00/dgb_00.h | 46 +- src/world/area_dgb/dgb_00/dgb_00_0_header.c | 14 + src/world/area_dgb/dgb_00/dgb_00_1_music.c | 15 + src/world/area_dgb/dgb_00/dgb_00_2_main.c | 97 + src/world/area_dgb/dgb_00/dgb_00_3_npc.c | 680 +++ src/world/area_dgb/dgb_00/dgb_00_4_entity.c | 8 + src/world/area_dgb/dgb_01/BFD880.c | 7 - src/world/area_dgb/dgb_01/BFD8C0.c | 7 - src/world/area_dgb/dgb_01/BFD9A0.c | 1188 ----- src/world/area_dgb/dgb_01/data0.c | 15 - src/world/area_dgb/dgb_01/data1.c | 15 - src/world/area_dgb/dgb_01/data2.c | 15 - src/world/area_dgb/dgb_01/data3.c | 15 - src/world/area_dgb/dgb_01/data4.c | 15 - src/world/area_dgb/dgb_01/data5.c | 15 - src/world/area_dgb/dgb_01/data6.c | 15 - src/world/area_dgb/dgb_01/data7.c | 15 - src/world/area_dgb/dgb_01/dgb_01.h | 77 +- src/world/area_dgb/dgb_01/dgb_01_0_header.c | 18 + src/world/area_dgb/dgb_01/dgb_01_1_music.c | 15 + src/world/area_dgb/dgb_01/dgb_01_2_main.c | 197 + src/world/area_dgb/dgb_01/dgb_01_3_bridges.c | 197 + src/world/area_dgb/dgb_01/dgb_01_4_entity.c | 50 + src/world/area_dgb/dgb_01/dgb_01_5_npc.c | 458 ++ src/world/area_dgb/dgb_01/dgb_01_6_img0.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img1.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img2.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img3.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img4.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img5.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img6.c | 4 + src/world/area_dgb/dgb_01/dgb_01_6_img7.c | 4 + src/world/area_dgb/dgb_01/dgb_01_7.c | 3582 ++++++++++++++ .../{data.c => smash_bridges_anim.inc.c} | 4287 +---------------- .../dgb_01/smash_bridges_skeleton.inc.c | 705 +++ .../{C20F40.c => dgb_01_smash_bridges.c} | 0 src/world/area_dgb/dgb_02/C2EBA0.c | 434 -- src/world/area_dgb/dgb_02/dgb_02.h | 21 +- src/world/area_dgb/dgb_02/dgb_02_0_header.c | 15 + src/world/area_dgb/dgb_02/dgb_02_1_music.c | 14 + src/world/area_dgb/dgb_02/dgb_02_2_main.c | 110 + src/world/area_dgb/dgb_02/dgb_02_3_npc.c | 64 + src/world/area_dgb/dgb_03/C314E0.c | 9 - src/world/area_dgb/dgb_03/C31730.c | 785 --- src/world/area_dgb/dgb_03/dgb_03.h | 39 +- src/world/area_dgb/dgb_03/dgb_03_0_header.c | 17 + src/world/area_dgb/dgb_03/dgb_03_1_music.c | 14 + src/world/area_dgb/dgb_03/dgb_03_2_main.c | 160 + src/world/area_dgb/dgb_03/dgb_03_3_clock.c | 133 + src/world/area_dgb/dgb_03/dgb_03_4_entity.c | 51 + src/world/area_dgb/dgb_03/dgb_03_5_npc.c | 103 + src/world/area_dgb/dgb_04/C36530.c | 291 -- src/world/area_dgb/dgb_04/dgb_04.h | 22 +- src/world/area_dgb/dgb_04/dgb_04_0_header.c | 13 + src/world/area_dgb/dgb_04/dgb_04_1_music.c | 14 + src/world/area_dgb/dgb_04/dgb_04_2_main.c | 67 + src/world/area_dgb/dgb_04/dgb_04_3_npc.c | 33 + src/world/area_dgb/dgb_04/dgb_04_4_entity.c | 13 + src/world/area_dgb/dgb_05/C3AA10.c | 369 -- src/world/area_dgb/dgb_05/dgb_05.h | 26 +- src/world/area_dgb/dgb_05/dgb_05_0_header.c | 12 + src/world/area_dgb/dgb_05/dgb_05_1_music.c | 14 + src/world/area_dgb/dgb_05/dgb_05_2_main.c | 48 + src/world/area_dgb/dgb_05/dgb_05_3_hole.c | 26 + src/world/area_dgb/dgb_05/dgb_05_4_entity.c | 10 + src/world/area_dgb/dgb_05/dgb_05_5_npc.c | 62 + src/world/area_dgb/dgb_06/C3D080.c | 169 - src/world/area_dgb/dgb_06/dgb_06.h | 16 +- src/world/area_dgb/dgb_06/dgb_06_0_header.c | 13 + src/world/area_dgb/dgb_06/dgb_06_1_music.c | 14 + src/world/area_dgb/dgb_06/dgb_06_2_main.c | 48 + src/world/area_dgb/dgb_06/dgb_06_3_entity.c | 15 + src/world/area_dgb/dgb_06/dgb_06_4_npc.c | 41 + src/world/area_dgb/dgb_07/C3DBF0.c | 273 -- src/world/area_dgb/dgb_07/dgb_07.h | 20 +- src/world/area_dgb/dgb_07/dgb_07_0_header.c | 13 + src/world/area_dgb/dgb_07/dgb_07_1_music.c | 14 + src/world/area_dgb/dgb_07/dgb_07_2_main.c | 47 + src/world/area_dgb/dgb_07/dgb_07_3_entity.c | 10 + src/world/area_dgb/dgb_07/dgb_07_4_npc.c | 36 + src/world/area_dgb/dgb_08/C3FDB0.c | 1055 ---- src/world/area_dgb/dgb_08/dgb_08.h | 45 +- src/world/area_dgb/dgb_08/dgb_08_0_header.c | 13 + src/world/area_dgb/dgb_08/dgb_08_1_music.c | 14 + src/world/area_dgb/dgb_08/dgb_08_2_main.c | 73 + src/world/area_dgb/dgb_08/dgb_08_3_npc.c | 477 ++ src/world/area_dgb/dgb_08/dgb_08_4_entity.c | 6 + src/world/area_dgb/dgb_09/C46BE0.c | 643 --- src/world/area_dgb/dgb_09/dgb_09.h | 25 +- src/world/area_dgb/dgb_09/dgb_09_0_header.c | 15 + src/world/area_dgb/dgb_09/dgb_09_1_music.c | 14 + src/world/area_dgb/dgb_09/dgb_09_2_main.c | 104 + .../area_dgb/dgb_09/dgb_09_3_breakable.c | 37 + src/world/area_dgb/dgb_09/dgb_09_4_npc.c | 103 + src/world/area_dgb/dgb_10/C4C390.c | 344 -- src/world/area_dgb/dgb_10/dgb_10.h | 20 +- src/world/area_dgb/dgb_10/dgb_10_0_header.c | 13 + src/world/area_dgb/dgb_10/dgb_10_1_music.c | 14 + src/world/area_dgb/dgb_10/dgb_10_2_main.c | 56 + src/world/area_dgb/dgb_10/dgb_10_3_hole.c | 42 + src/world/area_dgb/dgb_10/dgb_10_4_entity.c | 37 + src/world/area_dgb/dgb_11/C4D3E0.c | 228 - src/world/area_dgb/dgb_11/dgb_11.h | 16 +- src/world/area_dgb/dgb_11/dgb_11_0_header.c | 15 + src/world/area_dgb/dgb_11/dgb_11_1_music.c | 14 + src/world/area_dgb/dgb_11/dgb_11_2_main.c | 70 + src/world/area_dgb/dgb_11/dgb_11_3_entity.c | 121 + src/world/area_dgb/dgb_12/C4DEF0.c | 144 - src/world/area_dgb/dgb_12/dgb_12.h | 12 +- src/world/area_dgb/dgb_12/dgb_12_0_header.c | 12 + src/world/area_dgb/dgb_12/dgb_12_1_music.c | 14 + src/world/area_dgb/dgb_12/dgb_12_2_main.c | 43 + src/world/area_dgb/dgb_12/dgb_12_3_spikes.c | 53 + src/world/area_dgb/dgb_12/dgb_12_4_entity.c | 14 + src/world/area_dgb/dgb_13/C4E960.c | 152 - src/world/area_dgb/dgb_13/dgb_13.h | 16 +- src/world/area_dgb/dgb_13/dgb_13_0_header.c | 12 + src/world/area_dgb/dgb_13/dgb_13_1_music.c | 14 + src/world/area_dgb/dgb_13/dgb_13_2_main.c | 24 + src/world/area_dgb/dgb_13/dgb_13_3_entity.c | 13 + src/world/area_dgb/dgb_13/dgb_13_4_drawer.c | 81 + src/world/area_dgb/dgb_14/C4F030.c | 116 - src/world/area_dgb/dgb_14/dgb_14.h | 10 +- src/world/area_dgb/dgb_14/dgb_14_0_header.c | 13 + src/world/area_dgb/dgb_14/dgb_14_1_music.c | 14 + src/world/area_dgb/dgb_14/dgb_14_2_main.c | 71 + src/world/area_dgb/dgb_14/dgb_14_3_entity.c | 9 + src/world/area_dgb/dgb_15/C4F510.c | 476 -- src/world/area_dgb/dgb_15/C50CA0.c | 5 - src/world/area_dgb/dgb_15/dgb_15.h | 34 +- src/world/area_dgb/dgb_15/dgb_15_0_header.c | 14 + src/world/area_dgb/dgb_15/dgb_15_1_music.c | 18 + src/world/area_dgb/dgb_15/dgb_15_2_main.c | 107 + src/world/area_dgb/dgb_15/dgb_15_3_npc.c | 199 + src/world/area_dgb/dgb_15/dgb_15_4_entity.c | 50 + src/world/area_dgb/dgb_16/C52540.c | 649 --- src/world/area_dgb/dgb_16/dgb_16.h | 30 +- src/world/area_dgb/dgb_16/dgb_16_0_header.c | 12 + src/world/area_dgb/dgb_16/dgb_16_1_music.c | 14 + src/world/area_dgb/dgb_16/dgb_16_2_main.c | 51 + src/world/area_dgb/dgb_16/dgb_16_3_entity.c | 9 + src/world/area_dgb/dgb_16/dgb_16_4_npc.c | 171 + src/world/area_dgb/dgb_17/C55A60.c | 116 - src/world/area_dgb/dgb_17/dgb_17.h | 10 +- src/world/area_dgb/dgb_17/dgb_17_0_header.c | 13 + src/world/area_dgb/dgb_17/dgb_17_1_music.c | 14 + src/world/area_dgb/dgb_17/dgb_17_2_main.c | 75 + src/world/area_dgb/dgb_17/dgb_17_3_entity.c | 9 + src/world/area_dgb/dgb_18/C56EF0.c | 13 - src/world/area_dgb/dgb_18/dgb_18.h | 35 +- src/world/area_dgb/dgb_18/dgb_18_0_header.c | 12 + src/world/area_dgb/dgb_18/dgb_18_1_music.c | 14 + src/world/area_dgb/dgb_18/dgb_18_2_main.c | 45 + .../dgb_18/{C55F40.c => dgb_18_3_npc.c} | 580 +-- src/world/area_dgb/dgb_18/dgb_18_4_entity.c | 20 + src/world/area_tik/tik_18/tik_18_5_entity.c | 2 +- src/world/area_tst/tst_13/tst_13_1_main.c | 246 +- src/world/common/atomic/BetaFloorPanels.inc.c | 200 + src/world/common/enemy/ai/WanderMeleeAI.inc.c | 5 + src/world/common/enemy/complete/Clubba.h | 23 +- .../common/enemy/complete/Clubba_Multi.inc.c | 178 + src/world/common/enemy/complete/Sentinel.h | 29 + .../common/enemy/complete/Sentinel.inc.c | 124 + src/world/common/enemy/complete/TubbaBlubba.h | 20 + .../enemy/complete/TubbaBlubba_Patrol.inc.c | 32 + src/world/common/todo/UnkDistFunc2.inc.c | 18 - src/world/entrances.h | 1 + src/world/world.c | 39 +- .../data/world/area_jan/jan_03/B39530.data.s | 2 +- .../hos_05/A2AAC0/func_802428C8_A2CB08.s | 8 +- ver/us/splat.yaml | 207 +- ver/us/symbol_addrs.txt | 42 +- ver/us/undefined_syms.txt | 2 + 178 files changed, 11219 insertions(+), 13780 deletions(-) delete mode 100644 src/world/area_dgb/dgb_00/BFA0A0.c delete mode 100644 src/world/area_dgb/dgb_00/BFA100.c create mode 100644 src/world/area_dgb/dgb_00/dgb_00_0_header.c create mode 100644 src/world/area_dgb/dgb_00/dgb_00_1_music.c create mode 100644 src/world/area_dgb/dgb_00/dgb_00_2_main.c create mode 100644 src/world/area_dgb/dgb_00/dgb_00_3_npc.c create mode 100644 src/world/area_dgb/dgb_00/dgb_00_4_entity.c delete mode 100644 src/world/area_dgb/dgb_01/BFD880.c delete mode 100644 src/world/area_dgb/dgb_01/BFD8C0.c delete mode 100644 src/world/area_dgb/dgb_01/BFD9A0.c delete mode 100644 src/world/area_dgb/dgb_01/data0.c delete mode 100644 src/world/area_dgb/dgb_01/data1.c delete mode 100644 src/world/area_dgb/dgb_01/data2.c delete mode 100644 src/world/area_dgb/dgb_01/data3.c delete mode 100644 src/world/area_dgb/dgb_01/data4.c delete mode 100644 src/world/area_dgb/dgb_01/data5.c delete mode 100644 src/world/area_dgb/dgb_01/data6.c delete mode 100644 src/world/area_dgb/dgb_01/data7.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_0_header.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_1_music.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_2_main.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_3_bridges.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_4_entity.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_5_npc.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img0.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img1.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img2.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img3.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img4.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img5.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img6.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_6_img7.c create mode 100644 src/world/area_dgb/dgb_01/dgb_01_7.c rename src/world/area_dgb/dgb_01/{data.c => smash_bridges_anim.inc.c} (66%) create mode 100644 src/world/area_dgb/dgb_01/smash_bridges_skeleton.inc.c rename src/world/area_dgb/{C20F40.c => dgb_01_smash_bridges.c} (100%) delete mode 100644 src/world/area_dgb/dgb_02/C2EBA0.c create mode 100644 src/world/area_dgb/dgb_02/dgb_02_0_header.c create mode 100644 src/world/area_dgb/dgb_02/dgb_02_1_music.c create mode 100644 src/world/area_dgb/dgb_02/dgb_02_2_main.c create mode 100644 src/world/area_dgb/dgb_02/dgb_02_3_npc.c delete mode 100644 src/world/area_dgb/dgb_03/C314E0.c delete mode 100644 src/world/area_dgb/dgb_03/C31730.c create mode 100644 src/world/area_dgb/dgb_03/dgb_03_0_header.c create mode 100644 src/world/area_dgb/dgb_03/dgb_03_1_music.c create mode 100644 src/world/area_dgb/dgb_03/dgb_03_2_main.c create mode 100644 src/world/area_dgb/dgb_03/dgb_03_3_clock.c create mode 100644 src/world/area_dgb/dgb_03/dgb_03_4_entity.c create mode 100644 src/world/area_dgb/dgb_03/dgb_03_5_npc.c delete mode 100644 src/world/area_dgb/dgb_04/C36530.c create mode 100644 src/world/area_dgb/dgb_04/dgb_04_0_header.c create mode 100644 src/world/area_dgb/dgb_04/dgb_04_1_music.c create mode 100644 src/world/area_dgb/dgb_04/dgb_04_2_main.c create mode 100644 src/world/area_dgb/dgb_04/dgb_04_3_npc.c create mode 100644 src/world/area_dgb/dgb_04/dgb_04_4_entity.c delete mode 100644 src/world/area_dgb/dgb_05/C3AA10.c create mode 100644 src/world/area_dgb/dgb_05/dgb_05_0_header.c create mode 100644 src/world/area_dgb/dgb_05/dgb_05_1_music.c create mode 100644 src/world/area_dgb/dgb_05/dgb_05_2_main.c create mode 100644 src/world/area_dgb/dgb_05/dgb_05_3_hole.c create mode 100644 src/world/area_dgb/dgb_05/dgb_05_4_entity.c create mode 100644 src/world/area_dgb/dgb_05/dgb_05_5_npc.c delete mode 100644 src/world/area_dgb/dgb_06/C3D080.c create mode 100644 src/world/area_dgb/dgb_06/dgb_06_0_header.c create mode 100644 src/world/area_dgb/dgb_06/dgb_06_1_music.c create mode 100644 src/world/area_dgb/dgb_06/dgb_06_2_main.c create mode 100644 src/world/area_dgb/dgb_06/dgb_06_3_entity.c create mode 100644 src/world/area_dgb/dgb_06/dgb_06_4_npc.c delete mode 100644 src/world/area_dgb/dgb_07/C3DBF0.c create mode 100644 src/world/area_dgb/dgb_07/dgb_07_0_header.c create mode 100644 src/world/area_dgb/dgb_07/dgb_07_1_music.c create mode 100644 src/world/area_dgb/dgb_07/dgb_07_2_main.c create mode 100644 src/world/area_dgb/dgb_07/dgb_07_3_entity.c create mode 100644 src/world/area_dgb/dgb_07/dgb_07_4_npc.c delete mode 100644 src/world/area_dgb/dgb_08/C3FDB0.c create mode 100644 src/world/area_dgb/dgb_08/dgb_08_0_header.c create mode 100644 src/world/area_dgb/dgb_08/dgb_08_1_music.c create mode 100644 src/world/area_dgb/dgb_08/dgb_08_2_main.c create mode 100644 src/world/area_dgb/dgb_08/dgb_08_3_npc.c create mode 100644 src/world/area_dgb/dgb_08/dgb_08_4_entity.c delete mode 100644 src/world/area_dgb/dgb_09/C46BE0.c create mode 100644 src/world/area_dgb/dgb_09/dgb_09_0_header.c create mode 100644 src/world/area_dgb/dgb_09/dgb_09_1_music.c create mode 100644 src/world/area_dgb/dgb_09/dgb_09_2_main.c create mode 100644 src/world/area_dgb/dgb_09/dgb_09_3_breakable.c create mode 100644 src/world/area_dgb/dgb_09/dgb_09_4_npc.c delete mode 100644 src/world/area_dgb/dgb_10/C4C390.c create mode 100644 src/world/area_dgb/dgb_10/dgb_10_0_header.c create mode 100644 src/world/area_dgb/dgb_10/dgb_10_1_music.c create mode 100644 src/world/area_dgb/dgb_10/dgb_10_2_main.c create mode 100644 src/world/area_dgb/dgb_10/dgb_10_3_hole.c create mode 100644 src/world/area_dgb/dgb_10/dgb_10_4_entity.c delete mode 100644 src/world/area_dgb/dgb_11/C4D3E0.c create mode 100644 src/world/area_dgb/dgb_11/dgb_11_0_header.c create mode 100644 src/world/area_dgb/dgb_11/dgb_11_1_music.c create mode 100644 src/world/area_dgb/dgb_11/dgb_11_2_main.c create mode 100644 src/world/area_dgb/dgb_11/dgb_11_3_entity.c delete mode 100644 src/world/area_dgb/dgb_12/C4DEF0.c create mode 100644 src/world/area_dgb/dgb_12/dgb_12_0_header.c create mode 100644 src/world/area_dgb/dgb_12/dgb_12_1_music.c create mode 100644 src/world/area_dgb/dgb_12/dgb_12_2_main.c create mode 100644 src/world/area_dgb/dgb_12/dgb_12_3_spikes.c create mode 100644 src/world/area_dgb/dgb_12/dgb_12_4_entity.c delete mode 100644 src/world/area_dgb/dgb_13/C4E960.c create mode 100644 src/world/area_dgb/dgb_13/dgb_13_0_header.c create mode 100644 src/world/area_dgb/dgb_13/dgb_13_1_music.c create mode 100644 src/world/area_dgb/dgb_13/dgb_13_2_main.c create mode 100644 src/world/area_dgb/dgb_13/dgb_13_3_entity.c create mode 100644 src/world/area_dgb/dgb_13/dgb_13_4_drawer.c delete mode 100644 src/world/area_dgb/dgb_14/C4F030.c create mode 100644 src/world/area_dgb/dgb_14/dgb_14_0_header.c create mode 100644 src/world/area_dgb/dgb_14/dgb_14_1_music.c create mode 100644 src/world/area_dgb/dgb_14/dgb_14_2_main.c create mode 100644 src/world/area_dgb/dgb_14/dgb_14_3_entity.c delete mode 100644 src/world/area_dgb/dgb_15/C4F510.c delete mode 100644 src/world/area_dgb/dgb_15/C50CA0.c create mode 100644 src/world/area_dgb/dgb_15/dgb_15_0_header.c create mode 100644 src/world/area_dgb/dgb_15/dgb_15_1_music.c create mode 100644 src/world/area_dgb/dgb_15/dgb_15_2_main.c create mode 100644 src/world/area_dgb/dgb_15/dgb_15_3_npc.c create mode 100644 src/world/area_dgb/dgb_15/dgb_15_4_entity.c delete mode 100644 src/world/area_dgb/dgb_16/C52540.c create mode 100644 src/world/area_dgb/dgb_16/dgb_16_0_header.c create mode 100644 src/world/area_dgb/dgb_16/dgb_16_1_music.c create mode 100644 src/world/area_dgb/dgb_16/dgb_16_2_main.c create mode 100644 src/world/area_dgb/dgb_16/dgb_16_3_entity.c create mode 100644 src/world/area_dgb/dgb_16/dgb_16_4_npc.c delete mode 100644 src/world/area_dgb/dgb_17/C55A60.c create mode 100644 src/world/area_dgb/dgb_17/dgb_17_0_header.c create mode 100644 src/world/area_dgb/dgb_17/dgb_17_1_music.c create mode 100644 src/world/area_dgb/dgb_17/dgb_17_2_main.c create mode 100644 src/world/area_dgb/dgb_17/dgb_17_3_entity.c delete mode 100644 src/world/area_dgb/dgb_18/C56EF0.c create mode 100644 src/world/area_dgb/dgb_18/dgb_18_0_header.c create mode 100644 src/world/area_dgb/dgb_18/dgb_18_1_music.c create mode 100644 src/world/area_dgb/dgb_18/dgb_18_2_main.c rename src/world/area_dgb/dgb_18/{C55F40.c => dgb_18_3_npc.c} (51%) create mode 100644 src/world/area_dgb/dgb_18/dgb_18_4_entity.c create mode 100644 src/world/common/atomic/BetaFloorPanels.inc.c create mode 100644 src/world/common/enemy/complete/Clubba_Multi.inc.c create mode 100644 src/world/common/enemy/complete/Sentinel.h create mode 100644 src/world/common/enemy/complete/Sentinel.inc.c create mode 100644 src/world/common/enemy/complete/TubbaBlubba_Patrol.inc.c delete mode 100644 src/world/common/todo/UnkDistFunc2.inc.c diff --git a/include/script_api/macros.h b/include/script_api/macros.h index 45503abdf6..b50fef3526 100644 --- a/include/script_api/macros.h +++ b/include/script_api/macros.h @@ -726,7 +726,7 @@ EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) \ EVT_CALL(SetCamLeadPlayer, CAM_DEFAULT, FALSE) -// same as above with calls reordered +// same as EVT_SETUP_CAMERA_NO_LEAD with calls reordered #define EVT_SETUP_CAMERA_ALT_NO_LEAD() \ EVT_CALL(SetCamPerspective, CAM_DEFAULT, 3, 25, 16, 4096) \ EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) \ diff --git a/src/evt/npc_api.c b/src/evt/npc_api.c index f4b661efc7..9885ac292e 100644 --- a/src/evt/npc_api.c +++ b/src/evt/npc_api.c @@ -1069,14 +1069,14 @@ ApiStatus PlaySoundAtNpc(Evt* script, s32 isInitialCall) { Bytecode* ptrReadPos = script->ptrReadPos; s32 npcID = evt_get_variable(script, *ptrReadPos++); s32 soundID = evt_get_variable(script, *ptrReadPos++); - s32 value2 = evt_get_variable(script, *ptrReadPos++); + s32 flags = evt_get_variable(script, *ptrReadPos++); Npc* npc = resolve_npc(script, npcID); if (npc == NULL) { return ApiStatus_DONE2; } - sfx_play_sound_at_position(soundID, value2, npc->pos.x, npc->pos.y, npc->pos.z); + sfx_play_sound_at_position(soundID, flags, npc->pos.x, npc->pos.y, npc->pos.z); return ApiStatus_DONE2; } diff --git a/src/world/area_dgb/dgb.h b/src/world/area_dgb/dgb.h index dc455d0ea6..2308cb4c5f 100644 --- a/src/world/area_dgb/dgb.h +++ b/src/world/area_dgb/dgb.h @@ -2,24 +2,51 @@ #define _WORLD_AREA_DGB_DGB_H_ enum { - AB_DGB_0 = AreaByte(0), - AB_DGB_1 = AreaByte(1), - AB_DGB_2 = AreaByte(2), - AB_DGB_3 = AreaByte(3), - AB_DGB_4 = AreaByte(4), - AB_DGB_5 = AreaByte(5), - AB_DGB_6 = AreaByte(6), - AB_DGB_7 = AreaByte(7), - AB_DGB_8 = AreaByte(8), - AB_DGB_9 = AreaByte(9), - AB_DGB_A = AreaByte(10), - AB_DGB_B = AreaByte(11), - AB_DGB_C = AreaByte(12), - AB_DGB_D = AreaByte(13), - AB_DGB_E = AreaByte(14), - AB_DGB_F = AreaByte(15), + AB_DGB_Unused_0 = AreaByte(0), + AB_DGB_Unused_1 = AreaByte(1), + AB_DGB_Unused_2 = AreaByte(2), + AB_DGB_Unused_3 = AreaByte(3), + AB_DGB_Unused_4 = AreaByte(4), + AB_DGB_Unused_5 = AreaByte(5), + AB_DGB_Unused_6 = AreaByte(6), + AB_DGB_Unused_7 = AreaByte(7), + AB_DGB_Unused_8 = AreaByte(8), + AB_DGB_Unused_9 = AreaByte(9), + AB_DGB_Unused_A = AreaByte(10), + AB_DGB_Unused_B = AreaByte(11), + AB_DGB_Unused_C = AreaByte(12), + AB_DGB_Unused_D = AreaByte(13), + AB_DGB_Unused_E = AreaByte(14), + AB_DGB_Unused_F = AreaByte(15), }; -#define AF_DGB(index) AreaFlag(index) +enum { + AF_DGB_01 = AreaFlag(1), + AF_DGB_02 = AreaFlag(2), + AF_DGB_03 = AreaFlag(3), + AF_DGB06_Boo_Dialogue = AreaFlag(4), +}; + +extern MapSettings dgb_00_settings; +extern MapSettings dgb_01_settings; +extern MapSettings dgb_02_settings; +extern MapSettings dgb_03_settings; +extern MapSettings dgb_04_settings; +extern MapSettings dgb_05_settings; +extern MapSettings dgb_06_settings; +extern MapSettings dgb_07_settings; +extern MapSettings dgb_08_settings; +extern MapSettings dgb_09_settings; +extern MapSettings dgb_10_settings; +extern MapSettings dgb_11_settings; +extern MapSettings dgb_12_settings; +extern MapSettings dgb_13_settings; +extern MapSettings dgb_14_settings; +extern MapSettings dgb_15_settings; +extern MapSettings dgb_16_settings; +extern MapSettings dgb_17_settings; +extern MapSettings dgb_18_settings; + +s32 dgb_00_map_init(void); #endif diff --git a/src/world/area_dgb/dgb_00/BFA0A0.c b/src/world/area_dgb/dgb_00/BFA0A0.c deleted file mode 100644 index 97a7e4b8a1..0000000000 --- a/src/world/area_dgb/dgb_00/BFA0A0.c +++ /dev/null @@ -1,132 +0,0 @@ -#include "dgb_00.h" -#include "message_ids.h" - -ApiStatus N(func_80240000_BFA0A0)(Evt* script, s32 isInitialCall) { - sprintf(wMapShapeName, "arn_20_shape"); - sprintf(wMapHitName, "arn_20_hit"); - sprintf(wMapTexName, "arn_tex"); - return ApiStatus_BLOCK; -} - -EntryList N(entryList) = { - { -733.0f, 0.0f, -8.0f, 90.0f }, - { 250.0f, 10.0f, -100.0f, 225.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .background = &gBackgroundImage, - .tattle = { MSG_MapTattle_dgb_00 }, -}; - -EvtScript N(80240110) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8) - EVT_END_SWITCH - EVT_CALL(ClearAmbientSounds, 250) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1B8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitWalk_802401C0) = EVT_EXIT_WALK(60, 0, "arn_04", 1); - -EvtScript N(exitDoubleDoor_8024021C) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 18) - EVT_SET(LVar2, 5) - EVT_SET(LVar3, 7) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(802402D0) = { - EVT_BIND_TRIGGER(N(exitWalk_802401C0), TRIGGER_FLOOR_ABOVE, 15, 1, 0) - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-28) - EVT_BIND_TRIGGER(N(exitDoubleDoor_8024021C), TRIGGER_WALL_PRESS_A, 18, 1, 0) - EVT_CASE_LT(-25) - EVT_CASE_LT(-16) - EVT_EXEC(N(80240F50)) - EVT_EXEC_WAIT(N(80241AA0)) - EVT_CASE_DEFAULT - EVT_BIND_TRIGGER(N(exitDoubleDoor_8024021C), TRIGGER_WALL_PRESS_A, 18, 1, 0) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(enterDoubleDoor_8024038C) = { - EVT_CALL(GetLoadType, LVar1) - EVT_IF_EQ(LVar1, 1) - EVT_EXEC(EnterSavePoint) - EVT_EXEC(N(802402D0)) - EVT_RETURN - EVT_END_IF - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar0, EVT_PTR(N(802402D0))) - EVT_EXEC(EnterWalk) - EVT_WAIT(1) - EVT_CASE_EQ(1) - EVT_IF_GE(GB_StoryProgress, -28) - EVT_IF_LT(GB_StoryProgress, -25) - EVT_EXEC(N(802402D0)) - EVT_THREAD - EVT_EXEC_WAIT(N(8024103C)) - EVT_EXEC_WAIT(N(802413F4)) - EVT_END_THREAD - EVT_RETURN - EVT_END_IF - EVT_END_IF - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 5) - EVT_SET(LVar3, 7) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(802402D0)) - EVT_CASE_EQ(2) - EVT_EXEC(N(802402D0)) - EVT_EXEC(N(80242B84)) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_SET(GF_MAP_TubbasManor, 1) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_CALL(GetEntryID, LVar0) - EVT_IF_EQ(LVar0, 2) - EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_80243740))) - EVT_ELSE - EVT_CALL(MakeNpcs, 0, EVT_PTR(N(npcGroupList_802436EC))) - EVT_END_IF - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(80240110)) - EVT_EXEC(N(enterDoubleDoor_8024038C)) - EVT_RETURN - EVT_END -}; diff --git a/src/world/area_dgb/dgb_00/BFA100.c b/src/world/area_dgb/dgb_00/BFA100.c deleted file mode 100644 index 2edbd17735..0000000000 --- a/src/world/area_dgb/dgb_00/BFA100.c +++ /dev/null @@ -1,858 +0,0 @@ -#include "dgb_00.h" -#include "entity.h" -#include "sprite/npc/Boo.h" -#include "sprite/npc/Sentinel.h" -#include "sprite/npc/WorldBombette.h" -#include "sprite/npc/WorldBow.h" -#include "sprite/npc/WorldGoombario.h" -#include "sprite/npc/WorldKooper.h" -#include "sprite/npc/WorldParakarry.h" - - -enum { - NPC_BOO0, - NPC_BOO1, - NPC_BOO2, - NPC_BOO3, - NPC_BOO4, - NPC_BOO5, - NPC_SENTINEL, -}; - -NpcSettings N(npcSettings_80240640) = { - .height = 24, - .radius = 24, - .level = 99, -}; - -NpcSettings N(npcSettings_8024066C) = { - .height = 24, - .radius = 24, - .level = 99, -}; - -EvtScript N(80240698) = { - EVT_SET(LVar3, 0) - EVT_SUB(LVar3, LVar2) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 18, 0x7FFFFE00) - EVT_CALL(PlaySoundAtCollider, 18, 455, 0) - EVT_CALL(MakeLerp, 0, 80, 30, 0) - EVT_LABEL(10) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 7, LVar0, 0, LVar2, 0) - EVT_CALL(RotateModel, 5, LVar0, 0, LVar3, 0) - EVT_WAIT(1) - EVT_IF_NE(LVar1, 0) - EVT_GOTO(10) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(8024079C) = { - EVT_SET(LVar3, 0) - EVT_SUB(LVar3, LVar2) - EVT_CALL(MakeLerp, 80, 0, 12, 0) - EVT_LABEL(10) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 7, LVar0, 0, LVar2, 0) - EVT_CALL(RotateModel, 5, LVar0, 0, LVar3, 0) - EVT_WAIT(1) - EVT_IF_NE(LVar1, 0) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(ModifyColliderFlags, 1, 18, 0x7FFFFE00) - EVT_CALL(PlaySoundAtCollider, 18, 456, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(802408A0) = { - EVT_CALL(GetNpcPos, 0, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 200) - EVT_CALL(NpcMoveTo, 0, LVar0, LVar2, 46) - EVT_RETURN - EVT_END -}; - -EvtScript N(802408F8) = { - EVT_CALL(GetNpcPos, 1, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 200) - EVT_CALL(NpcMoveTo, 1, LVar0, LVar2, 50) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240950) = { - EVT_CALL(GetNpcPos, 2, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 200) - EVT_CALL(NpcMoveTo, 2, LVar0, LVar2, 53) - EVT_RETURN - EVT_END -}; - -EvtScript N(802409A8) = { - EVT_CALL(GetNpcPos, 3, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 200) - EVT_CALL(NpcMoveTo, 3, LVar0, LVar2, 46) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240A00) = { - EVT_CALL(GetNpcPos, 4, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 200) - EVT_CALL(NpcMoveTo, 4, LVar0, LVar2, 50) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240A58) = { - EVT_CALL(GetNpcPos, 5, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 200) - EVT_CALL(NpcMoveTo, 5, LVar0, LVar2, 53) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240AB0) = { - EVT_EXEC(N(802408A0)) - EVT_EXEC(N(802408F8)) - EVT_EXEC(N(80240950)) - EVT_EXEC(N(802409A8)) - EVT_EXEC(N(80240A00)) - EVT_EXEC(N(80240A58)) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240B08) = { - EVT_CALL(SetNpcJumpscale, 0, EVT_FLOAT(-0.2)) - EVT_CALL(NpcJump0, 0, 257, 30, -90, 5) - EVT_CALL(EnableNpcShadow, 0, FALSE) - EVT_CALL(SetNpcAnimation, 0, ANIM_Boo_Tan_Flail) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240B74) = { - EVT_CALL(SetNpcJumpscale, 1, EVT_FLOAT(-0.3)) - EVT_CALL(NpcJump0, 1, 272, 112, -81, 12) - EVT_CALL(EnableNpcShadow, 1, FALSE) - EVT_CALL(SetNpcAnimation, 1, ANIM_Boo_Tan_Flail) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240BE0) = { - EVT_CALL(SetNpcJumpscale, 2, EVT_FLOAT(-0.4)) - EVT_CALL(NpcJump0, 2, 237, 120, -118, 10) - EVT_CALL(EnableNpcShadow, 2, FALSE) - EVT_CALL(SetNpcAnimation, 2, ANIM_Boo_Tan_Flail) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240C4C) = { - EVT_CALL(SetNpcJumpscale, 3, EVT_FLOAT(-0.3)) - EVT_CALL(NpcJump0, 3, 280, 60, -79, 8) - EVT_CALL(EnableNpcShadow, 3, FALSE) - EVT_CALL(SetNpcAnimation, 3, ANIM_Boo_Tan_Flail) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240CB8) = { - EVT_CALL(SetNpcJumpscale, 4, EVT_FLOAT(-0.4)) - EVT_CALL(NpcJump0, 4, 250, 81, -97, 9) - EVT_CALL(EnableNpcShadow, 4, FALSE) - EVT_CALL(SetNpcAnimation, 4, ANIM_Boo_Tan_Flail) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240D24) = { - EVT_CALL(SetNpcJumpscale, 5, EVT_FLOAT(-0.5)) - EVT_CALL(NpcJump0, 5, 227, 43, -123, 15) - EVT_CALL(EnableNpcShadow, 5, FALSE) - EVT_CALL(SetNpcAnimation, 5, ANIM_Boo_Tan_Flail) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240D90) = { - EVT_EXEC(N(80240B74)) - EVT_EXEC(N(80240BE0)) - EVT_EXEC(N(80240C4C)) - EVT_EXEC(N(80240CB8)) - EVT_EXEC(N(80240D24)) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240DDC) = { - EVT_CALL(GetNpcPos, 0, LVar0, LVar1, LVar2) - EVT_LOOP(0) - EVT_CALL(RandInt, 5, LVarA) - EVT_ADD(LVarA, 2) - EVT_SET(LVarB, 0) - EVT_LABEL(10) - EVT_SET(LVar3, LVar0) - EVT_ADD(LVar3, 1) - EVT_CALL(SetNpcPos, 0, LVar3, LVar1, LVar2) - EVT_WAIT(1) - EVT_SET(LVar3, LVar0) - EVT_ADD(LVar3, -1) - EVT_CALL(SetNpcPos, 0, LVar3, LVar1, LVar2) - EVT_WAIT(1) - EVT_ADD(LVarB, 1) - EVT_IF_LT(LVarB, LVarA) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(RandInt, 10, LVarA) - EVT_ADD(LVarA, 10) - EVT_WAIT(LVarA) - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -EvtScript N(80240F50) = { - EVT_SET_GROUP(EVT_GROUP_EF) - EVT_LOOP(0) - EVT_CALL(RandInt, 50, LVar0) - EVT_ADD(LVar0, 80) - EVT_WAIT(LVar0) - EVT_IF_EQ(MapVar(0), 0) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(2.0)) - EVT_CALL(ShowMessageAtScreenPos, MSG_CH3_00EF, 160, 40) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_END_IF - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -EvtScript N(8024103C) = { - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(SetPlayerPos, 350, 10, -150) - EVT_CALL(InterpPlayerYaw, 270, 1) - EVT_CALL(SetNpcPos, NPC_PARTNER, 350, 10, -150) - EVT_CALL(EnablePartnerAI) - EVT_CALL(SetCamType, 0, 4, 0) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_SET(LVar0, 175) - EVT_SET(LVar1, 0) - EVT_SET(LVar2, -75) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_WAIT(40) - EVT_CALL(SetNpcPos, 0, -60, 10, -70) - EVT_CALL(SetNpcPos, 1, -100, 10, -110) - EVT_CALL(SetNpcPos, 2, -140, 10, -150) - EVT_CALL(SetNpcPos, 3, -100, 10, -30) - EVT_CALL(SetNpcPos, 4, -140, 10, -70) - EVT_CALL(SetNpcPos, 5, -180, 10, -100) - EVT_EXEC_WAIT(N(80240AB0)) - EVT_WAIT(60) - EVT_CALL(InterpNpcYaw, 0, 270, 1) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 5, MSG_CH3_00DB) - EVT_CALL(SpeakToPlayer, 4, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 5, MSG_CH3_00DC) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 5, MSG_CH3_00DD) - EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(2.0)) - EVT_WAIT(10) - EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(2.0)) - EVT_CALL(InterpNpcYaw, 0, 90, 1) - EVT_CALL(ShowMessageAtScreenPos, MSG_CH3_00DE, 160, 40) - EVT_CALL(SetPlayerPos, 350, 10, -150) - EVT_CALL(InterpPlayerYaw, 270, 1) - EVT_CALL(SetNpcPos, NPC_PARTNER, 350, 10, -150) - EVT_SET(LVar2, 1) - EVT_EXEC_WAIT(N(80240698)) - EVT_RETURN - EVT_END -}; - -EvtScript N(802413F4) = { - EVT_CALL(SetPlayerSpeed, EVT_FLOAT(8.0)) - EVT_CALL(PlayerMoveTo, 184, -44, 0) - EVT_CALL(PlaySoundAtNpc, 0, SOUND_262, 0) - EVT_CALL(PlaySoundAtNpc, 1, SOUND_262, 0) - EVT_CALL(PlaySoundAtNpc, 2, SOUND_262, 0) - EVT_CALL(PlaySoundAtNpc, 3, SOUND_262, 0) - EVT_CALL(PlaySoundAtNpc, 4, SOUND_262, 0) - EVT_CALL(PlaySoundAtNpc, 5, SOUND_262, 0) - EVT_CALL(ShowEmote, 0, EMOTE_EXCLAMATION, 45, 20, 1, 0, 0, 0, 0) - EVT_CALL(ShowEmote, 1, EMOTE_EXCLAMATION, 45, 20, 1, 0, 0, 0, 0) - EVT_CALL(ShowEmote, 2, EMOTE_EXCLAMATION, 45, 20, 1, 0, 0, 0, 0) - EVT_CALL(ShowEmote, 3, EMOTE_EXCLAMATION, 45, 20, 1, 0, 0, 0, 0) - EVT_CALL(ShowEmote, 4, EMOTE_EXCLAMATION, 45, 20, 1, 0, 0, 0, 0) - EVT_CALL(ShowEmote, 5, EMOTE_EXCLAMATION, 45, 20, 1, 0, 0, 0, 0) - EVT_WAIT(50) - EVT_SET(LVar2, 1) - EVT_EXEC(N(8024079C)) - EVT_EXEC(N(80240D90)) - EVT_WAIT(20) - EVT_CALL(SetCamType, 0, 6, 1) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(6.0)) - EVT_CALL(SetCamPitch, 0, EVT_FLOAT(15.0), EVT_FLOAT(-15.0)) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamDistance, 0, 300) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_EXEC_GET_TID(N(80240DDC), LVarA) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00DF) - EVT_KILL_THREAD(LVarA) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80007) - EVT_WAIT(20) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00E0) - EVT_WAIT(20) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_NodYes) - EVT_WAIT(20) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00E1) - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(GetCurrentPartnerID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH3_00E2) - EVT_CASE_EQ(2) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldKooper_Talk, ANIM_WorldKooper_Idle, 0, MSG_CH3_00E3) - EVT_CASE_EQ(3) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBombette_Talk, ANIM_WorldBombette_Idle, 0, MSG_CH3_00E4) - EVT_CASE_EQ(4) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldParakarry_Talk, ANIM_WorldParakarry_Idle, 0, MSG_CH3_00E5) - EVT_CASE_EQ(9) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBow_Talk, ANIM_WorldBow_Idle, 0, MSG_CH3_00E6) - EVT_END_SWITCH - EVT_CALL(EnablePartnerAI) - EVT_CALL(SetCamType, 0, 4, 0) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(6.0)) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(2.0)) - EVT_WAIT(5) - EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(2.0)) - EVT_CALL(ShowMessageAtScreenPos, MSG_CH3_00E7, 160, 40) - EVT_EXEC_WAIT(N(80240B08)) - EVT_WAIT(10) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Flail, ANIM_Boo_Tan_Flail, 5, MSG_CH3_00E8) - EVT_CALL(SetNpcAnimation, 0, ANIM_Boo_Tan_Flail) - EVT_EXEC(N(80240F50)) - EVT_SET(GB_StoryProgress, -25) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_RETURN - EVT_END -}; - -EvtScript N(80241AA0) = { - EVT_CALL(SetNpcPos, 0, 246, 30, -110) - EVT_CALL(SetNpcPos, 1, 276, 120, -80) - EVT_CALL(SetNpcPos, 2, 216, 120, -140) - EVT_CALL(SetNpcPos, 3, 276, 60, -80) - EVT_CALL(SetNpcPos, 4, 246, 90, -110) - EVT_CALL(SetNpcPos, 5, 216, 60, -130) - EVT_CALL(InterpNpcYaw, 0, 70, 1) - EVT_CALL(InterpNpcYaw, 1, 99, 1) - EVT_CALL(InterpNpcYaw, 2, 93, 1) - EVT_CALL(InterpNpcYaw, 3, 74, 1) - EVT_CALL(InterpNpcYaw, 4, 78, 1) - EVT_CALL(InterpNpcYaw, 5, 81, 1) - EVT_CALL(SetNpcAnimation, 0, ANIM_Boo_Tan_Flail) - EVT_CALL(SetNpcAnimation, 1, ANIM_Boo_Tan_Flail) - EVT_CALL(SetNpcAnimation, 2, ANIM_Boo_Tan_Flail) - EVT_CALL(SetNpcAnimation, 3, ANIM_Boo_Tan_Flail) - EVT_CALL(SetNpcAnimation, 4, ANIM_Boo_Tan_Flail) - EVT_CALL(SetNpcAnimation, 5, ANIM_Boo_Tan_Flail) - EVT_CALL(EnableNpcShadow, 0, FALSE) - EVT_CALL(EnableNpcShadow, 1, FALSE) - EVT_CALL(EnableNpcShadow, 2, FALSE) - EVT_CALL(EnableNpcShadow, 3, FALSE) - EVT_CALL(EnableNpcShadow, 4, FALSE) - EVT_CALL(EnableNpcShadow, 5, FALSE) - EVT_RETURN - EVT_END -}; - -EvtScript N(interact_80241CD8) = { - EVT_SET(MapVar(0), 1) - EVT_CALL(SpeakToPlayer, 0, ANIM_Boo_Tan_Flail, ANIM_Boo_Tan_Flail, 5, MSG_CH3_00E9) - EVT_CALL(SetNpcAnimation, 0, ANIM_Boo_Tan_Flail) - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(GetCurrentPartnerID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CALL(AdjustCam, 0, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH3_00EA) - EVT_CALL(ResetCam, 0, EVT_FLOAT(6.0)) - EVT_CASE_EQ(2) - EVT_CALL(AdjustCam, 0, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldKooper_Talk, ANIM_WorldKooper_Idle, 0, MSG_CH3_00EB) - EVT_CALL(ResetCam, 0, EVT_FLOAT(6.0)) - EVT_CASE_EQ(3) - EVT_CALL(AdjustCam, 0, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBombette_Talk, ANIM_WorldBombette_Idle, 0, MSG_CH3_00EC) - EVT_CALL(ResetCam, 0, EVT_FLOAT(6.0)) - EVT_CASE_EQ(4) - EVT_CALL(AdjustCam, 0, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldParakarry_Talk, ANIM_WorldParakarry_Idle, 0, MSG_CH3_00ED) - EVT_CALL(ResetCam, 0, EVT_FLOAT(6.0)) - EVT_CASE_EQ(9) - EVT_CALL(AdjustCam, 0, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBow_Talk, ANIM_WorldBow_Idle, 0, MSG_CH3_00EE) - EVT_CALL(ResetCam, 0, EVT_FLOAT(6.0)) - EVT_END_SWITCH - EVT_CALL(EnablePartnerAI) - EVT_SET(MapVar(0), 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80241F70) = { - EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80241CD8))) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80241F94) = { - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80241FA4) = { - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80241FB4) = { - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80241FC4) = { - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80241FD4) = { - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80241FE4) = { - .id = NPC_BOO0, - .settings = &N(npcSettings_80240640), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_400000, - .init = &N(init_80241F70), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, - .tattle = MSG_NpcTattle_BraveBoo, -}; - -StaticNpc N(npcGroup_802421D4) = { - .id = NPC_BOO1, - .settings = &N(npcSettings_80240640), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, - .init = &N(init_80241F94), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, -}; - -StaticNpc N(npcGroup_802423C4) = { - .id = NPC_BOO2, - .settings = &N(npcSettings_80240640), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, - .init = &N(init_80241FA4), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, -}; - -StaticNpc N(npcGroup_802425B4) = { - .id = NPC_BOO3, - .settings = &N(npcSettings_80240640), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, - .init = &N(init_80241FB4), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, -}; - -StaticNpc N(npcGroup_802427A4) = { - .id = NPC_BOO4, - .settings = &N(npcSettings_80240640), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, - .init = &N(init_80241FC4), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, -}; - -StaticNpc N(npcGroup_80242994) = { - .id = NPC_BOO5, - .settings = &N(npcSettings_80240640), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, - .init = &N(init_80241FD4), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, -}; - -EvtScript N(80242B84) = { - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(SetNpcPos, NPC_PARTNER, 320, 10, -160) - EVT_CALL(PlaySound, SOUND_32E) - EVT_THREAD - EVT_LOOP(180) - EVT_CALL(GetNpcPos, 6, LVar0, LVar1, LVar2) - EVT_CALL(N(func_80240060_BFA100)) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_THREAD - EVT_CALL(SetPlayerPos, 320, 50, -160) - EVT_CALL(InterpPlayerYaw, 270, 0) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) - EVT_CALL(SetNpcPos, 6, 320, 70, -158) - EVT_CALL(InterpNpcYaw, 6, 270, 0) - EVT_CALL(SetNpcAnimation, 6, ANIM_Sentinel_Anim08) - EVT_CALL(UseSettingsFrom, 0, 175, 0, -35) - EVT_CALL(SetPanTarget, 0, 175, 0, -35) - EVT_CALL(SetCamDistance, 0, EVT_FLOAT(540.0)) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_WAIT(20) - EVT_THREAD - EVT_SET(LVar2, 1) - EVT_EXEC(N(80240698)) - EVT_END_THREAD - EVT_WAIT(15) - EVT_THREAD - EVT_CALL(SetPlayerJumpscale, 0) - EVT_CALL(PlayerJump1, 175, 50, -35, 40) - EVT_END_THREAD - EVT_THREAD - EVT_CALL(DisablePartnerAI, 0) - EVT_WAIT(1) - EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0) - EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x107) - EVT_WAIT(85) - EVT_CALL(func_802CF56C, 2) - EVT_WAIT(1) - EVT_CALL(EnablePartnerAI) - EVT_END_THREAD - EVT_CALL(NpcMoveTo, 6, 175, -33, 40) - EVT_WAIT(20) - EVT_CALL(SetNpcPos, 6, 175, 85, -33) - EVT_CALL(SetNpcAnimation, 6, ANIM_Sentinel_Anim09) - EVT_WAIT(20) - EVT_CALL(PlaySoundAtNpc, 6, SOUND_2F7, 0) - EVT_CALL(SetNpcAnimation, 6, ANIM_Sentinel_Anim02) - EVT_CALL(SetNpcPos, 6, 175, 70, -33) - EVT_THREAD - EVT_WAIT(40) - EVT_CALL(SetNpcAnimation, 6, ANIM_Sentinel_Anim03) - EVT_CALL(NpcMoveTo, 6, 270, -120, 30) - EVT_CALL(StopSound, 814) - EVT_CALL(SetNpcPos, 6, 0, -1000, 0) - EVT_END_THREAD - EVT_THREAD - EVT_WAIT(60) - EVT_SET(LVar2, 1) - EVT_EXEC(N(8024079C)) - EVT_END_THREAD - EVT_CALL(SetPlayerJumpscale, 0) - EVT_CALL(PlayerJump1, 175, 0, -35, 10) - EVT_CALL(PlaySoundAtNpc, 6, SOUND_162, 0) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80003) - EVT_THREAD - EVT_WAIT(2) - EVT_CALL(PlayEffect, 0x10, 3, 0, 175, 0, -35, 20, -20, 30, 0, 0, 0, 0, 0) - EVT_END_THREAD - EVT_THREAD - EVT_CALL(SetCamDistance, 0, EVT_FLOAT(320.0)) - EVT_CALL(SetCamPitch, 0, EVT_FLOAT(15.0), EVT_FLOAT(-7.5)) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(2.0)) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_END_THREAD - EVT_WAIT(65) - EVT_CALL(GetCurrentPartnerID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CALL(SetNpcFlagBits, NPC_PARTNER, ((NPC_FLAG_GRAVITY)), TRUE) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcFlagBits, NPC_PARTNER, ((NPC_FLAG_GRAVITY)), TRUE) - EVT_CASE_EQ(3) - EVT_CALL(SetNpcFlagBits, NPC_PARTNER, ((NPC_FLAG_GRAVITY)), TRUE) - EVT_END_SWITCH - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(GetCurrentPartnerID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, 0x108, 0x106, 5, MSG_CH3_00D6) - EVT_CASE_EQ(2) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, 0x108, 0x106, 5, MSG_CH3_00D7) - EVT_CASE_EQ(3) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, 0x108, 0x106, 5, MSG_CH3_00D8) - EVT_CASE_EQ(4) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, 0x108, 0x106, 5, MSG_CH3_00D9) - EVT_CASE_EQ(9) - EVT_CALL(SpeakToPlayer, NPC_PARTNER, 0x108, 0x106, 5, MSG_CH3_00DA) - EVT_CASE_DEFAULT - EVT_CALL(SpeakToPlayer, NPC_PARTNER, 0x108, 0x106, 5, MSG_CH3_00D6) - EVT_END_SWITCH - EVT_CALL(EnablePartnerAI) - EVT_WAIT(5) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_GetUp) - EVT_WAIT(20) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_DustOff) - EVT_WAIT(7) - EVT_CALL(PlaySoundAtPlayer, 370, 0) - EVT_WAIT(8) - EVT_CALL(PlaySoundAtPlayer, 370, 0) - EVT_WAIT(15) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001B) - EVT_WAIT(25) - EVT_CALL(InterpPlayerYaw, 90, 0) - EVT_WAIT(1) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) - EVT_CALL(InterpPlayerYaw, 45, 0) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_AnimMidairStill) - EVT_CALL(SetPlayerJumpscale, 1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(PlayerJump1, LVar0, 0, LVar2, 10) - EVT_CALL(PlayerJump1, LVar0, 0, LVar2, 10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_CALL(EnablePartnerAI) - EVT_CALL(DisablePlayerPhysics, FALSE) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_802434EC) = { - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_802434FC) = { - .id = NPC_SENTINEL, - .settings = &N(npcSettings_8024066C), - .pos = { 0.0f, 0.0f, -1000.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_400000, - .init = &N(init_802434EC), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -NpcGroupList N(npcGroupList_802436EC) = { - NPC_GROUP(N(npcGroup_80241FE4)), - NPC_GROUP(N(npcGroup_802421D4)), - NPC_GROUP(N(npcGroup_802423C4)), - NPC_GROUP(N(npcGroup_802425B4)), - NPC_GROUP(N(npcGroup_802427A4)), - NPC_GROUP(N(npcGroup_80242994)), - {}, -}; - -NpcGroupList N(npcGroupList_80243740) = { - NPC_GROUP(N(npcGroup_802434FC)), - {}, -}; - -static s32 N(pad_3758)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(makeEntities) = { - EVT_CALL(MakeEntity, EVT_PTR(Entity_SavePoint), -65, 60, -240, 0, MAKE_ENTITY_END) - EVT_RETURN - EVT_END -}; - -ApiStatus N(func_80240060_BFA100)(Evt* script, s32 isInitialCall) { - Npc* npc = get_npc_unsafe(get_enemy(6)->npcID); - - sfx_adjust_env_sound_pos(SOUND_32E, 0, npc->pos.x, npc->pos.y, npc->pos.z); - return ApiStatus_DONE2; -} diff --git a/src/world/area_dgb/dgb_00/dgb_00.h b/src/world/area_dgb/dgb_00/dgb_00.h index 99566d62fe..cf11e3e6bb 100644 --- a/src/world/area_dgb/dgb_00/dgb_00.h +++ b/src/world/area_dgb/dgb_00/dgb_00.h @@ -2,20 +2,42 @@ /// @brief Tubba's Castle - Escape Scene #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/arn_20_shape.h" +#include "mapfs/arn_20_hit.h" + +#include "sprite/npc/WorldGoombario.h" +#include "sprite/npc/WorldKooper.h" +#include "sprite/npc/WorldBombette.h" +#include "sprite/npc/WorldParakarry.h" +#include "sprite/npc/WorldBow.h" + +enum { + NPC_Boo_01 = 0, + NPC_Boo_02 = 1, + NPC_Boo_03 = 2, + NPC_Boo_04 = 3, + NPC_Boo_05 = 4, + NPC_Boo_06 = 5, + NPC_Sentinel = 6, +}; + +enum { + MV_PreventTaunting = MapVar(0), +}; + #define NAMESPACE dgb_00 -ApiStatus N(func_80240060_BFA100)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_802436EC); -extern NpcGroupList N(npcGroupList_80243740); -extern EvtScript N(80240F50); -extern EvtScript N(8024103C); -extern EvtScript N(802413F4); -extern EvtScript N(80241AA0); -extern EvtScript N(80242B84); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_Scene_ThrownOutBySentinel); +extern EvtScript N(EVS_Scene_BoosApproachManor); +extern EvtScript N(EVS_Scene_EscapeFromTubba); +extern EvtScript N(EVS_SetBoosBracingDoor); +extern EvtScript N(EVS_TubbaTaunting); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); +extern NpcGroupList N(BooNPCs); diff --git a/src/world/area_dgb/dgb_00/dgb_00_0_header.c b/src/world/area_dgb/dgb_00/dgb_00_0_header.c new file mode 100644 index 0000000000..f3e21020ec --- /dev/null +++ b/src/world/area_dgb/dgb_00/dgb_00_0_header.c @@ -0,0 +1,14 @@ +#include "dgb_00.h" + +EntryList N(Entrances) = { + [dgb_00_ENTRY_0] { -733.0, 0.0, -8.0, 90.0 }, + [dgb_00_ENTRY_1] { 250.0, 10.0, -100.0, 225.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .background = &gBackgroundImage, + .tattle = { MSG_MapTattle_dgb_00 }, +}; diff --git a/src/world/area_dgb/dgb_00/dgb_00_1_music.c b/src/world/area_dgb/dgb_00/dgb_00_1_music.c new file mode 100644 index 0000000000..36b1a9951f --- /dev/null +++ b/src/world/area_dgb/dgb_00/dgb_00_1_music.c @@ -0,0 +1,15 @@ +#include "dgb_00.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_GUSTY_GULCH, 0, 8) + EVT_END_SWITCH + EVT_CALL(ClearAmbientSounds, 250) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_00/dgb_00_2_main.c b/src/world/area_dgb/dgb_00/dgb_00_2_main.c new file mode 100644 index 0000000000..9b71707835 --- /dev/null +++ b/src/world/area_dgb/dgb_00/dgb_00_2_main.c @@ -0,0 +1,97 @@ +#include "dgb_00.h" + +s32 N(map_init)(void) { + sprintf(wMapShapeName, "arn_20_shape"); + sprintf(wMapHitName, "arn_20_hit"); + sprintf(wMapTexName, "arn_tex"); + return FALSE; +} + +EvtScript N(EVS_ExitWalk_arn_04_1) = EVT_EXIT_WALK(60, dgb_00_ENTRY_0, "arn_04", arn_04_ENTRY_1); + +EvtScript N(EVS_ExitDoors_dgb_01_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_00_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deiliwt) + EVT_SET(LVar2, MODEL_d1) + EVT_SET(LVar3, MODEL_d2) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_arn_04_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0) + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deiliwt, 1, 0) + EVT_CASE_LT(STORY_CH3_ESCAPED_TUBBAS_MANOR) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_EXEC(N(EVS_TubbaTaunting)) + EVT_EXEC_WAIT(N(EVS_SetBoosBracingDoor)) + EVT_CASE_DEFAULT + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deiliwt, 1, 0) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetLoadType, LVar1) + EVT_IF_EQ(LVar1, LOAD_FROM_FILE_SELECT) + EVT_EXEC(EnterSavePoint) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_RETURN + EVT_END_IF + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_00_ENTRY_0) + EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers))) + EVT_EXEC(EnterWalk) + EVT_WAIT(1) + EVT_CASE_EQ(dgb_00_ENTRY_1) + EVT_IF_GE(GB_StoryProgress, STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) + EVT_IF_LT(GB_StoryProgress, STORY_CH3_ESCAPED_TUBBAS_MANOR) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_THREAD + EVT_EXEC_WAIT(N(EVS_Scene_BoosApproachManor)) + EVT_EXEC_WAIT(N(EVS_Scene_EscapeFromTubba)) + EVT_END_THREAD + EVT_RETURN + EVT_END_IF + EVT_END_IF + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_d1) + EVT_SET(LVar3, MODEL_d2) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_00_ENTRY_2) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_EXEC(N(EVS_Scene_ThrownOutBySentinel)) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_SET(GF_MAP_TubbasManor, TRUE) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_CALL(GetEntryID, LVar0) + EVT_IF_EQ(LVar0, dgb_00_ENTRY_2) + EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs))) + EVT_ELSE + EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(BooNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_00/dgb_00_3_npc.c b/src/world/area_dgb/dgb_00/dgb_00_3_npc.c new file mode 100644 index 0000000000..8a9f8dfae6 --- /dev/null +++ b/src/world/area_dgb/dgb_00/dgb_00_3_npc.c @@ -0,0 +1,680 @@ +#include "dgb_00.h" +#include "effects.h" + +API_CALLABLE(N(PlaySentinelSounds)) { + Npc* npc = get_npc_unsafe(get_enemy(NPC_Sentinel)->npcID); + + sfx_adjust_env_sound_pos(SOUND_32E, 0, npc->pos.x, npc->pos.y, npc->pos.z); + return ApiStatus_DONE2; +} + +#include "world/common/npc/Boo.inc.c" +#include "world/common/enemy/complete/Sentinel.h" + +NpcSettings N(NpcSettings_Sentinel) = { + .height = 24, + .radius = 24, + .level = 99, +}; + +EvtScript N(EVS_OpenDoors) = { + EVT_SET(LVar3, 0) + EVT_SUB(LVar3, LVar2) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deiliwt, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deiliwt, SOUND_CREAKY_DOOR_OPEN, 0) + EVT_CALL(MakeLerp, 0, 80, 30, EASING_LINEAR) + EVT_LABEL(10) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_d2, LVar0, 0, LVar2, 0) + EVT_CALL(RotateModel, MODEL_d1, LVar0, 0, LVar3, 0) + EVT_WAIT(1) + EVT_IF_NE(LVar1, 0) + EVT_GOTO(10) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_CloseDoors) = { + EVT_SET(LVar3, 0) + EVT_SUB(LVar3, LVar2) + EVT_CALL(MakeLerp, 80, 0, 12, EASING_LINEAR) + EVT_LABEL(10) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_d2, LVar0, 0, LVar2, 0) + EVT_CALL(RotateModel, MODEL_d1, LVar0, 0, LVar3, 0) + EVT_WAIT(1) + EVT_IF_NE(LVar1, 0) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_deiliwt, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deiliwt, SOUND_CREAKY_DOOR_CLOSE, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBoo1) = { + EVT_CALL(GetNpcPos, NPC_Boo_01, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 200) + EVT_CALL(NpcMoveTo, NPC_Boo_01, LVar0, LVar2, 46) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBoo2) = { + EVT_CALL(GetNpcPos, NPC_Boo_02, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 200) + EVT_CALL(NpcMoveTo, NPC_Boo_02, LVar0, LVar2, 50) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBoo3) = { + EVT_CALL(GetNpcPos, NPC_Boo_03, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 200) + EVT_CALL(NpcMoveTo, NPC_Boo_03, LVar0, LVar2, 53) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBoo4) = { + EVT_CALL(GetNpcPos, NPC_Boo_04, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 200) + EVT_CALL(NpcMoveTo, NPC_Boo_04, LVar0, LVar2, 46) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBoo5) = { + EVT_CALL(GetNpcPos, NPC_Boo_05, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 200) + EVT_CALL(NpcMoveTo, NPC_Boo_05, LVar0, LVar2, 50) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBoo6) = { + EVT_CALL(GetNpcPos, NPC_Boo_06, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 200) + EVT_CALL(NpcMoveTo, NPC_Boo_06, LVar0, LVar2, 53) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_AdvanceBooPhalanx) = { + EVT_EXEC(N(EVS_AdvanceBoo1)) + EVT_EXEC(N(EVS_AdvanceBoo2)) + EVT_EXEC(N(EVS_AdvanceBoo3)) + EVT_EXEC(N(EVS_AdvanceBoo4)) + EVT_EXEC(N(EVS_AdvanceBoo5)) + EVT_EXEC(N(EVS_AdvanceBoo6)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BraceDoor1) = { + EVT_CALL(SetNpcJumpscale, NPC_Boo_01, EVT_FLOAT(-0.2)) + EVT_CALL(NpcJump0, NPC_Boo_01, 257, 30, -90, 5) + EVT_CALL(EnableNpcShadow, NPC_Boo_01, FALSE) + EVT_CALL(SetNpcAnimation, NPC_Boo_01, ANIM_Boo_Tan_Flail) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BraceDoor2) = { + EVT_CALL(SetNpcJumpscale, NPC_Boo_02, EVT_FLOAT(-0.3)) + EVT_CALL(NpcJump0, NPC_Boo_02, 272, 112, -81, 12) + EVT_CALL(EnableNpcShadow, NPC_Boo_02, FALSE) + EVT_CALL(SetNpcAnimation, NPC_Boo_02, ANIM_Boo_Tan_Flail) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BraceDoor3) = { + EVT_CALL(SetNpcJumpscale, NPC_Boo_03, EVT_FLOAT(-0.4)) + EVT_CALL(NpcJump0, NPC_Boo_03, 237, 120, -118, 10) + EVT_CALL(EnableNpcShadow, NPC_Boo_03, FALSE) + EVT_CALL(SetNpcAnimation, NPC_Boo_03, ANIM_Boo_Tan_Flail) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BraceDoor4) = { + EVT_CALL(SetNpcJumpscale, NPC_Boo_04, EVT_FLOAT(-0.3)) + EVT_CALL(NpcJump0, NPC_Boo_04, 280, 60, -79, 8) + EVT_CALL(EnableNpcShadow, NPC_Boo_04, FALSE) + EVT_CALL(SetNpcAnimation, NPC_Boo_04, ANIM_Boo_Tan_Flail) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BraceDoor5) = { + EVT_CALL(SetNpcJumpscale, NPC_Boo_05, EVT_FLOAT(-0.4)) + EVT_CALL(NpcJump0, NPC_Boo_05, 250, 81, -97, 9) + EVT_CALL(EnableNpcShadow, NPC_Boo_05, FALSE) + EVT_CALL(SetNpcAnimation, NPC_Boo_05, ANIM_Boo_Tan_Flail) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BraceDoor6) = { + EVT_CALL(SetNpcJumpscale, NPC_Boo_06, EVT_FLOAT(-0.5)) + EVT_CALL(NpcJump0, NPC_Boo_06, 227, 43, -123, 15) + EVT_CALL(EnableNpcShadow, NPC_Boo_06, FALSE) + EVT_CALL(SetNpcAnimation, NPC_Boo_06, ANIM_Boo_Tan_Flail) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BoosBraceDoor) = { + EVT_EXEC(N(EVS_BraceDoor2)) + EVT_EXEC(N(EVS_BraceDoor3)) + EVT_EXEC(N(EVS_BraceDoor4)) + EVT_EXEC(N(EVS_BraceDoor5)) + EVT_EXEC(N(EVS_BraceDoor6)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_LeaderBooShivering) = { + EVT_CALL(GetNpcPos, NPC_Boo_01, LVar0, LVar1, LVar2) + EVT_LOOP(0) + EVT_CALL(RandInt, 5, LVarA) + EVT_ADD(LVarA, 2) + EVT_SET(LVarB, 0) + EVT_LABEL(10) + EVT_SET(LVar3, LVar0) + EVT_ADD(LVar3, 1) + EVT_CALL(SetNpcPos, NPC_Boo_01, LVar3, LVar1, LVar2) + EVT_WAIT(1) + EVT_SET(LVar3, LVar0) + EVT_ADD(LVar3, -1) + EVT_CALL(SetNpcPos, NPC_Boo_01, LVar3, LVar1, LVar2) + EVT_WAIT(1) + EVT_ADD(LVarB, 1) + EVT_IF_LT(LVarB, LVarA) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(RandInt, 10, LVarA) + EVT_ADD(LVarA, 10) + EVT_WAIT(LVarA) + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_TubbaTaunting) = { + EVT_SET_GROUP(EVT_GROUP_EF) + EVT_LOOP(0) + EVT_CALL(RandInt, 50, LVar0) + EVT_ADD(LVar0, 80) + EVT_WAIT(LVar0) + EVT_IF_EQ(MV_PreventTaunting, FALSE) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(2.0)) + EVT_CALL(ShowMessageAtScreenPos, MSG_CH3_00EF, 160, 40) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_END_IF + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Scene_BoosApproachManor) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(SetPlayerPos, 350, 10, -150) + EVT_CALL(InterpPlayerYaw, 270, 1) + EVT_CALL(SetNpcPos, NPC_PARTNER, 350, 10, -150) + EVT_CALL(EnablePartnerAI) + EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_SET(LVar0, 175) + EVT_SET(LVar1, 0) + EVT_SET(LVar2, -75) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_WAIT(40) + EVT_CALL(SetNpcPos, NPC_Boo_01, -60, 10, -70) + EVT_CALL(SetNpcPos, NPC_Boo_02, -100, 10, -110) + EVT_CALL(SetNpcPos, NPC_Boo_03, -140, 10, -150) + EVT_CALL(SetNpcPos, NPC_Boo_04, -100, 10, -30) + EVT_CALL(SetNpcPos, NPC_Boo_05, -140, 10, -70) + EVT_CALL(SetNpcPos, NPC_Boo_06, -180, 10, -100) + EVT_EXEC_WAIT(N(EVS_AdvanceBooPhalanx)) + EVT_WAIT(60) + EVT_CALL(InterpNpcYaw, NPC_Boo_01, 270, 1) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 5, MSG_CH3_00DB) + EVT_CALL(SpeakToPlayer, NPC_Boo_05, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 5, MSG_CH3_00DC) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 5, MSG_CH3_00DD) + EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(2.0)) + EVT_WAIT(10) + EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(2.0)) + EVT_CALL(InterpNpcYaw, NPC_Boo_01, 90, 1) + EVT_CALL(ShowMessageAtScreenPos, MSG_CH3_00DE, 160, 40) + EVT_CALL(SetPlayerPos, 350, 10, -150) + EVT_CALL(InterpPlayerYaw, 270, 1) + EVT_CALL(SetNpcPos, NPC_PARTNER, 350, 10, -150) + EVT_SET(LVar2, 1) + EVT_EXEC_WAIT(N(EVS_OpenDoors)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Scene_EscapeFromTubba) = { + EVT_CALL(SetPlayerSpeed, EVT_FLOAT(8.0)) + EVT_CALL(PlayerMoveTo, 184, -44, 0) + EVT_CALL(PlaySoundAtNpc, NPC_Boo_01, SOUND_262, 0) + EVT_CALL(PlaySoundAtNpc, NPC_Boo_02, SOUND_262, 0) + EVT_CALL(PlaySoundAtNpc, NPC_Boo_03, SOUND_262, 0) + EVT_CALL(PlaySoundAtNpc, NPC_Boo_04, SOUND_262, 0) + EVT_CALL(PlaySoundAtNpc, NPC_Boo_05, SOUND_262, 0) + EVT_CALL(PlaySoundAtNpc, NPC_Boo_06, SOUND_262, 0) + EVT_CALL(ShowEmote, NPC_Boo_01, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0) + EVT_CALL(ShowEmote, NPC_Boo_02, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0) + EVT_CALL(ShowEmote, NPC_Boo_03, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0) + EVT_CALL(ShowEmote, NPC_Boo_04, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0) + EVT_CALL(ShowEmote, NPC_Boo_05, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0) + EVT_CALL(ShowEmote, NPC_Boo_06, EMOTE_EXCLAMATION, 45, 20, TRUE, 0, 0, 0, 0) + EVT_WAIT(50) + EVT_SET(LVar2, 1) + EVT_EXEC(N(EVS_CloseDoors)) + EVT_EXEC(N(EVS_BoosBraceDoor)) + EVT_WAIT(20) + EVT_CALL(SetCamType, CAM_DEFAULT, 6, TRUE) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(15.0), EVT_FLOAT(-15.0)) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamDistance, CAM_DEFAULT, 300) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_EXEC_GET_TID(N(EVS_LeaderBooShivering), LVarA) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00DF) + EVT_KILL_THREAD(LVarA) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_80007) + EVT_WAIT(20) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00E0) + EVT_WAIT(20) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_NodYes) + EVT_WAIT(20) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00E1) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(GetCurrentPartnerID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(PARTNER_GOOMBARIO) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH3_00E2) + EVT_CASE_EQ(PARTNER_KOOPER) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldKooper_Talk, ANIM_WorldKooper_Idle, 0, MSG_CH3_00E3) + EVT_CASE_EQ(PARTNER_BOMBETTE) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBombette_Talk, ANIM_WorldBombette_Idle, 0, MSG_CH3_00E4) + EVT_CASE_EQ(PARTNER_PARAKARRY) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldParakarry_Talk, ANIM_WorldParakarry_Idle, 0, MSG_CH3_00E5) + EVT_CASE_EQ(PARTNER_BOW) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBow_Talk, ANIM_WorldBow_Idle, 0, MSG_CH3_00E6) + EVT_END_SWITCH + EVT_CALL(EnablePartnerAI) + EVT_CALL(SetCamType, CAM_DEFAULT, 4, FALSE) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(2.0)) + EVT_WAIT(5) + EVT_CALL(PlaySoundAt, SOUND_B4, 0, 240, 10, -125) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(2.0)) + EVT_CALL(ShowMessageAtScreenPos, MSG_CH3_00E7, 160, 40) + EVT_EXEC_WAIT(N(EVS_BraceDoor1)) + EVT_WAIT(10) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Flail, ANIM_Boo_Tan_Flail, 5, MSG_CH3_00E8) + EVT_CALL(SetNpcAnimation, NPC_Boo_01, ANIM_Boo_Tan_Flail) + EVT_EXEC(N(EVS_TubbaTaunting)) + EVT_SET(GB_StoryProgress, STORY_CH3_ESCAPED_TUBBAS_MANOR) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_SetBoosBracingDoor) = { + EVT_CALL(SetNpcPos, NPC_Boo_01, 246, 30, -110) + EVT_CALL(SetNpcPos, NPC_Boo_02, 276, 120, -80) + EVT_CALL(SetNpcPos, NPC_Boo_03, 216, 120, -140) + EVT_CALL(SetNpcPos, NPC_Boo_04, 276, 60, -80) + EVT_CALL(SetNpcPos, NPC_Boo_05, 246, 90, -110) + EVT_CALL(SetNpcPos, NPC_Boo_06, 216, 60, -130) + EVT_CALL(InterpNpcYaw, NPC_Boo_01, 70, 1) + EVT_CALL(InterpNpcYaw, NPC_Boo_02, 99, 1) + EVT_CALL(InterpNpcYaw, NPC_Boo_03, 93, 1) + EVT_CALL(InterpNpcYaw, NPC_Boo_04, 74, 1) + EVT_CALL(InterpNpcYaw, NPC_Boo_05, 78, 1) + EVT_CALL(InterpNpcYaw, NPC_Boo_06, 81, 1) + EVT_CALL(SetNpcAnimation, NPC_Boo_01, ANIM_Boo_Tan_Flail) + EVT_CALL(SetNpcAnimation, NPC_Boo_02, ANIM_Boo_Tan_Flail) + EVT_CALL(SetNpcAnimation, NPC_Boo_03, ANIM_Boo_Tan_Flail) + EVT_CALL(SetNpcAnimation, NPC_Boo_04, ANIM_Boo_Tan_Flail) + EVT_CALL(SetNpcAnimation, NPC_Boo_05, ANIM_Boo_Tan_Flail) + EVT_CALL(SetNpcAnimation, NPC_Boo_06, ANIM_Boo_Tan_Flail) + EVT_CALL(EnableNpcShadow, NPC_Boo_01, FALSE) + EVT_CALL(EnableNpcShadow, NPC_Boo_02, FALSE) + EVT_CALL(EnableNpcShadow, NPC_Boo_03, FALSE) + EVT_CALL(EnableNpcShadow, NPC_Boo_04, FALSE) + EVT_CALL(EnableNpcShadow, NPC_Boo_05, FALSE) + EVT_CALL(EnableNpcShadow, NPC_Boo_06, FALSE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInteract_Boo_01) = { + EVT_SET(MV_PreventTaunting, TRUE) + EVT_CALL(SpeakToPlayer, NPC_Boo_01, ANIM_Boo_Tan_Flail, ANIM_Boo_Tan_Flail, 5, MSG_CH3_00E9) + EVT_CALL(SetNpcAnimation, NPC_Boo_01, ANIM_Boo_Tan_Flail) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(GetCurrentPartnerID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(PARTNER_GOOMBARIO) + EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH3_00EA) + EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_CASE_EQ(PARTNER_KOOPER) + EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldKooper_Talk, ANIM_WorldKooper_Idle, 0, MSG_CH3_00EB) + EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_CASE_EQ(PARTNER_BOMBETTE) + EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBombette_Talk, ANIM_WorldBombette_Idle, 0, MSG_CH3_00EC) + EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_CASE_EQ(PARTNER_PARAKARRY) + EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldParakarry_Talk, ANIM_WorldParakarry_Idle, 0, MSG_CH3_00ED) + EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_CASE_EQ(PARTNER_BOW) + EVT_CALL(AdjustCam, CAM_DEFAULT, EVT_FLOAT(6.0), 0, EVT_FLOAT(-275.0), EVT_FLOAT(15.0), EVT_FLOAT(-6.0)) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBow_Talk, ANIM_WorldBow_Idle, 0, MSG_CH3_00EE) + EVT_CALL(ResetCam, CAM_DEFAULT, EVT_FLOAT(6.0)) + EVT_END_SWITCH + EVT_CALL(EnablePartnerAI) + EVT_SET(MV_PreventTaunting, FALSE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo_01) = { + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(EVS_NpcInteract_Boo_01))) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo_02) = { + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo_03) = { + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo_04) = { + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo_05) = { + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo_06) = { + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Boo_01) = { + .id = NPC_Boo_01, + .settings = &N(NpcSettings_Boo), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_400000, + .init = &N(EVS_NpcInit_Boo_01), + .drops = BOO_DROPS, + .animations = GUSTY_BOO_ANIMS, + .tattle = MSG_NpcTattle_BraveBoo, +}; + +StaticNpc N(NpcData_Boo_02) = { + .id = NPC_Boo_02, + .settings = &N(NpcSettings_Boo), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Boo_02), + .drops = BOO_DROPS, + .animations = GUSTY_BOO_ANIMS, +}; + +StaticNpc N(NpcData_Boo_03) = { + .id = NPC_Boo_03, + .settings = &N(NpcSettings_Boo), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Boo_03), + .drops = BOO_DROPS, + .animations = GUSTY_BOO_ANIMS, +}; + +StaticNpc N(NpcData_Boo_04) = { + .id = NPC_Boo_04, + .settings = &N(NpcSettings_Boo), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Boo_04), + .drops = BOO_DROPS, + .animations = GUSTY_BOO_ANIMS, +}; + +StaticNpc N(NpcData_Boo_05) = { + .id = NPC_Boo_05, + .settings = &N(NpcSettings_Boo), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Boo_05), + .drops = BOO_DROPS, + .animations = GUSTY_BOO_ANIMS, +}; + +StaticNpc N(NpcData_Boo_06) = { + .id = NPC_Boo_06, + .settings = &N(NpcSettings_Boo), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Boo_06), + .drops = BOO_DROPS, + .animations = GUSTY_BOO_ANIMS, +}; + +EvtScript N(EVS_Scene_ThrownOutBySentinel) = { + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(SetNpcPos, NPC_PARTNER, 320, 10, -160) + EVT_CALL(PlaySound, SOUND_32E) + EVT_THREAD + EVT_LOOP(180) + EVT_CALL(GetNpcPos, NPC_Sentinel, LVar0, LVar1, LVar2) + EVT_CALL(N(PlaySentinelSounds)) + EVT_WAIT(1) + EVT_END_LOOP + EVT_END_THREAD + EVT_CALL(SetPlayerPos, 320, 50, -160) + EVT_CALL(InterpPlayerYaw, 270, 0) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) + EVT_CALL(SetNpcPos, NPC_Sentinel, 320, 70, -158) + EVT_CALL(InterpNpcYaw, NPC_Sentinel, 270, 0) + EVT_CALL(SetNpcAnimation, NPC_Sentinel, ANIM_Sentinel_Anim08) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 175, 0, -35) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 175, 0, -35) + EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(540.0)) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_WAIT(20) + EVT_THREAD + EVT_SET(LVar2, 1) + EVT_EXEC(N(EVS_OpenDoors)) + EVT_END_THREAD + EVT_WAIT(15) + EVT_THREAD + EVT_CALL(SetPlayerJumpscale, 0) + EVT_CALL(PlayerJump1, 175, 50, -35, 40) + EVT_END_THREAD + EVT_THREAD + EVT_CALL(DisablePartnerAI, 0) + EVT_WAIT(1) + EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0) + EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_TALK) + EVT_WAIT(85) + EVT_CALL(func_802CF56C, 2) + EVT_WAIT(1) + EVT_CALL(EnablePartnerAI) + EVT_END_THREAD + EVT_CALL(NpcMoveTo, NPC_Sentinel, 175, -33, 40) + EVT_WAIT(20) + EVT_CALL(SetNpcPos, NPC_Sentinel, 175, 85, -33) + EVT_CALL(SetNpcAnimation, NPC_Sentinel, ANIM_Sentinel_Anim09) + EVT_WAIT(20) + EVT_CALL(PlaySoundAtNpc, NPC_Sentinel, SOUND_2F7, 0) + EVT_CALL(SetNpcAnimation, NPC_Sentinel, ANIM_Sentinel_Anim02) + EVT_CALL(SetNpcPos, NPC_Sentinel, 175, 70, -33) + EVT_THREAD + EVT_WAIT(40) + EVT_CALL(SetNpcAnimation, NPC_Sentinel, ANIM_Sentinel_Anim03) + EVT_CALL(NpcMoveTo, NPC_Sentinel, 270, -120, 30) + EVT_CALL(StopSound, SOUND_32E) + EVT_CALL(SetNpcPos, NPC_Sentinel, NPC_DISPOSE_LOCATION) + EVT_END_THREAD + EVT_THREAD + EVT_WAIT(60) + EVT_SET(LVar2, 1) + EVT_EXEC(N(EVS_CloseDoors)) + EVT_END_THREAD + EVT_CALL(SetPlayerJumpscale, 0) + EVT_CALL(PlayerJump1, 175, 0, -35, 10) + EVT_CALL(PlaySoundAtNpc, NPC_Sentinel, SOUND_162, 0) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_80003) + EVT_THREAD + EVT_WAIT(2) + EVT_PLAY_EFFECT(EFFECT_EMOTE, 3, 0, 175, 0, -35, 20, -20, 30, 0) + EVT_END_THREAD + EVT_THREAD + EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(320.0)) + EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(15.0), EVT_FLOAT(-7.5)) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_END_THREAD + EVT_WAIT(65) + EVT_CALL(GetCurrentPartnerID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(PARTNER_GOOMBARIO) + EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, TRUE) + EVT_CASE_EQ(PARTNER_KOOPER) + EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, TRUE) + EVT_CASE_EQ(PARTNER_BOMBETTE) + EVT_CALL(SetNpcFlagBits, NPC_PARTNER, NPC_FLAG_GRAVITY, TRUE) + EVT_END_SWITCH + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(GetCurrentPartnerID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(PARTNER_GOOMBARIO) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, PARTNER_ANIM_HURT, PARTNER_ANIM_RUN, 5, MSG_CH3_00D6) + EVT_CASE_EQ(PARTNER_KOOPER) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, PARTNER_ANIM_HURT, PARTNER_ANIM_RUN, 5, MSG_CH3_00D7) + EVT_CASE_EQ(PARTNER_BOMBETTE) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, PARTNER_ANIM_HURT, PARTNER_ANIM_RUN, 5, MSG_CH3_00D8) + EVT_CASE_EQ(PARTNER_PARAKARRY) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, PARTNER_ANIM_HURT, PARTNER_ANIM_RUN, 5, MSG_CH3_00D9) + EVT_CASE_EQ(PARTNER_BOW) + EVT_CALL(SpeakToPlayer, NPC_PARTNER, PARTNER_ANIM_HURT, PARTNER_ANIM_RUN, 5, MSG_CH3_00DA) + EVT_CASE_DEFAULT + EVT_CALL(SpeakToPlayer, NPC_PARTNER, PARTNER_ANIM_HURT, PARTNER_ANIM_RUN, 5, MSG_CH3_00D6) + EVT_END_SWITCH + EVT_CALL(EnablePartnerAI) + EVT_WAIT(5) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_GetUp) + EVT_WAIT(20) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_DustOff) + EVT_WAIT(7) + EVT_CALL(PlaySoundAtPlayer, SOUND_DUST_OFF, 0) + EVT_WAIT(8) + EVT_CALL(PlaySoundAtPlayer, SOUND_DUST_OFF, 0) + EVT_WAIT(15) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001B) + EVT_WAIT(25) + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_WAIT(1) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) + EVT_CALL(InterpPlayerYaw, 45, 0) + EVT_WAIT(10) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_AnimMidairStill) + EVT_CALL(SetPlayerJumpscale, 1) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(PlayerJump1, LVar0, 0, LVar2, 10) + EVT_CALL(PlayerJump1, LVar0, 0, LVar2, 10) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(4.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_CALL(EnablePartnerAI) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Sentinel) = { + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Sentinel) = { + .id = NPC_Sentinel, + .settings = &N(NpcSettings_Sentinel), + .pos = { 0.0f, 0.0f, -1000.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_4 | ENEMY_FLAGS_100 | ENEMY_FLAGS_200 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_400000, + .init = &N(EVS_NpcInit_Sentinel), + .drops = SENTINEL_DROPS, + .animations = SENTINEL_ANIMS, +}; + +NpcGroupList N(BooNPCs) = { + NPC_GROUP(N(NpcData_Boo_01)), + NPC_GROUP(N(NpcData_Boo_02)), + NPC_GROUP(N(NpcData_Boo_03)), + NPC_GROUP(N(NpcData_Boo_04)), + NPC_GROUP(N(NpcData_Boo_05)), + NPC_GROUP(N(NpcData_Boo_06)), + {} +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Sentinel)), + {} +}; diff --git a/src/world/area_dgb/dgb_00/dgb_00_4_entity.c b/src/world/area_dgb/dgb_00/dgb_00_4_entity.c new file mode 100644 index 0000000000..626bc6e556 --- /dev/null +++ b/src/world/area_dgb/dgb_00/dgb_00_4_entity.c @@ -0,0 +1,8 @@ +#include "dgb_00.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeEntity, EVT_PTR(Entity_SavePoint), -65, 60, -240, 0, MAKE_ENTITY_END) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_01/BFD880.c b/src/world/area_dgb/dgb_01/BFD880.c deleted file mode 100644 index 6e27ad7931..0000000000 --- a/src/world/area_dgb/dgb_01/BFD880.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "dgb_01.h" -#include "ld_addrs.h" - -ApiStatus N(func_80240000_BFD880)(void) { - dma_copy(C20F40_ROM_START, C20F40_ROM_END, C20F40_VRAM); - return ApiStatus_DONE2; -} diff --git a/src/world/area_dgb/dgb_01/BFD8C0.c b/src/world/area_dgb/dgb_01/BFD8C0.c deleted file mode 100644 index 9ef3acb5da..0000000000 --- a/src/world/area_dgb/dgb_01/BFD8C0.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "dgb_01.h" - -#include "world/common/todo/RemovePadlock.inc.c" - -#include "world/common/todo/GetEntityPosition.inc.c" - - diff --git a/src/world/area_dgb/dgb_01/BFD9A0.c b/src/world/area_dgb/dgb_01/BFD9A0.c deleted file mode 100644 index 5305b89a17..0000000000 --- a/src/world/area_dgb/dgb_01/BFD9A0.c +++ /dev/null @@ -1,1188 +0,0 @@ -#include "dgb_01.h" -#include "sprite/npc/Sentinel.h" -#include "sprite/npc/WorldTubba.h" -#include "message_ids.h" -#include "effects.h" -#include "entity.h" -#include "world/partners.h" - -EntryList N(entryList) = { - { 0.0f, 0.0f, 485.0f, 0.0f }, - { -485.0f, 0.0f, 0.0f, 90.0f }, - { 485.0f, 0.0f, 0.0f, 270.0f }, - { -485.0f, 210.0f, 0.0f, 90.0f }, - { 485.0f, 210.0f, 0.0f, 270.0f }, - { -485.0f, 420.0f, 0.0f, 90.0f }, - { 485.0f, 420.0f, 0.0f, 270.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_01 }, -}; - -EvtScript N(802434A0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_CALL(ClearAmbientSounds, 250) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3548)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80243550) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 4) - EVT_SET(LVar2, 54) - EVT_SET(LVar3, 57) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_00"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80243604) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 8) - EVT_SET(LVar2, 34) - EVT_SET(LVar3, 36) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802436B8) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 2) - EVT_SET(LVar1, 20) - EVT_SET(LVar2, 41) - EVT_SET(LVar3, 39) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_08"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_8024376C) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 3) - EVT_SET(LVar1, 12) - EVT_SET(LVar2, 29) - EVT_SET(LVar3, 31) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_09"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80243820) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 4) - EVT_SET(LVar1, 24) - EVT_SET(LVar2, 46) - EVT_SET(LVar3, 44) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_08"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802438D4) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 5) - EVT_SET(LVar1, 16) - EVT_SET(LVar2, 24) - EVT_SET(LVar3, 26) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_17"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80243988) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 6) - EVT_SET(LVar1, 28) - EVT_SET(LVar2, 51) - EVT_SET(LVar3, 49) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_18"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterDoubleDoor_80243A3C) = { - EVT_CALL(UseDoorSounds, 3) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_IF_EQ(GF_DGB01_Visited, 0) - EVT_SET(GF_DGB01_Visited, 1) - EVT_SET(GB_StoryProgress, -32) - EVT_END_IF - EVT_SET(LVar2, 54) - EVT_SET(LVar3, 57) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_SET(LVar2, 34) - EVT_SET(LVar3, 36) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(2) - EVT_SET(LVar2, 41) - EVT_SET(LVar3, 39) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(3) - EVT_SET(LVar2, 29) - EVT_SET(LVar3, 31) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(4) - EVT_SET(LVar2, 46) - EVT_SET(LVar3, 44) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(5) - EVT_SET(LVar2, 24) - EVT_SET(LVar3, 26) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(6) - EVT_SET(LVar2, 51) - EVT_SET(LVar3, 49) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(itemList_80243C40)[] = { - ITEM_TUBBA_CASTLE_KEY, - ITEM_NONE, -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_SET(GF_MAP_TubbasManor, 1) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(802449C4)) - EVT_EXEC(N(802434A0)) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243550), TRIGGER_WALL_PRESS_A, 4, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243604), TRIGGER_WALL_PRESS_A, 8, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_8024376C), TRIGGER_WALL_PRESS_A, 12, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243820), TRIGGER_WALL_PRESS_A, 24, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_802438D4), TRIGGER_WALL_PRESS_A, 16, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243988), TRIGGER_WALL_PRESS_A, 28, 1, 0) - EVT_IF_EQ(GF_DGB01_UnlockedEastWing, 0) - EVT_BIND_PADLOCK(N(80244AD0), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(itemList_80243C40)), 0, 1) - EVT_ELSE - EVT_BIND_TRIGGER(N(exitDoubleDoor_802436B8), TRIGGER_WALL_PRESS_A, 20, 1, 0) - EVT_END_IF - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80246E50))) - EVT_CASE_LT(-16) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(2) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80246F1C))) - EVT_CASE_EQ(4) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80246ED4))) - EVT_CASE_EQ(6) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80246E8C))) - EVT_END_SWITCH - EVT_END_SWITCH - EVT_EXEC(N(enterDoubleDoor_80243A3C)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3EE4)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(80243EF0) = { - EVT_LOOP(0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_IF_LT(LVar0, 100) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(N(func_80240000_BFD880)) - EVT_CALL(InitAnimatedModels) - EVT_WAIT(1) - EVT_CALL(InterruptUsePartner) - EVT_CALL(SetPlayerAnimation, 524298) - EVT_THREAD - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_WAIT(5) - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_WAIT(5) - EVT_END_THREAD - EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 10, EVT_FLOAT(1.0)) - EVT_END_THREAD - EVT_WAIT(30) - EVT_THREAD - EVT_LOOP(12) - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_WAIT(5) - EVT_END_LOOP - EVT_END_THREAD - EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 60, EVT_FLOAT(1.0)) - EVT_END_THREAD - EVT_CALL(UseSettingsFrom, 0, 400, 420, 0) - EVT_CALL(SetPanTarget, 0, 400, 420, 0) - EVT_CALL(SetCamDistance, 0, EVT_FLOAT(450.0)) - EVT_CALL(SetCamPitch, 0, EVT_FLOAT(20.0), EVT_FLOAT(-11.0)) - EVT_CALL(SetCamPosB, 0, EVT_FLOAT(500.0), EVT_FLOAT(0.0)) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(3.0)) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_SET(GB_ARN_Tubba_MapID, 1) - EVT_CALL(SetNpcVar, 4, 0, 1) - EVT_LOOP(0) - EVT_CALL(GetNpcVar, 4, 0, LVar0) - EVT_IF_EQ(LVar0, 3) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, -50) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(SetCamDistance, 0, EVT_FLOAT(750.0)) - EVT_CALL(SetCamPitch, 0, EVT_FLOAT(0.0), EVT_FLOAT(3.0)) - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar0, 30) - EVT_CALL(SetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_CALL(EnablePartnerAI) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(1.0)) - EVT_CALL(LoadAnimatedModel, 0, EVT_PTR(N(D_80252F4C_C107CC))) - EVT_CALL(PlayModelAnimation, 0, EVT_PTR(N(D_802539A0_C11220))) - EVT_CALL(SetAnimatedModelRootPosition, 0, 0, 0, 0) - EVT_CALL(SetAnimatedModelRenderMode, 0, 1) - EVT_THREAD - EVT_CALL(PlaySound, 0x95) - EVT_WAIT(60) - EVT_CALL(PlaySound, 0x96) - EVT_WAIT(25) - EVT_CALL(PlaySound, 0x98) - EVT_WAIT(70) - EVT_CALL(PlaySound, 0x97) - EVT_END_THREAD - EVT_THREAD - EVT_WAIT(100) - EVT_CALL(PlaySound, 0xA8) - EVT_WAIT(50) - EVT_CALL(PlaySound, 0xA8) - EVT_WAIT(30) - EVT_CALL(PlaySound, 0xA8) - EVT_WAIT(70) - EVT_CALL(PlaySound, 0xA8) - EVT_WAIT(30) - EVT_CALL(PlaySound, 0xA8) - EVT_END_THREAD - EVT_THREAD - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_WAIT(1) - EVT_CALL(SetGroupEnabled, 100, 0) - EVT_CALL(SetGroupEnabled, 111, 0) - EVT_CALL(SetPlayerAnimation, 524307) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.5)) - EVT_CALL(PlayerJump1, 121, 210, 0, 60) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, 524319) - EVT_WAIT(20) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_RunPanic) - EVT_CALL(SetPlayerSpeed, EVT_FLOAT(8.0)) - EVT_CALL(PlayerMoveTo, 412, -29, 0) - EVT_WAIT(10) - EVT_CALL(InterpPlayerYaw, 270, 0) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) - EVT_CALL(ModifyColliderFlags, 1, 50, 0x7FFFFE00) - EVT_CALL(DisablePlayerPhysics, FALSE) - EVT_END_THREAD - EVT_THREAD - EVT_CALL(DisablePartnerAI, 0) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_SUB(LVar1, 210) - EVT_WAIT(1) - EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(0.5)) - EVT_CALL(NpcJump1, NPC_PARTNER, 151, LVar1, 0, 60) - EVT_WAIT(30) - EVT_CALL(EnablePartnerAI) - EVT_END_THREAD - EVT_CALL(ShakeCam, 0, 0, 300, EVT_FLOAT(1.0)) - EVT_CALL(StopSound, 0x8000005D) - EVT_THREAD - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim0D) - EVT_CALL(SetNpcSpeed, 4, EVT_FLOAT(3.0)) - EVT_CALL(NpcMoveTo, 4, 176, 0, 0) - EVT_END_THREAD - EVT_THREAD - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.3)) - EVT_WAIT(5) - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(0.15)) - EVT_WAIT(8) - EVT_END_THREAD - EVT_WAIT(20) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(2.0)) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_SET(GB_StoryProgress, -28) - EVT_CALL(SetGroupEnabled, 210, 1) - EVT_CALL(DeleteAnimatedModel, 0) - EVT_THREAD - EVT_WAIT(30) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim0D) - EVT_CALL(SetNpcPos, 4, 137, 244, 35) - EVT_CALL(SetNpcSpeed, 4, EVT_FLOAT(3.0)) - EVT_CALL(NpcMoveTo, 4, 470, 0, 0) - EVT_CALL(ShakeCam, 0, 0, 10, EVT_FLOAT(3.0)) - EVT_END_THREAD - EVT_THREAD - EVT_LOOP(0) - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.3)) - EVT_WAIT(5) - EVT_CALL(PlaySoundAtNpc, 4, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(0.15)) - EVT_WAIT(8) - EVT_END_LOOP - EVT_END_THREAD - EVT_CALL(SetPlayerSpeed, EVT_FLOAT(3.0)) - EVT_CALL(PlayerMoveTo, 470, 0, 0) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_EXEC(N(exitDoubleDoor_80243820)) - EVT_RETURN - EVT_END -}; - -EvtScript N(802449C4) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetGroupEnabled, 210, 0) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 50, 0x7FFFFE00) - EVT_CASE_EQ(-29) - EVT_CALL(SetGroupEnabled, 210, 0) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 50, 0x7FFFFE00) - EVT_EXEC(N(80243EF0)) - EVT_CASE_LT(-16) - EVT_CALL(SetGroupEnabled, 112, 0) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 40, 0x7FFFFE00) - EVT_CASE_DEFAULT - EVT_CALL(SetGroupEnabled, 210, 0) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 50, 0x7FFFFE00) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(80244AD0) = { - EVT_SET_GROUP(EVT_GROUP_00) - EVT_SUSPEND_GROUP(EVT_GROUP_01) - EVT_CALL(ShowKeyChoicePopup) - EVT_IF_EQ(LVar0, 0) - EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) - EVT_CALL(CloseChoicePopup) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_RETURN - EVT_END_IF - EVT_IF_EQ(LVar0, -1) - EVT_CALL(CloseChoicePopup) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_RETURN - EVT_END_IF - EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) - EVT_CALL(RemoveKeyItemAt, LVar0) - EVT_CALL(CloseChoicePopup) - EVT_SET(GF_DGB01_UnlockedEastWing, 1) - EVT_CALL(N(GetEntityPosition), MapVar(0), LVar0, LVar1, LVar2) - EVT_CALL(PlaySoundAt, 0x269, 0, LVar0, LVar1, LVar2) - EVT_SET(LVar0, MapVar(0)) - EVT_CALL(N(RemovePadlock)) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_UNBIND - EVT_RETURN - EVT_END -}; - -EvtScript N(80244C38) = { - EVT_BIND_TRIGGER(N(exitDoubleDoor_802436B8), TRIGGER_WALL_PRESS_A, 20, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_IF_EQ(GF_DGB01_UnlockedEastWing, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_Padlock), 490, 8, 0, -80, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(80244C38))) - EVT_SET(MapVar(0), LVar0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -f32 N(FlyingAI_JumpVels)[] = { - 4.5f, 3.5f, 2.6f, 2.0f, - 1.5f, 20.0f, -}; - -EvtScript N(80244CE8) = { - EVT_CALL(SetSelfEnemyFlagBits, ((ENEMY_FLAGS_100000 | ENEMY_FLAGS_IGNORE_TOUCH | ENEMY_FLAGS_IGNORE_JUMP | ENEMY_FLAGS_IGNORE_HAMMER | ENEMY_FLAGS_8000000 | ENEMY_FLAGS_10000000 | ENEMY_FLAGS_20000000)), TRUE) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | ENEMY_FLAGS_800)), TRUE) - EVT_RETURN - EVT_END -}; - -MobileAISettings N(npcAISettings_80244D24) = { - .moveSpeed = 1.5f, - .moveTime = 90, - .waitTime = 30, - .alertRadius = 240.0f, - .playerSearchInterval = 1, - .chaseSpeed = 5.3f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 1, - .chaseRadius = 240.0f, - .unk_AI_2C = 1, -}; - -#define AI_SENTINEL_FIRST_NPC 0 -#define AI_SENTINEL_LAST_NPC 4 -#include "world/common/enemy/ai/SentinelAI.inc.c" - -extern const char N(dgb_00_name_hack)[]; - -EvtScript N(npcAI_80244D54) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 5, -650) - EVT_CALL(SetSelfVar, 6, 30) - EVT_CALL(SetSelfVar, 1, 600) - EVT_CALL(N(SentinelAI_Main), EVT_PTR(N(npcAISettings_80244D24))) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_WAIT(2) - EVT_LABEL(20) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar4, LVar2) - EVT_CALL(GetPlayerActionState, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_WAIT(1) - EVT_GOTO(20) - EVT_END_IF - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(InterruptUsePartner) - EVT_CALL(DisablePartnerAI, 0) - EVT_SET_GROUP(EVT_GROUP_00) - EVT_CALL(SetTimeFreezeMode, 1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 20) - EVT_ADD(LVar2, 2) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(func_80045838, -1, 759, 0) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim08) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) - EVT_WAIT(10) - EVT_CALL(func_80045838, -1, 1838, 0) - EVT_THREAD - EVT_LOOP(100) - EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_THREAD - EVT_THREAD - EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x108) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_END_THREAD - EVT_WAIT(30) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(8024517C) = { - EVT_CALL(GetOwnerEncounterTrigger, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CASE_OR_EQ(2) - EVT_CASE_OR_EQ(4) - EVT_CASE_OR_EQ(6) - EVT_CALL(GetSelfAnimationFromTable, 7, LVar0) - EVT_EXEC_WAIT(EVS_NpcHitRecoil) - EVT_END_CASE_GROUP - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(80245208) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(OUTCOME_PLAYER_WON) - EVT_CALL(DoNpcDefeat) - EVT_CASE_EQ(OUTCOME_PLAYER_LOST) - EVT_CASE_EQ(OUTCOME_PLAYER_FLED) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_8024526C) = { - .height = 38, - .radius = 32, - .otherAI = &N(80244CE8), - .ai = &N(npcAI_80244D54), - .level = 99, -}; - -MobileAISettings N(npcAISettings_80245298) = { - .moveSpeed = 4.5f, - .alertRadius = 170.0f, - .alertOffsetDist = 90.0f, - .playerSearchInterval = 1, - .chaseSpeed = 3.9f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 2, - .chaseRadius = 170.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_802452C8) = { - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAISettings_80245298))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_802452E8) = { - .height = 90, - .radius = 65, - .ai = &N(npcAI_802452C8), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -NpcSettings N(npcSettings_80245314) = { - .height = 90, - .radius = 65, - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -NpcSettings N(npcSettings_80245340) = { - .height = 24, - .radius = 24, - .level = 13, -}; - -EvtScript N(idle_8024536C) = { - EVT_LOOP(0) - EVT_CALL(GetSelfVar, 0, LVar0) - EVT_IF_EQ(LVar0, 1) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_SET(GB_ARN_Tubba_MapID, 1) - EVT_CALL(PlaySoundAtCollider, 28, 455, 0) - EVT_CALL(MakeLerp, 0, 80, 10, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 49, LVar0, 0, 1, 0) - EVT_CALL(RotateModel, 51, LVar0, 0, -1, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim0A) - EVT_CALL(SetNpcPos, NPC_SELF, 520, 420, 0) - EVT_CALL(SetNpcYaw, NPC_SELF, 270) - EVT_CALL(NpcMoveTo, NPC_SELF, 390, 0, 30) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim07) - EVT_THREAD - EVT_WAIT(20) - EVT_CALL(MakeLerp, 80, 0, 10, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 49, LVar0, 0, 1, 0) - EVT_CALL(RotateModel, 51, LVar0, 0, -1, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(PlaySoundAtCollider, 28, 456, 0) - EVT_END_THREAD - EVT_CALL(SpeakToPlayer, 4, ANIM_WorldTubba_Anim10, ANIM_WorldTubba_Anim06, 0, MSG_CH3_0101) - EVT_THREAD - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim19) - EVT_WAIT(4) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim1A) - EVT_WAIT(17) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim1B) - EVT_WAIT(11) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim1C) - EVT_WAIT(30) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim1D) - EVT_END_THREAD - EVT_WAIT(4) - EVT_CALL(SetNpcJumpscale, 4, EVT_FLOAT(1.0)) - EVT_CALL(GetNpcPos, 4, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, 4, LVar0, LVar1, LVar2, 30) - EVT_CALL(PlaySoundAtNpc, 4, 0x20A0, 0) - EVT_CALL(PlaySound, 0x8000005D) - EVT_CALL(ShakeCam, 0, 0, 15, EVT_FLOAT(4.0)) - EVT_CALL(ShakeCam, 0, 0, 15, EVT_FLOAT(2.0)) - EVT_CALL(SetSelfVar, 0, 3) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245784) = { - EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_8024536C))) - EVT_RETURN - EVT_END -}; - -const char N(dgb_00_name_hack)[] = "dgb_00"; - -#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" - -#include "world/common/todo/UnkFunc1.inc.c" - -extern const char N(dgb_08_name_hack)[]; - -EvtScript N(defeat_802457D8) = { - EVT_CALL(N(UnkFunc1)) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_08_name_hack)), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245814) = { - EVT_IF_NE(GB_ARN_Tubba_MapID, 1) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE) - EVT_RETURN - EVT_END_IF - EVT_IF_GE(GB_StoryProgress, -27) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE) - EVT_RETURN - EVT_END_IF - EVT_CALL(SetNpcPos, 4, 137, 244, 35) - EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802457D8))) - EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) - EVT_THREAD - EVT_LOOP(0) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(2.0)) - EVT_WAIT(5) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(1.0)) - EVT_WAIT(8) - EVT_END_LOOP - EVT_END_THREAD - EVT_RETURN - EVT_END -}; - -EvtScript N(idle_8024598C) = { - EVT_CALL(AwaitPlayerApproach, 0, 420, 400) - EVT_SET(GB_ARN_Tubba_MapID, 1) - EVT_SET(GB_StoryProgress, -26) - EVT_CALL(PlaySoundAtCollider, 20, 455, 0) - EVT_CALL(MakeLerp, 0, 80, 10, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 39, LVar0, 0, -1, 0) - EVT_CALL(RotateModel, 41, LVar0, 0, 1, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(SetNpcPos, NPC_SELF, 555, 0, 0) - EVT_CALL(SetNpcYaw, NPC_SELF, 270) - EVT_CALL(SetNpcAnimation, 4, ANIM_WorldTubba_Anim0A) - EVT_CALL(NpcMoveTo, NPC_SELF, 426, 0, 30) - EVT_THREAD - EVT_WAIT(20) - EVT_CALL(MakeLerp, 80, 0, 10, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 39, LVar0, 0, -1, 0) - EVT_CALL(RotateModel, 41, LVar0, 0, 1, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(PlaySoundAtCollider, 20, 456, 0) - EVT_END_THREAD - EVT_THREAD - EVT_LOOP(0) - EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 4194304) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(2.0)) - EVT_WAIT(5) - EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 4194304) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(1.0)) - EVT_WAIT(8) - EVT_END_LOOP - EVT_END_THREAD - EVT_CALL(SetNpcSpeed, NPC_SELF, EVT_FLOAT(5.0)) - EVT_CALL(NpcMoveTo, NPC_SELF, 259, 167, 0) - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAISettings_80245298))) - EVT_RETURN - EVT_END -}; - -EvtScript N(defeat_80245CB4) = { - EVT_CALL(N(UnkFunc1)) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245CF0) = { - EVT_IF_NE(GB_ARN_Tubba_MapID, 1) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_8024598C))) - EVT_ELSE - EVT_CALL(SetNpcPos, NPC_SELF, 136, 0, -330) - EVT_END_IF - EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_80245CB4))) - EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245D80) = { - EVT_SET(LVar0, GB_StoryProgress) - EVT_IF_GE(LVar0, -29) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40)), TRUE) - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) - EVT_CALL(SetNpcPos, NPC_SELF, -33, -3, 8) - EVT_CALL(SetNpcRotation, NPC_SELF, -50, 30, 10) - EVT_CALL(BindNpcIdle, NPC_SELF, 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245E44) = { - EVT_SET(LVar0, GB_StoryProgress) - EVT_IF_GE(LVar0, -29) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40)), TRUE) - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) - EVT_CALL(SetNpcPos, NPC_SELF, -486, 182, 28) - EVT_CALL(SetNpcRotation, NPC_SELF, -10, 50, 0) - EVT_CALL(BindNpcIdle, NPC_SELF, 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245F08) = { - EVT_SET(LVar0, GB_StoryProgress) - EVT_IF_GE(LVar0, -29) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40)), TRUE) - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) - EVT_CALL(SetNpcPos, NPC_SELF, -201, 0, -143) - EVT_CALL(SetNpcRotation, NPC_SELF, -50, 0, 0) - EVT_CALL(BindNpcIdle, NPC_SELF, 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80245FCC) = { - EVT_SET(LVar0, GB_StoryProgress) - EVT_IF_GE(LVar0, -29) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40)), TRUE) - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) - EVT_CALL(SetNpcPos, NPC_SELF, -305, -1, -80) - EVT_CALL(SetNpcRotation, NPC_SELF, -65, -30, 0) - EVT_CALL(BindNpcIdle, NPC_SELF, 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80246090) = { - .id = NPC_SENTINEL0, - .settings = &N(npcSettings_8024526C), - .pos = { -180.0f, 100.0f, 230.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .init = &N(init_80245D80), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { -180, 100, 230, 35, 0, -32767, 0, 0, 0, 0, 450, 1000, 1, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -StaticNpc N(npcGroup_80246280) = { - .id = NPC_SENTINEL1, - .settings = &N(npcSettings_8024526C), - .pos = { 180.0f, 100.0f, 230.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .init = &N(init_80245E44), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { 180, 100, 230, 35, 0, -32767, 0, 0, 0, 0, 450, 1000, 1, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -StaticNpc N(npcGroup_80246470) = { - .id = NPC_SENTINEL2, - .settings = &N(npcSettings_8024526C), - .pos = { -180.0f, 100.0f, -230.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .init = &N(init_80245F08), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { -180, 100, -230, 35, 0, -32767, 0, 0, 0, 0, 450, 1000, 1, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -StaticNpc N(npcGroup_80246660) = { - .id = NPC_SENTINEL3, - .settings = &N(npcSettings_8024526C), - .pos = { 180.0f, 100.0f, -230.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .init = &N(init_80245FCC), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { 180, 100, -230, 35, 0, -32767, 0, 0, 0, 0, 450, 1000, 1, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -s32 N(extraAnimationList_80246850)[] = { - ANIM_WorldTubba_Anim06, - ANIM_WorldTubba_Anim10, - ANIM_WorldTubba_Anim09, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim0A, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim19, - ANIM_WorldTubba_Anim1A, - ANIM_WorldTubba_Anim1B, - ANIM_WorldTubba_Anim1C, - ANIM_WorldTubba_Anim1D, - ANIM_LIST_END, -}; - -StaticNpc N(npcGroup_80246880) = { - .id = NPC_WORLD_TUBBA, - .settings = &N(npcSettings_80245314), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = NPC_FLAG_200000, - .init = &N(init_80245784), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldTubba_Anim06, - ANIM_WorldTubba_Anim09, - ANIM_WorldTubba_Anim0C, - ANIM_WorldTubba_Anim0C, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - }, - .extraAnimations = N(extraAnimationList_80246850), -}; - -StaticNpc N(npcGroup_80246A70) = { - .id = NPC_WORLD_TUBBA, - .settings = &N(npcSettings_802452E8), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = NPC_FLAG_200000, - .init = &N(init_80245814), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 2, 320, 210, 0, 370, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32767, 350, 210, 0, 1000, 250, 1 }}, - .animations = { - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim0A, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim19, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80246850), -}; - -StaticNpc N(npcGroup_80246C60) = { - .id = NPC_WORLD_TUBBA, - .settings = &N(npcSettings_802452E8), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = NPC_FLAG_200000, - .init = &N(init_80245CF0), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 8, 156, 0, 187, -36, 0, 290, -159, 0, 50, -80, 0, -218, 66, 0, -362, 196, 0, -268, 280, 0, -124, 250, 0, 100, 0, 0, 0, 0, 0, 0, -32767, 250, 0, 100, 1000, 250, 1 }}, - .animations = { - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim0A, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim19, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80246850), -}; - -NpcGroupList N(npcGroupList_80246E50) = { - NPC_GROUP(N(npcGroup_80246090)), - NPC_GROUP(N(npcGroup_80246280)), - NPC_GROUP(N(npcGroup_80246470)), - NPC_GROUP(N(npcGroup_80246660)), - {}, -}; - -NpcGroupList N(npcGroupList_80246E8C) = { - NPC_GROUP(N(npcGroup_80246090)), - NPC_GROUP(N(npcGroup_80246280)), - NPC_GROUP(N(npcGroup_80246470)), - NPC_GROUP(N(npcGroup_80246660)), - NPC_GROUP(N(npcGroup_80246880), 0x0F04, BTL_DEFAULT_STAGE), - {}, -}; - -NpcGroupList N(npcGroupList_80246ED4) = { - NPC_GROUP(N(npcGroup_80246090)), - NPC_GROUP(N(npcGroup_80246280)), - NPC_GROUP(N(npcGroup_80246470)), - NPC_GROUP(N(npcGroup_80246660)), - NPC_GROUP(N(npcGroup_80246A70), 0x0F04, 0x00), - {}, -}; - -NpcGroupList N(npcGroupList_80246F1C) = { - NPC_GROUP(N(npcGroup_80246090)), - NPC_GROUP(N(npcGroup_80246280)), - NPC_GROUP(N(npcGroup_80246470)), - NPC_GROUP(N(npcGroup_80246660)), - NPC_GROUP(N(npcGroup_80246C60), 0x0F04, 0x00), - {}, -}; - -const char N(dgb_08_name_hack)[] = "dgb_08"; diff --git a/src/world/area_dgb/dgb_01/data0.c b/src/world/area_dgb/dgb_01/data0.c deleted file mode 100644 index c07f5f2936..0000000000 --- a/src/world/area_dgb/dgb_01/data0.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img0_png[]; - -Gfx D_80247F70_C057F0[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img0_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 6, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data1.c b/src/world/area_dgb/dgb_01/data1.c deleted file mode 100644 index 7e1f1c60f0..0000000000 --- a/src/world/area_dgb/dgb_01/data1.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img1_png[]; - -Gfx D_80248FF0_C06870[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img1_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 64, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 6, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data2.c b/src/world/area_dgb/dgb_01/data2.c deleted file mode 100644 index dca44de6b9..0000000000 --- a/src/world/area_dgb/dgb_01/data2.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img2_png[]; - -Gfx D_80249870_C070F0[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img2_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data3.c b/src/world/area_dgb/dgb_01/data3.c deleted file mode 100644 index 49a30514fc..0000000000 --- a/src/world/area_dgb/dgb_01/data3.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img3_png[]; - -Gfx D_80249CF0_C07570[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img3_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data4.c b/src/world/area_dgb/dgb_01/data4.c deleted file mode 100644 index 414658f4d8..0000000000 --- a/src/world/area_dgb/dgb_01/data4.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img4_png[]; - -Gfx D_8024A170_C079F0[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img4_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data5.c b/src/world/area_dgb/dgb_01/data5.c deleted file mode 100644 index 80ce5bfa73..0000000000 --- a/src/world/area_dgb/dgb_01/data5.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img5_png[]; - -Gfx D_8024A5F0_C07E70[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img5_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data6.c b/src/world/area_dgb/dgb_01/data6.c deleted file mode 100644 index d983a3f9eb..0000000000 --- a/src/world/area_dgb/dgb_01/data6.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img6_png[]; - -Gfx D_8024AE70_C086F0[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img6_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/data7.c b/src/world/area_dgb/dgb_01/data7.c deleted file mode 100644 index 6547b701a1..0000000000 --- a/src/world/area_dgb/dgb_01/data7.c +++ /dev/null @@ -1,15 +0,0 @@ -#include "dgb_01.h" - -extern char world_area_dgb_dgb_01_img7_png[]; - -Gfx D_8024B6F0_C08F70[] = { - gsDPSetTextureLUT(G_TT_NONE), - gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), - gsDPSetCombineMode(G_CC_MODULATEIA, G_CC_MODULATEIA), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureLOD(G_TL_TILE), - gsDPLoadTextureBlock(world_area_dgb_dgb_01_img7_png, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD), - gsDPSetTexturePersp(G_TP_PERSP), - gsDPSetTextureFilter(G_TF_BILERP), - gsSPEndDisplayList(), -}; diff --git a/src/world/area_dgb/dgb_01/dgb_01.h b/src/world/area_dgb/dgb_01/dgb_01.h index 12e36aeeea..c3996b573b 100644 --- a/src/world/area_dgb/dgb_01/dgb_01.h +++ b/src/world/area_dgb/dgb_01/dgb_01.h @@ -2,52 +2,59 @@ /// @brief Tubba's Castle - Great Hall #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" + +#include "../dgb.h" +#include "mapfs/dgb_01_shape.h" +#include "mapfs/dgb_01_hit.h" + +#include "sprite/npc/WorldTubba.h" +#include "sprite/npc/Sentinel.h" #include "animation_script.h" +enum { + NPC_Sentinel_01 = 0, + NPC_Sentinel_02 = 1, + NPC_Sentinel_03 = 2, + NPC_Sentinel_04 = 3, + NPC_Tubba = 4, +}; + +enum { + MV_PadlockEntityID = MapVar(0), +}; + #define NAMESPACE dgb_01 -enum { - NPC_SENTINEL0, - NPC_SENTINEL1, - NPC_SENTINEL2, - NPC_SENTINEL3, - NPC_WORLD_TUBBA, -}; +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_ExitDoors_dgb_08_0); +extern EvtScript N(EVS_ExitDoors_dgb_08_1); +extern EvtScript N(EVS_SetupBridges); +extern EvtScript N(EVS_UnlockPrompt_Door); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); +extern NpcGroupList N(FirstFloorEscapeNPCs); +extern NpcGroupList N(SecondFloorEscapeNPCs); +extern NpcGroupList N(ThirdFloorEscapeNPCs); + +extern StaticAnimatorNode* N(SmashBridgesSkeleton)[]; +extern AnimScript N(AS_SmashBridges); ApiStatus InitAnimatedModels(Evt* script, s32 isInitialCall); ApiStatus SetAnimatedModelRenderMode(Evt* script, s32 isInitialCall); ApiStatus DeleteAnimatedModel(Evt* script, s32 isInitialCall); -ApiStatus N(func_80240000_BFD880)(void); -ApiStatus N(GetEntityPosition)(Evt* script, s32 isInitialCall); -ApiStatus N(RemovePadlock)(Evt* script, s32 isInitialCall); -ApiStatus N(UnkFunc1)(Evt* script, s32 isInitialCall); -ApiStatus N(SentinelAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(PatrolNoAttackAI_Main)(Evt* script, s32 isInitialCall); - -extern EvtScript N(802449C4); -extern EvtScript N(80244AD0); -extern EvtScript N(main); -extern EvtScript N(makeEntities); -extern StaticAnimatorNode* N(D_80252F4C_C107CC)[]; -extern AnimScript N(D_802539A0_C11220); -extern NpcGroupList N(npcGroupList_80246E50); -extern NpcGroupList N(npcGroupList_80246ED4); -extern NpcGroupList N(npcGroupList_80246E8C); -extern NpcGroupList N(npcGroupList_80246F1C); - -extern Gfx D_80247F70_C057F0[]; -extern Gfx D_80248FF0_C06870[]; -extern Gfx D_80249870_C070F0[]; -extern Gfx D_80249CF0_C07570[]; -extern Gfx D_8024A170_C079F0[]; -extern Gfx D_8024A5F0_C07E70[]; -extern Gfx D_8024AE70_C086F0[]; -extern Gfx D_8024B6F0_C08F70[]; -extern Gfx D_8024BCF8_C09578[]; +extern Gfx N(img0_gfx)[]; +extern Gfx N(img1_gfx)[]; +extern Gfx N(img2_gfx)[]; +extern Gfx N(img3_gfx)[]; +extern Gfx N(img4_gfx)[]; +extern Gfx N(img5_gfx)[]; +extern Gfx N(img6_gfx)[]; +extern Gfx N(img7_gfx)[]; +extern Gfx N(D_8024BCF8_C09578)[]; extern Mtx N(D_80253160_C109E0); extern Mtx N(D_802531A0_C10A20); diff --git a/src/world/area_dgb/dgb_01/dgb_01_0_header.c b/src/world/area_dgb/dgb_01/dgb_01_0_header.c new file mode 100644 index 0000000000..dbfeb2e9d9 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_0_header.c @@ -0,0 +1,18 @@ +#include "dgb_01.h" + +EntryList N(Entrances) = { + [dgb_01_ENTRY_0] { 0.0, 0.0, 485.0, 0.0 }, + [dgb_01_ENTRY_1] { -485.0, 0.0, 0.0, 90.0 }, + [dgb_01_ENTRY_2] { 485.0, 0.0, 0.0, 270.0 }, + [dgb_01_ENTRY_3] { -485.0, 210.0, 0.0, 90.0 }, + [dgb_01_ENTRY_4] { 485.0, 210.0, 0.0, 270.0 }, + [dgb_01_ENTRY_5] { -485.0, 420.0, 0.0, 90.0 }, + [dgb_01_ENTRY_6] { 485.0, 420.0, 0.0, 270.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_01 }, +}; diff --git a/src/world/area_dgb/dgb_01/dgb_01_1_music.c b/src/world/area_dgb/dgb_01/dgb_01_1_music.c new file mode 100644 index 0000000000..839df26230 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_1_music.c @@ -0,0 +1,15 @@ +#include "dgb_01.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_CALL(ClearAmbientSounds, 250) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_01/dgb_01_2_main.c b/src/world/area_dgb/dgb_01/dgb_01_2_main.c new file mode 100644 index 0000000000..4c79aceb49 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_2_main.c @@ -0,0 +1,197 @@ +#include "dgb_01.h" + +EvtScript N(EVS_ExitDoors_dgb_00_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilitts) + EVT_SET(LVar2, MODEL_o380) + EVT_SET(LVar3, MODEL_o381) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_00"), dgb_00_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_02_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilittsw) + EVT_SET(LVar2, MODEL_o163) + EVT_SET(LVar3, MODEL_o164) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_02"), dgb_02_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_08_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_2) + EVT_SET(LVar1, COLLIDER_deilittse) + EVT_SET(LVar2, MODEL_o168) + EVT_SET(LVar3, MODEL_o167) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_08"), dgb_08_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_09_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_3) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o165) + EVT_SET(LVar3, MODEL_o166) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_09"), dgb_09_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_08_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_4) + EVT_SET(LVar1, COLLIDER_deilitte) + EVT_SET(LVar2, MODEL_o299) + EVT_SET(LVar3, MODEL_o298) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_08"), dgb_08_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_17_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_5) + EVT_SET(LVar1, COLLIDER_deilittnw) + EVT_SET(LVar2, MODEL_o161) + EVT_SET(LVar3, MODEL_o162) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_17"), dgb_17_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_18_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_01_ENTRY_6) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o301) + EVT_SET(LVar3, MODEL_o300) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_18"), dgb_18_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_01_ENTRY_0) + EVT_IF_EQ(GF_DGB01_Visited, FALSE) + EVT_SET(GF_DGB01_Visited, TRUE) + EVT_SET(GB_StoryProgress, STORY_CH3_ARRIVED_AT_TUBBAS_MANOR) + EVT_END_IF + EVT_SET(LVar2, MODEL_o380) + EVT_SET(LVar3, MODEL_o381) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_01_ENTRY_1) + EVT_SET(LVar2, MODEL_o163) + EVT_SET(LVar3, MODEL_o164) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_01_ENTRY_2) + EVT_SET(LVar2, MODEL_o168) + EVT_SET(LVar3, MODEL_o167) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_01_ENTRY_3) + EVT_SET(LVar2, MODEL_o165) + EVT_SET(LVar3, MODEL_o166) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_01_ENTRY_4) + EVT_SET(LVar2, MODEL_o299) + EVT_SET(LVar3, MODEL_o298) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_01_ENTRY_5) + EVT_SET(LVar2, MODEL_o161) + EVT_SET(LVar3, MODEL_o162) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_01_ENTRY_6) + EVT_SET(LVar2, MODEL_o301) + EVT_SET(LVar3, MODEL_o300) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +s32 N(KeyList)[] = { + ITEM_TUBBA_CASTLE_KEY, + ITEM_NONE +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_NO_LEAD() + EVT_SET(GF_MAP_TubbasManor, TRUE) + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupBridges)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_00_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitts, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_02_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittsw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_09_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_08_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitte, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_17_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittnw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_18_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_IF_EQ(GF_DGB01_UnlockedEastWing, FALSE) + EVT_BIND_PADLOCK(EVT_PTR(N(EVS_UnlockPrompt_Door)), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(KeyList)), 0, 1) + EVT_ELSE + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_08_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittse, 1, 0) + EVT_END_IF + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_01_ENTRY_2) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(FirstFloorEscapeNPCs))) + EVT_CASE_EQ(dgb_01_ENTRY_4) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(SecondFloorEscapeNPCs))) + EVT_CASE_EQ(dgb_01_ENTRY_6) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(ThirdFloorEscapeNPCs))) + EVT_END_SWITCH + EVT_END_SWITCH + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_01/dgb_01_3_bridges.c b/src/world/area_dgb/dgb_01/dgb_01_3_bridges.c new file mode 100644 index 0000000000..75573695e9 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_3_bridges.c @@ -0,0 +1,197 @@ +#include "dgb_01.h" +#include "ld_addrs.h" + +ApiStatus N(LoadSmashBridgesGraphics)(void) { + dma_copy(dgb_01_smash_bridges_ROM_START, dgb_01_smash_bridges_ROM_END, dgb_01_smash_bridges_VRAM); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_Scene_TubbaSmashBridges) = { + EVT_LOOP(0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_IF_LT(LVar0, 100) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(N(LoadSmashBridgesGraphics)) + EVT_CALL(InitAnimatedModels) + EVT_WAIT(1) + EVT_CALL(InterruptUsePartner) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_8000A) + EVT_THREAD + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_WAIT(5) + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_WAIT(5) + EVT_END_THREAD + EVT_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(1.0)) + EVT_END_THREAD + EVT_WAIT(30) + EVT_THREAD + EVT_LOOP(12) + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_WAIT(5) + EVT_END_LOOP + EVT_END_THREAD + EVT_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 60, EVT_FLOAT(1.0)) + EVT_END_THREAD + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 400, 420, 0) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 400, 420, 0) + EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(450.0)) + EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(20.0), EVT_FLOAT(-11.0)) + EVT_CALL(SetCamPosB, CAM_DEFAULT, EVT_FLOAT(500.0), EVT_FLOAT(0.0)) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(3.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_SET(GB_ARN_Tubba_MapID, 1) + EVT_CALL(SetNpcVar, NPC_Tubba, 0, 1) + EVT_LOOP(0) + EVT_CALL(GetNpcVar, NPC_Tubba, 0, LVar0) + EVT_IF_EQ(LVar0, 3) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, -50) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(750.0)) + EVT_CALL(SetCamPitch, CAM_DEFAULT, EVT_FLOAT(0.0), EVT_FLOAT(3.0)) + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_ADD(LVar0, 30) + EVT_CALL(SetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + EVT_WAIT(1) + EVT_CALL(EnablePartnerAI) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(1.0)) + EVT_CALL(LoadAnimatedModel, 0, EVT_PTR(N(SmashBridgesSkeleton))) + EVT_CALL(PlayModelAnimation, 0, EVT_PTR(N(AS_SmashBridges))) + EVT_CALL(SetAnimatedModelRootPosition, 0, 0, 0, 0) + EVT_CALL(SetAnimatedModelRenderMode, 0, RENDER_MODE_SURFACE_OPA) + EVT_THREAD + EVT_CALL(PlaySound, SOUND_95) + EVT_WAIT(60) + EVT_CALL(PlaySound, SOUND_96) + EVT_WAIT(25) + EVT_CALL(PlaySound, SOUND_98) + EVT_WAIT(70) + EVT_CALL(PlaySound, SOUND_97) + EVT_END_THREAD + EVT_THREAD + EVT_WAIT(100) + EVT_CALL(PlaySound, SOUND_A8) + EVT_WAIT(50) + EVT_CALL(PlaySound, SOUND_A8) + EVT_WAIT(30) + EVT_CALL(PlaySound, SOUND_A8) + EVT_WAIT(70) + EVT_CALL(PlaySound, SOUND_A8) + EVT_WAIT(30) + EVT_CALL(PlaySound, SOUND_A8) + EVT_END_THREAD + EVT_THREAD + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_WAIT(1) + EVT_CALL(SetGroupEnabled, MODEL_g96, 0) + EVT_CALL(SetGroupEnabled, MODEL_g87, 0) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_80013) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.5)) + EVT_CALL(PlayerJump1, 121, 210, 0, 60) + EVT_WAIT(10) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001F) + EVT_WAIT(20) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_RunPanic) + EVT_CALL(SetPlayerSpeed, EVT_FLOAT(8.0)) + EVT_CALL(PlayerMoveTo, 412, -29, 0) + EVT_WAIT(10) + EVT_CALL(InterpPlayerYaw, 270, 0) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_after, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_END_THREAD + EVT_THREAD + EVT_CALL(DisablePartnerAI, 0) + EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + EVT_SUB(LVar1, 210) + EVT_WAIT(1) + EVT_CALL(SetNpcJumpscale, NPC_PARTNER, EVT_FLOAT(0.5)) + EVT_CALL(NpcJump1, NPC_PARTNER, 151, LVar1, 0, 60) + EVT_WAIT(30) + EVT_CALL(EnablePartnerAI) + EVT_END_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 300, EVT_FLOAT(1.0)) + EVT_CALL(StopSound, SOUND_8000005D) + EVT_THREAD + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0D) + EVT_CALL(SetNpcSpeed, NPC_Tubba, EVT_FLOAT(3.0)) + EVT_CALL(NpcMoveTo, NPC_Tubba, 176, 0, 0) + EVT_END_THREAD + EVT_THREAD + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.3)) + EVT_WAIT(5) + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(0.15)) + EVT_WAIT(8) + EVT_END_THREAD + EVT_WAIT(20) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_SET(GB_StoryProgress, STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) + EVT_CALL(SetGroupEnabled, MODEL_g240, 1) + EVT_CALL(DeleteAnimatedModel, 0) + EVT_THREAD + EVT_WAIT(30) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0D) + EVT_CALL(SetNpcPos, NPC_Tubba, 137, 244, 35) + EVT_CALL(SetNpcSpeed, NPC_Tubba, EVT_FLOAT(3.0)) + EVT_CALL(NpcMoveTo, NPC_Tubba, 470, 0, 0) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(3.0)) + EVT_END_THREAD + EVT_THREAD + EVT_LOOP(0) + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.3)) + EVT_WAIT(5) + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20F6, 0) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(0.15)) + EVT_WAIT(8) + EVT_END_LOOP + EVT_END_THREAD + EVT_CALL(SetPlayerSpeed, EVT_FLOAT(3.0)) + EVT_CALL(PlayerMoveTo, 470, 0, 0) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_EXEC(N(EVS_ExitDoors_dgb_08_1)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_SetupBridges) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetGroupEnabled, MODEL_g240, 0) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_after, COLLIDER_FLAGS_UPPER_MASK) + EVT_CASE_EQ(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetGroupEnabled, MODEL_g240, 0) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_after, COLLIDER_FLAGS_UPPER_MASK) + EVT_EXEC(N(EVS_Scene_TubbaSmashBridges)) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetGroupEnabled, MODEL_g340, 0) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_before, COLLIDER_FLAGS_UPPER_MASK) + EVT_CASE_DEFAULT + EVT_CALL(SetGroupEnabled, MODEL_g240, 0) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_after, COLLIDER_FLAGS_UPPER_MASK) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_01/dgb_01_4_entity.c b/src/world/area_dgb/dgb_01/dgb_01_4_entity.c new file mode 100644 index 0000000000..d472edf27d --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_4_entity.c @@ -0,0 +1,50 @@ +#include "dgb_01.h" +#include "entity.h" + +#include "world/common/todo/RemovePadlock.inc.c" +#include "world/common/todo/GetEntityPosition.inc.c" + +EvtScript N(EVS_UnlockPrompt_Door) = { + EVT_SET_GROUP(EVT_GROUP_00) + EVT_SUSPEND_GROUP(EVT_GROUP_01) + EVT_CALL(ShowKeyChoicePopup) + EVT_IF_EQ(LVar0, 0) + EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) + EVT_CALL(CloseChoicePopup) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_RETURN + EVT_END_IF + EVT_IF_EQ(LVar0, -1) + EVT_CALL(CloseChoicePopup) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_RETURN + EVT_END_IF + EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) + EVT_CALL(RemoveKeyItemAt, LVar0) + EVT_CALL(CloseChoicePopup) + EVT_SET(GF_DGB01_UnlockedEastWing, TRUE) + EVT_CALL(N(GetEntityPosition), MV_PadlockEntityID, LVar0, LVar1, LVar2) + EVT_CALL(PlaySoundAt, SOUND_269, 0, LVar0, LVar1, LVar2) + EVT_SET(LVar0, MV_PadlockEntityID) + EVT_CALL(N(RemovePadlock)) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_UNBIND + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_OpenLockedDoor) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_08_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittse, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_MakeEntities) = { + EVT_IF_EQ(GF_DGB01_UnlockedEastWing, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_Padlock), 490, 8, 0, -80, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenLockedDoor))) + EVT_SET(MV_PadlockEntityID, LVar0) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_01/dgb_01_5_npc.c b/src/world/area_dgb/dgb_01/dgb_01_5_npc.c new file mode 100644 index 0000000000..a9aa393aa7 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_5_npc.c @@ -0,0 +1,458 @@ +#include "dgb_01.h" + +#define AI_SENTINEL_FIRST_NPC NPC_Sentinel_01 +#define AI_SENTINEL_LAST_NPC NPC_Tubba +#include "world/common/enemy/complete/Sentinel.inc.c" + +#include "world/common/enemy/complete/Clubba.h" +#include "world/common/enemy/complete/TubbaBlubba_Patrol.inc.c" +#include "world/common/enemy/complete/TubbaBlubba.inc.c" +#include "world/common/npc/Yakkey.inc.c" + +#include "world/common/todo/UnkFunc1.inc.c" + +EvtScript N(EVS_NpcIdle_Tubba_Floor3) = { + EVT_LOOP(0) + EVT_CALL(GetSelfVar, 0, LVar0) + EVT_IF_EQ(LVar0, 1) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_SET(GB_ARN_Tubba_MapID, 1) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittne, SOUND_CREAKY_DOOR_OPEN, 0) + EVT_CALL(MakeLerp, 0, 80, 10, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_o300, LVar0, 0, 1, 0) + EVT_CALL(RotateModel, MODEL_o301, LVar0, 0, -1, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0A) + EVT_CALL(SetNpcPos, NPC_SELF, 520, 420, 0) + EVT_CALL(SetNpcYaw, NPC_SELF, 270) + EVT_CALL(NpcMoveTo, NPC_SELF, 390, 0, 30) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim07) + EVT_THREAD + EVT_WAIT(20) + EVT_CALL(MakeLerp, 80, 0, 10, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_o300, LVar0, 0, 1, 0) + EVT_CALL(RotateModel, MODEL_o301, LVar0, 0, -1, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittne, SOUND_CREAKY_DOOR_CLOSE, 0) + EVT_END_THREAD + EVT_CALL(SpeakToPlayer, NPC_Tubba, ANIM_WorldTubba_Anim10, ANIM_WorldTubba_Anim06, 0, MSG_CH3_0101) + EVT_THREAD + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim19) + EVT_WAIT(4) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim1A) + EVT_WAIT(17) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim1B) + EVT_WAIT(11) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim1C) + EVT_WAIT(30) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim1D) + EVT_END_THREAD + EVT_WAIT(4) + EVT_CALL(SetNpcJumpscale, NPC_Tubba, EVT_FLOAT(1.0)) + EVT_CALL(GetNpcPos, NPC_Tubba, LVar0, LVar1, LVar2) + EVT_CALL(NpcJump0, NPC_Tubba, LVar0, LVar1, LVar2, 30) + EVT_CALL(PlaySoundAtNpc, NPC_Tubba, SOUND_20A0, 0) + EVT_CALL(PlaySound, SOUND_8000005D) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 15, EVT_FLOAT(4.0)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 15, EVT_FLOAT(2.0)) + EVT_CALL(SetSelfVar, 0, 3) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Tubba_Floor3) = { + EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) + EVT_CALL(SetSelfVar, 0, 0) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Tubba_Floor3))) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcDefeat_Tubba_Floor2) = { + EVT_CALL(N(UnkFunc1)) + EVT_CALL(GotoMap, EVT_PTR("dgb_08"), dgb_08_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Tubba_Floor2) = { + EVT_IF_NE(GB_ARN_Tubba_MapID, 1) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_4, TRUE) + EVT_RETURN + EVT_END_IF + EVT_IF_GE(GB_StoryProgress, STORY_CH3_TUBBA_CHASED_MARIO_IN_HALL) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_4, TRUE) + EVT_RETURN + EVT_END_IF + EVT_CALL(SetNpcPos, NPC_Tubba, 137, 244, 35) + EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Tubba_Floor2))) + EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) + EVT_THREAD + EVT_LOOP(0) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(2.0)) + EVT_WAIT(5) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(1.0)) + EVT_WAIT(8) + EVT_END_LOOP + EVT_END_THREAD + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcIdle_Tubba_Floor1) = { + EVT_CALL(AwaitPlayerApproach, 0, 420, 400) + EVT_SET(GB_ARN_Tubba_MapID, 1) + EVT_SET(GB_StoryProgress, STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittse, SOUND_CREAKY_DOOR_OPEN, 0) + EVT_CALL(MakeLerp, 0, 80, 10, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_o167, LVar0, 0, -1, 0) + EVT_CALL(RotateModel, MODEL_o168, LVar0, 0, 1, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(SetNpcPos, NPC_SELF, 555, 0, 0) + EVT_CALL(SetNpcYaw, NPC_SELF, 270) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0A) + EVT_CALL(NpcMoveTo, NPC_SELF, 426, 0, 30) + EVT_THREAD + EVT_WAIT(20) + EVT_CALL(MakeLerp, 80, 0, 10, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_o167, LVar0, 0, -1, 0) + EVT_CALL(RotateModel, MODEL_o168, LVar0, 0, 1, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittse, SOUND_CREAKY_DOOR_CLOSE, 0) + EVT_END_THREAD + EVT_THREAD + EVT_LOOP(0) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, SOUND_PARAM_QUIET) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(2.0)) + EVT_WAIT(5) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, SOUND_PARAM_QUIET) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(1.0)) + EVT_WAIT(8) + EVT_END_LOOP + EVT_END_THREAD + EVT_CALL(SetNpcSpeed, NPC_SELF, EVT_FLOAT(5.0)) + EVT_CALL(NpcMoveTo, NPC_SELF, 259, 167, 0) + EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(AISettings_Tubba_Patrol))) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcDefeat_Tubba_Floor1) = { + EVT_CALL(N(UnkFunc1)) + EVT_CALL(GotoMap, EVT_PTR("dgb_00"), dgb_00_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Tubba_Floor1) = { + EVT_IF_NE(GB_ARN_Tubba_MapID, 1) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Tubba_Floor1))) + EVT_ELSE + EVT_CALL(SetNpcPos, NPC_SELF, 136, 0, -330) + EVT_END_IF + EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Tubba_Floor1))) + EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Sentinel_01) = { + EVT_SET(LVar0, GB_StoryProgress) + EVT_IF_GE(LVar0, -29) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40, TRUE) + EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) + EVT_CALL(SetNpcPos, NPC_SELF, -33, -3, 8) + EVT_CALL(SetNpcRotation, NPC_SELF, -50, 30, 10) + EVT_CALL(BindNpcIdle, NPC_SELF, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Sentinel_02) = { + EVT_SET(LVar0, GB_StoryProgress) + EVT_IF_GE(LVar0, -29) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40, TRUE) + EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) + EVT_CALL(SetNpcPos, NPC_SELF, -486, 182, 28) + EVT_CALL(SetNpcRotation, NPC_SELF, -10, 50, 0) + EVT_CALL(BindNpcIdle, NPC_SELF, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Sentinel_03) = { + EVT_SET(LVar0, GB_StoryProgress) + EVT_IF_GE(LVar0, -29) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40, TRUE) + EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) + EVT_CALL(SetNpcPos, NPC_SELF, -201, 0, -143) + EVT_CALL(SetNpcRotation, NPC_SELF, -50, 0, 0) + EVT_CALL(BindNpcIdle, NPC_SELF, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Sentinel_04) = { + EVT_SET(LVar0, GB_StoryProgress) + EVT_IF_GE(LVar0, -29) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_ENABLE_HIT_SCRIPT | NPC_FLAG_40, TRUE) + EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim01) + EVT_CALL(SetNpcPos, NPC_SELF, -305, -1, -80) + EVT_CALL(SetNpcRotation, NPC_SELF, -65, -30, 0) + EVT_CALL(BindNpcIdle, NPC_SELF, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Sentinel_01) = { + .id = NPC_Sentinel_01, + .settings = &N(NpcSettings_Sentinel), + .pos = { -180.0f, 100.0f, 230.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Sentinel_01), + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -180, 100, 230 }, + .wanderSize = { 35 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 0 }, + .detectSize = { 450, 1000 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +StaticNpc N(NpcData_Sentinel_02) = { + .id = NPC_Sentinel_02, + .settings = &N(NpcSettings_Sentinel), + .pos = { 180.0f, 100.0f, 230.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Sentinel_02), + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 180, 100, 230 }, + .wanderSize = { 35 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 0 }, + .detectSize = { 450, 1000 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +StaticNpc N(NpcData_Sentinel_03) = { + .id = NPC_Sentinel_03, + .settings = &N(NpcSettings_Sentinel), + .pos = { -180.0f, 100.0f, -230.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Sentinel_03), + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -180, 100, -230 }, + .wanderSize = { 35 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 0 }, + .detectSize = { 450, 1000 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +StaticNpc N(NpcData_Sentinel_04) = { + .id = NPC_Sentinel_04, + .settings = &N(NpcSettings_Sentinel), + .pos = { 180.0f, 100.0f, -230.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Sentinel_04), + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 180, 100, -230 }, + .wanderSize = { 35 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 0 }, + .detectSize = { 450, 1000 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +s32 N(ExtraAnims_Tubba)[] = { + ANIM_WorldTubba_Anim06, + ANIM_WorldTubba_Anim10, + ANIM_WorldTubba_Anim09, + ANIM_WorldTubba_Anim07, + ANIM_WorldTubba_Anim0A, + ANIM_WorldTubba_Anim0D, + ANIM_WorldTubba_Anim19, + ANIM_WorldTubba_Anim1A, + ANIM_WorldTubba_Anim1B, + ANIM_WorldTubba_Anim1C, + ANIM_WorldTubba_Anim1D, + -1 +}; + +StaticNpc N(NpcData_Tubba_Floor3) = { + .id = NPC_Tubba, + .settings = &N(NpcSettings_TubbaBlubba), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .flags = ENEMY_FLAGS_200000, + .init = &N(EVS_NpcInit_Tubba_Floor3), + .drops = TUBBA_DROPS, + .animations = TUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Tubba), +}; + +StaticNpc N(NpcData_Tubba_Floor2) = { + .id = NPC_Tubba, + .settings = &N(NpcSettings_TubbaBlubba_Patrol), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .flags = ENEMY_FLAGS_200000, + .init = &N(EVS_NpcInit_Tubba_Floor2), + .drops = CLUBBA_DROPS, + .territory = { + .patrol = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .numPoints = 2, + .points = { + { 320, 210, 0 }, + { 370, 210, 0 }, + }, + .detectShape = SHAPE_RECT, + .detectPos = { 350, 210, 0 }, + .detectSize = { 1000, 250 }, + } + }, + .animations = TUBBA_ANGRY_ANIMS, + .extraAnimations = N(ExtraAnims_Tubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, +}; + +StaticNpc N(NpcData_Tubba_Floor1) = { + .id = NPC_Tubba, + .settings = &N(NpcSettings_TubbaBlubba_Patrol), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .flags = ENEMY_FLAGS_200000, + .init = &N(EVS_NpcInit_Tubba_Floor1), + .drops = CLUBBA_DROPS, + .territory = { + .patrol = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .numPoints = 8, + .points = { + { 156, 0, 187 }, + { -36, 0, 290 }, + { -159, 0, 50 }, + { -80, 0, -218 }, + { 66, 0, -362 }, + { 196, 0, -268 }, + { 280, 0, -124 }, + { 250, 0, 100 }, + }, + .detectShape = SHAPE_RECT, + .detectPos = { 250, 0, 100 }, + .detectSize = { 1000, 250 }, + } + }, + .animations = TUBBA_ANGRY_ANIMS, + .extraAnimations = N(ExtraAnims_Tubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Sentinel_01)), + NPC_GROUP(N(NpcData_Sentinel_02)), + NPC_GROUP(N(NpcData_Sentinel_03)), + NPC_GROUP(N(NpcData_Sentinel_04)), + {} +}; + +NpcGroupList N(ThirdFloorEscapeNPCs) = { + NPC_GROUP(N(NpcData_Sentinel_01)), + NPC_GROUP(N(NpcData_Sentinel_02)), + NPC_GROUP(N(NpcData_Sentinel_03)), + NPC_GROUP(N(NpcData_Sentinel_04)), + NPC_GROUP(N(NpcData_Tubba_Floor3), BTL_DGB_FORMATION_04), + {} +}; + +NpcGroupList N(SecondFloorEscapeNPCs) = { + NPC_GROUP(N(NpcData_Sentinel_01)), + NPC_GROUP(N(NpcData_Sentinel_02)), + NPC_GROUP(N(NpcData_Sentinel_03)), + NPC_GROUP(N(NpcData_Sentinel_04)), + NPC_GROUP(N(NpcData_Tubba_Floor2), BTL_DGB_FORMATION_04, BTL_DGB_STAGE_00), + {} +}; + +NpcGroupList N(FirstFloorEscapeNPCs) = { + NPC_GROUP(N(NpcData_Sentinel_01)), + NPC_GROUP(N(NpcData_Sentinel_02)), + NPC_GROUP(N(NpcData_Sentinel_03)), + NPC_GROUP(N(NpcData_Sentinel_04)), + NPC_GROUP(N(NpcData_Tubba_Floor1), BTL_DGB_FORMATION_04, BTL_DGB_STAGE_00), + {} +}; diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img0.c b/src/world/area_dgb/dgb_01/dgb_01_6_img0.c new file mode 100644 index 0000000000..8684fc3ad5 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img0.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img0.png.inc.c" +#include "world/area_dgb/dgb_01/img0.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img1.c b/src/world/area_dgb/dgb_01/dgb_01_6_img1.c new file mode 100644 index 0000000000..018e55bf1b --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img1.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img1.png.inc.c" +#include "world/area_dgb/dgb_01/img1.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img2.c b/src/world/area_dgb/dgb_01/dgb_01_6_img2.c new file mode 100644 index 0000000000..1049a71d6c --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img2.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img2.png.inc.c" +#include "world/area_dgb/dgb_01/img2.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img3.c b/src/world/area_dgb/dgb_01/dgb_01_6_img3.c new file mode 100644 index 0000000000..72a707495d --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img3.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img3.png.inc.c" +#include "world/area_dgb/dgb_01/img3.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img4.c b/src/world/area_dgb/dgb_01/dgb_01_6_img4.c new file mode 100644 index 0000000000..8b005dd97e --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img4.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img4.png.inc.c" +#include "world/area_dgb/dgb_01/img4.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img5.c b/src/world/area_dgb/dgb_01/dgb_01_6_img5.c new file mode 100644 index 0000000000..bf6f30c681 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img5.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img5.png.inc.c" +#include "world/area_dgb/dgb_01/img5.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img6.c b/src/world/area_dgb/dgb_01/dgb_01_6_img6.c new file mode 100644 index 0000000000..aab290e5ae --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img6.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img6.png.inc.c" +#include "world/area_dgb/dgb_01/img6.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_6_img7.c b/src/world/area_dgb/dgb_01/dgb_01_6_img7.c new file mode 100644 index 0000000000..578397d1a4 --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_6_img7.c @@ -0,0 +1,4 @@ +#include "dgb_01.h" + +#include "world/area_dgb/dgb_01/img7.png.inc.c" +#include "world/area_dgb/dgb_01/img7.gfx.inc.c" diff --git a/src/world/area_dgb/dgb_01/dgb_01_7.c b/src/world/area_dgb/dgb_01/dgb_01_7.c new file mode 100644 index 0000000000..787cdf468e --- /dev/null +++ b/src/world/area_dgb/dgb_01/dgb_01_7.c @@ -0,0 +1,3582 @@ +#include "dgb_01.h" +#include "../dgb_vtx.h" + +extern Lights1 N(D_80253140_C109C0); + +Gfx N(D_8024B770_C08FF0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2E620, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(3, 2, 4, 0, 3, 4, 5, 0), + gsSP2Triangles(6, 7, 1, 0, 6, 1, 0, 0), + gsSP2Triangles(8, 9, 7, 0, 8, 7, 6, 0), + gsSP2Triangles(10, 11, 12, 0, 13, 14, 15, 0), + gsSP2Triangles(13, 15, 11, 0, 13, 11, 16, 0), + gsSP2Triangles(17, 13, 16, 0, 17, 16, 18, 0), + gsSP2Triangles(19, 17, 18, 0, 19, 18, 20, 0), + gsSP2Triangles(21, 22, 23, 0, 21, 23, 24, 0), + gsSP2Triangles(23, 22, 25, 0, 23, 25, 26, 0), + gsSP1Triangle(27, 28, 29, 0), + gsSPVertex(vtx_C2E7B0, 3, 0), + gsSPVertex(vtx_C2E800, 14, 3), + gsSPVertex(vtx_C2E980, 15, 17), + gsSP2Triangles(3, 2, 4, 0, 3, 4, 5, 0), + gsSP2Triangles(3, 5, 6, 0, 7, 3, 6, 0), + gsSP2Triangles(7, 6, 17, 0, 8, 7, 17, 0), + gsSP2Triangles(8, 17, 18, 0, 9, 19, 20, 0), + gsSP2Triangles(9, 20, 21, 0, 1, 0, 10, 0), + gsSP2Triangles(1, 10, 22, 0, 11, 23, 24, 0), + gsSP2Triangles(11, 24, 12, 0, 12, 24, 25, 0), + gsSP2Triangles(12, 25, 13, 0, 13, 25, 26, 0), + gsSP2Triangles(13, 26, 14, 0, 14, 26, 27, 0), + gsSP2Triangles(14, 27, 28, 0, 15, 16, 29, 0), + gsSP2Triangles(15, 29, 30, 0, 15, 30, 31, 0), + gsSPVertex(vtx_C2E8C0, 12, 0), + gsSPVertex(vtx_C2EA60, 20, 12), + gsSP2Triangles(1, 13, 14, 0, 2, 0, 12, 0), + gsSP2Triangles(2, 12, 15, 0, 3, 2, 15, 0), + gsSP2Triangles(3, 15, 16, 0, 4, 17, 18, 0), + gsSP2Triangles(5, 19, 20, 0, 5, 20, 17, 0), + gsSP2Triangles(5, 17, 21, 0, 6, 5, 21, 0), + gsSP2Triangles(6, 21, 22, 0, 7, 6, 22, 0), + gsSP2Triangles(7, 22, 23, 0, 8, 24, 25, 0), + gsSP2Triangles(8, 25, 9, 0, 9, 25, 26, 0), + gsSP2Triangles(9, 26, 27, 0, 10, 28, 24, 0), + gsSP2Triangles(10, 24, 8, 0, 11, 29, 30, 0), + gsSP1Triangle(11, 30, 31, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024B8F8_C09178)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2E020, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(7, 6, 8, 0, 7, 8, 9, 0), + gsSP2Triangles(9, 8, 10, 0, 9, 10, 11, 0), + gsSP2Triangles(11, 10, 12, 0, 11, 12, 13, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), + gsSP2Triangles(18, 14, 17, 0, 18, 17, 19, 0), + gsSP2Triangles(15, 20, 21, 0, 15, 21, 16, 0), + gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 29, 25, 0, 28, 25, 24, 0), + gsSPVertex(vtx_C2E1E0, 13, 0), + gsSPVertex(vtx_C2E390, 17, 13), + gsSP2Triangles(2, 13, 14, 0, 2, 14, 15, 0), + gsSP2Triangles(3, 2, 15, 0, 3, 15, 16, 0), + gsSP2Triangles(4, 3, 16, 0, 4, 16, 17, 0), + gsSP2Triangles(5, 4, 17, 0, 5, 17, 18, 0), + gsSP2Triangles(6, 19, 1, 0, 6, 1, 0, 0), + gsSP2Triangles(7, 20, 19, 0, 7, 19, 6, 0), + gsSP2Triangles(8, 21, 22, 0, 8, 22, 23, 0), + gsSP2Triangles(9, 24, 25, 0, 9, 25, 10, 0), + gsSP2Triangles(10, 25, 26, 0, 10, 26, 27, 0), + gsSP2Triangles(11, 28, 24, 0, 11, 24, 9, 0), + gsSP2Triangles(12, 29, 28, 0, 12, 28, 11, 0), + gsSPVertex(vtx_C2E2B0, 12, 0), + gsSPVertex(vtx_C2E4A0, 20, 12), + gsSP2Triangles(0, 1, 12, 0, 0, 12, 13, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 12, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 16, 17, 0, 3, 17, 15, 0), + gsSP2Triangles(4, 18, 19, 0, 4, 19, 20, 0), + gsSP2Triangles(5, 6, 21, 0, 5, 21, 22, 0), + gsSP2Triangles(6, 7, 23, 0, 6, 23, 21, 0), + gsSP2Triangles(7, 8, 24, 0, 7, 24, 23, 0), + gsSP2Triangles(8, 25, 26, 0, 8, 26, 24, 0), + gsSP2Triangles(9, 27, 28, 0, 9, 28, 29, 0), + gsSP2Triangles(10, 30, 31, 0, 10, 31, 11, 0), + gsSPVertex(vtx_C2E360, 3, 0), + gsSPVertex(vtx_C2E5D0, 5, 3), + gsSP2Triangles(0, 3, 4, 0, 0, 4, 1, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(2, 5, 6, 0, 2, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BAA0_C09320)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2DA20, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(8, 9, 5, 0, 8, 5, 4, 0), + gsSP2Triangles(10, 11, 9, 0, 10, 9, 8, 0), + gsSP2Triangles(12, 13, 11, 0, 12, 11, 10, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), + gsSP2Triangles(18, 14, 17, 0, 18, 17, 19, 0), + gsSP2Triangles(15, 20, 21, 0, 15, 21, 16, 0), + gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(27, 26, 28, 0, 27, 28, 29, 0), + gsSPVertex(vtx_C2DBE0, 13, 0), + gsSPVertex(vtx_C2DD90, 17, 13), + gsSP2Triangles(2, 13, 14, 0, 2, 14, 15, 0), + gsSP2Triangles(3, 2, 15, 0, 3, 15, 16, 0), + gsSP2Triangles(4, 3, 16, 0, 4, 16, 17, 0), + gsSP2Triangles(5, 4, 17, 0, 5, 17, 18, 0), + gsSP2Triangles(1, 0, 6, 0, 1, 6, 7, 0), + gsSP2Triangles(7, 6, 19, 0, 7, 19, 20, 0), + gsSP2Triangles(8, 21, 22, 0, 8, 22, 23, 0), + gsSP2Triangles(9, 24, 25, 0, 9, 25, 10, 0), + gsSP2Triangles(10, 25, 26, 0, 10, 26, 11, 0), + gsSP2Triangles(11, 26, 27, 0, 11, 27, 12, 0), + gsSP2Triangles(12, 27, 28, 0, 12, 28, 29, 0), + gsSPVertex(vtx_C2DCB0, 12, 0), + gsSPVertex(vtx_C2DEA0, 20, 12), + gsSP2Triangles(0, 1, 12, 0, 0, 12, 13, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 12, 0), + gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), + gsSP2Triangles(3, 16, 17, 0, 3, 17, 15, 0), + gsSP2Triangles(4, 18, 19, 0, 4, 19, 20, 0), + gsSP2Triangles(5, 6, 21, 0, 5, 21, 22, 0), + gsSP2Triangles(6, 7, 23, 0, 6, 23, 21, 0), + gsSP2Triangles(7, 8, 24, 0, 7, 24, 23, 0), + gsSP2Triangles(8, 25, 26, 0, 8, 26, 24, 0), + gsSP2Triangles(9, 27, 28, 0, 9, 28, 29, 0), + gsSP2Triangles(10, 30, 31, 0, 10, 31, 11, 0), + gsSPVertex(vtx_C2DD50, 4, 0), + gsSPVertex(vtx_C2DFC0, 6, 4), + gsSP2Triangles(1, 5, 6, 0, 1, 6, 7, 0), + gsSP2Triangles(2, 8, 4, 0, 2, 4, 0, 0), + gsSP2Triangles(3, 9, 8, 0, 3, 8, 2, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BC48_C094C8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2D830, 12, 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), + gsSPVertex(vtx_C2D8F0, 19, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(4, 0, 2, 0, 5, 6, 7, 0), + gsSP2Triangles(6, 8, 7, 0, 8, 9, 7, 0), + gsSP2Triangles(10, 11, 12, 0, 10, 13, 11, 0), + gsSP2Triangles(10, 14, 15, 0, 10, 16, 14, 0), + gsSP2Triangles(10, 15, 13, 0, 10, 17, 18, 0), + gsSP1Triangle(10, 12, 17, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BCF8_C09578)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img6_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2D6E0, 21, 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, 11, 0, 12, 11, 10, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), + gsSP2Triangles(18, 19, 20, 0, 18, 20, 17, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BD80_C09600)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024BCF8_C09578)), + gsSPDisplayList(N(D_8024BC48_C094C8)), + gsSPDisplayList(N(D_8024BAA0_C09320)), + gsSPDisplayList(N(D_8024B8F8_C09178)), + gsSPDisplayList(N(D_8024B770_C08FF0)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BDC8_C09648)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2D6A0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BE28_C096A8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253960_C111E0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024BDC8_C09648)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BE60_C096E0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2D660, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BEC0_C09740)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253920_C111A0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024BE60_C096E0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BEF8_C09778)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2D620, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BF58_C097D8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802538E0_C11160), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024BEF8_C09778)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BF90_C09810)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024BF58_C097D8)), + gsSPDisplayList(N(D_8024BEC0_C09740)), + gsSPDisplayList(N(D_8024BE28_C096A8)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024BFC8_C09848)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2D5C0, 6, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C030_C098B0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2D560, 6, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C098_C09918)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2D500, 6, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C100_C09980)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2D260, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(9, 12, 13, 0, 9, 13, 10, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), + gsSP2Triangles(14, 18, 15, 0, 17, 19, 20, 0), + gsSP2Triangles(17, 20, 18, 0, 19, 21, 22, 0), + gsSP2Triangles(19, 22, 20, 0, 6, 23, 7, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(25, 28, 29, 0, 25, 29, 26, 0), + gsSPVertex(vtx_C2D3E0, 1, 0), + gsSPVertex(vtx_C2D410, 1, 1), + gsSPVertex(vtx_C2D440, 12, 2), + gsSP2Triangles(2, 0, 1, 0, 2, 1, 7, 0), + gsSP2Triangles(2, 7, 8, 0, 3, 4, 9, 0), + gsSP2Triangles(3, 9, 10, 0, 4, 5, 11, 0), + gsSP2Triangles(4, 11, 9, 0, 5, 6, 12, 0), + gsSP2Triangles(5, 12, 11, 0, 6, 13, 12, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C1F0_C09A70)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2CFC0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(9, 12, 13, 0, 9, 13, 10, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), + gsSP2Triangles(14, 18, 15, 0, 17, 19, 20, 0), + gsSP2Triangles(17, 20, 18, 0, 19, 21, 22, 0), + gsSP2Triangles(19, 22, 20, 0, 6, 23, 7, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(25, 28, 29, 0, 25, 29, 26, 0), + gsSPVertex(vtx_C2D140, 1, 0), + gsSPVertex(vtx_C2D170, 1, 1), + gsSPVertex(vtx_C2D1A0, 12, 2), + gsSP2Triangles(2, 0, 1, 0, 2, 1, 7, 0), + gsSP2Triangles(2, 7, 8, 0, 3, 4, 9, 0), + gsSP2Triangles(3, 9, 10, 0, 4, 5, 11, 0), + gsSP2Triangles(4, 11, 9, 0, 5, 6, 12, 0), + gsSP2Triangles(5, 12, 11, 0, 6, 13, 12, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C2E0_C09B60)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2CD20, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(9, 12, 13, 0, 9, 13, 10, 0), + gsSP2Triangles(14, 15, 16, 0, 15, 17, 18, 0), + gsSP2Triangles(15, 18, 16, 0, 17, 19, 20, 0), + gsSP2Triangles(17, 20, 18, 0, 19, 21, 22, 0), + gsSP2Triangles(19, 22, 20, 0, 6, 23, 7, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(25, 28, 29, 0, 25, 29, 26, 0), + gsSPVertex(vtx_C2CEA0, 1, 0), + gsSPVertex(vtx_C2CED0, 1, 1), + gsSPVertex(vtx_C2CF00, 12, 2), + gsSP2Triangles(2, 0, 1, 0, 2, 1, 8, 0), + gsSP2Triangles(3, 2, 8, 0, 4, 5, 9, 0), + gsSP2Triangles(4, 9, 10, 0, 5, 6, 11, 0), + gsSP2Triangles(5, 11, 9, 0, 6, 7, 12, 0), + gsSP2Triangles(6, 12, 11, 0, 7, 13, 12, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C3D0_C09C50)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024C2E0_C09B60)), + gsSPDisplayList(N(D_8024C1F0_C09A70)), + gsSPDisplayList(N(D_8024C100_C09980)), + gsSPDisplayList(N(D_8024C098_C09918)), + gsSPDisplayList(N(D_8024C030_C098B0)), + gsSPDisplayList(N(D_8024BFC8_C09848)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C420_C09CA0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2CBA0, 24, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 0, 3, 0, 4, 3, 5, 0), + gsSP2Triangles(6, 4, 5, 0, 6, 5, 7, 0), + gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0), + gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), + gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), + gsSP2Triangles(15, 17, 18, 0, 16, 19, 17, 0), + gsSP2Triangles(20, 15, 18, 0, 20, 18, 21, 0), + gsSP2Triangles(22, 20, 21, 0, 22, 21, 23, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C4C0_C09D40)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2CA20, 24, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 0, 3, 0, 4, 3, 5, 0), + gsSP2Triangles(6, 4, 5, 0, 6, 5, 7, 0), + gsSP2Triangles(8, 6, 7, 0, 9, 10, 11, 0), + gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), + gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), + gsSP2Triangles(15, 17, 18, 0, 16, 19, 17, 0), + gsSP2Triangles(20, 15, 18, 0, 20, 18, 21, 0), + gsSP2Triangles(22, 20, 21, 0, 22, 21, 23, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C560_C09DE0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C2C8A0, 24, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(6, 8, 7, 0, 9, 10, 11, 0), + gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), + gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), + gsSP2Triangles(15, 17, 18, 0, 15, 18, 19, 0), + gsSP2Triangles(16, 20, 21, 0, 16, 21, 17, 0), + gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C600_C09E80)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024C560_C09DE0)), + gsSPDisplayList(N(D_8024C4C0_C09D40)), + gsSPDisplayList(N(D_8024C420_C09CA0)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C638_C09EB8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024C600_C09E80)), + gsSPDisplayList(N(D_8024C3D0_C09C50)), + gsSPDisplayList(N(D_8024BF90_C09810)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C670_C09EF0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2C4E0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 3, 2, 0, 2, 5, 4, 0), + gsSP2Triangles(2, 6, 5, 0, 2, 7, 6, 0), + gsSP2Triangles(8, 7, 2, 0, 8, 2, 1, 0), + gsSP2Triangles(9, 8, 1, 0, 8, 9, 10, 0), + gsSP2Triangles(9, 1, 0, 0, 11, 9, 12, 0), + gsSP2Triangles(9, 0, 12, 0, 13, 10, 9, 0), + gsSP2Triangles(13, 9, 14, 0, 9, 11, 14, 0), + gsSP2Triangles(15, 16, 17, 0, 18, 15, 17, 0), + gsSP2Triangles(19, 17, 16, 0, 19, 20, 17, 0), + gsSP2Triangles(21, 17, 20, 0, 17, 21, 22, 0), + gsSP2Triangles(23, 18, 17, 0, 23, 17, 22, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 22, 25, 0), + gsSP2Triangles(21, 20, 25, 0, 20, 27, 25, 0), + gsSP2Triangles(25, 27, 28, 0, 29, 25, 28, 0), + gsSP2Triangles(21, 25, 22, 0, 29, 26, 25, 0), + gsSPVertex(vtx_C2C6C0, 30, 0), + gsSP2Triangles(0, 14, 2, 0, 0, 2, 15, 0), + gsSP2Triangles(1, 15, 2, 0, 2, 16, 17, 0), + gsSP2Triangles(3, 16, 2, 0, 3, 2, 14, 0), + gsSP2Triangles(2, 18, 1, 0, 2, 17, 18, 0), + gsSP2Triangles(4, 3, 14, 0, 3, 4, 19, 0), + gsSP2Triangles(4, 14, 0, 0, 5, 4, 20, 0), + gsSP2Triangles(4, 0, 20, 0, 6, 4, 21, 0), + gsSP2Triangles(4, 5, 21, 0, 6, 19, 4, 0), + gsSP2Triangles(7, 22, 8, 0, 8, 23, 7, 0), + gsSP2Triangles(9, 8, 22, 0, 8, 24, 23, 0), + gsSP2Triangles(8, 25, 24, 0, 10, 25, 8, 0), + gsSP2Triangles(10, 8, 26, 0, 9, 26, 8, 0), + gsSP2Triangles(11, 26, 9, 0, 11, 9, 27, 0), + gsSP2Triangles(11, 10, 26, 0, 12, 28, 11, 0), + gsSP2Triangles(10, 11, 28, 0, 12, 11, 29, 0), + gsSP2Triangles(13, 11, 27, 0, 11, 13, 29, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C7D0_C0A050)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024C670_C09EF0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C808_C0A088)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2C300, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0), + gsSP2Triangles(3, 4, 0, 0, 0, 5, 6, 0), + gsSP2Triangles(1, 0, 6, 0, 4, 7, 0, 0), + gsSP2Triangles(0, 7, 8, 0, 5, 0, 8, 0), + gsSP2Triangles(9, 6, 10, 0, 6, 5, 10, 0), + gsSP2Triangles(5, 8, 10, 0, 9, 10, 11, 0), + gsSP2Triangles(12, 11, 10, 0, 12, 10, 13, 0), + gsSP2Triangles(10, 14, 13, 0, 14, 10, 8, 0), + gsSP2Triangles(15, 16, 17, 0, 18, 15, 19, 0), + gsSP2Triangles(18, 20, 15, 0, 21, 19, 15, 0), + gsSP2Triangles(21, 15, 22, 0, 23, 22, 15, 0), + gsSP2Triangles(15, 17, 23, 0, 15, 20, 16, 0), + gsSP2Triangles(18, 24, 25, 0, 24, 18, 19, 0), + gsSP2Triangles(24, 19, 21, 0, 26, 24, 27, 0), + gsSP2Triangles(26, 25, 24, 0, 24, 28, 27, 0), + gsSP2Triangles(24, 21, 29, 0, 28, 24, 29, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C8E0_C0A160)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024C808_C0A088)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C918_C0A198)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2C1C0, 20, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024C998_C0A218)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2BF50, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), + gsSP2Triangles(4, 3, 2, 0, 4, 2, 5, 0), + gsSP2Triangles(5, 2, 6, 0, 2, 7, 6, 0), + gsSP2Triangles(2, 8, 7, 0, 2, 1, 8, 0), + gsSP2Triangles(5, 6, 9, 0, 10, 4, 5, 0), + gsSP2Triangles(11, 12, 13, 0, 11, 13, 14, 0), + gsSP2Triangles(15, 16, 13, 0, 13, 17, 14, 0), + gsSP2Triangles(18, 19, 14, 0, 20, 21, 15, 0), + gsSP2Triangles(22, 20, 12, 0, 22, 12, 11, 0), + gsSP2Triangles(23, 24, 25, 0, 26, 27, 24, 0), + gsSP2Triangles(26, 24, 28, 0, 24, 27, 25, 0), + gsSP1Triangle(27, 29, 25, 0), + gsSPVertex(vtx_C2BF60, 1, 1), + gsSPVertex(vtx_C2BFD0, 1, 2), + gsSPVertex(vtx_C2C080, 2, 3), + gsSPVertex(vtx_C2C0B0, 1, 5), + gsSPVertex(vtx_C2C0F0, 2, 6), + gsSPVertex(vtx_C2C130, 9, 8), + gsSP2Triangles(8, 15, 1, 0, 0, 9, 8, 0), + gsSP2Triangles(0, 8, 1, 0, 1, 10, 16, 0), + gsSP2Triangles(1, 16, 2, 0, 1, 11, 10, 0), + gsSP2Triangles(6, 12, 7, 0, 5, 3, 13, 0), + gsSP1Triangle(5, 14, 4, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CAA8_C0A328)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802538A0_C11120), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024C998_C0A218)), + gsSPDisplayList(N(D_8024C918_C0A198)), + gsSPDisplayList(N(D_8024C8E0_C0A160)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CAF0_C0A370)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2BE50, 16, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CB68_C0A3E8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2BB50, 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(vtx_C2BD50, 16, 0), + gsSP2Triangles(0, 4, 5, 0, 0, 5, 6, 0), + gsSP2Triangles(1, 7, 8, 0, 1, 8, 9, 0), + gsSP2Triangles(2, 10, 11, 0, 2, 11, 12, 0), + gsSP2Triangles(3, 13, 14, 0, 3, 14, 15, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CC28_C0A4A8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2BA50, 16, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CCA0_C0A520)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2B9B0, 10, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(1, 4, 3, 0, 5, 6, 7, 0), + gsSP2Triangles(5, 7, 8, 0, 5, 8, 9, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CD10_C0A590)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2B8E0, 13, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(2, 4, 5, 0, 2, 5, 3, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(3, 5, 8, 0, 3, 8, 9, 0), + gsSP2Triangles(10, 0, 3, 0, 10, 3, 9, 0), + gsSP2Triangles(1, 11, 12, 0, 1, 12, 6, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CD98_C0A618)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2B850, 9, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 3, 0, 4, 3, 6, 0), + gsSP2Triangles(4, 7, 8, 0, 4, 8, 5, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CE08_C0A688)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2B050, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), + gsSP2Triangles(0, 4, 3, 0, 5, 6, 7, 0), + gsSP2Triangles(6, 8, 7, 0, 8, 9, 7, 0), + gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), + gsSP2Triangles(5, 7, 12, 0, 11, 13, 9, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), + gsSP2Triangles(14, 18, 19, 0, 14, 20, 17, 0), + gsSP2Triangles(17, 21, 22, 0, 23, 5, 12, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(24, 27, 28, 0, 29, 25, 30, 0), + gsSP2Triangles(25, 24, 31, 0, 25, 31, 30, 0), + gsSPVertex(vtx_C2B220, 2, 0), + gsSPVertex(vtx_C2B250, 8, 2), + gsSPVertex(vtx_C2B410, 21, 10), + gsSP2Triangles(2, 0, 1, 0, 2, 1, 10, 0), + gsSP2Triangles(3, 11, 12, 0, 3, 12, 13, 0), + gsSP2Triangles(4, 14, 15, 0, 4, 15, 16, 0), + gsSP2Triangles(5, 17, 18, 0, 5, 18, 19, 0), + gsSP2Triangles(6, 20, 21, 0, 6, 21, 22, 0), + gsSP2Triangles(7, 23, 24, 0, 7, 24, 25, 0), + gsSP2Triangles(8, 26, 27, 0, 8, 27, 28, 0), + gsSP2Triangles(8, 9, 26, 0, 9, 29, 30, 0), + gsSP1Triangle(9, 30, 26, 0), + gsSPVertex(vtx_C2B2D0, 8, 0), + gsSPVertex(vtx_C2B560, 23, 8), + gsSP2Triangles(0, 8, 9, 0, 0, 9, 10, 0), + gsSP2Triangles(0, 10, 11, 0, 1, 12, 13, 0), + gsSP2Triangles(1, 2, 14, 0, 1, 14, 15, 0), + gsSP2Triangles(1, 16, 2, 0, 2, 17, 18, 0), + gsSP2Triangles(3, 19, 20, 0, 3, 20, 21, 0), + gsSP2Triangles(4, 3, 21, 0, 5, 22, 23, 0), + gsSP2Triangles(5, 24, 22, 0, 5, 25, 24, 0), + gsSP2Triangles(6, 26, 7, 0, 6, 7, 27, 0), + gsSP2Triangles(6, 27, 28, 0, 6, 29, 30, 0), + gsSPVertex(vtx_C2B340, 11, 0), + gsSPVertex(vtx_C2B6D0, 21, 11), + gsSP2Triangles(0, 11, 12, 0, 1, 2, 13, 0), + gsSP2Triangles(1, 13, 14, 0, 2, 15, 16, 0), + gsSP2Triangles(2, 16, 13, 0, 3, 17, 18, 0), + gsSP2Triangles(3, 18, 19, 0, 4, 20, 21, 0), + gsSP2Triangles(4, 21, 22, 0, 5, 23, 24, 0), + gsSP2Triangles(5, 24, 25, 0, 6, 5, 25, 0), + gsSP2Triangles(6, 25, 26, 0, 7, 27, 28, 0), + gsSP2Triangles(8, 29, 7, 0, 8, 7, 28, 0), + gsSP2Triangles(8, 28, 30, 0, 9, 10, 31, 0), + gsSPVertex(vtx_C2B3C0, 1, 0), + gsSPVertex(vtx_C2B3E0, 3, 1), + gsSPVertex(vtx_C2B800, 5, 4), + gsSP2Triangles(1, 6, 5, 0, 1, 7, 2, 0), + gsSP2Triangles(1, 2, 6, 0, 2, 8, 6, 0), + gsSP1Triangle(3, 0, 4, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024CFF8_C0A878)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024CE08_C0A688)), + gsSPDisplayList(N(D_8024CD98_C0A618)), + gsSPDisplayList(N(D_8024CD10_C0A590)), + gsSPDisplayList(N(D_8024CCA0_C0A520)), + gsSPDisplayList(N(D_8024CC28_C0A4A8)), + gsSPDisplayList(N(D_8024CB68_C0A3E8)), + gsSPDisplayList(N(D_8024CAF0_C0A370)), + gsSPDisplayList(N(D_8024CAA8_C0A328)), + gsSPDisplayList(N(D_8024C7D0_C0A050)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D060_C0A8E0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2AAB0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), + gsSP2Triangles(1, 4, 2, 0, 5, 1, 3, 0), + gsSP2Triangles(5, 6, 1, 0, 7, 1, 6, 0), + gsSP2Triangles(7, 8, 1, 0, 8, 4, 1, 0), + gsSP2Triangles(9, 10, 11, 0, 9, 11, 12, 0), + gsSP2Triangles(13, 11, 14, 0, 11, 15, 14, 0), + gsSP2Triangles(15, 11, 16, 0, 11, 17, 16, 0), + gsSP2Triangles(11, 10, 17, 0, 11, 13, 12, 0), + gsSP2Triangles(18, 17, 19, 0, 17, 18, 16, 0), + gsSP2Triangles(7, 20, 8, 0, 21, 8, 20, 0), + gsSP2Triangles(20, 7, 6, 0, 22, 20, 6, 0), + gsSP2Triangles(15, 16, 18, 0, 15, 18, 23, 0), + gsSP2Triangles(18, 24, 23, 0, 18, 25, 24, 0), + gsSP2Triangles(18, 26, 25, 0, 26, 18, 19, 0), + gsSP2Triangles(27, 28, 20, 0, 21, 20, 29, 0), + gsSP2Triangles(22, 27, 20, 0, 28, 29, 20, 0), + gsSPVertex(vtx_C2AC90, 17, 0), + gsSPVertex(vtx_C2AEB0, 15, 17), + gsSP2Triangles(0, 17, 4, 0, 0, 4, 18, 0), + gsSP2Triangles(1, 0, 18, 0, 0, 1, 19, 0), + gsSP2Triangles(2, 0, 19, 0, 0, 2, 20, 0), + gsSP2Triangles(3, 0, 20, 0, 3, 17, 0, 0), + gsSP2Triangles(4, 5, 18, 0, 5, 4, 21, 0), + gsSP2Triangles(1, 18, 5, 0, 6, 5, 21, 0), + gsSP2Triangles(5, 22, 23, 0, 5, 24, 22, 0), + gsSP2Triangles(5, 6, 24, 0, 1, 5, 23, 0), + gsSP2Triangles(7, 25, 8, 0, 7, 8, 26, 0), + gsSP2Triangles(8, 27, 26, 0, 9, 27, 8, 0), + gsSP2Triangles(10, 9, 8, 0, 11, 28, 8, 0), + gsSP2Triangles(11, 8, 25, 0, 10, 8, 28, 0), + gsSP2Triangles(12, 29, 16, 0, 12, 16, 30, 0), + gsSP2Triangles(13, 16, 29, 0, 13, 31, 16, 0), + gsSP2Triangles(14, 16, 31, 0, 14, 15, 16, 0), + gsSPVertex(vtx_C2AD20, 2, 0), + gsSPVertex(vtx_C2AD70, 17, 2), + gsSPVertex(vtx_C2AF60, 1, 19), + gsSPVertex(vtx_C2AF80, 10, 20), + gsSP2Triangles(4, 22, 20, 0, 3, 22, 4, 0), + gsSP2Triangles(5, 3, 6, 0, 2, 6, 3, 0), + gsSP2Triangles(6, 2, 21, 0, 7, 11, 23, 0), + gsSP2Triangles(7, 0, 11, 0, 8, 23, 11, 0), + gsSP2Triangles(1, 11, 0, 0, 9, 8, 11, 0), + gsSP2Triangles(10, 9, 11, 0, 10, 11, 19, 0), + gsSP2Triangles(11, 1, 19, 0, 12, 6, 21, 0), + gsSP2Triangles(12, 13, 6, 0, 13, 14, 6, 0), + gsSP2Triangles(14, 24, 6, 0, 5, 6, 24, 0), + gsSP2Triangles(15, 25, 26, 0, 16, 15, 26, 0), + gsSP2Triangles(15, 18, 27, 0, 17, 15, 27, 0), + gsSP2Triangles(15, 17, 28, 0, 15, 28, 25, 0), + gsSP2Triangles(18, 15, 29, 0, 16, 29, 15, 0), + gsSPVertex(vtx_C2AE50, 1, 0), + gsSPVertex(vtx_C2AE70, 4, 1), + gsSPVertex(vtx_C2B010, 4, 5), + gsSP2Triangles(2, 1, 5, 0, 2, 6, 1, 0), + gsSP2Triangles(0, 2, 5, 0, 2, 0, 7, 0), + gsSP2Triangles(3, 2, 8, 0, 3, 6, 2, 0), + gsSP2Triangles(2, 4, 8, 0, 4, 2, 7, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D280_C0AB00)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024D060_C0A8E0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D2B8_C0AB38)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A8D0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 0, 3, 0), + gsSP2Triangles(1, 3, 4, 0, 1, 4, 2, 0), + gsSP2Triangles(5, 6, 0, 0, 6, 7, 0, 0), + gsSP2Triangles(8, 0, 7, 0, 8, 3, 0, 0), + gsSP2Triangles(9, 0, 2, 0, 9, 5, 0, 0), + gsSP2Triangles(3, 10, 4, 0, 11, 2, 4, 0), + gsSP2Triangles(4, 10, 12, 0, 13, 4, 12, 0), + gsSP2Triangles(13, 14, 4, 0, 11, 4, 14, 0), + gsSP2Triangles(15, 16, 17, 0, 18, 16, 15, 0), + gsSP2Triangles(18, 15, 19, 0, 15, 20, 19, 0), + gsSP2Triangles(20, 15, 21, 0, 15, 22, 21, 0), + gsSP2Triangles(22, 15, 23, 0, 15, 17, 23, 0), + gsSP2Triangles(24, 17, 25, 0, 17, 24, 23, 0), + gsSP2Triangles(22, 23, 24, 0, 22, 24, 26, 0), + gsSP2Triangles(24, 27, 26, 0, 28, 24, 25, 0), + gsSP2Triangles(24, 28, 29, 0, 24, 29, 27, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D390_C0AC10)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024D2B8_C0AB38)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D3C8_C0AC48)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A790, 20, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D448_C0ACC8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A540, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), + gsSP2Triangles(3, 2, 4, 0, 0, 5, 6, 0), + gsSP2Triangles(0, 6, 1, 0, 7, 1, 8, 0), + gsSP2Triangles(7, 8, 9, 0, 7, 9, 10, 0), + gsSP2Triangles(1, 7, 11, 0, 1, 11, 12, 0), + gsSP2Triangles(2, 1, 12, 0, 13, 14, 8, 0), + gsSP2Triangles(13, 8, 1, 0, 13, 1, 6, 0), + gsSP2Triangles(15, 2, 12, 0, 15, 12, 16, 0), + gsSP2Triangles(17, 18, 19, 0, 17, 19, 20, 0), + gsSP2Triangles(17, 20, 21, 0, 21, 20, 22, 0), + gsSP2Triangles(21, 22, 23, 0, 21, 23, 24, 0), + gsSP2Triangles(25, 26, 27, 0, 25, 27, 28, 0), + gsSP2Triangles(27, 29, 28, 0, 27, 30, 31, 0), + gsSP1Triangle(27, 31, 29, 0), + gsSPVertex(vtx_C2A700, 2, 0), + gsSPVertex(vtx_C2A740, 5, 2), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), + gsSP2Triangles(1, 4, 2, 0, 0, 2, 5, 0), + gsSP1Triangle(0, 5, 6, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D538_C0ADB8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253860_C110E0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024D448_C0ACC8)), + gsSPDisplayList(N(D_8024D3C8_C0AC48)), + gsSPDisplayList(N(D_8024D390_C0AC10)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D580_C0AE00)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A3C0, 24, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D608_C0AE88)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A2C0, 16, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D680_C0AF00)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A180, 20, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D700_C0AF80)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C2A080, 16, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 3, 4, 0, 5, 6, 2, 0), + gsSP2Triangles(5, 2, 1, 0, 5, 1, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(8, 11, 12, 0, 12, 11, 13, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D788_C0B008)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C29F50, 19, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 4, 0), + gsSP2Triangles(2, 5, 9, 0, 2, 9, 10, 0), + gsSP2Triangles(3, 2, 10, 0, 3, 10, 11, 0), + gsSP2Triangles(12, 13, 3, 0, 12, 3, 11, 0), + gsSP2Triangles(13, 6, 0, 0, 13, 0, 3, 0), + gsSP2Triangles(11, 10, 14, 0, 11, 14, 15, 0), + gsSP2Triangles(16, 17, 8, 0, 16, 8, 18, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D828_C0B0A8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C29E00, 21, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 0, 3, 0, 4, 3, 5, 0), + gsSP2Triangles(6, 1, 7, 0, 6, 7, 8, 0), + gsSP2Triangles(9, 10, 6, 0, 9, 6, 11, 0), + gsSP2Triangles(4, 5, 12, 0, 4, 12, 7, 0), + gsSP2Triangles(13, 14, 8, 0, 13, 8, 15, 0), + gsSP2Triangles(16, 17, 9, 0, 16, 9, 13, 0), + gsSP2Triangles(16, 13, 15, 0, 16, 15, 18, 0), + gsSP2Triangles(13, 9, 11, 0, 13, 11, 14, 0), + gsSP2Triangles(19, 16, 18, 0, 19, 18, 20, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024D8D0_C0B150)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C29330, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(2, 4, 3, 0, 2, 5, 6, 0), + gsSP2Triangles(2, 6, 4, 0, 3, 7, 8, 0), + gsSP2Triangles(3, 8, 9, 0, 3, 4, 7, 0), + gsSP2Triangles(4, 10, 11, 0, 4, 11, 7, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(12, 15, 16, 0, 17, 15, 14, 0), + gsSP2Triangles(17, 14, 18, 0, 17, 18, 19, 0), + gsSP2Triangles(20, 15, 21, 0, 20, 22, 16, 0), + gsSP2Triangles(20, 16, 15, 0, 21, 15, 23, 0), + gsSP2Triangles(15, 17, 24, 0, 15, 24, 23, 0), + gsSP2Triangles(25, 26, 27, 0, 25, 27, 28, 0), + gsSP1Triangle(25, 28, 29, 0), + gsSPVertex(vtx_C29470, 2, 0), + gsSPVertex(vtx_C294A0, 1, 2), + gsSPVertex(vtx_C294F0, 13, 3), + gsSPVertex(vtx_C297F0, 16, 16), + gsSP2Triangles(4, 3, 5, 0, 4, 5, 16, 0), + gsSP2Triangles(4, 16, 17, 0, 6, 0, 1, 0), + gsSP2Triangles(6, 1, 18, 0, 7, 1, 2, 0), + gsSP2Triangles(7, 2, 19, 0, 8, 11, 10, 0), + gsSP2Triangles(9, 20, 8, 0, 9, 8, 10, 0), + gsSP2Triangles(10, 11, 21, 0, 10, 21, 22, 0), + gsSP2Triangles(10, 22, 23, 0, 11, 24, 25, 0), + gsSP2Triangles(11, 25, 21, 0, 12, 13, 15, 0), + gsSP2Triangles(12, 15, 26, 0, 13, 14, 15, 0), + gsSP2Triangles(13, 27, 28, 0, 13, 28, 14, 0), + gsSP2Triangles(14, 29, 30, 0, 14, 30, 31, 0), + gsSP1Triangle(15, 14, 31, 0), + gsSPVertex(vtx_C29540, 1, 0), + gsSPVertex(vtx_C29570, 1, 1), + gsSPVertex(vtx_C295B0, 8, 2), + gsSPVertex(vtx_C298E0, 22, 10), + gsSP2Triangles(3, 2, 10, 0, 3, 10, 12, 0), + gsSP2Triangles(0, 11, 13, 0, 0, 13, 1, 0), + gsSP2Triangles(4, 14, 15, 0, 4, 15, 16, 0), + gsSP2Triangles(5, 17, 18, 0, 5, 18, 19, 0), + gsSP2Triangles(6, 20, 21, 0, 6, 21, 22, 0), + gsSP2Triangles(7, 23, 24, 0, 7, 24, 25, 0), + gsSP2Triangles(8, 26, 27, 0, 8, 27, 28, 0), + gsSP2Triangles(9, 29, 30, 0, 9, 30, 31, 0), + gsSPVertex(vtx_C29630, 9, 0), + gsSPVertex(vtx_C29A40, 23, 9), + gsSP2Triangles(0, 9, 10, 0, 0, 10, 11, 0), + gsSP2Triangles(1, 12, 13, 0, 1, 13, 14, 0), + gsSP2Triangles(2, 15, 3, 0, 2, 3, 16, 0), + gsSP2Triangles(3, 4, 17, 0, 3, 17, 18, 0), + gsSP2Triangles(4, 19, 20, 0, 4, 20, 17, 0), + gsSP2Triangles(5, 19, 21, 0, 5, 21, 22, 0), + gsSP2Triangles(6, 23, 24, 0, 6, 24, 25, 0), + gsSP2Triangles(7, 26, 27, 0, 7, 27, 28, 0), + gsSP2Triangles(8, 29, 30, 0, 8, 30, 31, 0), + gsSPVertex(vtx_C29650, 1, 0), + gsSPVertex(vtx_C296C0, 10, 1), + gsSPVertex(vtx_C29AB0, 1, 11), + gsSPVertex(vtx_C29BB0, 19, 12), + gsSP2Triangles(1, 12, 13, 0, 1, 13, 14, 0), + gsSP2Triangles(1, 14, 15, 0, 2, 16, 13, 0), + gsSP2Triangles(2, 13, 12, 0, 2, 12, 17, 0), + gsSP2Triangles(3, 18, 19, 0, 3, 19, 20, 0), + gsSP2Triangles(4, 21, 19, 0, 4, 19, 22, 0), + gsSP2Triangles(5, 4, 22, 0, 5, 22, 23, 0), + gsSP2Triangles(6, 23, 24, 0, 6, 24, 25, 0), + gsSP2Triangles(7, 6, 25, 0, 7, 25, 26, 0), + gsSP2Triangles(8, 0, 11, 0, 8, 11, 27, 0), + gsSP2Triangles(9, 28, 29, 0, 9, 29, 30, 0), + gsSP1Triangle(9, 30, 10, 0), + gsSPVertex(vtx_C29750, 10, 0), + gsSPVertex(vtx_C29CD0, 19, 10), + gsSP2Triangles(0, 10, 11, 0, 0, 11, 12, 0), + gsSP2Triangles(0, 12, 13, 0, 1, 2, 3, 0), + gsSP2Triangles(1, 3, 14, 0, 2, 15, 16, 0), + gsSP2Triangles(2, 16, 9, 0, 2, 9, 3, 0), + gsSP2Triangles(3, 9, 17, 0, 4, 3, 17, 0), + gsSP2Triangles(4, 17, 18, 0, 5, 19, 20, 0), + gsSP2Triangles(5, 20, 8, 0, 5, 8, 7, 0), + gsSP2Triangles(6, 21, 5, 0, 6, 5, 7, 0), + gsSP2Triangles(7, 8, 22, 0, 8, 23, 24, 0), + gsSP2Triangles(8, 24, 22, 0, 7, 22, 25, 0), + gsSP2Triangles(7, 25, 26, 0, 9, 27, 28, 0), + gsSP1Triangle(9, 28, 17, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DBB0_C0B430)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024D8D0_C0B150)), + gsSPDisplayList(N(D_8024D828_C0B0A8)), + gsSPDisplayList(N(D_8024D788_C0B008)), + gsSPDisplayList(N(D_8024D700_C0AF80)), + gsSPDisplayList(N(D_8024D680_C0AF00)), + gsSPDisplayList(N(D_8024D608_C0AE88)), + gsSPDisplayList(N(D_8024D580_C0AE00)), + gsSPDisplayList(N(D_8024D538_C0ADB8)), + gsSPDisplayList(N(D_8024D280_C0AB00)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DC18_C0B498)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253820_C110A0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024DBB0_C0B430)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DC50_C0B4D0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C29150, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), + gsSP2Triangles(1, 4, 2, 0, 5, 2, 6, 0), + gsSP2Triangles(2, 4, 6, 0, 2, 7, 3, 0), + gsSP2Triangles(7, 2, 8, 0, 2, 5, 8, 0), + gsSP2Triangles(9, 10, 6, 0, 5, 6, 10, 0), + gsSP2Triangles(8, 5, 10, 0, 11, 10, 12, 0), + gsSP2Triangles(10, 9, 12, 0, 11, 13, 10, 0), + gsSP2Triangles(14, 10, 13, 0, 14, 8, 10, 0), + gsSP2Triangles(15, 16, 17, 0, 17, 18, 19, 0), + gsSP2Triangles(20, 17, 19, 0, 18, 17, 21, 0), + gsSP2Triangles(17, 22, 21, 0, 23, 22, 17, 0), + gsSP2Triangles(16, 23, 17, 0, 17, 20, 15, 0), + gsSP2Triangles(24, 19, 25, 0, 19, 18, 25, 0), + gsSP2Triangles(18, 21, 25, 0, 26, 27, 25, 0), + gsSP2Triangles(24, 25, 27, 0, 25, 28, 29, 0), + gsSP2Triangles(28, 25, 21, 0, 26, 25, 29, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DD28_C0B5A8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024DC50_C0B4D0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DD60_C0B5E0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C28D90, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(2, 4, 3, 0, 2, 5, 6, 0), + gsSP2Triangles(5, 2, 7, 0, 2, 8, 7, 0), + gsSP2Triangles(8, 2, 1, 0, 2, 6, 4, 0), + gsSP2Triangles(9, 8, 1, 0, 9, 10, 8, 0), + gsSP2Triangles(0, 9, 1, 0, 9, 11, 12, 0), + gsSP2Triangles(11, 9, 13, 0, 9, 0, 13, 0), + gsSP2Triangles(14, 10, 9, 0, 14, 9, 12, 0), + gsSP2Triangles(15, 16, 17, 0, 18, 15, 19, 0), + gsSP2Triangles(15, 18, 20, 0, 21, 15, 20, 0), + gsSP2Triangles(15, 17, 22, 0, 23, 15, 22, 0), + gsSP2Triangles(23, 19, 15, 0, 15, 21, 16, 0), + gsSP2Triangles(23, 24, 19, 0, 24, 23, 25, 0), + gsSP2Triangles(24, 18, 19, 0, 26, 27, 24, 0), + gsSP2Triangles(24, 27, 18, 0, 26, 24, 28, 0), + gsSP2Triangles(24, 29, 28, 0, 29, 24, 25, 0), + gsSPVertex(vtx_C28F70, 30, 0), + gsSP2Triangles(0, 6, 1, 0, 0, 1, 20, 0), + gsSP2Triangles(1, 3, 21, 0, 2, 1, 21, 0), + gsSP2Triangles(2, 5, 1, 0, 3, 1, 6, 0), + gsSP2Triangles(4, 20, 1, 0, 5, 4, 1, 0), + gsSP2Triangles(3, 6, 9, 0, 6, 22, 9, 0), + gsSP2Triangles(3, 9, 21, 0, 7, 9, 23, 0), + gsSP2Triangles(7, 21, 9, 0, 8, 23, 9, 0), + gsSP2Triangles(9, 22, 24, 0, 8, 9, 24, 0), + gsSP2Triangles(10, 13, 25, 0, 10, 26, 13, 0), + gsSP2Triangles(11, 27, 13, 0, 12, 11, 13, 0), + gsSP2Triangles(13, 27, 25, 0, 12, 13, 28, 0), + gsSP2Triangles(14, 28, 13, 0, 14, 13, 26, 0), + gsSP2Triangles(15, 12, 28, 0, 12, 15, 11, 0), + gsSP2Triangles(16, 19, 15, 0, 17, 29, 15, 0), + gsSP2Triangles(18, 15, 29, 0, 18, 11, 15, 0), + gsSP2Triangles(19, 17, 15, 0, 16, 15, 28, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DEC0_C0B740)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024DD60_C0B5E0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DEF8_dgb_01)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img4_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C28BB0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 0, 0, 4, 0, 3, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), + gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(12, 15, 16, 0, 12, 16, 17, 0), + gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), + gsSP2Triangles(18, 21, 22, 0, 18, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(26, 28, 29, 0, 26, 29, 27, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024DFA0_C0B820)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C28A70, 20, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E020_C0B8A0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C28970, 16, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 3, 4, 0, 2, 5, 6, 0), + gsSP2Triangles(2, 1, 5, 0, 1, 7, 5, 0), + gsSP2Triangles(8, 9, 10, 0, 9, 8, 11, 0), + gsSP2Triangles(9, 11, 12, 0, 9, 12, 13, 0), + gsSP2Triangles(9, 14, 10, 0, 15, 8, 10, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E0A8_C0B928)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C28890, 14, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(5, 8, 9, 0, 5, 9, 10, 0), + gsSP2Triangles(11, 12, 6, 0, 11, 6, 13, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E120_C0B9A0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C287A0, 15, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), + gsSP2Triangles(8, 4, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 11, 0, 12, 11, 14, 0), + gsSP2Triangles(12, 6, 9, 0, 12, 9, 13, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E1A8_C0BA28)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27D60, 31, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 2, 0, 1, 5, 6, 0), + gsSP2Triangles(1, 6, 4, 0, 7, 8, 9, 0), + gsSP2Triangles(8, 10, 9, 0, 10, 11, 9, 0), + gsSP2Triangles(5, 12, 13, 0, 5, 13, 6, 0), + gsSP2Triangles(5, 14, 12, 0, 15, 16, 17, 0), + gsSP2Triangles(15, 17, 18, 0, 19, 20, 17, 0), + gsSP2Triangles(17, 21, 18, 0, 22, 23, 18, 0), + gsSP2Triangles(24, 25, 26, 0, 26, 27, 28, 0), + gsSP2Triangles(29, 30, 26, 0, 29, 26, 28, 0), + gsSPVertex(vtx_C27F20, 13, 0), + gsSPVertex(vtx_C281E0, 19, 13), + gsSP2Triangles(3, 13, 0, 0, 4, 14, 15, 0), + gsSP2Triangles(5, 4, 16, 0, 4, 17, 18, 0), + gsSP2Triangles(4, 18, 16, 0, 4, 5, 14, 0), + gsSP2Triangles(6, 5, 16, 0, 6, 16, 19, 0), + gsSP2Triangles(5, 20, 21, 0, 5, 21, 22, 0), + gsSP2Triangles(5, 22, 14, 0, 1, 7, 23, 0), + gsSP2Triangles(1, 23, 8, 0, 2, 1, 8, 0), + gsSP2Triangles(2, 8, 24, 0, 2, 24, 25, 0), + gsSP2Triangles(9, 26, 27, 0, 9, 10, 26, 0), + gsSP2Triangles(10, 28, 26, 0, 11, 29, 12, 0), + gsSP2Triangles(11, 12, 30, 0, 12, 31, 30, 0), + gsSPVertex(vtx_C27FC0, 1, 0), + gsSPVertex(vtx_C27FE0, 10, 1), + gsSPVertex(vtx_C282D0, 1, 11), + gsSPVertex(vtx_C282F0, 1, 12), + gsSPVertex(vtx_C28310, 17, 13), + gsSP2Triangles(3, 15, 12, 0, 2, 13, 1, 0), + gsSP2Triangles(4, 16, 17, 0, 4, 17, 18, 0), + gsSP2Triangles(5, 19, 20, 0, 5, 20, 21, 0), + gsSP2Triangles(6, 22, 23, 0, 6, 23, 24, 0), + gsSP2Triangles(0, 7, 14, 0, 0, 14, 11, 0), + gsSP2Triangles(7, 25, 26, 0, 7, 26, 14, 0), + gsSP2Triangles(7, 27, 25, 0, 8, 9, 28, 0), + gsSP2Triangles(9, 10, 28, 0, 10, 29, 28, 0), + gsSPVertex(vtx_C28080, 10, 0), + gsSPVertex(vtx_C28190, 1, 10), + gsSPVertex(vtx_C28420, 21, 11), + gsSP2Triangles(0, 2, 1, 0, 0, 1, 11, 0), + gsSP2Triangles(0, 11, 12, 0, 1, 2, 13, 0), + gsSP2Triangles(1, 13, 14, 0, 2, 15, 13, 0), + gsSP2Triangles(3, 16, 17, 0, 3, 4, 18, 0), + gsSP2Triangles(3, 18, 19, 0, 3, 19, 20, 0), + gsSP2Triangles(4, 3, 17, 0, 5, 4, 17, 0), + gsSP2Triangles(6, 21, 22, 0, 6, 22, 23, 0), + gsSP2Triangles(7, 6, 23, 0, 6, 7, 10, 0), + gsSP2Triangles(6, 10, 24, 0, 7, 23, 25, 0), + gsSP2Triangles(7, 25, 26, 0, 8, 27, 28, 0), + gsSP1Triangle(8, 28, 29, 0), + gsSPVertex(vtx_C28110, 10, 0), + gsSPVertex(vtx_C284F0, 1, 10), + gsSPVertex(vtx_C28550, 20, 11), + gsSP2Triangles(0, 11, 12, 0, 0, 12, 13, 0), + gsSP2Triangles(1, 15, 16, 0, 1, 16, 17, 0), + gsSP2Triangles(2, 1, 17, 0, 2, 17, 18, 0), + gsSP2Triangles(3, 19, 20, 0, 3, 20, 21, 0), + gsSP2Triangles(4, 3, 21, 0, 4, 21, 22, 0), + gsSP2Triangles(5, 23, 24, 0, 5, 24, 25, 0), + gsSP2Triangles(6, 26, 27, 0, 6, 27, 28, 0), + gsSP2Triangles(7, 29, 10, 0, 8, 14, 10, 0), + gsSP1Triangle(9, 30, 8, 0), + gsSPVertex(vtx_C281B0, 3, 0), + gsSPVertex(vtx_C28690, 9, 3), + gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), + gsSP2Triangles(1, 0, 5, 0, 0, 6, 7, 0), + gsSP2Triangles(0, 1, 6, 0, 1, 8, 9, 0), + gsSP2Triangles(1, 9, 6, 0, 2, 1, 5, 0), + gsSP2Triangles(2, 5, 10, 0, 1, 11, 8, 0), + gsSPVertex(vtx_C28720, 8, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(4, 5, 6, 0, 5, 7, 6, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E440_C0BCC0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024E1A8_C0BA28)), + gsSPDisplayList(N(D_8024E120_C0B9A0)), + gsSPDisplayList(N(D_8024E0A8_C0B928)), + gsSPDisplayList(N(D_8024E020_C0B8A0)), + gsSPDisplayList(N(D_8024DFA0_C0B820)), + gsSPDisplayList(N(D_8024DEF8_dgb_01)), + gsSPDisplayList(N(D_8024DEC0_C0B740)), + gsSPDisplayList(N(D_8024DD28_C0B5A8)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E4A0_C0BD20)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802537E0_C11060), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024E440_C0BCC0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E4D8_C0BD58)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27B80, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 0, 3, 0), + gsSP2Triangles(1, 4, 2, 0, 3, 5, 1, 0), + gsSP2Triangles(5, 6, 1, 0, 6, 7, 1, 0), + gsSP2Triangles(1, 7, 8, 0, 4, 1, 8, 0), + gsSP2Triangles(9, 2, 10, 0, 2, 4, 10, 0), + gsSP2Triangles(4, 8, 10, 0, 11, 10, 12, 0), + gsSP2Triangles(10, 13, 12, 0, 9, 10, 14, 0), + gsSP2Triangles(11, 14, 10, 0, 13, 10, 8, 0), + gsSP2Triangles(15, 16, 17, 0, 17, 18, 15, 0), + gsSP2Triangles(18, 19, 15, 0, 19, 20, 15, 0), + gsSP2Triangles(15, 20, 21, 0, 22, 15, 21, 0), + gsSP2Triangles(15, 22, 23, 0, 16, 15, 23, 0), + gsSP2Triangles(24, 25, 21, 0, 25, 24, 26, 0), + gsSP2Triangles(22, 21, 25, 0, 27, 28, 25, 0), + gsSP2Triangles(29, 23, 25, 0, 23, 22, 25, 0), + gsSP2Triangles(29, 25, 28, 0, 27, 25, 26, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E5B0_C0BE30)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27880, 31, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(2, 1, 4, 0, 2, 4, 5, 0), + gsSP2Triangles(5, 4, 6, 0, 5, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(13, 16, 17, 0, 13, 17, 14, 0), + gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), + gsSP2Triangles(16, 22, 23, 0, 16, 23, 24, 0), + gsSP2Triangles(16, 24, 17, 0, 22, 25, 26, 0), + gsSP2Triangles(27, 28, 29, 0, 27, 29, 30, 0), + gsSPVertex(vtx_C27A40, 2, 0), + gsSPVertex(vtx_C27A70, 17, 2), + gsSP2Triangles(0, 2, 8, 0, 0, 8, 1, 0), + gsSP2Triangles(2, 9, 10, 0, 2, 10, 11, 0), + gsSP2Triangles(2, 11, 8, 0, 3, 11, 12, 0), + gsSP2Triangles(4, 13, 14, 0, 4, 14, 5, 0), + gsSP2Triangles(5, 14, 15, 0, 5, 15, 16, 0), + gsSP2Triangles(6, 17, 13, 0, 6, 13, 4, 0), + gsSP2Triangles(7, 18, 17, 0, 7, 17, 6, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E6A0_C0BF20)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802537A0_C11020), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024E5B0_C0BE30)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E6D8_C0BF58)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27580, 31, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 1, 0, 4, 1, 0, 0), + gsSP2Triangles(3, 2, 6, 0, 3, 6, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(13, 16, 17, 0, 13, 17, 14, 0), + gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), + gsSP2Triangles(22, 23, 24, 0, 16, 25, 26, 0), + gsSP2Triangles(16, 26, 23, 0, 16, 23, 17, 0), + gsSP2Triangles(27, 28, 29, 0, 27, 29, 30, 0), + gsSPVertex(vtx_C27740, 2, 0), + gsSPVertex(vtx_C27770, 17, 2), + gsSP2Triangles(0, 2, 8, 0, 0, 8, 1, 0), + gsSP2Triangles(2, 3, 9, 0, 2, 9, 10, 0), + gsSP2Triangles(2, 10, 8, 0, 3, 11, 12, 0), + gsSP2Triangles(4, 13, 14, 0, 4, 14, 5, 0), + gsSP2Triangles(5, 14, 15, 0, 5, 15, 6, 0), + gsSP2Triangles(6, 15, 16, 0, 6, 16, 7, 0), + gsSP2Triangles(7, 16, 17, 0, 7, 17, 18, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E7C8_C0C048)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253760_C10FE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024E6D8_C0BF58)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E800_C0C080)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img4_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27460, 18, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), + gsSP2Triangles(6, 10, 11, 0, 6, 11, 7, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(14, 16, 17, 0, 14, 17, 15, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E888_C0C108)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024E800_C0C080)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E8C0_C0C140)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C273A0, 12, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E930_C0C1B0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024E8C0_C0C140)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E968_C0C1E8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27300, 10, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), + gsSP2Triangles(6, 8, 7, 0, 9, 5, 7, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024E9D8_C0C258)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27220, 14, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 3, 5, 0, 4, 5, 6, 0), + gsSP2Triangles(3, 2, 7, 0, 3, 7, 5, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 7, 0), + gsSP2Triangles(10, 11, 4, 0, 10, 4, 6, 0), + gsSP2Triangles(11, 12, 13, 0, 11, 13, 4, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EA60_C0C2E0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C27180, 10, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 3, 5, 0, 4, 5, 6, 0), + gsSP2Triangles(7, 4, 8, 0, 7, 8, 9, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EAD0_C0C350)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C26CC0, 31, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(1, 6, 4, 0, 7, 8, 9, 0), + gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), + gsSP2Triangles(8, 12, 10, 0, 7, 9, 13, 0), + gsSP2Triangles(14, 15, 16, 0, 17, 18, 14, 0), + gsSP2Triangles(19, 20, 14, 0, 19, 14, 16, 0), + gsSP2Triangles(21, 22, 16, 0, 23, 24, 25, 0), + gsSP2Triangles(23, 25, 26, 0, 27, 28, 29, 0), + gsSP1Triangle(27, 29, 30, 0), + gsSPVertex(vtx_C26EB0, 9, 0), + gsSPVertex(vtx_C26FB0, 22, 9), + gsSP2Triangles(0, 9, 10, 0, 0, 10, 11, 0), + gsSP2Triangles(1, 12, 13, 0, 1, 13, 14, 0), + gsSP2Triangles(2, 15, 16, 0, 2, 3, 15, 0), + gsSP2Triangles(3, 17, 15, 0, 4, 18, 19, 0), + gsSP2Triangles(4, 19, 20, 0, 5, 6, 21, 0), + gsSP2Triangles(5, 21, 22, 0, 6, 23, 24, 0), + gsSP2Triangles(6, 24, 25, 0, 7, 26, 27, 0), + gsSP2Triangles(7, 27, 28, 0, 8, 29, 30, 0), + gsSP1Triangle(8, 30, 27, 0), + gsSPVertex(vtx_C26F40, 7, 0), + gsSPVertex(vtx_C27110, 7, 7), + gsSP2Triangles(0, 7, 2, 0, 0, 2, 8, 0), + gsSP2Triangles(1, 9, 2, 0, 2, 10, 8, 0), + gsSP2Triangles(3, 11, 8, 0, 4, 5, 12, 0), + gsSP2Triangles(5, 6, 12, 0, 6, 13, 12, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EC00_C0C480)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024EAD0_C0C350)), + gsSPDisplayList(N(D_8024EA60_C0C2E0)), + gsSPDisplayList(N(D_8024E9D8_C0C258)), + gsSPDisplayList(N(D_8024E968_C0C1E8)), + gsSPDisplayList(N(D_8024E930_C0C1B0)), + gsSPDisplayList(N(D_8024E888_C0C108)), + gsSPDisplayList(N(D_8024E7C8_C0C048)), + gsSPDisplayList(N(D_8024E6A0_C0BF20)), + gsSPDisplayList(N(D_8024E4D8_C0BD58)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EC68_C0C4E8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024EC00_C0C480)), + gsSPDisplayList(N(D_8024E4A0_C0BD20)), + gsSPDisplayList(N(D_8024DC18_C0B498)), + gsSPDisplayList(N(D_8024CFF8_C0A878)), + gsSPDisplayList(N(D_8024C638_C09EB8)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024ECB0_C0C530)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C26890, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 0, 5, 0, 4, 5, 6, 0), + gsSP2Triangles(0, 3, 5, 0, 7, 8, 9, 0), + gsSP2Triangles(7, 9, 3, 0, 7, 3, 2, 0), + gsSP2Triangles(10, 3, 9, 0, 10, 9, 11, 0), + gsSP2Triangles(10, 11, 12, 0, 3, 10, 13, 0), + gsSP2Triangles(3, 13, 14, 0, 5, 3, 14, 0), + gsSP2Triangles(15, 5, 14, 0, 15, 14, 16, 0), + gsSP2Triangles(17, 18, 19, 0, 17, 19, 20, 0), + gsSP2Triangles(19, 21, 20, 0, 19, 22, 23, 0), + gsSP2Triangles(19, 23, 21, 0, 20, 21, 24, 0), + gsSP2Triangles(21, 25, 26, 0, 21, 26, 24, 0), + gsSP2Triangles(20, 24, 27, 0, 20, 27, 28, 0), + gsSPVertex(vtx_C26A60, 8, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 3, 4, 0, 4, 3, 5, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSPVertex(vtx_C26AE0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), + gsSP2Triangles(4, 5, 3, 0, 6, 4, 3, 0), + gsSP2Triangles(5, 1, 3, 0, 1, 7, 8, 0), + gsSP2Triangles(9, 2, 1, 0, 9, 1, 8, 0), + gsSP2Triangles(5, 10, 1, 0, 10, 7, 1, 0), + gsSP2Triangles(5, 4, 10, 0, 11, 10, 4, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(14, 13, 16, 0, 14, 17, 15, 0), + gsSP2Triangles(14, 18, 19, 0, 17, 14, 19, 0), + gsSP2Triangles(14, 16, 20, 0, 18, 14, 20, 0), + gsSP2Triangles(21, 16, 22, 0, 16, 21, 20, 0), + gsSP2Triangles(18, 20, 21, 0, 21, 23, 24, 0), + gsSP2Triangles(21, 25, 23, 0, 21, 26, 25, 0), + gsSP2Triangles(26, 21, 22, 0, 18, 21, 24, 0), + gsSP2Triangles(11, 4, 27, 0, 28, 29, 4, 0), + gsSP2Triangles(6, 28, 4, 0, 29, 27, 4, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EE18_C0C698)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C26750, 20, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EE98_C0C718)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024EE18_C0C698)), + gsSPDisplayList(N(D_8024ECB0_C0C530)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EEC8_C0C748)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802536E0_C10F60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024EE98_C0C718)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EF00_C0C780)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26710, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EF60_C0C7E0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802536A0_C10F20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024EF00_C0C780)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EF98_C0C818)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C266D0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024EFF8_C0C878)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253660_C10EE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024EF98_C0C818)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F030_C0C8B0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26690, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F090_C0C910)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253620_C10EA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F030_C0C8B0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F0C8_C0C948)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26650, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F128_C0C9A8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802535E0_C10E60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F0C8_C0C948)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F160_C0C9E0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26610, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F1C0_C0CA40)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802535A0_C10E20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F160_C0C9E0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F1F8_C0CA78)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C265D0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F258_C0CAD8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253560_C10DE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F1F8_C0CA78)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F290_C0CB10)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26590, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F2F0_C0CB70)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253520_C10DA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F290_C0CB10)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F328_C0CBA8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26550, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F388_C0CC08)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802534E0_C10D60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F328_C0CBA8)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F3C0_C0CC40)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26510, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F420_C0CCA0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802534A0_C10D20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F3C0_C0CC40)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F458_C0CCD8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024F420_C0CCA0)), + gsSPDisplayList(N(D_8024F388_C0CC08)), + gsSPDisplayList(N(D_8024F2F0_C0CB70)), + gsSPDisplayList(N(D_8024F258_C0CAD8)), + gsSPDisplayList(N(D_8024F1C0_C0CA40)), + gsSPDisplayList(N(D_8024F128_C0C9A8)), + gsSPDisplayList(N(D_8024F090_C0C910)), + gsSPDisplayList(N(D_8024EFF8_C0C878)), + gsSPDisplayList(N(D_8024EF60_C0C7E0)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F4C0_C0CD40)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C264D0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F520_C0CDA0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253460_C10CE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F4C0_C0CD40)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F558_C0CDD8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26490, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F5B8_C0CE38)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253420_C10CA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F558_C0CDD8)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F5F0_C0CE70)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26450, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F650_C0CED0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802533E0_C10C60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F5F0_C0CE70)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F688_C0CF08)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26410, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F6E8_C0CF68)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802533A0_C10C20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F688_C0CF08)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F720_C0CFA0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C263D0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F780_C0D000)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253360_C10BE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F720_C0CFA0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F7B8_C0D038)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26390, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F818_C0D098)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253320_C10BA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F7B8_C0D038)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F850_C0D0D0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26350, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F8B0_C0D130)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802532E0_C10B60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F850_C0D0D0)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F8E8_C0D168)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26310, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F948_C0D1C8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802532A0_C10B20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F8E8_C0D168)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F980_C0D200)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C262D0, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024F9E0_C0D260)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253260_C10AE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024F980_C0D200)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FA18_C0D298)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26290, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FA78_C0D2F8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253220_C10AA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024FA18_C0D298)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FAB0_C0D330)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C26250, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FB10_C0D390)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802531E0_C10A60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_8024FAB0_C0D330)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FB48_C0D3C8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024FB10_C0D390)), + gsSPDisplayList(N(D_8024FA78_C0D2F8)), + gsSPDisplayList(N(D_8024F9E0_C0D260)), + gsSPDisplayList(N(D_8024F948_C0D1C8)), + gsSPDisplayList(N(D_8024F8B0_C0D130)), + gsSPDisplayList(N(D_8024F818_C0D098)), + gsSPDisplayList(N(D_8024F780_C0D000)), + gsSPDisplayList(N(D_8024F6E8_C0CF68)), + gsSPDisplayList(N(D_8024F650_C0CED0)), + gsSPDisplayList(N(D_8024F5B8_C0CE38)), + gsSPDisplayList(N(D_8024F520_C0CDA0)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FBC0_C0D440)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C26130, 18, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), + gsSP2Triangles(7, 10, 11, 0, 7, 11, 8, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(13, 16, 17, 0, 13, 17, 14, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FC48_C0D4C8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C25950, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), + gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), + gsSP2Triangles(5, 8, 9, 0, 5, 9, 6, 0), + gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), + gsSP2Triangles(10, 12, 13, 0, 10, 13, 11, 0), + gsSP2Triangles(3, 14, 15, 0, 3, 15, 4, 0), + gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), + gsSP2Triangles(17, 20, 21, 0, 17, 21, 18, 0), + gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(28, 24, 27, 0, 28, 27, 29, 0), + gsSPVertex(vtx_C25A30, 2, 0), + gsSPVertex(vtx_C25B30, 11, 2), + gsSPVertex(vtx_C25C00, 1, 13), + gsSPVertex(vtx_C25DA0, 17, 14), + gsSP2Triangles(0, 2, 14, 0, 0, 14, 1, 0), + gsSP2Triangles(3, 4, 15, 0, 3, 15, 16, 0), + gsSP2Triangles(4, 12, 17, 0, 4, 17, 15, 0), + gsSP2Triangles(5, 18, 19, 0, 5, 19, 20, 0), + gsSP2Triangles(6, 5, 20, 0, 6, 20, 21, 0), + gsSP2Triangles(7, 22, 23, 0, 7, 23, 24, 0), + gsSP2Triangles(8, 7, 24, 0, 8, 24, 25, 0), + gsSP2Triangles(9, 8, 25, 0, 9, 25, 26, 0), + gsSP2Triangles(9, 26, 27, 0, 10, 11, 28, 0), + gsSP2Triangles(10, 28, 29, 0, 11, 13, 30, 0), + gsSP1Triangle(11, 30, 28, 0), + gsSPVertex(vtx_C25AB0, 2, 0), + gsSPVertex(vtx_C25BD0, 13, 2), + gsSPVertex(vtx_C25DD0, 1, 15), + gsSPVertex(vtx_C25EA0, 16, 16), + gsSP2Triangles(2, 3, 17, 0, 2, 17, 15, 0), + gsSP2Triangles(3, 18, 17, 0, 4, 19, 20, 0), + gsSP2Triangles(5, 4, 20, 0, 5, 20, 16, 0), + gsSP2Triangles(0, 6, 1, 0, 7, 8, 21, 0), + gsSP2Triangles(7, 21, 22, 0, 8, 23, 21, 0), + gsSP2Triangles(9, 24, 25, 0, 10, 9, 25, 0), + gsSP2Triangles(10, 25, 26, 0, 11, 10, 26, 0), + gsSP2Triangles(11, 26, 27, 0, 12, 11, 27, 0), + gsSP2Triangles(12, 27, 28, 0, 13, 29, 30, 0), + gsSP1Triangle(13, 30, 31, 0), + gsSPVertex(vtx_C25C20, 1, 0), + gsSPVertex(vtx_C25C80, 12, 1), + gsSPVertex(vtx_C25F00, 1, 13), + gsSPVertex(vtx_C25F90, 17, 14), + gsSP2Triangles(2, 1, 14, 0, 2, 14, 15, 0), + gsSP2Triangles(3, 0, 13, 0, 3, 13, 16, 0), + gsSP2Triangles(4, 5, 17, 0, 4, 17, 18, 0), + gsSP2Triangles(4, 18, 19, 0, 5, 6, 20, 0), + gsSP2Triangles(5, 20, 17, 0, 6, 21, 22, 0), + gsSP2Triangles(6, 22, 20, 0, 7, 3, 16, 0), + gsSP2Triangles(7, 16, 23, 0, 8, 9, 24, 0), + gsSP2Triangles(8, 24, 25, 0, 9, 26, 27, 0), + gsSP2Triangles(9, 27, 24, 0, 10, 11, 28, 0), + gsSP2Triangles(10, 28, 29, 0, 11, 12, 30, 0), + gsSP1Triangle(11, 30, 28, 0), + gsSPVertex(vtx_C25CF0, 1, 0), + gsSPVertex(vtx_C25D30, 7, 1), + gsSPVertex(vtx_C26040, 1, 8), + gsSPVertex(vtx_C26090, 10, 9), + gsSP2Triangles(1, 2, 10, 0, 1, 10, 9, 0), + gsSP2Triangles(2, 11, 10, 0, 3, 0, 8, 0), + gsSP2Triangles(3, 8, 12, 0, 4, 13, 14, 0), + gsSP2Triangles(4, 14, 15, 0, 5, 4, 15, 0), + gsSP2Triangles(5, 15, 16, 0, 6, 5, 16, 0), + gsSP2Triangles(6, 16, 17, 0, 6, 17, 18, 0), + gsSP1Triangle(7, 3, 12, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FEB0_C0D730)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024FC48_C0D4C8)), + gsSPDisplayList(N(D_8024FBC0_C0D440)), + gsSPEndDisplayList(), +}; + +Gfx N(D_8024FEE0_C0D760)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), + gsSPSetGeometryMode(G_CULL_BACK), + gsSPVertex(vtx_C25350, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(6, 8, 7, 0, 9, 10, 11, 0), + gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), + gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), + gsSP2Triangles(15, 17, 18, 0, 15, 18, 19, 0), + gsSP2Triangles(16, 20, 21, 0, 16, 21, 17, 0), + gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), + gsSP2Triangles(24, 25, 26, 0, 27, 24, 26, 0), + gsSP1Triangle(27, 26, 28, 0), + gsSPVertex(vtx_C25500, 17, 0), + gsSPVertex(vtx_C25710, 14, 17), + gsSP2Triangles(2, 3, 4, 0, 2, 4, 5, 0), + gsSP2Triangles(6, 2, 5, 0, 6, 5, 7, 0), + gsSP2Triangles(8, 6, 7, 0, 8, 7, 17, 0), + gsSP2Triangles(8, 17, 18, 0, 9, 10, 19, 0), + gsSP2Triangles(9, 19, 20, 0, 10, 21, 22, 0), + gsSP2Triangles(10, 22, 19, 0, 11, 0, 1, 0), + gsSP2Triangles(11, 1, 23, 0, 12, 11, 23, 0), + gsSP2Triangles(12, 23, 24, 0, 13, 14, 25, 0), + gsSP2Triangles(13, 25, 26, 0, 14, 27, 28, 0), + gsSP2Triangles(14, 28, 25, 0, 15, 16, 29, 0), + gsSP1Triangle(15, 29, 30, 0), + gsSPVertex(vtx_C25600, 13, 0), + gsSPVertex(vtx_C257D0, 1, 13), + gsSPVertex(vtx_C257F0, 17, 14), + gsSP2Triangles(0, 1, 14, 0, 0, 14, 13, 0), + gsSP2Triangles(1, 2, 15, 0, 1, 15, 14, 0), + gsSP2Triangles(2, 16, 15, 0, 3, 4, 17, 0), + gsSP2Triangles(4, 5, 18, 0, 4, 18, 17, 0), + gsSP2Triangles(5, 6, 19, 0, 5, 19, 18, 0), + gsSP2Triangles(6, 20, 21, 0, 6, 21, 19, 0), + gsSP2Triangles(7, 22, 23, 0, 7, 23, 24, 0), + gsSP2Triangles(8, 7, 24, 0, 8, 24, 25, 0), + gsSP2Triangles(9, 8, 25, 0, 9, 25, 26, 0), + gsSP2Triangles(10, 9, 26, 0, 11, 12, 27, 0), + gsSP2Triangles(11, 27, 28, 0, 12, 29, 30, 0), + gsSP1Triangle(12, 30, 27, 0), + gsSPVertex(vtx_C256D0, 4, 0), + gsSPVertex(vtx_C25900, 5, 4), + gsSP2Triangles(0, 1, 4, 0, 0, 4, 5, 0), + gsSP2Triangles(1, 6, 4, 0, 2, 0, 5, 0), + gsSP2Triangles(2, 5, 7, 0, 3, 2, 7, 0), + gsSP1Triangle(3, 7, 8, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_802500A0_C0D920)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_8024FEE0_C0D760)), + gsSPEndDisplayList(), +}; + +Gfx N(D_802500C8_C0D948)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_802500A0_C0D920)), + gsSPDisplayList(N(D_8024FEB0_C0D730)), + gsSPDisplayList(N(D_8024FB48_C0D3C8)), + gsSPDisplayList(N(D_8024F458_C0CCD8)), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250108_C0D988)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C25310, 4, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250168_C0D9E8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C25050, 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(vtx_C25250, 12, 0), + gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), + gsSP2Triangles(1, 6, 7, 0, 1, 7, 8, 0), + gsSP2Triangles(2, 9, 10, 0, 2, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250220_C0DAA0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C24FB0, 10, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(1, 4, 3, 0, 5, 6, 7, 0), + gsSP2Triangles(5, 7, 8, 0, 5, 8, 9, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250290_C0DB10)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C24F30, 8, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_802502F8_C0DB78)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C24EB0, 8, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250360_C0DBE0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C24350, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), + gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), + gsSP2Triangles(7, 8, 9, 0, 5, 7, 10, 0), + gsSP2Triangles(5, 10, 11, 0, 5, 12, 13, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), + gsSP2Triangles(14, 18, 19, 0, 14, 20, 17, 0), + gsSP2Triangles(17, 21, 22, 0, 3, 23, 4, 0), + gsSP2Triangles(23, 24, 4, 0, 23, 25, 26, 0), + gsSP2Triangles(23, 26, 24, 0, 26, 27, 24, 0), + gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), + gsSPVertex(vtx_C24510, 1, 0), + gsSPVertex(vtx_C24540, 12, 1), + gsSPVertex(vtx_C24730, 17, 13), + gsSP2Triangles(0, 1, 2, 0, 3, 13, 14, 0), + gsSP2Triangles(4, 15, 3, 0, 4, 3, 14, 0), + gsSP2Triangles(4, 14, 16, 0, 5, 17, 18, 0), + gsSP2Triangles(6, 19, 20, 0, 7, 21, 22, 0), + gsSP2Triangles(8, 23, 24, 0, 9, 4, 16, 0), + gsSP2Triangles(10, 11, 25, 0, 11, 9, 16, 0), + gsSP2Triangles(11, 16, 25, 0, 12, 26, 27, 0), + gsSP2Triangles(12, 28, 26, 0, 12, 29, 28, 0), + gsSPVertex(vtx_C24600, 10, 0), + gsSPVertex(vtx_C24840, 20, 10), + gsSP2Triangles(0, 10, 11, 0, 0, 12, 10, 0), + gsSP2Triangles(0, 13, 12, 0, 1, 14, 2, 0), + gsSP2Triangles(1, 2, 15, 0, 1, 15, 16, 0), + gsSP2Triangles(1, 17, 18, 0, 2, 19, 20, 0), + gsSP2Triangles(3, 21, 22, 0, 4, 23, 3, 0), + gsSP2Triangles(4, 3, 22, 0, 4, 22, 24, 0), + gsSP2Triangles(5, 4, 24, 0, 6, 7, 25, 0), + gsSP2Triangles(7, 26, 25, 0, 7, 27, 26, 0), + gsSP2Triangles(8, 9, 28, 0, 8, 28, 29, 0), + gsSPVertex(vtx_C24690, 10, 0), + gsSPVertex(vtx_C24960, 1, 10), + gsSPVertex(vtx_C24980, 21, 11), + gsSP2Triangles(0, 11, 12, 0, 0, 12, 10, 0), + gsSP2Triangles(1, 13, 14, 0, 1, 14, 15, 0), + gsSP2Triangles(2, 16, 17, 0, 2, 17, 18, 0), + gsSP2Triangles(3, 19, 20, 0, 3, 20, 21, 0), + gsSP2Triangles(4, 3, 21, 0, 4, 21, 22, 0), + gsSP2Triangles(5, 6, 23, 0, 6, 24, 7, 0), + gsSP2Triangles(6, 7, 25, 0, 6, 25, 23, 0), + gsSP2Triangles(7, 26, 25, 0, 8, 27, 28, 0), + gsSP2Triangles(8, 9, 29, 0, 8, 29, 30, 0), + gsSP1Triangle(8, 31, 9, 0), + gsSPVertex(vtx_C24720, 1, 0), + gsSPVertex(vtx_C24AD0, 2, 1), + gsSP1Triangle(0, 1, 2, 0), + gsSPVertex(vtx_C24AF0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 4, 2, 0), + gsSP2Triangles(5, 6, 2, 0, 2, 7, 0, 0), + gsSP2Triangles(3, 2, 1, 0, 2, 6, 8, 0), + gsSP2Triangles(2, 8, 7, 0, 5, 2, 4, 0), + gsSP2Triangles(9, 3, 10, 0, 9, 4, 3, 0), + gsSP2Triangles(11, 9, 10, 0, 9, 11, 12, 0), + gsSP2Triangles(13, 14, 9, 0, 13, 9, 12, 0), + gsSP2Triangles(9, 5, 4, 0, 5, 9, 14, 0), + gsSP2Triangles(15, 16, 17, 0, 15, 18, 19, 0), + gsSP2Triangles(15, 19, 16, 0, 20, 15, 17, 0), + gsSP2Triangles(15, 20, 21, 0, 18, 15, 22, 0), + gsSP2Triangles(23, 22, 15, 0, 23, 15, 21, 0), + gsSP2Triangles(16, 24, 25, 0, 16, 19, 24, 0), + gsSP2Triangles(18, 26, 24, 0, 18, 24, 19, 0), + gsSP2Triangles(24, 26, 27, 0, 24, 27, 28, 0), + gsSP2Triangles(24, 28, 29, 0, 29, 25, 24, 0), + gsSPVertex(vtx_C24CD0, 30, 0), + gsSP2Triangles(0, 2, 14, 0, 1, 14, 2, 0), + gsSP2Triangles(1, 2, 15, 0, 2, 0, 16, 0), + gsSP2Triangles(2, 3, 15, 0, 3, 2, 17, 0), + gsSP2Triangles(2, 4, 17, 0, 2, 16, 4, 0), + gsSP2Triangles(0, 5, 16, 0, 4, 16, 5, 0), + gsSP2Triangles(4, 5, 18, 0, 0, 19, 5, 0), + gsSP2Triangles(5, 19, 20, 0, 6, 18, 5, 0), + gsSP2Triangles(5, 21, 6, 0, 5, 20, 21, 0), + gsSP2Triangles(7, 22, 8, 0, 8, 23, 24, 0), + gsSP2Triangles(8, 24, 9, 0, 9, 25, 8, 0), + gsSP2Triangles(10, 8, 25, 0, 10, 26, 8, 0), + gsSP2Triangles(7, 8, 26, 0, 8, 22, 23, 0), + gsSP2Triangles(11, 7, 26, 0, 12, 11, 27, 0), + gsSP2Triangles(11, 26, 10, 0, 11, 10, 28, 0), + gsSP2Triangles(13, 11, 28, 0, 11, 13, 27, 0), + gsSP2Triangles(7, 11, 29, 0, 12, 29, 11, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250648_C0DEC8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_80250360_C0DBE0)), + gsSPDisplayList(N(D_802502F8_C0DB78)), + gsSPDisplayList(N(D_80250290_C0DB10)), + gsSPDisplayList(N(D_80250220_C0DAA0)), + gsSPDisplayList(N(D_80250168_C0D9E8)), + gsSPDisplayList(N(D_80250108_C0D988)), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250698_C0DF18)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img5_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C241D0, 24, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250720_C0DFA0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C240D0, 16, 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), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250798_C0E018)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C23FD0, 16, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 3, 4, 0, 5, 6, 2, 0), + gsSP2Triangles(5, 2, 1, 0, 5, 1, 7, 0), + gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), + gsSP2Triangles(8, 11, 12, 0, 12, 11, 13, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250820_C0E0A0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C23F10, 12, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 4, 0), + gsSP2Triangles(9, 10, 8, 0, 9, 8, 11, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250898_C0E118)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C23E50, 12, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(5, 6, 7, 0, 5, 7, 8, 0), + gsSP2Triangles(9, 6, 10, 0, 9, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250910_C0E190)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C230A0, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(2, 4, 3, 0, 2, 5, 6, 0), + gsSP2Triangles(2, 6, 4, 0, 4, 7, 8, 0), + gsSP2Triangles(4, 8, 9, 0, 3, 4, 9, 0), + gsSP2Triangles(10, 11, 12, 0, 10, 12, 13, 0), + gsSP2Triangles(11, 14, 12, 0, 11, 15, 16, 0), + gsSP2Triangles(11, 16, 14, 0, 12, 14, 17, 0), + gsSP2Triangles(18, 12, 17, 0, 18, 17, 19, 0), + gsSP2Triangles(14, 20, 21, 0, 14, 21, 17, 0), + gsSP2Triangles(3, 9, 22, 0, 3, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(25, 28, 26, 0, 29, 28, 25, 0), + gsSP2Triangles(30, 29, 25, 0, 30, 25, 31, 0), + gsSPVertex(vtx_C23240, 1, 0), + gsSPVertex(vtx_C23260, 2, 1), + gsSPVertex(vtx_C232A0, 12, 3), + gsSPVertex(vtx_C234B0, 17, 15), + gsSP2Triangles(1, 3, 15, 0, 1, 15, 0, 0), + gsSP2Triangles(2, 4, 16, 0, 2, 16, 1, 0), + gsSP2Triangles(5, 17, 6, 0, 5, 6, 7, 0), + gsSP2Triangles(6, 18, 19, 0, 6, 19, 8, 0), + gsSP2Triangles(6, 8, 7, 0, 7, 8, 20, 0), + gsSP2Triangles(7, 20, 21, 0, 7, 21, 22, 0), + gsSP2Triangles(8, 23, 24, 0, 8, 24, 20, 0), + gsSP2Triangles(9, 14, 13, 0, 10, 9, 13, 0), + gsSP2Triangles(10, 13, 25, 0, 9, 26, 27, 0), + gsSP2Triangles(9, 27, 14, 0, 11, 28, 29, 0), + gsSP2Triangles(11, 29, 14, 0, 11, 14, 27, 0), + gsSP2Triangles(12, 14, 29, 0, 12, 29, 30, 0), + gsSP1Triangle(12, 30, 31, 0), + gsSPVertex(vtx_C23330, 13, 0), + gsSPVertex(vtx_C235C0, 19, 13), + gsSP2Triangles(1, 2, 13, 0, 2, 0, 14, 0), + gsSP2Triangles(2, 14, 13, 0, 3, 1, 13, 0), + gsSP2Triangles(3, 13, 15, 0, 4, 16, 17, 0), + gsSP2Triangles(4, 17, 18, 0, 4, 18, 5, 0), + gsSP2Triangles(5, 18, 19, 0, 5, 19, 20, 0), + gsSP2Triangles(5, 20, 21, 0, 6, 22, 7, 0), + gsSP2Triangles(6, 7, 8, 0, 7, 9, 8, 0), + gsSP2Triangles(7, 23, 24, 0, 7, 24, 9, 0), + gsSP2Triangles(8, 25, 26, 0, 8, 26, 27, 0), + gsSP2Triangles(8, 9, 25, 0, 9, 28, 29, 0), + gsSP2Triangles(9, 29, 25, 0, 10, 30, 12, 0), + gsSP1Triangle(10, 12, 31, 0), + gsSPVertex(vtx_C233D0, 12, 0), + gsSPVertex(vtx_C236E0, 20, 12), + gsSP2Triangles(2, 3, 14, 0, 2, 14, 15, 0), + gsSP2Triangles(1, 0, 12, 0, 1, 12, 13, 0), + gsSP2Triangles(3, 16, 17, 0, 3, 17, 14, 0), + gsSP2Triangles(4, 16, 18, 0, 4, 18, 19, 0), + gsSP2Triangles(5, 20, 21, 0, 5, 21, 22, 0), + gsSP2Triangles(6, 5, 22, 0, 6, 22, 23, 0), + gsSP2Triangles(7, 9, 24, 0, 7, 24, 20, 0), + gsSP2Triangles(8, 25, 26, 0, 8, 26, 27, 0), + gsSP2Triangles(9, 28, 26, 0, 9, 26, 24, 0), + gsSP2Triangles(10, 29, 30, 0, 10, 30, 31, 0), + gsSP1Triangle(10, 31, 11, 0), + gsSPVertex(vtx_C23480, 3, 0), + gsSPVertex(vtx_C23810, 10, 3), + gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), + gsSP2Triangles(0, 5, 6, 0, 1, 7, 8, 0), + gsSP2Triangles(1, 8, 9, 0, 1, 9, 10, 0), + gsSP2Triangles(2, 9, 8, 0, 2, 8, 11, 0), + gsSP1Triangle(2, 11, 12, 0), + gsSPVertex(vtx_C238B0, 31, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), + gsSP2Triangles(4, 1, 5, 0, 0, 6, 1, 0), + gsSP2Triangles(7, 1, 6, 0, 7, 5, 1, 0), + gsSP2Triangles(4, 8, 1, 0, 8, 3, 1, 0), + gsSP2Triangles(9, 10, 11, 0, 11, 12, 13, 0), + gsSP2Triangles(12, 11, 10, 0, 9, 11, 14, 0), + gsSP2Triangles(11, 15, 14, 0, 11, 16, 15, 0), + gsSP2Triangles(17, 11, 13, 0, 11, 17, 16, 0), + gsSP2Triangles(18, 4, 5, 0, 4, 18, 8, 0), + gsSP2Triangles(19, 18, 5, 0, 20, 8, 18, 0), + gsSP2Triangles(21, 22, 23, 0, 22, 21, 24, 0), + gsSP2Triangles(25, 21, 23, 0, 25, 26, 21, 0), + gsSP2Triangles(21, 9, 24, 0, 9, 21, 10, 0), + gsSP2Triangles(21, 12, 10, 0, 21, 26, 12, 0), + gsSP2Triangles(27, 28, 29, 0, 27, 30, 28, 0), + gsSPVertex(vtx_C239D0, 3, 0), + gsSPVertex(vtx_C23A70, 20, 3), + gsSPVertex(vtx_C23CE0, 8, 23), + gsSP2Triangles(6, 9, 3, 0, 7, 6, 3, 0), + gsSP2Triangles(7, 3, 23, 0, 8, 23, 3, 0), + gsSP2Triangles(8, 3, 5, 0, 3, 9, 4, 0), + gsSP2Triangles(7, 14, 6, 0, 10, 6, 14, 0), + gsSP2Triangles(10, 14, 24, 0, 11, 24, 14, 0), + gsSP2Triangles(12, 11, 14, 0, 13, 12, 14, 0), + gsSP2Triangles(13, 14, 23, 0, 14, 7, 23, 0), + gsSP2Triangles(1, 15, 0, 0, 15, 16, 0, 0), + gsSP2Triangles(16, 17, 0, 0, 2, 0, 17, 0), + gsSP2Triangles(18, 20, 25, 0, 18, 26, 20, 0), + gsSP2Triangles(18, 19, 26, 0, 19, 18, 27, 0), + gsSP2Triangles(20, 28, 25, 0, 20, 29, 28, 0), + gsSP2Triangles(20, 21, 29, 0, 21, 20, 30, 0), + gsSP2Triangles(20, 22, 30, 0, 22, 20, 26, 0), + gsSP1Triangle(19, 22, 26, 0), + gsSPVertex(vtx_C23B70, 1, 0), + gsSPVertex(vtx_C23BA0, 17, 1), + gsSPVertex(vtx_C23D20, 1, 18), + gsSPVertex(vtx_C23D60, 13, 19), + gsSP2Triangles(2, 5, 20, 0, 2, 3, 5, 0), + gsSP2Triangles(3, 7, 5, 0, 4, 8, 5, 0), + gsSP2Triangles(5, 6, 20, 0, 6, 5, 8, 0), + gsSP2Triangles(4, 5, 21, 0, 7, 21, 5, 0), + gsSP2Triangles(6, 8, 11, 0, 8, 22, 11, 0), + gsSP2Triangles(9, 11, 23, 0, 9, 20, 11, 0), + gsSP2Triangles(6, 11, 20, 0, 10, 23, 11, 0), + gsSP2Triangles(11, 22, 24, 0, 10, 11, 24, 0), + gsSP2Triangles(0, 12, 25, 0, 12, 0, 18, 0), + gsSP2Triangles(13, 0, 25, 0, 13, 19, 0, 0), + gsSP2Triangles(0, 19, 1, 0, 14, 15, 26, 0), + gsSP2Triangles(15, 17, 27, 0, 15, 28, 17, 0), + gsSP2Triangles(15, 14, 28, 0, 14, 16, 28, 0), + gsSP2Triangles(16, 17, 28, 0, 17, 16, 29, 0), + gsSP2Triangles(17, 30, 27, 0, 17, 31, 30, 0), + gsSPVertex(vtx_C23C70, 1, 0), + gsSPVertex(vtx_C23C90, 5, 1), + gsSPVertex(vtx_C23DD0, 1, 6), + gsSPVertex(vtx_C23E00, 1, 7), + gsSPVertex(vtx_C23E20, 3, 8), + gsSP2Triangles(0, 9, 1, 0, 3, 2, 7, 0), + gsSP2Triangles(4, 0, 10, 0, 4, 9, 0, 0), + gsSP2Triangles(0, 5, 10, 0, 5, 0, 6, 0), + gsSP1Triangle(2, 3, 8, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250D58_C0E5D8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_80250910_C0E190)), + gsSPDisplayList(N(D_80250898_C0E118)), + gsSPDisplayList(N(D_80250820_C0E0A0)), + gsSPDisplayList(N(D_80250798_C0E018)), + gsSPDisplayList(N(D_80250720_C0DFA0)), + gsSPDisplayList(N(D_80250698_C0DF18)), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250DA8_C0E628)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_802531A0_C10A20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_80250D58_C0E5D8)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250DE0_C0E660)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img4_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C22EC0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 4, 5, 0, 0, 5, 1, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), + gsSP2Triangles(10, 11, 6, 0, 10, 6, 9, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(12, 15, 16, 0, 12, 16, 17, 0), + gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), + gsSP2Triangles(18, 21, 22, 0, 18, 22, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), + gsSP2Triangles(26, 28, 29, 0, 26, 29, 27, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250E88_C0E708)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img3_gfx)), + gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), + gsSPSetGeometryMode(G_SHADING_SMOOTH), + gsSPVertex(vtx_C22C00, 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(vtx_C22E00, 12, 0), + gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), + gsSP2Triangles(1, 6, 7, 0, 1, 7, 8, 0), + gsSP2Triangles(2, 9, 10, 0, 2, 10, 11, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250F40_C0E7C0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C22B00, 16, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 3, 4, 0, 2, 5, 6, 0), + gsSP2Triangles(2, 1, 5, 0, 1, 7, 5, 0), + gsSP2Triangles(8, 9, 10, 0, 9, 8, 11, 0), + gsSP2Triangles(9, 11, 12, 0, 9, 12, 13, 0), + gsSP2Triangles(9, 14, 10, 0, 15, 8, 10, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80250FC8_C0E848)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C229F0, 17, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), + gsSP2Triangles(6, 8, 9, 0, 6, 9, 7, 0), + gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), + gsSP2Triangles(12, 4, 11, 0, 12, 11, 13, 0), + gsSP2Triangles(14, 15, 10, 0, 14, 10, 16, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251050_C0E8D0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C22950, 10, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(0, 4, 5, 0, 0, 5, 1, 0), + gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), + gsSP2Triangles(8, 6, 3, 0, 8, 3, 9, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_802510C8_C0E948)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C21930, 31, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), + gsSP2Triangles(3, 2, 4, 0, 0, 5, 6, 0), + gsSP2Triangles(0, 6, 7, 0, 0, 7, 8, 0), + gsSP2Triangles(1, 0, 8, 0, 1, 8, 9, 0), + gsSP2Triangles(10, 11, 12, 0, 10, 12, 13, 0), + gsSP2Triangles(11, 14, 12, 0, 11, 15, 16, 0), + gsSP2Triangles(11, 16, 17, 0, 11, 18, 15, 0), + gsSP2Triangles(14, 11, 17, 0, 14, 17, 19, 0), + gsSP2Triangles(14, 20, 21, 0, 14, 21, 12, 0), + gsSP2Triangles(1, 22, 23, 0, 1, 23, 2, 0), + gsSP2Triangles(24, 25, 26, 0, 27, 28, 26, 0), + gsSP2Triangles(29, 30, 27, 0, 29, 27, 26, 0), + gsSPVertex(vtx_C21AE0, 1, 0), + gsSPVertex(vtx_C21B20, 11, 1), + gsSPVertex(vtx_C21E00, 19, 12), + gsSP2Triangles(1, 12, 13, 0, 2, 14, 13, 0), + gsSP2Triangles(3, 4, 2, 0, 3, 2, 13, 0), + gsSP2Triangles(4, 3, 15, 0, 3, 16, 17, 0), + gsSP2Triangles(3, 17, 15, 0, 4, 15, 18, 0), + gsSP2Triangles(4, 18, 19, 0, 5, 20, 2, 0), + gsSP2Triangles(6, 7, 21, 0, 7, 22, 23, 0), + gsSP2Triangles(7, 23, 21, 0, 7, 6, 8, 0), + gsSP2Triangles(7, 8, 24, 0, 6, 21, 25, 0), + gsSP2Triangles(6, 25, 26, 0, 8, 27, 24, 0), + gsSP2Triangles(9, 28, 8, 0, 10, 29, 24, 0), + gsSP1Triangle(11, 30, 0, 0), + gsSPVertex(vtx_C21BD0, 12, 0), + gsSPVertex(vtx_C21F30, 18, 12), + gsSP2Triangles(0, 12, 13, 0, 0, 1, 12, 0), + gsSP2Triangles(1, 5, 14, 0, 1, 14, 15, 0), + gsSP2Triangles(1, 15, 12, 0, 2, 3, 16, 0), + gsSP2Triangles(3, 4, 16, 0, 4, 17, 16, 0), + gsSP2Triangles(5, 18, 19, 0, 5, 19, 14, 0), + gsSP2Triangles(6, 20, 21, 0, 7, 22, 23, 0), + gsSP2Triangles(8, 24, 25, 0, 9, 26, 25, 0), + gsSP2Triangles(10, 27, 9, 0, 10, 9, 25, 0), + gsSP2Triangles(11, 28, 9, 0, 5, 29, 18, 0), + gsSPVertex(vtx_C21C90, 10, 0), + gsSPVertex(vtx_C22050, 20, 10), + gsSP2Triangles(0, 1, 10, 0, 1, 2, 10, 0), + gsSP2Triangles(2, 11, 10, 0, 3, 5, 12, 0), + gsSP2Triangles(3, 12, 13, 0, 3, 13, 14, 0), + gsSP2Triangles(4, 3, 14, 0, 4, 14, 15, 0), + gsSP2Triangles(5, 16, 17, 0, 5, 17, 18, 0), + gsSP2Triangles(5, 18, 12, 0, 6, 19, 20, 0), + gsSP2Triangles(6, 20, 21, 0, 6, 22, 23, 0), + gsSP2Triangles(6, 23, 19, 0, 7, 24, 21, 0), + gsSP2Triangles(7, 21, 25, 0, 8, 7, 25, 0), + gsSP2Triangles(8, 25, 26, 0, 9, 27, 28, 0), + gsSP1Triangle(9, 28, 29, 0), + gsSPVertex(vtx_C21D30, 12, 0), + gsSPVertex(vtx_C22190, 20, 12), + gsSP2Triangles(0, 12, 13, 0, 0, 13, 14, 0), + gsSP2Triangles(1, 2, 15, 0, 1, 15, 16, 0), + gsSP2Triangles(2, 3, 17, 0, 2, 17, 15, 0), + gsSP2Triangles(3, 18, 4, 0, 3, 4, 19, 0), + gsSP2Triangles(4, 20, 21, 0, 4, 21, 19, 0), + gsSP2Triangles(5, 22, 23, 0, 5, 23, 24, 0), + gsSP2Triangles(6, 7, 25, 0, 7, 26, 25, 0), + gsSP2Triangles(7, 6, 27, 0, 7, 27, 28, 0), + gsSP2Triangles(7, 28, 29, 0, 8, 6, 25, 0), + gsSP2Triangles(9, 11, 10, 0, 9, 10, 30, 0), + gsSP1Triangle(9, 30, 31, 0), + gsSPVertex(vtx_C21DD0, 3, 0), + gsSPVertex(vtx_C222D0, 6, 3), + gsSP2Triangles(0, 1, 3, 0, 1, 4, 3, 0), + gsSP2Triangles(0, 3, 5, 0, 2, 6, 7, 0), + gsSP1Triangle(2, 7, 8, 0), + gsSPVertex(vtx_C22330, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0), + gsSP2Triangles(1, 3, 4, 0, 1, 4, 2, 0), + gsSP2Triangles(3, 5, 4, 0, 6, 2, 4, 0), + gsSP2Triangles(7, 8, 2, 0, 9, 2, 8, 0), + gsSP2Triangles(9, 0, 2, 0, 2, 6, 10, 0), + gsSP2Triangles(7, 2, 10, 0, 3, 11, 12, 0), + gsSP2Triangles(13, 5, 3, 0, 14, 13, 3, 0), + gsSP2Triangles(11, 3, 0, 0, 12, 14, 3, 0), + gsSP2Triangles(15, 16, 17, 0, 18, 15, 17, 0), + gsSP2Triangles(19, 17, 16, 0, 20, 17, 21, 0), + gsSP2Triangles(20, 18, 17, 0, 17, 22, 21, 0), + gsSP2Triangles(19, 23, 17, 0, 22, 17, 23, 0), + gsSP2Triangles(24, 21, 25, 0, 22, 25, 21, 0), + gsSP2Triangles(22, 23, 25, 0, 26, 27, 28, 0), + gsSP1Triangle(29, 26, 28, 0), + gsSPVertex(vtx_C224A0, 3, 0), + gsSPVertex(vtx_C224E0, 20, 3), + gsSPVertex(vtx_C22780, 1, 23), + gsSPVertex(vtx_C22810, 6, 24), + gsSP2Triangles(4, 3, 6, 0, 7, 4, 6, 0), + gsSP2Triangles(8, 5, 4, 0, 4, 9, 8, 0), + gsSP2Triangles(9, 4, 23, 0, 4, 7, 23, 0), + gsSP2Triangles(10, 24, 25, 0, 11, 24, 10, 0), + gsSP2Triangles(12, 26, 10, 0, 12, 10, 25, 0), + gsSP2Triangles(13, 10, 26, 0, 13, 27, 10, 0), + gsSP2Triangles(14, 10, 27, 0, 14, 11, 10, 0), + gsSP2Triangles(14, 16, 11, 0, 15, 11, 16, 0), + gsSP2Triangles(16, 14, 27, 0, 17, 16, 27, 0), + gsSP2Triangles(15, 16, 28, 0, 18, 28, 16, 0), + gsSP2Triangles(17, 19, 16, 0, 19, 18, 16, 0), + gsSP2Triangles(0, 20, 2, 0, 1, 2, 21, 0), + gsSP2Triangles(22, 21, 2, 0, 2, 20, 29, 0), + gsSP1Triangle(22, 2, 29, 0), + gsSPVertex(vtx_C22620, 22, 0), + gsSPVertex(vtx_C22870, 8, 22), + gsSP2Triangles(0, 22, 3, 0, 0, 3, 23, 0), + gsSP2Triangles(1, 3, 24, 0, 2, 5, 3, 0), + gsSP2Triangles(3, 1, 23, 0, 4, 3, 22, 0), + gsSP2Triangles(4, 2, 3, 0, 5, 24, 3, 0), + gsSP2Triangles(6, 11, 25, 0, 7, 6, 25, 0), + gsSP2Triangles(7, 26, 6, 0, 8, 6, 26, 0), + gsSP2Triangles(8, 9, 6, 0, 9, 10, 6, 0), + gsSP2Triangles(10, 27, 6, 0, 11, 6, 27, 0), + gsSP2Triangles(12, 14, 15, 0, 13, 12, 15, 0), + gsSP2Triangles(14, 28, 15, 0, 15, 10, 9, 0), + gsSP2Triangles(15, 16, 13, 0, 15, 28, 27, 0), + gsSP2Triangles(10, 15, 27, 0, 16, 15, 9, 0), + gsSP2Triangles(17, 18, 19, 0, 18, 29, 19, 0), + gsSP2Triangles(19, 29, 24, 0, 5, 19, 24, 0), + gsSP2Triangles(19, 5, 2, 0, 20, 19, 2, 0), + gsSP2Triangles(19, 20, 21, 0, 21, 17, 19, 0), + gsSPVertex(vtx_C22510, 2, 0), + gsSPVertex(vtx_C22780, 9, 2), + gsSPVertex(vtx_C228F0, 6, 11), + gsSP2Triangles(1, 0, 6, 0, 2, 1, 6, 0), + gsSP2Triangles(3, 2, 6, 0, 4, 6, 0, 0), + gsSP2Triangles(3, 6, 11, 0, 5, 11, 6, 0), + gsSP2Triangles(5, 6, 12, 0, 6, 4, 12, 0), + gsSP2Triangles(7, 8, 13, 0, 8, 14, 13, 0), + gsSP2Triangles(9, 10, 15, 0, 10, 16, 15, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251528_C0EDA8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_802510C8_C0E948)), + gsSPDisplayList(N(D_80251050_C0E8D0)), + gsSPDisplayList(N(D_80250FC8_C0E848)), + gsSPDisplayList(N(D_80250F40_C0E7C0)), + gsSPDisplayList(N(D_80250E88_C0E708)), + gsSPDisplayList(N(D_80250DE0_C0E660)), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251578_C0EDF8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPMatrix(&N(D_80253160_C109E0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), + gsSPDisplayList(N(D_80251528_C0EDA8)), + gsSPPopMatrix(G_MTX_MODELVIEW), + gsSPEndDisplayList(), +}; + +Gfx N(D_802515B0_C0EE30)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), + gsSPDisplayList(N(img4_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C21810, 18, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(2, 4, 5, 0, 2, 5, 3, 0), + gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), + gsSP2Triangles(6, 10, 11, 0, 6, 11, 7, 0), + gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), + gsSP2Triangles(14, 16, 17, 0, 14, 17, 15, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251638_C0EEB8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img1_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C21770, 10, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), + gsSP2Triangles(6, 8, 7, 0, 9, 5, 7, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_802516A8_C0EF28)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img7_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C21700, 7, 0), + gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), + gsSP2Triangles(4, 5, 3, 0, 4, 3, 6, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251710_C0EF90)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img2_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C215A0, 22, 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(13, 16, 17, 0, 13, 17, 18, 0), + gsSP2Triangles(19, 20, 21, 0, 19, 21, 16, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251798_C0F018)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsDPPipeSync(), + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), + gsSPDisplayList(N(img0_gfx)), + gsSPClearGeometryMode(G_LIGHTING), + gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), + gsSPVertex(vtx_C20F40, 32, 0), + gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), + gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), + gsSP2Triangles(0, 2, 6, 0, 7, 8, 9, 0), + gsSP2Triangles(8, 10, 11, 0, 8, 11, 12, 0), + gsSP2Triangles(8, 12, 9, 0, 7, 9, 13, 0), + gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), + gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), + gsSP2Triangles(22, 23, 24, 0, 22, 24, 25, 0), + gsSP2Triangles(26, 27, 28, 0, 29, 30, 28, 0), + gsSPVertex(vtx_C21100, 2, 0), + gsSPVertex(vtx_C21130, 11, 2), + gsSPVertex(vtx_C211F0, 1, 13), + gsSPVertex(vtx_C21240, 18, 14), + gsSP2Triangles(2, 3, 1, 0, 2, 1, 0, 0), + gsSP2Triangles(4, 14, 1, 0, 5, 6, 15, 0), + gsSP2Triangles(6, 16, 15, 0, 5, 15, 17, 0), + gsSP2Triangles(7, 18, 19, 0, 7, 19, 20, 0), + gsSP2Triangles(8, 9, 21, 0, 8, 21, 22, 0), + gsSP2Triangles(9, 23, 24, 0, 9, 24, 25, 0), + gsSP2Triangles(10, 26, 27, 0, 10, 27, 28, 0), + gsSP2Triangles(11, 29, 30, 0, 11, 30, 27, 0), + gsSP1Triangle(12, 31, 13, 0), + gsSPVertex(vtx_C211E0, 6, 0), + gsSPVertex(vtx_C21360, 6, 6), + gsSP2Triangles(0, 6, 1, 0, 0, 1, 7, 0), + gsSP2Triangles(1, 8, 7, 0, 2, 9, 7, 0), + gsSP2Triangles(3, 4, 10, 0, 4, 5, 10, 0), + gsSP1Triangle(5, 11, 10, 0), + gsSPVertex(vtx_C213C0, 30, 0), + gsSP2Triangles(0, 1, 2, 0, 3, 4, 1, 0), + gsSP2Triangles(4, 5, 1, 0, 1, 5, 2, 0), + gsSP2Triangles(5, 6, 2, 0, 5, 4, 6, 0), + gsSP2Triangles(0, 2, 7, 0, 8, 7, 2, 0), + gsSP2Triangles(8, 2, 9, 0, 2, 10, 9, 0), + gsSP2Triangles(10, 2, 6, 0, 4, 3, 11, 0), + gsSP2Triangles(11, 12, 4, 0, 12, 13, 4, 0), + gsSP2Triangles(4, 14, 6, 0, 13, 14, 4, 0), + gsSP2Triangles(15, 16, 17, 0, 16, 18, 17, 0), + gsSP2Triangles(17, 18, 19, 0, 20, 17, 19, 0), + gsSP2Triangles(21, 15, 17, 0, 17, 22, 21, 0), + gsSP2Triangles(22, 17, 23, 0, 17, 20, 23, 0), + gsSP2Triangles(24, 25, 26, 0, 24, 27, 25, 0), + gsSP2Triangles(20, 19, 25, 0, 28, 25, 19, 0), + gsSP2Triangles(25, 28, 26, 0, 29, 25, 27, 0), + gsSP2Triangles(29, 23, 25, 0, 23, 20, 25, 0), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251958_C0F1D8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_80251798_C0F018)), + gsSPDisplayList(N(D_80251710_C0EF90)), + gsSPDisplayList(N(D_802516A8_C0EF28)), + gsSPDisplayList(N(D_80251638_C0EEB8)), + gsSPDisplayList(N(D_802515B0_C0EE30)), + gsSPEndDisplayList(), +}; + +Gfx N(D_802519A0_C0F220)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_80251958_C0F1D8)), + gsSPDisplayList(N(D_80251578_C0EDF8)), + gsSPDisplayList(N(D_80250DA8_C0E628)), + gsSPDisplayList(N(D_80250648_C0DEC8)), + gsSPDisplayList(N(D_802500C8_C0D948)), + gsSPDisplayList(N(D_8024EEC8_C0C748)), + gsSPEndDisplayList(), +}; + +Gfx N(D_802519F0_C0F270)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_802519A0_C0F220)), + gsSPDisplayList(N(D_8024EC68_C0C4E8)), + gsSPDisplayList(N(D_8024BD80_C09600)), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251A28_C0F2A8)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_802519F0_C0F270)), + gsSPEndDisplayList(), +}; + +Gfx N(D_80251A50_C0F2D0)[] = { + gsSPSetLights1(N(D_80253140_C109C0)), + gsSPDisplayList(N(D_80251A28_C0F2A8)), + gsSPEndDisplayList(), +}; + +static s32 N(pad_1)[] = { 0, 0 }; + +#include "smash_bridges_skeleton.inc.c" + +Lights1 N(D_80253140_C109C0) = gdSPDefLights1(0, 0, 0, 0, 0, 0, 0, 0, 0); + +static s32 N(pad_2)[] = { 0, 0 }; + +Mtx N(D_80253160_C109E0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFF2501B2, 0xFFFF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0x0E1B66C8, 0xD7770000 } +}}; + +Mtx N(D_802531A0_C10A20) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x002A01BE, 0xFFFF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0xB9507E18, 0xD03D0000 } +}}; + +Mtx N(D_802531E0_C10A60) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE8901A4, 0xFFCF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0x459C0000 } +}}; + +Mtx N(D_80253220_C10AA0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE5701A4, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253260_C10AE0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE5701A4, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802532A0_C10B20) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE8901A4, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802532E0_C10B60) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFB501A4, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253320_C10BA0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFB501A4, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_80253360_C10BE0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFE701A4, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802533A0_C10C20) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x00AF01A4, 0xFFCF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0x459C0000 } +}}; + +Mtx N(D_802533E0_C10C60) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x007D01A4, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253420_C10CA0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x007D01A4, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_80253460_C10CE0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x00AF01A4, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802534A0_C10D20) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE890190, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_802534E0_C10D60) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFB50190, 0xFFCF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0x459C0000 } +}}; + +Mtx N(D_80253520_C10DA0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFB50190, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253560_C10DE0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFB50190, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802535A0_C10E20) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFE70190, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802535E0_C10E60) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xAF0190, 0xFFCF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0x459C0000 } +}}; + +Mtx N(D_80253620_C10EA0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x7D0190, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253660_C10EE0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x7D0190, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802536A0_C10F20) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xAF0190, 0x00310001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0xBA640000 } +}}; + +Mtx N(D_802536E0_C10F60) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x001A01E2, 0xFFAA0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0x6DB70924, 0x0B370000 } +}}; + +Mtx N(D_80253720_C10FA0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253760_C10FE0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE0C00D2, 0xFFA60001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_802537A0_C11020) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE0C00D2, 0x005A0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_802537E0_C11060) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFEDA00E4, 0xFFFF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0x5C2E4692, 0x55EA0000 } +}}; + +Mtx N(D_80253820_C110A0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFFA300EB, 0xFFFF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0x45BCAE56, 0xEA0F0000 } +}}; + +Mtx N(D_80253860_C110E0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x005F0031, 0x00570001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0x210551AA, 0x0ABA0000 } +}}; + +Mtx N(D_802538A0_C11120) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x00FD011D, 0x00560001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0xA4B00000, 0xF4C90000 } +}}; + +Mtx N(D_802538E0_C11160) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFE5700BE, 1 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } +}}; + +Mtx N(D_80253920_C111A0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0xFF5100BE, 0xFFCF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0x459C0000 } +}}; + +Mtx N(D_80253960_C111E0) = {{ + { 0x10000, 0, 1, 0 }, + { 0, 0x10000, 0x004B00BE, 0xFFCF0001 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0x459C0000 } +}}; + +#include "smash_bridges_anim.inc.c" diff --git a/src/world/area_dgb/dgb_01/data.c b/src/world/area_dgb/dgb_01/smash_bridges_anim.inc.c similarity index 66% rename from src/world/area_dgb/dgb_01/data.c rename to src/world/area_dgb/dgb_01/smash_bridges_anim.inc.c index f2d86a5739..63bed51bb6 100644 --- a/src/world/area_dgb/dgb_01/data.c +++ b/src/world/area_dgb/dgb_01/smash_bridges_anim.inc.c @@ -1,4289 +1,4 @@ -#include "dgb_01.h" -#include "../dgb_vtx.h" - -extern Lights1 dgb_01_D_80253140_C109C0; - -Gfx D_8024B770_C08FF0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2E620, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(3, 2, 4, 0, 3, 4, 5, 0), - gsSP2Triangles(6, 7, 1, 0, 6, 1, 0, 0), - gsSP2Triangles(8, 9, 7, 0, 8, 7, 6, 0), - gsSP2Triangles(10, 11, 12, 0, 13, 14, 15, 0), - gsSP2Triangles(13, 15, 11, 0, 13, 11, 16, 0), - gsSP2Triangles(17, 13, 16, 0, 17, 16, 18, 0), - gsSP2Triangles(19, 17, 18, 0, 19, 18, 20, 0), - gsSP2Triangles(21, 22, 23, 0, 21, 23, 24, 0), - gsSP2Triangles(23, 22, 25, 0, 23, 25, 26, 0), - gsSP1Triangle(27, 28, 29, 0), - gsSPVertex(vtx_C2E7B0, 3, 0), - gsSPVertex(vtx_C2E800, 14, 3), - gsSPVertex(vtx_C2E980, 15, 17), - gsSP2Triangles(3, 2, 4, 0, 3, 4, 5, 0), - gsSP2Triangles(3, 5, 6, 0, 7, 3, 6, 0), - gsSP2Triangles(7, 6, 17, 0, 8, 7, 17, 0), - gsSP2Triangles(8, 17, 18, 0, 9, 19, 20, 0), - gsSP2Triangles(9, 20, 21, 0, 1, 0, 10, 0), - gsSP2Triangles(1, 10, 22, 0, 11, 23, 24, 0), - gsSP2Triangles(11, 24, 12, 0, 12, 24, 25, 0), - gsSP2Triangles(12, 25, 13, 0, 13, 25, 26, 0), - gsSP2Triangles(13, 26, 14, 0, 14, 26, 27, 0), - gsSP2Triangles(14, 27, 28, 0, 15, 16, 29, 0), - gsSP2Triangles(15, 29, 30, 0, 15, 30, 31, 0), - gsSPVertex(vtx_C2E8C0, 12, 0), - gsSPVertex(vtx_C2EA60, 20, 12), - gsSP2Triangles(1, 13, 14, 0, 2, 0, 12, 0), - gsSP2Triangles(2, 12, 15, 0, 3, 2, 15, 0), - gsSP2Triangles(3, 15, 16, 0, 4, 17, 18, 0), - gsSP2Triangles(5, 19, 20, 0, 5, 20, 17, 0), - gsSP2Triangles(5, 17, 21, 0, 6, 5, 21, 0), - gsSP2Triangles(6, 21, 22, 0, 7, 6, 22, 0), - gsSP2Triangles(7, 22, 23, 0, 8, 24, 25, 0), - gsSP2Triangles(8, 25, 9, 0, 9, 25, 26, 0), - gsSP2Triangles(9, 26, 27, 0, 10, 28, 24, 0), - gsSP2Triangles(10, 24, 8, 0, 11, 29, 30, 0), - gsSP1Triangle(11, 30, 31, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024B8F8_C09178[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2E020, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(7, 6, 8, 0, 7, 8, 9, 0), - gsSP2Triangles(9, 8, 10, 0, 9, 10, 11, 0), - gsSP2Triangles(11, 10, 12, 0, 11, 12, 13, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), - gsSP2Triangles(18, 14, 17, 0, 18, 17, 19, 0), - gsSP2Triangles(15, 20, 21, 0, 15, 21, 16, 0), - gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(28, 29, 25, 0, 28, 25, 24, 0), - gsSPVertex(vtx_C2E1E0, 13, 0), - gsSPVertex(vtx_C2E390, 17, 13), - gsSP2Triangles(2, 13, 14, 0, 2, 14, 15, 0), - gsSP2Triangles(3, 2, 15, 0, 3, 15, 16, 0), - gsSP2Triangles(4, 3, 16, 0, 4, 16, 17, 0), - gsSP2Triangles(5, 4, 17, 0, 5, 17, 18, 0), - gsSP2Triangles(6, 19, 1, 0, 6, 1, 0, 0), - gsSP2Triangles(7, 20, 19, 0, 7, 19, 6, 0), - gsSP2Triangles(8, 21, 22, 0, 8, 22, 23, 0), - gsSP2Triangles(9, 24, 25, 0, 9, 25, 10, 0), - gsSP2Triangles(10, 25, 26, 0, 10, 26, 27, 0), - gsSP2Triangles(11, 28, 24, 0, 11, 24, 9, 0), - gsSP2Triangles(12, 29, 28, 0, 12, 28, 11, 0), - gsSPVertex(vtx_C2E2B0, 12, 0), - gsSPVertex(vtx_C2E4A0, 20, 12), - gsSP2Triangles(0, 1, 12, 0, 0, 12, 13, 0), - gsSP2Triangles(1, 2, 14, 0, 1, 14, 12, 0), - gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), - gsSP2Triangles(3, 16, 17, 0, 3, 17, 15, 0), - gsSP2Triangles(4, 18, 19, 0, 4, 19, 20, 0), - gsSP2Triangles(5, 6, 21, 0, 5, 21, 22, 0), - gsSP2Triangles(6, 7, 23, 0, 6, 23, 21, 0), - gsSP2Triangles(7, 8, 24, 0, 7, 24, 23, 0), - gsSP2Triangles(8, 25, 26, 0, 8, 26, 24, 0), - gsSP2Triangles(9, 27, 28, 0, 9, 28, 29, 0), - gsSP2Triangles(10, 30, 31, 0, 10, 31, 11, 0), - gsSPVertex(vtx_C2E360, 3, 0), - gsSPVertex(vtx_C2E5D0, 5, 3), - gsSP2Triangles(0, 3, 4, 0, 0, 4, 1, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(2, 5, 6, 0, 2, 6, 7, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BAA0_C09320[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2DA20, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(8, 9, 5, 0, 8, 5, 4, 0), - gsSP2Triangles(10, 11, 9, 0, 10, 9, 8, 0), - gsSP2Triangles(12, 13, 11, 0, 12, 11, 10, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), - gsSP2Triangles(18, 14, 17, 0, 18, 17, 19, 0), - gsSP2Triangles(15, 20, 21, 0, 15, 21, 16, 0), - gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(27, 26, 28, 0, 27, 28, 29, 0), - gsSPVertex(vtx_C2DBE0, 13, 0), - gsSPVertex(vtx_C2DD90, 17, 13), - gsSP2Triangles(2, 13, 14, 0, 2, 14, 15, 0), - gsSP2Triangles(3, 2, 15, 0, 3, 15, 16, 0), - gsSP2Triangles(4, 3, 16, 0, 4, 16, 17, 0), - gsSP2Triangles(5, 4, 17, 0, 5, 17, 18, 0), - gsSP2Triangles(1, 0, 6, 0, 1, 6, 7, 0), - gsSP2Triangles(7, 6, 19, 0, 7, 19, 20, 0), - gsSP2Triangles(8, 21, 22, 0, 8, 22, 23, 0), - gsSP2Triangles(9, 24, 25, 0, 9, 25, 10, 0), - gsSP2Triangles(10, 25, 26, 0, 10, 26, 11, 0), - gsSP2Triangles(11, 26, 27, 0, 11, 27, 12, 0), - gsSP2Triangles(12, 27, 28, 0, 12, 28, 29, 0), - gsSPVertex(vtx_C2DCB0, 12, 0), - gsSPVertex(vtx_C2DEA0, 20, 12), - gsSP2Triangles(0, 1, 12, 0, 0, 12, 13, 0), - gsSP2Triangles(1, 2, 14, 0, 1, 14, 12, 0), - gsSP2Triangles(2, 3, 15, 0, 2, 15, 14, 0), - gsSP2Triangles(3, 16, 17, 0, 3, 17, 15, 0), - gsSP2Triangles(4, 18, 19, 0, 4, 19, 20, 0), - gsSP2Triangles(5, 6, 21, 0, 5, 21, 22, 0), - gsSP2Triangles(6, 7, 23, 0, 6, 23, 21, 0), - gsSP2Triangles(7, 8, 24, 0, 7, 24, 23, 0), - gsSP2Triangles(8, 25, 26, 0, 8, 26, 24, 0), - gsSP2Triangles(9, 27, 28, 0, 9, 28, 29, 0), - gsSP2Triangles(10, 30, 31, 0, 10, 31, 11, 0), - gsSPVertex(vtx_C2DD50, 4, 0), - gsSPVertex(vtx_C2DFC0, 6, 4), - gsSP2Triangles(1, 5, 6, 0, 1, 6, 7, 0), - gsSP2Triangles(2, 8, 4, 0, 2, 4, 0, 0), - gsSP2Triangles(3, 9, 8, 0, 3, 8, 2, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BC48_C094C8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2D830, 12, 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), - gsSPVertex(vtx_C2D8F0, 19, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), - gsSP2Triangles(4, 0, 2, 0, 5, 6, 7, 0), - gsSP2Triangles(6, 8, 7, 0, 8, 9, 7, 0), - gsSP2Triangles(10, 11, 12, 0, 10, 13, 11, 0), - gsSP2Triangles(10, 14, 15, 0, 10, 16, 14, 0), - gsSP2Triangles(10, 15, 13, 0, 10, 17, 18, 0), - gsSP1Triangle(10, 12, 17, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BCF8_C09578[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024AE70_C086F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2D6E0, 21, 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, 11, 0, 12, 11, 10, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 17, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BD80_C09600[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024BCF8_C09578), - gsSPDisplayList(D_8024BC48_C094C8), - gsSPDisplayList(D_8024BAA0_C09320), - gsSPDisplayList(D_8024B8F8_C09178), - gsSPDisplayList(D_8024B770_C08FF0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BDC8_C09648[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2D6A0, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BE28_C096A8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253960_C111E0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024BDC8_C09648), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024BE60_C096E0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2D660, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BEC0_C09740[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253920_C111A0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024BE60_C096E0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024BEF8_C09778[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2D620, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024BF58_C097D8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802538E0_C11160), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024BEF8_C09778), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024BF90_C09810[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024BF58_C097D8), - gsSPDisplayList(D_8024BEC0_C09740), - gsSPDisplayList(D_8024BE28_C096A8), - gsSPEndDisplayList(), -}; - -Gfx D_8024BFC8_C09848[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2D5C0, 6, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C030_C098B0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2D560, 6, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C098_C09918[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2D500, 6, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C100_C09980[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2D260, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(9, 12, 13, 0, 9, 13, 10, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), - gsSP2Triangles(14, 18, 15, 0, 17, 19, 20, 0), - gsSP2Triangles(17, 20, 18, 0, 19, 21, 22, 0), - gsSP2Triangles(19, 22, 20, 0, 6, 23, 7, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(25, 28, 29, 0, 25, 29, 26, 0), - gsSPVertex(vtx_C2D3E0, 1, 0), - gsSPVertex(vtx_C2D410, 1, 1), - gsSPVertex(vtx_C2D440, 12, 2), - gsSP2Triangles(2, 0, 1, 0, 2, 1, 7, 0), - gsSP2Triangles(2, 7, 8, 0, 3, 4, 9, 0), - gsSP2Triangles(3, 9, 10, 0, 4, 5, 11, 0), - gsSP2Triangles(4, 11, 9, 0, 5, 6, 12, 0), - gsSP2Triangles(5, 12, 11, 0, 6, 13, 12, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C1F0_C09A70[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2CFC0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(9, 12, 13, 0, 9, 13, 10, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), - gsSP2Triangles(14, 18, 15, 0, 17, 19, 20, 0), - gsSP2Triangles(17, 20, 18, 0, 19, 21, 22, 0), - gsSP2Triangles(19, 22, 20, 0, 6, 23, 7, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(25, 28, 29, 0, 25, 29, 26, 0), - gsSPVertex(vtx_C2D140, 1, 0), - gsSPVertex(vtx_C2D170, 1, 1), - gsSPVertex(vtx_C2D1A0, 12, 2), - gsSP2Triangles(2, 0, 1, 0, 2, 1, 7, 0), - gsSP2Triangles(2, 7, 8, 0, 3, 4, 9, 0), - gsSP2Triangles(3, 9, 10, 0, 4, 5, 11, 0), - gsSP2Triangles(4, 11, 9, 0, 5, 6, 12, 0), - gsSP2Triangles(5, 12, 11, 0, 6, 13, 12, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C2E0_C09B60[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2CD20, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(9, 12, 13, 0, 9, 13, 10, 0), - gsSP2Triangles(14, 15, 16, 0, 15, 17, 18, 0), - gsSP2Triangles(15, 18, 16, 0, 17, 19, 20, 0), - gsSP2Triangles(17, 20, 18, 0, 19, 21, 22, 0), - gsSP2Triangles(19, 22, 20, 0, 6, 23, 7, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(25, 28, 29, 0, 25, 29, 26, 0), - gsSPVertex(vtx_C2CEA0, 1, 0), - gsSPVertex(vtx_C2CED0, 1, 1), - gsSPVertex(vtx_C2CF00, 12, 2), - gsSP2Triangles(2, 0, 1, 0, 2, 1, 8, 0), - gsSP2Triangles(3, 2, 8, 0, 4, 5, 9, 0), - gsSP2Triangles(4, 9, 10, 0, 5, 6, 11, 0), - gsSP2Triangles(5, 11, 9, 0, 6, 7, 12, 0), - gsSP2Triangles(6, 12, 11, 0, 7, 13, 12, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C3D0_C09C50[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024C2E0_C09B60), - gsSPDisplayList(D_8024C1F0_C09A70), - gsSPDisplayList(D_8024C100_C09980), - gsSPDisplayList(D_8024C098_C09918), - gsSPDisplayList(D_8024C030_C098B0), - gsSPDisplayList(D_8024BFC8_C09848), - gsSPEndDisplayList(), -}; - -Gfx D_8024C420_C09CA0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2CBA0, 24, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 0, 3, 0, 4, 3, 5, 0), - gsSP2Triangles(6, 4, 5, 0, 6, 5, 7, 0), - gsSP2Triangles(6, 7, 8, 0, 9, 10, 11, 0), - gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), - gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), - gsSP2Triangles(15, 17, 18, 0, 16, 19, 17, 0), - gsSP2Triangles(20, 15, 18, 0, 20, 18, 21, 0), - gsSP2Triangles(22, 20, 21, 0, 22, 21, 23, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C4C0_C09D40[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2CA20, 24, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 0, 3, 0, 4, 3, 5, 0), - gsSP2Triangles(6, 4, 5, 0, 6, 5, 7, 0), - gsSP2Triangles(8, 6, 7, 0, 9, 10, 11, 0), - gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), - gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), - gsSP2Triangles(15, 17, 18, 0, 16, 19, 17, 0), - gsSP2Triangles(20, 15, 18, 0, 20, 18, 21, 0), - gsSP2Triangles(22, 20, 21, 0, 22, 21, 23, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C560_C09DE0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C2C8A0, 24, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(6, 8, 7, 0, 9, 10, 11, 0), - gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), - gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), - gsSP2Triangles(15, 17, 18, 0, 15, 18, 19, 0), - gsSP2Triangles(16, 20, 21, 0, 16, 21, 17, 0), - gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C600_C09E80[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024C560_C09DE0), - gsSPDisplayList(D_8024C4C0_C09D40), - gsSPDisplayList(D_8024C420_C09CA0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C638_C09EB8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024C600_C09E80), - gsSPDisplayList(D_8024C3D0_C09C50), - gsSPDisplayList(D_8024BF90_C09810), - gsSPEndDisplayList(), -}; - -Gfx D_8024C670_C09EF0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2C4E0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 3, 2, 0, 2, 5, 4, 0), - gsSP2Triangles(2, 6, 5, 0, 2, 7, 6, 0), - gsSP2Triangles(8, 7, 2, 0, 8, 2, 1, 0), - gsSP2Triangles(9, 8, 1, 0, 8, 9, 10, 0), - gsSP2Triangles(9, 1, 0, 0, 11, 9, 12, 0), - gsSP2Triangles(9, 0, 12, 0, 13, 10, 9, 0), - gsSP2Triangles(13, 9, 14, 0, 9, 11, 14, 0), - gsSP2Triangles(15, 16, 17, 0, 18, 15, 17, 0), - gsSP2Triangles(19, 17, 16, 0, 19, 20, 17, 0), - gsSP2Triangles(21, 17, 20, 0, 17, 21, 22, 0), - gsSP2Triangles(23, 18, 17, 0, 23, 17, 22, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 22, 25, 0), - gsSP2Triangles(21, 20, 25, 0, 20, 27, 25, 0), - gsSP2Triangles(25, 27, 28, 0, 29, 25, 28, 0), - gsSP2Triangles(21, 25, 22, 0, 29, 26, 25, 0), - gsSPVertex(vtx_C2C6C0, 30, 0), - gsSP2Triangles(0, 14, 2, 0, 0, 2, 15, 0), - gsSP2Triangles(1, 15, 2, 0, 2, 16, 17, 0), - gsSP2Triangles(3, 16, 2, 0, 3, 2, 14, 0), - gsSP2Triangles(2, 18, 1, 0, 2, 17, 18, 0), - gsSP2Triangles(4, 3, 14, 0, 3, 4, 19, 0), - gsSP2Triangles(4, 14, 0, 0, 5, 4, 20, 0), - gsSP2Triangles(4, 0, 20, 0, 6, 4, 21, 0), - gsSP2Triangles(4, 5, 21, 0, 6, 19, 4, 0), - gsSP2Triangles(7, 22, 8, 0, 8, 23, 7, 0), - gsSP2Triangles(9, 8, 22, 0, 8, 24, 23, 0), - gsSP2Triangles(8, 25, 24, 0, 10, 25, 8, 0), - gsSP2Triangles(10, 8, 26, 0, 9, 26, 8, 0), - gsSP2Triangles(11, 26, 9, 0, 11, 9, 27, 0), - gsSP2Triangles(11, 10, 26, 0, 12, 28, 11, 0), - gsSP2Triangles(10, 11, 28, 0, 12, 11, 29, 0), - gsSP2Triangles(13, 11, 27, 0, 11, 13, 29, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C7D0_C0A050[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024C670_C09EF0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024C808_C0A088[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2C300, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 2, 3, 0, 0), - gsSP2Triangles(3, 4, 0, 0, 0, 5, 6, 0), - gsSP2Triangles(1, 0, 6, 0, 4, 7, 0, 0), - gsSP2Triangles(0, 7, 8, 0, 5, 0, 8, 0), - gsSP2Triangles(9, 6, 10, 0, 6, 5, 10, 0), - gsSP2Triangles(5, 8, 10, 0, 9, 10, 11, 0), - gsSP2Triangles(12, 11, 10, 0, 12, 10, 13, 0), - gsSP2Triangles(10, 14, 13, 0, 14, 10, 8, 0), - gsSP2Triangles(15, 16, 17, 0, 18, 15, 19, 0), - gsSP2Triangles(18, 20, 15, 0, 21, 19, 15, 0), - gsSP2Triangles(21, 15, 22, 0, 23, 22, 15, 0), - gsSP2Triangles(15, 17, 23, 0, 15, 20, 16, 0), - gsSP2Triangles(18, 24, 25, 0, 24, 18, 19, 0), - gsSP2Triangles(24, 19, 21, 0, 26, 24, 27, 0), - gsSP2Triangles(26, 25, 24, 0, 24, 28, 27, 0), - gsSP2Triangles(24, 21, 29, 0, 28, 24, 29, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024C8E0_C0A160[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024C808_C0A088), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024C918_C0A198[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2C1C0, 20, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024C998_C0A218[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2BF50, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), - gsSP2Triangles(4, 3, 2, 0, 4, 2, 5, 0), - gsSP2Triangles(5, 2, 6, 0, 2, 7, 6, 0), - gsSP2Triangles(2, 8, 7, 0, 2, 1, 8, 0), - gsSP2Triangles(5, 6, 9, 0, 10, 4, 5, 0), - gsSP2Triangles(11, 12, 13, 0, 11, 13, 14, 0), - gsSP2Triangles(15, 16, 13, 0, 13, 17, 14, 0), - gsSP2Triangles(18, 19, 14, 0, 20, 21, 15, 0), - gsSP2Triangles(22, 20, 12, 0, 22, 12, 11, 0), - gsSP2Triangles(23, 24, 25, 0, 26, 27, 24, 0), - gsSP2Triangles(26, 24, 28, 0, 24, 27, 25, 0), - gsSP1Triangle(27, 29, 25, 0), - gsSPVertex(vtx_C2BF60, 1, 1), - gsSPVertex(vtx_C2BFD0, 1, 2), - gsSPVertex(vtx_C2C080, 2, 3), - gsSPVertex(vtx_C2C0B0, 1, 5), - gsSPVertex(vtx_C2C0F0, 2, 6), - gsSPVertex(vtx_C2C130, 9, 8), - gsSP2Triangles(8, 15, 1, 0, 0, 9, 8, 0), - gsSP2Triangles(0, 8, 1, 0, 1, 10, 16, 0), - gsSP2Triangles(1, 16, 2, 0, 1, 11, 10, 0), - gsSP2Triangles(6, 12, 7, 0, 5, 3, 13, 0), - gsSP1Triangle(5, 14, 4, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024CAA8_C0A328[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802538A0_C11120), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024C998_C0A218), - gsSPDisplayList(D_8024C918_C0A198), - gsSPDisplayList(D_8024C8E0_C0A160), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024CAF0_C0A370[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2BE50, 16, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024CB68_C0A3E8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2BB50, 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(vtx_C2BD50, 16, 0), - gsSP2Triangles(0, 4, 5, 0, 0, 5, 6, 0), - gsSP2Triangles(1, 7, 8, 0, 1, 8, 9, 0), - gsSP2Triangles(2, 10, 11, 0, 2, 11, 12, 0), - gsSP2Triangles(3, 13, 14, 0, 3, 14, 15, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024CC28_C0A4A8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2BA50, 16, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024CCA0_C0A520[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2B9B0, 10, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), - gsSP2Triangles(1, 4, 3, 0, 5, 6, 7, 0), - gsSP2Triangles(5, 7, 8, 0, 5, 8, 9, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024CD10_C0A590[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2B8E0, 13, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(2, 4, 5, 0, 2, 5, 3, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(3, 5, 8, 0, 3, 8, 9, 0), - gsSP2Triangles(10, 0, 3, 0, 10, 3, 9, 0), - gsSP2Triangles(1, 11, 12, 0, 1, 12, 6, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024CD98_C0A618[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2B850, 9, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 3, 0, 4, 3, 6, 0), - gsSP2Triangles(4, 7, 8, 0, 4, 8, 5, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024CE08_C0A688[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2B050, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), - gsSP2Triangles(0, 4, 3, 0, 5, 6, 7, 0), - gsSP2Triangles(6, 8, 7, 0, 8, 9, 7, 0), - gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), - gsSP2Triangles(5, 7, 12, 0, 11, 13, 9, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), - gsSP2Triangles(14, 18, 19, 0, 14, 20, 17, 0), - gsSP2Triangles(17, 21, 22, 0, 23, 5, 12, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(24, 27, 28, 0, 29, 25, 30, 0), - gsSP2Triangles(25, 24, 31, 0, 25, 31, 30, 0), - gsSPVertex(vtx_C2B220, 2, 0), - gsSPVertex(vtx_C2B250, 8, 2), - gsSPVertex(vtx_C2B410, 21, 10), - gsSP2Triangles(2, 0, 1, 0, 2, 1, 10, 0), - gsSP2Triangles(3, 11, 12, 0, 3, 12, 13, 0), - gsSP2Triangles(4, 14, 15, 0, 4, 15, 16, 0), - gsSP2Triangles(5, 17, 18, 0, 5, 18, 19, 0), - gsSP2Triangles(6, 20, 21, 0, 6, 21, 22, 0), - gsSP2Triangles(7, 23, 24, 0, 7, 24, 25, 0), - gsSP2Triangles(8, 26, 27, 0, 8, 27, 28, 0), - gsSP2Triangles(8, 9, 26, 0, 9, 29, 30, 0), - gsSP1Triangle(9, 30, 26, 0), - gsSPVertex(vtx_C2B2D0, 8, 0), - gsSPVertex(vtx_C2B560, 23, 8), - gsSP2Triangles(0, 8, 9, 0, 0, 9, 10, 0), - gsSP2Triangles(0, 10, 11, 0, 1, 12, 13, 0), - gsSP2Triangles(1, 2, 14, 0, 1, 14, 15, 0), - gsSP2Triangles(1, 16, 2, 0, 2, 17, 18, 0), - gsSP2Triangles(3, 19, 20, 0, 3, 20, 21, 0), - gsSP2Triangles(4, 3, 21, 0, 5, 22, 23, 0), - gsSP2Triangles(5, 24, 22, 0, 5, 25, 24, 0), - gsSP2Triangles(6, 26, 7, 0, 6, 7, 27, 0), - gsSP2Triangles(6, 27, 28, 0, 6, 29, 30, 0), - gsSPVertex(vtx_C2B340, 11, 0), - gsSPVertex(vtx_C2B6D0, 21, 11), - gsSP2Triangles(0, 11, 12, 0, 1, 2, 13, 0), - gsSP2Triangles(1, 13, 14, 0, 2, 15, 16, 0), - gsSP2Triangles(2, 16, 13, 0, 3, 17, 18, 0), - gsSP2Triangles(3, 18, 19, 0, 4, 20, 21, 0), - gsSP2Triangles(4, 21, 22, 0, 5, 23, 24, 0), - gsSP2Triangles(5, 24, 25, 0, 6, 5, 25, 0), - gsSP2Triangles(6, 25, 26, 0, 7, 27, 28, 0), - gsSP2Triangles(8, 29, 7, 0, 8, 7, 28, 0), - gsSP2Triangles(8, 28, 30, 0, 9, 10, 31, 0), - gsSPVertex(vtx_C2B3C0, 1, 0), - gsSPVertex(vtx_C2B3E0, 3, 1), - gsSPVertex(vtx_C2B800, 5, 4), - gsSP2Triangles(1, 6, 5, 0, 1, 7, 2, 0), - gsSP2Triangles(1, 2, 6, 0, 2, 8, 6, 0), - gsSP1Triangle(3, 0, 4, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024CFF8_C0A878[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024CE08_C0A688), - gsSPDisplayList(D_8024CD98_C0A618), - gsSPDisplayList(D_8024CD10_C0A590), - gsSPDisplayList(D_8024CCA0_C0A520), - gsSPDisplayList(D_8024CC28_C0A4A8), - gsSPDisplayList(D_8024CB68_C0A3E8), - gsSPDisplayList(D_8024CAF0_C0A370), - gsSPDisplayList(D_8024CAA8_C0A328), - gsSPDisplayList(D_8024C7D0_C0A050), - gsSPEndDisplayList(), -}; - -Gfx D_8024D060_C0A8E0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2AAB0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), - gsSP2Triangles(1, 4, 2, 0, 5, 1, 3, 0), - gsSP2Triangles(5, 6, 1, 0, 7, 1, 6, 0), - gsSP2Triangles(7, 8, 1, 0, 8, 4, 1, 0), - gsSP2Triangles(9, 10, 11, 0, 9, 11, 12, 0), - gsSP2Triangles(13, 11, 14, 0, 11, 15, 14, 0), - gsSP2Triangles(15, 11, 16, 0, 11, 17, 16, 0), - gsSP2Triangles(11, 10, 17, 0, 11, 13, 12, 0), - gsSP2Triangles(18, 17, 19, 0, 17, 18, 16, 0), - gsSP2Triangles(7, 20, 8, 0, 21, 8, 20, 0), - gsSP2Triangles(20, 7, 6, 0, 22, 20, 6, 0), - gsSP2Triangles(15, 16, 18, 0, 15, 18, 23, 0), - gsSP2Triangles(18, 24, 23, 0, 18, 25, 24, 0), - gsSP2Triangles(18, 26, 25, 0, 26, 18, 19, 0), - gsSP2Triangles(27, 28, 20, 0, 21, 20, 29, 0), - gsSP2Triangles(22, 27, 20, 0, 28, 29, 20, 0), - gsSPVertex(vtx_C2AC90, 17, 0), - gsSPVertex(vtx_C2AEB0, 15, 17), - gsSP2Triangles(0, 17, 4, 0, 0, 4, 18, 0), - gsSP2Triangles(1, 0, 18, 0, 0, 1, 19, 0), - gsSP2Triangles(2, 0, 19, 0, 0, 2, 20, 0), - gsSP2Triangles(3, 0, 20, 0, 3, 17, 0, 0), - gsSP2Triangles(4, 5, 18, 0, 5, 4, 21, 0), - gsSP2Triangles(1, 18, 5, 0, 6, 5, 21, 0), - gsSP2Triangles(5, 22, 23, 0, 5, 24, 22, 0), - gsSP2Triangles(5, 6, 24, 0, 1, 5, 23, 0), - gsSP2Triangles(7, 25, 8, 0, 7, 8, 26, 0), - gsSP2Triangles(8, 27, 26, 0, 9, 27, 8, 0), - gsSP2Triangles(10, 9, 8, 0, 11, 28, 8, 0), - gsSP2Triangles(11, 8, 25, 0, 10, 8, 28, 0), - gsSP2Triangles(12, 29, 16, 0, 12, 16, 30, 0), - gsSP2Triangles(13, 16, 29, 0, 13, 31, 16, 0), - gsSP2Triangles(14, 16, 31, 0, 14, 15, 16, 0), - gsSPVertex(vtx_C2AD20, 2, 0), - gsSPVertex(vtx_C2AD70, 17, 2), - gsSPVertex(vtx_C2AF60, 1, 19), - gsSPVertex(vtx_C2AF80, 10, 20), - gsSP2Triangles(4, 22, 20, 0, 3, 22, 4, 0), - gsSP2Triangles(5, 3, 6, 0, 2, 6, 3, 0), - gsSP2Triangles(6, 2, 21, 0, 7, 11, 23, 0), - gsSP2Triangles(7, 0, 11, 0, 8, 23, 11, 0), - gsSP2Triangles(1, 11, 0, 0, 9, 8, 11, 0), - gsSP2Triangles(10, 9, 11, 0, 10, 11, 19, 0), - gsSP2Triangles(11, 1, 19, 0, 12, 6, 21, 0), - gsSP2Triangles(12, 13, 6, 0, 13, 14, 6, 0), - gsSP2Triangles(14, 24, 6, 0, 5, 6, 24, 0), - gsSP2Triangles(15, 25, 26, 0, 16, 15, 26, 0), - gsSP2Triangles(15, 18, 27, 0, 17, 15, 27, 0), - gsSP2Triangles(15, 17, 28, 0, 15, 28, 25, 0), - gsSP2Triangles(18, 15, 29, 0, 16, 29, 15, 0), - gsSPVertex(vtx_C2AE50, 1, 0), - gsSPVertex(vtx_C2AE70, 4, 1), - gsSPVertex(vtx_C2B010, 4, 5), - gsSP2Triangles(2, 1, 5, 0, 2, 6, 1, 0), - gsSP2Triangles(0, 2, 5, 0, 2, 0, 7, 0), - gsSP2Triangles(3, 2, 8, 0, 3, 6, 2, 0), - gsSP2Triangles(2, 4, 8, 0, 4, 2, 7, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024D280_C0AB00[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024D060_C0A8E0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024D2B8_C0AB38[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A8D0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 0, 3, 0), - gsSP2Triangles(1, 3, 4, 0, 1, 4, 2, 0), - gsSP2Triangles(5, 6, 0, 0, 6, 7, 0, 0), - gsSP2Triangles(8, 0, 7, 0, 8, 3, 0, 0), - gsSP2Triangles(9, 0, 2, 0, 9, 5, 0, 0), - gsSP2Triangles(3, 10, 4, 0, 11, 2, 4, 0), - gsSP2Triangles(4, 10, 12, 0, 13, 4, 12, 0), - gsSP2Triangles(13, 14, 4, 0, 11, 4, 14, 0), - gsSP2Triangles(15, 16, 17, 0, 18, 16, 15, 0), - gsSP2Triangles(18, 15, 19, 0, 15, 20, 19, 0), - gsSP2Triangles(20, 15, 21, 0, 15, 22, 21, 0), - gsSP2Triangles(22, 15, 23, 0, 15, 17, 23, 0), - gsSP2Triangles(24, 17, 25, 0, 17, 24, 23, 0), - gsSP2Triangles(22, 23, 24, 0, 22, 24, 26, 0), - gsSP2Triangles(24, 27, 26, 0, 28, 24, 25, 0), - gsSP2Triangles(24, 28, 29, 0, 24, 29, 27, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024D390_C0AC10[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024D2B8_C0AB38), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024D3C8_C0AC48[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A790, 20, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024D448_C0ACC8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A540, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), - gsSP2Triangles(3, 2, 4, 0, 0, 5, 6, 0), - gsSP2Triangles(0, 6, 1, 0, 7, 1, 8, 0), - gsSP2Triangles(7, 8, 9, 0, 7, 9, 10, 0), - gsSP2Triangles(1, 7, 11, 0, 1, 11, 12, 0), - gsSP2Triangles(2, 1, 12, 0, 13, 14, 8, 0), - gsSP2Triangles(13, 8, 1, 0, 13, 1, 6, 0), - gsSP2Triangles(15, 2, 12, 0, 15, 12, 16, 0), - gsSP2Triangles(17, 18, 19, 0, 17, 19, 20, 0), - gsSP2Triangles(17, 20, 21, 0, 21, 20, 22, 0), - gsSP2Triangles(21, 22, 23, 0, 21, 23, 24, 0), - gsSP2Triangles(25, 26, 27, 0, 25, 27, 28, 0), - gsSP2Triangles(27, 29, 28, 0, 27, 30, 31, 0), - gsSP1Triangle(27, 31, 29, 0), - gsSPVertex(vtx_C2A700, 2, 0), - gsSPVertex(vtx_C2A740, 5, 2), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), - gsSP2Triangles(1, 4, 2, 0, 0, 2, 5, 0), - gsSP1Triangle(0, 5, 6, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024D538_C0ADB8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253860_C110E0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024D448_C0ACC8), - gsSPDisplayList(D_8024D3C8_C0AC48), - gsSPDisplayList(D_8024D390_C0AC10), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024D580_C0AE00[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A3C0, 24, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024D608_C0AE88[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A2C0, 16, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024D680_C0AF00[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A180, 20, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024D700_C0AF80[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C2A080, 16, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 3, 4, 0, 5, 6, 2, 0), - gsSP2Triangles(5, 2, 1, 0, 5, 1, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(8, 11, 12, 0, 12, 11, 13, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024D788_C0B008[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C29F50, 19, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 4, 0), - gsSP2Triangles(2, 5, 9, 0, 2, 9, 10, 0), - gsSP2Triangles(3, 2, 10, 0, 3, 10, 11, 0), - gsSP2Triangles(12, 13, 3, 0, 12, 3, 11, 0), - gsSP2Triangles(13, 6, 0, 0, 13, 0, 3, 0), - gsSP2Triangles(11, 10, 14, 0, 11, 14, 15, 0), - gsSP2Triangles(16, 17, 8, 0, 16, 8, 18, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024D828_C0B0A8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C29E00, 21, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 0, 3, 0, 4, 3, 5, 0), - gsSP2Triangles(6, 1, 7, 0, 6, 7, 8, 0), - gsSP2Triangles(9, 10, 6, 0, 9, 6, 11, 0), - gsSP2Triangles(4, 5, 12, 0, 4, 12, 7, 0), - gsSP2Triangles(13, 14, 8, 0, 13, 8, 15, 0), - gsSP2Triangles(16, 17, 9, 0, 16, 9, 13, 0), - gsSP2Triangles(16, 13, 15, 0, 16, 15, 18, 0), - gsSP2Triangles(13, 9, 11, 0, 13, 11, 14, 0), - gsSP2Triangles(19, 16, 18, 0, 19, 18, 20, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024D8D0_C0B150[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C29330, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(2, 4, 3, 0, 2, 5, 6, 0), - gsSP2Triangles(2, 6, 4, 0, 3, 7, 8, 0), - gsSP2Triangles(3, 8, 9, 0, 3, 4, 7, 0), - gsSP2Triangles(4, 10, 11, 0, 4, 11, 7, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(12, 15, 16, 0, 17, 15, 14, 0), - gsSP2Triangles(17, 14, 18, 0, 17, 18, 19, 0), - gsSP2Triangles(20, 15, 21, 0, 20, 22, 16, 0), - gsSP2Triangles(20, 16, 15, 0, 21, 15, 23, 0), - gsSP2Triangles(15, 17, 24, 0, 15, 24, 23, 0), - gsSP2Triangles(25, 26, 27, 0, 25, 27, 28, 0), - gsSP1Triangle(25, 28, 29, 0), - gsSPVertex(vtx_C29470, 2, 0), - gsSPVertex(vtx_C294A0, 1, 2), - gsSPVertex(vtx_C294F0, 13, 3), - gsSPVertex(vtx_C297F0, 16, 16), - gsSP2Triangles(4, 3, 5, 0, 4, 5, 16, 0), - gsSP2Triangles(4, 16, 17, 0, 6, 0, 1, 0), - gsSP2Triangles(6, 1, 18, 0, 7, 1, 2, 0), - gsSP2Triangles(7, 2, 19, 0, 8, 11, 10, 0), - gsSP2Triangles(9, 20, 8, 0, 9, 8, 10, 0), - gsSP2Triangles(10, 11, 21, 0, 10, 21, 22, 0), - gsSP2Triangles(10, 22, 23, 0, 11, 24, 25, 0), - gsSP2Triangles(11, 25, 21, 0, 12, 13, 15, 0), - gsSP2Triangles(12, 15, 26, 0, 13, 14, 15, 0), - gsSP2Triangles(13, 27, 28, 0, 13, 28, 14, 0), - gsSP2Triangles(14, 29, 30, 0, 14, 30, 31, 0), - gsSP1Triangle(15, 14, 31, 0), - gsSPVertex(vtx_C29540, 1, 0), - gsSPVertex(vtx_C29570, 1, 1), - gsSPVertex(vtx_C295B0, 8, 2), - gsSPVertex(vtx_C298E0, 22, 10), - gsSP2Triangles(3, 2, 10, 0, 3, 10, 12, 0), - gsSP2Triangles(0, 11, 13, 0, 0, 13, 1, 0), - gsSP2Triangles(4, 14, 15, 0, 4, 15, 16, 0), - gsSP2Triangles(5, 17, 18, 0, 5, 18, 19, 0), - gsSP2Triangles(6, 20, 21, 0, 6, 21, 22, 0), - gsSP2Triangles(7, 23, 24, 0, 7, 24, 25, 0), - gsSP2Triangles(8, 26, 27, 0, 8, 27, 28, 0), - gsSP2Triangles(9, 29, 30, 0, 9, 30, 31, 0), - gsSPVertex(vtx_C29630, 9, 0), - gsSPVertex(vtx_C29A40, 23, 9), - gsSP2Triangles(0, 9, 10, 0, 0, 10, 11, 0), - gsSP2Triangles(1, 12, 13, 0, 1, 13, 14, 0), - gsSP2Triangles(2, 15, 3, 0, 2, 3, 16, 0), - gsSP2Triangles(3, 4, 17, 0, 3, 17, 18, 0), - gsSP2Triangles(4, 19, 20, 0, 4, 20, 17, 0), - gsSP2Triangles(5, 19, 21, 0, 5, 21, 22, 0), - gsSP2Triangles(6, 23, 24, 0, 6, 24, 25, 0), - gsSP2Triangles(7, 26, 27, 0, 7, 27, 28, 0), - gsSP2Triangles(8, 29, 30, 0, 8, 30, 31, 0), - gsSPVertex(vtx_C29650, 1, 0), - gsSPVertex(vtx_C296C0, 10, 1), - gsSPVertex(vtx_C29AB0, 1, 11), - gsSPVertex(vtx_C29BB0, 19, 12), - gsSP2Triangles(1, 12, 13, 0, 1, 13, 14, 0), - gsSP2Triangles(1, 14, 15, 0, 2, 16, 13, 0), - gsSP2Triangles(2, 13, 12, 0, 2, 12, 17, 0), - gsSP2Triangles(3, 18, 19, 0, 3, 19, 20, 0), - gsSP2Triangles(4, 21, 19, 0, 4, 19, 22, 0), - gsSP2Triangles(5, 4, 22, 0, 5, 22, 23, 0), - gsSP2Triangles(6, 23, 24, 0, 6, 24, 25, 0), - gsSP2Triangles(7, 6, 25, 0, 7, 25, 26, 0), - gsSP2Triangles(8, 0, 11, 0, 8, 11, 27, 0), - gsSP2Triangles(9, 28, 29, 0, 9, 29, 30, 0), - gsSP1Triangle(9, 30, 10, 0), - gsSPVertex(vtx_C29750, 10, 0), - gsSPVertex(vtx_C29CD0, 19, 10), - gsSP2Triangles(0, 10, 11, 0, 0, 11, 12, 0), - gsSP2Triangles(0, 12, 13, 0, 1, 2, 3, 0), - gsSP2Triangles(1, 3, 14, 0, 2, 15, 16, 0), - gsSP2Triangles(2, 16, 9, 0, 2, 9, 3, 0), - gsSP2Triangles(3, 9, 17, 0, 4, 3, 17, 0), - gsSP2Triangles(4, 17, 18, 0, 5, 19, 20, 0), - gsSP2Triangles(5, 20, 8, 0, 5, 8, 7, 0), - gsSP2Triangles(6, 21, 5, 0, 6, 5, 7, 0), - gsSP2Triangles(7, 8, 22, 0, 8, 23, 24, 0), - gsSP2Triangles(8, 24, 22, 0, 7, 22, 25, 0), - gsSP2Triangles(7, 25, 26, 0, 9, 27, 28, 0), - gsSP1Triangle(9, 28, 17, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024DBB0_C0B430[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024D8D0_C0B150), - gsSPDisplayList(D_8024D828_C0B0A8), - gsSPDisplayList(D_8024D788_C0B008), - gsSPDisplayList(D_8024D700_C0AF80), - gsSPDisplayList(D_8024D680_C0AF00), - gsSPDisplayList(D_8024D608_C0AE88), - gsSPDisplayList(D_8024D580_C0AE00), - gsSPDisplayList(D_8024D538_C0ADB8), - gsSPDisplayList(D_8024D280_C0AB00), - gsSPEndDisplayList(), -}; - -Gfx D_8024DC18_C0B498[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253820_C110A0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024DBB0_C0B430), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024DC50_C0B4D0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C29150, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), - gsSP2Triangles(1, 4, 2, 0, 5, 2, 6, 0), - gsSP2Triangles(2, 4, 6, 0, 2, 7, 3, 0), - gsSP2Triangles(7, 2, 8, 0, 2, 5, 8, 0), - gsSP2Triangles(9, 10, 6, 0, 5, 6, 10, 0), - gsSP2Triangles(8, 5, 10, 0, 11, 10, 12, 0), - gsSP2Triangles(10, 9, 12, 0, 11, 13, 10, 0), - gsSP2Triangles(14, 10, 13, 0, 14, 8, 10, 0), - gsSP2Triangles(15, 16, 17, 0, 17, 18, 19, 0), - gsSP2Triangles(20, 17, 19, 0, 18, 17, 21, 0), - gsSP2Triangles(17, 22, 21, 0, 23, 22, 17, 0), - gsSP2Triangles(16, 23, 17, 0, 17, 20, 15, 0), - gsSP2Triangles(24, 19, 25, 0, 19, 18, 25, 0), - gsSP2Triangles(18, 21, 25, 0, 26, 27, 25, 0), - gsSP2Triangles(24, 25, 27, 0, 25, 28, 29, 0), - gsSP2Triangles(28, 25, 21, 0, 26, 25, 29, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024DD28_C0B5A8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024DC50_C0B4D0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024DD60_C0B5E0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C28D90, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(2, 4, 3, 0, 2, 5, 6, 0), - gsSP2Triangles(5, 2, 7, 0, 2, 8, 7, 0), - gsSP2Triangles(8, 2, 1, 0, 2, 6, 4, 0), - gsSP2Triangles(9, 8, 1, 0, 9, 10, 8, 0), - gsSP2Triangles(0, 9, 1, 0, 9, 11, 12, 0), - gsSP2Triangles(11, 9, 13, 0, 9, 0, 13, 0), - gsSP2Triangles(14, 10, 9, 0, 14, 9, 12, 0), - gsSP2Triangles(15, 16, 17, 0, 18, 15, 19, 0), - gsSP2Triangles(15, 18, 20, 0, 21, 15, 20, 0), - gsSP2Triangles(15, 17, 22, 0, 23, 15, 22, 0), - gsSP2Triangles(23, 19, 15, 0, 15, 21, 16, 0), - gsSP2Triangles(23, 24, 19, 0, 24, 23, 25, 0), - gsSP2Triangles(24, 18, 19, 0, 26, 27, 24, 0), - gsSP2Triangles(24, 27, 18, 0, 26, 24, 28, 0), - gsSP2Triangles(24, 29, 28, 0, 29, 24, 25, 0), - gsSPVertex(vtx_C28F70, 30, 0), - gsSP2Triangles(0, 6, 1, 0, 0, 1, 20, 0), - gsSP2Triangles(1, 3, 21, 0, 2, 1, 21, 0), - gsSP2Triangles(2, 5, 1, 0, 3, 1, 6, 0), - gsSP2Triangles(4, 20, 1, 0, 5, 4, 1, 0), - gsSP2Triangles(3, 6, 9, 0, 6, 22, 9, 0), - gsSP2Triangles(3, 9, 21, 0, 7, 9, 23, 0), - gsSP2Triangles(7, 21, 9, 0, 8, 23, 9, 0), - gsSP2Triangles(9, 22, 24, 0, 8, 9, 24, 0), - gsSP2Triangles(10, 13, 25, 0, 10, 26, 13, 0), - gsSP2Triangles(11, 27, 13, 0, 12, 11, 13, 0), - gsSP2Triangles(13, 27, 25, 0, 12, 13, 28, 0), - gsSP2Triangles(14, 28, 13, 0, 14, 13, 26, 0), - gsSP2Triangles(15, 12, 28, 0, 12, 15, 11, 0), - gsSP2Triangles(16, 19, 15, 0, 17, 29, 15, 0), - gsSP2Triangles(18, 15, 29, 0, 18, 11, 15, 0), - gsSP2Triangles(19, 17, 15, 0, 16, 15, 28, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024DEC0_C0B740[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024DD60_C0B5E0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024DEF8_dgb_01[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A170_C079F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C28BB0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 0, 0, 4, 0, 3, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), - gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(12, 15, 16, 0, 12, 16, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), - gsSP2Triangles(18, 21, 22, 0, 18, 22, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(26, 28, 29, 0, 26, 29, 27, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024DFA0_C0B820[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C28A70, 20, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024E020_C0B8A0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C28970, 16, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 3, 4, 0, 2, 5, 6, 0), - gsSP2Triangles(2, 1, 5, 0, 1, 7, 5, 0), - gsSP2Triangles(8, 9, 10, 0, 9, 8, 11, 0), - gsSP2Triangles(9, 11, 12, 0, 9, 12, 13, 0), - gsSP2Triangles(9, 14, 10, 0, 15, 8, 10, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E0A8_C0B928[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C28890, 14, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(5, 8, 9, 0, 5, 9, 10, 0), - gsSP2Triangles(11, 12, 6, 0, 11, 6, 13, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E120_C0B9A0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C287A0, 15, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), - gsSP2Triangles(8, 4, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 11, 0, 12, 11, 14, 0), - gsSP2Triangles(12, 6, 9, 0, 12, 9, 13, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E1A8_C0BA28[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27D60, 31, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 2, 0, 1, 5, 6, 0), - gsSP2Triangles(1, 6, 4, 0, 7, 8, 9, 0), - gsSP2Triangles(8, 10, 9, 0, 10, 11, 9, 0), - gsSP2Triangles(5, 12, 13, 0, 5, 13, 6, 0), - gsSP2Triangles(5, 14, 12, 0, 15, 16, 17, 0), - gsSP2Triangles(15, 17, 18, 0, 19, 20, 17, 0), - gsSP2Triangles(17, 21, 18, 0, 22, 23, 18, 0), - gsSP2Triangles(24, 25, 26, 0, 26, 27, 28, 0), - gsSP2Triangles(29, 30, 26, 0, 29, 26, 28, 0), - gsSPVertex(vtx_C27F20, 13, 0), - gsSPVertex(vtx_C281E0, 19, 13), - gsSP2Triangles(3, 13, 0, 0, 4, 14, 15, 0), - gsSP2Triangles(5, 4, 16, 0, 4, 17, 18, 0), - gsSP2Triangles(4, 18, 16, 0, 4, 5, 14, 0), - gsSP2Triangles(6, 5, 16, 0, 6, 16, 19, 0), - gsSP2Triangles(5, 20, 21, 0, 5, 21, 22, 0), - gsSP2Triangles(5, 22, 14, 0, 1, 7, 23, 0), - gsSP2Triangles(1, 23, 8, 0, 2, 1, 8, 0), - gsSP2Triangles(2, 8, 24, 0, 2, 24, 25, 0), - gsSP2Triangles(9, 26, 27, 0, 9, 10, 26, 0), - gsSP2Triangles(10, 28, 26, 0, 11, 29, 12, 0), - gsSP2Triangles(11, 12, 30, 0, 12, 31, 30, 0), - gsSPVertex(vtx_C27FC0, 1, 0), - gsSPVertex(vtx_C27FE0, 10, 1), - gsSPVertex(vtx_C282D0, 1, 11), - gsSPVertex(vtx_C282F0, 1, 12), - gsSPVertex(vtx_C28310, 17, 13), - gsSP2Triangles(3, 15, 12, 0, 2, 13, 1, 0), - gsSP2Triangles(4, 16, 17, 0, 4, 17, 18, 0), - gsSP2Triangles(5, 19, 20, 0, 5, 20, 21, 0), - gsSP2Triangles(6, 22, 23, 0, 6, 23, 24, 0), - gsSP2Triangles(0, 7, 14, 0, 0, 14, 11, 0), - gsSP2Triangles(7, 25, 26, 0, 7, 26, 14, 0), - gsSP2Triangles(7, 27, 25, 0, 8, 9, 28, 0), - gsSP2Triangles(9, 10, 28, 0, 10, 29, 28, 0), - gsSPVertex(vtx_C28080, 10, 0), - gsSPVertex(vtx_C28190, 1, 10), - gsSPVertex(vtx_C28420, 21, 11), - gsSP2Triangles(0, 2, 1, 0, 0, 1, 11, 0), - gsSP2Triangles(0, 11, 12, 0, 1, 2, 13, 0), - gsSP2Triangles(1, 13, 14, 0, 2, 15, 13, 0), - gsSP2Triangles(3, 16, 17, 0, 3, 4, 18, 0), - gsSP2Triangles(3, 18, 19, 0, 3, 19, 20, 0), - gsSP2Triangles(4, 3, 17, 0, 5, 4, 17, 0), - gsSP2Triangles(6, 21, 22, 0, 6, 22, 23, 0), - gsSP2Triangles(7, 6, 23, 0, 6, 7, 10, 0), - gsSP2Triangles(6, 10, 24, 0, 7, 23, 25, 0), - gsSP2Triangles(7, 25, 26, 0, 8, 27, 28, 0), - gsSP1Triangle(8, 28, 29, 0), - gsSPVertex(vtx_C28110, 10, 0), - gsSPVertex(vtx_C284F0, 1, 10), - gsSPVertex(vtx_C28550, 20, 11), - gsSP2Triangles(0, 11, 12, 0, 0, 12, 13, 0), - gsSP2Triangles(1, 15, 16, 0, 1, 16, 17, 0), - gsSP2Triangles(2, 1, 17, 0, 2, 17, 18, 0), - gsSP2Triangles(3, 19, 20, 0, 3, 20, 21, 0), - gsSP2Triangles(4, 3, 21, 0, 4, 21, 22, 0), - gsSP2Triangles(5, 23, 24, 0, 5, 24, 25, 0), - gsSP2Triangles(6, 26, 27, 0, 6, 27, 28, 0), - gsSP2Triangles(7, 29, 10, 0, 8, 14, 10, 0), - gsSP1Triangle(9, 30, 8, 0), - gsSPVertex(vtx_C281B0, 3, 0), - gsSPVertex(vtx_C28690, 9, 3), - gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), - gsSP2Triangles(1, 0, 5, 0, 0, 6, 7, 0), - gsSP2Triangles(0, 1, 6, 0, 1, 8, 9, 0), - gsSP2Triangles(1, 9, 6, 0, 2, 1, 5, 0), - gsSP2Triangles(2, 5, 10, 0, 1, 11, 8, 0), - gsSPVertex(vtx_C28720, 8, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), - gsSP2Triangles(4, 5, 6, 0, 5, 7, 6, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E440_C0BCC0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024E1A8_C0BA28), - gsSPDisplayList(D_8024E120_C0B9A0), - gsSPDisplayList(D_8024E0A8_C0B928), - gsSPDisplayList(D_8024E020_C0B8A0), - gsSPDisplayList(D_8024DFA0_C0B820), - gsSPDisplayList(D_8024DEF8_dgb_01), - gsSPDisplayList(D_8024DEC0_C0B740), - gsSPDisplayList(D_8024DD28_C0B5A8), - gsSPEndDisplayList(), -}; - -Gfx D_8024E4A0_C0BD20[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802537E0_C11060), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024E440_C0BCC0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024E4D8_C0BD58[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27B80, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 0, 3, 0), - gsSP2Triangles(1, 4, 2, 0, 3, 5, 1, 0), - gsSP2Triangles(5, 6, 1, 0, 6, 7, 1, 0), - gsSP2Triangles(1, 7, 8, 0, 4, 1, 8, 0), - gsSP2Triangles(9, 2, 10, 0, 2, 4, 10, 0), - gsSP2Triangles(4, 8, 10, 0, 11, 10, 12, 0), - gsSP2Triangles(10, 13, 12, 0, 9, 10, 14, 0), - gsSP2Triangles(11, 14, 10, 0, 13, 10, 8, 0), - gsSP2Triangles(15, 16, 17, 0, 17, 18, 15, 0), - gsSP2Triangles(18, 19, 15, 0, 19, 20, 15, 0), - gsSP2Triangles(15, 20, 21, 0, 22, 15, 21, 0), - gsSP2Triangles(15, 22, 23, 0, 16, 15, 23, 0), - gsSP2Triangles(24, 25, 21, 0, 25, 24, 26, 0), - gsSP2Triangles(22, 21, 25, 0, 27, 28, 25, 0), - gsSP2Triangles(29, 23, 25, 0, 23, 22, 25, 0), - gsSP2Triangles(29, 25, 28, 0, 27, 25, 26, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E5B0_C0BE30[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27880, 31, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(2, 1, 4, 0, 2, 4, 5, 0), - gsSP2Triangles(5, 4, 6, 0, 5, 6, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(13, 16, 17, 0, 13, 17, 14, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), - gsSP2Triangles(16, 22, 23, 0, 16, 23, 24, 0), - gsSP2Triangles(16, 24, 17, 0, 22, 25, 26, 0), - gsSP2Triangles(27, 28, 29, 0, 27, 29, 30, 0), - gsSPVertex(vtx_C27A40, 2, 0), - gsSPVertex(vtx_C27A70, 17, 2), - gsSP2Triangles(0, 2, 8, 0, 0, 8, 1, 0), - gsSP2Triangles(2, 9, 10, 0, 2, 10, 11, 0), - gsSP2Triangles(2, 11, 8, 0, 3, 11, 12, 0), - gsSP2Triangles(4, 13, 14, 0, 4, 14, 5, 0), - gsSP2Triangles(5, 14, 15, 0, 5, 15, 16, 0), - gsSP2Triangles(6, 17, 13, 0, 6, 13, 4, 0), - gsSP2Triangles(7, 18, 17, 0, 7, 17, 6, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E6A0_C0BF20[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802537A0_C11020), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024E5B0_C0BE30), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024E6D8_C0BF58[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27580, 31, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 1, 0, 4, 1, 0, 0), - gsSP2Triangles(3, 2, 6, 0, 3, 6, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(13, 16, 17, 0, 13, 17, 14, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), - gsSP2Triangles(22, 23, 24, 0, 16, 25, 26, 0), - gsSP2Triangles(16, 26, 23, 0, 16, 23, 17, 0), - gsSP2Triangles(27, 28, 29, 0, 27, 29, 30, 0), - gsSPVertex(vtx_C27740, 2, 0), - gsSPVertex(vtx_C27770, 17, 2), - gsSP2Triangles(0, 2, 8, 0, 0, 8, 1, 0), - gsSP2Triangles(2, 3, 9, 0, 2, 9, 10, 0), - gsSP2Triangles(2, 10, 8, 0, 3, 11, 12, 0), - gsSP2Triangles(4, 13, 14, 0, 4, 14, 5, 0), - gsSP2Triangles(5, 14, 15, 0, 5, 15, 6, 0), - gsSP2Triangles(6, 15, 16, 0, 6, 16, 7, 0), - gsSP2Triangles(7, 16, 17, 0, 7, 17, 18, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E7C8_C0C048[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253760_C10FE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024E6D8_C0BF58), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024E800_C0C080[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A170_C079F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27460, 18, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), - gsSP2Triangles(6, 10, 11, 0, 6, 11, 7, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(14, 16, 17, 0, 14, 17, 15, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E888_C0C108[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024E800_C0C080), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024E8C0_C0C140[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C273A0, 12, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024E930_C0C1B0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253720_C10FA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024E8C0_C0C140), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024E968_C0C1E8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27300, 10, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), - gsSP2Triangles(6, 8, 7, 0, 9, 5, 7, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024E9D8_C0C258[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27220, 14, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 3, 5, 0, 4, 5, 6, 0), - gsSP2Triangles(3, 2, 7, 0, 3, 7, 5, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 7, 0), - gsSP2Triangles(10, 11, 4, 0, 10, 4, 6, 0), - gsSP2Triangles(11, 12, 13, 0, 11, 13, 4, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024EA60_C0C2E0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C27180, 10, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 3, 5, 0, 4, 5, 6, 0), - gsSP2Triangles(7, 4, 8, 0, 7, 8, 9, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024EAD0_C0C350[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C26CC0, 31, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(1, 6, 4, 0, 7, 8, 9, 0), - gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), - gsSP2Triangles(8, 12, 10, 0, 7, 9, 13, 0), - gsSP2Triangles(14, 15, 16, 0, 17, 18, 14, 0), - gsSP2Triangles(19, 20, 14, 0, 19, 14, 16, 0), - gsSP2Triangles(21, 22, 16, 0, 23, 24, 25, 0), - gsSP2Triangles(23, 25, 26, 0, 27, 28, 29, 0), - gsSP1Triangle(27, 29, 30, 0), - gsSPVertex(vtx_C26EB0, 9, 0), - gsSPVertex(vtx_C26FB0, 22, 9), - gsSP2Triangles(0, 9, 10, 0, 0, 10, 11, 0), - gsSP2Triangles(1, 12, 13, 0, 1, 13, 14, 0), - gsSP2Triangles(2, 15, 16, 0, 2, 3, 15, 0), - gsSP2Triangles(3, 17, 15, 0, 4, 18, 19, 0), - gsSP2Triangles(4, 19, 20, 0, 5, 6, 21, 0), - gsSP2Triangles(5, 21, 22, 0, 6, 23, 24, 0), - gsSP2Triangles(6, 24, 25, 0, 7, 26, 27, 0), - gsSP2Triangles(7, 27, 28, 0, 8, 29, 30, 0), - gsSP1Triangle(8, 30, 27, 0), - gsSPVertex(vtx_C26F40, 7, 0), - gsSPVertex(vtx_C27110, 7, 7), - gsSP2Triangles(0, 7, 2, 0, 0, 2, 8, 0), - gsSP2Triangles(1, 9, 2, 0, 2, 10, 8, 0), - gsSP2Triangles(3, 11, 8, 0, 4, 5, 12, 0), - gsSP2Triangles(5, 6, 12, 0, 6, 13, 12, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024EC00_C0C480[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024EAD0_C0C350), - gsSPDisplayList(D_8024EA60_C0C2E0), - gsSPDisplayList(D_8024E9D8_C0C258), - gsSPDisplayList(D_8024E968_C0C1E8), - gsSPDisplayList(D_8024E930_C0C1B0), - gsSPDisplayList(D_8024E888_C0C108), - gsSPDisplayList(D_8024E7C8_C0C048), - gsSPDisplayList(D_8024E6A0_C0BF20), - gsSPDisplayList(D_8024E4D8_C0BD58), - gsSPEndDisplayList(), -}; - -Gfx D_8024EC68_C0C4E8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024EC00_C0C480), - gsSPDisplayList(D_8024E4A0_C0BD20), - gsSPDisplayList(D_8024DC18_C0B498), - gsSPDisplayList(D_8024CFF8_C0A878), - gsSPDisplayList(D_8024C638_C09EB8), - gsSPEndDisplayList(), -}; - -Gfx D_8024ECB0_C0C530[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C26890, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 0, 5, 0, 4, 5, 6, 0), - gsSP2Triangles(0, 3, 5, 0, 7, 8, 9, 0), - gsSP2Triangles(7, 9, 3, 0, 7, 3, 2, 0), - gsSP2Triangles(10, 3, 9, 0, 10, 9, 11, 0), - gsSP2Triangles(10, 11, 12, 0, 3, 10, 13, 0), - gsSP2Triangles(3, 13, 14, 0, 5, 3, 14, 0), - gsSP2Triangles(15, 5, 14, 0, 15, 14, 16, 0), - gsSP2Triangles(17, 18, 19, 0, 17, 19, 20, 0), - gsSP2Triangles(19, 21, 20, 0, 19, 22, 23, 0), - gsSP2Triangles(19, 23, 21, 0, 20, 21, 24, 0), - gsSP2Triangles(21, 25, 26, 0, 21, 26, 24, 0), - gsSP2Triangles(20, 24, 27, 0, 20, 27, 28, 0), - gsSPVertex(vtx_C26A60, 8, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 3, 4, 0, 4, 3, 5, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSPVertex(vtx_C26AE0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0), - gsSP2Triangles(4, 5, 3, 0, 6, 4, 3, 0), - gsSP2Triangles(5, 1, 3, 0, 1, 7, 8, 0), - gsSP2Triangles(9, 2, 1, 0, 9, 1, 8, 0), - gsSP2Triangles(5, 10, 1, 0, 10, 7, 1, 0), - gsSP2Triangles(5, 4, 10, 0, 11, 10, 4, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(14, 13, 16, 0, 14, 17, 15, 0), - gsSP2Triangles(14, 18, 19, 0, 17, 14, 19, 0), - gsSP2Triangles(14, 16, 20, 0, 18, 14, 20, 0), - gsSP2Triangles(21, 16, 22, 0, 16, 21, 20, 0), - gsSP2Triangles(18, 20, 21, 0, 21, 23, 24, 0), - gsSP2Triangles(21, 25, 23, 0, 21, 26, 25, 0), - gsSP2Triangles(26, 21, 22, 0, 18, 21, 24, 0), - gsSP2Triangles(11, 4, 27, 0, 28, 29, 4, 0), - gsSP2Triangles(6, 28, 4, 0, 29, 27, 4, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024EE18_C0C698[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C26750, 20, 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), - gsSPEndDisplayList(), -}; - -Gfx D_8024EE98_C0C718[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024EE18_C0C698), - gsSPDisplayList(D_8024ECB0_C0C530), - gsSPEndDisplayList(), -}; - -Gfx D_8024EEC8_C0C748[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802536E0_C10F60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024EE98_C0C718), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024EF00_C0C780[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26710, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024EF60_C0C7E0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802536A0_C10F20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024EF00_C0C780), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024EF98_C0C818[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C266D0, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024EFF8_C0C878[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253660_C10EE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024EF98_C0C818), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F030_C0C8B0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26690, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F090_C0C910[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253620_C10EA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F030_C0C8B0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F0C8_C0C948[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26650, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F128_C0C9A8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802535E0_C10E60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F0C8_C0C948), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F160_C0C9E0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26610, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F1C0_C0CA40[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802535A0_C10E20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F160_C0C9E0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F1F8_C0CA78[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C265D0, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F258_C0CAD8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253560_C10DE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F1F8_C0CA78), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F290_C0CB10[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26590, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F2F0_C0CB70[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253520_C10DA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F290_C0CB10), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F328_C0CBA8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26550, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F388_C0CC08[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802534E0_C10D60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F328_C0CBA8), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F3C0_C0CC40[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26510, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F420_C0CCA0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802534A0_C10D20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F3C0_C0CC40), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F458_C0CCD8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024F420_C0CCA0), - gsSPDisplayList(D_8024F388_C0CC08), - gsSPDisplayList(D_8024F2F0_C0CB70), - gsSPDisplayList(D_8024F258_C0CAD8), - gsSPDisplayList(D_8024F1C0_C0CA40), - gsSPDisplayList(D_8024F128_C0C9A8), - gsSPDisplayList(D_8024F090_C0C910), - gsSPDisplayList(D_8024EFF8_C0C878), - gsSPDisplayList(D_8024EF60_C0C7E0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F4C0_C0CD40[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C264D0, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F520_C0CDA0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253460_C10CE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F4C0_C0CD40), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F558_C0CDD8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26490, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F5B8_C0CE38[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253420_C10CA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F558_C0CDD8), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F5F0_C0CE70[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26450, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F650_C0CED0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802533E0_C10C60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F5F0_C0CE70), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F688_C0CF08[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26410, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F6E8_C0CF68[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802533A0_C10C20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F688_C0CF08), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F720_C0CFA0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C263D0, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F780_C0D000[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253360_C10BE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F720_C0CFA0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F7B8_C0D038[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26390, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F818_C0D098[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253320_C10BA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F7B8_C0D038), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F850_C0D0D0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26350, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F8B0_C0D130[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802532E0_C10B60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F850_C0D0D0), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F8E8_C0D168[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26310, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F948_C0D1C8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802532A0_C10B20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F8E8_C0D168), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024F980_C0D200[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C262D0, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024F9E0_C0D260[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253260_C10AE0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024F980_C0D200), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024FA18_C0D298[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26290, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024FA78_C0D2F8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253220_C10AA0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024FA18_C0D298), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024FAB0_C0D330[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C26250, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024FB10_C0D390[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802531E0_C10A60), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_8024FAB0_C0D330), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_8024FB48_C0D3C8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024FB10_C0D390), - gsSPDisplayList(D_8024FA78_C0D2F8), - gsSPDisplayList(D_8024F9E0_C0D260), - gsSPDisplayList(D_8024F948_C0D1C8), - gsSPDisplayList(D_8024F8B0_C0D130), - gsSPDisplayList(D_8024F818_C0D098), - gsSPDisplayList(D_8024F780_C0D000), - gsSPDisplayList(D_8024F6E8_C0CF68), - gsSPDisplayList(D_8024F650_C0CED0), - gsSPDisplayList(D_8024F5B8_C0CE38), - gsSPDisplayList(D_8024F520_C0CDA0), - gsSPEndDisplayList(), -}; - -Gfx D_8024FBC0_C0D440[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C26130, 18, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), - gsSP2Triangles(7, 10, 11, 0, 7, 11, 8, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(13, 16, 17, 0, 13, 17, 14, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024FC48_C0D4C8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C25950, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), - gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), - gsSP2Triangles(5, 8, 9, 0, 5, 9, 6, 0), - gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), - gsSP2Triangles(10, 12, 13, 0, 10, 13, 11, 0), - gsSP2Triangles(3, 14, 15, 0, 3, 15, 4, 0), - gsSP2Triangles(16, 17, 18, 0, 16, 18, 19, 0), - gsSP2Triangles(17, 20, 21, 0, 17, 21, 18, 0), - gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(28, 24, 27, 0, 28, 27, 29, 0), - gsSPVertex(vtx_C25A30, 2, 0), - gsSPVertex(vtx_C25B30, 11, 2), - gsSPVertex(vtx_C25C00, 1, 13), - gsSPVertex(vtx_C25DA0, 17, 14), - gsSP2Triangles(0, 2, 14, 0, 0, 14, 1, 0), - gsSP2Triangles(3, 4, 15, 0, 3, 15, 16, 0), - gsSP2Triangles(4, 12, 17, 0, 4, 17, 15, 0), - gsSP2Triangles(5, 18, 19, 0, 5, 19, 20, 0), - gsSP2Triangles(6, 5, 20, 0, 6, 20, 21, 0), - gsSP2Triangles(7, 22, 23, 0, 7, 23, 24, 0), - gsSP2Triangles(8, 7, 24, 0, 8, 24, 25, 0), - gsSP2Triangles(9, 8, 25, 0, 9, 25, 26, 0), - gsSP2Triangles(9, 26, 27, 0, 10, 11, 28, 0), - gsSP2Triangles(10, 28, 29, 0, 11, 13, 30, 0), - gsSP1Triangle(11, 30, 28, 0), - gsSPVertex(vtx_C25AB0, 2, 0), - gsSPVertex(vtx_C25BD0, 13, 2), - gsSPVertex(vtx_C25DD0, 1, 15), - gsSPVertex(vtx_C25EA0, 16, 16), - gsSP2Triangles(2, 3, 17, 0, 2, 17, 15, 0), - gsSP2Triangles(3, 18, 17, 0, 4, 19, 20, 0), - gsSP2Triangles(5, 4, 20, 0, 5, 20, 16, 0), - gsSP2Triangles(0, 6, 1, 0, 7, 8, 21, 0), - gsSP2Triangles(7, 21, 22, 0, 8, 23, 21, 0), - gsSP2Triangles(9, 24, 25, 0, 10, 9, 25, 0), - gsSP2Triangles(10, 25, 26, 0, 11, 10, 26, 0), - gsSP2Triangles(11, 26, 27, 0, 12, 11, 27, 0), - gsSP2Triangles(12, 27, 28, 0, 13, 29, 30, 0), - gsSP1Triangle(13, 30, 31, 0), - gsSPVertex(vtx_C25C20, 1, 0), - gsSPVertex(vtx_C25C80, 12, 1), - gsSPVertex(vtx_C25F00, 1, 13), - gsSPVertex(vtx_C25F90, 17, 14), - gsSP2Triangles(2, 1, 14, 0, 2, 14, 15, 0), - gsSP2Triangles(3, 0, 13, 0, 3, 13, 16, 0), - gsSP2Triangles(4, 5, 17, 0, 4, 17, 18, 0), - gsSP2Triangles(4, 18, 19, 0, 5, 6, 20, 0), - gsSP2Triangles(5, 20, 17, 0, 6, 21, 22, 0), - gsSP2Triangles(6, 22, 20, 0, 7, 3, 16, 0), - gsSP2Triangles(7, 16, 23, 0, 8, 9, 24, 0), - gsSP2Triangles(8, 24, 25, 0, 9, 26, 27, 0), - gsSP2Triangles(9, 27, 24, 0, 10, 11, 28, 0), - gsSP2Triangles(10, 28, 29, 0, 11, 12, 30, 0), - gsSP1Triangle(11, 30, 28, 0), - gsSPVertex(vtx_C25CF0, 1, 0), - gsSPVertex(vtx_C25D30, 7, 1), - gsSPVertex(vtx_C26040, 1, 8), - gsSPVertex(vtx_C26090, 10, 9), - gsSP2Triangles(1, 2, 10, 0, 1, 10, 9, 0), - gsSP2Triangles(2, 11, 10, 0, 3, 0, 8, 0), - gsSP2Triangles(3, 8, 12, 0, 4, 13, 14, 0), - gsSP2Triangles(4, 14, 15, 0, 5, 4, 15, 0), - gsSP2Triangles(5, 15, 16, 0, 6, 5, 16, 0), - gsSP2Triangles(6, 16, 17, 0, 6, 17, 18, 0), - gsSP1Triangle(7, 3, 12, 0), - gsSPEndDisplayList(), -}; - -Gfx D_8024FEB0_C0D730[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024FC48_C0D4C8), - gsSPDisplayList(D_8024FBC0_C0D440), - gsSPEndDisplayList(), -}; - -Gfx D_8024FEE0_C0D760[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING | G_SHADING_SMOOTH), - gsSPSetGeometryMode(G_CULL_BACK), - gsSPVertex(vtx_C25350, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(6, 8, 7, 0, 9, 10, 11, 0), - gsSP2Triangles(9, 11, 12, 0, 10, 13, 14, 0), - gsSP2Triangles(10, 14, 11, 0, 15, 16, 17, 0), - gsSP2Triangles(15, 17, 18, 0, 15, 18, 19, 0), - gsSP2Triangles(16, 20, 21, 0, 16, 21, 17, 0), - gsSP2Triangles(20, 22, 23, 0, 20, 23, 21, 0), - gsSP2Triangles(24, 25, 26, 0, 27, 24, 26, 0), - gsSP1Triangle(27, 26, 28, 0), - gsSPVertex(vtx_C25500, 17, 0), - gsSPVertex(vtx_C25710, 14, 17), - gsSP2Triangles(2, 3, 4, 0, 2, 4, 5, 0), - gsSP2Triangles(6, 2, 5, 0, 6, 5, 7, 0), - gsSP2Triangles(8, 6, 7, 0, 8, 7, 17, 0), - gsSP2Triangles(8, 17, 18, 0, 9, 10, 19, 0), - gsSP2Triangles(9, 19, 20, 0, 10, 21, 22, 0), - gsSP2Triangles(10, 22, 19, 0, 11, 0, 1, 0), - gsSP2Triangles(11, 1, 23, 0, 12, 11, 23, 0), - gsSP2Triangles(12, 23, 24, 0, 13, 14, 25, 0), - gsSP2Triangles(13, 25, 26, 0, 14, 27, 28, 0), - gsSP2Triangles(14, 28, 25, 0, 15, 16, 29, 0), - gsSP1Triangle(15, 29, 30, 0), - gsSPVertex(vtx_C25600, 13, 0), - gsSPVertex(vtx_C257D0, 1, 13), - gsSPVertex(vtx_C257F0, 17, 14), - gsSP2Triangles(0, 1, 14, 0, 0, 14, 13, 0), - gsSP2Triangles(1, 2, 15, 0, 1, 15, 14, 0), - gsSP2Triangles(2, 16, 15, 0, 3, 4, 17, 0), - gsSP2Triangles(4, 5, 18, 0, 4, 18, 17, 0), - gsSP2Triangles(5, 6, 19, 0, 5, 19, 18, 0), - gsSP2Triangles(6, 20, 21, 0, 6, 21, 19, 0), - gsSP2Triangles(7, 22, 23, 0, 7, 23, 24, 0), - gsSP2Triangles(8, 7, 24, 0, 8, 24, 25, 0), - gsSP2Triangles(9, 8, 25, 0, 9, 25, 26, 0), - gsSP2Triangles(10, 9, 26, 0, 11, 12, 27, 0), - gsSP2Triangles(11, 27, 28, 0, 12, 29, 30, 0), - gsSP1Triangle(12, 30, 27, 0), - gsSPVertex(vtx_C256D0, 4, 0), - gsSPVertex(vtx_C25900, 5, 4), - gsSP2Triangles(0, 1, 4, 0, 0, 4, 5, 0), - gsSP2Triangles(1, 6, 4, 0, 2, 0, 5, 0), - gsSP2Triangles(2, 5, 7, 0, 3, 2, 7, 0), - gsSP1Triangle(3, 7, 8, 0), - gsSPEndDisplayList(), -}; - -Gfx D_802500A0_C0D920[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_8024FEE0_C0D760), - gsSPEndDisplayList(), -}; - -Gfx D_802500C8_C0D948[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_802500A0_C0D920), - gsSPDisplayList(D_8024FEB0_C0D730), - gsSPDisplayList(D_8024FB48_C0D3C8), - gsSPDisplayList(D_8024F458_C0CCD8), - gsSPEndDisplayList(), -}; - -Gfx D_80250108_C0D988[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C25310, 4, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250168_C0D9E8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C25050, 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(vtx_C25250, 12, 0), - gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), - gsSP2Triangles(1, 6, 7, 0, 1, 7, 8, 0), - gsSP2Triangles(2, 9, 10, 0, 2, 10, 11, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250220_C0DAA0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C24FB0, 10, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), - gsSP2Triangles(1, 4, 3, 0, 5, 6, 7, 0), - gsSP2Triangles(5, 7, 8, 0, 5, 8, 9, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250290_C0DB10[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C24F30, 8, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSPEndDisplayList(), -}; - -Gfx D_802502F8_C0DB78[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C24EB0, 8, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250360_C0DBE0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C24350, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), - gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), - gsSP2Triangles(7, 8, 9, 0, 5, 7, 10, 0), - gsSP2Triangles(5, 10, 11, 0, 5, 12, 13, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 17, 18, 0), - gsSP2Triangles(14, 18, 19, 0, 14, 20, 17, 0), - gsSP2Triangles(17, 21, 22, 0, 3, 23, 4, 0), - gsSP2Triangles(23, 24, 4, 0, 23, 25, 26, 0), - gsSP2Triangles(23, 26, 24, 0, 26, 27, 24, 0), - gsSP2Triangles(28, 29, 30, 0, 28, 30, 31, 0), - gsSPVertex(vtx_C24510, 1, 0), - gsSPVertex(vtx_C24540, 12, 1), - gsSPVertex(vtx_C24730, 17, 13), - gsSP2Triangles(0, 1, 2, 0, 3, 13, 14, 0), - gsSP2Triangles(4, 15, 3, 0, 4, 3, 14, 0), - gsSP2Triangles(4, 14, 16, 0, 5, 17, 18, 0), - gsSP2Triangles(6, 19, 20, 0, 7, 21, 22, 0), - gsSP2Triangles(8, 23, 24, 0, 9, 4, 16, 0), - gsSP2Triangles(10, 11, 25, 0, 11, 9, 16, 0), - gsSP2Triangles(11, 16, 25, 0, 12, 26, 27, 0), - gsSP2Triangles(12, 28, 26, 0, 12, 29, 28, 0), - gsSPVertex(vtx_C24600, 10, 0), - gsSPVertex(vtx_C24840, 20, 10), - gsSP2Triangles(0, 10, 11, 0, 0, 12, 10, 0), - gsSP2Triangles(0, 13, 12, 0, 1, 14, 2, 0), - gsSP2Triangles(1, 2, 15, 0, 1, 15, 16, 0), - gsSP2Triangles(1, 17, 18, 0, 2, 19, 20, 0), - gsSP2Triangles(3, 21, 22, 0, 4, 23, 3, 0), - gsSP2Triangles(4, 3, 22, 0, 4, 22, 24, 0), - gsSP2Triangles(5, 4, 24, 0, 6, 7, 25, 0), - gsSP2Triangles(7, 26, 25, 0, 7, 27, 26, 0), - gsSP2Triangles(8, 9, 28, 0, 8, 28, 29, 0), - gsSPVertex(vtx_C24690, 10, 0), - gsSPVertex(vtx_C24960, 1, 10), - gsSPVertex(vtx_C24980, 21, 11), - gsSP2Triangles(0, 11, 12, 0, 0, 12, 10, 0), - gsSP2Triangles(1, 13, 14, 0, 1, 14, 15, 0), - gsSP2Triangles(2, 16, 17, 0, 2, 17, 18, 0), - gsSP2Triangles(3, 19, 20, 0, 3, 20, 21, 0), - gsSP2Triangles(4, 3, 21, 0, 4, 21, 22, 0), - gsSP2Triangles(5, 6, 23, 0, 6, 24, 7, 0), - gsSP2Triangles(6, 7, 25, 0, 6, 25, 23, 0), - gsSP2Triangles(7, 26, 25, 0, 8, 27, 28, 0), - gsSP2Triangles(8, 9, 29, 0, 8, 29, 30, 0), - gsSP1Triangle(8, 31, 9, 0), - gsSPVertex(vtx_C24720, 1, 0), - gsSPVertex(vtx_C24AD0, 2, 1), - gsSP1Triangle(0, 1, 2, 0), - gsSPVertex(vtx_C24AF0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 4, 2, 0), - gsSP2Triangles(5, 6, 2, 0, 2, 7, 0, 0), - gsSP2Triangles(3, 2, 1, 0, 2, 6, 8, 0), - gsSP2Triangles(2, 8, 7, 0, 5, 2, 4, 0), - gsSP2Triangles(9, 3, 10, 0, 9, 4, 3, 0), - gsSP2Triangles(11, 9, 10, 0, 9, 11, 12, 0), - gsSP2Triangles(13, 14, 9, 0, 13, 9, 12, 0), - gsSP2Triangles(9, 5, 4, 0, 5, 9, 14, 0), - gsSP2Triangles(15, 16, 17, 0, 15, 18, 19, 0), - gsSP2Triangles(15, 19, 16, 0, 20, 15, 17, 0), - gsSP2Triangles(15, 20, 21, 0, 18, 15, 22, 0), - gsSP2Triangles(23, 22, 15, 0, 23, 15, 21, 0), - gsSP2Triangles(16, 24, 25, 0, 16, 19, 24, 0), - gsSP2Triangles(18, 26, 24, 0, 18, 24, 19, 0), - gsSP2Triangles(24, 26, 27, 0, 24, 27, 28, 0), - gsSP2Triangles(24, 28, 29, 0, 29, 25, 24, 0), - gsSPVertex(vtx_C24CD0, 30, 0), - gsSP2Triangles(0, 2, 14, 0, 1, 14, 2, 0), - gsSP2Triangles(1, 2, 15, 0, 2, 0, 16, 0), - gsSP2Triangles(2, 3, 15, 0, 3, 2, 17, 0), - gsSP2Triangles(2, 4, 17, 0, 2, 16, 4, 0), - gsSP2Triangles(0, 5, 16, 0, 4, 16, 5, 0), - gsSP2Triangles(4, 5, 18, 0, 0, 19, 5, 0), - gsSP2Triangles(5, 19, 20, 0, 6, 18, 5, 0), - gsSP2Triangles(5, 21, 6, 0, 5, 20, 21, 0), - gsSP2Triangles(7, 22, 8, 0, 8, 23, 24, 0), - gsSP2Triangles(8, 24, 9, 0, 9, 25, 8, 0), - gsSP2Triangles(10, 8, 25, 0, 10, 26, 8, 0), - gsSP2Triangles(7, 8, 26, 0, 8, 22, 23, 0), - gsSP2Triangles(11, 7, 26, 0, 12, 11, 27, 0), - gsSP2Triangles(11, 26, 10, 0, 11, 10, 28, 0), - gsSP2Triangles(13, 11, 28, 0, 11, 13, 27, 0), - gsSP2Triangles(7, 11, 29, 0, 12, 29, 11, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250648_C0DEC8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_80250360_C0DBE0), - gsSPDisplayList(D_802502F8_C0DB78), - gsSPDisplayList(D_80250290_C0DB10), - gsSPDisplayList(D_80250220_C0DAA0), - gsSPDisplayList(D_80250168_C0D9E8), - gsSPDisplayList(D_80250108_C0D988), - gsSPEndDisplayList(), -}; - -Gfx D_80250698_C0DF18[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A5F0_C07E70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C241D0, 24, 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), - gsSPEndDisplayList(), -}; - -Gfx D_80250720_C0DFA0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C240D0, 16, 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), - gsSPEndDisplayList(), -}; - -Gfx D_80250798_C0E018[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C23FD0, 16, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 3, 4, 0, 5, 6, 2, 0), - gsSP2Triangles(5, 2, 1, 0, 5, 1, 7, 0), - gsSP2Triangles(8, 9, 10, 0, 8, 10, 11, 0), - gsSP2Triangles(8, 11, 12, 0, 12, 11, 13, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250820_C0E0A0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C23F10, 12, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 4, 0), - gsSP2Triangles(9, 10, 8, 0, 9, 8, 11, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250898_C0E118[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C23E50, 12, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(5, 6, 7, 0, 5, 7, 8, 0), - gsSP2Triangles(9, 6, 10, 0, 9, 10, 11, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250910_C0E190[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C230A0, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(2, 4, 3, 0, 2, 5, 6, 0), - gsSP2Triangles(2, 6, 4, 0, 4, 7, 8, 0), - gsSP2Triangles(4, 8, 9, 0, 3, 4, 9, 0), - gsSP2Triangles(10, 11, 12, 0, 10, 12, 13, 0), - gsSP2Triangles(11, 14, 12, 0, 11, 15, 16, 0), - gsSP2Triangles(11, 16, 14, 0, 12, 14, 17, 0), - gsSP2Triangles(18, 12, 17, 0, 18, 17, 19, 0), - gsSP2Triangles(14, 20, 21, 0, 14, 21, 17, 0), - gsSP2Triangles(3, 9, 22, 0, 3, 22, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(25, 28, 26, 0, 29, 28, 25, 0), - gsSP2Triangles(30, 29, 25, 0, 30, 25, 31, 0), - gsSPVertex(vtx_C23240, 1, 0), - gsSPVertex(vtx_C23260, 2, 1), - gsSPVertex(vtx_C232A0, 12, 3), - gsSPVertex(vtx_C234B0, 17, 15), - gsSP2Triangles(1, 3, 15, 0, 1, 15, 0, 0), - gsSP2Triangles(2, 4, 16, 0, 2, 16, 1, 0), - gsSP2Triangles(5, 17, 6, 0, 5, 6, 7, 0), - gsSP2Triangles(6, 18, 19, 0, 6, 19, 8, 0), - gsSP2Triangles(6, 8, 7, 0, 7, 8, 20, 0), - gsSP2Triangles(7, 20, 21, 0, 7, 21, 22, 0), - gsSP2Triangles(8, 23, 24, 0, 8, 24, 20, 0), - gsSP2Triangles(9, 14, 13, 0, 10, 9, 13, 0), - gsSP2Triangles(10, 13, 25, 0, 9, 26, 27, 0), - gsSP2Triangles(9, 27, 14, 0, 11, 28, 29, 0), - gsSP2Triangles(11, 29, 14, 0, 11, 14, 27, 0), - gsSP2Triangles(12, 14, 29, 0, 12, 29, 30, 0), - gsSP1Triangle(12, 30, 31, 0), - gsSPVertex(vtx_C23330, 13, 0), - gsSPVertex(vtx_C235C0, 19, 13), - gsSP2Triangles(1, 2, 13, 0, 2, 0, 14, 0), - gsSP2Triangles(2, 14, 13, 0, 3, 1, 13, 0), - gsSP2Triangles(3, 13, 15, 0, 4, 16, 17, 0), - gsSP2Triangles(4, 17, 18, 0, 4, 18, 5, 0), - gsSP2Triangles(5, 18, 19, 0, 5, 19, 20, 0), - gsSP2Triangles(5, 20, 21, 0, 6, 22, 7, 0), - gsSP2Triangles(6, 7, 8, 0, 7, 9, 8, 0), - gsSP2Triangles(7, 23, 24, 0, 7, 24, 9, 0), - gsSP2Triangles(8, 25, 26, 0, 8, 26, 27, 0), - gsSP2Triangles(8, 9, 25, 0, 9, 28, 29, 0), - gsSP2Triangles(9, 29, 25, 0, 10, 30, 12, 0), - gsSP1Triangle(10, 12, 31, 0), - gsSPVertex(vtx_C233D0, 12, 0), - gsSPVertex(vtx_C236E0, 20, 12), - gsSP2Triangles(2, 3, 14, 0, 2, 14, 15, 0), - gsSP2Triangles(1, 0, 12, 0, 1, 12, 13, 0), - gsSP2Triangles(3, 16, 17, 0, 3, 17, 14, 0), - gsSP2Triangles(4, 16, 18, 0, 4, 18, 19, 0), - gsSP2Triangles(5, 20, 21, 0, 5, 21, 22, 0), - gsSP2Triangles(6, 5, 22, 0, 6, 22, 23, 0), - gsSP2Triangles(7, 9, 24, 0, 7, 24, 20, 0), - gsSP2Triangles(8, 25, 26, 0, 8, 26, 27, 0), - gsSP2Triangles(9, 28, 26, 0, 9, 26, 24, 0), - gsSP2Triangles(10, 29, 30, 0, 10, 30, 31, 0), - gsSP1Triangle(10, 31, 11, 0), - gsSPVertex(vtx_C23480, 3, 0), - gsSPVertex(vtx_C23810, 10, 3), - gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), - gsSP2Triangles(0, 5, 6, 0, 1, 7, 8, 0), - gsSP2Triangles(1, 8, 9, 0, 1, 9, 10, 0), - gsSP2Triangles(2, 9, 8, 0, 2, 8, 11, 0), - gsSP1Triangle(2, 11, 12, 0), - gsSPVertex(vtx_C238B0, 31, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 2, 0), - gsSP2Triangles(4, 1, 5, 0, 0, 6, 1, 0), - gsSP2Triangles(7, 1, 6, 0, 7, 5, 1, 0), - gsSP2Triangles(4, 8, 1, 0, 8, 3, 1, 0), - gsSP2Triangles(9, 10, 11, 0, 11, 12, 13, 0), - gsSP2Triangles(12, 11, 10, 0, 9, 11, 14, 0), - gsSP2Triangles(11, 15, 14, 0, 11, 16, 15, 0), - gsSP2Triangles(17, 11, 13, 0, 11, 17, 16, 0), - gsSP2Triangles(18, 4, 5, 0, 4, 18, 8, 0), - gsSP2Triangles(19, 18, 5, 0, 20, 8, 18, 0), - gsSP2Triangles(21, 22, 23, 0, 22, 21, 24, 0), - gsSP2Triangles(25, 21, 23, 0, 25, 26, 21, 0), - gsSP2Triangles(21, 9, 24, 0, 9, 21, 10, 0), - gsSP2Triangles(21, 12, 10, 0, 21, 26, 12, 0), - gsSP2Triangles(27, 28, 29, 0, 27, 30, 28, 0), - gsSPVertex(vtx_C239D0, 3, 0), - gsSPVertex(vtx_C23A70, 20, 3), - gsSPVertex(vtx_C23CE0, 8, 23), - gsSP2Triangles(6, 9, 3, 0, 7, 6, 3, 0), - gsSP2Triangles(7, 3, 23, 0, 8, 23, 3, 0), - gsSP2Triangles(8, 3, 5, 0, 3, 9, 4, 0), - gsSP2Triangles(7, 14, 6, 0, 10, 6, 14, 0), - gsSP2Triangles(10, 14, 24, 0, 11, 24, 14, 0), - gsSP2Triangles(12, 11, 14, 0, 13, 12, 14, 0), - gsSP2Triangles(13, 14, 23, 0, 14, 7, 23, 0), - gsSP2Triangles(1, 15, 0, 0, 15, 16, 0, 0), - gsSP2Triangles(16, 17, 0, 0, 2, 0, 17, 0), - gsSP2Triangles(18, 20, 25, 0, 18, 26, 20, 0), - gsSP2Triangles(18, 19, 26, 0, 19, 18, 27, 0), - gsSP2Triangles(20, 28, 25, 0, 20, 29, 28, 0), - gsSP2Triangles(20, 21, 29, 0, 21, 20, 30, 0), - gsSP2Triangles(20, 22, 30, 0, 22, 20, 26, 0), - gsSP1Triangle(19, 22, 26, 0), - gsSPVertex(vtx_C23B70, 1, 0), - gsSPVertex(vtx_C23BA0, 17, 1), - gsSPVertex(vtx_C23D20, 1, 18), - gsSPVertex(vtx_C23D60, 13, 19), - gsSP2Triangles(2, 5, 20, 0, 2, 3, 5, 0), - gsSP2Triangles(3, 7, 5, 0, 4, 8, 5, 0), - gsSP2Triangles(5, 6, 20, 0, 6, 5, 8, 0), - gsSP2Triangles(4, 5, 21, 0, 7, 21, 5, 0), - gsSP2Triangles(6, 8, 11, 0, 8, 22, 11, 0), - gsSP2Triangles(9, 11, 23, 0, 9, 20, 11, 0), - gsSP2Triangles(6, 11, 20, 0, 10, 23, 11, 0), - gsSP2Triangles(11, 22, 24, 0, 10, 11, 24, 0), - gsSP2Triangles(0, 12, 25, 0, 12, 0, 18, 0), - gsSP2Triangles(13, 0, 25, 0, 13, 19, 0, 0), - gsSP2Triangles(0, 19, 1, 0, 14, 15, 26, 0), - gsSP2Triangles(15, 17, 27, 0, 15, 28, 17, 0), - gsSP2Triangles(15, 14, 28, 0, 14, 16, 28, 0), - gsSP2Triangles(16, 17, 28, 0, 17, 16, 29, 0), - gsSP2Triangles(17, 30, 27, 0, 17, 31, 30, 0), - gsSPVertex(vtx_C23C70, 1, 0), - gsSPVertex(vtx_C23C90, 5, 1), - gsSPVertex(vtx_C23DD0, 1, 6), - gsSPVertex(vtx_C23E00, 1, 7), - gsSPVertex(vtx_C23E20, 3, 8), - gsSP2Triangles(0, 9, 1, 0, 3, 2, 7, 0), - gsSP2Triangles(4, 0, 10, 0, 4, 9, 0, 0), - gsSP2Triangles(0, 5, 10, 0, 5, 0, 6, 0), - gsSP1Triangle(2, 3, 8, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250D58_C0E5D8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_80250910_C0E190), - gsSPDisplayList(D_80250898_C0E118), - gsSPDisplayList(D_80250820_C0E0A0), - gsSPDisplayList(D_80250798_C0E018), - gsSPDisplayList(D_80250720_C0DFA0), - gsSPDisplayList(D_80250698_C0DF18), - gsSPEndDisplayList(), -}; - -Gfx D_80250DA8_C0E628[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_802531A0_C10A20), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_80250D58_C0E5D8), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_80250DE0_C0E660[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A170_C079F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C22EC0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 4, 5, 0, 0, 5, 1, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), - gsSP2Triangles(10, 11, 6, 0, 10, 6, 9, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(12, 15, 16, 0, 12, 16, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), - gsSP2Triangles(18, 21, 22, 0, 18, 22, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 26, 27, 0), - gsSP2Triangles(26, 28, 29, 0, 26, 29, 27, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250E88_C0E708[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_80249CF0_C07570), - gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPSetGeometryMode(G_SHADING_SMOOTH), - gsSPVertex(vtx_C22C00, 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(vtx_C22E00, 12, 0), - gsSP2Triangles(0, 3, 4, 0, 0, 4, 5, 0), - gsSP2Triangles(1, 6, 7, 0, 1, 7, 8, 0), - gsSP2Triangles(2, 9, 10, 0, 2, 10, 11, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250F40_C0E7C0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C22B00, 16, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 3, 4, 0, 2, 5, 6, 0), - gsSP2Triangles(2, 1, 5, 0, 1, 7, 5, 0), - gsSP2Triangles(8, 9, 10, 0, 9, 8, 11, 0), - gsSP2Triangles(9, 11, 12, 0, 9, 12, 13, 0), - gsSP2Triangles(9, 14, 10, 0, 15, 8, 10, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80250FC8_C0E848[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C229F0, 17, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), - gsSP2Triangles(6, 8, 9, 0, 6, 9, 7, 0), - gsSP2Triangles(8, 10, 11, 0, 8, 11, 9, 0), - gsSP2Triangles(12, 4, 11, 0, 12, 11, 13, 0), - gsSP2Triangles(14, 15, 10, 0, 14, 10, 16, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80251050_C0E8D0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C22950, 10, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(0, 4, 5, 0, 0, 5, 1, 0), - gsSP2Triangles(4, 6, 7, 0, 4, 7, 5, 0), - gsSP2Triangles(8, 6, 3, 0, 8, 3, 9, 0), - gsSPEndDisplayList(), -}; - -Gfx D_802510C8_C0E948[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C21930, 31, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 0, 2, 0), - gsSP2Triangles(3, 2, 4, 0, 0, 5, 6, 0), - gsSP2Triangles(0, 6, 7, 0, 0, 7, 8, 0), - gsSP2Triangles(1, 0, 8, 0, 1, 8, 9, 0), - gsSP2Triangles(10, 11, 12, 0, 10, 12, 13, 0), - gsSP2Triangles(11, 14, 12, 0, 11, 15, 16, 0), - gsSP2Triangles(11, 16, 17, 0, 11, 18, 15, 0), - gsSP2Triangles(14, 11, 17, 0, 14, 17, 19, 0), - gsSP2Triangles(14, 20, 21, 0, 14, 21, 12, 0), - gsSP2Triangles(1, 22, 23, 0, 1, 23, 2, 0), - gsSP2Triangles(24, 25, 26, 0, 27, 28, 26, 0), - gsSP2Triangles(29, 30, 27, 0, 29, 27, 26, 0), - gsSPVertex(vtx_C21AE0, 1, 0), - gsSPVertex(vtx_C21B20, 11, 1), - gsSPVertex(vtx_C21E00, 19, 12), - gsSP2Triangles(1, 12, 13, 0, 2, 14, 13, 0), - gsSP2Triangles(3, 4, 2, 0, 3, 2, 13, 0), - gsSP2Triangles(4, 3, 15, 0, 3, 16, 17, 0), - gsSP2Triangles(3, 17, 15, 0, 4, 15, 18, 0), - gsSP2Triangles(4, 18, 19, 0, 5, 20, 2, 0), - gsSP2Triangles(6, 7, 21, 0, 7, 22, 23, 0), - gsSP2Triangles(7, 23, 21, 0, 7, 6, 8, 0), - gsSP2Triangles(7, 8, 24, 0, 6, 21, 25, 0), - gsSP2Triangles(6, 25, 26, 0, 8, 27, 24, 0), - gsSP2Triangles(9, 28, 8, 0, 10, 29, 24, 0), - gsSP1Triangle(11, 30, 0, 0), - gsSPVertex(vtx_C21BD0, 12, 0), - gsSPVertex(vtx_C21F30, 18, 12), - gsSP2Triangles(0, 12, 13, 0, 0, 1, 12, 0), - gsSP2Triangles(1, 5, 14, 0, 1, 14, 15, 0), - gsSP2Triangles(1, 15, 12, 0, 2, 3, 16, 0), - gsSP2Triangles(3, 4, 16, 0, 4, 17, 16, 0), - gsSP2Triangles(5, 18, 19, 0, 5, 19, 14, 0), - gsSP2Triangles(6, 20, 21, 0, 7, 22, 23, 0), - gsSP2Triangles(8, 24, 25, 0, 9, 26, 25, 0), - gsSP2Triangles(10, 27, 9, 0, 10, 9, 25, 0), - gsSP2Triangles(11, 28, 9, 0, 5, 29, 18, 0), - gsSPVertex(vtx_C21C90, 10, 0), - gsSPVertex(vtx_C22050, 20, 10), - gsSP2Triangles(0, 1, 10, 0, 1, 2, 10, 0), - gsSP2Triangles(2, 11, 10, 0, 3, 5, 12, 0), - gsSP2Triangles(3, 12, 13, 0, 3, 13, 14, 0), - gsSP2Triangles(4, 3, 14, 0, 4, 14, 15, 0), - gsSP2Triangles(5, 16, 17, 0, 5, 17, 18, 0), - gsSP2Triangles(5, 18, 12, 0, 6, 19, 20, 0), - gsSP2Triangles(6, 20, 21, 0, 6, 22, 23, 0), - gsSP2Triangles(6, 23, 19, 0, 7, 24, 21, 0), - gsSP2Triangles(7, 21, 25, 0, 8, 7, 25, 0), - gsSP2Triangles(8, 25, 26, 0, 9, 27, 28, 0), - gsSP1Triangle(9, 28, 29, 0), - gsSPVertex(vtx_C21D30, 12, 0), - gsSPVertex(vtx_C22190, 20, 12), - gsSP2Triangles(0, 12, 13, 0, 0, 13, 14, 0), - gsSP2Triangles(1, 2, 15, 0, 1, 15, 16, 0), - gsSP2Triangles(2, 3, 17, 0, 2, 17, 15, 0), - gsSP2Triangles(3, 18, 4, 0, 3, 4, 19, 0), - gsSP2Triangles(4, 20, 21, 0, 4, 21, 19, 0), - gsSP2Triangles(5, 22, 23, 0, 5, 23, 24, 0), - gsSP2Triangles(6, 7, 25, 0, 7, 26, 25, 0), - gsSP2Triangles(7, 6, 27, 0, 7, 27, 28, 0), - gsSP2Triangles(7, 28, 29, 0, 8, 6, 25, 0), - gsSP2Triangles(9, 11, 10, 0, 9, 10, 30, 0), - gsSP1Triangle(9, 30, 31, 0), - gsSPVertex(vtx_C21DD0, 3, 0), - gsSPVertex(vtx_C222D0, 6, 3), - gsSP2Triangles(0, 1, 3, 0, 1, 4, 3, 0), - gsSP2Triangles(0, 3, 5, 0, 2, 6, 7, 0), - gsSP1Triangle(2, 7, 8, 0), - gsSPVertex(vtx_C22330, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 1, 0, 0), - gsSP2Triangles(1, 3, 4, 0, 1, 4, 2, 0), - gsSP2Triangles(3, 5, 4, 0, 6, 2, 4, 0), - gsSP2Triangles(7, 8, 2, 0, 9, 2, 8, 0), - gsSP2Triangles(9, 0, 2, 0, 2, 6, 10, 0), - gsSP2Triangles(7, 2, 10, 0, 3, 11, 12, 0), - gsSP2Triangles(13, 5, 3, 0, 14, 13, 3, 0), - gsSP2Triangles(11, 3, 0, 0, 12, 14, 3, 0), - gsSP2Triangles(15, 16, 17, 0, 18, 15, 17, 0), - gsSP2Triangles(19, 17, 16, 0, 20, 17, 21, 0), - gsSP2Triangles(20, 18, 17, 0, 17, 22, 21, 0), - gsSP2Triangles(19, 23, 17, 0, 22, 17, 23, 0), - gsSP2Triangles(24, 21, 25, 0, 22, 25, 21, 0), - gsSP2Triangles(22, 23, 25, 0, 26, 27, 28, 0), - gsSP1Triangle(29, 26, 28, 0), - gsSPVertex(vtx_C224A0, 3, 0), - gsSPVertex(vtx_C224E0, 20, 3), - gsSPVertex(vtx_C22780, 1, 23), - gsSPVertex(vtx_C22810, 6, 24), - gsSP2Triangles(4, 3, 6, 0, 7, 4, 6, 0), - gsSP2Triangles(8, 5, 4, 0, 4, 9, 8, 0), - gsSP2Triangles(9, 4, 23, 0, 4, 7, 23, 0), - gsSP2Triangles(10, 24, 25, 0, 11, 24, 10, 0), - gsSP2Triangles(12, 26, 10, 0, 12, 10, 25, 0), - gsSP2Triangles(13, 10, 26, 0, 13, 27, 10, 0), - gsSP2Triangles(14, 10, 27, 0, 14, 11, 10, 0), - gsSP2Triangles(14, 16, 11, 0, 15, 11, 16, 0), - gsSP2Triangles(16, 14, 27, 0, 17, 16, 27, 0), - gsSP2Triangles(15, 16, 28, 0, 18, 28, 16, 0), - gsSP2Triangles(17, 19, 16, 0, 19, 18, 16, 0), - gsSP2Triangles(0, 20, 2, 0, 1, 2, 21, 0), - gsSP2Triangles(22, 21, 2, 0, 2, 20, 29, 0), - gsSP1Triangle(22, 2, 29, 0), - gsSPVertex(vtx_C22620, 22, 0), - gsSPVertex(vtx_C22870, 8, 22), - gsSP2Triangles(0, 22, 3, 0, 0, 3, 23, 0), - gsSP2Triangles(1, 3, 24, 0, 2, 5, 3, 0), - gsSP2Triangles(3, 1, 23, 0, 4, 3, 22, 0), - gsSP2Triangles(4, 2, 3, 0, 5, 24, 3, 0), - gsSP2Triangles(6, 11, 25, 0, 7, 6, 25, 0), - gsSP2Triangles(7, 26, 6, 0, 8, 6, 26, 0), - gsSP2Triangles(8, 9, 6, 0, 9, 10, 6, 0), - gsSP2Triangles(10, 27, 6, 0, 11, 6, 27, 0), - gsSP2Triangles(12, 14, 15, 0, 13, 12, 15, 0), - gsSP2Triangles(14, 28, 15, 0, 15, 10, 9, 0), - gsSP2Triangles(15, 16, 13, 0, 15, 28, 27, 0), - gsSP2Triangles(10, 15, 27, 0, 16, 15, 9, 0), - gsSP2Triangles(17, 18, 19, 0, 18, 29, 19, 0), - gsSP2Triangles(19, 29, 24, 0, 5, 19, 24, 0), - gsSP2Triangles(19, 5, 2, 0, 20, 19, 2, 0), - gsSP2Triangles(19, 20, 21, 0, 21, 17, 19, 0), - gsSPVertex(vtx_C22510, 2, 0), - gsSPVertex(vtx_C22780, 9, 2), - gsSPVertex(vtx_C228F0, 6, 11), - gsSP2Triangles(1, 0, 6, 0, 2, 1, 6, 0), - gsSP2Triangles(3, 2, 6, 0, 4, 6, 0, 0), - gsSP2Triangles(3, 6, 11, 0, 5, 11, 6, 0), - gsSP2Triangles(5, 6, 12, 0, 6, 4, 12, 0), - gsSP2Triangles(7, 8, 13, 0, 8, 14, 13, 0), - gsSP2Triangles(9, 10, 15, 0, 10, 16, 15, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80251528_C0EDA8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_802510C8_C0E948), - gsSPDisplayList(D_80251050_C0E8D0), - gsSPDisplayList(D_80250FC8_C0E848), - gsSPDisplayList(D_80250F40_C0E7C0), - gsSPDisplayList(D_80250E88_C0E708), - gsSPDisplayList(D_80250DE0_C0E660), - gsSPEndDisplayList(), -}; - -Gfx D_80251578_C0EDF8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPMatrix(&N(D_80253160_C109E0), G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW), - gsSPDisplayList(D_80251528_C0EDA8), - gsSPPopMatrix(G_MTX_MODELVIEW), - gsSPEndDisplayList(), -}; - -Gfx D_802515B0_C0EE30[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), - gsSPDisplayList(D_8024A170_C079F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C21810, 18, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(2, 4, 5, 0, 2, 5, 3, 0), - gsSP2Triangles(6, 7, 8, 0, 6, 8, 9, 0), - gsSP2Triangles(6, 10, 11, 0, 6, 11, 7, 0), - gsSP2Triangles(12, 13, 14, 0, 12, 14, 15, 0), - gsSP2Triangles(14, 16, 17, 0, 14, 17, 15, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80251638_C0EEB8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80248FF0_C06870), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C21770, 10, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(1, 4, 2, 0, 5, 6, 7, 0), - gsSP2Triangles(6, 8, 7, 0, 9, 5, 7, 0), - gsSPEndDisplayList(), -}; - -Gfx D_802516A8_C0EF28[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_8024B6F0_C08F70), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C21700, 7, 0), - gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), - gsSP2Triangles(4, 5, 3, 0, 4, 3, 6, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80251710_C0EF90[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80249870_C070F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C215A0, 22, 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(13, 16, 17, 0, 13, 17, 18, 0), - gsSP2Triangles(19, 20, 21, 0, 19, 21, 16, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80251798_C0F018[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsDPPipeSync(), - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), - gsSPDisplayList(D_80247F70_C057F0), - gsSPClearGeometryMode(G_LIGHTING), - gsSPSetGeometryMode(G_CULL_BACK | G_SHADING_SMOOTH), - gsSPVertex(vtx_C20F40, 32, 0), - gsSP2Triangles(0, 1, 2, 0, 1, 3, 4, 0), - gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0), - gsSP2Triangles(0, 2, 6, 0, 7, 8, 9, 0), - gsSP2Triangles(8, 10, 11, 0, 8, 11, 12, 0), - gsSP2Triangles(8, 12, 9, 0, 7, 9, 13, 0), - gsSP2Triangles(14, 15, 16, 0, 14, 16, 17, 0), - gsSP2Triangles(18, 19, 20, 0, 18, 20, 21, 0), - gsSP2Triangles(22, 23, 24, 0, 22, 24, 25, 0), - gsSP2Triangles(26, 27, 28, 0, 29, 30, 28, 0), - gsSPVertex(vtx_C21100, 2, 0), - gsSPVertex(vtx_C21130, 11, 2), - gsSPVertex(vtx_C211F0, 1, 13), - gsSPVertex(vtx_C21240, 18, 14), - gsSP2Triangles(2, 3, 1, 0, 2, 1, 0, 0), - gsSP2Triangles(4, 14, 1, 0, 5, 6, 15, 0), - gsSP2Triangles(6, 16, 15, 0, 5, 15, 17, 0), - gsSP2Triangles(7, 18, 19, 0, 7, 19, 20, 0), - gsSP2Triangles(8, 9, 21, 0, 8, 21, 22, 0), - gsSP2Triangles(9, 23, 24, 0, 9, 24, 25, 0), - gsSP2Triangles(10, 26, 27, 0, 10, 27, 28, 0), - gsSP2Triangles(11, 29, 30, 0, 11, 30, 27, 0), - gsSP1Triangle(12, 31, 13, 0), - gsSPVertex(vtx_C211E0, 6, 0), - gsSPVertex(vtx_C21360, 6, 6), - gsSP2Triangles(0, 6, 1, 0, 0, 1, 7, 0), - gsSP2Triangles(1, 8, 7, 0, 2, 9, 7, 0), - gsSP2Triangles(3, 4, 10, 0, 4, 5, 10, 0), - gsSP1Triangle(5, 11, 10, 0), - gsSPVertex(vtx_C213C0, 30, 0), - gsSP2Triangles(0, 1, 2, 0, 3, 4, 1, 0), - gsSP2Triangles(4, 5, 1, 0, 1, 5, 2, 0), - gsSP2Triangles(5, 6, 2, 0, 5, 4, 6, 0), - gsSP2Triangles(0, 2, 7, 0, 8, 7, 2, 0), - gsSP2Triangles(8, 2, 9, 0, 2, 10, 9, 0), - gsSP2Triangles(10, 2, 6, 0, 4, 3, 11, 0), - gsSP2Triangles(11, 12, 4, 0, 12, 13, 4, 0), - gsSP2Triangles(4, 14, 6, 0, 13, 14, 4, 0), - gsSP2Triangles(15, 16, 17, 0, 16, 18, 17, 0), - gsSP2Triangles(17, 18, 19, 0, 20, 17, 19, 0), - gsSP2Triangles(21, 15, 17, 0, 17, 22, 21, 0), - gsSP2Triangles(22, 17, 23, 0, 17, 20, 23, 0), - gsSP2Triangles(24, 25, 26, 0, 24, 27, 25, 0), - gsSP2Triangles(20, 19, 25, 0, 28, 25, 19, 0), - gsSP2Triangles(25, 28, 26, 0, 29, 25, 27, 0), - gsSP2Triangles(29, 23, 25, 0, 23, 20, 25, 0), - gsSPEndDisplayList(), -}; - -Gfx D_80251958_C0F1D8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_80251798_C0F018), - gsSPDisplayList(D_80251710_C0EF90), - gsSPDisplayList(D_802516A8_C0EF28), - gsSPDisplayList(D_80251638_C0EEB8), - gsSPDisplayList(D_802515B0_C0EE30), - gsSPEndDisplayList(), -}; - -Gfx D_802519A0_C0F220[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_80251958_C0F1D8), - gsSPDisplayList(D_80251578_C0EDF8), - gsSPDisplayList(D_80250DA8_C0E628), - gsSPDisplayList(D_80250648_C0DEC8), - gsSPDisplayList(D_802500C8_C0D948), - gsSPDisplayList(D_8024EEC8_C0C748), - gsSPEndDisplayList(), -}; - -Gfx D_802519F0_C0F270[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_802519A0_C0F220), - gsSPDisplayList(D_8024EC68_C0C4E8), - gsSPDisplayList(D_8024BD80_C09600), - gsSPEndDisplayList(), -}; - -Gfx D_80251A28_C0F2A8[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_802519F0_C0F270), - gsSPEndDisplayList(), -}; - -Gfx D_80251A50_C0F2D0[] = { - gsSPSetLights1(dgb_01_D_80253140_C109C0), - gsSPDisplayList(D_80251A28_C0F2A8), - gsSPEndDisplayList(), -}; - -static s32 N(pad_1)[] = { 0, 0 }; - -StaticAnimatorNode N(D_80251A80_C0F300) = { - .pos = { 225.0f, 255.0f, 0.0f }, -}; - -StaticAnimatorNode N(D_80251AAC_C0F32C) = { - .displayList = D_8024C098_C09918, - .pos = { 0.0f, -500.0f, 0.0f }, -}; - -StaticAnimatorNode N(D_80251AD8_C0F358) = { - .displayList = D_8024C030_C098B0, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251AAC_C0F32C), -}; - -StaticAnimatorNode N(D_80251B04_C0F384) = { - .displayList = D_8024BFC8_C09848, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251AD8_C0F358), -}; - -StaticAnimatorNode N(D_80251B30_C0F3B0) = { - .displayList = D_8024C2E0_C09B60, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251B04_C0F384), -}; - -StaticAnimatorNode N(D_80251B5C_C0F3DC) = { - .displayList = D_8024C1F0_C09A70, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251B30_C0F3B0), -}; - -StaticAnimatorNode N(D_80251B88_C0F408) = { - .displayList = D_8024C100_C09980, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251B5C_C0F3DC), -}; - -StaticAnimatorNode N(D_80251BB4_C0F434) = { - .child = &N(D_80251B88_C0F408), -}; - -StaticAnimatorNode N(D_80251BE0_C0F460) = { - .displayList = D_8024C560_C09DE0, - .pos = { 0.0f, -500.0f, 0.0f }, -}; - -StaticAnimatorNode N(D_80251C0C_C0F48C) = { - .displayList = D_8024C4C0_C09D40, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251BE0_C0F460), -}; - -StaticAnimatorNode N(D_80251C38_C0F4B8) = { - .displayList = D_8024C420_C09CA0, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80251C0C_C0F48C), -}; - -StaticAnimatorNode N(D_80251C64_C0F4E4) = { - .sibling = &N(D_80251BB4_C0F434), - .child = &N(D_80251C38_C0F4B8), -}; - -StaticAnimatorNode N(D_80251C90_C0F510) = { - .displayList = D_8024B770_C08FF0, -}; - -StaticAnimatorNode N(D_80251CBC_C0F53C) = { - .displayList = D_8024B8F8_C09178, - .sibling = &N(D_80251C90_C0F510), -}; - -StaticAnimatorNode N(D_80251CE8_C0F568) = { - .displayList = D_8024BAA0_C09320, - .sibling = &N(D_80251CBC_C0F53C), -}; - -StaticAnimatorNode N(D_80251D14_C0F594) = { - .displayList = D_802515B0_C0EE30, - .sibling = &N(D_80251CE8_C0F568), -}; - -StaticAnimatorNode N(D_80251D40_C0F5C0) = { - .displayList = D_80250168_C0D9E8, - .sibling = &N(D_80251D14_C0F594), -}; - -StaticAnimatorNode N(D_80251D6C_C0F5EC) = { - .displayList = D_80250108_C0D988, - .sibling = &N(D_80251D40_C0F5C0), -}; - -StaticAnimatorNode N(D_80251D98_C0F618) = { - .displayList = D_80251798_C0F018, - .sibling = &N(D_80251D6C_C0F5EC), -}; - -StaticAnimatorNode N(D_80251DC4_C0F644) = { - .displayList = D_80250360_C0DBE0, - .sibling = &N(D_80251D98_C0F618), -}; - -StaticAnimatorNode N(D_80251DF0_C0F670) = { - .displayList = D_80251710_C0EF90, - .sibling = &N(D_80251DC4_C0F644), -}; - -StaticAnimatorNode N(D_80251E1C_C0F69C) = { - .displayList = D_802502F8_C0DB78, - .sibling = &N(D_80251DF0_C0F670), -}; - -StaticAnimatorNode N(D_80251E48_C0F6C8) = { - .displayList = D_802516A8_C0EF28, - .sibling = &N(D_80251E1C_C0F69C), -}; - -StaticAnimatorNode N(D_80251E74_C0F6F4) = { - .displayList = D_80250290_C0DB10, - .sibling = &N(D_80251E48_C0F6C8), -}; - -StaticAnimatorNode N(D_80251EA0_C0F720) = { - .displayList = D_80251638_C0EEB8, - .sibling = &N(D_80251E74_C0F6F4), -}; - -StaticAnimatorNode N(D_80251ECC_C0F74C) = { - .displayList = D_80250220_C0DAA0, - .sibling = &N(D_80251EA0_C0F720), -}; - -StaticAnimatorNode N(D_80251EF8_C0F778) = { - .sibling = &N(D_80251C64_C0F4E4), - .child = &N(D_80251ECC_C0F74C), -}; - -StaticAnimatorNode N(D_80251F24_C0F7A4) = { - .displayList = D_8024FAB0_C0D330, - .rot = { 0x0000, 0x1FFF, 0x8001 }, - .pos = { -315.0f, 2.0f, -139.0f }, -}; - -StaticAnimatorNode N(D_80251F50_C0F7D0) = { - .displayList = D_8024FA18_C0D298, - .rot = { 0x8001, 0x2AAA, 0x8001 }, - .pos = { -455.0f, 421.0f, -20.0f }, - .sibling = &N(D_80251F24_C0F7A4), -}; - -StaticAnimatorNode N(D_80251F7C_C0F7FC) = { - .displayList = D_8024F980_C0D200, - .rot = { 0x8001, 0xE001, 0x0000 }, - .pos = { -385.0f, 2.0f, 169.0f }, - .sibling = &N(D_80251F50_C0F7D0), -}; - -StaticAnimatorNode N(D_80251FA8_C0F828) = { - .displayList = D_8024F8E8_C0D168, - .rot = { 0x0000, 0x2AAA, 0x8001 }, - .pos = { -105.0f, 2.0f, -210.0f }, - .sibling = &N(D_80251F7C_C0F7FC), -}; - -StaticAnimatorNode N(D_80251FD4_C0F854) = { - .displayList = D_8024F850_C0D0D0, - .rot = { 0x0000, 0xEAAB, 0x8001 }, - .pos = { -5.0f, 2.0f, -180.0f }, - .sibling = &N(D_80251FA8_C0F828), -}; - -StaticAnimatorNode N(D_80252000_C0F880) = { - .displayList = D_8024F7B8_C0D038, - .rot = { 0x8001, 0x0AAA, 0x0000 }, - .pos = { -195.0f, 2.0f, 259.0f }, - .sibling = &N(D_80251FD4_C0F854), -}; - -StaticAnimatorNode N(D_8025202C_C0F8AC) = { - .displayList = D_8024F720_C0CFA0, - .rot = { 0x8001, 0xD556, 0x8001 }, - .pos = { -65.0f, 2.0f, 189.0f }, - .sibling = &N(D_80252000_C0F880), -}; - -StaticAnimatorNode N(D_80252058_C0F8D8) = { - .displayList = D_8024F688_C0CF08, - .rot = { 0x8001, 0x0000, 0x0000 }, - .pos = { 275.0f, 2.0f, -129.0f }, - .sibling = &N(D_8025202C_C0F8AC), -}; - -StaticAnimatorNode N(D_80252084_C0F904) = { - .displayList = D_8024F5F0_C0CE70, - .rot = { 0x0000, 0xF556, 0x8001 }, - .pos = { 195.0f, 421.0f, -40.0f }, - .sibling = &N(D_80252058_C0F8D8), -}; - -StaticAnimatorNode N(D_802520B0_C0F930) = { - .displayList = D_8024F558_C0CDD8, - .rot = { 0x8001, 0x1555, 0x8001 }, - .pos = { 85.0f, 2.0f, 329.0f }, - .sibling = &N(D_80252084_C0F904), -}; - -StaticAnimatorNode N(D_802520DC_C0F95C) = { - .displayList = D_8024F4C0_C0CD40, - .rot = { 0x8001, 0x1555, 0x0000 }, - .pos = { 215.0f, 421.0f, 29.0f }, - .sibling = &N(D_802520B0_C0F930), -}; - -StaticAnimatorNode N(D_80252108_C0F988) = { - .sibling = &N(D_80251EF8_C0F778), - .child = &N(D_802520DC_C0F95C), -}; - -StaticAnimatorNode N(D_80252134_C0F9B4) = { - .displayList = D_8024F328_C0CBA8, - .rot = { 0x8001, 0x0000, 0x0000 }, - .pos = { 8.0f, -23.0f, -49.0f }, -}; - -StaticAnimatorNode N(D_80252160_C0F9E0) = { - .displayList = D_8024F160_C0C9E0, - .rot = { 0x0000, 0xF8E4, 0x8001 }, - .pos = { 73.0f, -23.0f, 20.0f }, - .sibling = &N(D_80252134_C0F9B4), -}; - -StaticAnimatorNode N(D_8025218C_C0FA0C) = { - .displayList = D_8024F1F8_C0CA78, - .rot = { 0x8001, 0x0000, 0x0000 }, - .pos = { -1.0f, -23.0f, 49.0f }, - .sibling = &N(D_80252160_C0F9E0), -}; - -StaticAnimatorNode N(D_802521B8_C0FA38) = { - .displayList = D_8024F290_C0CB10, - .rot = { 0x8001, 0x0000, 0x8001 }, - .pos = { 18.0f, -23.0f, 0.0f }, - .sibling = &N(D_8025218C_C0FA0C), -}; - -StaticAnimatorNode N(D_802521E4_C0FA64) = { - .rot = { 0x0000, 0x1FFF, 0x0000 }, - .pos = { 61.0f, 47.0f, -31.0f }, - .child = &N(D_802521B8_C0FA38), -}; - -StaticAnimatorNode N(D_80252210_C0FA90) = { - .displayList = D_8024F3C0_C0CC40, - .rot = { 0x8001, 0x0AAA, 0x0000 }, - .pos = { -415.0f, 21.0f, 20.0f }, - .sibling = &N(D_802521E4_C0FA64), -}; - -StaticAnimatorNode N(D_8025223C_C0FABC) = { - .displayList = D_8024F0C8_C0C948, - .rot = { 0x8001, 0xF8E4, 0x8001 }, - .pos = { 195.0f, 211.0f, -39.0f }, - .sibling = &N(D_80252210_C0FA90), -}; - -StaticAnimatorNode N(D_80252268_C0FAE8) = { - .displayList = D_8024F030_C0C8B0, - .rot = { 0x8001, 0xF1C8, 0x8001 }, - .pos = { 95.0f, 210.0f, -30.0f }, - .sibling = &N(D_8025223C_C0FABC), -}; - -StaticAnimatorNode N(D_80252294_C0FB14) = { - .displayList = D_8024EF98_C0C818, - .rot = { 0x8001, 0x1555, 0x8001 }, - .pos = { 115.0f, 211.0f, 39.0f }, - .sibling = &N(D_80252268_C0FAE8), -}; - -StaticAnimatorNode N(D_802522C0_C0FB40) = { - .displayList = D_8024EF00_C0C780, - .rot = { 0x8001, 0x0AAA, 0x8001 }, - .pos = { 215.0f, 211.0f, 39.0f }, - .sibling = &N(D_80252294_C0FB14), -}; - -StaticAnimatorNode N(D_802522EC_C0FB6C) = { - .sibling = &N(D_80252108_C0F988), - .child = &N(D_802522C0_C0FB40), -}; - -StaticAnimatorNode N(D_80252318_C0FB98) = { - .displayList = D_8024BEF8_C09778, - .rot = { 0x0000, 0x0AAA, 0x0000 }, - .pos = { -375.0f, 2.0f, 0.0f }, -}; - -StaticAnimatorNode N(D_80252344_C0FBC4) = { - .displayList = D_8024BE60_C096E0, - .rot = { 0x0000, 0xEAAB, 0x8001 }, - .pos = { -175.0f, 2.0f, -49.0f }, - .sibling = &N(D_80252318_C0FB98), -}; - -StaticAnimatorNode N(D_80252370_C0FBF0) = { - .displayList = D_8024BDC8_C09648, - .rot = { 0x8001, 0x0000, 0x8001 }, - .pos = { 75.0f, 2.0f, -49.0f }, - .sibling = &N(D_80252344_C0FBC4), -}; - -StaticAnimatorNode N(D_8025239C_C0FC1C) = { - .sibling = &N(D_802522EC_C0FB6C), - .child = &N(D_80252370_C0FBF0), -}; - -StaticAnimatorNode N(D_802523C8_C0FC48) = { - .sibling = &N(D_80251A80_C0F300), - .child = &N(D_8025239C_C0FC1C), -}; - -StaticAnimatorNode N(D_802523F4_C0FC74) = { - .displayList = D_8024DEF8_dgb_01, -}; - -StaticAnimatorNode N(D_80252420_C0FCA0) = { - .displayList = D_8024E120_C0B9A0, - .sibling = &N(D_802523F4_C0FC74), -}; - -StaticAnimatorNode N(D_8025244C_C0FCCC) = { - .displayList = D_8024E0A8_C0B928, - .sibling = &N(D_80252420_C0FCA0), -}; - -StaticAnimatorNode N(D_80252478_C0FCF8) = { - .displayList = D_8024E020_C0B8A0, - .sibling = &N(D_8025244C_C0FCCC), -}; - -StaticAnimatorNode N(D_802524A4_C0FD24) = { - .displayList = D_8024DFA0_C0B820, - .sibling = &N(D_80252478_C0FCF8), -}; - -StaticAnimatorNode N(D_802524D0_C0FD50) = { - .displayList = D_8024E1A8_C0BA28, - .sibling = &N(D_802524A4_C0FD24), -}; - -StaticAnimatorNode N(D_802524FC_C0FD7C) = { - .displayList = D_8024DD60_C0B5E0, - .sibling = &N(D_802524D0_C0FD50), -}; - -StaticAnimatorNode N(D_80252528_C0FDA8) = { - .displayList = D_8024DC50_C0B4D0, - .sibling = &N(D_802524FC_C0FD7C), -}; - -StaticAnimatorNode N(D_80252554_C0FDD4) = { - .rot = { 0x0000, 0x0000, 0xEA9F }, - .pos = { -360.0f, 85.0f, -1.0f }, - .child = &N(D_80252528_C0FDA8), -}; - -StaticAnimatorNode N(D_80252580_C0FE00) = { - .displayList = D_8024ECB0_C0C530, -}; - -StaticAnimatorNode N(D_802525AC_C0FE2C) = { - .displayList = D_8024EE18_C0C698, - .sibling = &N(D_80252580_C0FE00), -}; - -StaticAnimatorNode N(D_802525D8_C0FE58) = { - .rot = { 0xEAAB, 0x2E87, 0xF02E }, - .pos = { 35.0f, 316.0f, 36.0f }, - .sibling = &N(D_80252554_C0FDD4), - .child = &N(D_802525AC_C0FE2C), -}; - -StaticAnimatorNode N(D_80252604_C0FE84) = { - .displayList = D_80250720_C0DFA0, -}; - -StaticAnimatorNode N(D_80252630_C0FEB0) = { - .displayList = D_80250910_C0E190, - .sibling = &N(D_80252604_C0FE84), -}; - -StaticAnimatorNode N(D_8025265C_C0FEDC) = { - .displayList = D_80250698_C0DF18, - .sibling = &N(D_80252630_C0FEB0), -}; - -StaticAnimatorNode N(D_80252688_C0FF08) = { - .displayList = D_80250798_C0E018, - .sibling = &N(D_8025265C_C0FEDC), -}; - -StaticAnimatorNode N(D_802526B4_C0FF34) = { - .displayList = D_80250820_C0E0A0, - .sibling = &N(D_80252688_C0FF08), -}; - -StaticAnimatorNode N(D_802526E0_C0FF60) = { - .displayList = D_80250898_C0E118, - .sibling = &N(D_802526B4_C0FF34), -}; - -StaticAnimatorNode N(D_8025270C_C0FF8C) = { - .rot = { 0xFC72, 0xFE27, 0x0000 }, - .pos = { 133.0f, 271.0f, 30.0f }, - .sibling = &N(D_802525D8_C0FE58), - .child = &N(D_802526E0_C0FF60), -}; - -StaticAnimatorNode N(D_80252738_C0FFB8) = { - .displayList = D_8024C918_C0A198, - .pos = { 252.0f, 0.0f, 0.0f }, -}; - -StaticAnimatorNode N(D_80252764_C0FFE4) = { - .displayList = D_8024C998_C0A218, - .pos = { 252.0f, 0.0f, 0.0f }, - .sibling = &N(D_80252738_C0FFB8), -}; - -StaticAnimatorNode N(D_80252790_C10010) = { - .displayList = D_8024C808_C0A088, - .pos = { 252.0f, 0.0f, 0.0f }, - .sibling = &N(D_80252764_C0FFE4), -}; - -StaticAnimatorNode N(D_802527BC_C1003C) = { - .sibling = &N(D_80252790_C10010), -}; - -StaticAnimatorNode N(D_802527E8_C10068) = { - .rot = { 0x0000, 0x0000, 0xF60C }, - .pos = { -252.0f, 0.0f, 0.0f }, - .child = &N(D_802527BC_C1003C), -}; - -StaticAnimatorNode N(D_80252814_C10094) = { - .rot = { 0x0000, 0x0000, 0x09F4 }, - .pos = { 253.0f, 285.0f, 86.0f }, - .child = &N(D_802527E8_C10068), -}; - -StaticAnimatorNode N(D_80252840_C100C0) = { - .displayList = D_8024CAF0_C0A370, - .sibling = &N(D_80252814_C10094), -}; - -StaticAnimatorNode N(D_8025286C_C100EC) = { - .displayList = D_8024CC28_C0A4A8, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80252840_C100C0), -}; - -StaticAnimatorNode N(D_80252898_C10118) = { - .displayList = D_8024CB68_C0A3E8, - .sibling = &N(D_8025286C_C100EC), -}; - -StaticAnimatorNode N(D_802528C4_C10144) = { - .displayList = D_8024CD98_C0A618, - .sibling = &N(D_80252898_C10118), -}; - -StaticAnimatorNode N(D_802528F0_C10170) = { - .displayList = D_8024CD10_C0A590, - .sibling = &N(D_802528C4_C10144), -}; - -StaticAnimatorNode N(D_8025291C_C1019C) = { - .displayList = D_8024CCA0_C0A520, - .sibling = &N(D_802528F0_C10170), -}; - -StaticAnimatorNode N(D_80252948_C101C8) = { - .displayList = D_8024CE08_C0A688, - .sibling = &N(D_8025291C_C1019C), -}; - -StaticAnimatorNode N(D_80252974_C101F4) = { - .displayList = D_8024C670_C09EF0, - .sibling = &N(D_80252948_C101C8), -}; - -StaticAnimatorNode N(D_802529A0_C10220) = { - .sibling = &N(D_8025270C_C0FF8C), - .child = &N(D_80252974_C101F4), -}; - -StaticAnimatorNode N(D_802529CC_C1024C) = { - .displayList = D_8024D2B8_C0AB38, -}; - -StaticAnimatorNode N(D_802529F8_C10278) = { - .displayList = D_8024D448_C0ACC8, - .sibling = &N(D_802529CC_C1024C), -}; - -StaticAnimatorNode N(D_80252A24_C102A4) = { - .displayList = D_8024D3C8_C0AC48, - .sibling = &N(D_802529F8_C10278), -}; - -StaticAnimatorNode N(D_80252A50_C102D0) = { - .pos = { 105.0f, -8.0f, 87.0f }, - .child = &N(D_80252A24_C102A4), -}; - -StaticAnimatorNode N(D_80252A7C_C102FC) = { - .displayList = D_8024D580_C0AE00, - .sibling = &N(D_80252A50_C102D0), -}; - -StaticAnimatorNode N(D_80252AA8_C10328) = { - .displayList = D_8024D680_C0AF00, - .sibling = &N(D_80252A7C_C102FC), -}; - -StaticAnimatorNode N(D_80252AD4_C10354) = { - .displayList = D_8024D828_C0B0A8, - .sibling = &N(D_80252AA8_C10328), -}; - -StaticAnimatorNode N(D_80252B00_C10380) = { - .displayList = D_8024D788_C0B008, - .sibling = &N(D_80252AD4_C10354), -}; - -StaticAnimatorNode N(D_80252B2C_C103AC) = { - .displayList = D_8024D700_C0AF80, - .sibling = &N(D_80252B00_C10380), -}; - -StaticAnimatorNode N(D_80252B58_C103D8) = { - .displayList = D_8024D8D0_C0B150, - .sibling = &N(D_80252B2C_C103AC), -}; - -StaticAnimatorNode N(D_80252B84_C10404) = { - .displayList = D_8024D060_C0A8E0, - .sibling = &N(D_80252B58_C103D8), -}; - -StaticAnimatorNode N(D_80252BB0_C10430) = { - .rot = { 0x0000, 0x1FFF, 0x0000 }, - .pos = { 61.0f, 47.0f, -31.0f }, - .sibling = &N(D_802529A0_C10220), - .child = &N(D_80252B84_C10404), -}; - -StaticAnimatorNode N(D_80252BDC_C1045C) = { - .displayList = D_8024E6D8_C0BF58, - .rot = { 0x038E, 0x0000, 0x18E3 }, - .pos = { -465.0f, 210.0f, -90.0f }, -}; - -StaticAnimatorNode N(D_80252C08_C10488) = { - .displayList = D_8024E5B0_C0BE30, - .rot = { 0x0000, 0x18E3, 0x1555 }, - .pos = { -465.0f, 210.0f, 90.0f }, - .sibling = &N(D_80252BDC_C1045C), -}; - -StaticAnimatorNode N(D_80252C34_C104B4) = { - .displayList = D_8024E800_C0C080, - .sibling = &N(D_80252C08_C10488), -}; - -StaticAnimatorNode N(D_80252C60_C104E0) = { - .displayList = D_8024EA60_C0C2E0, - .sibling = &N(D_80252C34_C104B4), -}; - -StaticAnimatorNode N(D_80252C8C_C1050C) = { - .displayList = D_8024E9D8_C0C258, - .sibling = &N(D_80252C60_C104E0), -}; - -StaticAnimatorNode N(D_80252CB8_C10538) = { - .displayList = D_8024E968_C0C1E8, - .sibling = &N(D_80252C8C_C1050C), -}; - -StaticAnimatorNode N(D_80252CE4_C10564) = { - .displayList = D_8024E8C0_C0C140, - .pos = { 0.0f, -500.0f, 0.0f }, - .sibling = &N(D_80252CB8_C10538), -}; - -StaticAnimatorNode N(D_80252D10_C10590) = { - .displayList = D_8024EAD0_C0C350, - .sibling = &N(D_80252CE4_C10564), -}; - -StaticAnimatorNode N(D_80252D3C_C105BC) = { - .displayList = D_8024E4D8_C0BD58, - .sibling = &N(D_80252D10_C10590), -}; - -StaticAnimatorNode N(D_80252D68_C105E8) = { - .pos = { 0.0f, -188.0f, 0.0f }, - .sibling = &N(D_80252BB0_C10430), - .child = &N(D_80252D3C_C105BC), -}; - -StaticAnimatorNode N(D_80252D94_C10614) = { - .displayList = D_802510C8_C0E948, - .pos = { -179.0f, 34.0f, 98.0f }, -}; - -StaticAnimatorNode N(D_80252DC0_C10640) = { - .displayList = D_80250E88_C0E708, - .pos = { -179.0f, 34.0f, 98.0f }, - .sibling = &N(D_80252D94_C10614), -}; - -StaticAnimatorNode N(D_80252DEC_C1066C) = { - .displayList = D_80251050_C0E8D0, - .pos = { -179.0f, 34.0f, 98.0f }, - .sibling = &N(D_80252DC0_C10640), -}; - -StaticAnimatorNode N(D_80252E18_C10698) = { - .displayList = D_80250FC8_C0E848, - .pos = { -179.0f, 34.0f, 98.0f }, - .sibling = &N(D_80252DEC_C1066C), -}; - -StaticAnimatorNode N(D_80252E44_C106C4) = { - .displayList = D_80250F40_C0E7C0, - .pos = { -179.0f, 34.0f, 98.0f }, - .sibling = &N(D_80252E18_C10698), -}; - -StaticAnimatorNode N(D_80252E70_C106F0) = { - .displayList = D_80250DE0_C0E660, - .pos = { -179.0f, 34.0f, 98.0f }, - .sibling = &N(D_80252E44_C106C4), -}; - -StaticAnimatorNode N(D_80252E9C_C1071C) = { - .rot = { 0xFB06, 0xC60C, 0 }, - .pos = { 179.0f, -34.0f, -98.0f }, - .child = &N(D_80252E70_C106F0), -}; - -StaticAnimatorNode N(D_80252EC8_C10748) = { - .rot = { 0, 0xFA06, 0xC464 }, - .pos = { -245.0f, 196.0f, 21.0f }, - .sibling = &N(D_80252D68_C105E8), - .child = &N(D_80252E9C_C1071C), -}; - -StaticAnimatorNode N(D_80252EF4_C10774) = { - .sibling = &N(D_802523C8_C0FC48), - .child = &N(D_80252EC8_C10748), -}; - -StaticAnimatorNode N(D_80252F20_C107A0) = { - .child = &N(D_80252EF4_C10774), -}; - -StaticAnimatorNode* N(D_80252F4C_C107CC)[] = { - &N(D_80252F20_C107A0), &N(D_80252EF4_C10774), &N(D_80252EC8_C10748), &N(D_80252E9C_C1071C), - &N(D_80252E70_C106F0), &N(D_80252E44_C106C4), &N(D_80252E18_C10698), &N(D_80252DEC_C1066C), - &N(D_80252DC0_C10640), &N(D_80252D94_C10614), &N(D_80252D68_C105E8), &N(D_80252D3C_C105BC), - &N(D_80252D10_C10590), &N(D_80252CE4_C10564), &N(D_80252CB8_C10538), &N(D_80252C8C_C1050C), - &N(D_80252C60_C104E0), &N(D_80252C34_C104B4), &N(D_80252C08_C10488), &N(D_80252BDC_C1045C), - &N(D_80252BB0_C10430), &N(D_80252B84_C10404), &N(D_80252B58_C103D8), &N(D_80252B2C_C103AC), - &N(D_80252B00_C10380), &N(D_80252AD4_C10354), &N(D_80252AA8_C10328), &N(D_80252A7C_C102FC), - &N(D_80252A50_C102D0), &N(D_80252A24_C102A4), &N(D_802529F8_C10278), &N(D_802529CC_C1024C), - &N(D_802529A0_C10220), &N(D_80252974_C101F4), &N(D_80252948_C101C8), &N(D_8025291C_C1019C), - &N(D_802528F0_C10170), &N(D_802528C4_C10144), &N(D_80252898_C10118), &N(D_8025286C_C100EC), - &N(D_80252840_C100C0), &N(D_80252814_C10094), &N(D_802527E8_C10068), &N(D_802527BC_C1003C), - &N(D_80252790_C10010), &N(D_80252764_C0FFE4), &N(D_80252738_C0FFB8), &N(D_8025270C_C0FF8C), - &N(D_802526E0_C0FF60), &N(D_802526B4_C0FF34), &N(D_80252688_C0FF08), &N(D_8025265C_C0FEDC), - &N(D_80252630_C0FEB0), &N(D_80252604_C0FE84), &N(D_802525D8_C0FE58), &N(D_802525AC_C0FE2C), - &N(D_80252580_C0FE00), &N(D_80252554_C0FDD4), &N(D_80252528_C0FDA8), &N(D_802524FC_C0FD7C), - &N(D_802524D0_C0FD50), &N(D_802524A4_C0FD24), &N(D_80252478_C0FCF8), &N(D_8025244C_C0FCCC), - &N(D_80252420_C0FCA0), &N(D_802523F4_C0FC74), &N(D_802523C8_C0FC48), &N(D_8025239C_C0FC1C), - &N(D_80252370_C0FBF0), &N(D_80252344_C0FBC4), &N(D_80252318_C0FB98), &N(D_802522EC_C0FB6C), - &N(D_802522C0_C0FB40), &N(D_80252294_C0FB14), &N(D_80252268_C0FAE8), &N(D_8025223C_C0FABC), - &N(D_80252210_C0FA90), &N(D_802521E4_C0FA64), &N(D_802521B8_C0FA38), &N(D_8025218C_C0FA0C), - &N(D_80252160_C0F9E0), &N(D_80252134_C0F9B4), &N(D_80252108_C0F988), &N(D_802520DC_C0F95C), - &N(D_802520B0_C0F930), &N(D_80252084_C0F904), &N(D_80252058_C0F8D8), &N(D_8025202C_C0F8AC), - &N(D_80252000_C0F880), &N(D_80251FD4_C0F854), &N(D_80251FA8_C0F828), &N(D_80251F7C_C0F7FC), - &N(D_80251F50_C0F7D0), &N(D_80251F24_C0F7A4), &N(D_80251EF8_C0F778), &N(D_80251ECC_C0F74C), - &N(D_80251EA0_C0F720), &N(D_80251E74_C0F6F4), &N(D_80251E48_C0F6C8), &N(D_80251E1C_C0F69C), - &N(D_80251DF0_C0F670), &N(D_80251DC4_C0F644), &N(D_80251D98_C0F618), &N(D_80251D6C_C0F5EC), - &N(D_80251D40_C0F5C0), &N(D_80251D14_C0F594), &N(D_80251CE8_C0F568), &N(D_80251CBC_C0F53C), - &N(D_80251C90_C0F510), &N(D_80251C64_C0F4E4), &N(D_80251C38_C0F4B8), &N(D_80251C0C_C0F48C), - &N(D_80251BE0_C0F460), &N(D_80251BB4_C0F434), &N(D_80251B88_C0F408), &N(D_80251B5C_C0F3DC), - &N(D_80251B30_C0F3B0), &N(D_80251B04_C0F384), &N(D_80251AD8_C0F358), &N(D_80251AAC_C0F32C), - &N(D_80251A80_C0F300), 0x00000000, 0x00000000, 0x00000000, 0x00000000, -}; - -Lights1 N(D_80253140_C109C0) = gdSPDefLights1(0, 0, 0, 0, 0, 0, 0, 0, 0); - -static s32 N(pad_2)[] = { 0, 0 }; - -Mtx N(D_80253160_C109E0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFF2501B2, 0xFFFF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0x0E1B66C8, 0xD7770000 } -}}; - -Mtx N(D_802531A0_C10A20) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x002A01BE, 0xFFFF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0xB9507E18, 0xD03D0000 } -}}; - -Mtx N(D_802531E0_C10A60) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE8901A4, 0xFFCF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0x459C0000 } -}}; - -Mtx N(D_80253220_C10AA0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE5701A4, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253260_C10AE0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE5701A4, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802532A0_C10B20) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE8901A4, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802532E0_C10B60) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFB501A4, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253320_C10BA0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFB501A4, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_80253360_C10BE0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFE701A4, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802533A0_C10C20) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x00AF01A4, 0xFFCF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0x459C0000 } -}}; - -Mtx N(D_802533E0_C10C60) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x007D01A4, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253420_C10CA0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x007D01A4, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_80253460_C10CE0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x00AF01A4, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802534A0_C10D20) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE890190, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_802534E0_C10D60) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFB50190, 0xFFCF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0x459C0000 } -}}; - -Mtx N(D_80253520_C10DA0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFB50190, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253560_C10DE0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFB50190, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802535A0_C10E20) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFE70190, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802535E0_C10E60) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xAF0190, 0xFFCF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0x459C0000 } -}}; - -Mtx N(D_80253620_C10EA0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x7D0190, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253660_C10EE0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x7D0190, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802536A0_C10F20) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xAF0190, 0x00310001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0xBA640000 } -}}; - -Mtx N(D_802536E0_C10F60) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x001A01E2, 0xFFAA0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0x6DB70924, 0x0B370000 } -}}; - -Mtx N(D_80253720_C10FA0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253760_C10FE0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE0C00D2, 0xFFA60001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_802537A0_C11020) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE0C00D2, 0x005A0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_802537E0_C11060) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFEDA00E4, 0xFFFF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0x5C2E4692, 0x55EA0000 } -}}; - -Mtx N(D_80253820_C110A0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFFA300EB, 0xFFFF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0x45BCAE56, 0xEA0F0000 } -}}; - -Mtx N(D_80253860_C110E0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x005F0031, 0x00570001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0x210551AA, 0x0ABA0000 } -}}; - -Mtx N(D_802538A0_C11120) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x00FD011D, 0x00560001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0xA4B00000, 0xF4C90000 } -}}; - -Mtx N(D_802538E0_C11160) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFE5700BE, 1 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0 } -}}; - -Mtx N(D_80253920_C111A0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0xFF5100BE, 0xFFCF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0x459C0000 } -}}; - -Mtx N(D_80253960_C111E0) = {{ - { 0x10000, 0, 1, 0 }, - { 0, 0x10000, 0x004B00BE, 0xFFCF0001 }, - { 0, 0, 0, 0 }, - { 0, 0, 0, 0x459C0000 } -}}; - -AnimScript N(D_802539A0_C11220) = { +AnimScript N(AS_SmashBridges) = { AS_OP_19, AS_SET_ROTATION, 1, AS_F(0.0), AS_F(0.0), AS_F(0.0), AS_SET_POS, 1, 0, 0, 0, diff --git a/src/world/area_dgb/dgb_01/smash_bridges_skeleton.inc.c b/src/world/area_dgb/dgb_01/smash_bridges_skeleton.inc.c new file mode 100644 index 0000000000..6cfc122b51 --- /dev/null +++ b/src/world/area_dgb/dgb_01/smash_bridges_skeleton.inc.c @@ -0,0 +1,705 @@ +StaticAnimatorNode N(D_80251A80_C0F300) = { + .pos = { 225.0f, 255.0f, 0.0f }, +}; + +StaticAnimatorNode N(D_80251AAC_C0F32C) = { + .displayList = N(D_8024C098_C09918), + .pos = { 0.0f, -500.0f, 0.0f }, +}; + +StaticAnimatorNode N(D_80251AD8_C0F358) = { + .displayList = N(D_8024C030_C098B0), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251AAC_C0F32C), +}; + +StaticAnimatorNode N(D_80251B04_C0F384) = { + .displayList = N(D_8024BFC8_C09848), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251AD8_C0F358), +}; + +StaticAnimatorNode N(D_80251B30_C0F3B0) = { + .displayList = N(D_8024C2E0_C09B60), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251B04_C0F384), +}; + +StaticAnimatorNode N(D_80251B5C_C0F3DC) = { + .displayList = N(D_8024C1F0_C09A70), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251B30_C0F3B0), +}; + +StaticAnimatorNode N(D_80251B88_C0F408) = { + .displayList = N(D_8024C100_C09980), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251B5C_C0F3DC), +}; + +StaticAnimatorNode N(D_80251BB4_C0F434) = { + .child = &N(D_80251B88_C0F408), +}; + +StaticAnimatorNode N(D_80251BE0_C0F460) = { + .displayList = N(D_8024C560_C09DE0), + .pos = { 0.0f, -500.0f, 0.0f }, +}; + +StaticAnimatorNode N(D_80251C0C_C0F48C) = { + .displayList = N(D_8024C4C0_C09D40), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251BE0_C0F460), +}; + +StaticAnimatorNode N(D_80251C38_C0F4B8) = { + .displayList = N(D_8024C420_C09CA0), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80251C0C_C0F48C), +}; + +StaticAnimatorNode N(D_80251C64_C0F4E4) = { + .sibling = &N(D_80251BB4_C0F434), + .child = &N(D_80251C38_C0F4B8), +}; + +StaticAnimatorNode N(D_80251C90_C0F510) = { + .displayList = N(D_8024B770_C08FF0), +}; + +StaticAnimatorNode N(D_80251CBC_C0F53C) = { + .displayList = N(D_8024B8F8_C09178), + .sibling = &N(D_80251C90_C0F510), +}; + +StaticAnimatorNode N(D_80251CE8_C0F568) = { + .displayList = N(D_8024BAA0_C09320), + .sibling = &N(D_80251CBC_C0F53C), +}; + +StaticAnimatorNode N(D_80251D14_C0F594) = { + .displayList = N(D_802515B0_C0EE30), + .sibling = &N(D_80251CE8_C0F568), +}; + +StaticAnimatorNode N(D_80251D40_C0F5C0) = { + .displayList = N(D_80250168_C0D9E8), + .sibling = &N(D_80251D14_C0F594), +}; + +StaticAnimatorNode N(D_80251D6C_C0F5EC) = { + .displayList = N(D_80250108_C0D988), + .sibling = &N(D_80251D40_C0F5C0), +}; + +StaticAnimatorNode N(D_80251D98_C0F618) = { + .displayList = N(D_80251798_C0F018), + .sibling = &N(D_80251D6C_C0F5EC), +}; + +StaticAnimatorNode N(D_80251DC4_C0F644) = { + .displayList = N(D_80250360_C0DBE0), + .sibling = &N(D_80251D98_C0F618), +}; + +StaticAnimatorNode N(D_80251DF0_C0F670) = { + .displayList = N(D_80251710_C0EF90), + .sibling = &N(D_80251DC4_C0F644), +}; + +StaticAnimatorNode N(D_80251E1C_C0F69C) = { + .displayList = N(D_802502F8_C0DB78), + .sibling = &N(D_80251DF0_C0F670), +}; + +StaticAnimatorNode N(D_80251E48_C0F6C8) = { + .displayList = N(D_802516A8_C0EF28), + .sibling = &N(D_80251E1C_C0F69C), +}; + +StaticAnimatorNode N(D_80251E74_C0F6F4) = { + .displayList = N(D_80250290_C0DB10), + .sibling = &N(D_80251E48_C0F6C8), +}; + +StaticAnimatorNode N(D_80251EA0_C0F720) = { + .displayList = N(D_80251638_C0EEB8), + .sibling = &N(D_80251E74_C0F6F4), +}; + +StaticAnimatorNode N(D_80251ECC_C0F74C) = { + .displayList = N(D_80250220_C0DAA0), + .sibling = &N(D_80251EA0_C0F720), +}; + +StaticAnimatorNode N(D_80251EF8_C0F778) = { + .sibling = &N(D_80251C64_C0F4E4), + .child = &N(D_80251ECC_C0F74C), +}; + +StaticAnimatorNode N(D_80251F24_C0F7A4) = { + .displayList = N(D_8024FAB0_C0D330), + .rot = { 0x0000, 0x1FFF, 0x8001 }, + .pos = { -315.0f, 2.0f, -139.0f }, +}; + +StaticAnimatorNode N(D_80251F50_C0F7D0) = { + .displayList = N(D_8024FA18_C0D298), + .rot = { 0x8001, 0x2AAA, 0x8001 }, + .pos = { -455.0f, 421.0f, -20.0f }, + .sibling = &N(D_80251F24_C0F7A4), +}; + +StaticAnimatorNode N(D_80251F7C_C0F7FC) = { + .displayList = N(D_8024F980_C0D200), + .rot = { 0x8001, 0xE001, 0x0000 }, + .pos = { -385.0f, 2.0f, 169.0f }, + .sibling = &N(D_80251F50_C0F7D0), +}; + +StaticAnimatorNode N(D_80251FA8_C0F828) = { + .displayList = N(D_8024F8E8_C0D168), + .rot = { 0x0000, 0x2AAA, 0x8001 }, + .pos = { -105.0f, 2.0f, -210.0f }, + .sibling = &N(D_80251F7C_C0F7FC), +}; + +StaticAnimatorNode N(D_80251FD4_C0F854) = { + .displayList = N(D_8024F850_C0D0D0), + .rot = { 0x0000, 0xEAAB, 0x8001 }, + .pos = { -5.0f, 2.0f, -180.0f }, + .sibling = &N(D_80251FA8_C0F828), +}; + +StaticAnimatorNode N(D_80252000_C0F880) = { + .displayList = N(D_8024F7B8_C0D038), + .rot = { 0x8001, 0x0AAA, 0x0000 }, + .pos = { -195.0f, 2.0f, 259.0f }, + .sibling = &N(D_80251FD4_C0F854), +}; + +StaticAnimatorNode N(D_8025202C_C0F8AC) = { + .displayList = N(D_8024F720_C0CFA0), + .rot = { 0x8001, 0xD556, 0x8001 }, + .pos = { -65.0f, 2.0f, 189.0f }, + .sibling = &N(D_80252000_C0F880), +}; + +StaticAnimatorNode N(D_80252058_C0F8D8) = { + .displayList = N(D_8024F688_C0CF08), + .rot = { 0x8001, 0x0000, 0x0000 }, + .pos = { 275.0f, 2.0f, -129.0f }, + .sibling = &N(D_8025202C_C0F8AC), +}; + +StaticAnimatorNode N(D_80252084_C0F904) = { + .displayList = N(D_8024F5F0_C0CE70), + .rot = { 0x0000, 0xF556, 0x8001 }, + .pos = { 195.0f, 421.0f, -40.0f }, + .sibling = &N(D_80252058_C0F8D8), +}; + +StaticAnimatorNode N(D_802520B0_C0F930) = { + .displayList = N(D_8024F558_C0CDD8), + .rot = { 0x8001, 0x1555, 0x8001 }, + .pos = { 85.0f, 2.0f, 329.0f }, + .sibling = &N(D_80252084_C0F904), +}; + +StaticAnimatorNode N(D_802520DC_C0F95C) = { + .displayList = N(D_8024F4C0_C0CD40), + .rot = { 0x8001, 0x1555, 0x0000 }, + .pos = { 215.0f, 421.0f, 29.0f }, + .sibling = &N(D_802520B0_C0F930), +}; + +StaticAnimatorNode N(D_80252108_C0F988) = { + .sibling = &N(D_80251EF8_C0F778), + .child = &N(D_802520DC_C0F95C), +}; + +StaticAnimatorNode N(D_80252134_C0F9B4) = { + .displayList = N(D_8024F328_C0CBA8), + .rot = { 0x8001, 0x0000, 0x0000 }, + .pos = { 8.0f, -23.0f, -49.0f }, +}; + +StaticAnimatorNode N(D_80252160_C0F9E0) = { + .displayList = N(D_8024F160_C0C9E0), + .rot = { 0x0000, 0xF8E4, 0x8001 }, + .pos = { 73.0f, -23.0f, 20.0f }, + .sibling = &N(D_80252134_C0F9B4), +}; + +StaticAnimatorNode N(D_8025218C_C0FA0C) = { + .displayList = N(D_8024F1F8_C0CA78), + .rot = { 0x8001, 0x0000, 0x0000 }, + .pos = { -1.0f, -23.0f, 49.0f }, + .sibling = &N(D_80252160_C0F9E0), +}; + +StaticAnimatorNode N(D_802521B8_C0FA38) = { + .displayList = N(D_8024F290_C0CB10), + .rot = { 0x8001, 0x0000, 0x8001 }, + .pos = { 18.0f, -23.0f, 0.0f }, + .sibling = &N(D_8025218C_C0FA0C), +}; + +StaticAnimatorNode N(D_802521E4_C0FA64) = { + .rot = { 0x0000, 0x1FFF, 0x0000 }, + .pos = { 61.0f, 47.0f, -31.0f }, + .child = &N(D_802521B8_C0FA38), +}; + +StaticAnimatorNode N(D_80252210_C0FA90) = { + .displayList = N(D_8024F3C0_C0CC40), + .rot = { 0x8001, 0x0AAA, 0x0000 }, + .pos = { -415.0f, 21.0f, 20.0f }, + .sibling = &N(D_802521E4_C0FA64), +}; + +StaticAnimatorNode N(D_8025223C_C0FABC) = { + .displayList = N(D_8024F0C8_C0C948), + .rot = { 0x8001, 0xF8E4, 0x8001 }, + .pos = { 195.0f, 211.0f, -39.0f }, + .sibling = &N(D_80252210_C0FA90), +}; + +StaticAnimatorNode N(D_80252268_C0FAE8) = { + .displayList = N(D_8024F030_C0C8B0), + .rot = { 0x8001, 0xF1C8, 0x8001 }, + .pos = { 95.0f, 210.0f, -30.0f }, + .sibling = &N(D_8025223C_C0FABC), +}; + +StaticAnimatorNode N(D_80252294_C0FB14) = { + .displayList = N(D_8024EF98_C0C818), + .rot = { 0x8001, 0x1555, 0x8001 }, + .pos = { 115.0f, 211.0f, 39.0f }, + .sibling = &N(D_80252268_C0FAE8), +}; + +StaticAnimatorNode N(D_802522C0_C0FB40) = { + .displayList = N(D_8024EF00_C0C780), + .rot = { 0x8001, 0x0AAA, 0x8001 }, + .pos = { 215.0f, 211.0f, 39.0f }, + .sibling = &N(D_80252294_C0FB14), +}; + +StaticAnimatorNode N(D_802522EC_C0FB6C) = { + .sibling = &N(D_80252108_C0F988), + .child = &N(D_802522C0_C0FB40), +}; + +StaticAnimatorNode N(D_80252318_C0FB98) = { + .displayList = N(D_8024BEF8_C09778), + .rot = { 0x0000, 0x0AAA, 0x0000 }, + .pos = { -375.0f, 2.0f, 0.0f }, +}; + +StaticAnimatorNode N(D_80252344_C0FBC4) = { + .displayList = N(D_8024BE60_C096E0), + .rot = { 0x0000, 0xEAAB, 0x8001 }, + .pos = { -175.0f, 2.0f, -49.0f }, + .sibling = &N(D_80252318_C0FB98), +}; + +StaticAnimatorNode N(D_80252370_C0FBF0) = { + .displayList = N(D_8024BDC8_C09648), + .rot = { 0x8001, 0x0000, 0x8001 }, + .pos = { 75.0f, 2.0f, -49.0f }, + .sibling = &N(D_80252344_C0FBC4), +}; + +StaticAnimatorNode N(D_8025239C_C0FC1C) = { + .sibling = &N(D_802522EC_C0FB6C), + .child = &N(D_80252370_C0FBF0), +}; + +StaticAnimatorNode N(D_802523C8_C0FC48) = { + .sibling = &N(D_80251A80_C0F300), + .child = &N(D_8025239C_C0FC1C), +}; + +StaticAnimatorNode N(D_802523F4_C0FC74) = { + .displayList = N(D_8024DEF8_dgb_01), +}; + +StaticAnimatorNode N(D_80252420_C0FCA0) = { + .displayList = N(D_8024E120_C0B9A0), + .sibling = &N(D_802523F4_C0FC74), +}; + +StaticAnimatorNode N(D_8025244C_C0FCCC) = { + .displayList = N(D_8024E0A8_C0B928), + .sibling = &N(D_80252420_C0FCA0), +}; + +StaticAnimatorNode N(D_80252478_C0FCF8) = { + .displayList = N(D_8024E020_C0B8A0), + .sibling = &N(D_8025244C_C0FCCC), +}; + +StaticAnimatorNode N(D_802524A4_C0FD24) = { + .displayList = N(D_8024DFA0_C0B820), + .sibling = &N(D_80252478_C0FCF8), +}; + +StaticAnimatorNode N(D_802524D0_C0FD50) = { + .displayList = N(D_8024E1A8_C0BA28), + .sibling = &N(D_802524A4_C0FD24), +}; + +StaticAnimatorNode N(D_802524FC_C0FD7C) = { + .displayList = N(D_8024DD60_C0B5E0), + .sibling = &N(D_802524D0_C0FD50), +}; + +StaticAnimatorNode N(D_80252528_C0FDA8) = { + .displayList = N(D_8024DC50_C0B4D0), + .sibling = &N(D_802524FC_C0FD7C), +}; + +StaticAnimatorNode N(D_80252554_C0FDD4) = { + .rot = { 0x0000, 0x0000, 0xEA9F }, + .pos = { -360.0f, 85.0f, -1.0f }, + .child = &N(D_80252528_C0FDA8), +}; + +StaticAnimatorNode N(D_80252580_C0FE00) = { + .displayList = N(D_8024ECB0_C0C530), +}; + +StaticAnimatorNode N(D_802525AC_C0FE2C) = { + .displayList = N(D_8024EE18_C0C698), + .sibling = &N(D_80252580_C0FE00), +}; + +StaticAnimatorNode N(D_802525D8_C0FE58) = { + .rot = { 0xEAAB, 0x2E87, 0xF02E }, + .pos = { 35.0f, 316.0f, 36.0f }, + .sibling = &N(D_80252554_C0FDD4), + .child = &N(D_802525AC_C0FE2C), +}; + +StaticAnimatorNode N(D_80252604_C0FE84) = { + .displayList = N(D_80250720_C0DFA0), +}; + +StaticAnimatorNode N(D_80252630_C0FEB0) = { + .displayList = N(D_80250910_C0E190), + .sibling = &N(D_80252604_C0FE84), +}; + +StaticAnimatorNode N(D_8025265C_C0FEDC) = { + .displayList = N(D_80250698_C0DF18), + .sibling = &N(D_80252630_C0FEB0), +}; + +StaticAnimatorNode N(D_80252688_C0FF08) = { + .displayList = N(D_80250798_C0E018), + .sibling = &N(D_8025265C_C0FEDC), +}; + +StaticAnimatorNode N(D_802526B4_C0FF34) = { + .displayList = N(D_80250820_C0E0A0), + .sibling = &N(D_80252688_C0FF08), +}; + +StaticAnimatorNode N(D_802526E0_C0FF60) = { + .displayList = N(D_80250898_C0E118), + .sibling = &N(D_802526B4_C0FF34), +}; + +StaticAnimatorNode N(D_8025270C_C0FF8C) = { + .rot = { 0xFC72, 0xFE27, 0x0000 }, + .pos = { 133.0f, 271.0f, 30.0f }, + .sibling = &N(D_802525D8_C0FE58), + .child = &N(D_802526E0_C0FF60), +}; + +StaticAnimatorNode N(D_80252738_C0FFB8) = { + .displayList = N(D_8024C918_C0A198), + .pos = { 252.0f, 0.0f, 0.0f }, +}; + +StaticAnimatorNode N(D_80252764_C0FFE4) = { + .displayList = N(D_8024C998_C0A218), + .pos = { 252.0f, 0.0f, 0.0f }, + .sibling = &N(D_80252738_C0FFB8), +}; + +StaticAnimatorNode N(D_80252790_C10010) = { + .displayList = N(D_8024C808_C0A088), + .pos = { 252.0f, 0.0f, 0.0f }, + .sibling = &N(D_80252764_C0FFE4), +}; + +StaticAnimatorNode N(D_802527BC_C1003C) = { + .sibling = &N(D_80252790_C10010), +}; + +StaticAnimatorNode N(D_802527E8_C10068) = { + .rot = { 0x0000, 0x0000, 0xF60C }, + .pos = { -252.0f, 0.0f, 0.0f }, + .child = &N(D_802527BC_C1003C), +}; + +StaticAnimatorNode N(D_80252814_C10094) = { + .rot = { 0x0000, 0x0000, 0x09F4 }, + .pos = { 253.0f, 285.0f, 86.0f }, + .child = &N(D_802527E8_C10068), +}; + +StaticAnimatorNode N(D_80252840_C100C0) = { + .displayList = N(D_8024CAF0_C0A370), + .sibling = &N(D_80252814_C10094), +}; + +StaticAnimatorNode N(D_8025286C_C100EC) = { + .displayList = N(D_8024CC28_C0A4A8), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80252840_C100C0), +}; + +StaticAnimatorNode N(D_80252898_C10118) = { + .displayList = N(D_8024CB68_C0A3E8), + .sibling = &N(D_8025286C_C100EC), +}; + +StaticAnimatorNode N(D_802528C4_C10144) = { + .displayList = N(D_8024CD98_C0A618), + .sibling = &N(D_80252898_C10118), +}; + +StaticAnimatorNode N(D_802528F0_C10170) = { + .displayList = N(D_8024CD10_C0A590), + .sibling = &N(D_802528C4_C10144), +}; + +StaticAnimatorNode N(D_8025291C_C1019C) = { + .displayList = N(D_8024CCA0_C0A520), + .sibling = &N(D_802528F0_C10170), +}; + +StaticAnimatorNode N(D_80252948_C101C8) = { + .displayList = N(D_8024CE08_C0A688), + .sibling = &N(D_8025291C_C1019C), +}; + +StaticAnimatorNode N(D_80252974_C101F4) = { + .displayList = N(D_8024C670_C09EF0), + .sibling = &N(D_80252948_C101C8), +}; + +StaticAnimatorNode N(D_802529A0_C10220) = { + .sibling = &N(D_8025270C_C0FF8C), + .child = &N(D_80252974_C101F4), +}; + +StaticAnimatorNode N(D_802529CC_C1024C) = { + .displayList = N(D_8024D2B8_C0AB38), +}; + +StaticAnimatorNode N(D_802529F8_C10278) = { + .displayList = N(D_8024D448_C0ACC8), + .sibling = &N(D_802529CC_C1024C), +}; + +StaticAnimatorNode N(D_80252A24_C102A4) = { + .displayList = N(D_8024D3C8_C0AC48), + .sibling = &N(D_802529F8_C10278), +}; + +StaticAnimatorNode N(D_80252A50_C102D0) = { + .pos = { 105.0f, -8.0f, 87.0f }, + .child = &N(D_80252A24_C102A4), +}; + +StaticAnimatorNode N(D_80252A7C_C102FC) = { + .displayList = N(D_8024D580_C0AE00), + .sibling = &N(D_80252A50_C102D0), +}; + +StaticAnimatorNode N(D_80252AA8_C10328) = { + .displayList = N(D_8024D680_C0AF00), + .sibling = &N(D_80252A7C_C102FC), +}; + +StaticAnimatorNode N(D_80252AD4_C10354) = { + .displayList = N(D_8024D828_C0B0A8), + .sibling = &N(D_80252AA8_C10328), +}; + +StaticAnimatorNode N(D_80252B00_C10380) = { + .displayList = N(D_8024D788_C0B008), + .sibling = &N(D_80252AD4_C10354), +}; + +StaticAnimatorNode N(D_80252B2C_C103AC) = { + .displayList = N(D_8024D700_C0AF80), + .sibling = &N(D_80252B00_C10380), +}; + +StaticAnimatorNode N(D_80252B58_C103D8) = { + .displayList = N(D_8024D8D0_C0B150), + .sibling = &N(D_80252B2C_C103AC), +}; + +StaticAnimatorNode N(D_80252B84_C10404) = { + .displayList = N(D_8024D060_C0A8E0), + .sibling = &N(D_80252B58_C103D8), +}; + +StaticAnimatorNode N(D_80252BB0_C10430) = { + .rot = { 0x0000, 0x1FFF, 0x0000 }, + .pos = { 61.0f, 47.0f, -31.0f }, + .sibling = &N(D_802529A0_C10220), + .child = &N(D_80252B84_C10404), +}; + +StaticAnimatorNode N(D_80252BDC_C1045C) = { + .displayList = N(D_8024E6D8_C0BF58), + .rot = { 0x038E, 0x0000, 0x18E3 }, + .pos = { -465.0f, 210.0f, -90.0f }, +}; + +StaticAnimatorNode N(D_80252C08_C10488) = { + .displayList = N(D_8024E5B0_C0BE30), + .rot = { 0x0000, 0x18E3, 0x1555 }, + .pos = { -465.0f, 210.0f, 90.0f }, + .sibling = &N(D_80252BDC_C1045C), +}; + +StaticAnimatorNode N(D_80252C34_C104B4) = { + .displayList = N(D_8024E800_C0C080), + .sibling = &N(D_80252C08_C10488), +}; + +StaticAnimatorNode N(D_80252C60_C104E0) = { + .displayList = N(D_8024EA60_C0C2E0), + .sibling = &N(D_80252C34_C104B4), +}; + +StaticAnimatorNode N(D_80252C8C_C1050C) = { + .displayList = N(D_8024E9D8_C0C258), + .sibling = &N(D_80252C60_C104E0), +}; + +StaticAnimatorNode N(D_80252CB8_C10538) = { + .displayList = N(D_8024E968_C0C1E8), + .sibling = &N(D_80252C8C_C1050C), +}; + +StaticAnimatorNode N(D_80252CE4_C10564) = { + .displayList = N(D_8024E8C0_C0C140), + .pos = { 0.0f, -500.0f, 0.0f }, + .sibling = &N(D_80252CB8_C10538), +}; + +StaticAnimatorNode N(D_80252D10_C10590) = { + .displayList = N(D_8024EAD0_C0C350), + .sibling = &N(D_80252CE4_C10564), +}; + +StaticAnimatorNode N(D_80252D3C_C105BC) = { + .displayList = N(D_8024E4D8_C0BD58), + .sibling = &N(D_80252D10_C10590), +}; + +StaticAnimatorNode N(D_80252D68_C105E8) = { + .pos = { 0.0f, -188.0f, 0.0f }, + .sibling = &N(D_80252BB0_C10430), + .child = &N(D_80252D3C_C105BC), +}; + +StaticAnimatorNode N(D_80252D94_C10614) = { + .displayList = N(D_802510C8_C0E948), + .pos = { -179.0f, 34.0f, 98.0f }, +}; + +StaticAnimatorNode N(D_80252DC0_C10640) = { + .displayList = N(D_80250E88_C0E708), + .pos = { -179.0f, 34.0f, 98.0f }, + .sibling = &N(D_80252D94_C10614), +}; + +StaticAnimatorNode N(D_80252DEC_C1066C) = { + .displayList = N(D_80251050_C0E8D0), + .pos = { -179.0f, 34.0f, 98.0f }, + .sibling = &N(D_80252DC0_C10640), +}; + +StaticAnimatorNode N(D_80252E18_C10698) = { + .displayList = N(D_80250FC8_C0E848), + .pos = { -179.0f, 34.0f, 98.0f }, + .sibling = &N(D_80252DEC_C1066C), +}; + +StaticAnimatorNode N(D_80252E44_C106C4) = { + .displayList = N(D_80250F40_C0E7C0), + .pos = { -179.0f, 34.0f, 98.0f }, + .sibling = &N(D_80252E18_C10698), +}; + +StaticAnimatorNode N(D_80252E70_C106F0) = { + .displayList = N(D_80250DE0_C0E660), + .pos = { -179.0f, 34.0f, 98.0f }, + .sibling = &N(D_80252E44_C106C4), +}; + +StaticAnimatorNode N(D_80252E9C_C1071C) = { + .rot = { 0xFB06, 0xC60C, 0 }, + .pos = { 179.0f, -34.0f, -98.0f }, + .child = &N(D_80252E70_C106F0), +}; + +StaticAnimatorNode N(D_80252EC8_C10748) = { + .rot = { 0, 0xFA06, 0xC464 }, + .pos = { -245.0f, 196.0f, 21.0f }, + .sibling = &N(D_80252D68_C105E8), + .child = &N(D_80252E9C_C1071C), +}; + +StaticAnimatorNode N(D_80252EF4_C10774) = { + .sibling = &N(D_802523C8_C0FC48), + .child = &N(D_80252EC8_C10748), +}; + +StaticAnimatorNode N(D_80252F20_C107A0) = { + .child = &N(D_80252EF4_C10774), +}; + +StaticAnimatorNode* N(SmashBridgesSkeleton)[] = { + &N(D_80252F20_C107A0), &N(D_80252EF4_C10774), &N(D_80252EC8_C10748), &N(D_80252E9C_C1071C), + &N(D_80252E70_C106F0), &N(D_80252E44_C106C4), &N(D_80252E18_C10698), &N(D_80252DEC_C1066C), + &N(D_80252DC0_C10640), &N(D_80252D94_C10614), &N(D_80252D68_C105E8), &N(D_80252D3C_C105BC), + &N(D_80252D10_C10590), &N(D_80252CE4_C10564), &N(D_80252CB8_C10538), &N(D_80252C8C_C1050C), + &N(D_80252C60_C104E0), &N(D_80252C34_C104B4), &N(D_80252C08_C10488), &N(D_80252BDC_C1045C), + &N(D_80252BB0_C10430), &N(D_80252B84_C10404), &N(D_80252B58_C103D8), &N(D_80252B2C_C103AC), + &N(D_80252B00_C10380), &N(D_80252AD4_C10354), &N(D_80252AA8_C10328), &N(D_80252A7C_C102FC), + &N(D_80252A50_C102D0), &N(D_80252A24_C102A4), &N(D_802529F8_C10278), &N(D_802529CC_C1024C), + &N(D_802529A0_C10220), &N(D_80252974_C101F4), &N(D_80252948_C101C8), &N(D_8025291C_C1019C), + &N(D_802528F0_C10170), &N(D_802528C4_C10144), &N(D_80252898_C10118), &N(D_8025286C_C100EC), + &N(D_80252840_C100C0), &N(D_80252814_C10094), &N(D_802527E8_C10068), &N(D_802527BC_C1003C), + &N(D_80252790_C10010), &N(D_80252764_C0FFE4), &N(D_80252738_C0FFB8), &N(D_8025270C_C0FF8C), + &N(D_802526E0_C0FF60), &N(D_802526B4_C0FF34), &N(D_80252688_C0FF08), &N(D_8025265C_C0FEDC), + &N(D_80252630_C0FEB0), &N(D_80252604_C0FE84), &N(D_802525D8_C0FE58), &N(D_802525AC_C0FE2C), + &N(D_80252580_C0FE00), &N(D_80252554_C0FDD4), &N(D_80252528_C0FDA8), &N(D_802524FC_C0FD7C), + &N(D_802524D0_C0FD50), &N(D_802524A4_C0FD24), &N(D_80252478_C0FCF8), &N(D_8025244C_C0FCCC), + &N(D_80252420_C0FCA0), &N(D_802523F4_C0FC74), &N(D_802523C8_C0FC48), &N(D_8025239C_C0FC1C), + &N(D_80252370_C0FBF0), &N(D_80252344_C0FBC4), &N(D_80252318_C0FB98), &N(D_802522EC_C0FB6C), + &N(D_802522C0_C0FB40), &N(D_80252294_C0FB14), &N(D_80252268_C0FAE8), &N(D_8025223C_C0FABC), + &N(D_80252210_C0FA90), &N(D_802521E4_C0FA64), &N(D_802521B8_C0FA38), &N(D_8025218C_C0FA0C), + &N(D_80252160_C0F9E0), &N(D_80252134_C0F9B4), &N(D_80252108_C0F988), &N(D_802520DC_C0F95C), + &N(D_802520B0_C0F930), &N(D_80252084_C0F904), &N(D_80252058_C0F8D8), &N(D_8025202C_C0F8AC), + &N(D_80252000_C0F880), &N(D_80251FD4_C0F854), &N(D_80251FA8_C0F828), &N(D_80251F7C_C0F7FC), + &N(D_80251F50_C0F7D0), &N(D_80251F24_C0F7A4), &N(D_80251EF8_C0F778), &N(D_80251ECC_C0F74C), + &N(D_80251EA0_C0F720), &N(D_80251E74_C0F6F4), &N(D_80251E48_C0F6C8), &N(D_80251E1C_C0F69C), + &N(D_80251DF0_C0F670), &N(D_80251DC4_C0F644), &N(D_80251D98_C0F618), &N(D_80251D6C_C0F5EC), + &N(D_80251D40_C0F5C0), &N(D_80251D14_C0F594), &N(D_80251CE8_C0F568), &N(D_80251CBC_C0F53C), + &N(D_80251C90_C0F510), &N(D_80251C64_C0F4E4), &N(D_80251C38_C0F4B8), &N(D_80251C0C_C0F48C), + &N(D_80251BE0_C0F460), &N(D_80251BB4_C0F434), &N(D_80251B88_C0F408), &N(D_80251B5C_C0F3DC), + &N(D_80251B30_C0F3B0), &N(D_80251B04_C0F384), &N(D_80251AD8_C0F358), &N(D_80251AAC_C0F32C), + &N(D_80251A80_C0F300), 0x00000000, 0x00000000, 0x00000000, 0x00000000, +}; diff --git a/src/world/area_dgb/C20F40.c b/src/world/area_dgb/dgb_01_smash_bridges.c similarity index 100% rename from src/world/area_dgb/C20F40.c rename to src/world/area_dgb/dgb_01_smash_bridges.c diff --git a/src/world/area_dgb/dgb_02/C2EBA0.c b/src/world/area_dgb/dgb_02/C2EBA0.c deleted file mode 100644 index 82464bcf26..0000000000 --- a/src/world/area_dgb/dgb_02/C2EBA0.c +++ /dev/null @@ -1,434 +0,0 @@ -#include "dgb_02.h" -#include "sprite/npc/WorldClubba.h" -#include "message_ids.h" - -enum { - NPC_WORLD_CLUBBA0 = 10, - NPC_WORLD_CLUBBA1, - NPC_WORLD_CLUBBA2 = 30, - NPC_WORLD_CLUBBA3, -}; - -EntryList N(entryList) = { - { -567.0f, 0.0f, 180.0f, 90.0f }, - { 567.0f, 0.0f, 180.0f, 270.0f }, - { -450.0f, 0.0f, 88.0f, 180.0f }, - { 450.0f, 0.0f, 88.0f, 180.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { 0x1900C2 }, -}; - -EvtScript N(802414B0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1548)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80241550) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 5) - EVT_SET(LVar2, 11) - EVT_SET(LVar3, 13) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80241604) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 17) - EVT_SET(LVar2, 18) - EVT_SET(LVar3, 16) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitSingleDoor_802416B8) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 2) - EVT_SET(LVar1, 9) - EVT_SET(LVar2, 21) - EVT_SET(LVar3, 1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_07"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitSingleDoor_8024176C) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 3) - EVT_SET(LVar1, 13) - EVT_SET(LVar2, 23) - EVT_SET(LVar3, 1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_11"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80241820) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 11) - EVT_SET(LVar3, 13) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 18) - EVT_SET(LVar3, 16) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(2) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 21) - EVT_SET(LVar3, 1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_CASE_EQ(3) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 23) - EVT_SET(LVar3, 1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_802425C8))) - EVT_END_IF - EVT_BIND_TRIGGER(N(exitDoubleDoor_80241550), TRIGGER_WALL_PRESS_A, 5, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80241604), TRIGGER_WALL_PRESS_A, 17, 1, 0) - EVT_BIND_TRIGGER(N(exitSingleDoor_802416B8), TRIGGER_WALL_PRESS_A, 9, 1, 0) - EVT_BIND_TRIGGER(N(exitSingleDoor_8024176C), TRIGGER_WALL_PRESS_A, 13, 1, 0) - EVT_EXEC(N(802414B0)) - EVT_EXEC(N(enterSingleDoor_80241820)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1AA8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(80241AB0) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(OUTCOME_PLAYER_WON) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(OUTCOME_PLAYER_FLED) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(OUTCOME_ENEMY_FLED) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(extraAnimationList_80241B6C)[] = { - ANIM_WorldClubba_Anim00, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_LIST_END, -}; - -s32 N(extraAnimationList_80241B94)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_80241B9C) = { - .moveSpeed = 1.5f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 85.0f, - .alertOffsetDist = 65.0f, - .playerSearchInterval = 5, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 12, - .chaseRadius = 110.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 3, -}; - -EvtScript N(npcAI_80241BCC) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 5) - EVT_CALL(SetSelfVar, 2, 8) - EVT_CALL(SetSelfVar, 3, 12) - EVT_CALL(N(WanderMeleeAI_Main), EVT_PTR(N(npcAISettings_80241B9C))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241C3C) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_80241BCC), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -MobileAISettings N(npcAISettings_80241C68) = { - .moveSpeed = 1.0f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 100.0f, - .alertOffsetDist = 40.0f, - .playerSearchInterval = 10, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 15, - .chaseRadius = 200.0f, - .chaseOffsetDist = 160.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_80241C98) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 10) - EVT_CALL(SetSelfVar, 2, 14) - EVT_CALL(SetSelfVar, 3, 18) - EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(npcAISettings_80241C68))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241D08) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_80241C98), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_80241D34) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241DDC) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_80241D34), - .onDefeat = &N(80241AB0), - .level = 13, - .actionFlags = 8, -}; - -StaticNpc N(npcGroup_80241E08)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_80241C3C), - .pos = { -200.0f, 0.0f, 180.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -200, 0, 180, 40, 0, -32767, 0, -200, 0, 175, 250, 90, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80241B6C), - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_80241DDC), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_80241B94), - }, -}; - -StaticNpc N(npcGroup_802421E8)[] = { - { - .id = NPC_WORLD_CLUBBA2, - .settings = &N(npcSettings_80241D08), - .pos = { 375.0f, 0.0f, 100.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 375, 0, 100, 40, 0, -32767, 0, 320, 0, 175, 250, 90, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA3, - .settings = &N(npcSettings_80241DDC), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_80241B94), - }, -}; - -NpcGroupList N(npcGroupList_802425C8) = { - NPC_GROUP(N(npcGroup_80241E08), 0x0F02, 0x00), - NPC_GROUP(N(npcGroup_802421E8), 0x0F01, 0x00), - {}, -}; - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" -#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" diff --git a/src/world/area_dgb/dgb_02/dgb_02.h b/src/world/area_dgb/dgb_02/dgb_02.h index 55b5a88edc..b60309b5d7 100644 --- a/src/world/area_dgb/dgb_02/dgb_02.h +++ b/src/world/area_dgb/dgb_02/dgb_02.h @@ -2,15 +2,22 @@ /// @brief Tubba's Castle - West Hall (1F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_02_shape.h" +#include "mapfs/dgb_02_hit.h" + +enum { + NPC_Clubba_01 = 10, + NPC_Clubba_01_Hitbox = 11, + NPC_Clubba_02 = 30, + NPC_Clubba_02_Hitbox = 31, +}; + #define NAMESPACE dgb_02 -ApiStatus N(WanderMeleeAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(ClubbaNappingAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt *script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_802425C8); -extern EvtScript N(main); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_02/dgb_02_0_header.c b/src/world/area_dgb/dgb_02/dgb_02_0_header.c new file mode 100644 index 0000000000..d23005b4b6 --- /dev/null +++ b/src/world/area_dgb/dgb_02/dgb_02_0_header.c @@ -0,0 +1,15 @@ +#include "dgb_02.h" + +EntryList N(Entrances) = { + [dgb_02_ENTRY_0] { -567.0, 0.0, 180.0, 90.0 }, + [dgb_02_ENTRY_1] { 567.0, 0.0, 180.0, 270.0 }, + [dgb_02_ENTRY_2] { -450.0, 0.0, 88.0, 180.0 }, + [dgb_02_ENTRY_3] { 450.0, 0.0, 88.0, 180.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_02 }, +}; diff --git a/src/world/area_dgb/dgb_02/dgb_02_1_music.c b/src/world/area_dgb/dgb_02/dgb_02_1_music.c new file mode 100644 index 0000000000..5e21451b75 --- /dev/null +++ b/src/world/area_dgb/dgb_02/dgb_02_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_02.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_02/dgb_02_2_main.c b/src/world/area_dgb/dgb_02/dgb_02_2_main.c new file mode 100644 index 0000000000..69fe5942c4 --- /dev/null +++ b/src/world/area_dgb/dgb_02/dgb_02_2_main.c @@ -0,0 +1,110 @@ +#include "dgb_02.h" + +EvtScript N(EVS_ExitDoors_dgb_03_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_02_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o30) + EVT_SET(LVar3, MODEL_o31) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_03"), dgb_03_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_01_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_02_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilitte) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoor_dgb_07_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_02_ENTRY_2) + EVT_SET(LVar1, COLLIDER_deilittnw) + EVT_SET(LVar2, MODEL_o76) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_07"), dgb_07_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoor_dgb_11_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_02_ENTRY_3) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o123) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_11"), dgb_11_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_02_ENTRY_0) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o30) + EVT_SET(LVar3, MODEL_o31) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_02_ENTRY_1) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_02_ENTRY_2) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o76) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_CASE_EQ(dgb_02_ENTRY_3) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o123) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_DEFAULT() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_03_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitte, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_07_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittnw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_11_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_02/dgb_02_3_npc.c b/src/world/area_dgb/dgb_02/dgb_02_3_npc.c new file mode 100644 index 0000000000..51ea1cf327 --- /dev/null +++ b/src/world/area_dgb/dgb_02/dgb_02_3_npc.c @@ -0,0 +1,64 @@ +#include "dgb_02.h" + +#define INCLUDE_CLUBBA_WANDER +#define INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +StaticNpc N(NpcData_Clubba_01)[] = { + { + .id = NPC_Clubba_01, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { -200.0f, 0.0f, 180.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -200, 0, 180 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { -200, 0, 175 }, + .detectSize = { 250, 90 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_01_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_02)[] = { + { + .id = NPC_Clubba_02, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 375.0f, 0.0f, 100.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 375, 0, 100 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 320, 0, 175 }, + .detectSize = { 250, 90 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_02_Hitbox), +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Clubba_01), BTL_DGB_FORMATION_02, BTL_DGB_STAGE_00), + NPC_GROUP(N(NpcData_Clubba_02), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_00), + {} +}; diff --git a/src/world/area_dgb/dgb_03/C314E0.c b/src/world/area_dgb/dgb_03/C314E0.c deleted file mode 100644 index fa07d59ca3..0000000000 --- a/src/world/area_dgb/dgb_03/C314E0.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "dgb_03.h" - -#include "world/common/todo/UnkFunc11.inc.c" - -#include "world/common/todo/UnkFunc12.inc.c" - -#include "world/common/todo/RemovePadlock.inc.c" - -#include "world/common/todo/GetEntityPosition.inc.c" diff --git a/src/world/area_dgb/dgb_03/C31730.c b/src/world/area_dgb/dgb_03/C31730.c deleted file mode 100644 index fd74b95a17..0000000000 --- a/src/world/area_dgb/dgb_03/C31730.c +++ /dev/null @@ -1,785 +0,0 @@ -#include "dgb_03.h" -#include "sprite/npc/WorldClubba.h" -#include "message_ids.h" -#include "entity.h" - -enum { - NPC_WORLD_CLUBBA0, - NPC_WORLD_CLUBBA1, - NPC_WORLD_CLUBBA2, - NPC_WORLD_CLUBBA3, - NPC_WORLD_CLUBBA4, - NPC_WORLD_CLUBBA5, -}; - -EntryList N(entryList) = { - { -343.0f, 0.0f, 80.0f, 90.0f }, - { 343.0f, 0.0f, 80.0f, 270.0f }, - { -220.0f, 0.0f, -170.0f, 180.0f }, - { -343.0f, 210.0f, 80.0f, 90.0f }, - { 343.0f, 210.0f, 80.0f, 270.0f }, - { -220.0f, 210.0f, -170.0f, 180.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_03 }, -}; - -EvtScript N(80242870) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_2908)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80242910) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 25) - EVT_SET(LVar2, 36) - EVT_SET(LVar3, 34) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802429C4) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 4) - EVT_SET(LVar1, 21) - EVT_SET(LVar2, 46) - EVT_SET(LVar3, 44) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_09"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80242A78) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 13) - EVT_SET(LVar2, 29) - EVT_SET(LVar3, 31) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_04"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitWalk_80242B2C) = EVT_EXIT_WALK(26, 2, "dgb_13", 0); - -EvtScript N(exitSingleDoor_80242B88) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 2) - EVT_SET(LVar1, 33) - EVT_SET(LVar2, 49) - EVT_SET(LVar3, 1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_05"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80242C3C) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 3) - EVT_SET(LVar1, 17) - EVT_SET(LVar2, 39) - EVT_SET(LVar3, 41) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_14"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(80242CF0) = { - EVT_BIND_TRIGGER(N(exitWalk_80242B2C), TRIGGER_FLOOR_ABOVE, 35, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterDoubleDoor_80242D1C) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 29) - EVT_SET(LVar3, 31) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(80242CF0)) - EVT_CASE_EQ(1) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 36) - EVT_SET(LVar3, 34) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(80242CF0)) - EVT_CASE_EQ(2) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 49) - EVT_SET(LVar3, 1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_EXEC(N(80242CF0)) - EVT_CASE_EQ(3) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 39) - EVT_SET(LVar3, 41) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(80242CF0)) - EVT_CASE_EQ(4) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 46) - EVT_SET(LVar3, 44) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(80242CF0)) - EVT_CASE_EQ(5) - EVT_SET(LVar0, EVT_PTR(N(80242CF0))) - EVT_EXEC(EnterWalkShort) - EVT_WAIT(1) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(itemList_80242F28)[] = { - ITEM_TUBBA_CASTLE_KEY, - ITEM_NONE, -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80244988))) - EVT_END_IF - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(80243608)) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80242910), TRIGGER_WALL_PRESS_A, 25, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_802429C4), TRIGGER_WALL_PRESS_A, 21, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80242A78), TRIGGER_WALL_PRESS_A, 13, 1, 0) - EVT_BIND_TRIGGER(N(exitSingleDoor_80242B88), TRIGGER_WALL_PRESS_A, 33, 1, 0) - EVT_IF_EQ(GF_DGB03_UnlockedThirdFloor, 0) - EVT_BIND_PADLOCK(N(80243740), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(itemList_80242F28)), 0, 1) - EVT_ELSE - EVT_BIND_TRIGGER(N(exitDoubleDoor_80242C3C), TRIGGER_WALL_PRESS_A, 17, 1, 0) - EVT_END_IF - EVT_EXEC(N(80242870)) - EVT_EXEC(N(enterDoubleDoor_80242D1C)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_30D8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(802430E0) = { - EVT_SET_GROUP(EVT_GROUP_00) - EVT_LOOP(20) - EVT_CALL(GetPartnerInUse, LVarA) - EVT_IF_NE(LVarA, 0) - EVT_SET(LVar8, -1) - EVT_RETURN - EVT_END_IF - EVT_CALL(N(UnkFunc11), LVar9) - EVT_IF_EQ(LVar0, 0) - EVT_SET(LVar8, -1) - EVT_RETURN - EVT_ELSE - EVT_CALL(SetPlayerActionState, 20) - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(GetPartnerInUse, LVarA) - EVT_IF_NE(LVarA, 0) - EVT_SET(LVar8, -1) - EVT_RETURN - EVT_END_IF - EVT_CALL(DisablePlayerInput, TRUE) - EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 100, EVT_FLOAT(0.6)) - EVT_END_THREAD - EVT_THREAD - EVT_IF_GE(LVar6, LVar7) - EVT_CALL(InterpPlayerYaw, 270, 0) - EVT_ELSE - EVT_CALL(InterpPlayerYaw, 90, 0) - EVT_END_IF - EVT_CALL(SetPlayerActionState, 20) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_SET(LVar1, LVar0) - EVT_SET(LVar2, LVar7) - EVT_SUB(LVar2, LVar6) - EVT_ADD(LVar1, LVar2) - EVT_CALL(MakeLerp, LVar0, LVar1, 100, 0) - EVT_LOOP(0) - EVT_CALL(SetPlayerActionState, 20) - EVT_CALL(UpdateLerp) - EVT_CALL(N(UnkFunc12)) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(SetPlayerActionState, 0) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_END_THREAD - EVT_CALL(MakeLerp, LVar6, LVar7, 100, 0) - EVT_CALL(PlaySoundAtCollider, 27, 0x80000010, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, 51, LVar0, 0, 0) - EVT_CALL(UpdateColliderTransform, 27) - EVT_CALL(UpdateColliderTransform, 28) - EVT_CALL(UpdateColliderTransform, 29) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(StopSound, 0x80000010) - EVT_RETURN - EVT_END -}; - -EvtScript N(80243470) = { - EVT_IF_NE(GF_DGB03_PushedClock, 0) - EVT_GOTO(90) - EVT_END_IF - EVT_SET(LVar6, 0) - EVT_SET(LVar7, 48) - EVT_SET(LVar8, 0) - EVT_SET(LVar9, 27) - EVT_EXEC_WAIT(N(802430E0)) - EVT_LABEL(90) - EVT_IF_NE(LVar8, -1) - EVT_SET(GF_DGB03_PushedClockLeft, 0) - EVT_SET(GF_DGB03_PushedClock, 1) - EVT_UNBIND - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(8024353C) = { - EVT_IF_NE(GF_DGB03_PushedClock, 0) - EVT_GOTO(90) - EVT_END_IF - EVT_SET(LVar6, 0) - EVT_SET(LVar7, -48) - EVT_SET(LVar8, 0) - EVT_SET(LVar9, 28) - EVT_EXEC_WAIT(N(802430E0)) - EVT_LABEL(90) - EVT_IF_NE(LVar8, -1) - EVT_SET(GF_DGB03_PushedClockLeft, 1) - EVT_SET(GF_DGB03_PushedClock, 1) - EVT_UNBIND - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(80243608) = { - EVT_CALL(ParentColliderToModel, 27, 51) - EVT_CALL(ParentColliderToModel, 28, 51) - EVT_CALL(ParentColliderToModel, 29, 51) - EVT_IF_EQ(GF_DGB03_PushedClock, 0) - EVT_BIND_TRIGGER(N(80243470), TRIGGER_WALL_PUSH, 27, 1, 0) - EVT_BIND_TRIGGER(N(8024353C), TRIGGER_WALL_PUSH, 28, 1, 0) - EVT_ELSE - EVT_IF_EQ(GF_DGB03_PushedClockLeft, 0) - EVT_SET(LVar0, 48) - EVT_ELSE - EVT_SET(LVar0, -48) - EVT_END_IF - EVT_CALL(TranslateModel, 51, LVar0, 0, 0) - EVT_CALL(UpdateColliderTransform, 27) - EVT_CALL(UpdateColliderTransform, 28) - EVT_CALL(UpdateColliderTransform, 29) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3738)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(80243740) = { - EVT_SET_GROUP(EVT_GROUP_00) - EVT_SUSPEND_GROUP(EVT_GROUP_01) - EVT_CALL(ShowKeyChoicePopup) - EVT_IF_EQ(LVar0, 0) - EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) - EVT_CALL(CloseChoicePopup) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_RETURN - EVT_END_IF - EVT_IF_EQ(LVar0, -1) - EVT_CALL(CloseChoicePopup) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_RETURN - EVT_END_IF - EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) - EVT_CALL(RemoveKeyItemAt, LVar0) - EVT_CALL(CloseChoicePopup) - EVT_SET(GF_DGB03_UnlockedThirdFloor, 1) - EVT_CALL(N(GetEntityPosition), MapVar(0), LVar0, LVar1, LVar2) - EVT_CALL(PlaySoundAt, 0x269, 0, LVar0, LVar1, LVar2) - EVT_SET(LVar0, MapVar(0)) - EVT_CALL(N(RemovePadlock)) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_UNBIND - EVT_RETURN - EVT_END -}; - -EvtScript N(802438A8) = { - EVT_BIND_TRIGGER(N(exitDoubleDoor_80242C3C), TRIGGER_WALL_PRESS_A, 17, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_IF_EQ(GF_DGB03_UnlockedThirdFloor, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_Padlock), -355, 218, 75, 80, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(802438A8))) - EVT_SET(MapVar(0), LVar0) - EVT_END_IF - EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 0, 75, 100, 17, GF_DGB03_Item_StarPiece) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3964)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(80243970) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(unk_missing_80243A2C)[] = { - 0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x0039000C, 0x00390007, 0x00390008, 0x00390011, - 0x00390012, 0xFFFFFFFF, -}; - -s32 N(extraAnimationList_80243A54)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_80243A5C) = { - .moveSpeed = 1.5f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 85.0f, - .alertOffsetDist = 65.0f, - .playerSearchInterval = 5, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 12, - .chaseRadius = 110.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 3, -}; - -EvtScript N(npcAI_80243A8C) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 5) - EVT_CALL(SetSelfVar, 2, 8) - EVT_CALL(SetSelfVar, 3, 12) - EVT_CALL(N(WanderMeleeAI_Main), EVT_PTR(N(npcAISettings_80243A5C))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80243AFC) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_80243A8C), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -MobileAISettings N(npcAISettings_80243B28) = { - .moveSpeed = 1.5f, - .moveTime = 20, - .waitTime = 30, - .alertRadius = 85.0f, - .alertOffsetDist = 65.0f, - .playerSearchInterval = 5, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 12, - .chaseRadius = 110.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 3, -}; - -EvtScript N(npcAI_80243B58) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 5) - EVT_CALL(SetSelfVar, 2, 8) - EVT_CALL(SetSelfVar, 3, 12) - EVT_CALL(N(ClubbaPatrolAI_Main), EVT_PTR(N(npcAISettings_80243B28))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80243BC8) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_80243B58), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -MobileAISettings N(npcAISettings_80243BF4) = { - .moveSpeed = 1.0f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 100.0f, - .alertOffsetDist = 40.0f, - .playerSearchInterval = 10, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 15, - .chaseRadius = 200.0f, - .chaseOffsetDist = 160.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_80243C24) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 10) - EVT_CALL(SetSelfVar, 2, 14) - EVT_CALL(SetSelfVar, 3, 18) - EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(npcAISettings_80243BF4))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80243C94) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_80243C24), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_80243CC0) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80243D68) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_80243CC0), - .onDefeat = &N(80243970), - .level = 13, - .actionFlags = 8, -}; - -EvtScript N(init_80243D94) = { - EVT_CALL(GetEntryID, LVar0) - EVT_IF_EQ(LVar0, 3) - EVT_CALL(SetNpcPos, NPC_SELF, -330, 210, -20) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80243DE8)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_80243AFC), - .pos = { 180.0f, 0.0f, -122.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 180, 0, -122, 40, 0, -32767, 0, 0, 0, 75, 355, 255, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_80243D68), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_80243A54), - }, -}; - -StaticNpc N(npcGroup_802441C8)[] = { - { - .id = NPC_WORLD_CLUBBA2, - .settings = &N(npcSettings_80243BC8), - .pos = { -272.0f, 0.0f, -135.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 2, -272, 0, -135, -171, 0, -135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32767, 0, 0, 75, 355, 255, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA3, - .settings = &N(npcSettings_80243D68), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_80243A54), - }, -}; - -StaticNpc N(npcGroup_802445A8)[] = { - { - .id = NPC_WORLD_CLUBBA4, - .settings = &N(npcSettings_80243C94), - .pos = { -326.0f, 210.0f, 80.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .init = &N(init_80243D94), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -326, 210, 80, 0, 0, -32767, 0, 0, 0, 75, 355, 255, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA5, - .settings = &N(npcSettings_80243D68), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_80243A54), - }, -}; - -NpcGroupList N(npcGroupList_80244988) = { - NPC_GROUP(N(npcGroup_80243DE8), 0x0F01, 0x01), - NPC_GROUP(N(npcGroup_802441C8), 0x0F01, 0x01), - NPC_GROUP(N(npcGroup_802445A8), 0x0F03, 0x00), - {}, -}; - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" - -#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" - -#include "world/common/enemy/ai/ClubbaPatrolAI.inc.c" - -#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" diff --git a/src/world/area_dgb/dgb_03/dgb_03.h b/src/world/area_dgb/dgb_03/dgb_03.h index e5824f47d5..3a8704bc6f 100644 --- a/src/world/area_dgb/dgb_03/dgb_03.h +++ b/src/world/area_dgb/dgb_03/dgb_03.h @@ -2,23 +2,32 @@ /// @brief Tubba's Castle - Table/Clock Room (1/2F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_03_shape.h" +#include "mapfs/dgb_03_hit.h" + +enum { + NPC_Clubba_Wander = 0, + NPC_Clubba_Wander_Hitbox = 1, + NPC_Clubba_Patrol = 2, + NPC_Clubba_Patrol_Hitbox = 3, + NPC_Clubba_Napping = 4, + NPC_Clubba_Napping_Hitbox = 5, +}; + +enum { + MV_PadlockEntityID = MapVar(0), +}; + #define NAMESPACE dgb_03 -ApiStatus N(UnkFunc11)(Evt* script, s32 isInitialCall); -ApiStatus N(UnkFunc12)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(WanderMeleeAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(ClubbaPatrolAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(ClubbaNappingAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(RemovePadlock)(Evt* script, s32 isInitialCall); -ApiStatus N(GetEntityPosition)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_80244988); -extern EvtScript N(80243608); -extern EvtScript N(80243740); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern EvtScript N(EVS_ExitDoors_dgb_14_0); +extern EvtScript N(EVS_UnlockPrompt_UpperDoor); +extern EvtScript N(EVS_SetupClock); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_03/dgb_03_0_header.c b/src/world/area_dgb/dgb_03/dgb_03_0_header.c new file mode 100644 index 0000000000..68b7c4f83a --- /dev/null +++ b/src/world/area_dgb/dgb_03/dgb_03_0_header.c @@ -0,0 +1,17 @@ +#include "dgb_03.h" + +EntryList N(Entrances) = { + [dgb_03_ENTRY_0] { -343.0, 0.0, 80.0, 90.0 }, + [dgb_03_ENTRY_1] { 343.0, 0.0, 80.0, 270.0 }, + [dgb_03_ENTRY_2] { -220.0, 0.0, -170.0, 180.0 }, + [dgb_03_ENTRY_3] { -343.0, 210.0, 80.0, 90.0 }, + [dgb_03_ENTRY_4] { 343.0, 210.0, 80.0, 270.0 }, + [dgb_03_ENTRY_5] { -220.0, 210.0, -170.0, 180.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_03 }, +}; diff --git a/src/world/area_dgb/dgb_03/dgb_03_1_music.c b/src/world/area_dgb/dgb_03/dgb_03_1_music.c new file mode 100644 index 0000000000..7aacd2bd01 --- /dev/null +++ b/src/world/area_dgb/dgb_03/dgb_03_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_03.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_03/dgb_03_2_main.c b/src/world/area_dgb/dgb_03/dgb_03_2_main.c new file mode 100644 index 0000000000..cc3af99403 --- /dev/null +++ b/src/world/area_dgb/dgb_03/dgb_03_2_main.c @@ -0,0 +1,160 @@ +#include "dgb_03.h" + +EvtScript N(EVS_ExitDoors_dgb_02_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_03_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilittse) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_02"), dgb_02_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_09_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_03_ENTRY_4) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o106) + EVT_SET(LVar3, MODEL_o105) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_09"), dgb_09_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_04_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_03_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittsw) + EVT_SET(LVar2, MODEL_o30) + EVT_SET(LVar3, MODEL_o31) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_04"), dgb_04_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitWalk_dgb_13_0) = EVT_EXIT_WALK(26, dgb_03_ENTRY_2, "dgb_13", dgb_13_ENTRY_0); + +EvtScript N(EVS_ExitDoors_dgb_05_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_03_ENTRY_2) + EVT_SET(LVar1, COLLIDER_deilitts) + EVT_SET(LVar2, MODEL_o76) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_05"), dgb_05_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_14_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_03_ENTRY_3) + EVT_SET(LVar1, COLLIDER_deilittnw) + EVT_SET(LVar2, MODEL_o103) + EVT_SET(LVar3, MODEL_o104) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_14"), dgb_14_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_dgb_13_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilin, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_03_ENTRY_0) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o30) + EVT_SET(LVar3, MODEL_o31) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_03_ENTRY_1) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_03_ENTRY_2) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o76) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_03_ENTRY_3) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o103) + EVT_SET(LVar3, MODEL_o104) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_03_ENTRY_4) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o106) + EVT_SET(LVar3, MODEL_o105) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_03_ENTRY_5) + EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers))) + EVT_EXEC(EnterWalkShort) + EVT_WAIT(1) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +s32 N(KeyList_UpperDoor)[] = { + ITEM_TUBBA_CASTLE_KEY, + ITEM_NONE +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_DEFAULT() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupClock)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_02_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittse, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_09_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_04_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittsw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_05_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitts, 1, 0) + EVT_IF_EQ(GF_DGB03_UnlockedThirdFloor, FALSE) + EVT_BIND_PADLOCK(EVT_PTR(N(EVS_UnlockPrompt_UpperDoor)), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(KeyList_UpperDoor)), 0, 1) + EVT_ELSE + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_14_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittnw, 1, 0) + EVT_END_IF + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_03/dgb_03_3_clock.c b/src/world/area_dgb/dgb_03/dgb_03_3_clock.c new file mode 100644 index 0000000000..5f694c305d --- /dev/null +++ b/src/world/area_dgb/dgb_03/dgb_03_3_clock.c @@ -0,0 +1,133 @@ +#include "dgb_03.h" + +#include "world/common/todo/UnkFunc11.inc.c" +#include "world/common/todo/UnkFunc12.inc.c" + +EvtScript N(EVS_PushClock_Impl) = { + EVT_SET_GROUP(EVT_GROUP_00) + EVT_LOOP(20) + EVT_CALL(GetPartnerInUse, LVarA) + EVT_IF_NE(LVarA, PARTNER_NONE) + EVT_SET(LVar8, -1) + EVT_RETURN + EVT_END_IF + EVT_CALL(N(UnkFunc11), LVar9) + EVT_IF_EQ(LVar0, 0) + EVT_SET(LVar8, -1) + EVT_RETURN + EVT_ELSE + EVT_CALL(SetPlayerActionState, ACTION_STATE_PUSHING_BLOCK) + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(GetPartnerInUse, LVarA) + EVT_IF_NE(LVarA, PARTNER_NONE) + EVT_SET(LVar8, -1) + EVT_RETURN + EVT_END_IF + EVT_CALL(DisablePlayerInput, TRUE) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 100, EVT_FLOAT(0.6)) + EVT_END_THREAD + EVT_THREAD + EVT_IF_GE(LVar6, LVar7) + EVT_CALL(InterpPlayerYaw, 270, 0) + EVT_ELSE + EVT_CALL(InterpPlayerYaw, 90, 0) + EVT_END_IF + EVT_CALL(SetPlayerActionState, ACTION_STATE_PUSHING_BLOCK) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_SET(LVar1, LVar0) + EVT_SET(LVar2, LVar7) + EVT_SUB(LVar2, LVar6) + EVT_ADD(LVar1, LVar2) + EVT_CALL(MakeLerp, LVar0, LVar1, 100, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(SetPlayerActionState, ACTION_STATE_PUSHING_BLOCK) + EVT_CALL(UpdateLerp) + EVT_CALL(N(UnkFunc12)) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_END_THREAD + EVT_CALL(MakeLerp, LVar6, LVar7, 100, EASING_LINEAR) + EVT_CALL(PlaySoundAtCollider, COLLIDER_o77, SOUND_80000010, 0) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, MODEL_o77, LVar0, 0, 0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o77) + EVT_CALL(UpdateColliderTransform, COLLIDER_o112) + EVT_CALL(UpdateColliderTransform, COLLIDER_o113) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(StopSound, SOUND_80000010) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_PushClockRight) = { + EVT_IF_NE(GF_DGB03_PushedClock, FALSE) + EVT_GOTO(90) + EVT_END_IF + EVT_SET(LVar6, 0) + EVT_SET(LVar7, 48) + EVT_SET(LVar8, 0) + EVT_SET(LVar9, 27) + EVT_EXEC_WAIT(N(EVS_PushClock_Impl)) + EVT_LABEL(90) + EVT_IF_NE(LVar8, -1) + EVT_SET(GF_DGB03_PushedClockLeft, FALSE) + EVT_SET(GF_DGB03_PushedClock, TRUE) + EVT_UNBIND + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_PushClockLeft) = { + EVT_IF_NE(GF_DGB03_PushedClock, FALSE) + EVT_GOTO(90) + EVT_END_IF + EVT_SET(LVar6, 0) + EVT_SET(LVar7, -48) + EVT_SET(LVar8, 0) + EVT_SET(LVar9, 28) + EVT_EXEC_WAIT(N(EVS_PushClock_Impl)) + EVT_LABEL(90) + EVT_IF_NE(LVar8, -1) + EVT_SET(GF_DGB03_PushedClockLeft, TRUE) + EVT_SET(GF_DGB03_PushedClock, TRUE) + EVT_UNBIND + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_SetupClock) = { + EVT_CALL(ParentColliderToModel, COLLIDER_o77, MODEL_o77) + EVT_CALL(ParentColliderToModel, COLLIDER_o112, MODEL_o77) + EVT_CALL(ParentColliderToModel, COLLIDER_o113, MODEL_o77) + EVT_IF_EQ(GF_DGB03_PushedClock, FALSE) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_PushClockRight)), TRIGGER_WALL_PUSH, COLLIDER_o77, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_PushClockLeft)), TRIGGER_WALL_PUSH, COLLIDER_o112, 1, 0) + EVT_ELSE + EVT_IF_EQ(GF_DGB03_PushedClockLeft, FALSE) + EVT_SET(LVar0, 48) + EVT_ELSE + EVT_SET(LVar0, -48) + EVT_END_IF + EVT_CALL(TranslateModel, MODEL_o77, LVar0, 0, 0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o77) + EVT_CALL(UpdateColliderTransform, COLLIDER_o112) + EVT_CALL(UpdateColliderTransform, COLLIDER_o113) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_03/dgb_03_4_entity.c b/src/world/area_dgb/dgb_03/dgb_03_4_entity.c new file mode 100644 index 0000000000..60fa49e55b --- /dev/null +++ b/src/world/area_dgb/dgb_03/dgb_03_4_entity.c @@ -0,0 +1,51 @@ +#include "dgb_03.h" +#include "entity.h" + +#include "world/common/todo/RemovePadlock.inc.c" +#include "world/common/todo/GetEntityPosition.inc.c" + +EvtScript N(EVS_UnlockPrompt_UpperDoor) = { + EVT_SET_GROUP(EVT_GROUP_00) + EVT_SUSPEND_GROUP(EVT_GROUP_01) + EVT_CALL(ShowKeyChoicePopup) + EVT_IF_EQ(LVar0, 0) + EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) + EVT_CALL(CloseChoicePopup) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_RETURN + EVT_END_IF + EVT_IF_EQ(LVar0, -1) + EVT_CALL(CloseChoicePopup) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_RETURN + EVT_END_IF + EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) + EVT_CALL(RemoveKeyItemAt, LVar0) + EVT_CALL(CloseChoicePopup) + EVT_SET(GF_DGB03_UnlockedThirdFloor, TRUE) + EVT_CALL(N(GetEntityPosition), MV_PadlockEntityID, LVar0, LVar1, LVar2) + EVT_CALL(PlaySoundAt, SOUND_269, 0, LVar0, LVar1, LVar2) + EVT_SET(LVar0, MV_PadlockEntityID) + EVT_CALL(N(RemovePadlock)) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_UNBIND + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_OpenLockedDoor) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_14_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittnw, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_MakeEntities) = { + EVT_IF_EQ(GF_DGB03_UnlockedThirdFloor, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_Padlock), -355, 218, 75, 80, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenLockedDoor))) + EVT_SET(MV_PadlockEntityID, LVar0) + EVT_END_IF + EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, 0, 75, 100, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB03_Item_StarPiece) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_03/dgb_03_5_npc.c b/src/world/area_dgb/dgb_03/dgb_03_5_npc.c new file mode 100644 index 0000000000..4aac57cfdc --- /dev/null +++ b/src/world/area_dgb/dgb_03/dgb_03_5_npc.c @@ -0,0 +1,103 @@ +#include "dgb_03.h" + +#define INCLUDE_CLUBBA_WANDER +#define INCLUDE_CLUBBA_PATROL +#define INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +EvtScript N(EVS_NpcInit_Clubba_Napping) = { + EVT_CALL(GetEntryID, LVar0) + EVT_IF_EQ(LVar0, dgb_03_ENTRY_3) + EVT_CALL(SetNpcPos, NPC_SELF, -330, 210, -20) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Clubba_Wander)[] = { + { + .id = NPC_Clubba_Wander, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { 180.0f, 0.0f, -122.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 180, 0, -122 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 75 }, + .detectSize = { 355, 255 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_Wander_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_Patrol)[] = { + { + .id = NPC_Clubba_Patrol, + .settings = &N(NpcSettings_Clubba_Patrol), + .pos = { -272.0f, 0.0f, -135.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .patrol = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .numPoints = 2, + .points = { + { -272, 0, -135 }, + { -171, 0, -135 }, + }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 75 }, + .detectSize = { 355, 255 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_Patrol_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_Napping)[] = { + { + .id = NPC_Clubba_Napping, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { -326.0f, 210.0f, 80.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Clubba_Napping), + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -326, 210, 80 }, + .wanderSize = { 0 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 75 }, + .detectSize = { 355, 255 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_Napping_Hitbox), +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Clubba_Wander), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_01), + NPC_GROUP(N(NpcData_Clubba_Patrol), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_01), + NPC_GROUP(N(NpcData_Clubba_Napping), BTL_DGB_FORMATION_03, BTL_DGB_STAGE_00), + {} +}; diff --git a/src/world/area_dgb/dgb_04/C36530.c b/src/world/area_dgb/dgb_04/C36530.c deleted file mode 100644 index f37bb4e8c5..0000000000 --- a/src/world/area_dgb/dgb_04/C36530.c +++ /dev/null @@ -1,291 +0,0 @@ -#include "dgb_04.h" -#include "sprite.h" -#include "world/partners.h" -#include "sprite/npc/Sentinel.h" -#include "message_ids.h" -#include "entity.h" - -enum { - NPC_SENTINEL, -}; - -EntryList N(entryList) = { - { 575.0f, 0.0f, 180.0f, 270.0f }, - { 575.0f, -420.0f, 180.0f, 270.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_04 }, -}; - -EvtScript N(80243170) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3208)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_80243210) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 16) - EVT_SET(LVar2, 16) - EVT_SET(LVar3, 1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_06"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802432C4) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 20) - EVT_SET(LVar2, 13) - EVT_SET(LVar3, 11) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80243378) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 13) - EVT_SET(LVar3, 11) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 16) - EVT_SET(LVar3, 1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80243D18))) - EVT_END_IF - EVT_EXEC_WAIT(N(makeEntities)) - EVT_BIND_TRIGGER(N(exitSingleDoor_80243210), TRIGGER_WALL_PRESS_A, 16, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_802432C4), TRIGGER_WALL_PRESS_A, 20, 1, 0) - EVT_EXEC(N(80243170)) - EVT_EXEC(N(enterSingleDoor_80243378)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3558)[] = { - 0x00000000, 0x00000000, -}; - -f32 N(FlyingAI_JumpVels)[] = { - 4.5f, 3.5f, 2.6f, 2.0f, - 1.5f, 20.0f, -}; - -EvtScript N(80243578) = { - EVT_CALL(SetSelfEnemyFlagBits, ((ENEMY_FLAGS_100000 | ENEMY_FLAGS_IGNORE_TOUCH | ENEMY_FLAGS_IGNORE_JUMP | ENEMY_FLAGS_IGNORE_HAMMER | ENEMY_FLAGS_8000000 | ENEMY_FLAGS_10000000 | ENEMY_FLAGS_20000000)), TRUE) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING)), TRUE) - EVT_RETURN - EVT_END -}; - -MobileAISettings N(npcAISettings_802435B4) = { - .moveSpeed = 1.5f, - .moveTime = 90, - .waitTime = 30, - .alertRadius = 240.0f, - .playerSearchInterval = 1, - .chaseSpeed = 5.3f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 1, - .chaseRadius = 240.0f, - .unk_AI_2C = 1, -}; - -extern const char N(dgb_00_name_hack)[]; - -EvtScript N(npcAI_802435E4) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 5, -650) - EVT_CALL(SetSelfVar, 6, 30) - EVT_CALL(SetSelfVar, 1, 600) - EVT_CALL(N(SentinelAI_Main), EVT_PTR(N(npcAISettings_802435B4))) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_WAIT(2) - EVT_LABEL(20) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar4, LVar2) - EVT_CALL(GetPlayerActionState, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_WAIT(1) - EVT_GOTO(20) - EVT_END_IF - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(InterruptUsePartner) - EVT_CALL(DisablePartnerAI, 0) - EVT_SET_GROUP(EVT_GROUP_00) - EVT_CALL(SetTimeFreezeMode, 1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 20) - EVT_ADD(LVar2, 2) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(func_80045838, -1, 759, 0) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim08) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) - EVT_WAIT(10) - EVT_CALL(func_80045838, -1, 1838, 0) - EVT_THREAD - EVT_LOOP(100) - EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_THREAD - EVT_THREAD - EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x108) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_END_THREAD - EVT_WAIT(30) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(80243A0C) = { - EVT_CALL(GetOwnerEncounterTrigger, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CASE_OR_EQ(2) - EVT_CASE_OR_EQ(4) - EVT_CASE_OR_EQ(6) - EVT_CALL(GetSelfAnimationFromTable, 7, LVar0) - EVT_EXEC_WAIT(EVS_NpcHitRecoil) - EVT_END_CASE_GROUP - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(80243A98) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(DoNpcDefeat) - EVT_CASE_EQ(1) - EVT_CASE_EQ(2) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80243AFC) = { - .height = 38, - .radius = 32, - .otherAI = &N(80243578), - .ai = &N(npcAI_802435E4), - .level = 99, -}; - -StaticNpc N(npcGroup_80243B28) = { - .id = NPC_SENTINEL, - .settings = &N(npcSettings_80243AFC), - .pos = { 70.0f, -220.0f, 186.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { 70, -220, 186, 15, 40, -32767, 1, 80, -220, 170, 80, 150, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, - .aiDetectFlags = AI_DETECT_SIGHT, -}; - -NpcGroupList N(npcGroupList_80243D18) = { - NPC_GROUP(N(npcGroup_80243B28)), - {}, -}; - -#define SUPER_BLOCK_MAPVAR MapVar(0) -#define SUPER_BLOCK_GAMEFLAG GF_DGB04_SuperBlock -#include "world/common/entity/SuperBlock.data.inc.c" - -EvtScript N(makeEntities) = { - EVT_MAKE_SUPER_BLOCK(500, -360, 110, 0) - EVT_RETURN - EVT_END -}; - -#define AI_SENTINEL_FIRST_NPC 0 -#define AI_SENTINEL_LAST_NPC 0 -#include "world/common/enemy/ai/SentinelAI.inc.c" - -#include "world/common/entity/SuperBlock.inc.c" - -const char N(dgb_00_name_hack)[] = "dgb_00"; diff --git a/src/world/area_dgb/dgb_04/dgb_04.h b/src/world/area_dgb/dgb_04/dgb_04.h index d55ed67018..aa7855edd1 100644 --- a/src/world/area_dgb/dgb_04/dgb_04.h +++ b/src/world/area_dgb/dgb_04/dgb_04.h @@ -2,14 +2,24 @@ /// @brief Tubba's Castle - Stairs to Basement #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_04_shape.h" +#include "mapfs/dgb_04_hit.h" + +enum { + NPC_Sentinel = 0, +}; + +enum { + MV_SuperBlock = MapVar(0), +}; + #define NAMESPACE dgb_04 -ApiStatus N(SentinelAI_Main)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_80243D18); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_04/dgb_04_0_header.c b/src/world/area_dgb/dgb_04/dgb_04_0_header.c new file mode 100644 index 0000000000..dd64bce9bf --- /dev/null +++ b/src/world/area_dgb/dgb_04/dgb_04_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_04.h" + +EntryList N(Entrances) = { + [dgb_04_ENTRY_0] { 575.0, 0.0, 180.0, 270.0 }, + [dgb_04_ENTRY_1] { 575.0, -420.0, 180.0, 270.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_04 }, +}; diff --git a/src/world/area_dgb/dgb_04/dgb_04_1_music.c b/src/world/area_dgb/dgb_04/dgb_04_1_music.c new file mode 100644 index 0000000000..f853ba2b31 --- /dev/null +++ b/src/world/area_dgb/dgb_04/dgb_04_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_04.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_04/dgb_04_2_main.c b/src/world/area_dgb/dgb_04/dgb_04_2_main.c new file mode 100644 index 0000000000..6eff747722 --- /dev/null +++ b/src/world/area_dgb/dgb_04/dgb_04_2_main.c @@ -0,0 +1,67 @@ +#include "dgb_04.h" + +EvtScript N(EVS_ExitDoor_dgb_06_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_04_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittse) + EVT_SET(LVar2, MODEL_o206) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_06"), dgb_06_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_03_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_04_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_03"), dgb_03_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_04_ENTRY_0) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_04_ENTRY_1) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o206) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_06_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittse, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_03_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_04/dgb_04_3_npc.c b/src/world/area_dgb/dgb_04/dgb_04_3_npc.c new file mode 100644 index 0000000000..3955f80309 --- /dev/null +++ b/src/world/area_dgb/dgb_04/dgb_04_3_npc.c @@ -0,0 +1,33 @@ +#include "dgb_04.h" + +#define AI_SENTINEL_FIRST_NPC NPC_Sentinel +#define AI_SENTINEL_LAST_NPC NPC_Sentinel +#include "world/common/enemy/complete/Sentinel.inc.c" + +StaticNpc N(NpcData_Sentinel) = { + .id = NPC_Sentinel, + .settings = &N(NpcSettings_Sentinel), + .pos = { 70.0f, -220.0f, 186.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_RECT, + .centerPos = { 70, -220, 186 }, + .wanderSize = { 15, 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 80, -220, 170 }, + .detectSize = { 80, 150 }, + } + }, + .animations = SENTINEL_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT, +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Sentinel)), + {} +}; diff --git a/src/world/area_dgb/dgb_04/dgb_04_4_entity.c b/src/world/area_dgb/dgb_04/dgb_04_4_entity.c new file mode 100644 index 0000000000..59013efe56 --- /dev/null +++ b/src/world/area_dgb/dgb_04/dgb_04_4_entity.c @@ -0,0 +1,13 @@ +#include "dgb_04.h" +#include "entity.h" + +#define SUPER_BLOCK_MAPVAR MV_SuperBlock +#define SUPER_BLOCK_GAMEFLAG GF_DGB04_SuperBlock +#include "world/common/entity/SuperBlock.inc.c" +#include "world/common/entity/SuperBlock.data.inc.c" + +EvtScript N(EVS_MakeEntities) = { + EVT_MAKE_SUPER_BLOCK(500, -360, 110, 0) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_05/C3AA10.c b/src/world/area_dgb/dgb_05/C3AA10.c deleted file mode 100644 index 726cbce8bd..0000000000 --- a/src/world/area_dgb/dgb_05/C3AA10.c +++ /dev/null @@ -1,369 +0,0 @@ -#include "dgb_05.h" -#include "sprite/npc/WorldClubba.h" -#include "message_ids.h" -#include "entity.h" - -enum { - NPC_WORLD_CLUBBA0, - NPC_WORLD_CLUBBA1, - NPC_WORLD_CLUBBA2 = 3, - NPC_WORLD_CLUBBA3, -}; - -EntryList N(entryList) = { - { 515.0f, 0.0f, 310.0f, 0.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_05 }, -}; - -EvtScript N(802414E0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1578)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_80241580) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 16) - EVT_SET(LVar2, 30) - EVT_SET(LVar3, -1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80241634) = { - EVT_CALL(UseDoorSounds, 0) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 30) - EVT_SET(LVar3, -1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_8024230C))) - EVT_END_IF - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(802417F0)) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 18, 0x7FFFFE00) - EVT_CALL(EnableModel, 20, 0) - EVT_BIND_TRIGGER(N(exitSingleDoor_80241580), TRIGGER_WALL_PRESS_A, 16, 1, 0) - EVT_EXEC(N(802414E0)) - EVT_EXEC(N(enterSingleDoor_80241634)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_17E8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(802417F0) = { - EVT_CALL(N(func_80240000_C3AA10)) - EVT_CALL(func_802CA988, 0, LVar2, LVar3, LVar4, LVar5) - EVT_CALL(N(func_80240030_C3AA40)) - EVT_SET(GF_DGB05_BoardedFloor, 1) - EVT_CALL(GotoMap, EVT_PTR("dgb_06"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1868)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(makeEntities) = { - EVT_IF_EQ(GF_DGB05_BoardedFloor, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 510, -210, 100, 0, MAKE_ENTITY_END) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -static s32 N(pad_18BC) = { - 0x00000000, -}; - -EvtScript N(802418C0) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(unk_missing_8024197C)[] = { - 0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x0039000C, 0x00390007, 0x00390008, 0x00390011, - 0x00390012, 0xFFFFFFFF, -}; - -s32 N(extraAnimationList_802419A4)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_802419AC) = { - .moveSpeed = 1.0f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 100.0f, - .alertOffsetDist = 40.0f, - .playerSearchInterval = 10, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 15, - .chaseRadius = 200.0f, - .chaseOffsetDist = 160.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_802419DC) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 10) - EVT_CALL(SetSelfVar, 2, 14) - EVT_CALL(SetSelfVar, 3, 18) - EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(npcAISettings_802419AC))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241A4C) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_802419DC), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_80241A78) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241B20) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_80241A78), - .onDefeat = &N(802418C0), - .level = 13, - .actionFlags = 8, -}; - -StaticNpc N(npcGroup_80241B4C)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_80241A4C), - .pos = { 132.0f, -110.0f, 238.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 132, -110, 238, 0, 0, -32767, 0, 325, 0, 185, 200 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_80241B20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802419A4), - }, -}; - -StaticNpc N(npcGroup_80241F2C)[] = { - { - .id = NPC_WORLD_CLUBBA2, - .settings = &N(npcSettings_80241A4C), - .pos = { 503.0f, -210.0f, 225.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 503, -210, 225, 0, 0, -32767, 0, 503, -210, 290, 200, 150, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA3, - .settings = &N(npcSettings_80241B20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802419A4), - }, -}; - -NpcGroupList N(npcGroupList_8024230C) = { - NPC_GROUP(N(npcGroup_80241B4C), 0x0F01, 0x02), - NPC_GROUP(N(npcGroup_80241F2C), 0x0F02, 0x02), - {}, -}; - -ApiStatus N(func_80240000_C3AA10)(Evt* script, s32 isInitialCall) { - if (gPlayerStatus.position.y >= -210.0f) { - return ApiStatus_BLOCK; - } - return ApiStatus_DONE2; -} - -ApiStatus N(func_80240030_C3AA40)(Evt* script, s32 isInitialCall) { - if (gPlayerStatus.position.y > -270.0f) { - return ApiStatus_BLOCK; - } - return ApiStatus_DONE2; -} - -#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" diff --git a/src/world/area_dgb/dgb_05/dgb_05.h b/src/world/area_dgb/dgb_05/dgb_05.h index 0fadfb4caf..7c97b8adc5 100644 --- a/src/world/area_dgb/dgb_05/dgb_05.h +++ b/src/world/area_dgb/dgb_05/dgb_05.h @@ -2,18 +2,24 @@ /// @brief Tubba's Castle - Stairs Above Basement #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_05_shape.h" +#include "mapfs/dgb_05_hit.h" + +enum { + NPC_Clubba_01 = 0, + NPC_Clubba_01_Hitbox = 1, + NPC_Clubba_02 = 3, + NPC_Clubba_02_Hitbox = 4, +}; + #define NAMESPACE dgb_05 -ApiStatus N(func_80240000_C3AA10)(Evt* script, s32 isInitialCall); -ApiStatus N(func_80240030_C3AA40)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(ClubbaNappingAI_Main)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_8024230C); -extern EvtScript N(802417F0); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_SetupHole); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_05/dgb_05_0_header.c b/src/world/area_dgb/dgb_05/dgb_05_0_header.c new file mode 100644 index 0000000000..bf40500bca --- /dev/null +++ b/src/world/area_dgb/dgb_05/dgb_05_0_header.c @@ -0,0 +1,12 @@ +#include "dgb_05.h" + +EntryList N(Entrances) = { + [dgb_05_ENTRY_0] { 515.0, 0.0, 310.0, 0.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_05 }, +}; diff --git a/src/world/area_dgb/dgb_05/dgb_05_1_music.c b/src/world/area_dgb/dgb_05/dgb_05_1_music.c new file mode 100644 index 0000000000..852b59d690 --- /dev/null +++ b/src/world/area_dgb/dgb_05/dgb_05_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_05.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_05/dgb_05_2_main.c b/src/world/area_dgb/dgb_05/dgb_05_2_main.c new file mode 100644 index 0000000000..b9a9f2636e --- /dev/null +++ b/src/world/area_dgb/dgb_05/dgb_05_2_main.c @@ -0,0 +1,48 @@ +#include "dgb_05.h" + +EvtScript N(EVS_ExitDoor_dgb_03_2) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_05_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittn) + EVT_SET(LVar2, MODEL_o158) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_03"), dgb_03_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_05_ENTRY_0) + EVT_SET(LVar2, MODEL_o158) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupHole)) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitts, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(EnableModel, MODEL_o297, FALSE) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_03_2)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittn, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_05/dgb_05_3_hole.c b/src/world/area_dgb/dgb_05/dgb_05_3_hole.c new file mode 100644 index 0000000000..edfeb12d0b --- /dev/null +++ b/src/world/area_dgb/dgb_05/dgb_05_3_hole.c @@ -0,0 +1,26 @@ +#include "dgb_05.h" + +API_CALLABLE(N(AwaitFallInHole)) { + if (gPlayerStatus.position.y >= -210.0f) { + return ApiStatus_BLOCK; + } + return ApiStatus_DONE2; +} + +API_CALLABLE(N(AwaitFallDownHole)) { + if (gPlayerStatus.position.y > -270.0f) { + return ApiStatus_BLOCK; + } + return ApiStatus_DONE2; +} + +EvtScript N(EVS_SetupHole) = { + EVT_CALL(N(AwaitFallInHole)) + EVT_CALL(func_802CA988, 0, LVar2, LVar3, LVar4, LVar5) + EVT_CALL(N(AwaitFallDownHole)) + EVT_SET(GF_DGB05_BoardedFloor, TRUE) + EVT_CALL(GotoMap, EVT_PTR("dgb_06"), dgb_06_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_05/dgb_05_4_entity.c b/src/world/area_dgb/dgb_05/dgb_05_4_entity.c new file mode 100644 index 0000000000..8905dc43eb --- /dev/null +++ b/src/world/area_dgb/dgb_05/dgb_05_4_entity.c @@ -0,0 +1,10 @@ +#include "dgb_05.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_IF_EQ(GF_DGB05_BoardedFloor, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 510, -210, 100, 0, MAKE_ENTITY_END) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_05/dgb_05_5_npc.c b/src/world/area_dgb/dgb_05/dgb_05_5_npc.c new file mode 100644 index 0000000000..eb032c7252 --- /dev/null +++ b/src/world/area_dgb/dgb_05/dgb_05_5_npc.c @@ -0,0 +1,62 @@ +#include "dgb_05.h" + +#define INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +StaticNpc N(NpcData_Clubba_01)[] = { + { + .id = NPC_Clubba_01, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 132.0f, -110.0f, 238.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 132, -110, 238 }, + .wanderSize = { 0 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 325, 0, 185 }, + .detectSize = { 200 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_01_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_02)[] = { + { + .id = NPC_Clubba_02, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 503.0f, -210.0f, 225.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 503, -210, 225 }, + .wanderSize = { 0 }, + .detectShape = SHAPE_RECT, + .detectPos = { 503, -210, 290 }, + .detectSize = { 200, 150 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_02_Hitbox), +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Clubba_01), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_02), BTL_DGB_FORMATION_02, BTL_DGB_STAGE_02), + {} +}; diff --git a/src/world/area_dgb/dgb_06/C3D080.c b/src/world/area_dgb/dgb_06/C3D080.c deleted file mode 100644 index cd689c3b17..0000000000 --- a/src/world/area_dgb/dgb_06/C3D080.c +++ /dev/null @@ -1,169 +0,0 @@ -#include "dgb_06.h" -#include "entity.h" -#include "sprite/npc/Boo.h" -#include "message_ids.h" - -enum { - NPC_BOO, -}; - -EntryList N(entryList) = { - { -575.0f, 0.0f, 175.0f, 90.0f }, - { -150.0f, 100.0f, -250.0f, 0.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_06 }, -}; - -EvtScript N(80240320) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3B8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_802403C0) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 12) - EVT_SET(LVar2, 5) - EVT_SET(LVar3, -1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_04"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80240474) = { - EVT_CALL(UseDoorSounds, 0) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 5) - EVT_SET(LVar3, -1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, 589824) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80240B44))) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_IF_EQ(GF_DGB05_BoardedFloor, 0) - EVT_CALL(EnableGroup, 28, 0) - EVT_ELSE - EVT_CALL(EnableGroup, 25, 0) - EVT_END_IF - EVT_BIND_TRIGGER(N(exitSingleDoor_802403C0), TRIGGER_WALL_PRESS_A, 12, 1, 0) - EVT_EXEC(N(80240320)) - EVT_EXEC(N(enterSingleDoor_80240474)) - EVT_RETURN - EVT_END -}; - -#define CHEST_ITEM 19 -#define CHEST_FLAG 1048 -#include "world/common/atomic/Chest.old.inc.c" - -EvtScript N(makeEntities) = { - EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), -300, 50, -200, 0, 0, MAKE_ENTITY_END) - EVT_CALL(AssignChestFlag, GameFlag(CHEST_FLAG)) - EVT_CALL(AssignScript, EVT_PTR(N(EVS_Chest_Interact))) - EVT_CALL(MakeEntity, EVT_PTR(Entity_HeartBlock), -125, 60, 175, 0, MAKE_ENTITY_END) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_834)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -NpcSettings N(npcSettings_80240840) = { - .height = 24, - .radius = 24, - .level = 99, -}; - -EvtScript N(interact_8024086C) = { - EVT_IF_EQ(AreaFlag(4), 0) - EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00F0) - EVT_SET(AreaFlag(4), 1) - EVT_ELSE - EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00F1) - EVT_SET(AreaFlag(4), 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(init_802408FC) = { - EVT_IF_GE(GB_StoryProgress, -26) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_END_IF - EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_8024086C))) - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80240954) = { - .id = NPC_BOO, - .settings = &N(npcSettings_80240840), - .pos = { -300.0f, 10.0f, 150.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_400, - .init = &N(init_802408FC), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Walk, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Idle, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Still, - ANIM_Boo_Tan_Confused, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - ANIM_Boo_Tan_Run, - }, - .tattle = MSG_NpcTattle_HidingBoo, -}; - -NpcGroupList N(npcGroupList_80240B44) = { - NPC_GROUP(N(npcGroup_80240954)), - {}, -}; diff --git a/src/world/area_dgb/dgb_06/dgb_06.h b/src/world/area_dgb/dgb_06/dgb_06.h index 4f7eb8320c..77d9c91cb1 100644 --- a/src/world/area_dgb/dgb_06/dgb_06.h +++ b/src/world/area_dgb/dgb_06/dgb_06.h @@ -2,12 +2,20 @@ /// @brief Tubba's Castle - Basement #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_06_shape.h" +#include "mapfs/dgb_06_hit.h" + +enum { + NPC_Boo = 0, +}; + #define NAMESPACE dgb_06 -extern NpcGroupList N(npcGroupList_80240B44); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_06/dgb_06_0_header.c b/src/world/area_dgb/dgb_06/dgb_06_0_header.c new file mode 100644 index 0000000000..20c86d5e3b --- /dev/null +++ b/src/world/area_dgb/dgb_06/dgb_06_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_06.h" + +EntryList N(Entrances) = { + [dgb_06_ENTRY_0] { -575.0, 0.0, 175.0, 90.0 }, + [dgb_06_ENTRY_1] { -150.0, 100.0, -250.0, 0.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_06 }, +}; diff --git a/src/world/area_dgb/dgb_06/dgb_06_1_music.c b/src/world/area_dgb/dgb_06/dgb_06_1_music.c new file mode 100644 index 0000000000..b0134895fb --- /dev/null +++ b/src/world/area_dgb/dgb_06/dgb_06_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_06.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_06/dgb_06_2_main.c b/src/world/area_dgb/dgb_06/dgb_06_2_main.c new file mode 100644 index 0000000000..a687cf762f --- /dev/null +++ b/src/world/area_dgb/dgb_06/dgb_06_2_main.c @@ -0,0 +1,48 @@ +#include "dgb_06.h" + +EvtScript N(EVS_ExitDoor_dgb_04_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_06_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o161) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_04"), dgb_04_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_06_ENTRY_0) + EVT_SET(LVar2, MODEL_o161) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_DGB_06) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_IF_EQ(GF_DGB05_BoardedFloor, FALSE) + EVT_CALL(EnableGroup, MODEL_g52, FALSE) + EVT_ELSE + EVT_CALL(EnableGroup, MODEL_g53, FALSE) + EVT_END_IF + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_04_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_06/dgb_06_3_entity.c b/src/world/area_dgb/dgb_06/dgb_06_3_entity.c new file mode 100644 index 0000000000..2aa19de974 --- /dev/null +++ b/src/world/area_dgb/dgb_06/dgb_06_3_entity.c @@ -0,0 +1,15 @@ +#include "dgb_06.h" +#include "entity.h" + +#include "world/common/atomic/Chest.inc.c" + +EvtScript N(EVS_Chest_Interact) = EVT_OPEN_CHEST_KEY(ITEM_TUBBA_CASTLE_KEY, GF_DGB06_Chest_CastleKey1); + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), -300, 50, -200, 0, 0, MAKE_ENTITY_END) + EVT_CALL(AssignChestFlag, GF_DGB06_Chest_CastleKey1) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_Chest_Interact))) + EVT_CALL(MakeEntity, EVT_PTR(Entity_HeartBlock), -125, 60, 175, 0, MAKE_ENTITY_END) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_06/dgb_06_4_npc.c b/src/world/area_dgb/dgb_06/dgb_06_4_npc.c new file mode 100644 index 0000000000..9bc343ab7e --- /dev/null +++ b/src/world/area_dgb/dgb_06/dgb_06_4_npc.c @@ -0,0 +1,41 @@ +#include "dgb_06.h" + +#include "world/common/npc/Boo.inc.c" + +EvtScript N(EVS_NpcInteract_Boo) = { + EVT_IF_EQ(AF_DGB06_Boo_Dialogue, FALSE) + EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00F0) + EVT_SET(AF_DGB06_Boo_Dialogue, TRUE) + EVT_ELSE + EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Boo_Tan_Talk, ANIM_Boo_Tan_Idle, 0, MSG_CH3_00F1) + EVT_SET(AF_DGB06_Boo_Dialogue, FALSE) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Boo) = { + EVT_IF_GE(GB_StoryProgress, STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER) + EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) + EVT_END_IF + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(EVS_NpcInteract_Boo))) + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Boo) = { + .id = NPC_Boo, + .settings = &N(NpcSettings_Boo), + .pos = { -300.0f, 10.0f, 150.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Boo), + .drops = NPC_NO_DROPS, + .animations = GUSTY_BOO_ANIMS, + .tattle = MSG_NpcTattle_HidingBoo, +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Boo)), + {} +}; diff --git a/src/world/area_dgb/dgb_07/C3DBF0.c b/src/world/area_dgb/dgb_07/C3DBF0.c deleted file mode 100644 index 72c49c6c9d..0000000000 --- a/src/world/area_dgb/dgb_07/C3DBF0.c +++ /dev/null @@ -1,273 +0,0 @@ -#include "dgb_07.h" -#include "message_ids.h" -#include "entity.h" -#include "sprite/npc/WorldClubba.h" - -enum { - NPC_WORLD_CLUBBA0, - NPC_WORLD_CLUBBA1, -}; - -EntryList N(entryList) = { - { -450.0f, 0.0f, -40.0f, 0.0f }, - { 250.0f, 190.0f, -250.0f, 180.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_07 }, -}; - -EvtScript N(80241490) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1528)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_80241530) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 6) - EVT_SET(LVar2, 22) - EVT_SET(LVar3, -1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_802415E4) = { - EVT_CALL(UseDoorSounds, 0) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 22) - EVT_SET(LVar3, -1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80241E5C))) - EVT_END_IF - EVT_EXEC_WAIT(N(makeEntities)) - EVT_BIND_TRIGGER(N(exitSingleDoor_80241530), TRIGGER_WALL_PRESS_A, 6, 1, 0) - EVT_EXEC(N(80241490)) - EVT_EXEC(N(enterSingleDoor_802415E4)) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, -220, 75, -210, 17, GF_DGB07_Item_StarPiece) - EVT_CALL(MakeEntity, EVT_PTR(Entity_WoodenCrate), -370, 0, -200, 0, -1, MAKE_ENTITY_END) - EVT_CALL(MakeEntity, EVT_PTR(Entity_WoodenCrate), -410, 0, -200, 0, -1, MAKE_ENTITY_END) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_17E4)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(802417F0) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(extraAnimationList_802418AC)[] = { - ANIM_WorldClubba_Anim00, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_LIST_END, -}; - -s32 N(extraAnimationList_802418D4)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_802418DC) = { - .moveSpeed = 1.0f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 100.0f, - .alertOffsetDist = 40.0f, - .playerSearchInterval = 10, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 15, - .chaseRadius = 200.0f, - .chaseOffsetDist = 160.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_8024190C) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 10) - EVT_CALL(SetSelfVar, 2, 14) - EVT_CALL(SetSelfVar, 3, 18) - EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(npcAISettings_802418DC))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_8024197C) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_8024190C), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_802419A8) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241A50) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_802419A8), - .onDefeat = &N(802417F0), - .level = 13, - .actionFlags = 8, -}; - -StaticNpc N(npcGroup_80241A7C)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_8024197C), - .pos = { -500.0f, 0.0f, -240.0f }, - .flags = ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -500, 0, -240, 40, 0, -32767, 0, -500, 0, -240, 200, 0, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_802418AC), - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_80241A50), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418D4), - }, -}; - -NpcGroupList N(npcGroupList_80241E5C) = { - NPC_GROUP(N(npcGroup_80241A7C), 0x0F01, 0x02), - {}, -}; - -static const s32 N(pad_1E74)[] = { - 0x00000000, 0x00000000 -}; - -#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" diff --git a/src/world/area_dgb/dgb_07/dgb_07.h b/src/world/area_dgb/dgb_07/dgb_07.h index 50135932c3..aabb5e517e 100644 --- a/src/world/area_dgb/dgb_07/dgb_07.h +++ b/src/world/area_dgb/dgb_07/dgb_07.h @@ -2,15 +2,21 @@ /// @brief Tubba's Castle - Study (1F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_07_shape.h" +#include "mapfs/dgb_07_hit.h" + +enum { + NPC_Clubba_01 = 0, + NPC_Clubba_01_Hitbox = 1, +}; + #define NAMESPACE dgb_07 -ApiStatus N(ClubbaNappingAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt *script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_80241E5C); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_07/dgb_07_0_header.c b/src/world/area_dgb/dgb_07/dgb_07_0_header.c new file mode 100644 index 0000000000..746e7edc81 --- /dev/null +++ b/src/world/area_dgb/dgb_07/dgb_07_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_07.h" + +EntryList N(Entrances) = { + [dgb_07_ENTRY_0] { -450.0, 0.0, -40.0, 0.0 }, + [dgb_07_ENTRY_1] { 250.0, 190.0, -250.0, 180.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_07 }, +}; diff --git a/src/world/area_dgb/dgb_07/dgb_07_1_music.c b/src/world/area_dgb/dgb_07/dgb_07_1_music.c new file mode 100644 index 0000000000..d7dd88b37b --- /dev/null +++ b/src/world/area_dgb/dgb_07/dgb_07_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_07.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_07/dgb_07_2_main.c b/src/world/area_dgb/dgb_07/dgb_07_2_main.c new file mode 100644 index 0000000000..bd01d50979 --- /dev/null +++ b/src/world/area_dgb/dgb_07/dgb_07_2_main.c @@ -0,0 +1,47 @@ +#include "dgb_07.h" + +EvtScript N(EVS_ExitDoor_dgb_02_2) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_07_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilits) + EVT_SET(LVar2, MODEL_o158) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_02"), dgb_02_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +MAP_RODATA_PAD(1, strings); + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_07_ENTRY_0) + EVT_SET(LVar2, MODEL_o158) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_02_2)), TRIGGER_WALL_PRESS_A, COLLIDER_deilits, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_07/dgb_07_3_entity.c b/src/world/area_dgb/dgb_07/dgb_07_3_entity.c new file mode 100644 index 0000000000..1bd5fec42d --- /dev/null +++ b/src/world/area_dgb/dgb_07/dgb_07_3_entity.c @@ -0,0 +1,10 @@ +#include "dgb_07.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeItemEntity, ITEM_STAR_PIECE, -220, 75, -210, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB07_Item_StarPiece) + EVT_CALL(MakeEntity, EVT_PTR(Entity_WoodenCrate), -370, 0, -200, 0, -1, MAKE_ENTITY_END) + EVT_CALL(MakeEntity, EVT_PTR(Entity_WoodenCrate), -410, 0, -200, 0, -1, MAKE_ENTITY_END) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_07/dgb_07_4_npc.c b/src/world/area_dgb/dgb_07/dgb_07_4_npc.c new file mode 100644 index 0000000000..868058e09b --- /dev/null +++ b/src/world/area_dgb/dgb_07/dgb_07_4_npc.c @@ -0,0 +1,36 @@ +#include "dgb_07.h" + +#define INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +StaticNpc N(NpcData_Clubba_01)[] = { + { + .id = NPC_Clubba_01, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { -500.0f, 0.0f, -240.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -500, 0, -240 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { -500, 0, -240 }, + .detectSize = { 200 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_01_Hitbox), +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Clubba_01), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_02), + {} +}; diff --git a/src/world/area_dgb/dgb_08/C3FDB0.c b/src/world/area_dgb/dgb_08/C3FDB0.c deleted file mode 100644 index fc59b638d8..0000000000 --- a/src/world/area_dgb/dgb_08/C3FDB0.c +++ /dev/null @@ -1,1055 +0,0 @@ -#include "dgb_08.h" -#include "message_ids.h" -#include "sprite.h" -#include "world/partners.h" -#include "sprite/npc/Sentinel.h" -#include "sprite/npc/WorldClubba.h" -#include "sprite/npc/WorldTubba.h" - -enum { - NPC_WORLD_CLUBBA7, - NPC_WORLD_CLUBBA0, - NPC_WORLD_CLUBBA1, - NPC_WORLD_CLUBBA2, - NPC_WORLD_CLUBBA3, - NPC_WORLD_CLUBBA4, - NPC_WORLD_CLUBBA5, - NPC_SENTINEL0, - NPC_SENTINEL1, - NPC_WORLD_TUBBA, - NPC_WORLD_CLUBBA6 = 11, -}; - -EntryList N(entryList) = { - { -575.0f, 0.0f, 180.0f, 90.0f }, - { -575.0f, 210.0f, 180.0f, 90.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_08 }, -}; - -EvtScript N(80243CF0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3D88)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80243D90) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 14) - EVT_SET(LVar2, 23) - EVT_SET(LVar3, 25) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80243E44) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 18) - EVT_SET(LVar2, 18) - EVT_SET(LVar3, 20) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 4) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -const s32 N(pad_XXXX)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(enterDoubleDoor_80243EF8) = { - EVT_CALL(UseDoorSounds, 3) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 23) - EVT_SET(LVar3, 25) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_SET(LVar2, 18) - EVT_SET(LVar3, 20) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-28) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80246958))) - EVT_CASE_LT(-16) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_802469AC))) - EVT_CASE_LT(60) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_802469C4))) - EVT_END_SWITCH - EVT_EXEC_WAIT(N(802469E0)) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243D90), TRIGGER_WALL_PRESS_A, 14, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243E44), TRIGGER_WALL_PRESS_A, 18, 1, 0) - EVT_EXEC(N(80243CF0)) - EVT_EXEC(N(enterDoubleDoor_80243EF8)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_40FC) = { - 0x00000000, -}; - -MobileAISettings N(npcAI_80244100) = { - .moveSpeed = 4.5f, - .alertRadius = 170.0f, - .alertOffsetDist = 90.0f, - .playerSearchInterval = 1, - .chaseSpeed = 3.9f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 2, - .chaseRadius = 170.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(80244130) = { - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAI_80244100))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80244150) = { - .height = 90, - .radius = 65, - .ai = &N(80244130), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -NpcSettings N(npcSettings_8024417C) = { - .height = 90, - .radius = 65, - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -NpcSettings N(npcSettings_802441A8) = { - .height = 24, - .radius = 24, - .level = 13, -}; - -EvtScript N(802441D4) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(extraAnimationList_80244290)[] = { - ANIM_WorldClubba_Anim00, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_LIST_END, -}; - -s32 N(extraAnimationList_802442B8)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_802442C0) = { - .moveSpeed = 1.5f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 85.0f, - .alertOffsetDist = 65.0f, - .playerSearchInterval = 5, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 12, - .chaseRadius = 110.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 3, -}; - -EvtScript N(npcAI_802442F0) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 5) - EVT_CALL(SetSelfVar, 2, 8) - EVT_CALL(SetSelfVar, 3, 12) - EVT_CALL(N(WanderMeleeAI_Main), EVT_PTR(N(npcAISettings_802442C0))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80244360) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_802442F0), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_8024438C) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80244434) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_8024438C), - .onDefeat = &N(802441D4), - .level = 13, - .actionFlags = 8, -}; - -f32 N(FlyingAI_JumpVels)[] = { - 4.5f, 3.5f, 2.6f, 2.0f, - 1.5f, 20.0f, -}; - -EvtScript N(80244478) = { - EVT_CALL(SetSelfEnemyFlagBits, ((ENEMY_FLAGS_100000 | ENEMY_FLAGS_IGNORE_TOUCH | ENEMY_FLAGS_IGNORE_JUMP | ENEMY_FLAGS_IGNORE_HAMMER | ENEMY_FLAGS_8000000 | ENEMY_FLAGS_10000000 | ENEMY_FLAGS_20000000)), TRUE) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING)), TRUE) - EVT_RETURN - EVT_END -}; - -MobileAISettings N(npcAISettings_802444B4) = { - .moveSpeed = 1.5f, - .moveTime = 90, - .waitTime = 30, - .alertRadius = 240.0f, - .playerSearchInterval = 1, - .chaseSpeed = 5.3f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 1, - .chaseRadius = 240.0f, - .unk_AI_2C = 1, -}; - -extern const char N(dgb_00_name_hack)[]; - -EvtScript N(npcAI_802444E4) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 5, -650) - EVT_CALL(SetSelfVar, 6, 30) - EVT_CALL(SetSelfVar, 1, 600) - EVT_CALL(N(SentinelAI_Main), EVT_PTR(N(npcAISettings_802444B4))) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_WAIT(2) - EVT_LABEL(20) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar4, LVar2) - EVT_CALL(GetPlayerActionState, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_WAIT(1) - EVT_GOTO(20) - EVT_END_IF - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(InterruptUsePartner) - EVT_CALL(DisablePartnerAI, 0) - EVT_SET_GROUP(EVT_GROUP_00) - EVT_CALL(SetTimeFreezeMode, 1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 20) - EVT_ADD(LVar2, 2) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(func_80045838, -1, 759, 0) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim08) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) - EVT_WAIT(10) - EVT_CALL(func_80045838, -1, 1838, 0) - EVT_THREAD - EVT_LOOP(100) - EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_THREAD - EVT_THREAD - EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x108) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_END_THREAD - EVT_WAIT(30) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(8024490C) = { - EVT_CALL(GetOwnerEncounterTrigger, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CASE_OR_EQ(2) - EVT_CASE_OR_EQ(4) - EVT_CASE_OR_EQ(6) - EVT_CALL(GetSelfAnimationFromTable, 7, LVar0) - EVT_EXEC_WAIT(EVS_NpcHitRecoil) - EVT_END_CASE_GROUP - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(80244998) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(DoNpcDefeat) - EVT_CASE_EQ(1) - EVT_CASE_EQ(2) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_802449FC) = { - .height = 38, - .radius = 32, - .otherAI = &N(80244478), - .ai = &N(npcAI_802444E4), - .level = 99, -}; - -NpcSettings N(npcSettings_80244A28) = { - .height = 24, - .radius = 24, - .level = 99, -}; - -EvtScript N(idle_80244A54) = { - EVT_LOOP(0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_IF_GE(LVar0, -350) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_SET(GB_ARN_Tubba_MapID, 8) - EVT_SET(GB_StoryProgress, -27) - EVT_CALL(PlaySoundAtCollider, 18, 455, 0) - EVT_CALL(MakeLerp, 0, 80, 10, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 18, LVar0, 0, -1, 0) - EVT_CALL(RotateModel, 20, LVar0, 0, 1, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(SetNpcAnimation, 9, ANIM_WorldTubba_Anim0A) - EVT_CALL(SetNpcPos, NPC_SELF, -665, 210, 180) - EVT_CALL(SetNpcYaw, NPC_SELF, 90) - EVT_CALL(NpcMoveTo, NPC_SELF, -530, 180, 30) - EVT_THREAD - EVT_WAIT(20) - EVT_CALL(MakeLerp, 80, 0, 10, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 18, LVar0, 0, -1, 0) - EVT_CALL(RotateModel, 20, LVar0, 0, 1, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(PlaySoundAtCollider, 18, 456, 0) - EVT_END_THREAD - EVT_CALL(NpcMoveTo, NPC_SELF, -500, 80, 10) - EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_80244D7C))) - EVT_RETURN - EVT_END -}; - -EvtScript N(80244D08) = { - EVT_LABEL(10) - EVT_CALL(GetNpcPos, 9, LVar0, LVar1, LVar2) - EVT_IF_GT(LVar1, 0) - EVT_WAIT(1) - EVT_GOTO(10) - EVT_END_IF - EVT_CALL(N(func_80243B98_C43948)) - EVT_RETURN - EVT_END -}; - -EvtScript N(npcAI_80244D7C) = { - EVT_CALL(N(func_80243C10_C439C0)) - EVT_EXEC(N(80244D08)) - EVT_THREAD - EVT_LOOP(0) - EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 4194304) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(2.0)) - EVT_WAIT(5) - EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 4194304) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(1.0)) - EVT_WAIT(8) - EVT_END_LOOP - EVT_END_THREAD - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAI_80244100))) - EVT_RETURN - EVT_END -}; - -extern const char N(dgb_01_name_hack)[]; - -EvtScript N(defeat_80244E58) = { - EVT_CALL(N(UnkFunc1)) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_01_name_hack)), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80244E94) = { - EVT_IF_LT(GB_StoryProgress, -28) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE) - EVT_RETURN - EVT_END_IF - EVT_IF_GE(GB_StoryProgress, -26) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE) - EVT_RETURN - EVT_END_IF - EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) - EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_80244E58))) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_IF_NE(GB_ARN_Tubba_MapID, 8) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_4)), TRUE) - EVT_ELSE - EVT_CALL(SetNpcPos, NPC_SELF, -130, 0, 200) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_80244D7C))) - EVT_END_IF - EVT_CASE_EQ(1) - EVT_IF_NE(GB_ARN_Tubba_MapID, 8) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80244A54))) - EVT_ELSE - EVT_CALL(SetNpcPos, NPC_SELF, -130, 210, 80) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_80244D7C))) - EVT_END_IF - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_802450A0) = { - .id = NPC_WORLD_TUBBA, - .settings = &N(npcSettings_8024417C), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_4 | NPC_FLAG_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000, - .init = &N(init_80244E94), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 10, -400, 210, 80, -100, 210, 80, 100, 210, 80, 400, 210, 80, 820, 100, 80, 820, 100, 260, 400, 0, 260, 100, 0, 200, -100, 0, 175, -450, 0, 175, -32767, 150, 0, 175, 1450, 200, 1 }}, - .animations = { - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim0A, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim19, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - }, - .aiDetectFlags = AI_DETECT_SIGHT, -}; - -StaticNpc N(npcGroup_80245290)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_80244360), - .pos = { -250.0f, 0.0f, 135.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -250, 0, 135, 30, 0, -32767, 0, -250, 0, 135, 250, 0, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80244290), - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_80244434), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802442B8), - }, -}; - -StaticNpc N(npcGroup_80245670)[] = { - { - .id = NPC_WORLD_CLUBBA2, - .settings = &N(npcSettings_80244360), - .pos = { 220.0f, 0.0f, 155.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 220, 0, 155, 30, 0, -32767, 0, 220, 0, 155, 250, 0, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80244290), - }, - { - .id = NPC_WORLD_CLUBBA3, - .settings = &N(npcSettings_80244434), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802442B8), - }, -}; - -StaticNpc N(npcGroup_80245A50)[] = { - { - .id = NPC_WORLD_CLUBBA4, - .settings = &N(npcSettings_80244360), - .pos = { 825.0f, 100.0f, 200.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 825, 100, 200, 25, 0, -32767, 0, 825, 100, 200, 150, 0, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80244290), - }, - { - .id = NPC_WORLD_CLUBBA5, - .settings = &N(npcSettings_80244434), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802442B8), - }, -}; - -StaticNpc N(npcGroup_80245E30) = { - .id = NPC_SENTINEL0, - .settings = &N(npcSettings_802449FC), - .pos = { 75.0f, 310.0f, 85.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { 75, 310, 85, 30, 0, -32767, 0, 75, 0, 85, 250, 55, 1, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -StaticNpc N(npcGroup_80246020) = { - .id = NPC_SENTINEL1, - .settings = &N(npcSettings_802449FC), - .pos = { -451.0f, 310.0f, 81.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { -451, 310, 81, 30, 0, -32767, 0, -310, 0, 175, 250, 145, 1, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -EvtScript N(idle_80246210) = { - EVT_LABEL(0) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) - EVT_WAIT(30) - EVT_LOOP(15) - EVT_CALL(N(func_80243C50_C43A00)) - EVT_WAIT(60) - EVT_END_LOOP - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim0C) - EVT_WAIT(20) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) - EVT_WAIT(30) - EVT_LOOP(5) - EVT_CALL(N(func_80243C50_C43A00)) - EVT_WAIT(60) - EVT_END_LOOP - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim0C) - EVT_WAIT(15) - EVT_GOTO(0) - EVT_RETURN - EVT_END -}; - -EvtScript N(interact_80246310) = { - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim08) - EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2F1, 0) - EVT_WAIT(10) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim02) - EVT_WAIT(20) - EVT_CALL(GetNpcYaw, -1, LVar0) - EVT_ADD(LVar0, 180) - EVT_CALL(InterpNpcYaw, NPC_SELF, LVar0, 0) - EVT_WAIT(10) - EVT_CALL(GetNpcYaw, -1, LVar0) - EVT_ADD(LVar0, 180) - EVT_CALL(InterpNpcYaw, NPC_SELF, LVar0, 0) - EVT_WAIT(25) - EVT_CALL(GetNpcYaw, -1, LVar0) - EVT_ADD(LVar0, 180) - EVT_CALL(InterpNpcYaw, NPC_SELF, LVar0, 0) - EVT_WAIT(15) - EVT_CALL(NpcFacePlayer, NPC_SELF, 0) - EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldClubba_Anim05, ANIM_WorldClubba_Anim02, 0, MSG_CH3_00F2) - EVT_WAIT(10) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim06) - EVT_WAIT(10) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_802464C4) = { - EVT_CALL(SetNpcCollisionSize, -1, 36, 30) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) - EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(interact_80246310))) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80246210))) - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80246528) = { - .id = NPC_WORLD_CLUBBA6, - .settings = &N(npcSettings_80244A28), - .pos = { 426.0f, 0.0f, 38.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_400000, - .init = &N(init_802464C4), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { 0, 0, 0, 0, 0, -32767, 0, 0, 0, 0, 0, 0, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .tattle = MSG_NpcTattle_LastClubba, -}; - -EvtScript N(idle_80246718) = { - EVT_RETURN - EVT_END -}; - -EvtScript N(init_80246728) = { - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80246718))) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80246768) = { - .id = NPC_WORLD_CLUBBA7, - .settings = &N(npcSettings_80244360), - .pos = { -250.0f, 0.0f, 135.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_400, - .init = &N(init_80246728), - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -250, 0, 135, 30, 0, -32767, 0, -250, 0, 135, 250, 0, 0, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_80244290), -}; - -NpcGroupList N(npcGroupList_80246958) = { - NPC_GROUP(N(npcGroup_80246768), 0x0F02, 0x02), - NPC_GROUP(N(npcGroup_80245290), 0x0F02, 0x02), - NPC_GROUP(N(npcGroup_80245670), 0x0F02, 0x02), - NPC_GROUP(N(npcGroup_80245A50), 0x0F03, 0x02), - NPC_GROUP(N(npcGroup_80245E30)), - NPC_GROUP(N(npcGroup_80246020)), - {}, -}; - -NpcGroupList N(npcGroupList_802469AC) = { - NPC_GROUP(N(npcGroup_802450A0), 0x0F04, 0x00), - {}, -}; - -NpcGroupList N(npcGroupList_802469C4) = { - NPC_GROUP(N(npcGroup_80246528)), - {}, -}; - -static s32 N(pad_69DC) = { - 0x00000000, -}; - -EvtScript N(802469E0) = { - EVT_RETURN - EVT_END -}; - -#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" - -#define AI_SENTINEL_FIRST_NPC 7 -#define AI_SENTINEL_LAST_NPC 9 -#include "world/common/enemy/ai/SentinelAI.inc.c" - -#include "world/common/todo/UnkFunc1.inc.c" - -ApiStatus N(func_80243B98_C43948)(Evt* script, s32 isInitialCall) { - if (get_enemy_safe(9) != 0) { - Enemy* enemy = get_enemy(9); - enemy->territory->wander.centerPos.x = 2; - enemy->territory->wander.centerPos.y = -450; - enemy->territory->wander.centerPos.z = 0; - enemy->territory->wander.wanderSize.x = 175; - enemy->territory->wander.wanderSize.z = 300; - enemy->territory->wander.moveSpeedOverride = 0; - enemy->territory->wander.wanderShape = 175; - return ApiStatus_DONE2; - } - - return ApiStatus_DONE2; -} - -ApiStatus N(func_80243C10_C439C0)(Evt* script, s32 isInitialCall) { - if (get_enemy_safe(9)) { - Enemy* enemy = get_enemy(9); - enemy->aiFlags |= ENEMY_AI_FLAGS_80; - return ApiStatus_DONE2; - } - - return ApiStatus_DONE2; -} - -ApiStatus N(func_80243C50_C43A00)(Evt* script, s32 isInitialCall) { - ai_enemy_play_sound(get_npc_unsafe(script->owner1.enemy->npcID), SOUND_32F, 0); - return ApiStatus_DONE2; -} - -const char N(dgb_00_name_hack)[] = "dgb_00"; -const char N(dgb_01_name_hack)[] = "dgb_01"; diff --git a/src/world/area_dgb/dgb_08/dgb_08.h b/src/world/area_dgb/dgb_08/dgb_08.h index d434213ec0..81a0299a1a 100644 --- a/src/world/area_dgb/dgb_08/dgb_08.h +++ b/src/world/area_dgb/dgb_08/dgb_08.h @@ -2,25 +2,36 @@ /// @brief Tubba's Castle - East Hall (1/2F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_08_shape.h" +#include "mapfs/dgb_08_hit.h" + +#include "sprite/npc/WorldClubba.h" +#include "sprite/npc/Sentinel.h" +#include "sprite/npc/WorldTubba.h" + +enum { + NPC_Clubba_Unused = 0, + NPC_Clubba_01 = 1, + NPC_Clubba_01_Hitbox = 2, + NPC_Clubba_02 = 3, + NPC_Clubba_02_Hitbox = 4, + NPC_Clubba_03 = 5, + NPC_Clubba_03_Hitbox = 6, + NPC_Sentinel_01 = 7, + NPC_Sentinel_02 = 8, + NPC_Tubba = 9, + NPC_Clubba_Last = 11, +}; + #define NAMESPACE dgb_08 -ApiStatus N(UnkFunc1)(Evt* script, s32 isInitialCall); -ApiStatus N(PatrolNoAttackAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(WanderMeleeAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(SentinelAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(func_80243B98_C43948)(Evt* script, s32 isInitialCall); -ApiStatus N(func_80243C10_C439C0)(Evt* script, s32 isInitialCall); -ApiStatus N(func_80243C50_C43A00)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_80246958); -extern NpcGroupList N(npcGroupList_802469AC); -extern NpcGroupList N(npcGroupList_802469C4); -extern EvtScript N(802469E0); -extern EvtScript N(main); -extern EvtScript N(npcAI_80244D7C); -extern EvtScript N(unk_80244100); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(BeforeNPCs); +extern NpcGroupList N(TubbaNPCs); +extern NpcGroupList N(AfterNPCs); diff --git a/src/world/area_dgb/dgb_08/dgb_08_0_header.c b/src/world/area_dgb/dgb_08/dgb_08_0_header.c new file mode 100644 index 0000000000..3f372aec26 --- /dev/null +++ b/src/world/area_dgb/dgb_08/dgb_08_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_08.h" + +EntryList N(Entrances) = { + [dgb_08_ENTRY_0] { -575.0, 0.0, 180.0, 90.0 }, + [dgb_08_ENTRY_1] { -575.0, 210.0, 180.0, 90.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_08 }, +}; diff --git a/src/world/area_dgb/dgb_08/dgb_08_1_music.c b/src/world/area_dgb/dgb_08/dgb_08_1_music.c new file mode 100644 index 0000000000..70f27fcaae --- /dev/null +++ b/src/world/area_dgb/dgb_08/dgb_08_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_08.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_08/dgb_08_2_main.c b/src/world/area_dgb/dgb_08/dgb_08_2_main.c new file mode 100644 index 0000000000..2fa117325a --- /dev/null +++ b/src/world/area_dgb/dgb_08/dgb_08_2_main.c @@ -0,0 +1,73 @@ +#include "dgb_08.h" + +EvtScript N(EVS_ExitDoors_dgb_01_2) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_08_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittse) + EVT_SET(LVar2, MODEL_o142) + EVT_SET(LVar3, MODEL_o143) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_01_4) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_08_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o140) + EVT_SET(LVar3, MODEL_o141) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_4) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +MAP_RODATA_PAD(1, strings); + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_08_ENTRY_0) + EVT_SET(LVar2, MODEL_o142) + EVT_SET(LVar3, MODEL_o143) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_08_ENTRY_1) + EVT_SET(LVar2, MODEL_o140) + EVT_SET(LVar3, MODEL_o141) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_DEFAULT() + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(BeforeNPCs))) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(TubbaNPCs))) + EVT_CASE_LT(STORY_CH6_RETURNED_TO_TOAD_TOWN) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(AfterNPCs))) + EVT_END_SWITCH + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_2)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittse, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_4)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_08/dgb_08_3_npc.c b/src/world/area_dgb/dgb_08/dgb_08_3_npc.c new file mode 100644 index 0000000000..ef71bacaa6 --- /dev/null +++ b/src/world/area_dgb/dgb_08/dgb_08_3_npc.c @@ -0,0 +1,477 @@ +#include "dgb_08.h" + +#include "world/common/enemy/complete/TubbaBlubba_Patrol.inc.c" +#include "world/common/enemy/complete/TubbaBlubba.inc.c" + +NpcSettings N(NpcSettings_Yakkey) = { + .height = 24, + .radius = 24, + .level = 13, +}; + +#define INCLUDE_CLUBBA_WANDER +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +#define AI_SENTINEL_FIRST_NPC NPC_Sentinel_01 +#define AI_SENTINEL_LAST_NPC NPC_Tubba +#include "world/common/enemy/complete/Sentinel.inc.c" + +NpcSettings N(NpcSettings_LastClubba) = { + .height = 24, + .radius = 24, + .level = 99, +}; + +extern EvtScript N(EVS_NpcAI_Tubba); + +EvtScript N(EVS_NpcIdle_Tubba) = { + EVT_LOOP(0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_IF_GE(LVar0, -350) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_SET(GB_ARN_Tubba_MapID, 8) + EVT_SET(GB_StoryProgress, STORY_CH3_TUBBA_CHASED_MARIO_IN_HALL) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittne, SOUND_CREAKY_DOOR_OPEN, 0) + EVT_CALL(MakeLerp, 0, 80, 10, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_o140, LVar0, 0, -1, 0) + EVT_CALL(RotateModel, MODEL_o141, LVar0, 0, 1, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0A) + EVT_CALL(SetNpcPos, NPC_SELF, -665, 210, 180) + EVT_CALL(SetNpcYaw, NPC_SELF, 90) + EVT_CALL(NpcMoveTo, NPC_SELF, -530, 180, 30) + EVT_THREAD + EVT_WAIT(20) + EVT_CALL(MakeLerp, 80, 0, 10, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(RotateModel, MODEL_o140, LVar0, 0, -1, 0) + EVT_CALL(RotateModel, MODEL_o141, LVar0, 0, 1, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittne, SOUND_CREAKY_DOOR_CLOSE, 0) + EVT_END_THREAD + EVT_CALL(NpcMoveTo, NPC_SELF, -500, 80, 10) + EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(EVS_NpcAI_Tubba))) + EVT_RETURN + EVT_END +}; + +#include "world/common/todo/UnkFunc1.inc.c" + +API_CALLABLE(N(SetTubbaPatrolTerritory)) { + if (get_enemy_safe(NPC_Tubba)) { + Enemy* enemy = get_enemy(NPC_Tubba); + enemy->territory->patrol.numPoints = 2; + enemy->territory->patrol.points[0].x = -450; + enemy->territory->patrol.points[0].y = 0; + enemy->territory->patrol.points[0].z = 175; + enemy->territory->patrol.points[1].x = 300; + enemy->territory->patrol.points[1].y = 0; + enemy->territory->patrol.points[1].z = 175; + return ApiStatus_DONE2; + } + + return ApiStatus_DONE2; +} + +API_CALLABLE(N(SetTubbaPatrolMode)) { + if (get_enemy_safe(NPC_Tubba)) { + Enemy* enemy = get_enemy(NPC_Tubba); + enemy->aiFlags |= ENEMY_AI_FLAGS_80; + return ApiStatus_DONE2; + } + + return ApiStatus_DONE2; +} + +EvtScript N(EVS_SetPatrolAfterWaiting) = { + EVT_LABEL(10) + EVT_CALL(GetNpcPos, NPC_Tubba, LVar0, LVar1, LVar2) + EVT_IF_GT(LVar1, 0) + EVT_WAIT(1) + EVT_GOTO(10) + EVT_END_IF + EVT_CALL(N(SetTubbaPatrolTerritory)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcAI_Tubba) = { + EVT_CALL(N(SetTubbaPatrolMode)) + EVT_EXEC(N(EVS_SetPatrolAfterWaiting)) + EVT_THREAD + EVT_LOOP(0) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, SOUND_PARAM_QUIET) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(2.0)) + EVT_WAIT(5) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, SOUND_PARAM_QUIET) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(1.0)) + EVT_WAIT(8) + EVT_END_LOOP + EVT_END_THREAD + EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(AISettings_Tubba_Patrol))) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcDefeat_Tubba) = { + EVT_CALL(N(UnkFunc1)) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Tubba) = { + EVT_IF_LT(GB_StoryProgress, STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_4, TRUE) + EVT_RETURN + EVT_END_IF + EVT_IF_GE(GB_StoryProgress, STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_4, TRUE) + EVT_RETURN + EVT_END_IF + EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) + EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Tubba))) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_08_ENTRY_0) + EVT_IF_NE(GB_ARN_Tubba_MapID, 8) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_4, TRUE) + EVT_ELSE + EVT_CALL(SetNpcPos, NPC_SELF, -130, 0, 200) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcAI_Tubba))) + EVT_END_IF + EVT_CASE_EQ(dgb_08_ENTRY_1) + EVT_IF_NE(GB_ARN_Tubba_MapID, 8) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Tubba))) + EVT_ELSE + EVT_CALL(SetNpcPos, NPC_SELF, -130, 210, 80) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcAI_Tubba))) + EVT_END_IF + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Tubba) = { + .id = NPC_Tubba, + .settings = &N(NpcSettings_TubbaBlubba), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .flags = ENEMY_FLAGS_4 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000, + .init = &N(EVS_NpcInit_Tubba), + .drops = CLUBBA_DROPS, + .territory = { + .patrol = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .numPoints = 10, + .points = { + { -400, 210, 80 }, + { -100, 210, 80 }, + { 100, 210, 80 }, + { 400, 210, 80 }, + { 820, 100, 80 }, + { 820, 100, 260 }, + { 400, 0, 260 }, + { 100, 0, 200 }, + { -100, 0, 175 }, + { -450, 0, 175 }, + }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, 175 }, + .detectSize = { 1450, 200 }, + } + }, + .animations = TUBBA_ANGRY_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT, +}; + +StaticNpc N(NpcData_Clubba_01)[] = { + { + .id = NPC_Clubba_01, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { -250.0f, 0.0f, 135.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -250, 0, 135 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { -250, 0, 135 }, + .detectSize = { 250 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_01_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_02)[] = { + { + .id = NPC_Clubba_02, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { 220.0f, 0.0f, 155.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 220, 0, 155 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 220, 0, 155 }, + .detectSize = { 250 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_02_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_03)[] = { + { + .id = NPC_Clubba_03, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { 825.0f, 100.0f, 200.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 825, 100, 200 }, + .wanderSize = { 25 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 825, 100, 200 }, + .detectSize = { 150 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_03_Hitbox), +}; + +StaticNpc N(NpcData_Sentinel_01) = { + .id = NPC_Sentinel_01, + .settings = &N(NpcSettings_Sentinel), + .pos = { 75.0f, 310.0f, 85.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400, + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 75, 310, 85 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_RECT, + .detectPos = { 75, 0, 85 }, + .detectSize = { 250, 55 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +StaticNpc N(NpcData_Sentinel_02) = { + .id = NPC_Sentinel_02, + .settings = &N(NpcSettings_Sentinel), + .pos = { -451.0f, 310.0f, 81.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400, + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -451, 310, 81 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_RECT, + .detectPos = { -310, 0, 175 }, + .detectSize = { 250, 145 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +API_CALLABLE(N(PlayAlertSound)) { + ai_enemy_play_sound(get_npc_unsafe(script->owner1.enemy->npcID), SOUND_32F, 0); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_NpcIdle_LastClubba) = { + EVT_LABEL(0) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) + EVT_WAIT(30) + EVT_LOOP(15) + EVT_CALL(N(PlayAlertSound)) + EVT_WAIT(60) + EVT_END_LOOP + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim0C) + EVT_WAIT(20) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) + EVT_WAIT(30) + EVT_LOOP(5) + EVT_CALL(N(PlayAlertSound)) + EVT_WAIT(60) + EVT_END_LOOP + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim0C) + EVT_WAIT(15) + EVT_GOTO(0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInteract_LastClubba) = { + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim08) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2F1, 0) + EVT_WAIT(10) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim02) + EVT_WAIT(20) + EVT_CALL(GetNpcYaw, NPC_SELF, LVar0) + EVT_ADD(LVar0, 180) + EVT_CALL(InterpNpcYaw, NPC_SELF, LVar0, 0) + EVT_WAIT(10) + EVT_CALL(GetNpcYaw, NPC_SELF, LVar0) + EVT_ADD(LVar0, 180) + EVT_CALL(InterpNpcYaw, NPC_SELF, LVar0, 0) + EVT_WAIT(25) + EVT_CALL(GetNpcYaw, NPC_SELF, LVar0) + EVT_ADD(LVar0, 180) + EVT_CALL(InterpNpcYaw, NPC_SELF, LVar0, 0) + EVT_WAIT(15) + EVT_CALL(NpcFacePlayer, NPC_SELF, 0) + EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldClubba_Anim05, ANIM_WorldClubba_Anim02, 0, MSG_CH3_00F2) + EVT_WAIT(10) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim06) + EVT_WAIT(10) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_LastClubba) = { + EVT_CALL(SetNpcCollisionSize, NPC_SELF, 36, 30) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldClubba_Anim07) + EVT_CALL(BindNpcInteract, NPC_SELF, EVT_PTR(N(EVS_NpcInteract_LastClubba))) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_LastClubba))) + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_LastClubba) = { + .id = NPC_Clubba_Last, + .settings = &N(NpcSettings_LastClubba), + .pos = { 426.0f, 0.0f, 38.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_400000, + .init = &N(EVS_NpcInit_LastClubba), + .drops = NPC_NO_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 0, 0, 0 }, + .wanderSize = { 0 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 0, 0, 0 }, + .detectSize = { 0 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + .tattle = MSG_NpcTattle_LastClubba, +}; + +EvtScript N(EVS_NpcIdle_Clubba_Unused) = { + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Clubba_Unused) = { + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Clubba_Unused))) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Clubba_Unused) = { + .id = NPC_Clubba_Unused, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { -250.0f, 0.0f, 135.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_400, + .init = &N(EVS_NpcInit_Clubba_Unused), + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -250, 0, 135 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { -250, 0, 135 }, + .detectSize = { 250 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, +}; + +NpcGroupList N(BeforeNPCs) = { + NPC_GROUP(N(NpcData_Clubba_Unused), BTL_DGB_FORMATION_02, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_01), BTL_DGB_FORMATION_02, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_02), BTL_DGB_FORMATION_02, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_03), BTL_DGB_FORMATION_03, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Sentinel_01)), + NPC_GROUP(N(NpcData_Sentinel_02)), + {} +}; + +NpcGroupList N(TubbaNPCs) = { + NPC_GROUP(N(NpcData_Tubba), BTL_DGB_FORMATION_04, BTL_DGB_STAGE_00), + {} +}; + +NpcGroupList N(AfterNPCs) = { + NPC_GROUP(N(NpcData_LastClubba)), + {} +}; diff --git a/src/world/area_dgb/dgb_08/dgb_08_4_entity.c b/src/world/area_dgb/dgb_08/dgb_08_4_entity.c new file mode 100644 index 0000000000..d8b9eea27d --- /dev/null +++ b/src/world/area_dgb/dgb_08/dgb_08_4_entity.c @@ -0,0 +1,6 @@ +#include "dgb_08.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_09/C46BE0.c b/src/world/area_dgb/dgb_09/C46BE0.c deleted file mode 100644 index 78b3ebcbad..0000000000 --- a/src/world/area_dgb/dgb_09/C46BE0.c +++ /dev/null @@ -1,643 +0,0 @@ -#include "dgb_09.h" -#include "message_ids.h" -#include "sprite.h" -#include "world/partners.h" -#include "sprite/npc/Sentinel.h" -#include "sprite/npc/WorldClubba.h" - -enum { - NPC_WORLD_CLUBBA0, - NPC_WORLD_CLUBBA1, - NPC_WORLD_CLUBBA2, - NPC_WORLD_CLUBBA3, - NPC_SENTINEL, -}; - -EntryList N(entryList) = { - { -567.0f, 0.0f, 180.0f, 90.0f }, - { 567.0f, 0.0f, 180.0f, 270.0f }, - { -450.0f, 0.0f, 90.0f, 180.0f }, - { 300.0f, 0.0f, 90.0f, 180.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_09 }, -}; - -EvtScript N(80243880) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3918)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80243920) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 5) - EVT_SET(LVar2, 10) - EVT_SET(LVar3, 12) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 4) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802439D4) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 17) - EVT_SET(LVar2, 17) - EVT_SET(LVar3, 15) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 3) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitSingleDoor_80243A88) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 2) - EVT_SET(LVar1, 9) - EVT_SET(LVar2, 20) - EVT_SET(LVar3, 1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_12"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitWalk_80243B3C) = EVT_EXIT_WALK(40, 3, "dgb_10", 0); - -EvtScript N(80243B98) = { - EVT_BIND_TRIGGER(N(exitWalk_80243B3C), TRIGGER_FLOOR_ABOVE, 11, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterWalk_80243BC4) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 10) - EVT_SET(LVar3, 12) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(80243B98)) - EVT_CASE_EQ(1) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 17) - EVT_SET(LVar3, 15) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_EXEC(N(80243B98)) - EVT_CASE_EQ(2) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 20) - EVT_SET(LVar3, 1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_EXEC(N(80243B98)) - EVT_CASE_EQ(3) - EVT_SET(LVar0, EVT_PTR(N(80243B98))) - EVT_EXEC(EnterWalk) - EVT_WAIT(1) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_8024533C))) - EVT_END_IF - EVT_EXEC(N(80243F6C)) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80243920), TRIGGER_WALL_PRESS_A, 5, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_802439D4), TRIGGER_WALL_PRESS_A, 17, 1, 0) - EVT_BIND_TRIGGER(N(exitSingleDoor_80243A88), TRIGGER_WALL_PRESS_A, 9, 1, 0) - EVT_EXEC(N(80243880)) - EVT_EXEC(N(enterWalk_80243BC4)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3E4C) = { - 0x00000000, -}; - -Vec4f N(triggerCoord_80243E50) = { 300.0f, 0.0f, 88.0f, 0.0f }; - -EvtScript N(80243E60) = { - EVT_WAIT(2) - EVT_CALL(PlayEffect, 0x42, 1, 25, 3, 1, 10, 30, 0, 0, 0, 0, 0, 0, 0) - EVT_LOOP(10) - EVT_CALL(EnableModel, 29, 0) - EVT_CALL(EnableModel, 25, 1) - EVT_WAIT(1) - EVT_CALL(EnableModel, 29, 1) - EVT_CALL(EnableModel, 25, 0) - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 13, 0x7FFFFE00) - EVT_SET(GF_DGB09_BombedWall, 1) - EVT_UNBIND - EVT_RETURN - EVT_END -}; - -EvtScript N(80243F6C) = { - EVT_IF_EQ(GF_DGB09_BombedWall, 0) - EVT_BIND_TRIGGER(N(80243E60), TRIGGER_POINT_BOMB, EVT_PTR(N(triggerCoord_80243E50)), 1, 0) - EVT_CALL(EnableModel, 29, 0) - EVT_ELSE - EVT_CALL(EnableModel, 25, 0) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 13, 0x7FFFFE00) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3FF8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(80244000) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(extraAnimationList_802440BC)[] = { - ANIM_WorldClubba_Anim00, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_LIST_END, -}; - -s32 N(extraAnimationList_802440E4)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_802440EC) = { - .moveSpeed = 1.5f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 85.0f, - .alertOffsetDist = 65.0f, - .playerSearchInterval = 5, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 12, - .chaseRadius = 110.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 3, -}; - -EvtScript N(npcAI_8024411C) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 5) - EVT_CALL(SetSelfVar, 2, 8) - EVT_CALL(SetSelfVar, 3, 12) - EVT_CALL(N(WanderMeleeAI_Main), EVT_PTR(N(npcAISettings_802440EC))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_8024418C) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_8024411C), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -MobileAISettings N(npcAISettings_802441B8) = { - .moveSpeed = 1.0f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 100.0f, - .alertOffsetDist = 40.0f, - .playerSearchInterval = 10, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 15, - .chaseRadius = 200.0f, - .chaseOffsetDist = 160.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_802441E8) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 10) - EVT_CALL(SetSelfVar, 2, 14) - EVT_CALL(SetSelfVar, 3, 18) - EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(npcAISettings_802441B8))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80244258) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_802441E8), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_80244284) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_8024432C) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_80244284), - .onDefeat = &N(80244000), - .level = 13, - .actionFlags = 8, -}; - -f32 N(FlyingAI_JumpVels)[] = { - 4.5f, 3.5f, 2.6f, 2.0f, - 1.5f, 20.0f, -}; - -EvtScript N(80244370) = { - EVT_CALL(SetSelfEnemyFlagBits, ((ENEMY_FLAGS_100000 | ENEMY_FLAGS_IGNORE_TOUCH | ENEMY_FLAGS_IGNORE_JUMP | ENEMY_FLAGS_IGNORE_HAMMER | ENEMY_FLAGS_8000000 | ENEMY_FLAGS_10000000 | ENEMY_FLAGS_20000000)), TRUE) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING)), TRUE) - EVT_RETURN - EVT_END -}; - -MobileAISettings N(npcAISettings_802443AC) = { - .moveSpeed = 1.5f, - .moveTime = 90, - .waitTime = 30, - .alertRadius = 240.0f, - .playerSearchInterval = 1, - .chaseSpeed = 5.3f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 1, - .chaseRadius = 240.0f, - .unk_AI_2C = 1, -}; - -extern const char N(dgb_00_name_hack)[]; - -EvtScript N(npcAI_802443DC) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 5, -650) - EVT_CALL(SetSelfVar, 6, 30) - EVT_CALL(SetSelfVar, 1, 600) - EVT_CALL(N(SentinelAI_Main), EVT_PTR(N(npcAISettings_802443AC))) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_WAIT(2) - EVT_LABEL(20) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar4, LVar2) - EVT_CALL(GetPlayerActionState, LVar0) - EVT_IF_NE(LVar0, 0) - EVT_WAIT(1) - EVT_GOTO(20) - EVT_END_IF - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(InterruptUsePartner) - EVT_CALL(DisablePartnerAI, 0) - EVT_SET_GROUP(EVT_GROUP_00) - EVT_CALL(SetTimeFreezeMode, 1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 20) - EVT_ADD(LVar2, 2) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(func_80045838, -1, 759, 0) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim08) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) - EVT_WAIT(10) - EVT_CALL(func_80045838, -1, 1838, 0) - EVT_THREAD - EVT_LOOP(100) - EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_ADD(LVar1, 1) - EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_END_LOOP - EVT_END_THREAD - EVT_THREAD - EVT_CALL(SetNpcAnimation, NPC_PARTNER, 0x108) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) - EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) - EVT_END_THREAD - EVT_WAIT(30) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_00_name_hack)), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(80244804) = { - EVT_CALL(GetOwnerEncounterTrigger, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) - EVT_CASE_OR_EQ(2) - EVT_CASE_OR_EQ(4) - EVT_CASE_OR_EQ(6) - EVT_CALL(GetSelfAnimationFromTable, 7, LVar0) - EVT_EXEC_WAIT(EVS_NpcHitRecoil) - EVT_END_CASE_GROUP - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(80244890) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(DoNpcDefeat) - EVT_CASE_EQ(1) - EVT_CASE_EQ(2) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_802448F4) = { - .height = 38, - .radius = 32, - .otherAI = &N(80244370), - .ai = &N(npcAI_802443DC), - .level = 99, -}; - -StaticNpc N(npcGroup_80244920)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_8024418C), - .pos = { -350.0f, 0.0f, 180.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -350, 0, 180, 40, 0, -32767, 0, 0, 0, 50, 600, 250, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_802440BC), - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_8024432C), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802440E4), - }, -}; - -EvtScript N(init_80244D00) = { - EVT_CALL(GetEntryID, LVar0) - EVT_IF_EQ(LVar0, 3) - EVT_CALL(SetNpcPos, NPC_SELF, 240, 0, 88) - EVT_CALL(InterpNpcYaw, NPC_SELF, 270, 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_80244D6C)[] = { - { - .id = NPC_WORLD_CLUBBA2, - .settings = &N(npcSettings_80244258), - .pos = { 310.0f, 0.0f, 88.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .init = &N(init_80244D00), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 310, 0, 88, 40, 0, -32767, 0, 0, 0, 50, 600, 250, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_802440BC), - }, - { - .id = NPC_WORLD_CLUBBA3, - .settings = &N(npcSettings_8024432C), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802440E4), - }, -}; - -StaticNpc N(npcGroup_8024514C) = { - .id = NPC_SENTINEL, - .settings = &N(npcSettings_802448F4), - .pos = { -20.0f, 100.0f, 180.0f }, - .flags = ENEMY_FLAGS_400, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { -20, 100, 180, 40, 0, -32767, 0, -20, 100, 180, 250, 0, 0, 1 }}, - .animations = { - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim02, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim03, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim05, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim08, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - ANIM_Sentinel_Anim01, - }, -}; - -NpcGroupList N(npcGroupList_8024533C) = { - NPC_GROUP(N(npcGroup_80244920), 0x0F03, 0x00), - NPC_GROUP(N(npcGroup_80244D6C), 0x0F01, 0x00), - NPC_GROUP(N(npcGroup_8024514C)), - {}, -}; - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" - -#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" - -#define AI_SENTINEL_FIRST_NPC 0 -#define AI_SENTINEL_LAST_NPC 0 -#include "world/common/enemy/ai/SentinelAI.inc.c" - -const char N(dgb_00_name_hack)[] = "dgb_00"; diff --git a/src/world/area_dgb/dgb_09/dgb_09.h b/src/world/area_dgb/dgb_09/dgb_09.h index 6b561f5ca3..bcaaa0335a 100644 --- a/src/world/area_dgb/dgb_09/dgb_09.h +++ b/src/world/area_dgb/dgb_09/dgb_09.h @@ -2,17 +2,24 @@ /// @brief Tubba's Castle - West Hall (2F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_09_shape.h" +#include "mapfs/dgb_09_hit.h" + +enum { + NPC_Clubba_Wander = 0, + NPC_Clubba_Wander_Hitbox = 1, + NPC_Clubba_Napping = 2, + NPC_Clubba_Napping_Hitbox = 3, + NPC_Sentinel = 4, +}; + #define NAMESPACE dgb_09 -ApiStatus N(WanderMeleeAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(ClubbaNappingAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(SentinelAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt *script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_8024533C); -extern EvtScript N(80243F6C); -extern EvtScript N(main); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_SetupBreakable); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_09/dgb_09_0_header.c b/src/world/area_dgb/dgb_09/dgb_09_0_header.c new file mode 100644 index 0000000000..d9894ade84 --- /dev/null +++ b/src/world/area_dgb/dgb_09/dgb_09_0_header.c @@ -0,0 +1,15 @@ +#include "dgb_09.h" + +EntryList N(Entrances) = { + [dgb_09_ENTRY_0] { -567.0, 0.0, 180.0, 90.0 }, + [dgb_09_ENTRY_1] { 567.0, 0.0, 180.0, 270.0 }, + [dgb_09_ENTRY_2] { -450.0, 0.0, 90.0, 180.0 }, + [dgb_09_ENTRY_3] { 300.0, 0.0, 90.0, 180.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_09 }, +}; diff --git a/src/world/area_dgb/dgb_09/dgb_09_1_music.c b/src/world/area_dgb/dgb_09/dgb_09_1_music.c new file mode 100644 index 0000000000..5c9aaa8658 --- /dev/null +++ b/src/world/area_dgb/dgb_09/dgb_09_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_09.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_09/dgb_09_2_main.c b/src/world/area_dgb/dgb_09/dgb_09_2_main.c new file mode 100644 index 0000000000..41168eeeca --- /dev/null +++ b/src/world/area_dgb/dgb_09/dgb_09_2_main.c @@ -0,0 +1,104 @@ +#include "dgb_09.h" + +EvtScript N(exitDoubleDoor_80243920) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_09_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o30) + EVT_SET(LVar3, MODEL_o31) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_03"), dgb_03_ENTRY_4) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(exitDoubleDoor_802439D4) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_09_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilitte) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_3) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(exitSingleDoor_80243A88) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_09_ENTRY_2) + EVT_SET(LVar1, COLLIDER_deilittnw) + EVT_SET(LVar2, MODEL_o76) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_12"), dgb_12_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(exitWalk_80243B3C) = EVT_EXIT_WALK(40, dgb_09_ENTRY_3, "dgb_10", dgb_10_ENTRY_0); + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(exitWalk_80243B3C)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiline, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(enterWalk_80243BC4) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_09_ENTRY_0) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o30) + EVT_SET(LVar3, MODEL_o31) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_09_ENTRY_1) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_09_ENTRY_2) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o76) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_CASE_EQ(dgb_09_ENTRY_3) + EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers))) + EVT_EXEC(EnterWalk) + EVT_WAIT(1) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_DEFAULT() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC(N(EVS_SetupBreakable)) + EVT_BIND_TRIGGER(EVT_PTR(N(exitDoubleDoor_80243920)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(exitDoubleDoor_802439D4)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitte, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(exitSingleDoor_80243A88)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittnw, 1, 0) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(enterWalk_80243BC4)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_09/dgb_09_3_breakable.c b/src/world/area_dgb/dgb_09/dgb_09_3_breakable.c new file mode 100644 index 0000000000..6d313b90c6 --- /dev/null +++ b/src/world/area_dgb/dgb_09/dgb_09_3_breakable.c @@ -0,0 +1,37 @@ +#include "dgb_09.h" +#include "effects.h" + +BombTrigger N(BombPos_Wall) = { + .pos = { 300.0f, 0.0f, 88.0f }, + .radius = 0.0f +}; + +EvtScript N(EVS_BlastWall) = { + EVT_WAIT(2) + EVT_PLAY_EFFECT(EFFECT_BOMBETTE_BREAKING, 1, 25, 3, 1, 10, 30) + EVT_LOOP(10) + EVT_CALL(EnableModel, MODEL_g29, FALSE) + EVT_CALL(EnableModel, MODEL_g28, TRUE) + EVT_WAIT(1) + EVT_CALL(EnableModel, MODEL_g29, TRUE) + EVT_CALL(EnableModel, MODEL_g28, FALSE) + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilittne, COLLIDER_FLAGS_UPPER_MASK) + EVT_SET(GF_DGB09_BombedWall, TRUE) + EVT_UNBIND + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_SetupBreakable) = { + EVT_IF_EQ(GF_DGB09_BombedWall, FALSE) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_BlastWall)), TRIGGER_POINT_BOMB, EVT_PTR(N(BombPos_Wall)), 1, 0) + EVT_CALL(EnableModel, MODEL_g29, FALSE) + EVT_ELSE + EVT_CALL(EnableModel, MODEL_g28, FALSE) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilittne, COLLIDER_FLAGS_UPPER_MASK) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_09/dgb_09_4_npc.c b/src/world/area_dgb/dgb_09/dgb_09_4_npc.c new file mode 100644 index 0000000000..edcfe69042 --- /dev/null +++ b/src/world/area_dgb/dgb_09/dgb_09_4_npc.c @@ -0,0 +1,103 @@ +#include "dgb_09.h" + +#define INCLUDE_CLUBBA_WANDER +#define INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +#define AI_SENTINEL_FIRST_NPC NPC_Sentinel +#define AI_SENTINEL_LAST_NPC NPC_Sentinel +#include "world/common/enemy/complete/Sentinel.inc.c" + +StaticNpc N(NpcData_Clubba_Wander)[] = { + { + .id = NPC_Clubba_Wander, + .settings = &N(NpcSettings_Clubba_Wander), + .pos = { -350.0f, 0.0f, 180.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -350, 0, 180 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 50 }, + .detectSize = { 600, 250 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_Wander_Hitbox), +}; + +EvtScript N(EVS_NpcInit_Clubba_Napping) = { + EVT_CALL(GetEntryID, LVar0) + EVT_IF_EQ(LVar0, dgb_09_ENTRY_3) + EVT_CALL(SetNpcPos, NPC_SELF, 240, 0, 88) + EVT_CALL(InterpNpcYaw, NPC_SELF, 270, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Clubba_Napping)[] = { + { + .id = NPC_Clubba_Napping, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 310.0f, 0.0f, 88.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Clubba_Napping), + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 310, 0, 88 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 0, 0, 50 }, + .detectSize = { 600, 250 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_Napping_Hitbox), +}; + +StaticNpc N(NpcData_Sentinel) = { + .id = NPC_Sentinel, + .settings = &N(NpcSettings_Sentinel), + .pos = { -20.0f, 100.0f, 180.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400, + .drops = SENTINEL_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -20, 100, 180 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { -20, 100, 180 }, + .detectSize = { 250 }, + } + }, + .animations = SENTINEL_ANIMS, +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Clubba_Wander), BTL_DGB_FORMATION_03, BTL_DGB_STAGE_00), + NPC_GROUP(N(NpcData_Clubba_Napping), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_00), + NPC_GROUP(N(NpcData_Sentinel)), + {} +}; diff --git a/src/world/area_dgb/dgb_10/C4C390.c b/src/world/area_dgb/dgb_10/C4C390.c deleted file mode 100644 index 410c30d4f3..0000000000 --- a/src/world/area_dgb/dgb_10/C4C390.c +++ /dev/null @@ -1,344 +0,0 @@ -#include "dgb_10.h" -#include "message_ids.h" -#include "entity.h" - -EntryList N(entryList) = { - { 300.0f, 0.0f, -50.0f, 0.0f }, - { 375.0f, 0.0f, -240.0f, 0.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_10 }, -}; - -EvtScript N(80240250) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_2E8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitWalk_802402F0) = EVT_EXIT_WALK(40, 0, "dgb_09", 3); - -EvtScript N(8024034C) = { - EVT_BIND_TRIGGER(N(exitWalk_802402F0), TRIGGER_FLOOR_ABOVE, 8, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterWalk_80240378) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar0, EVT_PTR(N(8024034C))) - EVT_EXEC(EnterWalk) - EVT_WAIT(1) - EVT_CASE_EQ(1) - EVT_CALL(UseSettingsFrom, 0, 375, 0, -188) - EVT_CALL(SetPanTarget, 0, 375, 0, -188) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(SetPlayerActionState, 3) - EVT_WAIT(1) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) - EVT_CALL(PlayerJump, 375, 0, -188, 20) - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_CALL(DisablePlayerPhysics, FALSE) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_CALL(SetPlayerActionState, 0) - EVT_EXEC(N(8024034C)) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(80240E68)) - EVT_EXEC(N(80240250)) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 9, 0x7FFFFE00) - EVT_CALL(EnableModel, 6, 0) - EVT_CALL(EnableModel, 12, 0) - EVT_CALL(EnableModel, 18, 0) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 12, 0x7FFFFE00) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 13, 0x7FFFFE00) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 14, 0x7FFFFE00) - EVT_EXEC(N(enterWalk_80240378)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_66C) = { - 0x00000000, -}; - -EvtScript N(80240670) = { - EVT_USE_BUF(LVar0) - EVT_MALLOC_ARRAY(6, LVarA) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(0), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(1), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(2), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(3), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(4), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(5), LVar0) - EVT_SET(LVar0, LVarA) - EVT_BIND_TRIGGER(N(80240770), TRIGGER_FLOOR_TOUCH, ArrayVar(0), 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240770) = { - EVT_USE_ARRAY(LVar0) - EVT_CALL(N(func_80240000_C4C390)) - EVT_IF_EQ(LVar0, 0) - EVT_RETURN - EVT_END_IF - EVT_LOOP(5) - EVT_CALL(ModifyColliderFlags, 1, ArrayVar(0), 0x7FFFFE00) - EVT_CALL(EnableModel, ArrayVar(1), 1) - EVT_WAIT(1) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, ArrayVar(0), 0x7FFFFE00) - EVT_CALL(EnableModel, ArrayVar(1), 0) - EVT_WAIT(1) - EVT_END_LOOP - EVT_IF_NE(ArrayVar(5), 0) - EVT_EXEC_WAIT(ArrayVar(5)) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(80240860) = { - EVT_USE_BUF(LVar0) - EVT_MALLOC_ARRAY(6, LVar9) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(0), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(1), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(2), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(3), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(4), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(5), LVar1) - EVT_CALL(ParentColliderToModel, ArrayVar(1), ArrayVar(0)) - EVT_LABEL(0) - EVT_LABEL(1) - EVT_CALL(GetPlayerActionState, LVarA) - EVT_IF_EQ(LVarA, 13) - EVT_GOTO(2) - EVT_END_IF - EVT_IF_EQ(LVarA, 15) - EVT_GOTO(2) - EVT_END_IF - EVT_WAIT(1) - EVT_GOTO(0) - EVT_LABEL(2) - EVT_CALL(GetPlayerPos, LVar1, LVar2, LVar3) - EVT_WAIT(1) - EVT_IF_NE(LVar2, ArrayVar(3)) - EVT_GOTO(2) - EVT_END_IF - EVT_CALL(N(UnkDistFunc2)) - EVT_IF_EQ(LVar0, 1) - EVT_EXEC_WAIT(N(80240AF4)) - EVT_END_IF - EVT_IF_EQ(LVar0, 2) - EVT_EXEC_WAIT(N(80240CB8)) - EVT_END_IF - EVT_LABEL(3) - EVT_CALL(GetPlayerActionState, LVar0) - EVT_WAIT(1) - EVT_IF_EQ(LVar0, 13) - EVT_GOTO(3) - EVT_END_IF - EVT_IF_EQ(LVar0, 15) - EVT_GOTO(3) - EVT_END_IF - EVT_GOTO(0) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240AF4) = { - EVT_USE_ARRAY(LVar9) - EVT_CALL(GetPlayerPos, LVar2, LVar3, LVar4) - EVT_CALL(MakeLerp, 0, 5, 3, 1) - EVT_LABEL(2) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_SET(LVar5, LVar3) - EVT_ADD(LVar5, LVar0) - EVT_CALL(SetPlayerPos, LVar2, LVar5, LVar4) - EVT_CALL(UpdateColliderTransform, ArrayVar(1)) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(2) - EVT_END_IF - EVT_CALL(MakeLerp, 5, 0, 3, 1) - EVT_LABEL(3) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_SET(LVar5, LVar3) - EVT_ADD(LVar5, LVar0) - EVT_CALL(SetPlayerPos, LVar2, LVar5, LVar4) - EVT_CALL(UpdateColliderTransform, ArrayVar(1)) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(3) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(80240CB8) = { - EVT_USE_ARRAY(LVar9) - EVT_CALL(MakeItemEntity, ArrayVar(5), ArrayVar(2), ArrayVar(3), ArrayVar(4), 3, 0) - EVT_SET(LVar2, 0) - EVT_CALL(MakeLerp, 0, 150, 19, 4) - EVT_LABEL(2) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_ADD(LVar2, 45) - EVT_CALL(RotateModel, ArrayVar(0), LVar2, 1, 0, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(2) - EVT_END_IF - EVT_CALL(MakeLerp, 150, 0, 19, 4) - EVT_LABEL(3) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_ADD(LVar2, 45) - EVT_CALL(RotateModel, ArrayVar(0), LVar2, 1, 0, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(3) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(80240E68) = { - EVT_CALL(N(func_8024013C_C4C4CC)) - EVT_CALL(func_802CA988, 0, LVar2, LVar3, LVar4, LVar5) - EVT_CALL(N(func_802401C0_C4C550)) - EVT_CALL(InterruptUsePartner) - EVT_CALL(GotoMap, EVT_PTR("dgb_11"), LVar0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_EDC) = { - 0x00000000, -}; - -EvtScript N(80240EE0) = { - EVT_SET(GF_DGB10_BoardedFloor1, 1) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240F00) = { - EVT_SET(GF_DGB10_BoardedFloor2, 1) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240F20) = { - EVT_SET(GF_DGB10_BoardedFloor3, 1) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_IF_EQ(GF_DGB10_BoardedFloor1, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 500, 0, -100, 0, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(80240EE0))) - EVT_END_IF - EVT_IF_EQ(GF_DGB10_BoardedFloor2, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 500, 0, -250, 0, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(80240F00))) - EVT_END_IF - EVT_IF_EQ(GF_DGB10_BoardedFloor3, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 375, 0, -250, 0, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(80240F20))) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -ApiStatus N(func_80240000_C4C390)(Evt* script, s32 isInitialCall) { - PlayerStatus* playerStatus = &gPlayerStatus; - s32* array = script->array; - f32 distance = dist2D(playerStatus->position.x, playerStatus->position.z, array[2], array[3]); - - script->varTable[0] = 1; - if ((playerStatus->actionState != 14) && (playerStatus->actionState != 16)) { - script->varTable[0] = 0; - } - if (script->array[4] <= distance) { - script->varTable[0] = 0; - } - - return ApiStatus_DONE2; -} - -#include "world/common/todo/UnkDistFunc2.inc.c" - -ApiStatus N(func_8024013C_C4C4CC)(Evt* script, s32 isInitialCall) { - PlayerStatus* playerStatus = &gPlayerStatus; - s32 var; - - if (playerStatus->position.y >= 0.0f) { - return 0; - } - - if (playerStatus->position.x < 440.0f) { - var = 3; - } else if (playerStatus->position.z < -170.0f) { - var = 2; - } else { - var = 1; - } - script->varTable[0] = var; - - return ApiStatus_DONE2; -} - -ApiStatus N(func_802401C0_C4C550)(Evt* script, s32 isInitialCall) { - if (gPlayerStatus.position.y > -60.0f) { - return ApiStatus_BLOCK; - } - return ApiStatus_DONE2; -} diff --git a/src/world/area_dgb/dgb_10/dgb_10.h b/src/world/area_dgb/dgb_10/dgb_10.h index 2aed2cd353..d693bffe1f 100644 --- a/src/world/area_dgb/dgb_10/dgb_10.h +++ b/src/world/area_dgb/dgb_10/dgb_10.h @@ -2,20 +2,16 @@ /// @brief Tubba's Castle - Sealed Room (2F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_10_shape.h" +#include "mapfs/dgb_10_hit.h" + #define NAMESPACE dgb_10 -ApiStatus N(func_80240000_C4C390)(Evt* script, s32 isInitialCall); -ApiStatus N(UnkDistFunc2)(Evt* script, s32 isInitialCall); -ApiStatus N(func_8024013C_C4C4CC)(Evt* script, s32 isInitialCall); -ApiStatus N(func_802401C0_C4C550)(Evt* script, s32 isInitialCall); - -extern EvtScript N(80240770); -extern EvtScript N(80240AF4); -extern EvtScript N(80240CB8); -extern EvtScript N(80240E68); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_SetupHoles); +extern EvtScript N(EVS_MakeEntities); diff --git a/src/world/area_dgb/dgb_10/dgb_10_0_header.c b/src/world/area_dgb/dgb_10/dgb_10_0_header.c new file mode 100644 index 0000000000..dff0701012 --- /dev/null +++ b/src/world/area_dgb/dgb_10/dgb_10_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_10.h" + +EntryList N(Entrances) = { + [dgb_10_ENTRY_0] { 300.0, 0.0, -50.0, 0.0 }, + [dgb_10_ENTRY_1] { 375.0, 0.0, -240.0, 0.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_10 }, +}; diff --git a/src/world/area_dgb/dgb_10/dgb_10_1_music.c b/src/world/area_dgb/dgb_10/dgb_10_1_music.c new file mode 100644 index 0000000000..ccb9d60b40 --- /dev/null +++ b/src/world/area_dgb/dgb_10/dgb_10_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_10.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_10/dgb_10_2_main.c b/src/world/area_dgb/dgb_10/dgb_10_2_main.c new file mode 100644 index 0000000000..68a099ffd2 --- /dev/null +++ b/src/world/area_dgb/dgb_10/dgb_10_2_main.c @@ -0,0 +1,56 @@ +#include "dgb_10.h" + +EvtScript N(EVS_ExitWalk_dgb_09_3) = EVT_EXIT_WALK(40, dgb_10_ENTRY_0, "dgb_09", dgb_09_ENTRY_3); + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_dgb_09_3)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilis, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_10_ENTRY_0) + EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers))) + EVT_EXEC(EnterWalk) + EVT_WAIT(1) + EVT_CASE_EQ(dgb_10_ENTRY_1) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 375, 0, -188) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 375, 0, -188) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP) + EVT_WAIT(1) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) + EVT_CALL(PlayerJump, 375, 0, -188, 20) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupHoles)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilits, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(EnableModel, MODEL_o117, FALSE) + EVT_CALL(EnableModel, MODEL_o116, FALSE) + EVT_CALL(EnableModel, MODEL_o113, FALSE) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitt1, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitt2, COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitt3, COLLIDER_FLAGS_UPPER_MASK) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_10/dgb_10_3_hole.c b/src/world/area_dgb/dgb_10/dgb_10_3_hole.c new file mode 100644 index 0000000000..fd09f25580 --- /dev/null +++ b/src/world/area_dgb/dgb_10/dgb_10_3_hole.c @@ -0,0 +1,42 @@ +#include "dgb_10.h" + +// unused +#include "world/common/atomic/BetaFloorPanels.inc.c" + +API_CALLABLE(N(AwaitFallInHole)) { + PlayerStatus* playerStatus = &gPlayerStatus; + s32 entry; + + if (playerStatus->position.y >= 0.0f) { + return ApiStatus_BLOCK; + } + + if (playerStatus->position.x < 440.0f) { + entry = dgb_11_ENTRY_3; + } else if (playerStatus->position.z < -170.0f) { + entry = dgb_11_ENTRY_2; + } else { + entry = dgb_11_ENTRY_1; + } + script->varTable[0] = entry; + + return ApiStatus_DONE2; +} + +API_CALLABLE(N(AwaitFallDownHole)) { + if (gPlayerStatus.position.y > -60.0f) { + return ApiStatus_BLOCK; + } + return ApiStatus_DONE2; +} + +EvtScript N(EVS_SetupHoles) = { + EVT_CALL(N(AwaitFallInHole)) + EVT_CALL(func_802CA988, 0, LVar2, LVar3, LVar4, LVar5) + EVT_CALL(N(AwaitFallDownHole)) + EVT_CALL(InterruptUsePartner) + EVT_CALL(GotoMap, EVT_PTR("dgb_11"), LVar0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_10/dgb_10_4_entity.c b/src/world/area_dgb/dgb_10/dgb_10_4_entity.c new file mode 100644 index 0000000000..7e723acfcd --- /dev/null +++ b/src/world/area_dgb/dgb_10/dgb_10_4_entity.c @@ -0,0 +1,37 @@ +#include "dgb_10.h" +#include "entity.h" + +EvtScript N(EVS_BreakFloor1) = { + EVT_SET(GF_DGB10_BoardedFloor1, TRUE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BreakFloor2) = { + EVT_SET(GF_DGB10_BoardedFloor2, TRUE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BreakFloor3) = { + EVT_SET(GF_DGB10_BoardedFloor3, TRUE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_MakeEntities) = { + EVT_IF_EQ(GF_DGB10_BoardedFloor1, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 500, 0, -100, 0, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_BreakFloor1))) + EVT_END_IF + EVT_IF_EQ(GF_DGB10_BoardedFloor2, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 500, 0, -250, 0, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_BreakFloor2))) + EVT_END_IF + EVT_IF_EQ(GF_DGB10_BoardedFloor3, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_BoardedFloor), 375, 0, -250, 0, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_BreakFloor3))) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_11/C4D3E0.c b/src/world/area_dgb/dgb_11/C4D3E0.c deleted file mode 100644 index b0b37f6930..0000000000 --- a/src/world/area_dgb/dgb_11/C4D3E0.c +++ /dev/null @@ -1,228 +0,0 @@ -#include "dgb_11.h" -#include "entity.h" -#include "message_ids.h" - -extern s16 Entity_ScriptSpring_AnimLaunch[]; - -EntryList N(entryList) = { - { 450.0f, 0.0f, -40.0f, 0.0f }, - { 500.0f, 180.0f, -100.0f, 180.0f }, - { 500.0f, 180.0f, -250.0f, 180.0f }, - { 375.0f, 180.0f, -250.0f, 180.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_11 }, -}; - -EvtScript N(802400D0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_168)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_80240170) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 11) - EVT_SET(LVar2, 21) - EVT_SET(LVar3, -1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_02"), 3) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80240224) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 21) - EVT_SET(LVar3, -1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_RETURN - EVT_CASE_EQ(1) - EVT_CALL(UseSettingsFrom, 0, 500, 0, -100) - EVT_CALL(SetPanTarget, 0, 500, 0, -100) - EVT_SET(LVar3, 1) - EVT_CASE_EQ(2) - EVT_CALL(UseSettingsFrom, 0, 500, 75, -250) - EVT_CALL(SetPanTarget, 0, 500, 75, -250) - EVT_SET(LVar3, 75) - EVT_CASE_EQ(3) - EVT_CALL(SetZoneEnabled, 5, 0) - EVT_CALL(UseSettingsFrom, 0, 375, 0, -175) - EVT_CALL(SetPanTarget, 0, 375, 0, -175) - EVT_SET(AreaFlag(2), 1) - EVT_SET(LVar3, 1) - EVT_END_SWITCH - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(InterpPlayerYaw, 180, 0) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_LOOP(0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_IF_LE(LVar1, LVar3) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(802400D0)) - EVT_BIND_TRIGGER(N(exitSingleDoor_80240170), TRIGGER_WALL_PRESS_A, 11, 1, 0) - EVT_EXEC(N(enterSingleDoor_80240224)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_56C) = { - 0x00000000, -}; - -EvtScript N(80240570) = { - EVT_LABEL(0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_IF_GE(LVar1, LVar3) - EVT_SET(LVar1, LVar3) - EVT_END_IF - EVT_CALL(SetCamTarget, 0, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_GOTO(0) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240600) = { - EVT_CALL(PlayerJump, 375, 270, -250, 20) - EVT_RETURN - EVT_END -}; - -EvtScript N(8024062C) = { - EVT_IF_EQ(AreaFlag(3), 1) - EVT_RETURN - EVT_END_IF - EVT_SET(AreaFlag(3), 1) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(SetZoneEnabled, 5, 0) - EVT_IF_EQ(AreaFlag(2), 0) - EVT_IF_EQ(GF_DGB10_BoardedFloor3, 0) - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(SetPlayerActionState, 3) - EVT_WAIT(1) - EVT_SET(LVar3, 500) - EVT_EXEC_GET_TID(N(80240570), LVarA) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) - EVT_EXEC_GET_TID(N(80240600), LVarB) - EVT_LOOP(0) - EVT_WAIT(1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_IF_GE(LVar1, 165) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(SetPlayerPos, LVar0, 165, LVar2) - EVT_KILL_THREAD(LVarB) - EVT_CALL(SetPlayerAnimation, 524309) - EVT_CALL(ShakeCam, 0, 0, 20, EVT_FLOAT(1.0)) - EVT_WAIT(10) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.0)) - EVT_CALL(PlayerJump1, 375, 25, -250, 10) - EVT_CALL(N(func_80240000_C4D3E0)) - EVT_CALL(PlaySoundAtPlayer, 8326, 0) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) - EVT_CALL(PlayerJump, 375, 0, -175, 15) - EVT_KILL_THREAD(LVarA) - EVT_CALL(SetPlayerActionState, 0) - EVT_WAIT(2) - EVT_CALL(SetZoneEnabled, 5, 1) - EVT_CALL(DisablePlayerPhysics, FALSE) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_SET(AreaFlag(3), 0) - EVT_ELSE - EVT_CALL(DisablePlayerPhysics, TRUE) - EVT_CALL(SetPlayerActionState, 3) - EVT_WAIT(1) - EVT_THREAD - EVT_WAIT(8) - EVT_CALL(GotoMap, EVT_PTR("dgb_10"), 1) - EVT_WAIT(100) - EVT_END_THREAD - EVT_SET(LVar3, 500) - EVT_EXEC_GET_TID(N(80240570), LVarA) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) - EVT_CALL(PlayerJump, 375, 270, -250, 20) - EVT_SET(AreaFlag(3), 0) - EVT_END_IF - EVT_ELSE - EVT_CALL(SetPlayerActionState, 3) - EVT_WAIT(1) - EVT_SET(LVar3, 25) - EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) - EVT_CALL(PlayerJump, 375, 0, -175, 15) - EVT_SET(AreaFlag(2), 0) - EVT_KILL_THREAD(LVarA) - EVT_CALL(SetPlayerActionState, 0) - EVT_WAIT(2) - EVT_CALL(SetZoneEnabled, 5, 1) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_SET(AreaFlag(3), 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_CALL(MakeItemEntity, ITEM_D_DOWN_JUMP, 250, 75, -100, 17, GF_DGB11_Item_DDownJump) - EVT_CALL(MakeEntity, EVT_PTR(Entity_ScriptSpring), 375, 0, -250, 0, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(8024062C))) - EVT_SET(MapVar(0), LVar0) - EVT_RETURN - EVT_END -}; - -ApiStatus N(func_80240000_C4D3E0)(Evt* script, s32 isInitialCall) { - Entity* entity = get_entity_by_index(evt_get_variable(NULL, MapVar(0))); - - if (entity == NULL) { - return ApiStatus_BLOCK; - } - - play_model_animation(entity->virtualModelIndex, Entity_ScriptSpring_AnimLaunch); - - return ApiStatus_DONE2; -} diff --git a/src/world/area_dgb/dgb_11/dgb_11.h b/src/world/area_dgb/dgb_11/dgb_11.h index ef271e62c5..215e11da55 100644 --- a/src/world/area_dgb/dgb_11/dgb_11.h +++ b/src/world/area_dgb/dgb_11/dgb_11.h @@ -2,13 +2,19 @@ /// @brief Tubba's Castle - Covered Tables Room (1F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_11_shape.h" +#include "mapfs/dgb_11_hit.h" + +enum { + MV_SpringEntityID = MapVar(0), +}; + #define NAMESPACE dgb_11 -ApiStatus N(func_80240000_C4D3E0)(Evt* script, s32 isInitialCall); - -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); diff --git a/src/world/area_dgb/dgb_11/dgb_11_0_header.c b/src/world/area_dgb/dgb_11/dgb_11_0_header.c new file mode 100644 index 0000000000..2f6fd5d99f --- /dev/null +++ b/src/world/area_dgb/dgb_11/dgb_11_0_header.c @@ -0,0 +1,15 @@ +#include "dgb_11.h" + +EntryList N(Entrances) = { + [dgb_11_ENTRY_0] { 450.0, 0.0, -40.0, 0.0 }, + [dgb_11_ENTRY_1] { 500.0, 180.0, -100.0, 180.0 }, + [dgb_11_ENTRY_2] { 500.0, 180.0, -250.0, 180.0 }, + [dgb_11_ENTRY_3] { 375.0, 180.0, -250.0, 180.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_11 }, +}; diff --git a/src/world/area_dgb/dgb_11/dgb_11_1_music.c b/src/world/area_dgb/dgb_11/dgb_11_1_music.c new file mode 100644 index 0000000000..f14530909d --- /dev/null +++ b/src/world/area_dgb/dgb_11/dgb_11_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_11.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_11/dgb_11_2_main.c b/src/world/area_dgb/dgb_11/dgb_11_2_main.c new file mode 100644 index 0000000000..c26c5125aa --- /dev/null +++ b/src/world/area_dgb/dgb_11/dgb_11_2_main.c @@ -0,0 +1,70 @@ +#include "dgb_11.h" + +EvtScript N(EVS_ExitDoor_dgb_02_3) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_11_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilits) + EVT_SET(LVar2, MODEL_o109) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_02"), dgb_02_ENTRY_3) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_11_ENTRY_0) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o109) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_RETURN + EVT_CASE_EQ(dgb_11_ENTRY_1) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 500, 0, -100) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 500, 0, -100) + EVT_SET(LVar3, 1) + EVT_CASE_EQ(dgb_11_ENTRY_2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 500, 75, -250) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 500, 75, -250) + EVT_SET(LVar3, 75) + EVT_CASE_EQ(dgb_11_ENTRY_3) + EVT_CALL(SetZoneEnabled, ZONE_o203, FALSE) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 375, 0, -175) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 375, 0, -175) + EVT_SET(AF_DGB_02, TRUE) + EVT_SET(LVar3, 1) + EVT_END_SWITCH + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(InterpPlayerYaw, 180, 0) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_LOOP(0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_IF_LE(LVar1, LVar3) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_02_3)), TRIGGER_WALL_PRESS_A, COLLIDER_deilits, 1, 0) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_11/dgb_11_3_entity.c b/src/world/area_dgb/dgb_11/dgb_11_3_entity.c new file mode 100644 index 0000000000..9c9f374ce4 --- /dev/null +++ b/src/world/area_dgb/dgb_11/dgb_11_3_entity.c @@ -0,0 +1,121 @@ +#include "dgb_11.h" +#include "entity.h" +#include "animation_script.h" + +extern AnimScript Entity_ScriptSpring_AnimLaunch; + +API_CALLABLE(N(PlaySpringAnimation)) { + Entity* entity = get_entity_by_index(evt_get_variable(NULL, MV_SpringEntityID)); + + if (entity == NULL) { + return ApiStatus_BLOCK; + } + + play_model_animation(entity->virtualModelIndex, Entity_ScriptSpring_AnimLaunch); + + return ApiStatus_DONE2; +} + +EvtScript N(EVS_TetherCamToPlayer) = { + EVT_LABEL(0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_IF_GE(LVar1, LVar3) + EVT_SET(LVar1, LVar3) + EVT_END_IF + EVT_CALL(SetCamTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_WAIT(1) + EVT_GOTO(0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_LaunchToCeiling) = { + EVT_CALL(PlayerJump, 375, 270, -250, 20) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_UseSpring) = { + EVT_IF_EQ(AF_DGB_03, TRUE) + EVT_RETURN + EVT_END_IF + EVT_SET(AF_DGB_03, TRUE) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(SetZoneEnabled, ZONE_o203, FALSE) + EVT_IF_EQ(AF_DGB_02, FALSE) + EVT_IF_EQ(GF_DGB10_BoardedFloor3, FALSE) + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP) + EVT_WAIT(1) + EVT_SET(LVar3, 500) + EVT_EXEC_GET_TID(N(EVS_TetherCamToPlayer), LVarA) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) + EVT_EXEC_GET_TID(N(EVS_LaunchToCeiling), LVarB) + EVT_LOOP(0) + EVT_WAIT(1) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_IF_GE(LVar1, 165) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(SetPlayerPos, LVar0, 165, LVar2) + EVT_KILL_THREAD(LVarB) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_80015) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 20, EVT_FLOAT(1.0)) + EVT_WAIT(10) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.0)) + EVT_CALL(PlayerJump1, 375, 25, -250, 10) + EVT_CALL(N(PlaySpringAnimation)) + EVT_CALL(PlaySoundAtPlayer, SOUND_2086, 0) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) + EVT_CALL(PlayerJump, 375, 0, -175, 15) + EVT_KILL_THREAD(LVarA) + EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE) + EVT_WAIT(2) + EVT_CALL(SetZoneEnabled, ZONE_o203, TRUE) + EVT_CALL(DisablePlayerPhysics, FALSE) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_SET(AF_DGB_03, FALSE) + EVT_ELSE + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP) + EVT_WAIT(1) + EVT_THREAD + EVT_WAIT(8) + EVT_CALL(GotoMap, EVT_PTR("dgb_10"), dgb_10_ENTRY_1) + EVT_WAIT(100) + EVT_END_THREAD + EVT_SET(LVar3, 500) + EVT_EXEC_GET_TID(N(EVS_TetherCamToPlayer), LVarA) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) + EVT_CALL(PlayerJump, 375, 270, -250, 20) + EVT_SET(AF_DGB_03, FALSE) + EVT_END_IF + EVT_ELSE + EVT_CALL(SetPlayerActionState, ACTION_STATE_JUMP) + EVT_WAIT(1) + EVT_SET(LVar3, 25) + EVT_CALL(SetPlayerJumpscale, EVT_FLOAT(0.7)) + EVT_CALL(PlayerJump, 375, 0, -175, 15) + EVT_SET(AF_DGB_02, FALSE) + EVT_KILL_THREAD(LVarA) + EVT_CALL(SetPlayerActionState, ACTION_STATE_IDLE) + EVT_WAIT(2) + EVT_CALL(SetZoneEnabled, ZONE_o203, TRUE) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_SET(AF_DGB_03, FALSE) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeItemEntity, ITEM_D_DOWN_JUMP, 250, 75, -100, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB11_Item_DDownJump) + EVT_CALL(MakeEntity, EVT_PTR(Entity_ScriptSpring), 375, 0, -250, 0, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_UseSpring))) + EVT_SET(MV_SpringEntityID, LVar0) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_12/C4DEF0.c b/src/world/area_dgb/dgb_12/C4DEF0.c deleted file mode 100644 index bfb0e6df81..0000000000 --- a/src/world/area_dgb/dgb_12/C4DEF0.c +++ /dev/null @@ -1,144 +0,0 @@ -#include "dgb_12.h" -#include "message_ids.h" -#include "common.h" -#include "entity.h" - -EntryList N(entryList) = { - { -500.0f, 0.0f, -40.0f, 0.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_12 }, -}; - -EvtScript N(80240310) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_3A8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_802403B0) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 8) - EVT_SET(LVar2, 14) - EVT_SET(LVar3, -1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_09"), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80240464) = { - EVT_CALL(UseDoorSounds, 0) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 14) - EVT_SET(LVar3, -1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(802405E0)) - EVT_EXEC(N(80240310)) - EVT_BIND_TRIGGER(N(exitSingleDoor_802403B0), TRIGGER_WALL_PRESS_A, 8, 1, 0) - EVT_EXEC(N(enterSingleDoor_80240464)) - EVT_RETURN - EVT_END -}; - -s32 N(lavaResetList_802405C0)[] = { - 0x00000005, 0xC3FB8000, 0x00000000, 0xC27C0000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(802405E0) = { - EVT_SET_GROUP(EVT_GROUP_EF) - EVT_CALL(ModifyColliderFlags, 3, 12, 0x00000002) - EVT_CALL(ModifyColliderFlags, 3, 0, 0x00000002) - EVT_CALL(ModifyColliderFlags, 3, 14, 0x00000002) - EVT_THREAD - EVT_CALL(ResetFromLava, EVT_PTR(N(lavaResetList_802405C0))) - EVT_END_THREAD - EVT_WAIT(50) - EVT_CALL(TranslateModel, 19, 0, 0, 0) - EVT_CALL(ParentColliderToModel, 12, 19) - EVT_LOOP(0) - EVT_THREAD - EVT_WAIT(2) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 0, 0x7FFFFE00) - EVT_END_THREAD - EVT_CALL(MakeLerp, 0, -35, 15, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, 19, 0, LVar0, 0) - EVT_CALL(UpdateColliderTransform, 12) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_WAIT(60) - EVT_CALL(PlaySoundAtCollider, 0, 8339, 0) - EVT_THREAD - EVT_CALL(ModifyColliderFlags, 1, 0, 0x7FFFFE00) - EVT_END_THREAD - EVT_CALL(MakeLerp, -35, 0, 4, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, 19, 0, LVar0, 0) - EVT_CALL(UpdateColliderTransform, 12) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_WAIT(35) - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -static s32 N(pad_868)[] = { - 0x00000000, 0x00000000, -}; - -#define CHEST_ITEM 19 -#define CHEST_FLAG 1057 -#include "world/common/atomic/Chest.old.inc.c" - -EvtScript N(makeEntities) = { - EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), -225, 0, -245, 0, 0, MAKE_ENTITY_END) - EVT_CALL(AssignChestFlag, GF_DGB12_Chest_CastleKey1) - EVT_CALL(AssignScript, EVT_PTR(N(EVS_Chest_Interact))) - EVT_RETURN - EVT_END -}; diff --git a/src/world/area_dgb/dgb_12/dgb_12.h b/src/world/area_dgb/dgb_12/dgb_12.h index c4ef1087ea..7a027e70fb 100644 --- a/src/world/area_dgb/dgb_12/dgb_12.h +++ b/src/world/area_dgb/dgb_12/dgb_12.h @@ -2,12 +2,16 @@ /// @brief Tubba's Castle - Spike Trap Room (2F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_12_shape.h" +#include "mapfs/dgb_12_hit.h" + #define NAMESPACE dgb_12 -extern EvtScript N(802405E0); -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_SetupSpikes); +extern EvtScript N(EVS_MakeEntities); diff --git a/src/world/area_dgb/dgb_12/dgb_12_0_header.c b/src/world/area_dgb/dgb_12/dgb_12_0_header.c new file mode 100644 index 0000000000..d885a0961a --- /dev/null +++ b/src/world/area_dgb/dgb_12/dgb_12_0_header.c @@ -0,0 +1,12 @@ +#include "dgb_12.h" + +EntryList N(Entrances) = { + [dgb_12_ENTRY_0] { -500.0, 0.0, -40.0, 0.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_12 }, +}; diff --git a/src/world/area_dgb/dgb_12/dgb_12_1_music.c b/src/world/area_dgb/dgb_12/dgb_12_1_music.c new file mode 100644 index 0000000000..f8beb336e9 --- /dev/null +++ b/src/world/area_dgb/dgb_12/dgb_12_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_12.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_12/dgb_12_2_main.c b/src/world/area_dgb/dgb_12/dgb_12_2_main.c new file mode 100644 index 0000000000..2d33795dd7 --- /dev/null +++ b/src/world/area_dgb/dgb_12/dgb_12_2_main.c @@ -0,0 +1,43 @@ +#include "dgb_12.h" + +EvtScript N(EVS_ExitDoor_dgb_09_2) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_12_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilits) + EVT_SET(LVar2, MODEL_o158) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_09"), dgb_09_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_12_ENTRY_0) + EVT_SET(LVar2, MODEL_o158) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupSpikes)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoor_dgb_09_2)), TRIGGER_WALL_PRESS_A, COLLIDER_deilits, 1, 0) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_12/dgb_12_3_spikes.c b/src/world/area_dgb/dgb_12/dgb_12_3_spikes.c new file mode 100644 index 0000000000..08c6f8a2ad --- /dev/null +++ b/src/world/area_dgb/dgb_12/dgb_12_3_spikes.c @@ -0,0 +1,53 @@ +#include "dgb_12.h" + +LavaReset N(SafeFloorColliders)[] = { + { .colliderID = COLLIDER_o200, .pos = { -503.0, 0.0, -63.0 }}, + { .colliderID = -1 } +}; + +EvtScript N(EVS_SetupSpikes) = { + EVT_SET_GROUP(EVT_GROUP_EF) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o202, SURFACE_TYPE_SPIKES) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o215, SURFACE_TYPE_SPIKES) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o216, SURFACE_TYPE_SPIKES) + EVT_THREAD + EVT_CALL(ResetFromLava, EVT_PTR(N(SafeFloorColliders))) + EVT_END_THREAD + EVT_WAIT(50) + EVT_CALL(TranslateModel, MODEL_o190, 0, 0, 0) + EVT_CALL(ParentColliderToModel, COLLIDER_o202, MODEL_o190) + EVT_LOOP(0) + EVT_THREAD + EVT_WAIT(2) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o215, COLLIDER_FLAGS_UPPER_MASK) + EVT_END_THREAD + EVT_CALL(MakeLerp, 0, -35, 15, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, MODEL_o190, 0, LVar0, 0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o202) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_WAIT(60) + EVT_CALL(PlaySoundAtCollider, COLLIDER_o215, SOUND_2093, 0) + EVT_THREAD + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, COLLIDER_o215, COLLIDER_FLAGS_UPPER_MASK) + EVT_END_THREAD + EVT_CALL(MakeLerp, -35, 0, 4, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, MODEL_o190, 0, LVar0, 0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o202) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_WAIT(35) + EVT_END_LOOP + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_12/dgb_12_4_entity.c b/src/world/area_dgb/dgb_12/dgb_12_4_entity.c new file mode 100644 index 0000000000..5cee30eb1e --- /dev/null +++ b/src/world/area_dgb/dgb_12/dgb_12_4_entity.c @@ -0,0 +1,14 @@ +#include "dgb_12.h" +#include "entity.h" + +#include "world/common/atomic/Chest.inc.c" + +EvtScript N(EVS_Chest_Interact) = EVT_OPEN_CHEST_KEY(ITEM_TUBBA_CASTLE_KEY, GF_DGB12_Chest_CastleKey1); + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), -225, 0, -245, 0, 0, MAKE_ENTITY_END) + EVT_CALL(AssignChestFlag, GF_DGB12_Chest_CastleKey1) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_Chest_Interact))) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_13/C4E960.c b/src/world/area_dgb/dgb_13/C4E960.c deleted file mode 100644 index 13b81fe196..0000000000 --- a/src/world/area_dgb/dgb_13/C4E960.c +++ /dev/null @@ -1,152 +0,0 @@ -#include "dgb_13.h" -#include "message_ids.h" - -EntryList N(entryList) = { - { -450.0f, 0.0f, -40.0f, 0.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_13 }, -}; - -EvtScript N(80240050) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_E8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitWalk_802400F0) = EVT_EXIT_WALK(26, 0, "dgb_03", 5); - -EvtScript N(8024014C) = { - EVT_BIND_TRIGGER(N(exitWalk_802400F0), TRIGGER_FLOOR_ABOVE, 5, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_EXEC_WAIT(N(80240270)) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, 6, 0x7FFFFE00) - EVT_EXEC_WAIT(N(80240680)) - EVT_EXEC(N(80240050)) - EVT_SET(LVar0, EVT_PTR(N(8024014C))) - EVT_EXEC(EnterWalk) - EVT_WAIT(1) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240270) = { - EVT_CALL(MakeItemEntity, ITEM_MEGA_RUSH, -910, 50, -206, 17, GF_DGB13_Item_MegaRush) - EVT_CALL(MakeItemEntity, ITEM_COIN, -530, 55, -190, 17, GF_DGB13_Item_CoinA) - EVT_CALL(MakeItemEntity, ITEM_COIN, -510, 55, -175, 17, GF_DGB13_Item_CoinB) - EVT_CALL(MakeItemEntity, ITEM_COIN, -510, 55, -205, 17, GF_DGB13_Item_CoinC) - EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -160, 17, GF_DGB13_Item_CoinD) - EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -190, 17, GF_DGB13_Item_CoinE) - EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -220, 17, GF_DGB13_Item_CoinF) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_37C) = { - 0x00000000, -}; - -EvtScript N(80240380) = { - EVT_CALL(MakeLerp, 0, 30, 15, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateGroup, 47, 0, 0, LVar0) - EVT_CALL(UpdateColliderTransform, 13) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -EvtScript N(80240424) = { - EVT_CALL(MakeLerp, 30, 0, 15, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateGroup, 47, 0, 0, LVar0) - EVT_CALL(UpdateColliderTransform, 13) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -EvtScript N(802404C8) = { - EVT_CALL(MakeLerp, 0, 30, 15, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateGroup, 53, 0, 0, LVar0) - EVT_CALL(UpdateColliderTransform, 17) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -EvtScript N(8024056C) = { - EVT_CALL(MakeLerp, 30, 0, 15, 0) - EVT_LOOP(0) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateGroup, 53, 0, 0, LVar0) - EVT_CALL(UpdateColliderTransform, 17) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 0) - EVT_BREAK_LOOP - EVT_END_IF - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -EvtScript N(80240610) = { - EVT_IF_EQ(MapVar(0), 0) - EVT_EXEC_WAIT(N(80240380)) - EVT_SET(MapVar(0), 1) - EVT_ELSE - EVT_EXEC_WAIT(N(80240424)) - EVT_SET(MapVar(0), 0) - EVT_END_IF - EVT_UNBIND - EVT_RETURN - EVT_END -}; - -EvtScript N(80240680) = { - EVT_CALL(ParentColliderToModel, 13, 44) - EVT_BIND_TRIGGER(N(80240610), TRIGGER_WALL_PRESS_A, 13, 1, 0) - EVT_RETURN - EVT_END -}; diff --git a/src/world/area_dgb/dgb_13/dgb_13.h b/src/world/area_dgb/dgb_13/dgb_13.h index b944e80cb5..e40d0cb013 100644 --- a/src/world/area_dgb/dgb_13/dgb_13.h +++ b/src/world/area_dgb/dgb_13/dgb_13.h @@ -2,12 +2,20 @@ /// @brief Tubba's Castle - Hidden Bedroom (2F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_13_shape.h" +#include "mapfs/dgb_13_hit.h" + +enum { + MV_LowerDrawerOpen = MapVar(0), +}; + #define NAMESPACE dgb_13 -extern EvtScript N(80240270); -extern EvtScript N(80240680); -extern EvtScript N(main); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_SetupDrawers); +extern EvtScript N(EVS_MakeEntities); diff --git a/src/world/area_dgb/dgb_13/dgb_13_0_header.c b/src/world/area_dgb/dgb_13/dgb_13_0_header.c new file mode 100644 index 0000000000..28effba142 --- /dev/null +++ b/src/world/area_dgb/dgb_13/dgb_13_0_header.c @@ -0,0 +1,12 @@ +#include "dgb_13.h" + +EntryList N(Entrances) = { + [dgb_13_ENTRY_0] { -450.0, 0.0, -40.0, 0.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_13 }, +}; diff --git a/src/world/area_dgb/dgb_13/dgb_13_1_music.c b/src/world/area_dgb/dgb_13/dgb_13_1_music.c new file mode 100644 index 0000000000..3ff312293d --- /dev/null +++ b/src/world/area_dgb/dgb_13/dgb_13_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_13.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_13/dgb_13_2_main.c b/src/world/area_dgb/dgb_13/dgb_13_2_main.c new file mode 100644 index 0000000000..ec01a9b504 --- /dev/null +++ b/src/world/area_dgb/dgb_13/dgb_13_2_main.c @@ -0,0 +1,24 @@ +#include "dgb_13.h" + +EvtScript N(EVS_ExitWalk_dgb_03_5) = EVT_EXIT_WALK(26, dgb_13_ENTRY_0, "dgb_03", dgb_03_ENTRY_5); + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitWalk_dgb_03_5)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilis, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilits, COLLIDER_FLAGS_UPPER_MASK) + EVT_EXEC_WAIT(N(EVS_SetupDrawers)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_SET(LVar0, EVT_PTR(N(EVS_BindExitTriggers))) + EVT_EXEC(EnterWalk) + EVT_WAIT(1) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_13/dgb_13_3_entity.c b/src/world/area_dgb/dgb_13/dgb_13_3_entity.c new file mode 100644 index 0000000000..cb7629b5da --- /dev/null +++ b/src/world/area_dgb/dgb_13/dgb_13_3_entity.c @@ -0,0 +1,13 @@ +#include "dgb_13.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeItemEntity, ITEM_MEGA_RUSH, -910, 50, -206, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_MegaRush) + EVT_CALL(MakeItemEntity, ITEM_COIN, -530, 55, -190, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_CoinA) + EVT_CALL(MakeItemEntity, ITEM_COIN, -510, 55, -175, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_CoinB) + EVT_CALL(MakeItemEntity, ITEM_COIN, -510, 55, -205, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_CoinC) + EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -160, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_CoinD) + EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -190, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_CoinE) + EVT_CALL(MakeItemEntity, ITEM_COIN, -490, 55, -220, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB13_Item_CoinF) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_13/dgb_13_4_drawer.c b/src/world/area_dgb/dgb_13/dgb_13_4_drawer.c new file mode 100644 index 0000000000..625bd8012e --- /dev/null +++ b/src/world/area_dgb/dgb_13/dgb_13_4_drawer.c @@ -0,0 +1,81 @@ +#include "dgb_13.h" + +EvtScript N(EVS_OpenLowerDrawer) = { + EVT_CALL(MakeLerp, 0, 30, 15, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateGroup, MODEL_b1, 0, 0, LVar0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o265) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_CloseLowerDrawer) = { + EVT_CALL(MakeLerp, 30, 0, 15, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateGroup, MODEL_b1, 0, 0, LVar0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o265) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_OpenUpperDrawer) = { + EVT_CALL(MakeLerp, 0, 30, 15, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateGroup, MODEL_b3, 0, 0, LVar0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o267) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_CloseUpperDrawer) = { + EVT_CALL(MakeLerp, 30, 0, 15, EASING_LINEAR) + EVT_LOOP(0) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateGroup, MODEL_b3, 0, 0, LVar0) + EVT_CALL(UpdateColliderTransform, COLLIDER_o267) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 0) + EVT_BREAK_LOOP + EVT_END_IF + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Interact_LowerDrawer) = { + EVT_IF_EQ(MV_LowerDrawerOpen, FALSE) + EVT_EXEC_WAIT(N(EVS_OpenLowerDrawer)) + EVT_SET(MV_LowerDrawerOpen, TRUE) + EVT_ELSE + EVT_EXEC_WAIT(N(EVS_CloseLowerDrawer)) + EVT_SET(MV_LowerDrawerOpen, FALSE) + EVT_END_IF + EVT_UNBIND + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_SetupDrawers) = { + EVT_CALL(ParentColliderToModel, COLLIDER_o265, MODEL_o419) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_Interact_LowerDrawer)), TRIGGER_WALL_PRESS_A, COLLIDER_o265, 1, 0) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_14/C4F030.c b/src/world/area_dgb/dgb_14/C4F030.c deleted file mode 100644 index c222f1bc9c..0000000000 --- a/src/world/area_dgb/dgb_14/C4F030.c +++ /dev/null @@ -1,116 +0,0 @@ -#include "dgb_14.h" -#include "message_ids.h" -#include "entity.h" - -EntryList N(entryList) = { - { 575.0f, 0.0f, 180.0f, 270.0f }, - { 575.0f, 210.0f, 180.0f, 270.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_14 }, -}; - -EvtScript N(80240060) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_F8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80240100) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 14) - EVT_SET(LVar2, 24) - EVT_SET(LVar3, 22) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_03"), 3) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802401B4) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 18) - EVT_SET(LVar2, 19) - EVT_SET(LVar3, 17) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterDoubleDoor_80240268) = { - EVT_CALL(UseDoorSounds, 3) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 24) - EVT_SET(LVar3, 22) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_SET(LVar2, 19) - EVT_SET(LVar3, 17) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_IF_EQ(AreaFlag(1), 1) - EVT_WAIT(5) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001D) - EVT_WAIT(20) - EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) - EVT_END_IF - EVT_CALL(DisablePlayerInput, FALSE) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(80240060)) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80240100), TRIGGER_WALL_PRESS_A, 14, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_802401B4), TRIGGER_WALL_PRESS_A, 18, 1, 0) - EVT_EXEC(N(enterDoubleDoor_80240268)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_47C) = { - 0x00000000, -}; - -EvtScript N(makeEntities) = { - EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 500, 60, 75, 0, 163, MAKE_ENTITY_END) - EVT_CALL(AssignBlockFlag, GF_DGB14_ItemBlock_MapleSyrup) - EVT_RETURN - EVT_END -}; diff --git a/src/world/area_dgb/dgb_14/dgb_14.h b/src/world/area_dgb/dgb_14/dgb_14.h index 331ca5f316..cbee9e3a2e 100644 --- a/src/world/area_dgb/dgb_14/dgb_14.h +++ b/src/world/area_dgb/dgb_14/dgb_14.h @@ -2,11 +2,15 @@ /// @brief Tubba's Castle - Stairs to Third Floor #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_14_shape.h" +#include "mapfs/dgb_14_hit.h" + #define NAMESPACE dgb_14 -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); diff --git a/src/world/area_dgb/dgb_14/dgb_14_0_header.c b/src/world/area_dgb/dgb_14/dgb_14_0_header.c new file mode 100644 index 0000000000..c242a6315a --- /dev/null +++ b/src/world/area_dgb/dgb_14/dgb_14_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_14.h" + +EntryList N(Entrances) = { + [dgb_14_ENTRY_0] { 575.0, 0.0, 180.0, 270.0 }, + [dgb_14_ENTRY_1] { 575.0, 210.0, 180.0, 270.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_14 }, +}; diff --git a/src/world/area_dgb/dgb_14/dgb_14_1_music.c b/src/world/area_dgb/dgb_14/dgb_14_1_music.c new file mode 100644 index 0000000000..8a3f5291f9 --- /dev/null +++ b/src/world/area_dgb/dgb_14/dgb_14_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_14.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_14/dgb_14_2_main.c b/src/world/area_dgb/dgb_14/dgb_14_2_main.c new file mode 100644 index 0000000000..71d071f649 --- /dev/null +++ b/src/world/area_dgb/dgb_14/dgb_14_2_main.c @@ -0,0 +1,71 @@ +#include "dgb_14.h" + +EvtScript N(EVS_ExitDoors_dgb_03_3) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_14_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilittse) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_03"), dgb_03_ENTRY_3) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_15_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_14_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o31) + EVT_SET(LVar3, MODEL_o30) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_15"), dgb_15_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_14_ENTRY_0) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_14_ENTRY_1) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_SET(LVar2, MODEL_o31) + EVT_SET(LVar3, MODEL_o30) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_IF_EQ(AF_DGB_01, TRUE) + EVT_WAIT(5) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001D) + EVT_WAIT(20) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) + EVT_END_IF + EVT_CALL(DisablePlayerInput, FALSE) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_03_3)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittse, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_15_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_14/dgb_14_3_entity.c b/src/world/area_dgb/dgb_14/dgb_14_3_entity.c new file mode 100644 index 0000000000..2d32fddcb3 --- /dev/null +++ b/src/world/area_dgb/dgb_14/dgb_14_3_entity.c @@ -0,0 +1,9 @@ +#include "dgb_14.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeEntity, EVT_PTR(Entity_YellowBlock), 500, 60, 75, 0, ITEM_MAPLE_SYRUP, MAKE_ENTITY_END) + EVT_CALL(AssignBlockFlag, GF_DGB14_ItemBlock_MapleSyrup) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_15/C4F510.c b/src/world/area_dgb/dgb_15/C4F510.c deleted file mode 100644 index 9ec0d574b9..0000000000 --- a/src/world/area_dgb/dgb_15/C4F510.c +++ /dev/null @@ -1,476 +0,0 @@ -#include "dgb_15.h" -#include "message_ids.h" -#include "sprite/npc/WorldTubba.h" -#include "entity.h" - -enum { - NPC_WORLD_TUBBA, -}; - -EntryList N(entryList) = { - { -1290.0f, 0.0f, 180.0f, 90.0f }, - { 125.0f, 0.0f, 180.0f, 270.0f }, - { 0.0f, 0.0f, 88.0f, 180.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_15 }, -}; - -EvtScript N(802418E0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_IF_EQ(GB_ARN_Tubba_MapID, 15) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8) - EVT_ELSE - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_IF - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_19B4)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -s32 N(itemList_802419C0)[] = { - ITEM_TUBBA_CASTLE_KEY, - ITEM_NONE, -}; - -EvtScript N(exitDoubleDoor_802419C8) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 19) - EVT_SET(LVar2, 12) - EVT_SET(LVar3, 14) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_14"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_80241A7C) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 10) - EVT_SET(LVar2, 19) - EVT_SET(LVar3, 17) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_17"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitSingleDoor_80241B30) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 2) - EVT_SET(LVar1, 6) - EVT_SET(LVar2, 22) - EVT_SET(LVar3, 1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_16"), 0) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -const s32 N(pad_XXXX)[] = { 0, 0 }; - -EvtScript N(80241BE4) = { - EVT_BIND_TRIGGER(N(exitDoubleDoor_802419C8), TRIGGER_WALL_PRESS_A, 19, 1, 0) - EVT_BIND_TRIGGER(N(exitSingleDoor_80241B30), TRIGGER_WALL_PRESS_A, 6, 1, 0) - EVT_IF_EQ(GF_DGB15_UnlockedUpperFoyer, 0) - EVT_BIND_PADLOCK(N(80242AD0), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(itemList_802419C0)), 0, 1) - EVT_ELSE - EVT_BIND_TRIGGER(N(exitDoubleDoor_80241A7C), TRIGGER_WALL_PRESS_A, 10, 1, 0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(enterSingleDoor_80241C88) = { - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 12) - EVT_SET(LVar3, 14) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar2, 19) - EVT_SET(LVar3, 17) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(2) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar2, 22) - EVT_SET(LVar3, 1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_EXEC(N(80241BE4)) - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_SET(AreaFlag(1), 0) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_IF_EQ(GF_DGB16_EscapedFromTubba, 0) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_80242AB0))) - EVT_END_IF - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(802418E0)) - EVT_EXEC(N(enterSingleDoor_80241C88)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1E94)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(80241EA0) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(unk_missing_80241F5C)[] = { - 0x00390000, 0x00390002, 0x00390003, 0x00390004, 0x0039000C, 0x00390007, 0x00390008, 0x00390011, - 0x00390012, 0xFFFFFFFF, 0x00390000, 0xFFFFFFFF, -}; - -s32 N(D_80241F8C_C5149C)[] = { - 0x3FC00000, 0x00000078, 0x0000001E, 0x42AA0000, 0x42820000, 0x00000005, 0x40600000, 0x0000005A, - 0x0000000C, 0x42DC0000, 0x42B40000, 0x00000003, -}; - -EvtScript N(80241FBC) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 5) - EVT_CALL(SetSelfVar, 2, 8) - EVT_CALL(SetSelfVar, 3, 12) - EVT_CALL(N(WanderMeleeAI_Main), EVT_PTR(N(D_80241F8C_C5149C))) - EVT_RETURN - EVT_END -}; - -s32 N(unk_missing_8024202C)[] = { - 0x00000000, 0x00240022, 0x00000000, 0x00000000, (s32) N(80241FBC), (s32) EnemyNpcHit, 0x00000000, (s32) EnemyNpcDefeat, - 0x00000000, 0x00000000, 0x000D0000, -}; - -EvtScript N(80242058) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -s32 N(unk_missing_80242100)[] = { - 0x00000000, 0x000E0012, 0x00000000, 0x00000000, (s32) N(80242058), 0x00000000, 0x00000000, (s32) N(80241EA0), - 0x00000000, 0x00000000, 0x000D0008, -}; - -NpcSettings N(npcSettings_8024212C) = { - .height = 90, - .radius = 65, - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -s32 N(unk_missing_80242158)[] = { - 0x00000000, 0x00180018, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, - 0x00000000, 0x00000000, 0x000D0000, -}; - -EvtScript N(80242184) = { - EVT_LOOP(0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(GetNpcPos, 0, LVar1, LVar2, LVar3) - EVT_SUB(LVar1, LVar0) - EVT_IF_LT(LVar1, 150) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_SET(GF_DGB15_CloseCallWithTubba, 1) - EVT_SET(AreaFlag(1), 1) - EVT_RETURN - EVT_END -}; - -EvtScript N(idle_80242238) = { - EVT_LOOP(0) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_IF_GE(LVar0, -1150) - EVT_BREAK_LOOP - EVT_END_IF - EVT_WAIT(1) - EVT_END_LOOP - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8) - EVT_WAIT(15) - EVT_THREAD - EVT_CALL(UseSettingsFrom, 0, -50, 0, 180) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(2.0)) - EVT_CALL(SetPanTarget, 0, -50, 0, 180) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_END_THREAD - EVT_SET(GB_ARN_Tubba_MapID, 15) - EVT_CALL(SetNpcPos, NPC_SELF, 0, 0, 88) - EVT_CALL(SetNpcAnimation, 0, ANIM_WorldTubba_Anim09) - EVT_CALL(SetNpcYaw, NPC_SELF, 270) - EVT_CALL(NpcMoveTo, NPC_SELF, -53, 180, 60) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8) - EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim06) - EVT_WAIT(15) - EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldTubba_Anim10, ANIM_WorldTubba_Anim06, 0, MSG_CH3_00F3) - EVT_WAIT(15) - EVT_THREAD - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(2.0)) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_END_THREAD - EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(npcAI_8024274C))) - EVT_RETURN - EVT_END -}; - -EvtScript N(802424E8) = { - EVT_CALL(GetNpcPos, NPC_SELF, LVar6, LVar7, LVar8) - EVT_LOOP(0) - EVT_WAIT(1) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) - EVT_IF_NE(LVar3, LVar6) - EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 65538) - EVT_CALL(GetDist2D, LVarA, LVar0, LVar2, LVar3, LVar5) - EVT_SWITCH(LVarA) - EVT_CASE_LT(200) - EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(1.6)) - EVT_WAIT(5) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(0.8)) - EVT_END_THREAD - EVT_CASE_LT(300) - EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.6)) - EVT_WAIT(5) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(0.3)) - EVT_END_THREAD - EVT_CASE_GE(300) - EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.1)) - EVT_WAIT(5) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(0.05)) - EVT_END_THREAD - EVT_END_SWITCH - EVT_WAIT(12) - EVT_ELSE - EVT_END_IF - EVT_CALL(GetNpcPos, NPC_SELF, LVar6, LVar7, LVar8) - EVT_END_LOOP - EVT_RETURN - EVT_END -}; - -MobileAISettings N(npcAISettings_8024271C) = { - .moveSpeed = 3.0f, - .moveTime = 30, - .waitTime = 30, - .alertRadius = 150.0f, - .alertOffsetDist = 80.0f, - .playerSearchInterval = 1, - .chaseSpeed = 3.5f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 2, - .chaseRadius = 160.0f, - .chaseOffsetDist = 80.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_8024274C) = { - EVT_EXEC(N(80242184)) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_GRAVITY)), TRUE) - EVT_CALL(SetNpcAnimation, 0, ANIM_WorldTubba_Anim0C) - EVT_EXEC(N(802424E8)) - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAISettings_8024271C))) - EVT_RETURN - EVT_END -}; - -extern const char N(dgb_14_name_hack)[]; - -EvtScript N(defeat_802427B0) = { - EVT_CALL(N(UnkFunc1)) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_14_name_hack)), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(init_802427EC) = { - EVT_IF_NE(GB_StoryProgress, -32) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_RETURN - EVT_END_IF - EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) - EVT_IF_NE(GB_ARN_Tubba_MapID, 15) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80242238))) - EVT_ELSE - EVT_CALL(SetNpcPos, NPC_SELF, -310, 0, 180) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_8024274C))) - EVT_END_IF - EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802427B0))) - EVT_RETURN - EVT_END -}; - -StaticNpc N(npcGroup_802428C0) = { - .id = NPC_WORLD_TUBBA, - .settings = &N(npcSettings_8024212C), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_800 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000, - .init = &N(init_802427EC), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 7, -500, 0, 200, -700, 0, 200, -900, 0, 200, -1000, 0, 200, -800, 0, 200, -600, 0, 200, -400, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32767, -500, 0, 200, 1000, 250, 1, 1 }}, - .animations = { - ANIM_WorldTubba_Anim06, - ANIM_WorldTubba_Anim09, - ANIM_WorldTubba_Anim0C, - ANIM_WorldTubba_Anim0C, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - ANIM_WorldTubba_Anim00, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, -}; - -NpcGroupList N(npcGroupList_80242AB0) = { - NPC_GROUP(N(npcGroup_802428C0), 0x0F04, 0x00), - {}, -}; - -static s32 N(pad_2AC8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(80242AD0) = { - EVT_SET_GROUP(EVT_GROUP_00) - EVT_SUSPEND_GROUP(EVT_GROUP_01) - EVT_CALL(ShowKeyChoicePopup) - EVT_IF_EQ(LVar0, 0) - EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) - EVT_CALL(CloseChoicePopup) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_RETURN - EVT_END_IF - EVT_IF_EQ(LVar0, -1) - EVT_CALL(CloseChoicePopup) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_RETURN - EVT_END_IF - EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) - EVT_CALL(RemoveKeyItemAt, LVar0) - EVT_CALL(CloseChoicePopup) - EVT_SET(GF_DGB15_UnlockedUpperFoyer, 1) - EVT_CALL(N(GetEntityPosition), MapVar(0), LVar0, LVar1, LVar2) - EVT_CALL(PlaySoundAt, 0x269, 0, LVar0, LVar1, LVar2) - EVT_SET(LVar0, MapVar(0)) - EVT_CALL(N(RemovePadlock)) - EVT_RESUME_GROUP(EVT_GROUP_01) - EVT_UNBIND - EVT_RETURN - EVT_END -}; - -EvtScript N(80242C38) = { - EVT_BIND_TRIGGER(N(exitDoubleDoor_80241A7C), TRIGGER_WALL_PRESS_A, 10, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_IF_EQ(GF_DGB15_UnlockedUpperFoyer, 0) - EVT_CALL(MakeEntity, EVT_PTR(Entity_Padlock), 130, 8, 175, -80, MAKE_ENTITY_END) - EVT_CALL(AssignScript, EVT_PTR(N(80242C38))) - EVT_SET(MapVar(0), LVar0) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" - -#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" - -#include "world/common/todo/UnkFunc1.inc.c" - -const char N(dgb_14_name_hack)[] = "dgb_14"; diff --git a/src/world/area_dgb/dgb_15/C50CA0.c b/src/world/area_dgb/dgb_15/C50CA0.c deleted file mode 100644 index 892eb3bd12..0000000000 --- a/src/world/area_dgb/dgb_15/C50CA0.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "dgb_15.h" - -#include "world/common/todo/GetEntityPosition.inc.c" - -#include "world/common/todo/RemovePadlock.inc.c" diff --git a/src/world/area_dgb/dgb_15/dgb_15.h b/src/world/area_dgb/dgb_15/dgb_15.h index 56496ed905..fc110223c6 100644 --- a/src/world/area_dgb/dgb_15/dgb_15.h +++ b/src/world/area_dgb/dgb_15/dgb_15.h @@ -2,22 +2,28 @@ /// @brief Tubba's Castle - West Hall (3F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_15_shape.h" +#include "mapfs/dgb_15_hit.h" + +#include "sprite/npc/WorldTubba.h" + +enum { + NPC_Tubba = 0, +}; + +enum { + MV_PadlockEntityID = MapVar(0), +}; + #define NAMESPACE dgb_15 -ApiStatus N(GetEntityPosition)(Evt* script, s32 isInitialCall); -ApiStatus N(RemovePadlock)(Evt* script, s32 isInitialCall); -ApiStatus N(UnkFunc1)(Evt* script, s32 isInitialCall); -ApiStatus N(WanderMeleeAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(PatrolNoAttackAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_80242AB0); -extern EvtScript N(80242AD0); -extern EvtScript N(main); -extern EvtScript N(makeEntities); -extern EvtScript N(npcAI_8024274C); -extern EvtScript N(unk_80241F8C); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_UnlockPrompt_Door); +extern EvtScript N(EVS_ExitDoors_dgb_17_0); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_15/dgb_15_0_header.c b/src/world/area_dgb/dgb_15/dgb_15_0_header.c new file mode 100644 index 0000000000..cde03dc074 --- /dev/null +++ b/src/world/area_dgb/dgb_15/dgb_15_0_header.c @@ -0,0 +1,14 @@ +#include "dgb_15.h" + +EntryList N(Entrances) = { + [dgb_15_ENTRY_0] { -1290.0, 0.0, 180.0, 90.0 }, + [dgb_15_ENTRY_1] { 125.0, 0.0, 180.0, 270.0 }, + [dgb_15_ENTRY_2] { 0.0, 0.0, 88.0, 180.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_15 }, +}; diff --git a/src/world/area_dgb/dgb_15/dgb_15_1_music.c b/src/world/area_dgb/dgb_15/dgb_15_1_music.c new file mode 100644 index 0000000000..f60884b587 --- /dev/null +++ b/src/world/area_dgb/dgb_15/dgb_15_1_music.c @@ -0,0 +1,18 @@ +#include "dgb_15.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_IF_EQ(GB_ARN_Tubba_MapID, 15) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8) + EVT_ELSE + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_IF + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_15/dgb_15_2_main.c b/src/world/area_dgb/dgb_15/dgb_15_2_main.c new file mode 100644 index 0000000000..644e4d3759 --- /dev/null +++ b/src/world/area_dgb/dgb_15/dgb_15_2_main.c @@ -0,0 +1,107 @@ +#include "dgb_15.h" + +s32 N(KeyList)[] = { + ITEM_TUBBA_CASTLE_KEY, + ITEM_NONE +}; + +EvtScript N(EVS_ExitDoors_dgb_14_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_15_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o135) + EVT_SET(LVar3, MODEL_o136) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_14"), dgb_14_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_17_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_15_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilitte) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_17"), dgb_17_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_16_0) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_15_ENTRY_2) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o123) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_16"), dgb_16_ENTRY_0) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +MAP_RODATA_PAD(1, strings); + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_14_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_16_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_IF_EQ(GF_DGB15_UnlockedUpperFoyer, FALSE) + EVT_BIND_PADLOCK(EVT_PTR(N(EVS_UnlockPrompt_Door)), TRIGGER_WALL_PRESS_A, EVT_ENTITY_INDEX(0), EVT_PTR(N(KeyList)), 0, 1) + EVT_ELSE + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_17_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitte, 1, 0) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_15_ENTRY_0) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o135) + EVT_SET(LVar3, MODEL_o136) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_15_ENTRY_1) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar2, MODEL_o102) + EVT_SET(LVar3, MODEL_o101) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_15_ENTRY_2) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar2, MODEL_o123) + EVT_SET(LVar3, DOOR_SWING_OUT) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SET(AF_DGB_01, FALSE) + EVT_SETUP_CAMERA_NO_LEAD() + EVT_IF_EQ(GF_DGB16_EscapedFromTubba, FALSE) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_15/dgb_15_3_npc.c b/src/world/area_dgb/dgb_15/dgb_15_3_npc.c new file mode 100644 index 0000000000..dc14672988 --- /dev/null +++ b/src/world/area_dgb/dgb_15/dgb_15_3_npc.c @@ -0,0 +1,199 @@ +#include "dgb_15.h" + +#define INCLUDE_CLUBBA_WANDER +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +#include "world/common/enemy/complete/TubbaBlubba.inc.c" + +NpcSettings N(NpcSettings_Yakkey) = { + .height = 24, + .radius = 24, + .level = 13, +}; + +extern EvtScript N(EVS_NpcAI_Tubba); + +EvtScript N(EVS_WaitForCloseCall) = { + EVT_LOOP(0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(GetNpcPos, NPC_Tubba, LVar1, LVar2, LVar3) + EVT_SUB(LVar1, LVar0) + EVT_IF_LT(LVar1, 150) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_SET(GF_DGB15_CloseCallWithTubba, TRUE) + EVT_SET(AF_DGB_01, TRUE) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcIdle_Tubba) = { + EVT_LOOP(0) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_IF_GE(LVar0, -1150) + EVT_BREAK_LOOP + EVT_END_IF + EVT_WAIT(1) + EVT_END_LOOP + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8) + EVT_WAIT(15) + EVT_THREAD + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -50, 0, 180) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, -50, 0, 180) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_END_THREAD + EVT_SET(GB_ARN_Tubba_MapID, 15) + EVT_CALL(SetNpcPos, NPC_SELF, 0, 0, 88) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim09) + EVT_CALL(SetNpcYaw, NPC_SELF, 270) + EVT_CALL(NpcMoveTo, NPC_SELF, -53, 180, 60) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_BLUBBA_THEME, 0, 8) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim06) + EVT_WAIT(15) + EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldTubba_Anim10, ANIM_WorldTubba_Anim06, 0, MSG_CH3_00F3) + EVT_WAIT(15) + EVT_THREAD + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_CALL(DisablePlayerInput, FALSE) + EVT_END_THREAD + EVT_CALL(BindNpcAI, NPC_SELF, EVT_PTR(N(EVS_NpcAI_Tubba))) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_PlayFootstepFX) = { + EVT_CALL(GetNpcPos, NPC_SELF, LVar6, LVar7, LVar8) + EVT_LOOP(0) + EVT_WAIT(1) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) + EVT_IF_NE(LVar3, LVar6) + EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, SOUND_PARAM_MUTE | SOUND_SPACE_FULL) + EVT_CALL(GetDist2D, LVarA, LVar0, LVar2, LVar3, LVar5) + EVT_SWITCH(LVarA) + EVT_CASE_LT(200) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.6)) + EVT_WAIT(5) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(0.8)) + EVT_END_THREAD + EVT_CASE_LT(300) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.6)) + EVT_WAIT(5) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(0.3)) + EVT_END_THREAD + EVT_CASE_GE(300) + EVT_THREAD + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.1)) + EVT_WAIT(5) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(0.05)) + EVT_END_THREAD + EVT_END_SWITCH + EVT_WAIT(12) + EVT_ELSE + EVT_END_IF + EVT_CALL(GetNpcPos, NPC_SELF, LVar6, LVar7, LVar8) + EVT_END_LOOP + EVT_RETURN + EVT_END +}; + +MobileAISettings N(AISettings_Tubba) = { + .moveSpeed = 3.0f, + .moveTime = 30, + .waitTime = 30, + .alertRadius = 150.0f, + .alertOffsetDist = 80.0f, + .playerSearchInterval = 1, + .chaseSpeed = 3.5f, + .chaseTurnRate = 180, + .chaseUpdateInterval = 2, + .chaseRadius = 160.0f, + .chaseOffsetDist = 80.0f, + .unk_AI_2C = 1, +}; + +#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" + +EvtScript N(EVS_NpcAI_Tubba) = { + EVT_EXEC(N(EVS_WaitForCloseCall)) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_GRAVITY, TRUE) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0C) + EVT_EXEC(N(EVS_PlayFootstepFX)) + EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(AISettings_Tubba))) + EVT_RETURN + EVT_END +}; + +#include "world/common/todo/UnkFunc1.inc.c" + +EvtScript N(EVS_NpcDefeat_Tubba) = { + EVT_CALL(N(UnkFunc1)) + EVT_CALL(GotoMap, EVT_PTR("dgb_14"), dgb_14_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_NpcInit_Tubba) = { + EVT_IF_NE(GB_StoryProgress, STORY_CH3_ARRIVED_AT_TUBBAS_MANOR) + EVT_CALL(RemoveNpc, NPC_SELF) + EVT_RETURN + EVT_END_IF + EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) + EVT_IF_NE(GB_ARN_Tubba_MapID, 15) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Tubba))) + EVT_ELSE + EVT_CALL(SetNpcPos, NPC_SELF, -310, 0, 180) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcAI_Tubba))) + EVT_END_IF + EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Tubba))) + EVT_RETURN + EVT_END +}; + +StaticNpc N(NpcData_Tubba) = { + .id = NPC_Tubba, + .settings = &N(NpcSettings_TubbaBlubba), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_800 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000, + .init = &N(EVS_NpcInit_Tubba), + .drops = CLUBBA_DROPS, + .territory = { + .patrol = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .numPoints = 7, + .points = { + { -500, 0, 200 }, + { -700, 0, 200 }, + { -900, 0, 200 }, + { -1000, 0, 200 }, + { -800, 0, 200 }, + { -600, 0, 200 }, + { -400, 0, 200 }, + }, + .detectShape = SHAPE_RECT, + .detectPos = { -500, 0, 200 }, + .detectSize = { 1000, 250 }, + } + }, + .animations = TUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Tubba), BTL_DGB_FORMATION_04, BTL_DGB_STAGE_00), + {} +}; diff --git a/src/world/area_dgb/dgb_15/dgb_15_4_entity.c b/src/world/area_dgb/dgb_15/dgb_15_4_entity.c new file mode 100644 index 0000000000..fabcb3c787 --- /dev/null +++ b/src/world/area_dgb/dgb_15/dgb_15_4_entity.c @@ -0,0 +1,50 @@ +#include "dgb_15.h" +#include "entity.h" + +#include "world/common/todo/GetEntityPosition.inc.c" +#include "world/common/todo/RemovePadlock.inc.c" + +EvtScript N(EVS_UnlockPrompt_Door) = { + EVT_SET_GROUP(EVT_GROUP_00) + EVT_SUSPEND_GROUP(EVT_GROUP_01) + EVT_CALL(ShowKeyChoicePopup) + EVT_IF_EQ(LVar0, 0) + EVT_CALL(ShowMessageAtScreenPos, MSG_Menus_00D8, 160, 40) + EVT_CALL(CloseChoicePopup) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_RETURN + EVT_END_IF + EVT_IF_EQ(LVar0, -1) + EVT_CALL(CloseChoicePopup) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_RETURN + EVT_END_IF + EVT_CALL(FindKeyItem, ITEM_TUBBA_CASTLE_KEY, LVar0) + EVT_CALL(RemoveKeyItemAt, LVar0) + EVT_CALL(CloseChoicePopup) + EVT_SET(GF_DGB15_UnlockedUpperFoyer, TRUE) + EVT_CALL(N(GetEntityPosition), MV_PadlockEntityID, LVar0, LVar1, LVar2) + EVT_CALL(PlaySoundAt, SOUND_269, 0, LVar0, LVar1, LVar2) + EVT_SET(LVar0, MV_PadlockEntityID) + EVT_CALL(N(RemovePadlock)) + EVT_RESUME_GROUP(EVT_GROUP_01) + EVT_UNBIND + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_OpenLockedDoor) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_17_0)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitte, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_MakeEntities) = { + EVT_IF_EQ(GF_DGB15_UnlockedUpperFoyer, FALSE) + EVT_CALL(MakeEntity, EVT_PTR(Entity_Padlock), 130, 8, 175, -80, MAKE_ENTITY_END) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenLockedDoor))) + EVT_SET(MV_PadlockEntityID, LVar0) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_16/C52540.c b/src/world/area_dgb/dgb_16/C52540.c deleted file mode 100644 index c2de8c0ea0..0000000000 --- a/src/world/area_dgb/dgb_16/C52540.c +++ /dev/null @@ -1,649 +0,0 @@ -#include "dgb_16.h" -#include "message_ids.h" -#include "sprite/npc/WorldClubba.h" - -enum { - NPC_WORLD_CLUBBA0, - NPC_WORLD_CLUBBA1, - NPC_WORLD_CLUBBA2 = 5, - NPC_WORLD_CLUBBA3, - NPC_WORLD_CLUBBA4 = 10, - NPC_WORLD_CLUBBA5, - NPC_WORLD_CLUBBA6 = 15, - NPC_WORLD_CLUBBA7, - NPC_WORLD_CLUBBA8 = 20, - NPC_WORLD_CLUBBA9, - NPC_WORLD_CLUBBA10 = 25, - NPC_WORLD_CLUBBA11, -}; - -EntryList N(entryList) = { - { 450.0f, 0.0f, -40.0f, 0.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_16 }, -}; - -EvtScript N(80241480) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1518)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitSingleDoor_80241520) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 0) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 6) - EVT_SET(LVar2, 16) - EVT_SET(LVar3, -1) - EVT_EXEC(ExitSingleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 2) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -const char N(pad_XXX)[] = { 0, 0 }; - -EvtScript N(enterSingleDoor_802415D4) = { - EVT_CALL(UseDoorSounds, 0) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_IF_EQ(GF_DGB16_EscapedFromTubba, 0) - EVT_SET(GF_DGB16_EscapedFromTubba, 1) - EVT_SET(GB_ARN_Tubba_MapID, 18) - EVT_END_IF - EVT_SET(LVar2, 16) - EVT_SET(LVar3, -1) - EVT_EXEC_WAIT(EnterSingleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_IF_LT(GB_StoryProgress, -15) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_8024318C))) - EVT_END_IF - EVT_EXEC_WAIT(N(80241780)) - EVT_EXEC(N(80241480)) - EVT_BIND_TRIGGER(N(exitSingleDoor_80241520), TRIGGER_WALL_PRESS_A, 6, 1, 0) - EVT_EXEC(N(enterSingleDoor_802415D4)) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_1774)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(80241780) = { - EVT_CALL(MakeItemEntity, ITEM_TUBBA_CASTLE_KEY, -235, 25, -165, 17, GF_DGB16_Item_CastleKey1) - EVT_RETURN - EVT_END -}; - -static s32 N(pad_17B4)[] = { - 0x00000000, 0x00000000, 0x00000000, -}; - -EvtScript N(802417C0) = { - EVT_CALL(GetBattleOutcome, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_CASE_EQ(2) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_CALL(OnPlayerFled, 1) - EVT_CASE_EQ(3) - EVT_CALL(SetEnemyFlagBits, -1, ENEMY_FLAGS_FLED, 1) - EVT_CALL(RemoveNpc, NPC_SELF) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -s32 N(extraAnimationList_8024187C)[] = { - ANIM_WorldClubba_Anim00, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_LIST_END, -}; - -s32 N(extraAnimationList_802418A4)[] = { - ANIM_WorldClubba_Anim00, - ANIM_LIST_END, -}; - -MobileAISettings N(npcAISettings_802418AC) = { - .moveSpeed = 1.0f, - .moveTime = 120, - .waitTime = 30, - .alertRadius = 100.0f, - .alertOffsetDist = 40.0f, - .playerSearchInterval = 10, - .chaseSpeed = 3.5f, - .chaseTurnRate= 90, - .chaseUpdateInterval = 15, - .chaseRadius = 200.0f, - .chaseOffsetDist = 160.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(npcAI_802418DC) = { - EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(SetSelfVar, 1, 10) - EVT_CALL(SetSelfVar, 2, 14) - EVT_CALL(SetSelfVar, 3, 18) - EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(npcAISettings_802418AC))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_8024194C) = { - .height = 36, - .radius = 34, - .ai = &N(npcAI_802418DC), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -EvtScript N(npcAI_80241978) = { - EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) - EVT_CALL(SetSelfVar, 0, 4) - EVT_CALL(SetSelfVar, 1, 32) - EVT_CALL(SetSelfVar, 2, 50) - EVT_CALL(SetSelfVar, 3, 32) - EVT_CALL(SetSelfVar, 4, 3) - EVT_CALL(SetSelfVar, 15, 8389) - EVT_CALL(N(MeleeHitbox_Main)) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_80241A20) = { - .height = 14, - .radius = 18, - .ai = &N(npcAI_80241978), - .onDefeat = &N(802417C0), - .level = 13, - .actionFlags = 8, -}; - -StaticNpc N(npcGroup_80241A4C)[] = { - { - .id = NPC_WORLD_CLUBBA0, - .settings = &N(npcSettings_8024194C), - .pos = { -70.0f, 0.0f, -100.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { -70, 0, -100, 40, 0, -32767, 0, 150, 0, -175, 430, 92, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - .extraAnimations = N(extraAnimationList_8024187C), - }, - { - .id = NPC_WORLD_CLUBBA1, - .settings = &N(npcSettings_80241A20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418A4), - }, -}; - -StaticNpc N(npcGroup_80241E2C)[] = { - { - .id = NPC_WORLD_CLUBBA2, - .settings = &N(npcSettings_8024194C), - .pos = { 0.0f, 0.0f, -235.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 0, 0, -235, 40, 0, -32767, 0, 150, 0, -175, 430, 92, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA3, - .settings = &N(npcSettings_80241A20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418A4), - }, -}; - -StaticNpc N(npcGroup_8024220C)[] = { - { - .id = NPC_WORLD_CLUBBA4, - .settings = &N(npcSettings_8024194C), - .pos = { 70.0f, 0.0f, -100.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 70, 0, -100, 40, 0, -32767, 0, 150, 0, -175, 430, 92, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA5, - .settings = &N(npcSettings_80241A20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418A4), - }, -}; - -StaticNpc N(npcGroup_802425EC)[] = { - { - .id = NPC_WORLD_CLUBBA6, - .settings = &N(npcSettings_8024194C), - .pos = { 140.0f, 0.0f, -235.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 140, 0, -235, 40, 0, -32767, 0, 150, 0, -175, 430, 92, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA7, - .settings = &N(npcSettings_80241A20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418A4), - }, -}; - -StaticNpc N(npcGroup_802429CC)[] = { - { - .id = NPC_WORLD_CLUBBA8, - .settings = &N(npcSettings_8024194C), - .pos = { 210.0f, 0.0f, -100.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 210, 0, -100, 40, 0, -32767, 0, 150, 0, -175, 430, 92, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA9, - .settings = &N(npcSettings_80241A20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418A4), - }, -}; - -StaticNpc N(npcGroup_80242DAC)[] = { - { - .id = NPC_WORLD_CLUBBA10, - .settings = &N(npcSettings_8024194C), - .pos = { 280.0f, 0.0f, -235.0f }, - .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, - .yaw = 90, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .itemDropChance = 5, - .itemDrops = { - { ITEM_SUPER_SHROOM, 10, 0 }, - }, - .heartDrops = STANDARD_HEART_DROPS(3), - .flowerDrops = STANDARD_FLOWER_DROPS(2), - .minCoinBonus = 2, - .maxCoinBonus = 3, - }, - .territory = { .temp = { 280, 0, -235, 40, 0, -32767, 0, 150, 0, -175, 430, 92, 1, 1 }}, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, - }, - { - .id = NPC_WORLD_CLUBBA11, - .settings = &N(npcSettings_80241A20), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, - .yaw = 0, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim03, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim04, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim0C, - ANIM_WorldClubba_Anim11, - ANIM_WorldClubba_Anim12, - ANIM_WorldClubba_Anim07, - ANIM_WorldClubba_Anim08, - ANIM_WorldClubba_Anim01, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - ANIM_WorldClubba_Anim02, - }, - .extraAnimations = N(extraAnimationList_802418A4), - }, -}; - -NpcGroupList N(npcGroupList_8024318C) = { - NPC_GROUP(N(npcGroup_80241A4C), 0x0F03, 0x02), - NPC_GROUP(N(npcGroup_80241E2C), 0x0F00, 0x02), - NPC_GROUP(N(npcGroup_8024220C), 0x0F00, 0x02), - NPC_GROUP(N(npcGroup_802425EC), 0x0F00, 0x02), - NPC_GROUP(N(npcGroup_802429CC), 0x0F01, 0x02), - NPC_GROUP(N(npcGroup_80242DAC), 0x0F01, 0x02), - {}, -}; - -#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" - -#include "world/common/enemy/ai/WanderMeleeAI.inc.c" diff --git a/src/world/area_dgb/dgb_16/dgb_16.h b/src/world/area_dgb/dgb_16/dgb_16.h index 101e6a9510..8b46c508f9 100644 --- a/src/world/area_dgb/dgb_16/dgb_16.h +++ b/src/world/area_dgb/dgb_16/dgb_16.h @@ -2,15 +2,31 @@ /// @brief Tubba's Castle - Sleeping Clubbas Room (3F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_16_shape.h" +#include "mapfs/dgb_16_hit.h" + +enum { + NPC_Clubba_01 = 0, + NPC_Clubba_01_Hitbox = 1, + NPC_Clubba_02 = 5, + NPC_Clubba_02_Hitbox = 6, + NPC_Clubba_03 = 10, + NPC_Clubba_03_Hitbox = 11, + NPC_Clubba_04 = 15, + NPC_Clubba_04_Hitbox = 16, + NPC_Clubba_05 = 20, + NPC_Clubba_05_Hitbox = 21, + NPC_Clubba_06 = 25, + NPC_Clubba_06_Hitbox = 26, +}; + #define NAMESPACE dgb_16 -ApiStatus N(ClubbaNappingAI_Main)(Evt* script, s32 isInitialCall); -ApiStatus N(MeleeHitbox_Main)(Evt* script, s32 isInitialCall); - -extern NpcGroupList N(npcGroupList_8024318C); -extern EvtScript N(80241780); -extern EvtScript N(main); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_16/dgb_16_0_header.c b/src/world/area_dgb/dgb_16/dgb_16_0_header.c new file mode 100644 index 0000000000..2757cd71ac --- /dev/null +++ b/src/world/area_dgb/dgb_16/dgb_16_0_header.c @@ -0,0 +1,12 @@ +#include "dgb_16.h" + +EntryList N(Entrances) = { + [dgb_16_ENTRY_0] { 450.0, 0.0, -40.0, 0.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_16 }, +}; diff --git a/src/world/area_dgb/dgb_16/dgb_16_1_music.c b/src/world/area_dgb/dgb_16/dgb_16_1_music.c new file mode 100644 index 0000000000..a6e4b46cad --- /dev/null +++ b/src/world/area_dgb/dgb_16/dgb_16_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_16.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_16/dgb_16_2_main.c b/src/world/area_dgb/dgb_16/dgb_16_2_main.c new file mode 100644 index 0000000000..ca88c91af6 --- /dev/null +++ b/src/world/area_dgb/dgb_16/dgb_16_2_main.c @@ -0,0 +1,51 @@ +#include "dgb_16.h" + +EvtScript N(EVS_ExitDoors_dgb_15_2) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_SET(LVar0, dgb_16_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittne) + EVT_SET(LVar2, MODEL_o123) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC(ExitSingleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_15"), dgb_15_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +MAP_RODATA_PAD(1, strings); + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_BASIC) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_16_ENTRY_0) + EVT_IF_EQ(GF_DGB16_EscapedFromTubba, FALSE) + EVT_SET(GF_DGB16_EscapedFromTubba, TRUE) + EVT_SET(GB_ARN_Tubba_MapID, 18) + EVT_END_IF + EVT_SET(LVar2, MODEL_o123) + EVT_SET(LVar3, DOOR_SWING_IN) + EVT_EXEC_WAIT(EnterSingleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_DEFAULT() + EVT_IF_LT(GB_StoryProgress, STORY_CH3_STAR_SPIRIT_RESCUED) + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_END_IF + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_15_2)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittne, 1, 0) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_16/dgb_16_3_entity.c b/src/world/area_dgb/dgb_16/dgb_16_3_entity.c new file mode 100644 index 0000000000..45b219a0cf --- /dev/null +++ b/src/world/area_dgb/dgb_16/dgb_16_3_entity.c @@ -0,0 +1,9 @@ + +#include "dgb_16.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeItemEntity, ITEM_TUBBA_CASTLE_KEY, -235, 25, -165, ITEM_SPAWN_MODE_FIXED_NEVER_VANISH, GF_DGB16_Item_CastleKey1) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_16/dgb_16_4_npc.c b/src/world/area_dgb/dgb_16/dgb_16_4_npc.c new file mode 100644 index 0000000000..eecf29fa58 --- /dev/null +++ b/src/world/area_dgb/dgb_16/dgb_16_4_npc.c @@ -0,0 +1,171 @@ +#include "dgb_16.h" + +#define INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/complete/Clubba_Multi.inc.c" + +StaticNpc N(NpcData_Clubba_01)[] = { + { + .id = NPC_Clubba_01, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { -70.0f, 0.0f, -100.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -70, 0, -100 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, -175 }, + .detectSize = { 430, 92 }, + } + }, + .animations = CLUBBA_ANIMS, + .extraAnimations = N(ExtraAnims_Clubba), + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_01_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_02)[] = { + { + .id = NPC_Clubba_02, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 0.0f, 0.0f, -235.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 0, 0, -235 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, -175 }, + .detectSize = { 430, 92 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_02_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_03)[] = { + { + .id = NPC_Clubba_03, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 70.0f, 0.0f, -100.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 70, 0, -100 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, -175 }, + .detectSize = { 430, 92 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_03_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_04)[] = { + { + .id = NPC_Clubba_04, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 140.0f, 0.0f, -235.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 140, 0, -235 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, -175 }, + .detectSize = { 430, 92 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_04_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_05)[] = { + { + .id = NPC_Clubba_05, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 210.0f, 0.0f, -100.0f }, + .yaw = 270, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 210, 0, -100 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, -175 }, + .detectSize = { 430, 92 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_05_Hitbox), +}; + +StaticNpc N(NpcData_Clubba_06)[] = { + { + .id = NPC_Clubba_06, + .settings = &N(NpcSettings_Clubba_Napping), + .pos = { 280.0f, 0.0f, -235.0f }, + .yaw = 90, + .flags = ENEMY_FLAGS_400 | ENEMY_FLAGS_800, + .drops = CLUBBA_DROPS, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 280, 0, -235 }, + .wanderSize = { 40 }, + .detectShape = SHAPE_RECT, + .detectPos = { 150, 0, -175 }, + .detectSize = { 430, 92 }, + } + }, + .animations = CLUBBA_ANIMS, + .aiDetectFlags = AI_DETECT_SENSITIVE_MOTION, + }, + CLUBBA_MACE_HITBOX(NPC_Clubba_06_Hitbox), +}; + +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Clubba_01), BTL_DGB_FORMATION_03, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_02), BTL_DGB_FORMATION_00, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_03), BTL_DGB_FORMATION_00, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_04), BTL_DGB_FORMATION_00, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_05), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_02), + NPC_GROUP(N(NpcData_Clubba_06), BTL_DGB_FORMATION_01, BTL_DGB_STAGE_02), + {} +}; diff --git a/src/world/area_dgb/dgb_17/C55A60.c b/src/world/area_dgb/dgb_17/C55A60.c deleted file mode 100644 index 7538d49f4d..0000000000 --- a/src/world/area_dgb/dgb_17/C55A60.c +++ /dev/null @@ -1,116 +0,0 @@ -#include "dgb_17.h" -#include "message_ids.h" -#include "entity.h" - -EntryList N(entryList) = { - { -570.0f, 0.0f, 180.0f, 90.0f }, - { -180.0f, 0.0f, 180.0f, 270.0f }, -}; - -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_17 }, -}; - -EvtScript N(80240060) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; - -static s32 N(pad_F8)[] = { - 0x00000000, 0x00000000, -}; - -EvtScript N(exitDoubleDoor_80240100) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 7) - EVT_SET(LVar2, 14) - EVT_SET(LVar3, 16) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_15"), 1) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(exitDoubleDoor_802401B4) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 1) - EVT_SET(LVar1, 11) - EVT_SET(LVar2, 21) - EVT_SET(LVar3, 19) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 5) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; - -EvtScript N(80240268) = { - EVT_BIND_TRIGGER(N(exitDoubleDoor_80240100), TRIGGER_WALL_PRESS_A, 7, 1, 0) - EVT_BIND_TRIGGER(N(exitDoubleDoor_802401B4), TRIGGER_WALL_PRESS_A, 11, 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(enterDoubleDoor_802402B0) = { - EVT_CALL(GetLoadType, LVar1) - EVT_IF_EQ(LVar1, 1) - EVT_EXEC(EnterSavePoint) - EVT_EXEC(N(80240268)) - EVT_RETURN - EVT_END_IF - EVT_CALL(UseDoorSounds, 3) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 14) - EVT_SET(LVar3, 16) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_CASE_EQ(1) - EVT_SET(LVar2, 21) - EVT_SET(LVar3, 19) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_END_SWITCH - EVT_EXEC(N(80240268)) - EVT_RETURN - EVT_END -}; - -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(80240060)) - EVT_EXEC(N(enterDoubleDoor_802402B0)) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_CALL(MakeEntity, EVT_PTR(Entity_SavePoint), -300, 60, 75, 0, MAKE_ENTITY_END) - EVT_CALL(MakeEntity, EVT_PTR(Entity_HeartBlock), -450, 60, 75, 0, MAKE_ENTITY_END) - EVT_RETURN - EVT_END -}; diff --git a/src/world/area_dgb/dgb_17/dgb_17.h b/src/world/area_dgb/dgb_17/dgb_17.h index 4b15d056b6..12a4c9b6ff 100644 --- a/src/world/area_dgb/dgb_17/dgb_17.h +++ b/src/world/area_dgb/dgb_17/dgb_17.h @@ -2,11 +2,15 @@ /// @brief Tubba's Castle - Save Room (3F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_17_shape.h" +#include "mapfs/dgb_17_hit.h" + #define NAMESPACE dgb_17 -extern EvtScript N(main); -extern EvtScript N(makeEntities); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); diff --git a/src/world/area_dgb/dgb_17/dgb_17_0_header.c b/src/world/area_dgb/dgb_17/dgb_17_0_header.c new file mode 100644 index 0000000000..adc27d5b2d --- /dev/null +++ b/src/world/area_dgb/dgb_17/dgb_17_0_header.c @@ -0,0 +1,13 @@ +#include "dgb_17.h" + +EntryList N(Entrances) = { + [dgb_17_ENTRY_0] { -570.0, 0.0, 180.0, 90.0 }, + [dgb_17_ENTRY_1] { -180.0, 0.0, 180.0, 270.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_17 }, +}; diff --git a/src/world/area_dgb/dgb_17/dgb_17_1_music.c b/src/world/area_dgb/dgb_17/dgb_17_1_music.c new file mode 100644 index 0000000000..9c2fc4b158 --- /dev/null +++ b/src/world/area_dgb/dgb_17/dgb_17_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_17.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_17/dgb_17_2_main.c b/src/world/area_dgb/dgb_17/dgb_17_2_main.c new file mode 100644 index 0000000000..0c3a3f45ae --- /dev/null +++ b/src/world/area_dgb/dgb_17/dgb_17_2_main.c @@ -0,0 +1,75 @@ +#include "dgb_17.h" + +EvtScript N(EVS_ExitDoors_dgb_15_1) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_17_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o142) + EVT_SET(LVar3, MODEL_o143) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_15"), dgb_15_ENTRY_1) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_ExitDoors_dgb_01_5) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_17_ENTRY_1) + EVT_SET(LVar1, COLLIDER_deilitte) + EVT_SET(LVar2, MODEL_o199) + EVT_SET(LVar3, MODEL_o198) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_5) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BindExitTriggers) = { + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_15_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_5)), TRIGGER_WALL_PRESS_A, COLLIDER_deilitte, 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(GetLoadType, LVar1) + EVT_IF_EQ(LVar1, LOAD_FROM_FILE_SELECT) + EVT_EXEC(EnterSavePoint) + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_RETURN + EVT_END_IF + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_17_ENTRY_0) + EVT_SET(LVar2, MODEL_o142) + EVT_SET(LVar3, MODEL_o143) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_CASE_EQ(dgb_17_ENTRY_1) + EVT_SET(LVar2, MODEL_o199) + EVT_SET(LVar3, MODEL_o198) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_END_SWITCH + EVT_EXEC(N(EVS_BindExitTriggers)) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_ALT_NO_LEAD() + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_17/dgb_17_3_entity.c b/src/world/area_dgb/dgb_17/dgb_17_3_entity.c new file mode 100644 index 0000000000..cd94c13bcc --- /dev/null +++ b/src/world/area_dgb/dgb_17/dgb_17_3_entity.c @@ -0,0 +1,9 @@ +#include "dgb_17.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeEntity, EVT_PTR(Entity_SavePoint), -300, 60, 75, 0, MAKE_ENTITY_END) + EVT_CALL(MakeEntity, EVT_PTR(Entity_HeartBlock), -450, 60, 75, 0, MAKE_ENTITY_END) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_18/C56EF0.c b/src/world/area_dgb/dgb_18/C56EF0.c deleted file mode 100644 index c27d15b3ef..0000000000 --- a/src/world/area_dgb/dgb_18/C56EF0.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "dgb_18.h" - -// replace below with: -// #include "world/common/atomic/Chest.old.inc.c" -// after data is done - -#include "world/common/todo/StashVars.inc.c" - -#include "world/common/todo/GetItemName.inc.c" - -#include "world/common/todo/SomeItemEntityFunc.inc.c" - -#include "world/common/todo/IsItemBadge.inc.c" diff --git a/src/world/area_dgb/dgb_18/dgb_18.h b/src/world/area_dgb/dgb_18/dgb_18.h index 3fa5c345f9..479aecdf1e 100644 --- a/src/world/area_dgb/dgb_18/dgb_18.h +++ b/src/world/area_dgb/dgb_18/dgb_18.h @@ -2,18 +2,33 @@ /// @brief Tubba's Castle - Master Bedroom (3F) #include "common.h" -#include "../dgb.h" #include "message_ids.h" #include "map.h" +#include "../dgb.h" +#include "mapfs/dgb_18_shape.h" +#include "mapfs/dgb_18_hit.h" + +#include "sprite/npc/WorldTubba.h" +#include "sprite/npc/Yakkey.h" +#include "sprite/npc/WorldGoombario.h" +#include "sprite/npc/WorldKooper.h" +#include "sprite/npc/WorldBombette.h" +#include "sprite/npc/WorldParakarry.h" +#include "sprite/npc/WorldBow.h" + +enum { + NPC_Tubba = 0, + NPC_Yakkey = 1, +}; + +enum { + MF_Sync_YakkeyDialogue = MapFlag(0), +}; + #define NAMESPACE dgb_18 -ApiStatus N(UnkFunc1)(Evt* script, s32 isInitialCall); -ApiStatus N(PatrolNoAttackAI_Main)(Evt* script, s32 isInitialCall); - -extern s32** N(varStash); - -extern NpcGroupList N(npcGroupList_802436B4); -extern EvtScript N(main); -extern EvtScript N(makeEntities); -extern EvtScript N(npcAI_80242834); +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/area_dgb/dgb_18/dgb_18_0_header.c b/src/world/area_dgb/dgb_18/dgb_18_0_header.c new file mode 100644 index 0000000000..c41477bbad --- /dev/null +++ b/src/world/area_dgb/dgb_18/dgb_18_0_header.c @@ -0,0 +1,12 @@ +#include "dgb_18.h" + +EntryList N(Entrances) = { + [dgb_18_ENTRY_0] { -120.0, 0.0, 180.0, 90.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .tattle = { MSG_MapTattle_dgb_18 }, +}; diff --git a/src/world/area_dgb/dgb_18/dgb_18_1_music.c b/src/world/area_dgb/dgb_18/dgb_18_1_music.c new file mode 100644 index 0000000000..3f0bf79ebe --- /dev/null +++ b/src/world/area_dgb/dgb_18/dgb_18_1_music.c @@ -0,0 +1,14 @@ +#include "dgb_18.h" + +EvtScript N(EVS_SetupMusic) = { + EVT_SWITCH(GB_StoryProgress) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_CASE_LT(STORY_CH3_DEFEATED_TUBBA_BLUBBA) + EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) + EVT_CASE_DEFAULT + EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_18/dgb_18_2_main.c b/src/world/area_dgb/dgb_18/dgb_18_2_main.c new file mode 100644 index 0000000000..408a3bcf23 --- /dev/null +++ b/src/world/area_dgb/dgb_18/dgb_18_2_main.c @@ -0,0 +1,45 @@ +#include "dgb_18.h" + +EvtScript N(EVS_ExitDoors_dgb_01_6) = { + EVT_SET_GROUP(EVT_GROUP_1B) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_SET(LVar0, dgb_18_ENTRY_0) + EVT_SET(LVar1, COLLIDER_deilittw) + EVT_SET(LVar2, MODEL_o140) + EVT_SET(LVar3, MODEL_o141) + EVT_EXEC(ExitDoubleDoor) + EVT_WAIT(17) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_6) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +MAP_RODATA_PAD(1, strings); + +EvtScript N(EVS_EnterMap) = { + EVT_CALL(UseDoorSounds, DOOR_SOUNDS_CREAKY) + EVT_CALL(GetEntryID, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(dgb_18_ENTRY_0) + EVT_SET(LVar2, MODEL_o140) + EVT_SET(LVar3, MODEL_o141) + EVT_EXEC_WAIT(EnterDoubleDoor) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_Main) = { + EVT_SET(GB_WorldLocation, LOCATION_TUBBAS_MANOR) + EVT_CALL(SetSpriteShading, SHADING_NONE) + EVT_SETUP_CAMERA_NO_LEAD() + EVT_CALL(MakeNpcs, TRUE, EVT_PTR(N(DefaultNPCs))) + EVT_EXEC_WAIT(N(EVS_MakeEntities)) + EVT_EXEC(N(EVS_SetupMusic)) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_ExitDoors_dgb_01_6)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittw, 1, 0) + EVT_EXEC(N(EVS_EnterMap)) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_dgb/dgb_18/C55F40.c b/src/world/area_dgb/dgb_18/dgb_18_3_npc.c similarity index 51% rename from src/world/area_dgb/dgb_18/C55F40.c rename to src/world/area_dgb/dgb_18/dgb_18_3_npc.c index 107229f9a5..e6570021d7 100644 --- a/src/world/area_dgb/dgb_18/C55F40.c +++ b/src/world/area_dgb/dgb_18/dgb_18_3_npc.c @@ -1,148 +1,57 @@ #include "dgb_18.h" -#include "message_ids.h" -#include "entity.h" -#include "sprite/npc/WorldBombette.h" -#include "sprite/npc/WorldBow.h" -#include "sprite/npc/WorldGoombario.h" -#include "sprite/npc/WorldKooper.h" -#include "sprite/npc/WorldParakarry.h" -#include "sprite/npc/WorldTubba.h" -#include "sprite/npc/Yakkey.h" +#include "effects.h" -enum { - NPC_WORLD_TUBBA, - NPC_YAKKEY, -}; +extern EvtScript N(EVS_NpcAI_Tubba_Chase); +extern EvtScript N(EVS_NpcAI_Tubba_WakeUp); -EntryList N(entryList) = { - { -120.0f, 0.0f, 180.0f, 90.0f }, -}; +#include "world/common/enemy/complete/TubbaBlubba_Patrol.inc.c" +#include "world/common/enemy/complete/TubbaBlubba.inc.c" -MapSettings N(settings) = { - .main = &N(main), - .entryList = &N(entryList), - .entryCount = ENTRY_COUNT(N(entryList)), - .tattle = { MSG_MapTattle_dgb_18 }, -}; +#include "world/common/todo/UnkFunc1.inc.c" -EvtScript N(802412C0) = { - EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-29) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_CASE_LT(-16) - EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CASE_DEFAULT - EVT_CALL(SetMusicTrack, 0, SONG_TUBBAS_MANOR, 0, 8) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; +API_CALLABLE(N(UnusedChasePlayer)) { + PlayerStatus* playerStatus = &gPlayerStatus; + Npc* npc = get_npc_unsafe(NPC_Tubba); + f32 posX, posZ; -static s32 N(pad_1358)[] = { - 0x00000000, 0x00000000, -}; + if (isInitialCall) { + posX = npc->pos.x; + posZ = npc->pos.z; + npc->moveSpeed = 3.7f; + npc->yaw = atan2(posX, posZ, playerStatus->position.x, playerStatus->position.z); + script->functionTemp[1] = 0; + npc->duration = 15; + } -EvtScript N(exitDoubleDoor_80241360) = { - EVT_SET_GROUP(EVT_GROUP_1B) - EVT_CALL(DisablePlayerInput, TRUE) - EVT_CALL(UseDoorSounds, 3) - EVT_SET(LVar0, 0) - EVT_SET(LVar1, 17) - EVT_SET(LVar2, 8) - EVT_SET(LVar3, 10) - EVT_EXEC(ExitDoubleDoor) - EVT_WAIT(17) - EVT_CALL(GotoMap, EVT_PTR("dgb_01"), 6) - EVT_WAIT(100) - EVT_RETURN - EVT_END -}; + if (script->functionTemp[1] == 0) { + if (npc->duration == 0) { + npc->yaw = atan2(npc->pos.x, npc->pos.z, playerStatus->position.x, playerStatus->position.z); + npc->duration = 15; + } + npc->duration--; + } -EvtScript N(enterDoubleDoor_80241414) = { - EVT_CALL(UseDoorSounds, 3) - EVT_CALL(GetEntryID, LVar0) - EVT_SWITCH(LVar0) - EVT_CASE_EQ(0) - EVT_SET(LVar2, 8) - EVT_SET(LVar3, 10) - EVT_EXEC_WAIT(EnterDoubleDoor) - EVT_END_SWITCH - EVT_RETURN - EVT_END -}; + npc_move_heading(npc, npc->moveSpeed, npc->yaw); -EvtScript N(main) = { - EVT_SET(GB_WorldLocation, 15) - EVT_CALL(SetSpriteShading, -1) - EVT_CALL(SetCamPerspective, 0, 3, 25, 16, 4096) - EVT_CALL(SetCamBGColor, 0, 0, 0, 0) - EVT_CALL(SetCamEnabled, 0, 1) - EVT_CALL(SetCamLeadPlayer, 0, 0) - EVT_CALL(MakeNpcs, 1, EVT_PTR(N(npcGroupList_802436B4))) - EVT_EXEC_WAIT(N(makeEntities)) - EVT_EXEC(N(802412C0)) - EVT_BIND_TRIGGER(N(exitDoubleDoor_80241360), TRIGGER_WALL_PRESS_A, 17, 1, 0) - EVT_EXEC(N(enterDoubleDoor_80241414)) - EVT_RETURN - EVT_END -}; + return ApiStatus_BLOCK; +} -static s32 N(pad_1578)[] = { - 0x00000000, 0x00000000, -}; - -MobileAISettings N(npcAISettings_80241580) = { - .moveSpeed = 4.5f, - .alertRadius = 170.0f, - .alertOffsetDist = 90.0f, - .playerSearchInterval = 1, - .chaseSpeed = 3.9f, - .chaseTurnRate= 180, - .chaseUpdateInterval = 2, - .chaseRadius = 170.0f, - .chaseOffsetDist = 90.0f, - .unk_AI_2C = 1, -}; - -EvtScript N(802415B0) = { - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAISettings_80241580))) - EVT_RETURN - EVT_END -}; - -NpcSettings N(npcSettings_802415D0) = { - .height = 90, - .radius = 65, - .ai = &N(802415B0), - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -NpcSettings N(npcSettings_802415FC) = { - .height = 90, - .radius = 65, - .onHit = &EnemyNpcHit, - .onDefeat = &EnemyNpcDefeat, - .level = 13, -}; - -NpcSettings N(npcSettings_80241628) = { +NpcSettings N(NpcSettings_Yakkey) = { .height = 24, .radius = 24, .level = 13, }; -EvtScript N(idle_80241654) = { +EvtScript N(EVS_Scene_TubbaFallsAsleep) = { EVT_LABEL(10) - EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_WAIT(1) - EVT_IF_LT(LVar0, 700) - EVT_GOTO(10) - EVT_END_IF - EVT_IF_GT(LVar2, 185) - EVT_GOTO(10) - EVT_END_IF + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_WAIT(1) + EVT_IF_LT(LVar0, 700) + EVT_GOTO(10) + EVT_END_IF + EVT_IF_GT(LVar2, 185) + EVT_GOTO(10) + EVT_END_IF EVT_CALL(DisablePlayerInput, TRUE) EVT_WAIT(10) EVT_THREAD @@ -153,7 +62,7 @@ EvtScript N(idle_80241654) = { EVT_LOOP(3) EVT_CALL(SetPlayerAnimation, ANIM_Mario_8001E) EVT_CALL(PlaySoundAt, SOUND_20F6, 0, 382, 0, 218) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(1.0)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(1.0)) EVT_WAIT(20) EVT_CALL(SetPlayerAnimation, ANIM_Mario_10002) EVT_WAIT(10) @@ -164,22 +73,22 @@ EvtScript N(idle_80241654) = { EVT_CALL(InterpPlayerYaw, 90, 0) EVT_WAIT(10) EVT_END_LOOP - EVT_CALL(UseSettingsFrom, 0, -40, 0, 180) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(SetPanTarget, 0, -40, 0, 180) - EVT_CALL(PanToTarget, 0, 0, 1) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, -40, 0, 180) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, -40, 0, 180) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) EVT_CALL(SetPlayerPos, 740, 0, 180) EVT_CALL(SetNpcPos, NPC_PARTNER, 765, 0, 180) EVT_CALL(InterpPlayerYaw, 270, 0) EVT_CALL(InterpNpcYaw, NPC_PARTNER, 270, 0) EVT_CALL(SetPlayerAnimation, ANIM_Mario_8000C) - EVT_CALL(PlaySoundAtCollider, 17, 455, 0) - EVT_CALL(MakeLerp, 0, 80, 10, 0) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittw, SOUND_CREAKY_DOOR_OPEN, 0) + EVT_CALL(MakeLerp, 0, 80, 10, EASING_LINEAR) EVT_LOOP(0) EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 8, LVar0, 0, -1, 0) - EVT_CALL(RotateModel, 10, LVar0, 0, 1, 0) + EVT_CALL(RotateModel, MODEL_o140, LVar0, 0, -1, 0) + EVT_CALL(RotateModel, MODEL_o141, LVar0, 0, 1, 0) EVT_WAIT(1) EVT_IF_EQ(LVar1, 0) EVT_BREAK_LOOP @@ -188,7 +97,7 @@ EvtScript N(idle_80241654) = { EVT_THREAD EVT_LOOP(3) EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.3)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.3)) EVT_WAIT(5) EVT_END_LOOP EVT_END_THREAD @@ -198,17 +107,17 @@ EvtScript N(idle_80241654) = { EVT_CALL(NpcMoveTo, NPC_SELF, -60, 180, 30) EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim06) EVT_THREAD - EVT_CALL(MakeLerp, 80, 0, 10, 0) + EVT_CALL(MakeLerp, 80, 0, 10, EASING_LINEAR) EVT_LOOP(0) EVT_CALL(UpdateLerp) - EVT_CALL(RotateModel, 8, LVar0, 0, -1, 0) - EVT_CALL(RotateModel, 10, LVar0, 0, 1, 0) + EVT_CALL(RotateModel, MODEL_o140, LVar0, 0, -1, 0) + EVT_CALL(RotateModel, MODEL_o141, LVar0, 0, 1, 0) EVT_WAIT(1) EVT_IF_EQ(LVar1, 0) EVT_BREAK_LOOP EVT_END_IF EVT_END_LOOP - EVT_CALL(PlaySoundAtCollider, 17, 456, 0) + EVT_CALL(PlaySoundAtCollider, COLLIDER_deilittw, SOUND_CREAKY_DOOR_CLOSE, 0) EVT_END_THREAD EVT_WAIT(20) EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_WorldTubba_Anim10, ANIM_WorldTubba_Anim06, 5, MSG_CH3_00F4) @@ -222,21 +131,21 @@ EvtScript N(idle_80241654) = { EVT_BREAK_LOOP EVT_END_IF EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.3)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.3)) EVT_WAIT(9) EVT_CALL(GetSelfVar, 0, LVar0) EVT_IF_EQ(LVar0, 1) EVT_BREAK_LOOP EVT_END_IF EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_20F6, 0) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(0.15)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(0.15)) EVT_WAIT(12) EVT_END_LOOP EVT_END_THREAD EVT_THREAD EVT_LOOP(0) EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) EVT_WAIT(1) EVT_CALL(GetSelfVar, 0, LVar0) EVT_IF_EQ(LVar0, 1) @@ -266,7 +175,7 @@ EvtScript N(idle_80241654) = { EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(0.7)) EVT_CALL(NpcJump0, NPC_SELF, 600, 50, 115, 20) EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(0.3)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(0.3)) EVT_END_THREAD EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim05) EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.2), EVT_FLOAT(1.25)) @@ -286,7 +195,7 @@ EvtScript N(idle_80241654) = { EVT_END_THREAD EVT_WAIT(2) EVT_THREAD - EVT_CALL(MakeLerp, 0, 50, 18, 1) + EVT_CALL(MakeLerp, 0, 50, 18, EASING_QUADRATIC_IN) EVT_LOOP(0) EVT_CALL(UpdateLerp) EVT_CALL(func_802CDE68, -1, LVar0) @@ -296,7 +205,7 @@ EvtScript N(idle_80241654) = { EVT_END_IF EVT_END_LOOP EVT_END_THREAD - EVT_CALL(MakeLerp, 0, -90, 18, 1) + EVT_CALL(MakeLerp, 0, -90, 18, EASING_QUADRATIC_IN) EVT_LOOP(0) EVT_CALL(UpdateLerp) EVT_CALL(SetNpcRotation, NPC_SELF, 0, 0, LVar0) @@ -306,7 +215,7 @@ EvtScript N(idle_80241654) = { EVT_END_IF EVT_END_LOOP EVT_THREAD - EVT_CALL(ShakeCam, 0, 0, 10, EVT_FLOAT(0.4)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 10, EVT_FLOAT(0.4)) EVT_END_THREAD EVT_WAIT(5) EVT_CALL(FadeOutMusic, 0, 1000) @@ -330,7 +239,7 @@ EvtScript N(idle_80241654) = { EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2039, 0) EVT_CALL(RandInt, 10, LVar1) EVT_ADD(LVar1, 15) - EVT_CALL(ShowSleepBubble, 0, 0, 0, 2, 628, 121, 127, LVar1, LVar0) + EVT_CALL(ShowSleepBubble, NPC_Tubba, 0, 0, 2, 628, 121, 127, LVar1, LVar0) EVT_WAIT(48) EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2038, 0) EVT_CALL(RandInt, 10, LVar1) @@ -341,18 +250,18 @@ EvtScript N(idle_80241654) = { EVT_END_THREAD EVT_WAIT(30) EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(2.0)) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_CALL(PanToTarget, 0, 0, 0) - EVT_SET(GB_StoryProgress, -30) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(2.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) + EVT_SET(GB_StoryProgress, STORY_CH3_TUBBA_BEGAN_NAPPING) EVT_CALL(DisablePlayerInput, FALSE) EVT_RETURN EVT_END }; -EvtScript N(idle_80242494) = { +EvtScript N(EVS_NpcIdle_Tubba_Asleep) = { EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) EVT_CALL(SetNpcPos, NPC_SELF, 600, 50, 115) EVT_CALL(func_802CDE68, -1, 0) @@ -373,7 +282,7 @@ EvtScript N(idle_80242494) = { EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2039, 0) EVT_CALL(RandInt, 10, LVar1) EVT_ADD(LVar1, 15) - EVT_CALL(ShowSleepBubble, 0, 0, 0, 2, 628, 121, 127, LVar1, LVar0) + EVT_CALL(ShowSleepBubble, NPC_Tubba, 0, 0, 2, 628, 121, 127, LVar1, LVar0) EVT_WAIT(48) EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2038, 0) EVT_CALL(RandInt, 10, LVar1) @@ -386,13 +295,13 @@ EvtScript N(idle_80242494) = { EVT_END }; -EvtScript N(npcAI_802426B0) = { +EvtScript N(EVS_NpcAI_Tubba_WakeUp) = { EVT_SET_GROUP(EVT_GROUP_0B) EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2039, 0) - EVT_CALL(ShowSleepBubble, 0, 0, 50, 2, 552, 111, 128, 30, LVar0) + EVT_CALL(ShowSleepBubble, NPC_Tubba, 0, 50, 2, 552, 111, 128, 30, LVar0) EVT_WAIT(360) EVT_CALL(SetSleepBubbleTimeLeft, LVar0, 20) - EVT_CALL(SetNpcVar, -1, 1, 2) + EVT_CALL(SetNpcVar, NPC_SELF, 1, 2) EVT_WAIT(20) EVT_CALL(PlaySoundAtNpc, NPC_SELF, SOUND_2F1, 0) EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim19) @@ -406,59 +315,55 @@ EvtScript N(npcAI_802426B0) = { EVT_WAIT(12) EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_WorldTubba_Anim1C) EVT_WAIT(5) - EVT_CALL(BindNpcAI, 0, EVT_PTR(N(npcAI_80242834))) + EVT_CALL(BindNpcAI, NPC_Tubba, EVT_PTR(N(EVS_NpcAI_Tubba_Chase))) EVT_RETURN EVT_END }; -EvtScript N(npcAI_80242834) = { +EvtScript N(EVS_NpcAI_Tubba_Chase) = { EVT_SET_GROUP(EVT_GROUP_0B) - EVT_CALL(SetNpcAnimation, 0, ANIM_WorldTubba_Anim0D) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim0D) EVT_THREAD EVT_LOOP(0) - EVT_CALL(ShakeCam, 0, 0, 5, EVT_FLOAT(2.0)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 5, EVT_FLOAT(2.0)) EVT_WAIT(5) - EVT_CALL(ShakeCam, 0, 0, 2, EVT_FLOAT(1.0)) + EVT_CALL(ShakeCam, CAM_DEFAULT, 0, 2, EVT_FLOAT(1.0)) EVT_WAIT(8) EVT_END_LOOP EVT_END_THREAD - EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(npcAISettings_80241580))) + EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(AISettings_Tubba_Patrol))) EVT_RETURN EVT_END }; -extern const char N(dgb_01_name_hack)[]; - -EvtScript N(defeat_802428E8) = { +EvtScript N(EVS_NpcDefeat_Tubba) = { EVT_CALL(N(UnkFunc1)) - EVT_CALL(GotoMap, EVT_PTR(N(dgb_01_name_hack)), 6) + EVT_CALL(GotoMap, EVT_PTR("dgb_01"), dgb_01_ENTRY_6) EVT_WAIT(100) EVT_RETURN EVT_END }; -const char N(pad_XXX)[] = { 0, 0 }; - -EvtScript N(init_80242924) = { +EvtScript N(EVS_NpcInit_Tubba) = { EVT_CALL(SetNpcScale, NPC_SELF, EVT_FLOAT(1.25), EVT_FLOAT(1.25), EVT_FLOAT(1.25)) - EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(defeat_802428E8))) + EVT_CALL(BindNpcDefeat, NPC_SELF, EVT_PTR(N(EVS_NpcDefeat_Tubba))) EVT_SWITCH(GB_StoryProgress) - EVT_CASE_LT(-30) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80241654))) - EVT_CASE_LT(-29) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80242494))) - EVT_CASE_LT(-28) + EVT_CASE_LT(STORY_CH3_TUBBA_BEGAN_NAPPING) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_Scene_TubbaFallsAsleep))) + EVT_CASE_LT(STORY_CH3_TUBBA_WOKE_UP) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcIdle_Tubba_Asleep))) + EVT_CASE_LT(STORY_CH3_TUBBA_SMASHED_THE_BRIDGES) EVT_CALL(SetNpcPos, NPC_SELF, 245, 0, 250) EVT_CALL(SetNpcYaw, NPC_SELF, 270) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(npcAI_80242834))) - EVT_CASE_LT(-26) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_NpcAI_Tubba_Chase))) + EVT_CASE_LT(STORY_CH3_TUBBA_CHASED_MARIO_IN_FOYER) EVT_CALL(RemoveNpc, NPC_SELF) EVT_END_SWITCH EVT_RETURN EVT_END }; -EvtScript N(idle_80242A24) = { +EvtScript N(EVS_Scene_YakkeyShouts) = { EVT_LOOP(0) EVT_CALL(GetSelfVar, 0, LVar0) EVT_IF_EQ(LVar0, 1) @@ -468,62 +373,62 @@ EvtScript N(idle_80242A24) = { EVT_END_LOOP EVT_CALL(DisablePlayerInput, TRUE) EVT_WAIT(40) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100)), TRUE) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_100, TRUE) EVT_CALL(SetNpcPos, NPC_SELF, 845, 0, 140) EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(0.8)) EVT_CALL(NpcJump1, NPC_SELF, 845, 35, 145, 15) - EVT_CALL(PlayerFaceNpc, -1, 0) + EVT_CALL(PlayerFaceNpc, NPC_SELF, FALSE) EVT_WAIT(15) EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(SetCamDistance, 0, 300) - EVT_CALL(SetCamPosB, 0, 800, 245) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(PanToTarget, 0, 0, 1) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(SetCamDistance, CAM_DEFAULT, 300) + EVT_CALL(SetCamPosB, CAM_DEFAULT, 800, 245) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 1) EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 5, MSG_CH3_00F6) EVT_WAIT(15) EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 5, MSG_CH3_00F7) EVT_CALL(ShowChoice, MSG_Choice_000D) EVT_IF_EQ(LVar0, 0) - EVT_CALL(ContinueSpeech, -1, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 0, MSG_CH3_00F8) + EVT_CALL(ContinueSpeech, NPC_SELF, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 0, MSG_CH3_00F8) EVT_ELSE - EVT_CALL(ContinueSpeech, -1, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 0, MSG_CH3_00F9) + EVT_CALL(ContinueSpeech, NPC_SELF, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 0, MSG_CH3_00F9) EVT_END_IF EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) - EVT_CALL(UseSettingsFrom, 0, 740, LVar1, LVar2) - EVT_CALL(SetCamDistance, 0, 600) - EVT_CALL(SetCamPosB, 0, 800, 245) - EVT_CALL(SetPanTarget, 0, 740, LVar1, LVar2) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(4.0)) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, 740, LVar1, LVar2) + EVT_CALL(SetCamDistance, CAM_DEFAULT, 600) + EVT_CALL(SetCamPosB, CAM_DEFAULT, 800, 245) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 740, LVar1, LVar2) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) EVT_THREAD - EVT_SET(MapFlag(0), 0) + EVT_SET(MF_Sync_YakkeyDialogue, FALSE) EVT_CALL(SpeakToPlayer, NPC_SELF, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 517, MSG_CH3_00FA) - EVT_SET(MapFlag(0), 1) + EVT_SET(MF_Sync_YakkeyDialogue, TRUE) EVT_END_THREAD EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) EVT_LOOP(0) - EVT_CALL(SetCamDistance, 0, EVT_FLOAT(550.0)) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(SetPanTarget, 0, 740, LVar1, LVar2) + EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(550.0)) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 740, LVar1, LVar2) EVT_WAIT(1) - EVT_CALL(SetCamDistance, 0, EVT_FLOAT(600.0)) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(90.0)) - EVT_CALL(SetPanTarget, 0, 740, LVar1, LVar2) + EVT_CALL(SetCamDistance, CAM_DEFAULT, EVT_FLOAT(600.0)) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(90.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, 740, LVar1, LVar2) EVT_WAIT(1) - EVT_IF_EQ(MapFlag(0), 1) + EVT_IF_EQ(MF_Sync_YakkeyDialogue, TRUE) EVT_BREAK_LOOP EVT_END_IF EVT_END_LOOP EVT_CALL(SetMusicTrack, 0, SONG_TUBBA_ESCAPE, 0, 8) - EVT_CALL(SetNpcVar, 0, 1, 1) + EVT_CALL(SetNpcVar, NPC_Tubba, 1, 1) EVT_WAIT(15) - EVT_CALL(SetNpcAnimation, 0, ANIM_WorldTubba_Anim25) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim25) EVT_THREAD EVT_LOOP(0) - EVT_CALL(GetNpcVar, 0, 1, LVar0) + EVT_CALL(GetNpcVar, NPC_Tubba, 1, LVar0) EVT_IF_EQ(LVar0, 2) EVT_BREAK_LOOP EVT_END_IF @@ -531,209 +436,114 @@ EvtScript N(idle_80242A24) = { EVT_CALL(RandInt, 40, LVar1) EVT_ADD(LVar0, 537) EVT_ADD(LVar1, 110) - EVT_CALL(PlayEffect, 0x27, 2, LVar0, LVar1, 128, EVT_FLOAT(0.3), 24, 0, 0, 0, 0, 0, 0, 0) + EVT_PLAY_EFFECT(EFFECT_SMOKE_BURST, 2, LVar0, LVar1, 128, EVT_FLOAT(0.3), 24) EVT_WAIT(5) EVT_END_LOOP EVT_END_THREAD EVT_WAIT(15) - EVT_CALL(SetNpcAnimation, 0, ANIM_WorldTubba_Anim05) - EVT_CALL(SpeakToPlayer, 0, ANIM_WorldTubba_Anim13, ANIM_WorldTubba_Anim05, 5, MSG_CH3_00FB) + EVT_CALL(SetNpcAnimation, NPC_Tubba, ANIM_WorldTubba_Anim05) + EVT_CALL(SpeakToPlayer, NPC_Tubba, ANIM_WorldTubba_Anim13, ANIM_WorldTubba_Anim05, 5, MSG_CH3_00FB) EVT_WAIT(15) EVT_CALL(DisablePartnerAI, 0) EVT_CALL(GetCurrentPartnerID, LVar0) EVT_SWITCH(LVar0) - EVT_CASE_EQ(1) + EVT_CASE_EQ(PARTNER_GOOMBARIO) EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldGoombario_Talk, ANIM_WorldGoombario_Idle, 0, MSG_CH3_00FC) - EVT_CASE_EQ(2) + EVT_CASE_EQ(PARTNER_KOOPER) EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldKooper_Talk, ANIM_WorldKooper_Idle, 0, MSG_CH3_00FD) - EVT_CASE_EQ(3) + EVT_CASE_EQ(PARTNER_BOMBETTE) EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBombette_Talk, ANIM_WorldBombette_Idle, 0, MSG_CH3_00FE) - EVT_CASE_EQ(4) + EVT_CASE_EQ(PARTNER_PARAKARRY) EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldParakarry_Talk, ANIM_WorldParakarry_Idle, 0, MSG_CH3_00FF) - EVT_CASE_EQ(9) + EVT_CASE_EQ(PARTNER_BOW) EVT_CALL(SpeakToPlayer, NPC_PARTNER, ANIM_WorldBow_Talk, ANIM_WorldBow_Idle, 0, MSG_CH3_0100) EVT_END_SWITCH EVT_CALL(EnablePartnerAI) EVT_WAIT(15) - EVT_CALL(BindNpcAI, 0, EVT_PTR(N(npcAI_802426B0))) + EVT_CALL(BindNpcAI, NPC_Tubba, EVT_PTR(N(EVS_NpcAI_Tubba_WakeUp))) EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) - EVT_CALL(UseSettingsFrom, 0, LVar0, LVar1, LVar2) - EVT_CALL(SetCamSpeed, 0, EVT_FLOAT(4.0)) - EVT_CALL(SetPanTarget, 0, LVar0, LVar1, LVar2) - EVT_CALL(WaitForCam, 0, EVT_FLOAT(1.0)) - EVT_CALL(PanToTarget, 0, 0, 0) + EVT_CALL(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(SetCamSpeed, CAM_DEFAULT, EVT_FLOAT(4.0)) + EVT_CALL(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + EVT_CALL(WaitForCam, CAM_DEFAULT, EVT_FLOAT(1.0)) + EVT_CALL(PanToTarget, CAM_DEFAULT, 0, 0) EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) EVT_CALL(SetNpcJumpscale, NPC_SELF, EVT_FLOAT(1.0)) - EVT_CALL(SetNpcFlagBits, NPC_SELF, ((NPC_FLAG_100)), TRUE) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_100, TRUE) EVT_SUB(LVar1, 10) EVT_CALL(NpcJump0, NPC_SELF, LVar0, LVar1, LVar2, 10) - EVT_CALL(SetNpcPos, NPC_SELF, 0, -1000, 0) - EVT_SET(GB_StoryProgress, -29) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_SET(GB_StoryProgress, STORY_CH3_TUBBA_WOKE_UP) EVT_CALL(DisablePlayerInput, FALSE) EVT_RETURN EVT_END }; -EvtScript N(init_8024329C) = { +EvtScript N(EVS_NpcInit_Yakkey) = { EVT_CALL(SetSelfVar, 0, 0) - EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(idle_80242A24))) + EVT_CALL(BindNpcIdle, NPC_SELF, EVT_PTR(N(EVS_Scene_YakkeyShouts))) EVT_RETURN EVT_END }; -StaticNpc N(npcGroup_802432D4) = { - .id = NPC_WORLD_TUBBA, - .settings = &N(npcSettings_802415FC), - .pos = { 0.0f, -1000.0f, 0.0f }, +StaticNpc N(NpcData_Tubba) = { + .id = NPC_Tubba, + .settings = &N(NpcSettings_TubbaBlubba), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, .flags = ENEMY_FLAGS_800 | ENEMY_FLAGS_40000 | ENEMY_FLAGS_200000 | ENEMY_FLAGS_800000, - .init = &N(init_80242924), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .territory = { .temp = { 5, 0, 0, 240, 175, 0, 240, 350, 0, 240, 525, 0, 240, 700, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -32767, 300, 0, 240, 1000, 250, 1, 1 }}, - .animations = { - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim0A, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim0D, - ANIM_WorldTubba_Anim19, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - ANIM_WorldTubba_Anim07, - }, -}; - -StaticNpc N(npcGroup_802434C4) = { - .id = NPC_YAKKEY, - .settings = &N(npcSettings_80241628), - .pos = { 0.0f, -1000.0f, 0.0f }, - .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_800, - .init = &N(init_8024329C), - .yaw = 270, - .drops = { - .dropFlags = NPC_DROP_FLAGS_80, - .heartDrops = NO_DROPS, - .flowerDrops = NO_DROPS, - }, - .animations = { - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - ANIM_Yakkey_Idle, - }, -}; - -NpcGroupList N(npcGroupList_802436B4) = { - NPC_GROUP(N(npcGroup_802432D4), 0x0F04, BTL_DEFAULT_STAGE), - NPC_GROUP(N(npcGroup_802434C4)), - {}, -}; - -static s32 N(pad_36D8)[] = { - 0x00000000, 0x00000000, -}; - -s32** N(varStash) = NULL; // StashVars.inc.c data - -EvtScript N(802436E4) = { - EVT_SET_GROUP(EVT_GROUP_00) - EVT_CALL(SetTimeFreezeMode, 2) - EVT_WAIT(40) - EVT_CALL(ShowGotItem, LVar0, 0, 0) - EVT_CALL(SetTimeFreezeMode, 0) - EVT_RETURN - EVT_RETURN - EVT_END -}; - -EvtScript N(8024374C) = { - EVT_CALL(DisablePlayerInput, TRUE) - EVT_SET(LVar0, LVarA) - EVT_IF_NE(LVarA, 0) - EVT_EXEC_WAIT(N(802436E4)) - EVT_END_IF - EVT_SWITCH(LVarB) - EVT_CASE_EQ(0) - EVT_CALL(AddItem, LVarA, LVar0) - EVT_CASE_EQ(1) - EVT_CALL(AddKeyItem, LVarA) - EVT_CASE_EQ(2) - EVT_CALL(AddBadge, LVarA, LVar0) - EVT_END_SWITCH - EVT_WAIT(15) - EVT_CALL(DisablePlayerInput, FALSE) - EVT_RETURN - EVT_END -}; - -EvtScript N(8024382C) = { - EVT_SET(GF_DGB18_Chest_MysticalKey, 1) - EVT_CALL(AddKeyItem, ITEM_MYSTICAL_KEY) - EVT_CALL(SetNpcVar, 1, 0, 1) - EVT_RETURN - EVT_END -}; - -EvtScript N(makeEntities) = { - EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), 845, 0, 145, -35, 0, MAKE_ENTITY_END) - EVT_CALL(AssignChestFlag, GF_DGB18_Chest_MysticalKey) - EVT_CALL(AssignScript, EVT_PTR(N(8024382C))) - EVT_RETURN - EVT_END -}; - -#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" - -#include "world/common/todo/UnkFunc1.inc.c" - -ApiStatus N(func_80240EBC_C56DFC)(Evt* script, s32 isInitialCall) { - PlayerStatus* playerStatus = &gPlayerStatus; - Npc* npc = get_npc_unsafe(0); - f32 posX, posZ; - - if (isInitialCall) { - posX = npc->pos.x; - posZ = npc->pos.z; - npc->moveSpeed = 3.7f; - npc->yaw = atan2(posX, posZ, playerStatus->position.x, playerStatus->position.z); - script->functionTemp[1] = 0; - npc->duration = 15; - } - - if (script->functionTemp[1] == 0) { - if (npc->duration == 0) { - npc->yaw = atan2(npc->pos.x, npc->pos.z, playerStatus->position.x, playerStatus->position.z); - npc->duration = 15; + .init = &N(EVS_NpcInit_Tubba), + .drops = TUBBA_DROPS, + .territory = { + .patrol = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .numPoints = 5, + .points = { + { 0, 0, 240 }, + { 175, 0, 240 }, + { 350, 0, 240 }, + { 525, 0, 240 }, + { 700, 0, 240 }, + }, + .detectShape = SHAPE_RECT, + .detectPos = { 300, 0, 240 }, + .detectSize = { 1000, 250 }, } - npc->duration--; - } + }, + .animations = TUBBA_ANGRY_ANIMS, +}; - npc_move_heading(npc, npc->moveSpeed, npc->yaw); +StaticNpc N(NpcData_Yakkey) = { + .id = NPC_Yakkey, + .settings = &N(NpcSettings_Yakkey), + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .flags = ENEMY_FLAGS_1 | ENEMY_FLAGS_800, + .init = &N(EVS_NpcInit_Yakkey), + .drops = NPC_NO_DROPS, + .animations = { + .idle = ANIM_Yakkey_Idle, + .walk = ANIM_Yakkey_Idle, + .run = ANIM_Yakkey_Idle, + .chase = ANIM_Yakkey_Idle, + .anim_4 = ANIM_Yakkey_Idle, + .anim_5 = ANIM_Yakkey_Idle, + .death = ANIM_Yakkey_Idle, + .hit = ANIM_Yakkey_Idle, + .anim_8 = ANIM_Yakkey_Idle, + .anim_9 = ANIM_Yakkey_Idle, + .anim_A = ANIM_Yakkey_Idle, + .anim_B = ANIM_Yakkey_Idle, + .anim_C = ANIM_Yakkey_Idle, + .anim_D = ANIM_Yakkey_Idle, + .anim_E = ANIM_Yakkey_Idle, + .anim_F = ANIM_Yakkey_Idle, + }, +}; - return ApiStatus_BLOCK; -} - -const char N(dgb_01_name_hack)[] = "dgb_01"; +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Tubba), BTL_DGB_FORMATION_04), + NPC_GROUP(N(NpcData_Yakkey)), + {} +}; diff --git a/src/world/area_dgb/dgb_18/dgb_18_4_entity.c b/src/world/area_dgb/dgb_18/dgb_18_4_entity.c new file mode 100644 index 0000000000..6149ec0cf4 --- /dev/null +++ b/src/world/area_dgb/dgb_18/dgb_18_4_entity.c @@ -0,0 +1,20 @@ +#include "dgb_18.h" +#include "entity.h" + +#include "world/common/atomic/Chest.inc.c" + +EvtScript N(EVS_OpenChest_MysticalKey) = { + EVT_SET(GF_DGB18_Chest_MysticalKey, TRUE) + EVT_CALL(AddKeyItem, ITEM_MYSTICAL_KEY) + EVT_CALL(SetNpcVar, NPC_Yakkey, 0, 1) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_MakeEntities) = { + EVT_CALL(MakeEntity, EVT_PTR(Entity_Chest), 845, 0, 145, -35, 0, MAKE_ENTITY_END) + EVT_CALL(AssignChestFlag, GF_DGB18_Chest_MysticalKey) + EVT_CALL(AssignScript, EVT_PTR(N(EVS_OpenChest_MysticalKey))) + EVT_RETURN + EVT_END +}; diff --git a/src/world/area_tik/tik_18/tik_18_5_entity.c b/src/world/area_tik/tik_18/tik_18_5_entity.c index 83233aba58..8b1bf444f8 100644 --- a/src/world/area_tik/tik_18/tik_18_5_entity.c +++ b/src/world/area_tik/tik_18/tik_18_5_entity.c @@ -2,7 +2,7 @@ #include "entity.h" API_CALLABLE(N(WakeSpikedGoomba)) { - Enemy* enemy = get_enemy_safe(1); + Enemy* enemy = get_enemy_safe(NPC_SpikedGloomba); if (enemy != NULL) { enemy->varTable[0] = TRUE; diff --git a/src/world/area_tst/tst_13/tst_13_1_main.c b/src/world/area_tst/tst_13/tst_13_1_main.c index ad5608a21d..3d832b9fce 100644 --- a/src/world/area_tst/tst_13/tst_13_1_main.c +++ b/src/world/area_tst/tst_13/tst_13_1_main.c @@ -4,56 +4,8 @@ void mdl_project_tex_coords(s32 modelID, Gfx* destGfx, Matrix4f destMtx, void* d extern EvtScript N(EVS_Main); extern EvtScript N(D_80240510_B1DC70); -extern EvtScript N(D_80240894_B1DFF4); -extern EvtScript N(D_80240A58_B1E1B8); extern NpcGroupList N(DefaultNPCs); -extern Gfx N(shockwave_gfx)[]; -extern s32 N(D_80242BF8_B20358); - -API_CALLABLE(N(func_80240000_B1D760)) { - PlayerStatus* playerStatus = &gPlayerStatus; - f32 dist = dist2D(playerStatus->position.x, playerStatus->position.z, script->array[2], script->array[3]); - - script->varTable[0] = 1; - if (playerStatus->actionState != ACTION_STATE_SPIN_POUND && playerStatus->actionState != ACTION_STATE_TORNADO_POUND) { - script->varTable[0] = 0; - } - if (script->array[4] <= dist) { - script->varTable[0] = 0; - } - - return ApiStatus_DONE2; -} - -#include "world/common/todo/UnkDistFunc2.inc.c" - -void N(func_8024013C_B1D89C)(void) { - Matrix4f sp10; - Matrix4f sp50; - f32 x, y, z; - - N(D_80242BF8_B20358) += 1; - guTranslateF(sp10, gPlayerStatus.position.x, 0.0f, gPlayerStatus.position.z); - - x = (sin_rad(N(D_80242BF8_B20358) / 50.0f) * 0.5) + 0.5; - y = SQ(cos_rad(N(D_80242BF8_B20358) / 50.0f)) + 0.1; - z = (sin_rad(N(D_80242BF8_B20358) / 50.0f) * 0.5) + 0.5; - - guScaleF(sp50, x, y, z); - guMtxCatF(sp50, sp10, sp10); - guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]); - mdl_project_tex_coords(1, N(shockwave_gfx), sp10, NULL); - - gDPPipeSync(gMasterGfxPos++); - gDPSetCycleType(gMasterGfxPos++, G_CYC_1CYCLE); - gDPSetRenderMode(gMasterGfxPos++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - mdl_draw_hidden_panel_surface(&gMasterGfxPos, 1); - gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(gMasterGfxPos++, N(shockwave_gfx)); - gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); -} - EntryList N(Entrances) = { [tst_13_ENTRY_0] { 0.0, 0.0, 100.0, 90.0 }, }; @@ -65,160 +17,7 @@ MapSettings N(settings) = { .background = &gBackgroundImage, }; -EvtScript N(EVS_80240410) = { - EVT_USE_BUF(LVar0) - EVT_MALLOC_ARRAY(6, LVarA) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(0), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(1), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(2), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(3), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(4), LVar0) - EVT_BUF_READ1(LVar0) - EVT_SET(ArrayVar(5), LVar0) - EVT_SET(LVar0, LVarA) - EVT_BIND_TRIGGER(EVT_PTR(N(D_80240510_B1DC70)), TRIGGER_FLOOR_TOUCH, ArrayVar(0), 1, 0) - EVT_RETURN - EVT_END -}; - -EvtScript N(D_80240510_B1DC70) = { - EVT_USE_ARRAY(LVar0) - EVT_CALL(N(func_80240000_B1D760)) - EVT_IF_EQ(LVar0, 0) - EVT_RETURN - EVT_END_IF - EVT_LOOP(5) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, ArrayVar(0), COLLIDER_FLAGS_UPPER_MASK) - EVT_CALL(EnableModel, ArrayVar(1), TRUE) - EVT_WAIT(1) - EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, ArrayVar(0), COLLIDER_FLAGS_UPPER_MASK) - EVT_CALL(EnableModel, ArrayVar(1), FALSE) - EVT_WAIT(1) - EVT_END_LOOP - EVT_IF_NE(ArrayVar(5), 0) - EVT_EXEC_WAIT(ArrayVar(5)) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(D_80240600_B1DD60) = { - EVT_USE_BUF(LVar0) - EVT_MALLOC_ARRAY(6, LVar9) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(0), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(1), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(2), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(3), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(4), LVar1) - EVT_BUF_READ1(LVar1) - EVT_SET(ArrayVar(5), LVar1) - EVT_CALL(ParentColliderToModel, ArrayVar(1), ArrayVar(0)) - EVT_LABEL(0) - EVT_LABEL(1) - EVT_CALL(GetPlayerActionState, LVarA) - EVT_IF_EQ(LVarA, ACTION_STATE_SPIN_JUMP) - EVT_GOTO(2) - EVT_END_IF - EVT_IF_EQ(LVarA, ACTION_STATE_TORNADO_JUMP) - EVT_GOTO(2) - EVT_END_IF - EVT_WAIT(1) - EVT_GOTO(0) - EVT_LABEL(2) - EVT_CALL(GetPlayerPos, LVar1, LVar2, LVar3) - EVT_WAIT(1) - EVT_IF_NE(LVar2, ArrayVar(3)) - EVT_GOTO(2) - EVT_END_IF - EVT_CALL(N(UnkDistFunc2)) - EVT_IF_EQ(LVar0, 1) - EVT_EXEC_WAIT(N(D_80240894_B1DFF4)) - EVT_END_IF - EVT_IF_EQ(LVar0, 2) - EVT_EXEC_WAIT(N(D_80240A58_B1E1B8)) - EVT_END_IF - EVT_LABEL(3) - EVT_CALL(GetPlayerActionState, LVar0) - EVT_WAIT(1) - EVT_IF_EQ(LVar0, ACTION_STATE_SPIN_JUMP) - EVT_GOTO(3) - EVT_END_IF - EVT_IF_EQ(LVar0, ACTION_STATE_TORNADO_JUMP) - EVT_GOTO(3) - EVT_END_IF - EVT_GOTO(0) - EVT_RETURN - EVT_END -}; - -EvtScript N(D_80240894_B1DFF4) = { - EVT_USE_ARRAY(LVar9) - EVT_CALL(GetPlayerPos, LVar2, LVar3, LVar4) - EVT_CALL(MakeLerp, 0, 5, 3, EASING_QUADRATIC_IN) - EVT_LABEL(2) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_SET(LVar5, LVar3) - EVT_ADD(LVar5, LVar0) - EVT_CALL(SetPlayerPos, LVar2, LVar5, LVar4) - EVT_CALL(UpdateColliderTransform, ArrayVar(1)) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(2) - EVT_END_IF - EVT_CALL(MakeLerp, 5, 0, 3, EASING_QUADRATIC_IN) - EVT_LABEL(3) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_SET(LVar5, LVar3) - EVT_ADD(LVar5, LVar0) - EVT_CALL(SetPlayerPos, LVar2, LVar5, LVar4) - EVT_CALL(UpdateColliderTransform, ArrayVar(1)) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(3) - EVT_END_IF - EVT_RETURN - EVT_END -}; - -EvtScript N(D_80240A58_B1E1B8) = { - EVT_USE_ARRAY(LVar9) - EVT_CALL(MakeItemEntity, ArrayVar(5), ArrayVar(2), ArrayVar(3), ArrayVar(4), ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS, 0) - EVT_SET(LVar2, 0) - EVT_CALL(MakeLerp, 0, 150, 19, EASING_QUADRATIC_OUT) - EVT_LABEL(2) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_ADD(LVar2, 45) - EVT_CALL(RotateModel, ArrayVar(0), LVar2, 1, 0, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(2) - EVT_END_IF - EVT_CALL(MakeLerp, 150, 0, 19, EASING_QUADRATIC_OUT) - EVT_LABEL(3) - EVT_CALL(UpdateLerp) - EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) - EVT_ADD(LVar2, 45) - EVT_CALL(RotateModel, ArrayVar(0), LVar2, 1, 0, 0) - EVT_WAIT(1) - EVT_IF_EQ(LVar1, 1) - EVT_GOTO(3) - EVT_END_IF - EVT_RETURN - EVT_END -}; +#include "world/common/atomic/BetaFloorPanels.inc.c" EvtScript N(EVS_NpcAuxAI_00) = { EVT_RETURN @@ -375,7 +174,7 @@ NpcSettings N(NpcSettings_09) = { .flags = ENEMY_FLAGS_1, }; -StaticNpc N(D_80240F38_B1E698)[] = { +StaticNpc N(NpcData_Testing)[] = { { .id = NPC_00, .settings = &N(NpcSettings_00), @@ -469,7 +268,7 @@ StaticNpc N(D_80240F38_B1E698)[] = { }; NpcGroupList N(DefaultNPCs) = { - NPC_GROUP(N(D_80240F38_B1E698)), + NPC_GROUP(N(NpcData_Testing)), {} }; @@ -480,10 +279,37 @@ Gfx N(dummy_gfx)[] = { gsSPEndDisplayList() }; -s32 N(D_80242BF8_B20358) = 0; +s32 N(BuildGfxCallCount) = 0; -s32 N(D_80242BFC_B2035C)[] = { - 5, 4, -35, 0, -45, 342 +void N(build_gfx_floor)(void) { + Matrix4f sp10; + Matrix4f sp50; + f32 x, y, z; + + N(BuildGfxCallCount)++; + guTranslateF(sp10, gPlayerStatus.position.x, 0.0f, gPlayerStatus.position.z); + + x = (sin_rad(N(BuildGfxCallCount) / 50.0f) * 0.5) + 0.5; + y = SQ(cos_rad(N(BuildGfxCallCount) / 50.0f)) + 0.1; + z = (sin_rad(N(BuildGfxCallCount) / 50.0f) * 0.5) + 0.5; + + guScaleF(sp50, x, y, z); + guMtxCatF(sp50, sp10, sp10); + guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]); + mdl_project_tex_coords(1, N(shockwave_gfx), sp10, NULL); + + gDPPipeSync(gMasterGfxPos++); + gDPSetCycleType(gMasterGfxPos++, G_CYC_1CYCLE); + gDPSetRenderMode(gMasterGfxPos++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); + mdl_draw_hidden_panel_surface(&gMasterGfxPos, 1); + gSPMatrix(gMasterGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(gMasterGfxPos++, N(shockwave_gfx)); + gSPPopMatrix(gMasterGfxPos++, G_MTX_MODELVIEW); +} + + +s32 N(BetaPanelData)[] = { + MODEL_point, COLLIDER_point, -35, 0, -45, ITEM_HEART }; EvtScript N(EVS_Main) = { @@ -493,10 +319,10 @@ EvtScript N(EVS_Main) = { EVT_CALL(SetCamBGColor, CAM_DEFAULT, 0, 0, 0) EVT_CALL(SetCamEnabled, CAM_DEFAULT, TRUE) EVT_CALL(MakeNpcs, FALSE, EVT_PTR(N(DefaultNPCs))) - EVT_SET(LVar0, EVT_PTR(N(D_80242BFC_B2035C))) - EVT_EXEC(N(D_80240600_B1DD60)) + EVT_SET(LVar0, EVT_PTR(N(BetaPanelData))) + EVT_EXEC(N(EVS_BetaPanel_Setup)) EVT_CALL(SetModelCustomGfx, MODEL_o152, CUSTOM_GFX_0, -1) - EVT_CALL(SetCustomGfxBuilders, CUSTOM_GFX_0, 0, EVT_PTR(N(func_8024013C_B1D89C))) + EVT_CALL(SetCustomGfxBuilders, CUSTOM_GFX_0, 0, EVT_PTR(N(build_gfx_floor))) EVT_RETURN EVT_END }; diff --git a/src/world/common/atomic/BetaFloorPanels.inc.c b/src/world/common/atomic/BetaFloorPanels.inc.c new file mode 100644 index 0000000000..a3fb67dcf5 --- /dev/null +++ b/src/world/common/atomic/BetaFloorPanels.inc.c @@ -0,0 +1,200 @@ +#include "common.h" + +// unused early(?) versions of both flippable and breakable floor panels. +// unlike those fpund in the final game, models and colliders for these panels must be +// manually set up by the map author. a usable flip panel example is found in tst_13. + +extern EvtScript N(EVS_BetaBreakFloor_Touch); +extern EvtScript N(EVS_BetaPanel_PoundAtop); +extern EvtScript N(EVS_BetaPanel_PoundNearby); + +API_CALLABLE(N(CheckShouldBreakFloor)) { + PlayerStatus* playerStatus = &gPlayerStatus; + s32* array = script->array; + f32 distance = dist2D(playerStatus->position.x, playerStatus->position.z, array[2], array[3]); + + script->varTable[0] = 1; + if ((playerStatus->actionState != ACTION_STATE_SPIN_POUND) + && (playerStatus->actionState != ACTION_STATE_TORNADO_POUND)) { + script->varTable[0] = 0; + } + if (script->array[4] <= distance) { + script->varTable[0] = 0; + } + + return ApiStatus_DONE2; +} + +ApiStatus N(CheckShouldFlipFloor)(Evt* script, s32 isInitialCall) { + PlayerStatus* playerStatus = &gPlayerStatus; + f32 distance = dist2D( + playerStatus->position.x, playerStatus->position.z, + script->array[2], script->array[4]); + + script->varTable[0] = 0; + if (distance < 112.5f) { + script->varTable[0] = 2; + } + if (distance < 37.5f) { + script->varTable[0] = 1; + } + + return ApiStatus_DONE2; +} + +// breakable panels +EvtScript N(EVS_BetaBreakFloor_Setup) = { + EVT_USE_BUF(LVar0) + EVT_MALLOC_ARRAY(6, LVarA) + EVT_BUF_READ1(LVar0) // modelID + EVT_SET(ArrayVar(0), LVar0) + EVT_BUF_READ1(LVar0) // colliderID + EVT_SET(ArrayVar(1), LVar0) + EVT_BUF_READ1(LVar0) // posX + EVT_SET(ArrayVar(2), LVar0) + EVT_BUF_READ1(LVar0) // posZ + EVT_SET(ArrayVar(3), LVar0) + EVT_BUF_READ1(LVar0) // radius + EVT_SET(ArrayVar(4), LVar0) + EVT_BUF_READ1(LVar0) // callback event + EVT_SET(ArrayVar(5), LVar0) + EVT_SET(LVar0, LVarA) + EVT_BIND_TRIGGER(EVT_PTR(N(EVS_BetaBreakFloor_Touch)), TRIGGER_FLOOR_TOUCH, ArrayVar(0), 1, 0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BetaBreakFloor_Touch) = { + EVT_USE_ARRAY(LVar0) + EVT_CALL(N(CheckShouldBreakFloor)) + EVT_IF_EQ(LVar0, 0) + EVT_RETURN + EVT_END_IF + EVT_LOOP(5) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_CLEAR_BITS, ArrayVar(0), COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(EnableModel, ArrayVar(1), TRUE) + EVT_WAIT(1) + EVT_CALL(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, ArrayVar(0), COLLIDER_FLAGS_UPPER_MASK) + EVT_CALL(EnableModel, ArrayVar(1), FALSE) + EVT_WAIT(1) + EVT_END_LOOP + EVT_IF_NE(ArrayVar(5), 0) + EVT_EXEC_WAIT(ArrayVar(5)) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +// flippable panels +EvtScript N(EVS_BetaPanel_Setup) = { + EVT_USE_BUF(LVar0) + EVT_MALLOC_ARRAY(6, LVar9) + EVT_BUF_READ1(LVar1) // modelID + EVT_SET(ArrayVar(0), LVar1) + EVT_BUF_READ1(LVar1) // colliderID + EVT_SET(ArrayVar(1), LVar1) + EVT_BUF_READ1(LVar1) // posX + EVT_SET(ArrayVar(2), LVar1) + EVT_BUF_READ1(LVar1) // posY + EVT_SET(ArrayVar(3), LVar1) + EVT_BUF_READ1(LVar1) // posZ + EVT_SET(ArrayVar(4), LVar1) + EVT_BUF_READ1(LVar1) // itemID + EVT_SET(ArrayVar(5), LVar1) + EVT_CALL(ParentColliderToModel, ArrayVar(1), ArrayVar(0)) + EVT_LABEL(0) + EVT_LABEL(1) + EVT_CALL(GetPlayerActionState, LVarA) + EVT_IF_EQ(LVarA, ACTION_STATE_SPIN_JUMP) + EVT_GOTO(2) + EVT_END_IF + EVT_IF_EQ(LVarA, ACTION_STATE_TORNADO_JUMP) + EVT_GOTO(2) + EVT_END_IF + EVT_WAIT(1) + EVT_GOTO(0) + EVT_LABEL(2) + EVT_CALL(GetPlayerPos, LVar1, LVar2, LVar3) + EVT_WAIT(1) + EVT_IF_NE(LVar2, ArrayVar(3)) + EVT_GOTO(2) + EVT_END_IF + EVT_CALL(N(CheckShouldFlipFloor)) + EVT_IF_EQ(LVar0, 1) + EVT_EXEC_WAIT(N(EVS_BetaPanel_PoundAtop)) + EVT_END_IF + EVT_IF_EQ(LVar0, 2) + EVT_EXEC_WAIT(N(EVS_BetaPanel_PoundNearby)) + EVT_END_IF + EVT_LABEL(3) + EVT_CALL(GetPlayerActionState, LVar0) + EVT_WAIT(1) + EVT_IF_EQ(LVar0, ACTION_STATE_SPIN_JUMP) + EVT_GOTO(3) + EVT_END_IF + EVT_IF_EQ(LVar0, ACTION_STATE_TORNADO_JUMP) + EVT_GOTO(3) + EVT_END_IF + EVT_GOTO(0) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BetaPanel_PoundAtop) = { + EVT_USE_ARRAY(LVar9) + EVT_CALL(GetPlayerPos, LVar2, LVar3, LVar4) + EVT_CALL(MakeLerp, 0, 5, 3, EASING_QUADRATIC_IN) + EVT_LABEL(2) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) + EVT_SET(LVar5, LVar3) + EVT_ADD(LVar5, LVar0) + EVT_CALL(SetPlayerPos, LVar2, LVar5, LVar4) + EVT_CALL(UpdateColliderTransform, ArrayVar(1)) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 1) + EVT_GOTO(2) + EVT_END_IF + EVT_CALL(MakeLerp, 5, 0, 3, EASING_QUADRATIC_IN) + EVT_LABEL(3) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) + EVT_SET(LVar5, LVar3) + EVT_ADD(LVar5, LVar0) + EVT_CALL(SetPlayerPos, LVar2, LVar5, LVar4) + EVT_CALL(UpdateColliderTransform, ArrayVar(1)) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 1) + EVT_GOTO(3) + EVT_END_IF + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_BetaPanel_PoundNearby) = { + EVT_USE_ARRAY(LVar9) + EVT_CALL(MakeItemEntity, ArrayVar(5), ArrayVar(2), ArrayVar(3), ArrayVar(4), ITEM_SPAWN_MODE_TOSS_SPAWN_ALWAYS, 0) + EVT_SET(LVar2, 0) + EVT_CALL(MakeLerp, 0, 150, 19, EASING_QUADRATIC_OUT) + EVT_LABEL(2) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) + EVT_ADD(LVar2, 45) + EVT_CALL(RotateModel, ArrayVar(0), LVar2, 1, 0, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 1) + EVT_GOTO(2) + EVT_END_IF + EVT_CALL(MakeLerp, 150, 0, 19, EASING_QUADRATIC_OUT) + EVT_LABEL(3) + EVT_CALL(UpdateLerp) + EVT_CALL(TranslateModel, ArrayVar(0), 0, LVar0, 0) + EVT_ADD(LVar2, 45) + EVT_CALL(RotateModel, ArrayVar(0), LVar2, 1, 0, 0) + EVT_WAIT(1) + EVT_IF_EQ(LVar1, 1) + EVT_GOTO(3) + EVT_END_IF + EVT_RETURN + EVT_END +}; diff --git a/src/world/common/enemy/ai/WanderMeleeAI.inc.c b/src/world/common/enemy/ai/WanderMeleeAI.inc.c index 7207a40378..3a836282b0 100644 --- a/src/world/common/enemy/ai/WanderMeleeAI.inc.c +++ b/src/world/common/enemy/ai/WanderMeleeAI.inc.c @@ -1,3 +1,6 @@ +#ifndef _WANDER_MELEE_AI_ +#define _WANDER_MELEE_AI_ + // Used by: // - Clubba + White Clubba // - Spear Guy @@ -120,3 +123,5 @@ ApiStatus N(WanderMeleeAI_Main)(Evt *script, s32 isInitialCall) { return ApiStatus_BLOCK; } + +#endif diff --git a/src/world/common/enemy/complete/Clubba.h b/src/world/common/enemy/complete/Clubba.h index 6b661e1e0c..5373167a68 100644 --- a/src/world/common/enemy/complete/Clubba.h +++ b/src/world/common/enemy/complete/Clubba.h @@ -4,14 +4,13 @@ #define CLUBBA_DROPS \ { \ .dropFlags = NPC_DROP_FLAGS_80, \ - .itemDropChance = 15, \ + .itemDropChance = 5, \ .itemDrops = { \ - { ITEM_MAPLE_SYRUP, 6, 0 }, \ - { ITEM_HONEY_SYRUP, 4, 0 }, \ + { ITEM_SUPER_SHROOM, 10, 0 }, \ }, \ - .heartDrops = STANDARD_HEART_DROPS(2), \ - .flowerDrops = STANDARD_FLOWER_DROPS(4), \ - .minCoinBonus = 0, \ + .heartDrops = STANDARD_HEART_DROPS(3), \ + .flowerDrops = STANDARD_FLOWER_DROPS(2), \ + .minCoinBonus = 2, \ .maxCoinBonus = 3, \ } @@ -34,3 +33,15 @@ .anim_E = ANIM_WorldClubba_Anim02, \ .anim_F = ANIM_WorldClubba_Anim02, \ } + +#define CLUBBA_MACE_HITBOX(npcID) \ +{ \ + .id = npcID, \ + .settings = &N(NpcSettings_Clubba_Hitbox), \ + .pos = { NPC_DISPOSE_LOCATION }, \ + .yaw = 0, \ + .flags = ENEMY_FLAGS_100 | ENEMY_FLAGS_400 | ENEMY_FLAGS_800 | ENEMY_FLAGS_800000, \ + .drops = NPC_NO_DROPS, \ + .animations = CLUBBA_ANIMS, \ + .extraAnimations = N(ExtraAnims_Clubba_Hitbox), \ +} diff --git a/src/world/common/enemy/complete/Clubba_Multi.inc.c b/src/world/common/enemy/complete/Clubba_Multi.inc.c new file mode 100644 index 0000000000..1381b4436b --- /dev/null +++ b/src/world/common/enemy/complete/Clubba_Multi.inc.c @@ -0,0 +1,178 @@ +#include "Clubba.h" + +EvtScript N(EVS_NpcDefeat_Clubba) = { + EVT_CALL(GetBattleOutcome, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(OUTCOME_PLAYER_WON) + EVT_CALL(RemoveNpc, NPC_SELF) + EVT_CASE_EQ(OUTCOME_PLAYER_FLED) + EVT_CALL(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EVT_CALL(OnPlayerFled, 1) + EVT_CASE_EQ(OUTCOME_ENEMY_FLED) + EVT_CALL(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAGS_FLED, 1) + EVT_CALL(RemoveNpc, NPC_SELF) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +s32 N(ExtraAnims_Clubba)[] = { + ANIM_WorldClubba_Anim00, + ANIM_WorldClubba_Anim02, + ANIM_WorldClubba_Anim03, + ANIM_WorldClubba_Anim04, + ANIM_WorldClubba_Anim0C, + ANIM_WorldClubba_Anim07, + ANIM_WorldClubba_Anim08, + ANIM_WorldClubba_Anim11, + ANIM_WorldClubba_Anim12, + -1 +}; + +s32 N(ExtraAnims_Clubba_Hitbox)[] = { + ANIM_WorldClubba_Anim00, + -1 +}; + +#ifdef INCLUDE_CLUBBA_WANDER +#include "world/common/enemy/ai/WanderMeleeAI.inc.c" + +MobileAISettings N(AISettings_Clubba_Wander) = { + .moveSpeed = 1.5f, + .moveTime = 120, + .waitTime = 30, + .alertRadius = 85.0f, + .alertOffsetDist = 65.0f, + .playerSearchInterval = 5, + .chaseSpeed = 3.5f, + .chaseTurnRate = 90, + .chaseUpdateInterval = 12, + .chaseRadius = 110.0f, + .chaseOffsetDist = 90.0f, + .unk_AI_2C = 3, +}; + +EvtScript N(EVS_NpcAI_Clubba_Wander) = { + EVT_CALL(SetSelfVar, 0, 0) + EVT_CALL(SetSelfVar, 1, 5) + EVT_CALL(SetSelfVar, 2, 8) + EVT_CALL(SetSelfVar, 3, 12) + EVT_CALL(N(WanderMeleeAI_Main), EVT_PTR(N(AISettings_Clubba_Wander))) + EVT_RETURN + EVT_END +}; + +NpcSettings N(NpcSettings_Clubba_Wander) = { + .height = 36, + .radius = 34, + .level = 13, + .ai = &N(EVS_NpcAI_Clubba_Wander), + .onHit = &EnemyNpcHit, + .onDefeat = &EnemyNpcDefeat, +}; + +#endif + +#ifdef INCLUDE_CLUBBA_PATROL +#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" +#include "world/common/enemy/ai/ClubbaPatrolAI.inc.c" + +MobileAISettings N(AISettings_Clubba_Patrol) = { + .moveSpeed = 1.5f, + .moveTime = 20, + .waitTime = 30, + .alertRadius = 85.0f, + .alertOffsetDist = 65.0f, + .playerSearchInterval = 5, + .chaseSpeed = 3.5f, + .chaseTurnRate = 90, + .chaseUpdateInterval = 12, + .chaseRadius = 110.0f, + .chaseOffsetDist = 90.0f, + .unk_AI_2C = 3, +}; + +EvtScript N(EVS_NpcAI_Clubba_Patrol) = { + EVT_CALL(SetSelfVar, 0, 0) + EVT_CALL(SetSelfVar, 1, 5) + EVT_CALL(SetSelfVar, 2, 8) + EVT_CALL(SetSelfVar, 3, 12) + EVT_CALL(N(ClubbaPatrolAI_Main), EVT_PTR(N(AISettings_Clubba_Patrol))) + EVT_RETURN + EVT_END +}; + +NpcSettings N(NpcSettings_Clubba_Patrol) = { + .height = 36, + .radius = 34, + .level = 13, + .ai = &N(EVS_NpcAI_Clubba_Patrol), + .onHit = &EnemyNpcHit, + .onDefeat = &EnemyNpcDefeat, +}; + +#endif + +#ifdef INCLUDE_CLUBBA_NAPPING +#include "world/common/enemy/ai/ClubbaNappingAI.inc.c" +#include "world/common/enemy/ai/WanderMeleeAI.inc.c" + +MobileAISettings N(AISettings_Clubba_Napping) = { + .moveSpeed = 1.0f, + .moveTime = 120, + .waitTime = 30, + .alertRadius = 100.0f, + .alertOffsetDist = 40.0f, + .playerSearchInterval = 10, + .chaseSpeed = 3.5f, + .chaseTurnRate = 90, + .chaseUpdateInterval = 15, + .chaseRadius = 200.0f, + .chaseOffsetDist = 160.0f, + .unk_AI_2C = 1, +}; + +EvtScript N(EVS_NpcAI_Clubba_Napping) = { + EVT_CALL(SetSelfVar, 0, 0) + EVT_CALL(SetSelfVar, 1, 10) + EVT_CALL(SetSelfVar, 2, 14) + EVT_CALL(SetSelfVar, 3, 18) + EVT_CALL(N(ClubbaNappingAI_Main), EVT_PTR(N(AISettings_Clubba_Napping))) + EVT_RETURN + EVT_END +}; + +NpcSettings N(NpcSettings_Clubba_Napping) = { + .height = 36, + .radius = 34, + .level = 13, + .ai = &N(EVS_NpcAI_Clubba_Napping), + .onHit = &EnemyNpcHit, + .onDefeat = &EnemyNpcDefeat, +}; + +#endif + +#include "world/common/enemy/ai/MeleeHitbox.inc.c" + +EvtScript N(EVS_NpcAI_Clubba_Hitbox) = { + EVT_CALL(EnableNpcShadow, NPC_SELF, FALSE) + EVT_CALL(SetSelfVar, 0, 4) + EVT_CALL(SetSelfVar, 1, 32) + EVT_CALL(SetSelfVar, 2, 50) + EVT_CALL(SetSelfVar, 3, 32) + EVT_CALL(SetSelfVar, 4, 3) + EVT_CALL(SetSelfVar, 15, SOUND_20C5) + EVT_CALL(N(MeleeHitbox_Main)) + EVT_RETURN + EVT_END +}; + +NpcSettings N(NpcSettings_Clubba_Hitbox) = { + .height = 14, + .radius = 18, + .level = 13, + .ai = &N(EVS_NpcAI_Clubba_Hitbox), + .onDefeat = &N(EVS_NpcDefeat_Clubba), + .actionFlags = AI_ACTION_08, +}; diff --git a/src/world/common/enemy/complete/Sentinel.h b/src/world/common/enemy/complete/Sentinel.h new file mode 100644 index 0000000000..217d7e8348 --- /dev/null +++ b/src/world/common/enemy/complete/Sentinel.h @@ -0,0 +1,29 @@ +#include "common.h" +#include "sprite/npc/Sentinel.h" + +#define SENTINEL_DROPS \ +{ \ + .dropFlags = NPC_DROP_FLAGS_80, \ + .heartDrops = NO_DROPS, \ + .flowerDrops = NO_DROPS, \ +} + +#define SENTINEL_ANIMS \ +{ \ + .idle = ANIM_Sentinel_Anim01, \ + .walk = ANIM_Sentinel_Anim02, \ + .run = ANIM_Sentinel_Anim03, \ + .chase = ANIM_Sentinel_Anim03, \ + .anim_4 = ANIM_Sentinel_Anim01, \ + .anim_5 = ANIM_Sentinel_Anim01, \ + .death = ANIM_Sentinel_Anim01, \ + .hit = ANIM_Sentinel_Anim01, \ + .anim_8 = ANIM_Sentinel_Anim05, \ + .anim_9 = ANIM_Sentinel_Anim01, \ + .anim_A = ANIM_Sentinel_Anim08, \ + .anim_B = ANIM_Sentinel_Anim01, \ + .anim_C = ANIM_Sentinel_Anim01, \ + .anim_D = ANIM_Sentinel_Anim01, \ + .anim_E = ANIM_Sentinel_Anim01, \ + .anim_F = ANIM_Sentinel_Anim01, \ +} diff --git a/src/world/common/enemy/complete/Sentinel.inc.c b/src/world/common/enemy/complete/Sentinel.inc.c new file mode 100644 index 0000000000..760e631537 --- /dev/null +++ b/src/world/common/enemy/complete/Sentinel.inc.c @@ -0,0 +1,124 @@ +#include "Sentinel.h" +#include "world/partners.h" + +#include "world/common/enemy/ai/SentinelAI.inc.c" + +f32 N(FlyingAI_JumpVels)[] = { + 4.5, 3.5, 2.6, 2.0, 1.5, 20.0, +}; + +EvtScript N(EVS_NpcAuxAI_Sentinel) = { + EVT_CALL(SetSelfEnemyFlagBits, ENEMY_FLAGS_100000 | ENEMY_FLAGS_IGNORE_TOUCH | ENEMY_FLAGS_IGNORE_JUMP | ENEMY_FLAGS_IGNORE_HAMMER | ENEMY_FLAGS_8000000 | ENEMY_FLAGS_10000000 | ENEMY_FLAGS_20000000, 1) + EVT_CALL(SetNpcFlagBits, NPC_SELF, NPC_FLAG_100 | NPC_FLAG_LOCK_ANIMS | NPC_FLAG_JUMPING, TRUE) + EVT_RETURN + EVT_END +}; + +MobileAISettings N(AISettings_Sentinel) = { + .moveSpeed = 1.5f, + .moveTime = 90, + .waitTime = 30, + .alertRadius = 240.0f, + .playerSearchInterval = 1, + .chaseSpeed = 5.3f, + .chaseTurnRate = 180, + .chaseUpdateInterval = 1, + .chaseRadius = 240.0f, + .unk_AI_2C = 1, +}; + +EvtScript N(EVS_NpcAI_Sentinel) = { + EVT_CALL(SetSelfVar, 0, 0) + EVT_CALL(SetSelfVar, 5, -650) + EVT_CALL(SetSelfVar, 6, 30) + EVT_CALL(SetSelfVar, 1, 600) + EVT_CALL(N(SentinelAI_Main), EVT_PTR(N(AISettings_Sentinel))) + EVT_CALL(DisablePlayerInput, TRUE) + EVT_WAIT(2) + EVT_LABEL(20) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_CALL(GetNpcPos, NPC_SELF, LVar3, LVar4, LVar5) + EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar4, LVar2) + EVT_CALL(GetPlayerActionState, LVar0) + EVT_IF_NE(LVar0, ACTION_STATE_IDLE) + EVT_WAIT(1) + EVT_GOTO(20) + EVT_END_IF + EVT_CALL(DisablePlayerPhysics, TRUE) + EVT_CALL(InterruptUsePartner) + EVT_CALL(DisablePartnerAI, 0) + EVT_SET_GROUP(EVT_GROUP_00) + EVT_CALL(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_ADD(LVar1, 20) + EVT_ADD(LVar2, 2) + EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) + EVT_CALL(func_80045838, -1, 759, 0) + EVT_CALL(SetNpcAnimation, NPC_SELF, ANIM_Sentinel_Anim08) + EVT_WAIT(10) + EVT_CALL(SetPlayerAnimation, ANIM_Mario_80017) + EVT_WAIT(10) + EVT_CALL(func_80045838, -1, 1838, 0) + EVT_THREAD + EVT_LOOP(100) + EVT_CALL(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) + EVT_ADD(LVar1, 1) + EVT_CALL(SetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) + EVT_CALL(GetPlayerPos, LVar0, LVar1, LVar2) + EVT_ADD(LVar1, 1) + EVT_CALL(SetPlayerPos, LVar0, LVar1, LVar2) + EVT_WAIT(1) + EVT_END_LOOP + EVT_END_THREAD + EVT_THREAD + EVT_CALL(SetNpcAnimation, NPC_PARTNER, PARTNER_ANIM_HURT) + EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) + EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) + EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) + EVT_CALL(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + EVT_CALL(NpcJump0, NPC_PARTNER, LVar0, LVar1, LVar2, 10) + EVT_END_THREAD + EVT_WAIT(30) + EVT_CALL(GotoMap, EVT_PTR("dgb_00"), dgb_00_ENTRY_2) + EVT_WAIT(100) + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_UnusedSentinelOnHit) = { + EVT_CALL(GetOwnerEncounterTrigger, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(ENCOUNTER_TRIGGER_NONE) + EVT_CASE_OR_EQ(ENCOUNTER_TRIGGER_JUMP) + EVT_CASE_OR_EQ(ENCOUNTER_TRIGGER_HAMMER) + EVT_CASE_OR_EQ(ENCOUNTER_TRIGGER_PARTNER) + EVT_CALL(GetSelfAnimationFromTable, ENEMY_ANIM_INDEX_HIT, LVar0) + EVT_EXEC_WAIT(EVS_NpcHitRecoil) + EVT_END_CASE_GROUP + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +EvtScript N(EVS_UnusedSentinelDefeat) = { + EVT_CALL(GetBattleOutcome, LVar0) + EVT_SWITCH(LVar0) + EVT_CASE_EQ(OUTCOME_PLAYER_WON) + EVT_CALL(DoNpcDefeat) + EVT_CASE_EQ(OUTCOME_PLAYER_LOST) + EVT_CASE_EQ(OUTCOME_PLAYER_FLED) + EVT_END_SWITCH + EVT_RETURN + EVT_END +}; + +NpcSettings N(NpcSettings_Sentinel) = { + .height = 38, + .radius = 32, + .level = 99, + .otherAI = &N(EVS_NpcAuxAI_Sentinel), + .ai = &N(EVS_NpcAI_Sentinel), +}; diff --git a/src/world/common/enemy/complete/TubbaBlubba.h b/src/world/common/enemy/complete/TubbaBlubba.h index 074e74f3bf..1cde081c30 100644 --- a/src/world/common/enemy/complete/TubbaBlubba.h +++ b/src/world/common/enemy/complete/TubbaBlubba.h @@ -27,3 +27,23 @@ .anim_E = ANIM_WorldTubba_Anim00, \ .anim_F = ANIM_WorldTubba_Anim00, \ } + +#define TUBBA_ANGRY_ANIMS \ +{ \ + .idle = ANIM_WorldTubba_Anim07, \ + .walk = ANIM_WorldTubba_Anim0A, \ + .run = ANIM_WorldTubba_Anim0D, \ + .chase = ANIM_WorldTubba_Anim0D, \ + .anim_4 = ANIM_WorldTubba_Anim19, \ + .anim_5 = ANIM_WorldTubba_Anim07, \ + .death = ANIM_WorldTubba_Anim07, \ + .hit = ANIM_WorldTubba_Anim07, \ + .anim_8 = ANIM_WorldTubba_Anim07, \ + .anim_9 = ANIM_WorldTubba_Anim07, \ + .anim_A = ANIM_WorldTubba_Anim07, \ + .anim_B = ANIM_WorldTubba_Anim07, \ + .anim_C = ANIM_WorldTubba_Anim07, \ + .anim_D = ANIM_WorldTubba_Anim07, \ + .anim_E = ANIM_WorldTubba_Anim07, \ + .anim_F = ANIM_WorldTubba_Anim07, \ +} diff --git a/src/world/common/enemy/complete/TubbaBlubba_Patrol.inc.c b/src/world/common/enemy/complete/TubbaBlubba_Patrol.inc.c new file mode 100644 index 0000000000..1d1800508d --- /dev/null +++ b/src/world/common/enemy/complete/TubbaBlubba_Patrol.inc.c @@ -0,0 +1,32 @@ +#include "common.h" +#include "TubbaBlubba.h" + +#include "world/common/enemy/ai/PatrolNoAttackAI.inc.c" + +MobileAISettings N(AISettings_Tubba_Patrol) = { + .moveSpeed = 4.5f, + .alertRadius = 170.0f, + .alertOffsetDist = 90.0f, + .playerSearchInterval = 1, + .chaseSpeed = 3.9f, + .chaseTurnRate = 180, + .chaseUpdateInterval = 2, + .chaseRadius = 170.0f, + .chaseOffsetDist = 90.0f, + .unk_AI_2C = 1, +}; + +EvtScript N(EVS_NpcAI_Tubba_Patrol) = { + EVT_CALL(N(PatrolNoAttackAI_Main), EVT_PTR(N(AISettings_Tubba_Patrol))) + EVT_RETURN + EVT_END +}; + +NpcSettings N(NpcSettings_TubbaBlubba_Patrol) = { + .height = 90, + .radius = 65, + .level = 13, + .ai = &N(EVS_NpcAI_Tubba_Patrol), + .onHit = &EnemyNpcHit, + .onDefeat = &EnemyNpcDefeat, +}; diff --git a/src/world/common/todo/UnkDistFunc2.inc.c b/src/world/common/todo/UnkDistFunc2.inc.c deleted file mode 100644 index dca0ed683c..0000000000 --- a/src/world/common/todo/UnkDistFunc2.inc.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "common.h" - -ApiStatus N(UnkDistFunc2)(Evt* script, s32 isInitialCall) { - PlayerStatus* playerStatus = &gPlayerStatus; - f32 distance = dist2D( - playerStatus->position.x, playerStatus->position.z, - script->array[2], script->array[4]); - - script->varTable[0] = 0; - if (distance < 112.5f) { - script->varTable[0] = 2; - } - if (distance < 37.5f) { - script->varTable[0] = 1; - } - - return ApiStatus_DONE2; -} diff --git a/src/world/entrances.h b/src/world/entrances.h index f7e3282885..7edcfd2871 100644 --- a/src/world/entrances.h +++ b/src/world/entrances.h @@ -768,6 +768,7 @@ enum { arn_13_ENTRY_1 = 1, dgb_00_ENTRY_0 = 0, dgb_00_ENTRY_1 = 1, + dgb_00_ENTRY_2 = 2, dgb_01_ENTRY_0 = 0, dgb_01_ENTRY_1 = 1, dgb_01_ENTRY_2 = 2, diff --git a/src/world/world.c b/src/world/world.c index 87bc3b923d..4bccf97685 100644 --- a/src/world/world.c +++ b/src/world/world.c @@ -655,26 +655,27 @@ MapConfig arn_maps[] = { }; /// Tubba Blubba's Castle +#include "area_dgb/dgb.h" MapConfig dgb_maps[] = { - { MAP_UNSPLIT(dgb_00, 0x802400D0), .bgName = "arn_bg", .init = (MapInit)0x80240000 }, - { MAP_UNSPLIT(dgb_01, 0x80243460), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_02, 0x80241470), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_03, 0x80242830), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_04, 0x80243130), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_05, 0x802414A0), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_06, 0x802402E0), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_07, 0x80241450), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_08, 0x80243CB0), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_09, 0x80243840), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_10, 0x80240210), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_11, 0x80240090), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_12, 0x802402D0), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_13, 0x80240010), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_14, 0x80240020), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_15, 0x802418A0), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_16, 0x80241440), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_17, 0x80240020), .songVariation = 1, .sfxReverb = 2 }, - { MAP_UNSPLIT(dgb_18, 0x80241280), .songVariation = 1, .sfxReverb = 2 }, + { MAP_WITH_INIT(dgb_00), .bgName = "arn_bg" }, + { MAP(dgb_01), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_02), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_03), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_04), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_05), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_06), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_07), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_08), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_09), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_10), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_11), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_12), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_13), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_14), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_15), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_16), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_17), .songVariation = 1, .sfxReverb = 2 }, + { MAP(dgb_18), .songVariation = 1, .sfxReverb = 2 }, }; /// Mt. Lavalava diff --git a/ver/us/asm/data/world/area_jan/jan_03/B39530.data.s b/ver/us/asm/data/world/area_jan/jan_03/B39530.data.s index 06d0e09eea..039a7c4f69 100644 --- a/ver/us/asm/data/world/area_jan/jan_03/B39530.data.s +++ b/ver/us/asm/data/world/area_jan/jan_03/B39530.data.s @@ -198,7 +198,7 @@ dlabel D_80249BD4_B3E7A4 .word 0x00000043, 0x00000001, jan_03_Quizmo_ShouldAppear, 0x0000000A, 0x00000002, 0xFE363C80, 0x00000000, 0x00000002, 0x00000000, 0x00000013, 0x00000000, 0x00000043, 0x00000004, SetNpcFlagBits, 0xFFFFFFFF, 0x01000000, 0x00000000, 0x00000043, 0x00000003, SetNpcSprite, 0xFFFFFFFF, 0x00AF0001, 0x00000043, 0x00000001, jan_03_Quizmo_RenderInit, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_80249C48_B3E818 -.word 0x0000003C, 0x00000001, D_8024FEE0_C0D760, 0x00000024, 0x00000002, 0xF8406269, 0x00000001, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000001, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000001, 0x00000046, 0x00000001, D_80248EA4_B3DA74, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000000, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 +.word 0x0000003C, 0x00000001, jan_03_D_8024FEE0, 0x00000024, 0x00000002, 0xF8406269, 0x00000001, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000001, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000001, 0x00000046, 0x00000001, D_80248EA4_B3DA74, 0x00000043, 0x00000002, DisablePlayerPhysics, 0x00000000, 0x00000043, 0x00000003, SetPlayerFlagBits, 0x00400000, 0x00000000, 0x00000002, 0x00000000, 0x00000001, 0x00000000 dlabel D_80249CC8_B3E898 .word 0x00000043, 0x00000001, jan_03_Quizmo_NPC_Aux_Impl, 0x00000002, 0x00000000, 0x00000001, 0x00000000 diff --git a/ver/us/asm/nonmatchings/world/area_hos/hos_05/A2AAC0/func_802428C8_A2CB08.s b/ver/us/asm/nonmatchings/world/area_hos/hos_05/A2AAC0/func_802428C8_A2CB08.s index a7b8bd74ca..90d16662f6 100644 --- a/ver/us/asm/nonmatchings/world/area_hos/hos_05/A2AAC0/func_802428C8_A2CB08.s +++ b/ver/us/asm/nonmatchings/world/area_hos/hos_05/A2AAC0/func_802428C8_A2CB08.s @@ -106,8 +106,8 @@ glabel func_802428C8_A2CB08 /* A2CC24 802429E4 08090B41 */ j .L80242D04 /* A2CC28 802429E8 4600A521 */ cvt.d.s $f20, $f20 .L802429EC_A2CC2C: -/* A2CC2C 802429EC 3C108025 */ lui $s0, %hi(D_8024F420_C0CCA0) -/* A2CC30 802429F0 2610F420 */ addiu $s0, $s0, %lo(D_8024F420_C0CCA0) +/* A2CC2C 802429EC 3C108025 */ lui $s0, %hi(dgb_01_D_8024F420_C0CCA0) +/* A2CC30 802429F0 2610F420 */ addiu $s0, $s0, %lo(dgb_01_D_8024F420_C0CCA0) /* A2CC34 802429F4 0200902D */ daddu $s2, $s0, $zero /* A2CC38 802429F8 2415001E */ addiu $s5, $zero, 0x1e /* A2CC3C 802429FC 8E22000C */ lw $v0, 0xc($s1) @@ -257,8 +257,8 @@ glabel func_802428C8_A2CB08 /* A2CE60 80242C20 08090B41 */ j .L80242D04 /* A2CE64 80242C24 4600A521 */ cvt.d.s $f20, $f20 .L80242C28_A2CE68: -/* A2CE68 80242C28 3C108025 */ lui $s0, %hi(D_8024F4C0_C0CD40) -/* A2CE6C 80242C2C 2610F4C0 */ addiu $s0, $s0, %lo(D_8024F4C0_C0CD40) +/* A2CE68 80242C28 3C108025 */ lui $s0, %hi(hos_05_D_8024F4C0) +/* A2CE6C 80242C2C 2610F4C0 */ addiu $s0, $s0, %lo(hos_05_D_8024F4C0) /* A2CE70 80242C30 0200902D */ daddu $s2, $s0, $zero /* A2CE74 80242C34 2415001E */ addiu $s5, $zero, 0x1e /* A2CE78 80242C38 8E22000C */ lw $v0, 0xc($s1) diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 4c1c4089d9..398a8e2bc4 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -12823,8 +12823,11 @@ segments: start: 0xBFA0A0 vram: 0x80240000 subsegments: - - [0xBFA0A0, c, BFA0A0] - - [0xBFA100, c, BFA100] + - [0xBFA0A0, c, dgb_00_0_header] + - [0xBFA0A0, c, dgb_00_1_music] + - [0xBFA0A0, c, dgb_00_2_main] + - [0xBFA100, c, dgb_00_3_npc] + - [0xBFA150, c, dgb_00_4_entity] - [0xBFA150] - name: dgb_01 dir: world/area_dgb/dgb_01 @@ -12832,38 +12835,87 @@ segments: start: 0xBFD880 vram: 0x80240000 subsegments: - - [0xBFD880, c, BFD880] - - [0xBFD8C0, c, BFD8C0] - - [0xBFD9A0, c, BFD9A0] - - [0xC00C70, .data, BFD9A0] - - [0xC047F0, rgba16, img0, 64, 32] - - [0xC057F0, .data, data0] - - [0xC05870, rgba16, img1, 64, 32] - - [0xC06870, .data, data1] - - [0xC068F0, rgba16, img2, 32, 32] - - [0xC070F0, .data, data2] - - [0xC07170, rgba16, img3, 16, 32] - - [0xC07570, .data, data3] - - [0xC075F0, rgba16, img4, 16, 32] - - [0xC079F0, .data, data4] - - [0xC07A70, rgba16, img5, 16, 32] - - [0xC07E70, .data, data5] - - [0xC07EF0, rgba16, img6, 32, 32] - - [0xC086F0, .data, data6] - - [0xC08770, rgba16, img7, 32, 32] - - [0xC08F70, .data, data7] - - [0xC08FF0, .data, data] + - [0xBFD880, c, dgb_01_0_header] + - [0xBFD880, c, dgb_01_1_music] + - [0xBFD880, c, dgb_01_2_main] + - [0xBFD880, c, dgb_01_3_bridges] + - [0xBFD8C0, c, dgb_01_4_entity] + - [0xBFD9A0, c, dgb_01_5_npc] + - [0xC00C70, c, dgb_01_6_img0] + - [0xC00C70, c, dgb_01_6_img1] + - [0xC00C70, c, dgb_01_6_img2] + - [0xC00C70, c, dgb_01_6_img3] + - [0xC00C70, c, dgb_01_6_img4] + - [0xC00C70, c, dgb_01_6_img5] + - [0xC00C70, c, dgb_01_6_img6] + - [0xC00C70, c, dgb_01_6_img7] + - [0xC00C70, c, dgb_01_7] + - [0xC00C70, .data, dgb_01_0_header] + - [0xC00D20, .data, dgb_01_1_music] + - [0xC00DD0, .data, dgb_01_2_main] + - [0xC01770, .data, dgb_01_3_bridges] + - [0xC02350, .data, dgb_01_4_entity] + - [0xC02550, .data, dgb_01_5_npc] + - start: 0xC047F0 + type: .data + name: dgb_01_6_img0 + subsegments: + - [0xC047F0, rgba16, img0, 64, 32] + - [0xC057F0, gfx, img0] + - start: 0xC05870 + type: .data + name: dgb_01_6_img1 + subsegments: + - [0xC05870, rgba16, img1, 64, 32] + - [0xC06870, gfx, img1] + - start: 0xC068F0 + type: .data + name: dgb_01_6_img2 + subsegments: + - [0xC068F0, rgba16, img2, 32, 32] + - [0xC070F0, gfx, img2] + - start: 0xC07170 + type: .data + name: dgb_01_6_img3 + subsegments: + - [0xC07170, rgba16, img3, 16, 32] + - [0xC07570, gfx, img3] + - start: 0xC075F0 + type: .data + name: dgb_01_6_img4 + subsegments: + - [0xC075F0, rgba16, img4, 16, 32] + - [0xC079F0, gfx, img4] + - start: 0xC07A70 + type: .data + name: dgb_01_6_img5 + subsegments: + - [0xC07A70, rgba16, img5, 16, 32] + - [0xC07E70, gfx, img5] + - start: 0xC07EF0 + type: .data + name: dgb_01_6_img6 + subsegments: + - [0xC07EF0, rgba16, img6, 32, 32] + - [0xC086F0, gfx, img6] + - start: 0xC08770 + type: .data + name: dgb_01_6_img7 + subsegments: + - [0xC08770, rgba16, img7, 32, 32] + - [0xC08F70, gfx, img7] + - [0xC08FF0, .data, dgb_01_7] # TODO needs additioanl cleanup and gfx splitting - [0xC20C70] - - name: C20F40 # DMAd at the beginning of tubba blubba's castle (bridge cutscene) + - name: dgb_01_smash_bridges # DMAd at the beginning of tubba blubba's castle (bridge cutscene) type: code dir: world/area_dgb start: 0xC20F40 vram: 0x80200000 subsegments: - - [0xC20F40, c, C20F40] + - [0xC20F40, c, dgb_01_smash_bridges] - start: 0xC20F40 type: .data - name: C20F40 + name: dgb_01_smash_bridges subsegments: - [0xC20F40, vtx, vtx/C20F40] - [0xC21100, vtx, vtx/C21100] @@ -13161,7 +13213,10 @@ segments: start: 0xC2EBA0 vram: 0x80240000 subsegments: - - [0xC2EBA0, c, C2EBA0] + - [0xC2EBA0, c, dgb_02_0_header] + - [0xC2EBA0, c, dgb_02_1_music] + - [0xC2EBA0, c, dgb_02_2_main] + - [0xC2EBA0, c, dgb_02_3_npc] - [0xC2FFD0] - name: dgb_03 dir: world/area_dgb/dgb_03 @@ -13169,8 +13224,12 @@ segments: start: 0xC314E0 vram: 0x80240000 subsegments: - - [0xC314E0, c, C314E0] - - [0xC31730, c, C31730] + - [0xC314E0, c, dgb_03_0_header] + - [0xC314E0, c, dgb_03_1_music] + - [0xC314E0, c, dgb_03_2_main] + - [0xC314E0, c, dgb_03_3_clock] + - [0xC314E0, c, dgb_03_4_entity] + - [0xC31730, c, dgb_03_5_npc] - [0xC33CB0] - name: dgb_04 dir: world/area_dgb/dgb_04 @@ -13178,7 +13237,11 @@ segments: start: 0xC36530 vram: 0x80240000 subsegments: - - [0xC36530, c, C36530] + - [0xC36530, c, dgb_04_0_header] + - [0xC36530, c, dgb_04_1_music] + - [0xC36530, c, dgb_04_2_main] + - [0xC36530, c, dgb_04_3_npc] + - [0xC38900, c, dgb_04_4_entity] - [0xC39640] - name: dgb_05 dir: world/area_dgb/dgb_05 @@ -13186,7 +13249,12 @@ segments: start: 0xC3AA10 vram: 0x80240000 subsegments: - - [0xC3AA10, c, C3AA10] + - [0xC3AA10, c, dgb_05_0_header] + - [0xC3AA10, c, dgb_05_1_music] + - [0xC3AA10, c, dgb_05_2_main] + - [0xC3AA10, c, dgb_05_3_hole] + - [0xC3AA10, c, dgb_05_4_entity] + - [0xC3AA70, c, dgb_05_5_npc] - [0xC3BEA0] - name: dgb_06 dir: world/area_dgb/dgb_06 @@ -13194,7 +13262,11 @@ segments: start: 0xC3D080 vram: 0x80240000 subsegments: - - [0xC3D080, c, C3D080] + - [0xC3D080, c, dgb_06_0_header] + - [0xC3D080, c, dgb_06_1_music] + - [0xC3D080, c, dgb_06_2_main] + - [0xC3D080, c, dgb_06_3_entity] + - [0xC3D080, c, dgb_06_4_npc] - [0xC3D340] - name: dgb_07 dir: world/area_dgb/dgb_07 @@ -13202,7 +13274,11 @@ segments: start: 0xC3DBF0 vram: 0x80240000 subsegments: - - [0xC3DBF0, c, C3DBF0] + - [0xC3DBF0, c, dgb_07_0_header] + - [0xC3DBF0, c, dgb_07_1_music] + - [0xC3DBF0, c, dgb_07_2_main] + - [0xC3DBF0, c, dgb_07_3_entity] + - [0xC3DBF0, c, dgb_07_4_npc] - [0xC3F020] - name: dgb_08 dir: world/area_dgb/dgb_08 @@ -13210,7 +13286,11 @@ segments: start: 0xC3FDB0 vram: 0x80240000 subsegments: - - [0xC3FDB0, c, C3FDB0] + - [0xC3FDB0, c, dgb_08_0_header] + - [0xC3FDB0, c, dgb_08_1_music] + - [0xC3FDB0, c, dgb_08_2_main] + - [0xC3FDB0, c, dgb_08_3_npc] + - [0xC43A40, c, dgb_08_4_entity] - [0xC43A40] - name: dgb_09 dir: world/area_dgb/dgb_09 @@ -13218,7 +13298,11 @@ segments: start: 0xC46BE0 vram: 0x80240000 subsegments: - - [0xC46BE0, c, C46BE0] + - [0xC46BE0, c, dgb_09_0_header] + - [0xC46BE0, c, dgb_09_1_music] + - [0xC46BE0, c, dgb_09_2_main] + - [0xC46BE0, c, dgb_09_3_breakable] + - [0xC46BE0, c, dgb_09_4_npc] - [0xC4A3E0] - name: dgb_10 dir: world/area_dgb/dgb_10 @@ -13226,7 +13310,11 @@ segments: start: 0xC4C390 vram: 0x80240000 subsegments: - - [0xC4C390, c, C4C390] + - [0xC4C390, c, dgb_10_0_header] + - [0xC4C390, c, dgb_10_1_music] + - [0xC4C390, c, dgb_10_2_main] + - [0xC4C390, c, dgb_10_3_hole] + - [0xC4C580, c, dgb_10_4_entity] - [0xC4C580] - name: dgb_11 dir: world/area_dgb/dgb_11 @@ -13234,7 +13322,10 @@ segments: start: 0xC4D3E0 vram: 0x80240000 subsegments: - - [0xC4D3E0, c, C4D3E0] + - [0xC4D3E0, c, dgb_11_0_header] + - [0xC4D3E0, c, dgb_11_1_music] + - [0xC4D3E0, c, dgb_11_2_main] + - [0xC4D3E0, c, dgb_11_3_entity] - [0xC4D430] - name: dgb_12 dir: world/area_dgb/dgb_12 @@ -13242,7 +13333,11 @@ segments: start: 0xC4DEF0 vram: 0x80240000 subsegments: - - [0xC4DEF0, c, C4DEF0] + - [0xC4DEF0, c, dgb_12_0_header] + - [0xC4DEF0, c, dgb_12_1_music] + - [0xC4DEF0, c, dgb_12_2_main] + - [0xC4DEF0, c, dgb_12_3_spikes] + - [0xC4DEF0, c, dgb_12_4_entity] - [0xC4E1B0] - name: dgb_13 dir: world/area_dgb/dgb_13 @@ -13250,7 +13345,11 @@ segments: start: 0xC4E960 vram: 0x80240000 subsegments: - - [0xC4E960, c, C4E960] + - [0xC4E960, c, dgb_13_0_header] + - [0xC4E960, c, dgb_13_1_music] + - [0xC4E960, c, dgb_13_2_main] + - [0xC4E960, c, dgb_13_3_entity] + - [0xC4E960, c, dgb_13_4_drawer] - [0xC4E960] - name: dgb_14 dir: world/area_dgb/dgb_14 @@ -13258,7 +13357,10 @@ segments: start: 0xC4F030 vram: 0x80240000 subsegments: - - [0xC4F030, c, C4F030] + - [0xC4F030, c, dgb_14_0_header] + - [0xC4F030, c, dgb_14_1_music] + - [0xC4F030, c, dgb_14_2_main] + - [0xC4F030, c, dgb_14_3_entity] - [0xC4F030] - name: dgb_15 dir: world/area_dgb/dgb_15 @@ -13266,8 +13368,11 @@ segments: start: 0xC4F510 vram: 0x80240000 subsegments: - - [0xC4F510, c, C4F510] - - [0xC50CA0, c, C50CA0] + - [0xC4F510, c, dgb_15_0_header] + - [0xC4F510, c, dgb_15_1_music] + - [0xC4F510, c, dgb_15_2_main] + - [0xC4F510, c, dgb_15_3_npc] + - [0xC50CA0, c, dgb_15_4_entity] - [0xC50D80] - name: dgb_16 dir: world/area_dgb/dgb_16 @@ -13275,7 +13380,11 @@ segments: start: 0xC52540 vram: 0x80240000 subsegments: - - [0xC52540, c, C52540] + - [0xC52540, c, dgb_16_0_header] + - [0xC52540, c, dgb_16_1_music] + - [0xC52540, c, dgb_16_2_main] + - [0xC52540, c, dgb_16_3_entity] + - [0xC52540, c, dgb_16_4_npc] - [0xC53970] - name: dgb_17 dir: world/area_dgb/dgb_17 @@ -13283,7 +13392,10 @@ segments: start: 0xC55A60 vram: 0x80240000 subsegments: - - [0xC55A60, c, C55A60] + - [0xC55A60, c, dgb_17_0_header] + - [0xC55A60, c, dgb_17_1_music] + - [0xC55A60, c, dgb_17_2_main] + - [0xC55A60, c, dgb_17_3_entity] - [0xC55A60] - name: dgb_18 dir: world/area_dgb/dgb_18 @@ -13291,8 +13403,11 @@ segments: start: 0xC55F40 vram: 0x80240000 subsegments: - - [0xC55F40, c, C55F40] - - [0xC56EF0, c, C56EF0] + - [0xC55F40, c, dgb_18_0_header] + - [0xC55F40, c, dgb_18_1_music] + - [0xC55F40, c, dgb_18_2_main] + - [0xC55F40, c, dgb_18_3_npc] + - [0xC56EF0, c, dgb_18_4_entity] - [0xC571B0] - name: kzn_01 dir: world/area_kzn/kzn_01 diff --git a/ver/us/symbol_addrs.txt b/ver/us/symbol_addrs.txt index 822100affa..f3d1d7f6dd 100644 --- a/ver/us/symbol_addrs.txt +++ b/ver/us/symbol_addrs.txt @@ -20588,7 +20588,7 @@ dgb_00_makeEntities = 0x80243760; // type:data rom:0xBFD800 D_802437A0_BFD840 = 0x802437A0; // type:data rom:0xBFD840 D_802437B0_BFD850 = 0x802437B0; // type:data rom:0xBFD850 D_802437BC_BFD85C = 0x802437BC; // type:data rom:0xBFD85C -dgb_01_func_80240000_BFD880 = 0x80240000; // type:func rom:0xBFD880 +dgb_01_LoadSmashBridgesGraphics = 0x80240000; // type:func rom:0xBFD880 dgb_01_RemovePadlock = 0x80240040; // type:func rom:0xBFD8C0 dgb_01_GetEntityPosition = 0x80240074; // type:func rom:0xBFD8F4 dgb_01_FlyingAI_WanderInit = 0x80240120; // type:func rom:0xBFD9A0 @@ -20640,7 +20640,7 @@ dgb_01_enterDoubleDoor_80243A3C = 0x80243A3C; // type:data rom:0xC012BC dgb_01_itemList_80243C40 = 0x80243C40; // type:data rom:0xC014C0 dgb_01_main = 0x80243C48; // type:data rom:0xC014C8 dgb_01_80243EF0 = 0x80243EF0; // type:data rom:0xC01770 -dgb_01_802449C4 = 0x802449C4; // type:data rom:0xC02244 +dgb_01_EVS_SetupBridges = 0x802449C4; // type:data rom:0xC02244 dgb_01_80244AD0 = 0x80244AD0; // type:data rom:0xC02350 dgb_01_80244C38 = 0x80244C38; // type:data rom:0xC024B8 dgb_01_makeEntities = 0x80244C64; // type:data rom:0xC024E4 @@ -20679,19 +20679,27 @@ dgb_01_npcGroupList_80246E50 = 0x80246E50; // type:data rom:0xC046D0 dgb_01_npcGroupList_80246E8C = 0x80246E8C; // type:data rom:0xC0470C dgb_01_npcGroupList_80246ED4 = 0x80246ED4; // type:data rom:0xC04754 dgb_01_npcGroupList_80246F1C = 0x80246F1C; // type:data rom:0xC0479C -D_80247F70_C057F0 = 0x80247F70; // type:data rom:0xC057F0 -D_80248FF0_C06870 = 0x80248FF0; // type:data rom:0xC06870 -D_80249870_C070F0 = 0x80249870; // type:data rom:0xC070F0 -D_80249CF0_C07570 = 0x80249CF0; // type:data rom:0xC07570 -D_8024A170_C079F0 = 0x8024A170; // type:data rom:0xC079F0 -D_8024A5F0_C07E70 = 0x8024A5F0; // type:data rom:0xC07E70 -D_8024AE70_C086F0 = 0x8024AE70; // type:data rom:0xC086F0 -D_8024B6F0_C08F70 = 0x8024B6F0; // type:data rom:0xC08F70 +dgb_01_img0_png = 0x80246F70; // segment:dgb_01 type:data rom:0xC047F0 +dgb_01_img0_gfx = 0x80247F70; // segment:dgb_01 type:data rom:0xC057F0 +dgb_01_img1_png = 0x80247FF0; // segment:dgb_01 type:data rom:0xC05870 +dgb_01_img1_gfx = 0x80248FF0; // segment:dgb_01 type:data rom:0xC06870 +dgb_01_img2_png = 0x80249070; // segment:dgb_01 type:data rom:0xC068F0 +dgb_01_img2_gfx = 0x80249870; // segment:dgb_01 type:data rom:0xC070F0 +dgb_01_img3_png = 0x802498F0; // segment:dgb_01 type:data rom:0xC07170 +dgb_01_img3_gfx = 0x80249CF0; // segment:dgb_01 type:data rom:0xC07570 +dgb_01_img4_png = 0x80249D70; // segment:dgb_01 type:data rom:0xC075F0 +dgb_01_img4_gfx = 0x8024A170; // segment:dgb_01 type:data rom:0xC079F0 +dgb_01_img5_png = 0x8024A1F0; // segment:dgb_01 type:data rom:0xC07A70 +dgb_01_img5_gfx = 0x8024A5F0; // segment:dgb_01 type:data rom:0xC07E70 +dgb_01_img6_png = 0x8024A670; // segment:dgb_01 type:data rom:0xC07EF0 +dgb_01_img6_gfx = 0x8024AE70; // segment:dgb_01 type:data rom:0xC086F0 +dgb_01_img7_png = 0x8024AEF0; // segment:dgb_01 type:data rom:0xC08770 +dgb_01_img7_gfx = 0x8024B6F0; // segment:dgb_01 type:data rom:0xC08F70 D_8024B770_C08FF0 = 0x8024B770; // type:data rom:0xC08FF0 D_8024B8F8_C09178 = 0x8024B8F8; // type:data rom:0xC09178 D_8024BAA0_C09320 = 0x8024BAA0; // type:data rom:0xC09320 D_8024BC48_C094C8 = 0x8024BC48; // type:data rom:0xC094C8 -D_8024BCF8_C09578 = 0x8024BCF8; // type:data rom:0xC09578 +dgb_01_D_8024BCF8_C09578 = 0x8024BCF8; // type:data rom:0xC09578 D_8024BD80_C09600 = 0x8024BD80; // type:data rom:0xC09600 D_8024BDC8_C09648 = 0x8024BDC8; // type:data rom:0xC09648 D_8024BE28_C096A8 = 0x8024BE28; // type:data rom:0xC096A8 @@ -20747,7 +20755,7 @@ D_8024DC50_C0B4D0 = 0x8024DC50; // type:data rom:0xC0B4D0 D_8024DD28_C0B5A8 = 0x8024DD28; // type:data rom:0xC0B5A8 D_8024DD60_C0B5E0 = 0x8024DD60; // type:data rom:0xC0B5E0 D_8024DEC0_C0B740 = 0x8024DEC0; // type:data rom:0xC0B740 -sam_01_Quizmo_Worker = 0x8024DEF8; // type:data rom:0xC0B778 +dgb_01_D_8024DEF8 = 0x8024DEF8; // type:data rom:0xC0B778 D_8024DFA0_C0B820 = 0x8024DFA0; // type:data rom:0xC0B820 D_8024E020_C0B8A0 = 0x8024E020; // type:data rom:0xC0B8A0 D_8024E0A8_C0B928 = 0x8024E0A8; // type:data rom:0xC0B928 @@ -20976,7 +20984,7 @@ dgb_01_D_80252E9C_C1071C = 0x80252E9C; // type:data rom:0xC1071C dgb_01_D_80252EC8_C10748 = 0x80252EC8; // type:data rom:0xC10748 dgb_01_D_80252EF4_C10774 = 0x80252EF4; // type:data rom:0xC10774 dgb_01_D_80252F20_C107A0 = 0x80252F20; // type:data rom:0xC107A0 -dgb_01_D_80252F4C_C107CC = 0x80252F4C; // type:data rom:0xC107CC +dgb_01_SmashBridgesSkeleton = 0x80252F4C; // type:data rom:0xC107CC dgb_01_D_80253140_C109C0 = 0x80253140; // type:data rom:0xC109C0 dgb_01_D_80253148_C109C8 = 0x80253148; // type:data rom:0xC109C8 dgb_01_D_80253160_C109E0 = 0x80253160; // type:data rom:0xC109E0 @@ -21012,7 +21020,7 @@ dgb_01_D_802538A0_C11120 = 0x802538A0; // type:data rom:0xC11120 dgb_01_D_802538E0_C11160 = 0x802538E0; // type:data rom:0xC11160 dgb_01_D_80253920_C111A0 = 0x80253920; // type:data rom:0xC111A0 dgb_01_D_80253960_C111E0 = 0x80253960; // type:data rom:0xC111E0 -dgb_01_D_802539A0_C11220 = 0x802539A0; // type:data rom:0xC11220 +dgb_01_AS_SmashBridges = 0x802539A0; // type:data rom:0xC11220 D_80263420_C20CA0 = 0x80263420; // type:data rom:0xC20CA0 D_80263428_C20CA8 = 0x80263428; // type:data rom:0xC20CA8 D_80263430_C20CB0 = 0x80263430; // type:data rom:0xC20CB0 @@ -21750,8 +21758,8 @@ dgb_09_triggerCoord_80243E50 = 0x80243E50; // type:data rom:0xC4AA30 dgb_09_80243E60 = 0x80243E60; // type:data rom:0xC4AA40 dgb_09_80243F6C = 0x80243F6C; // type:data rom:0xC4AB4C dgb_09_80244000 = 0x80244000; // type:data rom:0xC4ABE0 -dgb_09_extraAnimationList_802440BC = 0x802440BC; // type:data rom:0xC4AC9C -dgb_09_extraAnimationList_802440E4 = 0x802440E4; // type:data rom:0xC4ACC4 +dgb_09_ExtraAnims_Clubba = 0x802440BC; // type:data rom:0xC4AC9C +dgb_09_ExtraAnims_Clubba_Hitbox = 0x802440E4; // type:data rom:0xC4ACC4 dgb_09_npcAISettings_802440EC = 0x802440EC; // type:data rom:0xC4ACCC dgb_09_npcAI_8024411C = 0x8024411C; // type:data rom:0xC4ACFC dgb_09_npcSettings_8024418C = 0x8024418C; // type:data rom:0xC4AD6C @@ -21796,7 +21804,7 @@ dgb_10_80240770 = 0x80240770; // type:data rom:0xC4CB00 dgb_10_80240860 = 0x80240860; // type:data rom:0xC4CBF0 dgb_10_80240AF4 = 0x80240AF4; // type:data rom:0xC4CE84 dgb_10_80240CB8 = 0x80240CB8; // type:data rom:0xC4D048 -dgb_10_80240E68 = 0x80240E68; // type:data rom:0xC4D1F8 +dgb_10_EVS_SetupHoles = 0x80240E68; // type:data rom:0xC4D1F8 dgb_10_80240EE0 = 0x80240EE0; // type:data rom:0xC4D270 dgb_10_80240F00 = 0x80240F00; // type:data rom:0xC4D290 dgb_10_80240F20 = 0x80240F20; // type:data rom:0xC4D2B0 diff --git a/ver/us/undefined_syms.txt b/ver/us/undefined_syms.txt index aa2f884dba..d43b3ac8a5 100644 --- a/ver/us/undefined_syms.txt +++ b/ver/us/undefined_syms.txt @@ -103,6 +103,8 @@ kmr_02_Quizmo_VannaTEffect = 0x80257F50; // broken map symbols hos_06_D_80246430 = 0x80246430; +jan_03_D_8024FEE0 = 0x8024FEE0; +hos_05_D_8024F4C0 = 0x8024F4C0; // os stuff osTvType = 0x80000300;