diff options
Diffstat (limited to 'src')
27 files changed, 422 insertions, 408 deletions
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c index c18f5790c..1c1972bb4 100644 --- a/src/battle/anim/battle_intro.c +++ b/src/battle/anim/battle_intro.c @@ -12,7 +12,7 @@ #include "trig.h" extern u16 gBattleTypeFlags; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gBattleMonForms[]; extern void sub_800FE20(struct Sprite *); @@ -118,7 +118,7 @@ static void BattleIntroTask_ScrollScenery(u8 taskId) gTasks[taskId].tState++; gTasks[taskId].tBgXOffset = DISPLAY_WIDTH; gTasks[taskId].tFramesUntilBg1Slide = 32; - gUnknown_02024DE8 &= ~1; + gIntroSlideFlags &= ~1; } break; case 3: @@ -227,7 +227,7 @@ static void BattleIntroTask_FadeScenery(u8 taskId) gTasks[taskId].tBgXOffset = DISPLAY_WIDTH; gTasks[taskId].tFramesUntilBg1Slide = 32; gTasks[taskId].data[5] = 1; - gUnknown_02024DE8 &= ~1; + gIntroSlideFlags &= ~1; } break; case 3: @@ -323,7 +323,7 @@ static void BattleIntroTask_ScrollAndFadeScenery(u8 taskId) gTasks[taskId].tBgXOffset = DISPLAY_WIDTH; gTasks[taskId].tFramesUntilBg1Slide = 32; gTasks[taskId].data[5] = 1; - gUnknown_02024DE8 &= ~1; + gIntroSlideFlags &= ~1; } break; case 3: @@ -402,10 +402,10 @@ static void BattleIntroTask_80E4C34(u8 taskId) if (gTasks[taskId].tBgXOffset == 0) { gTasks[taskId].tState++; - gSprites[ewram1608A].oam.objMode = 2; - gSprites[ewram1608A].callback = sub_800FE20; - gSprites[ewram1608B].oam.objMode = 2; - gSprites[ewram1608B].callback = sub_800FE20; + gSprites[gBattleStruct->unk1608A].oam.objMode = 2; + gSprites[gBattleStruct->unk1608A].callback = sub_800FE20; + gSprites[gBattleStruct->unk1608B].oam.objMode = 2; + gSprites[gBattleStruct->unk1608B].callback = sub_800FE20; REG_WININ = 0x3F; REG_WINOUT = 0x3F06; } @@ -419,7 +419,7 @@ static void BattleIntroTask_80E4C34(u8 taskId) gTasks[taskId].tState++; gTasks[taskId].tBgXOffset = DISPLAY_WIDTH; gTasks[taskId].tFramesUntilBg1Slide = 32; - gUnknown_02024DE8 &= ~1; + gIntroSlideFlags &= ~1; } break; case 3: diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c index 9053d7844..9be913b70 100644 --- a/src/battle/anim/normal.c +++ b/src/battle/anim/normal.c @@ -1932,8 +1932,8 @@ void sub_80E4300(u8 taskId) } else { - gTasks[taskId].data[0] = ewram17800[gBattleAnimAttacker].invisible; - ewram17800[gBattleAnimAttacker].invisible = TRUE; + gTasks[taskId].data[0] = gBattleSpriteInfo[gBattleAnimAttacker].invisible; + gBattleSpriteInfo[gBattleAnimAttacker].invisible = TRUE; gTasks[taskId].func = sub_80E4368; gAnimVisualTaskCount--; } @@ -1943,7 +1943,7 @@ static void sub_80E4368(u8 taskId) { if (gBattleAnimArgs[7] == 0x1000) { - ewram17800[gBattleAnimAttacker].invisible = gTasks[taskId].data[0] & 1; + gBattleSpriteInfo[gBattleAnimAttacker].invisible = gTasks[taskId].data[0] & 1; DestroyTask(taskId); } } diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index f83334be3..9de1e9b1f 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -82,7 +82,7 @@ static bool8 ShouldSwitchIfWonderGuard(void) continue; GetMonData(&gEnemyParty[i], MON_DATA_SPECIES); // Unused return value. GetMonData(&gEnemyParty[i], MON_DATA_ALT_ABILITY); // Unused return value. - + for (opposingBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT), j = 0; j < MAX_MON_MOVES; ++j) { move = GetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j); diff --git a/src/battle_anim_special.c b/src/battle_anim_special.c index e86b9359c..50a5323e3 100755 --- a/src/battle_anim_special.c +++ b/src/battle_anim_special.c @@ -1843,7 +1843,7 @@ void sub_81416C4(u8 taskId) void sub_81417D8(u8 taskId) { - gBattleAnimArgs[7] = ewram17800[gBattleAnimAttacker].substituteSprite; + gBattleAnimArgs[7] = gBattleSpriteInfo[gBattleAnimAttacker].substituteSprite; DestroyAnimVisualTask(taskId); } diff --git a/src/battle_bg.c b/src/battle_bg.c index 6aa22edf6..c3c08aa0e 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -416,7 +416,7 @@ static void sub_800DAF8(u8 taskId, u8 windowId, u8 *dest) } CpuSet(src, dest, 3); } else { - if (windowId == gBattleStruct->linkPlayerIndex) { + if (windowId == gBattleStruct->multiplayerId) { r4 = gTasks[taskId].data[3]; } else { r4 = gTasks[taskId].data[4]; @@ -468,7 +468,7 @@ static void PrintLinkBattleWinLossTie(void) { // id = player position? - switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id) + switch (gLinkPlayers[gBattleStruct->multiplayerId].id) { case 0: case 2: @@ -486,7 +486,7 @@ static void PrintLinkBattleWinLossTie(void) else { - switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id) + switch (gLinkPlayers[gBattleStruct->multiplayerId].id) { case 1: case 3: @@ -508,7 +508,7 @@ static void PrintLinkBattleWinLossTie(void) if (gBattleOutcome == 1) { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0) + if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0) { PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN); PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS); @@ -521,7 +521,7 @@ static void PrintLinkBattleWinLossTie(void) } else { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0) + if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0) { PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN); PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS); @@ -535,7 +535,7 @@ static void PrintLinkBattleWinLossTie(void) } -void sub_800DE30(u8 taskId) +void InitLinkBattleVsScreen(u8 taskId) { u8 palette; int i; @@ -559,11 +559,11 @@ void sub_800DE30(u8 taskId) } else { u8 windowId = 4; - u8 playerId = gBattleStruct->linkPlayerIndex; - u8 opponentId = gBattleStruct->linkPlayerIndex ^ 1; + u8 playerId = gBattleStruct->multiplayerId; + u8 opponentId = gBattleStruct->multiplayerId ^ 1; if (gLinkPlayers[playerId].id) { - opponentId = gBattleStruct->linkPlayerIndex; - playerId = gBattleStruct->linkPlayerIndex ^ 1; + opponentId = gBattleStruct->multiplayerId; + playerId = gBattleStruct->multiplayerId ^ 1; } Text_InitWindow8002E4C( diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index d781599e9..eafe78b42 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -44,7 +44,7 @@ extern void (*gAnimScriptCallback)(void); extern u8 gDisplayedStringBattle[]; extern bool8 gDoingBattleAnim; extern u8 gBattleOutcome; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gUnknown_02024E68[]; extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gAnimMoveTurn; @@ -454,7 +454,7 @@ void sub_8037CC0(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); gBattlerControllerFuncs[gActiveBattler] = sub_8037D2C; } @@ -1214,7 +1214,7 @@ void sub_8039648(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4 = 1; break; @@ -1283,7 +1283,7 @@ void LinkOpponentHandlecmd10(void) { if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4++; } @@ -1358,9 +1358,9 @@ void sub_8039B64(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8) { - ewram17800[gActiveBattler].unk0_3 = 1; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } ewram17810[gActiveBattler].unk4 = 1; @@ -1378,10 +1378,10 @@ void sub_8039B64(void) if (!gAnimScriptActive) { sub_80326EC(1); - if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1) + if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1) { move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - ewram17800[gActiveBattler].unk0_3 = 0; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 0; } ewram17810[gActiveBattler].unk4 = 3; } @@ -1613,7 +1613,7 @@ void LinkOpponentHandleFaintingCry(void) void LinkOpponentHandleIntroSlide(void) { StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); - gUnknown_02024DE8 |= 1; + gIntroSlideFlags |= 1; LinkOpponentBufferExecCompleted(); } diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index 67c46c59d..946e943e4 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -38,7 +38,7 @@ extern u32 gBattleControllerExecFlags; extern u16 gBattlerPartyIndexes[]; extern u8 gBattlerSpriteIds[]; extern u8 gBattleOutcome; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gUnknown_02024E68[]; extern u8 gDoingBattleAnim; extern u32 gTransformedPersonalities[]; @@ -396,7 +396,7 @@ void sub_811E034(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); gBattlerControllerFuncs[gActiveBattler] = sub_811E0A0; } @@ -1153,7 +1153,7 @@ void sub_811FA5C(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4 = 1; break; @@ -1219,7 +1219,7 @@ void LinkPartnerHandlecmd10(void) { if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4++; } @@ -1294,9 +1294,9 @@ void sub_811FF30(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8) { - ewram17800[gActiveBattler].unk0_3 = 1; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } ewram17810[gActiveBattler].unk4 = 1; @@ -1314,10 +1314,10 @@ void sub_811FF30(void) if (!gAnimScriptActive) { sub_80326EC(1); - if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1) + if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1) { move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - ewram17800[gActiveBattler].unk0_3 = 0; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 0; } ewram17810[gActiveBattler].unk4 = 3; } @@ -1549,7 +1549,7 @@ void LinkPartnerHandleFaintingCry(void) void LinkPartnerHandleIntroSlide(void) { StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); - gUnknown_02024DE8 |= 1; + gIntroSlideFlags |= 1; LinkPartnerBufferExecCompleted(); } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index b3685806d..882c34b7f 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -58,7 +58,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gBattlerTarget; extern u8 gAbsentBattlerFlags; extern bool8 gDoingBattleAnim; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gUnknown_02024E68[]; extern MainCallback gPreBattleCallback1; extern struct MusicPlayerInfo gMPlayInfo_SE1; @@ -459,7 +459,7 @@ void sub_8033264(void) { if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); gBattlerControllerFuncs[gActiveBattler] = sub_80332D0; } @@ -1187,7 +1187,7 @@ void sub_8034B74(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4 = 1; break; @@ -1287,7 +1287,7 @@ void OpponentHandlecmd10(void) { if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4++; } @@ -1362,9 +1362,9 @@ void sub_8035238(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite && !ewram17800[gActiveBattler].unk0_3) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite && !gBattleSpriteInfo[gActiveBattler].flag_x8) { - ewram17800[gActiveBattler].unk0_3 = 1; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } ewram17810[gActiveBattler].unk4 = 1; @@ -1382,10 +1382,10 @@ void sub_8035238(void) if (!gAnimScriptActive) { sub_80326EC(1); - if ((ewram17800[gActiveBattler].substituteSprite) && r7 <= 1) + if ((gBattleSpriteInfo[gActiveBattler].substituteSprite) && r7 <= 1) { move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - ewram17800[gActiveBattler].unk0_3 = 0; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 0; } ewram17810[gActiveBattler].unk4 = 3; } @@ -2019,7 +2019,7 @@ void OpponentHandleFaintingCry(void) void OpponentHandleIntroSlide(void) { StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); - gUnknown_02024DE8 |= 1; + gIntroSlideFlags |= 1; OpponentBufferExecCompleted(); } diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 772728295..271f5cfd1 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -64,7 +64,7 @@ extern u8 gAnimFriendship; extern u16 gWeatherMoveAnim; extern u32 gTransformedPersonalities[]; extern u8 gBattleMonForms[]; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gUnknown_02024E68[]; extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gAnimMoveTurn; @@ -1258,7 +1258,7 @@ void sub_802D680(void) ewram17810[gActiveBattler].unk1_0 = 0; FreeSpriteTilesByTag(0x27F9); FreeSpritePaletteByTag(0x27F9); - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); gBattlerControllerFuncs[gActiveBattler] = sub_802D730; } @@ -2385,7 +2385,7 @@ void sub_802FB2C(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4 = 1; break; @@ -2460,7 +2460,7 @@ void PlayerHandlecmd10(void) { if (ewram17810[gActiveBattler].unk4 == 0) { - if (ewram17800[gActiveBattler].substituteSprite) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4++; } @@ -2548,9 +2548,10 @@ void sub_8030190(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite == 1 && ewram17800[gActiveBattler].unk0_3 == 0) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1 && + gBattleSpriteInfo[gActiveBattler].flag_x8 == 0) { - ewram17800[gActiveBattler].unk0_3 = 1; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 1; move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); } ewram17810[gActiveBattler].unk4 = 1; @@ -2568,10 +2569,10 @@ void sub_8030190(void) if (!gAnimScriptActive) { sub_80326EC(1); - if (ewram17800[gActiveBattler].substituteSprite == 1 && r7 < 2) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1 && r7 < 2) { move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); - ewram17800[gActiveBattler].unk0_3 = 0; + gBattleSpriteInfo[gActiveBattler].flag_x8 = 0; } ewram17810[gActiveBattler].unk4 = 3; } @@ -2674,9 +2675,9 @@ void PlayerHandlecmd22(void) gUnknown_0300434C[gActiveBattler] = CreateTask(TaskDummy, 0xFF); gTasks[gUnknown_0300434C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF; - ewram16054 = gBattleBufferA[gActiveBattler][1] >> 4; - EWRAM_1609D = gBattleBufferA[gActiveBattler][2]; - ewram160C0 = gBattleBufferA[gActiveBattler][3]; + gBattleStruct->unk16054 = gBattleBufferA[gActiveBattler][1] >> 4; + gBattleStruct->unk1609D = gBattleBufferA[gActiveBattler][2]; + gBattleStruct->unk160C0 = gBattleBufferA[gActiveBattler][3]; for (i = 0; i < 3; i++) gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][4 + i]; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); @@ -2892,7 +2893,7 @@ void PlayerHandleFaintingCry(void) void PlayerHandleIntroSlide(void) { StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); - gUnknown_02024DE8 |= 1; + gIntroSlideFlags |= 1; PlayerBufferExecCompleted(); } diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index c015cb4cf..138f873c9 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -35,7 +35,7 @@ extern MainCallback gPreBattleCallback1; extern u8 gBankInMenu; extern u8 gHealthboxSpriteIds[]; extern u16 gBattlerPartyIndexes[]; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gBattleOutcome; extern u8 GetBattlerSide(u8); @@ -650,7 +650,7 @@ void SafariHandleFaintingCry(void) void SafariHandleIntroSlide(void) { StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); - gUnknown_02024DE8 |= 1; + gIntroSlideFlags |= 1; SafariBufferExecCompleted(); } diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 50ede7c7d..3e54668b0 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -49,7 +49,7 @@ extern u8 gDisplayedStringBattle[]; extern u8 gBankInMenu; extern u8 gBattleMonForms[]; extern u8 gBattleOutcome; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gUnknown_02024E68[]; extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gAnimMoveTurn; @@ -1195,7 +1195,7 @@ void sub_81390D0(void) switch (ewram17810[gActiveBattler].unk4) { case 0: - if (ewram17800[gActiveBattler].substituteSprite == 1) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 5); ewram17810[gActiveBattler].unk4 = 1; break; @@ -1212,7 +1212,7 @@ void sub_81390D0(void) if (!gAnimScriptActive) { sub_80326EC(1); - if (ewram17800[gActiveBattler].substituteSprite == 1) + if (gBattleSpriteInfo[gActiveBattler].substituteSprite == 1) move_anim_start_t4(gActiveBattler, gActiveBattler, gActiveBattler, 6); ewram17810[gActiveBattler].unk4 = 3; } @@ -1464,7 +1464,7 @@ void WallyHandleFaintingCry(void) void WallyHandleIntroSlide(void) { StartBattleIntroAnim(gBattleBufferA[gActiveBattler][1]); - gUnknown_02024DE8 |= 1; + gIntroSlideFlags |= 1; WallyBufferExecCompleted(); } @@ -1496,7 +1496,7 @@ void sub_81398BC(u8 bank) { u16 species; - ewram17800[bank].transformedSpecies = 0; + gBattleSpriteInfo[bank].transformedSpecies = 0; gBattlerPartyIndexes[bank] = gBattleBufferA[bank][1]; species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); gUnknown_0300434C[bank] = CreateInvisibleSpriteWithCallback(sub_80312F0); diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 104a0eecf..49da3c9e6 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -29,7 +29,7 @@ extern u8 gBattlersCount; extern u16 gBattlerPartyIndexes[]; extern u8 gBattlerPositions[]; extern u8 gBattlerSpriteIds[]; -extern u16 gUnknown_02024DE8; +extern u16 gIntroSlideFlags; extern u8 gDoingBattleAnim; extern u32 gTransformedPersonalities[]; extern struct Window gUnknown_03004210; @@ -142,7 +142,7 @@ void unref_sub_8031364(struct Sprite *sprite, bool8 stupid) void sub_80313A0(struct Sprite *sprite) { - if (!(gUnknown_02024DE8 & 1)) + if (!(gIntroSlideFlags & 1)) { sprite->pos2.x += sprite->data[0]; if (sprite->pos2.x == 0) @@ -194,9 +194,9 @@ bool8 move_anim_start_t3(u8 a, u8 b, u8 c, u8 d, u16 e) gBattleMonForms[a] = e & 0x7F; return TRUE; } - if (ewram17800[a].substituteSprite && sub_803163C(d) == 0) + if (gBattleSpriteInfo[a].substituteSprite && sub_803163C(d) == 0) return TRUE; - if (ewram17800[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible) + if (gBattleSpriteInfo[a].substituteSprite && d == 2 && gSprites[gBattlerSpriteIds[a]].invisible) { refresh_graphics_maybe(a, 1, gBattlerSpriteIds[a]); sub_80324E0(a); @@ -296,14 +296,14 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b) const u8 *lzPaletteData; personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY); - if (ewram17800[b].transformedSpecies == 0) + if (gBattleSpriteInfo[b].transformedSpecies == 0) { species = GetMonData(pkmn, MON_DATA_SPECIES); r7 = personalityValue; } else { - species = ewram17800[b].transformedSpecies; + species = gBattleSpriteInfo[b].transformedSpecies; r7 = gTransformedPersonalities[b]; } otId = GetMonData(pkmn, MON_DATA_OT_ID); @@ -317,7 +317,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b) species, r7); paletteOffset = 0x100 + b * 16; - if (ewram17800[b].transformedSpecies == 0) + if (gBattleSpriteInfo[b].transformedSpecies == 0) lzPaletteData = GetMonSpritePal(pkmn); else lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue); @@ -330,7 +330,7 @@ void BattleLoadOpponentMonSprite(struct Pokemon *pkmn, u8 b) LZDecompressWram(lzPaletteData, ewram16400); LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20); } - if (ewram17800[b].transformedSpecies != 0) + if (gBattleSpriteInfo[b].transformedSpecies != 0) { BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31)); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); @@ -348,14 +348,14 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b) const u8 *lzPaletteData; personalityValue = GetMonData(pkmn, MON_DATA_PERSONALITY); - if (ewram17800[b].transformedSpecies == 0) + if (gBattleSpriteInfo[b].transformedSpecies == 0) { species = GetMonData(pkmn, MON_DATA_SPECIES); r7 = personalityValue; } else { - species = ewram17800[b].transformedSpecies; + species = gBattleSpriteInfo[b].transformedSpecies; r7 = gTransformedPersonalities[b]; } otId = GetMonData(pkmn, MON_DATA_OT_ID); @@ -369,7 +369,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b) species, r7); paletteOffset = 0x100 + b * 16; - if (ewram17800[b].transformedSpecies == 0) + if (gBattleSpriteInfo[b].transformedSpecies == 0) lzPaletteData = GetMonSpritePal(pkmn); else lzPaletteData = GetMonSpritePalFromOtIdPersonality(species, otId, personalityValue); @@ -382,7 +382,7 @@ void BattleLoadPlayerMonSprite(struct Pokemon *pkmn, u8 b) LZDecompressWram(lzPaletteData, ewram16400); LoadPalette(ewram16400 + gBattleMonForms[b] * 32, paletteOffset, 0x20); } - if (ewram17800[b].transformedSpecies != 0) + if (gBattleSpriteInfo[b].transformedSpecies != 0) { BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31)); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); @@ -611,7 +611,7 @@ void sub_8031EE8(void) void sub_8031F0C(void) { sub_8031EE8(); - memset(ewram17800, 0, 0x10); + memset(gBattleSpriteInfo, 0, 0x10); } void sub_8031F24(void) @@ -619,12 +619,12 @@ void sub_8031F24(void) s32 i; for (i = 0; i < gBattlersCount; i++) - ewram17800[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; + gBattleSpriteInfo[i].invisible = gSprites[gBattlerSpriteIds[i]].invisible; } void sub_8031F88(u8 a) { - ewram17800[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible; + gBattleSpriteInfo[a].invisible = gSprites[gBattlerSpriteIds[a]].invisible; } void sub_8031FC4(u8 a, u8 b, bool8 c) @@ -642,7 +642,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) paletteOffset = 0x100 + a * 16; LoadPalette(ewram16400 + ewram17840.unk0 * 32, paletteOffset, 32); gBattleMonForms[a] = ewram17840.unk0; - if (ewram17800[a].transformedSpecies != 0) + if (gBattleSpriteInfo[a].transformedSpecies != 0) { BlendPalette(paletteOffset, 16, 6, RGB(31, 31, 31)); CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); @@ -716,7 +716,7 @@ void sub_8031FC4(u8 a, u8 b, bool8 c) CpuCopy32(gPlttBufferFaded + paletteOffset, gPlttBufferUnfaded + paletteOffset, 32); if (!IsContest()) { - ewram17800[a].transformedSpecies = species; + gBattleSpriteInfo[a].transformedSpecies = species; gBattleMonForms[a] = gBattleMonForms[b]; } gSprites[gBattlerSpriteIds[a]].pos1.y = sub_8077F68(a); @@ -777,12 +777,12 @@ void refresh_graphics_maybe(u8 a, u8 b, u8 spriteId) void sub_80324BC(u8 a, u16 b) { if (b == 0xA4) - ewram17800[a].substituteSprite = 1; + gBattleSpriteInfo[a].substituteSprite = 1; } void sub_80324E0(u8 a) { - ewram17800[a].substituteSprite = 0; + gBattleSpriteInfo[a].substituteSprite = 0; } void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b) @@ -792,22 +792,22 @@ void HandleLowHpMusicChange(struct Pokemon *pkmn, u8 b) if (GetHPBarLevel(hp, maxHP) == 1) { - if (!ewram17800[b].unk0_1) + if (!gBattleSpriteInfo[b].lowHpSong) { - if (!ewram17800[b ^ 2].unk0_1) + if (!gBattleSpriteInfo[b ^ 2].lowHpSong) PlaySE(SE_LOW_HEALTH); - ewram17800[b].unk0_1 = 1; + gBattleSpriteInfo[b].lowHpSong = 1; } } else { - ewram17800[b].unk0_1 = 0; + gBattleSpriteInfo[b].lowHpSong = 0; if (!IsDoubleBattle()) { m4aSongNumStop(SE_LOW_HEALTH); return; } - if (IsDoubleBattle() && !ewram17800[b ^ 2].unk0_1) + if (IsDoubleBattle() && !gBattleSpriteInfo[b ^ 2].lowHpSong) { m4aSongNumStop(SE_LOW_HEALTH); return; @@ -819,9 +819,9 @@ void BattleStopLowHpSound(void) { u8 r4 = GetBattlerAtPosition(0); - ewram17800[r4].unk0_1 = 0; + gBattleSpriteInfo[r4].lowHpSong = 0; if (IsDoubleBattle()) - ewram17800[r4 ^ 2].unk0_1 = 0; + gBattleSpriteInfo[r4 ^ 2].lowHpSong = 0; m4aSongNumStop(SE_LOW_HEALTH); } @@ -903,9 +903,9 @@ void sub_80328A4(struct Sprite *sprite) } if (gAnimScriptActive || r7->invisible) invisible = TRUE; - else if (ewram17800[r4].transformedSpecies != 0 && gEnemyMonElevation[ewram17800[r4].transformedSpecies] == 0) + else if (gBattleSpriteInfo[r4].transformedSpecies != 0 && gEnemyMonElevation[gBattleSpriteInfo[r4].transformedSpecies] == 0) invisible = TRUE; - if (ewram17800[r4].substituteSprite) + if (gBattleSpriteInfo[r4].substituteSprite) invisible = TRUE; sprite->pos1.x = r7->pos1.x; sprite->pos2.x = r7->pos2.x; @@ -921,8 +921,8 @@ void sub_8032984(u8 a, u16 b) { if (GetBattlerSide(a) != 0) { - if (ewram17800[a].transformedSpecies != 0) - b = ewram17800[a].transformedSpecies; + if (gBattleSpriteInfo[a].transformedSpecies != 0) + b = gBattleSpriteInfo[a].transformedSpecies; if (gEnemyMonElevation[b] != 0) gSprites[ewram17810[a].unk7].callback = sub_80328A4; else @@ -960,7 +960,7 @@ void sub_8032A38(void) void sub_8032AA8(u8 a, u8 b) { - ewram17800[a].transformedSpecies = 0; + gBattleSpriteInfo[a].transformedSpecies = 0; gBattleMonForms[a] = 0; if (b == 0) sub_80324E0(a); diff --git a/src/battle_interface.c b/src/battle_interface.c index c36556f11..be9554bf2 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1048,7 +1048,7 @@ _0804420C: .4byte 0x04000008\n\ // TODO: make this a local variable memcpy(str, gUnknown_0820A89C, sizeof(str)); r4 = gSprites[a].data[6]; - if ((ewram17800[r4].unk0_4) == 0) + if ((gBattleSpriteInfo[r4].hpNumbersNoBars) == 0) return; ptr = str + 6; if (c == 0) @@ -1427,8 +1427,8 @@ void sub_804454C(void) { u8 r6; - ewram17800[i].unk0_4 ^= 1; - r6 = ewram17800[i].unk0_4; + gBattleSpriteInfo[i].hpNumbersNoBars ^= 1; + r6 = gBattleSpriteInfo[i].hpNumbersNoBars; if (GetBattlerSide(i) == 0) { @@ -2702,7 +2702,7 @@ static void sub_8045458(u8 a, u8 b) for (i = 0; i < 3; i++) CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8 + i) * 32, 32); - if (!ewram17800[r7].unk0_4) + if (!gBattleSpriteInfo[r7].hpNumbersNoBars) CpuCopy32(sub_8043CDC(1), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 64); sub_8045458(a, 1); @@ -2717,7 +2717,7 @@ static void sub_8045458(u8 a, u8 b) CpuCopy32(r6, OBJ_VRAM0 + (gSprites[a].oam.tileNum + r8) * 32, 96); if (IsDoubleBattle() == TRUE || GetBattlerSide(r7) == TRUE) { - if (!ewram17800[r7].unk0_4) + if (!gBattleSpriteInfo[r7].hpNumbersNoBars) { CpuCopy32(sub_8043CDC(0), OBJ_VRAM0 + gSprites[r10].oam.tileNum * 32, 32); CpuCopy32(sub_8043CDC(0x41), OBJ_VRAM0 + (gSprites[r10].oam.tileNum + 1) * 32, 32); @@ -2933,7 +2933,7 @@ s32 sub_8045C78(u8 a, u8 unused1, u8 c, u8 unused2) r5 = ABS(r8 / r5); r6 = sub_8045F58(ewram17850[a].unk4, ewram17850[a].unk8, r8, &ewram17850[a].unk10, 8, r5); } - if (c == 1 || (c == 0 && (!ewram17800[a].unk0_4))) + if (c == 1 || (c == 0 && (!gBattleSpriteInfo[a].hpNumbersNoBars))) sub_8045D58(a, c); if (r6 == -1) ewram17850[a].unk10 = 0; diff --git a/src/battle_main.c b/src/battle_main.c index e41b2a114..fee505c43 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -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[]; @@ -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]++; @@ -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; @@ -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; @@ -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) @@ -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]; @@ -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; } diff --git a/src/battle_message.c b/src/battle_message.c index ce1e63edd..b8872163b 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -658,7 +658,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) { if (gLastUsedItem == ITEM_ENIGMA_BERRY) { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler) + if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler) { StringCopy(text, gEnigmaBerries[gPotentialItemEffectBattler].name); #ifdef ENGLISH @@ -724,7 +724,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT) { memset(text, 0xFF, 8); - memcpy(text, ewram17002, 7); + memcpy(text, eSecretBaseRecord->playerName, 7); toCpy = text; } else if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER) @@ -949,7 +949,7 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) { if (hword == ITEM_ENIGMA_BERRY) { - if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler) + if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler) { StringCopy(dst, gEnigmaBerries[gPotentialItemEffectBattler].name); #ifdef ENGLISH diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 0cdcfe8f9..c9c22ec6f 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -101,8 +101,8 @@ extern u8* gBattleScriptsForMoveEffects[]; extern u16 gChosenMove; //last used move in battle extern u8 gBankInMenu; extern u8 gActionForBanks[4]; -extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch -extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one +extern u16 gLastPrintedMoves[4]; //last used moves 2, used by sketch +extern u16 gLastResultingMoves[4]; //last used moves by banks, another one extern u8 gCurrentTurnActionNumber; extern u16 gTrappingMoves[]; @@ -4991,7 +4991,7 @@ static void atk15_seteffectwithchance(void) } gBattleCommunication[MOVE_EFFECT_BYTE] = 0; - gBattleStruct->unk16112 = 0; + gBattleStruct->multihitMoveEffect = 0; } static void atk16_seteffectprimary(void) @@ -5015,7 +5015,7 @@ static void atk18_clearstatusfromeffect(void) gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattlescriptCurrInstr += 2; - gBattleStruct->unk16112 = 0; + gBattleStruct->multihitMoveEffect = 0; } static void atk19_tryfaintmon(void) @@ -5057,8 +5057,8 @@ static void atk19_tryfaintmon(void) if (!(gAbsentBattlerFlags & gBitTable[gActiveBattler]) && gBattleMons[gActiveBattler].hp == 0) { - ewram160ACarr2(0, battlerId) = 0; - ewram160ACarr2(1, battlerId) = 0; + eLastTakenMove_2d(0, battlerId) = 0; + eLastTakenMove_2d(1, battlerId) = 0; ewram16100arr2(0, battlerId) = 0; ewram16100arr2(1, battlerId) = 0; ewram16100arr2(2, battlerId) = 0; @@ -5334,7 +5334,7 @@ static void atk23_getexp(void) else { gBattleStruct->getexpStateTracker++; - gBattleStruct->unk16113 |= gBitTable[gBattlerPartyIndexes[gBank1]]; + gBattleStruct->givenExpMons |= gBitTable[gBattlerPartyIndexes[gBank1]]; } break; case 1: // calculate experience points to redistribute @@ -6673,7 +6673,7 @@ void atk49_moveend(void) } if (gBattleMoves[gChosenMove].effect != 0x7F || (gMoveResultFlags & 0x29)) - gUnknown_02024C2C[gBattlerAttacker] = gChosenMove; + gLastPrintedMoves[gBattlerAttacker] = gChosenMove; if (!(gAbsentBattlerFlags & gBitTable[gBattlerAttacker]) && !(gSharedMem[0x160A6] & gBitTable[gBattlerAttacker]) @@ -6682,12 +6682,12 @@ void atk49_moveend(void) if (gHitMarker & HITMARKER_OBEYS) { gLastMoves[gBattlerAttacker] = gChosenMove; - gUnknown_02024C4C[gBattlerAttacker] = gCurrentMove; + gLastResultingMoves[gBattlerAttacker] = gCurrentMove; } else { gLastMoves[gBattlerAttacker] = 0xFFFF; - gUnknown_02024C4C[gBattlerAttacker] = 0xFFFF; + gLastResultingMoves[gBattlerAttacker] = 0xFFFF; } if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget))) @@ -9574,7 +9574,7 @@ static void atk74_hpthresholds2(void) { gActiveBattler = GetBattlerForBattleScript(T2_READ_8(gBattlescriptCurrInstr + 1)); opposing_bank = gActiveBattler ^ 1; - hp_switchout = ewram160BCarr(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)]; + hp_switchout = eHpOnSwitchout(GetBattlerSide(opposing_bank)); //gBattleStruct->HP_OnSwitchout[GetBattlerSide(opposing_bank)]; result = (hp_switchout - gBattleMons[opposing_bank].hp) * 100 / hp_switchout; if (gBattleMons[opposing_bank].hp >= hp_switchout) @@ -9666,7 +9666,7 @@ static void atk76_various(void) static void atk77_setprotectlike(void) //protect and endure { bool8 not_last_turn = 1; - u16 last_move = gUnknown_02024C4C[gBattlerAttacker]; + u16 last_move = gLastResultingMoves[gBattlerAttacker]; if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE) gDisableStructs[gBattlerAttacker].protectUses = 0; @@ -9788,7 +9788,7 @@ static void atk7B_tryhealhalfhealth(void) static void atk7C_trymirrormove(void) { - u16 r7 = ewram160ACarr2(0, gBattlerAttacker) | (ewram160ACarr2(1, gBattlerAttacker) << 8); + u16 r7 = eLastTakenMove_2d(0, gBattlerAttacker) | (eLastTakenMove_2d(1, gBattlerAttacker) << 8); u16 r6 = ewram16100arr2(0, gBattlerAttacker) | (ewram16100arr2(1, gBattlerAttacker) << 8); u16 r5 = ewram16100arr2(2, gBattlerAttacker) | (ewram16100arr2(3, gBattlerAttacker) << 8); @@ -11867,14 +11867,14 @@ struct move_pp static void atkA8_copymovepermanently(void) { gChosenMove = 0xFFFF; - if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) && gUnknown_02024C2C[gBattlerTarget] != MOVE_STRUGGLE && gUnknown_02024C2C[gBattlerTarget] != 0 && gUnknown_02024C2C[gBattlerTarget] != 0xFFFF && gUnknown_02024C2C[gBattlerTarget] != MOVE_SKETCH) + if (!(gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) && gLastPrintedMoves[gBattlerTarget] != MOVE_STRUGGLE && gLastPrintedMoves[gBattlerTarget] != 0 && gLastPrintedMoves[gBattlerTarget] != 0xFFFF && gLastPrintedMoves[gBattlerTarget] != MOVE_SKETCH) { int i; for (i = 0; i < 4; i++) { if (gBattleMons[gBattlerAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBattlerAttacker].moves[i] == gUnknown_02024C2C[gBattlerTarget]) + if (gBattleMons[gBattlerAttacker].moves[i] == gLastPrintedMoves[gBattlerTarget]) break; } if (i != 4) //sketch fail @@ -11882,8 +11882,8 @@ static void atkA8_copymovepermanently(void) else //sketch worked { struct move_pp moves_data; - gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gUnknown_02024C2C[gBattlerTarget]; - gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknown_02024C2C[gBattlerTarget]].pp; + gBattleMons[gBattlerAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBattlerTarget]; + gBattleMons[gBattlerAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBattlerTarget]].pp; gActiveBattler = gBattlerAttacker; for (i = 0; i < 4; i++) { @@ -11895,8 +11895,8 @@ static void atkA8_copymovepermanently(void) MarkBattlerForControllerExec(gActiveBattler); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gUnknown_02024C2C[gBattlerTarget]; - gBattleTextBuff1[3] = gUnknown_02024C2C[gBattlerTarget] >> 8; + gBattleTextBuff1[2] = gLastPrintedMoves[gBattlerTarget]; + gBattleTextBuff1[3] = gLastPrintedMoves[gBattlerTarget] >> 8; gBattleTextBuff1[4] = 0xFF; gBattlescriptCurrInstr += 5; } @@ -13376,7 +13376,7 @@ void atkEF_handleballthrow(void) u32 odds; u8 catch_rate; if (gLastUsedItem == ITEM_SAFARI_BALL) - catch_rate = gBattleStruct->unk16089 * 1275 / 100; //correct the name to safariFleeRate + catch_rate = gBattleStruct->safariCatchFactor * 1275 / 100; //correct the name to safariFleeRate else catch_rate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate; if (gLastUsedItem > 5) diff --git a/src/battle_util.c b/src/battle_util.c index b1260cd4e..4f8a0b036 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1303,7 +1303,7 @@ bool8 HandleFaintedMonActions(void) do { gBank1 = gBattlerTarget = gBattleStruct->unk1605A; - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->unk16113 & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) + if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) { BattleScriptExecute(BattleScript_GiveExp); gBattleStruct->sub80173A4_Tracker = 2; @@ -2003,14 +2003,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_FLASH_FIRE: if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS1_FREEZE)) { - if (!(eFlashFireArr.arr[bank] & 1)) + if (!(eBattleFlagsArr.arr[bank] & 1)) { gBattleCommunication[MULTISTRING_CHOOSER] = 0; if (gProtectStructs[gBattlerAttacker].notFirstStrike) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; - eFlashFireArr.arr[bank] |= 1; + eBattleFlagsArr.arr[bank] |= 1; effect = 2; } else diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index 760887834..c15b94d8f 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -330,7 +330,7 @@ s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *de } // flash fire triggered - if ((eFlashFireArr.arr[bankAtk] & 1) && type == TYPE_FIRE) + if ((eBattleFlagsArr.arr[bankAtk] & 1) && type == TYPE_FIRE) damage = (15 * damage) / 10; } diff --git a/src/choose_party.c b/src/choose_party.c index f1252f965..5ed637910 100644 --- a/src/choose_party.c +++ b/src/choose_party.c @@ -23,7 +23,7 @@ extern u8 gPlayerPartyCount; extern u8 gLastFieldPokeMenuOpened; extern u8 gUnknown_020384F0; -extern struct UnknownPokemonStruct2 gMultiPartnerParty[3]; +extern struct MultiBattlePokemonTx gMultiPartnerParty[3]; extern u8 gUnknown_0202E8F6; extern const u16 gBattleTowerBannedSpecies[]; diff --git a/src/contest_link_80C2020.c b/src/contest_link_80C2020.c index e14880ee0..6f176e2b0 100644 --- a/src/contest_link_80C2020.c +++ b/src/contest_link_80C2020.c @@ -727,8 +727,8 @@ static void sub_80C2E14(u8 taskId) sub_810FB10(2); Contest_SaveWinner(gSpecialVar_ContestRank); Contest_SaveWinner(0xFE); - ewram15DDF = 1; - ewram15DDE = sub_80B2C4C(0xfe, 0); + gBattleStruct->contestWinnerIsForArtist = 1; + gBattleStruct->contestWinnerSaveIdx = sub_80B2C4C(0xfe, 0); BeginHardwarePaletteFade(0xff, 0, 0, 16, 0); gTasks[taskId].func = sub_80C2EA0; } diff --git a/src/contest_painting.c b/src/contest_painting.c index ae683d267..59ffd2353 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -108,8 +108,8 @@ void sub_8106630(u32 contestWinnerId) { // probably fakematching struct ContestWinner *ptr1 = (struct ContestWinner*)&ewram15DE0; // TODO: resolve messy struct duplicates - u8 *ptr2 = (u8*)&ewram15DDE; - u8 *ptr3 = (u8*)&ewram15DDF; + u8 *ptr2 = (u8*)&gBattleStruct->contestWinnerSaveIdx; + u8 *ptr3 = (u8*)&gBattleStruct->contestWinnerIsForArtist; *ptr1 = gSaveBlock1.contestWinners[contestWinnerId - 1]; *ptr2 = contestWinnerId - 1; *ptr3 = 0; @@ -143,15 +143,15 @@ static void ShowContestPainting(void) case 2: SeedRng(gMain.vblankCounter1); InitKeys(); - ContestPaintingInitWindow(ewram15DDF); + ContestPaintingInitWindow(gBattleStruct->contestWinnerIsForArtist); gMain.state++; break; case 3: - sub_8107090(ewram15DDE, ewram15DDF); + sub_8107090(gBattleStruct->contestWinnerSaveIdx, gBattleStruct->contestWinnerIsForArtist); gMain.state++; break; case 4: - ContestPaintingPrintCaption(ewram15DDE, ewram15DDF); + ContestPaintingPrintCaption(gBattleStruct->contestWinnerSaveIdx, gBattleStruct->contestWinnerIsForArtist); LoadPalette(gUnknown_083F6140, 0, 1 * 2); DmaClear32(3, PLTT, 0x400); BeginFastPaletteFade(2); diff --git a/src/debug/tomomichi_debug_menu.c b/src/debug/tomomichi_debug_menu.c index 64da15dc7..c4ce87f33 100644 --- a/src/debug/tomomichi_debug_menu.c +++ b/src/debug/tomomichi_debug_menu.c @@ -4477,38 +4477,38 @@ static void PrepareDebugOverlayBeforeShowingContestPainting(u8 a0) switch (a0) { case 0: - ewram15DDF = 0; - ewram15DDE = 0; + gBattleStruct->contestWinnerIsForArtist = 0; + gBattleStruct->contestWinnerSaveIdx = 0; contestEntry->contestType = sPicTest_ContestType - 1; StringCopy(contestEntry->trainer_name, sDummyTrainerName); StringCopy(contestEntry->pokemon_name, sDummyNickname); break; case 1: - ewram15DDF = 0; - ewram15DDE = 8; + gBattleStruct->contestWinnerIsForArtist = 0; + gBattleStruct->contestWinnerSaveIdx = 8; contestEntry->contestType = sPicTest_MuseumArtTitleType - 1; StringCopy(contestEntry->pokemon_name, sDummyNickname); break; case 2: - ewram15DDF = 1; - ewram15DDE = 8; + gBattleStruct->contestWinnerIsForArtist = 1; + gBattleStruct->contestWinnerSaveIdx = 8; contestEntry->contestType = sPicTest_PreviewType - 1; break; case 3: - ewram15DDF = 0; - ewram15DDE = 8; + gBattleStruct->contestWinnerIsForArtist = 0; + gBattleStruct->contestWinnerSaveIdx = 8; contestEntry->contestType = 0; StringCopy(contestEntry->pokemon_name, sDummyNickname); break; case 4: - ewram15DDF = 0; - ewram15DDE = 8; + gBattleStruct->contestWinnerIsForArtist = 0; + gBattleStruct->contestWinnerSaveIdx = 8; contestEntry->contestType = 3; StringCopy(contestEntry->pokemon_name, sDummyNickname); break; case 5: - ewram15DDF = 0; - ewram15DDE = 8; + gBattleStruct->contestWinnerIsForArtist = 0; + gBattleStruct->contestWinnerSaveIdx = 8; contestEntry->contestType = 9; StringCopy(contestEntry->pokemon_name, sDummyNickname); break; diff --git a/src/party_menu.c b/src/party_menu.c index b5b00c947..8a3ce81d1 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -2828,7 +2828,7 @@ void unref_sub_806D964(u8 taskId) TryCreatePartyMenuMonIcon(taskId, i, &gPlayerParty[i]); } -void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon) +void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct MultiBattlePokemonTx *pokemon) { u8 x = gUnknown_08376678[menuType][monIndex].x; u8 y = gUnknown_08376678[menuType][monIndex].y; diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 17f0aa768..2d0ee9cfb 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -1077,27 +1077,27 @@ void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord) for (i = 0; i < 6; i++) { - if (eSecretBaseRecord->partySpecies[i]) + if (eSecretBaseRecord->party.species[i]) { CreateMon(&gEnemyParty[i], - eSecretBaseRecord->partySpecies[i], - eSecretBaseRecord->partyLevels[i], + eSecretBaseRecord->party.species[i], + eSecretBaseRecord->party.levels[i], 15, 1, - eSecretBaseRecord->partyPersonality[i], + eSecretBaseRecord->party.personality[i], 2, 0); // these two SetMonData calls require the (u8 *) cast since SetMonData is declared in this function. - SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, (u8 *)&eSecretBaseRecord->partyHeldItems[i]); + SetMonData(&gEnemyParty[i], MON_DATA_HELD_ITEM, (u8 *)&eSecretBaseRecord->party.heldItems[i]); for (j = 0; j < 6; j++) - SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &eSecretBaseRecord->partyEVs[i]); + SetMonData(&gEnemyParty[i], MON_DATA_HP_EV + j, &eSecretBaseRecord->party.EVs[i]); for (j = 0; j < 4; j++) { - SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, (u8 *)&eSecretBaseRecord->partyMoves[i * 4 + j]); - SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[eSecretBaseRecord->partyMoves[i * 4 + j]].pp); + SetMonData(&gEnemyParty[i], MON_DATA_MOVE1 + j, (u8 *)&eSecretBaseRecord->party.moves[i * 4 + j]); + SetMonData(&gEnemyParty[i], MON_DATA_PP1 + j, &gBattleMoves[eSecretBaseRecord->party.moves[i * 4 + j]].pp); } } } @@ -1188,6 +1188,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex) { s32 i; s8 nickname[POKEMON_NAME_LENGTH * 2]; + u16 * hpSwitchout; gBattleMons[battleIndex].species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL); gBattleMons[battleIndex].item = GetMonData(&gPlayerParty[partyIndex], MON_DATA_HELD_ITEM, NULL); @@ -1226,7 +1227,9 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex) GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, nickname); StringCopy10(gBattleMons[battleIndex].nickname, nickname); GetMonData(&gPlayerParty[partyIndex], MON_DATA_OT_NAME, gBattleMons[battleIndex].otName); - ewram160BC[GetBattlerSide(battleIndex)] = gBattleMons[battleIndex].hp; + + hpSwitchout = &gBattleStruct->HP_OnSwitchout[GetBattlerSide(battleIndex)]; + *hpSwitchout = gBattleMons[battleIndex].hp; for (i = 0; i < 8; i++) gBattleMons[battleIndex].statStages[i] = 6; diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index ad18b3594..e6a1081cc 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -201,7 +201,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank) { if (GetBattlerSide(bank)) { - if (!ewram17800[bank].substituteSprite) + if (!gBattleSpriteInfo[bank].substituteSprite) BattleLoadOpponentMonSprite(&gEnemyParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteSprite(bank, 0); @@ -210,7 +210,7 @@ static bool8 LoadAppropiateBankSprite(u8 bank) LoadPlayerTrainerBankSprite(gSaveBlock2.playerGender, 0); else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) LoadPlayerTrainerBankSprite(2, 0); - else if (!ewram17800[bank].substituteSprite) + else if (!gBattleSpriteInfo[bank].substituteSprite) BattleLoadPlayerMonSprite(&gPlayerParty[gBattlerPartyIndexes[bank]], bank); else BattleLoadSubstituteSprite(bank, 0); @@ -226,7 +226,7 @@ static void sub_807B184(u8 bank) { u8 posY; - if (ewram17800[bank].substituteSprite) + if (gBattleSpriteInfo[bank].substituteSprite) posY = sub_8077F7C(bank); else posY = sub_8077F68(bank); @@ -274,7 +274,7 @@ static void sub_807B184(u8 bank) gSprites[gBattlerSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBattlerSpriteIds[bank]], gBattleMonForms[bank]); } - gSprites[gBattlerSpriteIds[bank]].invisible = ewram17800[bank].invisible; + gSprites[gBattlerSpriteIds[bank]].invisible = gBattleSpriteInfo[bank].invisible; } } diff --git a/src/script_pokemon_util_80C4BF0.c b/src/script_pokemon_util_80C4BF0.c index c405d9cb4..4ccc59540 100644 --- a/src/script_pokemon_util_80C4BF0.c +++ b/src/script_pokemon_util_80C4BF0.c @@ -222,8 +222,8 @@ void ShowContestWinner(void) if(gUnknown_0203856C) { sub_80AAF30(); - gBattleStruct->unk15DDF = 1; - gBattleStruct->unk15DDE = sub_80B2C4C(254, 0); + gBattleStruct->contestWinnerIsForArtist = 1; + gBattleStruct->contestWinnerSaveIdx = sub_80B2C4C(254, 0); Contest_SaveWinner(3); gUnknown_0203856C = 0; } diff --git a/src/secret_base.c b/src/secret_base.c index b37da51d1..cf09a7544 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -147,13 +147,13 @@ void ClearSecretBase(struct SecretBaseRecord *record) record->playerName[i] = 0xff; for (i = 0; i < 4; i++) record->trainerId[i] = 0x00; - record->sbr_field_e = 0; - record->sbr_field_10 = 0; - record->sbr_field_11 = 0; - record->sbr_field_1_0 = 0; + record->numSecretBasesReceived = 0; + record->numTimesEntered = 0; + record->unused = 0; + record->toRegister = 0; record->gender = 0; - record->sbr_field_1_5 = 0; - record->sbr_field_1_6 = 0; + record->battledOwnerToday = 0; + record->registryStatus = 0; for (i = 0; i < 16; i++) { record->decorations[i] = 0; @@ -162,12 +162,12 @@ void ClearSecretBase(struct SecretBaseRecord *record) for (i = 0; i < 6; i++) { for (j = 0; j < 4; j++) - record->partyMoves[i * 4 + j] = 0; - record->partyPersonality[i] = 0; - record->partyEVs[i] = 0; - record->partySpecies[i] = 0; - record->partyHeldItems[i] = 0; - record->partyLevels[i] = 0; + record->party.moves[i * 4 + j] = 0; + record->party.personality[i] = 0; + record->party.EVs[i] = 0; + record->party.species[i] = 0; + record->party.heldItems[i] = 0; + record->party.levels[i] = 0; } } @@ -373,8 +373,8 @@ void sub_80BBA48(u8 taskid) break; case 2: curbaseid = VarGet(VAR_CURRENT_SECRET_BASE); - if (gSaveBlock1.secretBases[curbaseid].sbr_field_10 < 0xff) - gSaveBlock1.secretBases[curbaseid].sbr_field_10++; + if (gSaveBlock1.secretBases[curbaseid].numTimesEntered < 0xff) + gSaveBlock1.secretBases[curbaseid].numTimesEntered++; sub_80BBA14(); WarpIntoMap(); gFieldCallback = sub_8080990; @@ -660,7 +660,7 @@ void BufferSecretBaseOwnerName(void) bool8 sub_80BC268(u8 i) { - if (gSaveBlock1.secretBases[i].sbr_field_1_6) + if (gSaveBlock1.secretBases[i].registryStatus) return TRUE; else return FALSE; @@ -686,24 +686,24 @@ void SetPlayerSecretBaseRecordMixingParty(void) { u16 j; for (j = 0; j < 4; j++) - record->partyMoves[i * 4 + j] = MOVE_NONE; + record->party.moves[i * 4 + j] = MOVE_NONE; - record->partySpecies[i] = SPECIES_NONE; - record->partyHeldItems[i] = ITEM_NONE; - record->partyLevels[i] = 0; - record->partyPersonality[i] = 0; - record->partyEVs[i] = 0; + record->party.species[i] = SPECIES_NONE; + record->party.heldItems[i] = ITEM_NONE; + record->party.levels[i] = 0; + record->party.personality[i] = 0; + record->party.EVs[i] = 0; if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) { for (j = 0; j < 4; j++) - record->partyMoves[secretBasePartyIndex * 4 + j] = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j); + record->party.moves[secretBasePartyIndex * 4 + j] = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1 + j); - record->partySpecies[secretBasePartyIndex] = GetMonData(&(gPlayerParty[i]), MON_DATA_SPECIES); - record->partyHeldItems[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); - record->partyLevels[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); - record->partyPersonality[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); - record->partyEVs[secretBasePartyIndex] = CalculateMonAverageEVs(&gPlayerParty[i]); + record->party.species[secretBasePartyIndex] = GetMonData(&(gPlayerParty[i]), MON_DATA_SPECIES); + record->party.heldItems[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + record->party.levels[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); + record->party.personality[secretBasePartyIndex] = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY); + record->party.EVs[secretBasePartyIndex] = CalculateMonAverageEVs(&gPlayerParty[i]); secretBasePartyIndex++; } } @@ -711,9 +711,9 @@ void SetPlayerSecretBaseRecordMixingParty(void) void sub_80BC440(void) { - u16 backupValue = gSaveBlock1.secretBases[0].sbr_field_e; + u16 backupValue = gSaveBlock1.secretBases[0].numSecretBasesReceived; ResetSecretBase(0); - gSaveBlock1.secretBases[0].sbr_field_e = backupValue; + gSaveBlock1.secretBases[0].numSecretBasesReceived = backupValue; sub_80BC0F8(); } @@ -760,9 +760,9 @@ void MoveSecretBase(void) sub_80BC474(); IncrementGameStat(GAME_STAT_MOVED_SECRET_BASE); - backupValue = gSaveBlock1.secretBases[0].sbr_field_e; + backupValue = gSaveBlock1.secretBases[0].numSecretBasesReceived; ResetSecretBase(0); - gSaveBlock1.secretBases[0].sbr_field_e = backupValue; + gSaveBlock1.secretBases[0].numSecretBasesReceived = backupValue; } u8 sub_80BC538(void) @@ -790,7 +790,7 @@ void GetCurSecretBaseRegistrationValidity(void) void ToggleCurSecretBaseRegistry(void) { - gSaveBlock1.secretBases[sub_80BC14C(gCurrentSecretBaseId)].sbr_field_1_6 ^= 1; + gSaveBlock1.secretBases[sub_80BC14C(gCurrentSecretBaseId)].registryStatus ^= 1; FlagSet(FLAG_SECRET_BASE_REGISTRY_ENABLED); } @@ -1045,7 +1045,7 @@ void sub_80BCB10(u8 taskId) Menu_EraseWindowRect(0, 0, 29, 19); - gSaveBlock1.secretBases[taskData[4]].sbr_field_1_6 = 0; + gSaveBlock1.secretBases[taskData[4]].registryStatus = 0; taskData[0]--; if (taskData[2] > 0) @@ -1128,12 +1128,12 @@ void unref_sub_80BCD7C(u8 secretBaseIndex) for (i = 0; i < 1; i++) { - gSaveBlock1.secretBases[secretBaseIndex].partyPersonality[i] = i + 1; - gSaveBlock1.secretBases[secretBaseIndex].partyMoves[i * 4] = i + 1; - gSaveBlock1.secretBases[secretBaseIndex].partySpecies[i] = SPECIES_TREECKO; - gSaveBlock1.secretBases[secretBaseIndex].partyHeldItems[i] = i + 1; - gSaveBlock1.secretBases[secretBaseIndex].partyLevels[i] = i + 5; - gSaveBlock1.secretBases[secretBaseIndex].partyEVs[i] = i * 5; + gSaveBlock1.secretBases[secretBaseIndex].party.personality[i] = i + 1; + gSaveBlock1.secretBases[secretBaseIndex].party.moves[i * 4] = i + 1; + gSaveBlock1.secretBases[secretBaseIndex].party.species[i] = SPECIES_TREECKO; + gSaveBlock1.secretBases[secretBaseIndex].party.heldItems[i] = i + 1; + gSaveBlock1.secretBases[secretBaseIndex].party.levels[i] = i + 5; + gSaveBlock1.secretBases[secretBaseIndex].party.EVs[i] = i * 5; } } @@ -1147,7 +1147,7 @@ void sub_80BCE1C(void) void sub_80BCE4C() { - gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].sbr_field_1_5 = gSpecialVar_Result; + gSaveBlock1.secretBases[VarGet(VAR_CURRENT_SECRET_BASE)].battledOwnerToday = gSpecialVar_Result; } void sub_80BCE90() @@ -1159,13 +1159,13 @@ void sub_80BCE90() u8 i; for (i = 0; i < MAX_SECRET_BASES; i++) - gSaveBlock1.secretBases[i].sbr_field_1_5 = 0; + gSaveBlock1.secretBases[i].battledOwnerToday = 0; FlagSet(FLAG_DAILY_UNKNOWN_8C2); } gSpecialVar_0x8004 = GetSecretBaseOwnerType(curBaseIndex); - gSpecialVar_Result = gSaveBlock1.secretBases[curBaseIndex].sbr_field_1_5; + gSpecialVar_Result = gSaveBlock1.secretBases[curBaseIndex].battledOwnerToday; } void sub_80BCF1C(u8 taskId) @@ -1208,7 +1208,7 @@ void sub_80BCF1C(u8 taskId) void sub_80BD034(u8 i, struct SecretBaseRecord *secretBase) { gSaveBlock1.secretBases[i] = *secretBase; - gSaveBlock1.secretBases[i].sbr_field_1_6 = 2; + gSaveBlock1.secretBases[i].registryStatus = 2; } bool8 sub_80BD070(struct SecretBaseRecord *baseA, struct SecretBaseRecord *baseB) @@ -1277,7 +1277,7 @@ u8 sub_80BD1B0(void) for (i = 1; i < MAX_SECRET_BASES; i++) { - if (gSaveBlock1.secretBases[i].sbr_field_1_6 == 0 && gSaveBlock1.secretBases[i].sbr_field_1_0 == 0) + if (gSaveBlock1.secretBases[i].registryStatus == 0 && gSaveBlock1.secretBases[i].toRegister == 0) return i; } @@ -1296,10 +1296,10 @@ u8 sub_80BD1FC(struct SecretBaseRecord *secretBase) { if (secretBaseIndex != -1) { - if (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_1_0 == 1) + if (gSaveBlock1.secretBases[secretBaseIndex].toRegister == 1) return 0; - if (gSaveBlock1.secretBases[secretBaseIndex].sbr_field_1_6 != 2 - || secretBase->sbr_field_1_0 == 1) + if (gSaveBlock1.secretBases[secretBaseIndex].registryStatus != 2 + || secretBase->toRegister == 1) { sub_80BD034(secretBaseIndex, secretBase); return secretBaseIndex; @@ -1336,8 +1336,8 @@ void sub_80BD280(void) { for (j = i + 1; j < MAX_SECRET_BASES; j++) { - if ((!secretBases[i].sbr_field_1_6 && secretBases[j].sbr_field_1_6 == 1) - || (secretBases[i].sbr_field_1_6 == 2 && secretBases[j].sbr_field_1_6 != 2)) + if ((!secretBases[i].registryStatus && secretBases[j].registryStatus == 1) + || (secretBases[i].registryStatus == 2 && secretBases[j].registryStatus != 2)) { temp = secretBases[i]; secretBases[i] = secretBases[j]; @@ -1353,7 +1353,7 @@ void sub_80BD328(struct SecretBaseRecord *secretBases, u8 b) for (i = 1; i < MAX_SECRET_BASES; i++) { - if (secretBases[i].sbr_field_1_6 == b) + if (secretBases[i].registryStatus == b) sub_80BD1FC(&secretBases[i]); } } @@ -1439,13 +1439,13 @@ bool8 sub_80BD494(struct SecretBaseRecord *base, struct SecretBaseRecord *secret return FALSE; } - if (base->sbr_field_e > secretBases[i].sbr_field_e) + if (base->numSecretBasesReceived > secretBases[i].numSecretBasesReceived) { ClearSecretBase(&secretBases[i]); return FALSE; } - secretBases[i].sbr_field_1_0 = base->sbr_field_1_0; + secretBases[i].toRegister = base->toRegister; ClearSecretBase(base); return TRUE; @@ -1464,8 +1464,8 @@ void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases { if (basesA[i].secretBaseId) { - if (basesA[i].sbr_field_1_6 == 1) - basesA[i].sbr_field_1_0 = 1; + if (basesA[i].registryStatus == 1) + basesA[i].toRegister = 1; if (!sub_80BD494(&basesA[i], basesB, i)) { @@ -1479,7 +1479,7 @@ void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases { if (basesB[i].secretBaseId) { - basesB[i].sbr_field_1_5 = 0; + basesB[i].battledOwnerToday = 0; if (!sub_80BD494(&basesB[i], basesC, i)) sub_80BD494(&basesB[i], basesD, i); @@ -1490,12 +1490,12 @@ void sub_80BD514(struct SecretBaseRecord *basesA, struct SecretBaseRecord *bases { if (basesC[i].secretBaseId) { - basesC[i].sbr_field_1_5 = 0; + basesC[i].battledOwnerToday = 0; sub_80BD494(&basesC[i], basesD, i); } if (basesD[i].secretBaseId) - basesD[i].sbr_field_1_5 = 0; + basesD[i].battledOwnerToday = 0; } } @@ -1557,10 +1557,10 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) for (i = 1; i < MAX_SECRET_BASES; i++) { - if (gSaveBlock1.secretBases[i].sbr_field_1_0 == 1) + if (gSaveBlock1.secretBases[i].toRegister == 1) { - gSaveBlock1.secretBases[i].sbr_field_1_6 = 1; - gSaveBlock1.secretBases[i].sbr_field_1_0 = 0; + gSaveBlock1.secretBases[i].registryStatus = 1; + gSaveBlock1.secretBases[i].toRegister = 0; } } @@ -1568,11 +1568,11 @@ void sub_80BD674(void *playerRecords, u32 size, u8 c) for (i = 1; i < MAX_SECRET_BASES; i++) { - if (gSaveBlock1.secretBases[i].sbr_field_1_6 == 2) - gSaveBlock1.secretBases[i].sbr_field_1_6 = 0; + if (gSaveBlock1.secretBases[i].registryStatus == 2) + gSaveBlock1.secretBases[i].registryStatus = 0; } - if (gSaveBlock1.secretBases[0].sbr_field_e != 0xFFFF) - gSaveBlock1.secretBases[0].sbr_field_e++; + if (gSaveBlock1.secretBases[0].numSecretBasesReceived != 0xFFFF) + gSaveBlock1.secretBases[0].numSecretBasesReceived++; } } |