From aac4ef4d2a4c87402839061d245a32e285f866c8 Mon Sep 17 00:00:00 2001 From: AgustinGDLV Date: Sat, 25 Mar 2023 20:02:48 -0700 Subject: [PATCH] fixed terrain effects --- data/battle_anim_scripts.s | 2 +- data/battle_scripts_1.s | 30 +++++++++++++++--------------- include/config.h | 2 +- src/battle_dynamax.c | 16 ++++++++-------- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 230c98056b..df18992955 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -907,8 +907,8 @@ gBattleAnims_Moves:: .4byte Move_MAX_GEYSER .4byte Move_MAX_OVERGROWTH .4byte Move_MAX_LIGHTNING - .4byte Move_MAX_HAILSTORM .4byte Move_MAX_MINDSTORM + .4byte Move_MAX_HAILSTORM .4byte Move_MAX_WYRMWIND .4byte Move_MAX_DARKNESS .4byte Move_MAX_STARFALL diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 832892d3ee..1568bcfb97 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -10434,7 +10434,7 @@ BattleScript_RaiseSideStatsIncrement: setallytonexttarget BattleScript_RaiseSideStatsLoop BattleScript_RaiseSideStatsEnd: restoretarget - goto BattleScript_MoveEnd + return BattleScript_EffectLowerStatFoes:: savetarget @@ -10453,27 +10453,27 @@ BattleScript_LowerSideStatsIncrement: setallytonexttarget BattleScript_LowerSideStatsLoop BattleScript_LowerSideStatsEnd: restoretarget - goto BattleScript_MoveEnd + return BattleScript_EffectSetWeather:: playanimation 0, B_ANIM_MAX_SET_WEATHER printfromtable gMoveWeatherChangeStringIds waitmessage B_WAIT_TIME_LONG call BattleScript_WeatherFormChanges - goto BattleScript_MoveEnd + return BattleScript_EffectSetTerrain:: printfromtable gTerrainStringIds waitmessage B_WAIT_TIME_LONG - playanimation BS_SCRIPTING, B_ANIM_RESTORE_BG + playanimation BS_ATTACKER, B_ANIM_RESTORE_BG + call BattleScript_ActivateTerrainAbilities call BattleScript_TerrainSeedLoop - jumpifabilitypresent ABILITY_MIMICRY, BattleScript_MimicryActivates_End3 - goto BattleScript_MoveEnd + return BattleScript_DamageNonTypesStarts:: printfromtable gDamageNonTypesStartStringIds waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd + return BattleScript_DamageNonTypesContinues:: setbyte gBattleCommunication, 0 @@ -10496,13 +10496,13 @@ BattleScript_DamageNonTypesLoopIncrement:: jumpifbytenotequal gBattleCommunication, gBattlersCount, BattleScript_DamageNonTypesLoop BattleScript_DamageNonTypesContinuesEnd:: bicword gHitMarker, HITMARKER_SKIP_DMG_TRACK | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_GRUDGE - end + return BattleScript_EffectTryReducePP:: tryspiteppreduce BattleScript_MoveEnd printstring STRINGID_PKMNREDUCEDPP waitmessage B_WAIT_TIME_LONG - goto BattleScript_MoveEnd + return BattleScript_EffectStatus1Foes:: savetarget @@ -10521,7 +10521,7 @@ BattleScript_Status1FoesIncrement: setallytonexttarget BattleScript_Status1FoesLoop BattleScript_Status1FoesEnd: restoretarget - goto BattleScript_MoveEnd + return BattleScript_EffectStatus2Foes:: savetarget @@ -10540,7 +10540,7 @@ BattleScript_Status2FoesIncrement: BattleScript_Status2FoesEnd: restoretarget jumpifbyte CMP_EQUAL, gBattleCommunication + 1, 1, BattleScript_PrintCoinsScattered @ Gold Rush - goto BattleScript_MoveEnd + return BattleScript_DoConfuseAnim: status2animation BS_EFFECT_BATTLER, STATUS2_CONFUSION @@ -10577,7 +10577,7 @@ BattleScript_RaiseCritAlliesIncrement: setallytonexttarget BattleScript_RaiseCritAlliesLoop BattleScript_RaiseCritAlliesEnd: restoretarget - goto BattleScript_MoveEnd + return BattleScript_EffectHealOneSixthAllies:: jumpifteamhealthy BS_ATTACKER, BattleScript_MoveEnd @@ -10596,7 +10596,7 @@ BattleScript_HealOneSixthAlliesIncrement: setallytonexttarget BattleScript_HealOneSixthAlliesLoop BattleScript_HealOneSixthAlliesEnd: restoretarget - goto BattleScript_MoveEnd + return BattleScript_EffectCureStatusAllies:: jumpifteamhealthy BS_ATTACKER, BattleScript_MoveEnd @@ -10610,7 +10610,7 @@ BattleScript_CureStatusAlliesIncrement: setallytonexttarget BattleScript_CureStatusAlliesLoop BattleScript_CureStatusAlliesEnd: restoretarget - goto BattleScript_MoveEnd + return BattleScript_CureStatusActivate: curestatus BS_TARGET @@ -10636,7 +10636,7 @@ BattleScript_RecycleBerriesAlliesIncrement: setallytonexttarget BattleScript_RecycleBerriesAlliesLoop BattleScript_RecycleBerriesAlliesEnd: restoretarget - goto BattleScript_MoveEnd + return @@@ END MAX MOVES @@@ diff --git a/include/config.h b/include/config.h index 2ad84f29cd..9412c8f426 100644 --- a/include/config.h +++ b/include/config.h @@ -6,7 +6,7 @@ // still has them in the ROM. This is because the developers forgot // to define NDEBUG before release, however this has been changed as // Ruby's actual debug build does not use the AGBPrint features. -#define NDEBUG +// #define NDEBUG // To enable printf debugging, comment out "#define NDEBUG". This allows // the various AGBPrint functions to be used. (See include/gba/isagbprint.h). diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index dc1b509cd6..261703f81a 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -115,7 +115,7 @@ bool32 CanDynamax(u16 battlerId) #if B_FLAG_DYNAMAX_BATTLE != 0 if (!FlagGet(B_FLAG_DYNAMAX_BATTLE)) #endif - //return FALSE; + return FALSE; // Check if Player has a Dynamax Band. @@ -630,23 +630,22 @@ u16 SetMaxMoveEffect(u16 move) case MAX_EFFECT_PSYCHIC_TERRAIN: { u32 statusFlag = 0; - u8 *timer = NULL; switch (gBattleMoves[gCurrentMove].argument) { case MAX_EFFECT_MISTY_TERRAIN: - statusFlag = STATUS_FIELD_MISTY_TERRAIN, timer = &gFieldTimers.terrainTimer; + statusFlag = STATUS_FIELD_MISTY_TERRAIN; gBattleCommunication[MULTISTRING_CHOOSER] = 0; break; case MAX_EFFECT_GRASSY_TERRAIN: - statusFlag = STATUS_FIELD_GRASSY_TERRAIN, timer = &gFieldTimers.terrainTimer; + statusFlag = STATUS_FIELD_GRASSY_TERRAIN; gBattleCommunication[MULTISTRING_CHOOSER] = 1; break; case MAX_EFFECT_ELECTRIC_TERRAIN: - statusFlag = STATUS_FIELD_ELECTRIC_TERRAIN, timer = &gFieldTimers.terrainTimer; + statusFlag = STATUS_FIELD_ELECTRIC_TERRAIN; gBattleCommunication[MULTISTRING_CHOOSER] = 2; break; case MAX_EFFECT_PSYCHIC_TERRAIN: - statusFlag = STATUS_FIELD_PSYCHIC_TERRAIN, timer = &gFieldTimers.terrainTimer; + statusFlag = STATUS_FIELD_PSYCHIC_TERRAIN; gBattleCommunication[MULTISTRING_CHOOSER] = 3; break; } @@ -655,11 +654,12 @@ u16 SetMaxMoveEffect(u16 move) gFieldStatuses &= ~STATUS_FIELD_TERRAIN_ANY; gFieldStatuses |= statusFlag; if (GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_TERRAIN_EXTENDER) - *timer = 8; + gFieldTimers.terrainTimer = 8; else - *timer = 5; + gFieldTimers.terrainTimer = 5; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_EffectSetTerrain; + effect++; } break; }