diff options
Diffstat (limited to 'src/battle_main.c')
-rw-r--r-- | src/battle_main.c | 426 |
1 files changed, 218 insertions, 208 deletions
diff --git a/src/battle_main.c b/src/battle_main.c index e41b2a114..5b259b1d1 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -66,7 +66,7 @@ struct UnknownStruct8 extern void sub_802BBD4(); -extern struct SpriteTemplate gUnknown_02024E8C; +extern struct SpriteTemplate gCreatingSpriteTemplate; extern const u8 Str_821F7B8[]; extern u8 gUnknown_02023A14_50; extern const u16 gBattleTextboxPalette[]; @@ -76,7 +76,7 @@ extern const u8 gUnknown_Debug_821F7F3[]; extern const u8 BattleText_YesNo[]; extern u8 gStatStageRatios[][2]; extern u8 gActionsByTurnOrder[4]; -extern struct UnknownPokemonStruct2 gMultiPartnerParty[]; +extern struct MultiBattlePokemonTx gMultiPartnerParty[]; extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBattler; extern u32 gBattleControllerExecFlags; @@ -91,15 +91,15 @@ extern u8 gPotentialItemEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gMultiHitCounter; extern u8 gActionForBanks[]; -extern u16 gUnknown_02024C2C[]; +extern u16 gLastPrintedMoves[]; extern u16 gLastMoves[]; extern u16 gLastLandedMoves[]; extern u16 gLastHitByType[]; -extern u16 gUnknown_02024C4C[]; +extern u16 gLastResultingMoves[]; extern u16 gLockedMoves[]; extern u16 gChosenMovesByBanks[]; extern u32 gHitMarker; -extern u8 gUnknown_02024C70[]; +extern u8 sUnusedBattlersArray[]; extern u16 gSideStatuses[]; extern u32 gStatuses3[]; //extern u8 gDisableStructs[][0x1C]; @@ -109,7 +109,7 @@ extern u16 gRandomTurnNumber; extern u8 gBattleCommunication[]; extern u8 gUnknown_02024D1F[]; // I don't actually know what type this is. extern u8 gBattleOutcome; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gActionSelectionCursor[]; extern u8 gMoveSelectionCursor[]; extern u8 gUnknown_02038470[]; @@ -204,7 +204,7 @@ s8 gBattleTerrain; void (*gBattleMainFunc)(void); u32 gUnknown_03004284; -struct Window gUnknown_03004210; +struct Window gWindowTemplate_Contest_MoveDescription; struct Window gUnknown_030041D0; struct Window gUnknown_03004250; @@ -250,7 +250,7 @@ void CB2_InitBattleInternal(void) gScanlineEffectRegBuffers[0][i] = 0xFF10; gScanlineEffectRegBuffers[1][i] = 0xFF10; } - //ScanlineEffect_SetParams(gUnknown_081F9674.unk0, gUnknown_081F9674.unk4, gUnknown_081F9674.unk8); + //ScanlineEffect_SetParams(gUnknown_081F9674.totalPoints, gUnknown_081F9674.round1Points, gUnknown_081F9674.random); ScanlineEffect_SetParams(gUnknown_081F9674); Text_LoadWindowTemplate(&gWindowTemplate_81E6C58); ResetPaletteFade(); @@ -270,7 +270,7 @@ void CB2_InitBattleInternal(void) gBattleTerrain = BattleSetup_GetTerrain(); #endif - Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58); + Text_InitWindowWithTemplate(&gWindowTemplate_Contest_MoveDescription, &gWindowTemplate_81E6C58); Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0); Text_InitWindowWithTemplate(&gUnknown_03004250, &gWindowTemplate_81E71EC); sub_800D6D4(); @@ -283,7 +283,7 @@ void CB2_InitBattleInternal(void) SetVBlankCallback(sub_800FCFC); SetUpBattleVarsAndBirchPoochyena(); if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - SetMainCallback2(sub_800F298); + SetMainCallback2(CB2_HandleStartMultiBattle); else SetMainCallback2(CB2_HandleStartBattle); if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) @@ -301,7 +301,7 @@ void CB2_InitBattleInternal(void) gBattleCommunication[0] = 0; } -void sub_800E9EC(void) +void BufferPartyVsScreenHealth_AtStart(void) { u16 r6 = 0; u16 species; @@ -330,21 +330,21 @@ void sub_800E9EC(void) if (species != SPECIES_EGG && hp == 0) r6 |= 3 << i * 2; } - gBattleStruct->unk2 = r6; - gBattleStruct->unk3 = r6 >> 8; + gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo = r6; + gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi = r6 >> 8; } static void SetPlayerBerryDataInBattleStruct(void) { s32 i; - struct UnknownStruct8 *_ewram4 = &ewram4; + struct BattleEnigmaBerry * battleBerry = &gBattleStruct->multiBuffer.linkPartnerHeader.battleEnigmaBerry; for (i = 0; i < 7; i++) - _ewram4->unk0[i] = gSaveBlock1.enigmaBerry.berry.name[i]; + battleBerry->name[i] = gSaveBlock1.enigmaBerry.berry.name[i]; for (i = 0; i < 18; i++) - _ewram4->unk8[i] = gSaveBlock1.enigmaBerry.itemEffect[i]; - _ewram4->unk7 = gSaveBlock1.enigmaBerry.holdEffect; - _ewram4->unk1A = gSaveBlock1.enigmaBerry.holdEffectParam; + battleBerry->itemEffect[i] = gSaveBlock1.enigmaBerry.itemEffect[i]; + battleBerry->holdEffect = gSaveBlock1.enigmaBerry.holdEffect; + battleBerry->holdEffectParam = gSaveBlock1.enigmaBerry.holdEffectParam; } void SetAllPlayersBerryData(void) @@ -419,7 +419,7 @@ void CB2_HandleStartBattle(void) BuildOamBuffer(); playerId = GetMultiplayerId(); - ewram160CB = playerId; + gBattleStruct->multiplayerId = playerId; enemyId = playerId ^ 1; switch (gBattleCommunication[0]) @@ -429,9 +429,9 @@ void CB2_HandleStartBattle(void) { if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished()) { - gBattleStruct->unk0 = 1; - gBattleStruct->unk1 = 1; - sub_800E9EC(); + gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo = 1; + gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi = 1; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); #if DEBUG if (gUnknown_02023A14_50 & 8) @@ -443,7 +443,7 @@ void CB2_HandleStartBattle(void) } } #endif - SendBlock(bitmask_all_link_players_but_self(), gBattleStruct, 32); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader)); gBattleCommunication[0] = 1; } } @@ -494,11 +494,11 @@ void CB2_HandleStartBattle(void) } } SetAllPlayersBerryData(); - taskId = CreateTask(sub_800DE30, 0); + taskId = CreateTask(InitLinkBattleVsScreen, 0); gTasks[taskId].data[1] = 0x10E; gTasks[taskId].data[2] = 0x5A; gTasks[taskId].data[5] = 0; - gTasks[taskId].data[3] = gBattleStruct->unk2 | (gBattleStruct->unk3 << 8); + gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi << 8); gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1]; gBattleCommunication[0]++; } @@ -576,7 +576,7 @@ void CB2_HandleStartBattle(void) } } -void sub_800F02C(void) +void PrepareOwnMultiPartnerBuffer(void) { s32 i; @@ -598,7 +598,7 @@ void sub_800F02C(void) if (gMultiPartnerParty[i].language != 1) PadNameString(nickname, 0); } - memcpy(gSharedMem, gMultiPartnerParty, 0x60); + memcpy(gBattleStruct->multiBuffer.multiBattleMons, gMultiPartnerParty, 3 * sizeof(struct MultiBattlePokemonTx)); } void sub_800F104(void) @@ -609,10 +609,10 @@ void sub_800F104(void) s32 i; playerId = GetMultiplayerId(); - ewram160CB = playerId; + gBattleStruct->multiplayerId = playerId; // Seriously, Game Freak? - pSavedCallback = ewram160C4_Callback; - pSavedBattleTypeFlags = ewram160C2_Flags; + pSavedCallback = &gBattleStruct->unk160C4; + pSavedBattleTypeFlags = &gBattleStruct->unk160C2; RunTasks(); AnimateSprites(); BuildOamBuffer(); @@ -634,8 +634,8 @@ void sub_800F104(void) #endif if (IsLinkTaskFinished()) { - sub_800F02C(); - SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60); + PrepareOwnMultiPartnerBuffer(); + SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, 3 * sizeof(struct MultiBattlePokemonTx)); gBattleCommunication[0]++; } } @@ -652,7 +652,7 @@ void sub_800F104(void) { if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerId].id & 1)) || ((gLinkPlayers[i].id & 1) && (gLinkPlayers[playerId].id & 1))) - memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 0x60); + memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 3 * sizeof(struct MultiBattlePokemonTx)); } } gBattleCommunication[0]++; @@ -666,7 +666,7 @@ void sub_800F104(void) if (!gPaletteFade.active) { gBattleCommunication[0] = 3; - sub_800832C(); + SetCloseLinkCallback(); } break; case 3: @@ -680,13 +680,13 @@ void sub_800F104(void) } } -void sub_800F298(void) +void CB2_HandleStartMultiBattle(void) { u8 playerId; s32 id; playerId = GetMultiplayerId(); - ewram160CB = playerId; + gBattleStruct->multiplayerId = playerId; RunTasks(); AnimateSprites(); BuildOamBuffer(); @@ -707,11 +707,11 @@ void sub_800F298(void) #endif if (IsLinkTaskFinished()) { - gBattleStruct->unk0 = 1; - gBattleStruct->unk1 = 1; - sub_800E9EC(); + *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo) = 1; + *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi) = 1; + BufferPartyVsScreenHealth_AtStart(); SetPlayerBerryDataInBattleStruct(); - SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20); + SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader)); gBattleCommunication[0]++; } } @@ -722,6 +722,7 @@ void sub_800F298(void) u8 taskId; ResetBlockReceivedFlags(); + // LinkBattleComputeBattleTypeFlags id = 0; if (gBlockRecvBuffer[0][0] == 0x100) { @@ -767,9 +768,9 @@ void sub_800F298(void) } SetAllPlayersBerryData(); memcpy(ewram1D000, gPlayerParty, sizeof(struct Pokemon) * 3); - taskId = CreateTask(sub_800DE30, 0); - gTasks[taskId].data[1] = 0x10E; - gTasks[taskId].data[2] = 0x5A; + taskId = CreateTask(InitLinkBattleVsScreen, 0); + gTasks[taskId].data[1] = 270; + gTasks[taskId].data[2] = 90; gTasks[taskId].data[5] = 0; gTasks[taskId].data[3] = 0; gTasks[taskId].data[4] = 0; @@ -986,7 +987,7 @@ void BattleMainCB2(void) } #endif - Text_UpdateWindowInBattle(&gUnknown_03004210); + Text_UpdateWindowInBattle(&gWindowTemplate_Contest_MoveDescription); UpdatePaletteFade(); RunTasks(); } @@ -1195,7 +1196,7 @@ void sub_800FE40(u8 taskId) { struct Pokemon *sp4 = NULL; struct Pokemon *sp8 = NULL; - u8 r2 = ewram160CB; + u8 r2 = gBattleStruct->multiplayerId; u32 r7; s32 i; @@ -1308,7 +1309,7 @@ void c2_8011A1C(void) gBattle_BG3_X = 0; gBattle_BG3_Y = 0; - Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58); + Text_InitWindowWithTemplate(&gWindowTemplate_Contest_MoveDescription, &gWindowTemplate_81E6C58); Text_InitWindowWithTemplate(&gUnknown_030041D0, &gWindowTemplate_81E71D0); Text_InitWindowWithTemplate(&gUnknown_03004250, &gWindowTemplate_81E71EC); sub_800D6D4(); @@ -1321,7 +1322,7 @@ void c2_8011A1C(void) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; SetVBlankCallback(sub_800FCFC); - taskId = CreateTask(sub_800DE30, 0); + taskId = CreateTask(InitLinkBattleVsScreen, 0); gTasks[taskId].data[1] = 0x10E; gTasks[taskId].data[2] = 0x5A; gTasks[taskId].data[5] = 1; @@ -2083,9 +2084,9 @@ void debug_sub_801174C(void) { gUnknown_02023A14_50 |= 0x10; if (gUnknown_Debug_2023A76[0][2] > 5) - gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2] - 2; + gBattleStruct->unk160A3 = gUnknown_Debug_2023A76[0][2] - 2; else - gSharedMem[0x160A3] = gUnknown_Debug_2023A76[0][2]; + gBattleStruct->unk160A3 = gUnknown_Debug_2023A76[0][2]; sub_80408BC(); } else if (gUnknown_Debug_2023A76[0][0x22] == 5) @@ -2616,17 +2617,17 @@ void debug_sub_8012688(void) FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; gCurrentMove = 1; - Text_InitWindowWithTemplate(&gUnknown_03004210, &gWindowTemplate_81E6C58); + Text_InitWindowWithTemplate(&gWindowTemplate_Contest_MoveDescription, &gWindowTemplate_81E6C58); DecompressPicFromTable_2( &gMonFrontPicTable[gCurrentMove], gMonFrontPicCoords[gCurrentMove].coords, gMonFrontPicCoords[gCurrentMove].y_offset, (void *)EWRAM, - gUnknown_081FAF4C[1], + gMonSpriteGfx_Sprite_ptr[1], gCurrentMove); LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32); GetMonSpriteTemplate_803C56C(gCurrentMove, 1); - spriteId = CreateSprite(&gUnknown_02024E8C, 176, 40 + gMonFrontPicCoords[gCurrentMove].y_offset, 40); + spriteId = CreateSprite(&gCreatingSpriteTemplate, 176, 40 + gMonFrontPicCoords[gCurrentMove].y_offset, 40); gSprites[spriteId].callback = nullsub_37; gSprites[spriteId].oam.paletteNum = 1; REG_DISPCNT = 0x1F40; @@ -2643,7 +2644,7 @@ void debug_sub_8012878(void) { AnimateSprites(); BuildOamBuffer(); - Text_UpdateWindowInBattle(&gUnknown_03004210); + Text_UpdateWindowInBattle(&gWindowTemplate_Contest_MoveDescription); UpdatePaletteFade(); RunTasks(); if (gMain.heldKeys == (SELECT_BUTTON | R_BUTTON)) @@ -2653,25 +2654,25 @@ void debug_sub_8012878(void) void debug_sub_80128B4(void) { debug_sub_8010A7C(0, 9); - Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gBattleTextBuff1, 144, 2, 35); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); ConvertIntToDecimalStringN(gBattleTextBuff1, gCurrentMove, 2, 3); gBattleTextBuff1[3] = CHAR_SPACE; gBattleTextBuff1[4] = EOS; StringAppend(gBattleTextBuff1, gSpeciesNames[gCurrentMove]); - Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gBattleTextBuff1, 144, 2, 35); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); } void debug_sub_8012938(u8 taskId) { debug_sub_8010A7C(0, 7); - Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gBattleTextBuff1, 162, 2, 37); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); StringCopy(gBattleTextBuff1, Str_821F7B8); ConvertIntToDecimalStringN(gBattleTextBuff1 + 4, gUnknown_Debug_2023B62[gCurrentMove - 1], 2, 3); - Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gBattleTextBuff1, 162, 2, 37); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); gSprites[gTasks[taskId].data[1]].pos2.y = -gUnknown_Debug_2023B62[gCurrentMove - 1]; } @@ -2682,7 +2683,7 @@ void debug_sub_80129F8(u8 taskId) gMonFrontPicCoords[gCurrentMove].coords, gMonFrontPicCoords[gCurrentMove].y_offset, (void *)EWRAM, - gUnknown_081FAF4C[1], + gMonSpriteGfx_Sprite_ptr[1], gCurrentMove); LoadCompressedPalette(gMonPaletteTable[gCurrentMove].data, 272, 32); gSprites[gTasks[taskId].data[1]].pos1.y = gMonFrontPicCoords[gCurrentMove].y_offset + 40; @@ -2731,8 +2732,8 @@ void debug_sub_8012B70(u8 taskId, u8 b) { sub_802BBD4(24, 28, 29, 33, 0); gTasks[taskId].data[0] = 2; - Text_InitWindow(&gUnknown_03004210, Str_821F7DA, 656, 26, 29); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, Str_821F7DA, 656, 26, 29); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); gTasks[taskId].data[3] = 0; debug_sub_8012B2C(0); } @@ -2741,25 +2742,25 @@ void debug_sub_8012B70(u8 taskId, u8 b) void debug_sub_8012C08(u8 taskId, u8 b) { debug_sub_8010A7C(0, 9); - Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 144, 2, 35); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gBattleTextBuff1, 144, 2, 35); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); debug_sub_8010A7C(0, 7); - Text_InitWindow(&gUnknown_03004210, gBattleTextBuff1, 162, 2, 37); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gBattleTextBuff1, 162, 2, 37); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); sub_802BBD4(24, 28, 29, 33, 0); if (b != 0) { gTasks[taskId].data[0] = 4; - Text_InitWindow(&gUnknown_03004210, gUnknown_Debug_821F7F3, 144, 2, 35); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gUnknown_Debug_821F7F3, 144, 2, 35); } else { gTasks[taskId].data[0] = 3; - Text_InitWindow(&gUnknown_03004210, Str_821F7EA, 144, 2, 35); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, Str_821F7EA, 144, 2, 35); } - Text_PrintWindow8002F44(&gUnknown_03004210); - Text_InitWindow(&gUnknown_03004210, BattleText_YesNo, 656, 26, 29); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, BattleText_YesNo, 656, 26, 29); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); gTasks[taskId].data[3] = 1; debug_sub_8012B2C(1); } @@ -2771,8 +2772,8 @@ void debug_sub_8012D10(u8 taskId) case 0: debug_sub_80128B4(); debug_sub_8012938(taskId); - Text_InitWindow(&gUnknown_03004210, Str_821F7BD, 400, 19, 35); - Text_PrintWindow8002F44(&gUnknown_03004210); + Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, Str_821F7BD, 400, 19, 35); + Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); gTasks[taskId].data[0]++; sub_802E3E4(gTasks[taskId].data[2], 0); break; @@ -3064,7 +3065,7 @@ void oac_poke_opponent(struct Sprite *sprite) void sub_8010278(struct Sprite *sprite) { - if ((gUnknown_02024DE8 & 1) == 0) + if ((gIntroSlideFlags & 1) == 0) { sprite->pos2.x += 2; if (sprite->pos2.x == 0) @@ -3121,8 +3122,8 @@ void sub_8010384(struct Sprite *sprite) u16 species; u8 yOffset; - if (ewram17800[r6].transformedSpecies != 0) - species = ewram17800[r6].transformedSpecies; + if (gBattleSpriteInfo[r6].transformedSpecies != 0) + species = gBattleSpriteInfo[r6].transformedSpecies; else species = sprite->data[2]; @@ -3178,7 +3179,7 @@ void sub_8010494(struct Sprite *sprite) else { // this should use a MEMSET_ALT, but *(dst++) wont match with it. - dst = (u8 *)gUnknown_081FAF4C[GetBattlerPosition(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8); + dst = (u8 *)gMonSpriteGfx_Sprite_ptr[GetBattlerPosition(sprite->data[0])] + (gBattleMonForms[sprite->data[0]] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; StartSpriteAnim(sprite, gBattleMonForms[sprite->data[0]]); @@ -3217,7 +3218,7 @@ void sub_80105A0(struct Sprite *sprite) void oac_poke_ally_(struct Sprite *sprite) { - if ((gUnknown_02024DE8 & 1) == 0) + if ((gIntroSlideFlags & 1) == 0) { sprite->pos2.x -= 2; if (sprite->pos2.x == 0) @@ -3239,7 +3240,7 @@ void nullsub_86(struct Sprite *sprite) void sub_80105EC(struct Sprite *sprite) { - if ((gUnknown_02024DE8 & 1) == 0) + if ((gIntroSlideFlags & 1) == 0) { sprite->pos2.x += sprite->data[1]; sprite->pos2.y += sprite->data[2]; @@ -3329,7 +3330,7 @@ void nullsub_41(void) void sub_8010800(void) { - sub_8010874(); + BattleStartClearSetData(); gBattleCommunication[1] = 0; gBattleMainFunc = bc_8012FAC; } @@ -3339,39 +3340,39 @@ void debug_sub_80138CC(void) { if (GetBattlerSide(gActiveBattler) == 0) { - switch (gSharedMem[0x160FD]) + switch (gBattleStruct->unk160FD) { case 0: if (gBattlerControllerFuncs[gActiveBattler] == sub_802C098) - gSharedMem[0x160FD]++; + gBattleStruct->unk160FD++; break; case 1: gMain.heldKeys = A_BUTTON; gMain.newKeys = A_BUTTON; - gSharedMem[0x160FD]++; - gSharedMem[0x160FE] = 0x80; + gBattleStruct->unk160FD++; + gBattleStruct->unk160FE = 0x80; break; case 2: - gSharedMem[0x160FE]--; - if (gSharedMem[0x160FE] == 0) + gBattleStruct->unk160FE--; + if (gBattleStruct->unk160FE == 0) { gMain.heldKeys = A_BUTTON; gMain.newKeys = A_BUTTON; - gSharedMem[0x160FD]++; - gSharedMem[0x160FE] = 0x80; + gBattleStruct->unk160FD++; + gBattleStruct->unk160FE = 0x80; } break; case 3: - gSharedMem[0x160FE]--; - if (gSharedMem[0x160FE] == 0) + gBattleStruct->unk160FE--; + if (gBattleStruct->unk160FE == 0) { gMain.heldKeys = A_BUTTON; gMain.newKeys = A_BUTTON; - gSharedMem[0x160FD]++; + gBattleStruct->unk160FD++; } break; case 4: - gSharedMem[0x160FD] = 0; + gBattleStruct->unk160FD = 0; break; } } @@ -3398,7 +3399,7 @@ void BattleMainCB1(void) } } -void sub_8010874(void) +void BattleStartClearSetData(void) { s32 i; u32 j; @@ -3412,70 +3413,78 @@ void sub_8010874(void) gStatuses3[i] = 0; MEMSET_ALT(&gDisableStructs[i], 0, 0x1C, j, r4); - gDisableStructs[i].isFirstTurn= 2; - gUnknown_02024C70[i] = 0; + gDisableStructs[i].isFirstTurn = 2; + sUnusedBattlersArray[i] = 0; gLastMoves[i] = 0; gLastLandedMoves[i] = 0; gLastHitByType[i] = 0; - gUnknown_02024C4C[i] = 0; + gLastResultingMoves[i] = 0; gLastHitBy[i] = 0xFF; gLockedMoves[i] = 0; - gUnknown_02024C2C[i] = 0; - eFlashFireArr.arr[i] = 0; + gLastPrintedMoves[i] = 0; + eBattleFlagsArr.arr[i] = 0; } for (i = 0; i < 2; i++) { gSideStatuses[i] = 0; - MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4); + MEMSET_ALT(&gSideTimers[i], 0, sizeof(struct SideTimer), j, r4); } gBattlerAttacker = 0; gBattlerTarget = 0; gBattleWeather = 0; - MEMSET_ALT(&gWishFutureKnock, 0, 0x2C, i, r4); + MEMSET_ALT(&gWishFutureKnock, 0, sizeof(struct WishFutureKnock), i, r4); gHitMarker = 0; if ((gBattleTypeFlags & BATTLE_TYPE_LINK) == 0 && gSaveBlock2.optionsBattleSceneOff == TRUE) gHitMarker = HITMARKER_NO_ANIMATIONS; - ewram16084 = gSaveBlock2.optionsBattleStyle; + + gBattleStruct->battleStyle = gSaveBlock2.optionsBattleStyle; + gMultiHitCounter = 0; gBattleOutcome = 0; gBattleControllerExecFlags = 0; gPaydayMoney = 0; - ewram17130 = 0; - ewram17160 = 0; + (*(u8 *)&B_BATTLESCRIPTS_STACK->size) = 0; + (*(u8 *)&B_FUNCTION_STACK->size) = 0; + for (i = 0; i < 8; i++) gBattleCommunication[i] = 0; + gPauseCounterBattle = 0; gBattleMoveDamage = 0; - gUnknown_02024DE8 = 0; - ewram16002 = 0; - ewram160A1 = 0; + gIntroSlideFlags = 0; + gBattleStruct->animTurn = 0; + gBattleStruct->animTargetsHit = 0; gLeveledUpInBattle = 0; gAbsentBattlerFlags = 0; - ewram16078 = 0; - ewram16086 = 0; - ewram16087 = 0; - ewram16089 = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; - ewram16088 = 3; - ewram1601B = 0; - ewram16056 = 1; + gBattleStruct->runTries = 0; + gBattleStruct->safariGoNearCounter = 0; + gBattleStruct->safariPkblThrowCounter = 0; + gBattleStruct->safariCatchFactor = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; + gBattleStruct->safariFleeRate = 3; + gBattleStruct->wildVictorySong = 0; + gBattleStruct->moneyMultiplier = 1; for (i = 0; i < 8; i++) { - ewram160ACarr(i) = 0; - ewram160CCarr(i) = 0; - ewram160E8arr(i) = 0; - ewram160F0arr(i) = 0; - ewram16100arr(i) = 0; - ewram16108arr(i) = 0; + // TODO: Find matching access here + eLastTakenMove_flat(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMove))[i] = 0;*/ + ewram160CCarr(i) = 0;/*((u8 *)(gBattleStruct->usedHeldItems))[i] = 0;*/ + ewram160E8arr(i) = 0;/*((u8 *)(gBattleStruct->choicedMove))[i] = 0;*/ + ewram160F0arr(i) = 0;/*((u8 *)(gBattleStruct->changedItems))[i] = 0;*/ + ewram16100arr(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMoveFrom) + 8 * 0)[i] = 0;*/ + ewram16108arr(i) = 0;/*((u8 *)(gBattleStruct->lastTakenMoveFrom) + 8 * 1)[i] = 0;*/ } - ewram160C8 = 6; - ewram160C9 = 6; - ewram16113 = 0; + gBattleStruct->AI_monToSwitchIntoId[0] = PARTY_SIZE; + gBattleStruct->AI_monToSwitchIntoId[1] = PARTY_SIZE; + + gBattleStruct->givenExpMons = 0; + + // Reset gBattleResults for (i = 0; i < 11; i++) gBattleResults.usedBalls[i] = 0; gBattleResults.battleTurnCounter = 0; @@ -3499,8 +3508,8 @@ void sub_8010874(void) gBattleResults.caughtNick[i] = 0; } #if DEBUG - gSharedMem[0x1609E] = 0; - gSharedMem[0x1609F] = 0; + gBattleStruct->unk1609E = 0; + gBattleStruct->unk1609F = 0; #endif } @@ -3572,12 +3581,12 @@ void SwitchInClearSetData(void) gLastMoves[gActiveBattler] = 0; gLastLandedMoves[gActiveBattler] = 0; gLastHitByType[gActiveBattler] = 0; - gUnknown_02024C4C[gActiveBattler] = 0; - gUnknown_02024C2C[gActiveBattler] = 0; + gLastResultingMoves[gActiveBattler] = 0; + gLastPrintedMoves[gActiveBattler] = 0; gLastHitBy[gActiveBattler] = 0xFF; - ewram160ACarr2(0, gActiveBattler) = 0; - ewram160ACarr2(1, gActiveBattler) = 0; + eLastTakenMove_2d(0, gActiveBattler) = 0; + eLastTakenMove_2d(1, gActiveBattler) = 0; ewram16100arr2(0, gActiveBattler) = 0; ewram16100arr2(1, gActiveBattler) = 0; ewram16100arr2(2, gActiveBattler) = 0; @@ -3585,7 +3594,7 @@ void SwitchInClearSetData(void) ewram160E8arr2(0, gActiveBattler) = 0; ewram160E8arr2(1, gActiveBattler) = 0; - eFlashFireArr.arr[gActiveBattler] = 0; + eBattleFlagsArr.arr[gActiveBattler] = 0; gCurrentMove = 0; } @@ -3636,20 +3645,20 @@ void UndoEffectsAfterFainting(void) gLastMoves[gActiveBattler] = 0; gLastLandedMoves[gActiveBattler] = 0; gLastHitByType[gActiveBattler] = 0; - gUnknown_02024C4C[gActiveBattler] = 0; - gUnknown_02024C2C[gActiveBattler] = 0; + gLastResultingMoves[gActiveBattler] = 0; + gLastPrintedMoves[gActiveBattler] = 0; gLastHitBy[gActiveBattler] = 0xFF; ewram160E8arr2(0, gActiveBattler) = 0; ewram160E8arr2(1, gActiveBattler) = 0; - ewram160ACarr2(0, gActiveBattler) = 0; - ewram160ACarr2(1, gActiveBattler) = 0; + eLastTakenMove_2d(0, gActiveBattler) = 0; + eLastTakenMove_2d(1, gActiveBattler) = 0; ewram16100arr2(0, gActiveBattler) = 0; ewram16100arr2(1, gActiveBattler) = 0; ewram16100arr2(2, gActiveBattler) = 0; ewram16100arr2(3, gActiveBattler) = 0; - eFlashFireArr.arr[gActiveBattler] = 0; + eBattleFlagsArr.arr[gActiveBattler] = 0; gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; @@ -3707,14 +3716,15 @@ void sub_8011384(void) } else { - u8 r0; + u16 *hpOnSwitchout; MEMSET_ALT(&gBattleMons[gActiveBattler], gBattleBufferB[gActiveBattler][4 + i], 0x58, i, ptr); gBattleMons[gActiveBattler].type1 = gBaseStats[gBattleMons[gActiveBattler].species].type1; gBattleMons[gActiveBattler].type2 = gBaseStats[gBattleMons[gActiveBattler].species].type2; gBattleMons[gActiveBattler].ability = GetAbilityBySpecies(gBattleMons[gActiveBattler].species, gBattleMons[gActiveBattler].altAbility); - r0 = GetBattlerSide(gActiveBattler); - ewram160BC[r0] = gBattleMons[gActiveBattler].hp; + + hpOnSwitchout = &gBattleStruct->HP_OnSwitchout[GetBattlerSide(gActiveBattler)]; + *hpOnSwitchout = gBattleMons[gActiveBattler].hp; for (i = 0; i < 8; i++) gBattleMons[gActiveBattler].statStages[i] = 6; gBattleMons[gActiveBattler].status2 = 0; @@ -3933,9 +3943,9 @@ void sub_80119B4(void) MarkBattlerForControllerExec(gActiveBattler); } } - ewram16058 = 0; - ewram160F9 = 0; - ewram160E6 = 0; + gBattleStruct->unk16058 = 0; + gBattleStruct->unk160F9 = 0; + gBattleStruct->unk160E6 = 0; gBattleMainFunc = BattleBeginFirstTurn; } } @@ -3952,9 +3962,9 @@ void unref_sub_8011A68(void) MarkBattlerForControllerExec(gActiveBattler); } } - ewram16058 = 0; - ewram160F9 = 0; - ewram160E6 = 0; + gBattleStruct->unk16058 = 0; + gBattleStruct->unk160F9 = 0; + gBattleStruct->unk160E6 = 0; gBattleMainFunc = BattleBeginFirstTurn; } } @@ -3967,7 +3977,7 @@ void BattleBeginFirstTurn(void) if (gBattleControllerExecFlags == 0) { - if (ewram16058 == 0) + if (gBattleStruct->unk16058 == 0) { for (i = 0; i < gBattlersCount; i++) gBattlerByTurnOrder[i] = i; @@ -3980,16 +3990,16 @@ void BattleBeginFirstTurn(void) } } } - if (ewram160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0) + if (gBattleStruct->unk160E6 == 0 && AbilityBattleEffects(0, 0, 0, 0xFF, 0) != 0) { - ewram160E6 = 1; + gBattleStruct->unk160E6 = 1; return; } - while (ewram16058 < gBattlersCount) + while (gBattleStruct->unk16058 < gBattlersCount) { - if (AbilityBattleEffects(0, gBattlerByTurnOrder[ewram16058], 0, 0, 0) != 0) + if (AbilityBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk16058], 0, 0, 0) != 0) r9++; - ewram16058++; + gBattleStruct->unk16058++; if (r9 != 0) return; } @@ -3997,11 +4007,11 @@ void BattleBeginFirstTurn(void) return; if (AbilityBattleEffects(11, 0, 0, 0, 0) != 0) return; - while (ewram160F9 < gBattlersCount) + while (gBattleStruct->unk160F9 < gBattlersCount) { - if (ItemBattleEffects(0, gBattlerByTurnOrder[ewram160F9], 0) != 0) + if (ItemBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk160F9], 0) != 0) r9++; - ewram160F9++; + gBattleStruct->unk160F9++; if (r9 != 0) return; } @@ -4016,20 +4026,20 @@ void BattleBeginFirstTurn(void) } TurnValuesCleanUp(0); SpecialStatusesClear(); - ewram160A6 = gAbsentBattlerFlags; + gBattleStruct->unk160A6 = gAbsentBattlerFlags; gBattleMainFunc = sub_8012324; ResetSentPokesToOpponentValue(); for (i = 0; i < 8; i++) gBattleCommunication[i] = 0; for (i = 0; i < gBattlersCount; i++) gBattleMons[i].status2 &= ~8; - ewram16000 = 0; - ewram16001 = 0; - ewram16110 = 0; - ewram16111 = 0; - ewram1600C = 0; - ewram16059 = 0; - ewram1600E = 0; + gBattleStruct->turnEffectsTracker = 0; + gBattleStruct->turnEffectsBattlerId = 0; + gBattleStruct->wishPerishSongState = 0; + gBattleStruct->wishPerishSongBattlerId = 0; + gBattleStruct->cmd49StateTracker = 0; + gBattleStruct->sub80173A4_Tracker = 0; + gBattleStruct->turnCountersTracker = 0; gMoveResultFlags = 0; gRandomTurnNumber = Random(); } @@ -4050,11 +4060,11 @@ void bc_8013B1C(void) if ((gBattleMons[i].status1 & 7) && (gBattleMons[i].status2 & 0x1000)) CancelMultiTurnMoves(i); } - ewram16000 = 0; - ewram16001 = 0; - ewram16110 = 0; - ewram16111 = 0; - ewram1600E = 0; + gBattleStruct->turnEffectsTracker = 0; + gBattleStruct->turnEffectsBattlerId = 0; + gBattleStruct->wishPerishSongState = 0; + gBattleStruct->wishPerishSongBattlerId = 0; + gBattleStruct->turnCountersTracker = 0; gMoveResultFlags = 0; } } @@ -4073,7 +4083,7 @@ void BattleTurnPassed(void) } if (HandleFaintedMonActions() != 0) return; - ewram16059 = 0; + gBattleStruct->sub80173A4_Tracker = 0; if (HandleWishPerishSongOnTurnEnd() != 0) return; TurnValuesCleanUp(0); @@ -4081,9 +4091,9 @@ void BattleTurnPassed(void) gHitMarker &= ~0x80000; gHitMarker &= ~0x400000; gHitMarker &= ~0x100000; - ewram16002 = 0; - ewram160A1 = 0; - ewram1600C = 0; + gBattleStruct->animTurn = 0; + gBattleStruct->animTargetsHit = 0; + gBattleStruct->cmd49StateTracker = 0; gBattleMoveDamage = 0; gMoveResultFlags = 0; for (i = 0; i < 5; i++) @@ -4103,7 +4113,7 @@ void BattleTurnPassed(void) } for (i = 0; i < 4; i++) ewram16068arr(i) = 6; - ewram160A6 = gAbsentBattlerFlags; + gBattleStruct->unk160A6 = gAbsentBattlerFlags; gBattleMainFunc = sub_8012324; gRandomTurnNumber = Random(); } @@ -4131,7 +4141,7 @@ u8 CanRunFromBattle(void) if (r6 != GetBattlerSide(i) && gBattleMons[i].ability == ABILITY_SHADOW_TAG) { - ewram16003 = i; + gBattleStruct->scriptingActive = i; gLastUsedAbility = gBattleMons[i].ability; gBattleCommunication[5] = 2; return 2; @@ -4142,7 +4152,7 @@ u8 CanRunFromBattle(void) && gBattleMons[gActiveBattler].type2 != 2 && gBattleMons[i].ability == ABILITY_ARENA_TRAP) { - ewram16003 = i; + gBattleStruct->scriptingActive = i; gLastUsedAbility = gBattleMons[i].ability; gBattleCommunication[5] = 2; return 2; @@ -4151,7 +4161,7 @@ u8 CanRunFromBattle(void) i = AbilityBattleEffects(15, gActiveBattler, ABILITY_MAGNET_PULL, 0, 0); if (i != 0 && (gBattleMons[gActiveBattler].type1 == 8 || gBattleMons[gActiveBattler].type2 == 8)) { - ewram16003 = i - 1; + gBattleStruct->scriptingActive = i - 1; gLastUsedAbility = gBattleMons[i - 1].ability; gBattleCommunication[5] = 2; return 2; @@ -4232,11 +4242,11 @@ void sub_8012324(void) ewram16068arr(gActiveBattler) = 6; if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) && (position & BIT_FLANK) != B_FLANK_LEFT - && !(ewram160A6 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))]) + && !(gBattleStruct->unk160A6 & gBitTable[GetBattlerAtPosition(BATTLE_PARTNER(position))]) && gBattleCommunication[GetBattlerAtPosition(BATTLE_PARTNER(position))] != STATE_WAIT_ACTION_CONFIRMED) break; //_080123F8 - if (ewram160A6 & gBitTable[gActiveBattler]) + if (gBattleStruct->unk160A6 & gBitTable[gActiveBattler]) { gActionForBanks[gActiveBattler] = 13; if (!(gBattleTypeFlags & 0x40)) @@ -4509,7 +4519,7 @@ void sub_8012324(void) { if (((gBattleTypeFlags & (BATTLE_TYPE_MULTI | BATTLE_TYPE_DOUBLE)) != BATTLE_TYPE_DOUBLE) || (position & BIT_FLANK) != B_FLANK_LEFT - || (ewram160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) + || (gBattleStruct->unk160A6 & gBitTable[GetBattlerAtPosition(position ^ BIT_FLANK)])) { BtlController_EmitLinkStandbyMsg(0, 0); } @@ -4895,8 +4905,8 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) gBattleMainFunc = RunTurnActionsFunctions; gBattleCommunication[3] = 0; gBattleCommunication[4] = 0; - eMultihitMoveEffect = 0; - ewram17130 = 0; + gBattleStruct->multihitMoveEffect = 0; + B_BATTLESCRIPTS_STACK->size = 0; } static void RunTurnActionsFunctions(void) @@ -5170,7 +5180,7 @@ void HandleAction_UseMove(void) gBattlerAttacker = gBattlerByTurnOrder[gCurrentTurnActionNumber]; - if (ewram160A6 & gBitTable[gBattlerAttacker]) + if (gBattleStruct->unk160A6 & gBitTable[gBattlerAttacker]) { gCurrentActionFuncId = B_ACTION_FINISHED; return; @@ -5178,7 +5188,7 @@ void HandleAction_UseMove(void) gCritMultiplier = 1; eDmgMultiplier = 1; - ewram160E7 = 0; + gBattleStruct->atkCancellerTracker = 0; gMoveResultFlags = 0; gMultiHitCounter = 0; gBattleCommunication[6] = 0; @@ -5359,7 +5369,7 @@ void HandleAction_Switch(void) PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBattlerAttacker, ewram16064arr(gBattlerAttacker)) - ewram16003 = gBattlerAttacker; + gBattleStruct->scriptingActive = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_ActionSwitch; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; @@ -5390,7 +5400,7 @@ void HandleAction_UseItem(void) else { - switch (ewram160D8((ewram16003 = gBattlerAttacker))) + switch (ewram160D8((gBattleStruct->scriptingActive = gBattlerAttacker))) { case AI_ITEM_FULL_RESTORE: case AI_ITEM_HEAL_HP: @@ -5428,8 +5438,8 @@ void HandleAction_UseItem(void) gBattleTextBuff1[2]++; } - ewram160A4 = gBattleTextBuff1[2] + 14; - ewram160A5 = 0; + gBattleStruct->animArg1 = gBattleTextBuff1[2] + 14; + gBattleStruct->animArg2 = 0; } break; case AI_ITEM_GUARD_SPECS: @@ -5476,7 +5486,7 @@ bool8 TryRunFromBattle(u8 bank) { if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed) { - speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (ewram16078 * 30); + speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (gBattleStruct->runTries * 30); if (speedVar > (Random() & 0xFF)) effect++; } @@ -5486,7 +5496,7 @@ bool8 TryRunFromBattle(u8 bank) } } - ewram16078++; + gBattleStruct->runTries++; } if (effect) @@ -5579,14 +5589,14 @@ void HandleAction_ThrowPokeblock(void) gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBattlerAttacker][1] - 1; gLastUsedItem = gBattleBufferB[gBattlerAttacker][2]; - if (ewram16087 < 3) - ewram16087++; - if (ewram16088 > 1) + if (gBattleStruct->safariPkblThrowCounter < 3) + gBattleStruct->safariPkblThrowCounter++; + if (gBattleStruct->safariFleeRate > 1) { - if (ewram16088 < gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]]) - ewram16088 = 1; + if (gBattleStruct->safariFleeRate < gUnknown_081FA70C[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]]) + gBattleStruct->safariFleeRate = 1; else - ewram16088 -= gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]]; + gBattleStruct->safariFleeRate -= gUnknown_081FA70C[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]]; } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; @@ -5599,17 +5609,17 @@ void HandleAction_GoNear(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - ewram16089 += gUnknown_081FA71B[ewram16086]; - if (ewram16089 > 20) - ewram16089 = 20; + gBattleStruct->safariCatchFactor += gUnknown_081FA71B[gBattleStruct->safariGoNearCounter]; + if (gBattleStruct->safariCatchFactor > 20) + gBattleStruct->safariCatchFactor = 20; - ewram16088 += gUnknown_081FA71F[ewram16086]; - if (ewram16088 > 20) - ewram16088 = 20; + gBattleStruct->safariFleeRate += gUnknown_081FA71F[gBattleStruct->safariGoNearCounter]; + if (gBattleStruct->safariFleeRate > 20) + gBattleStruct->safariFleeRate = 20; - if (ewram16086 < 3) + if (gBattleStruct->safariGoNearCounter < 3) { - ewram16086++; + gBattleStruct->safariGoNearCounter++; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else @@ -5645,7 +5655,7 @@ void HandleAction_Action11(void) { if (!HandleFaintedMonActions()) { - ewram16059 = 0; + gBattleStruct->sub80173A4_Tracker = 0; gCurrentActionFuncId = B_ACTION_FINISHED; } } @@ -5673,15 +5683,15 @@ void HandleAction_ActionFinished(void) | HITMARKER_CHARGING | HITMARKER_x4000000); gBattleMoveDamage = 0; - ewram16002 = 0; - ewram160A1 = 0; + gBattleStruct->animTurn = 0; + gBattleStruct->animTargetsHit = 0; gLastLandedMoves[gBattlerAttacker] = 0; gLastHitByType[gBattlerAttacker] = 0; eDynamicMoveType = 0; gDynamicBasePower = 0; - ewram1600C = 0; + gBattleStruct->cmd49StateTracker = 0; gBattleCommunication[3] = 0; gBattleCommunication[4] = 0; - eMultihitMoveEffect = 0; - ewram17130 = 0; + gBattleStruct->multihitMoveEffect = 0; + B_BATTLESCRIPTS_STACK->size = 0; } |