Update battle-constant headers for assembler compatibility

This commit is contained in:
Rachel 2024-01-06 23:39:13 -08:00
parent 1bacaf3bdc
commit 5dcb0c3657
14 changed files with 1645 additions and 428 deletions

1224
asm/macros/btlcmd.inc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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"
]
}
}
}
}

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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)

View File

@ -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);
}