diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle/anim/battle_intro.c | 8 | ||||
-rw-r--r-- | src/battle_bg.c | 26 | ||||
-rw-r--r-- | src/battle_controller_opponent.c | 5 | ||||
-rw-r--r-- | src/battle_controller_player.c | 66 | ||||
-rw-r--r-- | src/battle_main.c | 68 | ||||
-rw-r--r-- | src/battle_message.c | 145 | ||||
-rw-r--r-- | src/battle_party_menu.c | 23 | ||||
-rw-r--r-- | src/battle_script_commands.c | 12 | ||||
-rw-r--r-- | src/battle_util.c | 46 | ||||
-rw-r--r-- | src/decompress.c | 10 | ||||
-rw-r--r-- | src/pokemon_3.c | 24 | ||||
-rw-r--r-- | src/pokemon_storage_system.c | 3 | ||||
-rw-r--r-- | src/save_menu_util.c | 2 |
13 files changed, 207 insertions, 231 deletions
diff --git a/src/battle/anim/battle_intro.c b/src/battle/anim/battle_intro.c index e432701f4..8d257c5e1 100644 --- a/src/battle/anim/battle_intro.c +++ b/src/battle/anim/battle_intro.c @@ -402,10 +402,10 @@ static void BattleIntroTask_80E4C34(u8 taskId) if (gTasks[taskId].tBgXOffset == 0) { gTasks[taskId].tState++; - gSprites[gBattleStruct->unk1608A].oam.objMode = 2; - gSprites[gBattleStruct->unk1608A].callback = sub_800FE20; - gSprites[gBattleStruct->unk1608B].oam.objMode = 2; - gSprites[gBattleStruct->unk1608B].callback = sub_800FE20; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].oam.objMode = 2; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].callback = sub_800FE20; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.objMode = 2; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].callback = sub_800FE20; REG_WININ = 0x3F; REG_WINOUT = 0x3F06; } diff --git a/src/battle_bg.c b/src/battle_bg.c index 97c463fa9..e3b890f0d 100644 --- a/src/battle_bg.c +++ b/src/battle_bg.c @@ -592,10 +592,10 @@ void InitLinkBattleVsScreen(u8 taskId) case 1: palette = AllocSpritePalette(10000); gPlttBufferUnfaded[palette * 16 + 0x10f] = gPlttBufferFaded[palette * 16 + 0x10f] = 0x7fff; - gBattleStruct->unk1608A = CreateSprite(&gSpriteTemplate_81F9574, 108, 80, 0); - gBattleStruct->unk1608B = CreateSprite(&gSpriteTemplate_81F958C, 132, 80, 0); - gSprites[gBattleStruct->unk1608A].invisible = TRUE; - gSprites[gBattleStruct->unk1608B].invisible = TRUE; + gBattleStruct->linkBattleVsSpriteId_V = CreateSprite(&gSpriteTemplate_81F9574, 108, 80, 0); + gBattleStruct->linkBattleVsSpriteId_S = CreateSprite(&gSpriteTemplate_81F958C, 132, 80, 0); + gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = TRUE; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = TRUE; gTasks[taskId].data[0]++; break; @@ -620,15 +620,15 @@ void InitLinkBattleVsScreen(u8 taskId) } PlaySE(SE_M_HARDEN); DestroyTask(taskId); - gSprites[gBattleStruct->unk1608A].invisible = FALSE; - gSprites[gBattleStruct->unk1608B].invisible = FALSE; - gSprites[gBattleStruct->unk1608B].oam.tileNum += 0x40; - gSprites[gBattleStruct->unk1608A].data[0] = 0; - gSprites[gBattleStruct->unk1608B].data[0] = 1; - gSprites[gBattleStruct->unk1608A].data[1] = gSprites[gBattleStruct->unk1608A].x; - gSprites[gBattleStruct->unk1608B].data[1] = gSprites[gBattleStruct->unk1608B].x; - gSprites[gBattleStruct->unk1608A].data[2] = 0; - gSprites[gBattleStruct->unk1608B].data[2] = 0; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].invisible = FALSE; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].invisible = FALSE; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].oam.tileNum += 0x40; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[0] = 0; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[0] = 1; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_V].x; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[1] = gSprites[gBattleStruct->linkBattleVsSpriteId_S].x; + gSprites[gBattleStruct->linkBattleVsSpriteId_V].data[2] = 0; + gSprites[gBattleStruct->linkBattleVsSpriteId_S].data[2] = 0; } break; } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index f45e80198..1481ca220 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -1430,11 +1430,6 @@ void OpponentHandlecmd19(void) OpponentBufferExecCompleted(); } -struct ChooseMoveStruct -{ - u16 moves[4]; -}; - #if DEBUG NAKED void OpponentHandlecmd20(void) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index f2f5cf38f..6f61f29b1 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -68,7 +68,7 @@ extern u16 gIntroSlideFlags; extern u8 gUnknown_02024E68[]; extern struct SpriteTemplate gCreatingSpriteTemplate; extern u8 gAnimMoveTurn; -extern u8 gUnknown_02038470[]; +extern u8 gBattlePartyCurrentOrder[]; extern u8 gUnknown_03004344; extern u8 gUnknown_0300434C[]; @@ -76,7 +76,6 @@ extern const u8 BattleText_OtherMenu[]; extern const u8 BattleText_MenuOptions[]; extern const u8 BattleText_PP[]; -extern void sub_802C68C(void); extern void sub_802E1B0(void); extern void sub_802E220(); extern void sub_802E2D4(); @@ -151,7 +150,7 @@ extern struct MusicPlayerInfo gMPlayInfo_BGM; extern u8 gUnknown_0300434C[]; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; -extern u8 gUnknown_02038470[]; +extern u8 gBattlePartyCurrentOrder[]; extern u16 gSpecialVar_ItemId; extern u8 gDisplayedStringBattle[]; extern const u8 BattleText_LinkStandby[]; @@ -292,7 +291,7 @@ void (*const gPlayerBufferCommands[])(void) = void PlayerBufferRunCommand(void); void sub_802C2EC(void); -void sub_802C68C(void); +static void HandleAction_ChooseMove(void); void sub_802CA60(void); void sub_802D730(void); void sub_802DA9C(u8); @@ -496,7 +495,7 @@ void sub_802C2EC(void) { PlaySE(SE_SELECT); gSprites[gBattlerSpriteIds[gUnknown_03004344]].callback = sub_8010574; - gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = HandleAction_ChooseMove; dp11b_obj_instanciate(gActiveBattler, 1, 7, 1); dp11b_obj_instanciate(gActiveBattler, 0, 7, 1); dp11b_obj_free(gUnknown_03004344, 1); @@ -595,21 +594,11 @@ void sub_802C2EC(void) } } -struct ChooseMoveStruct -{ - u16 moves[4]; - u8 pp[4]; - u8 unkC[0x12-0xC]; - u8 unk12; - u8 effectStringId; - u8 filler14[0x20-0x14]; -}; - const u8 gUnknown_081FAE80[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW WHITE LIGHT_BLUE WHITE2}"); void debug_sub_8030C24(void); -void sub_802C68C(void) +static void HandleAction_ChooseMove(void) { u32 r8 = 0; #if DEBUG @@ -624,7 +613,12 @@ void sub_802C68C(void) PlaySE(SE_SELECT); if (r6->moves[gMoveSelectionCursor[gActiveBattler]] == MOVE_CURSE) - r4 = (r6->unk12 != TYPE_GHOST && (r6->effectStringId ^ 7)) ? 0x10 : 0; + { + if (r6->monType1 != TYPE_GHOST && r6->monType2 != TYPE_GHOST) + r4 = MOVE_TARGET_USER; + else + r4 = MOVE_TARGET_SELECTED; + } else r4 = gBattleMoves[r6->moves[gMoveSelectionCursor[gActiveBattler]]].target; @@ -642,7 +636,7 @@ void sub_802C68C(void) { if (!(r4 & 0x7D)) r8++; - if (r6->pp[gMoveSelectionCursor[gActiveBattler]] == 0) + if (r6->currentPp[gMoveSelectionCursor[gActiveBattler]] == 0) { r8 = 0; } @@ -810,13 +804,13 @@ void sub_802CA60(void) r9->moves[gMoveSelectionCursor[gActiveBattler]] = r9->moves[gUnknown_03004344]; r9->moves[gUnknown_03004344] = i; - i = r9->pp[gMoveSelectionCursor[gActiveBattler]]; - r9->pp[gMoveSelectionCursor[gActiveBattler]] = r9->pp[gUnknown_03004344]; - r9->pp[gUnknown_03004344] = i; + i = r9->currentPp[gMoveSelectionCursor[gActiveBattler]]; + r9->currentPp[gMoveSelectionCursor[gActiveBattler]] = r9->currentPp[gUnknown_03004344]; + r9->currentPp[gUnknown_03004344] = i; - i = r9->unkC[gMoveSelectionCursor[gActiveBattler]]; - r9->unkC[gMoveSelectionCursor[gActiveBattler]] = r9->unkC[gUnknown_03004344]; - r9->unkC[gUnknown_03004344] = i; + i = r9->maxPp[gMoveSelectionCursor[gActiveBattler]]; + r9->maxPp[gMoveSelectionCursor[gActiveBattler]] = r9->maxPp[gUnknown_03004344]; + r9->maxPp[gUnknown_03004344] = i; if (gDisableStructs[gActiveBattler].mimickedMoves & gBitTable[gMoveSelectionCursor[gActiveBattler]]) { @@ -840,7 +834,7 @@ void sub_802CA60(void) for (i = 0; i < 4; i++) { gBattleMons[gActiveBattler].moves[i] = r9->moves[i]; - gBattleMons[gActiveBattler].pp[i] = r9->pp[i]; + gBattleMons[gActiveBattler].pp[i] = r9->currentPp[i]; } if (!(gBattleMons[gActiveBattler].status2 & 0x200000)) { @@ -882,7 +876,7 @@ void sub_802CA60(void) { sub_802E12C(gUnknown_03004344, BattleText_Format); } - gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = HandleAction_ChooseMove; gMoveSelectionCursor[gActiveBattler] = gUnknown_03004344; sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); Text_FillWindowRect(&gWindowTemplate_Contest_MoveDescription, 0x1016, 0x17, 0x37, 0x1C, 0x3A); @@ -897,7 +891,7 @@ void sub_802CA60(void) nullsub_7(gUnknown_03004344); sub_802E3B4(gMoveSelectionCursor[gActiveBattler], 0); sub_802E12C(gMoveSelectionCursor[gActiveBattler], BattleText_Format); - gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = HandleAction_ChooseMove; Text_FillWindowRect(&gWindowTemplate_Contest_MoveDescription, 0x1016, 0x17, 0x37, 0x1C, 0x3A); Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, BattleText_PP, 0x290, 0x17, 0x37); Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); @@ -1105,7 +1099,7 @@ void debug_sub_8030C24(void) (i < 2) ? 0x37 : 0x39); Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); } - gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = HandleAction_ChooseMove; } } @@ -1529,7 +1523,7 @@ void sub_802DF88(void) if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { if (gUnknown_0202E8F4 == 1) - BtlController_EmitChosenMonReturnValue(1, gUnknown_0202E8F5, gUnknown_02038470); + BtlController_EmitChosenMonReturnValue(1, gUnknown_0202E8F5, gBattlePartyCurrentOrder); else BtlController_EmitChosenMonReturnValue(1, 6, NULL); if ((gBattleBufferA[gActiveBattler][1] & 0xF) == 1) @@ -1629,9 +1623,9 @@ void sub_802E220(void) str[1] = 0x14; str[2] = 6; str += 3; - str = ConvertIntToDecimalStringN(str, r4->pp[gMoveSelectionCursor[gActiveBattler]], 1, 2); + str = ConvertIntToDecimalStringN(str, r4->currentPp[gMoveSelectionCursor[gActiveBattler]], 1, 2); *str++ = CHAR_SLASH; - ConvertIntToDecimalStringN(str, r4->unkC[gMoveSelectionCursor[gActiveBattler]], 1, 2); + ConvertIntToDecimalStringN(str, r4->maxPp[gMoveSelectionCursor[gActiveBattler]], 1, 2); Text_InitWindow(&gWindowTemplate_Contest_MoveDescription, gDisplayedStringBattle, 0x2A2, 0x19, 0x37); Text_PrintWindow8002F44(&gWindowTemplate_Contest_MoveDescription); } @@ -2641,7 +2635,7 @@ void PlayerHandlecmd20(void) { MenuCursor_Create814A5C0(0, 0xFFFF, 12, 0x2D9F, 0); sub_80304A8(); - gBattlerControllerFuncs[gActiveBattler] = sub_802C68C; + gBattlerControllerFuncs[gActiveBattler] = HandleAction_ChooseMove; } void sub_80304A8(void) @@ -2668,7 +2662,7 @@ void PlayerHandleOpenBag(void) gBattlerControllerFuncs[gActiveBattler] = sub_802E004; gBankInMenu = gActiveBattler; for (i = 0; i < 3; i++) - gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][1 + i]; + gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][1 + i]; } void PlayerHandlecmd22(void) @@ -2677,11 +2671,11 @@ void PlayerHandlecmd22(void) gUnknown_0300434C[gActiveBattler] = CreateTask(TaskDummy, 0xFF); gTasks[gUnknown_0300434C[gActiveBattler]].data[0] = gBattleBufferA[gActiveBattler][1] & 0xF; - gBattleStruct->unk16054 = gBattleBufferA[gActiveBattler][1] >> 4; + gBattleStruct->battlerPreventingSwitchout = gBattleBufferA[gActiveBattler][1] >> 4; gBattleStruct->unk1609D = gBattleBufferA[gActiveBattler][2]; - gBattleStruct->unk160C0 = gBattleBufferA[gActiveBattler][3]; + gBattleStruct->abilityPreventingSwitchout = gBattleBufferA[gActiveBattler][3]; for (i = 0; i < 3; i++) - gUnknown_02038470[i] = gBattleBufferA[gActiveBattler][4 + i]; + gBattlePartyCurrentOrder[i] = gBattleBufferA[gActiveBattler][4 + i]; BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB(0, 0, 0)); gBattlerControllerFuncs[gActiveBattler] = sub_802DF30; gBankInMenu = gActiveBattler; diff --git a/src/battle_main.c b/src/battle_main.c index 1b8e75cda..69c8fd36f 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -113,7 +113,7 @@ extern u8 gBattleOutcome; extern u16 gIntroSlideFlags; extern u8 gActionSelectionCursor[]; extern u8 gMoveSelectionCursor[]; -extern u8 gUnknown_02038470[]; +extern u8 gBattlePartyCurrentOrder[]; MainCallback gPreBattleCallback1; u8 gUnknown_03004344; u8 gUnknown_03004348; @@ -645,7 +645,7 @@ void sub_800F104(void) if ((GetBlockReceivedStatus() & 0xF) == 0xF) { //s32 i; - + // Get your multi battle partner's party ResetBlockReceivedFlags(); for (i = 0; i < 4; i++) { @@ -3943,7 +3943,7 @@ void sub_80119B4(void) MarkBattlerForControllerExec(gActiveBattler); } } - gBattleStruct->unk16058 = 0; + gBattleStruct->switchInAbilitiesCounter = 0; gBattleStruct->unk160F9 = 0; gBattleStruct->unk160E6 = 0; gBattleMainFunc = BattleBeginFirstTurn; @@ -3962,7 +3962,7 @@ void unref_sub_8011A68(void) MarkBattlerForControllerExec(gActiveBattler); } } - gBattleStruct->unk16058 = 0; + gBattleStruct->switchInAbilitiesCounter = 0; gBattleStruct->unk160F9 = 0; gBattleStruct->unk160E6 = 0; gBattleMainFunc = BattleBeginFirstTurn; @@ -3977,7 +3977,7 @@ void BattleBeginFirstTurn(void) if (gBattleControllerExecFlags == 0) { - if (gBattleStruct->unk16058 == 0) + if (gBattleStruct->switchInAbilitiesCounter == 0) { for (i = 0; i < gBattlersCount; i++) gBattlerByTurnOrder[i] = i; @@ -3995,11 +3995,11 @@ void BattleBeginFirstTurn(void) gBattleStruct->unk160E6 = 1; return; } - while (gBattleStruct->unk16058 < gBattlersCount) + while (gBattleStruct->switchInAbilitiesCounter < gBattlersCount) { - if (AbilityBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->unk16058], 0, 0, 0) != 0) + if (AbilityBattleEffects(0, gBattlerByTurnOrder[gBattleStruct->switchInAbilitiesCounter], 0, 0, 0) != 0) r9++; - gBattleStruct->unk16058++; + gBattleStruct->switchInAbilitiesCounter++; if (r9 != 0) return; } @@ -4038,7 +4038,7 @@ void BattleBeginFirstTurn(void) gBattleStruct->wishPerishSongState = 0; gBattleStruct->wishPerishSongBattlerId = 0; gBattleStruct->cmd49StateTracker = 0; - gBattleStruct->sub80173A4_Tracker = 0; + gBattleStruct->faintedActionsState = 0; gBattleStruct->turnCountersTracker = 0; gMoveResultFlags = 0; gRandomTurnNumber = Random(); @@ -4083,7 +4083,7 @@ void BattleTurnPassed(void) } if (HandleFaintedMonActions() != 0) return; - gBattleStruct->sub80173A4_Tracker = 0; + gBattleStruct->faintedActionsState = 0; if (HandleWishPerishSongOnTurnEnd() != 0) return; TurnValuesCleanUp(0); @@ -4186,7 +4186,7 @@ void sub_8012258(u8 a) u8 r1; for (i = 0; i < 3; i++) - gUnknown_02038470[i] = gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3]; + gBattlePartyCurrentOrder[i] = gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3]; r4 = pokemon_order_func(gBattlerPartyIndexes[a]); r1 = pokemon_order_func(gSharedMem[BSTRUCT_OFF(monToSwitchIntoId) + a]); sub_8094C98(r4, r1); @@ -4194,15 +4194,16 @@ void sub_8012258(u8 a) { for (i = 0; i < 3; i++) { - gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3] = gUnknown_02038470[i]; - gSharedMem[BSTRUCT_OFF(unk1606C) + i + (a ^ BIT_FLANK) * 3] = gUnknown_02038470[i]; + gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3] = gBattlePartyCurrentOrder[i]; + gSharedMem[BSTRUCT_OFF(unk1606C) + i + (a ^ BIT_FLANK) * 3] = + gBattlePartyCurrentOrder[i]; } } else { for (i = 0; i < 3; i++) { - gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3] = gUnknown_02038470[i]; + gSharedMem[BSTRUCT_OFF(unk1606C) + i + a * 3] = gBattlePartyCurrentOrder[i]; } } } @@ -4280,8 +4281,8 @@ void sub_8012324(void) if (AreAllMovesUnusable()) { gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; - gSharedMem[BSTRUCT_OFF(unk16060) + gActiveBattler] = FALSE; - gSharedMem[BSTRUCT_OFF(unk16094) + gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; + gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gActiveBattler] = FALSE; + gSharedMem[BSTRUCT_OFF(stateIdAfterSelScript) + gActiveBattler] = STATE_WAIT_ACTION_CONFIRMED_STANDBY; gSharedMem[BSTRUCT_OFF(moveTarget) + gActiveBattler] = gBattleBufferB[gActiveBattler][3]; return; } @@ -4293,14 +4294,7 @@ void sub_8012324(void) } else { - struct ChooseMoveStruct { - u16 moves[4]; - u8 currentPp[4]; - u8 maxPp[4]; - u16 species; - u8 monType1; - u8 monType2; - } moveInfo; + struct ChooseMoveStruct moveInfo; moveInfo.species = gBattleMons[gActiveBattler].species; moveInfo.monType1 = gBattleMons[gActiveBattler].type1; @@ -4327,8 +4321,8 @@ void sub_8012324(void) { gSelectionBattleScripts[gActiveBattler] = BattleScript_ActionSelectionItemsCantBeUsed; gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; - gSharedMem[BSTRUCT_OFF(unk16060) + gActiveBattler] = FALSE; - gSharedMem[BSTRUCT_OFF(unk16094) + gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; + gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gActiveBattler] = FALSE; + gSharedMem[BSTRUCT_OFF(stateIdAfterSelScript) + gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; return; } else @@ -4369,8 +4363,8 @@ void sub_8012324(void) { gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintFullBox; gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; - gSharedMem[BSTRUCT_OFF(unk16060) + gActiveBattler] = FALSE; - gSharedMem[BSTRUCT_OFF(unk16094) + gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; + gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gActiveBattler] = FALSE; + gSharedMem[BSTRUCT_OFF(stateIdAfterSelScript) + gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; return; } break; @@ -4398,8 +4392,8 @@ void sub_8012324(void) { gSelectionBattleScripts[gActiveBattler] = BattleScript_PrintCantEscapeFromBattle; gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; - gSharedMem[BSTRUCT_OFF(unk16060) + gActiveBattler] = FALSE; - gSharedMem[BSTRUCT_OFF(unk16094) + gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; + gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gActiveBattler] = FALSE; + gSharedMem[BSTRUCT_OFF(stateIdAfterSelScript) + gActiveBattler] = STATE_BEFORE_ACTION_CHOSEN; return; } else @@ -4433,9 +4427,9 @@ void sub_8012324(void) else if (TrySetCantSelectMoveBattleScript()) { gBattleCommunication[gActiveBattler] = STATE_SELECTION_SCRIPT; - gSharedMem[BSTRUCT_OFF(unk16060) + gActiveBattler] = FALSE; + gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gActiveBattler] = FALSE; gBattleBufferB[gActiveBattler][1] = 0; - gSharedMem[BSTRUCT_OFF(unk16094) + gActiveBattler] = STATE_WAIT_ACTION_CHOSEN; + gSharedMem[BSTRUCT_OFF(stateIdAfterSelScript) + gActiveBattler] = STATE_WAIT_ACTION_CHOSEN; return; } else @@ -4538,9 +4532,9 @@ void sub_8012324(void) } break; case STATE_SELECTION_SCRIPT: - if (gSharedMem[BSTRUCT_OFF(unk16060) + gActiveBattler]) + if (gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gActiveBattler]) { - gBattleCommunication[gActiveBattler] = gSharedMem[BSTRUCT_OFF(unk16094) + gActiveBattler]; + gBattleCommunication[gActiveBattler] = gSharedMem[BSTRUCT_OFF(stateIdAfterSelScript) + gActiveBattler]; } else { @@ -4914,7 +4908,7 @@ static void RunTurnActionsFunctions(void) if (gBattleOutcome != 0) gCurrentActionFuncId = 12; - gBattleStruct->unk16057 = gCurrentTurnActionNumber; + gBattleStruct->savedTurnActionNumber = gCurrentTurnActionNumber; gUnknown_081FA640[gCurrentActionFuncId](); if (gCurrentTurnActionNumber >= gBattlersCount) // everyone did their actions, turn finished @@ -4924,7 +4918,7 @@ static void RunTurnActionsFunctions(void) } else { - if (gBattleStruct->unk16057 != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank + if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank { gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); @@ -5655,7 +5649,7 @@ void HandleAction_Action11(void) { if (!HandleFaintedMonActions()) { - gBattleStruct->sub80173A4_Tracker = 0; + gBattleStruct->faintedActionsState = 0; gCurrentActionFuncId = B_ACTION_FINISHED; } } diff --git a/src/battle_message.c b/src/battle_message.c index 5cecc6964..c15ce19e4 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -538,13 +538,13 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) while (*src != EOS) { - if (*src == 0xFD) + if (*src == B_BUFF_PLACEHOLDER_BEGIN) { src++; switch (*src) { - case 0: - if (gBattleTextBuff1[0] == 0xFD) + case B_TXT_BUFF1: + if (gBattleTextBuff1[0] == B_BUFF_PLACEHOLDER_BEGIN) { ExpandBattleTextBuffPlaceholders(gBattleTextBuff1, gStringVar1); toCpy = gStringVar1; @@ -552,12 +552,12 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) else { toCpy = TryGetStatusString(gBattleTextBuff1); - if (toCpy == 0) + if (toCpy == NULL) toCpy = gBattleTextBuff1; } break; - case 1: - if (gBattleTextBuff2[0] == 0xFD) + case B_TXT_BUFF2: + if (gBattleTextBuff2[0] == B_BUFF_PLACEHOLDER_BEGIN) { ExpandBattleTextBuffPlaceholders(gBattleTextBuff2, gStringVar2); toCpy = gStringVar2; @@ -565,8 +565,8 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) else toCpy = gBattleTextBuff2; break; - case 42: - if (gBattleTextBuff3[0] == 0xFD) + case B_TXT_BUFF3: + if (gBattleTextBuff3[0] == B_BUFF_PLACEHOLDER_BEGIN) { ExpandBattleTextBuffPlaceholders(gBattleTextBuff3, gStringVar3); toCpy = gStringVar3; @@ -574,50 +574,50 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) else toCpy = gBattleTextBuff3; break; - case 2: // first player poke name + case B_TXT_PLAYER_MON1_NAME: // first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(0)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 3: // first enemy poke name + case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(1)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 4: // second player poke name + case B_TXT_PLAYER_MON2_NAME: // second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(2)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 5: // second enemy poke name + case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[GetBattlerAtPosition(3)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 6: // link first player poke name + case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 7: // link first opponent poke name + case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 1]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 8: // link second player poke name + case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name GetMonData(&gPlayerParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 9: // link second opponent poke name + case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name GetMonData(&gEnemyParty[gBattlerPartyIndexes[gLinkPlayers[multiplayerID].id ^ 3]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; - case 10: // attacker name with prefix, only bank 0/1 + case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) & 1)]) break; - case 11: // attacker partner name, only bank 0/1 + case B_TXT_ATK_PARTNER_NAME: // attacker partner name, only bank 0/1 if (GetBattlerSide(gBattlerAttacker) == 0) GetMonData(&gPlayerParty[gBattlerPartyIndexes[GetBattlerAtPosition(GetBattlerPosition(gBattlerAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); else @@ -626,34 +626,34 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) StringGetEnd10(text); toCpy = text; break; - case 12: // attacker name with prefix + case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix HANDLE_NICKNAME_STRING_CASE(gBattlerAttacker, gBattlerPartyIndexes[gBattlerAttacker]) break; - case 13: // target name with prefix + case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix HANDLE_NICKNAME_STRING_CASE(gBattlerTarget, gBattlerPartyIndexes[gBattlerTarget]) break; - case 14: // effect bank name with prefix + case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix HANDLE_NICKNAME_STRING_CASE(gEffectBattler, gBattlerPartyIndexes[gEffectBattler]) break; - case 15: // active bank name with prefix + case B_TXT_ACTIVE_NAME_WITH_PREFIX: // active bank name with prefix HANDLE_NICKNAME_STRING_CASE(gActiveBattler, gBattlerPartyIndexes[gActiveBattler]) break; - case 16: // scripting active bank name with prefix + case B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX: // scripting active bank name with prefix HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattlerPartyIndexes[gBattleStruct->scriptingActive]) break; - case 17: // current move name - if (gStringInfo->currentMove > 0x162) + case B_TXT_CURRENT_MOVE: // current move name + if (gStringInfo->currentMove >= NUM_MOVES) toCpy = (void*) &gUnknown_08401674[gBattleStruct->stringMoveType]; else toCpy = gMoveNames[gStringInfo->currentMove]; break; - case 18: // last used move name - if (gStringInfo->lastMove > 0x162) + case B_TXT_LAST_MOVE: // last used move name + if (gStringInfo->lastMove >= NUM_MOVES) toCpy = (void*) &gUnknown_08401674[gBattleStruct->stringMoveType]; else toCpy = gMoveNames[gStringInfo->lastMove]; break; - case 19: // last used item + case B_TXT_LAST_ITEM: // last used item if (gBattleTypeFlags & BATTLE_TYPE_LINK) { if (gLastUsedItem == ITEM_ENIGMA_BERRY) @@ -683,22 +683,22 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = text; } break; - case 20: // last used ability + case B_TXT_LAST_ABILITY: // last used ability toCpy = gAbilityNames[gLastUsedAbility]; break; - case 21: // attacker ability + case B_TXT_ATK_ABILITY: // attacker ability toCpy = gAbilityNames[gAbilitiesPerBank[gBattlerAttacker]]; break; - case 22: // target ability + case B_TXT_DEF_ABILITY: // target ability toCpy = gAbilityNames[gAbilitiesPerBank[gBattlerTarget]]; break; - case 23: // scripting active ability + case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability toCpy = gAbilityNames[gAbilitiesPerBank[gBattleStruct->scriptingActive]]; break; - case 24: // effect bank ability + case B_TXT_EFF_ABILITY: // effect bank ability toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBattler]]; break; - case 25: // trainer class name + case B_TXT_TRAINER1_CLASS: // trainer class name #ifdef ENGLISH if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT) toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()]; @@ -720,7 +720,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) toCpy = de_sub_8041024(0, gTrainerBattleOpponent); break; #endif - case 26: // trainer name + case B_TXT_TRAINER1_NAME: // trainer name if (gTrainerBattleOpponent == SECRET_BASE_OPPONENT) { memset(text, 0xFF, 8); @@ -740,67 +740,67 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) else toCpy = gTrainers[gTrainerBattleOpponent].trainerName; break; - case 27: // link player name? + case B_TXT_LINK_PLAYER_NAME: // link player name? toCpy = gLinkPlayers[multiplayerID].name; break; - case 28: // link partner name? + case B_TXT_LINK_PARTNER_NAME: // link partner name? toCpy = gLinkPlayers[sub_803FC34(2 ^ gLinkPlayers[multiplayerID].id)].name; break; - case 29: // link opponent 1 name? + case B_TXT_LINK_OPPONENT1_NAME: // link opponent 1 name? toCpy = gLinkPlayers[sub_803FC34(1 ^ gLinkPlayers[multiplayerID].id)].name; break; - case 30: // link opponent 2 name? + case B_TXT_LINK_OPPONENT2_NAME: // link opponent 2 name? toCpy = gLinkPlayers[sub_803FC34(3 ^ gLinkPlayers[multiplayerID].id)].name; break; - case 31: // link scripting active name + case B_TXT_LINK_SCR_TRAINER_NAME: // link scripting active name toCpy = gLinkPlayers[sub_803FC34(gBattleStruct->scriptingActive)].name; break; - case 32: // player name + case B_TXT_PLAYER_NAME: // player name toCpy = gSaveBlock2.playerName; break; - case 33: // ? + case B_TXT_TRAINER1_LOSE_TEXT: // ? toCpy = GetTrainerLoseText(); break; - case 34: // ? + case B_TXT_22: // ? HANDLE_NICKNAME_STRING_CASE(gBattleStruct->scriptingActive, gBattleStruct->unk1605E) break; - case 35: // lanette pc + case B_TXT_PC_CREATOR_NAME: // lanette pc if (FlagGet(FLAG_SYS_PC_LANETTE)) toCpy = BattleText_Lanette; else toCpy = BattleText_Someone; break; - case 38: + case B_TXT_ATK_PREFIX2: if (GetBattlerSide(gBattlerAttacker) == 0) toCpy = BattleText_Ally2; else toCpy = BattleText_Foe3; break; - case 39: + case B_TXT_DEF_PREFIX2: if (GetBattlerSide(gBattlerTarget) == 0) toCpy = BattleText_Ally2; else toCpy = BattleText_Foe3; break; - case 36: + case B_TXT_ATK_PREFIX1: if (GetBattlerSide(gBattlerAttacker) == 0) toCpy = BattleText_Ally; else toCpy = BattleText_Foe2; break; - case 37: + case B_TXT_DEF_PREFIX1: if (GetBattlerSide(gBattlerTarget) == 0) toCpy = BattleText_Ally; else toCpy = BattleText_Foe2; break; - case 40: + case B_TXT_ATK_PREFIX3: if (GetBattlerSide(gBattlerAttacker) == 0) toCpy = BattleText_Ally3; else toCpy = BattleText_Foe4; break; - case 41: + case B_TXT_DEF_PREFIX3: if (GetBattlerSide(gBattlerTarget) == 0) toCpy = BattleText_Ally3; else @@ -814,11 +814,11 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) dstID++; toCpy++; } - if (*src == 33) + if (*src == B_TXT_TRAINER1_LOSE_TEXT) { - dst[dstID] = 0xFC; + dst[dstID] = EXT_CTRL_CODE_BEGIN; dstID++; - dst[dstID] = 9; + dst[dstID] = EXT_CTRL_CODE_PAUSE_UNTIL_PRESS; dstID++; } } @@ -834,9 +834,6 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) return dstID; } -#define ByteRead16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) -#define ByteRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) - void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) { u32 srcID = 1; @@ -849,8 +846,8 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) { switch (src[srcID]) { - case 0: // battle string - hword = ByteRead16(&src[srcID + 1]); + case B_BUFF_STRING: // battle string + hword = T1_READ_16(&src[srcID + 1]); #ifdef GERMAN if (hword == 209 || hword == 211) srcID += 3; @@ -858,31 +855,31 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) StringAppend(dst, gBattleStringsTable[hword - BATTLESTRING_TO_SUB]); srcID += 3; break; - case 1: // int to string + case B_BUFF_NUMBER: // int to string switch (src[srcID + 1]) { case 1: - value = src[srcID + 3]; + value = T1_READ_8(&src[srcID + 3]); break; case 2: - value = ByteRead16(&src[srcID + 3]); + value = T1_READ_16(&src[srcID + 3]); break; case 4: - value = ByteRead32(&src[srcID + 3]); + value = T1_READ_32(&src[srcID + 3]); break; } ConvertIntToDecimalStringN(dst, value, 0, src[srcID + 2]); srcID += src[srcID + 1] + 3; break; - case 2: // move name - StringAppend(dst, gMoveNames[ByteRead16(&src[srcID + 1])]); + case B_BUFF_MOVE: // move name + StringAppend(dst, gMoveNames[T1_READ_16(&src[srcID + 1])]); srcID += 3; break; - case 3: // type name + case B_BUFF_TYPE: // type name StringAppend(dst, gTypeNames[src[srcID + 1]]); srcID += 2; break; - case 4: // poke nick with prefix + case B_BUFF_MON_NICK_WITH_PREFIX: // poke nick with prefix #ifdef ENGLISH if (GetBattlerSide(src[srcID + 1]) == 0) { @@ -918,15 +915,15 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) #endif srcID += 3; break; - case 5: // stats + case B_BUFF_STAT: // stats StringAppend(dst, gUnknown_08400F58[src[srcID + 1]]); srcID += 2; break; - case 6: // species name - GetSpeciesName(dst, ByteRead16(&src[srcID + 1])); + case B_BUFF_SPECIES: // species name + GetSpeciesName(dst, T1_READ_16(&src[srcID + 1])); srcID += 3; break; - case 7: // poke nick without prefix + case B_BUFF_MON_NICK: // poke nick without prefix if (GetBattlerSide(src[srcID + 1]) == 0) GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); else @@ -934,17 +931,17 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst) StringGetEnd10(dst); srcID += 3; break; - case 8: // flavour table + case B_BUFF_NEGATIVE_FLAVOR: // flavour table StringAppend(dst, gUnknown_08400F78[src[srcID + 1]]); srcID += 2; break; - case 9: // ability names + case B_BUFF_ABILITY: // ability names StringAppend(dst, gAbilityNames[src[srcID + 1]]); srcID += 2; break; - case 10: // item name + case B_BUFF_ITEM: // item name { - hword = ByteRead16(&src[srcID + 1]); + hword = T1_READ_16(&src[srcID + 1]); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { if (hword == ITEM_ENIGMA_BERRY) diff --git a/src/battle_party_menu.c b/src/battle_party_menu.c index 044914037..a1389ddff 100644 --- a/src/battle_party_menu.c +++ b/src/battle_party_menu.c @@ -20,13 +20,16 @@ #include "text.h" #include "ewram.h" +EWRAM_DATA u8 gBattlePartyCurrentOrder[3] = {}; +EWRAM_DATA u8 gUnknown_02038473 = 0; + extern u8 sub_806BD58(u8, u8); extern void PartyMenuPrintMonsLevelOrStatus(void); extern void nullsub_13(void); extern void sub_802E414(void); extern void sub_80A6DCC(void); extern u8 *sub_8040D08(); -extern void sub_8040B8C(void); +extern void SetMonPreventsSwitchingString(void); extern void nullsub_14(); extern u8 sub_803FBBC(void); @@ -37,8 +40,6 @@ extern u8 gBankInMenu; extern u8 gUnknown_0202E8F4; extern u8 gUnknown_0202E8F5; extern u8 gPartyMenuMessage_IsPrinting; -extern u8 gUnknown_02038470[3]; -extern u8 gUnknown_02038473; extern u8 gUnknown_020384F0; extern void (*gPokemonItemUseCallback)(); //don't know types yet extern struct PokemonStorage gPokemonStorage; @@ -89,7 +90,7 @@ void unref_sub_8094940(struct PokemonStorage *ptr) void sub_8094958(void) { - sub_8094998(gUnknown_02038470, sub_803FBBC()); + sub_8094998(gBattlePartyCurrentOrder, sub_803FBBC()); } void sub_8094978(u8 arg1, u8 arg2) @@ -239,9 +240,9 @@ u8 sub_8094C20(u8 monIndex) monIndex /= 2; if (val) - retVal = gUnknown_02038470[monIndex] & 0xF; + retVal = gBattlePartyCurrentOrder[monIndex] & 0xF; else - retVal = gUnknown_02038470[monIndex] >> 4; + retVal = gBattlePartyCurrentOrder[monIndex] >> 4; return retVal; } @@ -251,9 +252,9 @@ void sub_8094C54(u8 a, u8 b) a /= 2; if (val) - gUnknown_02038470[a] = (gUnknown_02038470[a] & 0xF0) | b; + gBattlePartyCurrentOrder[a] = (gBattlePartyCurrentOrder[a] & 0xF0) | b; else - gUnknown_02038470[a] = (gUnknown_02038470[a] & 0xF) | (b << 4); + gBattlePartyCurrentOrder[a] = (gBattlePartyCurrentOrder[a] & 0xF) | (b << 4); } void sub_8094C98(u8 a, u8 b) @@ -272,10 +273,10 @@ u8 pokemon_order_func(u8 a) for (i = 0, r2 = 0; i < 3; i++) { - if ((gUnknown_02038470[i] >> 4) == a) + if ((gBattlePartyCurrentOrder[i] >> 4) == a) return r2; r2++; - if ((gUnknown_02038470[i] & 0xF) == a) + if ((gBattlePartyCurrentOrder[i] & 0xF) == a) return r2; r2++; } @@ -698,7 +699,7 @@ static void Task_BattlePartyMenuShift(u8 taskId) if (gUnknown_02038473 == 4) { PartyMenuEraseMsgBoxAndFrame(); - sub_8040B8C(); + SetMonPreventsSwitchingString(); DisplayPartyMenuMessage(gStringVar4, 0); gTasks[taskId].func = Task_80954C0; return; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 254de3eb3..f1c1726a1 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -292,8 +292,6 @@ extern u8 BattleScript_GrudgeTakesPp[]; #define RecordAbilitySetField6(ability, fieldValue) \ (gLastUsedAbility = ability, gBattleCommunication[6] = fieldValue, RecordAbilityBattle(gBattlerTarget, ability)) -#define HP_ON_SWITCHOUT (((u16*)(ewram_addr + 0x160BC))) - static void atk00_attackcanceler(void); static void atk01_accuracycheck(void); static void atk02_attackstring(void); @@ -6017,7 +6015,7 @@ static void atk43_jumpifabilitypresent(void) static void atk44_endselectionscript(void) { - gSharedMem[BSTRUCT_OFF(unk16060) + gBattlerAttacker] = 1; + gSharedMem[BSTRUCT_OFF(selectionScriptFinished) + gBattlerAttacker] = 1; } static void atk45_playanimation(void) @@ -11524,10 +11522,10 @@ static void atkA5_painsplitdmgcalc(void) s32 hp_diff = (gBattleMons[gBattlerAttacker].hp + gBattleMons[gBattlerTarget].hp) / 2; s32 to_store = gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - hp_diff; - gSharedMem[BSTRUCT_OFF(unk16014) + 0] = sBYTE0_32(to_store); - gSharedMem[BSTRUCT_OFF(unk16014) + 1] = sBYTE1_32(to_store); - gSharedMem[BSTRUCT_OFF(unk16014) + 2] = sBYTE2_32(to_store); - gSharedMem[BSTRUCT_OFF(unk16014) + 3] = sBYTE3_32(to_store); + gSharedMem[BSTRUCT_OFF(painSplitHP) + 0] = sBYTE0_32(to_store); + gSharedMem[BSTRUCT_OFF(painSplitHP) + 1] = sBYTE1_32(to_store); + gSharedMem[BSTRUCT_OFF(painSplitHP) + 2] = sBYTE2_32(to_store); + gSharedMem[BSTRUCT_OFF(painSplitHP) + 3] = sBYTE3_32(to_store); gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hp_diff; gSpecialStatuses[gBattlerTarget].dmg = 0xFFFF; diff --git a/src/battle_util.c b/src/battle_util.c index 06f807d89..3d80fab2e 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1289,11 +1289,11 @@ bool8 HandleFaintedMonActions(void) do { int i; - switch (gBattleStruct->sub80173A4_Tracker) + switch (gBattleStruct->faintedActionsState) { case 0: - gBattleStruct->unk1605A = 0; - gBattleStruct->sub80173A4_Tracker++; + gBattleStruct->faintedActionsBattlerId = 0; + gBattleStruct->faintedActionsState++; for (i = 0; i < gBattlersCount; i++) { if (gAbsentBattlerFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) @@ -1302,54 +1302,54 @@ bool8 HandleFaintedMonActions(void) case 1: do { - gBank1 = gBattlerTarget = gBattleStruct->unk1605A; - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->unk1605A]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) + gBank1 = gBattlerTarget = gBattleStruct->faintedActionsBattlerId; + if (gBattleMons[gBattleStruct->faintedActionsBattlerId].hp == 0 && !(gBattleStruct->givenExpMons & gBitTable[gBattlerPartyIndexes[gBattleStruct->faintedActionsBattlerId]]) && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBattlerId])) { BattleScriptExecute(BattleScript_GiveExp); - gBattleStruct->sub80173A4_Tracker = 2; + gBattleStruct->faintedActionsState = 2; return 1; } - } while (++gBattleStruct->unk1605A != gBattlersCount); - gBattleStruct->sub80173A4_Tracker = 3; + } while (++gBattleStruct->faintedActionsBattlerId != gBattlersCount); + gBattleStruct->faintedActionsState = 3; break; case 2: sub_8015740(gBank1); - if (++gBattleStruct->unk1605A == gBattlersCount) - gBattleStruct->sub80173A4_Tracker = 3; + if (++gBattleStruct->faintedActionsBattlerId == gBattlersCount) + gBattleStruct->faintedActionsState = 3; else - gBattleStruct->sub80173A4_Tracker = 1; + gBattleStruct->faintedActionsState = 1; break; case 3: - gBattleStruct->unk1605A = 0; - gBattleStruct->sub80173A4_Tracker++; + gBattleStruct->faintedActionsBattlerId = 0; + gBattleStruct->faintedActionsState++; case 4: do { - gBank1 = gBattlerTarget = gBattleStruct->unk1605A; //or should banks be switched? - if (gBattleMons[gBattleStruct->unk1605A].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->unk1605A])) + gBank1 = gBattlerTarget = gBattleStruct->faintedActionsBattlerId; //or should banks be switched? + if (gBattleMons[gBattleStruct->faintedActionsBattlerId].hp == 0 && !(gAbsentBattlerFlags & gBitTable[gBattleStruct->faintedActionsBattlerId])) { BattleScriptExecute(BattleScript_HandleFaintedMon); - gBattleStruct->sub80173A4_Tracker = 5; + gBattleStruct->faintedActionsState = 5; return 1; } - } while (++gBattleStruct->unk1605A != gBattlersCount); - gBattleStruct->sub80173A4_Tracker = 6; + } while (++gBattleStruct->faintedActionsBattlerId != gBattlersCount); + gBattleStruct->faintedActionsState = 6; break; case 5: - if (++gBattleStruct->unk1605A == gBattlersCount) - gBattleStruct->sub80173A4_Tracker = 6; + if (++gBattleStruct->faintedActionsBattlerId == gBattlersCount) + gBattleStruct->faintedActionsState = 6; else - gBattleStruct->sub80173A4_Tracker = 4; + gBattleStruct->faintedActionsState = 4; break; case 6: if (AbilityBattleEffects(9, 0, 0, 0, 0) || AbilityBattleEffects(0xB, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(6, 0, 0, 0, 0)) return 1; - gBattleStruct->sub80173A4_Tracker++; + gBattleStruct->faintedActionsState++; break; case 7: break; } - } while (gBattleStruct->sub80173A4_Tracker != HandleFaintedMonActions_MAX_CASE); + } while (gBattleStruct->faintedActionsState != HandleFaintedMonActions_MAX_CASE); return 0; } diff --git a/src/decompress.c b/src/decompress.c index 7069facf7..40d602812 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -5,8 +5,6 @@ #include "text.h" #include "ewram.h" -#define WRAM ewram_addr // using gSharedMem doesn't match - void LZDecompressWram(const void *src, void *dest) { LZ77UnCompWram(src, dest); @@ -21,8 +19,8 @@ void LoadCompressedObjectPic(const struct CompressedSpriteSheet *src) { struct SpriteSheet dest; - LZ77UnCompWram(src->data, (void *)WRAM); - dest.data = (void *)WRAM; + LZ77UnCompWram(src->data, (void *)EWRAM); + dest.data = (void *)EWRAM; dest.size = src->size; dest.tag = src->tag; LoadSpriteSheet(&dest); @@ -43,8 +41,8 @@ void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src) { struct SpritePalette dest; - LZ77UnCompWram(src->data, (void *)WRAM); - dest.data = (void *)WRAM; + LZ77UnCompWram(src->data, (void *)EWRAM); + dest.data = (void *)EWRAM; dest.tag = src->tag; LoadSpritePalette(&dest); } diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 2e71154b9..43c9b0d41 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1298,22 +1298,22 @@ void BoxMonRestorePP(struct BoxPokemon *boxMon) } } -void sub_8040B8C(void) +void SetMonPreventsSwitchingString(void) { - gLastUsedAbility = gBattleStruct->unk160C0;; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gBattleStruct->unk16054; - gBattleTextBuff1[4] = EOS; - if (!GetBattlerSide(gBattleStruct->unk16054)) - gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->unk16054]); + gLastUsedAbility = gBattleStruct->abilityPreventingSwitchout;; + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MON_NICK_WITH_PREFIX; + gBattleTextBuff1[2] = gBattleStruct->battlerPreventingSwitchout; + gBattleTextBuff1[4] = B_BUFF_EOS; + if (GetBattlerSide(gBattleStruct->battlerPreventingSwitchout) == B_SIDE_PLAYER) + gBattleTextBuff1[3] = pokemon_order_func(gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]); else - gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->unk16054]; - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 4; + gBattleTextBuff1[3] = gBattlerPartyIndexes[gBattleStruct->battlerPreventingSwitchout]; + gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff2[1] = B_BUFF_MON_NICK_WITH_PREFIX; gBattleTextBuff2[2] = gBankInMenu; gBattleTextBuff2[3] = pokemon_order_func(gBattlerPartyIndexes[gBankInMenu]); - gBattleTextBuff2[4] = EOS; + gBattleTextBuff2[4] = B_BUFF_EOS; BattleStringExpandPlaceholders(BattleText_PreventedSwitch, gStringVar4); } diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index b589ffce5..a2f384406 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -22,9 +22,6 @@ void sub_809665C(void); void sub_80966F4(const u8 *sourceString, u16 x, u16 y); void sub_8096784(struct Sprite *sprite); -EWRAM_DATA struct PokemonStorage gPokemonStorage = {0}; -EWRAM_DATA u8 gUnknown_02038470[3] = {}; -EWRAM_DATA u8 gUnknown_02038473 = 0; EWRAM_DATA u8 gUnknown_02038474 = 0; EWRAM_DATA struct UnkPSSStruct_2002370 *gUnknown_02038478 = NULL; diff --git a/src/save_menu_util.c b/src/save_menu_util.c index ccf4d9f6f..9cb49c3bd 100644 --- a/src/save_menu_util.c +++ b/src/save_menu_util.c @@ -7,6 +7,8 @@ #include "string_util.h" #include "strings2.h" +EWRAM_DATA struct PokemonStorage gPokemonStorage = {0}; + void HandleDrawSaveWindowInfo(s16 left, s16 top) { u32 width = 12; |