diff options
Diffstat (limited to 'include/battle.h')
-rw-r--r-- | include/battle.h | 62 |
1 files changed, 27 insertions, 35 deletions
diff --git a/include/battle.h b/include/battle.h index 0939c92b6..71dbe9a57 100644 --- a/include/battle.h +++ b/include/battle.h @@ -53,7 +53,7 @@ #define BATTLE_TYPE_PALACE 0x20000 #define BATTLE_TYPE_ARENA 0x40000 #define BATTLE_TYPE_FACTORY 0x80000 -#define BATTLE_TYPE_x100000 0x100000 +#define BATTLE_TYPE_PIKE 0x100000 #define BATTLE_TYPE_PYRAMID 0x200000 #define BATTLE_TYPE_INGAME_PARTNER 0x400000 #define BATTLE_TYPE_x800000 0x800000 @@ -62,7 +62,7 @@ #define BATTLE_TYPE_x4000000 0x4000000 #define BATTLE_TYPE_SECRET_BASE 0x8000000 #define BATTLE_TYPE_GROUDON 0x10000000 -#define BATTLE_TYPE_KYORGE 0x20000000 +#define BATTLE_TYPE_KYOGRE 0x20000000 #define BATTLE_TYPE_RAYQUAZA 0x40000000 #define BATTLE_TYPE_x80000000 0x80000000 @@ -72,8 +72,8 @@ #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) -#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000) +#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) +#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 @@ -86,8 +86,9 @@ #define BATTLE_FORFEITED 0x9 #define BATTLE_OPPONENT_TELEPORTED 0xA -#define BATTLE_OUTCOME_BIT_x80 0x80 +#define OUTCOME_LINK_BATTLE_RUN 0x80 +#define STATUS_NONE 0x0 #define STATUS_SLEEP 0x7 #define STATUS_POISON 0x8 #define STATUS_BURN 0x10 @@ -228,9 +229,9 @@ #define BATTLE_TERRAIN_UNDERWATER 3 #define BATTLE_TERRAIN_WATER 4 #define BATTLE_TERRAIN_POND 5 -#define BATTLE_TERRAIN_ROCK 6 +#define BATTLE_TERRAIN_MOUNTAIN 6 #define BATTLE_TERRAIN_CAVE 7 -#define BATTLE_TERRAIN_INSIDE 8 +#define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 // array entries for battle communication @@ -272,6 +273,8 @@ #define BS_GET_TARGET 0 #define BS_GET_ATTACKER 1 #define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 #define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update #define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability @@ -295,7 +298,6 @@ struct TrainerMonNoItemDefaultMoves u16 species; }; -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); u8 GetBankSide(u8 bank); struct TrainerMonItemDefaultMoves @@ -325,10 +327,10 @@ struct TrainerMonItemCustomMoves union TrainerMonPtr { - struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves; - struct TrainerMonNoItemCustomMoves* NoItemCustomMoves; - struct TrainerMonItemDefaultMoves* ItemDefaultMoves; - struct TrainerMonItemCustomMoves* ItemCustomMoves; + struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; + struct TrainerMonNoItemCustomMoves *NoItemCustomMoves; + struct TrainerMonItemDefaultMoves *ItemDefaultMoves; + struct TrainerMonItemCustomMoves *ItemCustomMoves; }; struct Trainer @@ -345,9 +347,6 @@ struct Trainer /*0x24*/ union TrainerMonPtr party; }; -#define PARTY_FLAG_CUSTOM_MOVES 0x1 -#define PARTY_FLAG_HAS_ITEM 0x2 - extern const struct Trainer gTrainers[]; #define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) @@ -613,10 +612,10 @@ struct BattleStruct u8 focusPunchBank; u8 field_49; u8 moneyMultiplier; - u8 field_4B; + u8 savedTurnActionNumber; u8 switchInAbilitiesCounter; - u8 field_4D; - u8 field_4E; + u8 faintedActionsState; + u8 faintedActionsBank; u8 field_4F; u16 expValue; u8 field_52; @@ -688,8 +687,8 @@ struct BattleStruct u8 field_182; u8 field_183; struct BattleEnigmaBerry battleEnigmaBerry; - u8 field_1A0; - u8 field_1A1; + u8 wishPerishSongState; + u8 wishPerishSongBank; bool8 overworldWeatherDone; u8 atkCancellerTracker; u8 field_1A4[96]; @@ -704,13 +703,6 @@ struct BattleStruct extern struct BattleStruct* gBattleStruct; -#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \ -{ \ - u8* var2 = (u8*)((u32)(arrayId)); \ - var2 = (u32)(structPtr) + var2; \ - var2[offsetof(struct structName, offsetField)] = value; \ -} - #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -805,7 +797,7 @@ extern struct BattleStruct* gBattleStruct; #define B_ANIM_ITEM_STEAL 0x10 #define B_ANIM_SNATCH_MOVE 0x11 #define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_x13 0x13 +#define B_ANIM_DOOM_DESIRE_HIT 0x13 #define B_ANIM_x14 0x14 #define B_ANIM_INGRAIN_HEAL 0x15 #define B_ANIM_WISH_HEAL 0x16 @@ -835,23 +827,23 @@ extern struct BattleStruct* gBattleStruct; #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit -#define SET_STAT_BUFF_ID(n)((n & 0xF)) #define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0)) +#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7)) + struct BattleScripting { s32 painSplitHp; s32 bideDmg; u8 multihitString[6]; u8 dmgMultiplier; - u8 field_F; + u8 twoTurnsMoveStringId; u8 animArg1; u8 animArg2; - u8 field_12; - u8 field_13; + u16 tripleKickPower; u8 atk49_state; - u8 field_15; - u8 field_16; + u8 bankWithAbility; + u8 multihitMoveEffect; u8 bank; u8 animTurn; u8 animTargetsHit; @@ -937,7 +929,7 @@ struct BattleHealthboxInfo u8 flag_x1 : 1; u8 flag_x2 : 1; u8 flag_x4 : 1; - u8 flag_x8 : 1; + u8 ballAnimActive : 1; // 0x8 u8 statusAnimActive : 1; // x10 u8 animFromTableActive : 1; // x20 u8 specialAnimActive : 1; //x40 |