From 7b5f9c3d5e63dbb83d43515f16b718a1579e1624 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 24 Jul 2017 18:24:06 +0200 Subject: a loop problem --- src/battle_3.c | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++------ src/battle_4.c | 15 +-- 2 files changed, 377 insertions(+), 53 deletions(-) (limited to 'src') diff --git a/src/battle_3.c b/src/battle_3.c index b1c6d9016..5c6bc8b07 100644 --- a/src/battle_3.c +++ b/src/battle_3.c @@ -33,12 +33,18 @@ extern u16 gBattleWeather; extern void (*gBattleMainFunc)(void); extern u8 gAbsentBankFlags; extern u8 gBattleCommunication[]; +extern u32 gHitMarker; +extern u8 gEffectBank; +extern s32 gBattleMoveDamage; u8 IsImprisoned(u8 bank, u16 move); u8 GetBankByPlayerAI(u8 ID); u8 GetBankIdentity(u8 bank); u8 GetBankSide(u8 bank); void b_call_bc_move_exec(u8* BS_ptr); +bool8 sub_8015660(u8 bank); //check if a move failed +void SetMoveEffect(bool8 primary, u8 certainArg); +bool8 sub_8025A44(u8 bank); //uproar wakeup check extern u8 BattleScript_MoveSelectionDisabledMove[]; extern u8 BattleScript_MoveSelectionTormented[]; @@ -56,6 +62,21 @@ extern u8 gUnknown_081D9016[]; extern u8 gUnknown_081D9008[]; extern u8 gUnknown_081D9041[]; +extern u8 gUnknown_081D93D1[]; //ingrain bs +extern u8 gUnknown_081D904B[]; //leech seed BS +extern u8 gUnknown_081D9518[]; //poison dmg BS +extern u8 gUnknown_081D953A[]; //burn dmg BS +extern u8 gUnknown_081D9613[]; //nightmare dmg BS +extern u8 gUnknown_081D9624[]; //curse dmg BS +extern u8 gUnknown_081D95E2[]; //wrap dmg BS +extern u8 gUnknown_081D95F4[]; //wrap ends BS +extern u8 gUnknown_081D950F[]; //uproar wakeup BS +extern u8 gUnknown_081D957E[]; //uproar BS +extern u8 gUnknown_081D9587[]; //thrash confusion BS +extern u8 gUnknown_081D9148[]; //disabled no more BS +extern u8 gUnknown_081D914F[]; //encored no more BS +extern u8 gUnknown_081D964C[]; //yawn sleep BS + #define CHOICED_MOVE(bank)(((u16*)(&ewram[bank * 2 + 0x160e8]))) //array entries for battle communication @@ -207,15 +228,23 @@ u8 IsImprisoned(u8 bank, u16 move) } return imprisionedMoves; } -/* + u8 UpdateTurnCounters(void) { u8 effect = 0; s32 i; - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) {} - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) {} + + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + { + } + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) + { + } + do { + u8 sideBank; + switch (BATTLE_STRUCT->turncountersTracker) { case 0: @@ -237,13 +266,14 @@ u8 UpdateTurnCounters(void) case 1: while (BATTLE_STRUCT->turnSideTracker < 2) { - gBankAttacker = BATTLE_STRUCT->turnSideTracker; - gActiveBank = BATTLE_STRUCT->turnSideTracker; - if (gSideAffecting[BATTLE_STRUCT->turnSideTracker] & SIDE_STATUS_REFLECT) + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + + if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) { - if (--gSideTimer[BATTLE_STRUCT->turnSideTracker].reflectTimer == 0) + if (--gSideTimer[sideBank].reflectTimer == 0) { - gSideAffecting[BATTLE_STRUCT->turnSideTracker] &= ~SIDE_STATUS_REFLECT; + + gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; b_call_bc_move_exec(gUnknown_081D9030); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -266,15 +296,14 @@ u8 UpdateTurnCounters(void) case 2: while (BATTLE_STRUCT->turnSideTracker < 2) { - gBankAttacker = BATTLE_STRUCT->turnSideTracker; - gActiveBank = BATTLE_STRUCT->turnSideTracker; - if (gSideAffecting[BATTLE_STRUCT->turnSideTracker] & SIDE_STATUS_LIGHTSCREEN) + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) { - if (--gSideTimer[BATTLE_STRUCT->turnSideTracker].lightscreenTimer == 0) + if (--gSideTimer[sideBank].lightscreenTimer == 0) { - gSideAffecting[BATTLE_STRUCT->turnSideTracker] &= ~SIDE_STATUS_LIGHTSCREEN; + gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; b_call_bc_move_exec(gUnknown_081D9030); - gBattleCommunication[MULTISTRING_CHOOSER] = BATTLE_STRUCT->turnSideTracker; + gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN; @@ -296,13 +325,12 @@ u8 UpdateTurnCounters(void) case 3: while (BATTLE_STRUCT->turnSideTracker < 2) { - gBankAttacker = BATTLE_STRUCT->turnSideTracker; - gActiveBank = BATTLE_STRUCT->turnSideTracker; - if (gSideTimer[BATTLE_STRUCT->turnSideTracker].mistTimer && --gSideTimer[BATTLE_STRUCT->turnSideTracker].mistTimer == 0) + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + if (gSideTimer[sideBank].mistTimer && --gSideTimer[sideBank].mistTimer == 0) { - gSideAffecting[BATTLE_STRUCT->turnSideTracker] &= ~SIDE_STATUS_MIST; + gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; b_call_bc_move_exec(gUnknown_081D9030); - gBattleCommunication[MULTISTRING_CHOOSER] = BATTLE_STRUCT->turnSideTracker; + gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; gBattleTextBuff1[2] = MOVE_MIST; @@ -323,13 +351,12 @@ u8 UpdateTurnCounters(void) case 4: while (BATTLE_STRUCT->turnSideTracker < 2) { - gBankAttacker = BATTLE_STRUCT->turnSideTracker; - gActiveBank = BATTLE_STRUCT->turnSideTracker; - if (gSideAffecting[BATTLE_STRUCT->turnSideTracker] & SIDE_STATUS_SAFEGUARD) + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) { - if (--gSideTimer[BATTLE_STRUCT->turnSideTracker].safeguardTimer == 0) + if (--gSideTimer[sideBank].safeguardTimer == 0) { - gSideAffecting[BATTLE_STRUCT->turnSideTracker] &= ~SIDE_STATUS_SAFEGUARD; + gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; b_call_bc_move_exec(gUnknown_081D9041); effect++; } @@ -348,9 +375,9 @@ u8 UpdateTurnCounters(void) while (BATTLE_STRUCT->turnSideTracker < gNoOfAllBanks) { gActiveBank = gTurnOrder[BATTLE_STRUCT->turnSideTracker]; - if (gWishFutureKnock.wishCounter[BATTLE_STRUCT->turnSideTracker] && --gWishFutureKnock.wishCounter[BATTLE_STRUCT->turnSideTracker] == 0 && gBattleMons[BATTLE_STRUCT->turnSideTracker].hp) + if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) { - gBankTarget = BATTLE_STRUCT->turnSideTracker; + gBankTarget = gActiveBank; b_call_bc_move_exec(BattleScript_WishComesTrue); effect++; } @@ -398,11 +425,12 @@ u8 UpdateTurnCounters(void) } else gBattlescriptCurrInstr = gUnknown_081D8F7D; + + BATTLE_STRUCT->animArg1 = 0xC; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + b_call_bc_move_exec(gBattlescriptCurrInstr); + effect++; } - BATTLE_STRUCT->animArg1 = 0xD; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; BATTLE_STRUCT->turncountersTracker++; break; case 8: @@ -415,11 +443,10 @@ u8 UpdateTurnCounters(void) } else gBattlescriptCurrInstr = gUnknown_081D9008; + + b_call_bc_move_exec(gBattlescriptCurrInstr); + effect++; } - BATTLE_STRUCT->animArg1 = 0xD; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; BATTLE_STRUCT->turncountersTracker++; break; case 9: @@ -432,19 +459,327 @@ u8 UpdateTurnCounters(void) } else gBattlescriptCurrInstr = gUnknown_081D8F7D; + + BATTLE_STRUCT->animArg1 = 0xD; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + b_call_bc_move_exec(gBattlescriptCurrInstr); + effect++; } - BATTLE_STRUCT->animArg1 = 0xD; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; BATTLE_STRUCT->turncountersTracker++; break; case 10: effect++; break; } - } while (!effect); + } while (effect == 0); return (gBattleMainFunc != BattleTurnPassed); } -*/ +#define TURNBASED_MAX_CASE 19 + +bool8 TurnBasedEffects(void) +{ + u8 effect = 0; + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); + while (BATTLE_STRUCT->turnEffectsBank < gNoOfAllBanks && BATTLE_STRUCT->turnEffectsTracker <= TURNBASED_MAX_CASE) + { + gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->turnEffectsBank]; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + { + BATTLE_STRUCT->turnEffectsBank++; + } + else + { + int i; + switch (BATTLE_STRUCT->turnEffectsTracker) + { + case 0: //ingrain + if (gStatuses3[gActiveBank] & STATUS3_ROOTED && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + b_call_bc_move_exec(gUnknown_081D93D1); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 1: //end turn abilities + if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0)) + effect++; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 2: //item effects + if (ItemBattleEffects(0, gActiveBank, 0)) + effect++; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 18: //item effects again + if (ItemBattleEffects(1, gActiveBank, 1)) + effect++; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 3: //leech seed + { + u8 leecher; + if (gStatuses3[gActiveBank] & STATUS3_LEECHSEED && gBattleMons[leecher = (gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK)].hp && gBattleMons[gActiveBank].hp) //wont match without this ugly leecher assignment + { + //u8 leecher = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; + gBankTarget = leecher; //funny how the 'target' is actually the bank that receives HP + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BATTLE_STRUCT->animArg1 = leecher; + BATTLE_STRUCT->animArg2 = gBankAttacker; + b_call_bc_move_exec(gUnknown_081D904B); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + } + break; + case 4: //poison + if (gBattleMons[gActiveBank].status1 & STATUS_POISON && gBattleMons[gActiveBank].hp) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + b_call_bc_move_exec(gUnknown_081D9518); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 5: //toxic poison + if (gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON && gBattleMons[gActiveBank].hp) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns + gBattleMons[gActiveBank].status1 += 0x100; + gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; + b_call_bc_move_exec(gUnknown_081D9518); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 6: //burn + if (gBattleMons[gActiveBank].status1 & STATUS_BURN && gBattleMons[gActiveBank].hp) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + b_call_bc_move_exec(gUnknown_081D953A); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 7: //spooky nightmares + if (gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE && gBattleMons[gActiveBank].hp) + { + //missing sleep check + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + b_call_bc_move_exec(gUnknown_081D9613); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 8: //curse + if (gBattleMons[gActiveBank].status2 & STATUS2_CURSED && gBattleMons[gActiveBank].hp) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + b_call_bc_move_exec(gUnknown_081D9624); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 9: //wrap + if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED && gBattleMons[gActiveBank].hp) + { + gBattleMons[gActiveBank].status2 &= 0xFFFFE000; //hmmm + if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) //damaged by wrap + { + BATTLE_STRUCT->animArg1 = ewram[gActiveBank * 2 + 0x16004]; + BATTLE_STRUCT->animArg2 = ewram[gActiveBank * 2 + 0x16005]; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = ewram[gActiveBank * 2 + 0x16004]; + gBattleTextBuff1[3] = ewram[gActiveBank * 2 + 0x16005]; + gBattleTextBuff1[4] = 0xFF; + gBattlescriptCurrInstr = gUnknown_081D95E2; + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + } + else //broke free + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = ewram[gActiveBank * 2 + 0x16004]; + gBattleTextBuff1[3] = ewram[gActiveBank * 2 + 0x16005]; + gBattleTextBuff1[4] = 0xFF; + gBattlescriptCurrInstr = gUnknown_081D95F4; + } + b_call_bc_move_exec(gBattlescriptCurrInstr); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 10: //uproar + if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + { + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++) + { + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + b_call_bc_move_exec(gUnknown_081D950F); + gActiveBank = gBankAttacker; + EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankAttacker].status1); + MarkBufferBankForExecution(gActiveBank); + break; + } + } + if (gBankAttacker != gNoOfAllBanks) + { + effect = 2; //a pokemon was awaken + break; + } + else + { + gBankAttacker = gActiveBank; + gBattleMons[gActiveBank].status2 -= 0x10; //uproar timer goes down + if (sub_8015660(gActiveBank)) + { + CancelMultiTurnMoves(gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + CancelMultiTurnMoves(gActiveBank); + } + b_call_bc_move_exec(gUnknown_081D957E); + effect = 1; + } + } + if (effect != 2) + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 11: //thrash + if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + { + gBattleMons[gActiveBank].status2 &= 0xFFFFFC00; + if (sub_8015660(gActiveBank)) + CancelMultiTurnMoves(gActiveBank); + else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) && gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS) + { + gBattleMons[gActiveBank].status2 &= 0xFFFFEFFF; + if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; + SetMoveEffect(1, 0); + if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + b_call_bc_move_exec(gUnknown_081D9587); + effect++; + } + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 12: //disable + if (gDisableStructs[gActiveBank].disableTimer1) + { + for (i = 0; i < 4; i++) + { + if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i]) + break; + } + if (i == 4) //pokemon does not have the disabled move anymore + { + gDisableStructs[gActiveBank].disabledMove = 0; + gDisableStructs[gActiveBank].disableTimer1 = 0; + } + else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) //disable ends + { + gDisableStructs[gActiveBank].disabledMove = 0; + b_call_bc_move_exec(gUnknown_081D9148); + effect++; + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 13: //encore + if (gDisableStructs[gActiveBank].encoreTimer1) + { + if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) //pokemon does not have the encored move anymore + { + gDisableStructs[gActiveBank].encoredMove = 0; + gDisableStructs[gActiveBank].encoreTimer1 = 0; + } + else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0 || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0) + { + gDisableStructs[gActiveBank].encoredMove = 0; + gDisableStructs[gActiveBank].encoreTimer1 = 0; + b_call_bc_move_exec(gUnknown_081D914F); + effect++; + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 14: //lock-on decrement + if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS) + gStatuses3[gActiveBank] -= 0x8; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 15: //charge + if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0) + gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 16: //taunt + if (gDisableStructs[gActiveBank].tauntTimer1) + gDisableStructs[gActiveBank].tauntTimer1--; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 17: //yawn + if (gStatuses3[gActiveBank] & STATUS3_YAWN) + { + gStatuses3[gActiveBank] &= 0xFFFFF800; + if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !gBattleMons[gActiveBank].status1 && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT + && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !sub_8025A44(gActiveBank)) + { + CancelMultiTurnMoves(gActiveBank); + gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2; + EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + gEffectBank = gActiveBank; + b_call_bc_move_exec(gUnknown_081D964C); + effect++; + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 19: //done + BATTLE_STRUCT->turnEffectsTracker = 0; + BATTLE_STRUCT->turnEffectsBank++; + break; + } + if (effect) + return effect; + } + } + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); + return 0; +} diff --git a/src/battle_4.c b/src/battle_4.c index 027a3f4f9..ced5b9b8c 100644 --- a/src/battle_4.c +++ b/src/battle_4.c @@ -159,7 +159,7 @@ u8 CalculatePlayerPartyCount(void); u16 Sqrt(u32 num); u8 sub_809070C(u16 nationalNum, u32 TiD, u32 PiD); //task prepare poke dex display void sub_814A880(u8 a1, u8 a2); -u8 CheckMoveLimitations(u8 bank, u8 unusable_moves, u8 flags); //choose move limitations +u8 CheckMoveLimitations(u8 bank, u8 unusable_moves, u8 flags); void sub_801529C(u8 bank); bool8 IsLinkDoubleBattle(void); void sub_8094B6C(u8 bank, u8 partyID, u8 r2); @@ -237,17 +237,6 @@ extern u8 gUnknown_081D95DB[]; //bs payday money give #define TargetProtectAffected ((gProtectStructs[gBankTarget].protected && gBattleMoves[gCurrentMove].flags & FLAG_PROTECT_AFFECTED)) -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_COUNT_OTHER_SIZE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 - //array entries for battle communication #define MOVE_EFFECT_BYTE 0x3 #define MULTISTRING_CHOOSER 0x5 @@ -10144,7 +10133,7 @@ static void atk4D_switch_data_update(void) gBattleTextBuff1[1] = 7; gBattleTextBuff1[2] = gActiveBank; gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; - gBattleTextBuff1[4] = 0xFF; + gBattleTextBuff1[4] = EOS; gBattlescriptCurrInstr += 2; } -- cgit v1.2.3