From 7fcaaa01230858f0d12de21be684f6ea22b81cc2 Mon Sep 17 00:00:00 2001 From: mrshigure Date: Thu, 12 Sep 2024 14:19:06 -0700 Subject: [PATCH] [JP] Finished World Areas, Pause, Dead Maps (kzn, flo) and some more --- include/common_structs.h | 10 +- include/dead.h | 9 + src/77480.c | 11 - src/battle/btl_states_actions.c | 6 - src/battle/btl_states_menus.c | 175 +- src/entity.c | 9 - src/entity/Block.c | 19 - src/entity/BlueWarpPipe.c | 5 - src/entity/Chest.c | 5 - src/entity/HeartBlock.c | 7 - src/entity/HiddenPanel.c | 5 - src/entity/ItemBlock.c | 19 - src/entity/SaveBlock.c | 5 - src/entity/ShatteringBlock.c | 11 - src/entity/Signpost.c | 5 - src/entity/SimpleSpring.c | 11 - src/entity/SuperBlock.c | 11 - src/entity/Switch.c | 9 - src/entity/WoodenCrate.c | 5 - src/imgfx.c | 5 - src/load_obfuscation_shims.c | 8 - src/menu_hud_scripts.c | 4 +- src/pause/pause_badges.c | 73 + src/pause/pause_common.h | 2 + src/pause/pause_gfx.c | 45 + src/pause/pause_items.c | 105 +- src/pause/pause_main.c | 7 + src/pause/pause_map.c | 3 + src/pause/pause_partners.c | 42 +- src/pause/pause_stats.c | 155 +- src/pause/pause_tabs.c | 85 +- src/state_pause.c | 13 - src/world/actions.c | 39 - src/world/area_dgb/dgb_03/clock.c | 6 + src/world/area_dgb/dgb_18/npc.c | 4 + src/world/area_end/common/Credits.h | 9 + src/world/area_end/common/Credits.inc.c | 18 +- src/world/area_end/end_00/credits.c | 4 + .../area_end/end_00/credits_jobs_jp.inc.c | 352 +++ .../area_end/end_00/credits_names_jp.inc.c | 805 ++++++ src/world/area_end/end_00/huff_n_puff.c | 4 + src/world/area_end/end_01/credits.c | 3 + .../area_end/end_01/credits_jobs_jp.inc.c | 180 ++ .../area_end/end_01/credits_names_jp.inc.c | 456 ++++ src/world/area_flo/flo_10/fountain.c | 4 + src/world/area_flo/flo_10/npc.c | 2 + src/world/area_flo/flo_15/stairs.c | 6 + src/world/area_flo/flo_18/npc.c | 46 + src/world/area_flo/flo_21/npc.c | 15 + src/world/area_iwa/iwa_00/npc.c | 2 +- src/world/area_iwa/iwa_02/npc.c | 2 +- src/world/area_iwa/iwa_10/npc.c | 2 +- src/world/area_kzn/kzn_10/tromp.c | 4 + src/world/area_kzn/kzn_20/npc.c | 10 + src/world/area_kzn/kzn_23/settings.c | 3 + src/world/area_mgm/mgm_00/scoreboard.c | 46 +- src/world/area_mgm/mgm_01/npc.c | 5 +- src/world/area_omo/omo_04/npc.c | 8 + src/world/area_omo/omo_07/npc.c | 8 + src/world/area_omo/omo_09/gizmos.c | 2 + src/world/area_omo/omo_09/npc.c | 8 + src/world/area_omo/omo_13/npc.c | 18 + src/world/area_omo/omo_16/settings.c | 3 + src/world/area_omo/omo_16/train.c | 8 + src/world/area_pra/pra_09/main.c | 4 + src/world/area_pra/pra_09/npc.c | 4 + src/world/area_pra/pra_19/main.c | 4 + src/world/area_pra/pra_19/npc.c | 4 + src/world/area_pra/pra_22/main.c | 4 + src/world/area_pra/pra_31/puzzle.c | 6 + src/world/area_sam/sam_01/npc.c | 8 + src/world/area_sam/sam_05/scenes.c | 9 + src/world/area_sam/sam_06/npc.c | 8 + .../todo}/UnkScriptJP00.inc.c | 0 src/world/dead/area_flo/flo_03/npc.c | 42 + src/world/dead/area_flo/flo_10/fountain.c | 4 + src/world/dead/area_flo/flo_10/npc.c | 2 + src/world/dead/area_flo/flo_15/stairs.c | 6 + src/world/dead/area_flo/flo_18/npc.c | 46 + src/world/dead/area_flo/flo_19/beanstalk.c | 6 +- src/world/dead/area_flo/flo_19/clouds.c | 22 +- src/world/dead/area_flo/flo_19/main.c | 4 + src/world/dead/area_flo/flo_21/clouds.c | 73 + src/world/dead/area_flo/flo_21/flo_21.h | 53 + src/world/dead/area_flo/flo_21/main.c | 117 + src/world/dead/area_flo/flo_21/music.c | 11 + src/world/dead/area_flo/flo_21/npc.c | 815 ++++++ src/world/dead/area_flo/flo_21/settings.c | 13 + src/world/dead/area_flo/flo_22/flo_22.h | 33 + src/world/dead/area_flo/flo_22/foliage.c | 36 + src/world/dead/area_flo/flo_22/main.c | 36 + src/world/dead/area_flo/flo_22/music.c | 12 + src/world/dead/area_flo/flo_22/npc.c | 135 + src/world/dead/area_flo/flo_22/settings.c | 13 + src/world/dead/area_flo/flo_22/well.c | 135 + src/world/dead/area_flo/flo_23/entity.c | 13 + src/world/dead/area_flo/flo_23/flo_23.h | 23 + src/world/dead/area_flo/flo_23/main.c | 39 + src/world/dead/area_flo/flo_23/music.c | 12 + src/world/dead/area_flo/flo_23/npc.c | 223 ++ src/world/dead/area_flo/flo_23/settings.c | 14 + src/world/dead/area_flo/flo_24/entity.c | 13 + src/world/dead/area_flo/flo_24/flo_24.h | 20 + src/world/dead/area_flo/flo_24/foliage.c | 45 + src/world/dead/area_flo/flo_24/main.c | 56 + src/world/dead/area_flo/flo_24/music.c | 14 + src/world/dead/area_flo/flo_24/settings.c | 15 + src/world/dead/area_flo/flo_24/water.c | 113 + src/world/dead/area_flo/flo_25/entity.c | 9 + src/world/dead/area_flo/flo_25/flo_25.h | 26 + src/world/dead/area_flo/flo_25/foliage.c | 45 + src/world/dead/area_flo/flo_25/main.c | 41 + src/world/dead/area_flo/flo_25/music.c | 12 + src/world/dead/area_flo/flo_25/npc.c | 225 ++ src/world/dead/area_flo/flo_25/settings.c | 14 + src/world/dead/area_flo/flo_25/vine.c | 17 + src/world/dead/area_kzn/kzn_19/npc.c | 4 + src/world/dead/area_kzn/kzn_20/npc.c | 10 + src/world/dead/area_kzn/kzn_23/settings.c | 3 + tools/splat_ext/msg_jp.yaml | 1273 +++++++++ ver/ique/splat.yaml | 2 +- ver/jp/splat.yaml | 2373 +++++++++++++++-- ver/jp/symbol_addrs.txt | 400 +++ ver/jp/undefined_syms.txt | 565 ++-- ver/pal/splat.yaml | 2 +- ver/us/splat.yaml | 2 +- 126 files changed, 9501 insertions(+), 753 deletions(-) create mode 100644 src/world/area_end/end_00/credits_jobs_jp.inc.c create mode 100644 src/world/area_end/end_00/credits_names_jp.inc.c create mode 100644 src/world/area_end/end_01/credits_jobs_jp.inc.c create mode 100644 src/world/area_end/end_01/credits_names_jp.inc.c rename src/world/{area_iwa/common => common/todo}/UnkScriptJP00.inc.c (100%) create mode 100644 src/world/dead/area_flo/flo_21/clouds.c create mode 100644 src/world/dead/area_flo/flo_21/flo_21.h create mode 100644 src/world/dead/area_flo/flo_21/main.c create mode 100644 src/world/dead/area_flo/flo_21/music.c create mode 100644 src/world/dead/area_flo/flo_21/npc.c create mode 100644 src/world/dead/area_flo/flo_21/settings.c create mode 100644 src/world/dead/area_flo/flo_22/flo_22.h create mode 100644 src/world/dead/area_flo/flo_22/foliage.c create mode 100644 src/world/dead/area_flo/flo_22/main.c create mode 100644 src/world/dead/area_flo/flo_22/music.c create mode 100644 src/world/dead/area_flo/flo_22/npc.c create mode 100644 src/world/dead/area_flo/flo_22/settings.c create mode 100644 src/world/dead/area_flo/flo_22/well.c create mode 100644 src/world/dead/area_flo/flo_23/entity.c create mode 100644 src/world/dead/area_flo/flo_23/flo_23.h create mode 100644 src/world/dead/area_flo/flo_23/main.c create mode 100644 src/world/dead/area_flo/flo_23/music.c create mode 100644 src/world/dead/area_flo/flo_23/npc.c create mode 100644 src/world/dead/area_flo/flo_23/settings.c create mode 100644 src/world/dead/area_flo/flo_24/entity.c create mode 100644 src/world/dead/area_flo/flo_24/flo_24.h create mode 100644 src/world/dead/area_flo/flo_24/foliage.c create mode 100644 src/world/dead/area_flo/flo_24/main.c create mode 100644 src/world/dead/area_flo/flo_24/music.c create mode 100644 src/world/dead/area_flo/flo_24/settings.c create mode 100644 src/world/dead/area_flo/flo_24/water.c create mode 100644 src/world/dead/area_flo/flo_25/entity.c create mode 100644 src/world/dead/area_flo/flo_25/flo_25.h create mode 100644 src/world/dead/area_flo/flo_25/foliage.c create mode 100644 src/world/dead/area_flo/flo_25/main.c create mode 100644 src/world/dead/area_flo/flo_25/music.c create mode 100644 src/world/dead/area_flo/flo_25/npc.c create mode 100644 src/world/dead/area_flo/flo_25/settings.c create mode 100644 src/world/dead/area_flo/flo_25/vine.c diff --git a/include/common_structs.h b/include/common_structs.h index c9f0951e51b..16acab31569 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -2523,10 +2523,16 @@ typedef struct CreditsChar { /* 0x18 */ s32 fadeInTime; } CreditsChar; // size = unk +#if VERSION_JP +#define MAX_CREDITS_LINES 30 +#else +#define MAX_CREDITS_LINES 32 +#endif + typedef struct CreditsData { /* 0x00 */ u32 workerID; - /* 0x04 */ CreditsLine lines[32]; -} CreditsData; // size = 0x74 + /* 0x04 */ CreditsLine lines[MAX_CREDITS_LINES]; +} CreditsData; // size = 0xE84, JP size = 0xD9C typedef struct CreditsPairOffset { /* 0x00 */ u8 firstChar; diff --git a/include/dead.h b/include/dead.h index d416b0df960..44ddf92ceef 100644 --- a/include/dead.h +++ b/include/dead.h @@ -337,5 +337,14 @@ #define GetAnimatedRotationByTreeIndex dead_GetAnimatedRotationByTreeIndex #define SetEncounterStatusFlags dead_SetEncounterStatusFlags #define Entity_YellowBlock dead_Entity_YellowBlock +#if VERSION_JP +#define osSyncPrintf dead_osSyncPrintf +#define SetModelFlags dead_SetModelFlags +#define SetNpcScale dead_SetNpcScale +#define StartBattle dead_StartBattle +#define Entity_BrickBlock dead_Entity_BrickBlock +#define Entity_SimpleSpring dead_Entity_SimpleSpring +#define MakeTransformGroup dead_MakeTransformGroup +#endif #endif diff --git a/src/77480.c b/src/77480.c index b1ab1ead968..7ddcb35a40a 100644 --- a/src/77480.c +++ b/src/77480.c @@ -17,17 +17,6 @@ #define i_spy_VRAM (void*)0x802B7000 #endif -#if VERSION_JP // TODO remove once segments are split -extern Addr i_spy_ROM_START; -extern Addr i_spy_ROM_END; -extern Addr pulse_stone_ROM_START; -extern Addr pulse_stone_ROM_END; -extern Addr speech_bubble_ROM_START; -extern Addr speech_bubble_ROM_END; -extern Addr inspect_icon_ROM_START; -extern Addr inspect_icon_ROM_END; -#endif - UNK_FUN_PTR(ISpyNotificationCallback); UNK_FUN_PTR(PulseStoneNotificationCallback); UNK_FUN_PTR(TalkNotificationCallback); diff --git a/src/battle/btl_states_actions.c b/src/battle/btl_states_actions.c index 64d3b54f50d..a676b9e73e4 100644 --- a/src/battle/btl_states_actions.c +++ b/src/battle/btl_states_actions.c @@ -7,12 +7,6 @@ #include "model.h" #include "game_modes.h" -#if VERSION_JP -extern Addr btl_states_menus_ROM_START; -extern Addr btl_states_menus_ROM_END; -extern Addr btl_states_menus_VRAM; -#endif - extern StageListRow* gCurrentStagePtr; extern s16 D_802809F6; diff --git a/src/battle/btl_states_menus.c b/src/battle/btl_states_menus.c index 14e8c9732eb..3fdae30822d 100644 --- a/src/battle/btl_states_menus.c +++ b/src/battle/btl_states_menus.c @@ -121,9 +121,11 @@ extern HudScript HES_SwapZ; extern IconHudScriptPair gItemHudScripts[]; +#if !VERSION_JP s16 D_802AB340[] = { 28, 40 }; s16 D_802AB344[] = { 0, -2 }; +#endif IconHudScriptPair battle_menu_JumpHudScripts[] = { { &HES_MenuBoots1Disabled, &HES_MenuBoots1Disabled }, @@ -179,10 +181,20 @@ IconHudScriptPair battle_menu_DoNothingHudScripts = { &HES_MenuDoNothing, &HES_M IconHudScriptPair battle_menu_FleeHudScripts = { &HES_MenuFlee, &HES_MenuFleeDisabled }; +#if VERSION_JP +IconHudScriptPair battle_menu_PouchHudScripts = { &HES_MenuPouch, &HES_MenuPouchDisabled }; +#endif + s32 BattleMenu_LeftJustMessages[] = { +#if VERSION_JP + MSG_Menus_JP_0049, + MSG_Menus_JP_0048, + MSG_Menus_JP_004F, +#else MSG_Menus_Jump, MSG_Menus_Hammer, MSG_Menus_Items, +#endif MSG_Menus_RunAway, MSG_Menus_Defense, MSG_Menus_ChangeMember, @@ -752,7 +764,11 @@ void btl_main_menu_draw(void) { id = D_802AD048; hud_element_set_transform_rotation(id, 0.0f, 0.0f, 0.0f); hud_element_set_alpha(id, (D_802AD006 * 254) / 255); +#if VERSION_JP + hud_element_set_render_pos(id, 40 - D_802AD00A, D_802AD00A + 212); +#else hud_element_set_render_pos(id, 3940 - D_802AD00A, D_802AD00A + 212); +#endif func_80144238(id); id = D_802AD044; hud_element_set_alpha(id, (D_802AD006 * 254) / 255); @@ -1082,7 +1098,11 @@ s32 btl_submenu_moves_update(void) { case BTL_SUBMENU_MOVES_STATE_UNK_0: battle_menu_moveScrollOffset = -battle_menu_moveScrollLine * 13; D_802AD112 = (battle_menu_moveCursorPos - battle_menu_moveScrollLine) * 13; +#if VERSION_JP + BattleMenu_Moves_PosX = 32; +#else BattleMenu_Moves_PosX = 20; +#endif BattleMenu_Moves_PosY = 68; for (i = 0; i < BattleMenu_Moves_OptionCount; i++) { @@ -1190,6 +1210,23 @@ s32 btl_submenu_moves_update(void) { moveX = BattleMenu_Moves_PosX; moveY = BattleMenu_Moves_PosY; +#if VERSION_JP + set_window_properties(1, moveX, moveY, 140, (D_802AD10E * 13) + 28, 0, func_802A3C98, NULL, -1); + if (!BattleMenu_UsingSpiritsSubmenu) { + set_window_properties(2, moveX + 10, moveY - 6, 80, 16, 1, func_802A43DC, NULL, -1); + set_window_properties(3, moveX + 104, moveY - 12, 32, 32, 1, func_802A4448, NULL, -1); + } else { + s16 new_var; + + new_var = moveY; // todo required to match + set_window_properties(4, moveX + 10, new_var - 6, 80, 16, 1, func_802A43DC, 0, -1); + set_window_properties(5, moveX + 104, new_var - 12, 32, 35, 1, func_802A4448, 0, -1); + } + + moveX = 32; + moveY = BattleMenu_Moves_PosY; + set_window_properties(8, moveX, 186, 242, 32, WINDOW_PRIORITY_20, func_802A4494, NULL, -1); +#else if (!BattleMenu_UsingSpiritsSubmenu) { set_window_properties(1, moveX, moveY, 150, (D_802AD10E * 13) + 28, 0, func_802A3C98, NULL, -1); set_window_properties(2, moveX + 16, moveY - 6, 90, 16, 1, func_802A43DC, NULL, -1); @@ -1206,6 +1243,8 @@ s32 btl_submenu_moves_update(void) { moveX = 20; moveY = BattleMenu_Moves_PosY; set_window_properties(8, moveX, 186, 280, 32, WINDOW_PRIORITY_20, func_802A4494, NULL, -1); +#endif + set_window_update(WINDOW_ID_1, WINDOW_UPDATE_SHOW); if (!BattleMenu_UsingSpiritsSubmenu) { set_window_update(WINDOW_ID_2, WINDOW_UPDATE_SHOW); @@ -1419,7 +1458,11 @@ s32 btl_submenu_moves_update(void) { msgWidth = get_msg_width(msgID, 0) + 23; moveX = (SCREEN_WIDTH / 2) - (msgWidth / 2); +#if VERSION_JP + set_window_properties(9, moveX, 80, msgWidth, 28, 20, func_802A4534, NULL, -1); +#else set_window_properties(9, moveX, 80, msgWidth, D_802AB340[get_msg_lines(msgID) - 1], 20, func_802A4534, NULL, -1); +#endif set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW); D_802AD10B = 60; battle_menu_moveState = BTL_SUBMENU_MOVES_STATE_UNK_2A; @@ -1452,6 +1495,8 @@ s32 btl_submenu_moves_update(void) { #define Y_VAR1 2 #define X_VAR1 104 #define X_VAR2 89 +#elif VERSION_JP +#define Y_VAR1 0 #else #define Y_VAR1 0 #define X_VAR1 108 @@ -1496,11 +1541,19 @@ void func_802A3C98(void* data, s32 x, s32 y) { gMainGfxPos++, G_SC_NON_INTERLACE, xPos, yPos, +#if VERSION_JP + x + 139, +#else x + 153, +#endif var_t0 ); +#if VERSION_JP + xPos = x + 35; +#else xPos = x + 31; +#endif yPos = y + 19 + battle_menu_moveScrollOffset; idx = 0; @@ -1519,6 +1572,14 @@ void func_802A3C98(void* data, s32 x, s32 y) { ); } +#if VERSION_JP + a0 = battle_menu_moveOptionDisplayCostReductions[BattleMenu_Moves_OptionIndexMap[idx]]; + if (BattleMenu_Moves_OptionEnabled[BattleMenu_Moves_OptionIndexMap[idx]] <= 0) { + v0 = battle_menu_moveOptionDisplayCosts[BattleMenu_Moves_OptionIndexMap[idx]]; + } else { + v0 = battle_menu_moveOptionDisplayCosts[BattleMenu_Moves_OptionIndexMap[idx]]; + } +#else if (BattleMenu_Moves_OptionEnabled[BattleMenu_Moves_OptionIndexMap[idx]] <= 0) { a0 = battle_menu_moveOptionDisplayCostReductions[BattleMenu_Moves_OptionIndexMap[idx]]; do {} while (0); @@ -1528,6 +1589,7 @@ void func_802A3C98(void* data, s32 x, s32 y) { do {} while (0); v0 = battle_menu_moveOptionDisplayCosts[BattleMenu_Moves_OptionIndexMap[idx]]; } +#endif num = v0 - a0; if (v0 != 0 && num <= 0) { @@ -1572,6 +1634,23 @@ void func_802A3C98(void* data, s32 x, s32 y) { } if (battle_menu_moveOptionDisplayCosts[BattleMenu_Moves_OptionIndexMap[idx]] != 0) { +#if VERSION_JP + draw_number( + num, xPos + 91, yPos, DRAW_NUMBER_CHARSET_THIN, palette, BattleMenu_Moves_TextAlpha, + DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT + ); + + id = BattleMenu_Moves_OptionCostUnitIDs[idx]; + if (BattleMenu_Moves_OptionEnabled[BattleMenu_Moves_OptionIndexMap[idx]] <= 0) { + if (!BattleMenu_UsingSpiritsSubmenu) { + hud_element_set_script(id, &HES_NotEnoughFP); + } else { + hud_element_set_script(id, &HES_NotEnoughPOW); + } + } + yRenderPos = yPos + 7; + hud_element_set_render_pos(id, xPos + 100, yRenderPos); +#else id = BattleMenu_Moves_OptionCostUnitIDs[idx]; if (!BattleMenu_UsingSpiritsSubmenu) { @@ -1595,6 +1674,7 @@ void func_802A3C98(void* data, s32 x, s32 y) { yRenderPos = yPos + 7; hud_element_set_render_pos(id, xPos + 102, yRenderPos); } +#endif hud_element_set_alpha(id, BattleMenu_Moves_TextAlpha); hud_element_draw_without_clipping(id); } @@ -1602,7 +1682,11 @@ void func_802A3C98(void* data, s32 x, s32 y) { yPos += 13; } +#if VERSION_JP + xPos = x + 26; +#else xPos = x + 24; +#endif yPos = battle_menu_moveScrollOffset + y + 24; idx = 0; @@ -1624,10 +1708,10 @@ void func_802A3C98(void* data, s32 x, s32 y) { var_t0 = D_802AD112; temp_f6 = (yPos - D_802AD112) * 1.0; xPos = x + 10; - if (temp_f6 == 0) { - var_t0 = yPos; - } else { + if (temp_f6 != 0) { var_t0 += temp_f6; + } else { + var_t0 = yPos; } D_802AD112 = var_t0; yPos = y + 26 + D_802AD112; @@ -1671,13 +1755,21 @@ void func_802A43DC(void* data, s32 x, s32 y) { if (!BattleMenu_UsingSpiritsSubmenu) { msgID = MSG_Menus_Abilities; +#if VERSION_JP + posX = x + 28; +#else posX = x + 16; +#endif posY = y + 2; opacity = BattleMenu_Moves_TextAlpha; palette = MSG_PAL_30; } else { msgID = MSG_Menus_StarSpirits; +#if VERSION_JP + posX = x + 24; +#else posX = x + 6; +#endif posY = y + 2; opacity = BattleMenu_Moves_TextAlpha; palette = MSG_PAL_31; @@ -1709,6 +1801,18 @@ void func_802A4494(void* data, s32 x, s32 y) { } void func_802A4534(void* data, s32 x, s32 y) { +#if VERSION_JP + s32 posX = x + 11; + s32 posY = y + 6; + + if (D_802AD258 != 0) { + draw_msg(MSG_Menus_Battle_CantSelectNow, posX, posY, 255, MSG_PAL_0F, 0); + } else if (!BattleMenu_UsingSpiritsSubmenu) { + draw_msg(MSG_Menus_NotEnoughFP, posX, posY, 255, MSG_PAL_0F, 0); + } else { + draw_msg(MSG_Menus_NotEnoughStarPower, posX, posY, 255, MSG_PAL_0F, 0); + } +#else s32 posY = y; s32 posX; s32 msgID; @@ -1724,6 +1828,7 @@ void func_802A4534(void* data, s32 x, s32 y) { msgID = MSG_Menus_NotEnoughStarPower; } draw_msg(msgID, posX, posY + D_802AB344[get_msg_lines(msgID) - 1], 255, MSG_PAL_0F, 0); +#endif } void func_802A45D8(void) { @@ -1845,7 +1950,11 @@ s32 btl_update_strats_menu(void) { switch (BattleSubmenuStratsState) { case BTL_SUBMENU_STRATS_STATE_INIT: +#if VERSION_JP + D_802AD63C = 32; +#else D_802AD63C = 20; +#endif D_802AD63E = 68; D_802AD60C = -D_802AD608 * 13; D_802AD60E = (StratsMenuPos - D_802AD608) * 13; @@ -1871,11 +1980,19 @@ s32 btl_update_strats_menu(void) { D_802AD614 = MSG_PAL_STANDARD; x = D_802AD63C; y = D_802AD63E; +#if VERSION_JP + set_window_properties(WINDOW_ID_6, x, y, 108, (StratsMenuLines * 13) + 26, 0, btl_menu_strats_draw_content, NULL, -1); + set_window_properties(WINDOW_ID_7, x + 10, y - 6, 88, 16, 1, btl_menu_strats_show_title, NULL, -1); + x = 32; + y = 186; + set_window_properties(WINDOW_ID_8, x, y, 242, 32, WINDOW_PRIORITY_20, btl_menu_strats_show_desc, NULL, -1); +#else set_window_properties(WINDOW_ID_6, x, y, 144, (StratsMenuLines * 13) + 26, 0, btl_menu_strats_draw_content, NULL, -1); set_window_properties(WINDOW_ID_7, x + 18, y - 6, 108, 16, 1, btl_menu_strats_show_title, NULL, -1); x = 20; y = 186; set_window_properties(WINDOW_ID_8, x, y, 280, 32, WINDOW_PRIORITY_20, btl_menu_strats_show_desc, NULL, -1); +#endif set_window_update(WINDOW_ID_6, WINDOW_UPDATE_SHOW); set_window_update(WINDOW_ID_7, WINDOW_UPDATE_SHOW); set_window_update(WINDOW_ID_8, WINDOW_UPDATE_SHOW); @@ -2055,7 +2172,11 @@ void btl_menu_strats_draw_content(void* data, s32 x, s32 y) { xPos = x + 4; yPos = y + 18; var_t0 = yPos + 1 + (StratsMenuLines * 13); +#if VERSION_JP + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, xPos, yPos, x + 106, var_t0); +#else gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, xPos, yPos, x + 142, var_t0); +#endif xPos = x + 33; yPos = y + 19 + D_802AD60C; @@ -2120,7 +2241,11 @@ void btl_menu_strats_draw_content(void* data, s32 x, s32 y) { } void btl_menu_strats_show_title(void* data, s32 x, s32 y) { +#if VERSION_JP + draw_msg(MSG_Menus_Strategies, x + 27, y + 2, D_802AD624, MSG_PAL_33, DRAW_MSG_STYLE_MENU); +#else draw_msg(MSG_Menus_Strategies, x + 15, y + 2, D_802AD624, MSG_PAL_33, DRAW_MSG_STYLE_MENU); +#endif } void btl_menu_strats_show_desc(void* data, s32 x, s32 y) { @@ -2203,6 +2328,50 @@ s32 can_switch_to_player(void) { } } +#if VERSION_JP +s32 func_802A57AC_421EFC(void) { + BattleStatus* battleStatus = &gBattleStatus; + Actor* player = battleStatus->playerActor; + s8 debuff = player->debuff; + s32 playerCantMove = FALSE; + + if (player->koStatus == STATUS_KEY_DAZE) { + playerCantMove = TRUE; + } + if (debuff == STATUS_KEY_POISON) { + playerCantMove = FALSE; + } + if (debuff == STATUS_KEY_SHRINK) { + playerCantMove = FALSE; + } + if (debuff == STATUS_KEY_SLEEP) { + playerCantMove = TRUE; + } + if (debuff == STATUS_KEY_FEAR) { + playerCantMove = TRUE; + } + if (debuff == STATUS_KEY_DIZZY) { + playerCantMove = TRUE; + } + if (debuff == STATUS_KEY_PARALYZE) { + playerCantMove = TRUE; + } + if (debuff == STATUS_KEY_FROZEN) { + playerCantMove = TRUE; + } + if (debuff == STATUS_KEY_STOP) { + playerCantMove = TRUE; + } + if (player->stoneStatus == STATUS_KEY_STONE) { + playerCantMove = TRUE; + } + if (battleStatus->outtaSightActive) { + playerCantMove = TRUE; + } + return !playerCantMove; +} +#endif + extern s32 MenuIndexFromPartnerID[]; // TODO MOVE s32 can_switch_to_partner(void) { diff --git a/src/entity.c b/src/entity.c index 5ba20bda6aa..a5a23d2302c 100644 --- a/src/entity.c +++ b/src/entity.c @@ -20,15 +20,6 @@ extern Addr WorldEntityHeapBase; #define entity_default_VRAM (void*) 0x802BAE00 #endif -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_default_ROM_END; -extern Addr entity_default_ROM_START; -extern Addr entity_jan_iwa_ROM_END; -extern Addr entity_jan_iwa_ROM_START; -extern Addr entity_sbk_omo_ROM_END; -extern Addr entity_sbk_omo_ROM_START; -#endif - s32 D_8014AFB0 = 255; s32 CreateEntityVarArgBuffer[4]; diff --git a/src/entity/Block.c b/src/entity/Block.c index 7e4be396c2e..f73229b060c 100644 --- a/src/entity/Block.c +++ b/src/entity/Block.c @@ -3,25 +3,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_BrickBlock_ROM_END; -extern Addr entity_model_BrickBlock_ROM_START; -extern Addr entity_model_Hammer1Block_ROM_END; -extern Addr entity_model_Hammer1Block_ROM_START; -extern Addr entity_model_Hammer2Block_ROM_END; -extern Addr entity_model_Hammer2Block_ROM_START; -extern Addr entity_model_Hammer3Block_ROM_END; -extern Addr entity_model_Hammer3Block_ROM_START; -extern Addr entity_model_InertRedBlock_ROM_END; -extern Addr entity_model_InertRedBlock_ROM_START; -extern Addr entity_model_InertYellowBlock_ROM_END; -extern Addr entity_model_InertYellowBlock_ROM_START; -extern Addr entity_model_PowBlock_ROM_END; -extern Addr entity_model_PowBlock_ROM_START; -extern Addr entity_model_PushBlock_ROM_END; -extern Addr entity_model_PushBlock_ROM_START; -#endif - extern Gfx Entity_InertYellowBlock_Render[]; extern Gfx Entity_InertRedBlock_Render[]; extern Gfx Entity_BrickBlock_Render[]; diff --git a/src/entity/BlueWarpPipe.c b/src/entity/BlueWarpPipe.c index becd7cbf642..c5c8b310a36 100644 --- a/src/entity/BlueWarpPipe.c +++ b/src/entity/BlueWarpPipe.c @@ -5,11 +5,6 @@ #include "entity.h" #include "sprite/player.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_BlueWarpPipe_ROM_END; -extern Addr entity_model_BlueWarpPipe_ROM_START; -#endif - extern Gfx Entity_BlueWarpPipe_RenderPipe[]; extern Gfx Entity_BlueWarpPipe_RenderBase[]; diff --git a/src/entity/Chest.c b/src/entity/Chest.c index a9d1b91787a..f087fd7f8a5 100644 --- a/src/entity/Chest.c +++ b/src/entity/Chest.c @@ -4,11 +4,6 @@ #include "entity.h" #include "sprite/player.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_Chest_ROM_END; -extern Addr entity_model_Chest_ROM_START; -#endif - extern EntityScript Entity_Chest_ScriptOpened; extern Gfx Entity_Chest_RenderBox[]; diff --git a/src/entity/HeartBlock.c b/src/entity/HeartBlock.c index 42d6effded8..ef7c83db1c9 100644 --- a/src/entity/HeartBlock.c +++ b/src/entity/HeartBlock.c @@ -4,13 +4,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_HeartBlockContent_ROM_END; -extern Addr entity_model_HeartBlockContent_ROM_START; -extern Addr entity_model_HeartBlock_ROM_END; -extern Addr entity_model_HeartBlock_ROM_START; -#endif - extern EntityModelScript Entity_HeartBlockContent_RenderScriptIdle; extern EntityModelScript Entity_HeartBlockContent_RenderScriptAfterHit; extern EntityModelScript Entity_HeartBlockContent_RenderScriptHit; diff --git a/src/entity/HiddenPanel.c b/src/entity/HiddenPanel.c index 1f234451fd4..846f3ec4cdc 100644 --- a/src/entity/HiddenPanel.c +++ b/src/entity/HiddenPanel.c @@ -2,11 +2,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_HiddenPanel_ROM_END; -extern Addr entity_model_HiddenPanel_ROM_START; -#endif - s32 entity_HiddenPanel_is_item_on_top(Entity*); void entity_HiddenPanel_flip_over(Entity*); diff --git a/src/entity/ItemBlock.c b/src/entity/ItemBlock.c index f68c45cd72a..aee5b2f7fcb 100644 --- a/src/entity/ItemBlock.c +++ b/src/entity/ItemBlock.c @@ -5,25 +5,6 @@ #include "entity.h" #include "model.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_HitFloatingYellowBlock_anim_ROM_END; -extern Addr entity_model_HitFloatingYellowBlock_anim_ROM_START; -extern Addr entity_model_HitFloatingYellowBlock_gfx_ROM_END; -extern Addr entity_model_HitFloatingYellowBlock_gfx_ROM_START; -extern Addr entity_model_HitRedBlock_anim_ROM_END; -extern Addr entity_model_HitRedBlock_anim_ROM_START; -extern Addr entity_model_HitRedBlock_gfx_ROM_END; -extern Addr entity_model_HitRedBlock_gfx_ROM_START; -extern Addr entity_model_HitYellowBlock_anim_ROM_END; -extern Addr entity_model_HitYellowBlock_anim_ROM_START; -extern Addr entity_model_HitYellowBlock_gfx_ROM_END; -extern Addr entity_model_HitYellowBlock_gfx_ROM_START; -extern Addr entity_model_RedBlock_ROM_END; -extern Addr entity_model_RedBlock_ROM_START; -extern Addr entity_model_YellowBlock_ROM_END; -extern Addr entity_model_YellowBlock_ROM_START; -#endif - extern Gfx Entity_YellowBlock_Render[]; extern Gfx Entity_RedBlock_Render[]; extern AnimScript Entity_HitYellowBlock_AnimationHit; diff --git a/src/entity/SaveBlock.c b/src/entity/SaveBlock.c index 364ca3e831c..c878e590017 100644 --- a/src/entity/SaveBlock.c +++ b/src/entity/SaveBlock.c @@ -4,11 +4,6 @@ #include "entity.h" #include "message_ids.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_SaveBlock_ROM_END; -extern Addr entity_model_SaveBlock_ROM_START; -#endif - extern Mtx Entity_SaveBlock_Mtx; extern Gfx Entity_SaveBlock_RenderContent[]; extern Gfx Entity_SaveBlock_RenderBlock[]; diff --git a/src/entity/ShatteringBlock.c b/src/entity/ShatteringBlock.c index 8d0cb9120f8..3fe188dd897 100644 --- a/src/entity/ShatteringBlock.c +++ b/src/entity/ShatteringBlock.c @@ -2,17 +2,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_ShatteringBrickBlock_ROM_END; -extern Addr entity_model_ShatteringBrickBlock_ROM_START; -extern Addr entity_model_ShatteringHammer1Block_ROM_END; -extern Addr entity_model_ShatteringHammer1Block_ROM_START; -extern Addr entity_model_ShatteringHammer2Block_ROM_END; -extern Addr entity_model_ShatteringHammer2Block_ROM_START; -extern Addr entity_model_ShatteringHammer3Block_ROM_END; -extern Addr entity_model_ShatteringHammer3Block_ROM_START; -#endif - extern Mtx Entity_ShatteringHammer1Block_FragmentsMatrices[]; extern Gfx* Entity_ShatteringHammer1Block_FragmentsRender[]; extern Mtx Entity_ShatteringHammer2Block_FragmentsMatrices[]; diff --git a/src/entity/Signpost.c b/src/entity/Signpost.c index 2e570c258d6..4a64e25e88a 100644 --- a/src/entity/Signpost.c +++ b/src/entity/Signpost.c @@ -2,11 +2,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_Signpost_ROM_END; -extern Addr entity_model_Signpost_ROM_START; -#endif - extern Gfx Entity_Signpost_Render[]; void entity_Signpost_idle(Entity* entity) { diff --git a/src/entity/SimpleSpring.c b/src/entity/SimpleSpring.c index 883e792f98a..4bbcee1c46a 100644 --- a/src/entity/SimpleSpring.c +++ b/src/entity/SimpleSpring.c @@ -3,17 +3,6 @@ #include "animation_script.h" #include "ld_addrs.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_ScriptSpring_anim_ROM_END; -extern Addr entity_model_ScriptSpring_anim_ROM_START; -extern Addr entity_model_ScriptSpring_gfx_ROM_END; -extern Addr entity_model_ScriptSpring_gfx_ROM_START; -extern Addr entity_model_SimpleSpring_anim_ROM_END; -extern Addr entity_model_SimpleSpring_anim_ROM_START; -extern Addr entity_model_SimpleSpring_gfx_ROM_END; -extern Addr entity_model_SimpleSpring_gfx_ROM_START; -#endif - extern StaticAnimatorNode* Entity_ScriptSpring_Mesh[]; extern AnimScript Entity_ScriptSpring_AnimLaunch; extern AnimScript Entity_ScriptSpring_AnimIdle; diff --git a/src/entity/SuperBlock.c b/src/entity/SuperBlock.c index 8e6c968b727..4a53ee18223 100644 --- a/src/entity/SuperBlock.c +++ b/src/entity/SuperBlock.c @@ -3,17 +3,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_SuperBlockContent_ROM_END; -extern Addr entity_model_SuperBlockContent_ROM_START; -extern Addr entity_model_SuperBlock_ROM_END; -extern Addr entity_model_SuperBlock_ROM_START; -extern Addr entity_model_UltraBlockContent_ROM_END; -extern Addr entity_model_UltraBlockContent_ROM_START; -extern Addr entity_model_UltraBlock_ROM_END; -extern Addr entity_model_UltraBlock_ROM_START; -#endif - extern EntityBlueprint Entity_SuperBlockContent; extern Gfx Entity_SuperBlock_Render[]; diff --git a/src/entity/Switch.c b/src/entity/Switch.c index 1883764d987..da52e411b5d 100644 --- a/src/entity/Switch.c +++ b/src/entity/Switch.c @@ -3,15 +3,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_BlueSwitch_ROM_END; -extern Addr entity_model_BlueSwitch_ROM_START; -extern Addr entity_model_GreenStompSwitch_ROM_END; -extern Addr entity_model_GreenStompSwitch_ROM_START; -extern Addr entity_model_RedSwitch_ROM_END; -extern Addr entity_model_RedSwitch_ROM_START; -#endif - #define REFLECTED_SWITCH_HIDDEN 1 #define REFLECTED_SWITCH_LINKED 2 diff --git a/src/entity/WoodenCrate.c b/src/entity/WoodenCrate.c index b695241b912..eec2d87e8d7 100644 --- a/src/entity/WoodenCrate.c +++ b/src/entity/WoodenCrate.c @@ -3,11 +3,6 @@ #include "ld_addrs.h" #include "entity.h" -#if VERSION_JP // TODO remove once segments are split -extern Addr entity_model_WoodenCrate_ROM_END; -extern Addr entity_model_WoodenCrate_ROM_START; -#endif - extern Gfx Entity_RenderNone[]; extern Gfx Entity_WoodenCrate_Render[]; extern Gfx* Entity_WoodenCrate_FragmentsRender[]; diff --git a/src/imgfx.c b/src/imgfx.c index 64bab44e8fd..cdbe48b2e2f 100644 --- a/src/imgfx.c +++ b/src/imgfx.c @@ -3,11 +3,6 @@ #include "sprite.h" #include "imgfx.h" - -#if VERSION_JP // TODO remove once segments are split -extern Addr imgfx_data_ROM_START; -#endif - typedef union ImgFXIntVars { s32 raw[2][4]; struct { diff --git a/src/load_obfuscation_shims.c b/src/load_obfuscation_shims.c index b729c120c8b..49709ab27af 100644 --- a/src/load_obfuscation_shims.c +++ b/src/load_obfuscation_shims.c @@ -6,14 +6,6 @@ extern s8 obfuscated_obfuscation_shims_ROM_START[]; extern s8 obfuscated_obfuscation_shims_VRAM[]; -#if VERSION_JP -// TODO: split these segments -extern Addr battle_heap_create_obfuscated_ROM_START; -extern Addr battle_heap_create_obfuscated_ROM_END; -extern Addr obfuscation_shims_ROM_START; -extern Addr obfuscation_shims_ROM_END; -#endif - #ifdef SHIFT void load_obfuscation_shims(void) { // no-op since in shiftable builds, we bypass the obfuscation diff --git a/src/menu_hud_scripts.c b/src/menu_hud_scripts.c index f2a534f4eda..2659e6a7ce3 100644 --- a/src/menu_hud_scripts.c +++ b/src/menu_hud_scripts.c @@ -57,9 +57,9 @@ HudScript HES_FilenameCaret = { HudScript HES_FilenameSpace = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_files_filename_space, 8, 8); #if VERSION_JP -HudScript HES_HeaderStats = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_spirits, 32, 16); +HudScript HES_HeaderSpirits = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_spirits, 32, 16); -HudScript HES_HeaderBadges = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_map, 32, 16); +HudScript HES_HeaderMap = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_map, 32, 16); #else HudScript HES_HeaderStats = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_stats, 48, 16); diff --git a/src/pause/pause_badges.c b/src/pause/pause_badges.c index 6554df0a0e1..9c42c13f548 100644 --- a/src/pause/pause_badges.c +++ b/src/pause/pause_badges.c @@ -364,7 +364,11 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width currentBadgeRow = gPauseBadgesSelectedIndex % currentPage->numCols; draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_15, baseX + 84, baseY, 0, width - 84, height, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); +#if VERSION_JP + hud_element_set_render_pos(gPauseBadgesIconIDs[20], baseX + 215, baseY + 11); +#else hud_element_set_render_pos(gPauseBadgesIconIDs[20], baseX + 241, baseY + 11); +#endif palette = MSG_PAL_STANDARD; hud_element_draw_without_clipping(gPauseBadgesIconIDs[20]); @@ -483,7 +487,11 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width badgeListY + pause_badges_scroll_offset_y(posY) + badgeEntryOffsetY, 255, palette, style); } } +#if VERSION_JP + draw_number(gMoveTable[gItemTable[badgeID].moveID].costBP, baseX + 211 + pause_badges_scroll_offset_x(posX), +#else draw_number(gMoveTable[gItemTable[badgeID].moveID].costBP, baseX + 235 + pause_badges_scroll_offset_x(posX), +#endif baseY + 17 + pause_badges_scroll_offset_y(posY), DRAW_NUMBER_CHARSET_THIN, palette, 255, DRAW_NUMBER_STYLE_ALIGN_RIGHT | DRAW_NUMBER_STYLE_MONOSPACE); } } @@ -537,12 +545,18 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width if (isEquipped == 0) { for (j = 0; j < numOrbs; j++) { gDPSetPrimColor(gMainGfxPos++, 0, 0, 227, 227, 227, 255); +#if VERSION_JP + pause_badges_draw_bp_orbs(0, + baseX + 211 + pause_badges_scroll_offset_x(posX) + 1 + (j % 10) * 6, + baseY + 17 + pause_badges_scroll_offset_y(posY) + orbOffsetY + (j / 10) * 7); +#else orbX = baseX + 235 + pause_badges_scroll_offset_x(posX) + 1 + (j % 5) * 6; orbY = baseY + 17 + pause_badges_scroll_offset_y(posY) + orbOffsetY; if (numOrbs >= 5) { orbY += j / 5 * 6 - 3; } pause_badges_draw_bp_orbs(0, orbX, orbY); +#endif } gDPPipeSync(gMainGfxPos++); @@ -551,23 +565,35 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width for (j = 0; j < numOrbs; j++) { if (j < bpAvailable) { +#if VERSION_JP + pause_badges_draw_bp_orbs(1, + baseX + 211 + pause_badges_scroll_offset_x(posX) + 1 + (j % 10) * 6, + baseY + 17 + pause_badges_scroll_offset_y(posY) + orbOffsetY + (j / 10) * 7); +#else orbX = baseX + 235 + pause_badges_scroll_offset_x(posX) + 1 + (j % 5) * 6; orbY = baseY + 17 + pause_badges_scroll_offset_y(posY) + orbOffsetY; if (numOrbs >= 5) { orbY += j / 5 * 6 - 3; } pause_badges_draw_bp_orbs(1, orbX, orbY); +#endif } } } else { gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 255, 100, 255); for (j = 0; j < numOrbs; j++) { +#if VERSION_JP + pause_badges_draw_bp_orbs(2, + baseX + 211 + pause_badges_scroll_offset_x(posX) + 1 + (j % 10) * 6, + baseY + 17 + pause_badges_scroll_offset_y(posY) + orbOffsetY + (j / 10) * 7); +#else orbX = baseX + 235 + pause_badges_scroll_offset_x(posX) + 1 + (j % 5) * 6; orbY = baseY + 17 + pause_badges_scroll_offset_y(posY) + orbOffsetY; if (numOrbs >= 5) { orbY += j / 5 * 6 - 3; } pause_badges_draw_bp_orbs(2, orbX, orbY); +#endif } gDPPipeSync(gMainGfxPos++); } @@ -624,13 +650,19 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width if (bpAmount < 10) { bpAvailOffsetX = -4; } +#if VERSION_JP + pause_draw_menu_label(PAUSE_LBL_AVAILABLE, baseX + 15, baseY + 100 + bpAvailOffsetY); +#else pause_draw_menu_label(PAUSE_LBL_AVAILABLE, baseX + 12, baseY + 100 + bpAvailOffsetY); +#endif #if VERSION_PAL bpAmountX = baseX + (73 + bpAvailOffsetX); if (gCurrentLanguage == LANGUAGE_ES) { bpAmountX += 8; } +#elif VERSION_JP + bpAmountX = baseX + 62 + bpAvailOffsetX; #else bpAmountX = baseX + 73 + bpAvailOffsetX; #endif @@ -676,7 +708,11 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width } draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_13, gPauseBadgesCurrentTab == 0 ? baseX + 9 : baseX, baseY + 7, 0, +#if VERSION_JP + 87, 34, 255, gPauseBadgesCurrentTab == 1 ? 128 : 0, 0, 0, +#else 91, 34, 255, gPauseBadgesCurrentTab == 1 ? 128 : 0, 0, 0, +#endif 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); #if VERSION_PAL @@ -728,6 +764,33 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width draw_msg(msg2, msgX, baseY + 42, gPauseBadgesCurrentTab == 0 ? 191 : 255, 0, 1); draw_msg(pause_get_menu_msg(PAUSE_MSG_BADGES), (gPauseBadgesCurrentTab == 1) ? baseX + D_PAL_80271B2C[gCurrentLanguage] + 9 :baseX + D_PAL_80271B2C[gCurrentLanguage], baseY + 52, gPauseBadgesCurrentTab == 0 ? 191 : 255, 0, 1); +#elif VERSION_JP + msg = pause_get_menu_msg(PAUSE_MSG_ALL_BADGES); + msgX = baseX + 12; + if (gPauseBadgesCurrentTab == 0) { + msgX = baseX + 21; + } + msgOpacity = 255; + msgY = baseY + 17; + if (gPauseBadgesCurrentTab == 1) { + msgOpacity = 191; + } + draw_msg(msg, msgX, msgY, msgOpacity, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); + + draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_13, gPauseBadgesCurrentTab == 1 ? baseX + 9 : baseX, baseY + 39, 0, 87, 34, 255, + gPauseBadgesCurrentTab == 0 ? 128 : 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); + + msg = pause_get_menu_msg(PAUSE_MSG_ACTIVE); + msgX = baseX + 8; + if (gPauseBadgesCurrentTab == 1) { + msgX = baseX + 17; + } + msgY = baseY + 49; + msgOpacity = 255; + if (gPauseBadgesCurrentTab == 0) { + msgOpacity = 191; + } + draw_msg(msg, msgX, msgY, msgOpacity, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); #else msg = pause_get_menu_msg(PAUSE_MSG_ALL_BADGES); msgX = baseX + 10; @@ -801,6 +864,11 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); draw_msg(pause_get_menu_msg(PAUSE_MSG_NOT_ENOUGH_BP), baseX + (292 - wid) / 2, baseY + 66, 255, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); +#elif VERSION_JP + draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_13, baseX + 67, baseY + 60, 0, 137, 26, 255, + 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); + draw_msg(pause_get_menu_msg(PAUSE_MSG_NOT_ENOUGH_BP), baseX + 78, baseY + 66, 255, + MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); #else draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_13, baseX + 67, baseY + 60, 0, 137, 26, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); @@ -810,8 +878,13 @@ void pause_badges_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width } else { draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_13, baseX + 67, baseY + 60, 0, 173, 26, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); +#if VERSION_JP + draw_msg(pause_get_menu_msg(PAUSE_MSG_DONT_WEAR_MORE), baseX + 78, baseY + 66, 255, + MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); +#else draw_msg(pause_get_menu_msg(PAUSE_MSG_DONT_WEAR_MORE), baseX + 90, baseY + 66, 255, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); +#endif } } } diff --git a/src/pause/pause_common.h b/src/pause/pause_common.h index e8dfa161c46..32d3a702df1 100644 --- a/src/pause/pause_common.h +++ b/src/pause/pause_common.h @@ -226,7 +226,9 @@ enum PauseMenuMessages { /* */ PAUSE_MSG_PAL_42, #endif /* 0x48 */ PAUSE_MSG_ACTIVE, +#if !VERSION_JP /* 0x49 */ PAUSE_MSG_BADGES, +#endif /* 0x4A */ PAUSE_MSG_NOT_ENOUGH_BP, /* 0x4B */ PAUSE_MSG_DONT_WEAR_MORE, /* 0x4C */ PAUSE_MSG_BAGDE_DESC_ALL, diff --git a/src/pause/pause_gfx.c b/src/pause/pause_gfx.c index 81ab9bc8d0c..232217ffeab 100644 --- a/src/pause/pause_gfx.c +++ b/src/pause/pause_gfx.c @@ -43,6 +43,12 @@ INCLUDE_IMG("pause/banner_boots.png", pause_banner_boots_png); INCLUDE_PAL("pause/banner_boots.pal", pause_banner_boots_pal); INCLUDE_IMG("pause/banner_hammer.png", pause_banner_hammer_png); INCLUDE_PAL("pause/banner_hammer.pal", pause_banner_hammer_pal); +#endif +#if VERSION_JP +INCLUDE_IMG("pause/stats_bar.png", pause_stats_bar_png); +INCLUDE_PAL("pause/stats_bar.pal", pause_stats_bar_pal); +#endif +#if !VERSION_PAL INCLUDE_IMG("pause/banner_star_energy.png", pause_banner_star_energy_png); INCLUDE_PAL("pause/banner_star_energy.pal", pause_banner_star_energy_pal); INCLUDE_IMG("pause/available.png", pause_available_png); @@ -50,8 +56,10 @@ INCLUDE_PAL("pause/available.pal", pause_available_pal); INCLUDE_IMG("pause/prompt_check_abilities.png", pause_prompt_check_abilities_png); INCLUDE_PAL("pause/prompt_check_abilities.pal", pause_prompt_check_abilities_pal); #endif +#if !VERSION_JP INCLUDE_IMG("pause/stats_bar.png", pause_stats_bar_png); INCLUDE_PAL("pause/stats_bar.pal", pause_stats_bar_pal); +#endif #if VERSION_PAL extern u8 pause_prompt_check_abilities_png[]; @@ -432,6 +440,41 @@ u8 gPauseMsg_53[] = { MSG_CHAR_UPPER_H, MSG_CHAR_UPPER_P, MSG_CHAR_READ_END }; u8 gPauseMsg_54[] = { MSG_CHAR_UPPER_F, MSG_CHAR_UPPER_P, MSG_CHAR_READ_END }; // FP[End] u8 gPauseMsg_55[] = { 0x21, 0x42, 0x49, 0x4C, 0x49, 0x54, 0x49, 0x45, 0x53, 0xFD }; // Abilities[End] u8 gPauseMsg_56[] = { MSG_CHAR_QUESTION, MSG_CHAR_QUESTION, MSG_CHAR_QUESTION, MSG_CHAR_READ_END }; // ???[End] +#elif VERSION_JP +u8 gPauseMsg_17[] = { 0x6F, 0x78, 0x55, 0xFD }; // マリオ[End] +u8 gPauseMsg_18[] = { 0x8F, 0x9E, 0x86, 0xFD }; // バッジ[End] +u8 gPauseMsg_19[] = { 0x22, 0x10, 0x22, 0x18, 0xFD }; // もちもの[End] +u8 gPauseMsg_1A[] = { 0x14, 0x05, 0x1E, 0xFD }; // なかま[End] +u8 gPauseMsg_32[] = { 0x5A, 0x52, 0x7E, 0xFD }; // コイン[End] +u8 gPauseMsg_33[] = { 0x5D, 0x60, 0xA2, 0x98, 0x52, 0x7E, 0x64, 0xFD }; // スターポイント[End] +u8 gPauseMsg_34[] = { 0x1D, 0x0B, 0x18, 0x05, 0x08, 0x26, 0xFD }; // ほしのかけら[End] +u8 gPauseMsg_35[] = { 0x96, 0x7A, 0x52, 0x35, 0x05, 0x2D, 0xFD }; // プレイじかん[End] +u8 gPauseMsg_36[] = { 0xF4, 0x07, 0x0F, 0xFD }; // [Charset Latin]HP[End] +u8 gPauseMsg_37[] = { 0xF4, 0x05, 0x0F, 0xFD }; // [Charset Latin]FP[End] +u8 gPauseMsg_38[] = { 0xF4, 0x01, 0x0F, 0xFD }; // [Charset Latin]BP[End] +u8 gPauseMsg_39[] = { 0xB9, 0xFD }; // /[End] +u8 gPauseMsg_3A[] = { 0xBA, 0xFD }; // .[End] +u8 gPauseMsg_3B[] = { 0x22, 0x4D, 0x12, 0x01, 0x1E, 0x0D, 0x2D, 0xFD }; // もっていません[End] +u8 gPauseMsg_3C[] = { 0x91, 0xA2, 0x62, 0xFD }; // ブーツ[End] +u8 gPauseMsg_3D[] = { 0x5D, 0xA2, 0x94, 0xA2, 0x91, 0xA2, 0x62, 0xFD }; // スーパーブーツ[End] +u8 gPauseMsg_3E[] = { 0x53, 0x79, 0x64, 0x77, 0x91, 0xA2, 0x62, 0xFD }; // ウルトラブーツ[End] +u8 gPauseMsg_3F[] = { 0x22, 0x4D, 0x12, 0x01, 0x1E, 0x0D, 0x2D, 0xFD }; // もっていません[End] +u8 gPauseMsg_40[] = { 0x6A, 0x7E, 0x6F, 0xA2, 0xFD }; // ハンマー[End] +u8 gPauseMsg_41[] = { 0x5D, 0xA2, 0x94, 0xA2, 0x6A, 0x7E, 0x6F, 0xA2, 0xFD }; // スーパーハンマー[End] +u8 gPauseMsg_42[] = { 0x53, 0x79, 0x64, 0x77, 0x6A, 0x7E, 0x6F, 0xA2, 0xFD }; // ウルトラハンマー[End] +u8 gPauseMsg_43[] = { 0x6F, 0x78, 0x55, 0xFD }; // マリオ[End] +u8 gPauseMsg_44[] = { 0x7A, 0x92, 0x79, 0xFD }; // レベル[End] +u8 gPauseMsg_46[] = { 0xF4, 0x01, 0x0F, 0xFD }; // [Charset Latin]BP[End] +u8 gPauseMsg_47[] = { 0x0C, 0x41, 0x12, 0x18, 0x8F, 0x9E, 0x86, 0xFD }; // すべてのバッジ[End] +u8 gPauseMsg_48[] = { 0x11, 0x08, 0x12, 0x01, 0x28, 0x8F, 0x9E, 0x86, 0xFD }; // つかているバッジ[End] +u8 gPauseMsg_4A[] = { 0x8F, 0x9E, 0x86, 0x98, 0x52, 0x7E, 0x64, 0x2F, 0x0F, 0x27, 0x1E, 0x0D, 0x2D, 0xFD }; // バッジポイントがたりません[End] +u8 gPauseMsg_4B[] = { 0x09, 0x29, 0x01, 0x35, 0x50, 0x02, 0x8F, 0x9E, 0x86, 0x2C, 0x11, 0x08, 0x26, 0x29, 0x1E, 0x0D, 0x2D, 0xFD }; // これいじょうバッジをつけられません[End] +u8 gPauseMsg_50[] = { 0x51, 0x52, 0x63, 0x71, 0xFD }; // アイテム[End] +u8 gPauseMsg_4F[] = { 0x39, 0x01, 0x35, 0x14, 0x22, 0x18, 0xFD }; // だいじなもの[End] +u8 gPauseMsg_53[] = { 0xF4, 0x07, 0x0F, 0xFD }; // [Charset Latin]HP[End] +u8 gPauseMsg_54[] = { 0xF4, 0x05, 0x0F, 0xFD }; // [Charset Latin]FP[End] +u8 gPauseMsg_55[] = { 0x7C, 0xF7, 0x85, 0xFD }; // ワ[HALFSPACE]ザ[End] +u8 gPauseMsg_56[] = { 0xB6, 0xB6, 0xB6, 0xFD }; // ???[End] #elif VERSION_PAL #define gPauseMsg_32 MSG_PAL_Menu_0039 /* Coins */ #define gPauseMsg_33 MSG_PAL_Menu_003A /* Star Points */ @@ -549,7 +592,9 @@ s32 gPauseMessages[] = { [PAUSE_MSG_PAL_42] (s32) gPauseMsg_PAL_42, #endif [PAUSE_MSG_ACTIVE] (s32) gPauseMsg_48, +#if !VERSION_JP [PAUSE_MSG_BADGES] (s32) gPauseMsg_49, +#endif [PAUSE_MSG_NOT_ENOUGH_BP] (s32) gPauseMsg_4A, [PAUSE_MSG_DONT_WEAR_MORE] (s32) gPauseMsg_4B, [PAUSE_MSG_BAGDE_DESC_ALL] MSG_MenuTip_BadgeTab_All, diff --git a/src/pause/pause_items.c b/src/pause/pause_items.c index 8795af791d3..a49ac41eba2 100644 --- a/src/pause/pause_items.c +++ b/src/pause/pause_items.c @@ -78,7 +78,16 @@ s32 pause_items_get_pos_x(s32 page, s32 itemIndex) { } s32 pause_items_get_pos_y(s32 page, s32 itemIndex) { +#if VERSION_JP + s32 y = (page + 1) * 11; + + y += gPauseItemsPages[page].listStart * 24; + y += itemIndex / gPauseItemsPages[page].numCols * 24; + + return y; +#else return ((page + 1) * 11) + (ITEM_MENU_PAGE(page)->listStart * 16) + ((itemIndex / ITEM_MENU_PAGE(page)->numCols) * 16); +#endif } s32 pause_items_get_column(s32 page, s32 itemIdx) { @@ -90,10 +99,17 @@ s32 pause_items_get_row(s32 page, s32 itemIdx) { } s32 pause_items_is_visible(s32 y) { +#if VERSION_JP + if (y < gPauseItemsCurrentScrollPos - 48) { + return FALSE; + } + return y < gPauseItemsCurrentScrollPos + 120; +#else if (y < gPauseItemsCurrentScrollPos - 32) { return FALSE; } return y < gPauseItemsCurrentScrollPos + 128; +#endif } s32 pause_items_scroll_offset_y(s32 beforeY) { @@ -159,8 +175,13 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, } totalItemIndex = 0; +#if VERSION_JP + sp6C = baseX + 103; + sp70 = baseY + 23; +#else sp6C = baseX + 119; sp70 = baseY + 17; +#endif gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x1, y1, x2, y2); @@ -244,8 +265,13 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, hud_element_set_scale(itemIcon, 0.670816f); } +#if VERSION_JP + hud_element_set_render_pos(itemIcon, baseX + 93 + pause_items_scroll_offset_x(posX) + itemOffsetX, + baseY + 28 + pause_items_scroll_offset_y(posY) + itemOffsetY); +#else hud_element_set_render_pos(itemIcon, baseX + 105 + pause_items_scroll_offset_x(posX) + itemOffsetX, baseY + 23 + pause_items_scroll_offset_y(posY) + itemOffsetY); +#endif if (totalItemIndex == 0) { hud_element_draw_without_clipping(itemIcon); } else { @@ -297,14 +323,25 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, } draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_17, gPauseItemsCurrentTab == 0 ? baseX + 9 : baseX, baseY + 7, 0, +#if VERSION_JP + 71, 34, 255, gPauseItemsCurrentTab == 1 ? 128 : 0, 0, 0, +#else 91, 34, 255, gPauseItemsCurrentTab == 1 ? 128 : 0, 0, 0, +#endif 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); msg = pause_get_menu_msg(PAUSE_MSG_KEY_ITEMS); +#if VERSION_JP + msgX = baseX + 9; + if (gPauseItemsCurrentTab == 0) { + msgX = baseX + 18; + } +#else msgX = baseX + 12; if (gPauseItemsCurrentTab == 0) { msgX = baseX + 21; } +#endif opacity1 = 255; msgY = baseY + 17; if (gPauseItemsCurrentTab == 1) { @@ -313,14 +350,25 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, draw_msg(msg, msgX, msgY, opacity1, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); draw_box(DRAW_FLAG_NO_CLIP, &gPauseWS_17, gPauseItemsCurrentTab == 1 ? baseX + 9 : baseX, baseY + 39, 0, +#if VERSION_JP + 71, 34, 255, gPauseItemsCurrentTab == 0 ? 128 : 0, 0, 0, +#else 91, 34, 255, gPauseItemsCurrentTab == 0 ? 128 : 0, 0, 0, +#endif 0, 0, 0, 0, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, 0); msg = pause_get_menu_msg(PAUSE_MSG_CONSUMABLES); +#if VERSION_JP + msgX = baseX + 18; + if (gPauseItemsCurrentTab == 1) { + msgX = baseX + 27; + } +#else msgX = baseX + 25; if (gPauseItemsCurrentTab == 1) { msgX = baseX + 34; } +#endif opacity1 = 255; msgY = baseY + 49; if (gPauseItemsCurrentTab == 0) { @@ -338,15 +386,29 @@ void pause_items_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, cursorOffsetY = pause_items_scroll_offset_y(selectedPosY); if (cursorOffsetY < 0) { cursorOffsetY = 0; +#if VERSION_JP + } else if (cursorOffsetY > 96) { + cursorOffsetY = 96; + } +#else } else if (cursorOffsetY > 112) { cursorOffsetY = 112; } +#endif - if (gPauseItemsCurrentScrollPos != gPauseItemsTargetScrollPos) { +#if VERSION_JP + if (gPauseItemsCurrentScrollPos != gPauseItemsTargetScrollPos) { + pause_set_cursor_pos_immediate(WINDOW_ID_PAUSE_ITEMS, baseX + 77 + cursorOffsetX, baseY + 29 + cursorOffsetY); + } else { + pause_set_cursor_pos(WINDOW_ID_PAUSE_ITEMS, baseX + 77 + cursorOffsetX, baseY + 29 + cursorOffsetY); + } +#else + if (gPauseItemsCurrentScrollPos != gPauseItemsTargetScrollPos) { pause_set_cursor_pos_immediate(WINDOW_ID_PAUSE_ITEMS, baseX + 85 + cursorOffsetX, baseY + 23 + cursorOffsetY); } else { pause_set_cursor_pos(WINDOW_ID_PAUSE_ITEMS, baseX + 85 + cursorOffsetX, baseY + 23 + cursorOffsetY); } +#endif } } } @@ -387,6 +449,16 @@ void pause_items_load_items(s32 invItems) { pause_sort_item_list(gPauseItemsItemIDs, totalItems, pause_items_comparator); } +#if VERSION_JP + if (totalItems % 2 != 0) { + s32 remainingItems = totalItems % 2; + for (i = 0; i < remainingItems; i++) { + gPauseItemsItemIDs[totalItems] = ITEM_INVALID; + totalItems++; + } + } +#endif + gPauseItemsNumItems = totalItems; for (i = totalItems; i < ARRAY_COUNT(gPauseItemsItemIDs); i++) { @@ -400,6 +472,27 @@ void pause_items_load_items(s32 invItems) { gPauseItemsTargetScrollIndex = 0; gPauseItemsCurrentPage = 0; +#if VERSION_JP + for (i = 0; i < gPauseItemsNumItems / 10; i++, page++) { + page->listStart = i * 5; + page->numCols = 2; + page->numRows = 5; + page->enabled = TRUE; + page->startIndex = i * 10; + page->count = 10; + } + + if ((gPauseItemsNumItems % 10) != 0) { + page->listStart = i * 5; + page->numCols = 2; + page->enabled = TRUE; + page->startIndex = i * 10; + page->count = gPauseItemsNumItems % 10; + page->numRows = page->count / 2; + i++; + page++; + } +#else for (i = 0; i < gPauseItemsNumItems / 8; i++, page++) { page->listStart = i * 8; page->numCols = 1; @@ -419,6 +512,7 @@ void pause_items_load_items(s32 invItems) { i++; page++; } +#endif for (; i < ARRAY_COUNT(gPauseItemsPages); i++, page++) { page->enabled = FALSE; @@ -574,12 +668,21 @@ void pause_items_update(MenuPanel* panel) { PauseItemPage* page = &gPauseItemsPages[gPauseItemsCurrentPage]; s32 selectedIndex = (gPauseItemsSelectedIndex / page->numCols) - page->listStart; +#if VERSION_JP + if (selectedIndex < 2 || page->numRows < 6) { + gPauseItemsTargetScrollIndex = 0; + } else if (selectedIndex >= page->numRows - 2) { + gPauseItemsTargetScrollIndex = page->numRows - 5; + } else if (selectedIndex - gPauseItemsTargetScrollIndex > 3) { + gPauseItemsTargetScrollIndex = selectedIndex - 3; +#else if (selectedIndex < 2 || page->numRows < 9) { gPauseItemsTargetScrollIndex = 0; } else if (selectedIndex >= page->numRows - 2) { gPauseItemsTargetScrollIndex = page->numRows - 8; } else if (selectedIndex - gPauseItemsTargetScrollIndex > 6) { gPauseItemsTargetScrollIndex = selectedIndex - 6; +#endif } else if (selectedIndex - gPauseItemsTargetScrollIndex < 1) { gPauseItemsTargetScrollIndex = selectedIndex - 1; } diff --git a/src/pause/pause_main.c b/src/pause/pause_main.c index 02b5bcb4b83..b94d24cfe4f 100644 --- a/src/pause/pause_main.c +++ b/src/pause/pause_main.c @@ -162,8 +162,13 @@ MenuWindowBP gPauseCommonWindowsBPs[] = { { .windowID = WINDOW_ID_PAUSE_DECRIPTION, .unk_01 = 0, +#if VERSION_JP + .pos = { .x = 27, .y = 164 }, + .width = 242, +#else .pos = { .x = 20, .y = 164 }, .width = 256, +#endif .height = 32, .priority = 0, .fpDrawContents = &pause_textbox_draw_contents, @@ -758,9 +763,11 @@ void pause_handle_input(s32 pressed, s32 held) { gPauseDescTextOffset = 0; if (currentDescMsg != 0) { get_msg_properties(currentDescMsg, &height, &width, &maxLineChars, &numLines, NULL, NULL, 0); +#if !VERSION_JP if (numLines % 2) { numLines++; } +#endif gPauseDescTextMaxPos = numLines - 2; if (gPauseDescTextMaxPos < 0) { gPauseDescTextMaxPos = 0; diff --git a/src/pause/pause_map.c b/src/pause/pause_map.c index 690bb6fdbe1..a4437cc7b0f 100644 --- a/src/pause/pause_map.c +++ b/src/pause/pause_map.c @@ -4,6 +4,9 @@ #if VERSION_PAL #define MAP_TITLE_X 36 #define MAP_TITLE_WIDTH 220 +#elif VERSION_JP +#define MAP_TITLE_X 86 +#define MAP_TITLE_WIDTH 120 #else #define MAP_TITLE_X 56 #define MAP_TITLE_WIDTH 180 diff --git a/src/pause/pause_partners.c b/src/pause/pause_partners.c index 00020419a93..42fd73c0368 100644 --- a/src/pause/pause_partners.c +++ b/src/pause/pause_partners.c @@ -478,18 +478,37 @@ void pause_partners_draw_title(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (level == PARTNER_RANK_SUPER) { offset = 16; - } else if (level == PARTNER_RANK_ULTRA) { + } else if (level == PARTNER_RANK_ULTRA) { +#if VERSION_JP + offset = 32; +#else offset = 20; +#endif } else { offset = 0; } if (offset != 0) { +#if VERSION_JP + msgWidth += 8; +#else msgWidth += 4; +#endif } draw_msg(msgID, baseX + ((width - offset - msgWidth) >> 1), baseY + 1, 255, MSG_PAL_WHITE, 0); +#if VERSION_JP + if (level == 1) { + hud_element_set_render_pos(gPausePartnersIconIDs[2], baseX + 76, baseY + 10); + hud_element_draw_without_clipping(gPausePartnersIconIDs[2]); + } else if (level == 2) { + hud_element_set_render_pos(gPausePartnersIconIDs[3], baseX + 88, baseY + 10); + hud_element_draw_without_clipping(gPausePartnersIconIDs[3]); + hud_element_set_render_pos(gPausePartnersIconIDs[2], baseX + 72, baseY + 10); + hud_element_draw_without_clipping(gPausePartnersIconIDs[2]); + } +#else if (level == 1) { hud_element_set_render_pos(gPausePartnersIconIDs[2], baseX + 95, baseY + 10); hud_element_draw_without_clipping(gPausePartnersIconIDs[2]); @@ -499,6 +518,7 @@ void pause_partners_draw_title(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, hud_element_set_render_pos(gPausePartnersIconIDs[3], baseX + 101, baseY + 10); hud_element_draw_without_clipping(gPausePartnersIconIDs[3]); } +#endif } void pause_partners_draw_movelist(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { @@ -518,7 +538,11 @@ void pause_partners_draw_movelist(MenuPanel* menu, s32 baseX, s32 baseY, s32 wid level = 2; } for (i = 0; i < 4; i++) { +#if VERSION_JP + msgX = baseX + 32; +#else msgX = baseX + 21; +#endif msgY = baseY + 22 + i * 13; if (i >= level) { @@ -542,11 +566,19 @@ void pause_partners_draw_movelist(MenuPanel* menu, s32 baseX, s32 baseY, s32 wid draw_msg(moveNameID, msgX, msgY, 255, MSG_PAL_STANDARD, style); hud_element_set_scale(gPausePartnersIconIDs[i + 4], 0.5f); //TODO find better match +#if VERSION_JP + hud_element_set_render_pos(gPausePartnersIconIDs[i + 4], 22 - (-baseX), baseY + 28 + i * 13); +#else hud_element_set_render_pos(gPausePartnersIconIDs[i + 4], 12 - (-baseX), baseY + 28 + i * 13); +#endif hud_element_draw_without_clipping(gPausePartnersIconIDs[i + 4]); if (costFP != 0) { +#if VERSION_JP + s32 xOffset = 124; +#else s32 xOffset = 125; +#endif #if VERSION_PAL xOffset = D_PAL_80271B44[gCurrentLanguage]; @@ -556,6 +588,8 @@ void pause_partners_draw_movelist(MenuPanel* menu, s32 baseX, s32 baseY, s32 wid if (costFP > 0) { #if VERSION_PAL hud_element_set_render_pos(gPausePartnersIconIDs[0], baseX + D_PAL_80271B44[gCurrentLanguage] + 9, baseY + 29 + i * 13); +#elif VERSION_JP + hud_element_set_render_pos(gPausePartnersIconIDs[0], baseX + 133, baseY + 29 + i * 13); #else hud_element_set_render_pos(gPausePartnersIconIDs[0], baseX + 134, baseY + 29 + i * 13); #endif @@ -565,7 +599,11 @@ void pause_partners_draw_movelist(MenuPanel* menu, s32 baseX, s32 baseY, s32 wid } if (gPauseMenuCurrentTab == 4 && gPausePartnersLevel == 1) { +#if VERSION_JP + pause_set_cursor_pos(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, baseX + 7, baseY + 28 + gPausePartnersSelectedMove * 13); +#else pause_set_cursor_pos(WINDOW_ID_PAUSE_PARTNERS_MOVELIST, baseX - 2, baseY + 28 + gPausePartnersSelectedMove * 13); +#endif } } @@ -575,6 +613,8 @@ void pause_partners_draw_movelist_title(MenuPanel* menu, s32 baseX, s32 baseY, s #if VERSION_PAL xOffset = D_PAL_80271B38[gCurrentLanguage]; +#elif VERSION_JP + xOffset = 24; #else xOffset = 12; #endif diff --git a/src/pause/pause_stats.c b/src/pause/pause_stats.c index 736caa55df5..3dc8967d7df 100644 --- a/src/pause/pause_stats.c +++ b/src/pause/pause_stats.c @@ -18,6 +18,17 @@ static s32 gPauseStatsIconIDs[12]; #define COL_C_X 110 #define POS_1_X 60 #define POS_2_X 100 +#elif VERSION_JP +#define NUMBER_OFFSET_Y 0 +#define ROW_1_Y 51 +#define ROW_2_Y 51 +#define ROW_3_Y 85 +#define ROW_4_Y 119 +#define COL_A_X 25 +#define COL_B_X 78 +#define COL_C_X 105 +#define POS_1_X 62 +#define POS_2_X 92 #else #define NUMBER_OFFSET_Y 0 #define ROW_1_Y 51 @@ -88,9 +99,18 @@ s8 gPauseStatsGridData[] = { }; #if VERSION_PAL +#define BOOTS_X 138 +#define HAMMER_X 138 #define STAR_POWER_X 122 #define COLLECTABLES_X 127 +#elif VERSION_JP +#define BOOTS_X 128 +#define HAMMER_X 128 +#define STAR_POWER_X 122 +#define COLLECTABLES_X 133 #else +#define BOOTS_X 138 +#define HAMMER_X 138 #define STAR_POWER_X 132 #define COLLECTABLES_X 125 #endif @@ -101,8 +121,8 @@ StatsEntryData gStatsMenuEntries[] = { { .cursorX = 17, .cursorY = 55, .baseMsgID = PAUSE_MSG_TIP_HP }, { .cursorX = 17, .cursorY = 90, .baseMsgID = PAUSE_MSG_TIP_FP }, { .cursorX = 17, .cursorY = 124, .baseMsgID = PAUSE_MSG_TIP_BP }, - { .cursorX = 138, .cursorY = 28, .baseMsgID = PAUSE_MSG_TIP_BOOTS_1 }, - { .cursorX = 138, .cursorY = 53, .baseMsgID = PAUSE_MSG_TIP_HAMMER_0 }, + { .cursorX = BOOTS_X, .cursorY = 28, .baseMsgID = PAUSE_MSG_TIP_BOOTS_1 }, + { .cursorX = HAMMER_X, .cursorY = 53, .baseMsgID = PAUSE_MSG_TIP_HAMMER_0 }, { .cursorX = STAR_POWER_X, .cursorY = 76, .baseMsgID = PAUSE_MSG_TIP_STAR_POWER }, { .cursorX = COLLECTABLES_X, .cursorY = 91, .baseMsgID = PAUSE_MSG_TIP_STAR_POINTS }, { .cursorX = COLLECTABLES_X, .cursorY = 106, .baseMsgID = PAUSE_MSG_TIP_COINS }, @@ -182,6 +202,31 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 frameCount; s32 powFullBars; +#if VERSION_JP + // draw coin count + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_COIN], baseX + 151, baseY + 109); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_COIN]); + draw_msg(pause_get_menu_msg(PAUSE_MSG_LBL_COINS), baseX + 163, baseY + 101, 255, MSG_PAL_STANDARD, 1); + draw_number(gPlayerData.coins, baseX + 239, baseY + 101 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_TIMES], baseX + 233, baseY + 108); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_TIMES]); + + // draw star point count + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_STAR_POINT], baseX + 151, baseY + 94); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_STAR_POINT]); + draw_msg(pause_get_menu_msg(PAUSE_MSG_LBL_STAR_POINTS), baseX + 163, baseY + 86, 255, MSG_PAL_STANDARD, 1); + draw_number(gPlayerData.starPoints, baseX + 239, baseY + 86 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_TIMES], baseX + 233, baseY + 93); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_TIMES]); + + // draw star piece count + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_STAR_PIECE], baseX + 151, baseY + 123); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_STAR_PIECE]); + draw_msg(pause_get_menu_msg(PAUSE_MSG_LBL_STAR_PIECES), baseX + 163, baseY + 116, 255, MSG_PAL_STANDARD, 1); + draw_number(gPlayerData.starPieces, baseX + 239, baseY + 116 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_TIMES], baseX + 233, baseY + 123); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_TIMES]); +#else // draw coin count hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_COIN], baseX + 143, baseY + 109); hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_COIN]); @@ -205,6 +250,7 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, draw_number(gPlayerData.starPieces, baseX + 281, baseY + 116 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 3); hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_TIMES], baseX + 248, baseY + 123); hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_TIMES]); +#endif // draw HP count pause_draw_menu_label(PAUSE_LBL_HP, baseX + 21, baseY + 35); @@ -235,16 +281,27 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, #define HOUR (MINUTE * 60) // draw play time +#if VERSION_JP + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_CLOCK], baseX + 151, baseY + 140); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_CLOCK]); + draw_msg(pause_get_menu_msg(PAUSE_MSG_LBL_TIME), baseX + 163, baseY + 133, 255, MSG_PAL_STANDARD, 1); +#else hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_CLOCK], baseX + 143, baseY + 140); hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_CLOCK]); draw_msg(pause_get_menu_msg(PAUSE_MSG_LBL_TIME), baseX + 155, baseY + 133, 255, MSG_PAL_STANDARD, 1); +#endif frameCount = gPlayerData.frameCounter; if (frameCount >= (100 * HOUR)) { frameCount = (100 * HOUR) - 1; } // draw hours +#if VERSION_JP + draw_number((frameCount / (10 * HOUR)) % 10, baseX + 239, baseY + 133 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); + draw_number((frameCount / HOUR) % 10, baseX + 248, baseY + 133 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); +#else draw_number((frameCount / (10 * HOUR)) % 10, baseX + 237, baseY + 133 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); draw_number((frameCount / HOUR) % 10, baseX + 246, baseY + 133 + NUMBER_OFFSET_Y, 1, MSG_PAL_STANDARD, 255, 2); +#endif draw_msg(pause_get_menu_msg(PAUSE_MSG_DOT), baseX + 257, baseY + 132, 255, MSG_PAL_STANDARD, 1); draw_msg(pause_get_menu_msg(PAUSE_MSG_DOT), baseX + 257, baseY + 127, 255, MSG_PAL_STANDARD, 1); // draw minutes @@ -254,10 +311,17 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, bootsLevel = gPlayerData.bootsLevel; hammerLevel = gPlayerData.hammerLevel; level = gPlayerData.level; +#if VERSION_JP + draw_box(4, &gPauseWS_10, baseX + 7, baseY + 12, 0, level >= 10 ? 110 : 102, 17, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL, NULL, SCREEN_WIDTH, SCREEN_HEIGHT, NULL); +#else draw_box(4, &gPauseWS_10, baseX + 7, baseY + 12, 0, level >= 10 ? 121 : 113, 17, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, NULL, NULL, SCREEN_WIDTH, SCREEN_HEIGHT, NULL); +#endif // draw level -#if !VERSION_IQUE +#if VERSION_JP + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_MARIO], baseX + 53, baseY + 21); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_MARIO]); +#elif VERSION_US || VERSION_PAL hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_MARIO], baseX + 61, baseY + 21); hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_MARIO]); #endif @@ -281,6 +345,26 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, hammerLevel = 3; } +#if VERSION_JP + pause_draw_menu_label(PAUSE_LBL_BOOTS, baseX + 127, baseY + 10); + pause_draw_menu_label(PAUSE_LBL_HAMMER, baseX + 127, baseY + 35); + + // draw boots + hud_element_set_script(gPauseStatsIconIDs[STAT_ICON_BOOTS], gStatsBootsElements[bootsLevel]); + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_BOOTS], baseX + 151, baseY + 29); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_BOOTS]); + draw_msg(pause_get_menu_msg(gPauseStatsBootsMessages[bootsLevel]), baseX + 164, baseY + 23, 255, MSG_PAL_WHITE, 1); + + // draw hammer + hud_element_set_script(gPauseStatsIconIDs[STAT_ICON_HAMMER], gStatsHammerElements[hammerLevel]); + hud_element_set_render_pos(gPauseStatsIconIDs[STAT_ICON_HAMMER], baseX + 151, baseY + 54); + hud_element_draw_without_clipping(gPauseStatsIconIDs[STAT_ICON_HAMMER]); + draw_msg(pause_get_menu_msg(gPauseStatsHammerMessages[hammerLevel]), baseX + 164, baseY + 48, 255, MSG_PAL_WHITE, 1); + + // draw star power bar + pause_draw_menu_label(PAUSE_LBL_STATS, baseX + 128, baseY + 69); + pause_draw_menu_label(PAUSE_LBL_ENERGY, baseX + 128, baseY + 60); +#else pause_draw_menu_label(PAUSE_LBL_BOOTS, baseX + 137, baseY + 10); pause_draw_menu_label(PAUSE_LBL_HAMMER, baseX + 137, baseY + 35); @@ -299,6 +383,7 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, // draw star power bar pause_draw_menu_label(PAUSE_LBL_STATS, baseX + 130, baseY + 69); pause_draw_menu_label(PAUSE_LBL_ENERGY, baseX + 138, baseY + 60); +#endif drawingFirst = TRUE; curIncrement = 0; @@ -321,7 +406,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[0], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[0], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -336,7 +425,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[1], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[1], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -351,7 +444,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[2], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[2], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -366,7 +463,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[3], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[3], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -381,7 +482,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[4], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[4], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -396,7 +501,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[5], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[5], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -411,7 +520,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsSPIncElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[6], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[6], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -426,7 +539,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, curIncrement++; hud_element_set_script(powHudElemID, gPauseStatsStarElements[powBarIdx]); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 150 + (powBarIdx * 20), baseY + 77); +#else hud_element_set_render_pos(powHudElemID, baseX + 152 + (powBarIdx * 20), baseY + 77); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -455,7 +572,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 0) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[0], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[0], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -471,7 +592,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 1) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[1], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[1], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -488,7 +613,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 2) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[2], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[2], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -505,7 +634,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 3) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[3], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[3], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -522,7 +655,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 4) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[4], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[4], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -539,7 +676,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 5) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[5], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[5], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -556,7 +697,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 6) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusSPEmptyIncrement); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 138 + (powBarIdx * 20) + D_8024F46C[6], baseY + 75); +#else hud_element_set_render_pos(powHudElemID, baseX + 140 + (powBarIdx * 20) + D_8024F46C[6], baseY + 75); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; @@ -573,7 +718,11 @@ void pause_stats_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, if (powIncIdx == 7) { curIncrement++; hud_element_set_script(powHudElemID, &HES_StatusStarEmpty); +#if VERSION_JP + hud_element_set_render_pos(powHudElemID, baseX + 150 + (powBarIdx * 20), baseY + 77); +#else hud_element_set_render_pos(powHudElemID, baseX + 152 + (powBarIdx * 20), baseY + 77); +#endif if (drawingFirst) { hud_element_draw_without_clipping(powHudElemID); drawingFirst = FALSE; diff --git a/src/pause/pause_tabs.c b/src/pause/pause_tabs.c index e8750611519..96b8267d9b9 100644 --- a/src/pause/pause_tabs.c +++ b/src/pause/pause_tabs.c @@ -19,7 +19,11 @@ void pause_tabs_handle_input(MenuPanel* tab); void pause_tabs_update(MenuPanel* tab); void pause_tabs_cleanup(MenuPanel* tab); +#if VERSION_JP +static s32 gPauseTabsIconIDs[2]; +#else static s32 gPauseTabsIconIDs[6]; +#endif static s32 gPauseTabsPreviousTab; static s32 gPauseTabsHorizScrollPos; @@ -46,12 +50,18 @@ extern HudScript HES_HeaderSpirits_es; extern HudScript HES_HeaderMap_es; #endif +#if VERSION_JP +HudScript* gPauseTabsHudScripts[][2] = { + [LANGUAGE_DEFAULT] = { + &HES_HeaderSpirits, &HES_HeaderMap + }, +}; +#elif VERSION_PAL HudScript* gPauseTabsHudScripts[][6] = { [LANGUAGE_DEFAULT] = { &HES_HeaderStats, &HES_HeaderBadges, &HES_HeaderItems, &HES_HeaderParty, &HES_HeaderSpirits, &HES_HeaderMap }, -#if VERSION_PAL [LANGUAGE_DE] = { &HES_HeaderStats_de, &HES_HeaderBadges_de, &HES_HeaderItems_de, &HES_HeaderParty_de, &HES_HeaderSpirits_de, &HES_HeaderMap_de @@ -64,8 +74,15 @@ HudScript* gPauseTabsHudScripts[][6] = { &HES_HeaderStats_es, &HES_HeaderBadges_es, &HES_HeaderItems_es, &HES_HeaderParty_es, &HES_HeaderSpirits_es, &HES_HeaderMap_es }, -#endif }; +#else +HudScript* gPauseTabsHudScripts[][6] = { + [LANGUAGE_DEFAULT] = { + &HES_HeaderStats, &HES_HeaderBadges, &HES_HeaderItems, + &HES_HeaderParty, &HES_HeaderSpirits, &HES_HeaderMap + }, +}; +#endif s8 gPauseTabsGridData[] = { 0, 1, 2, 3, 4, 5 }; u8 gPauseTabsPanelIDs[] = { 1, 2, 3, 4, 5, 6 }; @@ -201,6 +218,43 @@ MenuPanel gPausePanelTabs = { void pause_tabs_draw_invis(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { } +#if VERSION_JP +void pause_tabs_draw_stats(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { + draw_msg(pause_get_menu_msg(PAUSE_MSG_17), baseX + 9, baseY + 1, 255.0 - darkening * 0.5, 0, 1); + if (gPauseMenuCurrentTab == 0) { + if (gPauseTabsWindowIDs[menu->col] == WINDOW_ID_PAUSE_TAB_STATS) { + pause_set_cursor_pos(gPauseTabsWindowIDs[menu->col], baseX + TABS_CURSOR_OFFSET_X, baseY + 6); + } + } +} + +void pause_tabs_draw_badges(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { + draw_msg(pause_get_menu_msg(PAUSE_MSG_18), baseX + 9, baseY + 1, 255.0 - darkening * 0.5, 0, 1); + if (gPauseMenuCurrentTab == 0) { + if (gPauseTabsWindowIDs[menu->col] == WINDOW_ID_PAUSE_TAB_BADGES) { + pause_set_cursor_pos(gPauseTabsWindowIDs[menu->col], baseX + TABS_CURSOR_OFFSET_X, baseY + 6); + } + } +} + +void pause_tabs_draw_items(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { + draw_msg(pause_get_menu_msg(PAUSE_MSG_19), baseX + 4, baseY + 1, 255.0 - darkening * 0.5, 0, 1); + if (gPauseMenuCurrentTab == 0) { + if (gPauseTabsWindowIDs[menu->col] == WINDOW_ID_PAUSE_TAB_ITEMS) { + pause_set_cursor_pos(gPauseTabsWindowIDs[menu->col], baseX + TABS_CURSOR_OFFSET_X, baseY + 6); + } + } +} + +void pause_tabs_draw_party(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { + draw_msg(pause_get_menu_msg(PAUSE_MSG_1A), baseX + 9, baseY + 1, 255.0 - darkening * 0.5, 0, 1); + if (gPauseMenuCurrentTab == 0) { + if (gPauseTabsWindowIDs[menu->col] == WINDOW_ID_PAUSE_TAB_PARTY) { + pause_set_cursor_pos(gPauseTabsWindowIDs[menu->col], baseX + TABS_CURSOR_OFFSET_X, baseY + 6); + } + } +} +#else void pause_tabs_draw_stats(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { if (darkening != 0) { hud_element_set_flags(gPauseTabsIconIDs[0], HUD_ELEMENT_FLAG_TRANSPARENT); @@ -272,8 +326,21 @@ void pause_tabs_draw_party(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 } } } +#endif void pause_tabs_draw_spirits(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { +#if VERSION_JP + if (darkening != 0) { + hud_element_set_flags(gPauseTabsIconIDs[0], HUD_ELEMENT_FLAG_TRANSPARENT); + hud_element_set_alpha(gPauseTabsIconIDs[0], 255.0 - darkening * 0.5); + } else { + hud_element_clear_flags(gPauseTabsIconIDs[0], HUD_ELEMENT_FLAG_TRANSPARENT); + hud_element_set_alpha(gPauseTabsIconIDs[0], 255); + } + + hud_element_set_render_pos(gPauseTabsIconIDs[0], baseX + 23, baseY + 7); + hud_element_draw_without_clipping(gPauseTabsIconIDs[0]); +#else if (darkening != 0) { hud_element_set_flags(gPauseTabsIconIDs[4], HUD_ELEMENT_FLAG_TRANSPARENT); hud_element_set_alpha(gPauseTabsIconIDs[4], 255.0 - darkening * 0.5); @@ -284,6 +351,7 @@ void pause_tabs_draw_spirits(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s hud_element_set_render_pos(gPauseTabsIconIDs[4], baseX + 22, baseY + 7); hud_element_draw_without_clipping(gPauseTabsIconIDs[4]); +#endif if (gPauseMenuCurrentTab == 0) { if (gPauseTabsWindowIDs[menu->col] == WINDOW_ID_PAUSE_TAB_SPIRITS) { pause_set_cursor_pos(gPauseTabsWindowIDs[menu->col], baseX + TABS_CURSOR_OFFSET_X, baseY + 6); @@ -292,6 +360,18 @@ void pause_tabs_draw_spirits(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s } void pause_tabs_draw_map(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { +#if VERSION_JP + if (darkening != 0) { + hud_element_set_flags(gPauseTabsIconIDs[1], HUD_ELEMENT_FLAG_TRANSPARENT); + hud_element_set_alpha(gPauseTabsIconIDs[1], 255.0 - darkening * 0.5); + } else { + hud_element_clear_flags(gPauseTabsIconIDs[1], HUD_ELEMENT_FLAG_TRANSPARENT); + hud_element_set_alpha(gPauseTabsIconIDs[1], 255); + } + + hud_element_set_render_pos(gPauseTabsIconIDs[1], baseX + 23, baseY + 7); + hud_element_draw_without_clipping(gPauseTabsIconIDs[1]); +#else if (darkening != 0) { hud_element_set_flags(gPauseTabsIconIDs[5], HUD_ELEMENT_FLAG_TRANSPARENT); hud_element_set_alpha(gPauseTabsIconIDs[5], 255.0 - darkening * 0.5); @@ -302,6 +382,7 @@ void pause_tabs_draw_map(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 h hud_element_set_render_pos(gPauseTabsIconIDs[5], baseX + 23, baseY + 7); hud_element_draw_without_clipping(gPauseTabsIconIDs[5]); +#endif if (gPauseMenuCurrentTab == 0) { if (gPauseTabsWindowIDs[menu->col] == WINDOW_ID_PAUSE_TAB_MAP) { pause_set_cursor_pos(gPauseTabsWindowIDs[menu->col], baseX + TABS_CURSOR_OFFSET_X, baseY + 6); diff --git a/src/state_pause.c b/src/state_pause.c index db55030dff7..410256fd554 100644 --- a/src/state_pause.c +++ b/src/state_pause.c @@ -7,19 +7,6 @@ #include "model.h" #include "game_modes.h" -#if VERSION_JP -// TODO: split this segment -extern Addr pause_ROM_START; -extern Addr pause_ROM_END; -extern Addr pause_VRAM; -extern Addr pause_TEXT_START; -extern Addr pause_TEXT_END; -extern Addr pause_RODATA_END; -extern Addr pause_BSS_START; -extern Addr pause_BSS_END; -extern Addr pause_DATA_START; -#endif - extern u16 gFrameBuf0[]; extern u16 gFrameBuf1[]; extern u16 gFrameBuf2[]; diff --git a/src/world/actions.c b/src/world/actions.c index 09c7e1f1a69..6b6415fe6ea 100644 --- a/src/world/actions.c +++ b/src/world/actions.c @@ -37,45 +37,6 @@ void action_update_use_munchlesia(void); void action_update_use_tweester(void); void action_update_state_23(void); -#if VERSION_JP // TODO remove once segments are split -extern Addr world_action_idle_ROM_START; -extern Addr world_action_idle_ROM_END; -extern Addr world_action_walk_ROM_START; -extern Addr world_action_walk_ROM_END; -extern Addr world_action_jump_ROM_START; -extern Addr world_action_jump_ROM_END; -extern Addr world_action_land_ROM_START; -extern Addr world_action_land_ROM_END; -extern Addr world_action_misc_ROM_START; -extern Addr world_action_misc_ROM_END; -extern Addr world_action_spin_jump_ROM_START; -extern Addr world_action_spin_jump_ROM_END; -extern Addr world_action_tornado_jump_ROM_START; -extern Addr world_action_tornado_jump_ROM_END; -extern Addr world_action_slide_ROM_START; -extern Addr world_action_slide_ROM_END; -extern Addr world_action_hammer_ROM_START; -extern Addr world_action_hammer_ROM_END; -extern Addr world_action_hit_fire_ROM_START; -extern Addr world_action_hit_fire_ROM_END; -extern Addr world_action_knockback_ROM_START; -extern Addr world_action_knockback_ROM_END; -extern Addr world_action_hit_lava_ROM_START; -extern Addr world_action_hit_lava_ROM_END; -extern Addr world_action_step_up_ROM_START; -extern Addr world_action_step_up_ROM_END; -extern Addr world_action_sneaky_parasol_ROM_START; -extern Addr world_action_sneaky_parasol_ROM_END; -extern Addr world_action_spin_ROM_START; -extern Addr world_action_spin_ROM_END; -extern Addr world_action_use_spinning_flower_ROM_START; -extern Addr world_action_use_spinning_flower_ROM_END; -extern Addr world_action_use_munchlesia_ROM_START; -extern Addr world_action_use_munchlesia_ROM_END; -extern Addr world_action_use_tweester_ROM_START; -extern Addr world_action_use_tweester_ROM_END; -#endif - s32 PrevPlayerCamRelativeYaw = 0; s32 D_800F7B44 = 0; f32 D_800F7B48 = 0.0f; diff --git a/src/world/area_dgb/dgb_03/clock.c b/src/world/area_dgb/dgb_03/clock.c index 7527374288c..ffc382bc1d8 100644 --- a/src/world/area_dgb/dgb_03/clock.c +++ b/src/world/area_dgb/dgb_03/clock.c @@ -4,13 +4,17 @@ #include "world/common/todo/UnkFunc12.inc.c" EvtScript N(EVS_PushClock_Impl) = { +#if !VERSION_JP SetGroup(EVT_GROUP_00) +#endif Loop(20) +#if !VERSION_JP Call(GetPartnerInUse, LVarA) IfNe(LVarA, PARTNER_NONE) Set(LVar8, -1) Return EndIf +#endif Call(N(UnkFunc11), LVar9) IfEq(LVar0, 0) Set(LVar8, -1) @@ -20,11 +24,13 @@ EvtScript N(EVS_PushClock_Impl) = { EndIf Wait(1) EndLoop +#if !VERSION_JP Call(GetPartnerInUse, LVarA) IfNe(LVarA, PARTNER_NONE) Set(LVar8, -1) Return EndIf +#endif Call(DisablePlayerInput, TRUE) Thread Call(ShakeCam, CAM_DEFAULT, 0, 100, Float(0.6)) diff --git a/src/world/area_dgb/dgb_18/npc.c b/src/world/area_dgb/dgb_18/npc.c index 8e9aa804160..6ab3cff0310 100644 --- a/src/world/area_dgb/dgb_18/npc.c +++ b/src/world/area_dgb/dgb_18/npc.c @@ -405,7 +405,11 @@ EvtScript N(EVS_Scene_YakkeyShouts) = { Call(WaitForCam, CAM_DEFAULT, Float(1.0)) Thread Set(MF_Sync_YakkeyDialogue, FALSE) +#if VERSION_JP + Call(ShowMessageAtScreenPos, MSG_CH3_00FA, 160, 40) +#else Call(SpeakToPlayer, NPC_SELF, ANIM_Yakkey_Talk, ANIM_Yakkey_Idle, 517, MSG_CH3_00FA) +#endif Set(MF_Sync_YakkeyDialogue, TRUE) EndThread Call(GetPlayerPos, LVar0, LVar1, LVar2) diff --git a/src/world/area_end/common/Credits.h b/src/world/area_end/common/Credits.h index 84c48560c8c..d91ec9dc066 100644 --- a/src/world/area_end/common/Credits.h +++ b/src/world/area_end/common/Credits.h @@ -10,14 +10,23 @@ #define STANDARD_APPEAR_TIME 33 #define STANDARD_HOLD_TIME 116 #define STANDARD_VANISH_TIME 25 +#elif VERSION_JP +#define STANDARD_APPEAR_TIME 40 +#define STANDARD_HOLD_TIME 184 +#define STANDARD_VANISH_TIME 30 #else #define STANDARD_APPEAR_TIME 40 #define STANDARD_HOLD_TIME 174 #define STANDARD_VANISH_TIME 30 #endif +#if VERSION_JP +#define STANDARD_NEXT_TIME 240 +#define STANDARD_TITLE_NEXT_TIME 270 +#else #define STANDARD_NEXT_TIME 230 #define STANDARD_TITLE_NEXT_TIME 270 +#endif enum { CREDITS_APPEAR_MODE_00 = 0, diff --git a/src/world/area_end/common/Credits.inc.c b/src/world/area_end/common/Credits.inc.c index 30530bbe308..9c06ccbd6e7 100644 --- a/src/world/area_end/common/Credits.inc.c +++ b/src/world/area_end/common/Credits.inc.c @@ -3,6 +3,8 @@ #if VERSION_PAL #define CREDITS_MESSAGE_BUFFER_COUNT (24) +#elif VERSION_JP +#define CREDITS_MESSAGE_BUFFER_COUNT (20) #else #define CREDITS_MESSAGE_BUFFER_COUNT (23) #endif @@ -13,7 +15,7 @@ void dma_load_msg(u32 msgID, void* dest); BSS CreditsData N(CreditsData); BSS CreditsData* N(CreditsDataPtr); -#if !VERSION_IQUE +#if VERSION_US || VERSION_PAL BSS s32 N(BSS_PAD_1)[2]; #endif BSS u8 N(CreditsMessageBuffers)[CREDITS_MESSAGE_BUFFER_COUNT][256]; @@ -557,9 +559,16 @@ void N(credits_update_line)(CreditsLine* line) { i = 0; if (curChar->font == MSG_FONT_SUBTITLE) { +#if VERSION_JP + // TODO: figure out enum value. MSG_CHAR_LPAREN is not 0x08 in JP. + if (curMsgChar == 8 || nextMsgChar1 == 8) { + msgWidth++; + } +#else if (curMsgChar == MSG_CHAR_LPAREN || nextMsgChar1 == MSG_CHAR_LPAREN) { msgWidth++; } +#endif } do { @@ -695,9 +704,16 @@ void N(credits_update_line)(CreditsLine* line) { i = 0; if (curChar->font == MSG_FONT_SUBTITLE) { +#if VERSION_JP + // TODO: figure out enum value. MSG_CHAR_LPAREN is not 0x08 in JP. + if (curMsgChar == 8 || nextMsgChar2 == 8) { + posX++; + } +#else if (curMsgChar == MSG_CHAR_LPAREN || nextMsgChar2 == MSG_CHAR_LPAREN) { posX++; } +#endif } do { if (curMsgChar == curPattern[i].firstChar && nextMsgChar2 == curPattern[i].secondChar) { diff --git a/src/world/area_end/end_00/credits.c b/src/world/area_end/end_00/credits.c index 804fb89cbed..f8c0b6c5295 100644 --- a/src/world/area_end/end_00/credits.c +++ b/src/world/area_end/end_00/credits.c @@ -8,6 +8,10 @@ #include "credits_title_pal.inc.c" #include "credits_jobs_pal.inc.c" #include "credits_names_pal.inc.c" +#elif VERSION_JP +#include "credits_title.inc.c" +#include "credits_jobs_jp.inc.c" +#include "credits_names_jp.inc.c" #else #include "credits_title.inc.c" #include "credits_jobs.inc.c" diff --git a/src/world/area_end/end_00/credits_jobs_jp.inc.c b/src/world/area_end/end_00/credits_jobs_jp.inc.c new file mode 100644 index 00000000000..76297f24b80 --- /dev/null +++ b/src/world/area_end/end_00/credits_jobs_jp.inc.c @@ -0,0 +1,352 @@ +#include "../common/Credits.h" + +CreditsEntry N(Credits_Jobs)[] = { + { + .next = 235, + }, + { + .msgID = MSG_Credits_0009, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_000A, + .posX = STANDARD_POS_X, + .posY = 175, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_000B, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 690, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 760, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_000C, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .msgID = MSG_Credits_000D, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_000E, + .posX = STANDARD_POS_X, + .posY = 175, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_000F, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 1650, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 1720, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .msgID = MSG_Credits_0010, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0011, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0023, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 224, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0012, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 890, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 960, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .msgID = MSG_Credits_0013, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0014, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0015, + .posX = STANDARD_POS_X, + .posY = 175, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0016, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0017, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0018, + .posX = STANDARD_POS_X, + .posY = 175, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .msgID = MSG_Credits_001F, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0020, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0021, + .posX = STANDARD_POS_X, + .posY = 164, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0022, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 450, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 520, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = -1, + }, +}; diff --git a/src/world/area_end/end_00/credits_names_jp.inc.c b/src/world/area_end/end_00/credits_names_jp.inc.c new file mode 100644 index 00000000000..a2f8a27097b --- /dev/null +++ b/src/world/area_end/end_00/credits_names_jp.inc.c @@ -0,0 +1,805 @@ +#include "../common/Credits.h" + +CreditsEntry N(Credits_Names)[] = { + { + .next = 235, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_002D, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_002E, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 182, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_002F, + .posX = 159, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0030, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0031, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0032, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0033, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0034, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0035, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0036, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0037, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0038, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0039, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_003A, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_003B, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_003C, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_003E, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_003D, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_003F, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0040, + .posX = STANDARD_POS_X, + .posY = 182, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0041, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0042, + .posX = STANDARD_POS_X, + .posY = 208, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0043, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0044, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0045, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0046, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0047, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0048, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0049, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_004A, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_004B, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_004C, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_004D, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_004E, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0050, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_004F, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_006F, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0069, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0070, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0076, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0067, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0074, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 184, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0056, + .posX = STANDARD_POS_X, + .posY = 182, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0057, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0058, + .posX = STANDARD_POS_X, + .posY = 208, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 240, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = -1, + }, +}; diff --git a/src/world/area_end/end_00/huff_n_puff.c b/src/world/area_end/end_00/huff_n_puff.c index 3bf637c8986..6171c855f26 100644 --- a/src/world/area_end/end_00/huff_n_puff.c +++ b/src/world/area_end/end_00/huff_n_puff.c @@ -145,7 +145,11 @@ EvtScript N(EVS_YoshiKids) = { Wait(10 * DT) Thread Call(GetNpcPos, NPC_YoshiKidGreen, LVar0, LVar1, LVar2) +#if VERSION_JP + Call(NpcJump0, NPC_YoshiKidGreen, LVar0, LVar1, LVar2, 10) +#else Call(NpcJump0, NPC_YoshiKidGreen, LVar0, LVar1, LVar2, 7) +#endif Call(SetNpcAnimation, NPC_YoshiKidGreen, ANIM_YoshiKid_Green_Run) Call(NpcMoveTo, NPC_YoshiKidGreen, 980, 0, 60 * DT) Call(SetNpcAnimation, NPC_YoshiKidGreen, ANIM_YoshiKid_Green_LookUp) diff --git a/src/world/area_end/end_01/credits.c b/src/world/area_end/end_01/credits.c index f4126748228..81675917fdd 100644 --- a/src/world/area_end/end_01/credits.c +++ b/src/world/area_end/end_01/credits.c @@ -7,6 +7,9 @@ #if VERSION_PAL #include "credits_jobs_pal.inc.c" #include "credits_names_pal.inc.c" +#elif VERSION_JP +#include "credits_jobs_jp.inc.c" +#include "credits_names_jp.inc.c" #else #include "credits_jobs.inc.c" #include "credits_names.inc.c" diff --git a/src/world/area_end/end_01/credits_jobs_jp.inc.c b/src/world/area_end/end_01/credits_jobs_jp.inc.c new file mode 100644 index 00000000000..0ed8b0af7f1 --- /dev/null +++ b/src/world/area_end/end_01/credits_jobs_jp.inc.c @@ -0,0 +1,180 @@ +#include "../common/Credits.h" + +CreditsEntry N(Credits_Jobs)[] = { + { + .msgID = MSG_Credits_0019, + .posX = STANDARD_POS_X, + .posY = 166, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 2130, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 2200, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .msgID = MSG_Credits_001A, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_001B, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 450, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 520, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_001D, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_001C, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 450, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 520, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_001E, + .posX = STANDARD_POS_X, + .posY = 170, + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 2, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 210, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = 280, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .msgID = MSG_Credits_0007, + .posX = 131, + .posY = 182, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = 60, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 160, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 50, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0008, + .posX = 189, + .posY = 182, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = 60, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 160, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 50, + .perCharDelayOut = 0, + .next = 270, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 30, + }, + { + .msgID = MSG_Credits_0005, + .posX = STANDARD_POS_X, + .posY = 172, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = 60, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 160, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 50, + .perCharDelayOut = 0, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0006, + .posX = STANDARD_POS_X, + .posY = 188, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = 60, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 160, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 50, + .perCharDelayOut = 0, + .next = 270, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = -1, + }, +}; diff --git a/src/world/area_end/end_01/credits_names_jp.inc.c b/src/world/area_end/end_01/credits_names_jp.inc.c new file mode 100644 index 00000000000..465539b4718 --- /dev/null +++ b/src/world/area_end/end_01/credits_names_jp.inc.c @@ -0,0 +1,456 @@ +#include "../common/Credits.h" + +CreditsEntry N(Credits_Names)[] = { + { + .next = 40, + }, + { + .msgID = MSG_Credits_0071, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0072, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0066, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0065, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0075, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0073, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0055, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0051, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0059, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_005A, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0053, + .posX = STANDARD_POS_X, + .posY = 182, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_005B, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_005C, + .posX = STANDARD_POS_X, + .posY = 208, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_005D, + .posX = STANDARD_POS_X, + .posY = 186, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_005E, + .posX = STANDARD_POS_X, + .posY = 203, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_005F, + .posX = STANDARD_POS_X, + .posY = 182, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0060, + .posX = STANDARD_POS_X, + .posY = 195, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = 0, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0061, + .posX = STANDARD_POS_X, + .posY = 208, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0068, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_0052, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_006A, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_0054, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_006D, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_006C, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = STANDARD_HOLD_TIME, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 1, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .msgID = MSG_Credits_006B, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 1, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .next = 40, + }, + { + .msgID = MSG_Credits_006E, + .posX = STANDARD_POS_X, + .posY = 191, + .palette = 1, + .appearMode = CREDITS_APPEAR_MODE_00, + .appearTime = STANDARD_APPEAR_TIME, + .perCharDelayIn = 0, + .holdMode = CREDITS_HOLD_MODE_00, + .holdTime = 170, + .vanishMode = CREDITS_VANISH_MODE_00, + .vanishTime = 30, + .perCharDelayOut = 0, + .next = STANDARD_NEXT_TIME, + .flags = CREDITS_FLAG_1, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = 60, + }, + { + .appearMode = CREDITS_APPEAR_MODE_04, + .appearTime = 0, + .perCharDelayIn = 0, + .next = -1, + }, +}; diff --git a/src/world/area_flo/flo_10/fountain.c b/src/world/area_flo/flo_10/fountain.c index 05836f31c49..9e5f3bd9498 100644 --- a/src/world/area_flo/flo_10/fountain.c +++ b/src/world/area_flo/flo_10/fountain.c @@ -225,7 +225,9 @@ EvtScript N(EVS_Scene_PostReleaseFountain) = { Wait(20 * DT) Call(SetPlayerAnimation, ANIM_Mario1_Idle) Wait(10 * DT) +#if !VERSION_JP ExecWait(N(EVS_PushFlowerSong)) +#endif Wait(10 * DT) Call(SpeakToPlayer, NPC_Lily, ANIM_Lily_Talk, ANIM_Lily_Idle, 5, MSG_CH6_0082) Call(NpcFacePlayer, NPC_Lily, 1) @@ -238,7 +240,9 @@ EvtScript N(EVS_Scene_PostReleaseFountain) = { Call(EndSpeech, NPC_Lily, ANIM_Lily_Talk, ANIM_Lily_Idle, 0) Call(SetNpcAnimation, NPC_Lily, ANIM_Lily_Idle) Call(ResetCam, CAM_DEFAULT, Float(4.0 / DT)) +#if !VERSION_JP ExecWait(N(EVS_PopSong)) +#endif Call(DisablePlayerPhysics, FALSE) Call(DisablePlayerInput, FALSE) Return diff --git a/src/world/area_flo/flo_10/npc.c b/src/world/area_flo/flo_10/npc.c index d1b9e3aa01d..48183852c2d 100644 --- a/src/world/area_flo/flo_10/npc.c +++ b/src/world/area_flo/flo_10/npc.c @@ -30,11 +30,13 @@ s32 N(KeyList)[] = { EvtScript N(EVS_OnInteract_WaterStoneSocket) = { IfEq(GF_FLO10_ShowedLilyTheWaterStone, TRUE) +#if !VERSION_JP Call(GetPartnerInUse, LVarA) IfNe(LVarA, 0) Call(AwaitPlayerLeave, 0, 0, 19) Return EndIf +#endif Call(DisablePlayerInput, TRUE) SetGroup(EVT_GROUP_00) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) diff --git a/src/world/area_flo/flo_15/stairs.c b/src/world/area_flo/flo_15/stairs.c index 4b98824e3e8..34fe7850a1c 100644 --- a/src/world/area_flo/flo_15/stairs.c +++ b/src/world/area_flo/flo_15/stairs.c @@ -9,9 +9,15 @@ s32 N(ShakeCamParams)[] = { 22, Float(1.2), 25, Float(1.05), 24, Float(0.9), +#if VERSION_JP + 22, Float(0.75), + 20, Float(0.6), + 10, Float(1.5), +#else 25, Float(0.75), 24, Float(0.6), 10, Float(1.7), +#endif }; EvtScript N(EVS_MonitorFallingStairs) = { diff --git a/src/world/area_flo/flo_18/npc.c b/src/world/area_flo/flo_18/npc.c index f9b113b321e..c1456c37135 100644 --- a/src/world/area_flo/flo_18/npc.c +++ b/src/world/area_flo/flo_18/npc.c @@ -357,41 +357,61 @@ EvtScript N(EVS_GenericHitReaction) = { }; EvtScript N(EVS_HitReaction_Magikoopa) = { +#if VERSION_JP + Set(MV_ReactingNpc, 0) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 0) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_HitReaction_Lakitu_01) = { +#if VERSION_JP + Set(MV_ReactingNpc, 1) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 1) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_HitReaction_Lakitu_02) = { +#if VERSION_JP + Set(MV_ReactingNpc, 2) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 2) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_HitReaction_Lakitu_03) = { +#if VERSION_JP + Set(MV_ReactingNpc, 3) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 3) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; @@ -422,45 +442,69 @@ EvtScript N(EVS_GenericBombReaction) = { }; EvtScript N(EVS_BombReaction_Magikoopa) = { +#if VERSION_JP + Set(MV_ReactingNpc, 0) + Call(GetNpcPos, NPC_Magikoopa, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 0) Call(GetNpcPos, NPC_Magikoopa, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_BombReaction_Lakitu_01) = { +#if VERSION_JP + Set(MV_ReactingNpc, 1) + Call(GetNpcPos, NPC_Lakitu_01, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 1) Call(GetNpcPos, NPC_Lakitu_01, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_BombReaction_Lakitu_02) = { +#if VERSION_JP + Set(MV_ReactingNpc, 2) + Call(GetNpcPos, NPC_Lakitu_02, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 2) Call(GetNpcPos, NPC_Lakitu_02, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_BombReaction_Lakitu_03) = { +#if VERSION_JP + Set(MV_ReactingNpc, 3) + Call(GetNpcPos, NPC_Lakitu_03, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 3) Call(GetNpcPos, NPC_Lakitu_03, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; @@ -486,7 +530,9 @@ BombTrigger N(Npc_BombTrigger_04) = { }; EvtScript N(EVS_SetupMachineDamageReactions) = { +#if !VERSION_JP Set(MV_ReactingNpc, -1) +#endif BindTrigger(Ref(N(EVS_HitReaction_Magikoopa)), TRIGGER_WALL_HAMMER, COLLIDER_o174, 1, 0) BindTrigger(Ref(N(EVS_HitReaction_Magikoopa)), TRIGGER_WALL_HAMMER, COLLIDER_o130, 1, 0) BindTrigger(Ref(N(EVS_BombReaction_Magikoopa)), TRIGGER_POINT_BOMB, Ref(N(Npc_BombTrigger_02)), 1, 0) diff --git a/src/world/area_flo/flo_21/npc.c b/src/world/area_flo/flo_21/npc.c index d4307213294..4bedf6847b4 100644 --- a/src/world/area_flo/flo_21/npc.c +++ b/src/world/area_flo/flo_21/npc.c @@ -489,6 +489,16 @@ EvtScript N(EVS_Scene_BossDefeated) = { End }; +#if VERSION_JP +EvtScript N(EVS_80243428) = { + Call(AdjustCam, CAM_DEFAULT, Float(90.0), 0, 300, Float(17.0), Float(-6.0)) + Call(SpeakToPlayer, NPC_SELF, ANIM_HuffNPuff_Anim2D, ANIM_HuffNPuff_Anim02, 0x100, -30, 30, MSG_CH6_00E1) + Call(ResetCam, CAM_DEFAULT, Float(4.0)) + Return + End +}; +#endif + EvtScript N(EVS_NpcIdle_HuffNPuff_01) = { Label(0) Call(SetSelfVar, 0, 0) @@ -520,6 +530,11 @@ EvtScript N(EVS_NpcDefeat_HuffNPuff_Main) = { Wait(50) Set(MV_BossDefeated, TRUE) Exec(N(EVS_TrySpawningStarCard)) +#if VERSION_JP + CaseEq(OUTCOME_PLAYER_LOST) + ExecWait(N(EVS_80243428)) + CaseEq(OUTCOME_PLAYER_FLED) +#endif EndSwitch Return End diff --git a/src/world/area_iwa/iwa_00/npc.c b/src/world/area_iwa/iwa_00/npc.c index 46db5d8a91b..78bd5d71fd4 100644 --- a/src/world/area_iwa/iwa_00/npc.c +++ b/src/world/area_iwa/iwa_00/npc.c @@ -9,7 +9,7 @@ #if VERSION_JP #include "world/common/todo/SomeItemEntityFunc.inc.c" #include "world/common/todo/IsItemBadge.inc.c" -#include "world/area_iwa/common/UnkScriptJP00.inc.c" +#include "world/common/todo/UnkScriptJP00.inc.c" #endif API_CALLABLE(N(func_80240118_90CD58)) { diff --git a/src/world/area_iwa/iwa_02/npc.c b/src/world/area_iwa/iwa_02/npc.c index eac9f14b09d..f16fea0bed4 100644 --- a/src/world/area_iwa/iwa_02/npc.c +++ b/src/world/area_iwa/iwa_02/npc.c @@ -9,7 +9,7 @@ #if VERSION_JP #include "world/common/todo/SomeItemEntityFunc.inc.c" #include "world/common/todo/IsItemBadge.inc.c" -#include "world/area_iwa/common/UnkScriptJP00.inc.c" +#include "world/common/todo/UnkScriptJP00.inc.c" #endif NpcData N(NpcData_Cleft_01) = { diff --git a/src/world/area_iwa/iwa_10/npc.c b/src/world/area_iwa/iwa_10/npc.c index 1b4b3d4567e..e46b7829e21 100644 --- a/src/world/area_iwa/iwa_10/npc.c +++ b/src/world/area_iwa/iwa_10/npc.c @@ -8,7 +8,7 @@ #if VERSION_JP #include "world/common/todo/SomeItemEntityFunc.inc.c" #include "world/common/todo/IsItemBadge.inc.c" -#include "world/area_iwa/common/UnkScriptJP00.inc.c" +#include "world/common/todo/UnkScriptJP00.inc.c" #endif EvtScript N(EVS_NpcInteract_TrainToad_01) = { diff --git a/src/world/area_kzn/kzn_10/tromp.c b/src/world/area_kzn/kzn_10/tromp.c index 970bf161a8d..340f4f1f8a4 100644 --- a/src/world/area_kzn/kzn_10/tromp.c +++ b/src/world/area_kzn/kzn_10/tromp.c @@ -93,6 +93,9 @@ EvtScript N(EVS_SetupSpinyTromp) = { Set(AF_KZN_Tromp1_ShakingDone, FALSE) Set(AF_KZN_TrompHitPlayer, FALSE) Set(AF_KZN_TrompRollingDone, FALSE) +#if VERSION_JP + Call(AwaitPlayerApproach, -370, 0, 40) +#else Call(GetEntryID, LVar3) Loop(0) Call(GetPlayerPos, LVar0, LVar1, LVar2) @@ -108,6 +111,7 @@ EvtScript N(EVS_SetupSpinyTromp) = { Wait(1) EndLoop Call(InterruptUsePartner) +#endif Call(SetGroupVisibility, MODEL_goron, MODEL_GROUP_VISIBLE) Call(EnableModel, MODEL_me, TRUE) Call(DisablePlayerInput, TRUE) diff --git a/src/world/area_kzn/kzn_20/npc.c b/src/world/area_kzn/kzn_20/npc.c index 5fbe05be071..38a465e1d73 100644 --- a/src/world/area_kzn/kzn_20/npc.c +++ b/src/world/area_kzn/kzn_20/npc.c @@ -104,7 +104,9 @@ s32 N(Kolorado_Wander2)[] = { }; EvtScript N(EVS_Kolorado_CalmIdle) = { +#if !VERSION_JP SetGroup(EVT_GROUP_EF) +#endif Label(0) Call(RandInt, 1, LVar1) IfEq(LVar1, 0) @@ -112,7 +114,11 @@ EvtScript N(EVS_Kolorado_CalmIdle) = { Else UseBuf(N(Kolorado_Wander2)) EndIf +#if VERSION_JP + Label(0) +#else Label(10) +#endif BufRead3(LVar1, LVar2, LVar3) IfEq(LVar1, -1) Goto(0) @@ -135,7 +141,11 @@ EvtScript N(EVS_Kolorado_CalmIdle) = { Wait(20) EndLoop Wait(LVar2) +#if VERSION_JP + Goto(0) +#else Goto(10) +#endif Return End }; diff --git a/src/world/area_kzn/kzn_23/settings.c b/src/world/area_kzn/kzn_23/settings.c index fc9a9115db8..7c8f414f8f6 100644 --- a/src/world/area_kzn/kzn_23/settings.c +++ b/src/world/area_kzn/kzn_23/settings.c @@ -9,4 +9,7 @@ MapSettings N(settings) = { .entryList = &N(Entrances), .entryCount = ENTRY_COUNT(N(Entrances)), .background = &gBackgroundImage, +#if VERSION_JP + .tattle = { MSG_MapTattle_018E } +#endif }; diff --git a/src/world/area_mgm/mgm_00/scoreboard.c b/src/world/area_mgm/mgm_00/scoreboard.c index 59e7f07d9ee..398bb4af331 100644 --- a/src/world/area_mgm/mgm_00/scoreboard.c +++ b/src/world/area_mgm/mgm_00/scoreboard.c @@ -37,6 +37,7 @@ s32 N(pal_unkdata)[] = { s32 N(pal_unkdata_2)[] = { 45, 41, 43, 37 }; +#endif Gfx N(Gfx_RecordDisplay_Init)[] = { gsDPSetCycleType(G_CYC_1CYCLE), @@ -47,26 +48,21 @@ Gfx N(Gfx_RecordDisplay_Init)[] = { gsDPSetCombineKey(G_CK_NONE), gsDPSetAlphaCompare(G_AC_NONE), gsDPNoOp(), - gsSPEndDisplayList(), -}; -#else -Gfx N(Gfx_RecordDisplay_Init)[] = { - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_XLU_SURF, G_RM_XLU_SURF2), - gsDPSetCombineMode(G_CC_PRIMITIVE, G_CC_PRIMITIVE), - gsDPSetColorDither(G_CD_DISABLE), - gsDPSetAlphaDither(G_AD_DISABLE), - gsDPSetCombineKey(G_CK_NONE), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPNoOp(), +#if VERSION_US || VERSION_IQUE gsDPSetPrimColor(0, 0, 255, 0, 0, 0), gsDPFillRectangle(44, 49, 276, 51), gsDPFillRectangle(44, 49, 46, 133), gsDPFillRectangle(275, 49, 276, 133), gsDPFillRectangle(44, 132, 276, 133), +#elif VERSION_JP + gsDPSetPrimColor(0, 0, 255, 0, 0, 0), + gsDPFillRectangle(64, 49, 256, 51), + gsDPFillRectangle(64, 49, 66, 133), + gsDPFillRectangle(255, 49, 256, 133), + gsDPFillRectangle(64, 132, 256, 133), +#endif gsSPEndDisplayList(), }; -#endif #if VERSION_PAL void N(draw_record_display)(RecordDisplayData* data, s32 alpha); @@ -77,6 +73,29 @@ void N(draw_record_display)(RecordDisplayData* data, s32 alpha) { gSPDisplayList(gMainGfxPos++, N(Gfx_RecordDisplay_Init)); gDPPipeSync(gMainGfxPos++); gDPSetPrimColor(gMainGfxPos++, 0, 0, 16, 120, 24, alpha * 0.65); +#if VERSION_JP + gDPFillRectangle(gMainGfxPos++, 68, 53, 252, 129); + gDPPipeSync(gMainGfxPos++); + msg_draw_frame(65, 50, 190, 82, MSG_STYLE_INSPECT, 0, 1, (s32)(alpha * 0.55), alpha); // cast needed if signature isn't present + if (data->gameType == MINIGAME_TYPE_JUMP) { + draw_msg(MSG_MGM_001C, 78, 57, alpha, MSG_PAL_TEAL, 0); + draw_number(gPlayerData.jumpGamePlays, 209, 78, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + draw_number(gPlayerData.jumpGameTotal, 209, 93, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + draw_number(gPlayerData.jumpGameRecord, 209, 108, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + } else { + draw_msg(MSG_MGM_001D, 78, 57, alpha, MSG_PAL_TEAL, 0); + draw_number(gPlayerData.smashGamePlays, 209, 78, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + draw_number(gPlayerData.smashGameTotal, 209, 93, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + draw_number(gPlayerData.smashGameRecord, 209, 108, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_WHITE, alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + } + + draw_msg(MSG_MGM_001E, 87, 78, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MGM_0023, 211, 78, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MGM_001F, 87, 93, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MGM_0021, 211, 93, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MGM_0020, 87, 108, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MGM_0021, 211, 108, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); +#else gDPFillRectangle(gMainGfxPos++, 48, 53, 272, 129); gDPPipeSync(gMainGfxPos++); msg_draw_frame(45, 50, 230, 82, MSG_STYLE_INSPECT, 0, 1, (s32)(alpha * 0.55), alpha); // cast needed if signature isn't present @@ -98,6 +117,7 @@ void N(draw_record_display)(RecordDisplayData* data, s32 alpha) { draw_msg(MSG_MGM_0021, 223, 93, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); draw_msg(MSG_MGM_0020, 58, 108, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); draw_msg(MSG_MGM_0021, 223, 108, alpha, MSG_PAL_WHITE, DRAW_MSG_STYLE_MENU); +#endif } } #endif diff --git a/src/world/area_mgm/mgm_01/npc.c b/src/world/area_mgm/mgm_01/npc.c index c6c55daaaae..d78cd5cd92c 100644 --- a/src/world/area_mgm/mgm_01/npc.c +++ b/src/world/area_mgm/mgm_01/npc.c @@ -122,6 +122,9 @@ void N(appendGfx_score_display) (void* renderData) { hudElemID = data->hudElemID; hud_element_set_render_pos(hudElemID, data->scoreWindowPosX + 15, 39); hud_element_draw_clipped(hudElemID); +#if VERSION_JP + draw_msg(MSG_MenuTip_JP_000C, data->scoreWindowPosX + 24, 30, 255, MSG_PAL_WHITE, 0); +#endif if (data->curScore > data->targetScore) { data->curScore = data->targetScore; } else if (data->curScore < data->targetScore) { @@ -663,7 +666,7 @@ API_CALLABLE(N(SetMsgVars_BlocksRemaining)) { set_message_int_var(remaining, 0); #if VERSION_PAL evt_set_variable(script, LVarD, remaining); -#else +#elif VERSION_US || VERSION_IQUE set_message_text_var((remaining == 1) ? (s32)&MessageSingular : (s32)&MessagePlural, 1); #endif diff --git a/src/world/area_omo/omo_04/npc.c b/src/world/area_omo/omo_04/npc.c index a1070b33231..e63b54484cb 100644 --- a/src/world/area_omo/omo_04/npc.c +++ b/src/world/area_omo/omo_04/npc.c @@ -95,7 +95,11 @@ NpcData N(NpcData_Goomba) = { .yaw = 270, .init = &N(EVS_NpcInit_Goomba), .settings = &N(NpcSettings_Goomba), +#if VERSION_JP + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, +#else .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, +#endif .drops = NO_DROPS, .animations = GOOMBA_ANIMS, }; @@ -106,7 +110,11 @@ NpcData N(NpcData_Clubba) = { .yaw = 270, .init = &N(EVS_NpcInit_Clubba), .settings = &N(NpcSettings_Clubba), +#if VERSION_JP + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, +#else .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, +#endif .drops = NO_DROPS, .animations = CLUBBA_ANIMS_ALT, }; diff --git a/src/world/area_omo/omo_07/npc.c b/src/world/area_omo/omo_07/npc.c index 54d00af8ce7..863ff087be5 100644 --- a/src/world/area_omo/omo_07/npc.c +++ b/src/world/area_omo/omo_07/npc.c @@ -469,7 +469,11 @@ NpcData N(NpcData_Fuzzy) = { .yaw = 270, .init = &N(EVS_NpcInit_Fuzzy), .settings = &N(NpcSettings_Fuzzy), +#if VERSION_JP + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, +#else .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, +#endif .drops = NO_DROPS, .animations = { .idle = ANIM_Fuzzy_Walk, @@ -497,7 +501,11 @@ NpcData N(NpcData_HammerBros) = { .yaw = 270, .init = &N(EVS_NpcInit_HammerBros), .settings = &N(NpcSettings_HammerBros), +#if VERSION_JP + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, +#else .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, +#endif .drops = NO_DROPS, .animations = { .idle = ANIM_HammerBros_Anim02, diff --git a/src/world/area_omo/omo_09/gizmos.c b/src/world/area_omo/omo_09/gizmos.c index 5688d0c3cc7..2e34e599ca8 100644 --- a/src/world/area_omo/omo_09/gizmos.c +++ b/src/world/area_omo/omo_09/gizmos.c @@ -98,7 +98,9 @@ API_CALLABLE(N(AwaitPlayerNearPlatforms)) { EvtScript N(EVS_Gizmos_MovingBlocks) = { SetGroup(EVT_GROUP_EF) +#if !VERSION_JP Call(N(AwaitPlayerNearPlatforms)) +#endif Wait(LVar9) Call(ParentColliderToModel, LVar6, LVar7) Loop(0) diff --git a/src/world/area_omo/omo_09/npc.c b/src/world/area_omo/omo_09/npc.c index 6268f49490a..db999f97215 100644 --- a/src/world/area_omo/omo_09/npc.c +++ b/src/world/area_omo/omo_09/npc.c @@ -215,7 +215,11 @@ NpcData N(NpcData_Pokey) = { .yaw = 270, .init = &N(EVS_NpcInit_Pokey), .settings = &N(NpcSettings_Pokey), +#if VERSION_JP + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, +#else .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, +#endif .drops = NO_DROPS, .animations = POKEY_ANIMS, }; @@ -226,7 +230,11 @@ NpcData N(NpcData_Koopatrol) = { .yaw = 270, .init = &N(EVS_NpcInit_Koopatrol), .settings = &N(NpcSettings_Koopatrol_Stationary), +#if VERSION_JP + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, +#else .flags = ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000 | ENEMY_FLAG_400000, +#endif .drops = NO_DROPS, .animations = KOOPATROL_ANIMS, }; diff --git a/src/world/area_omo/omo_13/npc.c b/src/world/area_omo/omo_13/npc.c index dabc37bfe9f..c4afb4b1f79 100644 --- a/src/world/area_omo/omo_13/npc.c +++ b/src/world/area_omo/omo_13/npc.c @@ -154,6 +154,19 @@ EvtScript N(EVS_NpcIdle_AntiGuy) = { Call(SetNpcAnimation, NPC_SELF, ANIM_ShyGuy_Black_Anim02) Call(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) IfLt(LVar2, -60) +#if VERSION_JP + IfLt(LVar0, 110) + Add(LVar0, 40) + Else + Add(LVar0, -40) + EndIf + Else + IfLt(LVar0, 110) + Add(LVar0, -40) + Else + Add(LVar0, 40) + EndIf +#else IfLt(LVar0, 110) Add(LVar0, 60) Else @@ -165,9 +178,14 @@ EvtScript N(EVS_NpcIdle_AntiGuy) = { Else Add(LVar0, 60) EndIf +#endif EndIf Call(SetNpcSpeed, NPC_SELF, Float(3.0)) +#if VERSION_JP + Call(NpcMoveTo, NPC_SELF, LVar0, -135, 0) +#else Call(NpcMoveTo, NPC_SELF, LVar0, -100, 0) +#endif Call(InterpNpcYaw, NPC_SELF, 90, 0) Call(SetNpcAnimation, NPC_SELF, ANIM_ShyGuy_Black_Anim15) Call(SetNpcFlagBits, NPC_SELF, NPC_FLAG_IGNORE_PLAYER_COLLISION, FALSE) diff --git a/src/world/area_omo/omo_16/settings.c b/src/world/area_omo/omo_16/settings.c index 3e216132e85..7c7650ebd4a 100644 --- a/src/world/area_omo/omo_16/settings.c +++ b/src/world/area_omo/omo_16/settings.c @@ -10,4 +10,7 @@ MapSettings N(settings) = { .entryList = &N(Entrances), .entryCount = ENTRY_COUNT(N(Entrances)), .background = &gBackgroundImage, +#if VERSION_JP + .tattle = { MSG_MapTattle_018D }, +#endif }; diff --git a/src/world/area_omo/omo_16/train.c b/src/world/area_omo/omo_16/train.c index ee56c82059b..91f4c110c57 100644 --- a/src/world/area_omo/omo_16/train.c +++ b/src/world/area_omo/omo_16/train.c @@ -5,7 +5,11 @@ EvtScript N(D_8024262C_DEE4FC) = { Call(GetEntryID, LVar0) IfEq(LVar0, omo_16_ENTRY_0) +#if VERSION_JP + Wait(200) +#else Wait(140) +#endif Switch(GB_OMO_TrainDestination) CaseEq(0) IfEq(AB_OMO_6, 1) @@ -25,7 +29,11 @@ EvtScript N(D_8024262C_DEE4FC) = { EndIf EndSwitch Else +#if VERSION_JP + Wait(200) +#else Wait(140) +#endif Switch(GB_OMO_TrainDestination) CaseEq(0) IfEq(AB_OMO_6, 0) diff --git a/src/world/area_pra/pra_09/main.c b/src/world/area_pra/pra_09/main.c index 79d69acd9c1..70ea8cdf078 100644 --- a/src/world/area_pra/pra_09/main.c +++ b/src/world/area_pra/pra_09/main.c @@ -25,9 +25,13 @@ EvtScript N(EVS_ExitWalk_pra_11_0) = EVT_EXIT_WALK(60, pra_09_ENTRY_1, "pra_11", EvtScript N(EVS_BindExitTriggers) = { BindTrigger(Ref(N(EVS_ExitDoors_pra_03_2)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittsw, 1, 0) +#if VERSION_JP + BindTrigger(Ref(N(EVS_ExitWalk_pra_11_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) +#else IfGe(GB_StoryProgress, STORY_CH7_DEFEATED_BOMBETTE_DUPLIGHOSTS) BindTrigger(Ref(N(EVS_ExitWalk_pra_11_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) EndIf +#endif Return End }; diff --git a/src/world/area_pra/pra_09/npc.c b/src/world/area_pra/pra_09/npc.c index 71ac9da8879..1cfaf417ed3 100644 --- a/src/world/area_pra/pra_09/npc.c +++ b/src/world/area_pra/pra_09/npc.c @@ -561,7 +561,9 @@ EvtScript N(EVS_ManageImpostersScene) = { Call(EnablePartnerAI) Call(DisablePlayerInput, FALSE) Set(GB_StoryProgress, STORY_CH7_DEFEATED_BOMBETTE_DUPLIGHOSTS) +#if !VERSION_JP BindTrigger(Ref(N(EVS_ExitWalk_pra_11_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) +#endif BreakLoop EndIf EndIf @@ -650,7 +652,9 @@ EvtScript N(EVS_NpcDefeat_Duplighost_05) = { Call(EnablePartnerAI) Call(DisablePlayerInput, FALSE) Set(GB_StoryProgress, STORY_CH7_DEFEATED_BOMBETTE_DUPLIGHOSTS) +#if !VERSION_JP BindTrigger(Ref(N(EVS_ExitWalk_pra_11_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) +#endif Return End }; diff --git a/src/world/area_pra/pra_19/main.c b/src/world/area_pra/pra_19/main.c index 042b572b068..94e9ff6a46a 100644 --- a/src/world/area_pra/pra_19/main.c +++ b/src/world/area_pra/pra_19/main.c @@ -26,9 +26,13 @@ EvtScript N(EVS_ExitWalk_pra_20_0) = EVT_EXIT_WALK(60, pra_19_ENTRY_1, "pra_20", EvtScript N(EVS_BindExitTriggers) = { BindTrigger(Ref(N(EVS_ExitDoor_pra_35_1)), TRIGGER_WALL_PRESS_A, COLLIDER_deilittsw, 1, 0) +#if VERSION_JP + BindTrigger(Ref(N(EVS_ExitWalk_pra_20_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) +#else IfGe(GB_StoryProgress, STORY_CH7_DEFEATED_KOOPER_DUPLIGHOSTS) BindTrigger(Ref(N(EVS_ExitWalk_pra_20_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) EndIf +#endif Return End }; diff --git a/src/world/area_pra/pra_19/npc.c b/src/world/area_pra/pra_19/npc.c index a39ff283571..29959960321 100644 --- a/src/world/area_pra/pra_19/npc.c +++ b/src/world/area_pra/pra_19/npc.c @@ -777,7 +777,9 @@ EvtScript N(EVS_ManageImpostersScene) = { Call(SetPlayerFlagBits, PS_FLAG_NO_CHANGE_PARTNER | PS_FLAG_NO_PARTNER_USAGE, FALSE) Call(EnablePartnerAI) Call(DisablePlayerInput, FALSE) +#if !VERSION_JP BindTrigger(Ref(N(EVS_ExitWalk_pra_20_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) +#endif Set(GB_StoryProgress, STORY_CH7_DEFEATED_KOOPER_DUPLIGHOSTS) BreakLoop EndIf @@ -876,7 +878,9 @@ EvtScript N(EVS_Scene_DefeatMiniboss) = { Call(SetPlayerFlagBits, PS_FLAG_NO_CHANGE_PARTNER | PS_FLAG_NO_PARTNER_USAGE, FALSE) Call(EnablePartnerAI) Call(DisablePlayerInput, FALSE) +#if !VERSION_JP BindTrigger(Ref(N(EVS_ExitWalk_pra_20_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilise, 1, 0) +#endif Set(GB_StoryProgress, STORY_CH7_DEFEATED_KOOPER_DUPLIGHOSTS) Return End diff --git a/src/world/area_pra/pra_22/main.c b/src/world/area_pra/pra_22/main.c index 0f05c0d2967..47df21b80ae 100644 --- a/src/world/area_pra/pra_22/main.c +++ b/src/world/area_pra/pra_22/main.c @@ -93,11 +93,13 @@ EvtScript N(EVS_EnterMap) = { EvtScript N(EVS_PushRightStatue_Impl) = { Loop(30) +#if !VERSION_JP Call(GetPartnerInUse, LVarA) IfNe(LVarA, PARTNER_NONE) Set(LVar8, -1) Return EndIf +#endif Call(N(UnkFunc11), LVar9) IfEq(LVar0, 0) Set(LVar8, -1) @@ -107,11 +109,13 @@ EvtScript N(EVS_PushRightStatue_Impl) = { EndIf Wait(1) EndLoop +#if !VERSION_JP Call(GetPartnerInUse, LVarA) IfNe(LVarA, PARTNER_NONE) Set(LVar8, -1) Return EndIf +#endif Call(DisablePlayerInput, TRUE) Thread Call(ShakeCam, CAM_DEFAULT, 0, 100, Float(0.6)) diff --git a/src/world/area_pra/pra_31/puzzle.c b/src/world/area_pra/pra_31/puzzle.c index 20403972221..83249a397a9 100644 --- a/src/world/area_pra/pra_31/puzzle.c +++ b/src/world/area_pra/pra_31/puzzle.c @@ -493,9 +493,11 @@ EvtScript N(EVS_PushStatue_Impl) = { }; EvtScript N(EVS_PushStatue_01) = { +#if !VERSION_JP IfGe(GB_StoryProgress, STORY_CH7_SOLVED_ALBINO_DINO_PUZZLE) Return EndIf +#endif Call(N(IsDestCellUnavailable), NPC_AlbinoDino_01) IfEq(LVar0, TRUE) Return @@ -508,9 +510,11 @@ EvtScript N(EVS_PushStatue_01) = { }; EvtScript N(EVS_PushStatue_02) = { +#if !VERSION_JP IfGe(GB_StoryProgress, STORY_CH7_SOLVED_ALBINO_DINO_PUZZLE) Return EndIf +#endif Call(N(IsDestCellUnavailable), NPC_AlbinoDino_02) IfEq(LVar0, TRUE) Return @@ -523,9 +527,11 @@ EvtScript N(EVS_PushStatue_02) = { }; EvtScript N(EVS_PushStatue_03) = { +#if !VERSION_JP IfGe(GB_StoryProgress, STORY_CH7_SOLVED_ALBINO_DINO_PUZZLE) Return EndIf +#endif Call(N(IsDestCellUnavailable), NPC_AlbinoDino_03) IfEq(LVar0, TRUE) Return diff --git a/src/world/area_sam/sam_01/npc.c b/src/world/area_sam/sam_01/npc.c index bfef7037ad9..87f095b9e03 100644 --- a/src/world/area_sam/sam_01/npc.c +++ b/src/world/area_sam/sam_01/npc.c @@ -4,6 +4,11 @@ MAP_STATIC_PAD(1,key_item); #include "world/common/complete/NormalItemChoice.inc.c" #include "world/common/complete/GiveReward.inc.c" +#if VERSION_JP +#include "world/common/todo/SomeItemEntityFunc.inc.c" +#include "world/common/todo/IsItemBadge.inc.c" +#include "world/common/todo/UnkScriptJP00.inc.c" +#endif #include "world/common/npc/Penguin_Wander.inc.c" #include "world/common/npc/Penguin.inc.c" @@ -617,6 +622,9 @@ EvtScript N(EVS_NpcInit_Penguin_08) = { }; EvtScript N(EVS_NpcInit_Penguin_09) = { +#if VERSION_JP + Call(BindNpcInteract, NPC_SELF, Ref(N(EVS_Inspect_Present))) +#endif IfLt(GB_StoryProgress, STORY_CH7_MAYOR_MURDER_SOLVED) Call(SetNpcFlagBits, NPC_Penguin_09, NPC_FLAG_INVISIBLE | NPC_FLAG_10000000, TRUE) Call(EnableNpcShadow, NPC_Penguin_09, FALSE) diff --git a/src/world/area_sam/sam_05/scenes.c b/src/world/area_sam/sam_05/scenes.c index 84eb1a5f470..621df518e33 100644 --- a/src/world/area_sam/sam_05/scenes.c +++ b/src/world/area_sam/sam_05/scenes.c @@ -43,7 +43,11 @@ EvtScript N(EVS_Scene_MonstarAppears) = { DivF(LVar2, Float(2.0)) Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) +#if VERSION_JP + Call(SetCamDistance, CAM_DEFAULT, Float(375.0)) +#else Call(SetCamDistance, CAM_DEFAULT, Float(425.0)) +#endif Call(SetCamPitch, CAM_DEFAULT, Float(15.0), Float(-9.5)) Call(SetCamSpeed, CAM_DEFAULT, Float(90.0)) Call(PanToTarget, CAM_DEFAULT, 0, TRUE) @@ -199,6 +203,9 @@ EvtScript N(EVS_StarKidsFlee) = { BreakLoop EndIf Call(SetNpcPos, LVar0, LVar1, LVar2, LVar3) +#if VERSION_JP + Call(EnableNpcShadow, LVar0, TRUE) +#endif EndLoop Call(PlaySoundAtNpc, NPC_Monstar, SOUND_MONSTAR_BREAKS_APART, SOUND_SPACE_DEFAULT) Thread @@ -242,8 +249,10 @@ EvtScript N(EVS_StarKidsFlee) = { EvtScript N(EVS_Scene_MonstarDefeated) = { Call(ClearDefeatedEnemies) +#if !VERSION_JP Call(SetNpcFlagBits, NPC_Monstar, NPC_FLAG_GRAVITY, FALSE) Call(SetNpcPos, NPC_Monstar, 615, 87, -4) +#endif Call(SetNpcAnimation, NPC_SELF, ANIM_Monstar_Flail) Call(GetPlayerPos, LVar0, LVar1, LVar2) Call(GetNpcPos, NPC_Monstar, LVar3, LVar4, LVar5) diff --git a/src/world/area_sam/sam_06/npc.c b/src/world/area_sam/sam_06/npc.c index 2e7a8eead66..0885a709897 100644 --- a/src/world/area_sam/sam_06/npc.c +++ b/src/world/area_sam/sam_06/npc.c @@ -382,7 +382,9 @@ EvtScript N(EVS_Scene_Merle_EnterHouse) = { IfEq(LVar1, 1) Goto(71) EndIf +#if !VERSION_JP Call(SetGroupVisibility, MODEL_km_sita, MODEL_GROUP_HIDDEN) +#endif Call(PlaySoundAtCollider, COLLIDER_k_d1, SOUND_BASIC_DOOR_CLOSE, SOUND_SPACE_DEFAULT) EndThread Call(PlayerMoveTo, 0, -240, 0) @@ -487,16 +489,20 @@ EvtScript N(EVS_NpcIdle_Merle) = { }; EvtScript N(EVS_Scene_Merle_OneLastThing) = { +#if !VERSION_JP Thread Call(DisablePartnerAI, 0) Call(SetNpcSpeed, NPC_PARTNER, Float(3.0 / DT)) Call(NpcMoveTo, NPC_PARTNER, -28, -80, 0) Call(EnablePartnerAI) EndThread +#endif Call(SetPlayerSpeed, Float(3.0 / DT)) Call(PlayerMoveTo, 0, -100, 0) Call(SetGroupVisibility, MODEL_k_naiso, MODEL_GROUP_VISIBLE) +#if !VERSION_JP Call(SetGroupVisibility, MODEL_km_sita, MODEL_GROUP_VISIBLE) +#endif Call(SetNpcPos, NPC_Merle, 0, 90, -180) Call(PlaySoundAtCollider, COLLIDER_k_d1, SOUND_BASIC_DOOR_OPEN, SOUND_SPACE_DEFAULT) Call(MakeLerp, 0, 90, 10, EASING_QUADRATIC_IN) @@ -523,9 +529,11 @@ EvtScript N(EVS_Scene_Merle_OneLastThing) = { Call(SetGroupVisibility, MODEL_k_naiso, MODEL_GROUP_HIDDEN) Call(GetNpcPos, NPC_Merle, LVar0, LVar1, LVar2) Call(PlayerFaceNpc, NPC_Merle, FALSE) +#if !VERSION_JP Call(DisablePartnerAI, 0) Call(NpcFaceNpc, NPC_PARTNER, NPC_Merle, 0) Call(EnablePartnerAI) +#endif Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) Call(SetCamDistance, CAM_DEFAULT, Float(300.0)) diff --git a/src/world/area_iwa/common/UnkScriptJP00.inc.c b/src/world/common/todo/UnkScriptJP00.inc.c similarity index 100% rename from src/world/area_iwa/common/UnkScriptJP00.inc.c rename to src/world/common/todo/UnkScriptJP00.inc.c diff --git a/src/world/dead/area_flo/flo_03/npc.c b/src/world/dead/area_flo/flo_03/npc.c index 0bda4303c2a..ad0f5ec911d 100644 --- a/src/world/dead/area_flo/flo_03/npc.c +++ b/src/world/dead/area_flo/flo_03/npc.c @@ -373,8 +373,25 @@ EvtScript N(EVS_NpcHit_MontyMole) = { End }; +#if VERSION_JP +EvtScript N(EVS_802421D4_ECB2C4) = { + Loop(0) + Wait(1) + IfEq(GB_StoryProgress, STORY_CH6_ASKED_TO_DEFEAT_MONTY_MOLES) + BreakLoop + EndIf + EndLoop + Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) + Return + End +}; +#endif + EvtScript N(EVS_NpcIdle_MontyMole_01) = { #define LV_ShouldBurrow LVar3 +#if VERSION_JP + Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Loop(0) IfEq(MV_NextBurrowTime_Mole_01, 0) IfEq(AF_FLO_IsUnderground_Mole_01, TRUE) @@ -386,10 +403,12 @@ EvtScript N(EVS_NpcIdle_MontyMole_01) = { Call(GetNpcPos, NPC_MontyMole_01, LVar0, LVar1, LVar2) Call(IsPlayerWithin, LVar0, LVar2, MV_NextBurrowTriggerRadius, LV_ShouldBurrow) EndIf +#if !VERSION_JP Call(GetPartnerInUse, LVar9) IfEq(LVar9, PARTNER_BOW) Set(LVar3, FALSE) EndIf +#endif IfEq(MV_PauseBurrowing, TRUE) Set(LV_ShouldBurrow, FALSE) EndIf @@ -454,6 +473,9 @@ EvtScript N(EVS_NpcIdle_MontyMole_01) = { EvtScript N(EVS_NpcIdle_MontyMole_02) = { #define LV_ShouldBurrow LVar3 +#if VERSION_JP + Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Loop(0) IfEq(MV_NextBurrowTime_Mole_02, 0) IfEq(AF_FLO_IsUnderground_Mole_02, TRUE) @@ -465,10 +487,12 @@ EvtScript N(EVS_NpcIdle_MontyMole_02) = { Call(GetNpcPos, NPC_MontyMole_02, LVar0, LVar1, LVar2) Call(IsPlayerWithin, LVar0, LVar2, MV_NextBurrowTriggerRadius, LV_ShouldBurrow) EndIf +#if !VERSION_JP Call(GetPartnerInUse, LVar9) IfEq(LVar9, PARTNER_BOW) Set(LV_ShouldBurrow, FALSE) EndIf +#endif IfEq(MV_PauseBurrowing, TRUE) Set(LV_ShouldBurrow, FALSE) EndIf @@ -533,6 +557,9 @@ EvtScript N(EVS_NpcIdle_MontyMole_02) = { EvtScript N(EVS_NpcIdle_MontyMole_03) = { #define LV_ShouldBurrow LVar3 +#if VERSION_JP + Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Loop(0) IfEq(MV_NextBurrowTime_Mole_03, 0) IfEq(AF_FLO_IsUnderground_Mole_03, TRUE) @@ -544,10 +571,12 @@ EvtScript N(EVS_NpcIdle_MontyMole_03) = { Call(GetNpcPos, NPC_MontyMole_03, LVar0, LVar1, LVar2) Call(IsPlayerWithin, LVar0, LVar2, MV_NextBurrowTriggerRadius, LV_ShouldBurrow) EndIf +#if !VERSION_JP Call(GetPartnerInUse, LVar9) IfEq(LVar9, PARTNER_BOW) Set(LV_ShouldBurrow, FALSE) EndIf +#endif IfEq(MV_PauseBurrowing, TRUE) Set(LV_ShouldBurrow, FALSE) EndIf @@ -612,6 +641,9 @@ EvtScript N(EVS_NpcIdle_MontyMole_03) = { EvtScript N(EVS_NpcIdle_MontyMole_04) = { #define LV_ShouldBurrow LVar3 +#if VERSION_JP + Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Loop(0) IfEq(MV_NextBurrowTime_Mole_04, 0) IfEq(AF_FLO_IsUnderground_Mole_04, TRUE) @@ -623,10 +655,12 @@ EvtScript N(EVS_NpcIdle_MontyMole_04) = { Call(GetNpcPos, NPC_MontyMole_04, LVar0, LVar1, LVar2) Call(IsPlayerWithin, LVar0, LVar2, MV_NextBurrowTriggerRadius, LV_ShouldBurrow) EndIf +#if !VERSION_JP Call(GetPartnerInUse, LVar9) IfEq(LVar9, PARTNER_BOW) Set(LV_ShouldBurrow, FALSE) EndIf +#endif IfEq(MV_PauseBurrowing, TRUE) Set(LV_ShouldBurrow, FALSE) EndIf @@ -690,7 +724,9 @@ EvtScript N(EVS_NpcIdle_MontyMole_04) = { }; EvtScript N(EVS_NpcInit_MontyMole_01) = { +#if !VERSION_JP Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_MontyMole))) Call(EnableNpcShadow, NPC_MontyMole_01, FALSE) Switch(GB_StoryProgress) @@ -713,7 +749,9 @@ EvtScript N(EVS_NpcInit_MontyMole_01) = { }; EvtScript N(EVS_NpcInit_MontyMole_02) = { +#if !VERSION_JP Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_MontyMole))) Call(EnableNpcShadow, NPC_MontyMole_02, FALSE) Switch(GB_StoryProgress) @@ -736,7 +774,9 @@ EvtScript N(EVS_NpcInit_MontyMole_02) = { }; EvtScript N(EVS_NpcInit_MontyMole_03) = { +#if !VERSION_JP Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_MontyMole))) Call(EnableNpcShadow, NPC_MontyMole_03, FALSE) Switch(GB_StoryProgress) @@ -759,7 +799,9 @@ EvtScript N(EVS_NpcInit_MontyMole_03) = { }; EvtScript N(EVS_NpcInit_MontyMole_04) = { +#if !VERSION_JP Call(BindNpcHit, NPC_SELF, Ref(N(EVS_NpcHit_MontyMole))) +#endif Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_MontyMole))) Call(EnableNpcShadow, NPC_MontyMole_04, FALSE) Switch(GB_StoryProgress) diff --git a/src/world/dead/area_flo/flo_10/fountain.c b/src/world/dead/area_flo/flo_10/fountain.c index b212e9c1f4c..92a613b7bc0 100644 --- a/src/world/dead/area_flo/flo_10/fountain.c +++ b/src/world/dead/area_flo/flo_10/fountain.c @@ -225,7 +225,9 @@ EvtScript N(EVS_Scene_PostReleaseFountain) = { Wait(20) Call(SetPlayerAnimation, ANIM_Mario1_Idle) Wait(10) +#if !VERSION_JP ExecWait(N(EVS_PushFlowerSong)) +#endif Wait(10) Call(SpeakToPlayer, NPC_Lily, ANIM_Lily_Talk, ANIM_Lily_Idle, 5, MSG_CH6_0082) Call(NpcFacePlayer, NPC_Lily, 1) @@ -238,7 +240,9 @@ EvtScript N(EVS_Scene_PostReleaseFountain) = { Call(EndSpeech, NPC_Lily, ANIM_Lily_Talk, ANIM_Lily_Idle, 0) Call(SetNpcAnimation, NPC_Lily, ANIM_Lily_Idle) Call(ResetCam, CAM_DEFAULT, Float(4.0)) +#if !VERSION_JP ExecWait(N(EVS_PopSong)) +#endif Call(DisablePlayerPhysics, FALSE) Call(DisablePlayerInput, FALSE) Return diff --git a/src/world/dead/area_flo/flo_10/npc.c b/src/world/dead/area_flo/flo_10/npc.c index ab4d32d70bc..f295c6c70c9 100644 --- a/src/world/dead/area_flo/flo_10/npc.c +++ b/src/world/dead/area_flo/flo_10/npc.c @@ -30,11 +30,13 @@ s32 N(KeyList)[] = { EvtScript N(EVS_OnInteract_WaterStoneSocket) = { IfEq(GF_FLO10_ShowedLilyTheWaterStone, TRUE) +#if !VERSION_JP Call(GetPartnerInUse, LVarA) IfNe(LVarA, 0) Call(AwaitPlayerLeave, 0, 0, 19) Return EndIf +#endif Call(DisablePlayerInput, TRUE) SetGroup(EVT_GROUP_00) Call(SetTimeFreezeMode, TIME_FREEZE_PARTIAL) diff --git a/src/world/dead/area_flo/flo_15/stairs.c b/src/world/dead/area_flo/flo_15/stairs.c index 4b98824e3e8..34fe7850a1c 100644 --- a/src/world/dead/area_flo/flo_15/stairs.c +++ b/src/world/dead/area_flo/flo_15/stairs.c @@ -9,9 +9,15 @@ s32 N(ShakeCamParams)[] = { 22, Float(1.2), 25, Float(1.05), 24, Float(0.9), +#if VERSION_JP + 22, Float(0.75), + 20, Float(0.6), + 10, Float(1.5), +#else 25, Float(0.75), 24, Float(0.6), 10, Float(1.7), +#endif }; EvtScript N(EVS_MonitorFallingStairs) = { diff --git a/src/world/dead/area_flo/flo_18/npc.c b/src/world/dead/area_flo/flo_18/npc.c index 4e6ff06bcce..e89a84d624a 100644 --- a/src/world/dead/area_flo/flo_18/npc.c +++ b/src/world/dead/area_flo/flo_18/npc.c @@ -357,41 +357,61 @@ EvtScript N(EVS_GenericHitReaction) = { }; EvtScript N(EVS_HitReaction_Magikoopa) = { +#if VERSION_JP + Set(MV_ReactingNpc, 0) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 0) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_HitReaction_Lakitu_01) = { +#if VERSION_JP + Set(MV_ReactingNpc, 1) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 1) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_HitReaction_Lakitu_02) = { +#if VERSION_JP + Set(MV_ReactingNpc, 2) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 2) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_HitReaction_Lakitu_03) = { +#if VERSION_JP + Set(MV_ReactingNpc, 3) + ExecWait(N(EVS_GenericHitReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 3) ExecWait(N(EVS_GenericHitReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; @@ -422,45 +442,69 @@ EvtScript N(EVS_GenericBombReaction) = { }; EvtScript N(EVS_BombReaction_Magikoopa) = { +#if VERSION_JP + Set(MV_ReactingNpc, 0) + Call(GetNpcPos, NPC_Magikoopa, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 0) Call(GetNpcPos, NPC_Magikoopa, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_BombReaction_Lakitu_01) = { +#if VERSION_JP + Set(MV_ReactingNpc, 1) + Call(GetNpcPos, NPC_Lakitu_01, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 1) Call(GetNpcPos, NPC_Lakitu_01, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_BombReaction_Lakitu_02) = { +#if VERSION_JP + Set(MV_ReactingNpc, 2) + Call(GetNpcPos, NPC_Lakitu_02, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 2) Call(GetNpcPos, NPC_Lakitu_02, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; EvtScript N(EVS_BombReaction_Lakitu_03) = { +#if VERSION_JP + Set(MV_ReactingNpc, 3) + Call(GetNpcPos, NPC_Lakitu_03, LVar0, LVar1, LVar2) + ExecWait(N(EVS_GenericBombReaction)) +#else IfEq(MV_ReactingNpc, -1) Set(MV_ReactingNpc, 3) Call(GetNpcPos, NPC_Lakitu_03, LVar0, LVar1, LVar2) ExecWait(N(EVS_GenericBombReaction)) Set(MV_ReactingNpc, -1) EndIf +#endif Return End }; @@ -486,7 +530,9 @@ BombTrigger N(Npc_BombTrigger_04) = { }; EvtScript N(EVS_SetupMachineDamageReactions) = { +#if !VERSION_JP Set(MV_ReactingNpc, -1) +#endif BindTrigger(Ref(N(EVS_HitReaction_Magikoopa)), TRIGGER_WALL_HAMMER, COLLIDER_o174, 1, 0) BindTrigger(Ref(N(EVS_HitReaction_Magikoopa)), TRIGGER_WALL_HAMMER, COLLIDER_o130, 1, 0) BindTrigger(Ref(N(EVS_BombReaction_Magikoopa)), TRIGGER_POINT_BOMB, Ref(N(Npc_BombTrigger_02)), 1, 0) diff --git a/src/world/dead/area_flo/flo_19/beanstalk.c b/src/world/dead/area_flo/flo_19/beanstalk.c index d6ef5f0e02d..d8c825458d3 100644 --- a/src/world/dead/area_flo/flo_19/beanstalk.c +++ b/src/world/dead/area_flo/flo_19/beanstalk.c @@ -51,8 +51,8 @@ API_CALLABLE(N(SetScreenFadeAmount)) { #include "common/CosInterpMinMax.inc.c" -// all data in this file is truncated -/* +// all data in this file is truncated in other versions +#if VERSION_JP EvtScript N(EVS_FadeOutToBlack) = { Set(LVar0, 0) Label(10) @@ -393,4 +393,4 @@ EvtScript N(EVS_SetupBeanstalk) = { Return End }; -*/ +#endif diff --git a/src/world/dead/area_flo/flo_19/clouds.c b/src/world/dead/area_flo/flo_19/clouds.c index 89625c016e2..1d4b8a38378 100644 --- a/src/world/dead/area_flo/flo_19/clouds.c +++ b/src/world/dead/area_flo/flo_19/clouds.c @@ -87,8 +87,8 @@ EvtScript N(EVS_AnimatePlatforms) = { Set(LVarF, 0) EndIf SetF(LVar0, LVarA) - // the rest of the script is cut off halfway through the next SetF cmd - /* + // the rest of the script is cut off halfway through the next SetF cmd in other versions +#if VERSION_JP SetF(LVar1, LVarB) SetF(LVar2, LVarC) SetF(LVar3, LVarD) @@ -112,16 +112,18 @@ EvtScript N(EVS_AnimatePlatforms) = { Goto(0) Return End - */ +#endif }; +#if !VERSION_JP // half of SetF(LVar1, LVarB) s32 N(EVS_AnimatePlatforms_Fragment)[] = { EVT_OP_SETF, 2, }; +#endif -// remaining data is truncated -/* +// remaining data is truncated in other versions +#if VERSION_JP EvtScript N(EVS_AddPlayerWeight_Platform_01) = { Thread AddF(MV_Distortion_Platform_01, Float(-1.5)) @@ -167,10 +169,10 @@ EvtScript N(EVS_SetupClouds) = { Call(ParentColliderToModel, COLLIDER_o78, MODEL_g21) Call(ParentColliderToModel, COLLIDER_o76, MODEL_g22) Call(ParentColliderToModel, COLLIDER_o79, MODEL_g23) - Call(SetModelFlags, MODEL_g17, MODEL_FLAG_USE_CAMERA_UNK_MATRIX, TRUE) - Call(SetModelFlags, MODEL_g21, MODEL_FLAG_USE_CAMERA_UNK_MATRIX, TRUE) - Call(SetModelFlags, MODEL_g22, MODEL_FLAG_USE_CAMERA_UNK_MATRIX, TRUE) - Call(SetModelFlags, MODEL_g23, MODEL_FLAG_USE_CAMERA_UNK_MATRIX, TRUE) + Call(SetModelFlags, MODEL_g17, MODEL_FLAG_BILLBOARD, TRUE) + Call(SetModelFlags, MODEL_g21, MODEL_FLAG_BILLBOARD, TRUE) + Call(SetModelFlags, MODEL_g22, MODEL_FLAG_BILLBOARD, TRUE) + Call(SetModelFlags, MODEL_g23, MODEL_FLAG_BILLBOARD, TRUE) Exec(N(EVS_AnimatePlatforms)) BindTrigger(Ref(N(EVS_AddPlayerWeight_Platform_01)), TRIGGER_FLOOR_TOUCH, COLLIDER_o77, 1, 0) BindTrigger(Ref(N(EVS_AddPlayerWeight_Platform_02)), TRIGGER_FLOOR_TOUCH, COLLIDER_o78, 1, 0) @@ -199,4 +201,4 @@ EvtScript N(EVS_SetupClouds) = { Return End }; -*/ +#endif diff --git a/src/world/dead/area_flo/flo_19/main.c b/src/world/dead/area_flo/flo_19/main.c index 8ea9b7b6f4b..0af4db4be40 100644 --- a/src/world/dead/area_flo/flo_19/main.c +++ b/src/world/dead/area_flo/flo_19/main.c @@ -12,7 +12,11 @@ EvtScript N(EVS_ExitWalk_flo_21_0) = { SetGroup(EVT_GROUP_1B) Call(UseExitHeading, 60, flo_19_ENTRY_1) Exec(ExitWalk) +#if VERSION_JP + Call(GotoMap, Ref("flo_21"), flo_21_ENTRY_0) +#else Call(GotoMap, 0x80243000, flo_21_ENTRY_0) // raw pointer to missing string "flo_21" +#endif Wait(100) Return End diff --git a/src/world/dead/area_flo/flo_21/clouds.c b/src/world/dead/area_flo/flo_21/clouds.c new file mode 100644 index 00000000000..4efe8622b7d --- /dev/null +++ b/src/world/dead/area_flo/flo_21/clouds.c @@ -0,0 +1,73 @@ +#include "flo_21.h" + +s32 N(UnusedScaleVectors)[] = { + Float(1.0), Float(1.0), + Float(1.0), Float(1.0), + Float(1.0), Float(1.0), + Float(1.1), Float(1.1), + Float(1.1), Float(1.1), + Float(1.1), Float(1.1), + Float(1.0), Float(1.0), + Float(1.0), Float(1.0), + Float(1.0), Float(1.0), + Float(0.9), Float(0.9), + Float(0.9), Float(0.9), + Float(0.9), Float(0.9), +}; + +EvtScript N(EVS_UnkInit_00) = { + AddF(MV_Unk_00, Float(-1.5)) + Return + End +}; + +EvtScript N(EVS_UnkInit_01) = { + AddF(MV_Unk_01, Float(-1.5)) + Return + End +}; + +EvtScript N(EVS_UnkInit_02) = { + AddF(MV_Unk_02, Float(-1.5)) + Return + End +}; + +EvtScript N(EVS_UnkInit_03) = { + AddF(MV_Unk_03, Float(-1.5)) + Return + End +}; + +EvtScript N(EVS_UnkInit_04) = { + AddF(MV_Unk_04, Float(-1.5)) + Return + End +}; + +#include "common/CosInterpMinMax.inc.c" + +EvtScript N(EVS_SetupCloudPuffs) = { + Thread + Set(LVarF, 0) + Label(0) + Call(N(CosInterpMinMax), LVarF, LVar0, Float(0.968), Float(1.031), 15, 0, 0) + Call(N(CosInterpMinMax), LVarF, LVar1, Float(1.031), Float(0.968), 15, 0, 0) + Call(ScaleModel, MODEL_o1, LVar1, LVar0, 1) + Call(ScaleModel, MODEL_o2, LVar1, LVar0, 1) + Call(ScaleModel, MODEL_o3, LVar0, LVar1, 1) + Call(ScaleModel, MODEL_o4, LVar0, LVar1, 1) + Call(ScaleModel, MODEL_o9, LVar0, LVar1, 1) + Call(ScaleModel, MODEL_o14, LVar1, LVar0, 1) + Call(ScaleModel, MODEL_o15, LVar0, LVar1, 1) + Call(ScaleModel, MODEL_o16, LVar0, LVar1, 1) + Add(LVarF, 1) + IfGe(LVarF, 30) + Set(LVarF, 0) + EndIf + Wait(1) + Goto(0) + EndThread + Return + End +}; diff --git a/src/world/dead/area_flo/flo_21/flo_21.h b/src/world/dead/area_flo/flo_21/flo_21.h new file mode 100644 index 00000000000..3e7f030ebea --- /dev/null +++ b/src/world/dead/area_flo/flo_21/flo_21.h @@ -0,0 +1,53 @@ +// Older version of flo_21 + +#include "dead.h" +#include "common.h" +#include "message_ids.h" +#include "map.h" + +#include "../flo.h" +#include "mapfs/flo_21_shape.h" +#include "mapfs/flo_21_hit.h" + +enum { + NPC_HuffNPuff_01 = 0, + NPC_HuffNPuff_02 = 1, + NPC_HuffNPuff_03 = 2, + NPC_RuffPuff_01 = 3, + NPC_RuffPuff_02 = 4, + NPC_RuffPuff_03 = 5, + NPC_RuffPuff_04 = 6, + NPC_RuffPuff_05 = 7, + NPC_RuffPuff_06 = 8, + NPC_RuffPuff_07 = 9, + NPC_RuffPuff_08 = 10, + NPC_RuffPuff_09 = 11, + NPC_RuffPuff_10 = 12, + NPC_RuffPuff_11 = 13, + NPC_RuffPuff_12 = 14, + NPC_RuffPuff_13 = 15, + NPC_RuffPuff_14 = 16, + NPC_RuffPuff_15 = 17, +}; + +enum { + MV_Unk_00 = MapVar(0), + MV_Unk_01 = MapVar(1), + MV_Unk_02 = MapVar(2), + MV_Unk_03 = MapVar(3), + MV_Unk_04 = MapVar(4), + MV_BossDefeated = MapVar(10), + MV_HuffScaleX = MapVar(11), + MV_HuffScaleY = MapVar(12), + MV_BossFightState = MapVar(13), +}; + +#define NAMESPACE dead_flo_21 + +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_SetupCloudPuffs); +extern EvtScript N(EVS_Scene_HuffNPuffAmbush); +extern EvtScript N(EVS_TrySpawningStarCard); + +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/dead/area_flo/flo_21/main.c b/src/world/dead/area_flo/flo_21/main.c new file mode 100644 index 00000000000..8591b55c3d3 --- /dev/null +++ b/src/world/dead/area_flo/flo_21/main.c @@ -0,0 +1,117 @@ +#include "flo_21.h" +#include "sprite/player.h" + +#define STAR_SPIRIT_DATA_VAR MV_Unk_01 +#include "world/common/todo/StarSpiritEffectFunc.inc.c" + +#include "world/common/atomic/TexturePan.inc.c" + +API_CALLABLE(N(SpawnSunEffect)) { + fx_sun_undeclared(FX_SUN_FROM_RIGHT, 0, 0, 0, 0, 0); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_TrySpawningStarCard) = { + Switch(GB_StoryProgress) + CaseEq(STORY_CH6_GREW_MAGIC_BEANSTALK) + Set(LVar0, FALSE) + IfEq(MV_BossDefeated, FALSE) + Return + EndIf + Set(GB_StoryProgress, STORY_CH6_DEFEATED_HUFF_N_PUFF) + CaseEq(STORY_CH6_DEFEATED_HUFF_N_PUFF) + Set(LVar0, TRUE) + CaseDefault + Return + EndSwitch + IfEq(LVar0, FALSE) + Call(DisablePlayerInput, TRUE) + Call(UseSettingsFrom, CAM_DEFAULT, 650, 205, 0) + Call(SetCamSpeed, CAM_DEFAULT, Float(0.6)) + Call(SetPanTarget, CAM_DEFAULT, 650, 150, 0) + EVT_SPIRIT_ADJUST_CAM(Float(-5.5)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(N(StarSpiritEffectFunc2), 5, 180, 650, 170, 0, 650, 205, 0, 150, 120) + Thread + Call(N(StarSpiritEffectFunc3)) + EndThread + Thread + Wait(1) + Call(PlaySound, SOUND_LOOP_STAR_ORB_RISING) + Call(N(StarSpiritEffectFunc1)) + Call(StopSound, SOUND_LOOP_STAR_ORB_RISING) + Call(PlaySoundAt, SOUND_STAR_ORB_BURST, SOUND_SPACE_DEFAULT, 650, 205, 0) + EndThread + Thread + Wait(45) + Call(SetPlayerAnimation, ANIM_Mario1_LookUp) + EndThread + Thread + Wait(180) + Wait(115) + Call(PlaySoundAt, SOUND_STAR_CARD_APPEARS, SOUND_SPACE_DEFAULT, 650, 205, 0) + EndThread + Call(N(StarSpiritEffectFunc4), 1) + Thread + Wait(80) + Call(SetPlayerAnimation, ANIM_Mario1_Idle) + EndThread + Add(LVar1, 100) + Call(SetCamDistance, CAM_DEFAULT, LVar1) + Call(SetPanTarget, CAM_DEFAULT, 650, 120, 0) + Call(N(StarSpiritEffectFunc4), 2) + Call(GetPlayerPos, LVar2, LVar3, LVar4) + Call(UseSettingsFrom, CAM_DEFAULT, LVar2, LVar3, LVar4) + Call(SetCamSpeed, CAM_DEFAULT, Float(1.0)) + Call(SetPanTarget, CAM_DEFAULT, LVar2, LVar3, LVar4) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Call(PanToTarget, CAM_DEFAULT, 0, FALSE) + Call(DisablePlayerInput, FALSE) + Else + Call(N(StarSpiritEffectFunc5), 5, 650, 150, 0, 120) + Thread + Call(N(StarSpiritEffectFunc6)) + EndThread + Wait(1) + EndIf + Call(N(StarSpiritEffectFunc4), 3) + Call(PlaySoundAtPlayer, SOUND_RESCUE_STAR_SPIRIT, SOUND_SPACE_DEFAULT) + Call(DisablePlayerInput, TRUE) + Set(GB_StoryProgress, STORY_CH6_STAR_SPIRIT_RESCUED) + Call(GotoMapSpecial, Ref("kmr_23"), kmr_23_ENTRY_5, TRANSITION_GET_STAR_CARD) + Wait(100) + Return + End +}; + +EvtScript N(EVS_ExitWalk_flo_19_1) = EVT_EXIT_WALK(60, flo_21_ENTRY_0, "flo_19", flo_19_ENTRY_1); + +EvtScript N(EVS_BindExitTriggers) = { + BindTrigger(Ref(N(EVS_ExitWalk_flo_19_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0) + Return + End +}; + +EvtScript N(EVS_Main) = { + Set(GB_WorldLocation, LOCATION_CLOUDY_CLIMB) + Call(SetSpriteShading, SHADING_NONE) + Call(SetCamLeadPlayer, CAM_DEFAULT, FALSE) + EVT_SETUP_CAMERA_DEFAULT() + Call(MakeNpcs, FALSE, Ref(N(DefaultNPCs))) + Exec(N(EVS_Scene_HuffNPuffAmbush)) + Call(HidePlayerShadow, TRUE) + Exec(N(EVS_SetupCloudPuffs)) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o114, SURFACE_TYPE_CLOUD) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o115, SURFACE_TYPE_CLOUD) + Call(GetEntryID, LVar0) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK) + Set(LVar0, Ref(N(EVS_BindExitTriggers))) + Exec(EnterWalk) + ExecWait(N(EVS_SetupMusic)) + IfGe(GB_StoryProgress, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(N(SpawnSunEffect)) + EndIf + Exec(N(EVS_TrySpawningStarCard)) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_21/music.c b/src/world/dead/area_flo/flo_21/music.c new file mode 100644 index 00000000000..8a3e0c5f36d --- /dev/null +++ b/src/world/dead/area_flo/flo_21/music.c @@ -0,0 +1,11 @@ +#include "flo_21.h" + +EvtScript N(EVS_SetupMusic) = { + IfEq(GB_StoryProgress, STORY_CH6_DEFEATED_HUFF_N_PUFF) + Call(FadeOutMusic, 0, 500) + Else + Call(SetMusicTrack, 0, SONG_CLOUDY_CLIMB, 0, 8) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_21/npc.c b/src/world/dead/area_flo/flo_21/npc.c new file mode 100644 index 00000000000..3e5d2b00dcf --- /dev/null +++ b/src/world/dead/area_flo/flo_21/npc.c @@ -0,0 +1,815 @@ +#include "flo_21.h" +#include "effects.h" +#include "sprite/player.h" + +#include "world/common/enemy/HuffNPuff.h" +#include "world/common/enemy/RuffPuff.h" + +#include "world/common/EnableCameraFollowPlayerY.inc.c" + +NpcSettings N(NpcSettings_RuffPuff) = { + .height = 24, + .radius = 28, + .level = 16, + .onHit = &EnemyNpcHit, + .onDefeat = &EnemyNpcDefeat, +}; + +NpcSettings N(NpcSettings_HuffNPuff) = { + .height = 24, + .radius = 24, + .level = ACTOR_LEVEL_NONE, +}; + +#include "world/common/npc/StarSpirit.inc.c" + +Vec3f N(Path_JumpOut)[] = { + { 600.0, 104.0, 0.0 }, + { 575.0, 204.0, 0.0 }, + { 550.0, 104.0, 0.0 }, +}; + +EvtScript N(EVS_PlayRumbleSounds) = { + Label(0) + Call(PlaySound, SOUND_HUFF_N_PUFF_JIGGLE) + Call(ShakeCam, CAM_DEFAULT, 0, 15, Float(1.0)) + Wait(15) + Goto(0) + Return + End +}; + +EvtScript N(EVS_HuffNPuff_JumpOut) = { + Call(PlaySoundAtNpc, NPC_HuffNPuff_01, SOUND_HUFF_N_PUFF_EMERGE, SOUND_SPACE_DEFAULT) + PlayEffect(EFFECT_SHOCKWAVE, 3, 650, 104, 0) + Wait(15) + Call(SetNpcJumpscale, NPC_HuffNPuff_02, Float(0.0)) + Call(NpcJump0, NPC_HuffNPuff_02, 650, 50, 0, 5) + Call(SetNpcPos, NPC_HuffNPuff_01, 650, 50, 5) + Call(SetNpcPos, NPC_HuffNPuff_02, 650, 50, 0) + Call(SetNpcPos, NPC_HuffNPuff_03, 650, 50, 0) + Call(SetNpcJumpscale, NPC_HuffNPuff_01, Float(0.0)) + Call(SetNpcJumpscale, NPC_HuffNPuff_02, Float(0.0)) + Call(SetNpcJumpscale, NPC_HuffNPuff_03, Float(0.0)) + Thread + Call(NpcJump0, NPC_HuffNPuff_01, 650, 150, 5, 10) + EndThread + Thread + Call(NpcJump0, NPC_HuffNPuff_02, 650, 150, 0, 10) + EndThread + Thread + Call(NpcJump0, NPC_HuffNPuff_03, 650, 150, 0, 10) + EndThread + Thread + Call(SetPlayerAnimation, ANIM_MarioW2_Flail) + Call(LoadPath, 30, Ref(N(Path_JumpOut)), ARRAY_COUNT(N(Path_JumpOut)), EASING_LINEAR) + Label(0) + Call(GetNextPathPos) + Call(SetPlayerPos, LVar1, LVar2, LVar3) + Wait(1) + IfEq(LVar0, 1) + Goto(0) + EndIf + EndThread + Call(SetPlayerAnimation, ANIM_Mario1_Flail) + Return + End +}; + +EvtScript N(EVS_Scene_HuffNPuffAmbush) = { + IfGe(GB_StoryProgress, STORY_CH6_DEFEATED_HUFF_N_PUFF) + Return + EndIf + Call(AwaitPlayerApproach, 650, 0, 30) + Call(DisablePlayerInput, TRUE) + Call(SetMusicTrack, 0, SONG_HUFF_N_PUFF_THEME, 0, 8) + ExecGetTID(N(EVS_PlayRumbleSounds), LVar9) + Call(GetPartnerInUse, LVar0) + IfNe(LVar0, PARTNER_NONE) + Call(InterruptUsePartner) + Wait(20) + EndIf + Call(DisablePlayerPhysics, TRUE) + Call(InterpPlayerYaw, 90, 1) + Wait(5) + Call(SetPlayerAnimation, ANIM_Mario1_Flail) + Call(SetNpcFlagBits, NPC_HuffNPuff_02, NPC_FLAG_IGNORE_PLAYER_COLLISION, TRUE) + Call(GetPlayerPos, LVar2, LVar3, LVar4) + Call(UseSettingsFrom, CAM_DEFAULT, LVar2, LVar3, LVar4) + Call(SetPanTarget, CAM_DEFAULT, LVar2, LVar3, LVar4) + Call(SetCamSpeed, CAM_DEFAULT, Float(90.0)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(MakeLerp, LVar2, 600, 20, EASING_LINEAR) + Set(LVar2, LVar3) + Set(LVar5, LVar3) + Add(LVar5, 15) + Loop(0) + Call(UpdateLerp) + Add(LVar3, 3) + Call(SetPlayerPos, LVar0, LVar3, LVar4) + IfGt(LVar3, LVar5) + Set(LVar3, LVar2) + EndIf + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar2, LVar4) + EndLoop + Call(func_802D2C14, 1) + Call(SetPlayerPos, LVar0, LVar2, LVar4) + Call(SetNpcFlagBits, NPC_HuffNPuff_02, NPC_FLAG_IGNORE_PLAYER_COLLISION, FALSE) + Call(DisablePlayerPhysics, FALSE) + Wait(10) + Call(GetPlayerPos, LVar0, LVar1, LVar2) + Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + Add(LVar0, 25) + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamDistance, CAM_DEFAULT, Float(300.0)) + Call(SetCamPitch, CAM_DEFAULT, Float(17.0), Float(-9.0)) + Call(SetCamSpeed, CAM_DEFAULT, Float(4.0)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Wait(10) + Call(ShowMessageAtWorldPos, MSG_CH6_00CA, 630, 120, 0) + Call(SetCamDistance, CAM_DEFAULT, Float(600.0)) + Call(SetCamPitch, CAM_DEFAULT, Float(30.0), Float(-9.0)) + Call(SetCamSpeed, CAM_DEFAULT, Float(90.0)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Wait(10) + Call(ShowMessageAtWorldPos, MSG_CH6_00CB, 630, 120, 0) + Call(SetCamDistance, CAM_DEFAULT, Float(300.0)) + Call(SetCamPitch, CAM_DEFAULT, Float(17.0), Float(-9.0)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(func_802D2C14, 0) + Wait(10) + Call(GetCurrentPartnerID, LVar0) + IfNe(LVar0, PARTNER_LAKILESTER) + Call(ShowMessageAtWorldPos, MSG_CH6_00CC, 630, 120, 0) + Else + Call(ShowMessageAtWorldPos, MSG_CH6_00CD, 630, 120, 0) + EndIf + ChildThread + Wait(15) + Call(GetPlayerPos, LVar0, LVar1, LVar2) + Add(LVar0, 25) + Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamPitch, CAM_DEFAULT, Float(17.0), Float(-6.0)) + Set(LVar3, 40) + Loop(5) + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamDistance, CAM_DEFAULT, Float(400.0)) + Call(SetCamSpeed, CAM_DEFAULT, LVar3) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Sub(LVar3, 10) + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamDistance, CAM_DEFAULT, Float(600.0)) + Call(SetCamSpeed, CAM_DEFAULT, LVar3) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Add(LVar3, 7) + EndLoop + EndChildThread + ExecWait(N(EVS_HuffNPuff_JumpOut)) + KillThread(LVar9) + Wait(30) + Call(SetNpcVar, NPC_HuffNPuff_01, 0, 1) + Call(DisablePlayerInput, FALSE) + Wait(15) + Return + End +}; + +EvtScript N(EVS_HuffNPuff_AnimateBodyScale) = { + SetF(LVar0, Float(0.95)) + SetF(LVar1, Float(1.1)) + Label(0) + Switch(MV_BossFightState) + CaseEq(0) + Set(LVar3, 10) + Set(LVar2, 2) + CaseEq(1) + Set(LVar3, 5) + Set(LVar2, 1) + CaseDefault + Return + EndSwitch + Set(LVar4, LVar3) + Loop(LVar4) + Call(SetNpcScale, NPC_HuffNPuff_01, LVar0, LVar1, 1) + Call(SetNpcScale, NPC_HuffNPuff_02, LVar0, LVar1, 1) + Call(SetNpcScale, NPC_HuffNPuff_03, LVar0, LVar1, 1) + AddF(LVar0, Float(0.015)) + SubF(LVar1, Float(0.01)) + Wait(LVar2) + EndLoop + Set(LVar4, LVar3) + Loop(LVar4) + Call(SetNpcScale, NPC_HuffNPuff_01, LVar0, LVar1, 1) + Call(SetNpcScale, NPC_HuffNPuff_02, LVar0, LVar1, 1) + Call(SetNpcScale, NPC_HuffNPuff_03, LVar0, LVar1, 1) + SubF(LVar0, Float(0.015)) + AddF(LVar1, Float(0.01)) + Wait(LVar2) + EndLoop + Goto(0) + Return + End +}; + +// start and end positions for each of the Ruff Puffs when HuffNPuff explodes +Vec2i N(BlowUpPositions)[] = { + { 635, 165}, { 450, 120 }, + { 640, 170}, { 520, 270 }, + { 650, 175}, { 650, 275 }, + { 660, 170}, { 730, 275 }, + { 665, 165}, { 850, 120 }, + { 630, 150}, { 450, 155 }, + { 637, 150}, { 600, 275 }, + { 650, 150}, { 850, 155 }, + { 663, 150}, { 750, 270 }, + { 670, 150}, { 850, 195 }, + { 635, 135}, { 450, 195 }, + { 640, 130}, { 450, 235 }, + { 650, 125}, { 450, 270 }, + { 660, 130}, { 850, 270 }, + { 665, 135}, { 850, 235 }, +}; + +Vec3i N(BeginAnimScaleX)[] = { + { 10, 14, 7 }, + { 14, 5, 6 }, + { 5, 12, 6 }, + { 12, 5, 5 }, + { 5, 10, 5 }, + { 10, 5, 4 }, +}; + +Vec2i N(LoopAnimScaleX)[] = { + { 8, 10 }, + { 10, 8 }, +}; + +Vec3i N(BeginAnimScaleY)[] = { + { 10, 5, 7 }, + { 5, 14, 6 }, + { 14, 5, 6 }, + { 5, 12, 5 }, + { 12, 5, 5 }, + { 5, 10, 4 }, +}; + +Vec2i N(LoopAnimScaleY)[] = { + { 10, 6 }, + { 6, 10 }, +}; + +EvtScript N(EVS_HuffNPuff_Defeat_Flashing) = { + SetF(LVar0, 10) + SetF(LVar1, 1) + ChildThread + Loop(8) + Call(SetNpcFlagBits, NPC_HuffNPuff_01, NPC_FLAG_INVISIBLE, FALSE) + Call(SetNpcFlagBits, NPC_HuffNPuff_02, NPC_FLAG_INVISIBLE, FALSE) + Call(SetNpcFlagBits, NPC_HuffNPuff_03, NPC_FLAG_INVISIBLE, FALSE) + Wait(LVar0) + Call(SetNpcFlagBits, NPC_HuffNPuff_01, NPC_FLAG_INVISIBLE, TRUE) + Call(SetNpcFlagBits, NPC_HuffNPuff_02, NPC_FLAG_INVISIBLE, TRUE) + Call(SetNpcFlagBits, NPC_HuffNPuff_03, NPC_FLAG_INVISIBLE, TRUE) + Wait(LVar1) + SubF(LVar0, 0) + AddF(LVar1, 0) + EndLoop + Loop(0) + Call(SetNpcFlagBits, NPC_HuffNPuff_01, NPC_FLAG_INVISIBLE, FALSE) + Call(SetNpcFlagBits, NPC_HuffNPuff_02, NPC_FLAG_INVISIBLE, FALSE) + Call(SetNpcFlagBits, NPC_HuffNPuff_03, NPC_FLAG_INVISIBLE, FALSE) + Wait(LVar0) + Call(SetNpcFlagBits, NPC_HuffNPuff_01, NPC_FLAG_INVISIBLE, TRUE) + Call(SetNpcFlagBits, NPC_HuffNPuff_02, NPC_FLAG_INVISIBLE, TRUE) + Call(SetNpcFlagBits, NPC_HuffNPuff_03, NPC_FLAG_INVISIBLE, TRUE) + Wait(LVar1) + EndLoop + EndChildThread + ChildThread + Loop(0) + Call(MakeLerp, 0, 255, 10, EASING_QUADRATIC_OUT) + Loop(0) + Call(UpdateLerp) + Call(SetNpcImgFXParams, NPC_HuffNPuff_01, IMGFX_SET_WHITE_FADE, LVar0, LVar0, LVar0, 0) + Call(SetNpcImgFXParams, NPC_HuffNPuff_02, IMGFX_SET_WHITE_FADE, LVar0, LVar0, LVar0, 0) + Call(SetNpcImgFXParams, NPC_HuffNPuff_03, IMGFX_SET_WHITE_FADE, LVar0, LVar0, LVar0, 0) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + EndLoop + EndChildThread + Wait(100) + Return + End +}; + +EvtScript N(EVS_HuffNPuff_Defeat_AnimateScale) = { + SetF(MV_HuffScaleX, Float(1.0)) + SetF(MV_HuffScaleY, Float(1.0)) + ChildThread + UseBuf(Ref(N(BeginAnimScaleX))) + Loop(ARRAY_COUNT(N(BeginAnimScaleX))) + Call(PlaySoundAtNpc, NPC_HuffNPuff_01, SOUND_HUFF_N_PUFF_JIGGLE, SOUND_SPACE_DEFAULT) + BufRead3(LVar6, LVar7, LVar8) + Call(MakeLerp, LVar6, LVar7, LVar8, EASING_SIN_OUT) + Loop(0) + Call(UpdateLerp) + DivF(LVar0, 10) + SetF(MV_HuffScaleX, LVar0) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + Wait(1) + EndLoop + Loop(0) + UseBuf(Ref(N(LoopAnimScaleX))) + Loop(ARRAY_COUNT(N(LoopAnimScaleX))) + Call(PlaySoundAtNpc, NPC_HuffNPuff_01, SOUND_HUFF_N_PUFF_JIGGLE, SOUND_SPACE_DEFAULT) + BufRead2(LVar6, LVar7) + Call(MakeLerp, LVar6, LVar7, 4, EASING_SIN_OUT) + Loop(0) + Call(UpdateLerp) + DivF(LVar0, 10) + SetF(MV_HuffScaleX, LVar0) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + EndLoop + EndLoop + EndChildThread + ChildThread + UseBuf(Ref(N(BeginAnimScaleY))) + Loop(ARRAY_COUNT(N(BeginAnimScaleY))) + BufRead3(LVar6, LVar7, LVar8) + Call(MakeLerp, LVar6, LVar7, LVar8, EASING_SIN_OUT) + Loop(0) + Call(UpdateLerp) + DivF(LVar0, 10) + SetF(MV_HuffScaleY, LVar0) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + Wait(1) + EndLoop + Loop(0) + UseBuf(Ref(N(LoopAnimScaleY))) + Loop(ARRAY_COUNT(N(LoopAnimScaleY))) + BufRead2(LVar6, LVar7) + Call(MakeLerp, LVar6, LVar7, 4, EASING_SIN_OUT) + Loop(0) + Call(UpdateLerp) + DivF(LVar0, 10) + SetF(MV_HuffScaleY, LVar0) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + EndLoop + EndLoop + EndChildThread + Loop(100) + Call(SetNpcScale, NPC_HuffNPuff_01, MV_HuffScaleX, MV_HuffScaleY, 1) + Call(SetNpcScale, NPC_HuffNPuff_02, MV_HuffScaleX, MV_HuffScaleY, 1) + Call(SetNpcScale, NPC_HuffNPuff_03, MV_HuffScaleX, MV_HuffScaleY, 1) + Wait(1) + EndLoop + Return + End +}; + +EvtScript N(EVS_HuffNPuff_Defeat_BlowUp) = { + ChildThread + Set(LVar1, 0) + Loop(0) + Set(LVar0, 3) + Loop(15) + Call(SetNpcRotation, LVar0, 0, LVar1, 0) + Add(LVar0, 1) + EndLoop + Add(LVar1, 60) + IfGt(LVar1, 360) + Add(LVar1, -360) + EndIf + Wait(1) + EndLoop + EndChildThread + UseBuf(Ref(N(BlowUpPositions))) + Set(LVar8, 3) + // all except the last one + Loop((ARRAY_COUNT(N(BlowUpPositions))/ 2) - 1) + BufRead4(LVar1, LVar2, LVar3, LVar4) + Thread + Call(RandInt, 5, LVar5) + Wait(LVar5) + Call(SetNpcPos, LVar8, LVar1, LVar2, -30) + Call(RandInt, 2, LVar5) + Add(LVar5, 8) + Call(PlaySoundAtNpc, LVar8, SOUND_RUFF_PUFF_FLY_A, SOUND_SPACE_DEFAULT) + Call(NpcJump0, LVar8, LVar3, LVar4, -15, LVar5) + Call(SetNpcPos, LVar8, NPC_DISPOSE_LOCATION) + EndThread + Add(LVar8, 1) + EndLoop + Call(SetNpcPos, NPC_HuffNPuff_01, NPC_DISPOSE_LOCATION) + Call(SetNpcPos, NPC_HuffNPuff_02, NPC_DISPOSE_LOCATION) + Call(SetNpcPos, NPC_HuffNPuff_03, NPC_DISPOSE_LOCATION) + // the last one + BufRead4(LVar1, LVar2, LVar3, LVar4) + Wait(5) + Call(SetNpcPos, LVar8, LVar1, LVar2, -30) + Call(PlaySoundAtNpc, LVar8, SOUND_RUFF_PUFF_FLY_B, SOUND_SPACE_DEFAULT) + Call(NpcJump0, LVar8, LVar3, LVar4, -15, 10) + Call(SetNpcPos, LVar8, NPC_DISPOSE_LOCATION) + Return + End +}; + +EvtScript N(EVS_Scene_BossDefeated) = { + Call(SetNpcAnimation, NPC_HuffNPuff_02, ANIM_HuffNPuff_Anim04) + Call(SetNpcAnimation, NPC_HuffNPuff_01, ANIM_HuffNPuff_Anim05) + Call(SetNpcAnimation, NPC_HuffNPuff_03, ANIM_HuffNPuff_Anim06) + Call(GetNpcPos, NPC_HuffNPuff_01, LVar0, LVar1, LVar2) + Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + Add(LVar0, -15) + Add(LVar2, 40) + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamDistance, CAM_DEFAULT, Float(350.0)) + Call(SetCamPitch, CAM_DEFAULT, Float(17.0), Float(-5.5)) + Call(SetCamSpeed, CAM_DEFAULT, Float(90.0)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Call(SpeakToPlayer, NPC_HuffNPuff_01, ANIM_HuffNPuff_Anim30, ANIM_HuffNPuff_Anim05, 256, -30, 30, MSG_CH6_00CE) + Call(FadeOutMusic, 0, 1500) + Set(MV_BossFightState, 2) + Call(GetNpcPos, NPC_HuffNPuff_01, LVar0, LVar1, LVar2) + Thread + Set(LVar3, LVar0) + Set(LVar4, LVar0) + Add(LVar3, -35) + Add(LVar4, 35) + Loop(3) + PlayEffect(EFFECT_EXPLOSION, 0, LVar0, LVar1, LVar2) + Wait(12) + PlayEffect(EFFECT_EXPLOSION, 0, LVar3, LVar1, LVar2) + Add(LVar3, 7) + Wait(8) + PlayEffect(EFFECT_EXPLOSION, 0, LVar4, LVar1, LVar2) + Add(LVar4, -7) + Wait(14) + EndLoop + PlayEffect(EFFECT_EXPLOSION, 2, LVar0, LVar1, LVar2) + Call(ShakeCam, CAM_DEFAULT, 0, 30, Float(1.5)) + EndThread + Thread + Wait(30) + Loop(10) + PlayEffect(EFFECT_SHIMMER_WAVE, 0, LVar0, LVar1, LVar2, 40, 65, 12, 15) + Wait(7) + EndLoop + EndThread + Exec(N(EVS_HuffNPuff_Defeat_Flashing)) + ExecWait(N(EVS_HuffNPuff_Defeat_AnimateScale)) + ExecWait(N(EVS_HuffNPuff_Defeat_BlowUp)) + Wait(10) + Return + End +}; + +EvtScript N(EVS_80243428) = { + Call(AdjustCam, CAM_DEFAULT, Float(90.0), 0, 300, Float(17.0), Float(-6.0)) + Call(SpeakToPlayer, NPC_SELF, ANIM_HuffNPuff_Anim2D, ANIM_HuffNPuff_Anim02, 0x100, -30, 30, MSG_CH6_00E1) + Call(ResetCam, CAM_DEFAULT, Float(4.0)) + Return + End +}; + +EvtScript N(EVS_NpcIdle_HuffNPuff_01) = { + Label(0) + Call(SetSelfVar, 0, 0) + Loop(0) + Call(GetSelfVar, 0, LVar0) + IfNe(LVar0, 0) + BreakLoop + EndIf + Wait(1) + EndLoop + Set(MV_BossFightState, 1) + Call(StartBossBattle, SONG_HUFF_N_PUFF_BATTLE) + Goto(0) + Return + End +}; + +EvtScript N(EVS_NpcDefeat_HuffNPuff_Main) = { + Call(GetBattleOutcome, LVar0) + Switch(LVar0) + CaseEq(OUTCOME_PLAYER_WON) + Call(SetEncounterStatusFlags, ENCOUNTER_STATUS_FLAG_1, TRUE) + Call(SetNpcYaw, NPC_PARTNER, 90) + Call(GetPlayerPos, LVar0, LVar1, LVar3) + Call(GetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar2) + Add(LVar3, -20) + Call(SetNpcPos, NPC_PARTNER, LVar0, LVar1, LVar3) + ExecWait(N(EVS_Scene_BossDefeated)) + Wait(50) + Set(MV_BossDefeated, TRUE) + Exec(N(EVS_TrySpawningStarCard)) + CaseEq(OUTCOME_PLAYER_LOST) + ExecWait(N(EVS_80243428)) + CaseEq(OUTCOME_PLAYER_FLED) + EndSwitch + Return + End +}; + +EvtScript N(EVS_NpcDefeat_HuffNPuff_Aux) = { + Return + End +}; + +EvtScript N(EVS_NpcInit_HuffNPuff_Face) = { + IfLt(GB_StoryProgress, STORY_CH6_DEFEATED_HUFF_N_PUFF) + Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_400000, 1) + Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_HuffNPuff_01))) + Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_HuffNPuff_Main))) + Call(SetNpcAnimation, NPC_SELF, ANIM_HuffNPuff_Anim02) + Else + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EndIf + Return + End +}; + +EvtScript N(EVS_NpcInit_HuffNPuff_Body) = { + IfLt(GB_StoryProgress, STORY_CH6_DEFEATED_HUFF_N_PUFF) + Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_400000, 1) + Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_HuffNPuff_Aux))) + Call(SetNpcAnimation, NPC_SELF, ANIM_HuffNPuff_Anim01) + Exec(N(EVS_HuffNPuff_AnimateBodyScale)) + Else + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EndIf + Return + End +}; + +EvtScript N(EVS_NpcInit_HuffNPuff_Arms) = { + IfLt(GB_StoryProgress, STORY_CH6_DEFEATED_HUFF_N_PUFF) + Call(SetEnemyFlagBits, NPC_SELF, ENEMY_FLAG_400000, 1) + Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_HuffNPuff_Aux))) + Call(SetNpcAnimation, NPC_SELF, ANIM_HuffNPuff_Anim19) + Else + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EndIf + Return + End +}; + +EvtScript N(EVS_NpcInit_RuffPuff) = { + Call(SetNpcAnimation, NPC_SELF, ANIM_RuffPuff_Dizzy) + Call(SetNpcJumpscale, NPC_SELF, 0) + Return + End +}; + +AnimID N(ExtraAnims_HuffNPuff)[] = { + ANIM_HuffNPuff_Anim00, + ANIM_HuffNPuff_Anim01, + ANIM_HuffNPuff_Anim02, + ANIM_HuffNPuff_Anim04, + ANIM_HuffNPuff_Anim05, + ANIM_HuffNPuff_Anim31, + ANIM_HuffNPuff_Anim19, + ANIM_HuffNPuff_Anim2D, + ANIM_LIST_END +}; + +NpcData N(NpcData_HuffNPuff)[] = { + { + .id = NPC_HuffNPuff_01, + .pos = { 650.0f, NPC_DISPOSE_POS_Y, 0.0f }, + .yaw = 270, + .init = &N(EVS_NpcInit_HuffNPuff_Face), + .settings = &N(NpcSettings_HuffNPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, + .drops = NO_DROPS, + .animations = HUFF_N_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_HuffNPuff), + }, + { + .id = NPC_HuffNPuff_02, + .pos = { 650.0f, 100.0f, 0.0f }, + .yaw = 270, + .init = &N(EVS_NpcInit_HuffNPuff_Body), + .settings = &N(NpcSettings_HuffNPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, + .drops = NO_DROPS, + .animations = HUFF_N_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_HuffNPuff), + }, + { + .id = NPC_HuffNPuff_03, + .pos = { 650.0f, NPC_DISPOSE_POS_Y, 0.0f }, + .yaw = 270, + .init = &N(EVS_NpcInit_HuffNPuff_Arms), + .settings = &N(NpcSettings_HuffNPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING | ENEMY_FLAG_40000, + .drops = NO_DROPS, + .animations = HUFF_N_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_HuffNPuff), + }, +}; + +AnimID N(ExtraAnims_RuffPuff)[] = { + ANIM_RuffPuff_Dizzy, + ANIM_LIST_END +}; + +NpcData N(NpcData_RuffPuffs)[] = { + { + .id = NPC_RuffPuff_01, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_02, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_03, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_04, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_05, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_06, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_07, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_08, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_09, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_10, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_11, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_12, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_13, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_14, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, + { + .id = NPC_RuffPuff_15, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_RuffPuff), + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_PASSIVE | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = RUFF_PUFF_ANIMS, + .extraAnimations = N(ExtraAnims_RuffPuff), + }, +}; + +// dead formation IDs differ from the current +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_HuffNPuff), 0x1B00, BTL_FLO2_STAGE_07), + NPC_GROUP(N(NpcData_RuffPuffs), 0x1A1F, BTL_FLO_STAGE_07), + {} +}; diff --git a/src/world/dead/area_flo/flo_21/settings.c b/src/world/dead/area_flo/flo_21/settings.c new file mode 100644 index 00000000000..82ba7239979 --- /dev/null +++ b/src/world/dead/area_flo/flo_21/settings.c @@ -0,0 +1,13 @@ +#include "flo_21.h" + +EntryList N(Entrances) = { + [flo_21_ENTRY_0] { -800.0, -46.0, 0.0, 90.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .background = &gBackgroundImage, + .tattle = { MSG_MapTattle_flo_21 }, +}; diff --git a/src/world/dead/area_flo/flo_22/flo_22.h b/src/world/dead/area_flo/flo_22/flo_22.h new file mode 100644 index 00000000000..26a50908523 --- /dev/null +++ b/src/world/dead/area_flo/flo_22/flo_22.h @@ -0,0 +1,33 @@ +// Older version of flo_22 + +#include "dead.h" +#include "common.h" +#include "message_ids.h" +#include "map.h" + +#include "../flo.h" +#include "mapfs/flo_22_shape.h" +#include "mapfs/flo_22_hit.h" + +#include "sprite/npc/Bzzap.h" +#include "sprite/npc/Dayzee.h" + +enum { + NPC_Dummy = 0, // reused as a dummy for tossing badge out of the well + NPC_Bzzap = 0, + NPC_Dayzee = 1, +}; + +enum { + MV_Bzzap_State = MapVar(10), + MV_Dayzee_State = MapVar(11), +}; + +#define NAMESPACE dead_flo_22 + +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupFoliage); +extern EvtScript N(EVS_SetupWell); +extern EvtScript N(EVS_SniffleHint); +extern EvtScript N(EVS_SetupMusic); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/dead/area_flo/flo_22/foliage.c b/src/world/dead/area_flo/flo_22/foliage.c new file mode 100644 index 00000000000..f0940b2213c --- /dev/null +++ b/src/world/dead/area_flo/flo_22/foliage.c @@ -0,0 +1,36 @@ +#include "flo_22.h" + +#include "common/foliage.inc.c" + +FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o45, MODEL_o46, MODEL_o48); + +ShakeTreeConfig N(ShakeTree_Tree1) = { + .trunk = &N(Tree1_TrunkModels), +}; + +BombTrigger N(BombPos_Tree1) = { + .pos = { 93.0f, 0.0f, -89.0f }, + .diameter = 0.0f +}; + +FoliageModelList N(Tree2_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o52, MODEL_o53, MODEL_o55); + +ShakeTreeConfig N(ShakeTree_Tree2) = { + .trunk = &N(Tree2_TrunkModels), +}; + +BombTrigger N(BombPos_Tree2) = { + .pos = { 150.0f, 0.0f, 135.0f }, + .diameter = 0.0f +}; + +EvtScript N(EVS_SetupFoliage) = { + Set(LVar0, Ref(N(ShakeTree_Tree1))) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_o27, 1, 0) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_POINT_BOMB, Ref(N(BombPos_Tree1)), 1, 0) + Set(LVar0, Ref(N(ShakeTree_Tree2))) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_o30, 1, 0) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_POINT_BOMB, Ref(N(BombPos_Tree2)), 1, 0) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_22/main.c b/src/world/dead/area_flo/flo_22/main.c new file mode 100644 index 00000000000..fb4bb796e4b --- /dev/null +++ b/src/world/dead/area_flo/flo_22/main.c @@ -0,0 +1,36 @@ +#include "flo_22.h" +#include "effects.h" + +API_CALLABLE(N(SpawnSunEffect)) { + fx_sun_undeclared(FX_SUN_FROM_RIGHT, 0, 0, 0, 0, 0); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_ExitWalk_flo_03_1) = EVT_EXIT_WALK(60, flo_22_ENTRY_0, "flo_03", flo_03_ENTRY_1); + +EvtScript N(EVS_BindExitTriggers) = { + BindTrigger(Ref(N(EVS_ExitWalk_flo_03_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0) + Return + End +}; + +EvtScript N(EVS_Main) = { + Set(GB_WorldLocation, LOCATION_FLOWER_FIELDS) + Call(SetSpriteShading, SHADING_NONE) + Call(SetCamLeadPlayer, CAM_DEFAULT, FALSE) + EVT_SETUP_CAMERA_DEFAULT() + Call(MakeNpcs, FALSE, Ref(N(DefaultNPCs))) + Exec(N(EVS_SetupFoliage)) + Exec(N(EVS_SetupWell)) + Call(GetEntryID, LVar0) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK) + Set(LVar0, Ref(N(EVS_BindExitTriggers))) + Exec(EnterWalk) + Exec(N(EVS_SniffleHint)) + ExecWait(N(EVS_SetupMusic)) + IfGe(GB_StoryProgress, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(N(SpawnSunEffect)) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_22/music.c b/src/world/dead/area_flo/flo_22/music.c new file mode 100644 index 00000000000..2dda67bc1ff --- /dev/null +++ b/src/world/dead/area_flo/flo_22/music.c @@ -0,0 +1,12 @@ +#include "flo_22.h" + +EvtScript N(EVS_SetupMusic) = { + Switch(GB_StoryProgress) + CaseLt(STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8) + CaseDefault + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EndSwitch + Return + End +}; diff --git a/src/world/dead/area_flo/flo_22/npc.c b/src/world/dead/area_flo/flo_22/npc.c new file mode 100644 index 00000000000..f3671c90031 --- /dev/null +++ b/src/world/dead/area_flo/flo_22/npc.c @@ -0,0 +1,135 @@ +#include "flo_22.h" +#include "sprite/player.h" + +#include "world/common/npc/Dummy.inc.c" +#include "world/common/enemy/Bzzap.h" +#include "world/common/enemy/CrazyDayzee.h" + +EvtScript N(EVS_NpcIdle_Bzzap) = { + Set(MV_Bzzap_State, 0) + Loop(0) + Switch(MV_Bzzap_State) + CaseEq(0) + CaseEq(1) + Call(SetPlayerAnimation, ANIM_Mario1_FallBack) + Set(MV_Bzzap_State, 0) + Call(StartBattle) + EndSwitch + Wait(1) + EndLoop + Return + End +}; + +EvtScript N(EVS_NpcDefeat_Bzzap) = { + Call(GetBattleOutcome, LVar0) + Switch(LVar0) + CaseEq(OUTCOME_PLAYER_WON) + Thread + Wait(25) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + Call(SetNpcFlagBits, NPC_SELF, NPC_FLAG_INVISIBLE, FALSE) + EndThread + Call(DoNpcDefeat) + CaseEq(OUTCOME_PLAYER_LOST) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + CaseEq(OUTCOME_PLAYER_FLED) + Call(SetNpcAnimation, NPC_SELF, ANIM_Bzzap_Anim01) + Call(SetNpcPos, NPC_SELF, 30, 60, 0) + Wait(10) + Call(SetNpcJumpscale, NPC_SELF, 0) + Call(NpcJump0, NPC_SELF, 30, 0, 0, 15) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EndSwitch + Return + End +}; + +EvtScript N(EVS_NpcInit_Bzzap) = { + Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_Bzzap))) + Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_Bzzap))) + Return + End +}; + +EvtScript N(EVS_NpcIdle_Dayzee) = { + Set(MV_Dayzee_State, 0) + Loop(0) + Switch(MV_Dayzee_State) + CaseEq(0) + CaseEq(1) + Call(SetPlayerAnimation, ANIM_Mario1_FallBack) + Set(MV_Dayzee_State, 0) + Call(StartBattle) + EndSwitch + Wait(1) + EndLoop + Return + End +}; + +EvtScript N(EVS_NpcDefeat_Dayzee) = { + Call(GetBattleOutcome, LVar0) + Switch(LVar0) + CaseEq(OUTCOME_PLAYER_WON) + Thread + Wait(25) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + Call(SetNpcFlagBits, NPC_SELF, NPC_FLAG_INVISIBLE, FALSE) + EndThread + Call(DoNpcDefeat) + CaseEq(OUTCOME_PLAYER_LOST) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + CaseEq(OUTCOME_ENEMY_FLED) + Call(SetNpcAnimation, NPC_SELF, ANIM_Dayzee_Anim01) + Wait(10) + Call(SetNpcJumpscale, NPC_SELF, Float(2.0)) + Call(NpcJump0, NPC_SELF, 30, 0, 0, 15) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + CaseEq(OUTCOME_PLAYER_FLED) + Call(SetNpcAnimation, NPC_SELF, ANIM_Dayzee_Anim01) + Wait(10) + Call(SetNpcJumpscale, NPC_SELF, Float(2.0)) + Call(NpcJump0, NPC_SELF, 30, 0, 0, 15) + Call(SetNpcPos, NPC_SELF, NPC_DISPOSE_LOCATION) + EndSwitch + Return + End +}; + +EvtScript N(EVS_NpcInit_Dayzee) = { + Call(BindNpcIdle, NPC_SELF, Ref(N(EVS_NpcIdle_Dayzee))) + Call(BindNpcDefeat, NPC_SELF, Ref(N(EVS_NpcDefeat_Dayzee))) + Return + End +}; + +NpcData N(NpcData_Bzzap) = { + .id = NPC_Bzzap, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_Bzzap), + .settings = &N(NpcSettings_Dummy), + .flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = NO_DROPS, + .animations = BZZAP_ANIMS, +}; + +NpcData N(NpcData_Dayzee) = { + .id = NPC_Dayzee, + .pos = { NPC_DISPOSE_LOCATION }, + .yaw = 270, + .init = &N(EVS_NpcInit_Dayzee), + .settings = &N(NpcSettings_Dummy), + .flags = ENEMY_FLAG_4 | ENEMY_FLAG_IGNORE_WORLD_COLLISION | ENEMY_FLAG_IGNORE_PLAYER_COLLISION | ENEMY_FLAG_IGNORE_ENTITY_COLLISION | ENEMY_FLAG_FLYING, + .drops = CRAZY_DAYZEE_DROPS, + .animations = CRAZY_DAYZEE_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, +}; + +// dead formation IDs differ from the current +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Bzzap), 0x1A17, BTL_FLO_STAGE_02), + NPC_GROUP(N(NpcData_Dayzee), 0x1A0F, BTL_FLO_STAGE_01), + {} +}; diff --git a/src/world/dead/area_flo/flo_22/settings.c b/src/world/dead/area_flo/flo_22/settings.c new file mode 100644 index 00000000000..a4412e61bde --- /dev/null +++ b/src/world/dead/area_flo/flo_22/settings.c @@ -0,0 +1,13 @@ +#include "flo_22.h" + +EntryList N(Entrances) = { + [flo_22_ENTRY_0] { -230.0, 0.0, 0.0, 90.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .background = &gBackgroundImage, + .tattle = { MSG_MapTattle_flo_22 }, +}; diff --git a/src/world/dead/area_flo/flo_22/well.c b/src/world/dead/area_flo/flo_22/well.c new file mode 100644 index 00000000000..477eee2ee3a --- /dev/null +++ b/src/world/dead/area_flo/flo_22/well.c @@ -0,0 +1,135 @@ +#include "flo_22.h" +#include "sprite/player.h" + +API_CALLABLE(N(UnusedCallback)) { + return ApiStatus_DONE2; +} + +s32 N(BerryList)[] = { + ITEM_RED_BERRY, + ITEM_BLUE_BERRY, + ITEM_YELLOW_BERRY, + ITEM_BUBBLE_BERRY, + ITEM_NONE +}; + +EvtScript N(EVS_SniffleHint) = { + Call(DisablePlayerInput, TRUE) + Wait(20) + Call(ShowMessageAtScreenPos, MSG_CH6_00DB, 300, 120) + Wait(10) + Call(DisablePlayerInput, FALSE) + Return + End +}; + +EvtScript N(EVS_TossItemIntoWell) = { + Call(SetPlayerAnimation, ANIM_MarioW1_Toss) + Thread + Call(GetPlayerPos, LVar2, LVar3, LVar4) + Set(LVar6, 35) + Set(LVar5, 5) + Call(MakeItemEntity, LVar8, LVar2, LVar6, 0, ITEM_SPAWN_MODE_DECORATION, 0) + Set(LVar7, LVar0) + Call(MakeLerp, LVar2, 35, 20, EASING_CUBIC_OUT) + Loop(0) + Call(UpdateLerp) + Call(SetItemPos, LVar7, LVar0, LVar6, 0) + Add(LVar6, LVar5) + Add(LVar5, -1) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + Call(RemoveItemEntity, LVar7) + EndThread + Wait(10) + Call(PlaySoundAt, SOUND_FALL_LONG, SOUND_SPACE_DEFAULT, 35, 0, 0) + Wait(5) + Call(SetPlayerAnimation, ANIM_Mario1_Idle) + Wait(10) + Return + End +}; + +EvtScript N(EVS_OnInteract_Well) = { + Call(DisablePlayerInput, TRUE) + Call(DisablePlayerInput, FALSE) + Call(ShowConsumableChoicePopup) + Call(CloseChoicePopup) + Call(DisablePlayerInput, TRUE) + Set(LVar8, LVar0) + Switch(LVar8) + CaseLe(-1) + CaseLe(ITEM_NONE) + Call(ShowMessageAtScreenPos, MSG_Menus_Inspect_Well, 160, 40) + CaseEq(ITEM_BLUE_BERRY) + ExecWait(N(EVS_TossItemIntoWell)) + Call(RemoveItemAt, LVar1) + IfEq(GF_FLO22_ThrewBlueBerryDownWell, FALSE) + Call(ShowMessageAtWorldPos, MSG_CH6_00DD, 35, 35, 0) + Set(GF_FLO22_ThrewBlueBerryDownWell, TRUE) + Call(MakeItemEntity, ITEM_FLOWER_SAVER_B, -35, 0, 0, ITEM_SPAWN_MODE_KEY, GF_FLO22_Item_FlowerSaverB) + Set(LVar7, LVar0) + Call(SetNpcFlagBits, NPC_Dummy, NPC_FLAG_INVISIBLE, TRUE) + Call(SetNpcFlagBits, NPC_Dummy, NPC_FLAG_HAS_SHADOW, FALSE) + Call(SetNpcPos, NPC_Dummy, 35, 0, 0) + Call(SetNpcJumpscale, NPC_Dummy, Float(1.0)) + Thread + Call(NpcJump0, NPC_Dummy, -53, 0, 0, 25) + Call(NpcJump0, NPC_Dummy, -73, 0, 0, 15) + Call(NpcJump0, NPC_Dummy, -83, 0, 0, 8) + EndThread + Loop(53) + Call(GetNpcPos, NPC_Dummy, LVar1, LVar2, LVar3) + Call(SetItemPos, LVar7, LVar1, LVar2, LVar3) + Wait(1) + EndLoop + Call(SetNpcPos, NPC_Dummy, NPC_DISPOSE_LOCATION) + Call(SetNpcFlagBits, NPC_Dummy, NPC_FLAG_INVISIBLE, FALSE) + Call(SetNpcFlagBits, NPC_Dummy, NPC_FLAG_HAS_SHADOW, TRUE) + Else + Call(ShowMessageAtWorldPos, MSG_CH6_00DE, 35, 35, 0) + EndIf + CaseDefault + ExecWait(N(EVS_TossItemIntoWell)) + Call(RemoveItemAt, LVar1) + Call(ShowMessageAtWorldPos, MSG_CH6_00DC, 35, 35, 0) + Call(RandInt, 1, LVar1) + IfEq(LVar1, 0) + Call(SetNpcJumpscale, NPC_Bzzap, Float(0.0)) + Call(NpcFacePlayer, NPC_Bzzap, 0) + Wait(1) + Call(SetNpcPos, NPC_Bzzap, 30, 0, 0) + Call(SetNpcAnimation, NPC_Bzzap, ANIM_Bzzap_Anim01) + Call(NpcJump0, NPC_Bzzap, 30, 60, 0, 20) + Wait(10) + Call(SetNpcAnimation, NPC_Bzzap, ANIM_Bzzap_Anim04) + Call(GetPlayerPos, LVar0, LVar1, LVar2) + Add(LVar1, 20) + Call(NpcJump0, NPC_Bzzap, LVar0, LVar1, LVar2, 5) + Set(MV_Bzzap_State, 1) + Else + Call(SetNpcPos, NPC_Dayzee, 30, 0, 0) + Call(SetNpcAnimation, NPC_Dayzee, ANIM_Dayzee_Anim0E) + Call(GetPlayerPos, LVar0, LVar1, LVar2) + Add(LVar1, 20) + Call(SetNpcJumpscale, NPC_Dayzee, Float(2.0)) + Call(NpcJump0, NPC_Dayzee, LVar0, LVar1, LVar2, 20) + Set(MV_Dayzee_State, 1) + EndIf + EndSwitch + Call(DisablePlayerInput, FALSE) + Return + End +}; + +EvtScript N(EVS_SetupWell) = { + BindPadlock(Ref(N(EVS_OnInteract_Well)), TRIGGER_WALL_PRESS_A, COLLIDER_o5, Ref(N(BerryList)), 0, 1) + IfEq(GF_FLO22_ThrewBlueBerryDownWell, TRUE) + Call(MakeItemEntity, ITEM_FLOWER_SAVER_B, -83, 0, 0, ITEM_SPAWN_MODE_KEY, GF_FLO22_Item_FlowerSaverB) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_23/entity.c b/src/world/dead/area_flo/flo_23/entity.c new file mode 100644 index 00000000000..b74f11efe55 --- /dev/null +++ b/src/world/dead/area_flo/flo_23/entity.c @@ -0,0 +1,13 @@ +#include "flo_23.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + Call(MakeEntity, Ref(Entity_BrickBlock), 100, 60, 5, 0, MAKE_ENTITY_END) + Call(MakeEntity, Ref(Entity_HiddenYellowBlock), 100, 145, 0, 0, ITEM_SHOOTING_STAR, MAKE_ENTITY_END) + Call(AssignBlockFlag, GF_FLO23_HiddenItem_ShootingStar) + Call(MakeEntity, Ref(Entity_HiddenYellowBlock), 25, 60, 0, 0, ITEM_COIN, MAKE_ENTITY_END) + Call(AssignBlockFlag, GF_FLO23_HiddenItem_Coin) + Call(MakeEntity, Ref(Entity_SimpleSpring), -50, 0, 0, 90, 60, MAKE_ENTITY_END) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_23/flo_23.h b/src/world/dead/area_flo/flo_23/flo_23.h new file mode 100644 index 00000000000..51e7fd4a96b --- /dev/null +++ b/src/world/dead/area_flo/flo_23/flo_23.h @@ -0,0 +1,23 @@ +// Older version of flo_23 + +#include "dead.h" +#include "common.h" +#include "message_ids.h" +#include "map.h" + +#include "../flo.h" +#include "mapfs/flo_23_shape.h" +#include "mapfs/flo_23_hit.h" + +enum { + NPC_Spiny_01 = 0, + NPC_Spiny_02 = 1, + NPC_GateFlower = 2, +}; + +#define NAMESPACE dead_flo_23 + +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/dead/area_flo/flo_23/main.c b/src/world/dead/area_flo/flo_23/main.c new file mode 100644 index 00000000000..30b421b9c0c --- /dev/null +++ b/src/world/dead/area_flo/flo_23/main.c @@ -0,0 +1,39 @@ +#include "flo_23.h" +#include "effects.h" + +#include "world/area_flo/common/FlowerSpawnRegion.inc.c" + +API_CALLABLE(N(SpawnSunEffect)) { + fx_sun_undeclared(FX_SUN_FROM_LEFT, 0, 0, 0, 0, 0); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_ExitWalk_flo_00_2) = EVT_EXIT_WALK(60, flo_23_ENTRY_0, "flo_00", flo_00_ENTRY_2); +EvtScript N(EVS_ExitWalk_flo_11_0) = EVT_EXIT_WALK(60, flo_23_ENTRY_1, "flo_11", flo_11_ENTRY_0); + +EvtScript N(EVS_BindExitTriggers) = { + BindTrigger(Ref(N(EVS_ExitWalk_flo_11_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0) + BindTrigger(Ref(N(EVS_ExitWalk_flo_00_2)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0) + Return + End +}; + +EvtScript N(EVS_Main) = { + Set(GB_WorldLocation, LOCATION_FLOWER_FIELDS) + Call(SetSpriteShading, SHADING_NONE) + Call(SetCamLeadPlayer, CAM_DEFAULT, FALSE) + EVT_SETUP_CAMERA_DEFAULT() + Call(MakeNpcs, FALSE, Ref(N(DefaultNPCs))) + ExecWait(N(EVS_MakeEntities)) + EVT_FLOWER_SPAWN_REGION( -290, -190, 480, -90, 0) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilite, COLLIDER_FLAGS_UPPER_MASK) + Set(LVar0, Ref(N(EVS_BindExitTriggers))) + Exec(EnterWalk) + ExecWait(N(EVS_SetupMusic)) + IfGe(GB_StoryProgress, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(N(SpawnSunEffect)) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_23/music.c b/src/world/dead/area_flo/flo_23/music.c new file mode 100644 index 00000000000..1d6e4322b52 --- /dev/null +++ b/src/world/dead/area_flo/flo_23/music.c @@ -0,0 +1,12 @@ +#include "flo_23.h" + +EvtScript N(EVS_SetupMusic) = { + Switch(GB_StoryProgress) + CaseLt(STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8) + CaseDefault + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EndSwitch + Return + End +}; diff --git a/src/world/dead/area_flo/flo_23/npc.c b/src/world/dead/area_flo/flo_23/npc.c new file mode 100644 index 00000000000..d283118c5fb --- /dev/null +++ b/src/world/dead/area_flo/flo_23/npc.c @@ -0,0 +1,223 @@ +#include "flo_23.h" +#include "sprite/player.h" + +#include "world/common/npc/GateFlower.inc.c" + +#include "world/common/complete/NormalItemChoice.inc.c" + +#include "world/common/enemy/Spiny.inc.c" + +BSS s32 N(FlowerGuard_ItemChoiceList)[ITEM_NUM_CONSUMABLES + 1]; +#include "world/area_flo/common/ItemChoice_FlowerGuard.inc.c" + +EvtScript N(EVS_NpcInteract_GateFlower) = { + Call(DisablePlayerInput, TRUE) + IfEq(GF_FLO23_GaveBlueBerry, FALSE) + Call(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) + Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamDistance, CAM_DEFAULT, 350) + Call(SetCamPitch, CAM_DEFAULT, Float(18.5), Float(-7.5)) + Call(SetCamSpeed, CAM_DEFAULT, Float(4.0 / DT)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_Talk, ANIM_GateFlower_Blue_Idle, 0, MSG_CH6_0049) + Call(SetPlayerAnimation, ANIM_Mario1_Thinking) + Call(N(FlowerGuard_MakeItemList)) + EVT_CHOOSE_CONSUMABLE_FROM(N(FlowerGuard_ItemChoiceList), 2) + Switch(LVar0) + CaseLe(0) + Call(SetPlayerAnimation, ANIM_Mario1_Still) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_Talk, ANIM_GateFlower_Blue_Idle, 0, MSG_CH6_004A) + CaseDefault + Set(LVar8, LVar0) + Call(N(FlowerGuard_JudgeItemTastiness), LVar0) + Call(MakeItemEntity, LVar8, 385, 20, -34, ITEM_SPAWN_MODE_DECORATION, 0) + Set(LVar7, LVar0) + Call(PlaySoundAtNpc, NPC_SELF, SOUND_EAT_OR_DRINK, SOUND_SPACE_DEFAULT) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_Eat) + Wait(20 * DT) + Call(RemoveItemEntity, LVar7) + Switch(LVar8) + CaseEq(158) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_Chew, ANIM_GateFlower_Blue_Idle, 0, MSG_CH6_004D) + Call(PlaySoundAtNpc, NPC_SELF, SOUND_APPROVE, SOUND_SPACE_DEFAULT) + Call(EndSpeech, NPC_SELF, ANIM_GateFlower_Blue_HappyTalk, ANIM_GateFlower_Blue_HappyIdle, 0) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_OpenGate) + Call(PlaySoundAtCollider, COLLIDER_o95, SOUND_METAL_GATE_OPEN, SOUND_SPACE_DEFAULT) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o95, COLLIDER_FLAGS_UPPER_MASK) + Call(MakeLerp, 0, 100, 30, EASING_QUADRATIC_IN) + Loop(0) + Call(UpdateLerp) + SetF(LVar8, LVar0) + SetF(LVar9, LVar0) + MulF(LVar8, Float(0.5)) + MulF(LVar9, Float(1.2)) + Call(RotateModel, MODEL_o86, LVar8, 0, -1, 0) + Call(RotateModel, MODEL_o87, LVar8, 0, -1, 0) + Call(RotateModel, MODEL_o88, LVar8, 0, -1, 0) + Call(RotateModel, MODEL_o83, LVar9, 0, 1, 0) + Call(RotateModel, MODEL_o84, LVar9, 0, 1, 0) + Call(RotateModel, MODEL_o85, LVar9, 0, 1, 0) + Wait(1) + IfNe(LVar1, 1) + BreakLoop + EndIf + EndLoop + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_HappyDance) + Set(GF_FLO23_GaveBlueBerry, TRUE) + CaseEq(159) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_Chew, ANIM_GateFlower_Blue_Idle, 0, MSG_CH6_004C) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_Idle) + CaseEq(160) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_Chew, ANIM_GateFlower_Blue_Idle, 0, MSG_CH6_004C) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_Idle) + CaseDefault + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_Chew, ANIM_GateFlower_Blue_Idle, 0, MSG_CH6_004B) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_Disgust) + Call(PlaySoundAtNpc, NPC_SELF, SOUND_SPIT_OUT, SOUND_SPACE_DEFAULT) + Call(MakeItemEntity, LVar8, 375, 20, 0, ITEM_SPAWN_MODE_DECORATION, 0) + Set(LVar7, LVar0) + Wait(5 * DT) + Call(GetAngleToPlayer, NPC_SELF, LVar0) + IfLt(LVar0, 180) + Call(MakeLerp, 0, 100, 7, EASING_LINEAR) + Loop(0) + Call(UpdateLerp) + SetF(LVar2, Float(-0.5)) + SetF(LVar3, Float(-0.2)) + SetF(LVar4, Float(0.9)) + MulF(LVar2, LVar0) + MulF(LVar3, LVar0) + MulF(LVar4, LVar0) + AddF(LVar2, Float(380.0)) + AddF(LVar3, Float(15.0)) + AddF(LVar4, Float(-30.0)) + Call(N(FlowerGuard_SetItemEntityPosition), LVar7, LVar2, LVar3, LVar4) + Wait(1) + IfNe(LVar1, 1) + BreakLoop + EndIf + EndLoop + Else + Call(MakeLerp, 0, 100, 7, EASING_LINEAR) + Loop(0) + Call(UpdateLerp) + SetF(LVar2, Float(0.5)) + SetF(LVar3, Float(-0.2)) + SetF(LVar4, Float(1.0)) + MulF(LVar2, LVar0) + MulF(LVar3, LVar0) + MulF(LVar4, LVar0) + AddF(LVar2, Float(390.0)) + AddF(LVar3, Float(15.0)) + AddF(LVar4, Float(-30.0)) + Call(N(FlowerGuard_SetItemEntityPosition), LVar7, LVar2, LVar3, LVar4) + Wait(1) + IfNe(LVar1, 1) + BreakLoop + EndIf + EndLoop + EndIf + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_Idle) + Call(RemoveItemEntity, LVar7) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_Idle) + Call(EndSpeech, NPC_SELF, ANIM_GateFlower_Blue_Talk, ANIM_GateFlower_Blue_Idle, 0) + EndSwitch + EndSwitch + Thread + Call(ResetCam, CAM_DEFAULT, Float(6.0 / DT)) + EndThread + Wait(10 * DT) + Else + IfLt(GB_StoryProgress, STORY_CH6_STAR_SPIRIT_RESCUED) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_HappyTalk, ANIM_GateFlower_Blue_HappyIdle, 0, MSG_CH6_004E) + Else + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Blue_HappyTalk, ANIM_GateFlower_Blue_HappyIdle, 0, MSG_CH6_004F) + EndIf + EndIf + Call(DisablePlayerInput, FALSE) + Unbind + Return + End +}; + +EvtScript N(EVS_NpcInit_GateFlower) = { + Call(BindNpcInteract, NPC_SELF, Ref(N(EVS_NpcInteract_GateFlower))) + IfEq(GF_FLO23_GaveBlueBerry, TRUE) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Blue_HappyDance) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o95, COLLIDER_FLAGS_UPPER_MASK) + Call(RotateModel, MODEL_o86, 50, 0, -1, 0) + Call(RotateModel, MODEL_o87, 50, 0, -1, 0) + Call(RotateModel, MODEL_o88, 50, 0, -1, 0) + Call(RotateModel, MODEL_o83, 120, 0, 1, 0) + Call(RotateModel, MODEL_o84, 120, 0, 1, 0) + Call(RotateModel, MODEL_o85, 120, 0, 1, 0) + EndIf + Return + End +}; + +NpcData N(NpcData_GateFlower) = { + .id = NPC_GateFlower, + .pos = { 385.0f, 0.0f, -35.0f }, + .yaw = 90, + .init = &N(EVS_NpcInit_GateFlower), + .settings = &N(NpcSettings_GateFlower), + .flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, + .drops = NO_DROPS, + .animations = GATE_FLOWER_BLUE_ANIMS, + .tattle = MSG_NpcTattle_BlueGateFlower, +}; + +NpcData N(NpcData_Spiny_01) = { + .id = NPC_Spiny_01, + .pos = { 80.0f, 0.0f, 0.0f }, + .yaw = 90, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 80, 0, 0 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 80, 0, 0 }, + .detectSize = { 200 }, + } + }, + .settings = &N(NpcSettings_Spiny), + .flags = ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, + .drops = SPINY_DROPS, + .animations = SPINY_ANIMS, +}; + +NpcData N(NpcData_Spiny_02) = { + .id = NPC_Spiny_02, + .pos = { -320.0f, 0.0f, 0.0f }, + .yaw = 270, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -320, 0, 0 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { -320, 0, 0 }, + .detectSize = { 200 }, + } + }, + .settings = &N(NpcSettings_Spiny), + .flags = ENEMY_FLAG_FLYING | ENEMY_FLAG_NO_SHADOW_RAYCAST, + .drops = SPINY_DROPS, + .animations = SPINY_ANIMS, +}; + +// dead formation IDs differ from the current +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_Spiny_01), 0x1A0C, BTL_FLO_STAGE_02), + NPC_GROUP(N(NpcData_Spiny_02), 0x1A0D, BTL_FLO_STAGE_02), + NPC_GROUP(N(NpcData_GateFlower)), + {} +}; diff --git a/src/world/dead/area_flo/flo_23/settings.c b/src/world/dead/area_flo/flo_23/settings.c new file mode 100644 index 00000000000..ea05b906539 --- /dev/null +++ b/src/world/dead/area_flo/flo_23/settings.c @@ -0,0 +1,14 @@ +#include "flo_23.h" + +EntryList N(Entrances) = { + [flo_23_ENTRY_0] { 470.0, 0.0, 0.0, 270.0 }, + [flo_23_ENTRY_1] { -470.0, 0.0, 0.0, 90.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .background = &gBackgroundImage, + .tattle = { MSG_MapTattle_flo_23 }, +}; diff --git a/src/world/dead/area_flo/flo_24/entity.c b/src/world/dead/area_flo/flo_24/entity.c new file mode 100644 index 00000000000..5b894d43021 --- /dev/null +++ b/src/world/dead/area_flo/flo_24/entity.c @@ -0,0 +1,13 @@ +#include "flo_24.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + Call(MakeEntity, Ref(Entity_YellowBlock), -325, 60, -140, 0, ITEM_DIZZY_DIAL, MAKE_ENTITY_END) + Call(AssignBlockFlag, GF_FLO24_ItemBlock_DizzyDial) + Call(MakeEntity, Ref(Entity_HiddenYellowBlock), 325, 60, -140, 0, ITEM_MAPLE_SYRUP, MAKE_ENTITY_END) + Call(AssignBlockFlag, GF_FLO24_HiddenItem_MapleSyrup) + Call(MakeEntity, Ref(Entity_HiddenPanel), 335, 0, -160, 0, MODEL_o136, MAKE_ENTITY_END) + Call(AssignPanelFlag, GF_FLO24_HiddenPanel) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_24/flo_24.h b/src/world/dead/area_flo/flo_24/flo_24.h new file mode 100644 index 00000000000..66040100ec2 --- /dev/null +++ b/src/world/dead/area_flo/flo_24/flo_24.h @@ -0,0 +1,20 @@ +// Older version of flo_24 + +#include "dead.h" +#include "common.h" +#include "message_ids.h" +#include "map.h" + +#include "../flo.h" +#include "mapfs/flo_24_shape.h" +#include "mapfs/flo_24_hit.h" + +#define NAMESPACE dead_flo_24 + +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); + +extern EvtScript N(EVS_SetupFoliage); +extern EvtScript N(EVS_SetupWater); +extern EvtScript N(EVS_Scene_FillWithWater); diff --git a/src/world/dead/area_flo/flo_24/foliage.c b/src/world/dead/area_flo/flo_24/foliage.c new file mode 100644 index 00000000000..30d443f8f8e --- /dev/null +++ b/src/world/dead/area_flo/flo_24/foliage.c @@ -0,0 +1,45 @@ +#include "flo_24.h" + +#include "common/foliage.inc.c" + +FoliageModelList N(Tree1_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o125, MODEL_o126, MODEL_o127, MODEL_o128, MODEL_o129, MODEL_o130); +FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o124); + +FoliageDropList N(Tree1_Drops) = { + .count = 2, + .drops = { + { + .itemID = ITEM_BUBBLE_BERRY, + .pos = { -38, 87, -156 }, + .spawnMode = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS, + .spawnFlag = AF_FLO_TreeDrop_BubbleBerry1, + }, + { + .itemID = ITEM_BUBBLE_BERRY, + .pos = { 39, 65, -208 }, + .spawnMode = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS, + .spawnFlag = AF_FLO_TreeDrop_BubbleBerry2, + }, + } +}; + +ShakeTreeConfig N(ShakeTree_Tree1) = { + .leaves = &N(Tree1_LeafModels), + .trunk = &N(Tree1_TrunkModels), + .drops = &N(Tree1_Drops), +}; + +BombTrigger N(BombPos_Tree1) = { + .pos = { 1.0f, 0.0f, -192.0f }, + .diameter = 0.0f +}; + +EvtScript N(EVS_SetupFoliage) = { + Set(AF_FLO_TreeDrop_BubbleBerry1, FALSE) + Set(AF_FLO_TreeDrop_BubbleBerry2, FALSE) + Set(LVar0, Ref(N(ShakeTree_Tree1))) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_o124, 1, 0) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_POINT_BOMB, Ref(N(BombPos_Tree1)), 1, 0) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_24/main.c b/src/world/dead/area_flo/flo_24/main.c new file mode 100644 index 00000000000..65a1355f308 --- /dev/null +++ b/src/world/dead/area_flo/flo_24/main.c @@ -0,0 +1,56 @@ +#include "flo_24.h" +#include "effects.h" + +#include "world/area_flo/common/FlowerSpawnRegion.inc.c" + +API_CALLABLE(N(SpawnSunEffect)) { + fx_sun_undeclared(FX_SUN_FROM_RIGHT, 0, 0, 0, 0, 0); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_ExitWalk_flo_08_1) = EVT_EXIT_WALK(60, flo_24_ENTRY_0, "flo_08", flo_08_ENTRY_1); +EvtScript N(EVS_ExitWalk_flo_10_0) = EVT_EXIT_WALK(60, flo_24_ENTRY_1, "flo_10", flo_10_ENTRY_0); + +EvtScript N(EVS_BindExitTriggers) = { + BindTrigger(Ref(N(EVS_ExitWalk_flo_08_1)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0) + BindTrigger(Ref(N(EVS_ExitWalk_flo_10_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0) + Return + End +}; + +EvtScript N(EVS_Main) = { + Set(GB_WorldLocation, LOCATION_FLOWER_FIELDS) + Call(SetSpriteShading, SHADING_NONE) + Call(SetCamLeadPlayer, CAM_DEFAULT, FALSE) + EVT_SETUP_CAMERA_DEFAULT() + ExecWait(N(EVS_MakeEntities)) + Call(MakeTransformGroup, MODEL_g58) + Call(MakeTransformGroup, MODEL_g73) + Exec(N(EVS_SetupFoliage)) + Exec(N(EVS_SetupWater)) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o177, SURFACE_TYPE_DOCK_WALL) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o178, SURFACE_TYPE_DOCK_WALL) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o179, SURFACE_TYPE_DOCK_WALL) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o177, COLLIDER_FLAG_DOCK_WALL) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o178, COLLIDER_FLAG_DOCK_WALL) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o179, COLLIDER_FLAG_DOCK_WALL) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_SURFACE, COLLIDER_o176, SURFACE_TYPE_WATER) + EVT_FLOWER_SPAWN_REGION( -480, -350, -65, -260, 0) + EVT_FLOWER_SPAWN_REGION( 100, -350, 480, -260, 0) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilite, COLLIDER_FLAGS_UPPER_MASK) + Call(GetEntryID, LVar0) + IfEq(LVar0, flo_24_ENTRY_2) + Exec(N(EVS_Scene_FillWithWater)) + Exec(N(EVS_BindExitTriggers)) + Else + Set(LVar0, Ref(N(EVS_BindExitTriggers))) + Exec(EnterWalk) + EndIf + ExecWait(N(EVS_SetupMusic)) + IfGe(GB_StoryProgress, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(N(SpawnSunEffect)) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_24/music.c b/src/world/dead/area_flo/flo_24/music.c new file mode 100644 index 00000000000..9f5dca0e254 --- /dev/null +++ b/src/world/dead/area_flo/flo_24/music.c @@ -0,0 +1,14 @@ +#include "flo_24.h" + +EvtScript N(EVS_SetupMusic) = { + IfLt(GB_StoryProgress, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8) + Else + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EndIf + IfGe(GB_StoryProgress, STORY_CH6_FILLED_SPRING_WITH_WATER) + Call(PlaySound, SOUND_LOOP_FLO_WATER_FLOW_2) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_24/settings.c b/src/world/dead/area_flo/flo_24/settings.c new file mode 100644 index 00000000000..36ea8f31be8 --- /dev/null +++ b/src/world/dead/area_flo/flo_24/settings.c @@ -0,0 +1,15 @@ +#include "flo_24.h" + +EntryList N(Entrances) = { + [flo_24_ENTRY_0] { -455.0, 0.0, 0.0, 90.0 }, + [flo_24_ENTRY_1] { 455.0, 0.0, 0.0, 270.0 }, + [flo_24_ENTRY_2] { 455.0, 0.0, 0.0, 270.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .background = &gBackgroundImage, + .tattle = { MSG_MapTattle_flo_24 }, +}; diff --git a/src/world/dead/area_flo/flo_24/water.c b/src/world/dead/area_flo/flo_24/water.c new file mode 100644 index 00000000000..28b6f8557d0 --- /dev/null +++ b/src/world/dead/area_flo/flo_24/water.c @@ -0,0 +1,113 @@ +#include "flo_24.h" + +#include "world/common/atomic/TexturePan.inc.c" + +EvtScript N(EVS_Scene_FillWithWater) = { + Call(DisablePlayerInput, TRUE) + Call(TranslateGroup, MODEL_g73, 0, 45, 0) + Call(UseSettingsFrom, CAM_DEFAULT, 170, 0, 160) + Call(SetPanTarget, CAM_DEFAULT, 170, -90, 160) + Call(SetCamDistance, CAM_DEFAULT, 800) + Call(SetCamPitch, CAM_DEFAULT, Float(18.5), Float(-7.5)) + Call(SetCamPosA, CAM_DEFAULT, Float(-300.0), Float(200.0)) + Call(SetCamPosB, CAM_DEFAULT, Float(300.0), Float(-150.0)) + Call(SetCamSpeed, CAM_DEFAULT, Float(90.0)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(PlaySound, SOUND_LOOP_FLO_FILL_WATER_POOL) + //@bug thread is never terminated + Thread + Call(MakeLerp, 80, 90, 10, EASING_LINEAR) + Label(0) + Call(UpdateLerp) + Call(RotateModel, MODEL_o219, LVar0, 1, 0, 0) + Call(RotateModel, MODEL_o220, LVar0, 1, 0, 0) + IfEq(LVar1, 1) + Wait(1) + Goto(0) + EndIf + // should end thread here + //@bug thread is never terminated + Thread + Call(MakeLerp, 45, 100, 150, EASING_LINEAR) + Loop(0) + Call(UpdateLerp) + Call(TranslateGroup, MODEL_g73, 0, LVar0, 0) + Wait(1) + IfEq(LVar1, 0) + BreakLoop + EndIf + EndLoop + // should end thread here + Wait(30) + Set(GB_StoryProgress, STORY_CH6_FILLED_SPRING_WITH_WATER) + Call(GotoMap, Ref("flo_10"), flo_10_ENTRY_2) + Wait(100) + Return + End +}; + +EvtScript N(EVS_SetupWater) = { + IfLt(GB_StoryProgress, STORY_CH6_FILLED_SPRING_WITH_WATER) + Call(EnableGroup, MODEL_water1, FALSE) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_g58, COLLIDER_FLAGS_UPPER_MASK) + Else + Call(EnableGroup, MODEL_g60, FALSE) + EndIf + Call(GetEntryID, LVar0) + IfNe(LVar0, flo_24_ENTRY_2) + Call(EnableGroup, MODEL_g67, FALSE) + EndIf + Call(EnableTexPanning, MODEL_o165, TRUE) + Call(EnableTexPanning, MODEL_o215, TRUE) + Call(EnableTexPanning, MODEL_o166, TRUE) + Call(EnableTexPanning, MODEL_o216, TRUE) + Call(EnableTexPanning, MODEL_o189, TRUE) + Call(EnableTexPanning, MODEL_o192, TRUE) + Call(EnableTexPanning, MODEL_o219, TRUE) + Call(EnableTexPanning, MODEL_o220, TRUE) + Call(EnableTexPanning, MODEL_o218, TRUE) + Thread + TEX_PAN_PARAMS_ID(TEX_PANNER_1) + TEX_PAN_PARAMS_STEP( 140, -80, -70, 100) + TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1) + TEX_PAN_PARAMS_INIT( 0, 0, 0, 0) + Exec(N(EVS_UpdateTexturePan)) + EndThread + Thread + TEX_PAN_PARAMS_ID(TEX_PANNER_2) + TEX_PAN_PARAMS_STEP( -70, 100, 100, -40) + TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1) + TEX_PAN_PARAMS_INIT( 0, 0, 0, 0) + Exec(N(EVS_UpdateTexturePan)) + EndThread + Thread + TEX_PAN_PARAMS_ID(TEX_PANNER_3) + TEX_PAN_PARAMS_STEP( 0, -800, 0, 0) + TEX_PAN_PARAMS_FREQ( 0, 1, 0, 0) + TEX_PAN_PARAMS_INIT( 0, 0, 0, 0) + Exec(N(EVS_UpdateTexturePan)) + EndThread + Thread + TEX_PAN_PARAMS_ID(TEX_PANNER_4) + TEX_PAN_PARAMS_STEP( 0, -800, -200, 100) + TEX_PAN_PARAMS_FREQ( 0, 1, 1, 1) + TEX_PAN_PARAMS_INIT( 0, 0, 0, 0) + Exec(N(EVS_UpdateTexturePan)) + EndThread + Thread + TEX_PAN_PARAMS_ID(TEX_PANNER_5) + TEX_PAN_PARAMS_STEP( 0,-2500, 0, 0) + TEX_PAN_PARAMS_FREQ( 0, 1, 0, 0) + TEX_PAN_PARAMS_INIT( 0, 0, 0, 0) + Exec(N(EVS_UpdateTexturePan)) + EndThread + Thread + TEX_PAN_PARAMS_ID(TEX_PANNER_6) + TEX_PAN_PARAMS_STEP( 0,-2500, -200, 100) + TEX_PAN_PARAMS_FREQ( 1, 1, 1, 1) + TEX_PAN_PARAMS_INIT( 0, 0, 0, 0) + Exec(N(EVS_UpdateTexturePan)) + EndThread + Return + End +}; diff --git a/src/world/dead/area_flo/flo_25/entity.c b/src/world/dead/area_flo/flo_25/entity.c new file mode 100644 index 00000000000..d376b9b7433 --- /dev/null +++ b/src/world/dead/area_flo/flo_25/entity.c @@ -0,0 +1,9 @@ +#include "flo_25.h" +#include "entity.h" + +EvtScript N(EVS_MakeEntities) = { + Call(MakeEntity, Ref(Entity_HiddenPanel), -390, 0, 0, 0, MODEL_o3, MAKE_ENTITY_END) + Call(AssignPanelFlag, GF_FLO25_HiddenPanel) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_25/flo_25.h b/src/world/dead/area_flo/flo_25/flo_25.h new file mode 100644 index 00000000000..f70031116b7 --- /dev/null +++ b/src/world/dead/area_flo/flo_25/flo_25.h @@ -0,0 +1,26 @@ +// Older version of flo_25 + +#include "dead.h" +#include "common.h" +#include "message_ids.h" +#include "map.h" + +#include "../flo.h" +#include "mapfs/flo_25_shape.h" +#include "mapfs/flo_25_hit.h" + +enum { + NPC_GateFlower = 0, + NPC_RuffPuff = 1, + NPC_Bzzap = 2, +}; + +#define NAMESPACE dead_flo_25 + +extern EvtScript N(EVS_Main); +extern EvtScript N(EVS_SetupMusic); +extern EvtScript N(EVS_MakeEntities); +extern EvtScript N(EVS_SetupFoliage); +extern EvtScript N(EVS_SetupVines); + +extern NpcGroupList N(DefaultNPCs); diff --git a/src/world/dead/area_flo/flo_25/foliage.c b/src/world/dead/area_flo/flo_25/foliage.c new file mode 100644 index 00000000000..8be6466c87a --- /dev/null +++ b/src/world/dead/area_flo/flo_25/foliage.c @@ -0,0 +1,45 @@ +#include "flo_25.h" + +#include "common/foliage.inc.c" + +FoliageModelList N(Tree1_LeafModels) = FOLIAGE_MODEL_LIST(MODEL_o43, MODEL_o44, MODEL_o45); +FoliageModelList N(Tree1_TrunkModels) = FOLIAGE_MODEL_LIST(MODEL_o42); + +FoliageDropList N(Tree1_Drops) = { + .count = 2, + .drops = { + { + .itemID = ITEM_YELLOW_BERRY, + .pos = { -432, 84, -44 }, + .spawnMode = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS, + .spawnFlag = AF_FLO_TreeDrop_YellowBerry1, + }, + { + .itemID = ITEM_YELLOW_BERRY, + .pos = { -346, 72, -114 }, + .spawnMode = ITEM_SPAWN_MODE_FALL_SPAWN_ALWAYS, + .spawnFlag = AF_FLO_TreeDrop_YellowBerry2, + }, + } +}; + +ShakeTreeConfig N(ShakeTree_Tree1) = { + .leaves = &N(Tree1_LeafModels), + .trunk = &N(Tree1_TrunkModels), + .drops = &N(Tree1_Drops), +}; + +BombTrigger N(BombPos_Tree1) = { + .pos = { -388.0f, 0.0f, -92.0f }, + .diameter = 0.0f +}; + +EvtScript N(EVS_SetupFoliage) = { + Set(AF_FLO_TreeDrop_YellowBerry1, FALSE) + Set(AF_FLO_TreeDrop_YellowBerry2, FALSE) + Set(LVar0, Ref(N(ShakeTree_Tree1))) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_WALL_HAMMER, COLLIDER_o42, 1, 0) + BindTrigger(Ref(N(EVS_ShakeTree)), TRIGGER_POINT_BOMB, Ref(N(BombPos_Tree1)), 1, 0) + Return + End +}; diff --git a/src/world/dead/area_flo/flo_25/main.c b/src/world/dead/area_flo/flo_25/main.c new file mode 100644 index 00000000000..7e0553434d4 --- /dev/null +++ b/src/world/dead/area_flo/flo_25/main.c @@ -0,0 +1,41 @@ +#include "flo_25.h" +#include "effects.h" + +#include "world/area_flo/common/FlowerSpawnRegion.inc.c" + +API_CALLABLE(N(SpawnSunEffect)) { + fx_sun_undeclared(FX_SUN_FROM_LEFT, 0, 0, 0, 0, 0); + return ApiStatus_DONE2; +} + +EvtScript N(EVS_ExitWalk_flo_00_3) = EVT_EXIT_WALK(60, flo_25_ENTRY_0, "flo_00", flo_00_ENTRY_3); +EvtScript N(EVS_ExitWalk_flo_07_0) = EVT_EXIT_WALK(60, flo_25_ENTRY_1, "flo_07", flo_07_ENTRY_0); + +EvtScript N(EVS_BindExitTriggers) = { + BindTrigger(Ref(N(EVS_ExitWalk_flo_07_0)), TRIGGER_FLOOR_ABOVE, COLLIDER_deiliw, 1, 0) + BindTrigger(Ref(N(EVS_ExitWalk_flo_00_3)), TRIGGER_FLOOR_ABOVE, COLLIDER_deilie, 1, 0) + Return + End +}; + +EvtScript N(EVS_Main) = { + Set(GB_WorldLocation, LOCATION_FLOWER_FIELDS) + Call(SetSpriteShading, SHADING_NONE) + Call(SetCamLeadPlayer, CAM_DEFAULT, FALSE) + EVT_SETUP_CAMERA_DEFAULT() + Call(MakeNpcs, FALSE, Ref(N(DefaultNPCs))) + ExecWait(N(EVS_MakeEntities)) + Exec(N(EVS_SetupVines)) + Exec(N(EVS_SetupFoliage)) + EVT_FLOWER_SPAWN_REGION( -270, -190, 640, -60, 60) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilitw, COLLIDER_FLAGS_UPPER_MASK) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_deilite, COLLIDER_FLAGS_UPPER_MASK) + Set(LVar0, Ref(N(EVS_BindExitTriggers))) + Exec(EnterWalk) + ExecWait(N(EVS_SetupMusic)) + IfGe(GB_StoryProgress, STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(N(SpawnSunEffect)) + EndIf + Return + End +}; diff --git a/src/world/dead/area_flo/flo_25/music.c b/src/world/dead/area_flo/flo_25/music.c new file mode 100644 index 00000000000..d15877264ae --- /dev/null +++ b/src/world/dead/area_flo/flo_25/music.c @@ -0,0 +1,12 @@ +#include "flo_25.h" + +EvtScript N(EVS_SetupMusic) = { + Switch(GB_StoryProgress) + CaseLt(STORY_CH6_DESTROYED_PUFF_PUFF_MACHINE) + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_CLOUDY, 0, 8) + CaseDefault + Call(SetMusicTrack, 0, SONG_FLOWER_FIELDS_SUNNY, 0, 8) + EndSwitch + Return + End +}; diff --git a/src/world/dead/area_flo/flo_25/npc.c b/src/world/dead/area_flo/flo_25/npc.c new file mode 100644 index 00000000000..aedbb4803a9 --- /dev/null +++ b/src/world/dead/area_flo/flo_25/npc.c @@ -0,0 +1,225 @@ +#include "flo_25.h" +#include "sprite/player.h" + +#include "world/common/npc/GateFlower.inc.c" +#include "world/common/enemy/RuffPuff.inc.c" +#include "world/common/enemy/Bzzap.inc.c" + +#include "world/common/complete/NormalItemChoice.inc.c" + +BSS s32 N(FlowerGuard_ItemChoiceList)[ITEM_NUM_CONSUMABLES + 1]; +#include "world/area_flo/common/ItemChoice_FlowerGuard.inc.c" + +EvtScript N(EVS_NpcInteract_GateFlower) = { + Call(DisablePlayerInput, TRUE) + IfEq(GF_FLO25_GaveRedBerry, FALSE) + Call(GetNpcPos, NPC_SELF, LVar0, LVar1, LVar2) + Call(UseSettingsFrom, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetPanTarget, CAM_DEFAULT, LVar0, LVar1, LVar2) + Call(SetCamDistance, CAM_DEFAULT, 350) + Call(SetCamPitch, CAM_DEFAULT, Float(18.5), Float(-7.5)) + Call(SetCamSpeed, CAM_DEFAULT, Float(4.0 / DT)) + Call(PanToTarget, CAM_DEFAULT, 0, TRUE) + Call(WaitForCam, CAM_DEFAULT, Float(1.0)) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_Talk, ANIM_GateFlower_Red_Idle, 0, MSG_CH6_003B) + Call(SetPlayerAnimation, ANIM_Mario1_Thinking) + Call(N(FlowerGuard_MakeItemList)) + EVT_CHOOSE_CONSUMABLE_FROM(N(FlowerGuard_ItemChoiceList), 0) + Switch(LVar0) + CaseLe(0) + Call(SetPlayerAnimation, ANIM_Mario1_Still) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_Talk, ANIM_GateFlower_Red_Idle, 0, MSG_CH6_003C) + CaseDefault + Set(LVar8, LVar0) + Call(N(FlowerGuard_JudgeItemTastiness), LVar0) + Call(MakeItemEntity, LVar8, 505, 20, -24, ITEM_SPAWN_MODE_DECORATION, 0) + Set(LVar7, LVar0) + Call(PlaySoundAtNpc, NPC_SELF, SOUND_EAT_OR_DRINK, SOUND_SPACE_DEFAULT) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_Eat) + Wait(20 * DT) + Call(RemoveItemEntity, LVar7) + Switch(LVar8) + CaseEq(159) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_Chew, ANIM_GateFlower_Red_Idle, 0, MSG_CH6_003F) + Call(PlaySoundAtNpc, NPC_SELF, SOUND_APPROVE, SOUND_SPACE_DEFAULT) + Call(EndSpeech, NPC_SELF, ANIM_GateFlower_Red_HappyTalk, ANIM_GateFlower_Red_HappyIdle, 0) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_OpenGate) + Call(PlaySoundAtCollider, COLLIDER_o94, SOUND_METAL_GATE_OPEN, SOUND_SPACE_DEFAULT) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o94, COLLIDER_FLAGS_UPPER_MASK) + Call(MakeLerp, 0, 100, 30, EASING_QUADRATIC_IN) + Loop(0) + Call(UpdateLerp) + SetF(LVar8, LVar0) + SetF(LVar9, LVar0) + MulF(LVar8, Float(0.5)) + MulF(LVar9, Float(1.2)) + Call(RotateModel, MODEL_o137, LVar8, 0, -1, 0) + Call(RotateModel, MODEL_o138, LVar8, 0, -1, 0) + Call(RotateModel, MODEL_o139, LVar8, 0, -1, 0) + Call(RotateModel, MODEL_o134, LVar9, 0, 1, 0) + Call(RotateModel, MODEL_o135, LVar9, 0, 1, 0) + Call(RotateModel, MODEL_o136, LVar9, 0, 1, 0) + Wait(1) + IfNe(LVar1, 1) + BreakLoop + EndIf + EndLoop + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_HappyDance) + Set(GF_FLO25_GaveRedBerry, TRUE) + CaseEq(160) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_Chew, ANIM_GateFlower_Red_Idle, 0, MSG_CH6_003E) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_Idle) + CaseEq(158) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_Chew, ANIM_GateFlower_Red_Idle, 0, MSG_CH6_003E) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_Idle) + CaseDefault + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_Chew, ANIM_GateFlower_Red_Idle, 0, MSG_CH6_003D) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_Disgust) + Call(PlaySoundAtNpc, NPC_SELF, SOUND_SPIT_OUT, SOUND_SPACE_DEFAULT) + Call(MakeItemEntity, LVar8, -125, 20, 0, ITEM_SPAWN_MODE_DECORATION, 0) + Set(LVar7, LVar0) + Wait(5 * DT) + Call(GetAngleToPlayer, NPC_SELF, LVar0) + IfLt(LVar0, 180) + Call(MakeLerp, 0, 100, 7, EASING_LINEAR) + Loop(0) + Call(UpdateLerp) + SetF(LVar2, Float(-0.5)) + SetF(LVar3, Float(-0.2)) + SetF(LVar4, Float(0.9)) + MulF(LVar2, LVar0) + MulF(LVar3, LVar0) + MulF(LVar4, LVar0) + AddF(LVar2, Float(500.0)) + AddF(LVar3, Float(15.0)) + AddF(LVar4, Float(-20.0)) + Call(N(FlowerGuard_SetItemEntityPosition), LVar7, LVar2, LVar3, LVar4) + Wait(1) + IfNe(LVar1, 1) + BreakLoop + EndIf + EndLoop + Else + Call(MakeLerp, 0, 100, 7, EASING_LINEAR) + Loop(0) + Call(UpdateLerp) + SetF(LVar2, Float(0.5)) + SetF(LVar3, Float(-0.2)) + SetF(LVar4, Float(0.9)) + MulF(LVar2, LVar0) + MulF(LVar3, LVar0) + MulF(LVar4, LVar0) + AddF(LVar2, Float(510.0)) + AddF(LVar3, Float(15.0)) + AddF(LVar4, Float(-20.0)) + Call(N(FlowerGuard_SetItemEntityPosition), LVar7, LVar2, LVar3, LVar4) + Wait(1) + IfNe(LVar1, 1) + BreakLoop + EndIf + EndLoop + EndIf + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_Idle) + Call(RemoveItemEntity, LVar7) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_Idle) + Call(EndSpeech, NPC_SELF, ANIM_GateFlower_Red_Talk, ANIM_GateFlower_Red_Idle, 0) + EndSwitch + EndSwitch + Thread + Call(ResetCam, CAM_DEFAULT, Float(6.0 / DT)) + EndThread + Wait(10 * DT) + Else + IfLt(GB_StoryProgress, STORY_CH6_STAR_SPIRIT_RESCUED) + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_HappyTalk, ANIM_GateFlower_Red_HappyIdle, 0, MSG_CH6_0040) + Else + Call(SpeakToPlayer, NPC_SELF, ANIM_GateFlower_Red_HappyTalk, ANIM_GateFlower_Red_HappyIdle, 0, MSG_CH6_0041) + EndIf + EndIf + Call(DisablePlayerInput, FALSE) + Unbind + Return + End +}; + +EvtScript N(EVS_NpcInit_GateFlower) = { + Call(BindNpcInteract, NPC_SELF, Ref(N(EVS_NpcInteract_GateFlower))) + IfEq(GF_FLO25_GaveRedBerry, TRUE) + Call(SetNpcAnimation, NPC_SELF, ANIM_GateFlower_Red_HappyDance) + Call(ModifyColliderFlags, MODIFY_COLLIDER_FLAGS_SET_BITS, COLLIDER_o94, COLLIDER_FLAGS_UPPER_MASK) + Call(RotateModel, MODEL_o137, 50, 0, -1, 0) + Call(RotateModel, MODEL_o138, 50, 0, -1, 0) + Call(RotateModel, MODEL_o139, 50, 0, -1, 0) + Call(RotateModel, MODEL_o134, 120, 0, 1, 0) + Call(RotateModel, MODEL_o135, 120, 0, 1, 0) + Call(RotateModel, MODEL_o136, 120, 0, 1, 0) + EndIf + Return + End +}; + +NpcData N(NpcData_GateFlower) = { + .id = NPC_GateFlower, + .pos = { 505.0f, 0.0f, -25.0f }, + .yaw = 90, + .init = &N(EVS_NpcInit_GateFlower), + .settings = &N(NpcSettings_GateFlower), + .flags = COMMON_PASSIVE_FLAGS | ENEMY_FLAG_NO_SHADOW_RAYCAST | ENEMY_FLAG_400000, + .drops = NO_DROPS, + .animations = GATE_FLOWER_RED_ANIMS, + .tattle = MSG_NpcTattle_RedGateFlower, +}; + +NpcData N(NpcData_RuffPuff) = { + .id = NPC_RuffPuff, + .pos = { -200.0f, 45.0f, 0.0f }, + .yaw = 90, + .territory = { + .wander = { + .isFlying = FALSE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { -200, 45, 0 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { -200, 45, 0 }, + .detectSize = { 200 }, + } + }, + .settings = &N(NpcSettings_RuffPuff), + .flags = ENEMY_FLAG_IGNORE_ENTITY_COLLISION, + .drops = RUFF_PUFF_DROPS, + .animations = RUFF_PUFF_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, +}; + +NpcData N(NpcData_Bzzap) = { + .id = NPC_Bzzap, + .pos = { 150.0f, 55.0f, 0.0f }, + .yaw = 90, + .territory = { + .wander = { + .isFlying = TRUE, + .moveSpeedOverride = NO_OVERRIDE_MOVEMENT_SPEED, + .wanderShape = SHAPE_CYLINDER, + .centerPos = { 150, 50, 0 }, + .wanderSize = { 30 }, + .detectShape = SHAPE_CYLINDER, + .detectPos = { 150, 50, 0 }, + .detectSize = { 200 }, + } + }, + .settings = &N(NpcSettings_Bzzap), + .flags = ENEMY_FLAG_IGNORE_ENTITY_COLLISION, + .drops = BZZAP_DROPS, + .animations = BZZAP_ANIMS, + .aiDetectFlags = AI_DETECT_SIGHT | AI_DETECT_SENSITIVE_MOTION, +}; + +// dead formation IDs differ from the current +NpcGroupList N(DefaultNPCs) = { + NPC_GROUP(N(NpcData_RuffPuff), 0x1A22, BTL_FLO_STAGE_05), + NPC_GROUP(N(NpcData_Bzzap), 0x1A1A, BTL_FLO_STAGE_01), + NPC_GROUP(N(NpcData_GateFlower)), + {} +}; diff --git a/src/world/dead/area_flo/flo_25/settings.c b/src/world/dead/area_flo/flo_25/settings.c new file mode 100644 index 00000000000..cb0b27136e7 --- /dev/null +++ b/src/world/dead/area_flo/flo_25/settings.c @@ -0,0 +1,14 @@ +#include "flo_25.h" + +EntryList N(Entrances) = { + [flo_25_ENTRY_0] { 620.0, 0.0, 0.0, 270.0 }, + [flo_25_ENTRY_1] { -620.0, 0.0, 0.0, 90.0 }, +}; + +MapSettings N(settings) = { + .main = &N(EVS_Main), + .entryList = &N(Entrances), + .entryCount = ENTRY_COUNT(N(Entrances)), + .background = &gBackgroundImage, + .tattle = { MSG_MapTattle_flo_25 }, +}; diff --git a/src/world/dead/area_flo/flo_25/vine.c b/src/world/dead/area_flo/flo_25/vine.c new file mode 100644 index 00000000000..4f4a5392668 --- /dev/null +++ b/src/world/dead/area_flo/flo_25/vine.c @@ -0,0 +1,17 @@ +#include "flo_25.h" + +// unused extra import for flower-spawning regions +#define NAMESPACE dead_flo_25_vines +#include "world/area_flo/common/FlowerSpawnRegion.inc.c" +#define NAMESPACE dead_flo_25 + +#include "world/area_flo/common/DroppingVine.inc.c" + +EvtScript N(EVS_SetupVines) = { + EVT_DROPPING_VINE(ITEM_NONE, MODEL_o111, MODEL_o112, MODEL_o113, MODEL_o114) + EVT_DROPPING_VINE(ITEM_NONE, MODEL_o101, MODEL_o102, MODEL_o103, MODEL_o104) + EVT_DROPPING_VINE(ITEM_STINKY_HERB, MODEL_o105, MODEL_o106, MODEL_o107, MODEL_o108) + EVT_DROPPING_VINE(ITEM_NONE, MODEL_o130, MODEL_o131, MODEL_o132, MODEL_o133) + Return + End +}; diff --git a/src/world/dead/area_kzn/kzn_19/npc.c b/src/world/dead/area_kzn/kzn_19/npc.c index e1bb2be6124..590d50cbb85 100644 --- a/src/world/dead/area_kzn/kzn_19/npc.c +++ b/src/world/dead/area_kzn/kzn_19/npc.c @@ -39,7 +39,11 @@ INCLUDE_IMG("world/lava_piranha/vine.png", dead_kzn_19_lava_piranha_vine_img); INCLUDE_PAL("world/lava_piranha/vine.pal", dead_kzn_19_lava_piranha_vine_pal); #include "world/lava_piranha/vine.gfx.inc.c" +#if VERSION_JP +#define DEAD_ROM_OFFSET (0x20FD50) +#else #define DEAD_ROM_OFFSET (0x211EB0) +#endif #define PIRANHA_DMA_ENTRY(name) \ (s32) world_model_anim_kzn_##name##_ROM_START + DEAD_ROM_OFFSET,\ diff --git a/src/world/dead/area_kzn/kzn_20/npc.c b/src/world/dead/area_kzn/kzn_20/npc.c index 5fbe05be071..38a465e1d73 100644 --- a/src/world/dead/area_kzn/kzn_20/npc.c +++ b/src/world/dead/area_kzn/kzn_20/npc.c @@ -104,7 +104,9 @@ s32 N(Kolorado_Wander2)[] = { }; EvtScript N(EVS_Kolorado_CalmIdle) = { +#if !VERSION_JP SetGroup(EVT_GROUP_EF) +#endif Label(0) Call(RandInt, 1, LVar1) IfEq(LVar1, 0) @@ -112,7 +114,11 @@ EvtScript N(EVS_Kolorado_CalmIdle) = { Else UseBuf(N(Kolorado_Wander2)) EndIf +#if VERSION_JP + Label(0) +#else Label(10) +#endif BufRead3(LVar1, LVar2, LVar3) IfEq(LVar1, -1) Goto(0) @@ -135,7 +141,11 @@ EvtScript N(EVS_Kolorado_CalmIdle) = { Wait(20) EndLoop Wait(LVar2) +#if VERSION_JP + Goto(0) +#else Goto(10) +#endif Return End }; diff --git a/src/world/dead/area_kzn/kzn_23/settings.c b/src/world/dead/area_kzn/kzn_23/settings.c index fc9a9115db8..f94212b4050 100644 --- a/src/world/dead/area_kzn/kzn_23/settings.c +++ b/src/world/dead/area_kzn/kzn_23/settings.c @@ -9,4 +9,7 @@ MapSettings N(settings) = { .entryList = &N(Entrances), .entryCount = ENTRY_COUNT(N(Entrances)), .background = &gBackgroundImage, +#if VERSION_JP + .tattle = { MSG_MapTattle_018E }, +#endif }; diff --git a/tools/splat_ext/msg_jp.yaml b/tools/splat_ext/msg_jp.yaml index f9b5045b6c3..551d13ab97c 100644 --- a/tools/splat_ext/msg_jp.yaml +++ b/tools/splat_ext/msg_jp.yaml @@ -151,6 +151,16 @@ - [0x01, 0x0015, Outro_0014] - [0x01, 0x0016, Outro_0015] - [0x01, 0x0017, Outro_0016] +- [0x01, 0x0018, Outro_0017] +- [0x01, 0x0019, Outro_0018] +- [0x01, 0x001A, Outro_0019] +- [0x01, 0x001B, Outro_001A] +- [0x01, 0x001C, Outro_001B] +- [0x01, 0x001D, Outro_001C] +- [0x01, 0x001E, Outro_001D] +- [0x01, 0x001F, Outro_001E] +- [0x01, 0x0020, Outro_001F] +- [0x01, 0x0021, Outro_0020] - [0x01, 0x0022, Outro_0021] - [0x01, 0x0023, Outro_0022] - [0x01, 0x0024, Outro_0023] @@ -1535,6 +1545,58 @@ - [0x08, 0x000F, MGM_000F] - [0x08, 0x0010, MGM_0010] - [0x08, 0x0011, MGM_0011] +- [0x08, 0x0012, MGM_0012] +- [0x08, 0x0013, MGM_0013] +- [0x08, 0x0014, MGM_0014] +- [0x08, 0x0015, MGM_0015] +- [0x08, 0x0016, MGM_0016] +- [0x08, 0x0017, MGM_0017] +- [0x08, 0x0018, MGM_0018] +- [0x08, 0x0019, MGM_0019] +- [0x08, 0x001A, MGM_001A] +- [0x08, 0x001C, MGM_001C] +- [0x08, 0x001D, MGM_001D] +- [0x08, 0x001E, MGM_001E] +- [0x08, 0x001F, MGM_001F] +- [0x08, 0x0020, MGM_0020] +- [0x08, 0x0021, MGM_0021] +- [0x08, 0x0023, MGM_0023] +- [0x08, 0x0024, MGM_0024] +- [0x08, 0x0025, MGM_0025] +- [0x08, 0x0026, MGM_0026] +- [0x08, 0x0027, MGM_0027] +- [0x08, 0x0028, MGM_0028] +- [0x08, 0x0029, MGM_0029] +- [0x08, 0x002A, MGM_002A] +- [0x08, 0x002B, MGM_002B] +- [0x08, 0x002C, MGM_002C] +- [0x08, 0x002D, MGM_002D] +- [0x08, 0x002E, MGM_002E] +- [0x08, 0x002F, MGM_002F] +- [0x08, 0x0030, MGM_0030] +- [0x08, 0x0031, MGM_0031] +- [0x08, 0x0032, MGM_0032] +- [0x08, 0x0033, MGM_0033] +- [0x08, 0x0034, MGM_0034] +- [0x08, 0x0035, MGM_0035] +- [0x08, 0x0036, MGM_0036] +- [0x08, 0x0037, MGM_0037] +- [0x08, 0x0038, MGM_0038] +- [0x08, 0x0039, MGM_0039] +- [0x08, 0x003A, MGM_003A] +- [0x08, 0x003B, MGM_003B] +- [0x08, 0x003C, MGM_003C] +- [0x08, 0x003D, MGM_003D] +- [0x08, 0x003E, MGM_003E] +- [0x08, 0x003F, MGM_003F] +- [0x08, 0x0040, MGM_0040] +- [0x08, 0x0041, MGM_0041] +- [0x08, 0x0042, MGM_0042] +- [0x08, 0x0043, MGM_0043] +- [0x08, 0x0044, MGM_0044] +- [0x08, 0x0045, MGM_0045] +- [0x08, 0x0046, MGM_0046] +- [0x08, 0x0047, MGM_0047] - [0x09, 0x0000, OSR_0000] - [0x09, 0x0001, OSR_0001] - [0x09, 0x0002, OSR_0002] @@ -2699,13 +2761,155 @@ - [0x0E, 0x00D3, CH3_00D3] - [0x0E, 0x00D4, CH3_00D4] - [0x0E, 0x00D5, CH3_00D5] +- [0x0E, 0x00D6, CH3_00D6] +- [0x0E, 0x00D7, CH3_00D7] +- [0x0E, 0x00D8, CH3_00D8] +- [0x0E, 0x00D9, CH3_00D9] +- [0x0E, 0x00DA, CH3_00DA] +- [0x0E, 0x00DB, CH3_00DB] +- [0x0E, 0x00DC, CH3_00DC] +- [0x0E, 0x00DD, CH3_00DD] +- [0x0E, 0x00DE, CH3_00DE] +- [0x0E, 0x00DF, CH3_00DF] +- [0x0E, 0x00E0, CH3_00E0] +- [0x0E, 0x00E1, CH3_00E1] +- [0x0E, 0x00E2, CH3_00E2] +- [0x0E, 0x00E3, CH3_00E3] +- [0x0E, 0x00E4, CH3_00E4] +- [0x0E, 0x00E5, CH3_00E5] +- [0x0E, 0x00E6, CH3_00E6] +- [0x0E, 0x00E7, CH3_00E7] +- [0x0E, 0x00E8, CH3_00E8] +- [0x0E, 0x00E9, CH3_00E9] +- [0x0E, 0x00EA, CH3_00EA] +- [0x0E, 0x00EB, CH3_00EB] +- [0x0E, 0x00EC, CH3_00EC] +- [0x0E, 0x00ED, CH3_00ED] +- [0x0E, 0x00EE, CH3_00EE] +- [0x0E, 0x00EF, CH3_00EF] +- [0x0E, 0x00F0, CH3_00F0] +- [0x0E, 0x00F1, CH3_00F1] +- [0x0E, 0x00F2, CH3_00F2] +- [0x0E, 0x00F3, CH3_00F3] +- [0x0E, 0x00F4, CH3_00F4] +- [0x0E, 0x00F5, CH3_00F5] +- [0x0E, 0x00F6, CH3_00F6] +- [0x0E, 0x00F7, CH3_00F7] +- [0x0E, 0x00F8, CH3_00F8] +- [0x0E, 0x00F9, CH3_00F9] +- [0x0E, 0x00FA, CH3_00FA] +- [0x0E, 0x00FB, CH3_00FB] +- [0x0E, 0x00FC, CH3_00FC] +- [0x0E, 0x00FD, CH3_00FD] +- [0x0E, 0x00FE, CH3_00FE] +- [0x0E, 0x00FF, CH3_00FF] +- [0x0E, 0x0100, CH3_0100] +- [0x0E, 0x0101, CH3_0101] - [0x0E, 0x0102, CH3_0102] - [0x0E, 0x0103, CH3_0103] - [0x0E, 0x0105, CH3_0105] - [0x0E, 0x0106, CH3_0106] +- [0x0F, 0x0000, CH4_0000] +- [0x0F, 0x0001, CH4_0001] +- [0x0F, 0x0002, CH4_0002] +- [0x0F, 0x0003, CH4_0003] +- [0x0F, 0x0004, CH4_0004] +- [0x0F, 0x0005, CH4_0005] +- [0x0F, 0x0006, CH4_0006] +- [0x0F, 0x0007, CH4_0007] +- [0x0F, 0x0008, CH4_0008] +- [0x0F, 0x0009, CH4_0009] +- [0x0F, 0x000A, CH4_000A] +- [0x0F, 0x000B, CH4_000B] +- [0x0F, 0x000C, CH4_000C] +- [0x0F, 0x000D, CH4_000D] +- [0x0F, 0x000E, CH4_000E] +- [0x0F, 0x000F, CH4_000F] +- [0x0F, 0x0010, CH4_0010] +- [0x0F, 0x0011, CH4_0011] +- [0x0F, 0x0012, CH4_0012] +- [0x0F, 0x0013, CH4_0013] +- [0x0F, 0x0014, CH4_0014] +- [0x0F, 0x0015, CH4_0015] +- [0x0F, 0x0016, CH4_0016] +- [0x0F, 0x0017, CH4_0017] +- [0x0F, 0x0018, CH4_0018] +- [0x0F, 0x0019, CH4_0019] +- [0x0F, 0x001A, CH4_001A] +- [0x0F, 0x001B, CH4_001B] +- [0x0F, 0x001C, CH4_001C] +- [0x0F, 0x001D, CH4_001D] +- [0x0F, 0x001E, CH4_001E] +- [0x0F, 0x001F, CH4_001F] +- [0x0F, 0x0020, CH4_0020] +- [0x0F, 0x0021, CH4_0021] +- [0x0F, 0x0022, CH4_0022] +- [0x0F, 0x0023, CH4_0023] +- [0x0F, 0x0024, CH4_0024] +- [0x0F, 0x0025, CH4_0025] +- [0x0F, 0x0026, CH4_0026] +- [0x0F, 0x0027, CH4_0027] +- [0x0F, 0x0028, CH4_0028] +- [0x0F, 0x0029, CH4_0029] +- [0x0F, 0x002A, CH4_002A] +- [0x0F, 0x002B, CH4_002B] +- [0x0F, 0x002C, CH4_002C] +- [0x0F, 0x002D, CH4_002D] +- [0x0F, 0x002E, CH4_002E] +- [0x0F, 0x002F, CH4_002F] +- [0x0F, 0x0030, CH4_0030] +- [0x0F, 0x0031, CH4_0031] +- [0x0F, 0x0032, CH4_0032] +- [0x0F, 0x0033, CH4_0033] +- [0x0F, 0x0034, CH4_0034] +- [0x0F, 0x0035, CH4_0035] +- [0x0F, 0x0036, CH4_0036] +- [0x0F, 0x0037, CH4_0037] +- [0x0F, 0x0038, CH4_0038] +- [0x0F, 0x0039, CH4_0039] +- [0x0F, 0x003A, CH4_003A] +- [0x0F, 0x003B, CH4_003B] +- [0x0F, 0x003C, CH4_003C] +- [0x0F, 0x003D, CH4_003D] +- [0x0F, 0x003E, CH4_003E] +- [0x0F, 0x003F, CH4_003F] +- [0x0F, 0x0040, CH4_0040] +- [0x0F, 0x0041, CH4_0041] +- [0x0F, 0x0042, CH4_0042] +- [0x0F, 0x0043, CH4_0043] +- [0x0F, 0x0044, CH4_0044] +- [0x0F, 0x0045, CH4_0045] +- [0x0F, 0x0046, CH4_0046] +- [0x0F, 0x0047, CH4_0047] +- [0x0F, 0x0048, CH4_0048] +- [0x0F, 0x0049, CH4_0049] +- [0x0F, 0x004A, CH4_004A] +- [0x0F, 0x004B, CH4_004B] +- [0x0F, 0x004C, CH4_004C] +- [0x0F, 0x004D, CH4_004D] +- [0x0F, 0x004E, CH4_004E] +- [0x0F, 0x004F, CH4_004F] +- [0x0F, 0x0050, CH4_0050] - [0x0F, 0x0051, CH4_0051] - [0x0F, 0x0052, CH4_0052] - [0x0F, 0x0053, CH4_0053] +- [0x0F, 0x0054, CH4_0054] +- [0x0F, 0x0055, CH4_0055] +- [0x0F, 0x0056, CH4_0056] +- [0x0F, 0x0057, CH4_0057] +- [0x0F, 0x0058, CH4_0058] +- [0x0F, 0x0059, CH4_0059] +- [0x0F, 0x005A, CH4_005A] +- [0x0F, 0x005B, CH4_005B] +- [0x0F, 0x005C, CH4_005C] +- [0x0F, 0x005D, CH4_005D] +- [0x0F, 0x005E, CH4_005E] +- [0x0F, 0x005F, CH4_005F] +- [0x0F, 0x0060, CH4_0060] +- [0x0F, 0x0061, CH4_0061] +- [0x0F, 0x0062, CH4_0062] +- [0x0F, 0x0063, CH4_0063] +- [0x0F, 0x0064, CH4_0064] - [0x0F, 0x0065, CH4_0065] - [0x0F, 0x0066, CH4_0066] - [0x0F, 0x0067, CH4_0067] @@ -2722,6 +2926,7 @@ - [0x0F, 0x0072, CH4_0072] - [0x0F, 0x0073, CH4_0073] - [0x0F, 0x0074, CH4_0074] +- [0x0F, 0x0075, CH4_0075] - [0x10, 0x0000, CH5_0000] - [0x10, 0x0001, CH5_0001] - [0x10, 0x0002, CH5_0002] @@ -2948,9 +3153,263 @@ - [0x10, 0x00E1, CH5_00E1] - [0x10, 0x00E2, CH5_00E2] - [0x10, 0x00E3, CH5_00E3] +- [0x10, 0x00E4, CH5_00E4] +- [0x10, 0x00E5, CH5_00E5] +- [0x10, 0x00E6, CH5_00E6] +- [0x10, 0x00E7, CH5_00E7] +- [0x10, 0x00E8, CH5_00E8] +- [0x10, 0x00E9, CH5_00E9] +- [0x10, 0x00EA, CH5_00EA] +- [0x10, 0x00EB, CH5_00EB] +- [0x10, 0x00ED, CH5_00ED] +- [0x10, 0x00EE, CH5_00EE] +- [0x10, 0x00EF, CH5_00EF] +- [0x10, 0x00F0, CH5_00F0] +- [0x10, 0x00F1, CH5_00F1] +- [0x10, 0x00F2, CH5_00F2] +- [0x10, 0x00F3, CH5_00F3] +- [0x10, 0x00F4, CH5_00F4] +- [0x10, 0x00F5, CH5_00F5] +- [0x10, 0x00F6, CH5_00F6] +- [0x10, 0x00F7, CH5_00F7] +- [0x10, 0x00F8, CH5_00F8] +- [0x10, 0x00F9, CH5_00F9] +- [0x10, 0x00FA, CH5_00FA] +- [0x10, 0x00FC, CH5_00FC] +- [0x10, 0x00FD, CH5_00FD] +- [0x10, 0x00FE, CH5_00FE] +- [0x10, 0x00FF, CH5_00FF] +- [0x10, 0x0100, CH5_0100] +- [0x10, 0x0101, CH5_0101] +- [0x10, 0x0102, CH5_0102] +- [0x10, 0x0103, CH5_0103] - [0x10, 0x0104, CH5_0104] - [0x10, 0x0105, CH5_0105] - [0x10, 0x0106, CH5_0106] +- [0x10, 0x0107, CH5_0107] +- [0x10, 0x0108, CH5_0108] +- [0x10, 0x0109, CH5_0109] +- [0x10, 0x010A, CH5_010A] +- [0x10, 0x010B, CH5_010B] +- [0x10, 0x010C, CH5_010C] +- [0x10, 0x010D, CH5_010D] +- [0x10, 0x010E, CH5_010E] +- [0x10, 0x010F, CH5_010F] +- [0x10, 0x0110, CH5_0110] +- [0x10, 0x0111, CH5_0111] +- [0x10, 0x0112, CH5_0112] +- [0x10, 0x0113, CH5_0113] +- [0x10, 0x0114, CH5_0114] +- [0x10, 0x0115, CH5_0115] +- [0x10, 0x0116, CH5_0116] +- [0x10, 0x0117, CH5_0117] +- [0x11, 0x0000, CH6_0000] +- [0x11, 0x0001, CH6_0001] +- [0x11, 0x0002, CH6_0002] +- [0x11, 0x0003, CH6_0003] +- [0x11, 0x0004, CH6_0004] +- [0x11, 0x0005, CH6_0005] +- [0x11, 0x0006, CH6_0006] +- [0x11, 0x0007, CH6_0007] +- [0x11, 0x0008, CH6_0008] +- [0x11, 0x0009, CH6_0009] +- [0x11, 0x000A, CH6_000A] +- [0x11, 0x000B, CH6_000B] +- [0x11, 0x000C, CH6_000C] +- [0x11, 0x000D, CH6_000D] +- [0x11, 0x000E, CH6_000E] +- [0x11, 0x000F, CH6_000F] +- [0x11, 0x0010, CH6_0010] +- [0x11, 0x0011, CH6_0011] +- [0x11, 0x0012, CH6_0012] +- [0x11, 0x0013, CH6_0013] +- [0x11, 0x0014, CH6_0014] +- [0x11, 0x0015, CH6_0015] +- [0x11, 0x0016, CH6_0016] +- [0x11, 0x0017, CH6_0017] +- [0x11, 0x0018, CH6_0018] +- [0x11, 0x0019, CH6_0019] +- [0x11, 0x001A, CH6_001A] +- [0x11, 0x001B, CH6_001B] +- [0x11, 0x001C, CH6_001C] +- [0x11, 0x001D, CH6_001D] +- [0x11, 0x001E, CH6_001E] +- [0x11, 0x001F, CH6_001F] +- [0x11, 0x0020, CH6_0020] +- [0x11, 0x0021, CH6_0021] +- [0x11, 0x0022, CH6_0022] +- [0x11, 0x0023, CH6_0023] +- [0x11, 0x0024, CH6_0024] +- [0x11, 0x0025, CH6_0025] +- [0x11, 0x0026, CH6_0026] +- [0x11, 0x0027, CH6_0027] +- [0x11, 0x0028, CH6_0028] +- [0x11, 0x0029, CH6_0029] +- [0x11, 0x002A, CH6_002A] +- [0x11, 0x002B, CH6_002B] +- [0x11, 0x002C, CH6_002C] +- [0x11, 0x002D, CH6_002D] +- [0x11, 0x002E, CH6_002E] +- [0x11, 0x002F, CH6_002F] +- [0x11, 0x0030, CH6_0030] +- [0x11, 0x0031, CH6_0031] +- [0x11, 0x0032, CH6_0032] +- [0x11, 0x0033, CH6_0033] +- [0x11, 0x0034, CH6_0034] +- [0x11, 0x0035, CH6_0035] +- [0x11, 0x0036, CH6_0036] +- [0x11, 0x0037, CH6_0037] +- [0x11, 0x0038, CH6_0038] +- [0x11, 0x0039, CH6_0039] +- [0x11, 0x003A, CH6_003A] +- [0x11, 0x003B, CH6_003B] +- [0x11, 0x003C, CH6_003C] +- [0x11, 0x003D, CH6_003D] +- [0x11, 0x003E, CH6_003E] +- [0x11, 0x003F, CH6_003F] +- [0x11, 0x0040, CH6_0040] +- [0x11, 0x0041, CH6_0041] +- [0x11, 0x0042, CH6_0042] +- [0x11, 0x0043, CH6_0043] +- [0x11, 0x0044, CH6_0044] +- [0x11, 0x0045, CH6_0045] +- [0x11, 0x0046, CH6_0046] +- [0x11, 0x0047, CH6_0047] +- [0x11, 0x0048, CH6_0048] +- [0x11, 0x0049, CH6_0049] +- [0x11, 0x004A, CH6_004A] +- [0x11, 0x004B, CH6_004B] +- [0x11, 0x004C, CH6_004C] +- [0x11, 0x004D, CH6_004D] +- [0x11, 0x004E, CH6_004E] +- [0x11, 0x004F, CH6_004F] +- [0x11, 0x0050, CH6_0050] +- [0x11, 0x0051, CH6_0051] +- [0x11, 0x0052, CH6_0052] +- [0x11, 0x0053, CH6_0053] +- [0x11, 0x0054, CH6_0054] +- [0x11, 0x0055, CH6_0055] +- [0x11, 0x0056, CH6_0056] +- [0x11, 0x0057, CH6_0057] +- [0x11, 0x0058, CH6_0058] +- [0x11, 0x0059, CH6_0059] +- [0x11, 0x005A, CH6_005A] +- [0x11, 0x005B, CH6_005B] +- [0x11, 0x005C, CH6_005C] +- [0x11, 0x005D, CH6_005D] +- [0x11, 0x005E, CH6_005E] +- [0x11, 0x005F, CH6_005F] +- [0x11, 0x0060, CH6_0060] +- [0x11, 0x0061, CH6_0061] +- [0x11, 0x0062, CH6_0062] +- [0x11, 0x0063, CH6_0063] +- [0x11, 0x0064, CH6_0064] +- [0x11, 0x0065, CH6_0065] +- [0x11, 0x0066, CH6_0066] +- [0x11, 0x0067, CH6_0067] +- [0x11, 0x0068, CH6_0068] +- [0x11, 0x0069, CH6_0069] +- [0x11, 0x006A, CH6_006A] +- [0x11, 0x006B, CH6_006B] +- [0x11, 0x006C, CH6_006C] +- [0x11, 0x006D, CH6_006D] +- [0x11, 0x006E, CH6_006E] +- [0x11, 0x006F, CH6_006F] +- [0x11, 0x0070, CH6_0070] +- [0x11, 0x0071, CH6_0071] +- [0x11, 0x0072, CH6_0072] +- [0x11, 0x0073, CH6_0073] +- [0x11, 0x0074, CH6_0074] +- [0x11, 0x0075, CH6_0075] +- [0x11, 0x0076, CH6_0076] +- [0x11, 0x0077, CH6_0077] +- [0x11, 0x0078, CH6_0078] +- [0x11, 0x0079, CH6_0079] +- [0x11, 0x007A, CH6_007A] +- [0x11, 0x007B, CH6_007B] +- [0x11, 0x007C, CH6_007C] +- [0x11, 0x007D, CH6_007D] +- [0x11, 0x007E, CH6_007E] +- [0x11, 0x007F, CH6_007F] +- [0x11, 0x0080, CH6_0080] +- [0x11, 0x0081, CH6_0081] +- [0x11, 0x0082, CH6_0082] +- [0x11, 0x0083, CH6_0083] +- [0x11, 0x0084, CH6_0084] +- [0x11, 0x0085, CH6_0085] +- [0x11, 0x0086, CH6_0086] +- [0x11, 0x0087, CH6_0087] +- [0x11, 0x0088, CH6_0088] +- [0x11, 0x0089, CH6_0089] +- [0x11, 0x008A, CH6_008A] +- [0x11, 0x008B, CH6_008B] +- [0x11, 0x008C, CH6_008C] +- [0x11, 0x008D, CH6_008D] +- [0x11, 0x008E, CH6_008E] +- [0x11, 0x008F, CH6_008F] +- [0x11, 0x0090, CH6_0090] +- [0x11, 0x0091, CH6_0091] +- [0x11, 0x0092, CH6_0092] +- [0x11, 0x0093, CH6_0093] +- [0x11, 0x0094, CH6_0094] +- [0x11, 0x0095, CH6_0095] +- [0x11, 0x0096, CH6_0096] +- [0x11, 0x0097, CH6_0097] +- [0x11, 0x0098, CH6_0098] +- [0x11, 0x0099, CH6_0099] +- [0x11, 0x009A, CH6_009A] +- [0x11, 0x009B, CH6_009B] +- [0x11, 0x009C, CH6_009C] +- [0x11, 0x009D, CH6_009D] +- [0x11, 0x009E, CH6_009E] +- [0x11, 0x009F, CH6_009F] +- [0x11, 0x00A0, CH6_00A0] +- [0x11, 0x00A1, CH6_00A1] +- [0x11, 0x00A2, CH6_00A2] +- [0x11, 0x00A3, CH6_00A3] +- [0x11, 0x00A4, CH6_00A4] +- [0x11, 0x00A5, CH6_00A5] +- [0x11, 0x00A6, CH6_00A6] +- [0x11, 0x00A7, CH6_00A7] +- [0x11, 0x00A8, CH6_00A8] +- [0x11, 0x00A9, CH6_00A9] +- [0x11, 0x00AA, CH6_00AA] +- [0x11, 0x00AB, CH6_00AB] +- [0x11, 0x00AC, CH6_00AC] +- [0x11, 0x00AD, CH6_00AD] +- [0x11, 0x00AE, CH6_00AE] +- [0x11, 0x00AF, CH6_00AF] +- [0x11, 0x00B0, CH6_00B0] +- [0x11, 0x00B1, CH6_00B1] +- [0x11, 0x00B2, CH6_00B2] +- [0x11, 0x00B3, CH6_00B3] +- [0x11, 0x00B4, CH6_00B4] +- [0x11, 0x00B5, CH6_00B5] +- [0x11, 0x00B6, CH6_00B6] +- [0x11, 0x00B7, CH6_00B7] +- [0x11, 0x00B8, CH6_00B8] +- [0x11, 0x00B9, CH6_00B9] +- [0x11, 0x00BA, CH6_00BA] +- [0x11, 0x00BB, CH6_00BB] +- [0x11, 0x00BC, CH6_00BC] +- [0x11, 0x00BD, CH6_00BD] +- [0x11, 0x00BE, CH6_00BE] +- [0x11, 0x00BF, CH6_00BF] +- [0x11, 0x00C0, CH6_00C0] +- [0x11, 0x00C1, CH6_00C1] +- [0x11, 0x00C2, CH6_00C2] +- [0x11, 0x00C3, CH6_00C3] +- [0x11, 0x00C4, CH6_00C4] +- [0x11, 0x00C5, CH6_00C5] +- [0x11, 0x00C6, CH6_00C6] +- [0x11, 0x00C7, CH6_00C7] +- [0x11, 0x00C8, CH6_00C8] +- [0x11, 0x00C9, CH6_00C9] +- [0x11, 0x00CA, CH6_00CA] +- [0x11, 0x00CB, CH6_00CB] +- [0x11, 0x00CC, CH6_00CC] +- [0x11, 0x00CD, CH6_00CD] +- [0x11, 0x00CE, CH6_00CE] - [0x11, 0x00CF, CH6_00CF] - [0x11, 0x00D0, CH6_00D0] - [0x11, 0x00D1, CH6_00D1] @@ -2960,13 +3419,380 @@ - [0x11, 0x00D5, CH6_00D5] - [0x11, 0x00D6, CH6_00D6] - [0x11, 0x00D7, CH6_00D7] +- [0x11, 0x00D8, CH6_00D8] +- [0x11, 0x00D9, CH6_00D9] +- [0x11, 0x00DA, CH6_00DA] +- [0x11, 0x00DB, CH6_00DB] +- [0x11, 0x00DC, CH6_00DC] +- [0x11, 0x00DD, CH6_00DD] +- [0x11, 0x00DE, CH6_00DE] +- [0x11, 0x00E1, CH6_00E1] +- [0x12, 0x0000, CH7_0000] +- [0x12, 0x0001, CH7_0001] +- [0x12, 0x0002, CH7_0002] +- [0x12, 0x0004, CH7_0004] +- [0x12, 0x0005, CH7_0005] +- [0x12, 0x0006, CH7_0006] +- [0x12, 0x0007, CH7_0007] +- [0x12, 0x0008, CH7_0008] +- [0x12, 0x0009, CH7_0009] +- [0x12, 0x000A, CH7_000A] +- [0x12, 0x000B, CH7_000B] +- [0x12, 0x000C, CH7_000C] +- [0x12, 0x000D, CH7_000D] +- [0x12, 0x000E, CH7_000E] +- [0x12, 0x000F, CH7_000F] +- [0x12, 0x0010, CH7_0010] +- [0x12, 0x0011, CH7_0011] +- [0x12, 0x0012, CH7_0012] +- [0x12, 0x0013, CH7_0013] +- [0x12, 0x0014, CH7_0014] +- [0x12, 0x0015, CH7_0015] +- [0x12, 0x0016, CH7_0016] +- [0x12, 0x0017, CH7_0017] +- [0x12, 0x0018, CH7_0018] +- [0x12, 0x0019, CH7_0019] +- [0x12, 0x001A, CH7_001A] +- [0x12, 0x001B, CH7_001B] +- [0x12, 0x001C, CH7_001C] +- [0x12, 0x001D, CH7_001D] +- [0x12, 0x001E, CH7_001E] +- [0x12, 0x001F, CH7_001F] +- [0x12, 0x0020, CH7_0020] +- [0x12, 0x0021, CH7_0021] +- [0x12, 0x0022, CH7_0022] +- [0x12, 0x0023, CH7_0023] +- [0x12, 0x0024, CH7_0024] +- [0x12, 0x0025, CH7_0025] +- [0x12, 0x0026, CH7_0026] +- [0x12, 0x0027, CH7_0027] +- [0x12, 0x0028, CH7_0028] +- [0x12, 0x0029, CH7_0029] +- [0x12, 0x002A, CH7_002A] +- [0x12, 0x002B, CH7_002B] +- [0x12, 0x002C, CH7_002C] +- [0x12, 0x002D, CH7_002D] +- [0x12, 0x002E, CH7_002E] +- [0x12, 0x002F, CH7_002F] +- [0x12, 0x0030, CH7_0030] +- [0x12, 0x0031, CH7_0031] +- [0x12, 0x0032, CH7_0032] +- [0x12, 0x0033, CH7_0033] +- [0x12, 0x0034, CH7_0034] +- [0x12, 0x0035, CH7_0035] +- [0x12, 0x0036, CH7_0036] +- [0x12, 0x0037, CH7_0037] +- [0x12, 0x0038, CH7_0038] +- [0x12, 0x0039, CH7_0039] +- [0x12, 0x003A, CH7_003A] +- [0x12, 0x003B, CH7_003B] +- [0x12, 0x003C, CH7_003C] +- [0x12, 0x003D, CH7_003D] +- [0x12, 0x003E, CH7_003E] +- [0x12, 0x003F, CH7_003F] +- [0x12, 0x0040, CH7_0040] +- [0x12, 0x0041, CH7_0041] +- [0x12, 0x0042, CH7_0042] +- [0x12, 0x0043, CH7_0043] +- [0x12, 0x0044, CH7_0044] +- [0x12, 0x0045, CH7_0045] +- [0x12, 0x0046, CH7_0046] +- [0x12, 0x0047, CH7_0047] +- [0x12, 0x0048, CH7_0048] +- [0x12, 0x0049, CH7_0049] +- [0x12, 0x004A, CH7_004A] +- [0x12, 0x004B, CH7_004B] +- [0x12, 0x004C, CH7_004C] +- [0x12, 0x004D, CH7_004D] +- [0x12, 0x004E, CH7_004E] +- [0x12, 0x004F, CH7_004F] +- [0x12, 0x0050, CH7_0050] +- [0x12, 0x0051, CH7_0051] +- [0x12, 0x0052, CH7_0052] +- [0x12, 0x0053, CH7_0053] +- [0x12, 0x0054, CH7_0054] +- [0x12, 0x0055, CH7_0055] +- [0x12, 0x0056, CH7_0056] +- [0x12, 0x0057, CH7_0057] +- [0x12, 0x0058, CH7_0058] +- [0x12, 0x0059, CH7_0059] +- [0x12, 0x005A, CH7_005A] +- [0x12, 0x005B, CH7_005B] +- [0x12, 0x005C, CH7_005C] +- [0x12, 0x005D, CH7_005D] +- [0x12, 0x005E, CH7_005E] +- [0x12, 0x005F, CH7_005F] +- [0x12, 0x0060, CH7_0060] +- [0x12, 0x0061, CH7_0061] +- [0x12, 0x0062, CH7_0062] +- [0x12, 0x0063, CH7_0063] +- [0x12, 0x0064, CH7_0064] +- [0x12, 0x0065, CH7_0065] +- [0x12, 0x0066, CH7_0066] +- [0x12, 0x0067, CH7_0067] +- [0x12, 0x0068, CH7_0068] +- [0x12, 0x006A, CH7_006A] +- [0x12, 0x006B, CH7_006B] +- [0x12, 0x006C, CH7_006C] +- [0x12, 0x006D, CH7_006D] +- [0x12, 0x006E, CH7_006E] +- [0x12, 0x006F, CH7_006F] +- [0x12, 0x0070, CH7_0070] +- [0x12, 0x0071, CH7_0071] +- [0x12, 0x0072, CH7_0072] +- [0x12, 0x0073, CH7_0073] +- [0x12, 0x0074, CH7_0074] +- [0x12, 0x0075, CH7_0075] +- [0x12, 0x0076, CH7_0076] +- [0x12, 0x0077, CH7_0077] +- [0x12, 0x0078, CH7_0078] +- [0x12, 0x0079, CH7_0079] +- [0x12, 0x007A, CH7_007A] +- [0x12, 0x007B, CH7_007B] +- [0x12, 0x007C, CH7_007C] +- [0x12, 0x007D, CH7_007D] +- [0x12, 0x007E, CH7_007E] +- [0x12, 0x007F, CH7_007F] +- [0x12, 0x0080, CH7_0080] +- [0x12, 0x0081, CH7_0081] +- [0x12, 0x0082, CH7_0082] +- [0x12, 0x0083, CH7_0083] +- [0x12, 0x0084, CH7_0084] +- [0x12, 0x0085, CH7_0085] +- [0x12, 0x0086, CH7_0086] +- [0x12, 0x0087, CH7_0087] +- [0x12, 0x0088, CH7_0088] +- [0x12, 0x0089, CH7_0089] +- [0x12, 0x008A, CH7_008A] +- [0x12, 0x008B, CH7_008B] +- [0x12, 0x008C, CH7_008C] +- [0x12, 0x008D, CH7_008D] +- [0x12, 0x008E, CH7_008E] +- [0x12, 0x008F, CH7_008F] +- [0x12, 0x0090, CH7_0090] +- [0x12, 0x0091, CH7_0091] +- [0x12, 0x0092, CH7_0092] +- [0x12, 0x0093, CH7_0093] +- [0x12, 0x0094, CH7_0094] +- [0x12, 0x0095, CH7_0095] +- [0x12, 0x0096, CH7_0096] +- [0x12, 0x0097, CH7_0097] +- [0x12, 0x0098, CH7_0098] +- [0x12, 0x0099, CH7_0099] +- [0x12, 0x009A, CH7_009A] +- [0x12, 0x009B, CH7_009B] +- [0x12, 0x009C, CH7_009C] +- [0x12, 0x009D, CH7_009D] +- [0x12, 0x009E, CH7_009E] +- [0x12, 0x009F, CH7_009F] +- [0x12, 0x00A0, CH7_00A0] +- [0x12, 0x00A1, CH7_00A1] +- [0x12, 0x00A2, CH7_00A2] +- [0x12, 0x00A3, CH7_00A3] +- [0x12, 0x00A4, CH7_00A4] +- [0x12, 0x00A5, CH7_00A5] +- [0x12, 0x00A6, CH7_00A6] +- [0x12, 0x00A7, CH7_00A7] +- [0x12, 0x00A8, CH7_00A8] +- [0x12, 0x00A9, CH7_00A9] +- [0x12, 0x00AA, CH7_00AA] +- [0x12, 0x00AB, CH7_00AB] +- [0x12, 0x00AC, CH7_00AC] +- [0x12, 0x00AD, CH7_00AD] +- [0x12, 0x00AE, CH7_00AE] +- [0x12, 0x00AF, CH7_00AF] +- [0x12, 0x00B0, CH7_00B0] +- [0x12, 0x00B1, CH7_00B1] +- [0x12, 0x00B2, CH7_00B2] +- [0x12, 0x00B3, CH7_00B3] +- [0x12, 0x00B4, CH7_00B4] +- [0x12, 0x00B5, CH7_00B5] +- [0x12, 0x00B6, CH7_00B6] +- [0x12, 0x00B7, CH7_00B7] +- [0x12, 0x00B8, CH7_00B8] +- [0x12, 0x00B9, CH7_00B9] +- [0x12, 0x00BA, CH7_00BA] +- [0x12, 0x00BB, CH7_00BB] +- [0x12, 0x00BC, CH7_00BC] +- [0x12, 0x00BD, CH7_00BD] +- [0x12, 0x00BE, CH7_00BE] +- [0x12, 0x00BF, CH7_00BF] +- [0x12, 0x00C0, CH7_00C0] +- [0x12, 0x00C1, CH7_00C1] +- [0x12, 0x00C2, CH7_00C2] +- [0x12, 0x00C3, CH7_00C3] +- [0x12, 0x00C4, CH7_00C4] +- [0x12, 0x00C5, CH7_00C5] +- [0x12, 0x00C6, CH7_00C6] +- [0x12, 0x00C7, CH7_00C7] +- [0x12, 0x00C8, CH7_00C8] +- [0x12, 0x00C9, CH7_00C9] +- [0x12, 0x00CA, CH7_00CA] +- [0x12, 0x00CB, CH7_00CB] +- [0x12, 0x00CC, CH7_00CC] +- [0x12, 0x00CD, CH7_00CD] +- [0x12, 0x00CE, CH7_00CE] +- [0x12, 0x00CF, CH7_00CF] +- [0x12, 0x00D0, CH7_00D0] +- [0x12, 0x00D1, CH7_00D1] +- [0x12, 0x00D2, CH7_00D2] +- [0x12, 0x00D3, CH7_00D3] +- [0x12, 0x00D4, CH7_00D4] +- [0x12, 0x00D5, CH7_00D5] +- [0x12, 0x00D6, CH7_00D6] +- [0x12, 0x00D7, CH7_00D7] +- [0x12, 0x00D8, CH7_00D8] +- [0x12, 0x00D9, CH7_00D9] +- [0x12, 0x00DA, CH7_00DA] - [0x12, 0x00DB, CH7_00DB] - [0x12, 0x00DC, CH7_00DC] - [0x12, 0x00DD, CH7_00DD] - [0x12, 0x00DE, CH7_00DE] +- [0x12, 0x00DF, CH7_00DF] +- [0x12, 0x00E0, CH7_00E0] +- [0x12, 0x00E1, CH7_00E1] +- [0x12, 0x00E2, CH7_00E2] +- [0x12, 0x00E3, CH7_00E3] +- [0x12, 0x00E4, CH7_00E4] - [0x12, 0x00E5, CH7_00E5] - [0x12, 0x00E6, CH7_00E6] - [0x12, 0x00E7, CH7_00E7] +- [0x12, 0x00E8, CH7_00E8] +- [0x12, 0x00E9, CH7_00E9] +- [0x12, 0x00EA, CH7_00EA] +- [0x12, 0x00EB, CH7_00EB] +- [0x12, 0x00EC, CH7_00EC] +- [0x12, 0x00ED, CH7_00ED] +- [0x12, 0x00EE, CH7_00EE] +- [0x12, 0x00EF, CH7_00EF] +- [0x12, 0x00F0, CH7_00F0] +- [0x12, 0x00F1, CH7_00F1] +- [0x12, 0x00F2, CH7_00F2] +- [0x12, 0x00F3, CH7_00F3] +- [0x12, 0x00F4, CH7_00F4] +- [0x12, 0x00F5, CH7_00F5] +- [0x12, 0x00F6, CH7_00F6] +- [0x12, 0x00F7, CH7_00F7] +- [0x12, 0x00F8, CH7_00F8] +- [0x12, 0x00F9, CH7_00F9] +- [0x12, 0x00FA, CH7_00FA] +- [0x12, 0x00FB, CH7_00FB] +- [0x12, 0x00FC, CH7_00FC] +- [0x12, 0x00FD, CH7_00FD] +- [0x12, 0x00FE, CH7_00FE] +- [0x12, 0x00FF, CH7_00FF] +- [0x12, 0x0100, CH7_0100] +- [0x12, 0x0101, CH7_0101] +- [0x12, 0x0102, CH7_0102] +- [0x12, 0x0103, CH7_0103] +- [0x12, 0x0104, CH7_0104] +- [0x12, 0x0105, CH7_0105] +- [0x12, 0x0106, CH7_0106] +- [0x12, 0x0107, CH7_0107] +- [0x12, 0x0108, CH7_0108] +- [0x12, 0x0109, CH7_0109] +- [0x12, 0x010A, CH7_010A] +- [0x12, 0x010B, CH7_010B] +- [0x12, 0x010C, CH7_010C] +- [0x12, 0x010D, CH7_010D] +- [0x12, 0x010E, CH7_010E] +- [0x12, 0x010F, CH7_010F] +- [0x12, 0x0110, CH7_0110] +- [0x12, 0x0111, CH7_0111] +- [0x12, 0x0112, CH7_0112] +- [0x12, 0x0113, CH7_0113] +- [0x12, 0x0114, CH7_0114] +- [0x12, 0x0115, CH7_0115] +- [0x12, 0x0116, CH7_0116] +- [0x12, 0x0117, CH7_0117] +- [0x12, 0x0118, CH7_0118] +- [0x12, 0x0119, CH7_0119] +- [0x12, 0x011A, CH7_011A] +- [0x12, 0x011B, CH7_011B] +- [0x12, 0x011C, CH7_011C] +- [0x12, 0x011D, CH7_011D] +- [0x12, 0x011E, CH7_011E] +- [0x12, 0x011F, CH7_011F] +- [0x12, 0x0120, CH7_0120] +- [0x12, 0x0121, CH7_0121] +- [0x12, 0x0122, CH7_0122] +- [0x12, 0x0123, CH7_0123] +- [0x12, 0x0124, CH7_0124] +- [0x12, 0x0125, CH7_0125] +- [0x12, 0x0126, CH7_0126] +- [0x12, 0x0127, CH7_0127] +- [0x12, 0x0128, CH7_0128] +- [0x12, 0x0129, CH7_0129] +- [0x12, 0x012A, CH7_012A] +- [0x12, 0x012B, CH7_012B] +- [0x12, 0x012C, CH7_012C] +- [0x12, 0x012D, CH7_012D] +- [0x12, 0x012E, CH7_012E] +- [0x12, 0x012F, CH7_012F] +- [0x12, 0x0130, CH7_0130] +- [0x12, 0x0131, CH7_0131] +- [0x12, 0x0132, CH7_0132] +- [0x12, 0x0133, CH7_0133] +- [0x12, 0x0134, CH7_0134] +- [0x12, 0x0135, CH7_0135] +- [0x12, 0x0136, CH7_0136] +- [0x12, 0x0137, CH7_0137] +- [0x12, 0x0138, CH7_0138] +- [0x12, 0x0139, CH7_0139] +- [0x12, 0x013A, CH7_013A] +- [0x12, 0x013B, CH7_013B] +- [0x12, 0x013C, CH7_013C] +- [0x12, 0x013D, CH7_013D] +- [0x12, 0x013E, CH7_013E] +- [0x12, 0x013F, CH7_013F] +- [0x12, 0x0140, CH7_0140] +- [0x12, 0x0141, CH7_0141] +- [0x12, 0x0142, CH7_0142] +- [0x12, 0x0143, CH7_0143] +- [0x12, 0x0144, CH7_0144] +- [0x12, 0x0145, CH7_0145] +- [0x12, 0x0146, CH7_0146] +- [0x12, 0x0147, CH7_0147] +- [0x12, 0x0148, CH7_0148] +- [0x12, 0x0149, CH7_0149] +- [0x12, 0x014A, CH7_014A] +- [0x12, 0x014B, CH7_014B] +- [0x12, 0x014C, CH7_014C] +- [0x12, 0x014D, CH7_014D] +- [0x12, 0x014E, CH7_014E] +- [0x12, 0x014F, CH7_014F] +- [0x12, 0x0150, CH7_0150] +- [0x12, 0x0151, CH7_0151] +- [0x12, 0x0152, CH7_0152] +- [0x12, 0x0153, CH7_0153] +- [0x12, 0x0154, CH7_0154] +- [0x12, 0x0155, CH7_0155] +- [0x12, 0x0156, CH7_0156] +- [0x12, 0x0157, CH7_0157] +- [0x12, 0x0158, CH7_0158] +- [0x12, 0x0159, CH7_0159] +- [0x12, 0x015A, CH7_015A] +- [0x12, 0x015B, CH7_015B] +- [0x12, 0x015C, CH7_015C] +- [0x12, 0x015D, CH7_015D] +- [0x12, 0x015E, CH7_015E] +- [0x12, 0x015F, CH7_015F] +- [0x12, 0x0160, CH7_0160] +- [0x12, 0x0161, CH7_0161] +- [0x12, 0x0162, CH7_0162] +- [0x12, 0x0163, CH7_0163] +- [0x12, 0x0164, CH7_0164] +- [0x12, 0x0165, CH7_0165] +- [0x12, 0x0166, CH7_0166] +- [0x12, 0x0167, CH7_0167] +- [0x12, 0x0168, CH7_0168] +- [0x12, 0x0169, CH7_0169] +- [0x12, 0x016A, CH7_016A] +- [0x12, 0x016B, CH7_016B] +- [0x12, 0x016C, CH7_016C] +- [0x12, 0x016D, CH7_016D] +- [0x12, 0x016E, CH7_016E] +- [0x12, 0x016F, CH7_016F] - [0x13, 0x0000, CH8_0000] - [0x13, 0x0001, CH8_0001] - [0x13, 0x0002, CH8_0002] @@ -3702,6 +4528,9 @@ - [0x1B, 0x0003, MapTattle_mac_03] - [0x1B, 0x0004, MapTattle_mac_04] - [0x1B, 0x0005, MapTattle_mac_05] +- [0x1B, 0x0006, MapTattle_mgm_00] +- [0x1B, 0x0007, MapTattle_mgm_01] +- [0x1B, 0x0008, MapTattle_mgm_02] - [0x1B, 0x0009, MapTattle_osr_01] - [0x1B, 0x000A, MapTattle_osr_02] - [0x1B, 0x000B, MapTattle_kkj_10] @@ -3885,12 +4714,47 @@ - [0x1B, 0x00BD, MapTattle_arn_05] - [0x1B, 0x00BE, MapTattle_arn_02] - [0x1B, 0x00BF, MapTattle_arn_04] +- [0x1B, 0x00C0, MapTattle_dgb_00] +- [0x1B, 0x00C1, MapTattle_dgb_01] +- [0x1B, 0x00C2, MapTattle_dgb_02] +- [0x1B, 0x00C3, MapTattle_dgb_03] +- [0x1B, 0x00C4, MapTattle_dgb_04] +- [0x1B, 0x00C5, MapTattle_dgb_05] +- [0x1B, 0x00C6, MapTattle_dgb_06] +- [0x1B, 0x00C7, MapTattle_dgb_07] +- [0x1B, 0x00C8, MapTattle_dgb_08] +- [0x1B, 0x00C9, MapTattle_dgb_09] +- [0x1B, 0x00CA, MapTattle_dgb_10] +- [0x1B, 0x00CB, MapTattle_dgb_11] +- [0x1B, 0x00CC, MapTattle_dgb_12] +- [0x1B, 0x00CD, MapTattle_dgb_13] +- [0x1B, 0x00CE, MapTattle_dgb_14] +- [0x1B, 0x00CF, MapTattle_dgb_15] +- [0x1B, 0x00D0, MapTattle_dgb_16] +- [0x1B, 0x00D1, MapTattle_dgb_17] +- [0x1B, 0x00D2, MapTattle_dgb_18] - [0x1B, 0x00D3, MapTattle_arn_08] - [0x1B, 0x00D4, MapTattle_arn_09] - [0x1B, 0x00D5, MapTattle_arn_10] - [0x1B, 0x00D6, MapTattle_arn_12] - [0x1B, 0x00D7, MapTattle_arn_13] - [0x1B, 0x00D8, MapTattle_arn_11] +- [0x1B, 0x00D9, MapTattle_omo_01] +- [0x1B, 0x00DA, MapTattle_omo_02] +- [0x1B, 0x00DB, MapTattle_omo_03] +- [0x1B, 0x00DC, MapTattle_omo_04] +- [0x1B, 0x00DD, MapTattle_omo_05] +- [0x1B, 0x00DE, MapTattle_omo_06] +- [0x1B, 0x00DF, MapTattle_omo_07] +- [0x1B, 0x00E0, MapTattle_omo_08] +- [0x1B, 0x00E1, MapTattle_omo_09] +- [0x1B, 0x00E2, MapTattle_omo_10] +- [0x1B, 0x00E3, MapTattle_omo_11] +- [0x1B, 0x00E4, MapTattle_omo_12] +- [0x1B, 0x00E5, MapTattle_omo_13] +- [0x1B, 0x00E6, MapTattle_omo_14] +- [0x1B, 0x00E7, MapTattle_omo_15] +- [0x1B, 0x00E8, MapTattle_omo_17] - [0x1B, 0x00E9, MapTattle_kgr_01] - [0x1B, 0x00EA, MapTattle_kgr_02] - [0x1B, 0x00EB, MapTattle_jan_00] @@ -3917,6 +4781,89 @@ - [0x1B, 0x0100, MapTattle_jan_18] - [0x1B, 0x0101, MapTattle_jan_19] - [0x1B, 0x0102, MapTattle_jan_23] +- [0x1B, 0x0103, MapTattle_kzn_01] +- [0x1B, 0x0104, MapTattle_kzn_02] +- [0x1B, 0x0105, MapTattle_kzn_03] +- [0x1B, 0x0106, MapTattle_kzn_04] +- [0x1B, 0x0107, MapTattle_kzn_05] +- [0x1B, 0x0108, MapTattle_kzn_06] +- [0x1B, 0x0109, MapTattle_kzn_07] +- [0x1B, 0x010A, MapTattle_kzn_08] +- [0x1B, 0x010B, MapTattle_kzn_09] +- [0x1B, 0x010C, MapTattle_kzn_10] +- [0x1B, 0x010D, MapTattle_kzn_11] +- [0x1B, 0x010E, MapTattle_kzn_17] +- [0x1B, 0x010F, MapTattle_kzn_18_before] +- [0x1B, 0x0110, MapTattle_kzn_18_after] +- [0x1B, 0x0111, MapTattle_kzn_19] +- [0x1B, 0x0112, MapTattle_kzn_20] +- [0x1B, 0x0113, MapTattle_kzn_22] +- [0x1B, 0x0114, MapTattle_flo_00] +- [0x1B, 0x0115, MapTattle_flo_03] +- [0x1B, 0x0116, MapTattle_flo_07] +- [0x1B, 0x0117, MapTattle_flo_08] +- [0x1B, 0x0118, MapTattle_flo_09] +- [0x1B, 0x0119, MapTattle_flo_10_before] +- [0x1B, 0x011A, MapTattle_flo_10_after] +- [0x1B, 0x011B, MapTattle_flo_11] +- [0x1B, 0x011C, MapTattle_flo_12] +- [0x1B, 0x011D, MapTattle_flo_13] +- [0x1B, 0x011E, MapTattle_flo_14] +- [0x1B, 0x011F, MapTattle_flo_15] +- [0x1B, 0x0120, MapTattle_flo_16] +- [0x1B, 0x0121, MapTattle_flo_17] +- [0x1B, 0x0122, MapTattle_flo_18] +- [0x1B, 0x0123, MapTattle_flo_19] +- [0x1B, 0x0124, MapTattle_flo_21] +- [0x1B, 0x0125, MapTattle_flo_22] +- [0x1B, 0x0126, MapTattle_flo_23] +- [0x1B, 0x0127, MapTattle_flo_24] +- [0x1B, 0x0128, MapTattle_flo_25] +- [0x1B, 0x0129, MapTattle_sam_01] +- [0x1B, 0x012A, MapTattle_sam_02] +- [0x1B, 0x012B, MapTattle_sam_11_before] +- [0x1B, 0x012C, MapTattle_sam_11_after] +- [0x1B, 0x012D, MapTattle_sam_03] +- [0x1B, 0x012E, MapTattle_sam_04] +- [0x1B, 0x012F, MapTattle_sam_05] +- [0x1B, 0x0130, MapTattle_sam_06] +- [0x1B, 0x0131, MapTattle_sam_07] +- [0x1B, 0x0132, MapTattle_sam_08] +- [0x1B, 0x0133, MapTattle_sam_09] +- [0x1B, 0x0134, MapTattle_sam_10] +- [0x1B, 0x0135, MapTattle_sam_12] +- [0x1B, 0x0136, MapTattle_pra_01] +- [0x1B, 0x0137, MapTattle_pra_02] +- [0x1B, 0x0138, MapTattle_pra_03] +- [0x1B, 0x0139, MapTattle_pra_04] +- [0x1B, 0x013A, MapTattle_pra_05] +- [0x1B, 0x013B, MapTattle_pra_06] +- [0x1B, 0x013C, MapTattle_pra_09] +- [0x1B, 0x013D, MapTattle_pra_10] +- [0x1B, 0x013E, MapTattle_pra_11] +- [0x1B, 0x013F, MapTattle_pra_12] +- [0x1B, 0x0140, MapTattle_pra_13] +- [0x1B, 0x0141, MapTattle_pra_14] +- [0x1B, 0x0142, MapTattle_pra_15] +- [0x1B, 0x0143, MapTattle_pra_16] +- [0x1B, 0x0144, MapTattle_pra_18] +- [0x1B, 0x0145, MapTattle_pra_19] +- [0x1B, 0x0146, MapTattle_pra_20] +- [0x1B, 0x0147, MapTattle_pra_21] +- [0x1B, 0x0148, MapTattle_pra_22] +- [0x1B, 0x0149, MapTattle_pra_27] +- [0x1B, 0x014A, MapTattle_pra_28] +- [0x1B, 0x014B, MapTattle_pra_29] +- [0x1B, 0x014C, MapTattle_pra_31] +- [0x1B, 0x014D, MapTattle_pra_32] +- [0x1B, 0x014E, MapTattle_pra_33] +- [0x1B, 0x014F, MapTattle_pra_34] +- [0x1B, 0x0150, MapTattle_pra_35] +- [0x1B, 0x0151, MapTattle_pra_36] +- [0x1B, 0x0152, MapTattle_pra_37] +- [0x1B, 0x0153, MapTattle_pra_38] +- [0x1B, 0x0154, MapTattle_pra_39] +- [0x1B, 0x0155, MapTattle_pra_40] - [0x1B, 0x0156, MapTattle_kpa_63] - [0x1B, 0x0157, MapTattle_kpa_62] - [0x1B, 0x0158, MapTattle_kpa_10] @@ -3972,6 +4919,8 @@ - [0x1B, 0x018A, MapTattle_018A] - [0x1B, 0x018B, MapTattle_018B] - [0x1B, 0x018C, MapTattle_018C] +- [0x1B, 0x018D, MapTattle_018D] +- [0x1B, 0x018E, MapTattle_018E] - [0x1B, 0x018F, MapTattle_kpa_15_before] - [0x1C, 0x0000, NpcTattle_Kolorado] - [0x1C, 0x0001, NpcTattle_Archeologist] @@ -3984,6 +4933,7 @@ - [0x1C, 0x0008, NpcTattle_Merluvlee] - [0x1C, 0x0009, NpcTattle_Merlow] - [0x1C, 0x000A, NpcTattle_Eldstar] +- [0x1C, 0x000B, NpcTattle_Misstar] - [0x1C, 0x000C, NpcTattle_OSR_LovesToClean] - [0x1C, 0x000D, NpcTattle_RipCheato] - [0x1C, 0x000E, NpcTattle_RussT] @@ -4066,6 +5016,11 @@ - [0x1C, 0x005B, NpcTattle_MAC_SeaLover] - [0x1C, 0x005C, NpcTattle_MAC_WellTraveledToad] - [0x1C, 0x005D, NpcTattle_MAC_SingsOffKey] +- [0x1C, 0x005E, NpcTattle_MGM_PlayroomReceptionist] +- [0x1C, 0x005F, NpcTattle_MGM_PlayroomCustomer] +- [0x1C, 0x0060, NpcTattle_MGM_BestPlayroomCustomer] +- [0x1C, 0x0061, NpcTattle_MGM_JumpAttackGuide] +- [0x1C, 0x0062, NpcTattle_MGM_SmashAttackGuide] - [0x1C, 0x0063, NpcTattle_Goompa] - [0x1C, 0x0064, NpcTattle_Gooma] - [0x1C, 0x0065, NpcTattle_Goompapa] @@ -4146,7 +5101,14 @@ - [0x1C, 0x00B0, NpcTattle_ARN_BooF] - [0x1C, 0x00B1, NpcTattle_ARN_BooG] - [0x1C, 0x00B2, NpcTattle_ARN_BooH] +- [0x1C, 0x00B3, NpcTattle_HidingBoo] - [0x1C, 0x00B4, NpcTattle_Yakkey] +- [0x1C, 0x00B5, NpcTattle_BraveBoo] +- [0x1C, 0x00B6, NpcTattle_LastClubba] +- [0x1C, 0x00B7, NpcTattle_GourmetGuy] +- [0x1C, 0x00B8, NpcTattle_OMO_TrainConductor] +- [0x1C, 0x00B9, NpcTattle_OMO_Lantern] +- [0x1C, 0x00BA, NpcTattle_AntiGuy] - [0x1C, 0x00BB, NpcTattle_MAC_ShyGuyShopOwner] - [0x1C, 0x00BC, NpcTattle_VillageLeader] - [0x1C, 0x00BD, NpcTattle_LeadersFriend] @@ -4171,8 +5133,61 @@ - [0x1C, 0x00D1, NpcTattle_JAN_Bubulb_Revealed] - [0x1C, 0x00D2, NpcTattle_HeartPlant] - [0x1C, 0x00D3, NpcTattle_MBush] +- [0x1C, 0x00D4, NpcTattle_FLO_BubulbA] +- [0x1C, 0x00D5, NpcTattle_FLO_BubulbB] +- [0x1C, 0x00D6, NpcTattle_FLO_BubulbC] +- [0x1C, 0x00D7, NpcTattle_FLO_BubulbD] +- [0x1C, 0x00D8, NpcTattle_Tolielup] +- [0x1C, 0x00D9, NpcTattle_RedGateFlower] +- [0x1C, 0x00DA, NpcTattle_YellowGateFlower] +- [0x1C, 0x00DB, NpcTattle_BlueGateFlower] +- [0x1C, 0x00DC, NpcTattle_Petunia] +- [0x1C, 0x00DD, NpcTattle_Posie] +- [0x1C, 0x00DE, NpcTattle_Lily] +- [0x1C, 0x00DF, NpcTattle_Rosie] +- [0x1C, 0x00E0, NpcTattle_TheSun] +- [0x1C, 0x00E1, NpcTattle_Lakilulu] +- [0x1C, 0x00E2, NpcTattle_BubblePlant] +- [0x1C, 0x00E3, NpcTattle_PuffPuffOperator] - [0x1C, 0x00E4, NpcTattle_MayorPenguinWife] - [0x1C, 0x00E5, NpcTattle_MayorPenguin] +- [0x1C, 0x00E6, NpcTattle_SAM_GossipPenguin] +- [0x1C, 0x00E7, NpcTattle_SAM_FriendlyPenguin] +- [0x1C, 0x00E8, NpcTattle_SAM_CheerfulPenguin] +- [0x1C, 0x00E9, NpcTattle_SAM_GenericPenguin] +- [0x1C, 0x00EA, NpcTattle_SAM_ShopOwner] +- [0x1C, 0x00EB, NpcTattle_SAM02_ToadHouseToad] +- [0x1C, 0x00EC, NpcTattle_SAM_RumorLovingPenguins] +- [0x1C, 0x00ED, NpcTattle_SAM_NotAdventurous] +- [0x1C, 0x00EE, NpcTattle_SAM_CorroboratesRumors] +- [0x1C, 0x00EF, NpcTattle_SAM_EasyGoing] +- [0x1C, 0x00F0, NpcTattle_SAM_NeverLeavesTown] +- [0x1C, 0x00F1, NpcTattle_SAM_VisitedTheDojo] +- [0x1C, 0x00F2, NpcTattle_SAM_Patrol] +- [0x1C, 0x00F3, NpcTattle_SAM_Gatekeeper] +- [0x1C, 0x00F4, NpcTattle_Herringway] +- [0x1C, 0x00F5, NpcTattle_SAM_SnowMaster] +- [0x1C, 0x00F6, NpcTattle_SAM_Skater] +- [0x1C, 0x00F7, NpcTattle_SAM_WarehouseGuard] +- [0x1C, 0x00F8, NpcTattle_SAM_HerringwayLoiterer] +- [0x1C, 0x00F9, NpcTattle_SAM_TimidPenguin] +- [0x1C, 0x00FA, NpcTattle_Merle] +- [0x1C, 0x00FB, NpcTattle_SAM_ShiverToadA] +- [0x1C, 0x00FC, NpcTattle_SAM_ShiverToadB] +- [0x1C, 0x00FD, NpcTattle_SAM_ShiverToadC] +- [0x1C, 0x00FE, NpcTattle_SAM_NinjiA] +- [0x1C, 0x00FF, NpcTattle_SAM_NinjiB] +- [0x1C, 0x0100, NpcTattle_SAM_NinjiC] +- [0x1C, 0x0101, NpcTattle_SAM_StarKidA] +- [0x1C, 0x0102, NpcTattle_SAM_StarKidB] +- [0x1C, 0x0103, NpcTattle_SAM_PranksterStarKid] +- [0x1C, 0x0104, NpcTattle_SAM06_ToadHouseToad] +- [0x1C, 0x0105, NpcTattle_SAM_NinjiD] +- [0x1C, 0x0106, NpcTattle_SAM_BabyStarKid] +- [0x1C, 0x0107, NpcTattle_SAM_StarKidC] +- [0x1C, 0x0108, NpcTattle_SAM_StarKidD] +- [0x1C, 0x0109, NpcTattle_Snowman] +- [0x1C, 0x010A, NpcTattle_AlbinoDino] - [0x1C, 0x010B, NpcTattle_HOS_ShopOwner] - [0x1C, 0x010C, NpcTattle_HOS_ToadHouseStarKid] - [0x1C, 0x010D, NpcTattle_HOS_StarKidA] @@ -4439,11 +5454,38 @@ - [0x20, 0x002E, Menus_StarPowerDesc_UpAndAway] - [0x20, 0x002F, Menus_StarPowerDesc_StarBeam] - [0x20, 0x0030, Menus_StarPowerDesc_PeachBeam] +- [0x20, 0x0031, Menus_SpiritName_Eldstar] +- [0x20, 0x003F, Menus_SpiritDesc_Eldstar] +- [0x20, 0x0048, Menus_JP_0048] # duplicate of Menus_Hammer +- [0x20, 0x0049, Menus_JP_0049] # duplicate of Menus_Jump +- [0x20, 0x004A, Menus_StarSpirits] +- [0x20, 0x004B, Menus_RunAway] +- [0x20, 0x004C, Menus_DoNothing] - [0x20, 0x004D, Menus_PartyMember] +- [0x20, 0x004E, Menus_ChangeMember] - [0x20, 0x004F, Menus_JP_004F] # duplicate of Menus_Items - [0x20, 0x0050, Menus_KeyItems] - [0x20, 0x0051, Menus_DoubleDip] - [0x20, 0x0052, Menus_TripleDip] +- [0x20, 0x0053, Menus_Strategies] +- [0x20, 0x0054, Menus_Defense] +- [0x20, 0x0055, Menus_Abilities] +- [0x20, 0x0056, Menus_ActLater] +- [0x20, 0x0058, Menus_Focus] +- [0x20, 0x005A, Menus_Hammer_Centered] +- [0x20, 0x005B, Menus_Jump_Centered] +- [0x20, 0x005C, Menus_StarSpirits_Centered] +- [0x20, 0x005D, Menus_RunAway_Centered] +- [0x20, 0x005E, Menus_DoNothing_Centered] +- [0x20, 0x0060, Menus_ChangeMember_Centered] +- [0x20, 0x0061, Menus_Items_Centered] +- [0x20, 0x0062, Menus_Strategies_Centered] +- [0x20, 0x0063, Menus_Defense_Centered] +- [0x20, 0x0064, Menus_Abilities_Centered] +- [0x20, 0x0065, Menus_EndTraining_Centered] +- [0x20, 0x0066, Menus_Focus_Centered] +- [0x20, 0x0067, Menus_ActLater_Centered] +- [0x20, 0x0068, Menus_Dash_Centered] - [0x20, 0x0069, Menus_Jump] - [0x20, 0x006A, Menus_Hammer] - [0x20, 0x006B, Menus_Items] @@ -4519,6 +5561,11 @@ - [0x20, 0x00B1, Menus_TurboChargeBegin] - [0x20, 0x00B2, Menus_TurboChargeEnd] - [0x20, 0x00B3, Menus_ChillOutBegin] +- [0x20, 0x00B6, Menus_NotEnoughFP] +- [0x20, 0x00B7, Menus_NotEnoughStarPower] +- [0x20, 0x00B8, Menus_Action_ChangePartner] +- [0x20, 0x00B9, Menus_Action_DoNothing] +- [0x20, 0x00BA, Menus_Action_RunAway] - [0x20, 0x00BB, Menus_Action_UseItem] - [0x20, 0x00BD, Menus_LevelUp_HP] - [0x20, 0x00BE, Menus_LevelUp_FP] @@ -4553,11 +5600,15 @@ - [0x20, 0x00DB, Menus_JP_00DB] - [0x20, 0x00DC, Menus_JP_00DC] - [0x20, 0x00DD, Menus_Battle_CantSelectNow] +- [0x20, 0x00DE, Menus_Battle_TargetMario] +- [0x20, 0x00DF, Menus_Battle_TargetAllEnemies] - [0x20, 0x00E0, Menus_Battle_CantUseHammer] - [0x20, 0x00E1, Menus_Battle_CantUseJump] - [0x20, 0x00E2, Menus_Battle_CantUseItems] - [0x20, 0x00E3, Menus_Battle_CantSwitch] - [0x20, 0x00E4, Menus_Battle_CantMove] +- [0x20, 0x00E5, Menus_Battle_CantSwitch2] +- [0x20, 0x00E6, Menus_Battle_CantRunAway] - [0x20, 0x00E7, Menus_00CD] - [0x20, 0x00E8, Menus_00CE] - [0x20, 0x00EA, Menus_00D0] @@ -4594,10 +5645,18 @@ - [0x20, 0x0109, Menus_00EF] - [0x20, 0x010A, Menus_00F0] - [0x20, 0x010B, Menus_00F1] +- [0x20, 0x010C, Menus_00F2] +- [0x20, 0x010D, Menus_00F3] - [0x20, 0x0172, Menus_Inspect_Toybox] - [0x20, 0x0173, Menus_Inspect_ChompStatue] - [0x20, 0x0174, Menus_Inspect_Phonograph] - [0x20, 0x0175, Menus_Inspect_RaphaelStatue] +- [0x20, 0x0176, Menus_Inspect_Well] +- [0x20, 0x0177, Menus_Inspect_Snowman] +- [0x20, 0x0178, Menus_SAM09_PlaceItemTip] +- [0x20, 0x0179, Menus_Inspect_PickUpPrompt] +- [0x20, 0x017A, Menus_Inspect_CantCarryMore] +- [0x20, 0x017B, Menus_SAM10_PlaceItemTip] - [0x20, 0x017C, Menus_ISK11_TakeItemPrompt] - [0x20, 0x017E, Menus_Inspect_DoesntOpen] - [0x20, 0x017F, Menus_Inspect_FoundHammer] @@ -4632,6 +5691,7 @@ - [0x20, 0x019E, Menus_0182] - [0x20, 0x019F, Menus_0183] - [0x20, 0x01A0, Menus_0184] +- [0x20, 0x01A2, Menus_0186] - [0x20, 0x01A3, Menus_0187] - [0x20, 0x01A4, Menus_0188] - [0x20, 0x01A5, Menus_0189] @@ -4639,12 +5699,16 @@ - [0x20, 0x01A7, Menus_018B] - [0x20, 0x01A8, Menus_018C] - [0x20, 0x01A9, Menus_018D] +- [0x20, 0x01AA, Menus_018E] - [0x20, 0x01AB, Menus_018F] +- [0x20, 0x01AC, Menus_0190] - [0x20, 0x01AD, Menus_0191] - [0x20, 0x01AE, Menus_0192] - [0x20, 0x01AF, Menus_0193] - [0x20, 0x01B0, Menus_0194] - [0x20, 0x01B1, Menus_0195] +- [0x20, 0x01B2, Menus_0196] +- [0x20, 0x01B3, Menus_0197] - [0x20, 0x01B4, Menus_0198] - [0x20, 0x01B5, Menus_0199] - [0x20, 0x01B6, Menus_019A] @@ -4686,6 +5750,7 @@ - [0x21, 0x0012, Choice_0012] - [0x21, 0x0013, Choice_0013] - [0x21, 0x0014, Choice_0014] +- [0x21, 0x0015, Choice_0015] - [0x21, 0x0016, Choice_0016] - [0x21, 0x0017, Choice_0017] - [0x21, 0x0018, Choice_0018] @@ -4695,6 +5760,9 @@ - [0x21, 0x001C, Choice_001C] - [0x21, 0x001D, Choice_001D] - [0x21, 0x001E, Choice_001E] +- [0x21, 0x001F, Choice_001F] +- [0x21, 0x0020, Choice_0020] +- [0x21, 0x0021, Choice_0021] - [0x21, 0x0022, Choice_0022] - [0x21, 0x0023, Choice_0023] - [0x21, 0x0024, Choice_0024] @@ -4716,6 +5784,20 @@ - [0x21, 0x0034, Choice_0034] - [0x21, 0x0035, Choice_0035] - [0x21, 0x0036, Choice_0036] +- [0x21, 0x0037, Choice_0037] +- [0x21, 0x0038, Choice_0038] +- [0x21, 0x0039, Choice_0039] +- [0x21, 0x003A, Choice_003A] +- [0x21, 0x003B, Choice_003B] +- [0x21, 0x003C, Choice_003C] +- [0x21, 0x003D, Choice_003D] +- [0x21, 0x003E, Choice_003E] +- [0x21, 0x003F, Choice_003F] +- [0x21, 0x0040, Choice_0040] +- [0x21, 0x0041, Choice_0041] +- [0x21, 0x0042, Choice_0042] +- [0x21, 0x0043, Choice_0043] +- [0x21, 0x0044, Choice_0044] - [0x21, 0x0045, Choice_0045] - [0x21, 0x0046, Choice_0046] - [0x21, 0x0047, Choice_0047] @@ -4725,9 +5807,62 @@ - [0x21, 0x004B, Choice_004B] - [0x21, 0x004C, Choice_004C] - [0x21, 0x004D, Choice_004D] +- [0x21, 0x004E, Choice_004E] +- [0x21, 0x004F, Choice_004F] - [0x22, 0x0001, MenuTip_0032] - [0x22, 0x000B, MenuTip_0034] +- [0x22, 0x000C, MenuTip_JP_000C] +- [0x22, 0x0013, MenuTip_None] - [0x22, 0x0014, MenuTip_0033] +- [0x22, 0x001B, MenuTip_StatsTab] +- [0x22, 0x001C, MenuTip_BadgesTab] +- [0x22, 0x001D, MenuTip_ItemsTab] +- [0x22, 0x001E, MenuTip_PartyTab] +- [0x22, 0x001F, MenuTip_SpiritsTab] +- [0x22, 0x0020, MenuTip_MapTab] +- [0x22, 0x0021, MenuTip_ControllingMario] +- [0x22, 0x0022, MenuTip_HeartPoints] +- [0x22, 0x0023, MenuTip_FlowerPoints] +- [0x22, 0x0024, MenuTip_BadgePoints] +- [0x22, 0x0025, MenuTip_Boots1] +- [0x22, 0x0026, MenuTip_Boots2] +- [0x22, 0x0027, MenuTip_Boots3] +- [0x22, 0x0028, MenuTip_Hammer0] +- [0x22, 0x0029, MenuTip_Hammer1] +- [0x22, 0x002A, MenuTip_Hammer2] +- [0x22, 0x002B, MenuTip_Hammer3] +- [0x22, 0x002C, MenuTip_StarPower] +- [0x22, 0x002D, MenuTip_StarPoints] +- [0x22, 0x002E, MenuTip_Coins] +- [0x22, 0x002F, MenuTip_Secrets] +- [0x22, 0x0030, MenuTip_StarPieces] +- [0x22, 0x0031, MenuTip_Time] +- [0x22, 0x0032, MenuTip_ItemTab_KeyItems] +- [0x22, 0x0033, MenuTip_ItemTab_Consumables] +- [0x22, 0x0034, MenuTip_BadgeTab_All] +- [0x22, 0x0035, MenuTip_BadgeTab_Equipped] +- [0x22, 0x0036, MenuTip_BadgeTutorial_01] +- [0x22, 0x0037, MenuTip_BadgeTutorial_02] +- [0x22, 0x0038, MenuTip_BadgeTutorial_03] +- [0x22, 0x0039, MenuTip_BadgeTutorial_04] +- [0x22, 0x003A, MenuTip_BadgeTutorial_05] +- [0x22, 0x003B, MenuTip_BadgeTutorial_06] +- [0x22, 0x003C, MenuTip_BadgeTutorial_07] +- [0x22, 0x003D, MenuTip_BadgeTutorial_08] +- [0x22, 0x003E, MenuTip_BadgeTutorial_09] +- [0x22, 0x003F, MenuTip_BadgeTutorial_10] +- [0x22, 0x0040, MenuTip_BadgeTutorial_11] +- [0x22, 0x0041, MenuTip_BadgeTutorial_12] +- [0x22, 0x0042, MenuTip_BadgeTutorial_13] +- [0x22, 0x0043, MenuTip_BadgeTutorial_14] +- [0x22, 0x0044, MenuTip_BadgeTutorial_15] +- [0x22, 0x0045, MenuTip_002B] +- [0x22, 0x0046, MenuTip_002C] +- [0x22, 0x0047, MenuTip_002D] +- [0x22, 0x0048, MenuTip_002E] +- [0x22, 0x0049, MenuTip_002F] +- [0x22, 0x004A, MenuTip_0030] +- [0x22, 0x004B, MenuTip_0031] - [0x23, 0x0000, Document_Letter_Mario01_Body] - [0x23, 0x0001, Document_Letter_Mario01_From] - [0x23, 0x0002, Document_Letter_Mario02_Body] @@ -6213,6 +7348,29 @@ - [0x2D, 0x008B, Shop_14_JAN03] - [0x2D, 0x008C, Shop_15_JAN03] - [0x2D, 0x008D, Shop_16_JAN03] +- [0x2D, 0x008E, Shop_00_SAM02] +- [0x2D, 0x008F, Shop_01_SAM02] +- [0x2D, 0x0090, Shop_02_SAM02] +- [0x2D, 0x0091, Shop_03_SAM02] +- [0x2D, 0x0092, Shop_04_SAM02] +- [0x2D, 0x0093, Shop_05_SAM02] +- [0x2D, 0x0094, Shop_06_SAM02] +- [0x2D, 0x0095, Shop_07_SAM02] +- [0x2D, 0x0096, Shop_08_SAM02] +- [0x2D, 0x0097, Shop_09_SAM02] +- [0x2D, 0x0098, Shop_0A_SAM02] +- [0x2D, 0x0099, Shop_0B_SAM02] +- [0x2D, 0x009A, Shop_0C_SAM02] +- [0x2D, 0x009B, Shop_0D_SAM02] +- [0x2D, 0x009C, Shop_0E_SAM02] +- [0x2D, 0x009D, Shop_0F_SAM02] +- [0x2D, 0x009E, Shop_10_SAM02] +- [0x2D, 0x009F, Shop_11_SAM02] +- [0x2D, 0x00A0, Shop_12_SAM02] +- [0x2D, 0x00A1, Shop_13_SAM02] +- [0x2D, 0x00A2, Shop_14_SAM02] +- [0x2D, 0x00A3, Shop_15_SAM02] +- [0x2D, 0x00A4, Shop_16_SAM02] - [0x2D, 0x00A5, Shop_00_HOS03] - [0x2D, 0x00A6, Shop_01_HOS03] - [0x2D, 0x00A7, Shop_02_HOS03] @@ -6265,6 +7423,7 @@ - [0x2E, 0x0003, PartnerDesc_Goombario_Battle_Tattle] - [0x2E, 0x0004, PartnerDesc_Goombario_Battle_Charge] - [0x2E, 0x0005, PartnerDesc_Goombario_Battle_Multibonk] +- [0x2E, 0x0006, PartnerDesc_Goombario_Pause] - [0x2E, 0x0007, PartnerDesc_Goombario_Pause_Headbonk1] - [0x2E, 0x0008, PartnerDesc_Goombario_Pause_Headbonk2] - [0x2E, 0x0009, PartnerDesc_Goombario_Pause_Headbonk3] @@ -6277,6 +7436,7 @@ - [0x2E, 0x0010, PartnerDesc_Kooper_Battle_PowerShell] - [0x2E, 0x0011, PartnerDesc_Kooper_Battle_DizzyShell] - [0x2E, 0x0012, PartnerDesc_Kooper_Battle_FireShell] +- [0x2E, 0x0013, PartnerDesc_Kooper_Pause] - [0x2E, 0x0014, PartnerDesc_Kooper_Pause_ShellToss1] - [0x2E, 0x0015, PartnerDesc_Kooper_Pause_ShellToss2] - [0x2E, 0x0016, PartnerDesc_Kooper_Pause_ShellToss3] @@ -6289,6 +7449,7 @@ - [0x2E, 0x001D, PartnerDesc_Bombette_Battle_Bomb] - [0x2E, 0x001E, PartnerDesc_Bombette_Battle_PowerBomb] - [0x2E, 0x001F, PartnerDesc_Bombette_Battle_MegaBomb] +- [0x2E, 0x0020, PartnerDesc_Bombette_Pause] - [0x2E, 0x0021, PartnerDesc_Bombette_Pause_BodySlam1] - [0x2E, 0x0022, PartnerDesc_Bombette_Pause_BodySlam2] - [0x2E, 0x0023, PartnerDesc_Bombette_Pause_BodySlam3] @@ -6301,6 +7462,7 @@ - [0x2E, 0x002A, PartnerDesc_Parakarry_Battle_ShellShot] - [0x2E, 0x002B, PartnerDesc_Parakarry_Battle_AirLift] - [0x2E, 0x002C, PartnerDesc_Parakarry_Battle_AirRaid] +- [0x2E, 0x002D, PartnerDesc_Parakarry_Pause] - [0x2E, 0x002E, PartnerDesc_Parakarry_Pause_SkyDive1] - [0x2E, 0x002F, PartnerDesc_Parakarry_Pause_SkyDive2] - [0x2E, 0x0030, PartnerDesc_Parakarry_Pause_SkyDive3] @@ -6313,6 +7475,7 @@ - [0x2E, 0x0037, PartnerDesc_Bow_Battle_OuttaSight] - [0x2E, 0x0038, PartnerDesc_Bow_Battle_Spook] - [0x2E, 0x0039, PartnerDesc_Bow_Battle_FanSmack] +- [0x2E, 0x003A, PartnerDesc_Bow_Pause] - [0x2E, 0x003B, PartnerDesc_Bow_Pause_Smack1] - [0x2E, 0x003C, PartnerDesc_Bow_Pause_Smack2] - [0x2E, 0x003D, PartnerDesc_Bow_Pause_Smack3] @@ -6325,6 +7488,7 @@ - [0x2E, 0x0044, PartnerDesc_Watt_Battle_PowerShock] - [0x2E, 0x0045, PartnerDesc_Watt_Battle_TurboCharge] - [0x2E, 0x0046, PartnerDesc_Watt_Battle_MegaShock] +- [0x2E, 0x0047, PartnerDesc_Watt_Pause] - [0x2E, 0x0048, PartnerDesc_Watt_Pause_ElectroDash1] - [0x2E, 0x0049, PartnerDesc_Watt_Pause_ElectroDash2] - [0x2E, 0x004A, PartnerDesc_Watt_Pause_ElectroDash3] @@ -6337,6 +7501,7 @@ - [0x2E, 0x0051, PartnerDesc_Sushie_Battle_Squirt] - [0x2E, 0x0052, PartnerDesc_Sushie_Battle_WaterBlock] - [0x2E, 0x0053, PartnerDesc_Sushie_Battle_TidalWave] +- [0x2E, 0x0054, PartnerDesc_Sushie_Pause] - [0x2E, 0x0055, PartnerDesc_Sushie_Pause_BellyFlop1] - [0x2E, 0x0056, PartnerDesc_Sushie_Pause_BellyFlop2] - [0x2E, 0x0057, PartnerDesc_Sushie_Pause_BellyFlop3] @@ -6349,6 +7514,7 @@ - [0x2E, 0x005E, PartnerDesc_Lakilester_Battle_SpinySurge] - [0x2E, 0x005F, PartnerDesc_Lakilester_Battle_CloudNine] - [0x2E, 0x0060, PartnerDesc_Lakilester_Battle_Hurricane] +- [0x2E, 0x0061, PartnerDesc_Lakilester_Pause] - [0x2E, 0x0062, PartnerDesc_Lakilester_Pause_SpinyFlip1] - [0x2E, 0x0063, PartnerDesc_Lakilester_Pause_SpinyFlip2] - [0x2E, 0x0064, PartnerDesc_Lakilester_Pause_SpinyFlip3] @@ -6572,3 +7738,110 @@ - [0x31, 0x00A2, EnemyName_RedGoomba] - [0x31, 0x00A3, EnemyName_RedParagoomba] - [0x31, 0x00A4, EnemyName_GoombarioTutor] +- [0x32, 0x0000, Credits_0000] +- [0x32, 0x0001, Credits_0001] +- [0x32, 0x0005, Credits_0005] +- [0x32, 0x0006, Credits_0006] +- [0x32, 0x0007, Credits_0007] +- [0x32, 0x0008, Credits_0008] +- [0x32, 0x0009, Credits_0009] +- [0x32, 0x000A, Credits_000A] +- [0x32, 0x000B, Credits_000B] +- [0x32, 0x000C, Credits_000C] +- [0x32, 0x000D, Credits_000D] +- [0x32, 0x000E, Credits_000E] +- [0x32, 0x000F, Credits_000F] +- [0x32, 0x0010, Credits_0010] +- [0x32, 0x0011, Credits_0011] +- [0x32, 0x0012, Credits_0012] +- [0x32, 0x0013, Credits_0013] +- [0x32, 0x0014, Credits_0014] +- [0x32, 0x0015, Credits_0015] +- [0x32, 0x0016, Credits_0016] +- [0x32, 0x0017, Credits_0017] +- [0x32, 0x0018, Credits_0018] +- [0x32, 0x0019, Credits_0019] +- [0x32, 0x001A, Credits_001A] +- [0x32, 0x001B, Credits_001B] +- [0x32, 0x001C, Credits_001C] +- [0x32, 0x001D, Credits_001D] +- [0x32, 0x001E, Credits_001E] +- [0x32, 0x001F, Credits_001F] +- [0x32, 0x0020, Credits_0020] +- [0x32, 0x0021, Credits_0021] +- [0x32, 0x0022, Credits_0022] +- [0x32, 0x0023, Credits_0023] +- [0x32, 0x0029, Credits_002D] +- [0x32, 0x002A, Credits_002E] +- [0x32, 0x002B, Credits_002F] +- [0x32, 0x002C, Credits_0030] +- [0x32, 0x002D, Credits_0031] +- [0x32, 0x002E, Credits_0032] +- [0x32, 0x002F, Credits_0033] +- [0x32, 0x0030, Credits_0034] +- [0x32, 0x0031, Credits_0035] +- [0x32, 0x0032, Credits_0036] +- [0x32, 0x0033, Credits_0037] +- [0x32, 0x0034, Credits_0038] +- [0x32, 0x0035, Credits_0039] +- [0x32, 0x0036, Credits_003A] +- [0x32, 0x0037, Credits_003B] +- [0x32, 0x0038, Credits_003C] +- [0x32, 0x0039, Credits_003D] +- [0x32, 0x003A, Credits_003E] +- [0x32, 0x003B, Credits_003F] +- [0x32, 0x003C, Credits_0040] +- [0x32, 0x003D, Credits_0041] +- [0x32, 0x003E, Credits_0042] +- [0x32, 0x003F, Credits_0043] +- [0x32, 0x0040, Credits_0044] +- [0x32, 0x0041, Credits_0045] +- [0x32, 0x0042, Credits_0046] +- [0x32, 0x0043, Credits_0047] +- [0x32, 0x0044, Credits_0048] +- [0x32, 0x0045, Credits_0049] +- [0x32, 0x0046, Credits_004A] +- [0x32, 0x0047, Credits_004B] +- [0x32, 0x0048, Credits_004C] +- [0x32, 0x0049, Credits_004D] +- [0x32, 0x004A, Credits_004E] +- [0x32, 0x004B, Credits_004F] +- [0x32, 0x004C, Credits_0050] +- [0x32, 0x004D, Credits_0051] +- [0x32, 0x004E, Credits_0052] +- [0x32, 0x004F, Credits_0053] +- [0x32, 0x0050, Credits_0054] +- [0x32, 0x0051, Credits_0055] +- [0x32, 0x0052, Credits_0056] +- [0x32, 0x0053, Credits_0057] +- [0x32, 0x0054, Credits_0058] +- [0x32, 0x0055, Credits_0059] +- [0x32, 0x0056, Credits_005A] +- [0x32, 0x0057, Credits_005B] +- [0x32, 0x0058, Credits_005C] +- [0x32, 0x0059, Credits_005D] +- [0x32, 0x005A, Credits_005E] +- [0x32, 0x005B, Credits_005F] +- [0x32, 0x005C, Credits_0060] +- [0x32, 0x005D, Credits_0061] +- [0x32, 0x0061, Credits_0065] +- [0x32, 0x0062, Credits_0066] +- [0x32, 0x0063, Credits_0067] +- [0x32, 0x0064, Credits_0068] +- [0x32, 0x0065, Credits_0069] +- [0x32, 0x0066, Credits_006A] +- [0x32, 0x0067, Credits_006B] +- [0x32, 0x0068, Credits_006C] +- [0x32, 0x0069, Credits_006D] +- [0x32, 0x006A, Credits_006E] +- [0x32, 0x006B, Credits_006F] +- [0x32, 0x006C, Credits_0070] +- [0x32, 0x006D, Credits_0071] +- [0x32, 0x006E, Credits_0072] +- [0x32, 0x006F, Credits_0073] +- [0x32, 0x0070, Credits_0074] +- [0x32, 0x0071, Credits_0075] +- [0x32, 0x0072, Credits_0076] +- [0x32, 0x0081, Credits_0085] +- [0x32, 0x0082, Credits_0086] +- [0x32, 0x0083, Credits_0087] diff --git a/ver/ique/splat.yaml b/ver/ique/splat.yaml index fd56752881f..505f361fe31 100644 --- a/ver/ique/splat.yaml +++ b/ver/ique/splat.yaml @@ -11240,7 +11240,7 @@ segments: subsegments: - [0xC511A0, rgba16, img7, 32, 32] - [0xC519A0, gfx, img7] - - [0xC51A20, .data, gfx] # TODO needs additioanl cleanup and gfx splitting + - [0xC51A20, .data, gfx] # TODO needs additional cleanup and gfx splitting - [0xC696A0] - name: dgb_01_smash_bridges # DMAd at the beginning of tubba blubba's castle (bridge cutscene) type: code diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index 43b454f6e45..24ff461e03b 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -823,6 +823,14 @@ segments: - [0xE86A0, vtx, vtx/stencil2] - [0xE8820] + - name: heaps + type: code + start: 0xEB1A0 + vram: 0x80197000 + subalign: 0x1000 + subsegments: + - [auto, c, heaps] + - name: evt dir: evt type: code @@ -959,6 +967,12 @@ segments: - [auto, palette, ui/msg/rewind_arrow] - [auto, rgba16, ui/msg/star, 16, 18] - [auto, i4, ui/msg/star_silhouette, 16, 20] + - type: code + name: heaps3 + start: 0x10F330 + vram: 0x802FB800 + subsegments: + - [auto, c, heaps3] - type: code dir: charset vram: 0 @@ -1156,8 +1170,58 @@ segments: - [auto, ci4, ui/pause/unused_bubble, 56, 16] - [auto, palette, ui/pause/unused_bubble] - [auto, .data, menu_hud_scripts] + - type: code + dir: pause + start: 0x13E130 + vram: 0x80242370 + subsegments: + - [auto, c, pause_main] + - [auto, c, pause_tabs] + - [auto, c, pause_stats] + - [auto, c, pause_badges] + - [auto, c, pause_items] + - [auto, c, pause_partners] + - [auto, c, pause_spirits] + - [auto, c, pause_map] + - [auto, c, pause_gfx] + - [auto, c, pause_styles] + - start: 0x14BB90 + type: .data + name: pause_gfx + subsegments: + - [0x14BB90, ia8, image_1439F0, 16, 32] + - [0x14BD90, ia8, image_143BF0, 16, 64] + - [0x14C190, ia8, image_143FF0, 16, 64] + - [0x14C590, ci8, world_map, 320, 320] + - [0x165590, palette, world_map] + - [0x165790, ci4, spirits_bg, 128, 110] + - [0x167310, palette, spirits_bg] + - [0x167510, rgba16, orbs, 8, 32] + - [0x167710, ia8, map_location, 16, 16] + - [0x167810, ia8, map_path_marker, 16, 16] + - [0x167910, ia4, map_arrows, 16, 64] + - [0x167B10, ci4, banner_hp, 64, 16] + - [0x167D10, palette, banner_hp] + - [0x167F10, ci4, banner_fp, 64, 16] + - [0x168110, palette, banner_fp] + - [0x168310, ci4, banner_bp, 64, 16] + - [0x168510, palette, banner_bp] + - [0x168710, ci4, banner_boots, 48, 16] + - [0x168890, palette, banner_boots] + - [0x168A90, ci4, banner_hammer, 48, 16] + - [0x168C10, palette, banner_hammer] + - [0x168E10, ci4, stats_bar, 160, 8] + - [0x169090, palette, stats_bar] + - [0x169290, ci4, banner_star_energy, 48, 16] + - [0x169410, palette, banner_star_energy] + - [0x169610, ci4, available, 64, 16] + - [0x169810, palette, available] + - [0x169A10, ci4, prompt_check_abilities, 128, 16] + - [0x169E10, palette, prompt_check_abilities] + - [0x16A010, .data, pause_gfx] + - [0x16B3F0] - - [0x13E130, bin] + - [0x16B550, bin] - name: battle_code type: code @@ -1400,9 +1464,37 @@ segments: - ["flip_card_3", 0xC6150] - ["cymbal_crush", 0xCA380] - [0x31DF90, pm_sprite_shading_profiles, sprite_shading_profiles] - - - [0x31EE00, bin] - + - type: code + start: 0x31EE00 + name: create_audio_system_obfuscated + vram: 0x80200000 + subsegments: + - [auto, c, create_audio_system_obfuscated] + - type: code + start: 0x31EE80 + vram: 0x80200080 + name: load_engine_data_obfuscated + follows_vram: create_audio_system_obfuscated + subsegments: + - [auto, c, load_engine_data_obfuscated] + - type: code + start: 0x31F010 + name: general_heap_create_obfuscated + vram: 0x802AE000 + subsegments: + - [auto, c, general_heap_create_obfuscated] + - type: code + start: 0x31F1A0 + name: battle_heap_create_obfuscated + vram: 0x802AE000 + subsegments: + - [auto, c, battle_heap_create_obfuscated] + - type: code + start: 0x31F340 + name: obfuscation_shims + vram: 0x802B2000 + subsegments: + - [auto, c, obfuscation_shims] - type: code dir: world/partner name: world_partner_goombario @@ -5541,8 +5633,12 @@ segments: ####################### ### Action Commands ### ####################### - - [0x41D750, bin] - + - type: code + start: 0x41D750 + vram: 0x802A1000 + name: btl_states_menus + subsegments: + - [auto, c, battle/btl_states_menus] - type: code start: 0x429330 vram: 0x802A9000 @@ -11079,504 +11175,1886 @@ segments: - [auto, c, main] - [auto, c, npc] - [auto, c, entity] - - type: bin - name: dgb_00 + - name: dgb_00 + dir: world/area_dgb/dgb_00 + type: code start: 0xC033E0 vram: 0x80240000 - - type: bin - name: dgb_01 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dgb_01 + dir: world/area_dgb/dgb_01 + type: code start: 0xC06BC0 vram: 0x80240000 - - [ 0xC2A280, bin ] - - type: bin - name: dgb_02 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, bridges] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, img0] + - [auto, c, img1] + - [auto, c, img2] + - [auto, c, img3] + - [auto, c, img4] + - [auto, c, img5] + - [auto, c, img6] + - [auto, c, img7] + - [auto, c, gfx] + - start: 0xC0DB30 + type: .data + name: img0 + subsegments: + - [0xC0DB30, rgba16, img0, 64, 32] + - [0xC0EB30, gfx, img0] + - start: 0xC0EBB0 + type: .data + name: img1 + subsegments: + - [0xC0EBB0, rgba16, img1, 64, 32] + - [0xC0FBB0, gfx, img1] + - start: 0xC0FC30 + type: .data + name: img2 + subsegments: + - [0xC0FC30, rgba16, img2, 32, 32] + - [0xC10430, gfx, img2] + - start: 0xC104B0 + type: .data + name: img3 + subsegments: + - [0xC104B0, rgba16, img3, 16, 32] + - [0xC108B0, gfx, img3] + - start: 0xC10930 + type: .data + name: img4 + subsegments: + - [0xC10930, rgba16, img4, 16, 32] + - [0xC10D30, gfx, img4] + - start: 0xC10DB0 + type: .data + name: img5 + subsegments: + - [0xC10DB0, rgba16, img5, 16, 32] + - [0xC111B0, gfx, img5] + - start: 0xC11230 + type: .data + name: img6 + subsegments: + - [0xC11230, rgba16, img6, 32, 32] + - [0xC11A30, gfx, img6] + - start: 0xC11AB0 + type: .data + name: img7 + subsegments: + - [0xC11AB0, rgba16, img7, 32, 32] + - [0xC122B0, gfx, img7] + - [0xC12330, .data, gfx] # TODO needs additional cleanup and gfx splitting + - [0xC29FB0] + - name: dgb_01_smash_bridges # DMAd at the beginning of tubba blubba's castle (bridge cutscene) + type: code + dir: world/area_dgb + start: 0xC2A280 + vram: 0x80200000 + subsegments: + - [auto, c, smash_bridges] + - start: 0xC2A280 + type: .data + name: smash_bridges + subsegments: + - [0xC2A280, vtx, vtx/C20F40] + - [0xC2A440, vtx, vtx/C21100] + - [0xC2A470, vtx, vtx/C21130] + - [0xC2A520, vtx, vtx/C211E0] + - [0xC2A530, vtx, vtx/C211F0] + - [0xC2A580, vtx, vtx/C21240] + - [0xC2A6A0, vtx, vtx/C21360] + - [0xC2A700, vtx, vtx/C213C0] + - [0xC2A8E0, vtx, vtx/C215A0] + - [0xC2AA40, vtx, vtx/C21700] + - [0xC2AAB0, vtx, vtx/C21770] + - [0xC2AB50, vtx, vtx/C21810] + - [0xC2AC70, vtx, vtx/C21930] + - [0xC2AE20, vtx, vtx/C21AE0] + - [0xC2AE60, vtx, vtx/C21B20] + - [0xC2AF10, vtx, vtx/C21BD0] + - [0xC2AFD0, vtx, vtx/C21C90] + - [0xC2B070, vtx, vtx/C21D30] + - [0xC2B110, vtx, vtx/C21DD0] + - [0xC2B140, vtx, vtx/C21E00] + - [0xC2B270, vtx, vtx/C21F30] + - [0xC2B390, vtx, vtx/C22050] + - [0xC2B4D0, vtx, vtx/C22190] + - [0xC2B610, vtx, vtx/C222D0] + - [0xC2B670, vtx, vtx/C22330] + - [0xC2B7E0, vtx, vtx/C224A0] + - [0xC2B820, vtx, vtx/C224E0] + - [0xC2B850, vtx, vtx/C22510] + - [0xC2B960, vtx, vtx/C22620] + - [0xC2BAC0, vtx, vtx/C22780] + - [0xC2BB50, vtx, vtx/C22810] + - [0xC2BBB0, vtx, vtx/C22870] + - [0xC2BC30, vtx, vtx/C228F0] + - [0xC2BC90, vtx, vtx/C22950] + - [0xC2BD30, vtx, vtx/C229F0] + - [0xC2BE40, vtx, vtx/C22B00] + - [0xC2BF40, vtx, vtx/C22C00] + - [0xC2C140, vtx, vtx/C22E00] + - [0xC2C200, vtx, vtx/C22EC0] + - [0xC2C3E0, vtx, vtx/C230A0] + - [0xC2C580, vtx, vtx/C23240] + - [0xC2C5A0, vtx, vtx/C23260] + - [0xC2C5E0, vtx, vtx/C232A0] + - [0xC2C670, vtx, vtx/C23330] + - [0xC2C710, vtx, vtx/C233D0] + - [0xC2C7C0, vtx, vtx/C23480] + - [0xC2C7F0, vtx, vtx/C234B0] + - [0xC2C900, vtx, vtx/C235C0] + - [0xC2CA20, vtx, vtx/C236E0] + - [0xC2CB50, vtx, vtx/C23810] + - [0xC2CBF0, vtx, vtx/C238B0] + - [0xC2CD10, vtx, vtx/C239D0] + - [0xC2CDB0, vtx, vtx/C23A70] + - [0xC2CEB0, vtx, vtx/C23B70] + - [0xC2CEE0, vtx, vtx/C23BA0] + - [0xC2CFB0, vtx, vtx/C23C70] + - [0xC2CFD0, vtx, vtx/C23C90] + - [0xC2D020, vtx, vtx/C23CE0] + - [0xC2D060, vtx, vtx/C23D20] + - [0xC2D0A0, vtx, vtx/C23D60] + - [0xC2D110, vtx, vtx/C23DD0] + - [0xC2D140, vtx, vtx/C23E00] + - [0xC2D160, vtx, vtx/C23E20] + - [0xC2D190, vtx, vtx/C23E50] + - [0xC2D250, vtx, vtx/C23F10] + - [0xC2D310, vtx, vtx/C23FD0] + - [0xC2D410, vtx, vtx/C240D0] + - [0xC2D510, vtx, vtx/C241D0] + - [0xC2D690, vtx, vtx/C24350] + - [0xC2D850, vtx, vtx/C24510] + - [0xC2D880, vtx, vtx/C24540] + - [0xC2D940, vtx, vtx/C24600] + - [0xC2D9D0, vtx, vtx/C24690] + - [0xC2DA60, vtx, vtx/C24720] + - [0xC2DA70, vtx, vtx/C24730] + - [0xC2DB80, vtx, vtx/C24840] + - [0xC2DCA0, vtx, vtx/C24960] + - [0xC2DCC0, vtx, vtx/C24980] + - [0xC2DE10, vtx, vtx/C24AD0] + - [0xC2DE30, vtx, vtx/C24AF0] + - [0xC2E010, vtx, vtx/C24CD0] + - [0xC2E1F0, vtx, vtx/C24EB0] + - [0xC2E270, vtx, vtx/C24F30] + - [0xC2E2F0, vtx, vtx/C24FB0] + - [0xC2E390, vtx, vtx/C25050] + - [0xC2E590, vtx, vtx/C25250] + - [0xC2E650, vtx, vtx/C25310] + - [0xC2E690, vtx, vtx/C25350] + - [0xC2E840, vtx, vtx/C25500] + - [0xC2E940, vtx, vtx/C25600] + - [0xC2EA10, vtx, vtx/C256D0] + - [0xC2EA50, vtx, vtx/C25710] + - [0xC2EB10, vtx, vtx/C257D0] + - [0xC2EB30, vtx, vtx/C257F0] + - [0xC2EC40, vtx, vtx/C25900] + - [0xC2EC90, vtx, vtx/C25950] + - [0xC2ED70, vtx, vtx/C25A30] + - [0xC2EDF0, vtx, vtx/C25AB0] + - [0xC2EE70, vtx, vtx/C25B30] + - [0xC2EF10, vtx, vtx/C25BD0] + - [0xC2EF40, vtx, vtx/C25C00] + - [0xC2EF60, vtx, vtx/C25C20] + - [0xC2EFC0, vtx, vtx/C25C80] + - [0xC2F030, vtx, vtx/C25CF0] + - [0xC2F070, vtx, vtx/C25D30] + - [0xC2F0E0, vtx, vtx/C25DA0] + - [0xC2F110, vtx, vtx/C25DD0] + - [0xC2F1E0, vtx, vtx/C25EA0] + - [0xC2F240, vtx, vtx/C25F00] + - [0xC2F2D0, vtx, vtx/C25F90] + - [0xC2F380, vtx, vtx/C26040] + - [0xC2F3D0, vtx, vtx/C26090] + - [0xC2F470, vtx, vtx/C26130] + - [0xC2F590, vtx, vtx/C26250] + - [0xC2F5D0, vtx, vtx/C26290] + - [0xC2F610, vtx, vtx/C262D0] + - [0xC2F650, vtx, vtx/C26310] + - [0xC2F690, vtx, vtx/C26350] + - [0xC2F6D0, vtx, vtx/C26390] + - [0xC2F710, vtx, vtx/C263D0] + - [0xC2F750, vtx, vtx/C26410] + - [0xC2F790, vtx, vtx/C26450] + - [0xC2F7D0, vtx, vtx/C26490] + - [0xC2F810, vtx, vtx/C264D0] + - [0xC2F850, vtx, vtx/C26510] + - [0xC2F890, vtx, vtx/C26550] + - [0xC2F8D0, vtx, vtx/C26590] + - [0xC2F910, vtx, vtx/C265D0] + - [0xC2F950, vtx, vtx/C26610] + - [0xC2F990, vtx, vtx/C26650] + - [0xC2F9D0, vtx, vtx/C26690] + - [0xC2FA10, vtx, vtx/C266D0] + - [0xC2FA50, vtx, vtx/C26710] + - [0xC2FA90, vtx, vtx/C26750] + - [0xC2FBD0, vtx, vtx/C26890] + - [0xC2FDA0, vtx, vtx/C26A60] + - [0xC2FE20, vtx, vtx/C26AE0] + - [0xC30000, vtx, vtx/C26CC0] + - [0xC301F0, vtx, vtx/C26EB0] + - [0xC30280, vtx, vtx/C26F40] + - [0xC302F0, vtx, vtx/C26FB0] + - [0xC30450, vtx, vtx/C27110] + - [0xC304C0, vtx, vtx/C27180] + - [0xC30560, vtx, vtx/C27220] + - [0xC30640, vtx, vtx/C27300] + - [0xC306E0, vtx, vtx/C273A0] + - [0xC307A0, vtx, vtx/C27460] + - [0xC308C0, vtx, vtx/C27580] + - [0xC30A80, vtx, vtx/C27740] + - [0xC30AB0, vtx, vtx/C27770] + - [0xC30BC0, vtx, vtx/C27880] + - [0xC30D80, vtx, vtx/C27A40] + - [0xC30DB0, vtx, vtx/C27A70] + - [0xC30EC0, vtx, vtx/C27B80] + - [0xC310A0, vtx, vtx/C27D60] + - [0xC31260, vtx, vtx/C27F20] + - [0xC31300, vtx, vtx/C27FC0] + - [0xC31320, vtx, vtx/C27FE0] + - [0xC313C0, vtx, vtx/C28080] + - [0xC31450, vtx, vtx/C28110] + - [0xC314D0, vtx, vtx/C28190] + - [0xC314F0, vtx, vtx/C281B0] + - [0xC31520, vtx, vtx/C281E0] + - [0xC31610, vtx, vtx/C282D0] + - [0xC31630, vtx, vtx/C282F0] + - [0xC31650, vtx, vtx/C28310] + - [0xC31760, vtx, vtx/C28420] + - [0xC31830, vtx, vtx/C284F0] + - [0xC31890, vtx, vtx/C28550] + - [0xC319D0, vtx, vtx/C28690] + - [0xC31A60, vtx, vtx/C28720] + - [0xC31AE0, vtx, vtx/C287A0] + - [0xC31BD0, vtx, vtx/C28890] + - [0xC31CB0, vtx, vtx/C28970] + - [0xC31DB0, vtx, vtx/C28A70] + - [0xC31EF0, vtx, vtx/C28BB0] + - [0xC320D0, vtx, vtx/C28D90] + - [0xC322B0, vtx, vtx/C28F70] + - [0xC32490, vtx, vtx/C29150] + - [0xC32670, vtx, vtx/C29330] + - [0xC327B0, vtx, vtx/C29470] + - [0xC327E0, vtx, vtx/C294A0] + - [0xC32830, vtx, vtx/C294F0] + - [0xC32880, vtx, vtx/C29540] + - [0xC328B0, vtx, vtx/C29570] + - [0xC328F0, vtx, vtx/C295B0] + - [0xC32970, vtx, vtx/C29630] + - [0xC32990, vtx, vtx/C29650] + - [0xC32A00, vtx, vtx/C296C0] + - [0xC32A90, vtx, vtx/C29750] + - [0xC32B30, vtx, vtx/C297F0] + - [0xC32C20, vtx, vtx/C298E0] + - [0xC32D80, vtx, vtx/C29A40] + - [0xC32DF0, vtx, vtx/C29AB0] + - [0xC32EF0, vtx, vtx/C29BB0] + - [0xC33010, vtx, vtx/C29CD0] + - [0xC33140, vtx, vtx/C29E00] + - [0xC33290, vtx, vtx/C29F50] + - [0xC333C0, vtx, vtx/C2A080] + - [0xC334C0, vtx, vtx/C2A180] + - [0xC33600, vtx, vtx/C2A2C0] + - [0xC33700, vtx, vtx/C2A3C0] + - [0xC33880, vtx, vtx/C2A540] + - [0xC33A40, vtx, vtx/C2A700] + - [0xC33A80, vtx, vtx/C2A740] + - [0xC33AD0, vtx, vtx/C2A790] + - [0xC33C10, vtx, vtx/C2A8D0] + - [0xC33DF0, vtx, vtx/C2AAB0] + - [0xC33FD0, vtx, vtx/C2AC90] + - [0xC34060, vtx, vtx/C2AD20] + - [0xC340B0, vtx, vtx/C2AD70] + - [0xC34190, vtx, vtx/C2AE50] + - [0xC341B0, vtx, vtx/C2AE70] + - [0xC341F0, vtx, vtx/C2AEB0] + - [0xC342A0, vtx, vtx/C2AF60] + - [0xC342C0, vtx, vtx/C2AF80] + - [0xC34350, vtx, vtx/C2B010] + - [0xC34390, vtx, vtx/C2B050] + - [0xC34560, vtx, vtx/C2B220] + - [0xC34590, vtx, vtx/C2B250] + - [0xC34610, vtx, vtx/C2B2D0] + - [0xC34680, vtx, vtx/C2B340] + - [0xC34700, vtx, vtx/C2B3C0] + - [0xC34720, vtx, vtx/C2B3E0] + - [0xC34750, vtx, vtx/C2B410] + - [0xC348A0, vtx, vtx/C2B560] + - [0xC34A10, vtx, vtx/C2B6D0] + - [0xC34B40, vtx, vtx/C2B800] + - [0xC34B90, vtx, vtx/C2B850] + - [0xC34C20, vtx, vtx/C2B8E0] + - [0xC34CF0, vtx, vtx/C2B9B0] + - [0xC34D90, vtx, vtx/C2BA50] + - [0xC34E90, vtx, vtx/C2BB50] + - [0xC35090, vtx, vtx/C2BD50] + - [0xC35190, vtx, vtx/C2BE50] + - [0xC35290, vtx, vtx/C2BF50] + - [0xC352A0, vtx, vtx/C2BF60] + - [0xC35310, vtx, vtx/C2BFD0] + - [0xC353C0, vtx, vtx/C2C080] + - [0xC353F0, vtx, vtx/C2C0B0] + - [0xC35430, vtx, vtx/C2C0F0] + - [0xC35470, vtx, vtx/C2C130] + - [0xC35500, vtx, vtx/C2C1C0] + - [0xC35640, vtx, vtx/C2C300] + - [0xC35820, vtx, vtx/C2C4E0] + - [0xC35A00, vtx, vtx/C2C6C0] + - [0xC35BE0, vtx, vtx/C2C8A0] + - [0xC35D60, vtx, vtx/C2CA20] + - [0xC35EE0, vtx, vtx/C2CBA0] + - [0xC36060, vtx, vtx/C2CD20] + - [0xC361E0, vtx, vtx/C2CEA0] + - [0xC36210, vtx, vtx/C2CED0] + - [0xC36240, vtx, vtx/C2CF00] + - [0xC36300, vtx, vtx/C2CFC0] + - [0xC36480, vtx, vtx/C2D140] + - [0xC364B0, vtx, vtx/C2D170] + - [0xC364E0, vtx, vtx/C2D1A0] + - [0xC365A0, vtx, vtx/C2D260] + - [0xC36720, vtx, vtx/C2D3E0] + - [0xC36750, vtx, vtx/C2D410] + - [0xC36780, vtx, vtx/C2D440] + - [0xC36840, vtx, vtx/C2D500] + - [0xC368A0, vtx, vtx/C2D560] + - [0xC36900, vtx, vtx/C2D5C0] + - [0xC36960, vtx, vtx/C2D620] + - [0xC369A0, vtx, vtx/C2D660] + - [0xC369E0, vtx, vtx/C2D6A0] + - [0xC36A20, vtx, vtx/C2D6E0] + - [0xC36B70, vtx, vtx/C2D830] + - [0xC36C30, vtx, vtx/C2D8F0] + - [0xC36D60, vtx, vtx/C2DA20] + - [0xC36F20, vtx, vtx/C2DBE0] + - [0xC36FF0, vtx, vtx/C2DCB0] + - [0xC37090, vtx, vtx/C2DD50] + - [0xC370D0, vtx, vtx/C2DD90] + - [0xC371E0, vtx, vtx/C2DEA0] + - [0xC37300, vtx, vtx/C2DFC0] + - [0xC37360, vtx, vtx/C2E020] + - [0xC37520, vtx, vtx/C2E1E0] + - [0xC375F0, vtx, vtx/C2E2B0] + - [0xC376A0, vtx, vtx/C2E360] + - [0xC376D0, vtx, vtx/C2E390] + - [0xC377E0, vtx, vtx/C2E4A0] + - [0xC37910, vtx, vtx/C2E5D0] + - [0xC37960, vtx, vtx/C2E620] + - [0xC37AF0, vtx, vtx/C2E7B0] + - [0xC37B40, vtx, vtx/C2E800] + - [0xC37C00, vtx, vtx/C2E8C0] + - [0xC37CC0, vtx, vtx/C2E980] + - [0xC37DA0, vtx, vtx/C2EA60] + - name: dgb_02 + dir: world/area_dgb/dgb_02 + type: code start: 0xC37EE0 vram: 0x80240000 - - type: bin - name: dgb_03 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: dgb_03 + dir: world/area_dgb/dgb_03 + type: code start: 0xC3A820 vram: 0x80240000 - - type: bin - name: dgb_04 - start: 0xC3F7C0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, clock] + - [auto, c, entity] + - [auto, c, npc] + - name: dgb_04 + dir: world/area_dgb/dgb_04 + type: code + start: 0xC3F870 vram: 0x80240000 - - type: bin - name: dgb_05 - start: 0xC43CA0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dgb_05 + dir: world/area_dgb/dgb_05 + type: code + start: 0xC43D50 vram: 0x80240000 - - type: bin - name: dgb_06 - start: 0xC46310 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, hole] + - [auto, c, entity] + - [auto, c, npc] + - name: dgb_06 + dir: world/area_dgb/dgb_06 + type: code + start: 0xC463C0 vram: 0x80240000 - - type: bin - name: dgb_07 - start: 0xC46E80 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: dgb_07 + dir: world/area_dgb/dgb_07 + type: code + start: 0xC46F30 vram: 0x80240000 - - type: bin - name: dgb_08 - start: 0xC49040 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: dgb_08 + dir: world/area_dgb/dgb_08 + type: code + start: 0xC490F0 vram: 0x80240000 - - type: bin - name: dgb_09 - start: 0xC4FE70 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dgb_09 + dir: world/area_dgb/dgb_09 + type: code + start: 0xC4FF20 vram: 0x80240000 - - type: bin - name: dgb_10 - start: 0xC55620 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, breakable] + - [auto, c, npc] + - name: dgb_10 + dir: world/area_dgb/dgb_10 + type: code + start: 0xC556D0 vram: 0x80240000 - - type: bin - name: dgb_11 - start: 0xC56670 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, hole] + - [auto, c, entity] + - name: dgb_11 + dir: world/area_dgb/dgb_11 + type: code + start: 0xC56720 vram: 0x80240000 - - type: bin - name: dgb_12 - start: 0xC57180 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: dgb_12 + dir: world/area_dgb/dgb_12 + type: code + start: 0xC57230 vram: 0x80240000 - - type: bin - name: dgb_13 - start: 0xC57BF0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, spikes] + - [auto, c, entity] + - name: dgb_13 + dir: world/area_dgb/dgb_13 + type: code + start: 0xC57CA0 vram: 0x80240000 - - type: bin - name: dgb_14 - start: 0xC582C0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, drawer] + - name: dgb_14 + dir: world/area_dgb/dgb_14 + type: code + start: 0xC58370 vram: 0x80240000 - - type: bin - name: dgb_15 - start: 0xC587A0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: dgb_15 + dir: world/area_dgb/dgb_15 + type: code + start: 0xC58850 vram: 0x80240000 - - type: bin - name: dgb_16 - start: 0xC5B7D0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dgb_16 + dir: world/area_dgb/dgb_16 + type: code + start: 0xC5B880 vram: 0x80240000 - - type: bin - name: dgb_17 - start: 0xC5ECF0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: dgb_17 + dir: world/area_dgb/dgb_17 + type: code + start: 0xC5EDA0 vram: 0x80240000 - - type: bin - name: dgb_18 - start: 0xC5F1D0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: dgb_18 + dir: world/area_dgb/dgb_18 + type: code + start: 0xC5F280 vram: 0x80240000 - - type: bin - name: kzn_01 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: kzn_01 + dir: world/area_kzn/kzn_01 + type: code start: 0xC62C50 vram: 0x80240000 - - type: bin - name: kzn_02 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - name: kzn_02 + dir: world/area_kzn/kzn_02 + type: code start: 0xC639C0 vram: 0x80240000 - - type: bin - name: kzn_03 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, platforms] + - [auto, c, npc] + - [auto, c, demo] + - name: kzn_03 + dir: world/area_kzn/kzn_03 + type: code start: 0xC69F90 vram: 0x80240000 - - type: bin - name: kzn_04 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, ziplines] + - name: kzn_04 + dir: world/area_kzn/kzn_04 + type: code start: 0xC713B0 vram: 0x80240000 - - type: bin - name: kzn_05 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: kzn_05 + dir: world/area_kzn/kzn_05 + type: code start: 0xC75350 vram: 0x80240000 - - type: bin - name: kzn_06 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - name: kzn_06 + dir: world/area_kzn/kzn_06 + type: code start: 0xC75BA0 vram: 0x80240000 - - type: bin - name: kzn_07 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, extra] + - name: kzn_07 + dir: world/area_kzn/kzn_07 + type: code start: 0xC775B0 vram: 0x80240000 - - type: bin - name: kzn_08 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: kzn_08 + dir: world/area_kzn/kzn_08 + type: code start: 0xC7A700 vram: 0x80240000 - - type: bin - name: kzn_09 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, extra] + - name: kzn_09 + dir: world/area_kzn/kzn_09 + type: code start: 0xC7FF60 vram: 0x80240000 - - type: bin - name: kzn_10 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, zipline] + - [auto, c, npc] + - name: kzn_10 + dir: world/area_kzn/kzn_10 + type: code start: 0xC87400 vram: 0x80240000 - - type: bin - name: kzn_11 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, tromp] + - name: kzn_11 + dir: world/area_kzn/kzn_11 + type: code start: 0xC89390 vram: 0x80240000 - - type: bin - name: kzn_17 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, platforms] + - [auto, c, npc] + - name: kzn_17 + dir: world/area_kzn/kzn_17 + type: code start: 0xC8ECA0 vram: 0x80240000 - - type: bin - name: kzn_18 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, tromp] + - name: kzn_18 + dir: world/area_kzn/kzn_18 + type: code start: 0xC95290 vram: 0x80240000 - - type: bin - name: kzn_19 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: kzn_19 + dir: world/area_kzn/kzn_19 + type: code start: 0xC96DA0 vram: 0x80240000 - - type: bin - name: kzn_20 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc_settings] + - [auto, c, npc] + - [auto, c, eruption] + - [auto, c, entity] + - start: 0xC99DE0 + type: .data + name: npc + subsegments: + - [0xC99DE0] + - [0xC9A278, ci4, ../../lava_piranha/vine, 64, 32] + - [0xC9A678, palette, ../../lava_piranha/vine] + - [0xC9A878, gfx_common, ../../lava_piranha/vine] + - [0xC9A958] + - name: kzn_20 + dir: world/area_kzn/kzn_20 + type: code start: 0xC9F120 vram: 0x80240000 - - type: bin - name: kzn_22 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: kzn_22 + dir: world/area_kzn/kzn_22 + type: code start: 0xCA33E0 vram: 0x80240000 - - type: bin - name: kzn_23 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: kzn_23 + dir: world/area_kzn/kzn_23 + type: code start: 0xCA54E0 vram: 0x80240000 - - type: bin - name: flo_00 - start: 0xCA7100 - vram: 0x80240000 - - type: bin - name: flo_03 - start: 0xCB0480 - vram: 0x80240000 - - type: bin - name: flo_07 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: flo_00 + dir: world/area_flo/flo_00 + type: code + start: 0xCA7100 + vram: 0x80240000 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, epilogue] + - [auto, c, beanstalk] + - [auto, c, entity] + - name: flo_03 + dir: world/area_flo/flo_03 + type: code + start: 0xCB0480 + vram: 0x80240000 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, foliage] + - [auto, c, entity] + - name: flo_07 + dir: world/area_flo/flo_07 + type: code start: 0xCB53D0 vram: 0x80240000 - - type: bin - name: flo_08 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: flo_08 + dir: world/area_flo/flo_08 + type: code start: 0xCB7F20 vram: 0x80240000 - - type: bin - name: flo_09 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, foliage] + - [auto, c, vines] + - name: flo_09 + dir: world/area_flo/flo_09 + type: code start: 0xCBE1E0 vram: 0x80240000 - - type: bin - name: flo_10 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, vines] + - [auto, c, foliage] + - [auto, c, npc] + - name: flo_10 + dir: world/area_flo/flo_10 + type: code start: 0xCC23E0 vram: 0x80240000 - - type: bin - name: flo_11 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, fountain] + - [auto, c, npc] + - [auto, c, waterfx] + - [auto, c, foliage] + - name: flo_11 + dir: world/area_flo/flo_11 + type: code start: 0xCC6E50 vram: 0x80240000 - - type: bin - name: flo_12 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: flo_12 + dir: world/area_flo/flo_12 + type: code start: 0xCC9FB0 vram: 0x80240000 - - type: bin - name: flo_13 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: flo_13 + dir: world/area_flo/flo_13 + type: code start: 0xCCC990 vram: 0x80240000 - - type: bin - name: flo_14 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, new_partner] + - name: flo_14 + dir: world/area_flo/flo_14 + type: code start: 0xCD4490 vram: 0x80240000 - - type: bin - name: flo_15 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, bubbles] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, logs] + - name: flo_15 + dir: world/area_flo/flo_15 + type: code start: 0xCD9840 vram: 0x80240000 - - type: bin - name: flo_16 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, stairs] + - name: flo_16 + dir: world/area_flo/flo_16 + type: code start: 0xCDAFB0 vram: 0x80240000 - - type: bin - name: flo_17 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, vines] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, puzzle] + - name: flo_17 + dir: world/area_flo/flo_17 + type: code start: 0xCE0460 vram: 0x80240000 - - type: bin - name: flo_18 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, logs] + - [auto, c, npc] + - [auto, c, entity] + - name: flo_18 + dir: world/area_flo/flo_18 + type: code start: 0xCE5820 vram: 0x80240000 - - type: bin - name: flo_19 - start: 0xCEC720 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, machine] + - [auto, c, npc] + - [auto, c, foliage] + - name: flo_19 + dir: world/area_flo/flo_19 + type: code + start: 0xCEC870 vram: 0x80240000 - - type: bin - name: flo_21 - start: 0xCEF730 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, clouds] + - [auto, c, beanstalk] + - name: flo_21 + dir: world/area_flo/flo_21 + type: code + start: 0xCEF880 vram: 0x80240000 - - type: bin - name: flo_22 - start: 0xCF5310 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, clouds] + - [auto, c, npc] + - name: flo_22 + dir: world/area_flo/flo_22 + type: code + start: 0xCF53C0 vram: 0x80240000 - - type: bin - name: flo_23 - start: 0xCF7330 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, well] + - [auto, c, foliage] + - name: flo_23 + dir: world/area_flo/flo_23 + type: code + start: 0xCF73E0 vram: 0x80240000 - - type: bin - name: flo_24 - start: 0xCF9A10 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: flo_24 + dir: world/area_flo/flo_24 + type: code + start: 0xCF9AC0 vram: 0x80240000 - - type: bin - name: flo_25 - start: 0xCFBCA0 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, foliage] + - [auto, c, water] + - [auto, c, entity] + - name: flo_25 + dir: world/area_flo/flo_25 + type: code + start: 0xCFBD50 vram: 0x80240000 - - type: bin - name: sam_01 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, foliage] + - [auto, c, vine] + - name: sam_01 + dir: world/area_sam/sam_01 + type: code start: 0xD00C40 vram: 0x80240000 - - type: bin - name: sam_02 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, rooms] + - [auto, c, npc] + - [auto, c, scenes] + - [auto, c, entity] + - name: sam_02 + dir: world/area_sam/sam_02 + type: code start: 0xD0ED50 vram: 0x80240000 - - type: bin - name: sam_03 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, rooms] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, shop] + - name: sam_03 + dir: world/area_sam/sam_03 + type: code start: 0xD1A6A0 vram: 0x80240000 - - type: bin - name: sam_04 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc1] + - [auto, c, npc2] + - name: sam_04 + dir: world/area_sam/sam_04 + type: code start: 0xD1CBB0 vram: 0x80240000 - - type: bin - name: sam_05 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, snowmen] + - [auto, c, npc] + - [auto, c, entity] + - name: sam_05 + dir: world/area_sam/sam_05 + type: code start: 0xD21DC0 vram: 0x80240000 - - type: bin - name: sam_06 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, scenes] + - [auto, c, monstar_gfx] + - [auto, c, monstar_vtx] + - start: 0xD23EE0 + type: .data + name: npc + subsegments: + - [0xD23EE0] + - [0xD24530, ci4, monstar, 32, 32] + - [0xD24730, ia4, monstar_blank1, 32, 32] + - [0xD24930, ia4, monstar_blank2, 32, 32] + - [0xD24B30, ia4, monstar_blank3, 32, 32] + - [0xD24D30, palette, monstar] + - [0xD24D50] + - start: 0xD28D40 + type: .data + name: monstar_gfx + subsegments: + - [0xD28D40, gfx, monstar] + - start: 0xD28E50 + type: .data + name: monstar_vtx + subsegments: + - [0xD28E50, vtx, monstar] + - [0xD29270] + - name: sam_06 + dir: world/area_sam/sam_06 + type: code start: 0xD29450 vram: 0x80240000 - - type: bin - name: sam_07 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, rooms] + - [auto, c, npc] + - [auto, c, entity] + - name: sam_07 + dir: world/area_sam/sam_07 + type: code start: 0xD35230 vram: 0x80240000 - - type: bin - name: sam_08 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, frozen_pit] + - [auto, c, npc] + - name: sam_08 + dir: world/area_sam/sam_08 + type: code start: 0xD39180 vram: 0x80240000 - - type: bin - name: sam_09 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, scenes] + - name: sam_09 + dir: world/area_sam/sam_09 + type: code start: 0xD3F7F0 vram: 0x80240000 - - type: bin - name: sam_10 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, sockets] + - name: sam_10 + dir: world/area_sam/sam_10 + type: code start: 0xD40D00 vram: 0x80240000 - - type: bin - name: sam_11 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, stairs] + - [auto, c, npc] + - name: sam_11 + dir: world/area_sam/sam_11 + type: code start: 0xD43AD0 vram: 0x80240000 - - type: bin - name: sam_12 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, rooms] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, pond] + - [auto, c, staircase] + - [auto, c, pond_anim] + - [auto, c, pond_skele] + - name: sam_12 + dir: world/area_sam/sam_12 + type: code start: 0xD54ED0 vram: 0x80240000 - - type: bin - name: pra_01 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, scenes] + - [auto, c, entity] + - name: pra_01 + dir: world/area_pra/pra_01 + type: code start: 0xD564F0 vram: 0x80240000 - - type: bin - name: pra_02 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: pra_02 + dir: world/area_pra/pra_02 + type: code start: 0xD594A0 vram: 0x80240000 - - type: bin - name: pra_03 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: pra_03 + dir: world/area_pra/pra_03 + type: code start: 0xD5D160 vram: 0x80240000 - - type: bin - name: pra_04 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_04 + dir: world/area_pra/pra_04 + type: code start: 0xD5DB40 vram: 0x80240000 - - type: bin - name: pra_05 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: pra_05 + dir: world/area_pra/pra_05 + type: code start: 0xD5F060 vram: 0x80240000 - - type: bin - name: pra_06 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_06 + dir: world/area_pra/pra_06 + type: code start: 0xD608E0 vram: 0x80240000 - - type: bin - name: pra_09 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_09 + dir: world/area_pra/pra_09 + type: code start: 0xD61D40 vram: 0x80240000 - - type: bin - name: pra_10 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_10 + dir: world/area_pra/pra_10 + type: code start: 0xD68710 vram: 0x80240000 - - type: bin - name: pra_11 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_11 + dir: world/area_pra/pra_11 + type: code start: 0xD6A960 vram: 0x80240000 - - type: bin - name: pra_12 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_12 + dir: world/area_pra/pra_12 + type: code start: 0xD6C170 vram: 0x80240000 - - type: bin - name: pra_13 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_13 + dir: world/area_pra/pra_13 + type: code start: 0xD6DA40 vram: 0x80240000 - - type: bin - name: pra_14 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_14 + dir: world/area_pra/pra_14 + type: code start: 0xD71160 vram: 0x80240000 - - type: bin - name: pra_15 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_15 + dir: world/area_pra/pra_15 + type: code start: 0xD72C70 vram: 0x80240000 - - type: bin - name: pra_16 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_16 + dir: world/area_pra/pra_16 + type: code start: 0xD72F80 vram: 0x80240000 - - type: bin - name: pra_18 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - name: pra_18 + dir: world/area_pra/pra_18 + type: code start: 0xD74A80 vram: 0x80240000 - - type: bin - name: pra_19 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_19 + dir: world/area_pra/pra_19 + type: code start: 0xD77E10 vram: 0x80240000 - - type: bin - name: pra_20 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_20 + dir: world/area_pra/pra_20 + type: code start: 0xD7F7B0 vram: 0x80240000 - - type: bin - name: pra_21 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - name: pra_21 + dir: world/area_pra/pra_21 + type: code start: 0xD81330 vram: 0x80240000 - - type: bin - name: pra_22 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_22 + dir: world/area_pra/pra_22 + type: code start: 0xD81C90 vram: 0x80240000 - - type: bin - name: pra_27 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_27 + dir: world/area_pra/pra_27 + type: code start: 0xD82D60 vram: 0x80240000 - - type: bin - name: pra_28 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_28 + dir: world/area_pra/pra_28 + type: code start: 0xD84610 vram: 0x80240000 - - type: bin - name: pra_29 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_29 + dir: world/area_pra/pra_29 + type: code start: 0xD85EC0 vram: 0x80240000 - - type: bin - name: pra_31 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, bridge] + - name: pra_31 + dir: world/area_pra/pra_31 + type: code start: 0xD880D0 vram: 0x80240000 - - type: bin - name: pra_32 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, npc] + - [auto, c, main] + - [auto, c, puzzle] + - [auto, c, texture_1] + - [auto, c, texture_2] + - [auto, c, texture_3] + - [auto, c, stairs_skele] + - [auto, c, stairs_anim] + - [auto, c, stairs_lights] + - [auto, c, stairs_vtx] + - start: 0xD8B560 + type: .data + name: texture_1 + subsegments: + - [0xD8B560, ci4, texture_1, 64, 64] + - [0xD8BD60, palette, texture_1] + - [0xD8BD80, gfx, texture_1] + - [0xD8BE38] + - start: 0xD8BE40 + type: .data + name: texture_2 + subsegments: + - [0xD8BE40, ci4, texture_2, 64, 64] + - [0xD8C640, palette, texture_2] + - [0xD8C660, gfx, texture_2] + - [0xD8C708] + - start: 0xD8C710 + type: .data + name: texture_3 + subsegments: + - [0xD8C710, rgba16, texture_3, 32, 32] + - [0xD8CF10, gfx, texture_3] + - [0xD8CF98] + - start: 0xD8CFA0 + type: .data + name: stairs_skele + subsegments: + - [0xD8CFA0, gfx, unk_01] + - [0xD8D018, gfx, unk_02] + - [0xD8D050, gfx, unk_03] + - [0xD8D0B8, gfx, unk_04] + - [0xD8D0F0, gfx, unk_05] + - [0xD8D168, gfx, unk_06] + - [0xD8D1A0, gfx, unk_07] + - [0xD8D218, gfx, unk_08] + - [0xD8D250, gfx, unk_09] + - [0xD8D2B8, gfx, unk_10] + - [0xD8D2F0, gfx, unk_11] + - [0xD8D368, gfx, unk_12] + - [0xD8D3A0, gfx, unk_13] + - [0xD8D418, gfx, unk_14] + - [0xD8D450, gfx, unk_15] + - [0xD8D4B8, gfx, unk_16] + - [0xD8D4F0, gfx, unk_17] + - [0xD8D568, gfx, unk_18] + - [0xD8D5A0, gfx, unk_19] + - [0xD8D618, gfx, unk_20] + - [0xD8D650, gfx, unk_21] + - [0xD8D6B8, gfx, unk_22] + - [0xD8D6F0, gfx, unk_23] + - [0xD8D768, gfx, unk_24] + - [0xD8D7A0, gfx, unk_25] + - [0xD8D818, gfx, unk_26] + - [0xD8D850, gfx, unk_27] + - [0xD8D8B8, gfx, unk_28] + - [0xD8D918, gfx, unk_29] + - [0xD8D980, gfx, unk_30] + - [0xD8D9C8, gfx, unk_31] + - [0xD8DA58, gfx, unk_32] + - [0xD8DA80, gfx, unk_33] + - [0xD8DAA8, gfx, unk_34] + - [0xD8DAE0] + - start: 0xD8F790 + type: .data + name: stairs_vtx + subsegments: + - [0xD8F790] + - [0xD8FB10, vtx, stairs] + - [0xD8FCD0] + - [0xD8FCD0] + - name: pra_32 + dir: world/area_pra/pra_32 + type: code start: 0xD8FCF0 vram: 0x80240000 - - type: bin - name: pra_33 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_33 + dir: world/area_pra/pra_33 + type: code start: 0xD929D0 vram: 0x80240000 - - type: bin - name: pra_34 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_34 + dir: world/area_pra/pra_34 + type: code start: 0xD946A0 vram: 0x80240000 - - type: bin - name: pra_35 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: pra_35 + dir: world/area_pra/pra_35 + type: code start: 0xD96540 vram: 0x80240000 - - type: bin - name: pra_36 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: pra_36 + dir: world/area_pra/pra_36 + type: code start: 0xD9A9F0 vram: 0x80240000 - - type: bin - name: pra_37 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_37 + dir: world/area_pra/pra_37 + type: code start: 0xD9C230 vram: 0x80240000 - - type: bin - name: pra_38 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_38 + dir: world/area_pra/pra_38 + type: code start: 0xD9E8E0 vram: 0x80240000 - - type: bin - name: pra_39 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_39 + dir: world/area_pra/pra_39 + type: code start: 0xDA0B80 vram: 0x80240000 - - type: bin - name: pra_40 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: pra_40 + dir: world/area_pra/pra_40 + type: code start: 0xDA2CA0 vram: 0x80240000 - - type: bin - name: omo_01 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - name: omo_01 + dir: world/area_omo/omo_01 + type: code start: 0xDA41E0 vram: 0x80240000 - - type: bin - name: omo_02 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, npc] + - [auto, c, entity] + - name: omo_02 + dir: world/area_omo/omo_02 + type: code start: 0xDA67C0 vram: 0x80240000 - - type: bin - name: omo_03 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, gizmos] + - [auto, c, barricade] + - [auto, c, npc] + - name: omo_03 + dir: world/area_omo/omo_03 + type: code start: 0xDAE530 vram: 0x80240000 - - type: bin - name: omo_04 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, train] + - [auto, c, train_drop] + - [auto, c, epilogue] + - name: omo_04 + dir: world/area_omo/omo_04 + type: code start: 0xDB66F0 vram: 0x80240000 - - type: bin - name: omo_05 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, scenes] + - name: omo_05 + dir: world/area_omo/omo_05 + type: code start: 0xDBB5B0 vram: 0x80240000 - - type: bin - name: omo_06 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, npc] + - [auto, c, entity] + - name: omo_06 + dir: world/area_omo/omo_06 + type: code start: 0xDC0C00 vram: 0x80240000 - - type: bin - name: omo_07 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, train] + - [auto, c, npc] + - [auto, c, entity] + - name: omo_07 + dir: world/area_omo/omo_07 + type: code start: 0xDC65A0 vram: 0x80240000 - - type: bin - name: omo_08 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, scenes] + - name: omo_08 + dir: world/area_omo/omo_08 + type: code start: 0xDCD6C0 vram: 0x80240000 - - type: bin - name: omo_09 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, boxes] + - [auto, c, train] + - [auto, c, entity] + - [auto, c, npc] + - name: omo_09 + dir: world/area_omo/omo_09 + type: code start: 0xDD5FC0 vram: 0x80240000 - - type: bin - name: omo_10 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, conveyors] + - [auto, c, slot_machine] + - [auto, c, gizmos] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, scenes] + - name: omo_10 + dir: world/area_omo/omo_10 + type: code start: 0xDE0CA0 vram: 0x80240000 - - type: bin - name: omo_11 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, train] + - [auto, c, npc] + - [auto, c, entity] + - name: omo_11 + dir: world/area_omo/omo_11 + type: code start: 0xDE5B20 vram: 0x80240000 - - type: bin - name: omo_12 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, entity] + - [auto, c, npc] + - name: omo_12 + dir: world/area_omo/omo_12 + type: code start: 0xDE8600 vram: 0x80240000 - - type: bin - name: omo_13 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, new_partner] + - name: omo_13 + dir: world/area_omo/omo_13 + type: code start: 0xDEB780 vram: 0x80240000 - - type: bin - name: omo_14 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, npc] + - [auto, c, entity] + - name: omo_14 + dir: world/area_omo/omo_14 + type: code start: 0xDEE9A0 vram: 0x80240000 - - type: bin - name: omo_15 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: omo_15 + dir: world/area_omo/omo_15 + type: code start: 0xDF1A60 vram: 0x80240000 - - type: bin - name: omo_16 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: omo_16 + dir: world/area_omo/omo_16 + type: code start: 0xDF51C0 vram: 0x80240000 - - type: bin - name: omo_17 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, train] + - [auto, c, npc] + - name: omo_17 + dir: world/area_omo/omo_17 + type: code start: 0xDF8190 vram: 0x80240000 - - type: bin - name: end_00 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, gizmos] + - [auto, c, train] + - [auto, c, npc] + - [auto, c, entity] + - name: end_00 + dir: world/area_end/end_00 + type: code start: 0xDFFCF0 vram: 0x80240000 - - type: bin - name: end_01 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, credits] + - [auto, c, parade_setup] + - [auto, c, allies] + - [auto, c, koopas] + - [auto, c, caravan] + - [auto, c, boos] + - [auto, c, yoshis] + - [auto, c, huff_n_puff] + - [auto, c, crystal_king] + - [auto, c, bowser] + - name: end_01 + dir: world/area_end/end_01 + type: code start: 0xE0E290 vram: 0x80240000 - - type: bin - name: mgm_00 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, credits] + - [auto, c, parade_setup] + - [auto, c, opera_float] + - [auto, c, flower_float] + - [auto, c, shyguy_float] + - [auto, c, peach_float] + - name: mgm_00 + dir: world/area_mgm/mgm_00 + type: code start: 0xE17630 vram: 0x80240000 - - type: bin - name: mgm_01 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, scoreboard] + - name: mgm_01 + dir: world/area_mgm/mgm_01 + type: code start: 0xE1B5F0 vram: 0x80240000 - - type: bin - name: mgm_02 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, images] + - start: 0xE1E2D0 + type: .data + name: images + subsegments: + - [0xE1E2D0, ci4, panel_1_coin, 32, 32] + - [0xE1E4D0, palette, panel_1_coin] + - [0xE1E4F0, ci4, panel_5_coins, 32, 32] + - [0xE1E6F0, palette, panel_5_coins] + - [0xE1E710, ci4, panel_times_5, 32, 32] + - [0xE1E910, palette, panel_times_5] + - [0xE1E930, ci4, panel_bowser, 32, 32] + - [0xE1EB30, palette, panel_bowser] + - [0xE1EB50] + - name: mgm_02 + dir: world/area_mgm/mgm_02 + type: code start: 0xE1EC10 vram: 0x80240000 - - type: bin - name: mgm_03 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, images] + - start: 0xE26EB0 + type: .data + name: images + subsegments: + - [0xE26EB0, ci4, panel_peach, 32, 32] + - [0xE270B0, palette, panel_peach] + - [0xE270D0] + - name: mgm_03 + dir: world/area_mgm/mgm_03 + type: code start: 0xE27210 vram: 0x80240000 - - type: bin - name: gv_01 + subsegments: + - [auto, c, settings] + - [auto, c, main] + - name: gv_01 + dir: world/area_gv/gv_01 + type: code start: 0xE272F0 vram: 0x80240000 - + subsegments: + - [auto, c, settings] + - [auto, c, main] + - name: heaps2 + type: code + start: 0xE28FA0 + vram: 0x80267FF0 + subsegments: + - [auto, c, heaps2] - type: code name: inspect_icon start: 0xE28FA0 @@ -12931,7 +14409,338 @@ segments: - [0xEA7510, palette, BombableRock] - [0xEA7530] - - [ 0xEA7B50, bin ] +################# +### Dead maps ### +################# + - [ 0xEA7B50, bin, dead_kzn_17_end ] # tail of dead kzn_17 + - name: dead_kzn_18 + dir: world/dead/area_kzn/kzn_18 + type: code + start: 0xEADED0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dead_kzn_19 + dir: world/dead/area_kzn/kzn_19 + type: code + start: 0xEAF9E0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc_settings] + - [auto, c, npc] + - [auto, c, eruption] + - [auto, c, entity] + - start: 0xEB2A20 + type: .data + name: npc + subsegments: + - [0xEB2A20] + - [0xEB2EB8, ci4, ../../lava_piranha/vine, 64, 32] + - [0xEB32B8, palette, ../../lava_piranha/vine] + - [0xEB34B8, gfx_common, ../../lava_piranha/vine] + - [0xEB3598] + - name: dead_kzn_20 + dir: world/dead/area_kzn/kzn_20 + type: code + start: 0xEB7D60 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: dead_kzn_22 + dir: world/dead/area_kzn/kzn_22 + type: code + start: 0xEBC020 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, entity] + - [auto, c, npc] + - name: dead_kzn_23 + dir: world/dead/area_kzn/kzn_23 + type: code + start: 0xEBE120 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: dead_flo_00 + dir: world/dead/area_flo/flo_00 + type: code + start: 0xEBFD40 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, epilogue] + - [auto, c, beanstalk] + - [auto, c, entity] + - name: dead_flo_03 + dir: world/dead/area_flo/flo_03 + type: code + start: 0xEC90F0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, foliage] + - [auto, c, entity] + - name: dead_flo_07 + dir: world/dead/area_flo/flo_07 + type: code + start: 0xECE020 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: dead_flo_08 + dir: world/dead/area_flo/flo_08 + type: code + start: 0xED0B70 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, foliage] + - [auto, c, vines] + - name: dead_flo_09 + dir: world/dead/area_flo/flo_09 + type: code + start: 0xED6E60 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, vines] + - [auto, c, foliage] + - [auto, c, npc] + - name: dead_flo_10 + dir: world/dead/area_flo/flo_10 + type: code + start: 0xEDB090 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, fountain] + - [auto, c, npc] + - [auto, c, waterfx] + - [auto, c, foliage] + - name: dead_flo_11 + dir: world/dead/area_flo/flo_11 + type: code + start: 0xEDFC30 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dead_flo_12 + dir: world/dead/area_flo/flo_12 + type: code + start: 0xEE2DF0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - name: dead_flo_13 + dir: world/dead/area_flo/flo_13 + type: code + start: 0xEE57D0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, new_partner] + - name: dead_flo_14 + dir: world/dead/area_flo/flo_14 + type: code + start: 0xEED3C0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, bubbles] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, logs] + - name: dead_flo_15 + dir: world/dead/area_flo/flo_15 + type: code + start: 0xEF27A0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, stairs] + - name: dead_flo_16 + dir: world/dead/area_flo/flo_16 + type: code + start: 0xEF3F10 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, vines] + - [auto, c, entity] + - [auto, c, npc] + - [auto, c, puzzle] + - name: dead_flo_17 + dir: world/dead/area_flo/flo_17 + type: code + start: 0xEF9420 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, logs] + - [auto, c, npc] + - [auto, c, entity] + - name: dead_flo_18 + dir: world/dead/area_flo/flo_18 + type: code + start: 0xEFE890 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, machine] + - [auto, c, npc] + - [auto, c, foliage] + - name: dead_flo_19 + dir: world/dead/area_flo/flo_19 + type: code + start: 0xF057C0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, entity] + - [auto, c, main] + - [auto, c, clouds] + - [auto, c, beanstalk] + - name: dead_flo_21 + dir: world/dead/area_flo/flo_21 + type: code + start: 0xF087D0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, clouds] + - [auto, c, npc] + - name: dead_flo_22 + dir: world/dead/area_flo/flo_22 + type: code + start: 0xF0E3B0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, well] + - [auto, c, foliage] + - name: dead_flo_23 + dir: world/dead/area_flo/flo_23 + type: code + start: 0xF103D0 + vram: 0x80240000 + dead_code: True + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - name: dead_flo_24 + dir: world/dead/area_flo/flo_24 + type: code + start: 0xF12AE0 + vram: 0x80240000 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, foliage] + - [auto, c, water] + - [auto, c, entity] + - name: dead_flo_25 + dir: world/dead/area_flo/flo_25 + type: code + start: 0xF14D70 + vram: 0x80240000 + subsegments: + - [auto, c, settings] + - [auto, c, music] + - [auto, c, main] + - [auto, c, npc] + - [auto, c, entity] + - [auto, c, foliage] + - [auto, c, vine] + + - [0xF19D60, bin] - start: 0xFC0000 type: pm_sbn diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index ebc1261fc9e..408abf64639 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -3003,6 +3003,31 @@ MsgCharWidthLatin = 0x802E6448; // rom:0x10CCE8 MsgCharWidthKanji = 0x802E6464; // rom:0x10CD04 MsgCharWidthButtons = 0x802E64E0; // rom:0x10CD80 +pause_world_map_pal = 0x802697D0; // rom:0x165590 +pause_spirits_bg_pal = 0x8026B550; // rom:0x167310 +pause_orbs_png = 0x8026B750; // rom:0x167510 +pause_map_location_png = 0x8026B950; // rom:0x167710 +pause_map_path_marker_png = 0x8026BA50; // rom:0x167810 +pause_arrows_png = 0x8026BB50; // rom:0x167910 +pause_banner_hp_png = 0x8026BD50; // rom:0x167B10 +pause_banner_hp_pal = 0x8026BF50; // rom:0x167D10 +pause_banner_fp_png = 0x8026C150; // rom:0x167F10 +pause_banner_fp_pal = 0x8026C350; // rom:0x168110 +pause_banner_bp_png = 0x8026C550; // rom:0x168310 +pause_banner_bp_pal = 0x8026C750; // rom:0x168510 +pause_banner_boots_png = 0x8026C950; // rom:0x168710 +pause_banner_boots_pal = 0x8026CAD0; // rom:0x168890 +pause_banner_hammer_png = 0x8026CCD0; // rom:0x168A90 +pause_banner_hammer_pal = 0x8026CE50; // rom:0x168C10 +pause_stats_bar_png = 0x8026D050; // rom:0x168E10 +pause_stats_bar_pal = 0x8026D2D0; // rom:0x169090 +pause_banner_star_energy_png = 0x8026D4D0; // rom:0x169290 +pause_banner_star_energy_pal = 0x8026D650; // rom:0x169410 +pause_available_png = 0x8026D850; // rom:0x169610 +pause_available_pal = 0x8026DA50; // rom:0x169810 +pause_prompt_check_abilities_png = 0x8026DC50; // rom:0x169A10 +pause_prompt_check_abilities_pal = 0x80271C50; // rom:0x169E10 + // effects D_09000000_326410 = 0x09000000; // rom:0x32E710 D_09000200_326610 = 0x09000200; // rom:0x32E910 @@ -4753,6 +4778,381 @@ dro_02_card_1_gfx = 0x80247970; // rom:0x979E70 dro_02_card_2_gfx = 0x802479F0; // rom:0x979EF0 tst_13_shockwave_vtx = 0x802422B0; // rom:0xB28EA0 segment:tst_13 size:0x5B0 tst_13_shockwave_gfx = 0x80242860; // rom:0xB29450 segment:tst_13 +dgb_01_img0_png = 0x80246F70; // segment:dgb_01 rom:0xC0DB30 +dgb_01_img0_gfx = 0x80247F70; // segment:dgb_01 rom:0xC0EB30 +dgb_01_img1_png = 0x80247FF0; // segment:dgb_01 rom:0xC0EBB0 +dgb_01_img1_gfx = 0x80248FF0; // segment:dgb_01 rom:0xC0FBB0 +dgb_01_img2_png = 0x80249070; // segment:dgb_01 rom:0xC0FC30 +dgb_01_img2_gfx = 0x80249870; // segment:dgb_01 rom:0xC10430 +dgb_01_img3_png = 0x802498F0; // segment:dgb_01 rom:0xC104B0 +dgb_01_img3_gfx = 0x80249CF0; // segment:dgb_01 rom:0xC108B0 +dgb_01_img4_png = 0x80249D70; // segment:dgb_01 rom:0xC10930 +dgb_01_img4_gfx = 0x8024A170; // segment:dgb_01 rom:0xC10D30 +dgb_01_img5_png = 0x8024A1F0; // segment:dgb_01 rom:0xC10DB0 +dgb_01_img5_gfx = 0x8024A5F0; // segment:dgb_01 rom:0xC111B0 +dgb_01_img6_png = 0x8024A670; // segment:dgb_01 rom:0xC11230 +dgb_01_img6_gfx = 0x8024AE70; // segment:dgb_01 rom:0xC11A30 +dgb_01_img7_png = 0x8024AEF0; // segment:dgb_01 rom:0xC11AB0 +dgb_01_img7_gfx = 0x8024B6F0; // segment:dgb_01 rom:0xC122B0 +vtx_C20F40 = 0x80200000; // rom:0xC2A280 +vtx_C21100 = 0x802001C0; // rom:0xC2A440 +vtx_C21130 = 0x802001F0; // rom:0xC2A470 +vtx_C211E0 = 0x802002A0; // rom:0xC2A520 +vtx_C211F0 = 0x802002B0; // rom:0xC2A530 +vtx_C21240 = 0x80200300; // rom:0xC2A580 +vtx_C21360 = 0x80200420; // rom:0xC2A6A0 +vtx_C213C0 = 0x80200480; // rom:0xC2A700 +vtx_C215A0 = 0x80200660; // rom:0xC2A8E0 +vtx_C21700 = 0x802007C0; // rom:0xC2AA40 +vtx_C21770 = 0x80200830; // rom:0xC2AAB0 +vtx_C21810 = 0x802008D0; // rom:0xC2AB50 +vtx_C21930 = 0x802009F0; // rom:0xC2AC70 +vtx_C21AE0 = 0x80200BA0; // rom:0xC2AE20 +vtx_C21B20 = 0x80200BE0; // rom:0xC2AE60 +vtx_C21BD0 = 0x80200C90; // rom:0xC2AF10 +vtx_C21C90 = 0x80200D50; // rom:0xC2AFD0 +vtx_C21D30 = 0x80200DF0; // rom:0xC2B070 +vtx_C21DD0 = 0x80200E90; // rom:0xC2B110 +vtx_C21E00 = 0x80200EC0; // rom:0xC2B140 +vtx_C21F30 = 0x80200FF0; // rom:0xC2B270 +vtx_C22050 = 0x80201110; // rom:0xC2B390 +vtx_C22190 = 0x80201250; // rom:0xC2B4D0 +vtx_C222D0 = 0x80201390; // rom:0xC2B610 +vtx_C22330 = 0x802013F0; // rom:0xC2B670 +vtx_C224A0 = 0x80201560; // rom:0xC2B7E0 +vtx_C224E0 = 0x802015A0; // rom:0xC2B820 +vtx_C22510 = 0x802015D0; // rom:0xC2B850 +vtx_C22620 = 0x802016E0; // rom:0xC2B960 +vtx_C22780 = 0x80201840; // rom:0xC2BAC0 +vtx_C22810 = 0x802018D0; // rom:0xC2BB50 +vtx_C22870 = 0x80201930; // rom:0xC2BBB0 +vtx_C228F0 = 0x802019B0; // rom:0xC2BC30 +vtx_C22950 = 0x80201A10; // rom:0xC2BC90 +vtx_C229F0 = 0x80201AB0; // rom:0xC2BD30 +vtx_C22B00 = 0x80201BC0; // rom:0xC2BE40 +vtx_C22C00 = 0x80201CC0; // rom:0xC2BF40 +vtx_C22E00 = 0x80201EC0; // rom:0xC2C140 +vtx_C22EC0 = 0x80201F80; // rom:0xC2C200 +vtx_C230A0 = 0x80202160; // rom:0xC2C3E0 +vtx_C23240 = 0x80202300; // rom:0xC2C580 +vtx_C23260 = 0x80202320; // rom:0xC2C5A0 +vtx_C232A0 = 0x80202360; // rom:0xC2C5E0 +vtx_C23330 = 0x802023F0; // rom:0xC2C670 +vtx_C233D0 = 0x80202490; // rom:0xC2C710 +vtx_C23480 = 0x80202540; // rom:0xC2C7C0 +vtx_C234B0 = 0x80202570; // rom:0xC2C7F0 +vtx_C235C0 = 0x80202680; // rom:0xC2C900 +vtx_C236E0 = 0x802027A0; // rom:0xC2CA20 +vtx_C23810 = 0x802028D0; // rom:0xC2CB50 +vtx_C238B0 = 0x80202970; // rom:0xC2CBF0 +vtx_C239D0 = 0x80202A90; // rom:0xC2CD10 +vtx_C23A70 = 0x80202B30; // rom:0xC2CDB0 +vtx_C23B70 = 0x80202C30; // rom:0xC2CEB0 +vtx_C23BA0 = 0x80202C60; // rom:0xC2CEE0 +vtx_C23C70 = 0x80202D30; // rom:0xC2CFB0 +vtx_C23C90 = 0x80202D50; // rom:0xC2CFD0 +vtx_C23CE0 = 0x80202DA0; // rom:0xC2D020 +vtx_C23D20 = 0x80202DE0; // rom:0xC2D060 +vtx_C23D60 = 0x80202E20; // rom:0xC2D0A0 +vtx_C23DD0 = 0x80202E90; // rom:0xC2D110 +vtx_C23E00 = 0x80202EC0; // rom:0xC2D140 +vtx_C23E20 = 0x80202EE0; // rom:0xC2D160 +vtx_C23E50 = 0x80202F10; // rom:0xC2D190 +vtx_C23F10 = 0x80202FD0; // rom:0xC2D250 +vtx_C23FD0 = 0x80203090; // rom:0xC2D310 +vtx_C240D0 = 0x80203190; // rom:0xC2D410 +vtx_C241D0 = 0x80203290; // rom:0xC2D510 +vtx_C24350 = 0x80203410; // rom:0xC2D690 +vtx_C24510 = 0x802035D0; // rom:0xC2D850 +vtx_C24540 = 0x80203600; // rom:0xC2D880 +vtx_C24600 = 0x802036C0; // rom:0xC2D940 +vtx_C24690 = 0x80203750; // rom:0xC2D9D0 +vtx_C24720 = 0x802037E0; // rom:0xC2DA60 +vtx_C24730 = 0x802037F0; // rom:0xC2DA70 +vtx_C24840 = 0x80203900; // rom:0xC2DB80 +vtx_C24960 = 0x80203A20; // rom:0xC2DCA0 +vtx_C24980 = 0x80203A40; // rom:0xC2DCC0 +vtx_C24AD0 = 0x80203B90; // rom:0xC2DE10 +vtx_C24AF0 = 0x80203BB0; // rom:0xC2DE30 +vtx_C24CD0 = 0x80203D90; // rom:0xC2E010 +vtx_C24EB0 = 0x80203F70; // rom:0xC2E1F0 +vtx_C24F30 = 0x80203FF0; // rom:0xC2E270 +vtx_C24FB0 = 0x80204070; // rom:0xC2E2F0 +vtx_C25050 = 0x80204110; // rom:0xC2E390 +vtx_C25250 = 0x80204310; // rom:0xC2E590 +vtx_C25310 = 0x802043D0; // rom:0xC2E650 +vtx_C25350 = 0x80204410; // rom:0xC2E690 +vtx_C25500 = 0x802045C0; // rom:0xC2E840 +vtx_C25600 = 0x802046C0; // rom:0xC2E940 +vtx_C256D0 = 0x80204790; // rom:0xC2EA10 +vtx_C25710 = 0x802047D0; // rom:0xC2EA50 +vtx_C257D0 = 0x80204890; // rom:0xC2EB10 +vtx_C257F0 = 0x802048B0; // rom:0xC2EB30 +vtx_C25900 = 0x802049C0; // rom:0xC2EC40 +vtx_C25950 = 0x80204A10; // rom:0xC2EC90 +vtx_C25A30 = 0x80204AF0; // rom:0xC2ED70 +vtx_C25AB0 = 0x80204B70; // rom:0xC2EDF0 +vtx_C25B30 = 0x80204BF0; // rom:0xC2EE70 +vtx_C25BD0 = 0x80204C90; // rom:0xC2EF10 +vtx_C25C00 = 0x80204CC0; // rom:0xC2EF40 +vtx_C25C20 = 0x80204CE0; // rom:0xC2EF60 +vtx_C25C80 = 0x80204D40; // rom:0xC2EFC0 +vtx_C25CF0 = 0x80204DB0; // rom:0xC2F030 +vtx_C25D30 = 0x80204DF0; // rom:0xC2F070 +vtx_C25DA0 = 0x80204E60; // rom:0xC2F0E0 +vtx_C25DD0 = 0x80204E90; // rom:0xC2F110 +vtx_C25EA0 = 0x80204F60; // rom:0xC2F1E0 +vtx_C25F00 = 0x80204FC0; // rom:0xC2F240 +vtx_C25F90 = 0x80205050; // rom:0xC2F2D0 +vtx_C26040 = 0x80205100; // rom:0xC2F380 +vtx_C26090 = 0x80205150; // rom:0xC2F3D0 +vtx_C26130 = 0x802051F0; // rom:0xC2F470 +vtx_C26250 = 0x80205310; // rom:0xC2F590 +vtx_C26290 = 0x80205350; // rom:0xC2F5D0 +vtx_C262D0 = 0x80205390; // rom:0xC2F610 +vtx_C26310 = 0x802053D0; // rom:0xC2F650 +vtx_C26350 = 0x80205410; // rom:0xC2F690 +vtx_C26390 = 0x80205450; // rom:0xC2F6D0 +vtx_C263D0 = 0x80205490; // rom:0xC2F710 +vtx_C26410 = 0x802054D0; // rom:0xC2F750 +vtx_C26450 = 0x80205510; // rom:0xC2F790 +vtx_C26490 = 0x80205550; // rom:0xC2F7D0 +vtx_C264D0 = 0x80205590; // rom:0xC2F810 +vtx_C26510 = 0x802055D0; // rom:0xC2F850 +vtx_C26550 = 0x80205610; // rom:0xC2F890 +vtx_C26590 = 0x80205650; // rom:0xC2F8D0 +vtx_C265D0 = 0x80205690; // rom:0xC2F910 +vtx_C26610 = 0x802056D0; // rom:0xC2F950 +vtx_C26650 = 0x80205710; // rom:0xC2F990 +vtx_C26690 = 0x80205750; // rom:0xC2F9D0 +vtx_C266D0 = 0x80205790; // rom:0xC2FA10 +vtx_C26710 = 0x802057D0; // rom:0xC2FA50 +vtx_C26750 = 0x80205810; // rom:0xC2FA90 +vtx_C26890 = 0x80205950; // rom:0xC2FBD0 +vtx_C26A60 = 0x80205B20; // rom:0xC2FDA0 +vtx_C26AE0 = 0x80205BA0; // rom:0xC2FE20 +vtx_C26CC0 = 0x80205D80; // rom:0xC30000 +vtx_C26EB0 = 0x80205F70; // rom:0xC301F0 +vtx_C26F40 = 0x80206000; // rom:0xC30280 +vtx_C26FB0 = 0x80206070; // rom:0xC302F0 +vtx_C27110 = 0x802061D0; // rom:0xC30450 +vtx_C27180 = 0x80206240; // rom:0xC304C0 +vtx_C27220 = 0x802062E0; // rom:0xC30560 +vtx_C27300 = 0x802063C0; // rom:0xC30640 +vtx_C273A0 = 0x80206460; // rom:0xC306E0 +vtx_C27460 = 0x80206520; // rom:0xC307A0 +vtx_C27580 = 0x80206640; // rom:0xC308C0 +vtx_C27740 = 0x80206800; // rom:0xC30A80 +vtx_C27770 = 0x80206830; // rom:0xC30AB0 +vtx_C27880 = 0x80206940; // rom:0xC30BC0 +vtx_C27A40 = 0x80206B00; // rom:0xC30D80 +vtx_C27A70 = 0x80206B30; // rom:0xC30DB0 +vtx_C27B80 = 0x80206C40; // rom:0xC30EC0 +vtx_C27D60 = 0x80206E20; // rom:0xC310A0 +vtx_C27F20 = 0x80206FE0; // rom:0xC31260 +vtx_C27FC0 = 0x80207080; // rom:0xC31300 +vtx_C27FE0 = 0x802070A0; // rom:0xC31320 +vtx_C28080 = 0x80207140; // rom:0xC313C0 +vtx_C28110 = 0x802071D0; // rom:0xC31450 +vtx_C28190 = 0x80207250; // rom:0xC314D0 +vtx_C281B0 = 0x80207270; // rom:0xC314F0 +vtx_C281E0 = 0x802072A0; // rom:0xC31520 +vtx_C282D0 = 0x80207390; // rom:0xC31610 +vtx_C282F0 = 0x802073B0; // rom:0xC31630 +vtx_C28310 = 0x802073D0; // rom:0xC31650 +vtx_C28420 = 0x802074E0; // rom:0xC31760 +vtx_C284F0 = 0x802075B0; // rom:0xC31830 +vtx_C28550 = 0x80207610; // rom:0xC31890 +vtx_C28690 = 0x80207750; // rom:0xC319D0 +vtx_C28720 = 0x802077E0; // rom:0xC31A60 +vtx_C287A0 = 0x80207860; // rom:0xC31AE0 +vtx_C28890 = 0x80207950; // rom:0xC31BD0 +vtx_C28970 = 0x80207A30; // rom:0xC31CB0 +vtx_C28A70 = 0x80207B30; // rom:0xC31DB0 +vtx_C28BB0 = 0x80207C70; // rom:0xC31EF0 +vtx_C28D90 = 0x80207E50; // rom:0xC320D0 +vtx_C28F70 = 0x80208030; // rom:0xC322B0 +vtx_C29150 = 0x80208210; // rom:0xC32490 +vtx_C29330 = 0x802083F0; // rom:0xC32670 +vtx_C29470 = 0x80208530; // rom:0xC327B0 +vtx_C294A0 = 0x80208560; // rom:0xC327E0 +vtx_C294F0 = 0x802085B0; // rom:0xC32830 +vtx_C29540 = 0x80208600; // rom:0xC32880 +vtx_C29570 = 0x80208630; // rom:0xC328B0 +vtx_C295B0 = 0x80208670; // rom:0xC328F0 +vtx_C29630 = 0x802086F0; // rom:0xC32970 +vtx_C29650 = 0x80208710; // rom:0xC32990 +vtx_C296C0 = 0x80208780; // rom:0xC32A00 +vtx_C29750 = 0x80208810; // rom:0xC32A90 +vtx_C297F0 = 0x802088B0; // rom:0xC32B30 +vtx_C298E0 = 0x802089A0; // rom:0xC32C20 +vtx_C29A40 = 0x80208B00; // rom:0xC32D80 +vtx_C29AB0 = 0x80208B70; // rom:0xC32DF0 +vtx_C29BB0 = 0x80208C70; // rom:0xC32EF0 +vtx_C29CD0 = 0x80208D90; // rom:0xC33010 +vtx_C29E00 = 0x80208EC0; // rom:0xC33140 +vtx_C29F50 = 0x80209010; // rom:0xC33290 +vtx_C2A080 = 0x80209140; // rom:0xC333C0 +vtx_C2A180 = 0x80209240; // rom:0xC334C0 +vtx_C2A2C0 = 0x80209380; // rom:0xC33600 +vtx_C2A3C0 = 0x80209480; // rom:0xC33700 +vtx_C2A540 = 0x80209600; // rom:0xC33880 +vtx_C2A700 = 0x802097C0; // rom:0xC33A40 +vtx_C2A740 = 0x80209800; // rom:0xC33A80 +vtx_C2A790 = 0x80209850; // rom:0xC33AD0 +vtx_C2A8D0 = 0x80209990; // rom:0xC33C10 +vtx_C2AAB0 = 0x80209B70; // rom:0xC33DF0 +vtx_C2AC90 = 0x80209D50; // rom:0xC33FD0 +vtx_C2AD20 = 0x80209DE0; // rom:0xC34060 +vtx_C2AD70 = 0x80209E30; // rom:0xC340B0 +vtx_C2AE50 = 0x80209F10; // rom:0xC34190 +vtx_C2AE70 = 0x80209F30; // rom:0xC341B0 +vtx_C2AEB0 = 0x80209F70; // rom:0xC341F0 +vtx_C2AF60 = 0x8020A020; // rom:0xC342A0 +vtx_C2AF80 = 0x8020A040; // rom:0xC342C0 +vtx_C2B010 = 0x8020A0D0; // rom:0xC34350 +vtx_C2B050 = 0x8020A110; // rom:0xC34390 +vtx_C2B220 = 0x8020A2E0; // rom:0xC34560 +vtx_C2B250 = 0x8020A310; // rom:0xC34590 +vtx_C2B2D0 = 0x8020A390; // rom:0xC34610 +vtx_C2B340 = 0x8020A400; // rom:0xC34680 +vtx_C2B3C0 = 0x8020A480; // rom:0xC34700 +vtx_C2B3E0 = 0x8020A4A0; // rom:0xC34720 +vtx_C2B410 = 0x8020A4D0; // rom:0xC34750 +vtx_C2B560 = 0x8020A620; // rom:0xC348A0 +vtx_C2B6D0 = 0x8020A790; // rom:0xC34A10 +vtx_C2B800 = 0x8020A8C0; // rom:0xC34B40 +vtx_C2B850 = 0x8020A910; // rom:0xC34B90 +vtx_C2B8E0 = 0x8020A9A0; // rom:0xC34C20 +vtx_C2B9B0 = 0x8020AA70; // rom:0xC34CF0 +vtx_C2BA50 = 0x8020AB10; // rom:0xC34D90 +vtx_C2BB50 = 0x8020AC10; // rom:0xC34E90 +vtx_C2BD50 = 0x8020AE10; // rom:0xC35090 +vtx_C2BE50 = 0x8020AF10; // rom:0xC35190 +vtx_C2BF50 = 0x8020B010; // rom:0xC35290 +vtx_C2BF60 = 0x8020B020; // rom:0xC352A0 +vtx_C2BFD0 = 0x8020B090; // rom:0xC35310 +vtx_C2C080 = 0x8020B140; // rom:0xC353C0 +vtx_C2C0B0 = 0x8020B170; // rom:0xC353F0 +vtx_C2C0F0 = 0x8020B1B0; // rom:0xC35430 +vtx_C2C130 = 0x8020B1F0; // rom:0xC35470 +vtx_C2C1C0 = 0x8020B280; // rom:0xC35500 +vtx_C2C300 = 0x8020B3C0; // rom:0xC35640 +vtx_C2C4E0 = 0x8020B5A0; // rom:0xC35820 +vtx_C2C6C0 = 0x8020B780; // rom:0xC35A00 +vtx_C2C8A0 = 0x8020B960; // rom:0xC35BE0 +vtx_C2CA20 = 0x8020BAE0; // rom:0xC35D60 +vtx_C2CBA0 = 0x8020BC60; // rom:0xC35EE0 +vtx_C2CD20 = 0x8020BDE0; // rom:0xC36060 +vtx_C2CEA0 = 0x8020BF60; // rom:0xC361E0 +vtx_C2CED0 = 0x8020BF90; // rom:0xC36210 +vtx_C2CF00 = 0x8020BFC0; // rom:0xC36240 +vtx_C2CFC0 = 0x8020C080; // rom:0xC36300 +vtx_C2D140 = 0x8020C200; // rom:0xC36480 +vtx_C2D170 = 0x8020C230; // rom:0xC364B0 +vtx_C2D1A0 = 0x8020C260; // rom:0xC364E0 +vtx_C2D260 = 0x8020C320; // rom:0xC365A0 +vtx_C2D3E0 = 0x8020C4A0; // rom:0xC36720 +vtx_C2D410 = 0x8020C4D0; // rom:0xC36750 +vtx_C2D440 = 0x8020C500; // rom:0xC36780 +vtx_C2D500 = 0x8020C5C0; // rom:0xC36840 +vtx_C2D560 = 0x8020C620; // rom:0xC368A0 +vtx_C2D5C0 = 0x8020C680; // rom:0xC36900 +vtx_C2D620 = 0x8020C6E0; // rom:0xC36960 +vtx_C2D660 = 0x8020C720; // rom:0xC369A0 +vtx_C2D6A0 = 0x8020C760; // rom:0xC369E0 +vtx_C2D6E0 = 0x8020C7A0; // rom:0xC36A20 +vtx_C2D830 = 0x8020C8F0; // rom:0xC36B70 +vtx_C2D8F0 = 0x8020C9B0; // rom:0xC36C30 +vtx_C2DA20 = 0x8020CAE0; // rom:0xC36D60 +vtx_C2DBE0 = 0x8020CCA0; // rom:0xC36F20 +vtx_C2DCB0 = 0x8020CD70; // rom:0xC36FF0 +vtx_C2DD50 = 0x8020CE10; // rom:0xC37090 +vtx_C2DD90 = 0x8020CE50; // rom:0xC370D0 +vtx_C2DEA0 = 0x8020CF60; // rom:0xC371E0 +vtx_C2DFC0 = 0x8020D080; // rom:0xC37300 +vtx_C2E020 = 0x8020D0E0; // rom:0xC37360 +vtx_C2E1E0 = 0x8020D2A0; // rom:0xC37520 +vtx_C2E2B0 = 0x8020D370; // rom:0xC375F0 +vtx_C2E360 = 0x8020D420; // rom:0xC376A0 +vtx_C2E390 = 0x8020D450; // rom:0xC376D0 +vtx_C2E4A0 = 0x8020D560; // rom:0xC377E0 +vtx_C2E5D0 = 0x8020D690; // rom:0xC37910 +vtx_C2E620 = 0x8020D6E0; // rom:0xC37960 +vtx_C2E7B0 = 0x8020D870; // rom:0xC37AF0 +vtx_C2E800 = 0x8020D8C0; // rom:0xC37B40 +vtx_C2E8C0 = 0x8020D980; // rom:0xC37C00 +vtx_C2E980 = 0x8020DA40; // rom:0xC37CC0 +vtx_C2EA60 = 0x8020DB20; // rom:0xC37DA0 +kzn_19_lava_piranha_vine_img = 0x802434D8; // rom:0xC9A278 +kzn_19_lava_piranha_vine_pal = 0x802438D8; // rom:0xC9A678 +kzn_19_lava_piranha_vine_gfx = 0x80243AD8; // rom:0xC9A878 +sam_05_monstar_png = 0x80242770; // segment:sam_05 rom:0xD24530 +sam_05_monstar_gfx = 0x80246F80; // segment:sam_05 rom:0xD28D40 +sam_05_monstar_vtx = 0x80247090; // segment:sam_05 rom:0xD28E50 size:0x420 +pra_31_texture_1_img = 0x80243490; // segment:pra_31 rom:0xD8B560 +pra_31_texture_1_pal = 0x80243C90; // segment:pra_31 rom:0xD8BD60 +pra_31_texture_1_gfx = 0x80243CB0; // segment:pra_31 rom:0xD8BD80 +pra_31_texture_2_img = 0x80243D70; // segment:pra_31 rom:0xD8BE40 +pra_31_texture_2_pal = 0x80244570; // segment:pra_31 rom:0xD8C640 +pra_31_texture_2_gfx = 0x80244590; // segment:pra_31 rom:0xD8C660 +pra_31_texture_3_img = 0x80244640; // segment:pra_31 rom:0xD8C710 +pra_31_texture_3_gfx = 0x80244E40; // segment:pra_31 rom:0xD8CF10 +pra_31_unk_01_gfx = 0x80244ED0; // segment:pra_31 rom:0xD8CFA0 +pra_31_unk_02_gfx = 0x80244F48; // segment:pra_31 rom:0xD8D018 +pra_31_unk_03_gfx = 0x80244F80; // segment:pra_31 rom:0xD8D050 +pra_31_unk_04_gfx = 0x80244FE8; // segment:pra_31 rom:0xD8D0B8 +pra_31_unk_05_gfx = 0x80245020; // segment:pra_31 rom:0xD8D0F0 +pra_31_unk_06_gfx = 0x80245098; // segment:pra_31 rom:0xD8D168 +pra_31_unk_07_gfx = 0x802450D0; // segment:pra_31 rom:0xD8D1A0 +pra_31_unk_08_gfx = 0x80245148; // segment:pra_31 rom:0xD8D218 +pra_31_unk_09_gfx = 0x80245180; // segment:pra_31 rom:0xD8D250 +pra_31_unk_10_gfx = 0x802451E8; // segment:pra_31 rom:0xD8D2B8 +pra_31_unk_11_gfx = 0x80245220; // segment:pra_31 rom:0xD8D2F0 +pra_31_unk_12_gfx = 0x80245298; // segment:pra_31 rom:0xD8D368 +pra_31_unk_13_gfx = 0x802452D0; // segment:pra_31 rom:0xD8D3A0 +pra_31_unk_14_gfx = 0x80245348; // segment:pra_31 rom:0xD8D418 +pra_31_unk_15_gfx = 0x80245380; // segment:pra_31 rom:0xD8D450 +pra_31_unk_16_gfx = 0x802453E8; // segment:pra_31 rom:0xD8D4B8 +pra_31_unk_17_gfx = 0x80245420; // segment:pra_31 rom:0xD8D4F0 +pra_31_unk_18_gfx = 0x80245498; // segment:pra_31 rom:0xD8D568 +pra_31_unk_19_gfx = 0x802454D0; // segment:pra_31 rom:0xD8D5A0 +pra_31_unk_20_gfx = 0x80245548; // segment:pra_31 rom:0xD8D618 +pra_31_unk_21_gfx = 0x80245580; // segment:pra_31 rom:0xD8D650 +pra_31_unk_22_gfx = 0x802455E8; // segment:pra_31 rom:0xD8D6B8 +pra_31_unk_23_gfx = 0x80245620; // segment:pra_31 rom:0xD8D6F0 +pra_31_unk_24_gfx = 0x80245698; // segment:pra_31 rom:0xD8D768 +pra_31_unk_25_gfx = 0x802456D0; // segment:pra_31 rom:0xD8D7A0 +pra_31_unk_26_gfx = 0x80245748; // segment:pra_31 rom:0xD8D818 +pra_31_unk_27_gfx = 0x80245780; // segment:pra_31 rom:0xD8D850 +pra_31_unk_28_gfx = 0x802457E8; // segment:pra_31 rom:0xD8D8B8 +pra_31_unk_29_gfx = 0x80245848; // segment:pra_31 rom:0xD8D918 +pra_31_unk_30_gfx = 0x802458B0; // segment:pra_31 rom:0xD8D980 +pra_31_unk_31_gfx = 0x802458F8; // segment:pra_31 rom:0xD8D9C8 +pra_31_unk_32_gfx = 0x80245988; // segment:pra_31 rom:0xD8DA58 +pra_31_unk_33_gfx = 0x802459B0; // segment:pra_31 rom:0xD8DA80 +pra_31_unk_34_gfx = 0x802459D8; // segment:pra_31 rom:0xD8DAA8 +pra_31_stairs_lights = 0x802476A0; // segment:pra_31 rom:0xD8F770 +pra_31_unk_30_mtx = 0x802476C0; // segment:pra_31 rom:0xD8F790 +pra_31_unk_26_mtx = 0x80247700; // segment:pra_31 rom:0xD8F7D0 +pra_31_unk_24_mtx = 0x80247740; // segment:pra_31 rom:0xD8F810 +pra_31_unk_22_mtx = 0x80247780; // segment:pra_31 rom:0xD8F850 +pra_31_unk_20_mtx = 0x802477C0; // segment:pra_31 rom:0xD8F890 +pra_31_unk_18_mtx = 0x80247800; // segment:pra_31 rom:0xD8F8D0 +pra_31_unk_16_mtx = 0x80247840; // segment:pra_31 rom:0xD8F910 +pra_31_unk_14_mtx = 0x80247880; // segment:pra_31 rom:0xD8F950 +pra_31_unk_12_mtx = 0x802478C0; // segment:pra_31 rom:0xD8F990 +pra_31_unk_10_mtx = 0x80247900; // segment:pra_31 rom:0xD8F9D0 +pra_31_unk_08_mtx = 0x80247940; // segment:pra_31 rom:0xD8FA10 +pra_31_unk_06_mtx = 0x80247980; // segment:pra_31 rom:0xD8FA50 +pra_31_unk_04_mtx = 0x802479C0; // segment:pra_31 rom:0xD8FA90 +pra_31_unk_02_mtx = 0x80247A00; // segment:pra_31 rom:0xD8FAD0 +pra_31_stairs_vtx = 0x80247A40; // segment:pra_31 rom:0xD8FB10 size:0x1D0 +mgm_01_panel_1_coin_img = 0x80242CE0; // rom:0xE1E2D0 +mgm_01_panel_5_coins_img = 0x80242F00; // rom:0xE1E4F0 +mgm_01_panel_times_5_img = 0x80243120; // rom:0xE1E710 +mgm_01_panel_bowser_img = 0x80243340; // rom:0xE1E930 +mgm_02_panel_peach_img = 0x802482A0; // rom:0xE26EB0 inspect_icon_img = 0x802B7A20; // rom:0xE299C0 inspect_icon_gfx = 0x802B7C40; // rom:0xE29BE0 diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index 85a3aee40f8..6893b8f2949 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -23,6 +23,356 @@ D_B0000000 = 0xB0000000; D_B0000008 = 0xB0000008; D_B0000010 = 0xB0000010; +// Obfuscation symbols +obfuscated_battle_heap_create = battle_heap_create - 0xFEFFFFF; +obfuscated_general_heap_create = general_heap_create - 0xFEFEFEF; +obfuscated_load_engine_data = load_engine_data - 0x315; +obfuscated_create_audio_system = create_audio_system - 0x7B; +obfuscated_obfuscation_shims_VRAM = obfuscation_shims_VRAM - 0xA912928; +obfuscated_obfuscation_shims_ROM_START = obfuscation_shims_ROM_START - 0x8939221; + +// Invalid pointers from dead code +dead_transform_point = transform_point + 0x1260; +dead_dma_copy = dma_copy + 0x1260; +dead_rand_int = rand_int + 0x1260; +dead_clamp_angle = clamp_angle + 0x1260; +dead_get_clamped_angle_diff = get_clamped_angle_diff + 0x1260; +dead_atan2 = atan2 + 0x1260; +dead_dist2D = dist2D + 0x1260; +dead_dist3D = dist3D + 0x1260; +dead_add_vec2D_polar = add_vec2D_polar + 0x1260; +dead_sin_rad = sin_rad + 0x1260; +dead_cos_rad = cos_rad + 0x1260; +dead_sin_cos_deg = sin_cos_deg + 0x1260; +dead_sin_deg = sin_deg + 0x1260; +dead_cos_deg = cos_deg + 0x1260; +dead_update_lerp = update_lerp + 0x1260; +dead_general_heap_malloc = general_heap_malloc + 0x1260; +dead_general_heap_free = general_heap_free + 0x1260; +dead_heap_malloc = heap_malloc + 0x1260; +dead_heap_free = heap_free + 0x1260; +dead_get_screen_coords = get_screen_coords + 0x16A4; +dead_get_npc_by_index = get_npc_by_index + 0x3810; +dead_npc_move_heading = npc_move_heading + 0x3880; +dead_get_npc_unsafe = get_npc_unsafe + 0x3880; +dead_get_npc_safe = get_npc_safe + 0x389C; +dead_disable_npc_shadow = disable_npc_shadow + 0x389C; +dead_set_npc_yaw = set_npc_yaw + 0x38C0; +dead_spawn_surface_effects = spawn_surface_effects + 0x38D0; +dead_get_enemy = get_enemy + 0x3CBC; +dead_SetEncounterStatusFlags = SetEncounterStatusFlags + 0x3F50; +dead_IsStartingConversation = IsStartingConversation + 0x3F50; +dead_func_80044238 = func_80044238 + 0x3F50; +dead_MakeNpcs = MakeNpcs + 0x3F50; +dead_RemoveNpc = RemoveNpc + 0x3F50; +dead_GetBattleOutcome = GetBattleOutcome + 0x3F50; +dead_GetOwnerEncounterTrigger = GetOwnerEncounterTrigger + 0x3F50; +dead_DoNpcDefeat = DoNpcDefeat + 0x3F50; +dead_StartBattle = StartBattle + 0x3F50; +dead_StartBossBattle = StartBossBattle + 0x3F50; +dead_BindNpcAI = BindNpcAI + 0x3F50; +dead_BindNpcIdle = BindNpcIdle + 0x3F50; +dead_EnableNpcAI = EnableNpcAI + 0x3F50; +dead_SetNpcAux = SetNpcAux + 0x3F50; +dead_BindNpcAux = BindNpcAux + 0x3F50; +dead_BindNpcInteract = BindNpcInteract + 0x3F50; +dead_BindNpcHit = BindNpcHit + 0x3F50; +dead_BindNpcDefeat = BindNpcDefeat + 0x3F50; +dead_SetSelfVar = SetSelfVar + 0x3F50; +dead_GetSelfVar = GetSelfVar + 0x3F50; +dead_SetNpcVar = SetNpcVar + 0x3F50; +dead_SetSelfEnemyFlagBits = SetSelfEnemyFlagBits + 0x3F50; +dead_SelfEnemyOverrideSyncPos = SelfEnemyOverrideSyncPos + 0x3F50; +dead_GetSelfNpcID = GetSelfNpcID + 0x3F50; +dead_SetEnemyFlagBits = SetEnemyFlagBits + 0x3F50; +dead_GetSelfAnimationFromTable = GetSelfAnimationFromTable + 0x3F50; +dead_OnPlayerFled = OnPlayerFled + 0x3F50; +dead_is_point_within_region = is_point_within_region + 0x3F90; +dead_basic_ai_check_player_dist = basic_ai_check_player_dist + 0x3F90; +dead_ai_enemy_play_sound = ai_enemy_play_sound + 0x41E0; +dead_basic_ai_wander_init = basic_ai_wander_init + 0x42C0; +dead_basic_ai_wander = basic_ai_wander + 0x42C0; +dead_basic_ai_loiter_init = basic_ai_loiter_init + 0x42C0; +dead_basic_ai_loiter = basic_ai_loiter + 0x42C0; +dead_basic_ai_found_player_jump_init = basic_ai_found_player_jump_init + 0x42C0; +dead_basic_ai_found_player_jump = basic_ai_found_player_jump + 0x42C0; +dead_basic_ai_chase_init = basic_ai_chase_init + 0x42C0; +dead_basic_ai_chase = basic_ai_chase + 0x42C0; +dead_basic_ai_lose_player = basic_ai_lose_player + 0x42C0; +dead_BasicAI_Main = BasicAI_Main + 0x42C0; +dead_basic_ai_suspend = basic_ai_suspend + 0x42F0; +dead_snd_ambient_mute = snd_ambient_mute + 0x4350; +dead_get_current_map_settings = get_current_map_settings + 0x43E0; +dead_load_asset_by_name = load_asset_by_name + 0x43F0; +dead_osVirtualToPhysical = osVirtualToPhysical + 0x5030; +dead_sqrtf = sqrtf + 0x5030; +dead_guMtxIdentF = guMtxIdentF + 0x50C0; +dead_guMtxF2L = guMtxF2L + 0x50C0; +dead_guMtxCatF = guMtxCatF + 0x50C0; +dead_guTranslateF = guTranslateF + 0x50C0; +dead_decode_yay0 = decode_yay0 + 0x5180; +dead_fx_emote = fx_emote + 0x5180; +dead_fx_sparkles = fx_sparkles + 0x5180; +dead_fx_radial_shimmer = fx_radial_shimmer + 0x5180; +dead_fx_motion_blur_flame = fx_motion_blur_flame + 0x5180; +dead_fx_energy_orb_wave = fx_energy_orb_wave + 0x5180; +dead_fx_misc_particles = fx_misc_particles + 0x5180; +dead_fx_spirit_card = fx_spirit_card + 0x5180; +dead_fx_sun = fx_sun + 0x5180; +dead_fx_sun_undeclared = dead_fx_sun; +dead_fx_star_spirits_energy = fx_star_spirits_energy + 0x5180; +dead_gGameStatusPtr = gGameStatusPtr + 0x5194; +dead_gMatrixListPos = gMatrixListPos + 0x5260; +dead_gCurrentCameraID = gCurrentCameraID + 0x5260; +dead_EnemyNpcHit = EnemyNpcHit + 0x5360; +dead_EnemyNpcDefeat = EnemyNpcDefeat + 0x5360; +dead_gItemTable = gItemTable + 0x58E0; +dead_gPartnerPopupProperties = gPartnerPopupProperties + 0x58E0; +dead_EVS_NpcHitRecoil = EVS_NpcHitRecoil + 0x58E0; +dead_nuGfxZBuffer = nuGfxZBuffer + 0x6E84; +dead_gCurrentCamID = gCurrentCamID + 0x6E88; +dead_nuGfxCfb_ptr = nuGfxCfb_ptr + 0x6E88; +dead_gOverrideFlags = gOverrideFlags + 0x6E88; +dead_gMainGfxPos = gMainGfxPos + 0x6E88; +dead_gDisplayContext = gDisplayContext + 0x6E88; +dead_gCameras = gCameras + 0x6F30; +dead_npc_raycast_down_sides = npc_raycast_down_sides + 0x75F0; +dead_npc_test_move_simple_with_slipping = npc_test_move_simple_with_slipping + 0x75F0; +dead_npc_test_move_simple_without_slipping = npc_test_move_simple_without_slipping + 0x75F0; +dead_decrement_status_bar_disabled = decrement_status_bar_disabled + 0x7684; +dead_increment_status_bar_disabled = increment_status_bar_disabled + 0x7684; +dead_sync_status_bar = sync_status_bar + 0x7684; +dead_set_max_star_power = set_max_star_power + 0x7684; +dead_subtract_hp = subtract_hp + 0x7684; +dead_switch_to_partner = switch_to_partner + 0x7694; +dead_func_800EB2A4 = func_800EB2A4 + 0x7694; +dead_partner_clear_player_tracking = partner_clear_player_tracking + 0x7890; +dead_hide_popup_menu = hide_popup_menu + 0x7930; +dead_destroy_popup_menu = destroy_popup_menu + 0x7930; +dead_create_standard_popup_menu = create_standard_popup_menu + 0x7930; +dead_gPlayerStatusPtr = gPlayerStatusPtr + 0x7BC0; +dead_wPartnerHudScripts = wPartnerHudScripts + 0x7BC0; +dead_wDisabledPartnerHudScripts = wDisabledPartnerHudScripts + 0x7BC0; +dead_gPartnerStatus = gPartnerStatus + 0x7EC0; +dead_gPlayerStatus = gPlayerStatus + 0x7EC0; +dead_gPlayerData = gPlayerData + 0x7EC0; +dead_get_entity_by_index = get_entity_by_index + 0x85A0; +dead_MakeEntity = MakeEntity + 0x882C; +dead_AssignScript = AssignScript + 0x882C; +dead_AssignBlockFlag = AssignBlockFlag + 0x882C; +dead_AssignPanelFlag = AssignPanelFlag + 0x882C; +dead_create_shadow_type = create_shadow_type + 0x882C; +dead_get_model_from_list_index = get_model_from_list_index + 0xA1E4; +dead_get_model_list_index_from_tree_index = get_model_list_index_from_tree_index + 0xA230; +dead_set_main_pan_u = set_main_pan_u + 0xA418; +dead_set_main_pan_v = set_main_pan_v + 0xA418; +dead_set_aux_pan_u = set_aux_pan_u + 0xA418; +dead_set_aux_pan_v = set_aux_pan_v + 0xA418; +dead_mdl_get_copied_vertices = mdl_get_copied_vertices + 0xA418; +dead_mdl_get_copied_gfx = mdl_get_copied_gfx + 0xA418; +dead_queue_render_task = queue_render_task + 0xABD0; +dead_create_worker_world = create_worker_world + 0xADF0; +dead_set_message_images = set_message_images + 0xB098; +dead_set_message_text_var = set_message_text_var + 0xB098; +dead_get_item_entity = get_item_entity + 0xBF80; +dead_set_screen_overlay_params_front = set_screen_overlay_params_front + 0xC330; +dead_set_screen_overlay_params_back = set_screen_overlay_params_back + 0xC330; +dead_set_screen_overlay_color = set_screen_overlay_color + 0xC330; +dead_sfx_adjust_env_sound_pos = sfx_adjust_env_sound_pos + 0xD5A0; +dead_sfx_play_sound_with_params = sfx_play_sound_with_params + 0xD5A0; +dead_sfx_get_spatialized_sound_params = sfx_get_spatialized_sound_params + 0xD618; +dead_gCollisionStatus = gCollisionStatus + 0xF500; +dead_EnterWalk = EnterWalk + 0x310; +dead_EnterSavePoint = EnterSavePoint + 0x310; +dead_ExitWalk = ExitWalk + 0x310; +dead_Entity_BombableRock = Entity_BombableRock + 0x10000; +dead_evt_get_variable = evt_get_variable + 0xD354; +dead_evt_set_variable = evt_set_variable + 0xD354; +dead_evt_get_float_variable = evt_get_float_variable + 0xD354; +dead_evt_set_float_variable = evt_set_float_variable + 0xD354; +dead_TranslateModel = TranslateModel + 0xD400; +dead_RotateModel = RotateModel + 0xD400; +dead_ScaleModel = ScaleModel + 0xD400; +dead_CloneModel = CloneModel + 0xD400; +dead_GetModelCenter = GetModelCenter + 0xD400; +dead_SetTexPanner = SetTexPanner + 0xD400; +dead_SetModelCustomGfx = SetModelCustomGfx + 0xD400; +dead_EnableTexPanning = EnableTexPanning + 0xD400; +dead_EnableModel = EnableModel + 0xD400; +dead_SetGroupVisibility = SetGroupVisibility + 0xD400; +dead_SetTexPanOffset = SetTexPanOffset + 0xD400; +dead_SetCustomGfxBuilders = SetCustomGfxBuilders + 0xD400; +dead_SetModelFlags = SetModelFlags + 0xD400; +dead_MakeTransformGroup = MakeTransformGroup + 0xD42C; +dead_TranslateGroup = TranslateGroup + 0xD42C; +dead_RotateGroup = RotateGroup + 0xD42C; +dead_ScaleGroup = ScaleGroup + 0xD42C; +dead_EnableGroup = EnableGroup + 0xD42C; +dead_MakeLocalVertexCopy = MakeLocalVertexCopy + 0xD42C; +dead_ModifyColliderFlags = ModifyColliderFlags + 0xD42C; +dead_ResetFromLava = ResetFromLava + 0xD42C; +dead_ParentColliderToModel = ParentColliderToModel + 0xD42C; +dead_UpdateColliderTransform = UpdateColliderTransform + 0xD42C; +dead_GotoMap = GotoMap + 0xD42C; +dead_GotoMapSpecial = GotoMapSpecial + 0xD42C; +dead_GetEntryID = GetEntryID + 0xD42C; +dead_GetLoadType = GetLoadType + 0xD42C; +dead_PlaySoundAtModel = PlaySoundAtModel + 0xD42C; +dead_PlaySoundAtCollider = PlaySoundAtCollider + 0xD42C; +dead_SetCamEnabled = SetCamEnabled + 0xD430; +dead_SetCamPerspective = SetCamPerspective + 0xD430; +dead_SetCamBGColor = SetCamBGColor + 0xD430; +dead_SetCamTarget = SetCamTarget + 0xD430; +dead_ShakeCam = ShakeCam + 0xD430; +dead_SetCamLeadPlayer = SetCamLeadPlayer + 0xD460; +dead_PanToTarget = PanToTarget + 0xD460; +dead_UseSettingsFrom = UseSettingsFrom + 0xD460; +dead_SetCamType = SetCamType + 0xD474; +dead_SetCamPitch = SetCamPitch + 0xD474; +dead_SetCamDistance = SetCamDistance + 0xD474; +dead_SetCamPosA = SetCamPosA + 0xD474; +dead_SetCamPosB = SetCamPosB + 0xD474; +dead_SetCamPosC = SetCamPosC + 0xD474; +dead_SetPanTarget = SetPanTarget + 0xD474; +dead_SetCamSpeed = SetCamSpeed + 0xD474; +dead_GetCamPitch = GetCamPitch + 0xD474; +dead_GetCamDistance = GetCamDistance + 0xD474; +dead_WaitForCam = WaitForCam + 0xD474; +dead_SetCamProperties = SetCamProperties + 0xD474; +dead_AdjustCam = AdjustCam + 0xD488; +dead_ResetCam = ResetCam + 0xD49C; +dead_LoadAnimatedModel = LoadAnimatedModel + 0xD4B0; +dead_PlayModelAnimation = PlayModelAnimation + 0xD4B0; +dead_SetAnimatedModelRootPosition = SetAnimatedModelRootPosition + 0xD4B0; +dead_SetAnimatorFlags = SetAnimatorFlags + 0xD4B0; +dead_GetAnimatedPositionByTreeIndex = GetAnimatedPositionByTreeIndex + 0xD4BC; +dead_GetAnimatedRotationByTreeIndex = GetAnimatedRotationByTreeIndex + 0xD4BC; +dead_GetNpcPointer = GetNpcPointer + 0xD4E0; +dead_SetNpcPos = SetNpcPos + 0xD4E0; +dead_SetNpcRotation = SetNpcRotation + 0xD4E0; +dead_SetNpcRotationPivot = SetNpcRotationPivot + 0xD4E0; +dead_SetNpcScale = SetNpcScale + 0xD4E0; +dead_SetNpcCollisionSize = SetNpcCollisionSize + 0xD4E0; +dead_SetNpcSpeed = SetNpcSpeed + 0xD4E0; +dead_SetNpcJumpscale = SetNpcJumpscale + 0xD4E0; +dead_SetNpcAnimation = SetNpcAnimation + 0xD4E0; +dead_NpcMoveTo = NpcMoveTo + 0xD4E0; +dead_NpcJump0 = NpcJump0 + 0xD4E0; +dead_NpcJump1 = NpcJump1 + 0xD4E0; +dead_NpcFlyTo = NpcFlyTo + 0xD4E0; +dead_GetNpcYaw = GetNpcYaw + 0xD4E0; +dead_SetNpcYaw = SetNpcYaw + 0xD4E0; +dead_InterpNpcYaw = InterpNpcYaw + 0xD4E0; +dead_NpcFacePlayer = NpcFacePlayer + 0xD4E0; +dead_NpcFaceNpc = NpcFaceNpc + 0xD4E0; +dead_SetNpcFlagBits = SetNpcFlagBits + 0xD4E0; +dead_GetNpcPos = GetNpcPos + 0xD4E0; +dead_EnableNpcShadow = EnableNpcShadow + 0xD4E0; +dead_ClearPartnerMoveHistory = ClearPartnerMoveHistory + 0xD4E0; +dead_DisablePartnerAI = DisablePartnerAI + 0xD4E0; +dead_EnablePartnerAI = EnablePartnerAI + 0xD4E0; +dead_func_802CF56C = func_802CF56C + 0xD4E0; +dead_BringPartnerOut = BringPartnerOut + 0xD4E0; +dead_PutPartnerAway = PutPartnerAway + 0xD4E0; +dead_GetCurrentPartnerID = GetCurrentPartnerID + 0xD4E0; +dead_SetNpcImgFXParams = SetNpcImgFXParams + 0xD4E0; +dead_SetNpcPaletteSwapMode = SetNpcPaletteSwapMode + 0xD4E0; +dead_SetNpcPaletteSwapping = SetNpcPaletteSwapping + 0xD4E0; +dead_PlaySoundAtNpc = PlaySoundAtNpc + 0xD4E0; +dead_SpeakToPlayer = SpeakToPlayer + 0xD4E0; +dead_EndSpeech = EndSpeech + 0xD4E0; +dead_ContinueSpeech = ContinueSpeech + 0xD4E0; +dead_SpeakToNpc = SpeakToNpc + 0xD4E0; +dead_ShowMessageAtScreenPos = ShowMessageAtScreenPos + 0xD4F8; +dead_ShowMessageAtWorldPos = ShowMessageAtWorldPos + 0xD510; +dead_CloseMessage = CloseMessage + 0xD528; +dead_SwitchMessage = SwitchMessage + 0xD530; +dead_ShowChoice = ShowChoice + 0xD54C; +dead_HidePlayerShadow = HidePlayerShadow + 0xD5A0; +dead_DisablePlayerPhysics = DisablePlayerPhysics + 0xD5A0; +dead_DisablePlayerInput = DisablePlayerInput + 0xD5A0; +dead_SetPlayerPos = SetPlayerPos + 0xD5A0; +dead_SetPlayerSpeed = SetPlayerSpeed + 0xD5A0; +dead_SetPlayerJumpscale = SetPlayerJumpscale + 0xD5A0; +dead_SetPlayerAnimation = SetPlayerAnimation + 0xD5A0; +dead_SetPlayerActionState = SetPlayerActionState + 0xD5A0; +dead_PlayerMoveTo = PlayerMoveTo + 0xD5A0; +dead_PlayerJump = PlayerJump + 0xD5A0; +dead_PlayerJump1 = PlayerJump1 + 0xD5A0; +dead_InterpPlayerYaw = InterpPlayerYaw + 0xD5A0; +dead_PlayerFaceNpc = PlayerFaceNpc + 0xD5A0; +dead_GetPlayerTargetYaw = GetPlayerTargetYaw + 0xD5A0; +dead_SetPlayerFlagBits = SetPlayerFlagBits + 0xD5A0; +dead_GetPlayerActionState = GetPlayerActionState + 0xD5A0; +dead_GetPlayerPos = GetPlayerPos + 0xD5A0; +dead_GetPlayerAnimation = GetPlayerAnimation + 0xD5A0; +dead_UseExitHeading = UseExitHeading + 0xD5A0; +dead_IsPlayerOnValidFloor = IsPlayerOnValidFloor + 0xD5A0; +dead_WaitForPlayerInputEnabled = WaitForPlayerInputEnabled + 0xD5A0; +dead_UpdatePlayerImgFX = UpdatePlayerImgFX + 0xD5A0; +dead_SetPlayerImgFXFlags = SetPlayerImgFXFlags + 0xD5CC; +dead_FacePlayerTowardPoint = FacePlayerTowardPoint + 0xD5CC; +dead_GetPartnerInUse = GetPartnerInUse + 0xD5CC; +dead_InterruptUsePartner = InterruptUsePartner + 0xD5CC; +dead_func_802D2C14 = func_802D2C14 + 0xD5CC; +dead_PlaySoundAtPlayer = PlaySoundAtPlayer + 0xD5CC; +dead_MakeLerp = MakeLerp + 0xD5D0; +dead_UpdateLerp = UpdateLerp + 0xD5D0; +dead_RandInt = RandInt + 0xD5D0; +dead_GetAngleBetweenNPCs = GetAngleBetweenNPCs + 0xD5D0; +dead_GetAngleToPlayer = GetAngleToPlayer + 0xD5D0; +dead_AwaitPlayerApproach = AwaitPlayerApproach + 0xD5D0; +dead_IsPlayerWithin = IsPlayerWithin + 0xD5D0; +dead_AwaitPlayerLeave = AwaitPlayerLeave + 0xD5D0; +dead_LoadPath = LoadPath + 0xD5D0; +dead_GetNextPathPos = GetNextPathPos + 0xD5D0; +dead_SetTimeFreezeMode = SetTimeFreezeMode + 0xD5D0; +dead_ModifyGlobalOverrideFlags = ModifyGlobalOverrideFlags + 0xD5D0; +dead_SetValueByRef = SetValueByRef + 0xD5D0; +dead_GetValueByRef = GetValueByRef + 0xD5D0; +dead_FadeOutMusic = FadeOutMusic + 0xD5D0; +dead_SetMusicTrack = SetMusicTrack + 0xD5D0; +dead_FadeInMusic = FadeInMusic + 0xD5D0; +dead_PopSong = PopSong + 0xD5D0; +dead_PushSong = PushSong + 0xD5D0; +dead_PlayAmbientSounds = PlayAmbientSounds + 0xD5D0; +dead_PlaySound = PlaySound + 0xD5D0; +dead_PlaySoundAt = PlaySoundAt + 0xD5D0; +dead_StopSound = StopSound + 0xD5D0; +dead_StopTrackingSoundPos = StopTrackingSoundPos + 0xD5D0; +dead_ShowKeyChoicePopup = ShowKeyChoicePopup + 0xD5D0; +dead_ShowConsumableChoicePopup = ShowConsumableChoicePopup + 0xD5D0; +dead_RemoveKeyItemAt = RemoveKeyItemAt + 0xD5D0; +dead_RemoveItemAt = RemoveItemAt + 0xD5D0; +dead_AddKeyItem = AddKeyItem + 0xD5D0; +dead_CloseChoicePopup = CloseChoicePopup + 0xD5D0; +dead_FindKeyItem = FindKeyItem + 0xD5D0; +dead_FindItem = FindItem + 0xD5D0; +dead_MakeItemEntity = MakeItemEntity + 0xD5D0; +dead_DropItemEntity = DropItemEntity + 0xD5D0; +dead_RemoveItemEntity = RemoveItemEntity + 0xD5D0; +dead_SetItemPos = SetItemPos + 0xD5D0; +dead_AddStarPieces = AddStarPieces + 0xD5D0; +dead_ShowGotItem = ShowGotItem + 0xD5D0; +dead_ShowEmote = ShowEmote + 0xD5D0; +dead_DismissEffect = DismissEffect + 0xD5D0; +dead_PlayEffect_impl = PlayEffect_impl + 0xD5D0; +dead_SetSpriteShading = SetSpriteShading + 0xD7D0; +dead_entity_upgrade_block_hide_content = entity_upgrade_block_hide_content + 0xDCF0; +dead_Entity_SavePoint = Entity_SavePoint + 0xDD30; +dead_Entity_BrickBlock = Entity_BrickBlock + 0xDD30; +dead_Entity_MulticoinBlock = Entity_MulticoinBlock + 0xDD30; +dead_Entity_Hammer3Block = Entity_Hammer3Block + 0xDD30; +dead_Entity_YellowBlock = Entity_YellowBlock + 0xDD30; +dead_Entity_HiddenYellowBlock = Entity_HiddenYellowBlock + 0xDD30; +dead_Entity_HeartBlock = Entity_HeartBlock + 0xDD30; +dead_Entity_SuperBlock = Entity_SuperBlock + 0xDD30; +dead_Entity_ScriptSpring = Entity_ScriptSpring + 0xDD30; +dead_Entity_SimpleSpring = Entity_SimpleSpring + 0xDD30; +dead_Entity_HiddenPanel = Entity_HiddenPanel + 0xDD30; +dead_Entity_Chest = Entity_Chest + 0xDD30; +dead_osSyncPrintf = osSyncPrintf + 0x4488C; + filemenu_ROM_START = 0x0016B550; filemenu_ROM_END = 0x01749F0; filemenu_VRAM = 0x80242370; @@ -33,227 +383,12 @@ filemenu_RODATA_END = 0x8024B810; filemenu_BSS_START = 0x8024B810; filemenu_BSS_END = 0x8024B8B0; -pause_ROM_START = 0x0013E130; -pause_ROM_END = 0x0016B550; -pause_VRAM = 0x80242370; -pause_TEXT_START = 0x80242370; -pause_TEXT_END = 0x8024E690; -pause_DATA_START = 0x8024E690; -pause_RODATA_END = 0x8026F790; -pause_BSS_START = 0x8026F790; -pause_BSS_END = 0x80277D00; - sprite_shading_profiles_data_ROM_START = sprite_shading_profiles_ROM_START + 0x1D0; -battle_heap_create_obfuscated_ROM_START = 0x31F1A0; -obfuscation_shims_ROM_START = 0x31F340; -battle_heap_create_obfuscated_ROM_END = 0x31F340; -obfuscation_shims_ROM_END = 0x31F430; -obfuscated_obfuscation_shims_VRAM = 0x7599F6D8; -obfuscated_obfuscation_shims_ROM_START = 0xF79E611F; // subsequent segments -D_80197000 = 0x80197000; -D_801A6000 = 0x801A6000; -AuHeapBase = 0x801AA000; -D_80200000 = 0x80200000; gBackgroundImage = 0x80200000; -gMapShapeData = 0x80210000; -initialize_battle = 0x8023E130; filemenu_update = 0x80242970; -pause_init = 0x80243830; -pause_handle_input = 0x80243BF4; -pause_cleanup = 0x80243EC4; filemenu_init = 0x802440B0; filemenu_cleanup = 0x802442D0; func_80244BC4 = 0x80244394; -heap_collisionHead = 0x80268000; -shim_create_audio_system_obfuscated = 0x802B2000; -shim_load_engine_data_obfuscated = 0x802B203C; -shim_general_heap_create_obfuscated = 0x802B2078; -shim_battle_heap_create_obfuscated = 0x802B20B4; -heap_generalHead = 0x802FB800; -gFrameBuf0 = 0x8038F800; -gFrameBuf1 = 0x803B5000; heap_battleHead = 0x803DA800; -gFrameBuf2 = 0x803DA800; - -dgb_00_settings = 0x802400D0; // segment:dgb_00 -dgb_00_map_init = 0x80240000; // segment:dgb_00 -dgb_01_settings = 0x80243460; // segment:dgb_01 -dgb_02_settings = 0x80241470; // segment:dgb_02 -dgb_03_settings = 0x80242810; // segment:dgb_03 -dgb_04_settings = 0x80243130; // segment:dgb_04 -dgb_05_settings = 0x802414A0; // segment:dgb_05 -dgb_06_settings = 0x802402E0; // segment:dgb_06 -dgb_07_settings = 0x80241450; // segment:dgb_07 -dgb_08_settings = 0x80243CB0; // segment:dgb_08 -dgb_09_settings = 0x80243840; // segment:dgb_09 -dgb_10_settings = 0x80240210; // segment:dgb_10 -dgb_11_settings = 0x80240090; // segment:dgb_11 -dgb_12_settings = 0x802402D0; // segment:dgb_12 -dgb_13_settings = 0x80240010; // segment:dgb_13 -dgb_14_settings = 0x80240020; // segment:dgb_14 -dgb_15_settings = 0x802418A0; // segment:dgb_15 -dgb_16_settings = 0x80241440; // segment:dgb_16 -dgb_17_settings = 0x80240020; // segment:dgb_17 -dgb_18_settings = 0x80241280; // segment:dgb_18 -kzn_01_settings = 0x80240330; // segment:kzn_01 -kzn_02_settings = 0x80242850; // segment:kzn_02 -kzn_03_settings = 0x802430E0; // segment:kzn_03 -kzn_04_settings = 0x80241770; // segment:kzn_04 -kzn_05_settings = 0x80240330; // segment:kzn_05 -kzn_06_settings = 0x80240AA0; // segment:kzn_06 -kzn_07_settings = 0x80242320; // segment:kzn_07 -kzn_08_settings = 0x80244130; // segment:kzn_08 -kzn_09_settings = 0x80243A40; // segment:kzn_09 -kzn_10_settings = 0x802406F0; // segment:kzn_10 -kzn_11_settings = 0x80242680; // segment:kzn_11 -kzn_17_settings = 0x802430C0; // segment:kzn_17 -kzn_18_settings = 0x802403F0; // segment:kzn_18 -kzn_19_settings = 0x80241D70; // segment:kzn_19 -kzn_20_settings = 0x80240AE0; // segment:kzn_20 -kzn_22_settings = 0x802403A0; // segment:kzn_22 -kzn_23_settings = 0x80240630; // segment:kzn_23 -flo_00_settings = 0x80241490; // segment:flo_00 -flo_03_settings = 0x80240660; // segment:flo_03 -flo_07_settings = 0x80240760; // segment:flo_07 -flo_08_settings = 0x80241F00; // segment:flo_08 -flo_09_settings = 0x80241840; // segment:flo_09 -flo_10_settings = 0x802414A0; // segment:flo_10 -flo_11_settings = 0x802403A0; // segment:flo_11 -flo_12_settings = 0x80240710; // segment:flo_12 -flo_13_settings = 0x80243690; // segment:flo_13 -flo_14_settings = 0x802423B0; // segment:flo_14 -flo_15_settings = 0x80240020; // segment:flo_15 -flo_16_settings = 0x80242990; // segment:flo_16 -flo_17_settings = 0x80243240; // segment:flo_17 -flo_18_settings = 0x802407F0; // segment:flo_18 -flo_19_settings = 0x80240980; // segment:flo_19 -flo_21_settings = 0x80240D00; // segment:flo_21 -flo_22_settings = 0x802402A0; // segment:flo_22 -flo_23_settings = 0x80240CF0; // segment:flo_23 -flo_24_settings = 0x802405C0; // segment:flo_24 -flo_25_settings = 0x802422F0; // segment:flo_25 -sam_01_settings = 0x80242120; // segment:sam_01 -sam_02_settings = 0x80241C00; // segment:sam_02 -sam_03_settings = 0x80240940; // segment:sam_03 -sam_04_settings = 0x80240740; // segment:sam_04 -sam_05_settings = 0x80241D60; // segment:sam_05 -sam_06_settings = 0x80242630; // segment:sam_06 -sam_07_settings = 0x80242020; // segment:sam_07 -sam_08_settings = 0x802417D0; // segment:sam_08 -sam_09_settings = 0x80240420; // segment:sam_09 -sam_10_settings = 0x80240CE0; // segment:sam_10 -sam_11_settings = 0x802421A0; // segment:sam_11 -sam_12_settings = 0x802403B0; // segment:sam_12 -pra_01_settings = 0x80241400; // segment:pra_01 -pra_01_map_init = 0x80240000; // segment:pra_01 -pra_02_settings = 0x802416C0; // segment:pra_02 -pra_02_map_init = 0x80240000; // segment:pra_02 -pra_03_settings = 0x802401E0; // segment:pra_03 -pra_03_map_init = 0x80240000; // segment:pra_03 -pra_04_settings = 0x80240970; // segment:pra_04 -pra_04_map_init = 0x80240000; // segment:pra_04 -pra_05_settings = 0x802411F0; // segment:pra_05 -pra_05_map_init = 0x80240000; // segment:pra_05 -pra_06_settings = 0x80240F60; // segment:pra_06 -pra_06_map_init = 0x80240000; // segment:pra_06 -pra_09_settings = 0x80241670; // segment:pra_09 -pra_09_map_init = 0x80240000; // segment:pra_09 -pra_10_settings = 0x802416D0; // segment:pra_10 -pra_10_map_init = 0x80240000; // segment:pra_10 -pra_11_settings = 0x802411F0; // segment:pra_11 -pra_11_map_init = 0x80240000; // segment:pra_11 -pra_12_settings = 0x80241220; // segment:pra_12 -pra_12_map_init = 0x80240000; // segment:pra_12 -pra_13_settings = 0x80241620; // segment:pra_13 -pra_13_map_init = 0x80240000; // segment:pra_13 -pra_14_settings = 0x80241200; // segment:pra_14 -pra_14_map_init = 0x80240000; // segment:pra_14 -pra_15_settings = 0x80240050; // segment:pra_15 -pra_15_map_init = 0x80240000; // segment:pra_15 -pra_16_settings = 0x80240F60; // segment:pra_16 -pra_16_map_init = 0x80240000; // segment:pra_16 -pra_18_settings = 0x80240F50; // segment:pra_18 -pra_18_map_init = 0x80240000; // segment:pra_18 -pra_19_settings = 0x802419D0; // segment:pra_19 -pra_19_map_init = 0x80240000; // segment:pra_19 -pra_20_settings = 0x80240F70; // segment:pra_20 -pra_20_map_init = 0x80240000; // segment:pra_20 -pra_21_settings = 0x80240140; // segment:pra_21 -pra_21_map_init = 0x80240000; // segment:pra_21 -pra_22_settings = 0x802402D0; // segment:pra_22 -pra_22_map_init = 0x80240000; // segment:pra_22 -pra_27_settings = 0x80241220; // segment:pra_27 -pra_27_map_init = 0x80240000; // segment:pra_27 -pra_28_settings = 0x80241220; // segment:pra_28 -pra_28_map_init = 0x80240000; // segment:pra_28 -pra_29_settings = 0x802412C0; // segment:pra_29 -pra_29_map_init = 0x80240000; // segment:pra_29 -pra_31_settings = 0x802410C0; // segment:pra_31 -pra_31_map_init = 0x80240000; // segment:pra_31 -pra_32_settings = 0x80240850; // segment:pra_32 -pra_32_map_init = 0x80240000; // segment:pra_32 -pra_33_settings = 0x802410C0; // segment:pra_33 -pra_33_map_init = 0x80240000; // segment:pra_33 -pra_34_settings = 0x80241040; // segment:pra_34 -pra_34_map_init = 0x80240000; // segment:pra_34 -pra_35_settings = 0x80242C40; // segment:pra_35 -pra_35_map_init = 0x80240000; // segment:pra_35 -pra_36_settings = 0x80240F70; // segment:pra_36 -pra_36_map_init = 0x80240000; // segment:pra_36 -pra_37_settings = 0x80241840; // segment:pra_37 -pra_37_map_init = 0x80240000; // segment:pra_37 -pra_38_settings = 0x80241700; // segment:pra_38 -pra_38_map_init = 0x80240000; // segment:pra_38 -pra_39_settings = 0x80241700; // segment:pra_39 -pra_39_map_init = 0x80240000; // segment:pra_39 -pra_40_settings = 0x80240F40; // segment:pra_40 -pra_40_map_init = 0x80240000; // segment:pra_40 -omo_01_settings = 0x80240C40; // segment:omo_01 -omo_02_settings = 0x80242BD0; // segment:omo_02 -omo_03_settings = 0x80240900; // segment:omo_03 -omo_04_settings = 0x80241F30; // segment:omo_04 -omo_05_settings = 0x80242440; // segment:omo_05 -omo_06_settings = 0x80240B80; // segment:omo_06 -omo_07_settings = 0x80243310; // segment:omo_07 -omo_08_settings = 0x80240E10; // segment:omo_08 -omo_09_settings = 0x80243700; // segment:omo_09 -omo_10_settings = 0x802408B0; // segment:omo_10 -omo_11_settings = 0x802414F0; // segment:omo_11 -omo_12_settings = 0x802404D0; // segment:omo_12 -omo_13_settings = 0x80241510; // segment:omo_13 -omo_14_settings = 0x802405E0; // segment:omo_14 -omo_15_settings = 0x80240810; // segment:omo_15 -omo_16_settings = 0x80240620; // segment:omo_16 -omo_17_settings = 0x80243770; // segment:omo_17 -end_00_settings = 0x80242B50; // segment:end_00 -end_00_map_init = 0x80240000; // segment:end_00 -end_01_settings = 0x80243000; // segment:end_01 -end_01_map_init = 0x80240000; // segment:end_01 -mgm_00_settings = 0x80241810; // segment:mgm_00 -mgm_01_settings = 0x802417C0; // segment:mgm_01 -mgm_02_settings = 0x80242410; // segment:mgm_02 -mgm_03_settings = 0x80240010; // segment:mgm_03 -gv_01_settings = 0x802407D0; // segment:gv_01 - -heap_spriteHead = 0x8034F800; - -BattleEntityHeapBottom = 0x801A7000; - -// btl states -btl_state_update_player_menu = 0x802A5908; -btl_state_update_partner_menu = 0x802A8148; -btl_state_update_twink_menu = 0x802AA038; -btl_state_update_peach_menu = 0x802A9AC4; -btl_state_update_select_target = 0x802AA608; -btl_state_update_22 = 0x802AB2B0; -btl_state_draw_player_menu = 0x802A8100; -btl_state_draw_partner_menu = 0x802A9A68; -btl_state_draw_twink_menu = 0x802AA5C0; -btl_state_draw_peach_menu = 0x802A9FDC; -btl_state_draw_select_target = 0x802AAC58; -btl_state_draw_22 = 0x802AB2B8; -btl_states_menus_ROM_START = 0x0041D750; -btl_states_menus_ROM_END = 0x00429330; -btl_states_menus_VRAM = 0x802A1000; diff --git a/ver/pal/splat.yaml b/ver/pal/splat.yaml index 8ef41915ed9..825011ec87b 100644 --- a/ver/pal/splat.yaml +++ b/ver/pal/splat.yaml @@ -10281,7 +10281,7 @@ segments: subsegments: - [0xC74670, rgba16, img7, 32, 32] - [0xC74E70, gfx, img7] - - [0xC74EF0, .data, gfx] # TODO needs additioanl cleanup and gfx splitting + - [0xC74EF0, .data, gfx] # TODO needs additional cleanup and gfx splitting - name: dgb_01_smash_bridges type: code dir: world/area_dgb diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index a3c99bb084e..39de3b95051 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -11318,7 +11318,7 @@ segments: subsegments: - [0xC08770, rgba16, img7, 32, 32] - [0xC08F70, gfx, img7] - - [0xC08FF0, .data, gfx] # TODO needs additioanl cleanup and gfx splitting + - [0xC08FF0, .data, gfx] # TODO needs additional cleanup and gfx splitting - [0xC20C70] - name: dgb_01_smash_bridges # DMAd at the beginning of tubba blubba's castle (bridge cutscene) type: code