Merge pull request #1912 from GriffinRichards/moves-mask
Handful of fixes related to MAX_MON_MOVES
This commit is contained in:
@@ -1110,7 +1110,6 @@ u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check)
|
||||
return unusableMoves;
|
||||
}
|
||||
|
||||
#define ALL_MOVES_MASK ((1 << MAX_MON_MOVES) - 1)
|
||||
bool8 AreAllMovesUnusable(void)
|
||||
{
|
||||
u8 unusable = CheckMoveLimitations(gActiveBattler, 0, MOVE_LIMITATIONS_ALL);
|
||||
@@ -1127,7 +1126,6 @@ bool8 AreAllMovesUnusable(void)
|
||||
|
||||
return (unusable == ALL_MOVES_MASK);
|
||||
}
|
||||
#undef ALL_MOVES_MASK
|
||||
|
||||
u8 GetImprisonedMovesCount(u8 battlerId, u16 move)
|
||||
{
|
||||
@@ -2775,11 +2773,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
{
|
||||
do
|
||||
{
|
||||
// Pick either MOVE_EFFECT_SLEEP, MOVE_EFFECT_POISON or MOVE_EFFECT_BURN
|
||||
gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3;
|
||||
} while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0);
|
||||
|
||||
// Replace MOVE_EFFECT_BURN with MOVE_EFFECT_PARALYSIS
|
||||
if (gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_BURN)
|
||||
gBattleCommunication[MOVE_EFFECT_BYTE] += 2; // 5 MOVE_EFFECT_PARALYSIS
|
||||
gBattleCommunication[MOVE_EFFECT_BYTE] += (MOVE_EFFECT_PARALYSIS - MOVE_EFFECT_BURN);
|
||||
|
||||
gBattleCommunication[MOVE_EFFECT_BYTE] += MOVE_EFFECT_AFFECTS_USER;
|
||||
BattleScriptPushCursor();
|
||||
@@ -3954,11 +3953,11 @@ u8 IsMonDisobedient(void)
|
||||
if (calc < obedienceLevel)
|
||||
{
|
||||
calc = CheckMoveLimitations(gBattlerAttacker, gBitTable[gCurrMovePos], MOVE_LIMITATIONS_ALL);
|
||||
if (calc == 0xF) // all moves cannot be used
|
||||
if (calc == ALL_MOVES_MASK) // all moves cannot be used
|
||||
{
|
||||
// Randomly select, then print a disobedient string
|
||||
// B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1);
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = MOD(Random(), NUM_LOAF_STRINGS);
|
||||
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
|
||||
return 1;
|
||||
}
|
||||
@@ -3966,7 +3965,7 @@ u8 IsMonDisobedient(void)
|
||||
{
|
||||
do
|
||||
{
|
||||
gCurrMovePos = gChosenMovePos = Random() & (MAX_MON_MOVES - 1);
|
||||
gCurrMovePos = gChosenMovePos = MOD(Random(), MAX_MON_MOVES);
|
||||
} while (gBitTable[gCurrMovePos] & calc);
|
||||
|
||||
gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos];
|
||||
@@ -4009,7 +4008,7 @@ u8 IsMonDisobedient(void)
|
||||
{
|
||||
// Randomly select, then print a disobedient string
|
||||
// B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = Random() & (NUM_LOAF_STRINGS - 1);
|
||||
gBattleCommunication[MULTISTRING_CHOOSER] = MOD(Random(), NUM_LOAF_STRINGS);
|
||||
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
|
||||
return 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user