mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-04-25 07:29:01 -05:00
Update battle-constant headers for assembler compatibility
This commit is contained in:
parent
1bacaf3bdc
commit
5dcb0c3657
1224
asm/macros/btlcmd.inc
Normal file
1224
asm/macros/btlcmd.inc
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -5,7 +5,18 @@
|
|||
"@MessageTag",
|
||||
"@MoveSubscriptPointer",
|
||||
"@SideEffectType",
|
||||
"@Terrain"
|
||||
"@Terrain",
|
||||
"@BattleAnimation"
|
||||
],
|
||||
"btlcmd": [
|
||||
"@BattleScriptVar",
|
||||
"@BattlerID",
|
||||
"@OpCode",
|
||||
"@CheckHaveOp",
|
||||
"@MessageStatusCondition",
|
||||
"@TurnFlag",
|
||||
"@CheckSideConditionOp",
|
||||
"@SideCondition"
|
||||
]
|
||||
},
|
||||
"definitions": {
|
||||
|
|
@ -549,6 +560,231 @@
|
|||
"TERRAIN_GIRATINA",
|
||||
"TERRAIN_MAX"
|
||||
]
|
||||
},
|
||||
"@BattleAnimation": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"BATTLE_ANIMATION_NONE",
|
||||
"BATTLE_ANIMATION_ASLEEP",
|
||||
"BATTLE_ANIMATION_POISONED",
|
||||
"BATTLE_ANIMATION_BURNED",
|
||||
"BATTLE_ANIMATION_FROZEN",
|
||||
"BATTLE_ANIMATION_PARALYZED",
|
||||
"BATTLE_ANIMATION_CONFUSED",
|
||||
"BATTLE_ANIMATION_INFATUATED",
|
||||
"BATTLE_ANIMATION_LEVEL_UP",
|
||||
"BATTLE_ANIMATION_BAG_ITEM",
|
||||
"BATTLE_ANIMATION_HELD_ITEM",
|
||||
"BATTLE_ANIMATION_SHINY",
|
||||
"BATTLE_ANIMATION_STAT_BOOST",
|
||||
"BATTLE_ANIMATION_STAT_DROP",
|
||||
"BATTLE_ANIMATION_RESTORE_HP",
|
||||
"BATTLE_ANIMATION_SUB_OUT",
|
||||
"BATTLE_ANIMATION_SUB_IN",
|
||||
"BATTLE_ANIMATION_ITEM_ESCAPE",
|
||||
"BATTLE_ANIMATION_WEATHER_FOG",
|
||||
"BATTLE_ANIMATION_WEATHER_RAIN",
|
||||
"BATTLE_ANIMATION_WEATHER_HAIL",
|
||||
"BATTLE_ANIMATION_WEATHER_SAND",
|
||||
"BATTLE_ANIMATION_WEATHER_SUN",
|
||||
"BATTLE_ANIMATION_UNUSED_23",
|
||||
"BATTLE_ANIMATION_UNUSED_24",
|
||||
"BATTLE_ANIMATION_SUBSTITUTE_IN",
|
||||
"BATTLE_ANIMATION_SUBSTITUTE_OUT",
|
||||
"BATTLE_ANIMATION_HAPPY",
|
||||
"BATTLE_ANIMATION_EATING",
|
||||
"BATTLE_ANIMATION_ANGRY",
|
||||
"BATTLE_ANIMATION_DAMAGE_CURSE",
|
||||
"BATTLE_ANIMATION_DAMAGE_NIGHTMARE",
|
||||
"BATTLE_ANIMATION_DAMAGE_LEECH_SEED",
|
||||
"BATTLE_ANIMATION_DAMAGE_BIND",
|
||||
"BATTLE_ANIMATION_DAMAGE_WRAP",
|
||||
"BATTLE_ANIMATION_DAMAGE_FIRE_SPIN",
|
||||
"BATTLE_ANIMATION_DAMAGE_MAGMA_STORM",
|
||||
"BATTLE_ANIMATION_DAMAGE_CLAMP",
|
||||
"BATTLE_ANIMATION_DAMAGE_WHIRLPOOL",
|
||||
"BATTLE_ANIMATION_DAMAGE_SAND_TOMB",
|
||||
"BATTLE_ANIMATION_DAMAGE_INGRAIN"
|
||||
]
|
||||
},
|
||||
"@BattleScriptVar": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"BTLVAR_BATTLE_TYPE",
|
||||
"BTLVAR_CRITICAL_BOOSTS",
|
||||
"BTLVAR_SIDE_EFFECT_FLAGS_DIRECT",
|
||||
"BTLVAR_SIDE_EFFECT_FLAGS_INDIRECT",
|
||||
"BTLVAR_SIDE_EFFECT_FLAGS_ABILITY",
|
||||
"BTLVAR_SIDE_EFFECT_TYPE",
|
||||
"BTLVAR_BATTLE_CTX_STATUS",
|
||||
"BTLVAR_FIELD_CONDITIONS",
|
||||
"BTLVAR_POWER_MULTI",
|
||||
"BTLVAR_CALC_TEMP",
|
||||
"BTLVAR_MOVE_STATUS_FLAGS",
|
||||
"BTLVAR_SIDE_CONDITIONS_ATTACKER",
|
||||
"BTLVAR_SIDE_CONDITIONS_DEFENDER",
|
||||
"BTLVAR_SIDE_CONDITIONS_EFFECT_MON",
|
||||
"BTLVAR_DAMAGE",
|
||||
"BTLVAR_ATTACKER",
|
||||
"BTLVAR_DEFENDER",
|
||||
"BTLVAR_SIDE_EFFECT_MON",
|
||||
"BTLVAR_FAINTED_MON",
|
||||
"BTLVAR_SWITCHED_MON",
|
||||
"BTLVAR_MSG_BATTLER_TEMP",
|
||||
"BTLVAR_ATTACKER_STORED_DAMAGE",
|
||||
"BTLVAR_MSG_TEMP",
|
||||
"BTLVAR_PAY_DAY_COUNT",
|
||||
"BTLVAR_CURRENT_MOVE",
|
||||
"BTLVAR_TOTAL_TURNS",
|
||||
"BTLVAR_MSG_ATTACKER",
|
||||
"BTLVAR_MSG_DEFENDER",
|
||||
"BTLVAR_MOVE_TEMP",
|
||||
"BTLVAR_LAST_BATTLER_ID",
|
||||
"BTLVAR_MOVE_POWER",
|
||||
"BTLVAR_AFTER_MOVE_MESSAGE_TYPE",
|
||||
"BTLVAR_HP_CALC_TEMP",
|
||||
"BTLVAR_RESULT_MASK",
|
||||
"BTLVAR_SIDE_EFFECT_PARAM",
|
||||
"BTLVAR_MSG_MOVE_TEMP",
|
||||
"BTLVAR_MSG_ITEM_TEMP",
|
||||
"BTLVAR_MSG_ABILITY_TEMP",
|
||||
"BTLVAR_WEATHER_TURNS",
|
||||
"BTLVAR_BATTLER_SPEED_TEMP",
|
||||
"BTLVAR_MULTI_HIT_LOOP",
|
||||
"BTLVAR_ATTACKER_PHYSICAL_DAMAGE_MASK",
|
||||
"BTLVAR_ATTACKER_SPECIAL_DAMAGE_MASK",
|
||||
"BTLVAR_SCRIPT_TEMP",
|
||||
"BTLVAR_CRITICAL_MUL",
|
||||
"BTLVAR_ATTACKER_LAST_DAMAGE_TAKEN",
|
||||
"BTLVAR_DEFENDER_LAST_DAMAGE_TAKEN",
|
||||
"BTLVAR_ATTACKER_SELF_TURN_STATUS_FLAGS",
|
||||
"BTLVAR_DEFENDER_SELF_TURN_STATUS_FLAGS",
|
||||
"BTLVAR_SIDE_EFFECT_MON_SELF_TURN_STATUS_FLAGS",
|
||||
"BTLVAR_FLING_TEMP",
|
||||
"BTLVAR_FLING_SCRIPT",
|
||||
"BTLVAR_BATTLE_SYS_STATUS",
|
||||
"BTLVAR_ATTACKER_LOCKED_MOVE",
|
||||
"BTLVAR_HIT_DAMAGE",
|
||||
"BTLVAR_NUM_SAFARI_BALLS",
|
||||
"BTLVAR_SWITCHED_MON_TEMP",
|
||||
"BTLVAR_MOVE_TYPE",
|
||||
"BTLVAR_MOVE_EFFECT_CHANCE",
|
||||
"BTLVAR_REGULATION_FLAG",
|
||||
"BTLVAR_BATTLE_CTX_STATUS_2",
|
||||
"BTLVAR_TURN_ORDER_COUNTER",
|
||||
"BTLVAR_MAX_BATTLERS",
|
||||
"BTLVAR_ATTACKER_TEMP",
|
||||
"BTLVAR_DEFENDER_TEMP",
|
||||
"BTLVAR_DEFENDER_PHYSICAL_DAMAGE_TAKEN",
|
||||
"BTLVAR_MSG_BATTLER_TEMP_ASSURANCE_DAMAGE_MASK",
|
||||
"BTLVAR_DEFENDER_ASSURANCE_DAMAGE_MASK",
|
||||
"BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT",
|
||||
"BTLVAR_WAITING_BATTLERS"
|
||||
]
|
||||
},
|
||||
"@BattlerID": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"BTLSCR_ALL_BATTLERS",
|
||||
"BTLSCR_ATTACKER",
|
||||
"BTLSCR_DEFENDER",
|
||||
"BTLSCR_PLAYER",
|
||||
"BTLSCR_ENEMY",
|
||||
"BTLSCR_FAINTED_MON",
|
||||
"BTLSCR_SWITCHED_MON",
|
||||
"BTLSCR_SIDE_EFFECT_MON",
|
||||
"BTLSCR_ABILITY_MON",
|
||||
"BTLSCR_PLAYER_SLOT_1",
|
||||
"BTLSCR_ENEMY_SLOT_1",
|
||||
"BTLSCR_PLAYER_SLOT_2",
|
||||
"BTLSCR_ENEMY_SLOT_2",
|
||||
"BTLSCR_UNUSED_13",
|
||||
"BTLSCR_MSG_ATTACKER",
|
||||
"BTLSCR_MSG_DEFENDER",
|
||||
"BTLSCR_ATTACKER_PARTNER",
|
||||
"BTLSCR_DEFENDER_PARTNER",
|
||||
"BTLSCR_FORCED_OUT",
|
||||
"BTLSCR_ATTACKER_ENEMY",
|
||||
"BTLSCR_DEFENDER_ENEMY",
|
||||
"BTLSCR_MSG_BATTLER_TEMP",
|
||||
"BTLSCR_SWITCHED_MON_AFTER"
|
||||
]
|
||||
},
|
||||
"@OpCode": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"OPCODE_EQU",
|
||||
"OPCODE_NEQ",
|
||||
"OPCODE_GT",
|
||||
"OPCODE_LTE",
|
||||
"OPCODE_FLAG_SET",
|
||||
"OPCODE_FLAG_NOT",
|
||||
"OPCODE_AND",
|
||||
"OPCODE_SET",
|
||||
"OPCODE_ADD",
|
||||
"OPCODE_SUB",
|
||||
"OPCODE_FLAG_ON",
|
||||
"OPCODE_FLAG_OFF",
|
||||
"OPCODE_MUL",
|
||||
"OPCODE_DIV",
|
||||
"OPCODE_LEFT_SHIFT",
|
||||
"OPCODE_RIGHT_SHIFT",
|
||||
"OPCODE_FLAG_INDEX",
|
||||
"OPCODE_GET",
|
||||
"OPCODE_SUB_TO_ZERO",
|
||||
"OPCODE_BITWISE_XOR",
|
||||
"OPCODE_BITWISE_AND"
|
||||
]
|
||||
},
|
||||
"@CheckHaveOp": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"CHECK_HAVE",
|
||||
"CHECK_NOT_HAVE"
|
||||
]
|
||||
},
|
||||
"@MessageStatusCondition": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"MSGCOND_SLEEP",
|
||||
"MSGCOND_POISON",
|
||||
"MSGCOND_BURN",
|
||||
"MSGCOND_PARALYSIS",
|
||||
"MSGCOND_FREEZE",
|
||||
"MSGCOND_CONFUSION",
|
||||
"MSGCOND_INFATUATION"
|
||||
]
|
||||
},
|
||||
"@TurnFlag": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"TURN_FLAG_STRUGGLING",
|
||||
"TURN_FLAG_PP_DECREMENTED",
|
||||
"TURN_FLAG_PROTECTING",
|
||||
"TURN_FLAG_HELPING_HAND",
|
||||
"TURN_FLAG_MAGIC_COAT",
|
||||
"TURN_FLAG_SNATCHING",
|
||||
"TURN_FLAG_ROOSTING"
|
||||
]
|
||||
},
|
||||
"@CheckSideConditionOp": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"CHECK_SIDE_COND_VAL_ZERO",
|
||||
"CHECK_SIDE_COND_VAL_NOT_ZERO",
|
||||
"CHECK_SIDE_COND_CLEAR"
|
||||
]
|
||||
},
|
||||
"@SideCondition": {
|
||||
"type": "enum",
|
||||
"values": [
|
||||
"SIDE_COND_REFLECT_TURNS",
|
||||
"SIDE_COND_LIGHT_SCREEN_TURNS",
|
||||
"SIDE_COND_MIST_TURNS",
|
||||
"SIDE_COND_SAFEGUARD_TURNS",
|
||||
"SIDE_COND_SPIKES_LAYERS",
|
||||
"SIDE_COND_TOXIC_SPIKES_LAYERS"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -441,7 +441,7 @@ void Battler_UnlockMoveChoice(BattleSystem *battleSys, BattleContext *battleCtx,
|
|||
* @param battler
|
||||
* @return A value representing the battler's status non-volatile status.
|
||||
*/
|
||||
enum StatusEffect Battler_StatusCondition(BattleContext *battleCtx, int battler);
|
||||
enum BattleAnimation Battler_StatusCondition(BattleContext *battleCtx, int battler);
|
||||
|
||||
/**
|
||||
* @brief Check if the given trainer has a trainer message to be shown.
|
||||
|
|
|
|||
|
|
@ -1,198 +1,13 @@
|
|||
#ifndef POKEPLATINUM_BATTLE_BTLCMD_H
|
||||
#define POKEPLATINUM_BATTLE_BTLCMD_H
|
||||
|
||||
enum BattleScriptVars {
|
||||
BTLVAR_BATTLE_TYPE = 0,
|
||||
BTLVAR_CRITICAL_BOOSTS,
|
||||
BTLVAR_SIDE_EFFECT_FLAGS_DIRECT,
|
||||
BTLVAR_SIDE_EFFECT_FLAGS_INDIRECT,
|
||||
BTLVAR_SIDE_EFFECT_FLAGS_ABILITY,
|
||||
BTLVAR_SIDE_EFFECT_TYPE,
|
||||
BTLVAR_BATTLE_CTX_STATUS,
|
||||
BTLVAR_FIELD_CONDITIONS,
|
||||
BTLVAR_POWER_MULTI,
|
||||
BTLVAR_CALC_TEMP,
|
||||
BTLVAR_MOVE_STATUS_FLAGS,
|
||||
BTLVAR_SIDE_CONDITIONS_ATTACKER,
|
||||
BTLVAR_SIDE_CONDITIONS_DEFENDER,
|
||||
BTLVAR_SIDE_CONDITIONS_EFFECT_MON,
|
||||
BTLVAR_DAMAGE,
|
||||
BTLVAR_ATTACKER,
|
||||
BTLVAR_DEFENDER,
|
||||
BTLVAR_SIDE_EFFECT_MON,
|
||||
BTLVAR_FAINTED_MON,
|
||||
BTLVAR_SWITCHED_MON,
|
||||
BTLVAR_MSG_BATTLER_TEMP,
|
||||
BTLVAR_ATTACKER_STORED_DAMAGE,
|
||||
BTLVAR_MSG_TEMP,
|
||||
BTLVAR_PAY_DAY_COUNT,
|
||||
BTLVAR_CURRENT_MOVE,
|
||||
BTLVAR_TOTAL_TURNS,
|
||||
BTLVAR_MSG_ATTACKER,
|
||||
BTLVAR_MSG_DEFENDER,
|
||||
BTLVAR_MOVE_TEMP,
|
||||
BTLVAR_LAST_BATTLER_ID,
|
||||
BTLVAR_MOVE_POWER,
|
||||
BTLVAR_AFTER_MOVE_MESSAGE_TYPE,
|
||||
BTLVAR_HP_CALC_TEMP,
|
||||
BTLVAR_RESULT_MASK,
|
||||
BTLVAR_SIDE_EFFECT_PARAM,
|
||||
BTLVAR_MSG_MOVE_TEMP,
|
||||
BTLVAR_MSG_ITEM_TEMP,
|
||||
BTLVAR_MSG_ABILITY_TEMP,
|
||||
BTLVAR_WEATHER_TURNS,
|
||||
BTLVAR_BATTLER_SPEED_TEMP,
|
||||
BTLVAR_MULTI_HIT_LOOP,
|
||||
BTLVAR_ATTACKER_PHYSICAL_DAMAGE_MASK,
|
||||
BTLVAR_ATTACKER_SPECIAL_DAMAGE_MASK,
|
||||
BTLVAR_SCRIPT_TEMP,
|
||||
BTLVAR_CRITICAL_MUL,
|
||||
BTLVAR_ATTACKER_LAST_DAMAGE_TAKEN,
|
||||
BTLVAR_DEFENDER_LAST_DAMAGE_TAKEN,
|
||||
BTLVAR_ATTACKER_SELF_TURN_STATUS_FLAGS,
|
||||
BTLVAR_DEFENDER_SELF_TURN_STATUS_FLAGS,
|
||||
BTLVAR_SIDE_EFFECT_MON_SELF_TURN_STATUS_FLAGS,
|
||||
BTLVAR_FLING_TEMP,
|
||||
BTLVAR_FLING_SCRIPT,
|
||||
BTLVAR_BATTLE_SYS_STATUS,
|
||||
BTLVAR_ATTACKER_LOCKED_MOVE,
|
||||
BTLVAR_HIT_DAMAGE,
|
||||
BTLVAR_NUM_SAFARI_BALLS,
|
||||
BTLVAR_SWITCHED_MON_TEMP,
|
||||
BTLVAR_MOVE_TYPE,
|
||||
BTLVAR_MOVE_EFFECT_CHANCE,
|
||||
BTLVAR_REGULATION_FLAG,
|
||||
BTLVAR_BATTLE_CTX_STATUS_2,
|
||||
BTLVAR_TURN_ORDER_COUNTER,
|
||||
BTLVAR_MAX_BATTLERS,
|
||||
BTLVAR_ATTACKER_TEMP,
|
||||
BTLVAR_DEFENDER_TEMP,
|
||||
BTLVAR_DEFENDER_PHYSICAL_DAMAGE_TAKEN,
|
||||
BTLVAR_MSG_BATTLER_TEMP_ASSURANCE_DAMAGE_MASK,
|
||||
BTLVAR_DEFENDER_ASSURANCE_DAMAGE_MASK,
|
||||
BTLVAR_ATTACKER_SHELL_BELL_DAMAGE_DEALT,
|
||||
BTLVAR_WAITING_BATTLERS,
|
||||
};
|
||||
#ifndef __ASM_PM_
|
||||
#include "consts/generated/c/btlcmd.h"
|
||||
#endif
|
||||
|
||||
#define BTLSCR_ALL_BATTLERS 0
|
||||
#define BTLSCR_ATTACKER 1
|
||||
#define BTLSCR_DEFENDER 2
|
||||
#define BTLSCR_PLAYER 3
|
||||
#define BTLSCR_ENEMY 4
|
||||
#define BTLSCR_FAINTED_MON 5
|
||||
#define BTLSCR_SWITCHED_MON 6
|
||||
#define BTLSCR_SIDE_EFFECT_MON 7
|
||||
#define BTLSCR_ABILITY_MON 8
|
||||
#define BTLSCR_PLAYER_SLOT_1 9
|
||||
#define BTLSCR_ENEMY_SLOT_1 10
|
||||
#define BTLSCR_PLAYER_SLOT_2 11
|
||||
#define BTLSCR_ENEMY_SLOT_2 12
|
||||
// 13 undefined
|
||||
#define BTLSCR_MSG_ATTACKER 14
|
||||
#define BTLSCR_MSG_DEFENDER 15
|
||||
#define BTLSCR_ATTACKER_PARTNER 16
|
||||
#define BTLSCR_DEFENDER_PARTNER 17
|
||||
#define BTLSCR_FORCED_OUT 18
|
||||
#define BTLSCR_ATTACKER_ENEMY 19
|
||||
#define BTLSCR_DEFENDER_ENEMY 20
|
||||
#define BTLSCR_MSG_BATTLER_TEMP 21
|
||||
#define BTLSCR_SWITCHED_MON_AFTER 22
|
||||
#define BTLSCR_MSG_TEMP (0xFF)
|
||||
|
||||
#define WEATHER_EFFECT_HYDRATION 1
|
||||
#define WEATHER_EFFECT_SOLAR_POWER 2
|
||||
|
||||
enum OpCode {
|
||||
IFOP_EQU = 0,
|
||||
IFOP_NEQ,
|
||||
IFOP_GT,
|
||||
IFOP_LTE,
|
||||
IFOP_FLAG_SET,
|
||||
IFOP_FLAG_NOT,
|
||||
IFOP_AND,
|
||||
|
||||
VALOP_SET,
|
||||
VALOP_ADD,
|
||||
VALOP_SUB,
|
||||
VALOP_FLAG_ON,
|
||||
VALOP_FLAG_OFF,
|
||||
VALOP_MUL,
|
||||
VALOP_DIV,
|
||||
VALOP_LSH,
|
||||
VALOP_RSH,
|
||||
VALOP_FLAG_INDEX,
|
||||
VALOP_GET,
|
||||
VALOP_SUB_TO_ZERO,
|
||||
VALOP_XOR,
|
||||
VALOP_AND,
|
||||
};
|
||||
|
||||
enum CheckHaveOp {
|
||||
CHECK_HAVE,
|
||||
CHECK_NOT_HAVE,
|
||||
};
|
||||
|
||||
enum StatusEffect {
|
||||
STATUS_EFFECT_NONE = 0,
|
||||
|
||||
STATUS_EFFECT_SLEEP,
|
||||
STATUS_EFFECT_POISON,
|
||||
STATUS_EFFECT_BURN,
|
||||
STATUS_EFFECT_FREEZE,
|
||||
STATUS_EFFECT_PARALYSIS,
|
||||
|
||||
STATUS_EFFECT_LEVEL_UP = 8,
|
||||
|
||||
STATUS_EFFECT_STAGE_UP = 12,
|
||||
STATUS_EFFECT_STAGE_DOWN,
|
||||
|
||||
STATUS_EFFECT_CHANGE_FORM_OUT = 15,
|
||||
STATUS_EFFECT_CHANGE_FORM_IN,
|
||||
STATUS_EFFECT_ITEM_ESCAPE,
|
||||
STATUS_EFFECT_WEATHER_FOG,
|
||||
STATUS_EFFECT_WEATHER_RAIN,
|
||||
STATUS_EFFECT_WEATHER_HAIL,
|
||||
STATUS_EFFECT_WEATHER_SAND,
|
||||
STATUS_EFFECT_WEATHER_SUN,
|
||||
|
||||
STATUS_EFFECT_SUBSTITUTE_ON = 25,
|
||||
STATUS_EFFECT_SUBSTITUTE_OFF,
|
||||
};
|
||||
|
||||
enum MessageStatusCondition {
|
||||
MSGCOND_SLEEP = 0,
|
||||
MSGCOND_POISON,
|
||||
MSGCOND_BURN,
|
||||
MSGCOND_PARALYSIS,
|
||||
MSGCOND_FREEZE,
|
||||
MSGCOND_CONFUSION,
|
||||
MSGCOND_INFATUATION,
|
||||
};
|
||||
|
||||
enum TurnFlag {
|
||||
TURN_FLAG_STRUGGLING = 0,
|
||||
TURN_FLAG_PP_DECREMENTED,
|
||||
TURN_FLAG_PROTECTING,
|
||||
TURN_FLAG_HELPING_HAND,
|
||||
TURN_FLAG_MAGIC_COAT,
|
||||
TURN_FLAG_SNATCHING,
|
||||
TURN_FLAG_ROOSTING,
|
||||
};
|
||||
|
||||
enum CheckSideConditionOp {
|
||||
CHECK_SIDE_COND_VAL_ZERO = 0,
|
||||
CHECK_SIDE_COND_VAL_NOT_ZERO,
|
||||
CHECK_SIDE_COND_CLEAR,
|
||||
};
|
||||
|
||||
enum SideCondition {
|
||||
SIDE_COND_REFLECT_TURNS = 0,
|
||||
SIDE_COND_LIGHT_SCREEN_TURNS,
|
||||
SIDE_COND_MIST_TURNS,
|
||||
SIDE_COND_SAFEGUARD_TURNS,
|
||||
SIDE_COND_SPIKES_LAYERS,
|
||||
SIDE_COND_TOXIC_SPIKES_LAYERS,
|
||||
};
|
||||
|
||||
#endif // POKEPLATINUM_BATTLE_BTLCMD_H
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,33 @@
|
|||
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_H
|
||||
#define POKEPLATINUM_CONSTANTS_BATTLE_H
|
||||
|
||||
#ifndef __ASM_PM_
|
||||
#include "consts/generated/c/battle.h"
|
||||
|
||||
enum BattleActions {
|
||||
BATTLE_ACTION_PICK_COMMAND = 0,
|
||||
BATTLE_ACTION_CHOOSE_TARGET,
|
||||
BATTLE_ACTION_TEMP_VALUE,
|
||||
BATTLE_ACTION_SELECTED_COMMAND,
|
||||
|
||||
MAX_BATTLE_ACTIONS
|
||||
};
|
||||
|
||||
enum BattlerBootState {
|
||||
BATTLER_BOOT_STATE_NORMAL = 0,
|
||||
BATTLER_BOOT_STATE_AI,
|
||||
BATTLER_BOOT_STATE_LINK,
|
||||
};
|
||||
#endif
|
||||
|
||||
#include "constants/battle/condition.h"
|
||||
#include "constants/battle/message_tags.h"
|
||||
#include "constants/battle/moves.h"
|
||||
#include "constants/battle/scripts.h"
|
||||
#include "constants/battle/side_effects.h"
|
||||
#include "constants/battle/system_control.h"
|
||||
#include "constants/battle/terrain.h"
|
||||
#include "constants/battle/turn_flags.h"
|
||||
|
||||
#include "consts/generated/c/battle.h"
|
||||
|
||||
#define BATTLE_TYPE_SINGLES (0 << 0)
|
||||
#define BATTLE_TYPE_WILD_MON (0 << 0)
|
||||
#define BATTLE_TYPE_TRAINER (1 << 0)
|
||||
|
|
@ -147,19 +163,4 @@
|
|||
#define NO_PARTNER_SLOT_1 (1 << 2)
|
||||
#define NO_PARTNER_SLOT_2 (1 << 3)
|
||||
|
||||
enum BattleActions {
|
||||
BATTLE_ACTION_PICK_COMMAND = 0,
|
||||
BATTLE_ACTION_CHOOSE_TARGET,
|
||||
BATTLE_ACTION_TEMP_VALUE,
|
||||
BATTLE_ACTION_SELECTED_COMMAND,
|
||||
|
||||
MAX_BATTLE_ACTIONS
|
||||
};
|
||||
|
||||
enum BattlerBootState {
|
||||
BATTLER_BOOT_STATE_NORMAL = 0,
|
||||
BATTLER_BOOT_STATE_AI,
|
||||
BATTLER_BOOT_STATE_LINK,
|
||||
};
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_H
|
||||
|
|
|
|||
|
|
@ -125,4 +125,4 @@
|
|||
#define OVERWORLD_WEATHER_HARSH_SUN 1001
|
||||
#define OVERWORLD_WEATHER_TRICK_ROOM 1002
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_CONDITION_H
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_CONDITION_H
|
||||
|
|
|
|||
|
|
@ -3,6 +3,5 @@
|
|||
|
||||
#define TAG_SIDE_LOCAL_MESSAGE (1 << 6) // adjust the message for the side's source (e.g. "The foe's X used Y!")
|
||||
#define TAG_GLOBAL_MESSAGE (1 << 7) // do not perform any message adjustment for a calling side
|
||||
#define TAG_IGNORE_SIDES ~(TAG_USE_DIRECTION | TAG_SKIP_DIRECTION)
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_MESSAGE_TAGS_H
|
||||
|
|
|
|||
|
|
@ -31,25 +31,13 @@
|
|||
#define MOVE_EFFECT_SHADOW_FORCE (1 << 29)
|
||||
#define MOVE_EFFECT_IMPRISONED (1 << 30) // applied to mons which are affected by Imprison
|
||||
|
||||
#define MOVE_EFFECT_SEMI_INVULNERABLE (MOVE_EFFECT_AIRBORNE \
|
||||
| MOVE_EFFECT_UNDERGROUND \
|
||||
| MOVE_EFFECT_UNDERWATER \
|
||||
| MOVE_EFFECT_SHADOW_FORCE)
|
||||
#define MOVE_EFFECT_BATON_PASSED (MOVE_EFFECT_LEECH_SEED_RECIPIENT \
|
||||
| MOVE_EFFECT_LEECH_SEED \
|
||||
| MOVE_EFFECT_LOCK_ON \
|
||||
| MOVE_EFFECT_PERISH_SONG \
|
||||
| MOVE_EFFECT_INGRAIN \
|
||||
| MOVE_EFFECT_MUD_SPORT \
|
||||
| MOVE_EFFECT_WATER_SPORT \
|
||||
| MOVE_EFFECT_NO_CRITICAL \
|
||||
| MOVE_EFFECT_POWER_TRICK \
|
||||
| MOVE_EFFECT_AQUA_RING \
|
||||
| MOVE_EFFECT_ABILITY_SUPPRESSED \
|
||||
| MOVE_EFFECT_EMBARGO \
|
||||
| MOVE_EFFECT_HEAL_BLOCK \
|
||||
| MOVE_EFFECT_MAGNET_RISE)
|
||||
#define MOVE_EFFECT_NO_WEATHER_DAMAGE (MOVE_EFFECT_UNDERGROUND | MOVE_EFFECT_UNDERWATER)
|
||||
#define MOVE_EFFECT_SEMI_INVULNERABLE (MOVE_EFFECT_AIRBORNE | MOVE_EFFECT_UNDERGROUND | MOVE_EFFECT_UNDERWATER | MOVE_EFFECT_SHADOW_FORCE)
|
||||
|
||||
#define MOVE_EFFECT_BATON_PASSED (MOVE_EFFECT_LEECH_SEED_RECIPIENT | MOVE_EFFECT_LEECH_SEED | MOVE_EFFECT_LOCK_ON | MOVE_EFFECT_PERISH_SONG | MOVE_EFFECT_INGRAIN \
|
||||
| MOVE_EFFECT_MUD_SPORT | MOVE_EFFECT_WATER_SPORT | MOVE_EFFECT_NO_CRITICAL | MOVE_EFFECT_POWER_TRICK|MOVE_EFFECT_AQUA_RING \
|
||||
| MOVE_EFFECT_ABILITY_SUPPRESSED | MOVE_EFFECT_EMBARGO | MOVE_EFFECT_HEAL_BLOCK | MOVE_EFFECT_MAGNET_RISE)
|
||||
|
||||
#define MOVE_EFFECT_NO_WEATHER_DAMAGE (MOVE_EFFECT_UNDERGROUND | MOVE_EFFECT_UNDERWATER)
|
||||
|
||||
#define MOVE_EFFECT_LOCK_ON_SHIFT 3
|
||||
#define MOVE_EFFECT_YAWN_SHIFT 11
|
||||
|
|
@ -80,23 +68,11 @@
|
|||
|
||||
#define MOVE_STATUS_NO_MORE_WORK (1 << 31)
|
||||
|
||||
#define MOVE_STATUS_DID_NOT_HIT (MOVE_STATUS_MISSED \
|
||||
| MOVE_STATUS_INEFFECTIVE \
|
||||
| MOVE_STATUS_FAILED \
|
||||
| MOVE_STATUS_LEVITATED \
|
||||
| MOVE_STATUS_ONE_HIT_KO_FAILED \
|
||||
| MOVE_STATUS_MULTI_HIT_DISRUPTED \
|
||||
| MOVE_STATUS_PROTECTED \
|
||||
| MOVE_STATUS_SEMI_INVULNERABLE \
|
||||
| MOVE_STATUS_LOST_FOCUS \
|
||||
| MOVE_STATUS_WONDER_GUARD \
|
||||
| MOVE_STATUS_STURDY \
|
||||
| MOVE_STATUS_MAGNET_RISE)
|
||||
|
||||
#define MOVE_STATUS_NO_EFFECTS (MOVE_STATUS_DID_NOT_HIT \
|
||||
| MOVE_STATUS_NO_PP \
|
||||
| MOVE_STATUS_NO_MORE_WORK)
|
||||
#define MOVE_STATUS_DID_NOT_HIT (MOVE_STATUS_MISSED | MOVE_STATUS_INEFFECTIVE | MOVE_STATUS_FAILED | MOVE_STATUS_LEVITATED \
|
||||
| MOVE_STATUS_ONE_HIT_KO_FAILED | MOVE_STATUS_MULTI_HIT_DISRUPTED | MOVE_STATUS_PROTECTED | MOVE_STATUS_SEMI_INVULNERABLE \
|
||||
| MOVE_STATUS_LOST_FOCUS | MOVE_STATUS_WONDER_GUARD | MOVE_STATUS_STURDY | MOVE_STATUS_MAGNET_RISE)
|
||||
|
||||
#define MOVE_STATUS_NO_EFFECTS (MOVE_STATUS_DID_NOT_HIT | MOVE_STATUS_NO_PP | MOVE_STATUS_NO_MORE_WORK)
|
||||
#define MOVE_STATUS_DID_NOT_AFFECT (MOVE_STATUS_INEFFECTIVE | MOVE_STATUS_WONDER_GUARD)
|
||||
#define MOVE_STATUS_IMMUNE (MOVE_STATUS_DID_NOT_AFFECT | MOVE_STATUS_LEVITATED | MOVE_STATUS_MAGNET_RISE)
|
||||
#define MOVE_STATUS_GENERAL_MISS (MOVE_STATUS_MISSED | MOVE_STATUS_SEMI_INVULNERABLE)
|
||||
|
|
@ -115,10 +91,7 @@
|
|||
#define RANGE_USER_OR_ALLY (1 << 9)
|
||||
#define RANGE_SINGLE_TARGET_ME_FIRST (1 << 10)
|
||||
|
||||
#define RANGE_MY_SIDE (RANGE_SINGLE_TARGET_SPECIAL \
|
||||
| RANGE_USER \
|
||||
| RANGE_FIELD \
|
||||
| RANGE_USER_OR_ALLY)
|
||||
#define RANGE_MY_SIDE (RANGE_SINGLE_TARGET_SPECIAL | RANGE_USER | RANGE_FIELD | RANGE_USER_OR_ALLY)
|
||||
|
||||
#define MOVE_FLAG_MAKES_CONTACT (1 << 0)
|
||||
#define MOVE_FLAG_CAN_PROTECT (1 << 1)
|
||||
|
|
@ -129,4 +102,4 @@
|
|||
#define MOVE_FLAG_HIDES_HP_GAUGES (1 << 6)
|
||||
#define MOVE_FLAG_HIDES_SHADOWS (1 << 7)
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_MOVES_H
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_MOVES_H
|
||||
|
|
|
|||
|
|
@ -1,12 +0,0 @@
|
|||
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_SCRIPTS_H
|
||||
#define POKEPLATINUM_CONSTANTS_BATTLE_SCRIPTS_H
|
||||
|
||||
enum {
|
||||
BATTLE_SCRIPT_ANIMATION_DEEP_FOG = 18,
|
||||
BATTLE_SCRIPT_ANIMATION_RAINING,
|
||||
BATTLE_SCRIPT_ANIMATION_HAILING,
|
||||
BATTLE_SCRIPT_ANIMATION_SANDSTORM,
|
||||
BATTLE_SCRIPT_ANIMATION_SUNNY,
|
||||
};
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_SCRIPTS_H
|
||||
|
|
@ -11,15 +11,10 @@
|
|||
#define MOVE_SIDE_EFFECT_TO_ATTACKER (1 << 30)
|
||||
#define MOVE_SIDE_EFFECT_TO_DEFENDER (1 << 31)
|
||||
|
||||
#define MOVE_SIDE_EFFECT_FLAGS (MOVE_SIDE_EFFECT_BREAK_SCREENS \
|
||||
| MOVE_SIDE_EFFECT_CHECK_SUBSTITUTE \
|
||||
| MOVE_SIDE_EFFECT_CHECK_HP_AND_SUBSTITUTE \
|
||||
| MOVE_SIDE_EFFECT_PROBABILISTIC \
|
||||
| MOVE_SIDE_EFFECT_CANNOT_PREVENT \
|
||||
| MOVE_SIDE_EFFECT_CHECK_HP \
|
||||
| MOVE_SIDE_EFFECT_ON_HIT \
|
||||
| MOVE_SIDE_EFFECT_TO_ATTACKER \
|
||||
| MOVE_SIDE_EFFECT_TO_DEFENDER)
|
||||
#define MOVE_SIDE_EFFECT_FLAGS (MOVE_SIDE_EFFECT_BREAK_SCREENS | MOVE_SIDE_EFFECT_CHECK_SUBSTITUTE | MOVE_SIDE_EFFECT_CHECK_HP_AND_SUBSTITUTE \
|
||||
| MOVE_SIDE_EFFECT_PROBABILISTIC | MOVE_SIDE_EFFECT_CANNOT_PREVENT | MOVE_SIDE_EFFECT_CHECK_HP \
|
||||
| MOVE_SIDE_EFFECT_ON_HIT | MOVE_SIDE_EFFECT_TO_ATTACKER | MOVE_SIDE_EFFECT_TO_DEFENDER)
|
||||
|
||||
#define MOVE_SIDE_EFFECT_SUBSCRIPT_POINTER (~MOVE_SIDE_EFFECT_FLAGS)
|
||||
|
||||
#endif // POKEPLATINUM_CONSTANTS_BATTLE_SIDE_EFFECTS_H
|
||||
|
|
|
|||
|
|
@ -28,29 +28,16 @@
|
|||
#define SYSCTL_MON_FAINTED ((1 << 24) | (1 << 25) | (1 << 26) | (1 << 27))
|
||||
#define SYSCTL_MON_SELFDESTRUCTED ((1 << 28) | (1 << 29) | (1 << 30) | (1 << 31))
|
||||
|
||||
#define SYSCTL_INIT (~(SYSCTL_SKIP_ATTACK_MESSAGE \
|
||||
| SYSCTL_CHECK_LOOP_ONLY_ONCE \
|
||||
| SYSCTL_HIT_DURING_FLY \
|
||||
| SYSCTL_HIT_DURING_DIG \
|
||||
| SYSCTL_HIT_DURING_DIVE \
|
||||
| SYSCTL_FIRST_OF_MULTI_TURN \
|
||||
| SYSCTL_SKIP_SPRITE_BLINK \
|
||||
| SYSCTL_TRY_SYNCHRONIZE_STATUS \
|
||||
| SYSCTL_BATON_PASS \
|
||||
| SYSCTL_LAST_OF_MULTI_TURN \
|
||||
| SYSCTL_NONSTANDARD_ACC_CHECK \
|
||||
| SYSCTL_IGNORE_TYPE_CHECKS \
|
||||
| SYSCTL_CRASH_DAMAGE \
|
||||
| SYSCTL_MOVE_HIT \
|
||||
| SYSCTL_PLAYED_MOVE_ANIMATION \
|
||||
| SYSCTL_IGNORE_IMMUNITIES \
|
||||
| SYSCTL_MULTI_HIT_SKIP_MESSAGE \
|
||||
| SYSCTL_FAIL_STAT_STAGE_CHANGE \
|
||||
| SYSCTL_MESSAGE_AFTER_MISS \
|
||||
| SYSCTL_HIT_DURING_SHADOW_FORCE \
|
||||
| SYSCTL_REUSE_LAST_MOVE \
|
||||
| SYSCTL_TURN_OFF_MESSAGES \
|
||||
| SYSCTL_APPLY_SECONDARY_EFFECT))
|
||||
#define SYSCTL_INIT_P1 (SYSCTL_SKIP_ATTACK_MESSAGE | SYSCTL_CHECK_LOOP_ONLY_ONCE | SYSCTL_HIT_DURING_FLY \
|
||||
| SYSCTL_HIT_DURING_DIG | SYSCTL_HIT_DURING_DIVE | SYSCTL_FIRST_OF_MULTI_TURN \
|
||||
| SYSCTL_SKIP_SPRITE_BLINK | SYSCTL_TRY_SYNCHRONIZE_STATUS | SYSCTL_BATON_PASS \
|
||||
| SYSCTL_LAST_OF_MULTI_TURN | SYSCTL_NONSTANDARD_ACC_CHECK | SYSCTL_IGNORE_TYPE_CHECKS)
|
||||
#define SYSCTL_INIT_P2 (SYSCTL_CRASH_DAMAGE | SYSCTL_MOVE_HIT | SYSCTL_PLAYED_MOVE_ANIMATION \
|
||||
| SYSCTL_IGNORE_IMMUNITIES | SYSCTL_MULTI_HIT_SKIP_MESSAGE | SYSCTL_FAIL_STAT_STAGE_CHANGE \
|
||||
| SYSCTL_MESSAGE_AFTER_MISS | SYSCTL_HIT_DURING_SHADOW_FORCE | SYSCTL_REUSE_LAST_MOVE \
|
||||
| SYSCTL_TURN_OFF_MESSAGES | SYSCTL_APPLY_SECONDARY_EFFECT)
|
||||
|
||||
#define SYSCTL_INIT (~(SYSCTL_INIT_P1 | SYSCTL_INIT_P2))
|
||||
|
||||
#define SYSCTL_MON_FAINTED_SHIFT 24
|
||||
#define SYSCTL_MON_SELFDESTRUCTED_SHIFT 28
|
||||
|
|
@ -67,12 +54,12 @@
|
|||
#define SYSCTL_LINK_WAITING ((1 << 24) | (1 << 25) | SYSCTL_FORM_CHANGE | (1 << 27))
|
||||
#define SYSCTL_PAYOUT_EXP ((1 << 28) | (1 << 29) | (1 << 30) | (1 << 31))
|
||||
|
||||
#define SYSCTL_INIT2 (~(SYSCTL_UPDATE_STAT_STAGES \
|
||||
| SYSCTL_ATTACK_MESSAGE_SHOWN \
|
||||
| SYSCTL_MAGIC_COAT_REFLECTED \
|
||||
| SYSCTL_UTURN_ACTIVE \
|
||||
| SYSCTL_MOVE_SUCCEEDED \
|
||||
| SYSCTL_RECOVER_HP_VISUAL))
|
||||
#define SYSCTL_INIT2 (~(SYSCTL_UPDATE_STAT_STAGES \
|
||||
| SYSCTL_ATTACK_MESSAGE_SHOWN \
|
||||
| SYSCTL_MAGIC_COAT_REFLECTED \
|
||||
| SYSCTL_UTURN_ACTIVE \
|
||||
| SYSCTL_MOVE_SUCCEEDED \
|
||||
| SYSCTL_RECOVER_HP_VISUAL))
|
||||
|
||||
#define SYSCTL_LINK_WAITING_SHIFT 24
|
||||
#define SYSCTL_PAYOUT_EXP_SHIFT 28
|
||||
|
|
|
|||
|
|
@ -1127,7 +1127,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
}
|
||||
}
|
||||
|
||||
battleCtx->scriptTemp = BATTLE_SCRIPT_ANIMATION_RAINING;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_WEATHER_RAIN;
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1152,7 +1152,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
}
|
||||
}
|
||||
|
||||
battleCtx->scriptTemp = BATTLE_SCRIPT_ANIMATION_SANDSTORM;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_WEATHER_SAND;
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1177,7 +1177,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
}
|
||||
}
|
||||
|
||||
battleCtx->scriptTemp = BATTLE_SCRIPT_ANIMATION_SUNNY;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_WEATHER_SUN;
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1202,7 +1202,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
}
|
||||
}
|
||||
|
||||
battleCtx->scriptTemp = BATTLE_SCRIPT_ANIMATION_HAILING;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_WEATHER_HAIL;
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
@ -1216,7 +1216,7 @@ static void BattleController_CheckFieldConditions(BattleSystem *battleSys, Battl
|
|||
|
||||
PrepareSubroutineSequence(battleCtx, BATTLE_SUBSEQ_WEATHER_CONTINUES);
|
||||
|
||||
battleCtx->scriptTemp = BATTLE_SCRIPT_ANIMATION_DEEP_FOG;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_WEATHER_FOG;
|
||||
state = STATE_BREAK_OUT;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@
|
|||
#include "battle/battle_controller.h"
|
||||
#include "battle/battle_message.h"
|
||||
#include "battle/battle_mon.h"
|
||||
#include "battle/btlcmd.h"
|
||||
#include "battle/common.h"
|
||||
|
||||
#include "unk_020021B0.h"
|
||||
|
|
@ -1845,23 +1844,23 @@ void Battler_UnlockMoveChoice(BattleSystem *battleSys, BattleContext *battleCtx,
|
|||
battleCtx->battleMons[battler].moveEffectsData.furyCutterCount = 0;
|
||||
}
|
||||
|
||||
enum StatusEffect Battler_StatusCondition(BattleContext *battleCtx, int battler)
|
||||
enum BattleAnimation Battler_StatusCondition(BattleContext *battleCtx, int battler)
|
||||
{
|
||||
if (battleCtx->battleMons[battler].status & MON_CONDITION_SLEEP) {
|
||||
return STATUS_EFFECT_SLEEP;
|
||||
return BATTLE_ANIMATION_ASLEEP;
|
||||
} else if (battleCtx->battleMons[battler].status & MON_CONDITION_POISON) {
|
||||
return STATUS_EFFECT_POISON;
|
||||
return BATTLE_ANIMATION_POISONED;
|
||||
} else if (battleCtx->battleMons[battler].status & MON_CONDITION_BURN) {
|
||||
return STATUS_EFFECT_BURN;
|
||||
return BATTLE_ANIMATION_BURNED;
|
||||
} else if (battleCtx->battleMons[battler].status & MON_CONDITION_FREEZE) {
|
||||
return STATUS_EFFECT_FREEZE;
|
||||
return BATTLE_ANIMATION_FROZEN;
|
||||
} else if (battleCtx->battleMons[battler].status & MON_CONDITION_PARALYSIS) {
|
||||
return STATUS_EFFECT_PARALYSIS;
|
||||
return BATTLE_ANIMATION_PARALYZED;
|
||||
} else if (battleCtx->battleMons[battler].status & MON_CONDITION_TOXIC) {
|
||||
return STATUS_EFFECT_POISON;
|
||||
return BATTLE_ANIMATION_POISONED;
|
||||
}
|
||||
|
||||
return STATUS_EFFECT_NONE;
|
||||
return BATTLE_ANIMATION_NONE;
|
||||
}
|
||||
|
||||
enum {
|
||||
|
|
@ -7309,17 +7308,17 @@ void BattleSystem_SortMonActionOrder(BattleSystem *battleSys, BattleContext *bat
|
|||
}
|
||||
}
|
||||
|
||||
static const enum StatusEffect sEffectsAlwaysShown[] = {
|
||||
STATUS_EFFECT_CHANGE_FORM_OUT,
|
||||
STATUS_EFFECT_CHANGE_FORM_IN,
|
||||
STATUS_EFFECT_ITEM_ESCAPE,
|
||||
STATUS_EFFECT_WEATHER_FOG,
|
||||
STATUS_EFFECT_WEATHER_RAIN,
|
||||
STATUS_EFFECT_WEATHER_HAIL,
|
||||
STATUS_EFFECT_WEATHER_SAND,
|
||||
STATUS_EFFECT_WEATHER_SUN,
|
||||
STATUS_EFFECT_SUBSTITUTE_ON,
|
||||
STATUS_EFFECT_SUBSTITUTE_OFF,
|
||||
static const enum BattleAnimation sEffectsAlwaysShown[] = {
|
||||
BATTLE_ANIMATION_SUB_OUT,
|
||||
BATTLE_ANIMATION_SUB_IN,
|
||||
BATTLE_ANIMATION_ITEM_ESCAPE,
|
||||
BATTLE_ANIMATION_WEATHER_FOG,
|
||||
BATTLE_ANIMATION_WEATHER_RAIN,
|
||||
BATTLE_ANIMATION_WEATHER_HAIL,
|
||||
BATTLE_ANIMATION_WEATHER_SAND,
|
||||
BATTLE_ANIMATION_WEATHER_SUN,
|
||||
BATTLE_ANIMATION_SUBSTITUTE_IN,
|
||||
BATTLE_ANIMATION_SUBSTITUTE_OUT,
|
||||
};
|
||||
|
||||
BOOL BattleSystem_ShouldShowStatusEffect(BattleContext *battleCtx, int battler, int status)
|
||||
|
|
|
|||
|
|
@ -2137,43 +2137,43 @@ static BOOL BtlCmd_If(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
int *data = BattleScript_VarAddress(battleSys, battleCtx, srcVar);
|
||||
|
||||
switch (op) {
|
||||
case IFOP_EQU:
|
||||
case OPCODE_EQU:
|
||||
if (*data != compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_NEQ:
|
||||
case OPCODE_NEQ:
|
||||
if (*data == compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_GT:
|
||||
case OPCODE_GT:
|
||||
if (*data <= compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_LTE:
|
||||
case OPCODE_LTE:
|
||||
if (*data > compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_SET:
|
||||
case OPCODE_FLAG_SET:
|
||||
if ((*data & compareTo) == FALSE) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_NOT:
|
||||
case OPCODE_FLAG_NOT:
|
||||
if (*data & compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_AND:
|
||||
case OPCODE_AND:
|
||||
if ((*data & compareTo) != compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
|
|
@ -2218,43 +2218,43 @@ static BOOL BtlCmd_IfMonData(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
int data = BattleMon_Get(battleCtx, battler, srcParam, NULL);
|
||||
|
||||
switch (op) {
|
||||
case IFOP_EQU:
|
||||
case OPCODE_EQU:
|
||||
if (data != compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_NEQ:
|
||||
case OPCODE_NEQ:
|
||||
if (data == compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_GT:
|
||||
case OPCODE_GT:
|
||||
if (data <= compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_LTE:
|
||||
case OPCODE_LTE:
|
||||
if (data > compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_SET:
|
||||
case OPCODE_FLAG_SET:
|
||||
if ((data & compareTo) == FALSE) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_NOT:
|
||||
case OPCODE_FLAG_NOT:
|
||||
if (data & compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_AND:
|
||||
case OPCODE_AND:
|
||||
if ((data & compareTo) != compareTo) {
|
||||
jump = 0;
|
||||
}
|
||||
|
|
@ -2921,64 +2921,64 @@ static BOOL BtlCmd_SetVarValue(BattleSystem *battleSys, BattleContext *battleCtx
|
|||
u32 mask;
|
||||
|
||||
switch (op) {
|
||||
case VALOP_SET:
|
||||
case OPCODE_SET:
|
||||
*var = srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_ADD:
|
||||
case OPCODE_ADD:
|
||||
*var += srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_SUB:
|
||||
case OPCODE_SUB:
|
||||
*var -= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_ON:
|
||||
case OPCODE_FLAG_ON:
|
||||
*var |= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_OFF:
|
||||
case OPCODE_FLAG_OFF:
|
||||
*var &= FLAG_NEGATE(srcVal);
|
||||
break;
|
||||
|
||||
case VALOP_MUL:
|
||||
case OPCODE_MUL:
|
||||
*var *= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_DIV:
|
||||
case OPCODE_DIV:
|
||||
*var /= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_LSH:
|
||||
case OPCODE_LEFT_SHIFT:
|
||||
*var = *var << srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_RSH:
|
||||
case OPCODE_RIGHT_SHIFT:
|
||||
mask = *var;
|
||||
mask = mask >> srcVal;
|
||||
*var = mask;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_INDEX:
|
||||
case OPCODE_FLAG_INDEX:
|
||||
*var = FlagIndex(srcVal);
|
||||
break;
|
||||
|
||||
case VALOP_GET:
|
||||
case OPCODE_GET:
|
||||
GF_ASSERT(FALSE);
|
||||
break;
|
||||
|
||||
case VALOP_SUB_TO_ZERO:
|
||||
case OPCODE_SUB_TO_ZERO:
|
||||
*var -= srcVal;
|
||||
if (*var < 0) {
|
||||
*var = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case VALOP_XOR:
|
||||
case OPCODE_BITWISE_XOR:
|
||||
*var ^= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_AND:
|
||||
case OPCODE_BITWISE_AND:
|
||||
*var &= srcVal;
|
||||
break;
|
||||
|
||||
|
|
@ -3061,19 +3061,19 @@ static BOOL BtlCmd_ChangeStatStage(BattleSystem *battleSys, BattleContext *battl
|
|||
if (battleCtx->sideEffectParam >= MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES) {
|
||||
statOffset = battleCtx->sideEffectParam - MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_2_STAGES;
|
||||
stageChange = -2;
|
||||
battleCtx->scriptTemp = STATUS_EFFECT_STAGE_DOWN;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_STAT_DROP;
|
||||
} else if (battleCtx->sideEffectParam >= MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES) {
|
||||
statOffset = battleCtx->sideEffectParam - MOVE_SUBSCRIPT_PTR_ATTACK_UP_2_STAGES;
|
||||
stageChange = 2;
|
||||
battleCtx->scriptTemp = STATUS_EFFECT_STAGE_UP;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_STAT_BOOST;
|
||||
} else if (battleCtx->sideEffectParam >= MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE) {
|
||||
statOffset = battleCtx->sideEffectParam - MOVE_SUBSCRIPT_PTR_ATTACK_DOWN_1_STAGE;
|
||||
stageChange = -1;
|
||||
battleCtx->scriptTemp = STATUS_EFFECT_STAGE_DOWN;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_STAT_DROP;
|
||||
} else {
|
||||
statOffset = battleCtx->sideEffectParam - MOVE_SUBSCRIPT_PTR_ATTACK_UP_1_STAGE;
|
||||
stageChange = 1;
|
||||
battleCtx->scriptTemp = STATUS_EFFECT_STAGE_UP;
|
||||
battleCtx->scriptTemp = BATTLE_ANIMATION_STAT_BOOST;
|
||||
}
|
||||
|
||||
if (stageChange > 0) {
|
||||
|
|
@ -3237,53 +3237,53 @@ static BOOL BtlCmd_SetMonDataValue(BattleSystem *battleSys, BattleContext *battl
|
|||
int monData = BattleMon_Get(battleCtx, battler, paramID, NULL);
|
||||
|
||||
switch (op) {
|
||||
case VALOP_SET:
|
||||
case OPCODE_SET:
|
||||
monData = srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_ADD:
|
||||
case OPCODE_ADD:
|
||||
monData += srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_SUB:
|
||||
case OPCODE_SUB:
|
||||
monData -= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_ON:
|
||||
case OPCODE_FLAG_ON:
|
||||
monData |= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_OFF:
|
||||
case OPCODE_FLAG_OFF:
|
||||
monData &= FLAG_NEGATE(srcVal);
|
||||
break;
|
||||
|
||||
case VALOP_MUL:
|
||||
case OPCODE_MUL:
|
||||
monData *= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_DIV:
|
||||
case OPCODE_DIV:
|
||||
monData /= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_LSH:
|
||||
case OPCODE_LEFT_SHIFT:
|
||||
monData = monData << srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_RSH:
|
||||
case OPCODE_RIGHT_SHIFT:
|
||||
u32 mask = monData;
|
||||
mask = mask >> srcVal;
|
||||
monData = mask;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_INDEX:
|
||||
case OPCODE_FLAG_INDEX:
|
||||
monData = FlagIndex(srcVal);
|
||||
break;
|
||||
|
||||
case VALOP_GET:
|
||||
case OPCODE_GET:
|
||||
GF_ASSERT(FALSE);
|
||||
break;
|
||||
|
||||
case VALOP_SUB_TO_ZERO:
|
||||
case OPCODE_SUB_TO_ZERO:
|
||||
monData -= srcVal;
|
||||
|
||||
if (monData < 0) {
|
||||
|
|
@ -3291,11 +3291,11 @@ static BOOL BtlCmd_SetMonDataValue(BattleSystem *battleSys, BattleContext *battl
|
|||
}
|
||||
break;
|
||||
|
||||
case VALOP_XOR:
|
||||
case OPCODE_BITWISE_XOR:
|
||||
monData ^= srcVal;
|
||||
break;
|
||||
|
||||
case VALOP_AND:
|
||||
case OPCODE_BITWISE_AND:
|
||||
monData &= srcVal;
|
||||
break;
|
||||
|
||||
|
|
@ -3468,53 +3468,53 @@ static BOOL BtlCmd_SetVarFromVar(BattleSystem *battleSys, BattleContext *battleC
|
|||
int *srcData = BattleScript_VarAddress(battleSys, battleCtx, srcVar);
|
||||
|
||||
switch (op) {
|
||||
case VALOP_SET:
|
||||
case OPCODE_SET:
|
||||
*dstData = *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_ADD:
|
||||
case OPCODE_ADD:
|
||||
*dstData += *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_SUB:
|
||||
case OPCODE_SUB:
|
||||
*dstData -= *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_ON:
|
||||
case OPCODE_FLAG_ON:
|
||||
*dstData |= *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_OFF:
|
||||
case OPCODE_FLAG_OFF:
|
||||
*dstData &= FLAG_NEGATE(*srcData);
|
||||
break;
|
||||
|
||||
case VALOP_MUL:
|
||||
case OPCODE_MUL:
|
||||
*dstData *= *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_DIV:
|
||||
case OPCODE_DIV:
|
||||
*dstData /= *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_LSH:
|
||||
case OPCODE_LEFT_SHIFT:
|
||||
*dstData = *dstData << *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_RSH:
|
||||
case OPCODE_RIGHT_SHIFT:
|
||||
u32 tmp = *dstData;
|
||||
tmp = tmp >> *srcData;
|
||||
*dstData = tmp;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_INDEX:
|
||||
case OPCODE_FLAG_INDEX:
|
||||
*dstData = FlagIndex(*srcData);
|
||||
break;
|
||||
|
||||
case VALOP_GET:
|
||||
case OPCODE_GET:
|
||||
*srcData = *dstData;
|
||||
break;
|
||||
|
||||
case VALOP_SUB_TO_ZERO:
|
||||
case OPCODE_SUB_TO_ZERO:
|
||||
*dstData -= *srcData;
|
||||
|
||||
if (*dstData < 0) {
|
||||
|
|
@ -3522,11 +3522,11 @@ static BOOL BtlCmd_SetVarFromVar(BattleSystem *battleSys, BattleContext *battleC
|
|||
}
|
||||
break;
|
||||
|
||||
case VALOP_XOR:
|
||||
case OPCODE_BITWISE_XOR:
|
||||
*dstData ^= *srcData;
|
||||
break;
|
||||
|
||||
case VALOP_AND:
|
||||
case OPCODE_BITWISE_AND:
|
||||
*dstData &= *srcData;
|
||||
break;
|
||||
|
||||
|
|
@ -3566,53 +3566,53 @@ static BOOL BtlCmd_SetMonDataFromVar(BattleSystem *battleSys, BattleContext *bat
|
|||
int *varData = BattleScript_VarAddress(battleSys, battleCtx, var);
|
||||
|
||||
switch (op) {
|
||||
case VALOP_SET:
|
||||
case OPCODE_SET:
|
||||
monData = *varData;
|
||||
break;
|
||||
|
||||
case VALOP_ADD:
|
||||
case OPCODE_ADD:
|
||||
monData += *varData;
|
||||
break;
|
||||
|
||||
case VALOP_SUB:
|
||||
case OPCODE_SUB:
|
||||
monData -= *varData;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_ON:
|
||||
case OPCODE_FLAG_ON:
|
||||
monData |= *varData;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_OFF:
|
||||
case OPCODE_FLAG_OFF:
|
||||
monData &= FLAG_NEGATE(*varData);
|
||||
break;
|
||||
|
||||
case VALOP_MUL:
|
||||
case OPCODE_MUL:
|
||||
monData *= *varData;
|
||||
break;
|
||||
|
||||
case VALOP_DIV:
|
||||
case OPCODE_DIV:
|
||||
monData /= *varData;
|
||||
break;
|
||||
|
||||
case VALOP_LSH:
|
||||
case OPCODE_LEFT_SHIFT:
|
||||
monData = monData << *varData;
|
||||
break;
|
||||
|
||||
case VALOP_RSH:
|
||||
case OPCODE_RIGHT_SHIFT:
|
||||
u32 mask = monData;
|
||||
mask = mask >> *varData;
|
||||
monData = mask;
|
||||
break;
|
||||
|
||||
case VALOP_FLAG_INDEX:
|
||||
case OPCODE_FLAG_INDEX:
|
||||
monData = FlagIndex(*varData);
|
||||
break;
|
||||
|
||||
case VALOP_GET:
|
||||
case OPCODE_GET:
|
||||
*varData = monData;
|
||||
break;
|
||||
|
||||
case VALOP_SUB_TO_ZERO:
|
||||
case OPCODE_SUB_TO_ZERO:
|
||||
monData -= *varData;
|
||||
|
||||
if (monData < 0) {
|
||||
|
|
@ -3620,11 +3620,11 @@ static BOOL BtlCmd_SetMonDataFromVar(BattleSystem *battleSys, BattleContext *bat
|
|||
}
|
||||
break;
|
||||
|
||||
case VALOP_XOR:
|
||||
case OPCODE_BITWISE_XOR:
|
||||
monData ^= *varData;
|
||||
break;
|
||||
|
||||
case VALOP_AND:
|
||||
case OPCODE_BITWISE_AND:
|
||||
monData &= *varData;
|
||||
break;
|
||||
|
||||
|
|
@ -3633,7 +3633,7 @@ static BOOL BtlCmd_SetMonDataFromVar(BattleSystem *battleSys, BattleContext *bat
|
|||
break;
|
||||
}
|
||||
|
||||
if (op != VALOP_GET) {
|
||||
if (op != OPCODE_GET) {
|
||||
if (paramID == BATTLEMON_ABILITY) {
|
||||
BattleAI_SetAbility(battleCtx, battler, monData);
|
||||
}
|
||||
|
|
@ -3987,10 +3987,10 @@ static BOOL BtlCmd_PlayStatusEffect(BattleSystem *battleSys, BattleContext *batt
|
|||
int effect = BattleScript_Read(battleCtx);
|
||||
|
||||
if (BattleSystem_AnimationsOn(battleSys) == TRUE
|
||||
|| effect == STATUS_EFFECT_CHANGE_FORM_OUT
|
||||
|| effect == STATUS_EFFECT_CHANGE_FORM_IN
|
||||
|| effect == STATUS_EFFECT_SUBSTITUTE_OFF
|
||||
|| effect == STATUS_EFFECT_SUBSTITUTE_ON) {
|
||||
|| effect == BATTLE_ANIMATION_SUB_OUT
|
||||
|| effect == BATTLE_ANIMATION_SUB_IN
|
||||
|| effect == BATTLE_ANIMATION_SUBSTITUTE_OUT
|
||||
|| effect == BATTLE_ANIMATION_SUBSTITUTE_IN) {
|
||||
int battler = BattleScript_Battler(battleSys, battleCtx, inBattler);
|
||||
if (BattleSystem_ShouldShowStatusEffect(battleCtx, battler, effect) == TRUE) {
|
||||
BattleIO_PlayStatusEffect(battleSys, battleCtx, battler, effect);
|
||||
|
|
@ -4023,10 +4023,10 @@ static BOOL BtlCmd_PlayStatusEffectAToD(BattleSystem *battleSys, BattleContext *
|
|||
int effect = BattleScript_Read(battleCtx);
|
||||
|
||||
if (BattleSystem_AnimationsOn(battleSys) == TRUE
|
||||
|| effect == STATUS_EFFECT_CHANGE_FORM_OUT
|
||||
|| effect == STATUS_EFFECT_CHANGE_FORM_IN
|
||||
|| effect == STATUS_EFFECT_SUBSTITUTE_OFF
|
||||
|| effect == STATUS_EFFECT_SUBSTITUTE_ON) {
|
||||
|| effect == BATTLE_ANIMATION_SUB_OUT
|
||||
|| effect == BATTLE_ANIMATION_SUB_IN
|
||||
|| effect == BATTLE_ANIMATION_SUBSTITUTE_OUT
|
||||
|| effect == BATTLE_ANIMATION_SUBSTITUTE_IN) {
|
||||
int attacker = BattleScript_Battler(battleSys, battleCtx, inAttacker);
|
||||
int defender = BattleScript_Battler(battleSys, battleCtx, inDefender);
|
||||
|
||||
|
|
@ -4060,10 +4060,10 @@ static BOOL BtlCmd_PlayStatusEffectFromVar(BattleSystem *battleSys, BattleContex
|
|||
int *effect = BattleScript_VarAddress(battleSys, battleCtx, var);
|
||||
|
||||
if ((BattleSystem_AnimationsOn(battleSys) == TRUE
|
||||
|| var == STATUS_EFFECT_CHANGE_FORM_OUT // bug: this should be *effect, not var
|
||||
|| var == STATUS_EFFECT_CHANGE_FORM_IN // bug: this should be *effect, not var
|
||||
|| *effect == STATUS_EFFECT_SUBSTITUTE_OFF
|
||||
|| *effect == STATUS_EFFECT_SUBSTITUTE_ON)
|
||||
|| var == BATTLE_ANIMATION_SUB_OUT // bug: this should be *effect, not var
|
||||
|| var == BATTLE_ANIMATION_SUB_IN // bug: this should be *effect, not var
|
||||
|| *effect == BATTLE_ANIMATION_SUBSTITUTE_OUT
|
||||
|| *effect == BATTLE_ANIMATION_SUBSTITUTE_IN)
|
||||
&& BattleSystem_ShouldShowStatusEffect(battleCtx, battler, *effect) == TRUE) {
|
||||
BattleIO_PlayStatusEffect(battleSys, battleCtx, battler, *effect);
|
||||
}
|
||||
|
|
@ -4280,43 +4280,43 @@ static BOOL BtlCmd_IfVar(BattleSystem *battleSys, BattleContext *battleCtx)
|
|||
u32 *rhs = BattleScript_VarAddress(battleSys, battleCtx, rhsVar);
|
||||
|
||||
switch (op) {
|
||||
case IFOP_EQU:
|
||||
case OPCODE_EQU:
|
||||
if (*lhs != *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_NEQ:
|
||||
case OPCODE_NEQ:
|
||||
if (*lhs == *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_GT:
|
||||
case OPCODE_GT:
|
||||
if (*lhs <= *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_LTE:
|
||||
case OPCODE_LTE:
|
||||
if (*lhs > *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_SET:
|
||||
case OPCODE_FLAG_SET:
|
||||
if ((*lhs & *rhs) == FALSE) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_NOT:
|
||||
case OPCODE_FLAG_NOT:
|
||||
if (*lhs & *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_AND:
|
||||
case OPCODE_AND:
|
||||
if ((*lhs & *rhs) != *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
|
|
@ -4361,43 +4361,43 @@ static BOOL BtlCmd_IfMonDataVar(BattleSystem *battleSys, BattleContext *battleCt
|
|||
u32 *rhs = BattleScript_VarAddress(battleSys, battleCtx, rhsVar);
|
||||
|
||||
switch (op) {
|
||||
case IFOP_EQU:
|
||||
case OPCODE_EQU:
|
||||
if (lhs != *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_NEQ:
|
||||
case OPCODE_NEQ:
|
||||
if (lhs == *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_GT:
|
||||
case OPCODE_GT:
|
||||
if (lhs <= *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_LTE:
|
||||
case OPCODE_LTE:
|
||||
if (lhs > *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_SET:
|
||||
case OPCODE_FLAG_SET:
|
||||
if ((lhs & *rhs) == FALSE) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_FLAG_NOT:
|
||||
case OPCODE_FLAG_NOT:
|
||||
if (lhs & *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
break;
|
||||
|
||||
case IFOP_AND:
|
||||
case OPCODE_AND:
|
||||
if ((lhs & *rhs) != *rhs) {
|
||||
jump = 0;
|
||||
}
|
||||
|
|
@ -10072,7 +10072,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData)
|
|||
if (Pokemon_ShouldLevelUp(mon)) {
|
||||
// Only play the special level-up animation for an active battler
|
||||
if (data->battleCtx->selectedPartySlot[expBattler] == slot) {
|
||||
BattleIO_PlayStatusEffect(data->battleSys, data->battleCtx, expBattler, STATUS_EFFECT_LEVEL_UP);
|
||||
BattleIO_PlayStatusEffect(data->battleSys, data->battleCtx, expBattler, BATTLE_ANIMATION_LEVEL_UP);
|
||||
BattleIO_PlayLevelUpAnimation(data->battleSys, expBattler);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user