7dc95a0103
This commit undoes most of PokeCodec's PRs after the debate in chat. Some harmless or completely superseded PRs have been left alone, as there is not much benefit in attempting to undo them. Reverts #1104, #1108, #1115, #1118, #1119, #1124, #1126, #1127, #1132, #1136, #1137, #1139, #1140, #1144, #1148, #1149, #1150, #1153, #1155, #1177, #1179, #1180, #1181, #1182 and #1183.
81 lines
3.8 KiB
C
81 lines
3.8 KiB
C
#ifndef GUARD_BATTLE_UTIL_H
|
|
#define GUARD_BATTLE_UTIL_H
|
|
|
|
#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
|
|
#define MOVE_LIMITATION_PP (1 << 1)
|
|
#define MOVE_LIMITATION_DISABLED (1 << 2)
|
|
#define MOVE_LIMITATION_TORMENTED (1 << 3)
|
|
#define MOVE_LIMITATION_TAUNT (1 << 4)
|
|
#define MOVE_LIMITATION_IMPRISON (1 << 5)
|
|
|
|
#define ABILITYEFFECT_ON_SWITCHIN 0x0
|
|
#define ABILITYEFFECT_ENDTURN 0x1
|
|
#define ABILITYEFFECT_MOVES_BLOCK 0x2
|
|
#define ABILITYEFFECT_ABSORBING 0x3
|
|
#define ABILITYEFFECT_ON_DAMAGE 0x4
|
|
#define ABILITYEFFECT_IMMUNITY 0x5
|
|
#define ABILITYEFFECT_FORECAST 0x6
|
|
#define ABILITYEFFECT_SYNCHRONIZE 0x7
|
|
#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
|
|
#define ABILITYEFFECT_INTIMIDATE1 0x9
|
|
#define ABILITYEFFECT_INTIMIDATE2 0xA
|
|
#define ABILITYEFFECT_TRACE 0xB
|
|
#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
|
|
#define ABILITYEFFECT_CHECK_BATTLER_SIDE 0xD
|
|
#define ABILITYEFFECT_FIELD_SPORT 0xE
|
|
#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF
|
|
#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
|
|
#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11
|
|
#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
|
|
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
|
|
#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
|
|
|
|
#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
|
|
#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
|
|
#define ABILITY_ON_FIELD2(abilityId)(AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, abilityId, 0, 0))
|
|
|
|
#define ITEMEFFECT_ON_SWITCH_IN 0x0
|
|
#define ITEMEFFECT_MOVE_END 0x3
|
|
#define ITEMEFFECT_KINGSROCK_SHELLBELL 0x4
|
|
|
|
#define WEATHER_HAS_EFFECT ((!ABILITY_ON_FIELD(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD(ABILITY_AIR_LOCK)))
|
|
#define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK)))
|
|
|
|
u8 GetBattlerForBattleScript(u8 caseId);
|
|
void PressurePPLose(u8 target, u8 attacker, u16 move);
|
|
void PressurePPLoseOnUsingPerishSong(u8 attacker);
|
|
void PressurePPLoseOnUsingImprison(u8 attacker);
|
|
void MarkAllBattlersForControllerExec(void); // unused
|
|
void MarkBattlerForControllerExec(u8 battlerId);
|
|
void sub_803F850(u8 arg0);
|
|
void CancelMultiTurnMoves(u8 battlerId);
|
|
bool8 WasUnableToUseMove(u8 battlerId);
|
|
void PrepareStringBattle(u16 stringId, u8 battlerId);
|
|
void ResetSentPokesToOpponentValue(void);
|
|
void OpponentSwitchInResetSentPokesToOpponentValue(u8 battlerId);
|
|
void UpdateSentPokesToOpponentValue(u8 battlerId);
|
|
void BattleScriptPush(const u8* bsPtr);
|
|
void BattleScriptPushCursor(void);
|
|
void BattleScriptPop(void);
|
|
u8 TrySetCantSelectMoveBattleScript(void);
|
|
u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check);
|
|
bool8 AreAllMovesUnusable(void);
|
|
u8 GetImprisonedMovesCount(u8 battlerId, u16 move);
|
|
u8 DoFieldEndTurnEffects(void);
|
|
u8 DoBattlerEndTurnEffects(void);
|
|
bool8 HandleWishPerishSongOnTurnEnd(void);
|
|
bool8 HandleFaintedMonActions(void);
|
|
void TryClearRageStatuses(void);
|
|
u8 AtkCanceller_UnableToUseMove(void);
|
|
bool8 HasNoMonsToSwitch(u8 battlerId, u8 r1, u8 r2);
|
|
u8 CastformDataTypeChange(u8 battlerId);
|
|
u8 AbilityBattleEffects(u8 caseID, u8 battlerId, u8 ability, u8 special, u16 moveArg);
|
|
void BattleScriptExecute(const u8* BS_ptr);
|
|
void BattleScriptPushCursorAndCallback(const u8* BS_ptr);
|
|
u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn);
|
|
void ClearFuryCutterDestinyBondGrudge(u8 battlerId);
|
|
void HandleAction_RunBattleScript(void);
|
|
u8 GetMoveTarget(u16 move, u8 setTarget);
|
|
u8 IsMonDisobedient(void);
|
|
|
|
#endif // GUARD_BATTLE_UTIL_H
|