more labelling and changes

This commit is contained in:
DizzyEggg
2017-11-26 14:17:02 +01:00
parent 9886eeb5d8
commit 8c30c42c36
9 changed files with 141 additions and 141 deletions
+1 -1
View File
@@ -197,7 +197,7 @@
struct StringInfoBattle struct StringInfoBattle
{ {
u16 currentMove; u16 currentMove;
u16 lastMove; u16 originallyUsedMove;
u16 lastItem; u16 lastItem;
u8 lastAbility; u8 lastAbility;
u8 scrActive; u8 scrActive;
+34 -34
View File
@@ -120,14 +120,14 @@ extern u32 gBattleExecBuffer;
extern u8 gMultiHitCounter; extern u8 gMultiHitCounter;
extern u8 gBattleMoveFlags; extern u8 gBattleMoveFlags;
extern s32 gBattleMoveDamage; extern s32 gBattleMoveDamage;
extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT];
extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT];
extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT];
extern u16 gTurnMovesHitWith[BATTLE_BANKS_COUNT]; extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024258[BATTLE_BANKS_COUNT]; extern u16 gLastHitByType[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024260[BATTLE_BANKS_COUNT]; extern u16 gLastMoves[BATTLE_BANKS_COUNT];
extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT];
extern u8 gTurnMovesHitBy[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT];
extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern u16 gSideAffecting[2]; extern u16 gSideAffecting[2];
@@ -2743,15 +2743,15 @@ static void BattleStartClearSetData(void)
gDisableStructs[i].isFirstTurn = 2; gDisableStructs[i].isFirstTurn = 2;
gUnknown_02024284[i] = 0; gUnknown_02024284[i] = 0;
gLastUsedMovesByBanks[i] = 0; gOriginallyLastMoves[i] = 0;
gTurnMovesHitWith[i] = 0; gLastLandedMoves[i] = 0;
gUnknown_02024258[i] = 0; gLastHitByType[i] = 0;
gUnknown_02024260[i] = 0; gLastMoves[i] = 0;
gTurnMovesHitBy[i] = 0xFF; gLastHitBy[i] = 0xFF;
gLockedMoves[i] = 0; gLockedMoves[i] = 0;
gUnknownMovesUsedByBanks[i] = 0; gOriginallyLastPrintedMoves[i] = 0;
gBattleResources->flags->flags[i] = 0; gBattleResources->flags->flags[i] = 0;
gUnknown_02024230[i] = 0; gSelectionBattleScripts[i] = 0;
} }
for (i = 0; i < 2; i++) for (i = 0; i < 2; i++)
@@ -2908,14 +2908,14 @@ void SwitchInClearSetData(void)
} }
gBattleMoveFlags = 0; gBattleMoveFlags = 0;
gDisableStructs[gActiveBank].isFirstTurn= 2; gDisableStructs[gActiveBank].isFirstTurn = 2;
gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit;
gLastUsedMovesByBanks[gActiveBank] = 0; gOriginallyLastMoves[gActiveBank] = 0;
gTurnMovesHitWith[gActiveBank] = 0; gLastLandedMoves[gActiveBank] = 0;
gUnknown_02024258[gActiveBank] = 0; gLastHitByType[gActiveBank] = 0;
gUnknown_02024260[gActiveBank] = 0; gLastMoves[gActiveBank] = 0;
gUnknownMovesUsedByBanks[gActiveBank] = 0; gOriginallyLastPrintedMoves[gActiveBank] = 0;
gTurnMovesHitBy[gActiveBank] = 0xFF; gLastHitBy[gActiveBank] = 0xFF;
*(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0;
*(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0;
@@ -3002,12 +3002,12 @@ void FaintClearSetData(void)
gDisableStructs[gActiveBank].isFirstTurn = 2; gDisableStructs[gActiveBank].isFirstTurn = 2;
gLastUsedMovesByBanks[gActiveBank] = 0; gOriginallyLastMoves[gActiveBank] = 0;
gTurnMovesHitWith[gActiveBank] = 0; gLastLandedMoves[gActiveBank] = 0;
gUnknown_02024258[gActiveBank] = 0; gLastHitByType[gActiveBank] = 0;
gUnknown_02024260[gActiveBank] = 0; gLastMoves[gActiveBank] = 0;
gUnknownMovesUsedByBanks[gActiveBank] = 0; gOriginallyLastPrintedMoves[gActiveBank] = 0;
gTurnMovesHitBy[gActiveBank] = 0xFF; gLastHitBy[gActiveBank] = 0xFF;
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0;
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0;
@@ -3189,7 +3189,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{ {
for (i = 0; i < 6; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
@@ -3207,7 +3207,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
EmitDrawPartyStatusSummary(0, hpStatus, 0x80); EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
for (i = 0; i < 6; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
@@ -5217,11 +5217,11 @@ static void HandleAction_UseMove(void)
gCurrentActionFuncId = 12; gCurrentActionFuncId = 12;
return; return;
} }
else if (gUnknown_02024230[gBankAttacker] != NULL) else if (gSelectionBattleScripts[gBankAttacker] != NULL)
{ {
gBattleCommunication[MULTISTRING_CHOOSER] = 4; gBattleCommunication[MULTISTRING_CHOOSER] = 4;
gBattlescriptCurrInstr = gUnknown_02024230[gBankAttacker]; gBattlescriptCurrInstr = gSelectionBattleScripts[gBankAttacker];
gUnknown_02024230[gBankAttacker] = NULL; gSelectionBattleScripts[gBankAttacker] = NULL;
} }
else else
{ {
@@ -5600,8 +5600,8 @@ static void HandleAction_ActionFinished(void)
gBattleMoveFlags = 0; gBattleMoveFlags = 0;
gBattleScripting.animTurn = 0; gBattleScripting.animTurn = 0;
gBattleScripting.animTargetsHit = 0; gBattleScripting.animTargetsHit = 0;
gTurnMovesHitWith[gBankAttacker] = 0; gLastLandedMoves[gBankAttacker] = 0;
gUnknown_02024258[gBankAttacker] = 0; gLastHitByType[gBankAttacker] = 0;
gBattleStruct->dynamicMoveType = 0; gBattleStruct->dynamicMoveType = 0;
gDynamicBasePower = 0; gDynamicBasePower = 0;
gBattleScripting.atk49_state = 0; gBattleScripting.atk49_state = 0;
+6 -6
View File
@@ -58,7 +58,7 @@ extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gCurrentMove; extern u16 gCurrentMove;
extern u8 gBankTarget; extern u8 gBankTarget;
extern u8 gAbsentBankFlags; extern u8 gAbsentBankFlags;
extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT];
extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B; extern u16 gTrainerBattleOpponent_B;
extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT];
@@ -633,12 +633,12 @@ static void RecordLastUsedMoveByTarget(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget])
break; break;
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastUsedMovesByBanks[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gOriginallyLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match.
&& gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0) && gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0)
{ {
gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastUsedMovesByBanks[gBankTarget]; gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gOriginallyLastMoves[gBankTarget];
break; break;
} }
} }
@@ -1252,9 +1252,9 @@ static void BattleAICmd_is_most_powerful_move(void)
static void BattleAICmd_get_last_used_bank_move(void) static void BattleAICmd_get_last_used_bank_move(void)
{ {
if (gAIScriptPtr[1] == AI_USER) if (gAIScriptPtr[1] == AI_USER)
AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[sBank_AI]; AI_THINKING_STRUCT->funcResult = gOriginallyLastMoves[sBank_AI];
else else
AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[gBankTarget]; AI_THINKING_STRUCT->funcResult = gOriginallyLastMoves[gBankTarget];
gAIScriptPtr += 2; gAIScriptPtr += 2;
} }
+16 -16
View File
@@ -16,8 +16,8 @@ extern u32 gBattleTypeFlags;
extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u16 gTurnMovesHitWith[BATTLE_BANKS_COUNT]; extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
extern u8 gTurnMovesHitBy[BATTLE_BANKS_COUNT]; extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
extern u16 gDynamicBasePower; extern u16 gDynamicBasePower;
extern u8 gBattleMoveFlags; extern u8 gBattleMoveFlags;
extern u8 gCritMultiplier; extern u8 gCritMultiplier;
@@ -141,11 +141,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0)
return FALSE; return FALSE;
if (gTurnMovesHitWith[gActiveBank] == 0) if (gLastLandedMoves[gActiveBank] == 0)
return FALSE; return FALSE;
if (gTurnMovesHitWith[gActiveBank] == 0xFFFF) if (gLastLandedMoves[gActiveBank] == 0xFFFF)
return FALSE; return FALSE;
if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0) if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0)
return FALSE; return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@@ -162,11 +162,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
bankIn2 = gActiveBank; bankIn2 = gActiveBank;
} }
if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_FIRE) if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_FIRE)
absorbingTypeAbility = ABILITY_FLASH_FIRE; absorbingTypeAbility = ABILITY_FLASH_FIRE;
else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_WATER) else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_WATER)
absorbingTypeAbility = ABILITY_WATER_ABSORB; absorbingTypeAbility = ABILITY_WATER_ABSORB;
else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].type == TYPE_ELECTRIC) else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_ELECTRIC)
absorbingTypeAbility = ABILITY_VOLT_ABSORB; absorbingTypeAbility = ABILITY_VOLT_ABSORB;
else else
return FALSE; return FALSE;
@@ -238,13 +238,13 @@ static bool8 ShouldSwitchIfNaturalCure(void)
if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2)
return FALSE; return FALSE;
if ((gTurnMovesHitWith[gActiveBank] == 0 || gTurnMovesHitWith[gActiveBank] == 0xFFFF) && Random() & 1) if ((gLastLandedMoves[gActiveBank] == 0 || gLastLandedMoves[gActiveBank] == 0xFFFF) && Random() & 1)
{ {
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
EmitTwoReturnValues(1, ACTION_SWITCH, 0); EmitTwoReturnValues(1, ACTION_SWITCH, 0);
return TRUE; return TRUE;
} }
else if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0 && Random() & 1) else if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0 && Random() & 1)
{ {
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
EmitTwoReturnValues(1, ACTION_SWITCH, 0); EmitTwoReturnValues(1, ACTION_SWITCH, 0);
@@ -345,13 +345,13 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
u16 move; u16 move;
u8 moveFlags; u8 moveFlags;
if (gTurnMovesHitWith[gActiveBank] == 0) if (gLastLandedMoves[gActiveBank] == 0)
return FALSE; return FALSE;
if (gTurnMovesHitWith[gActiveBank] == 0xFFFF) if (gLastLandedMoves[gActiveBank] == 0xFFFF)
return FALSE; return FALSE;
if (gTurnMovesHitBy[gActiveBank] == 0xFF) if (gLastHitBy[gActiveBank] == 0xFF)
return FALSE; return FALSE;
if (gBattleMoves[gTurnMovesHitWith[gActiveBank]].power == 0) if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0)
return FALSE; return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
else else
monAbility = gBaseStats[species].ability1; monAbility = gBaseStats[species].ability1;
moveFlags = AI_TypeCalc(gTurnMovesHitWith[gActiveBank], species, monAbility); moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBank], species, monAbility);
if (moveFlags & flags) if (moveFlags & flags)
{ {
bankIn1 = gTurnMovesHitBy[gActiveBank]; bankIn1 = gLastHitBy[gActiveBank];
for (j = 0; j < 4; j++) for (j = 0; j < 4; j++)
{ {
+2 -2
View File
@@ -1120,7 +1120,7 @@ void EmitPrintString(u8 bufferId, u16 stringID)
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove; stringInfo->currentMove = gCurrentMove;
stringInfo->lastMove = gOriginallyUsedMove; stringInfo->originallyUsedMove = gOriginallyUsedMove;
stringInfo->lastItem = gLastUsedItem; stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility; stringInfo->lastAbility = gLastUsedAbility;
stringInfo->scrActive = gBattleScripting.bank; stringInfo->scrActive = gBattleScripting.bank;
@@ -1152,7 +1152,7 @@ void EmitPrintSelectionString(u8 bufferId, u16 stringID)
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove; stringInfo->currentMove = gCurrentMove;
stringInfo->lastMove = gOriginallyUsedMove; stringInfo->originallyUsedMove = gOriginallyUsedMove;
stringInfo->lastItem = gLastUsedItem; stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility; stringInfo->lastAbility = gLastUsedAbility;
stringInfo->scrActive = gBattleScripting.bank; stringInfo->scrActive = gBattleScripting.bank;
+3 -3
View File
@@ -1916,11 +1916,11 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
else else
toCpy = gMoveNames[gStringInfo->currentMove]; toCpy = gMoveNames[gStringInfo->currentMove];
break; break;
case B_TXT_LAST_MOVE: // last used move name case B_TXT_LAST_MOVE: // originally used move name
if (gStringInfo->lastMove > LAST_MOVE_INDEX) if (gStringInfo->originallyUsedMove > LAST_MOVE_INDEX)
toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType]; toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType];
else else
toCpy = gMoveNames[gStringInfo->lastMove]; toCpy = gMoveNames[gStringInfo->originallyUsedMove];
break; break;
case B_TXT_LAST_ITEM: // last used item case B_TXT_LAST_ITEM: // last used item
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
+64 -64
View File
@@ -74,10 +74,10 @@ extern u8 gCurrentActionFuncId;
extern u32 gHitMarker; extern u32 gHitMarker;
extern u8 gBattleMoveFlags; extern u8 gBattleMoveFlags;
extern u8 gBattleCommunication[]; extern u8 gBattleCommunication[];
extern u16 gTurnMovesHitWith[4]; extern u16 gLastLandedMoves[4];
extern u16 gUnknown_02024258[4]; extern u16 gLastHitByType[4];
extern u16 gUnknown_02024260[4]; extern u16 gLastMoves[4];
extern u8 gTurnMovesHitBy[4]; extern u8 gLastHitBy[4];
extern u8 gStringBank; extern u8 gStringBank;
extern u16 gDynamicBasePower; extern u16 gDynamicBasePower;
extern u16 gLastUsedItem; extern u16 gLastUsedItem;
@@ -100,8 +100,8 @@ extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT];
extern u16 gPartnerTrainerId; extern u16 gPartnerTrainerId;
extern u16 gOriginallyUsedMove; extern u16 gOriginallyUsedMove;
extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastPrintedMoves[BATTLE_BANKS_COUNT];
extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT];
extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B; extern u16 gTrainerBattleOpponent_B;
extern u8 gUnknown_020241E9; extern u8 gUnknown_020241E9;
@@ -1105,8 +1105,8 @@ static void atk00_attackcanceler(void)
{ {
CancelMultiTurnMoves(gBankAttacker); CancelMultiTurnMoves(gBankAttacker);
gBattleMoveFlags |= MOVESTATUS_MISSED; gBattleMoveFlags |= MOVESTATUS_MISSED;
gTurnMovesHitWith[gBankTarget] = 0; gLastLandedMoves[gBankTarget] = 0;
gUnknown_02024258[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0;
gBattleCommunication[6] = 1; gBattleCommunication[6] = 1;
gBattlescriptCurrInstr++; gBattlescriptCurrInstr++;
} }
@@ -1118,11 +1118,11 @@ static void atk00_attackcanceler(void)
static void JumpIfMoveFailed(u8 adder, u16 move) static void JumpIfMoveFailed(u8 adder, u16 move)
{ {
const void* BS_ptr = gBattlescriptCurrInstr + adder; const u8 *BS_ptr = gBattlescriptCurrInstr + adder;
if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT)
{ {
gTurnMovesHitWith[gBankTarget] = 0; gLastLandedMoves[gBankTarget] = 0;
gUnknown_02024258[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0;
BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
} }
else else
@@ -1484,8 +1484,8 @@ static void atk06_typecalc(void)
{ {
gLastUsedAbility = gBattleMons[gBankTarget].ability; gLastUsedAbility = gBattleMons[gBankTarget].ability;
gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
gTurnMovesHitWith[gBankTarget] = 0; gLastLandedMoves[gBankTarget] = 0;
gUnknown_02024258[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0;
gBattleCommunication[6] = moveType; gBattleCommunication[6] = moveType;
RecordAbilityBattle(gBankTarget, gLastUsedAbility); RecordAbilityBattle(gBankTarget, gLastUsedAbility);
} }
@@ -1520,8 +1520,8 @@ static void atk06_typecalc(void)
{ {
gLastUsedAbility = ABILITY_WONDER_GUARD; gLastUsedAbility = ABILITY_WONDER_GUARD;
gBattleMoveFlags |= MOVESTATUS_MISSED; gBattleMoveFlags |= MOVESTATUS_MISSED;
gTurnMovesHitWith[gBankTarget] = 0; gLastLandedMoves[gBankTarget] = 0;
gUnknown_02024258[gBankTarget] = 0; gLastHitByType[gBankTarget] = 0;
gBattleCommunication[6] = 3; gBattleCommunication[6] = 3;
RecordAbilityBattle(gBankTarget, gLastUsedAbility); RecordAbilityBattle(gBankTarget, gLastUsedAbility);
} }
@@ -4856,14 +4856,14 @@ static void atk49_moveend(void)
u8 holdEffectAtk; u8 holdEffectAtk;
u16 *choicedMoveAtk; u16 *choicedMoveAtk;
u8 arg1, arg2; u8 arg1, arg2;
u16 lastMove; u16 originallyUsedMove;
effect = FALSE; effect = FALSE;
if (gOriginallyUsedMove == 0xFFFF) if (gOriginallyUsedMove == 0xFFFF)
lastMove = 0; originallyUsedMove = 0;
else else
lastMove = gOriginallyUsedMove; originallyUsedMove = gOriginallyUsedMove;
arg1 = gBattlescriptCurrInstr[1]; arg1 = gBattlescriptCurrInstr[1];
arg2 = gBattlescriptCurrInstr[2]; arg2 = gBattlescriptCurrInstr[2];
@@ -5036,48 +5036,48 @@ static void atk49_moveend(void)
} }
if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED)
{ {
gUnknownMovesUsedByBanks[gBankAttacker] = gOriginallyUsedMove; gOriginallyLastPrintedMoves[gBankAttacker] = gOriginallyUsedMove;
} }
if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) if (!(gAbsentBankFlags & gBitTable[gBankAttacker])
&& !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker])
&& gBattleMoves[lastMove].effect != EFFECT_BATON_PASS) && gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS)
{ {
if (gHitMarker & HITMARKER_OBEYS) if (gHitMarker & HITMARKER_OBEYS)
{ {
gLastUsedMovesByBanks[gBankAttacker] = gOriginallyUsedMove; gOriginallyLastMoves[gBankAttacker] = gOriginallyUsedMove;
gUnknown_02024260[gBankAttacker] = gCurrentMove; gLastMoves[gBankAttacker] = gCurrentMove;
} }
else else
{ {
gLastUsedMovesByBanks[gBankAttacker] = 0xFFFF; gOriginallyLastMoves[gBankAttacker] = 0xFFFF;
gUnknown_02024260[gBankAttacker] = 0xFFFF; gLastMoves[gBankAttacker] = 0xFFFF;
} }
if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget)))
gTurnMovesHitBy[gBankTarget] = gBankAttacker; gLastHitBy[gBankTarget] = gBankAttacker;
if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{ {
if (gOriginallyUsedMove == 0xFFFF) if (gOriginallyUsedMove == 0xFFFF)
{ {
gTurnMovesHitWith[gBankTarget] = gOriginallyUsedMove; gLastLandedMoves[gBankTarget] = gOriginallyUsedMove;
} }
else else
{ {
gTurnMovesHitWith[gBankTarget] = gCurrentMove; gLastLandedMoves[gBankTarget] = gCurrentMove;
GET_MOVE_TYPE(gCurrentMove, gUnknown_02024258[gBankTarget]); GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankTarget]);
} }
} }
else else
{ {
gTurnMovesHitWith[gBankTarget] = 0xFFFF; gLastLandedMoves[gBankTarget] = 0xFFFF;
} }
} }
gBattleScripting.atk49_state++; gBattleScripting.atk49_state++;
break; break;
case 15: // mirror move case 15: // mirror move
if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker])
&& gBattleMoves[lastMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS
&& gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget)) && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget))
&& !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT))
{ {
@@ -5144,7 +5144,7 @@ static void atk4A_typecalc2(void)
{ {
gLastUsedAbility = gBattleMons[gBankTarget].ability; gLastUsedAbility = gBattleMons[gBankTarget].ability;
gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED);
gTurnMovesHitWith[gBankTarget] = 0; gLastLandedMoves[gBankTarget] = 0;
gBattleCommunication[6] = moveType; gBattleCommunication[6] = moveType;
RecordAbilityBattle(gBankTarget, gLastUsedAbility); RecordAbilityBattle(gBankTarget, gLastUsedAbility);
} }
@@ -5219,7 +5219,7 @@ static void atk4A_typecalc2(void)
{ {
gLastUsedAbility = ABILITY_WONDER_GUARD; gLastUsedAbility = ABILITY_WONDER_GUARD;
gBattleMoveFlags |= MOVESTATUS_MISSED; gBattleMoveFlags |= MOVESTATUS_MISSED;
gTurnMovesHitWith[gBankTarget] = 0; gLastLandedMoves[gBankTarget] = 0;
gBattleCommunication[6] = 3; gBattleCommunication[6] = 3;
RecordAbilityBattle(gBankTarget, gLastUsedAbility); RecordAbilityBattle(gBankTarget, gLastUsedAbility);
} }
@@ -7131,7 +7131,7 @@ static void atk76_various(void)
static void atk77_setprotectlike(void) // protect and endure static void atk77_setprotectlike(void) // protect and endure
{ {
bool8 notLastTurn = TRUE; bool8 notLastTurn = TRUE;
u16 lastMove = gUnknown_02024260[gBankAttacker]; u16 lastMove = gLastMoves[gBankAttacker];
if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE)
gDisableStructs[gBankAttacker].protectUses = 0; gDisableStructs[gBankAttacker].protectUses = 0;
@@ -8434,10 +8434,10 @@ static void atk9D_mimicattackcopy(void)
{ {
gOriginallyUsedMove = 0xFFFF; gOriginallyUsedMove = 0xFFFF;
if (IsMoveUncopyableByMimic(gLastUsedMovesByBanks[gBankTarget]) if (IsMoveUncopyableByMimic(gOriginallyLastMoves[gBankTarget])
|| gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED
|| gLastUsedMovesByBanks[gBankTarget] == 0 || gOriginallyLastMoves[gBankTarget] == 0
|| gLastUsedMovesByBanks[gBankTarget] == 0xFFFF) || gOriginallyLastMoves[gBankTarget] == 0xFFFF)
{ {
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
} }
@@ -8447,20 +8447,20 @@ static void atk9D_mimicattackcopy(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (gBattleMons[gBankAttacker].moves[i] == gLastUsedMovesByBanks[gBankTarget]) if (gBattleMons[gBankAttacker].moves[i] == gOriginallyLastMoves[gBankTarget])
break; break;
} }
if (i == 4) if (i == 4)
{ {
gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastUsedMovesByBanks[gBankTarget]; gBattleMons[gBankAttacker].moves[gCurrMovePos] = gOriginallyLastMoves[gBankTarget];
if (gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp < 5) if (gBattleMoves[gOriginallyLastMoves[gBankTarget]].pp < 5)
gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp; gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gOriginallyLastMoves[gBankTarget]].pp;
else else
gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5;
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastMoves[gBankTarget])
gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos];
gBattlescriptCurrInstr += 5; gBattlescriptCurrInstr += 5;
@@ -8575,7 +8575,7 @@ static void atkA3_disablelastusedattack(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) if (gBattleMons[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget])
break; break;
} }
if (gDisableStructs[gBankTarget].disabledMove == 0 if (gDisableStructs[gBankTarget].disabledMove == 0
@@ -8600,13 +8600,13 @@ static void atkA4_trysetencore(void)
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) if (gBattleMons[gBankTarget].moves[i] == gOriginallyLastMoves[gBankTarget])
break; break;
} }
if (gLastUsedMovesByBanks[gBankTarget] == MOVE_STRUGGLE if (gOriginallyLastMoves[gBankTarget] == MOVE_STRUGGLE
|| gLastUsedMovesByBanks[gBankTarget] == MOVE_ENCORE || gOriginallyLastMoves[gBankTarget] == MOVE_ENCORE
|| gLastUsedMovesByBanks[gBankTarget] == MOVE_MIRROR_MOVE) || gOriginallyLastMoves[gBankTarget] == MOVE_MIRROR_MOVE)
{ {
i = 4; i = 4;
} }
@@ -8652,13 +8652,13 @@ static void atkA5_painsplitdmgcalc(void)
static void atkA6_settypetorandomresistance(void) // conversion 2 static void atkA6_settypetorandomresistance(void) // conversion 2
{ {
if (gTurnMovesHitWith[gBankAttacker] == 0 if (gLastLandedMoves[gBankAttacker] == 0
|| gTurnMovesHitWith[gBankAttacker] == 0xFFFF) || gLastLandedMoves[gBankAttacker] == 0xFFFF)
{ {
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
} }
else if (IsTwoTurnsMove(gTurnMovesHitWith[gBankAttacker]) else if (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker])
&& gBattleMons[gTurnMovesHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) && gBattleMons[gLastHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS)
{ {
gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1);
} }
@@ -8672,7 +8672,7 @@ static void atkA6_settypetorandomresistance(void) // conversion 2
i *= 3; i *= 3;
if (TYPE_EFFECT_ATK_TYPE(i) == gUnknown_02024258[gBankAttacker] if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBankAttacker]
&& TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE && TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE
&& gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i)
&& gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i))
@@ -8695,7 +8695,7 @@ static void atkA6_settypetorandomresistance(void) // conversion 2
case TYPE_FORESIGHT: case TYPE_FORESIGHT:
break; break;
default: default:
if (TYPE_EFFECT_ATK_TYPE(j) == gUnknown_02024258[gBankAttacker] if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBankAttacker]
&& TYPE_EFFECT_MULTIPLIER(j) <= 5 && TYPE_EFFECT_MULTIPLIER(j) <= 5
&& gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i)
&& gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i))
@@ -8729,10 +8729,10 @@ static void atkA8_copymovepermanently(void) // sketch
gOriginallyUsedMove = 0xFFFF; gOriginallyUsedMove = 0xFFFF;
if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED)
&& gUnknownMovesUsedByBanks[gBankTarget] != MOVE_STRUGGLE && gOriginallyLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE
&& gUnknownMovesUsedByBanks[gBankTarget] != 0 && gOriginallyLastPrintedMoves[gBankTarget] != 0
&& gUnknownMovesUsedByBanks[gBankTarget] != 0xFFFF && gOriginallyLastPrintedMoves[gBankTarget] != 0xFFFF
&& gUnknownMovesUsedByBanks[gBankTarget] != MOVE_SKETCH) && gOriginallyLastPrintedMoves[gBankTarget] != MOVE_SKETCH)
{ {
s32 i; s32 i;
@@ -8740,7 +8740,7 @@ static void atkA8_copymovepermanently(void) // sketch
{ {
if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH)
continue; continue;
if (gBattleMons[gBankAttacker].moves[i] == gUnknownMovesUsedByBanks[gBankTarget]) if (gBattleMons[gBankAttacker].moves[i] == gOriginallyLastPrintedMoves[gBankTarget])
break; break;
} }
@@ -8752,8 +8752,8 @@ static void atkA8_copymovepermanently(void) // sketch
{ {
struct MovePpInfo movePpData; struct MovePpInfo movePpData;
gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknownMovesUsedByBanks[gBankTarget]; gBattleMons[gBankAttacker].moves[gCurrMovePos] = gOriginallyLastPrintedMoves[gBankTarget];
gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknownMovesUsedByBanks[gBankTarget]].pp; gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gOriginallyLastPrintedMoves[gBankTarget]].pp;
gActiveBank = gBankAttacker; gActiveBank = gBankAttacker;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
@@ -8766,7 +8766,7 @@ static void atkA8_copymovepermanently(void) // sketch
EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData);
MarkBufferBankForExecution(gActiveBank); MarkBufferBankForExecution(gActiveBank);
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gUnknownMovesUsedByBanks[gBankTarget]) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastPrintedMoves[gBankTarget])
gBattlescriptCurrInstr += 5; gBattlescriptCurrInstr += 5;
} }
@@ -8899,14 +8899,14 @@ static void atkAC_remaininghptopower(void)
static void atkAD_tryspiteppreduce(void) static void atkAD_tryspiteppreduce(void)
{ {
if (gLastUsedMovesByBanks[gBankTarget] != 0 if (gOriginallyLastMoves[gBankTarget] != 0
&& gLastUsedMovesByBanks[gBankTarget] != 0xFFFF) && gOriginallyLastMoves[gBankTarget] != 0xFFFF)
{ {
s32 i; s32 i;
for (i = 0; i < 4; i++) for (i = 0; i < 4; i++)
{ {
if (gLastUsedMovesByBanks[gBankTarget] == gBattleMons[gBankTarget].moves[i]) if (gOriginallyLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i])
break; break;
} }
@@ -8916,7 +8916,7 @@ static void atkAD_tryspiteppreduce(void)
if (gBattleMons[gBankTarget].pp[i] < ppToDeduct) if (gBattleMons[gBankTarget].pp[i] < ppToDeduct)
ppToDeduct = gBattleMons[gBankTarget].pp[i]; ppToDeduct = gBattleMons[gBankTarget].pp[i];
PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gOriginallyLastMoves[gBankTarget])
ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1);
+8 -8
View File
@@ -23,7 +23,7 @@
extern const u8* gBattlescriptCurrInstr; extern const u8* gBattlescriptCurrInstr;
extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT];
extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u8 gActiveBank; extern u8 gActiveBank;
extern u8 gStringBank; extern u8 gStringBank;
@@ -43,7 +43,7 @@ extern s32 gBattleMoveDamage;
extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT];
extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200];
extern u32 gBattleTypeFlags; extern u32 gBattleTypeFlags;
extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gOriginallyLastMoves[BATTLE_BANKS_COUNT];
extern u32 gHitMarker; extern u32 gHitMarker;
extern u8 gEffectBank; extern u8 gEffectBank;
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
@@ -363,7 +363,7 @@ u8 TrySetCantSelectMoveBattleScript(void)
gCurrentMove = move; gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE) if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{ {
gUnknown_02024230[gActiveBank] = BattleScript_82DAE2A; gSelectionBattleScripts[gActiveBank] = BattleScript_82DAE2A;
gProtectStructs[gActiveBank].flag_x10 = 1; gProtectStructs[gActiveBank].flag_x10 = 1;
} }
else else
@@ -373,12 +373,12 @@ u8 TrySetCantSelectMoveBattleScript(void)
} }
} }
if (move == gLastUsedMovesByBanks[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) if (move == gOriginallyLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT))
{ {
CancelMultiTurnMoves(gActiveBank); CancelMultiTurnMoves(gActiveBank);
if (gBattleTypeFlags & BATTLE_TYPE_PALACE) if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{ {
gUnknown_02024230[gActiveBank] = BattleScript_82DB098; gSelectionBattleScripts[gActiveBank] = BattleScript_82DB098;
gProtectStructs[gActiveBank].flag_x10 = 1; gProtectStructs[gActiveBank].flag_x10 = 1;
} }
else else
@@ -393,7 +393,7 @@ u8 TrySetCantSelectMoveBattleScript(void)
gCurrentMove = move; gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE) if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{ {
gUnknown_02024230[gActiveBank] = BattleScript_82DB0AF; gSelectionBattleScripts[gActiveBank] = BattleScript_82DB0AF;
gProtectStructs[gActiveBank].flag_x10 = 1; gProtectStructs[gActiveBank].flag_x10 = 1;
} }
else else
@@ -408,7 +408,7 @@ u8 TrySetCantSelectMoveBattleScript(void)
gCurrentMove = move; gCurrentMove = move;
if (gBattleTypeFlags & BATTLE_TYPE_PALACE) if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
{ {
gUnknown_02024230[gActiveBank] = BattleScript_82DB185; gSelectionBattleScripts[gActiveBank] = BattleScript_82DB185;
gProtectStructs[gActiveBank].flag_x10 = 1; gProtectStructs[gActiveBank].flag_x10 = 1;
} }
else else
@@ -477,7 +477,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check)
unusableMoves |= gBitTable[i]; unusableMoves |= gBitTable[i];
if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED)
unusableMoves |= gBitTable[i]; unusableMoves |= gBitTable[i];
if (gBattleMons[bank].moves[i] == gLastUsedMovesByBanks[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) if (gBattleMons[bank].moves[i] == gOriginallyLastMoves[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT)
unusableMoves |= gBitTable[i]; unusableMoves |= gBitTable[i];
if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0)
unusableMoves |= gBitTable[i]; unusableMoves |= gBitTable[i];
+7 -7
View File
@@ -366,28 +366,28 @@ gActionForBanks: @ 202421C
gBattlescriptPtrsForSelection: @ 2024220 gBattlescriptPtrsForSelection: @ 2024220
.space 0x10 .space 0x10
gUnknown_02024230: @ 2024230 gSelectionBattleScripts: @ 2024230
.space 0x10 .space 0x10
gUnknownMovesUsedByBanks: @ 2024240 gOriginallyLastPrintedMoves: @ 2024240
.space 0x8 .space 0x8
gLastUsedMovesByBanks: @ 2024248 gOriginallyLastMoves: @ 2024248
.space 0x8 .space 0x8
gTurnMovesHitWith: @ 2024250 gLastLandedMoves: @ 2024250
.space 0x8 .space 0x8
gUnknown_02024258: @ 2024258 gLastHitByType: @ 2024258
.space 0x8 .space 0x8
gUnknown_02024260: @ 2024260 gLastMoves: @ 2024260
.space 0x8 .space 0x8
gLockedMoves: @ 2024268 gLockedMoves: @ 2024268
.space 0x8 .space 0x8
gTurnMovesHitBy: @ 2024270 gLastHitBy: @ 2024270
.space 0x4 .space 0x4
gChosenMovesByBanks: @ 2024274 gChosenMovesByBanks: @ 2024274