diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2018-02-08 11:17:41 +0100 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2018-02-08 11:17:41 +0100 |
commit | 96290f4ee3864afdd9946541706102ecf6c1c009 (patch) | |
tree | d22bc2135fdee82ab53023ee42a2164379aafe82 /include | |
parent | a10fd5a7c4d92551c579baacf07c499b6f434619 (diff) |
pokemon and battle constants
Diffstat (limited to 'include')
-rw-r--r-- | include/battle.h | 35 | ||||
-rw-r--r-- | include/battle_script_commands.h | 45 | ||||
-rw-r--r-- | include/battle_scripts.h | 2 | ||||
-rw-r--r-- | include/battle_util.h | 2 | ||||
-rw-r--r-- | include/constants/battle_script_commands.h | 97 | ||||
-rw-r--r-- | include/constants/pokemon.h | 80 | ||||
-rw-r--r-- | include/pokemon.h | 94 | ||||
-rw-r--r-- | include/recorded_battle.h | 10 |
8 files changed, 194 insertions, 171 deletions
diff --git a/include/battle.h b/include/battle.h index 9e755aaec..247ab5f6a 100644 --- a/include/battle.h +++ b/include/battle.h @@ -90,27 +90,6 @@ #define TYPE_FORESIGHT 0xFE #define TYPE_ENDTABLE 0xFF -#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 -#define BS_GET_SCRIPTING_BANK 10 -#define BS_GET_OPPONENT1 12 -#define BS_GET_PLAYER2 13 -#define BS_GET_OPPONENT2 14 - -// for battle script commands -#define CMP_EQUAL 0x0 -#define CMP_NOT_EQUAL 0x1 -#define CMP_GREATER_THAN 0x2 -#define CMP_LESS_THAN 0x3 -#define CMP_COMMON_BITS 0x4 -#define CMP_NO_COMMON_BITS 0x5 - #define BATTLE_BUFFER_LINK_SIZE 0x1000 struct TrainerMonNoItemDefaultMoves @@ -511,6 +490,9 @@ struct BattleStruct typeArg = gBattleMoves[move].type; \ } +#define IS_MOVE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY) +#define IS_MOVE_SPECIAL(moveType)(moveType > TYPE_MYSTERY) + #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit @@ -678,7 +660,7 @@ extern u8 gCurrentActionFuncId; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gCurrMovePos; -extern u8 gUnknown_020241E9; +extern u8 gChosenMovePos; extern u16 gCurrentMove; extern u16 gChosenMove; extern u16 gRandomMove; @@ -689,8 +671,8 @@ extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gBattlerAttacker; extern u8 gBattlerTarget; -extern u8 gBank1; -extern u8 gEffectBank; +extern u8 gBattlerFainted; +extern u8 gEffectBattler; extern u8 gStringBattler; extern u8 gAbsentBattlerFlags; extern u8 gCritMultiplier; @@ -710,7 +692,6 @@ extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u8 gMoveResultFlags; extern u32 gHitMarker; -extern u8 gUnknown_02024284[MAX_BATTLERS_COUNT]; extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; extern u8 gUnknown_0202428C; extern u16 gSideStatuses[2]; @@ -726,7 +707,7 @@ extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; extern u16 gBattleWeather; extern struct WishFutureKnock gWishFutureKnock; -extern u16 gUnknown_020243FC; +extern u16 gIntroSlideFlags; extern u8 gSentPokesToOpponent[2]; extern u16 gDynamicBasePower; extern u16 gExpShareExp; @@ -738,7 +719,7 @@ extern u8 *gLinkBattleRecvBuffer; extern struct BattleResources *gBattleResources; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_020244B4[MAX_BATTLERS_COUNT]; +extern u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT]; extern u8 gBattlerInMenuId; extern bool8 gDoingBattleAnim; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 26659ff20..6c84d1f0f 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -1,51 +1,6 @@ #ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H #define GUARD_BATTLE_SCRIPT_COMMANDS_H -#define NO_ACC_CALC 0xFFFE -#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF -#define ACC_CURR_MOVE 0 - -#define CMP_EQUAL 0x0 -#define CMP_NOT_EQUAL 0x1 -#define CMP_GREATER_THAN 0x2 -#define CMP_LESS_THAN 0x3 -#define CMP_COMMON_BITS 0x4 -#define CMP_NO_COMMON_BITS 0x5 - -#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 - -#define ATK48_STAT_NEGATIVE 0x1 -#define ATK48_STAT_BY_TWO 0x2 -#define ATK48_BIT_x4 0x4 -#define ATK48_LOWER_FAIL_CHECK 0x8 - -#define ATK4F_DONT_CHECK_STATUSES 0x80 - -#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 -#define VARIOUS_SET_MAGIC_COAT_TARGET 1 -#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 -#define VARIOUS_GET_MOVE_TARGET 3 -#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 -#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 -#define VARIOUS_EMIT_YESNOBOX 13 -#define VARIOUS_WAIT_CRY 18 -#define VARIOUS_RETURN_OPPONENT_MON1 19 -#define VARIOUS_RETURN_OPPONENT_MON2 20 -#define VARIOUS_SET_TELEPORT_OUTCOME 25 -#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 - -#define ATK80_DMG_CHANGE_SIGN 0 -#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 -#define ATK80_DMG_DOUBLED 2 - -#define STAT_CHANGE_BS_PTR 0x1 -#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 - -#define STAT_CHANGE_WORKED 0 -#define STAT_CHANGE_DIDNT_WORK 1 - #define WINDOW_CLEAR 0x1 #define WINDOW_x80 0x80 diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 2e31a37c5..ffd999660 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -82,7 +82,7 @@ extern const u8 BattleScript_SpikesOnAttacker[]; extern const u8 BattleScript_82DAE7A[]; extern const u8 BattleScript_SpikesOnTarget[]; extern const u8 BattleScript_82DAEB1[]; -extern const u8 BattleScript_SpikesOngBank1[]; +extern const u8 BattleScript_SpikesOnFaintedBattler[]; extern const u8 BattleScript_82DAEE8[]; extern const u8 BattleScript_82DAEFE[]; extern const u8 BattleScript_PerishSongTakesLife[]; diff --git a/include/battle_util.h b/include/battle_util.h index 56628c11d..d992faa47 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -44,7 +44,7 @@ #define BS_GET_PLAYER2 13 #define BS_GET_OPPONENT2 14 -u8 GetBattleBank(u8 caseId); +u8 GetBattlerForBattleScript(u8 caseId); void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move); void PressurePPLoseOnUsingPerishSong(u8 bankAtk); void PressurePPLoseOnUsingImprision(u8 bankAtk); diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h new file mode 100644 index 000000000..0390f17f4 --- /dev/null +++ b/include/constants/battle_script_commands.h @@ -0,0 +1,97 @@ +#ifndef GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H +#define GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H + +// Battle Scripting and BattleCommunication addresses +#define sPAINSPLIT_HP gBattleScripting +#define sBIDE_DMG gBattleScripting + 4 +#define sMULTIHIT_STRING gBattleScripting + 8 +#define sDMG_MULTIPLIER gBattleScripting + 0xE +#define sTWOTURN_STRINGID gBattleScripting + 0xF +#define sB_ANIM_ARG1 gBattleScripting + 0x10 +#define sB_ANIM_ARG2 gBattleScripting + 0x11 +#define sTRIPLE_KICK_POWER gBattleScripting + 0x12 +#define sMOVEEND_STATE gBattleScripting + 0x14 +#define sBANK_WITH_ABILITY gBattleScripting + 0x15 +#define sMULTIHIT_EFFECT gBattleScripting + 0x16 +#define sBANK gBattleScripting + 0x17 +#define sB_ANIM_TURN gBattleScripting + 0x18 +#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19 +#define sSTATCHANGER gBattleScripting + 0x1A +#define sFIELD_1B gBattleScripting + 0x1B +#define sGIVEEXP_STATE gBattleScripting + 0x1C +#define sBATTLE_STYLE gBattleScripting + 0x1D +#define sLVLBOX_STATE gBattleScripting + 0x1E +#define sLEARNMOVE_STATE gBattleScripting + 0x1F +#define sFIELD_20 gBattleScripting + 0x20 +#define sRESHOW_MAIN_STATE gBattleScripting + 0x21 +#define sRESHOW_HELPER_STATE gBattleScripting + 0x22 +#define sFIELD_23 gBattleScripting + 0x23 +#define sFIELD_24 gBattleScripting + 0x24 +#define sMULTIPLAYER_ID gBattleScripting + 0x25 + +#define cEFFECT_CHOOSER gBattleCommunication + 3 +#define cMULTISTRING_CHOOSER gBattleCommunication + 5 + +// Battle Script defines for getting the wanted battler +#define BS_TARGET 0 +#define BS_ATTACKER 1 +#define BS_EFFECT_BATTLER 2 +#define BS_FAINTED 3 +#define BS_BANK_0 7 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update +#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_SCRIPTING 10 +#define BS_PLAYER1 11 +#define BS_OPPONENT1 12 +#define BS_PLAYER2 13 +#define BS_OPPONENT2 14 + +// atk 01, accuracy calc +#define NO_ACC_CALC 0xFFFE +#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF +#define ACC_CURR_MOVE 0 + +// compare operands +#define CMP_EQUAL 0x0 +#define CMP_NOT_EQUAL 0x1 +#define CMP_GREATER_THAN 0x2 +#define CMP_LESS_THAN 0x3 +#define CMP_COMMON_BITS 0x4 +#define CMP_NO_COMMON_BITS 0x5 + +// atk76, various +#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 +#define VARIOUS_SET_MAGIC_COAT_TARGET 1 +#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 +#define VARIOUS_GET_MOVE_TARGET 3 +#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 +#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 +#define VARIOUS_EMIT_YESNOBOX 13 +#define VARIOUS_WAIT_CRY 18 +#define VARIOUS_RETURN_OPPONENT_MON1 19 +#define VARIOUS_RETURN_OPPONENT_MON2 20 +#define VARIOUS_SET_TELEPORT_OUTCOME 25 +#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 + +// atk80, dmg manipulation +#define ATK80_DMG_CHANGE_SIGN 0 +#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 +#define ATK80_DMG_DOUBLED 2 + +// atk4F, a flag used for the jumpifcantswitch command +#define ATK4F_DONT_CHECK_STATUSES 0x80 + +// statchange defines +#define STAT_CHANGE_BS_PTR 0x1 +#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 +#define STAT_CHANGE_WORKED 0 +#define STAT_CHANGE_DIDNT_WORK 1 + +// atk48 +#define ATK48_STAT_NEGATIVE 0x1 +#define ATK48_STAT_BY_TWO 0x2 +#define ATK48_BIT_x4 0x4 +#define ATK48_LOWER_FAIL_CHECK 0x8 + +#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h new file mode 100644 index 000000000..78c1583b4 --- /dev/null +++ b/include/constants/pokemon.h @@ -0,0 +1,80 @@ +#ifndef GUARD_CONSTANTS_POKEMON_H +#define GUARD_CONSTANTS_POKEMON_H + +// Pokemon types +#define TYPE_NORMAL 0x00 +#define TYPE_FIGHTING 0x01 +#define TYPE_FLYING 0x02 +#define TYPE_POISON 0x03 +#define TYPE_GROUND 0x04 +#define TYPE_ROCK 0x05 +#define TYPE_BUG 0x06 +#define TYPE_GHOST 0x07 +#define TYPE_STEEL 0x08 +#define TYPE_MYSTERY 0x09 +#define TYPE_FIRE 0x0a +#define TYPE_WATER 0x0b +#define TYPE_GRASS 0x0c +#define TYPE_ELECTRIC 0x0d +#define TYPE_PSYCHIC 0x0e +#define TYPE_ICE 0x0f +#define TYPE_DRAGON 0x10 +#define TYPE_DARK 0x11 +#define NUMBER_OF_MON_TYPES 0x12 + +// Pokemon egg groups +#define EGG_GROUP_NONE 0 +#define EGG_GROUP_MONSTER 1 +#define EGG_GROUP_WATER_1 2 +#define EGG_GROUP_BUG 3 +#define EGG_GROUP_FLYING 4 +#define EGG_GROUP_FIELD 5 +#define EGG_GROUP_FAIRY 6 +#define EGG_GROUP_GRASS 7 +#define EGG_GROUP_HUMAN_LIKE 8 +#define EGG_GROUP_WATER_3 9 +#define EGG_GROUP_MINERAL 10 +#define EGG_GROUP_AMORPHOUS 11 +#define EGG_GROUP_WATER_2 12 +#define EGG_GROUP_DITTO 13 +#define EGG_GROUP_DRAGON 14 +#define EGG_GROUP_UNDISCOVERED 15 + +// Pokemon natures +#define NATURE_HARDY 0 +#define NATURE_LONELY 1 +#define NATURE_BRAVE 2 +#define NATURE_ADAMANT 3 +#define NATURE_NAUGHTY 4 +#define NATURE_BOLD 5 +#define NATURE_DOCILE 6 +#define NATURE_RELAXED 7 +#define NATURE_IMPISH 8 +#define NATURE_LAX 9 +#define NATURE_TIMID 10 +#define NATURE_HASTY 11 +#define NATURE_SERIOUS 12 +#define NATURE_JOLLY 13 +#define NATURE_NAIVE 14 +#define NATURE_MODEST 15 +#define NATURE_MILD 16 +#define NATURE_QUIET 17 +#define NATURE_BASHFUL 18 +#define NATURE_RASH 19 +#define NATURE_CALM 20 +#define NATURE_GENTLE 21 +#define NATURE_SASSY 22 +#define NATURE_CAREFUL 23 +#define NATURE_QUIRKY 24 + +// Pokemon Stats +#define STAT_HP 0 +#define STAT_ATK 1 +#define STAT_DEF 2 +#define STAT_SPEED 3 +#define STAT_SPATK 4 +#define STAT_SPDEF 5 +#define STAT_ACC 6 // only in battles +#define STAT_EVASION 7 // only in battles + +#endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/pokemon.h b/include/pokemon.h index f5d1683a2..1758e7b84 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H +#include "constants/pokemon.h" + #define MON_DATA_PERSONALITY 0 #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 @@ -107,81 +109,11 @@ #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF -#define TYPE_NORMAL 0x00 -#define TYPE_FIGHTING 0x01 -#define TYPE_FLYING 0x02 -#define TYPE_POISON 0x03 -#define TYPE_GROUND 0x04 -#define TYPE_ROCK 0x05 -#define TYPE_BUG 0x06 -#define TYPE_GHOST 0x07 -#define TYPE_STEEL 0x08 -#define TYPE_MYSTERY 0x09 -#define TYPE_FIRE 0x0a -#define TYPE_WATER 0x0b -#define TYPE_GRASS 0x0c -#define TYPE_ELECTRIC 0x0d -#define TYPE_PSYCHIC 0x0e -#define TYPE_ICE 0x0f -#define TYPE_DRAGON 0x10 -#define TYPE_DARK 0x11 - -#define NUMBER_OF_MON_TYPES 0x12 - #define MAX_TOTAL_EVS 510 #define NUM_STATS 6 #define UNOWN_FORM_COUNT 28 #define MAX_MON_LEVEL 100 -enum -{ - EGG_GROUP_NONE, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - EGG_GROUP_BUG, - EGG_GROUP_FLYING, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_WATER_3, - EGG_GROUP_MINERAL, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_WATER_2, - EGG_GROUP_DITTO, - EGG_GROUP_DRAGON, - EGG_GROUP_UNDISCOVERED -}; - -enum -{ - NATURE_HARDY, - NATURE_LONELY, - NATURE_BRAVE, - NATURE_ADAMANT, - NATURE_NAUGHTY, - NATURE_BOLD, - NATURE_DOCILE, - NATURE_RELAXED, - NATURE_IMPISH, - NATURE_LAX, - NATURE_TIMID, - NATURE_HASTY, - NATURE_SERIOUS, - NATURE_JOLLY, - NATURE_NAIVE, - NATURE_MODEST, - NATURE_MILD, - NATURE_QUIET, - NATURE_BASHFUL, - NATURE_RASH, - NATURE_CALM, - NATURE_GENTLE, - NATURE_SASSY, - NATURE_CAREFUL, - NATURE_QUIRKY, -}; - struct PokemonSubstruct0 { u16 species; @@ -374,28 +306,6 @@ struct BattlePokemon /*0x54*/ u32 otId; }; -enum -{ - STAT_STAGE_HP, // 0 - STAT_STAGE_ATK, // 1 - STAT_STAGE_DEF, // 2 - STAT_STAGE_SPEED, // 3 - STAT_STAGE_SPATK, // 4 - STAT_STAGE_SPDEF, // 5 - STAT_STAGE_ACC, // 6 - STAT_STAGE_EVASION, // 7 -}; - -enum -{ - STAT_HP, // 0 - STAT_ATK, // 1 - STAT_DEF, // 2 - STAT_SPD, // 3 - STAT_SPATK, // 4 - STAT_SPDEF, // 5 -}; - struct BaseStats { /* 0x00 */ u8 baseHP; diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 296245a24..8b1fa258d 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -7,9 +7,9 @@ extern u8 gUnknown_0203C7B4; void sub_8184DA4(u8 arg0); void sub_8184E58(void); -void RecordedBattle_SetBattlerAction(u8 bank, u8 action); -void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear); -u8 RecordedBattle_GetBattlerAction(u8 bank); +void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action); +void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear); +u8 RecordedBattle_GetBattlerAction(u8 battlerId); u8 sub_81850D0(void); u8 sub_81850DC(u8 *arg0); void sub_81851A8(u8 *arg0); @@ -19,13 +19,13 @@ void PlayRecordedBattle(void (*CB2_After)(void)); u8 sub_8185EA0(void); u8 sub_8185EAC(void); void RecordedBattle_SaveParties(void); -u8 GetActiveBankLinkPlayerGender(void); +u8 GetActiveBattlerLinkPlayerGender(void); void sub_8185F84(void); void sub_8185F90(u16 arg0); u8 sub_8185FAC(void); u8 GetBattleStyleInRecordedBattle(void); u8 GetTextSpeedInRecordedBattle(void); -void RecordedBattle_CopyBankMoves(void); +void RecordedBattle_CopyBattlerMoves(void); void sub_818603C(u8 arg0); u32 GetAiScriptsInRecordedBattle(void); void sub_8186444(void); |