[JP] Action Commands, Battle Partners/Items/Moves and some more (#1195)

This commit is contained in:
mrshigure 2024-09-01 05:12:12 -07:00 committed by Ethan
parent 7f524ee10a
commit 3526fa4970
No known key found for this signature in database
GPG Key ID: 9BCC97FDA5482E7A
15 changed files with 1936 additions and 185 deletions

View File

@ -2414,9 +2414,7 @@ enum DoorSounds {
DOOR_SOUNDS_UNUSED = 6,
};
#if VERSION_US || VERSION_PAL || VERSION_IQUE
#include "sprite/sprite_shading_profiles.h"
#endif
enum LightSourceFlags {
LIGHT_SOURCE_DISABLED = 0,

View File

@ -1,11 +1,6 @@
#include "common.h"
#include "ld_addrs.h"
#if VERSION_JP // TODO remove once this part is split
#define SHADING_NONE 0xFFFFFFFF
extern Addr sprite_shading_profiles_ROM_START;
#endif
// TODO: not sure where these go
u8 ReflectWallPrevAlpha = 254;
u8 ReflectFloorPrevAlpha = 254;

View File

@ -56,6 +56,11 @@ 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_HeaderBadges = 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);
HudScript HES_HeaderBadges = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_badges, 48, 16);
@ -67,6 +72,7 @@ HudScript HES_HeaderParty = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_party, 48
HudScript HES_HeaderSpirits = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_spirits, 48, 16);
HudScript HES_HeaderMap = HES_TEMPLATE_CI_CUSTOM_SIZE(ui_pause_label_map, 48, 16);
#endif
#if VERSION_PAL
HudScript HES_HeaderStats_de = HES_TEMPLATE_CI_CUSTOM_SIZE(de_ui_pause_label_stats, 48, 16);

View File

@ -38,7 +38,6 @@ void action_update_use_tweester(void);
void action_update_state_23(void);
#if VERSION_JP // TODO remove once segments are split
extern Addr world_use_item_VRAM;
extern Addr world_action_idle_ROM_START;
extern Addr world_action_idle_ROM_END;
extern Addr world_action_walk_ROM_START;

View File

@ -255,10 +255,20 @@ API_CALLABLE(N(SelectTattleMsg)) {
switch (script->USE_STATE) {
case USE_TATTLE_INIT:
#if VERSION_JP
if (!(goombario->flags & NPC_FLAG_GROUNDED)) {
return ApiStatus_DONE2;
}
if (playerStatus->inputDisabledCount != 0) {
script->VAR_MSG = -1;
return ApiStatus_DONE2;
}
#else
if (!(goombario->flags & NPC_FLAG_GROUNDED) || playerStatus->inputDisabledCount != 0) {
script->VAR_MSG = -1;
return ApiStatus_DONE2;
}
#endif
script->functionTemp[1] = 3;
disable_player_input();
N(IsTattleActive) = TRUE;

View File

@ -278,6 +278,7 @@ s32 N(can_dismount)(void) {
return canDismount;
}
#if !VERSION_JP
s32 N(test_mounting_height_adjustment)(Npc* lakilester, f32 height, f32 dist) {
f32 x = gPlayerStatus.pos.x;
f32 y = gPlayerStatus.pos.y + height;
@ -306,6 +307,7 @@ s32 N(test_mounting_height_adjustment)(Npc* lakilester, f32 height, f32 dist) {
}
return FALSE;
}
#endif
void N(apply_riding_static_collisions)(Npc* lakilester) {
f32 radius = lakilester->collisionDiameter * 0.8f;
@ -543,6 +545,37 @@ void N(update_riding_physics)(Npc* lakilester) {
}
}
#if VERSION_JP
s32 N(test_mounting_height_adjustment)(Npc* lakilester, f32 height, f32 dist) {
f32 x = gPlayerStatus.pos.x;
f32 y = gPlayerStatus.pos.y + height;
f32 z = gPlayerStatus.pos.z;
f32 depth = dist;
f32 hitRx, hitRz;
f32 hitDirX, hitDirZ;
f32 deltaY;
N(MountingDeltaY) = 0;
if (npc_raycast_down_around(0, &x, &y, &z, &depth,
lakilester->yaw, lakilester->collisionDiameter))
{
deltaY = y - lakilester->moveToPos.y;
if (deltaY != 0.0f) {
if (fabs(deltaY) < 10.0) {
N(MountingDeltaY) = deltaY;
lakilester->moveToPos.y = y;
return TRUE;
} else {
return FALSE;
}
}
return TRUE;
}
return FALSE;
}
#endif
s32 N(test_dismount_height)(f32* posY) {
f32 colliderHeight = gPlayerStatus.colliderHeight;
f32 hitDirX, hitDirZ;
@ -643,7 +676,11 @@ API_CALLABLE(N(UseAbility)) {
switch (N(AbilityState)) {
case RIDE_STATE_BEGIN:
#if VERSION_JP
if (playerStatus->inputDisabledCount != 0) {
#else
if (playerStatus->flags & PS_FLAG_HIT_FIRE || playerStatus->inputDisabledCount != 0) {
#endif
playerStatus->flags &= ~PS_FLAG_PAUSE_DISABLED;
return ApiStatus_DONE2;
}
@ -653,6 +690,7 @@ API_CALLABLE(N(UseAbility)) {
N(AbilityState)++; // RIDE_STATE_DELAY
break;
case RIDE_STATE_DELAY:
#if !VERSION_JP
if (playerStatus->flags & PS_FLAG_HIT_FIRE) {
playerStatus->flags &= ~PS_FLAG_PAUSE_DISABLED;
if (N(LockingPlayerInput)) {
@ -661,6 +699,7 @@ API_CALLABLE(N(UseAbility)) {
}
return ApiStatus_DONE2;
}
#endif
if (playerStatus->animFlags & PA_FLAG_CHANGING_MAP) {
if (script->functionTemp[2] < playerStatus->inputDisabledCount) {
@ -733,7 +772,9 @@ API_CALLABLE(N(UseAbility)) {
N(AbilityState)++;
// fallthrough
case RIDE_STATE_MOUNT_4:
#if !VERSION_JP
if (!(playerStatus->flags & PS_FLAG_HIT_FIRE)) {
#endif
lakilester->pos.x += (lakilester->moveToPos.x - lakilester->pos.x) / lakilester->duration;
lakilester->pos.z += (lakilester->moveToPos.z - lakilester->pos.z) / lakilester->duration;
lakilester->pos.y += (lakilester->moveToPos.y - lakilester->pos.y) / lakilester->duration;
@ -773,17 +814,27 @@ API_CALLABLE(N(UseAbility)) {
N(AbilityState) = RIDE_STATE_START_RIDING;
playerStatus->animFlags |= PA_FLAG_RIDING_PARTNER;
}
#if !VERSION_JP
} else {
N(AbilityState) = RIDE_STATE_FINISH_1;
}
#endif
break;
case RIDE_STATE_START_RIDING:
#if !VERSION_JP
if (playerStatus->flags & PS_FLAG_HIT_FIRE) {
N(AbilityState) = RIDE_STATE_FINISH_1;
break;
}
#endif
lakilester->duration--;
if (lakilester->duration != 0) {
#if VERSION_JP
if (playerStatus->flags & PS_FLAG_HIT_FIRE) {
N(AbilityState) = RIDE_STATE_FINISH_1;
break;
}
#endif
if (partnerStatus->pressedButtons & (BUTTON_B | D_CBUTTONS)) {
if (N(can_dismount)()) {
N(AbilityState) = RIDE_STATE_DISMOUNT_1;

View File

@ -299,7 +299,11 @@ void N(update_riding_physics)(Npc* sushie) {
z = sushie->pos.z;
depth = (sushie->collisionHeight * 0.5f) + playerStatus->colliderHeight;
if (npc_raycast_up_corners(sushie->collisionChannel, &x, &y, &z, &depth, sushie->yaw, sushie->collisionDiameter * 0.3f) > NO_COLLIDER) {
#if VERSION_JP
sushie->moveToPos.y = y;
#else
sushie->moveToPos.y += (((sushie->moveToPos.y - y) + depth) - ((sushie->collisionHeight * 0.5f) + playerStatus->colliderHeight)) * 0.2f;
#endif
if (N(DiveTime) % 9 == 0) {
fx_rising_bubble(0, sushie->pos.x, sushie->moveToPos.y + (sushie->collisionHeight * 0.5f), sushie->pos.z,
(N(WaterSurfaceY) - sushie->moveToPos.y) - (sushie->collisionHeight * 0.5f));

View File

@ -341,6 +341,42 @@ API_CALLABLE(N(UseAbility)) {
break;
case SHINING_STATE_HOLDING:
N(sync_held_position)();
#if VERSION_JP
// wait for begin holding cooldown
if (script->functionTemp[1] != 0) {
script->functionTemp[1]--;
break;
}
if (playerStatus->actionState == ACTION_STATE_USE_SPINNING_FLOWER) {
break;
}
// allow stop-holding input
actionState = playerStatus->actionState;
if ((actionState == ACTION_STATE_IDLE
|| actionState == ACTION_STATE_WALK
|| actionState == ACTION_STATE_RUN
|| actionState == ACTION_STATE_LAND)
&& partnerStatus->pressedButtons & BUTTON_B
|| playerStatus->flags & PS_FLAG_HIT_FIRE
) {
case SHINING_STATE_RELEASE:
playerStatus->animFlags &= ~(PA_FLAG_WATT_IN_HANDS | PA_FLAG_USING_WATT);
npc->curAnim = ANIM_WorldWatt_Idle;
partner_clear_player_tracking(npc);
N(IsPlayerHolding) = FALSE;
partnerStatus->actingPartner = PARTNER_NONE;
partnerStatus->partnerActionState = PARTNER_ACTION_NONE;
gGameStatusPtr->keepUsingPartnerOnMapChange = FALSE;
N(AbilityState) = SHINING_STATE_BEGIN;
npc_set_palswap_mode_A(npc, NPC_PAL_ADJUST_NONE);
if (!(playerStatus->flags & PS_FLAG_HIT_FIRE)) {
set_action_state(ACTION_STATE_IDLE);
} else {
set_action_state(ACTION_STATE_HIT_LAVA);
}
return ApiStatus_DONE1;
}
#else
// immediately cancel state on touching fire
if ((playerStatus->flags & PS_FLAG_HIT_FIRE)) {
N(AbilityState) = SHINING_STATE_RELEASE;
@ -364,9 +400,11 @@ API_CALLABLE(N(UseAbility)) {
) {
N(AbilityState) = SHINING_STATE_RELEASE;
}
#endif
break;
}
#if !VERSION_JP
if (N(AbilityState) == SHINING_STATE_RELEASE) {
playerStatus->animFlags &= ~(PA_FLAG_WATT_IN_HANDS | PA_FLAG_USING_WATT);
npc->curAnim = ANIM_WorldWatt_Idle;
@ -382,6 +420,7 @@ API_CALLABLE(N(UseAbility)) {
}
return ApiStatus_DONE1;
}
#endif
if (N(StaticEffect) != NULL) {
N(StaticEffect)->data.staticStatus->pos.x = npc->pos.x;

View File

@ -113,45 +113,6 @@ extern HudScript HES_StatusSPIncrement7;
extern EvtScript EVS_World_UseItem;
#if VERSION_JP // TODO remove once segments are split
extern Addr world_use_item_ROM_START;
extern Addr world_use_item_ROM_END;
extern Addr world_use_item_VRAM;
extern Addr world_partner_goombario_ROM_START;
extern Addr world_partner_goombario_ROM_END;
extern Addr world_partner_goombario_VRAM;
extern Addr world_partner_kooper_ROM_START;
extern Addr world_partner_kooper_ROM_END;
extern Addr world_partner_kooper_VRAM;
extern Addr world_partner_bombette_ROM_START;
extern Addr world_partner_bombette_ROM_END;
extern Addr world_partner_bombette_VRAM;
extern Addr world_partner_parakarry_ROM_START;
extern Addr world_partner_parakarry_ROM_END;
extern Addr world_partner_parakarry_VRAM;
extern Addr world_partner_goompa_ROM_START;
extern Addr world_partner_goompa_ROM_END;
extern Addr world_partner_goompa_VRAM;
extern Addr world_partner_watt_ROM_START;
extern Addr world_partner_watt_ROM_END;
extern Addr world_partner_watt_VRAM;
extern Addr world_partner_sushie_ROM_START;
extern Addr world_partner_sushie_ROM_END;
extern Addr world_partner_sushie_VRAM;
extern Addr world_partner_lakilester_ROM_START;
extern Addr world_partner_lakilester_ROM_END;
extern Addr world_partner_lakilester_VRAM;
extern Addr world_partner_bow_ROM_START;
extern Addr world_partner_bow_ROM_END;
extern Addr world_partner_bow_VRAM;
extern Addr world_partner_goombaria_ROM_START;
extern Addr world_partner_goombaria_ROM_END;
extern Addr world_partner_goombaria_VRAM;
extern Addr world_partner_twink_ROM_START;
extern Addr world_partner_twink_ROM_END;
extern Addr world_partner_twink_VRAM;
#endif
s32 partner_is_idle(Npc* partner);
s32 world_partner_can_open_menus_default(Npc* partner);
void _use_partner_ability(void);

View File

@ -4,8 +4,10 @@
#include "model.h"
#include "pause/pause_common.h"
#if !VERSION_JP
extern u8 MessagePlural[];
extern u8 MessageSingular[];
#endif
extern HudScript HES_Item_Coin;
s32 shop_get_sell_price(s32 itemID);
@ -98,6 +100,7 @@ s32 shop_owner_buy_dialog(s32 messageIndex, s32 itemName, s32 coinCost, s32 bpCo
if (bpCost > 0) {
set_message_int_var(bpCost, 2);
#if !VERSION_JP
} else {
if (coinCost == 1) {
suffix = MessageSingular;
@ -105,6 +108,7 @@ s32 shop_owner_buy_dialog(s32 messageIndex, s32 itemName, s32 coinCost, s32 bpCo
suffix = MessagePlural;
}
set_message_text_var((s32) suffix, 2);
#endif
}
script = start_script(&EVS_ShopBeginSpeech, EVT_PRIORITY_1, 0);
@ -137,6 +141,7 @@ s32 shop_owner_continue_speech_with_quantity(s32 messageIndex, s32 amount) {
set_message_int_var(amount, 0);
#if !VERSION_JP
if (amount == 1) {
suffixMsg = MessageSingular;
} else {
@ -144,6 +149,7 @@ s32 shop_owner_continue_speech_with_quantity(s32 messageIndex, s32 amount) {
}
set_message_text_var((s32) suffixMsg, 1);
#endif
script = start_script(&EVS_ShopContinueSpeech, EVT_PRIORITY_1, 0);
script->varTable[0] = shopMsgID;
@ -944,7 +950,11 @@ API_CALLABLE(MakeShop) {
hud_element_clear_flags(shop->costIconID, HUD_ELEMENT_FLAG_FILTER_TEX);
get_worker(create_worker_frontUI(NULL, draw_shop_items));
set_window_properties(WINDOW_ID_ITEM_INFO_NAME, 100, 66, 120, 28, WINDOW_PRIORITY_0, shop_draw_item_name, NULL, -1);
#if VERSION_JP
set_window_properties(WINDOW_ID_ITEM_INFO_DESC, 39, 184, 242, 32, WINDOW_PRIORITY_1, shop_draw_item_desc, NULL, -1);
#else
set_window_properties(WINDOW_ID_ITEM_INFO_DESC, 32, 184, 256, 32, WINDOW_PRIORITY_1, shop_draw_item_desc, NULL, -1);
#endif
gWindowStyles[10].defaultStyleID = WINDOW_STYLE_9;
gWindowStyles[11].defaultStyleID = WINDOW_STYLE_3;
shop->curItemSlot = 0;

View File

@ -69,13 +69,17 @@ API_CALLABLE(WorldItem_RestoreFP) {
API_CALLABLE(WorldItem_PauseTime) {
set_time_freeze_mode(TIME_FREEZE_FULL);
#if !VERSION_JP
gOverrideFlags |= GLOBAL_OVERRIDES_CANT_PICK_UP_ITEMS;
#endif
return ApiStatus_DONE2;
}
API_CALLABLE(WorldItem_UnpauseTime) {
set_time_freeze_mode(TIME_FREEZE_NORMAL);
#if !VERSION_JP
gOverrideFlags &= ~GLOBAL_OVERRIDES_CANT_PICK_UP_ITEMS;
#endif
return ApiStatus_DONE2;
}

View File

@ -1,6 +1,46 @@
# This file describes what to name messages when splitting.
- [0x00, 0x0000, NONE]
- [0x0B, 0x00BA, CH0_00BA]
- [0x13, 0x0096, CH8_0096]
- [0x1D, 0x0000, EntityTattle_HammerBlock1_CanBreak]
- [0x1D, 0x0001, EntityTattle_HammerBlock2_CantBreak]
- [0x1D, 0x0002, EntityTattle_HammerBlock2_CanBreak]
- [0x1D, 0x0003, EntityTattle_HammerBlock3_CantBreak]
- [0x1D, 0x0004, EntityTattle_HammerBlock3_CanBreak]
- [0x1D, 0x0005, EntityTattle_BrickBlock]
- [0x1D, 0x0006, EntityTattle_ItemBlock]
- [0x1D, 0x0007, EntityTattle_InertBlock]
- [0x1D, 0x0008, EntityTattle_PushBlock]
- [0x1D, 0x0009, EntityTattle_BadgeBlock]
- [0x1D, 0x000A, EntityTattle_Spring]
- [0x1D, 0x000B, EntityTattle_Switch]
- [0x1D, 0x000C, EntityTattle_BigSwitch_SpinJump]
- [0x1D, 0x000D, EntityTattle_BigSwitch_TornadoJump]
- [0x1D, 0x000E, EntityTattle_FloorSwitch_SpinJump]
- [0x1D, 0x000F, EntityTattle_FloorSwitch_TornadoJump]
- [0x1D, 0x0010, EntityTattle_Pipe]
- [0x1D, 0x0011, EntityTattle_PadLock]
- [0x1D, 0x0012, EntityTattle_SignPost]
- [0x1D, 0x0013, EntityTattle_ArrowSign]
- [0x1D, 0x0014, EntityTattle_BombableRock]
- [0x1D, 0x0015, EntityTattle_Chest]
- [0x1D, 0x0016, EntityTattle_EmptyChest]
- [0x1D, 0x0017, EntityTattle_WoodenCrate_CantBreak]
- [0x1D, 0x0018, EntityTattle_WoodenCrate_SpinJump]
- [0x1D, 0x0019, EntityTattle_WoodenCrate_TornadoJump]
- [0x1D, 0x001A, EntityTattle_BoardedFloor_CantBreak]
- [0x1D, 0x001B, EntityTattle_BoardedFloor_SpinJump]
- [0x1D, 0x001C, EntityTattle_BoardedFloor_TornadoJump]
- [0x1D, 0x001D, EntityTattle_JackInTheBox_SpinJump]
- [0x1D, 0x001E, EntityTattle_JackInTheBox_TornadoJump]
- [0x1D, 0x001F, EntityTattle_BellbellPlant]
- [0x1D, 0x0020, EntityTattle_TrumpetPlant]
- [0x1D, 0x0021, EntityTattle_CymbalBush]
- [0x1D, 0x0022, EntityTattle_Munchlesia]
- [0x1D, 0x0023, EntityTattle_SpinningFlower]
- [0x1D, 0x0024, EntityTattle_BulbBush]
- [0x1D, 0x0025, EntityTattle_Interact]
- [0x20, 0x0000, Menus_Tutorial_SaveBlock]
- [0x20, 0x0001, Menus_Tutorial_HeartBlock]
- [0x20, 0x0002, Menus_Tutorial_GotItem]
@ -85,6 +125,11 @@
- [0x20, 0x00EA, Menus_00D0]
- [0x20, 0x00F0, Menus_00D6]
- [0x20, 0x00F1, Menus_00D7]
- [0x21, 0x0002, Choice_0001]
- [0x21, 0x0003, Choice_0002]
- [0x21, 0x0004, Choice_0003]
- [0x21, 0x0005, Choice_0004]
- [0x21, 0x0006, Choice_0005]
- [0x21, 0x000A, Choice_000A]
- [0x21, 0x001D, Choice_001D]
- [0x22, 0x0001, MenuTip_0032]

File diff suppressed because it is too large Load Diff

View File

@ -3002,3 +3002,32 @@ MsgCharWidthKana = 0x802E6380; // rom:0x10CC20
MsgCharWidthLatin = 0x802E6448; // rom:0x10CCE8
MsgCharWidthKanji = 0x802E6464; // rom:0x10CD04
MsgCharWidthButtons = 0x802E64E0; // rom:0x10CD80
battle_action_cmd_whirlwind_bubble_png = 0x802AA1A0; // rom:0x42C7D0
battle_item_dusty_hammer_png = 0x802A1800; // rom:0x71FB10
battle_item_pebble_png = 0x802A1800; // rom:0x7212B0
battle_item_sleepy_sheep1_png = 0x802A1F30; // rom:0x726EC0
battle_item_sleepy_sheep2_png = 0x802A2490; // rom:0x727420
battle_item_sleepy_sheep3_png = 0x802A29F0; // rom:0x727980
battle_item_egg_missile1_png = 0x802A18D0; // rom:0x7310D0
battle_item_egg_missile2_png = 0x802A1AF0; // rom:0x7312F0
battle_item_egg_missile3_png = 0x802A1D10; // rom:0x731510
battle_item_egg_missile4_png = 0x802A1F30; // rom:0x731730
battle_item_insecticide_herb_png = 0x802A19E0; // rom:0x732A70
battle_item_mystery_png = 0x802A1F10; // rom:0x734E00
battle_item_coconut_png = 0x802A1800; // rom:0x737860
battle_move_hammer_throw_dusty_hammer_png = 0x802A3048; // rom:0x75BDD8
battle_move_hammer_throw_dusty_hammer_pal = 0x802A3248; // rom:0x75BFD8
battle_move_hammer_throw_basic_hammer_png = 0x802A3268; // rom:0x75BFF8
battle_move_hammer_throw_basic_hammer_pal = 0x802A3468; // rom:0x75C1F8
battle_move_hammer_throw_super_hammer_png = 0x802A3488; // rom:0x75C218
battle_move_hammer_throw_super_hammer_pal = 0x802A3688; // rom:0x75C418
battle_move_hammer_throw_ultra_hammer_png = 0x802A36A8; // rom:0x75C438
battle_move_hammer_throw_ultra_hammer_pal = 0x802A38A8; // rom:0x75C638
battle_move_hammer_throw_vtx = 0x802A38C8; // rom:0x75C658 size:0x40
battle_move_hammer_throw_dusty_hammer_gfx = 0x802A3908; // rom:0x75C698
battle_move_hammer_throw_basic_hammer_gfx = 0x802A39F8; // rom:0x75C788
battle_move_hammer_throw_super_hammer_gfx = 0x802A3AE8; // rom:0x75C878
battle_move_hammer_throw_ultra_hammer_gfx = 0x802A3BD8; // rom:0x75C968

View File

@ -782,17 +782,14 @@ pulse_stone_ROM_END = 0xE2B440;
i_spy_ROM_START = 0xE2B440;
i_spy_ROM_END = 0xE2C0F0;
WorldTattleInteractionID = 0x802BDF60;
interact_inspect_setup = 0x802B70B4;
appendGfx_interact_prompt = 0x802B71E8;
ispy_notification_setup = 0x802b72c0;
world_watt_sync_held_position = 0x802BE06C;
appendGfx_speech_bubble = 0x802B71C8;
interact_speech_setup = 0x802B70B4;
appendGfx_pulse_stone_icon = 0x802B71D4;
appendGfx_ispy_icon = 0x802b7000;
pulse_stone_notification_setup = 0x802B7140;
world_lakilester_can_dismount = 0x802BD7DC;
action_update_idle = 0x802B6000;
world_action_idle_ROM_START = 0xE2C0F0;
@ -861,133 +858,7 @@ action_update_ride = 0x802B6000;
action_update_step_up = 0x802B6000;
action_update_state_23 = 0x802B609C;
world_use_item_ROM_START = 0x32d500;
world_use_item_ROM_END = 0x32ddd0;
world_use_item_VRAM = 0x802C0000;
EVS_World_UseItem = 0x802C059C;
world_partner_goombario_ROM_START = 0x31F430;
world_partner_goombario_ROM_END = 0x320260;
world_partner_goombario_VRAM = 0x802BD100;
world_goombario_init = 0x802BD174;
EVS_WorldGoombario_TakeOut = 0x802BDD6C;
EVS_WorldGoombario_Update = 0x802BDD8C;
EVS_WorldGoombario_UseAbility = 0x802BDDA8;
EVS_WorldGoombario_PutAway = 0x802BDE60;
world_goombario_can_open_menus = 0x802BD5A8;
world_goombario_pre_battle = 0x802BDBC0;
world_partner_kooper_ROM_START = 0x323530;
world_partner_kooper_ROM_END = 0x325080;
world_partner_kooper_VRAM = 0x802BD100;
world_kooper_init = 0x802BD200;
EVS_WorldKooper_TakeOut = 0x802BEB44;
EVS_WorldKooper_Update = 0x802BEB64;
EVS_WorldKooper_UseAbility = 0x802BEB80;
EVS_WorldKooper_PutAway = 0x802BEB9C;
world_kooper_test_first_strike = 0x802BE818;
world_kooper_pre_battle = 0x802BEA24;
world_kooper_post_battle = 0x802BEB10;
world_partner_bombette_ROM_START = 0x320260;
world_partner_bombette_ROM_END = 0x321a80;
world_partner_bombette_VRAM = 0x802BD100;
world_bombette_init = 0x802BD2D8;
EVS_WorldBombette_TakeOut = 0x802BE880;
EVS_WorldBombette_Update = 0x802BE8A0;
EVS_WorldBombette_UseAbility = 0x802BE8BC;
EVS_WorldBombette_PutAway = 0x802BE8D8;
world_bombette_test_first_strike = 0x802BE520;
world_bombette_can_use_ability = 0x802BD720;
world_bombette_can_open_menus = 0x802BD748;
world_bombette_pre_battle = 0x802BE6E8;
world_partner_parakarry_ROM_START = 0x321a80;
world_partner_parakarry_ROM_END = 0x323530;
world_partner_parakarry_VRAM = 0x802BD100;
world_parakarry_init = 0x802BD100;
EVS_WorldParakarry_TakeOut = 0x802BEA90;
EVS_WorldParakarry_Update = 0x802BEAB0;
EVS_WorldParakarry_UseAbility = 0x802BEACC;
EVS_WorldParakarry_PutAway = 0x802BEAE8;
world_parakarry_pre_battle = 0x802BE90C;
world_parakarry_post_battle = 0x802BE9D0;
world_partner_goompa_ROM_START = 0x32cd40;
world_partner_goompa_ROM_END = 0x32d240;
world_partner_goompa_VRAM = 0x802BD100;
world_goompa_init = 0x802BD100;
EVS_WorldGoompa_TakeOut = 0x802BD570;
EVS_WorldGoompa_Update = 0x802BD590;
EVS_WorldGoompa_UseAbility = 0x802BD5AC;
EVS_WorldGoompa_PutAway = 0x802BD5C8;
world_partner_watt_ROM_START = 0x325080;
world_partner_watt_ROM_END = 0x326270;
world_partner_watt_VRAM = 0x802BD100;
world_watt_init = 0x802BD23C;
EVS_WorldWatt_TakeOut = 0x802BE248;
EVS_WorldWatt_Update = 0x802BE26C;
EVS_WorldWatt_UseAbility = 0x802BE288;
EVS_WorldWatt_PutAway = 0x802BE2A4;
world_watt_pre_battle = 0x802BDD98;
world_watt_post_battle = 0x802BDE0C;
EVS_WorldWatt_EnterMap = 0x802BE2C0;
world_partner_sushie_ROM_START = 0x326270;
world_partner_sushie_ROM_END = 0x328FF0;
world_partner_sushie_VRAM = 0x802BD100;
world_sushie_init = 0x802BF4C4;
EVS_WorldSushie_TakeOut = 0x802BFD7C;
EVS_WorldSushie_Update = 0x802BFD9C;
EVS_WorldSushie_UseAbility = 0x802BFD60;
EVS_WorldSushie_PutAway = 0x802BFDB8;
world_sushie_pre_battle = 0x802BF95C;
world_sushie_post_battle = 0x802BF9FC;
EVS_WorldSushie_EnterMap = 0x802BFDD4;
world_partner_lakilester_ROM_START = 0x328FF0;
world_partner_lakilester_ROM_END = 0x32BD80;
world_partner_lakilester_VRAM = 0x802BD100;
world_lakilester_init = 0x802BD21C;
EVS_WorldLakilester_TakeOut = 0x802BFDF0;
EVS_WorldLakilester_Update = 0x802BFE10;
EVS_WorldLakilester_UseAbility = 0x802BFE2C;
EVS_WorldLakilester_PutAway = 0x802BFE48;
world_lakilester_pre_battle = 0x802BF998;
world_lakilester_post_battle = 0x802BFA40;
EVS_WorldLakilester_EnterMap = 0x802BFE64;
world_partner_bow_ROM_START = 0x32BD80;
world_partner_bow_ROM_END = 0x32CD40;
world_partner_bow_VRAM = 0x802BD100;
world_bow_init = 0x802BD100;
EVS_WorldBow_TakeOut = 0x802BDFE0;
EVS_WorldBow_Update = 0x802BE000;
EVS_WorldBow_UseAbility = 0x802BE01C;
EVS_WorldBow_PutAway = 0x802BE038;
world_bow_pre_battle = 0x802BDF64;
world_partner_goombaria_ROM_START = 0x32D240;
world_partner_goombaria_ROM_END = 0x32D3A0;
world_partner_goombaria_VRAM = 0x802BD100;
world_goombaria_init = 0x802BD100;
EVS_WorldGoombaria_TakeOut = 0x802BD1F0;
EVS_WorldGoombaria_Update = 0x802BD20C;
EVS_WorldGoombaria_UseAbility = 0x802BD228;
EVS_WorldGoombaria_PutAway = 0x802BD244;
world_partner_twink_ROM_START = 0x32D3A0;
world_partner_twink_ROM_END = 0x32D500;
world_partner_twink_VRAM = 0x802BD100;
world_twink_init = 0x802BD100;
EVS_WorldTwink_TakeOut = 0x802BD1F0;
EVS_WorldTwink_Update = 0x802BD20C;
EVS_WorldTwink_UseAbility = 0x802BD228;
EVS_WorldTwink_PutAway = 0x802BD244;
heap_spriteHead = 0x8034F800;
sprite_shading_profiles_ROM_START = 0x0031DF90;
Entity_UltraBlockContent_Render = 0x0A000800;
entity_model_SimpleSpring_gfx_ROM_END = 0x00E72BD0;
Entity_SaveBlock_RenderNone = 0x0A003508;
@ -1163,3 +1034,269 @@ cymbal_crush_header = 0x000CA380;
startle_header = 0x00029458;
get_in_bed_header = 0x00038988;
shiver_header = 0x00018200;
// battle
btl_cam_use_preset = 0x8024E40C;
btl_cam_move = 0x8024E4D8;
UseBattleCamPreset = 0x8024E61C;
UseBattleCamPresetImmediately = 0x8024E664;
SetBattleCamTarget = 0x8024E90C;
MoveBattleCamOver = 0x8024EC08;
SetBattleCamZoom = 0x8024EC6C;
AddBattleCamZoom = 0x8024ECAC;
ShowMessageBox = 0x80251440;
WaitForMessageBoxDone = 0x80251558;
ItemDamageEnemy = 0x802528A8;
ItemCheckHit = 0x80252EC0;
ActorSpeak = 0x802530B0;
EnableBattleStatusBar = 0x80253734;
PlaySoundAtActor = 0x802539DC;
SetForegroundModelsVisible = 0x80253C6C;
StartRumble = 0x80254398;
set_actor_anim = 0x80263E7C;
get_actor_part = 0x802645DC;
btl_update_ko_status = 0x802678FC;
get_actor = 0x80269EEC;
SetGoalToHome = 0x8026A044;
SetGoalToTarget = 0x8026A528;
SetGoalPos = 0x8026A690;
GetGoalPos = 0x8026A9A0;
GetActorPos = 0x8026AC28;
SetActorPos = 0x8026AFC0;
SetAnimation = 0x8026B330;
SetActorYaw = 0x8026B4D8;
SetActorJumpGravity = 0x8026B6DC;
SetActorSpeed = 0x8026B7D4;
SetJumpAnimations = 0x8026BA0C;
GetActorVar = 0x8026C134;
SetActorVar = 0x8026C1C4;
SetActorRotationOffset = 0x8026C62C;
SetActorScale = 0x8026CA84;
SetActorScaleModifier = 0x8026CB44;
SetBattleFlagBits = 0x8026CEBC;
SetActorFlagBits = 0x8026D00C;
GetOwnerID = 0x8026DF80;
InitTargetIterator = 0x8026E4D4;
ChooseNextTarget = 0x8026E594;
GetOwnerTarget = 0x8026EA2C;
ModifyActorDecoration = 0x8026F170;
func_80273444 = 0x802735C0;
PlayerRunToGoal = 0x80273DE0;
PlayerDamageEnemy = 0x802743DC;
PlayerYieldTurn = 0x80277078;
dispatch_damage_event_actor_0 = 0x80278A78;
RunToGoal = 0x80279FE4;
RemoveActor = 0x8027C930;
DispatchEvent = 0x8027D3E4;
PartnerYieldTurn = 0x80280998;
EMS_StarIcon = 0x802841E8;
PartnerWishAnims = 0x8029CB90;
CheckButtonPress = 0x8026E218;
SetGoalToFirstTarget = 0x8026A61C;
CancelablePlayerRunToGoal = 0x80274078;
func_802693F0 = 0x80269570;
AddGoalPos = 0x8026A8C8;
EnablePlayerBlur = 0x80274AF4;
PlayerLandJump = 0x80273C80;
LoadActionCommand = 0x80268340;
func_80274A18 = 0x80274B94;
func_802752AC = 0x80275428;
GetPlayerActionSuccess = 0x80277030;
SetActionDifficultyTable = 0x8026931C;
func_80275F00 = 0x8027607C;
CloseActionCommandInfo = 0x80269590;
SetActorRotation = 0x8026C52C;
SetActorDispOffset = 0x8026BB84;
ShowActionHud = 0x80269624;
GetMenuSelection = 0x80273540;
PlayerTestEnemy = 0x8027486C;
SetActorSounds = 0x8026F8C0;
GetTargetListLength = 0x8026E9E4;
GetActionResult = 0x802696A4;
GetCommandAutoSuccess = 0x802694F0;
SetActionResult = 0x802696D0;
SetDamageSource = 0x8026A02C;
CheckButtonDown = 0x8026E288;
SetBattleCamOffsetZ = 0x8024EA58;
SetActionQuality = 0x80269754;
GetActionQuality = 0x80269728;
GetActionCommandMode = 0x80269498;
GetActionSuccess = 0x80269414;
SetActionCommandMode = 0x8026946C;
PlayerPowerBounceEnemy = 0x8027461C;
GetActionSuccessCopy = 0x80269678;
UseIdleAnimation = 0x8026F26C;
ShowVariableMessageBox = 0x80251498;
IsMessageBoxDisplayed = 0x80251510;
GetBattleFlags2 = 0x8026CF20;
player_team_is_ability_active = 0x8026742C;
dispatch_event_partner = 0x8027E000;
inflict_status = 0x802660C0;
EVS_PlaySleepHitFX = 0x802948E0;
ItemSpookEnemy = 0x80252AA4;
BattleCamTargetActor = 0x8024EB24;
MakeStatusField = 0x80253D14;
ItemAfflictEnemy = 0x80252CBC;
func_8024ECF8 = 0x8024ECF8;
MultiplyByActorScale = 0x8025415C;
ApplyShrinkFromOwner = 0x80254318;
MultiplyVec3ByActorScale = 0x8025425C;
SetOwnerTarget = 0x8026E528;
dispatch_event_actor = 0x802772E0;
EVS_UseMystery = 0x80294140;
SetTargetActor = 0x8027C6C8;
DispatchDamagePlayerEvent = 0x80274A98;
HES_ProjectorSpot = 0x80294F00;
HES_ProjectorReel = 0x80292ED8;
HES_ProjectorBeam = 0x80292F28;
HES_SwapBackground = 0x80292FF4;
HES_SwapZ = 0x80292F50;
HES_SwapArrowLeft = 0x80292F7C;
HES_SwapArrowRight = 0x80292FB8;
actionCmdTableSpook = 0x80294740;
gActionCommandStatus = 0x8029FED0;
action_command_init_status = 0x802689D8;
HES_100pct = 0x80292C74;
adjust_action_command_difficulty = 0x802683A4;
func_80269118 = 0x80269298;
btl_set_popup_duration = 0x8024FAB4;
func_80269160 = 0x802692E0;
action_command_free = 0x80268E1C;
draw_mash_meter_multicolor = 0x802688F0;
draw_mash_meter_blink = 0x8026898C;
actionCmdTableHurricane = 0x80294720;
HES_BButton = 0x8029261C;
HES_MashBButton1 = 0x80292674;
draw_mash_meter_multicolor_with_divisor = 0x80268918;
draw_mash_meter_blink_with_divisor = 0x802689B4;
HES_PressBButton = 0x802926B0;
HES_PressCDownButton = 0x802929C4;
HES_BButtonHeld = 0x80292648;
HES_CDownButtonHeld = 0x8029295C;
HES_TimingBar3Chances = 0x80292DFC;
HES_TimingWait = 0x80292A5C;
HES_TimingOK = 0x80292E54;
HES_TimingCharge4c = 0x80292BA0;
HES_TimingCharge4b = 0x80292B48;
HES_TimingCharge3 = 0x80292BCC;
HES_TimingCharge2 = 0x80292B74;
HES_TimingReady = 0x80292A88;
HES_TimingMiss = 0x80292E80;
actionCmdTableTidalWave = 0x802947A0;
actionCmdTableSpinySurge = 0x80294700;
actionCmdTableSmack = 0x802946E0;
actionCmdTableMegaShock = 0x802946C0;
actionCmdTablePowerShock = 0x802946A0;
actionCmdTableWaterBlock = 0x80294760;
actionCmdTableSquirt = 0x80294680;
draw_mash_meter_mode_with_divisor = 0x80268964;
actionCmdTableDizzyShell = 0x802945A0;
actionCmdTableFireShell = 0x802945C0;
actionCmdTable0A = 0x802945E0;
actionCmdTableBomb = 0x80294600;
actionCmdTableBodySlam = 0x80294620;
HES_FillGaugeResult = 0x80292EAC;
actionCmdTableAirLift = 0x80294640;
actionCmdTableAirRaid = 0x80294660;
actionCmdTable07 = 0x80294580;
btl_message_unlock_box_pos = 0x8024FAEC;
actionCmdTableStopLeech = 0x80294560;
HES_RunningAway = 0x80292BF8;
actionCmdTableBreakFree = 0x80294520;
actionCmdTableHammer = 0x802944E0;
HES_TimingBar1Chance = 0x802925F0;
HES_TimingCharge4a = 0x80292AF0;
HES_TimingCharge1 = 0x80292B1C;
actionCmdTableFlee = 0x80294500;
HES_RightOn = 0x80292D2C;
actionCmdTableJump = 0x802944C0;
actionCmdTableWhirlwind = 0x80294540;
BindTakeTurn = 0x80278AB0;
BindIdle = 0x80278C14;
BindHandleEvent = 0x80278DA0;
BindHandlePhase = 0x80278E14;
AddActorDecoration = 0x8026F008;
GetLastEvent = 0x8027C660;
EVS_Enemy_Hit = 0x80299344;
EVS_Enemy_NoDamageHit = 0x8029AF70;
GetBattlePhase = 0x80269FA8;
EVS_Partner_Celebrate = 0x80294A20;
EVS_Partner_RunAway = 0x80294DFC;
EnableIdleScript = 0x80278CCC;
FlyToGoal = 0x8027B7A4;
EnableActorBlur = 0x8027D6FC;
PartnerDamageEnemy = 0x8027FF34;
EVS_Partner_SpikeContact = 0x802952E4;
EVS_Partner_BurnContact = 0x80294F68;
EVS_Partner_Recover = 0x802961C4;
bActorTattles = 0x80282D18;
bActorOffsets = 0x80283068;
EVS_Partner_Hit = 0x80297ABC;
EVS_Partner_Drop = 0x80296314;
EVS_Partner_NoDamageHit = 0x80297B14;
EVS_Partner_BurnHit = 0x8029651C;
EVS_Partner_ShockHit = 0x80295A44;
LoadStarPowerScript = 0x80280AD0;
LoadItemScript = 0x80268050;
JumpToGoal = 0x80278E88;
PartnerTestEnemy = 0x80280650;
GetPartnerActionSuccess = 0x80280950;
PartnerPowerBounceEnemy = 0x802803F0;
ResetActorSounds = 0x8026F9B8;
RemoveActorDecoration = 0x8026F0CC;
GetActorLevel = 0x8027FEC8;
SetupMashMeter = 0x80269348;
PartnerAfflictEnemy = 0x80280184;
SetActorPaletteEffect = 0x8026EBFC;
SetActorPaletteSwapParams = 0x8026ED78;
EnableActorPaletteEffects = 0x8026EEA0;
EVS_Partner_BombetteSpikeContact = 0x80295650;
ShowShockEffect = 0x8026FD30;
add_xz_vec3f = 0x802642A8;
play_movement_dust_effects = 0x80264470;
save_tattle_flags = 0x80253E90;
lookup_status_chance = 0x80266018;
HES_AimMarkerF = 0x80293314;
HES_AimMarkerE = 0x8029327C;
HES_AimMarkerD = 0x802931E4;
HES_AimMarkerC = 0x8029314C;
HES_AimMarkerB = 0x802930B4;
HES_AimMarkerA = 0x8029301C;
HES_AimReticle = 0x8029399C;
HES_AimShimmerF = 0x802937D4;
HES_AimShimmerE = 0x8029373C;
HES_AimShimmerD = 0x802936A4;
HES_AimShimmerC = 0x8029360C;
HES_AimShimmerB = 0x80293574;
HES_AimShimmerA = 0x802934DC;
HES_AimTarget = 0x802939D4;
set_goal_pos_to_part = 0x802698D4;
JumpWithBounce = 0x802798A8;
SetActionHudPrepareTime = 0x802694C4;
GetDistanceToGoal = 0x8026EB7C;
SetAnimationRate = 0x8026B450;
PlayLoopingSoundAtActor = 0x80253AF4;
StopLoopingSoundAtActor = 0x80253B98;
GetActorFlags = 0x8026D0A0;
GetStatusFlags = 0x8026F3B0;
LandJump = 0x80279C54;
GetActorScale = 0x8026CC04;
EVS_Partner_LakilesterHit = 0x802979E8;
HES_AimBlinkA = 0x80293A0C;
SetPartPos = 0x8026B098;
SetPartFlagBits = 0x8026D190;
SetPartDispOffset = 0x8026BDB8;
SetPartJumpGravity = 0x8026B8CC;
JumpPartTo = 0x8027A664;
LandJumpPart = 0x8027ACDC;
func_8024EDA4 = 0x8024EDA4;
PlayerFallToGoal = 0x80273A10;
FallToGoal = 0x80279D6C;
bMarioHideAnims = 0x802834F0;
bMarioIdleAnims = 0x802833B8;
SetPartAlpha = 0x8026F5F0;
func_80269600 = 0x80269780;
SetBattleCamParam = 0x8024E748;
// speech_bubble
SpeechBubblePtr = 0x802B79A8;