diff --git a/src/battle/partner/bombette.c b/src/battle/partner/bombette.c index a63b3b401b..37e2714042 100644 --- a/src/battle/partner/bombette.c +++ b/src/battle/partner/bombette.c @@ -1054,15 +1054,20 @@ EvtScript N(bomb) = { EVT_CALL(SetGoalToTarget, ACTOR_PARTNER) EVT_CALL(AddGoalPos, ACTOR_PARTNER, -40, 0, 0) EVT_END_SWITCH - EVT_CALL(MoveBattleCamOver, 60) + EVT_CALL(MoveBattleCamOver, 60 * DT) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_SWITCH(LVar2) EVT_CASE_EQ(MOVE_BOMB) - EVT_CALL(action_command_bomb_start, 0, 57, 3, 0) + EVT_CALL(action_command_bomb_start, 0, 57 * DT, 3, 0) EVT_CASE_EQ(MOVE_POWER_BOMB) - EVT_CALL(action_command_bomb_start, 0, 72, 3, 1) +#if VERSION_PAL + // 72 * DT = 60 + EVT_CALL(action_command_bomb_start, 0, 59, 3, 1) +#else + EVT_CALL(action_command_bomb_start, 0, 72 * DT, 3, 1) +#endif EVT_CASE_EQ(MOVE_MEGA_BOMB) - EVT_CALL(action_command_bomb_start, 0, 87, 3, 2) + EVT_CALL(action_command_bomb_start, 0, 87 * DT, 3, 2) EVT_END_SWITCH EVT_CALL(PlaySoundAtActor, ACTOR_PARTNER, SOUND_287) EVT_CHILD_THREAD @@ -1071,23 +1076,23 @@ EvtScript N(bomb) = { EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) EVT_SWITCH(LVar2) EVT_CASE_EQ(MOVE_BOMB) - EVT_SET(LVar0, 45) + EVT_SET(LVar0, 45 * DT) EVT_CASE_EQ(MOVE_POWER_BOMB) - EVT_SET(LVar0, 50) + EVT_SET(LVar0, 50 * DT) EVT_CASE_EQ(MOVE_MEGA_BOMB) - EVT_SET(LVar0, 50) + EVT_SET(LVar0, 50 * DT) EVT_END_SWITCH - EVT_CALL(RunToGoal, ACTOR_PARTNER, 45) + EVT_CALL(RunToGoal, ACTOR_PARTNER, 45 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBombette_AboutToExplode) EVT_CALL(SetActorVar, ACTOR_SELF, 0, 0) EVT_END_CHILD_THREAD EVT_SWITCH(LVar2) EVT_CASE_EQ(MOVE_BOMB) - EVT_SET(LVar0, 45) + EVT_SET(LVar0, 45 * DT) EVT_CASE_EQ(MOVE_POWER_BOMB) - EVT_SET(LVar0, 50) + EVT_SET(LVar0, 50 * DT) EVT_CASE_EQ(MOVE_MEGA_BOMB) - EVT_SET(LVar0, 50) + EVT_SET(LVar0, 50 * DT) EVT_END_SWITCH EVT_WAIT(LVar0) EVT_CALL(GetMenuSelection, LVar0, LVar1, LVar2) @@ -1098,11 +1103,16 @@ EvtScript N(bomb) = { EVT_CALL(StopSound, SOUND_287) EVT_SWITCH(LVar2) EVT_CASE_EQ(MOVE_BOMB) - EVT_SET(LVar0, 7) +#if VERSION_PAL + // 7 * DT = 5 + EVT_SET(LVar0, 6) +#else + EVT_SET(LVar0, 7 * DT) +#endif EVT_CASE_EQ(MOVE_POWER_BOMB) - EVT_SET(LVar0, 12) + EVT_SET(LVar0, 12 * DT) EVT_CASE_EQ(MOVE_MEGA_BOMB) - EVT_SET(LVar0, 20) + EVT_SET(LVar0, 20 * DT) EVT_END_SWITCH EVT_LOOP(LVar0) EVT_CALL(SetActorDispOffset, ACTOR_PARTNER, EVT_FLOAT(0.5), 0, 0) diff --git a/src/battle/partner/bow.c b/src/battle/partner/bow.c index 405338a821..0571d79153 100644 --- a/src/battle/partner/bow.c +++ b/src/battle/partner/bow.c @@ -468,15 +468,15 @@ EvtScript N(smack) = { EVT_SWITCH(LVar2) EVT_CASE_EQ(MOVE_SMACK1) EVT_CALL(SetupMashMeter, 4, 40, 70, 99, 100, 0) - EVT_SET(LVarB, 60) + EVT_SET(LVarB, 60 * DT) EVT_SET(LVarC, 1) EVT_CASE_EQ(MOVE_SMACK2) EVT_CALL(SetupMashMeter, 5, 35, 60, 80, 99, 100) - EVT_SET(LVarB, 60) + EVT_SET(LVarB, 60 * DT) EVT_SET(LVarC, 1) EVT_CASE_EQ(MOVE_SMACK3) EVT_CALL(SetupMashMeter, 5, 35, 60, 80, 99, 100) - EVT_SET(LVarB, 60) + EVT_SET(LVarB, 60 * DT) EVT_SET(LVarC, 1) EVT_END_SWITCH EVT_WAIT(10) @@ -790,12 +790,12 @@ EvtScript N(spook) = { EVT_CALL(SetActorDispOffset, ACTOR_PARTNER, 0, 0, 0) EVT_END_THREAD EVT_CALL(N(AverageSpookChance)) - EVT_CALL(action_command_spook_start, 0, 87, 3, LVar0) + EVT_CALL(action_command_spook_start, 0, 87 * DT, 3, LVar0) EVT_CALL(GetActionResult, LVar1) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleBow_Conceal) EVT_SET(LVar1, 0) EVT_SET(LVar2, 0) - EVT_LOOP(90) + EVT_LOOP(90 * DT) EVT_SWITCH(LVar1) EVT_CASE_GT(80) EVT_IF_EQ(LVar2, 7) @@ -989,7 +989,7 @@ EvtScript N(fanSmack) = { EVT_CALL(action_command_smack_init) EVT_CALL(SetActionHudPrepareTime, 0) EVT_CALL(SetupMashMeter, 5, 35, 60, 80, 99, 100) - EVT_SET(LVarB, 90) + EVT_SET(LVarB, 90 * DT) EVT_SET(LVarC, 2) EVT_WAIT(10) EVT_THREAD diff --git a/src/battle/partner/kooper.c b/src/battle/partner/kooper.c index 4f2af0d15f..7d499cd967 100644 --- a/src/battle/partner/kooper.c +++ b/src/battle/partner/kooper.c @@ -553,34 +553,39 @@ EvtScript N(shellToss) = { EVT_BREAK_LOOP EVT_END_IF EVT_END_LOOP - EVT_CALL(action_command_hammer_start, 0, 47, 3) +#if VERSION_PAL + // 47 * DT = 39 + EVT_CALL(action_command_hammer_start, 0, 38, 3) +#else + EVT_CALL(action_command_hammer_start, 0, 47 * DT, 3) +#endif EVT_CALL(SetActionResult, 0) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) EVT_CALL(PlaySoundAtActor, ACTOR_PARTNER, SOUND_200C) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_59) EVT_SET(LVar9, 0) EVT_SET(LVar1, 0) - EVT_LOOP(50) + EVT_LOOP(50 * DT) EVT_WAIT(1) EVT_SWITCH(LVar9) - EVT_CASE_LT(20) + EVT_CASE_LT(20 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) - EVT_CASE_EQ(20) + EVT_CASE_EQ(20 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) - EVT_CASE_LT(30) + EVT_CASE_LT(30 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlower) - EVT_CASE_EQ(30) + EVT_CASE_EQ(30 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) - EVT_CASE_LT(40) + EVT_CASE_LT(40 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFaster) - EVT_CASE_EQ(40) + EVT_CASE_EQ(40 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) - EVT_CASE_LT(50) + EVT_CASE_LT(50 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFastest) - EVT_CASE_EQ(50) + EVT_CASE_EQ(50 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) EVT_END_SWITCH @@ -600,16 +605,16 @@ EvtScript N(shellToss) = { EVT_WAIT(1) EVT_SETF(LVarA, EVT_FLOAT(8.0)) EVT_SWITCH(LVar9) - EVT_CASE_LT(20) + EVT_CASE_LT(20 * DT) EVT_SETF(LVarA, EVT_FLOAT(10.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) - EVT_CASE_LT(30) + EVT_CASE_LT(30 * DT) EVT_SETF(LVarA, EVT_FLOAT(12.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlower) - EVT_CASE_LT(40) + EVT_CASE_LT(40 * DT) EVT_SETF(LVarA, EVT_FLOAT(14.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFaster) - EVT_CASE_LT(50) + EVT_CASE_LT(50 * DT) EVT_SETF(LVarA, EVT_FLOAT(16.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFastest) EVT_END_SWITCH @@ -884,8 +889,8 @@ EvtScript N(dizzyShell) = { EVT_WAIT(15) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_59) - EVT_CALL(MoveBattleCamOver, 75) - EVT_SET(LVarD, 75) + EVT_CALL(MoveBattleCamOver, 75 * DT) + EVT_SET(LVarD, 75 * DT) EVT_SET(LVarA, LVarD) EVT_ADD(LVarA, -3) EVT_CALL(battle_partner_kooper_AverageTargetDizzyChance) @@ -903,13 +908,13 @@ EvtScript N(dizzyShell) = { EVT_WAIT(1) EVT_CALL(GetActionResult, LVar0) EVT_SWITCH(LVar0) - EVT_CASE_LT(20) + EVT_CASE_LT(20 * DT) EVT_SET(LVarA, EVT_FLOAT(10.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) - EVT_CASE_LT(40) + EVT_CASE_LT(40 * DT) EVT_SET(LVarA, EVT_FLOAT(12.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlower) - EVT_CASE_LT(60) + EVT_CASE_LT(60 * DT) EVT_SET(LVarA, EVT_FLOAT(14.0)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFaster) EVT_CASE_DEFAULT @@ -917,16 +922,16 @@ EvtScript N(dizzyShell) = { EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFastest) EVT_END_SWITCH EVT_SWITCH(LVarD) - EVT_CASE_EQ(10) + EVT_CASE_EQ(10 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) - EVT_CASE_EQ(20) + EVT_CASE_EQ(20 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) - EVT_CASE_EQ(40) + EVT_CASE_EQ(40 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) - EVT_CASE_EQ(60) + EVT_CASE_EQ(60 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar4, LVar5, LVar6) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar4, LVar5, LVar6, 32, 4, 0, 10, 0) EVT_END_SWITCH @@ -1056,8 +1061,8 @@ EvtScript N(fireShell) = { EVT_WAIT(15) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_59) - EVT_CALL(MoveBattleCamOver, 75) - EVT_SET(LVarD, 75) + EVT_CALL(MoveBattleCamOver, 75 * DT) + EVT_SET(LVarD, 75 * DT) EVT_SET(LVarC, LVarD) EVT_ADD(LVarC, -3) EVT_CALL(action_command_fire_shell_start, 0, LVarC, 3) @@ -1081,36 +1086,36 @@ EvtScript N(fireShell) = { EVT_WAIT(1) EVT_CALL(GetActionResult, LVar0) EVT_SWITCH(LVar0) - EVT_CASE_GE(80) + EVT_CASE_GE(80 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFastest) - EVT_SET(LVar9, 80) + EVT_SET(LVar9, 80 * DT) EVT_SET(LVar7, 8) EVT_IF_NE(LVar6, LVar7) EVT_CALL(func_8026EA7C, ACTOR_PARTNER, -1, 15) EVT_CALL(func_8026EBF8, ACTOR_PARTNER, -1, LVar6, LVar7, 1, 10, 1000, 10, 0, 0) EVT_SET(LVar6, LVar7) EVT_END_IF - EVT_CASE_GE(60) + EVT_CASE_GE(60 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinFaster) - EVT_SET(LVar9, 60) + EVT_SET(LVar9, 60 * DT) EVT_SET(LVar7, 7) EVT_IF_NE(LVar6, LVar7) EVT_CALL(func_8026EA7C, ACTOR_PARTNER, -1, 15) EVT_CALL(func_8026EBF8, ACTOR_PARTNER, -1, LVar6, LVar7, 1, 10, 1000, 10, 0, 0) EVT_SET(LVar6, LVar7) EVT_END_IF - EVT_CASE_GE(40) + EVT_CASE_GE(40 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlower) - EVT_SET(LVar9, 40) + EVT_SET(LVar9, 40 * DT) EVT_SET(LVar7, 6) EVT_IF_NE(LVar6, LVar7) EVT_CALL(func_8026EA7C, ACTOR_PARTNER, -1, 15) EVT_CALL(func_8026EBF8, ACTOR_PARTNER, -1, LVar6, LVar7, 1, 10, 1000, 10, 0, 0) EVT_SET(LVar6, LVar7) EVT_END_IF - EVT_CASE_GE(20) + EVT_CASE_GE(20 * DT) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) - EVT_SET(LVar9, 35) + EVT_SET(LVar9, 35 * DT) EVT_SET(LVar7, 5) EVT_IF_NE(LVar6, LVar7) EVT_CALL(func_8026EA7C, ACTOR_PARTNER, -1, 15) @@ -1119,7 +1124,7 @@ EvtScript N(fireShell) = { EVT_END_IF EVT_CASE_DEFAULT EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleKooper_ShellSpinSlowest) - EVT_SET(LVar9, 30) + EVT_SET(LVar9, 30 * DT) EVT_SET(LVar7, 0) EVT_IF_NE(LVar6, LVar7) EVT_CALL(func_8026EA7C, ACTOR_PARTNER, -1, 15) @@ -1135,16 +1140,16 @@ EvtScript N(fireShell) = { EVT_END_IF EVT_CALL(ModifyActorDecoration, ACTOR_PARTNER, -1, 0, LVar8, LVar8, 255, 0) EVT_SWITCH(LVarD) - EVT_CASE_EQ(10) + EVT_CASE_EQ(10 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar3, LVar4, LVar5) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar3, LVar4, LVar5, 32, 4, 0, 10, 0) - EVT_CASE_EQ(20) + EVT_CASE_EQ(20 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar3, LVar4, LVar5) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar3, LVar4, LVar5, 32, 4, 0, 10, 0) - EVT_CASE_EQ(40) + EVT_CASE_EQ(40 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar3, LVar4, LVar5) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar3, LVar4, LVar5, 32, 4, 0, 10, 0) - EVT_CASE_EQ(60) + EVT_CASE_EQ(60 * DT) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar3, LVar4, LVar5) EVT_PLAY_EFFECT(EFFECT_SMOKE_IMPACT, 1, LVar3, LVar4, LVar5, 32, 4, 0, 10, 0) EVT_END_SWITCH diff --git a/src/battle/partner/lakilester.c b/src/battle/partner/lakilester.c index 6871194bb2..9f3d912f01 100644 --- a/src/battle/partner/lakilester.c +++ b/src/battle/partner/lakilester.c @@ -459,7 +459,7 @@ API_CALLABLE(N(SpinyFlipActionCommand)) { if (sAimingTimer != 0) { sAimingTimer--; } else { - sAimingTimer = 80; + sAimingTimer = (s32)(80 * DT); hud_element_set_script(hudStick, &HES_StickTapRight); sfx_play_sound_at_position(SOUND_312, SOUND_SPACE_MODE_0, 0.0f, 0.0f, 0.0f); script->functionTemp[0] = 2; @@ -846,10 +846,10 @@ EvtScript N(spinyFlip) = { EVT_ADD(LVar0, 8) EVT_ADD(LVar1, 40) EVT_ADD(LVar2, 5) - EVT_PLAY_EFFECT(EFFECT_ENERGY_IN_OUT, 0, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), 80, 0) + EVT_PLAY_EFFECT(EFFECT_ENERGY_IN_OUT, 0, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), 80 * DT, 0) EVT_CALL(SetActorVar, ACTOR_PARTNER, 0, 1) EVT_THREAD - EVT_LOOP(40) + EVT_LOOP(40 * DT) EVT_CALL(SetActorDispOffset, ACTOR_PARTNER, 1, 0, 0) EVT_CALL(SetPartDispOffset, ACTOR_PARTNER, 2, 1, 0, 0) EVT_WAIT(1) @@ -968,11 +968,11 @@ EvtScript N(spinySurge) = { EVT_CALL(GetActorLevel, ACTOR_PARTNER, LVar0) EVT_SWITCH(LVar0) EVT_CASE_EQ(0) - EVT_SET(LVarA, 60) + EVT_SET(LVarA, 60 * DT) EVT_CASE_EQ(1) - EVT_SET(LVarA, 60) + EVT_SET(LVarA, 60 * DT) EVT_CASE_EQ(2) - EVT_SET(LVarA, 60) + EVT_SET(LVarA, 60 * DT) EVT_END_SWITCH EVT_SET(LVarB, LVarA) EVT_ADD(LVarB, -3) @@ -1336,6 +1336,14 @@ enum { STATE_EXHALE = 1, }; +#if VERSION_PAL +#define CONST_1 0x8C +#define CONST_2 0x98 +#else +#define CONST_1 165 +#define CONST_2 177 +#endif + API_CALLABLE(N(ProcessHurricane)) { BattleStatus* battleStatus = &gBattleStatus; Actor* partner = battleStatus->partnerActor; @@ -1367,7 +1375,7 @@ API_CALLABLE(N(ProcessHurricane)) { switch (script->functionTemp[0]) { case 0: partner->state.angle = 0.0f; - partner->state.moveTime = 165; + partner->state.moveTime = CONST_1; partner->state.moveArcAmplitude = 0; sIsHurricaneActive = TRUE; D_8023D338 = 255; @@ -1381,7 +1389,7 @@ API_CALLABLE(N(ProcessHurricane)) { effect->data.huffPuffBreath->envG = 240; effect->data.huffPuffBreath->envB = 240; - hurricaneState->unk_54 = 177; + hurricaneState->unk_54 = CONST_2; hurricaneState->breathSizeIncrease = 0; hurricaneState->unk_46 = 0; hurricaneState->state = 0; @@ -1700,21 +1708,21 @@ EvtScript N(hurricane) = { EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleLakilester_Idle) EVT_WAIT(15) EVT_CALL(N(InitHurricane)) - EVT_CALL(action_command_hurricane_start, 0, 147, 3, LVar0) + EVT_CALL(action_command_hurricane_start, 0, 147 * DT, 3, LVar0) EVT_CALL(SetBattleFlagBits, BS_FLAGS1_4000, FALSE) EVT_CALL(SetActorRotationOffset, ACTOR_PARTNER, 0, 20, 0) EVT_CALL(UseBattleCamPreset, BTL_CAM_PRESET_19) EVT_CALL(SetBattleCamTarget, 35, 54, 0) EVT_CALL(SetBattleCamOffsetZ, 0) EVT_CALL(SetBattleCamZoom, 430) - EVT_CALL(MoveBattleCamOver, 150) + EVT_CALL(MoveBattleCamOver, 150 * DT) EVT_CALL(func_8024ECF8, 0, 0, 1) EVT_CALL(PlaySoundAtActor, ACTOR_PARTNER, SOUND_288) EVT_THREAD EVT_CALL(N(ProcessHurricane)) EVT_END_THREAD EVT_WAIT(2) - EVT_LOOP(150) + EVT_LOOP(150 * DT) EVT_CALL(N(IsHurricaneActive)) EVT_IF_EQ(LVar0, 0) EVT_BREAK_LOOP diff --git a/src/battle/partner/parakarry.c b/src/battle/partner/parakarry.c index 63cb6e33e9..b2499fbaff 100644 --- a/src/battle/partner/parakarry.c +++ b/src/battle/partner/parakarry.c @@ -187,7 +187,11 @@ API_CALLABLE(N(ShellShotActionCommand)) { state->angle = state->unk_18.x + rand_int(state->unk_18.y - state->unk_18.x - 2.0f); hudTargetRotation = 0; shellShotTimer = 90; +#if VERSION_PAL + state->velocity = 4.0f; +#else state->velocity = 3.0f; +#endif battleStatus->unk_86 = 0; action_command_init_status(); func_80269118(); @@ -1140,14 +1144,14 @@ EvtScript N(airLift) = { EVT_CALL(PartnerTestEnemy, LVar0, DAMAGE_TYPE_AIR_LIFT, SUPPRESS_EVENT_SPIKY_FRONT, 0, 0, BS_FLAGS1_10 | BS_FLAGS1_SP_EVT_ACTIVE) EVT_CALL(N(AirLiftChance)) EVT_IF_NE(LVar0, -1) - EVT_CALL(action_command_air_lift_start, 0, 87, 3, 0) + EVT_CALL(action_command_air_lift_start, 0, 87 * DT, 3, 0) EVT_CALL(SetBattleFlagBits, BS_FLAGS1_4000, FALSE) EVT_CHILD_THREAD EVT_WAIT(1) EVT_CALL(GetActionResult, LVar1) EVT_DIV(LVar1, 10) EVT_ADD(LVar1, 1) - EVT_LOOP(88) + EVT_LOOP(88 * DT) EVT_CALL(GetActionResult, LVar0) EVT_SET(LVar2, LVar1) EVT_MUL(LVar2, 10) @@ -1160,7 +1164,7 @@ EvtScript N(airLift) = { EVT_WAIT(1) EVT_END_LOOP EVT_END_CHILD_THREAD - EVT_WAIT(90) + EVT_WAIT(90 * DT) EVT_CALL(GetActionSuccessCopy, LVar0) EVT_ELSE EVT_CALL(CloseActionCommandInfo) @@ -1213,7 +1217,7 @@ EvtScript N(airRaid) = { EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleParakarry_Run) EVT_CALL(FlyToGoal, ACTOR_PARTNER, 15, -2, EASING_LINEAR) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleParakarry_Idle) - EVT_CALL(action_command_air_raid_start, 0, 90, 3) + EVT_CALL(action_command_air_raid_start, 0, 90 * DT, 3) EVT_CALL(SetBattleFlagBits, BS_FLAGS1_4000, FALSE) EVT_WAIT(2) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleParakarry_PreDive) diff --git a/src/battle/partner/sushie.c b/src/battle/partner/sushie.c index 18963da118..08ce6baeb3 100644 --- a/src/battle/partner/sushie.c +++ b/src/battle/partner/sushie.c @@ -958,9 +958,9 @@ EvtScript N(squirt) = { EVT_CALL(N(SetSquirtAngle)) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleSushie_Inhale) EVT_CALL(AddBattleCamZoom, -80) - EVT_CALL(MoveBattleCamOver, 90) - EVT_CALL(action_command_squirt_start, 0, 87, 3) - EVT_LOOP(90) + EVT_CALL(MoveBattleCamOver, 90 * DT) + EVT_CALL(action_command_squirt_start, 0, 87 * DT, 3) + EVT_LOOP(90 * DT) EVT_CALL(GetActionResult, LVar0) EVT_IF_EQ(LVar0, 0) EVT_CALL(GetActorScale, ACTOR_SELF, LVar0, LVar1, LVar2) diff --git a/src/battle/partner/watt.c b/src/battle/partner/watt.c index 4b1156a83f..248d548788 100644 --- a/src/battle/partner/watt.c +++ b/src/battle/partner/watt.c @@ -983,23 +983,29 @@ EvtScript N(powerShock) = { EVT_CALL(MoveBattleCamOver, 80) EVT_CALL(N(WattFXDisable)) EVT_CALL(N(TargetParalyzeChance)) - EVT_CALL(action_command_power_shock_start, 0, 72, 3, LVar0) +#if VERSION_PAL + // (72 * DT = 60) + // TODO: maybe use (75 * DT) - 3 + EVT_CALL(action_command_power_shock_start, 0, 59, 3, LVar0) +#else + EVT_CALL(action_command_power_shock_start, 0, 72 * DT, 3, LVar0) +#endif EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2) EVT_ADD(LVar1, 15) EVT_ADD(LVar2, 5) - EVT_PLAY_EFFECT(EFFECT_SNAKING_STATIC, 0, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), 75, 0) + EVT_PLAY_EFFECT(EFFECT_SNAKING_STATIC, 0, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), 75 * DT, 0) EVT_CALL(N(UnkBackgroundFunc3)) EVT_SET(LVar9, 0) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleWatt_StrainBigger) EVT_CALL(func_8026EA7C, ACTOR_SELF, 1, 10) EVT_THREAD - EVT_LOOP(75) + EVT_LOOP(75 * DT) EVT_ADD(LVar9, 3) EVT_CALL(N(SetBackgroundAlpha), LVar9) EVT_WAIT(1) EVT_END_LOOP EVT_END_THREAD - EVT_WAIT(75) + EVT_WAIT(75 * DT) EVT_CALL(func_8026EA7C, ACTOR_SELF, 1, 9) EVT_CALL(PlaySoundAtActor, ACTOR_PARTNER, SOUND_28A) EVT_THREAD @@ -1106,9 +1112,9 @@ EvtScript N(8023AE8C) = { EVT_WAIT(1) EVT_CALL(SetActorYaw, ACTOR_PARTNER, 180) EVT_WAIT(10) - EVT_CALL(action_command_water_block_start, 0, 100, 3) + EVT_CALL(action_command_water_block_start, 0, 100 * DT, 3) EVT_CALL(AddBattleCamZoom, -75) - EVT_CALL(MoveBattleCamOver, 100) + EVT_CALL(MoveBattleCamOver, 100 * DT) EVT_CALL(func_8024ECF8, 0, 0, 1) EVT_THREAD EVT_CALL(EnableActorBlur, ACTOR_PARTNER, 1) @@ -1189,9 +1195,9 @@ EvtScript N(8023B450) = { EVT_WAIT(1) EVT_CALL(SetActorYaw, ACTOR_PARTNER, 180) EVT_WAIT(10) - EVT_CALL(action_command_water_block_start, 0, 100, 3) + EVT_CALL(action_command_water_block_start, 0, 100 * DT, 3) EVT_CALL(AddBattleCamZoom, -100) - EVT_CALL(MoveBattleCamOver, 100) + EVT_CALL(MoveBattleCamOver, 100 * DT) EVT_CALL(func_8024ECF8, 0, 0, 1) EVT_THREAD EVT_CALL(EnableActorBlur, ACTOR_PARTNER, 1) @@ -1270,29 +1276,29 @@ EvtScript N(megaShock) = { EVT_CALL(N(UnkBackgroundFunc3)) EVT_SET(LVar9, 0) EVT_THREAD - EVT_LOOP(75) + EVT_LOOP(75 * DT) EVT_ADD(LVar9, 3) EVT_CALL(N(SetBackgroundAlpha), LVar9) EVT_WAIT(1) EVT_END_LOOP EVT_END_THREAD EVT_CALL(N(AverageTargetParalyzeChance)) - EVT_CALL(action_command_mega_shock_start, 0, 87, 3, LVar0) + EVT_CALL(action_command_mega_shock_start, 0, 87 * DT, 3, LVar0) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2) EVT_ADD(LVar1, 15) EVT_ADD(LVar2, 5) - EVT_PLAY_EFFECT(EFFECT_SNAKING_STATIC, 0, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), 90, 0) + EVT_PLAY_EFFECT(EFFECT_SNAKING_STATIC, 0, LVar0, LVar1, LVar2, EVT_FLOAT(1.0), 90 * DT, 0) EVT_CALL(GetActorPos, ACTOR_PARTNER, LVar0, LVar1, LVar2) EVT_ADD(LVar1, 12) - EVT_PLAY_EFFECT(EFFECT_RADIAL_SHIMMER, 8, LVar0, LVar1, LVar2, EVT_FLOAT(1.3), 90, 0) + EVT_PLAY_EFFECT(EFFECT_RADIAL_SHIMMER, 8, LVar0, LVar1, LVar2, EVT_FLOAT(1.3), 90 * DT, 0) EVT_CALL(AddBattleCamZoom, -100) - EVT_CALL(MoveBattleCamOver, 90) + EVT_CALL(MoveBattleCamOver, 90 * DT) EVT_CALL(func_8024ECF8, 0, 0, 1) EVT_CALL(SetAnimation, ACTOR_PARTNER, -1, ANIM_BattleWatt_StrainBigger) EVT_CALL(func_8026EA7C, ACTOR_SELF, 1, 10) EVT_CALL(N(WattFXDisable)) EVT_CALL(GetActionResult, LVar1) - EVT_WAIT(90) + EVT_WAIT(90 * DT) EVT_CALL(N(SetBackgroundAlpha), 0) EVT_THREAD EVT_SET(LVar9, 60) diff --git a/ver/pal/splat.yaml b/ver/pal/splat.yaml index 148a1fb4bf..437565622a 100644 --- a/ver/pal/splat.yaml +++ b/ver/pal/splat.yaml @@ -5175,7 +5175,91 @@ segments: - [0x7314E0, c, script/dig_05] - [0x731500] - - [0x743A60, bin] +####################### +### Battle Partners ### +####################### + - name: battle_partner_goompa + dir: battle/partner + type: code + start: 0x743A60 + vram: 0x80238000 + subsegments: + - [0x743A60, c, goompa] + - [0x743A60] + - name: battle_partner_goombario + dir: battle/partner + type: code + start: 0x744010 + vram: 0x80238000 + subsegments: + - [0x744010, c, goombario] + - [0x7451C0] + - name: battle_partner_kooper + dir: battle/partner + type: code + start: 0x748DB0 + vram: 0x80238000 + subsegments: + - [0x748DB0, c, kooper] + - [0x7491E0] + - name: battle_partner_bombette + dir: battle/partner + type: code + start: 0x74DC40 + vram: 0x80238000 + subsegments: + - [0x74DC40, c, bombette] + - [0x74E280] + - name: battle_partner_parakarry + dir: battle/partner + type: code + start: 0x752CB0 + vram: 0x80238000 + subsegments: + - [0x752CB0, c, parakarry] + - [0x7544C0] + - name: battle_partner_watt + dir: battle/partner + type: code + start: 0x756A20 + vram: 0x80238000 + subsegments: + - [0x756A20, c, watt] + - [0x7579B0, .data, watt] + - name: battle_partner_sushie + dir: battle/partner + type: code + start: 0x75ABD0 + vram: 0x80238000 + subsegments: + - [0x75ABD0, c, sushie] + - [0x75BAA0] + - name: battle_partner_lakilester + dir: battle/partner + type: code + start: 0x75EC40 + vram: 0x80238000 + subsegments: + - [0x75EC40, c, lakilester] + - [0x760E10] + - name: battle_partner_bow + dir: battle/partner + type: code + start: 0x763E20 + vram: 0x80238000 + subsegments: + - [0x763E20, c, bow] + - [0x764120] + - name: battle_partner_twink + dir: battle/partner + type: code + start: 0x767C20 + vram: 0x80238000 + subsegments: + - [0x767C20, c, twink] + - [0x767CF0] + + - [0x768780, bin] - name: world_model_anim_kzn_01 dir: world/model_anim/kzn diff --git a/ver/pal/undefined_syms.txt b/ver/pal/undefined_syms.txt index 90c3d13abf..ac7d5a4817 100644 --- a/ver/pal/undefined_syms.txt +++ b/ver/pal/undefined_syms.txt @@ -320,6 +320,9 @@ HES_BlueMeter = 0x801076A4; HES_AButton = 0x801076D0; HES_MashAButton = 0x80107728; HES_SlowlyMashAButton = 0x801077DC; +HES_StickNeutral = 0x801079C4; +HES_StickHoldLeft = 0x801079F0; +HES_StickTapRight = 0x80107D8C; HES_RunAwayOK = 0x80107DEC; ui_box_corners5_png = 0x80109D00; wPartnerNpc = 0x8010B420; @@ -444,6 +447,8 @@ hud_element_clear_flags = 0x801435DC; hud_element_set_scale = 0x801437D0; hud_element_set_alpha = 0x80143A60; hud_element_set_tint = 0x80143AAC; +hud_element_create_transform_A = 0x80143AD8; +hud_element_set_transform_rotation = 0x80143DD4; clear_saved_variables = 0x80143ED0; set_global_byte = 0x801440D0; get_global_byte = 0x801440E8; @@ -488,6 +493,7 @@ gBackgroundImage = 0x80200000; interp_value_with_easing = 0x802410E4; UseBattleCamPreset = 0x8024E5BC; UseBattleCamPresetImmediately = 0x8024E604; +SetBattleCamParam = 0x8024E6E8; SetBattleCamTarget = 0x8024E8AC; SetBattleCamOffsetZ = 0x8024E9F8; SetBattleCamYaw = 0x8024EA84; @@ -498,7 +504,12 @@ SetBattleCamZoom = 0x8024EC0C; AddBattleCamZoom = 0x8024EC4C; func_8024ECF8 = 0x8024EC98; FreezeBattleCam = 0x8024ED18; +func_8024EDA4 = 0x8024ED44; +btl_set_popup_duration = 0x8024FA64; ShowMessageBox = 0x80251474; +ShowVariableMessageBox = 0x802514CC; +IsMessageBoxDisplayed = 0x80251544; +WaitForMessageBoxDone = 0x8025158C; SetMessageBoxDuration = 0x802515C8; ActorSpeak = 0x802530F0; EndActorSpeech = 0x80253490; @@ -513,6 +524,7 @@ PlaySoundAtActor = 0x80253A1C; PlaySoundAtPart = 0x80253A90; PlayLoopingSoundAtActor = 0x80253B34; StopLoopingSoundAtActor = 0x80253BD8; +save_tattle_flags = 0x80253ED0; load_tattle_flags = 0x80254038; StartRumble = 0x802543D8; player_create_target_list = 0x80263424; @@ -521,19 +533,31 @@ add_xz_vec3f = 0x80264520; play_movement_dust_effects = 0x802646E8; get_actor_part = 0x80264854; lookup_defense = 0x8026623C; +lookup_status_chance = 0x80266290; +LoadItemScript = 0x802682C0; LoadActionCommand = 0x802685B0; +action_command_init_status = 0x80268C48; +func_80269118 = 0x80269508; +func_80269160 = 0x80269550; +SetActionDifficultyTable = 0x8026958C; SetupMashMeter = 0x802695B8; +GetActionSuccess = 0x80269684; SetActionSuccess = 0x802696B0; SetActionCommandMode = 0x802696DC; GetActionCommandMode = 0x80269708; +SetActionHudPrepareTime = 0x80269734; SetCommandAutoSuccess = 0x8026978C; CloseActionCommandInfo = 0x80269800; func_80269470 = 0x80269860; ShowActionHud = 0x80269894; GetActionSuccessCopy = 0x802698E8; func_80269524 = 0x80269914; +func_80269550 = 0x80269940; GetBlockResult = 0x8026996C; GetActionResult = 0x80269998; +SetActionResult = 0x802699C4; +func_80269600 = 0x802699F0; +set_goal_pos_to_part = 0x80269B44; get_actor = 0x8026A15C; LoadBattleSection = 0x8026A1D4; GetBattlePhase = 0x8026A218; @@ -549,6 +573,7 @@ CountPlayerTargets = 0x8026A53C; ForceHomePos = 0x8026A5DC; SetHomePos = 0x8026A6C0; SetGoalToTarget = 0x8026A798; +SetGoalToFirstTarget = 0x8026A88C; SetGoalPos = 0x8026A900; SetIdleGoal = 0x8026AA1C; AddGoalPos = 0x8026AB38; @@ -648,6 +673,7 @@ SetActorSounds = 0x8026FB30; ResetActorSounds = 0x8026FC28; SetPartSounds = 0x8026FDF0; SetActorType = 0x8026FF10; +ShowShockEffect = 0x8026FFA0; GetActorAttackBoost = 0x8026FFF4; GetActorDefenseBoost = 0x8027005C; BoostAttack = 0x802700C4; @@ -660,9 +686,11 @@ CopyBuffs = 0x80271550; GetMenuSelection = 0x802737B4; func_80273444 = 0x80273834; PlayerFallToGoal = 0x80273C84; +PlayerRunToGoal = 0x80274054; GetPlayerHP = 0x80274624; EnablePlayerBlur = 0x80274D68; DispatchEventPlayer = 0x8027730C; +dispatch_event_actor = 0x80277550; BindTakeTurn = 0x80278D20; PauseTakeTurn = 0x80278D94; ResumeTakeTurn = 0x80278E0C; @@ -679,6 +707,7 @@ RunToGoal = 0x8027A254; IdleRunToGoal = 0x8027A654; JumpPartTo = 0x8027A8D4; FallPartTo = 0x8027AC44; +LandJumpPart = 0x8027AF4C; RunPartTo = 0x8027B09C; FlyToGoal = 0x8027BA14; IdleFlyToGoal = 0x8027BFA8; @@ -716,15 +745,27 @@ EnableActorGlow = 0x8027DF94; WasStatusInflicted = 0x8027E058; CopyStatusEffects = 0x8027E0AC; ClearStatusEffects = 0x8027E190; +GetActorLevel = 0x80280138; +PartnerDamageEnemy = 0x802801A4; +PartnerAfflictEnemy = 0x802803F4; +PartnerPowerBounceEnemy = 0x80280660; +PartnerTestEnemy = 0x802808C0; +GetActionCommandResult = 0x80280BC0; +PartnerYieldTurn = 0x80280C08; GetDamageIntensity = 0x80280C30; +LoadStarPowerScript = 0x80280D40; DemoBattleBeginDelay = 0x80280DE8; MakeShop = 0x80281878; MakeShopOwner = 0x80281BF0; CreateMapRoom = 0x80281CBC; +bActorTattles = 0x80282F88; +bActorOffsets = 0x802832D8; CreatePushBlockGrid = 0x802832F0; SetPushBlock = 0x8028348C; GetPushBlock = 0x802835D0; +bMarioIdleAnims = 0x80283628; GetGridIndexFromPos = 0x802836C8; +bMarioHideAnims = 0x80283760; SetPushBlockFallEffect = 0x802837BC; ItemShopInteract = 0x80284064; EnterWalk = 0x80285970; @@ -742,6 +783,33 @@ ExitSplitDoubleDoor = 0x80285EAC; EnterSplitDoubleDoor = 0x80285ED4; BaseExitDoor = 0x80285EFC; BaseEnterDoor = 0x802861C0; +HES_AimMarkerA = 0x802933FC; +HES_AimMarkerB = 0x80293494; +HES_AimMarkerC = 0x8029352C; +HES_AimMarkerD = 0x802935C4; +HES_AimMarkerE = 0x8029365C; +HES_AimMarkerF = 0x802936F4; +HES_AimShimmerA = 0x802938BC; +HES_AimShimmerB = 0x80293954; +HES_AimShimmerC = 0x802939EC; +HES_AimShimmerD = 0x80293A84; +HES_AimShimmerE = 0x80293B1C; +HES_AimShimmerF = 0x80293BB4; +HES_AimReticle = 0x80293D7C; +HES_AimTarget = 0x80293DB4; +HES_AimBlinkA = 0x80293DEC; +D_80294720 = 0x80294D70; +DoPartnerRunAway = 0x8029514C; +DoPartnerBurnContact = 0x802952B8; +DoPartnerSpikeContact = 0x80295634; +D_80295350 = 0x802959A0; +D_80295744 = 0x80295D94; +DoPartnerRecover = 0x80296514; +DoPartnerHit = 0x80296664; +DoPartnerBurn = 0x8029686C; +D_802976E8 = 0x80297D38; +D_802977BC = 0x80297E0C; +DoPartnerBlock = 0x80297E64; ForceNextTarget = 0x80299240; DoNormalHit = 0x80299694; DoBurnHit = 0x8029A720; @@ -760,13 +828,46 @@ D_8029C0A4 = 0x8029C6F4; D_8029C12C = 0x8029C77C; DoAirLift = 0x8029C9CC; DoBlowAway = 0x8029CAF8; +gActionCommandStatus = 0x802A0230; +action_command_air_lift_init = 0x802A9000; +action_command_air_raid_init = 0x802A9000; +action_command_body_slam_init = 0x802A9000; +action_command_bomb_init = 0x802A9000; +action_command_dizzy_shell_init = 0x802A9000; +action_command_fire_shell_init = 0x802A9000; +action_command_hammer_init = 0x802A9000; +action_command_hurricane_init = 0x802A9000; action_command_jump_init = 0x802A9000; +action_command_mega_shock_init = 0x802A9000; +action_command_power_shock_init = 0x802A9000; +action_command_smack_init = 0x802A9000; +action_command_spiny_surge_init = 0x802A9000; +action_command_spook_init = 0x802A9000; +action_command_squirt_init = 0x802A9000; action_command_stop_leech_init = 0x802A9000; +action_command_tidal_wave_init = 0x802A9000; +action_command_water_block_init = 0x802A9000; action_command_whirlwind_init = 0x802A9000; action_command_stop_leech_start = 0x802A9110; +action_command_squirt_start = 0x802A911C; action_command_jump_start = 0x802A9120; +action_command_tidal_wave_start = 0x802A9138; +action_command_spiny_surge_start = 0x802A916C; +action_command_bomb_start = 0x802A9170; +action_command_dizzy_shell_start = 0x802A9170; +action_command_air_raid_start = 0x802A9178; +action_command_fire_shell_start = 0x802A9178; +action_command_smack_start = 0x802A917C; +action_command_spook_start = 0x802A917C; +action_command_air_lift_start = 0x802A9184; +action_command_hurricane_start = 0x802A91A0; +action_command_mega_shock_start = 0x802A91A0; action_command_break_free_start = 0x802A91B0; +action_command_body_slam_start = 0x802A91B8; action_command_whirlwind_start = 0x802A91E0; +action_command_power_shock_start = 0x802A9210; +action_command_hammer_start = 0x802A9258; +action_command_water_block_start = 0x802A9398; SpeechBubblePtr = 0x802B79A8; Entity_CymbalPlant = 0x802BC788; Entity_PinkFlower = 0x802BC7AC; @@ -1063,6 +1164,7 @@ fx_emote = 0x802DD2C0; fx_sparkles = 0x802DD320; fx_shape_spell = 0x802DD380; fx_gather_energy_pink = 0x802DD3E0; +fx_smoke_ring = 0x802DD560; fx_damage_stars = 0x802DD5C0; fx_explosion = 0x802DD620; fx_lens_flare = 0x802DD680; @@ -1074,7 +1176,9 @@ fx_sweat = 0x802DDBC0; fx_sleep_bubble = 0x802DDC20; fx_stars_orbiting = 0x802DDE60; fx_radial_shimmer = 0x802DDFE0; +fx_ending_decals = 0x802DE040; fx_fire_breath = 0x802DE160; +fx_bulb_glow = 0x802DE340; fx_3D = 0x802DE3A0; fx_recover = 0x802DE4C0; fx_snowfall = 0x802DE6A0; @@ -1085,15 +1189,24 @@ fx_quizmo_answer = 0x802DEAC0; fx_motion_blur_flame = 0x802DEB20; fx_energy_orb_wave = 0x802DEB80; fx_quizmo_audience = 0x802DEC40; +fx_stat_change = 0x802DED00; fx_snaking_static = 0x802DED60; +fx_thunderbolt_ring = 0x802DEDC0; +fx_squirt = 0x802DEE20; +fx_water_block = 0x802DEE80; fx_water_fountain = 0x802DEF40; +fx_underwater = 0x802DEFA0; fx_lightning_bolt = 0x802DF000; +fx_water_splash = 0x802DF060; +fx_throw_spiny = 0x802DF240; +fx_65 = 0x802DF2A0; fx_energy_in_out = 0x802DF4E0; fx_tattle_window = 0x802DF540; fx_huff_puff_breath = 0x802DF600; fx_cold_breath = 0x802DF660; fx_misc_particles = 0x802DF780; fx_static_status = 0x802DF7E0; +fx_moving_cloud = 0x802DF840; fx_chapter_change = 0x802DFA20; fx_ice_shard = 0x802DFA80; fx_spirit_card = 0x802DFAE0;