diff --git a/include/tables/scene_table.h b/include/tables/scene_table.h index 66076f87c5..c35f3779aa 100644 --- a/include/tables/scene_table.h +++ b/include/tables/scene_table.h @@ -9,114 +9,114 @@ * - Argument 5: ? (Unknown) * - Argument 6: ? (Unknown) */ -/* 0x00 */ DEFINE_SCENE(ydan_scene, g_pn_06, SCENE_YDAN, 19, 1, 2) -/* 0x01 */ DEFINE_SCENE(ddan_scene, g_pn_08, SCENE_DDAN, 20, 1, 3) -/* 0x02 */ DEFINE_SCENE(bdan_scene, g_pn_07, SCENE_BDAN, 21, 1, 4) -/* 0x03 */ DEFINE_SCENE(Bmori1_scene, g_pn_01, SCENE_BMORI1, 22, 2, 5) -/* 0x04 */ DEFINE_SCENE(HIDAN_scene, g_pn_03, SCENE_HIDAN, 18, 2, 6) -/* 0x05 */ DEFINE_SCENE(MIZUsin_scene, g_pn_04, SCENE_MIZUSIN, 23, 1, 7) -/* 0x06 */ DEFINE_SCENE(jyasinzou_scene, g_pn_05, SCENE_JYASINZOU, 25, 1, 8) -/* 0x07 */ DEFINE_SCENE(HAKAdan_scene, g_pn_02, SCENE_HAKADAN, 24, 2, 9) -/* 0x08 */ DEFINE_SCENE(HAKAdanCH_scene, g_pn_54, SCENE_HAKADANCH, 24, 2, 10) -/* 0x09 */ DEFINE_SCENE(ice_doukutu_scene, g_pn_10, SCENE_ICE_DOUKUTO, 37, 0, 0) -/* 0x0A */ DEFINE_SCENE(ganon_scene, none, SCENE_GANON, 0, 2, 0) -/* 0x0B */ DEFINE_SCENE(men_scene, g_pn_11, SCENE_MEN, 27, 0, 0) -/* 0x0C */ DEFINE_SCENE(gerudoway_scene, g_pn_49, SCENE_GERUDOWAY, 40, 0, 0) -/* 0x0D */ DEFINE_SCENE(ganontika_scene, g_pn_09, SCENE_GANONTIKA, 26, 0, 0) -/* 0x0E */ DEFINE_SCENE(ganon_sonogo_scene, none, SCENE_GANON_SONOGO, 51, 0, 0) -/* 0x0F */ DEFINE_SCENE(ganontikasonogo_scene, none, SCENE_GANONTIKA_SONOGO, 52, 0, 0) -/* 0x10 */ DEFINE_SCENE(takaraya_scene, g_pn_51, SCENE_TAKARAYA, 0, 0, 0) -/* 0x11 */ DEFINE_SCENE(ydan_boss_scene, none, SCENE_YDAN_BOSS, 28, 0, 0) -/* 0x12 */ DEFINE_SCENE(ddan_boss_scene, none, SCENE_DDAN_BOSS, 0, 0, 0) -/* 0x13 */ DEFINE_SCENE(bdan_boss_scene, none, SCENE_BDAN_BOSS, 21, 0, 0) -/* 0x14 */ DEFINE_SCENE(moribossroom_scene, none, SCENE_MORIBOSSROOM, 0, 1, 0) -/* 0x15 */ DEFINE_SCENE(FIRE_bs_scene, none, SCENE_FIRE_BS, 18, 0, 0) -/* 0x16 */ DEFINE_SCENE(MIZUsin_bs_scene, none, SCENE_MIZUSIN_BS, 29, 0, 0) -/* 0x17 */ DEFINE_SCENE(jyasinboss_scene, none, SCENE_JYASINBOSS, 0, 0, 0) -/* 0x18 */ DEFINE_SCENE(HAKAdan_bs_scene, none, SCENE_HAKADAN_BS, 24, 0, 0) -/* 0x19 */ DEFINE_SCENE(ganon_boss_scene, none, SCENE_GANON_BOSS, 0, 0, 0) -/* 0x1A */ DEFINE_SCENE(ganon_final_scene, none, SCENE_GANON_FINAL, 38, 0, 0) -/* 0x1B */ DEFINE_SCENE(entra_scene, none, SCENE_ENTRA, 0, 0, 0) -/* 0x1C */ DEFINE_SCENE(entra_n_scene, none, SCENE_ENTRA_N, 0, 0, 0) -/* 0x1D */ DEFINE_SCENE(enrui_scene, none, SCENE_ENRUI, 0, 0, 0) -/* 0x1E */ DEFINE_SCENE(market_alley_scene, g_pn_18, SCENE_MARKET_ALLEY, 0, 0, 0) -/* 0x1F */ DEFINE_SCENE(market_alley_n_scene, g_pn_18, SCENE_MARKET_ALLEY_N, 0, 0, 0) -/* 0x20 */ DEFINE_SCENE(market_day_scene, g_pn_17, SCENE_MARKET_DAY, 0, 0, 0) -/* 0x21 */ DEFINE_SCENE(market_night_scene, g_pn_17, SCENE_MARKET_NIGHT, 0, 0, 0) -/* 0x22 */ DEFINE_SCENE(market_ruins_scene, g_pn_17, SCENE_MARKET_RUINS, 0, 0, 0) -/* 0x23 */ DEFINE_SCENE(shrine_scene, none, SCENE_SHRINE, 0, 0, 0) -/* 0x24 */ DEFINE_SCENE(shrine_n_scene, none, SCENE_SHRINE_N, 0, 0, 0) -/* 0x25 */ DEFINE_SCENE(shrine_r_scene, none, SCENE_SHRINE_R, 0, 0, 0) -/* 0x26 */ DEFINE_SCENE(kokiri_home_scene, none, SCENE_KOKIRI_HOME, 0, 0, 0) -/* 0x27 */ DEFINE_SCENE(kokiri_home3_scene, none, SCENE_KOKIRI_HOME3, 0, 0, 0) -/* 0x28 */ DEFINE_SCENE(kokiri_home4_scene, none, SCENE_KOKIRI_HOME4, 0, 0, 0) -/* 0x29 */ DEFINE_SCENE(kokiri_home5_scene, none, SCENE_KOKIRI_HOME5, 0, 0, 0) -/* 0x2A */ DEFINE_SCENE(kakariko_scene, none, SCENE_KAKARIKO, 0, 0, 0) -/* 0x2B */ DEFINE_SCENE(kakariko3_scene, none, SCENE_KAKARIKO3, 0, 0, 0) -/* 0x2C */ DEFINE_SCENE(shop1_scene, g_pn_23, SCENE_SHOP1, 0, 0, 0) -/* 0x2D */ DEFINE_SCENE(kokiri_shop_scene, g_pn_19, SCENE_KOKIRI_SHOP, 0, 0, 0) -/* 0x2E */ DEFINE_SCENE(golon_scene, g_pn_20, SCENE_GOLON, 0, 0, 0) -/* 0x2F */ DEFINE_SCENE(zoora_scene, g_pn_21, SCENE_ZOORA, 0, 0, 0) -/* 0x30 */ DEFINE_SCENE(drag_scene, g_pn_24, SCENE_DRAG, 0, 0, 0) -/* 0x31 */ DEFINE_SCENE(alley_shop_scene, g_pn_24, SCENE_ALLEY_SHOP, 0, 0, 0) -/* 0x32 */ DEFINE_SCENE(night_shop_scene, g_pn_56, SCENE_NIGHT_SHOP, 0, 0, 0) -/* 0x33 */ DEFINE_SCENE(face_shop_scene, g_pn_50, SCENE_FACE_SHOP, 0, 0, 0) -/* 0x34 */ DEFINE_SCENE(link_home_scene, none, SCENE_LINK_HOME, 0, 0, 0) -/* 0x35 */ DEFINE_SCENE(impa_scene, none, SCENE_IMPA, 0, 0, 0) -/* 0x36 */ DEFINE_SCENE(malon_stable_scene, g_pn_48, SCENE_MALON_STABLE, 0, 0, 0) -/* 0x37 */ DEFINE_SCENE(labo_scene, none, SCENE_LABO, 0, 0, 0) -/* 0x38 */ DEFINE_SCENE(hylia_labo_scene, g_pn_26, SCENE_HYLIA_LABO, 43, 0, 0) -/* 0x39 */ DEFINE_SCENE(tent_scene, none, SCENE_TENT, 0, 0, 0) -/* 0x3A */ DEFINE_SCENE(hut_scene, g_pn_25, SCENE_HUT, 0, 0, 0) -/* 0x3B */ DEFINE_SCENE(daiyousei_izumi_scene, g_pn_13, SCENE_DAIYOUSEI_IZUMI, 33, 0, 0) -/* 0x3C */ DEFINE_SCENE(yousei_izumi_tate_scene, g_pn_45, SCENE_YOUSEI_IZUMI_TATE, 39, 0, 0) -/* 0x3D */ DEFINE_SCENE(yousei_izumi_yoko_scene, g_pn_13, SCENE_YOUSEI_IZUMI_YOKO, 33, 0, 0) -/* 0x3E */ DEFINE_SCENE(kakusiana_scene, none, SCENE_KAKUSIANA, 31, 0, 0) -/* 0x3F */ DEFINE_SCENE(hakaana_scene, none, SCENE_HAKAANA, 48, 0, 0) -/* 0x40 */ DEFINE_SCENE(hakaana2_scene, none, SCENE_HAKAANA2, 39, 0, 0) -/* 0x41 */ DEFINE_SCENE(hakaana_ouke_scene, g_pn_44, SCENE_HAKAANA_OUKE, 42, 0, 0) -/* 0x42 */ DEFINE_SCENE(syatekijyou_scene, g_pn_15, SCENE_SYATEKIJYOU, 34, 0, 0) -/* 0x43 */ DEFINE_SCENE(tokinoma_scene, g_pn_16, SCENE_TOKINOMA, 30, 0, 0) -/* 0x44 */ DEFINE_SCENE(kenjyanoma_scene, g_pn_14, SCENE_KENJYANOMA, 32, 0, 0) -/* 0x45 */ DEFINE_SCENE(hairal_niwa_scene, g_pn_12, SCENE_HAIRAL_NIWA, 35, 0, 0) -/* 0x46 */ DEFINE_SCENE(hairal_niwa_n_scene, g_pn_12, SCENE_HAIRAL_NIWA_N, 35, 0, 0) -/* 0x47 */ DEFINE_SCENE(hiral_demo_scene, none, SCENE_HIRAL_DEMO, 0, 0, 0) -/* 0x48 */ DEFINE_SCENE(hakasitarelay_scene, g_pn_57, SCENE_HAKASITARELAY, 48, 0, 0) -/* 0x49 */ DEFINE_SCENE(turibori_scene, g_pn_46, SCENE_TURIBORI, 50, 0, 0) -/* 0x4A */ DEFINE_SCENE(nakaniwa_scene, g_pn_12, SCENE_NAKANIWA, 47, 0, 0) -/* 0x4B */ DEFINE_SCENE(bowling_scene, g_pn_47, SCENE_BOWLING, 41, 0, 0) -/* 0x4C */ DEFINE_SCENE(souko_scene, none, SCENE_SOUKO, 44, 0, 0) -/* 0x4D */ DEFINE_SCENE(miharigoya_scene, none, SCENE_MIHARIGOYA, 45, 0, 0) -/* 0x4E */ DEFINE_SCENE(mahouya_scene, g_pn_24, SCENE_MAHOUYA, 46, 0, 0) -/* 0x4F */ DEFINE_SCENE(ganon_demo_scene, none, SCENE_GANON_DEMO, 36, 0, 0) -/* 0x50 */ DEFINE_SCENE(kinsuta_scene, g_pn_22, SCENE_KINSUTA, 0, 0, 0) -/* 0x51 */ DEFINE_SCENE(spot00_scene, g_pn_27, SCENE_SPOT00, 1, 0, 0) -/* 0x52 */ DEFINE_SCENE(spot01_scene, g_pn_28, SCENE_SPOT01, 2, 0, 0) -/* 0x53 */ DEFINE_SCENE(spot02_scene, g_pn_29, SCENE_SPOT02, 0, 0, 0) -/* 0x54 */ DEFINE_SCENE(spot03_scene, g_pn_30, SCENE_SPOT03, 3, 0, 0) -/* 0x55 */ DEFINE_SCENE(spot04_scene, g_pn_31, SCENE_SPOT04, 4, 0, 0) -/* 0x56 */ DEFINE_SCENE(spot05_scene, g_pn_52, SCENE_SPOT05, 47, 0, 0) -/* 0x57 */ DEFINE_SCENE(spot06_scene, g_pn_32, SCENE_SPOT06, 5, 0, 0) -/* 0x58 */ DEFINE_SCENE(spot07_scene, g_pn_33, SCENE_SPOT07, 6, 0, 0) -/* 0x59 */ DEFINE_SCENE(spot08_scene, g_pn_34, SCENE_SPOT08, 7, 0, 0) -/* 0x5A */ DEFINE_SCENE(spot09_scene, g_pn_35, SCENE_SPOT09, 8, 0, 0) -/* 0x5B */ DEFINE_SCENE(spot10_scene, g_pn_36, SCENE_SPOT10, 9, 0, 0) -/* 0x5C */ DEFINE_SCENE(spot11_scene, g_pn_55, SCENE_SPOT11, 10, 0, 0) -/* 0x5D */ DEFINE_SCENE(spot12_scene, g_pn_53, SCENE_SPOT12, 11, 0, 0) -/* 0x5E */ DEFINE_SCENE(spot13_scene, g_pn_37, SCENE_SPOT13, 12, 0, 0) -/* 0x5F */ DEFINE_SCENE(spot15_scene, g_pn_38, SCENE_SPOT15, 13, 0, 0) -/* 0x60 */ DEFINE_SCENE(spot16_scene, g_pn_39, SCENE_SPOT16, 14, 0, 0) -/* 0x61 */ DEFINE_SCENE(spot17_scene, g_pn_40, SCENE_SPOT17, 15, 0, 0) -/* 0x62 */ DEFINE_SCENE(spot18_scene, g_pn_41, SCENE_SPOT18, 16, 0, 0) -/* 0x63 */ DEFINE_SCENE(spot20_scene, g_pn_42, SCENE_SPOT20, 17, 0, 0) -/* 0x64 */ DEFINE_SCENE(ganon_tou_scene, g_pn_43, SCENE_GANON_TOU, 36, 0, 0) +/* 0x00 */ DEFINE_SCENE(ydan_scene, g_pn_06, SCENE_YDAN, SDC_YDAN, 1, 2) +/* 0x01 */ DEFINE_SCENE(ddan_scene, g_pn_08, SCENE_DDAN, SDC_DDAN, 1, 3) +/* 0x02 */ DEFINE_SCENE(bdan_scene, g_pn_07, SCENE_BDAN, SDC_BDAN, 1, 4) +/* 0x03 */ DEFINE_SCENE(Bmori1_scene, g_pn_01, SCENE_BMORI1, SDC_BMORI1, 2, 5) +/* 0x04 */ DEFINE_SCENE(HIDAN_scene, g_pn_03, SCENE_HIDAN, SDC_HIDAN, 2, 6) +/* 0x05 */ DEFINE_SCENE(MIZUsin_scene, g_pn_04, SCENE_MIZUSIN, SDC_MIZUSIN, 1, 7) +/* 0x06 */ DEFINE_SCENE(jyasinzou_scene, g_pn_05, SCENE_JYASINZOU, SDC_JYASINZOU, 1, 8) +/* 0x07 */ DEFINE_SCENE(HAKAdan_scene, g_pn_02, SCENE_HAKADAN, SDC_HAKADAN, 2, 9) +/* 0x08 */ DEFINE_SCENE(HAKAdanCH_scene, g_pn_54, SCENE_HAKADANCH, SDC_HAKADAN, 2, 10) +/* 0x09 */ DEFINE_SCENE(ice_doukutu_scene, g_pn_10, SCENE_ICE_DOUKUTO, SDC_ICE_DOUKUTO, 0, 0) +/* 0x0A */ DEFINE_SCENE(ganon_scene, none, SCENE_GANON, SDC_DEFAULT, 2, 0) +/* 0x0B */ DEFINE_SCENE(men_scene, g_pn_11, SCENE_MEN, SDC_MEN, 0, 0) +/* 0x0C */ DEFINE_SCENE(gerudoway_scene, g_pn_49, SCENE_GERUDOWAY, SDC_GERUDOWAY, 0, 0) +/* 0x0D */ DEFINE_SCENE(ganontika_scene, g_pn_09, SCENE_GANONTIKA, SDC_GANONTIKA, 0, 0) +/* 0x0E */ DEFINE_SCENE(ganon_sonogo_scene, none, SCENE_GANON_SONOGO, SDC_GANON_SONOGO, 0, 0) +/* 0x0F */ DEFINE_SCENE(ganontikasonogo_scene, none, SCENE_GANONTIKA_SONOGO, SDC_GANONTIKA_SONOGO, 0, 0) +/* 0x10 */ DEFINE_SCENE(takaraya_scene, g_pn_51, SCENE_TAKARAYA, SDC_DEFAULT, 0, 0) +/* 0x11 */ DEFINE_SCENE(ydan_boss_scene, none, SCENE_YDAN_BOSS, SDC_YDAN_BOSS, 0, 0) +/* 0x12 */ DEFINE_SCENE(ddan_boss_scene, none, SCENE_DDAN_BOSS, SDC_DEFAULT, 0, 0) +/* 0x13 */ DEFINE_SCENE(bdan_boss_scene, none, SCENE_BDAN_BOSS, SDC_BDAN, 0, 0) +/* 0x14 */ DEFINE_SCENE(moribossroom_scene, none, SCENE_MORIBOSSROOM, SDC_DEFAULT, 1, 0) +/* 0x15 */ DEFINE_SCENE(FIRE_bs_scene, none, SCENE_FIRE_BS, SDC_HIDAN, 0, 0) +/* 0x16 */ DEFINE_SCENE(MIZUsin_bs_scene, none, SCENE_MIZUSIN_BS, SDC_MIZUSIN_BS, 0, 0) +/* 0x17 */ DEFINE_SCENE(jyasinboss_scene, none, SCENE_JYASINBOSS, SDC_DEFAULT, 0, 0) +/* 0x18 */ DEFINE_SCENE(HAKAdan_bs_scene, none, SCENE_HAKADAN_BS, SDC_HAKADAN, 0, 0) +/* 0x19 */ DEFINE_SCENE(ganon_boss_scene, none, SCENE_GANON_BOSS, SDC_DEFAULT, 0, 0) +/* 0x1A */ DEFINE_SCENE(ganon_final_scene, none, SCENE_GANON_FINAL, SDC_GANON_FINAL, 0, 0) +/* 0x1B */ DEFINE_SCENE(entra_scene, none, SCENE_ENTRA, SDC_DEFAULT, 0, 0) +/* 0x1C */ DEFINE_SCENE(entra_n_scene, none, SCENE_ENTRA_N, SDC_DEFAULT, 0, 0) +/* 0x1D */ DEFINE_SCENE(enrui_scene, none, SCENE_ENRUI, SDC_DEFAULT, 0, 0) +/* 0x1E */ DEFINE_SCENE(market_alley_scene, g_pn_18, SCENE_MARKET_ALLEY, SDC_DEFAULT, 0, 0) +/* 0x1F */ DEFINE_SCENE(market_alley_n_scene, g_pn_18, SCENE_MARKET_ALLEY_N, SDC_DEFAULT, 0, 0) +/* 0x20 */ DEFINE_SCENE(market_day_scene, g_pn_17, SCENE_MARKET_DAY, SDC_DEFAULT, 0, 0) +/* 0x21 */ DEFINE_SCENE(market_night_scene, g_pn_17, SCENE_MARKET_NIGHT, SDC_DEFAULT, 0, 0) +/* 0x22 */ DEFINE_SCENE(market_ruins_scene, g_pn_17, SCENE_MARKET_RUINS, SDC_DEFAULT, 0, 0) +/* 0x23 */ DEFINE_SCENE(shrine_scene, none, SCENE_SHRINE, SDC_DEFAULT, 0, 0) +/* 0x24 */ DEFINE_SCENE(shrine_n_scene, none, SCENE_SHRINE_N, SDC_DEFAULT, 0, 0) +/* 0x25 */ DEFINE_SCENE(shrine_r_scene, none, SCENE_SHRINE_R, SDC_DEFAULT, 0, 0) +/* 0x26 */ DEFINE_SCENE(kokiri_home_scene, none, SCENE_KOKIRI_HOME, SDC_DEFAULT, 0, 0) +/* 0x27 */ DEFINE_SCENE(kokiri_home3_scene, none, SCENE_KOKIRI_HOME3, SDC_DEFAULT, 0, 0) +/* 0x28 */ DEFINE_SCENE(kokiri_home4_scene, none, SCENE_KOKIRI_HOME4, SDC_DEFAULT, 0, 0) +/* 0x29 */ DEFINE_SCENE(kokiri_home5_scene, none, SCENE_KOKIRI_HOME5, SDC_DEFAULT, 0, 0) +/* 0x2A */ DEFINE_SCENE(kakariko_scene, none, SCENE_KAKARIKO, SDC_DEFAULT, 0, 0) +/* 0x2B */ DEFINE_SCENE(kakariko3_scene, none, SCENE_KAKARIKO3, SDC_DEFAULT, 0, 0) +/* 0x2C */ DEFINE_SCENE(shop1_scene, g_pn_23, SCENE_SHOP1, SDC_DEFAULT, 0, 0) +/* 0x2D */ DEFINE_SCENE(kokiri_shop_scene, g_pn_19, SCENE_KOKIRI_SHOP, SDC_DEFAULT, 0, 0) +/* 0x2E */ DEFINE_SCENE(golon_scene, g_pn_20, SCENE_GOLON, SDC_DEFAULT, 0, 0) +/* 0x2F */ DEFINE_SCENE(zoora_scene, g_pn_21, SCENE_ZOORA, SDC_DEFAULT, 0, 0) +/* 0x30 */ DEFINE_SCENE(drag_scene, g_pn_24, SCENE_DRAG, SDC_DEFAULT, 0, 0) +/* 0x31 */ DEFINE_SCENE(alley_shop_scene, g_pn_24, SCENE_ALLEY_SHOP, SDC_DEFAULT, 0, 0) +/* 0x32 */ DEFINE_SCENE(night_shop_scene, g_pn_56, SCENE_NIGHT_SHOP, SDC_DEFAULT, 0, 0) +/* 0x33 */ DEFINE_SCENE(face_shop_scene, g_pn_50, SCENE_FACE_SHOP, SDC_DEFAULT, 0, 0) +/* 0x34 */ DEFINE_SCENE(link_home_scene, none, SCENE_LINK_HOME, SDC_DEFAULT, 0, 0) +/* 0x35 */ DEFINE_SCENE(impa_scene, none, SCENE_IMPA, SDC_DEFAULT, 0, 0) +/* 0x36 */ DEFINE_SCENE(malon_stable_scene, g_pn_48, SCENE_MALON_STABLE, SDC_DEFAULT, 0, 0) +/* 0x37 */ DEFINE_SCENE(labo_scene, none, SCENE_LABO, SDC_DEFAULT, 0, 0) +/* 0x38 */ DEFINE_SCENE(hylia_labo_scene, g_pn_26, SCENE_HYLIA_LABO, SDC_HYLIA_LABO, 0, 0) +/* 0x39 */ DEFINE_SCENE(tent_scene, none, SCENE_TENT, SDC_DEFAULT, 0, 0) +/* 0x3A */ DEFINE_SCENE(hut_scene, g_pn_25, SCENE_HUT, SDC_DEFAULT, 0, 0) +/* 0x3B */ DEFINE_SCENE(daiyousei_izumi_scene, g_pn_13, SCENE_DAIYOUSEI_IZUMI, SDC_GREAT_FAIRY_FOUNTAIN, 0, 0) +/* 0x3C */ DEFINE_SCENE(yousei_izumi_tate_scene, g_pn_45, SCENE_YOUSEI_IZUMI_TATE, SDC_FAIRY_FOUNTAIN, 0, 0) +/* 0x3D */ DEFINE_SCENE(yousei_izumi_yoko_scene, g_pn_13, SCENE_YOUSEI_IZUMI_YOKO, SDC_GREAT_FAIRY_FOUNTAIN, 0, 0) +/* 0x3E */ DEFINE_SCENE(kakusiana_scene, none, SCENE_KAKUSIANA, SDC_KAKUSIANA, 0, 0) +/* 0x3F */ DEFINE_SCENE(hakaana_scene, none, SCENE_HAKAANA, SDC_GRAVE_EXIT_LIGHT_SHINING, 0, 0) +/* 0x40 */ DEFINE_SCENE(hakaana2_scene, none, SCENE_HAKAANA2, SDC_FAIRY_FOUNTAIN, 0, 0) +/* 0x41 */ DEFINE_SCENE(hakaana_ouke_scene, g_pn_44, SCENE_HAKAANA_OUKE, SDC_HAKAANA_OUKE, 0, 0) +/* 0x42 */ DEFINE_SCENE(syatekijyou_scene, g_pn_15, SCENE_SYATEKIJYOU, SDC_SYATEKIJYOU, 0, 0) +/* 0x43 */ DEFINE_SCENE(tokinoma_scene, g_pn_16, SCENE_TOKINOMA, SDC_TOKINOMA, 0, 0) +/* 0x44 */ DEFINE_SCENE(kenjyanoma_scene, g_pn_14, SCENE_KENJYANOMA, SDC_KENJYANOMA, 0, 0) +/* 0x45 */ DEFINE_SCENE(hairal_niwa_scene, g_pn_12, SCENE_HAIRAL_NIWA, SDC_HAIRAL_NIWA, 0, 0) +/* 0x46 */ DEFINE_SCENE(hairal_niwa_n_scene, g_pn_12, SCENE_HAIRAL_NIWA_N, SDC_HAIRAL_NIWA, 0, 0) +/* 0x47 */ DEFINE_SCENE(hiral_demo_scene, none, SCENE_HIRAL_DEMO, SDC_DEFAULT, 0, 0) +/* 0x48 */ DEFINE_SCENE(hakasitarelay_scene, g_pn_57, SCENE_HAKASITARELAY, SDC_GRAVE_EXIT_LIGHT_SHINING, 0, 0) +/* 0x49 */ DEFINE_SCENE(turibori_scene, g_pn_46, SCENE_TURIBORI, SDC_TURIBORI, 0, 0) +/* 0x4A */ DEFINE_SCENE(nakaniwa_scene, g_pn_12, SCENE_NAKANIWA, SDC_CALM_WATER, 0, 0) +/* 0x4B */ DEFINE_SCENE(bowling_scene, g_pn_47, SCENE_BOWLING, SDC_BOWLING, 0, 0) +/* 0x4C */ DEFINE_SCENE(souko_scene, none, SCENE_SOUKO, SDC_SOUKO, 0, 0) +/* 0x4D */ DEFINE_SCENE(miharigoya_scene, none, SCENE_MIHARIGOYA, SDC_MIHARIGOYA, 0, 0) +/* 0x4E */ DEFINE_SCENE(mahouya_scene, g_pn_24, SCENE_MAHOUYA, SDC_MAHOUYA, 0, 0) +/* 0x4F */ DEFINE_SCENE(ganon_demo_scene, none, SCENE_GANON_DEMO, SDC_GANON_CASTLE_EXTERIOR, 0, 0) +/* 0x50 */ DEFINE_SCENE(kinsuta_scene, g_pn_22, SCENE_KINSUTA, SDC_DEFAULT, 0, 0) +/* 0x51 */ DEFINE_SCENE(spot00_scene, g_pn_27, SCENE_SPOT00, SDC_SPOT00, 0, 0) +/* 0x52 */ DEFINE_SCENE(spot01_scene, g_pn_28, SCENE_SPOT01, SDC_SPOT01, 0, 0) +/* 0x53 */ DEFINE_SCENE(spot02_scene, g_pn_29, SCENE_SPOT02, SDC_DEFAULT, 0, 0) +/* 0x54 */ DEFINE_SCENE(spot03_scene, g_pn_30, SCENE_SPOT03, SDC_SPOT03, 0, 0) +/* 0x55 */ DEFINE_SCENE(spot04_scene, g_pn_31, SCENE_SPOT04, SDC_SPOT04, 0, 0) +/* 0x56 */ DEFINE_SCENE(spot05_scene, g_pn_52, SCENE_SPOT05, SDC_CALM_WATER, 0, 0) +/* 0x57 */ DEFINE_SCENE(spot06_scene, g_pn_32, SCENE_SPOT06, SDC_SPOT06, 0, 0) +/* 0x58 */ DEFINE_SCENE(spot07_scene, g_pn_33, SCENE_SPOT07, SDC_SPOT07, 0, 0) +/* 0x59 */ DEFINE_SCENE(spot08_scene, g_pn_34, SCENE_SPOT08, SDC_SPOT08, 0, 0) +/* 0x5A */ DEFINE_SCENE(spot09_scene, g_pn_35, SCENE_SPOT09, SDC_SPOT09, 0, 0) +/* 0x5B */ DEFINE_SCENE(spot10_scene, g_pn_36, SCENE_SPOT10, SDC_SPOT10, 0, 0) +/* 0x5C */ DEFINE_SCENE(spot11_scene, g_pn_55, SCENE_SPOT11, SDC_SPOT11, 0, 0) +/* 0x5D */ DEFINE_SCENE(spot12_scene, g_pn_53, SCENE_SPOT12, SDC_SPOT12, 0, 0) +/* 0x5E */ DEFINE_SCENE(spot13_scene, g_pn_37, SCENE_SPOT13, SDC_SPOT13, 0, 0) +/* 0x5F */ DEFINE_SCENE(spot15_scene, g_pn_38, SCENE_SPOT15, SDC_SPOT15, 0, 0) +/* 0x60 */ DEFINE_SCENE(spot16_scene, g_pn_39, SCENE_SPOT16, SDC_SPOT16, 0, 0) +/* 0x61 */ DEFINE_SCENE(spot17_scene, g_pn_40, SCENE_SPOT17, SDC_SPOT17, 0, 0) +/* 0x62 */ DEFINE_SCENE(spot18_scene, g_pn_41, SCENE_SPOT18, SDC_SPOT18, 0, 0) +/* 0x63 */ DEFINE_SCENE(spot20_scene, g_pn_42, SCENE_SPOT20, SDC_SPOT20, 0, 0) +/* 0x64 */ DEFINE_SCENE(ganon_tou_scene, g_pn_43, SCENE_GANON_TOU, SDC_GANON_CASTLE_EXTERIOR, 0, 0) // Debug-only scenes -/* 0x65 */ DEFINE_SCENE(test01_scene, none, SCENE_TEST01, 47, 0, 0) -/* 0x66 */ DEFINE_SCENE(besitu_scene, none, SCENE_BESITU, 49, 0, 0) -/* 0x67 */ DEFINE_SCENE(depth_test_scene, none, SCENE_DEPTH_TEST, 0, 0, 0) -/* 0x68 */ DEFINE_SCENE(syotes_scene, none, SCENE_SYOTES, 0, 0, 0) -/* 0x69 */ DEFINE_SCENE(syotes2_scene, none, SCENE_SYOTES2, 0, 0, 0) -/* 0x6A */ DEFINE_SCENE(sutaru_scene, none, SCENE_SUTARU, 0, 0, 0) -/* 0x6B */ DEFINE_SCENE(hairal_niwa2_scene, g_pn_12, SCENE_HAIRAL_NIWA2, 35, 0, 0) -/* 0x6C */ DEFINE_SCENE(sasatest_scene, none, SCENE_SASATEST, 0, 0, 0) -/* 0x6D */ DEFINE_SCENE(testroom_scene, none, SCENE_TESTROOM, 0, 0, 0) +/* 0x65 */ DEFINE_SCENE(test01_scene, none, SCENE_TEST01, SDC_CALM_WATER, 0, 0) +/* 0x66 */ DEFINE_SCENE(besitu_scene, none, SCENE_BESITU, SDC_BESITU, 0, 0) +/* 0x67 */ DEFINE_SCENE(depth_test_scene, none, SCENE_DEPTH_TEST, SDC_DEFAULT, 0, 0) +/* 0x68 */ DEFINE_SCENE(syotes_scene, none, SCENE_SYOTES, SDC_DEFAULT, 0, 0) +/* 0x69 */ DEFINE_SCENE(syotes2_scene, none, SCENE_SYOTES2, SDC_DEFAULT, 0, 0) +/* 0x6A */ DEFINE_SCENE(sutaru_scene, none, SCENE_SUTARU, SDC_DEFAULT, 0, 0) +/* 0x6B */ DEFINE_SCENE(hairal_niwa2_scene, g_pn_12, SCENE_HAIRAL_NIWA2, SDC_HAIRAL_NIWA, 0, 0) +/* 0x6C */ DEFINE_SCENE(sasatest_scene, none, SCENE_SASATEST, SDC_DEFAULT, 0, 0) +/* 0x6D */ DEFINE_SCENE(testroom_scene, none, SCENE_TESTROOM, SDC_DEFAULT, 0, 0) diff --git a/include/z64.h b/include/z64.h index 69ab88dc8d..a845cf8e78 100644 --- a/include/z64.h +++ b/include/z64.h @@ -1180,7 +1180,7 @@ typedef struct { typedef struct PlayState { /* 0x00000 */ GameState state; /* 0x000A4 */ s16 sceneNum; - /* 0x000A6 */ u8 sceneConfig; + /* 0x000A6 */ u8 sceneDrawConfig; /* 0x000A7 */ char unk_A7[0x9]; /* 0x000B0 */ void* sceneSegment; /* 0x000B8 */ View view; diff --git a/include/z64scene.h b/include/z64scene.h index f2248b01ad..c64897338a 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -12,7 +12,7 @@ typedef struct { /* 0x00 */ RomFile sceneFile; /* 0x08 */ RomFile titleFile; /* 0x10 */ u8 unk_10; - /* 0x11 */ u8 config; + /* 0x11 */ u8 drawConfig; /* 0x12 */ u8 unk_12; /* 0x13 */ u8 unk_13; } SceneTableEntry; // size = 0x14 @@ -338,6 +338,63 @@ typedef enum { #undef DEFINE_ENTRANCE +typedef enum { + /* 0 */ SDC_DEFAULT, + /* 1 */ SDC_SPOT00, + /* 2 */ SDC_SPOT01, + /* 3 */ SDC_SPOT03, + /* 4 */ SDC_SPOT04, + /* 5 */ SDC_SPOT06, + /* 6 */ SDC_SPOT07, + /* 7 */ SDC_SPOT08, + /* 8 */ SDC_SPOT09, + /* 9 */ SDC_SPOT10, + /* 10 */ SDC_SPOT11, + /* 11 */ SDC_SPOT12, + /* 12 */ SDC_SPOT13, + /* 13 */ SDC_SPOT15, + /* 14 */ SDC_SPOT16, + /* 15 */ SDC_SPOT17, + /* 16 */ SDC_SPOT18, + /* 17 */ SDC_SPOT20, + /* 18 */ SDC_HIDAN, // used for Fire Temple and its boss scene + /* 19 */ SDC_YDAN, + /* 20 */ SDC_DDAN, + /* 21 */ SDC_BDAN, // used for Jabu-Jabu and its boss scene + /* 22 */ SDC_BMORI1, + /* 23 */ SDC_MIZUSIN, + /* 24 */ SDC_HAKADAN, // used for Bottom Of The Well, Shadow Temple and its boss scene + /* 25 */ SDC_JYASINZOU, + /* 26 */ SDC_GANONTIKA, + /* 27 */ SDC_MEN, + /* 28 */ SDC_YDAN_BOSS, + /* 29 */ SDC_MIZUSIN_BS, + /* 30 */ SDC_TOKINOMA, + /* 31 */ SDC_KAKUSIANA, + /* 32 */ SDC_KENJYANOMA, + /* 33 */ SDC_GREAT_FAIRY_FOUNTAIN, // used for both Great Fairy Fountains scenes + /* 34 */ SDC_SYATEKIJYOU, + /* 35 */ SDC_HAIRAL_NIWA, // used for Castle Courtyard (with the hedges) (day, night and debug scenes) + /* 36 */ SDC_GANON_CASTLE_EXTERIOR, // used for two scenes + /* 37 */ SDC_ICE_DOUKUTO, + /* 38 */ SDC_GANON_FINAL, + /* 39 */ SDC_FAIRY_FOUNTAIN, // used for both Fairy Fountains scenes + /* 40 */ SDC_GERUDOWAY, + /* 41 */ SDC_BOWLING, + /* 42 */ SDC_HAKAANA_OUKE, + /* 43 */ SDC_HYLIA_LABO, + /* 44 */ SDC_SOUKO, + /* 45 */ SDC_MIHARIGOYA, + /* 46 */ SDC_MAHOUYA, + /* 47 */ SDC_CALM_WATER, // used for Castle Courtyard (with Zelda), Sacred Forest Meadow, and debug Jungle Gym + /* 48 */ SDC_GRAVE_EXIT_LIGHT_SHINING, // used for one grave scene and the Dampé race scene + /* 49 */ SDC_BESITU, + /* 50 */ SDC_TURIBORI, + /* 51 */ SDC_GANON_SONOGO, + /* 52 */ SDC_GANONTIKA_SONOGO, + /* 53 */ SDC_MAX +} SceneDrawConfig; + // Scene commands typedef enum { diff --git a/src/code/z_play.c b/src/code/z_play.c index 9aebec12a4..f42ff8f58f 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1500,7 +1500,7 @@ void Play_SpawnScene(PlayState* this, s32 sceneNum, s32 spawn) { scene->unk_13 = 0; this->loadedScene = scene; this->sceneNum = sceneNum; - this->sceneConfig = scene->config; + this->sceneDrawConfig = scene->drawConfig; osSyncPrintf("\nSCENE SIZE %fK\n", (scene->sceneFile.vromEnd - scene->sceneFile.vromStart) / 1024.0f); diff --git a/src/code/z_scene_table.c b/src/code/z_scene_table.c index 44f6b19d7f..e6d9b4992c 100644 --- a/src/code/z_scene_table.c +++ b/src/code/z_scene_table.c @@ -44,8 +44,8 @@ EntranceInfo gEntranceTable[] = { #undef DEFINE_SCENE // Scene Table definition -#define DEFINE_SCENE(name, title, _2, config, unk_10, unk_12) \ - { ROM_FILE(name), ROM_FILE(title), unk_10, config, unk_12, 0 }, +#define DEFINE_SCENE(name, title, _2, drawConfig, unk_10, unk_12) \ + { ROM_FILE(name), ROM_FILE(title), unk_10, drawConfig, unk_12, 0 }, // Handle `none` as a special case for scenes without a title card #define _noneSegmentRomStart NULL @@ -93,8 +93,7 @@ void Scene_SetTransitionForNextEntrance(PlayState* play) { play->transitionType = gEntranceTable[entranceIndex].field & 0x7F; // Fade out } -// Scene Draw Config 0 -void func_80099550(PlayState* play) { +void Scene_DrawConfigDefault(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4725); gSPDisplayList(POLY_OPA_DISP++, sDefaultDisplayList); @@ -108,8 +107,7 @@ void* D_8012A2F8[] = { gYdanTex_00CA18, }; -// Scene Draw Config 19 -void func_800995DC(PlayState* play) { +void Scene_DrawConfigYdan(PlayState* play) { u32 gameplayFrames = play->gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4763); @@ -126,8 +124,7 @@ void func_800995DC(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4783); } -// Scene Draw Config 28 -void func_80099760(PlayState* play) { +void Scene_DrawConfigYdanBoss(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4845); @@ -152,8 +149,7 @@ void* sDCLavaFloorTextures[] = { gDCLavaFloor5Tex, gDCLavaFloor6Tex, gDCLavaFloor7Tex, gDCLavaFloor8Tex, }; -// Scene Draw Config 20 - Dodongo's Cavern -void func_80099878(PlayState* play) { +void Scene_DrawConfigDdan(PlayState* play) { u32 gameplayFrames; s32 pad; Gfx* displayListHead = Graph_Alloc(play->state.gfxCtx, 2 * sizeof(Gfx[3])); @@ -189,8 +185,7 @@ void func_80099878(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 4956); } -// Scene Draw Config 30 -void func_80099BD8(PlayState* play) { +void Scene_DrawConfigTokinoma(PlayState* play) { f32 temp; Gfx* displayListHead = Graph_Alloc(play->state.gfxCtx, 18 * sizeof(Gfx)); @@ -251,8 +246,7 @@ void func_80099BD8(PlayState* play) { } } -// Scene Draw Config 31 -void func_8009A45C(PlayState* play) { +void Scene_DrawConfigKakusiana(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5171); @@ -280,8 +274,7 @@ void func_8009A45C(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5212); } -// Scene Draw Config 32 -void func_8009A798(PlayState* play) { +void Scene_DrawConfigKenjyanoma(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5226); @@ -308,8 +301,7 @@ void func_8009A798(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5264); } -// Scene Draw Config 33 -void func_8009A9DC(PlayState* play) { +void Scene_DrawConfigGreatFairyFountain(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5278); @@ -331,8 +323,7 @@ void func_8009A9DC(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5301); } -// Scene Draw Config 48 -void func_8009AB98(PlayState* play) { +void Scene_DrawConfigGraveExitLightShining(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5317); @@ -349,8 +340,7 @@ void func_8009AB98(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5330); } -// Scene Draw Config 39 -void func_8009ACA8(PlayState* play) { +void Scene_DrawConfigFairyFountain(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5346); @@ -370,8 +360,7 @@ void func_8009ACA8(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5367); } -// Scene Draw Config 24 -void func_8009AE30(PlayState* play) { +void Scene_DrawConfigHakadan(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5384); @@ -402,8 +391,7 @@ void* sThievesHideoutEntranceTextures[] = { gThievesHideoutNightEntranceTex, }; -// Scene Draw Config 40 -void func_8009AFE0(PlayState* play) { +void Scene_DrawConfigGerudoway(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5490); @@ -422,8 +410,7 @@ void* D_8012A330[] = { gWaterTempleNightEntranceTex, }; -// Scene Draw Config 23 (Water Temple) -void func_8009B0FC(PlayState* play) { +void Scene_DrawConfigMizusin(PlayState* play) { u32 gameplayFrames; s32 spB0; s32 spAC; @@ -492,8 +479,7 @@ void func_8009B0FC(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5644); } -// Scene Draw Config 29 -void func_8009B86C(PlayState* play) { +void Scene_DrawConfigMizusinBs(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5791); @@ -511,8 +497,7 @@ void func_8009B86C(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5808); } -// Scene Draw Config 34 -void func_8009B9BC(PlayState* play) { +void Scene_DrawConfigSyatekijyou(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5822); @@ -526,8 +511,7 @@ void func_8009B9BC(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5836); } -// Scene Draw Config 35 -void func_8009BAA4(PlayState* play) { +void Scene_DrawConfigHairalNiwa(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5850); @@ -550,14 +534,13 @@ void func_8009BAA4(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5876); } -// Scene Draw Config 36 -void func_8009BC44(PlayState* play) { +void Scene_DrawConfigGanonCastleExterior(PlayState* play) { u32 gameplayFrames; s8 sp83; if (1) {} // Necessary to match - sp83 = coss((play->gameplayFrames * 1500) & 0xFFFF) >> 8; + sp83 = coss(play->gameplayFrames * 1500) >> 8; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 5894); @@ -606,8 +589,7 @@ void func_8009BEEC(PlayState* play) { } } -// Scene Draw Config 38 -void func_8009C0AC(PlayState* play) { +void Scene_DrawConfigGanonFinal(PlayState* play) { u32 gameplayFrames; s8 sp7B; @@ -653,8 +635,7 @@ void* sIceCavernEntranceTextures[] = { gIceCavernNightEntranceTex, }; -// Scene Draw Config 37 -void func_8009C3EC(PlayState* play) { +void Scene_DrawConfigIceDoukuto(PlayState* play) { u32 gameplayFrames; if (0) {} // Necessary to match @@ -680,8 +661,7 @@ void func_8009C3EC(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6076); } -// Scene Draw Config 42 -void func_8009C608(PlayState* play) { +void Scene_DrawConfigHakaanaOuke(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6151); @@ -707,8 +687,7 @@ void func_8009C608(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6187); } -// Scene Draw Config 43 -void func_8009C8B8(PlayState* play) { +void Scene_DrawConfigHyliaLabo(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6201); @@ -730,8 +709,7 @@ void func_8009C8B8(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6232); } -// Scene Draw Config 47 -void func_8009CAC0(PlayState* play) { +void Scene_DrawConfigCalmWater(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6249); @@ -755,8 +733,7 @@ void* sGTGEntranceTextures[] = { gGTGNightEntranceTex, }; -// Scene Draw Config 27 -void func_8009CC00(PlayState* play) { +void Scene_DrawConfigMen(PlayState* play) { u32 gameplayFrames; if (0) {} // Necessary to match @@ -800,8 +777,7 @@ Gfx* Gfx_TwoTexScrollPrimColor(GraphicsContext* gfxCtx, s32 tile1, u32 x1, u32 y return displayList; } -// Scene Draw Config 50 -void func_8009CF84(PlayState* play) { +void Scene_DrawConfigTuribori(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6433); @@ -821,8 +797,7 @@ void func_8009CF84(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6449); } -// Scene Draw Config 41 -void func_8009D0E8(PlayState* play) { +void Scene_DrawConfigBowling(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6463); @@ -848,8 +823,7 @@ void* sLonLonHouseEntranceTextures[] = { gLonLonHouseNightEntranceTex, }; -// Scene Draw Config 44 -void func_8009D31C(PlayState* play) { +void Scene_DrawConfigSouko(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6515); gSPSegment(POLY_XLU_DISP++, 0x08, @@ -873,8 +847,7 @@ void* sGuardHouseView1Textures[] = { gGuardHouseOutSideView2NightTex, }; -// Scene Draw Config 45 -void func_8009D438(PlayState* play) { +void Scene_DrawConfigMiharigoya(PlayState* play) { s32 var; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6560); @@ -897,8 +870,7 @@ void func_8009D438(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6581); } -// Scene Draw Config 46 -void func_8009D5B4(PlayState* play) { +void Scene_DrawConfigMahouya(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6595); @@ -923,8 +895,7 @@ void* sForestTempleEntranceTextures[] = { gForestTempleNightEntranceTex, }; -// Scene Draw Config 22 -void func_8009D758(PlayState* play) { +void Scene_DrawConfigBmori1(PlayState* play) { u32 gameplayFrames; if (0) {} // Necessary to match @@ -955,8 +926,7 @@ void* sSpiritTempleEntranceTextures[] = { gSpiritTempleNightEntranceTex, }; -// Scene Draw Config 25 -void func_8009D974(PlayState* play) { +void Scene_DrawConfigJyasinzou(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6752); gSPSegment(POLY_XLU_DISP++, 0x08, @@ -965,8 +935,7 @@ void func_8009D974(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6762); } -// Scene Draw Config 1 -void func_8009DA30(PlayState* play) { +void Scene_DrawConfigSpot00(PlayState* play) { u32 gameplayFrames; Gfx* displayListHead; @@ -1016,8 +985,7 @@ void* sKakarikoWindowTextures[] = { gKakarikoVillageNightWindowTex, }; -// Scene Draw Config 2 -void func_8009DD5C(PlayState* play) { +void Scene_DrawConfigSpot01(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6890); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(sKakarikoWindowTextures[((void)0, gSaveContext.nightFlag)])); @@ -1031,8 +999,7 @@ void func_8009DD5C(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6903); } -// Scene Draw Config 3 -void func_8009DE78(PlayState* play) { +void Scene_DrawConfigSpot03(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6917); @@ -1057,8 +1024,7 @@ void func_8009DE78(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 6948); } -// Scene Draw Config 4 -void func_8009E0B8(PlayState* play) { +void Scene_DrawConfigSpot04(PlayState* play) { u32 gameplayFrames; u8 spA3; u16 spA0; @@ -1113,8 +1079,7 @@ void func_8009E0B8(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7044); } -// Scene Draw Config 5 -void func_8009E54C(PlayState* play) { +void Scene_DrawConfigSpot06(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7058); @@ -1142,8 +1107,7 @@ void* sZorasDomainEntranceTextures[] = { gZorasDomainNightEntranceTex, }; -// Scene Draw Config 6 -void func_8009E730(PlayState* play) { +void Scene_DrawConfigSpot07(PlayState* play) { u32 gameplayFrames; u32 var; @@ -1165,8 +1129,7 @@ void func_8009E730(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7147); } -// Scene Draw Config 7 -void func_8009E8C0(PlayState* play) { +void Scene_DrawConfigSpot08(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7161); @@ -1190,8 +1153,7 @@ void func_8009E8C0(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7192); } -// Scene Draw Config 8 -void func_8009EAD8(PlayState* play) { +void Scene_DrawConfigSpot09(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7206); @@ -1224,8 +1186,7 @@ void func_8009EAD8(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7260); } -// Scene Draw Config 9 -void func_8009EE44(PlayState* play) { +void Scene_DrawConfigSpot10(PlayState* play) { u32 gameplayFrames; if (0) {} // Necessary to match @@ -1257,8 +1218,7 @@ void func_8009EE44(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7309); } -// Scene Draw Config 10 -void func_8009F074(PlayState* play) { +void Scene_DrawConfigSpot11(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7323); @@ -1281,8 +1241,7 @@ void* D_8012A380[] = { gSpot12_00DE78Tex, }; -// Scene Draw Config 11 -void func_8009F1B4(PlayState* play) { +void Scene_DrawConfigSpot12(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7363); gSPSegment(POLY_OPA_DISP++, 0x08, SEGMENTED_TO_VIRTUAL(D_8012A380[((void)0, gSaveContext.nightFlag)])); @@ -1290,8 +1249,7 @@ void func_8009F1B4(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7371); } -// Scene Draw Config 12 -void func_8009F270(PlayState* play) { +void Scene_DrawConfigSpot13(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7385); @@ -1313,8 +1271,7 @@ void func_8009F270(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7409); } -// Scene Draw Config 13 -void func_8009F40C(PlayState* play) { +void Scene_DrawConfigSpot15(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7423); @@ -1336,8 +1293,7 @@ void func_8009F40C(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7443); } -// Scene Draw Config 14 -void func_8009F5D4(PlayState* play) { +void Scene_DrawConfigSpot16(PlayState* play) { Gfx* displayListHead = Graph_Alloc(play->state.gfxCtx, 3 * sizeof(Gfx)); OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7461); @@ -1371,8 +1327,7 @@ void func_8009F5D4(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7495); } -// Scene Draw Config 15 -void func_8009F7D4(PlayState* play) { +void Scene_DrawConfigSpot17(PlayState* play) { s8 sp6F = coss((play->gameplayFrames * 1500) & 0xFFFF) >> 8; s8 sp6E = coss((play->gameplayFrames * 1500) & 0xFFFF) >> 8; u32 gameplayFrames; @@ -1401,8 +1356,7 @@ void* sGoronCityEntranceTextures[] = { gGoronCityNightEntranceTex, }; -// Scene Draw Config 16 -void func_8009F9D0(PlayState* play) { +void Scene_DrawConfigSpot18(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7555); @@ -1429,8 +1383,7 @@ void* sLonLonRanchWindowTextures[] = { gLonLonRangeNightWindowsTex, }; -// Scene Draw Config 17 -void func_8009FB74(PlayState* play) { +void Scene_DrawConfigSpot20(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7602); gSPSegment(POLY_OPA_DISP++, 0x08, @@ -1445,8 +1398,7 @@ void func_8009FB74(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7615); } -// Scene Draw Config 18 -void func_8009FC90(PlayState* play) { +void Scene_DrawConfigHidan(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7630); @@ -1470,7 +1422,7 @@ void func_8009FC90(PlayState* play) { f32 D_8012A398 = 0.0f; -void func_8009FE58(PlayState* play) { +void Scene_DrawConfigBdan(PlayState* play) { static s16 D_8012A39C = 538; static s16 D_8012A3A0 = 4272; u32 gameplayFrames; @@ -1547,8 +1499,7 @@ void func_8009FE58(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7811); } -// Scene Draw Config 26 -void func_800A0334(PlayState* play) { +void Scene_DrawConfigGanontika(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7825); @@ -1573,18 +1524,15 @@ void func_800A0334(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7852); } -// Scene Draw Config 52 -void func_800A055C(PlayState* play) { +void Scene_DrawConfigGanontikaSonogo(PlayState* play) { func_8009BEEC(play); } -// Scene Draw Config 51 -void func_800A057C(PlayState* play) { +void Scene_DrawConfigGanonSonogo(PlayState* play) { func_8009BEEC(play); } -// Scene Draw Config 49 -void func_800A059C(PlayState* play) { +void Scene_DrawConfigBesitu(PlayState* play) { u32 gameplayFrames; OPEN_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7893); @@ -1602,15 +1550,60 @@ void func_800A059C(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 7910); } -void (*sSceneDrawHandlers[])(PlayState*) = { - func_80099550, func_8009DA30, func_8009DD5C, func_8009DE78, func_8009E0B8, func_8009E54C, func_8009E730, - func_8009E8C0, func_8009EAD8, func_8009EE44, func_8009F074, func_8009F1B4, func_8009F270, func_8009F40C, - func_8009F5D4, func_8009F7D4, func_8009F9D0, func_8009FB74, func_8009FC90, func_800995DC, func_80099878, - func_8009FE58, func_8009D758, func_8009B0FC, func_8009AE30, func_8009D974, func_800A0334, func_8009CC00, - func_80099760, func_8009B86C, func_80099BD8, func_8009A45C, func_8009A798, func_8009A9DC, func_8009B9BC, - func_8009BAA4, func_8009BC44, func_8009C3EC, func_8009C0AC, func_8009ACA8, func_8009AFE0, func_8009D0E8, - func_8009C608, func_8009C8B8, func_8009D31C, func_8009D438, func_8009D5B4, func_8009CAC0, func_8009AB98, - func_800A059C, func_8009CF84, func_800A057C, func_800A055C, +void (*sSceneDrawConfigs[SDC_MAX])(PlayState*) = { + Scene_DrawConfigDefault, // SDC_DEFAULT + Scene_DrawConfigSpot00, // SDC_SPOT00 + Scene_DrawConfigSpot01, // SDC_SPOT01 + Scene_DrawConfigSpot03, // SDC_SPOT03 + Scene_DrawConfigSpot04, // SDC_SPOT04 + Scene_DrawConfigSpot06, // SDC_SPOT06 + Scene_DrawConfigSpot07, // SDC_SPOT07 + Scene_DrawConfigSpot08, // SDC_SPOT08 + Scene_DrawConfigSpot09, // SDC_SPOT09 + Scene_DrawConfigSpot10, // SDC_SPOT10 + Scene_DrawConfigSpot11, // SDC_SPOT11 + Scene_DrawConfigSpot12, // SDC_SPOT12 + Scene_DrawConfigSpot13, // SDC_SPOT13 + Scene_DrawConfigSpot15, // SDC_SPOT15 + Scene_DrawConfigSpot16, // SDC_SPOT16 + Scene_DrawConfigSpot17, // SDC_SPOT17 + Scene_DrawConfigSpot18, // SDC_SPOT18 + Scene_DrawConfigSpot20, // SDC_SPOT20 + Scene_DrawConfigHidan, // SDC_HIDAN + Scene_DrawConfigYdan, // SDC_YDAN + Scene_DrawConfigDdan, // SDC_DDAN + Scene_DrawConfigBdan, // SDC_BDAN + Scene_DrawConfigBmori1, // SDC_BMORI1 + Scene_DrawConfigMizusin, // SDC_MIZUSIN + Scene_DrawConfigHakadan, // SDC_HAKADAN + Scene_DrawConfigJyasinzou, // SDC_JYASINZOU + Scene_DrawConfigGanontika, // SDC_GANONTIKA + Scene_DrawConfigMen, // SDC_MEN + Scene_DrawConfigYdanBoss, // SDC_YDAN_BOSS + Scene_DrawConfigMizusinBs, // SDC_MIZUSIN_BS + Scene_DrawConfigTokinoma, // SDC_TOKINOMA + Scene_DrawConfigKakusiana, // SDC_KAKUSIANA + Scene_DrawConfigKenjyanoma, // SDC_KENJYANOMA + Scene_DrawConfigGreatFairyFountain, // SDC_GREAT_FAIRY_FOUNTAIN + Scene_DrawConfigSyatekijyou, // SDC_SYATEKIJYOU + Scene_DrawConfigHairalNiwa, // SDC_HAIRAL_NIWA + Scene_DrawConfigGanonCastleExterior, // SDC_GANON_CASTLE_EXTERIOR + Scene_DrawConfigIceDoukuto, // SDC_ICE_DOUKUTO + Scene_DrawConfigGanonFinal, // SDC_GANON_FINAL + Scene_DrawConfigFairyFountain, // SDC_FAIRY_FOUNTAIN + Scene_DrawConfigGerudoway, // SDC_GERUDOWAY + Scene_DrawConfigBowling, // SDC_BOWLING + Scene_DrawConfigHakaanaOuke, // SDC_HAKAANA_OUKE + Scene_DrawConfigHyliaLabo, // SDC_HYLIA_LABO + Scene_DrawConfigSouko, // SDC_SOUKO + Scene_DrawConfigMiharigoya, // SDC_MIHARIGOYA + Scene_DrawConfigMahouya, // SDC_MAHOUYA + Scene_DrawConfigCalmWater, // SDC_CALM_WATER + Scene_DrawConfigGraveExitLightShining, // SDC_GRAVE_EXIT_LIGHT_SHINING + Scene_DrawConfigBesitu, // SDC_BESITU + Scene_DrawConfigTuribori, // SDC_TURIBORI + Scene_DrawConfigGanonSonogo, // SDC_GANON_SONOGO + Scene_DrawConfigGanontikaSonogo, // SDC_GANONTIKA_SONOGO }; void Scene_Draw(PlayState* play) { @@ -1642,9 +1635,9 @@ void Scene_Draw(PlayState* play) { CLOSE_DISPS(play->state.gfxCtx, "../z_scene_table.c", 8109); if (HREG(82) == 1) { - sSceneDrawHandlers[play->sceneConfig](play); + sSceneDrawConfigs[play->sceneDrawConfig](play); } } else { - sSceneDrawHandlers[play->sceneConfig](play); + sSceneDrawConfigs[play->sceneDrawConfig](play); } }