Merge branch 'master' into link
This commit is contained in:
+174
-378
@@ -2,70 +2,18 @@
|
||||
#define GUARD_BATTLE_H
|
||||
|
||||
// should they be included here or included individually by every file?
|
||||
#include "constants/battle.h"
|
||||
#include "battle_util.h"
|
||||
#include "battle_script_commands.h"
|
||||
#include "battle_2.h"
|
||||
#include "battle_main.h"
|
||||
#include "battle_ai_switch_items.h"
|
||||
#include "battle_gfx_sfx_util.h"
|
||||
#include "battle_util2.h"
|
||||
#include "battle_bg.h"
|
||||
|
||||
/*
|
||||
Banks are a name given to what could be called a 'battlerId' or 'monControllerId'.
|
||||
Each bank has a value consisting of two bits.
|
||||
0x1 bit is responsible for the side, 0 = player's side, 1 = opponent's side.
|
||||
0x2 bit is responsible for the id of sent out pokemon. 0 means it's the first sent out pokemon, 1 it's the second one. (Triple battle didn't exist at the time yet.)
|
||||
*/
|
||||
|
||||
#define BATTLE_BANKS_COUNT 4
|
||||
|
||||
#define IDENTITY_PLAYER_MON1 0
|
||||
#define IDENTITY_OPPONENT_MON1 1
|
||||
#define IDENTITY_PLAYER_MON2 2
|
||||
#define IDENTITY_OPPONENT_MON2 3
|
||||
|
||||
#define SIDE_PLAYER 0x0
|
||||
#define SIDE_OPPONENT 0x1
|
||||
|
||||
#define BIT_SIDE 0x1
|
||||
#define BIT_MON 0x2
|
||||
|
||||
#define GET_BANK_IDENTITY(bank)((gBanksByIdentity[bank]))
|
||||
#define GET_BANK_SIDE(bank)((GetBankIdentity(bank) & BIT_SIDE))
|
||||
#define GET_BANK_SIDE2(bank)((GET_BANK_IDENTITY(bank) & BIT_SIDE))
|
||||
|
||||
#define BATTLE_TYPE_DOUBLE 0x0001
|
||||
#define BATTLE_TYPE_LINK 0x0002
|
||||
#define BATTLE_TYPE_WILD 0x0004
|
||||
#define BATTLE_TYPE_TRAINER 0x0008
|
||||
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
|
||||
#define BATTLE_TYPE_20 0x0020
|
||||
#define BATTLE_TYPE_MULTI 0x0040
|
||||
#define BATTLE_TYPE_SAFARI 0x0080
|
||||
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
|
||||
#define BATTLE_TYPE_ROAMER 0x0400
|
||||
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
|
||||
#define BATTLE_TYPE_LEGENDARY 0x2000
|
||||
#define BATTLE_TYPE_REGI 0x4000
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
|
||||
#define BATTLE_TYPE_DOME 0x10000
|
||||
#define BATTLE_TYPE_PALACE 0x20000
|
||||
#define BATTLE_TYPE_ARENA 0x40000
|
||||
#define BATTLE_TYPE_FACTORY 0x80000
|
||||
#define BATTLE_TYPE_PIKE 0x100000
|
||||
#define BATTLE_TYPE_PYRAMID 0x200000
|
||||
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
|
||||
#define BATTLE_TYPE_x800000 0x800000
|
||||
#define BATTLE_TYPE_RECORDED 0x1000000
|
||||
#define BATTLE_TYPE_x2000000 0x2000000
|
||||
#define BATTLE_TYPE_x4000000 0x4000000
|
||||
#define BATTLE_TYPE_SECRET_BASE 0x8000000
|
||||
#define BATTLE_TYPE_GROUDON 0x10000000
|
||||
#define BATTLE_TYPE_KYOGRE 0x20000000
|
||||
#define BATTLE_TYPE_RAYQUAZA 0x40000000
|
||||
#define BATTLE_TYPE_x80000000 0x80000000
|
||||
#define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler])
|
||||
#define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE)
|
||||
#define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE)
|
||||
|
||||
#define TRAINER_OPPONENT_3FE 0x3FE
|
||||
#define TRAINER_OPPONENT_C00 0xC00
|
||||
@@ -73,157 +21,28 @@
|
||||
#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_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
|
||||
#define BATTLE_DREW 0x3
|
||||
#define BATTLE_RAN 0x4
|
||||
#define BATTLE_PLAYER_TELEPORTED 0x5
|
||||
#define BATTLE_POKE_FLED 0x6
|
||||
#define BATTLE_CAUGHT 0x7
|
||||
#define BATTLE_SAFARI_OUT_OF_BALLS 0x8
|
||||
#define BATTLE_FORFEITED 0x9
|
||||
#define BATTLE_OPPONENT_TELEPORTED 0xA
|
||||
|
||||
#define OUTCOME_LINK_BATTLE_RUN 0x80
|
||||
|
||||
#define STATUS_NONE 0x0
|
||||
#define STATUS_SLEEP 0x7
|
||||
#define STATUS_POISON 0x8
|
||||
#define STATUS_BURN 0x10
|
||||
#define STATUS_FREEZE 0x20
|
||||
#define STATUS_PARALYSIS 0x40
|
||||
#define STATUS_TOXIC_POISON 0x80
|
||||
#define STATUS_TOXIC_COUNTER 0xF00
|
||||
|
||||
#define STATUS_PSN_ANY ((STATUS_POISON | STATUS_TOXIC_POISON))
|
||||
#define STATUS_ANY ((STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON))
|
||||
|
||||
#define STATUS2_CONFUSION 0x00000007
|
||||
#define STATUS2_FLINCHED 0x00000008
|
||||
#define STATUS2_UPROAR 0x00000070
|
||||
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
|
||||
#define STATUS2_LOCK_CONFUSE 0x00000C00
|
||||
#define STATUS2_MULTIPLETURNS 0x00001000
|
||||
#define STATUS2_WRAPPED 0x0000E000
|
||||
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every bank
|
||||
#define STATUS2_INFATUATED_WITH(bank)((gBitTable[bank] << 16))
|
||||
#define STATUS2_FOCUS_ENERGY 0x00100000
|
||||
#define STATUS2_TRANSFORMED 0x00200000
|
||||
#define STATUS2_RECHARGE 0x00400000
|
||||
#define STATUS2_RAGE 0x00800000
|
||||
#define STATUS2_SUBSTITUTE 0x01000000
|
||||
#define STATUS2_DESTINY_BOND 0x02000000
|
||||
#define STATUS2_ESCAPE_PREVENTION 0x04000000
|
||||
#define STATUS2_NIGHTMARE 0x08000000
|
||||
#define STATUS2_CURSED 0x10000000
|
||||
#define STATUS2_FORESIGHT 0x20000000
|
||||
#define STATUS2_DEFENSE_CURL 0x40000000
|
||||
#define STATUS2_TORMENT 0x80000000
|
||||
|
||||
#define STATUS3_LEECHSEED_BANK 0x3
|
||||
#define STATUS3_LEECHSEED 0x4
|
||||
#define STATUS3_ALWAYS_HITS 0x18 // two bits
|
||||
#define STATUS3_PERISH_SONG 0x20
|
||||
#define STATUS3_ON_AIR 0x40
|
||||
#define STATUS3_UNDERGROUND 0x80
|
||||
#define STATUS3_MINIMIZED 0x100
|
||||
#define STATUS3_ROOTED 0x400
|
||||
#define STATUS3_CHARGED_UP 0x200
|
||||
#define STATUS3_YAWN 0x1800 // two bits
|
||||
#define STATUS3_IMPRISONED_OTHERS 0x2000
|
||||
#define STATUS3_GRUDGE 0x4000
|
||||
#define STATUS3_CANT_SCORE_A_CRIT 0x8000
|
||||
#define STATUS3_MUDSPORT 0x10000
|
||||
#define STATUS3_WATERSPORT 0x20000
|
||||
#define STATUS3_UNDERWATER 0x40000
|
||||
#define STATUS3_INTIMIDATE_POKES 0x80000
|
||||
#define STATUS3_TRACE 0x100000
|
||||
|
||||
#define STATUS3_SEMI_INVULNERABLE ((STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER))
|
||||
|
||||
#define HITMARKER_x10 0x00000010
|
||||
#define HITMARKER_x20 0x00000020
|
||||
#define HITMARKER_DESTINYBOND 0x00000040
|
||||
#define HITMARKER_NO_ANIMATIONS 0x00000080
|
||||
#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
|
||||
#define HITMARKER_NO_ATTACKSTRING 0x00000200
|
||||
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
|
||||
#define HITMARKER_NO_PPDEDUCT 0x00000800
|
||||
#define HITMARKER_PURSUIT_TRAP 0x00001000
|
||||
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
|
||||
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
|
||||
#define HITMARKER_RUN 0x00008000
|
||||
#define HITMARKER_IGNORE_ON_AIR 0x00010000
|
||||
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
|
||||
#define HITMARKER_IGNORE_UNDERWATER 0x00040000
|
||||
#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
|
||||
#define HITMARKER_x100000 0x00100000
|
||||
#define HITMARKER_x200000 0x00200000
|
||||
#define HITMARKER_x400000 0x00400000
|
||||
#define HITMARKER_x800000 0x00800000
|
||||
#define HITMARKER_GRUDGE 0x01000000
|
||||
#define HITMARKER_OBEYS 0x02000000
|
||||
#define HITMARKER_x4000000 0x04000000
|
||||
#define HITMARKER_x8000000 0x08000000
|
||||
#define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C))
|
||||
#define HITMARKER_UNK(bank) ((0x10000000 << bank))
|
||||
|
||||
#define SIDE_STATUS_REFLECT (1 << 0)
|
||||
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
|
||||
#define SIDE_STATUS_X4 (1 << 2)
|
||||
#define SIDE_STATUS_SPIKES (1 << 4)
|
||||
#define SIDE_STATUS_SAFEGUARD (1 << 5)
|
||||
#define SIDE_STATUS_FUTUREATTACK (1 << 6)
|
||||
#define SIDE_STATUS_MIST (1 << 8)
|
||||
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
|
||||
|
||||
#define ACTION_USE_MOVE 0
|
||||
#define ACTION_USE_ITEM 1
|
||||
#define ACTION_SWITCH 2
|
||||
#define ACTION_RUN 3
|
||||
#define ACTION_WATCHES_CAREFULLY 4
|
||||
#define ACTION_SAFARI_ZONE_BALL 5
|
||||
#define ACTION_POKEBLOCK_CASE 6
|
||||
#define ACTION_GO_NEAR 7
|
||||
#define ACTION_SAFARI_ZONE_RUN 8
|
||||
#define ACTION_9 9
|
||||
#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action
|
||||
#define ACTION_CANCEL_PARTNER 12 // when choosing an action
|
||||
#define ACTION_FINISHED 12 // when executing an action
|
||||
#define ACTION_NOTHING_FAINTED 13 // when choosing an action
|
||||
#define ACTION_INIT_VALUE 0xFF
|
||||
|
||||
#define MOVESTATUS_MISSED (1 << 0)
|
||||
#define MOVESTATUS_SUPEREFFECTIVE (1 << 1)
|
||||
#define MOVESTATUS_NOTVERYEFFECTIVE (1 << 2)
|
||||
#define MOVESTATUS_NOTAFFECTED (1 << 3)
|
||||
#define MOVESTATUS_ONEHITKO (1 << 4)
|
||||
#define MOVESTATUS_FAILED (1 << 5)
|
||||
#define MOVESTATUS_ENDURED (1 << 6)
|
||||
#define MOVESTATUS_HUNGON (1 << 7)
|
||||
|
||||
#define MOVESTATUS_NOEFFECT ((MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))
|
||||
// Battle Actions
|
||||
// These determine what each battler will do in a turn
|
||||
#define B_ACTION_USE_MOVE 0
|
||||
#define B_ACTION_USE_ITEM 1
|
||||
#define B_ACTION_SWITCH 2
|
||||
#define B_ACTION_RUN 3
|
||||
#define B_ACTION_SAFARI_WATCH_CAREFULLY 4
|
||||
#define B_ACTION_SAFARI_BALL 5
|
||||
#define B_ACTION_SAFARI_POKEBLOCK 6
|
||||
#define B_ACTION_SAFARI_GO_NEAR 7
|
||||
#define B_ACTION_SAFARI_RUN 8
|
||||
// The exact purposes of these are unclear
|
||||
#define B_ACTION_UNKNOWN9 9
|
||||
#define B_ACTION_EXEC_SCRIPT 10 // when executing an action
|
||||
#define B_ACTION_CANCEL_PARTNER 12 // when choosing an action
|
||||
#define B_ACTION_FINISHED 12 // when executing an action
|
||||
#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
|
||||
#define B_ACTION_NONE 0xFF
|
||||
|
||||
#define MAX_TRAINER_ITEMS 4
|
||||
#define MAX_MON_MOVES 4
|
||||
|
||||
#define WEATHER_RAIN_TEMPORARY (1 << 0)
|
||||
#define WEATHER_RAIN_DOWNPOUR (1 << 1)
|
||||
#define WEATHER_RAIN_PERMANENT (1 << 2)
|
||||
#define WEATHER_RAIN_ANY ((WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT))
|
||||
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
|
||||
#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
|
||||
#define WEATHER_SANDSTORM_ANY ((WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT))
|
||||
#define WEATHER_SUN_TEMPORARY (1 << 5)
|
||||
#define WEATHER_SUN_PERMANENT (1 << 6)
|
||||
#define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT))
|
||||
#define WEATHER_HAIL (1 << 7)
|
||||
#define WEATHER_HAIL_ANY ((WEATHER_HAIL))
|
||||
#define WEATHER_ANY ((WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY))
|
||||
|
||||
#define BATTLE_TERRAIN_GRASS 0
|
||||
#define BATTLE_TERRAIN_LONG_GRASS 1
|
||||
#define BATTLE_TERRAIN_SAND 2
|
||||
@@ -271,26 +90,7 @@
|
||||
#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
|
||||
{
|
||||
@@ -299,8 +99,6 @@ struct TrainerMonNoItemDefaultMoves
|
||||
u16 species;
|
||||
};
|
||||
|
||||
u8 GetBankSide(u8 bank);
|
||||
|
||||
struct TrainerMonItemDefaultMoves
|
||||
{
|
||||
u16 iv;
|
||||
@@ -382,8 +180,8 @@ struct DisableStruct
|
||||
/*0x12*/ u8 chargeTimer2 : 4;
|
||||
/*0x13*/ u8 tauntTimer1:4;
|
||||
/*0x13*/ u8 tauntTimer2:4;
|
||||
/*0x14*/ u8 bankPreventingEscape;
|
||||
/*0x15*/ u8 bankWithSureHit;
|
||||
/*0x14*/ u8 battlerPreventingEscape;
|
||||
/*0x15*/ u8 battlerWithSureHit;
|
||||
/*0x16*/ u8 isFirstTurn;
|
||||
/*0x17*/ u8 unk17;
|
||||
/*0x18*/ u8 truantCounter : 1;
|
||||
@@ -394,8 +192,6 @@ struct DisableStruct
|
||||
/*0x1A*/ u8 unk1A[2];
|
||||
};
|
||||
|
||||
extern struct DisableStruct gDisableStructs[BATTLE_BANKS_COUNT];
|
||||
|
||||
struct ProtectStruct
|
||||
{
|
||||
/* field_0 */
|
||||
@@ -429,13 +225,11 @@ struct ProtectStruct
|
||||
|
||||
/* field_4 */ u32 physicalDmg;
|
||||
/* field_8 */ u32 specialDmg;
|
||||
/* field_C */ u8 physicalBank;
|
||||
/* field_D */ u8 specialBank;
|
||||
/* field_C */ u8 physicalBattlerId;
|
||||
/* field_D */ u8 specialBattlerId;
|
||||
/* field_E */ u16 fieldE;
|
||||
};
|
||||
|
||||
extern struct ProtectStruct gProtectStructs[BATTLE_BANKS_COUNT];
|
||||
|
||||
struct SpecialStatus
|
||||
{
|
||||
u8 statLowered : 1; // 0x1
|
||||
@@ -447,49 +241,43 @@ struct SpecialStatus
|
||||
u8 flag40 : 1;
|
||||
u8 focusBanded : 1;
|
||||
u8 field1[3];
|
||||
s32 moveturnLostHP;
|
||||
s32 moveturnLostHP_physical;
|
||||
s32 moveturnLostHP_special;
|
||||
u8 moveturnPhysicalBank;
|
||||
u8 moveturnSpecialBank;
|
||||
s32 dmg;
|
||||
s32 physicalDmg;
|
||||
s32 specialDmg;
|
||||
u8 physicalBattlerId;
|
||||
u8 specialBattlerId;
|
||||
u8 field12;
|
||||
u8 field13;
|
||||
};
|
||||
|
||||
extern struct SpecialStatus gSpecialStatuses[BATTLE_BANKS_COUNT];
|
||||
|
||||
struct SideTimer
|
||||
{
|
||||
/*0x00*/ u8 reflectTimer;
|
||||
/*0x01*/ u8 reflectBank;
|
||||
/*0x01*/ u8 reflectBattlerId;
|
||||
/*0x02*/ u8 lightscreenTimer;
|
||||
/*0x03*/ u8 lightscreenBank;
|
||||
/*0x03*/ u8 lightscreenBattlerId;
|
||||
/*0x04*/ u8 mistTimer;
|
||||
/*0x05*/ u8 mistBank;
|
||||
/*0x05*/ u8 mistBattlerId;
|
||||
/*0x06*/ u8 safeguardTimer;
|
||||
/*0x07*/ u8 safeguardBank;
|
||||
/*0x07*/ u8 safeguardBattlerId;
|
||||
/*0x08*/ u8 followmeTimer;
|
||||
/*0x09*/ u8 followmeTarget;
|
||||
/*0x0A*/ u8 spikesAmount;
|
||||
/*0x0B*/ u8 fieldB;
|
||||
};
|
||||
|
||||
extern struct SideTimer gSideTimers[];
|
||||
|
||||
struct WishFutureKnock
|
||||
{
|
||||
u8 futureSightCounter[BATTLE_BANKS_COUNT];
|
||||
u8 futureSightAttacker[BATTLE_BANKS_COUNT];
|
||||
s32 futureSightDmg[BATTLE_BANKS_COUNT];
|
||||
u16 futureSightMove[BATTLE_BANKS_COUNT];
|
||||
u8 wishCounter[BATTLE_BANKS_COUNT];
|
||||
u8 wishUserID[BATTLE_BANKS_COUNT];
|
||||
u8 futureSightCounter[MAX_BATTLERS_COUNT];
|
||||
u8 futureSightAttacker[MAX_BATTLERS_COUNT];
|
||||
s32 futureSightDmg[MAX_BATTLERS_COUNT];
|
||||
u16 futureSightMove[MAX_BATTLERS_COUNT];
|
||||
u8 wishCounter[MAX_BATTLERS_COUNT];
|
||||
u8 wishMonId[MAX_BATTLERS_COUNT];
|
||||
u8 weatherDuration;
|
||||
u8 knockedOffPokes[2];
|
||||
};
|
||||
|
||||
extern struct WishFutureKnock gWishFutureKnock;
|
||||
|
||||
struct AI_ThinkingStruct
|
||||
{
|
||||
u8 aiState;
|
||||
@@ -506,16 +294,16 @@ struct AI_ThinkingStruct
|
||||
|
||||
struct UsedMoves
|
||||
{
|
||||
u16 moves[BATTLE_BANKS_COUNT];
|
||||
u16 unknown[BATTLE_BANKS_COUNT];
|
||||
u16 moves[MAX_BATTLERS_COUNT];
|
||||
u16 unknown[MAX_BATTLERS_COUNT];
|
||||
};
|
||||
|
||||
struct BattleHistory
|
||||
{
|
||||
struct UsedMoves usedMoves[BATTLE_BANKS_COUNT];
|
||||
u8 abilities[BATTLE_BANKS_COUNT];
|
||||
u8 itemEffects[BATTLE_BANKS_COUNT];
|
||||
u16 trainerItems[BATTLE_BANKS_COUNT];
|
||||
struct UsedMoves usedMoves[MAX_BATTLERS_COUNT];
|
||||
u8 abilities[MAX_BATTLERS_COUNT];
|
||||
u8 itemEffects[MAX_BATTLERS_COUNT];
|
||||
u16 trainerItems[MAX_BATTLERS_COUNT];
|
||||
u8 itemsNo;
|
||||
};
|
||||
|
||||
@@ -553,12 +341,6 @@ struct BattleResources
|
||||
struct BattleScriptsStack *AI_ScriptsStack;
|
||||
};
|
||||
|
||||
extern struct BattleResources* gBattleResources;
|
||||
|
||||
#define BATTLESCRIPTS_STACK (gBattleResources->battleScriptsStack)
|
||||
#define BATTLE_CALLBACKS_STACK (gBattleResources->battleCallbackStack)
|
||||
#define BATTLE_LVLUP_STATS (gBattleResources->statsBeforeLvlUp)
|
||||
|
||||
struct BattleResults
|
||||
{
|
||||
u8 playerFaintCounter; // 0x0
|
||||
@@ -582,21 +364,19 @@ struct BattleResults
|
||||
u16 playerMon2Species; // 0x26
|
||||
u16 caughtMonSpecies; // 0x28
|
||||
u8 caughtMonNick[10]; // 0x2A
|
||||
u8 filler34[2];
|
||||
u8 filler34[2]; // 0x34
|
||||
u8 catchAttempts[11]; // 0x36
|
||||
};
|
||||
|
||||
extern struct BattleResults gBattleResults;
|
||||
|
||||
struct BattleStruct
|
||||
{
|
||||
u8 turnEffectsTracker;
|
||||
u8 turnEffectsBank;
|
||||
u8 turnEffectsBattlerId;
|
||||
u8 filler2;
|
||||
u8 turncountersTracker;
|
||||
u8 turnCountersTracker;
|
||||
u8 wrappedMove[8]; // ask gamefreak why they declared it that way
|
||||
u8 moveTarget[4];
|
||||
u8 expGetterId;
|
||||
u8 expGetterMonId;
|
||||
u8 field_11;
|
||||
u8 wildVictorySong;
|
||||
u8 dynamicMoveType;
|
||||
@@ -610,20 +390,20 @@ struct BattleStruct
|
||||
u8 field_45;
|
||||
u8 field_46;
|
||||
u8 field_47;
|
||||
u8 focusPunchBank;
|
||||
u8 focusPunchBattlerId;
|
||||
u8 field_49;
|
||||
u8 moneyMultiplier;
|
||||
u8 savedTurnActionNumber;
|
||||
u8 switchInAbilitiesCounter;
|
||||
u8 faintedActionsState;
|
||||
u8 faintedActionsBank;
|
||||
u8 faintedActionsBattlerId;
|
||||
u8 field_4F;
|
||||
u16 expValue;
|
||||
u8 field_52;
|
||||
u8 sentInPokes;
|
||||
bool8 selectionScriptFinished[BATTLE_BANKS_COUNT];
|
||||
bool8 selectionScriptFinished[MAX_BATTLERS_COUNT];
|
||||
u8 field_58[4];
|
||||
u8 monToSwitchIntoId[BATTLE_BANKS_COUNT];
|
||||
u8 monToSwitchIntoId[MAX_BATTLERS_COUNT];
|
||||
u8 field_60[4][3];
|
||||
u8 runTries;
|
||||
u8 caughtMonNick[11];
|
||||
@@ -635,8 +415,8 @@ struct BattleStruct
|
||||
u8 field_7D;
|
||||
u8 field_7E;
|
||||
u8 formToChangeInto;
|
||||
u8 chosenMovePositions[BATTLE_BANKS_COUNT];
|
||||
u8 stateIdAfterSelScript[BATTLE_BANKS_COUNT];
|
||||
u8 chosenMovePositions[MAX_BATTLERS_COUNT];
|
||||
u8 stateIdAfterSelScript[MAX_BATTLERS_COUNT];
|
||||
u8 field_88;
|
||||
u8 field_89;
|
||||
u8 field_8A;
|
||||
@@ -644,7 +424,7 @@ struct BattleStruct
|
||||
u8 field_8C;
|
||||
u8 field_8D;
|
||||
u8 stringMoveType;
|
||||
u8 expGetterBank;
|
||||
u8 expGetterBattlerId;
|
||||
u8 field_90;
|
||||
u8 field_91;
|
||||
u8 field_92;
|
||||
@@ -669,12 +449,12 @@ struct BattleStruct
|
||||
u8 synchronizeMoveEffect;
|
||||
u8 field_B3;
|
||||
void (*savedCallback)(void);
|
||||
u16 usedHeldItems[BATTLE_BANKS_COUNT];
|
||||
u16 usedHeldItems[MAX_BATTLERS_COUNT];
|
||||
u8 chosenItem[4]; // why is this an u8?
|
||||
u8 AI_itemType[2];
|
||||
u8 AI_itemFlags[2];
|
||||
u16 choicedMove[BATTLE_BANKS_COUNT];
|
||||
u16 changedItems[BATTLE_BANKS_COUNT];
|
||||
u16 choicedMove[MAX_BATTLERS_COUNT];
|
||||
u16 changedItems[MAX_BATTLERS_COUNT];
|
||||
u8 intimidateBank;
|
||||
u8 switchInItemsCounter;
|
||||
u8 field_DA;
|
||||
@@ -682,28 +462,26 @@ struct BattleStruct
|
||||
u8 fillerDC[0xDF-0xDC];
|
||||
u8 field_DF;
|
||||
u8 mirrorMoveArrays[32];
|
||||
u16 castformPalette[BATTLE_BANKS_COUNT][16];
|
||||
u16 castformPalette[MAX_BATTLERS_COUNT][16];
|
||||
u8 field_180;
|
||||
u8 field_181;
|
||||
u8 field_182;
|
||||
u8 field_183;
|
||||
struct BattleEnigmaBerry battleEnigmaBerry;
|
||||
u8 wishPerishSongState;
|
||||
u8 wishPerishSongBank;
|
||||
u8 wishPerishSongBattlerId;
|
||||
bool8 overworldWeatherDone;
|
||||
u8 atkCancellerTracker;
|
||||
u8 field_1A4[96];
|
||||
u8 field_204[104];
|
||||
u8 field_26C[40];
|
||||
u8 AI_monToSwitchIntoId[BATTLE_BANKS_COUNT];
|
||||
u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
|
||||
u8 field_298[8];
|
||||
u8 field_2A0;
|
||||
u8 field_2A1;
|
||||
u8 field_2A2;
|
||||
};
|
||||
|
||||
extern struct BattleStruct* gBattleStruct;
|
||||
|
||||
#define GET_MOVE_TYPE(move, typeArg) \
|
||||
{ \
|
||||
if (gBattleStruct->dynamicMoveType) \
|
||||
@@ -712,71 +490,8 @@ extern struct BattleStruct* gBattleStruct;
|
||||
typeArg = gBattleMoves[move].type; \
|
||||
}
|
||||
|
||||
#define MOVE_EFFECT_SLEEP 0x1
|
||||
#define MOVE_EFFECT_POISON 0x2
|
||||
#define MOVE_EFFECT_BURN 0x3
|
||||
#define MOVE_EFFECT_FREEZE 0x4
|
||||
#define MOVE_EFFECT_PARALYSIS 0x5
|
||||
#define MOVE_EFFECT_TOXIC 0x6
|
||||
#define MOVE_EFFECT_CONFUSION 0x7
|
||||
#define MOVE_EFFECT_FLINCH 0x8
|
||||
#define MOVE_EFFECT_TRI_ATTACK 0x9
|
||||
#define MOVE_EFFECT_UPROAR 0xA
|
||||
#define MOVE_EFFECT_PAYDAY 0xB
|
||||
#define MOVE_EFFECT_CHARGING 0xC
|
||||
#define MOVE_EFFECT_WRAP 0xD
|
||||
#define MOVE_EFFECT_RECOIL_25 0xE
|
||||
#define MOVE_EFFECT_ATK_PLUS_1 0xF
|
||||
#define MOVE_EFFECT_DEF_PLUS_1 0x10
|
||||
#define MOVE_EFFECT_SPD_PLUS_1 0x11
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
|
||||
#define MOVE_EFFECT_ACC_PLUS_1 0x14
|
||||
#define MOVE_EFFECT_EVS_PLUS_1 0x15
|
||||
#define MOVE_EFFECT_ATK_MINUS_1 0x16
|
||||
#define MOVE_EFFECT_DEF_MINUS_1 0x17
|
||||
#define MOVE_EFFECT_SPD_MINUS_1 0x18
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
|
||||
#define MOVE_EFFECT_ACC_MINUS_1 0x1B
|
||||
#define MOVE_EFFECT_EVS_MINUS_1 0x1C
|
||||
#define MOVE_EFFECT_RECHARGE 0x1D
|
||||
#define MOVE_EFFECT_RAGE 0x1E
|
||||
#define MOVE_EFFECT_STEAL_ITEM 0x1F
|
||||
#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
|
||||
#define MOVE_EFFECT_NIGHTMARE 0x21
|
||||
#define MOVE_EFFECT_ALL_STATS_UP 0x22
|
||||
#define MOVE_EFFECT_RAPIDSPIN 0x23
|
||||
#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
|
||||
#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
|
||||
#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
|
||||
#define MOVE_EFFECT_ATK_PLUS_2 0x27
|
||||
#define MOVE_EFFECT_DEF_PLUS_2 0x28
|
||||
#define MOVE_EFFECT_SPD_PLUS_2 0x29
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
|
||||
#define MOVE_EFFECT_ACC_PLUS_2 0x2C
|
||||
#define MOVE_EFFECT_EVS_PLUS_2 0x2D
|
||||
#define MOVE_EFFECT_ATK_MINUS_2 0x2E
|
||||
#define MOVE_EFFECT_DEF_MINUS_2 0x2F
|
||||
#define MOVE_EFFECT_SPD_MINUS_2 0x30
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
|
||||
#define MOVE_EFFECT_ACC_MINUS_2 0x33
|
||||
#define MOVE_EFFECT_EVS_MINUS_2 0x34
|
||||
#define MOVE_EFFECT_THRASH 0x35
|
||||
#define MOVE_EFFECT_KNOCK_OFF 0x36
|
||||
#define MOVE_EFFECT_NOTHING_37 0x37
|
||||
#define MOVE_EFFECT_NOTHING_38 0x38
|
||||
#define MOVE_EFFECT_NOTHING_39 0x39
|
||||
#define MOVE_EFFECT_NOTHING_3A 0x3A
|
||||
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
|
||||
#define MOVE_EFFECT_NOTHING_3C 0x3C
|
||||
#define MOVE_EFFECT_NOTHING_3D 0x3D
|
||||
#define MOVE_EFFECT_NOTHING_3E 0x3E
|
||||
#define MOVE_EFFECT_NOTHING_3F 0x3F
|
||||
#define MOVE_EFFECT_AFFECTS_USER 0x40
|
||||
#define MOVE_EFFECT_CERTAIN 0x80
|
||||
#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
|
||||
@@ -797,9 +512,9 @@ struct BattleScripting
|
||||
u8 animArg2;
|
||||
u16 tripleKickPower;
|
||||
u8 atk49_state;
|
||||
u8 bankWithAbility;
|
||||
u8 battlerWithAbility;
|
||||
u8 multihitMoveEffect;
|
||||
u8 bank;
|
||||
u8 battler;
|
||||
u8 animTurn;
|
||||
u8 animTargetsHit;
|
||||
u8 statChanger;
|
||||
@@ -816,8 +531,6 @@ struct BattleScripting
|
||||
u8 multiplayerId;
|
||||
};
|
||||
|
||||
extern struct BattleScripting gBattleScripting;
|
||||
|
||||
enum
|
||||
{
|
||||
BACK_PIC_BRENDAN,
|
||||
@@ -831,9 +544,9 @@ enum
|
||||
};
|
||||
|
||||
// rom_80A5C6C
|
||||
u8 GetBankSide(u8 bank);
|
||||
u8 GetBankIdentity(u8 bank);
|
||||
u8 GetBankByIdentity(u8 bank);
|
||||
u8 GetBattlerSide(u8 battler);
|
||||
u8 GetBattlerPosition(u8 bank);
|
||||
u8 GetBattlerAtPosition(u8 bank);
|
||||
|
||||
struct BattleSpriteInfo
|
||||
{
|
||||
@@ -907,24 +620,12 @@ struct BattleBarInfo
|
||||
|
||||
struct BattleSpriteData
|
||||
{
|
||||
struct BattleSpriteInfo *bankData;
|
||||
struct BattleSpriteInfo *battlerData;
|
||||
struct BattleHealthboxInfo *healthBoxesData;
|
||||
struct BattleAnimationInfo *animationData;
|
||||
struct BattleBarInfo *battleBars;
|
||||
};
|
||||
|
||||
extern struct BattleSpriteData *gBattleSpritesDataPtr;
|
||||
|
||||
#define BATTLE_BUFFER_LINK_SIZE 0x1000
|
||||
|
||||
extern u8 *gLinkBattleSendBuffer;
|
||||
extern u8 *gLinkBattleRecvBuffer;
|
||||
|
||||
extern u8 *gUnknown_0202305C;
|
||||
extern u8 *gUnknown_02023060;
|
||||
|
||||
// Move this somewhere else
|
||||
|
||||
#include "sprite.h"
|
||||
|
||||
struct MonSpritesGfx
|
||||
@@ -939,11 +640,106 @@ struct MonSpritesGfx
|
||||
void *field_17C;
|
||||
};
|
||||
|
||||
extern struct BattleSpritesGfx* gMonSpritesGfx;
|
||||
extern u8 gBattleOutcome;
|
||||
extern u16 gLastUsedItem;
|
||||
// all battle variables are declared in battle_main.c
|
||||
extern u32 gBattleTypeFlags;
|
||||
extern struct MonSpritesGfx* gMonSpritesGfxPtr;
|
||||
extern u16 gTrainerBattleOpponent_A;
|
||||
extern u8 gBattleTerrain;
|
||||
extern u32 gUnknown_02022FF4;
|
||||
extern u8 *gUnknown_0202305C;
|
||||
extern u8 *gUnknown_02023060;
|
||||
extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
|
||||
extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
|
||||
extern u8 gActiveBattler;
|
||||
extern u32 gBattleControllerExecFlags;
|
||||
extern u8 gBattlersCount;
|
||||
extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
|
||||
extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT];
|
||||
extern u8 gCurrentTurnActionNumber;
|
||||
extern u8 gCurrentActionFuncId;
|
||||
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
|
||||
extern u8 gCurrMovePos;
|
||||
extern u8 gChosenMovePos;
|
||||
extern u16 gCurrentMove;
|
||||
extern u16 gChosenMove;
|
||||
extern u16 gRandomMove;
|
||||
extern s32 gBattleMoveDamage;
|
||||
extern s32 gHpDealt;
|
||||
extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastUsedItem;
|
||||
extern u8 gLastUsedAbility;
|
||||
extern u8 gBattlerAttacker;
|
||||
extern u8 gBattlerTarget;
|
||||
extern u8 gBattlerFainted;
|
||||
extern u8 gEffectBattler;
|
||||
extern u8 gPotentialItemEffectBattler;
|
||||
extern u8 gAbsentBattlerFlags;
|
||||
extern u8 gCritMultiplier;
|
||||
extern u8 gMultiHitCounter;
|
||||
extern const u8 *gBattlescriptCurrInstr;
|
||||
extern u32 gUnusedBattleMainVar;
|
||||
extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
|
||||
extern const u8 *gSelectionBattleScripts[MAX_BATTLERS_COUNT];
|
||||
extern const u8 *gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastMoves[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastHitByType[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLastResultingMoves[MAX_BATTLERS_COUNT];
|
||||
extern u16 gLockedMoves[MAX_BATTLERS_COUNT];
|
||||
extern u8 gLastHitBy[MAX_BATTLERS_COUNT];
|
||||
extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
|
||||
extern u8 gMoveResultFlags;
|
||||
extern u32 gHitMarker;
|
||||
extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT];
|
||||
extern u8 gUnknown_0202428C;
|
||||
extern u16 gSideStatuses[2];
|
||||
extern struct SideTimer gSideTimers[2];
|
||||
extern u32 gStatuses3[MAX_BATTLERS_COUNT];
|
||||
extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT];
|
||||
extern u16 gPauseCounterBattle;
|
||||
extern u16 gPaydayMoney;
|
||||
extern u16 gRandomTurnNumber;
|
||||
extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT];
|
||||
extern u8 gBattleOutcome;
|
||||
extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
|
||||
extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT];
|
||||
extern u16 gBattleWeather;
|
||||
extern struct WishFutureKnock gWishFutureKnock;
|
||||
extern u16 gIntroSlideFlags;
|
||||
extern u8 gSentPokesToOpponent[2];
|
||||
extern u16 gDynamicBasePower;
|
||||
extern u16 gExpShareExp;
|
||||
extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT];
|
||||
extern struct BattleScripting gBattleScripting;
|
||||
extern struct BattleStruct *gBattleStruct;
|
||||
extern u8 *gLinkBattleSendBuffer;
|
||||
extern u8 *gLinkBattleRecvBuffer;
|
||||
extern struct BattleResources *gBattleResources;
|
||||
extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT];
|
||||
extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattlerInMenuId;
|
||||
extern bool8 gDoingBattleAnim;
|
||||
extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
|
||||
extern u8 gPlayerDpadHoldFrames;
|
||||
extern struct BattleSpriteData *gBattleSpritesDataPtr;
|
||||
extern struct MonSpritesGfx *gMonSpritesGfxPtr;
|
||||
extern struct BattleHealthboxInfo *gUnknown_020244D8;
|
||||
extern struct BattleHealthboxInfo *gUnknown_020244DC;
|
||||
extern u16 gBattleMovePower;
|
||||
extern u16 gMoveToLearn;
|
||||
extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
|
||||
|
||||
extern void (*gPreBattleCallback1)(void);
|
||||
extern void (*gBattleMainFunc)(void);
|
||||
extern struct BattleResults gBattleResults;
|
||||
extern u8 gLeveledUpInBattle;
|
||||
extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
|
||||
extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
|
||||
extern u8 gMultiUsePlayerCursor;
|
||||
extern u8 gNumberOfMovesToChoose;
|
||||
extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
|
||||
|
||||
#endif // GUARD_BATTLE_H
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
|
||||
void BattleAI_SetupAIData(u8 defaultScoreMoves);
|
||||
u8 BattleAI_ChooseMoveOrAction(void);
|
||||
void ClearBankMoveHistory(u8 bank);
|
||||
void ClearBattlerMoveHistory(u8 bank);
|
||||
void RecordAbilityBattle(u8 bank, u8 abilityId);
|
||||
void ClearBankAbilityHistory(u8 bank);
|
||||
void ClearBattlerAbilityHistory(u8 bank);
|
||||
void RecordItemEffectBattle(u8 bank, u8 itemEffect);
|
||||
void ClearBankItemEffectHistory(u8 bank);
|
||||
|
||||
|
||||
+14
-14
@@ -45,9 +45,9 @@ extern u8 gAnimFriendship;
|
||||
extern u16 gWeatherMoveAnim;
|
||||
extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
|
||||
extern u8 gAnimMoveTurn;
|
||||
extern u8 gAnimBankAttacker;
|
||||
extern u8 gAnimBankTarget;
|
||||
extern u16 gAnimSpeciesByBanks[BATTLE_BANKS_COUNT];
|
||||
extern u8 gBattleAnimAttacker;
|
||||
extern u8 gBattleAnimTarget;
|
||||
extern u16 gAnimSpeciesByBanks[MAX_BATTLERS_COUNT];
|
||||
extern u8 gUnknown_02038440;
|
||||
|
||||
void ClearBattleAnimationVars(void);
|
||||
@@ -56,8 +56,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
|
||||
void DestroyAnimSprite(struct Sprite *sprite);
|
||||
void DestroyAnimVisualTask(u8 taskId);
|
||||
void DestroyAnimSoundTask(u8 taskId);
|
||||
bool8 IsAnimBankSpriteVisible(u8 bank);
|
||||
void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible);
|
||||
bool8 IsBattlerSpriteVisible(u8 battlerId);
|
||||
void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible);
|
||||
bool8 IsContest(void);
|
||||
s8 BattleAnimAdjustPanning(s8 pan);
|
||||
s8 BattleAnimAdjustPanning2(s8 pan);
|
||||
@@ -76,7 +76,7 @@ void sub_80A6F3C(struct Sprite *sprite);
|
||||
void sub_80A8278(void);
|
||||
void sub_80A6B30(struct UnknownAnimStruct2*);
|
||||
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
|
||||
u8 sub_80A82E4(u8 bank);
|
||||
u8 sub_80A82E4(u8 battlerId);
|
||||
bool8 AnimateBallThrow(struct Sprite *sprite);
|
||||
|
||||
enum
|
||||
@@ -85,26 +85,26 @@ enum
|
||||
BANK_Y_POS,
|
||||
};
|
||||
|
||||
u8 GetBankPosition(u8 bank, u8 attributeId);
|
||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
|
||||
|
||||
bool8 IsBankSpritePresent(u8 bank);
|
||||
bool8 IsBattlerSpritePresent(u8 battlerId);
|
||||
void sub_80A6C68(u8 arg0);
|
||||
u8 GetAnimBankSpriteId(u8 wantedBank);
|
||||
u8 GetAnimBattlerSpriteId(u8 wantedBattler);
|
||||
bool8 IsDoubleBattle(void);
|
||||
u8 sub_80A6D94(void);
|
||||
u8 sub_80A8364(u8);
|
||||
void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*));
|
||||
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
|
||||
u8 GetBankSpriteDefault_Y(u8 bank);
|
||||
u8 sub_80A82E4(u8 bank);
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 bank);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
|
||||
u8 sub_80A82E4(u8 battlerId);
|
||||
u8 GetSubstituteSpriteDefault_Y(u8 battlerId);
|
||||
|
||||
// battle_anim_80A9C70.s
|
||||
void LaunchStatusAnimation(u8 bank, u8 statusAnimId);
|
||||
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
|
||||
|
||||
// battle_anim_8170478.s
|
||||
u8 ItemIdToBallId(u16 itemId);
|
||||
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
|
||||
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId);
|
||||
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
|
||||
|
||||
#endif // GUARD_BATTLE_ANIM_H
|
||||
|
||||
@@ -181,62 +181,62 @@ void sub_8033648(void);
|
||||
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
|
||||
|
||||
// emitters
|
||||
void EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
|
||||
void EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
|
||||
void EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
|
||||
void EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
|
||||
void EmitLoadMonSprite(u8 bufferId);
|
||||
void EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
|
||||
void EmitReturnMonToBall(u8 bufferId, u8 arg1);
|
||||
void EmitDrawTrainerPic(u8 bufferId);
|
||||
void EmitTrainerSlide(u8 bufferId);
|
||||
void EmitTrainerSlideBack(u8 bufferId);
|
||||
void EmitFaintAnimation(u8 bufferId);
|
||||
void EmitPaletteFade(u8 bufferId); // unused
|
||||
void EmitSuccessBallThrowAnim(u8 bufferId); // unused
|
||||
void EmitBallThrowAnim(u8 bufferId, u8 caseId);
|
||||
void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
|
||||
void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
|
||||
void EmitPrintString(u8 bufferId, u16 stringId);
|
||||
void EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
||||
void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void EmitUnknownYesNoBox(u8 bufferId);
|
||||
void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||
void EmitChooseItem(u8 bufferId, u8* arg1);
|
||||
void EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
|
||||
void EmitCmd23(u8 bufferId); // unused
|
||||
void EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||
void EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
|
||||
void EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
|
||||
void EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
|
||||
void EmitStatusXor(u8 bufferId, u8 b); // unused
|
||||
void EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
||||
void EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
|
||||
void EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
|
||||
void EmitCmd32(u8 bufferId, u16 size, void *c); // unused
|
||||
void EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
|
||||
void EmitOneReturnValue(u8 bufferId, u16 arg1);
|
||||
void EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
|
||||
void EmitCmd37(u8 bufferId); // unused
|
||||
void EmitCmd38(u8 bufferId, u8 b); // unused
|
||||
void EmitCmd39(u8 bufferId); // unused
|
||||
void EmitCmd40(u8 bufferId); // unused
|
||||
void EmitHitAnimation(u8 bufferId);
|
||||
void EmitCmd42(u8 bufferId);
|
||||
void EmitPlaySE(u8 bufferId, u16 songId);
|
||||
void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
|
||||
void EmitFaintingCry(u8 bufferId);
|
||||
void EmitIntroSlide(u8 bufferId, u8 terrainId);
|
||||
void EmitIntroTrainerBallThrow(u8 bufferId);
|
||||
void EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
|
||||
void EmitCmd49(u8 bufferId);
|
||||
void EmitCmd50(u8 bufferId);
|
||||
void EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
|
||||
void EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
|
||||
void EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
|
||||
void EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
|
||||
void EmitCmd55(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
|
||||
void BtlController_EmitGetRawMonData(u8 bufferId, u8 monId, u8 bytes); // unused
|
||||
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
|
||||
void BtlController_EmitSetRawMonData(u8 bufferId, u8 monId, u8 bytes, void *data); // unused
|
||||
void BtlController_EmitLoadMonSprite(u8 bufferId);
|
||||
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
|
||||
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitDrawTrainerPic(u8 bufferId);
|
||||
void BtlController_EmitTrainerSlide(u8 bufferId);
|
||||
void BtlController_EmitTrainerSlideBack(u8 bufferId);
|
||||
void BtlController_EmitFaintAnimation(u8 bufferId);
|
||||
void BtlController_EmitPaletteFade(u8 bufferId); // unused
|
||||
void BtlController_EmitSuccessBallThrowAnim(u8 bufferId); // unused
|
||||
void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
|
||||
void BtlController_EmitPause(u8 bufferId, u8 toWait, void *data); // unused
|
||||
void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
|
||||
void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
|
||||
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
||||
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void BtlController_EmitUnknownYesNoBox(u8 bufferId);
|
||||
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8* arg1);
|
||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
|
||||
void BtlController_EmitCmd23(u8 bufferId); // unused
|
||||
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
|
||||
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
|
||||
void BtlController_EmitStatusAnimation(u8 bufferId, bool8 status2, u32 status);
|
||||
void BtlController_EmitStatusXor(u8 bufferId, u8 b); // unused
|
||||
void BtlController_EmitDataTransfer(u8 bufferId, u16 size, void *data);
|
||||
void BtlController_EmitDMA3Transfer(u8 bufferId, void *dst, u16 size, void *data); // unused
|
||||
void BtlController_EmitPlayBGM(u8 bufferId, u16 songId, void *unusedDumbDataParameter); // unused
|
||||
void BtlController_EmitCmd32(u8 bufferId, u16 size, void *c); // unused
|
||||
void BtlController_EmitTwoReturnValues(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
|
||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
|
||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
|
||||
void BtlController_EmitCmd37(u8 bufferId); // unused
|
||||
void BtlController_EmitCmd38(u8 bufferId, u8 b); // unused
|
||||
void BtlController_EmitCmd39(u8 bufferId); // unused
|
||||
void BtlController_EmitCmd40(u8 bufferId); // unused
|
||||
void BtlController_EmitHitAnimation(u8 bufferId);
|
||||
void BtlController_EmitCmd42(u8 bufferId);
|
||||
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
|
||||
void BtlController_EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
|
||||
void BtlController_EmitFaintingCry(u8 bufferId);
|
||||
void BtlController_EmitIntroSlide(u8 bufferId, u8 terrainId);
|
||||
void BtlController_EmitIntroTrainerBallThrow(u8 bufferId);
|
||||
void BtlController_EmitDrawPartyStatusSummary(u8 bufferId, struct HpAndStatus* hpAndStatus, u8 arg2);
|
||||
void BtlController_EmitCmd49(u8 bufferId);
|
||||
void BtlController_EmitCmd50(u8 bufferId);
|
||||
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
|
||||
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
|
||||
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1, bool32 arg2);
|
||||
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
|
||||
void BtlController_EmitCmd55(u8 bufferId, u8 arg1);
|
||||
|
||||
// player controller
|
||||
void SetControllerToPlayer(void);
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
#ifndef GUARD_BATTLE_FRONTIER_1_H
|
||||
#define GUARD_BATTLE_FRONTIER_1_H
|
||||
|
||||
bool32 sub_8196094(void);
|
||||
void sub_8196080(const u8 *str);
|
||||
|
||||
#endif // GUARD_BATTLE_FRONTIER_1_H
|
||||
@@ -8,41 +8,41 @@ void sub_805D714(struct Sprite *sprite);
|
||||
void sub_805D770(struct Sprite *sprite, bool8 arg1);
|
||||
void sub_805D7AC(struct Sprite *sprite);
|
||||
void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status);
|
||||
bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId, u16 argument);
|
||||
void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId);
|
||||
bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId, u16 argument);
|
||||
void InitAndLaunchSpecialAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId);
|
||||
bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
|
||||
bool8 mplay_80342A4(u8 bank);
|
||||
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
|
||||
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
|
||||
bool8 mplay_80342A4(u8 battlerId);
|
||||
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
|
||||
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
|
||||
void nullsub_23(void);
|
||||
void nullsub_24(u16 species);
|
||||
void DecompressTrainerFrontPic(u16 frontPicId, u8 bank);
|
||||
void DecompressTrainerBackPic(u16 backPicId, u8 bank);
|
||||
void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId);
|
||||
void DecompressTrainerBackPic(u16 backPicId, u8 battlerId);
|
||||
void nullsub_25(u8 arg0);
|
||||
void FreeTrainerFrontPicPalette(u16 frontPicId);
|
||||
void sub_805DFFC(void);
|
||||
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
|
||||
void LoadBattleBarGfx(u8 arg0);
|
||||
bool8 BattleInitAllSprites(u8 *state1, u8 *bank);
|
||||
bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId);
|
||||
void ClearSpritesHealthboxAnimData(void);
|
||||
void CopyAllBattleSpritesInvisibilities(void);
|
||||
void CopyBattleSpriteInvisibility(u8 bank);
|
||||
void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform);
|
||||
void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite);
|
||||
void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId);
|
||||
void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move);
|
||||
void ClearBehindSubstituteBit(u8 bank);
|
||||
void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank);
|
||||
void CopyBattleSpriteInvisibility(u8 battlerId);
|
||||
void HandleSpeciesGfxDataChange(u8 attacker, u8 target, bool8 notTransform);
|
||||
void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite);
|
||||
void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId);
|
||||
void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move);
|
||||
void ClearBehindSubstituteBit(u8 battlerId);
|
||||
void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId);
|
||||
void BattleStopLowHpSound(void);
|
||||
u8 GetMonHPBarLevel(struct Pokemon *mon);
|
||||
void sub_805EAE8(void);
|
||||
void sub_805EB9C(u8 affineMode);
|
||||
void LoadAndCreateEnemyShadowSprites(void);
|
||||
void SpriteCB_SetInvisible(struct Sprite *sprite);
|
||||
void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species);
|
||||
void EnemyShadowCallbackToSetInvisible(u8 bank);
|
||||
void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species);
|
||||
void HideBattlerShadowSprite(u8 battlerId);
|
||||
void sub_805EF14(void);
|
||||
void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute);
|
||||
void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);
|
||||
void AllocateMonSpritesGfx(void);
|
||||
void FreeMonSpritesGfx(void);
|
||||
bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon);
|
||||
|
||||
@@ -54,7 +54,7 @@ enum
|
||||
HEALTHBOX_SAFARI_BALLS_TEXT
|
||||
};
|
||||
|
||||
u8 CreateBankHealthboxSprites(u8 bank);
|
||||
u8 CreateBattlerHealthboxSprites(u8 bank);
|
||||
u8 CreateSafariPlayerHealthboxSprites(void);
|
||||
void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
|
||||
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
|
||||
@@ -62,7 +62,7 @@ void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
|
||||
void DestoryHealthboxSprite(u8 healthboxSpriteId);
|
||||
void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
|
||||
void UpdateOamPriorityInAllHealthboxes(u8 priority);
|
||||
void SetBankHealthboxSpritePos(u8 bank);
|
||||
void InitBattlerHealthboxCoords(u8 bank);
|
||||
void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
|
||||
void SwapHpBarsWithHpText(void);
|
||||
u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
|
||||
|
||||
@@ -6,6 +6,6 @@ void sub_817E0FC(u16 move, u16 weatherFlags, struct DisableStruct *disableStruct
|
||||
void sub_817E32C(u8 animationId);
|
||||
void sub_817E3F4(void);
|
||||
void sub_817F2A8(void);
|
||||
u8 GetBankMoveSlotId(u8 bank, u16 move);
|
||||
u8 GetBattlerMoveSlotId(u8 bank, u16 move);
|
||||
|
||||
#endif // GUARD_BATTLE_LINK_817C95C_H
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef GUARD_BATTLE_2_H
|
||||
#define GUARD_BATTLE_2_H
|
||||
#ifndef GUARD_BATTLE_MAIN_H
|
||||
#define GUARD_BATTLE_MAIN_H
|
||||
|
||||
void CB2_InitBattle(void);
|
||||
void BattleMainCB2(void);
|
||||
@@ -21,8 +21,8 @@ void sub_8039B58(struct Sprite *sprite);
|
||||
void sub_8039BB4(struct Sprite *sprite);
|
||||
void sub_80105DC(struct Sprite *sprite);
|
||||
void sub_8039C00(struct Sprite *sprite);
|
||||
void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d);
|
||||
void dp11b_obj_free(u8 bank, bool8 b);
|
||||
void dp11b_obj_instanciate(u8 battlerId, u8 b, s8 c, s8 d);
|
||||
void dp11b_obj_free(u8 battlerId, bool8 b);
|
||||
void sub_8039E44(struct Sprite *sprite);
|
||||
void sub_8039E60(struct Sprite *sprite);
|
||||
void sub_8039E84(struct Sprite *sprite);
|
||||
@@ -35,12 +35,12 @@ void sub_803B3AC(void); // unused
|
||||
void sub_803B598(void); // unused
|
||||
void BattleTurnPassed(void);
|
||||
u8 IsRunningFromBattleImpossible(void);
|
||||
void sub_803BDA0(u8 bank);
|
||||
void sub_803BDA0(u8 battlerId);
|
||||
void SwapTurnOrder(u8 id1, u8 id2);
|
||||
u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
|
||||
u8 GetWhoStrikesFirst(u8 battlerId1, u8 battlerId2, bool8 ignoreChosenMoves);
|
||||
void RunBattleScriptCommands_PopCallbacksStack(void);
|
||||
void RunBattleScriptCommands(void);
|
||||
bool8 TryRunFromBattle(u8 bank);
|
||||
bool8 TryRunFromBattle(u8 battlerId);
|
||||
|
||||
extern const u8 gStatusConditionString_PoisonJpn[8];
|
||||
extern const u8 gStatusConditionString_SleepJpn[8];
|
||||
@@ -52,4 +52,4 @@ extern const u8 gStatusConditionString_LoveJpn[8];
|
||||
|
||||
extern const u8 * const gStatusConditionStringsTable[7][2];
|
||||
|
||||
#endif // GUARD_BATTLE_2_H
|
||||
#endif // GUARD_BATTLE_MAIN_H
|
||||
@@ -1,58 +1,13 @@
|
||||
#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
|
||||
|
||||
void AI_CalcDmg(u8 bankAtk, u8 bankDef);
|
||||
u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef);
|
||||
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
|
||||
u8 BankGetTurnOrder(u8 bank);
|
||||
u8 GetBattlerTurnOrderNum(u8 bank);
|
||||
void SetMoveEffect(bool8 primary, u8 certain);
|
||||
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
|
||||
void BattleCreateYesNoCursorAt(u8 cursorPosition);
|
||||
|
||||
@@ -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[];
|
||||
|
||||
@@ -44,12 +44,12 @@
|
||||
#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);
|
||||
void MarkAllBufferBanksForExecution(void); // unused
|
||||
void MarkBufferBankForExecution(u8 bank);
|
||||
void MarkAllBattlersForControllerExec(void); // unused
|
||||
void MarkBattlerForControllerExec(u8 bank);
|
||||
void sub_803F850(u8 arg0);
|
||||
void CancelMultiTurnMoves(u8 bank);
|
||||
bool8 WasUnableToUseMove(u8 bank);
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_BERRY_FIX_PROGRAM_H
|
||||
#define GUARD_BERRY_FIX_PROGRAM_H
|
||||
|
||||
void CB2_InitBerryFixProgram(void);
|
||||
|
||||
#endif // GUARD_BERRY_FIX_PROGRAM_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_BERRY_TAG_SCREEN_H
|
||||
#define GUARD_BERRY_TAG_SCREEN_H
|
||||
|
||||
void DoBerryTagScreen(void);
|
||||
|
||||
#endif // GUARD_BERRY_TAG_SCREEN_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_CLEAR_SAVE_DATA_MENU_H
|
||||
#define GUARD_CLEAR_SAVE_DATA_MENU_H
|
||||
|
||||
void CB2_InitClearSaveDataScreen(void);
|
||||
|
||||
#endif // GUARD_CLEAR_SAVE_DATA_MENU_H
|
||||
@@ -0,0 +1,284 @@
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_H
|
||||
#define GUARD_CONSTANTS_BATTLE_H
|
||||
|
||||
/*
|
||||
* A battler may be in one of four positions on the field. The first bit determines
|
||||
* what side the battler is on, either the player's side or the opponent's side.
|
||||
* The second bit determines what flank the battler is on, either the left or right.
|
||||
* Note that the opponent's flanks are drawn corresponding to their perspective, so
|
||||
* their right mon appears on the left, and their left mon appears on the right.
|
||||
* The battler ID is usually the same as the position, except in the case of link battles.
|
||||
*
|
||||
* + ------------------------- +
|
||||
* | Opponent's side |
|
||||
* | Right Left |
|
||||
* | 3 1 |
|
||||
* | |
|
||||
* | Player's side |
|
||||
* | Left Right |
|
||||
* | 0 2 |
|
||||
* ----------------------------+
|
||||
* | |
|
||||
* | |
|
||||
* +---------------------------+
|
||||
*/
|
||||
|
||||
#define MAX_BATTLERS_COUNT 4
|
||||
|
||||
#define B_POSITION_PLAYER_LEFT 0
|
||||
#define B_POSITION_OPPONENT_LEFT 1
|
||||
#define B_POSITION_PLAYER_RIGHT 2
|
||||
#define B_POSITION_OPPONENT_RIGHT 3
|
||||
|
||||
// These macros can be used with either battler ID or positions to get the partner or the opposite mon
|
||||
#define BATTLE_OPPOSITE(id) ((id) ^ 1)
|
||||
#define BATTLE_PARTNER(id) ((id) ^ 2)
|
||||
|
||||
#define B_SIDE_PLAYER 0
|
||||
#define B_SIDE_OPPONENT 1
|
||||
|
||||
#define B_FLANK_LEFT 0
|
||||
#define B_FLANK_RIGHT 1
|
||||
|
||||
#define BIT_SIDE 1
|
||||
#define BIT_FLANK 2
|
||||
|
||||
// Battle Type Flags
|
||||
#define BATTLE_TYPE_DOUBLE 0x0001
|
||||
#define BATTLE_TYPE_LINK 0x0002
|
||||
#define BATTLE_TYPE_WILD 0x0004
|
||||
#define BATTLE_TYPE_TRAINER 0x0008
|
||||
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
|
||||
#define BATTLE_TYPE_20 0x0020
|
||||
#define BATTLE_TYPE_MULTI 0x0040
|
||||
#define BATTLE_TYPE_SAFARI 0x0080
|
||||
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
|
||||
#define BATTLE_TYPE_ROAMER 0x0400
|
||||
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
|
||||
#define BATTLE_TYPE_LEGENDARY 0x2000
|
||||
#define BATTLE_TYPE_REGI 0x4000
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
|
||||
#define BATTLE_TYPE_DOME 0x10000
|
||||
#define BATTLE_TYPE_PALACE 0x20000
|
||||
#define BATTLE_TYPE_ARENA 0x40000
|
||||
#define BATTLE_TYPE_FACTORY 0x80000
|
||||
#define BATTLE_TYPE_PIKE 0x100000
|
||||
#define BATTLE_TYPE_PYRAMID 0x200000
|
||||
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
|
||||
#define BATTLE_TYPE_x800000 0x800000
|
||||
#define BATTLE_TYPE_RECORDED 0x1000000
|
||||
#define BATTLE_TYPE_x2000000 0x2000000
|
||||
#define BATTLE_TYPE_x4000000 0x4000000
|
||||
#define BATTLE_TYPE_SECRET_BASE 0x8000000
|
||||
#define BATTLE_TYPE_GROUDON 0x10000000
|
||||
#define BATTLE_TYPE_KYOGRE 0x20000000
|
||||
#define BATTLE_TYPE_RAYQUAZA 0x40000000
|
||||
#define BATTLE_TYPE_x80000000 0x80000000
|
||||
#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)
|
||||
|
||||
// Battle Outcome defines
|
||||
#define B_OUTCOME_WON 0x1
|
||||
#define B_OUTCOME_LOST 0x2
|
||||
#define B_OUTCOME_DREW 0x3
|
||||
#define B_OUTCOME_RAN 0x4
|
||||
#define B_OUTCOME_PLAYER_TELEPORTED 0x5
|
||||
#define B_OUTCOME_MON_FLED 0x6
|
||||
#define B_OUTCOME_CAUGHT 0x7
|
||||
#define B_OUTCOME_NO_SAFARI_BALLS 0x8
|
||||
#define B_OUTCOME_FORFEITED 0x9
|
||||
#define B_OUTCOME_MON_TELEPORTED 0xA
|
||||
#define B_OUTCOME_LINK_BATTLE_RAN 0x80
|
||||
|
||||
// Non-volatile status conditions
|
||||
// These persist remain outside of battle and after switching out
|
||||
#define STATUS1_NONE 0x0
|
||||
#define STATUS1_SLEEP 0x7
|
||||
#define STATUS1_POISON 0x8
|
||||
#define STATUS1_BURN 0x10
|
||||
#define STATUS1_FREEZE 0x20
|
||||
#define STATUS1_PARALYSIS 0x40
|
||||
#define STATUS1_TOXIC_POISON 0x80
|
||||
#define STATUS1_TOXIC_COUNTER 0xF00
|
||||
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
|
||||
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
|
||||
|
||||
// Volatile status ailments
|
||||
// These are removed after exiting the battle or switching out
|
||||
#define STATUS2_CONFUSION 0x00000007
|
||||
#define STATUS2_FLINCHED 0x00000008
|
||||
#define STATUS2_UPROAR 0x00000070
|
||||
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
|
||||
#define STATUS2_LOCK_CONFUSE 0x00000C00
|
||||
#define STATUS2_MULTIPLETURNS 0x00001000
|
||||
#define STATUS2_WRAPPED 0x0000E000
|
||||
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
|
||||
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
|
||||
#define STATUS2_FOCUS_ENERGY 0x00100000
|
||||
#define STATUS2_TRANSFORMED 0x00200000
|
||||
#define STATUS2_RECHARGE 0x00400000
|
||||
#define STATUS2_RAGE 0x00800000
|
||||
#define STATUS2_SUBSTITUTE 0x01000000
|
||||
#define STATUS2_DESTINY_BOND 0x02000000
|
||||
#define STATUS2_ESCAPE_PREVENTION 0x04000000
|
||||
#define STATUS2_NIGHTMARE 0x08000000
|
||||
#define STATUS2_CURSED 0x10000000
|
||||
#define STATUS2_FORESIGHT 0x20000000
|
||||
#define STATUS2_DEFENSE_CURL 0x40000000
|
||||
#define STATUS2_TORMENT 0x80000000
|
||||
|
||||
// Seems like per-battler statuses. Not quite sure how to categorize these
|
||||
#define STATUS3_LEECHSEED_BANK 0x3
|
||||
#define STATUS3_LEECHSEED 0x4
|
||||
#define STATUS3_ALWAYS_HITS 0x18 // two bits
|
||||
#define STATUS3_PERISH_SONG 0x20
|
||||
#define STATUS3_ON_AIR 0x40
|
||||
#define STATUS3_UNDERGROUND 0x80
|
||||
#define STATUS3_MINIMIZED 0x100
|
||||
#define STATUS3_ROOTED 0x400
|
||||
#define STATUS3_CHARGED_UP 0x200
|
||||
#define STATUS3_YAWN 0x1800 // two bits
|
||||
#define STATUS3_IMPRISONED_OTHERS 0x2000
|
||||
#define STATUS3_GRUDGE 0x4000
|
||||
#define STATUS3_CANT_SCORE_A_CRIT 0x8000
|
||||
#define STATUS3_MUDSPORT 0x10000
|
||||
#define STATUS3_WATERSPORT 0x20000
|
||||
#define STATUS3_UNDERWATER 0x40000
|
||||
#define STATUS3_INTIMIDATE_POKES 0x80000
|
||||
#define STATUS3_TRACE 0x100000
|
||||
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
|
||||
|
||||
// Not really sure what a "hitmarker" is.
|
||||
#define HITMARKER_x10 0x00000010
|
||||
#define HITMARKER_x20 0x00000020
|
||||
#define HITMARKER_DESTINYBOND 0x00000040
|
||||
#define HITMARKER_NO_ANIMATIONS 0x00000080
|
||||
#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
|
||||
#define HITMARKER_NO_ATTACKSTRING 0x00000200
|
||||
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
|
||||
#define HITMARKER_NO_PPDEDUCT 0x00000800
|
||||
#define HITMARKER_PURSUIT_TRAP 0x00001000
|
||||
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
|
||||
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
|
||||
#define HITMARKER_RUN 0x00008000
|
||||
#define HITMARKER_IGNORE_ON_AIR 0x00010000
|
||||
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
|
||||
#define HITMARKER_IGNORE_UNDERWATER 0x00040000
|
||||
#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
|
||||
#define HITMARKER_x100000 0x00100000
|
||||
#define HITMARKER_x200000 0x00200000
|
||||
#define HITMARKER_x400000 0x00400000
|
||||
#define HITMARKER_x800000 0x00800000
|
||||
#define HITMARKER_GRUDGE 0x01000000
|
||||
#define HITMARKER_OBEYS 0x02000000
|
||||
#define HITMARKER_x4000000 0x04000000
|
||||
#define HITMARKER_x8000000 0x08000000
|
||||
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
|
||||
#define HITMARKER_UNK(battler) (0x10000000 << battler)
|
||||
|
||||
// Per-side statuses that affect an entire party
|
||||
#define SIDE_STATUS_REFLECT (1 << 0)
|
||||
#define SIDE_STATUS_LIGHTSCREEN (1 << 1)
|
||||
#define SIDE_STATUS_X4 (1 << 2)
|
||||
#define SIDE_STATUS_SPIKES (1 << 4)
|
||||
#define SIDE_STATUS_SAFEGUARD (1 << 5)
|
||||
#define SIDE_STATUS_FUTUREATTACK (1 << 6)
|
||||
#define SIDE_STATUS_MIST (1 << 8)
|
||||
#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9)
|
||||
|
||||
// Flags describing move's result
|
||||
#define MOVE_RESULT_MISSED (1 << 0)
|
||||
#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1)
|
||||
#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2)
|
||||
#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3)
|
||||
#define MOVE_RESULT_ONE_HIT_KO (1 << 4)
|
||||
#define MOVE_RESULT_FAILED (1 << 5)
|
||||
#define MOVE_RESULT_FOE_ENDURED (1 << 6)
|
||||
#define MOVE_RESULT_FOE_HUNG_ON (1 << 7)
|
||||
#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
|
||||
|
||||
// Battle Weather flags
|
||||
#define WEATHER_RAIN_TEMPORARY (1 << 0)
|
||||
#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
|
||||
#define WEATHER_RAIN_PERMANENT (1 << 2)
|
||||
#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)
|
||||
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
|
||||
#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
|
||||
#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)
|
||||
#define WEATHER_SUN_TEMPORARY (1 << 5)
|
||||
#define WEATHER_SUN_PERMANENT (1 << 6)
|
||||
#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)
|
||||
#define WEATHER_HAIL (1 << 7)
|
||||
#define WEATHER_HAIL_ANY (WEATHER_HAIL)
|
||||
#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
|
||||
|
||||
// Move Effects
|
||||
#define MOVE_EFFECT_SLEEP 0x1
|
||||
#define MOVE_EFFECT_POISON 0x2
|
||||
#define MOVE_EFFECT_BURN 0x3
|
||||
#define MOVE_EFFECT_FREEZE 0x4
|
||||
#define MOVE_EFFECT_PARALYSIS 0x5
|
||||
#define MOVE_EFFECT_TOXIC 0x6
|
||||
#define MOVE_EFFECT_CONFUSION 0x7
|
||||
#define MOVE_EFFECT_FLINCH 0x8
|
||||
#define MOVE_EFFECT_TRI_ATTACK 0x9
|
||||
#define MOVE_EFFECT_UPROAR 0xA
|
||||
#define MOVE_EFFECT_PAYDAY 0xB
|
||||
#define MOVE_EFFECT_CHARGING 0xC
|
||||
#define MOVE_EFFECT_WRAP 0xD
|
||||
#define MOVE_EFFECT_RECOIL_25 0xE
|
||||
#define MOVE_EFFECT_ATK_PLUS_1 0xF
|
||||
#define MOVE_EFFECT_DEF_PLUS_1 0x10
|
||||
#define MOVE_EFFECT_SPD_PLUS_1 0x11
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
|
||||
#define MOVE_EFFECT_ACC_PLUS_1 0x14
|
||||
#define MOVE_EFFECT_EVS_PLUS_1 0x15
|
||||
#define MOVE_EFFECT_ATK_MINUS_1 0x16
|
||||
#define MOVE_EFFECT_DEF_MINUS_1 0x17
|
||||
#define MOVE_EFFECT_SPD_MINUS_1 0x18
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
|
||||
#define MOVE_EFFECT_ACC_MINUS_1 0x1B
|
||||
#define MOVE_EFFECT_EVS_MINUS_1 0x1C
|
||||
#define MOVE_EFFECT_RECHARGE 0x1D
|
||||
#define MOVE_EFFECT_RAGE 0x1E
|
||||
#define MOVE_EFFECT_STEAL_ITEM 0x1F
|
||||
#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
|
||||
#define MOVE_EFFECT_NIGHTMARE 0x21
|
||||
#define MOVE_EFFECT_ALL_STATS_UP 0x22
|
||||
#define MOVE_EFFECT_RAPIDSPIN 0x23
|
||||
#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
|
||||
#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
|
||||
#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26
|
||||
#define MOVE_EFFECT_ATK_PLUS_2 0x27
|
||||
#define MOVE_EFFECT_DEF_PLUS_2 0x28
|
||||
#define MOVE_EFFECT_SPD_PLUS_2 0x29
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
|
||||
#define MOVE_EFFECT_ACC_PLUS_2 0x2C
|
||||
#define MOVE_EFFECT_EVS_PLUS_2 0x2D
|
||||
#define MOVE_EFFECT_ATK_MINUS_2 0x2E
|
||||
#define MOVE_EFFECT_DEF_MINUS_2 0x2F
|
||||
#define MOVE_EFFECT_SPD_MINUS_2 0x30
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
|
||||
#define MOVE_EFFECT_ACC_MINUS_2 0x33
|
||||
#define MOVE_EFFECT_EVS_MINUS_2 0x34
|
||||
#define MOVE_EFFECT_THRASH 0x35
|
||||
#define MOVE_EFFECT_KNOCK_OFF 0x36
|
||||
#define MOVE_EFFECT_NOTHING_37 0x37
|
||||
#define MOVE_EFFECT_NOTHING_38 0x38
|
||||
#define MOVE_EFFECT_NOTHING_39 0x39
|
||||
#define MOVE_EFFECT_NOTHING_3A 0x3A
|
||||
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
|
||||
#define MOVE_EFFECT_NOTHING_3C 0x3C
|
||||
#define MOVE_EFFECT_NOTHING_3D 0x3D
|
||||
#define MOVE_EFFECT_NOTHING_3E 0x3E
|
||||
#define MOVE_EFFECT_NOTHING_3F 0x3F
|
||||
#define MOVE_EFFECT_AFFECTS_USER 0x40
|
||||
#define MOVE_EFFECT_CERTAIN 0x80
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_H
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_BATTLE_AI_H
|
||||
#define GUARD_BATTLE_AI_H
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_AI_H
|
||||
#define GUARD_CONSTANTS_BATTLE_AI_H
|
||||
|
||||
// banks enum
|
||||
// battlers
|
||||
#define AI_TARGET 0
|
||||
#define AI_USER 1
|
||||
#define AI_TARGET_PARTNER 2
|
||||
@@ -22,7 +22,7 @@
|
||||
#define AI_EFFECTIVENESS_x0_25 10
|
||||
#define AI_EFFECTIVENESS_x0 0
|
||||
|
||||
// ai weather enum
|
||||
// ai weather
|
||||
#define AI_WEATHER_SUN 0
|
||||
#define AI_WEATHER_RAIN 1
|
||||
#define AI_WEATHER_SANDSTORM 2
|
||||
@@ -49,4 +49,4 @@
|
||||
#define AI_SCRIPT_SAFARI (1 << 30)
|
||||
#define AI_SCRIPT_FIRST_BATTLE (1 << 31)
|
||||
|
||||
#endif // GUARD_BATTLE_AI_H
|
||||
#endif // GUARD_CONSTANTS_BATTLE_AI_H
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_ANIM_H
|
||||
#define GUARD_CONSTANTS_BATTLE_ANIM_H
|
||||
|
||||
// banks enum used in scripts
|
||||
// battlers
|
||||
#define ANIM_ATTACKER 0
|
||||
#define ANIM_TARGET 1
|
||||
#define ANIM_ATK_PARTNER 2
|
||||
|
||||
@@ -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
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef GUARD_BATTLE_STRING_IDS_H
|
||||
#define GUARD_BATTLE_STRING_IDS_H
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_STRING_IDS_H
|
||||
#define GUARD_CONSTANTS_BATTLE_STRING_IDS_H
|
||||
|
||||
#define BATTLESTRINGS_COUNT 369
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#define STRINGID_USEDMOVE 4
|
||||
#define STRINGID_BATTLEEND 5
|
||||
|
||||
|
||||
// todo: make some of those names less vague: attacker/target vs pkmn, etc.
|
||||
#define STRINGID_TRAINER1LOSETEXT 12
|
||||
#define STRINGID_PKMNGAINEDEXP 13
|
||||
@@ -384,4 +383,4 @@
|
||||
#define STRINGID_TRAINER1WINTEXT 379
|
||||
#define STRINGID_TRAINER2WINTEXT 380
|
||||
|
||||
#endif // GUARD_BATTLE_STRING_IDS_H
|
||||
#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H
|
||||
@@ -2,6 +2,8 @@
|
||||
#define GUARD_CONSTANTS_ITEMS_H
|
||||
|
||||
#define ITEM_NONE 0
|
||||
|
||||
// Balls
|
||||
#define ITEM_MASTER_BALL 1
|
||||
#define ITEM_ULTRA_BALL 2
|
||||
#define ITEM_GREAT_BALL 3
|
||||
@@ -14,6 +16,8 @@
|
||||
#define ITEM_TIMER_BALL 10
|
||||
#define ITEM_LUXURY_BALL 11
|
||||
#define ITEM_PREMIER_BALL 12
|
||||
|
||||
// Pokemon Items
|
||||
#define ITEM_POTION 13
|
||||
#define ITEM_ANTIDOTE 14
|
||||
#define ITEM_BURN_HEAL 15
|
||||
@@ -180,6 +184,8 @@
|
||||
#define ITEM_0B0 176
|
||||
#define ITEM_0B1 177
|
||||
#define ITEM_0B2 178
|
||||
|
||||
// hold items
|
||||
#define ITEM_BRIGHT_POWDER 179
|
||||
#define ITEM_WHITE_HERB 180
|
||||
#define ITEM_MACHO_BRACE 181
|
||||
@@ -260,6 +266,8 @@
|
||||
#define ITEM_PINK_SCARF 256
|
||||
#define ITEM_GREEN_SCARF 257
|
||||
#define ITEM_YELLOW_SCARF 258
|
||||
|
||||
// Key Items
|
||||
#define ITEM_MACH_BIKE 259
|
||||
#define ITEM_COIN_CASE 260
|
||||
#define ITEM_ITEMFINDER 261
|
||||
@@ -290,6 +298,8 @@
|
||||
#define ITEM_ROOT_FOSSIL 286
|
||||
#define ITEM_CLAW_FOSSIL 287
|
||||
#define ITEM_DEVON_SCOPE 288
|
||||
|
||||
// TMs/HMs
|
||||
#define ITEM_TM01 289
|
||||
#define ITEM_TM02 290
|
||||
#define ITEM_TM03 291
|
||||
@@ -348,6 +358,67 @@
|
||||
#define ITEM_HM06 344
|
||||
#define ITEM_HM07 345
|
||||
#define ITEM_HM08 346
|
||||
|
||||
#define ITEM_TM01_FOCUS_PUNCH ITEM_TM01
|
||||
#define ITEM_TM02_DRAGON_CLAW ITEM_TM02
|
||||
#define ITEM_TM03_WATER_PULSE ITEM_TM03
|
||||
#define ITEM_TM04_CALM_MIND ITEM_TM04
|
||||
#define ITEM_TM05_ROAR ITEM_TM05
|
||||
#define ITEM_TM06_TOXIC ITEM_TM06
|
||||
#define ITEM_TM07_HAIL ITEM_TM07
|
||||
#define ITEM_TM08_BULK_UP ITEM_TM08
|
||||
#define ITEM_TM09_BULLET_SEED ITEM_TM09
|
||||
#define ITEM_TM10_HIDDEN_POWER ITEM_TM10
|
||||
#define ITEM_TM11_SUNNY_DAY ITEM_TM11
|
||||
#define ITEM_TM12_TAUNT ITEM_TM12
|
||||
#define ITEM_TM13_ICE_BEAM ITEM_TM13
|
||||
#define ITEM_TM14_BLIZZARD ITEM_TM14
|
||||
#define ITEM_TM15_HYPER_BEAM ITEM_TM15
|
||||
#define ITEM_TM16_LIGHT_SCREEN ITEM_TM16
|
||||
#define ITEM_TM17_PROTECT ITEM_TM17
|
||||
#define ITEM_TM18_RAIN_DANCE ITEM_TM18
|
||||
#define ITEM_TM19_GIGA_DRAIN ITEM_TM19
|
||||
#define ITEM_TM20_SAFEGUARD ITEM_TM20
|
||||
#define ITEM_TM21_FRUSTRATION ITEM_TM21
|
||||
#define ITEM_TM22_SOLARBEAM ITEM_TM22
|
||||
#define ITEM_TM23_IRON_TAIL ITEM_TM23
|
||||
#define ITEM_TM24_THUNDERBOLT ITEM_TM24
|
||||
#define ITEM_TM25_THUNDER ITEM_TM25
|
||||
#define ITEM_TM26_EARTHQUAKE ITEM_TM26
|
||||
#define ITEM_TM27_RETURN ITEM_TM27
|
||||
#define ITEM_TM28_DIG ITEM_TM28
|
||||
#define ITEM_TM29_PSYCHIC ITEM_TM29
|
||||
#define ITEM_TM30_SHADOW_BALL ITEM_TM30
|
||||
#define ITEM_TM31_BRICK_BREAK ITEM_TM31
|
||||
#define ITEM_TM32_DOUBLE_TEAM ITEM_TM32
|
||||
#define ITEM_TM33_REFLECT ITEM_TM33
|
||||
#define ITEM_TM34_SHOCK_WAVE ITEM_TM34
|
||||
#define ITEM_TM35_FLAMETHROWER ITEM_TM35
|
||||
#define ITEM_TM36_SLUDGE_BOMB ITEM_TM36
|
||||
#define ITEM_TM37_SANDSTORM ITEM_TM37
|
||||
#define ITEM_TM38_FIRE_BLAST ITEM_TM38
|
||||
#define ITEM_TM39_ROCK_TOMB ITEM_TM39
|
||||
#define ITEM_TM40_AERIAL_ACE ITEM_TM40
|
||||
#define ITEM_TM41_TORMENT ITEM_TM41
|
||||
#define ITEM_TM42_FACADE ITEM_TM42
|
||||
#define ITEM_TM43_SECRET_POWER ITEM_TM43
|
||||
#define ITEM_TM44_REST ITEM_TM44
|
||||
#define ITEM_TM45_ATTRACT ITEM_TM45
|
||||
#define ITEM_TM46_THIEF ITEM_TM46
|
||||
#define ITEM_TM47_STEEL_WING ITEM_TM47
|
||||
#define ITEM_TM48_SKILL_SWAP ITEM_TM48
|
||||
#define ITEM_TM49_SNATCH ITEM_TM49
|
||||
#define ITEM_TM50_OVERHEAT ITEM_TM50
|
||||
#define ITEM_HM01_CUT ITEM_HM01
|
||||
#define ITEM_HM02_FLY ITEM_HM02
|
||||
#define ITEM_HM03_SURF ITEM_HM03
|
||||
#define ITEM_HM04_STRENGTH ITEM_HM04
|
||||
#define ITEM_HM05_FLASH ITEM_HM05
|
||||
#define ITEM_HM06_ROCK_SMASH ITEM_HM06
|
||||
#define ITEM_HM07_WATERFALL ITEM_HM07
|
||||
#define ITEM_HM08_DIVE ITEM_HM08
|
||||
|
||||
// Unknown
|
||||
#define ITEM_15B 347
|
||||
#define ITEM_15C 348
|
||||
|
||||
@@ -383,6 +454,9 @@
|
||||
#define ITEM_MAGMA_EMBLEM 375
|
||||
#define ITEM_OLD_SEA_MAP 376
|
||||
|
||||
#define ITEM_LAST_ID 376
|
||||
#define ITEM_FIELD_ARROW ITEM_LAST_ID + 1
|
||||
|
||||
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
|
||||
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
|
||||
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
|
||||
|
||||
@@ -56,6 +56,9 @@
|
||||
#define MAP_UNDERWATER2 (51 | (0 << 8))
|
||||
#define MAP_UNDERWATER3 (52 | (0 << 8))
|
||||
#define MAP_UNDERWATER4 (53 | (0 << 8))
|
||||
#define MAP_UNDERWATER5 (54 | (0 << 8))
|
||||
#define MAP_UNDERWATER6 (55 | (0 << 8))
|
||||
#define MAP_UNDERWATER7 (56 | (0 << 8))
|
||||
|
||||
// Map Group 1
|
||||
#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
|
||||
|
||||
@@ -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
|
||||
@@ -2,6 +2,7 @@
|
||||
#define GUARD_RGB_H
|
||||
|
||||
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
||||
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
|
||||
|
||||
#define RGB_BLACK RGB(0, 0, 0)
|
||||
#define RGB_WHITE RGB(31, 31, 31)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,143 @@
|
||||
#ifndef POKEEMERALD_CRY_IDS_H
|
||||
#define POKEEMERALD_CRY_IDS_H
|
||||
|
||||
const u16 gSpeciesIdToCryId[] =
|
||||
{
|
||||
273, // TREECKO
|
||||
274, // GROVYLE
|
||||
275, // SCEPTILE
|
||||
270, // TORCHIC
|
||||
271, // COMBUSKEN
|
||||
272, // BLAZIKEN
|
||||
276, // MUDKIP
|
||||
277, // MARSHTOMP
|
||||
278, // SWAMPERT
|
||||
359, // POOCHYENA
|
||||
360, // MIGHTYENA
|
||||
378, // ZIGZAGOON
|
||||
375, // LINOONE
|
||||
290, // WURMPLE
|
||||
291, // SILCOON
|
||||
292, // BEAUTIFLY
|
||||
293, // CASCOON
|
||||
294, // DUSTOX
|
||||
283, // LOTAD
|
||||
284, // LOMBRE
|
||||
285, // LUDICOLO
|
||||
286, // SEEDOT
|
||||
287, // NUZLEAF
|
||||
288, // SHIFTRY
|
||||
301, // NINCADA
|
||||
302, // NINJASK
|
||||
303, // SHEDINJA
|
||||
266, // TAILLOW
|
||||
267, // SWELLOW
|
||||
374, // SHROOMISH
|
||||
373, // BRELOOM
|
||||
269, // SPINDA
|
||||
280, // WINGULL
|
||||
279, // PELIPPER
|
||||
310, // SURSKIT
|
||||
311, // MASQUERAIN
|
||||
377, // WAILMER
|
||||
381, // WAILORD
|
||||
312, // SKITTY
|
||||
313, // DELCATTY
|
||||
251, // KECLEON
|
||||
329, // BALTOY
|
||||
330, // CLAYDOL
|
||||
306, // NOSEPASS
|
||||
253, // TORKOAL
|
||||
362, // SABLEYE
|
||||
318, // BARBOACH
|
||||
319, // WHISCASH
|
||||
368, // LUVDISC
|
||||
320, // CORPHISH
|
||||
321, // CRAWDAUNT
|
||||
333, // FEEBAS
|
||||
334, // MILOTIC
|
||||
289, // CARVANHA
|
||||
260, // SHARPEDO
|
||||
324, // TRAPINCH
|
||||
325, // VIBRAVA
|
||||
326, // FLYGON
|
||||
304, // MAKUHITA
|
||||
305, // HARIYAMA
|
||||
254, // ELECTRIKE
|
||||
255, // MANECTRIC
|
||||
316, // NUMEL
|
||||
317, // CAMERUPT
|
||||
338, // SPHEAL
|
||||
339, // SEALEO
|
||||
340, // WALREIN
|
||||
327, // CACNEA
|
||||
328, // CACTURNE
|
||||
383, // SNORUNT
|
||||
307, // GLALIE
|
||||
331, // LUNATONE
|
||||
332, // SOLROCK
|
||||
262, // AZURILL
|
||||
322, // SPOINK
|
||||
323, // GRUMPIG
|
||||
308, // PLUSLE
|
||||
309, // MINUN
|
||||
363, // MAWILE
|
||||
336, // MEDITITE
|
||||
337, // MEDICHAM
|
||||
263, // SWABLU
|
||||
264, // ALTARIA
|
||||
258, // WYNAUT
|
||||
256, // DUSKULL
|
||||
361, // DUSCLOPS
|
||||
252, // ROSELIA
|
||||
298, // SLAKOTH
|
||||
299, // VIGOROTH
|
||||
300, // SLAKING
|
||||
314, // GULPIN
|
||||
315, // SWALOT
|
||||
376, // TROPIUS
|
||||
382, // WHISMUR
|
||||
380, // LOUDRED
|
||||
379, // EXPLOUD
|
||||
341, // CLAMPERL
|
||||
342, // HUNTAIL
|
||||
343, // GOREBYSS
|
||||
335, // ABSOL
|
||||
282, // SHUPPET
|
||||
281, // BANETTE
|
||||
259, // SEVIPER
|
||||
261, // ZANGOOSE
|
||||
367, // RELICANTH
|
||||
364, // ARON
|
||||
365, // LAIRON
|
||||
366, // AGGRON
|
||||
356, // CASTFORM
|
||||
357, // VOLBEAT
|
||||
358, // ILLUMISE
|
||||
344, // LILEEP
|
||||
345, // CRADILY
|
||||
346, // ANORITH
|
||||
347, // ARMALDO
|
||||
295, // RALTS
|
||||
296, // KIRLIA
|
||||
297, // GARDEVOIR
|
||||
351, // BAGON
|
||||
352, // SHELGON
|
||||
372, // SALAMENCE
|
||||
348, // BELDUM
|
||||
349, // METANG
|
||||
350, // METAGROSS
|
||||
353, // REGIROCK
|
||||
354, // REGICE
|
||||
355, // REGISTEEL
|
||||
370, // KYOGRE
|
||||
369, // GROUDON
|
||||
371, // RAYQUAZA
|
||||
257, // LATIAS
|
||||
384, // LATIOS
|
||||
385, // JIRACHI
|
||||
386, // DEOXYS
|
||||
387 // CHIMECHO
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_CRY_IDS_H
|
||||
@@ -0,0 +1,192 @@
|
||||
#ifndef POKEEMERALD_EVOLUTION_H
|
||||
#define POKEEMERALD_EVOLUTION_H
|
||||
|
||||
const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
|
||||
{
|
||||
[SPECIES_BULBASAUR] = {{EVO_LEVEL, 16, SPECIES_IVYSAUR}},
|
||||
[SPECIES_IVYSAUR] = {{EVO_LEVEL, 32, SPECIES_VENUSAUR}},
|
||||
[SPECIES_CHARMANDER] = {{EVO_LEVEL, 16, SPECIES_CHARMELEON}},
|
||||
[SPECIES_CHARMELEON] = {{EVO_LEVEL, 36, SPECIES_CHARIZARD}},
|
||||
[SPECIES_SQUIRTLE] = {{EVO_LEVEL, 16, SPECIES_WARTORTLE}},
|
||||
[SPECIES_WARTORTLE] = {{EVO_LEVEL, 36, SPECIES_BLASTOISE}},
|
||||
[SPECIES_CATERPIE] = {{EVO_LEVEL, 7, SPECIES_METAPOD}},
|
||||
[SPECIES_METAPOD] = {{EVO_LEVEL, 10, SPECIES_BUTTERFREE}},
|
||||
[SPECIES_WEEDLE] = {{EVO_LEVEL, 7, SPECIES_KAKUNA}},
|
||||
[SPECIES_KAKUNA] = {{EVO_LEVEL, 10, SPECIES_BEEDRILL}},
|
||||
[SPECIES_PIDGEY] = {{EVO_LEVEL, 18, SPECIES_PIDGEOTTO}},
|
||||
[SPECIES_PIDGEOTTO] = {{EVO_LEVEL, 36, SPECIES_PIDGEOT}},
|
||||
[SPECIES_RATTATA] = {{EVO_LEVEL, 20, SPECIES_RATICATE}},
|
||||
[SPECIES_SPEAROW] = {{EVO_LEVEL, 20, SPECIES_FEAROW}},
|
||||
[SPECIES_EKANS] = {{EVO_LEVEL, 22, SPECIES_ARBOK}},
|
||||
[SPECIES_PIKACHU] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}},
|
||||
[SPECIES_SANDSHREW] = {{EVO_LEVEL, 22, SPECIES_SANDSLASH}},
|
||||
[SPECIES_NIDORAN_F] = {{EVO_LEVEL, 16, SPECIES_NIDORINA}},
|
||||
[SPECIES_NIDORINA] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOQUEEN}},
|
||||
[SPECIES_NIDORAN_M] = {{EVO_LEVEL, 16, SPECIES_NIDORINO}},
|
||||
[SPECIES_NIDORINO] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_NIDOKING}},
|
||||
[SPECIES_CLEFAIRY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_CLEFABLE}},
|
||||
[SPECIES_VULPIX] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_NINETALES}},
|
||||
[SPECIES_JIGGLYPUFF] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_WIGGLYTUFF}},
|
||||
[SPECIES_ZUBAT] = {{EVO_LEVEL, 22, SPECIES_GOLBAT}},
|
||||
[SPECIES_GOLBAT] = {{EVO_FRIENDSHIP, 0, SPECIES_CROBAT}},
|
||||
[SPECIES_ODDISH] = {{EVO_LEVEL, 21, SPECIES_GLOOM}},
|
||||
[SPECIES_GLOOM] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VILEPLUME},
|
||||
{EVO_ITEM, ITEM_SUN_STONE, SPECIES_BELLOSSOM}},
|
||||
[SPECIES_PARAS] = {{EVO_LEVEL, 24, SPECIES_PARASECT}},
|
||||
[SPECIES_VENONAT] = {{EVO_LEVEL, 31, SPECIES_VENOMOTH}},
|
||||
[SPECIES_DIGLETT] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO}},
|
||||
[SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}},
|
||||
[SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}},
|
||||
[SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}},
|
||||
[SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}},
|
||||
[SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}},
|
||||
[SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
|
||||
{EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}},
|
||||
[SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}},
|
||||
[SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}},
|
||||
[SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}},
|
||||
[SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}},
|
||||
[SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}},
|
||||
[SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}},
|
||||
[SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}},
|
||||
[SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}},
|
||||
[SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}},
|
||||
[SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}},
|
||||
[SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO},
|
||||
{EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}},
|
||||
[SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}},
|
||||
[SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}},
|
||||
[SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}},
|
||||
[SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}},
|
||||
[SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}},
|
||||
[SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}},
|
||||
[SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}},
|
||||
[SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}},
|
||||
[SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}},
|
||||
[SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}},
|
||||
[SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}},
|
||||
[SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}},
|
||||
[SPECIES_CUBONE] = {{EVO_LEVEL, 28, SPECIES_MAROWAK}},
|
||||
[SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}},
|
||||
[SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}},
|
||||
[SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}},
|
||||
[SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}},
|
||||
[SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}},
|
||||
[SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}},
|
||||
[SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}},
|
||||
[SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}},
|
||||
[SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}},
|
||||
[SPECIES_EEVEE] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
|
||||
{EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
|
||||
{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
|
||||
{EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
|
||||
{EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}},
|
||||
[SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
|
||||
[SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}},
|
||||
[SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}},
|
||||
[SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}},
|
||||
[SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}},
|
||||
[SPECIES_CHIKORITA] = {{EVO_LEVEL, 16, SPECIES_BAYLEEF}},
|
||||
[SPECIES_BAYLEEF] = {{EVO_LEVEL, 32, SPECIES_MEGANIUM}},
|
||||
[SPECIES_CYNDAQUIL] = {{EVO_LEVEL, 14, SPECIES_QUILAVA}},
|
||||
[SPECIES_QUILAVA] = {{EVO_LEVEL, 36, SPECIES_TYPHLOSION}},
|
||||
[SPECIES_TOTODILE] = {{EVO_LEVEL, 18, SPECIES_CROCONAW}},
|
||||
[SPECIES_CROCONAW] = {{EVO_LEVEL, 30, SPECIES_FERALIGATR}},
|
||||
[SPECIES_SENTRET] = {{EVO_LEVEL, 15, SPECIES_FURRET}},
|
||||
[SPECIES_HOOTHOOT] = {{EVO_LEVEL, 20, SPECIES_NOCTOWL}},
|
||||
[SPECIES_LEDYBA] = {{EVO_LEVEL, 18, SPECIES_LEDIAN}},
|
||||
[SPECIES_SPINARAK] = {{EVO_LEVEL, 22, SPECIES_ARIADOS}},
|
||||
[SPECIES_CHINCHOU] = {{EVO_LEVEL, 27, SPECIES_LANTURN}},
|
||||
[SPECIES_PICHU] = {{EVO_FRIENDSHIP, 0, SPECIES_PIKACHU}},
|
||||
[SPECIES_CLEFFA] = {{EVO_FRIENDSHIP, 0, SPECIES_CLEFAIRY}},
|
||||
[SPECIES_IGGLYBUFF] = {{EVO_FRIENDSHIP, 0, SPECIES_JIGGLYPUFF}},
|
||||
[SPECIES_TOGEPI] = {{EVO_FRIENDSHIP, 0, SPECIES_TOGETIC}},
|
||||
[SPECIES_NATU] = {{EVO_LEVEL, 25, SPECIES_XATU}},
|
||||
[SPECIES_MAREEP] = {{EVO_LEVEL, 15, SPECIES_FLAAFFY}},
|
||||
[SPECIES_FLAAFFY] = {{EVO_LEVEL, 30, SPECIES_AMPHAROS}},
|
||||
[SPECIES_MARILL] = {{EVO_LEVEL, 18, SPECIES_AZUMARILL}},
|
||||
[SPECIES_HOPPIP] = {{EVO_LEVEL, 18, SPECIES_SKIPLOOM}},
|
||||
[SPECIES_SKIPLOOM] = {{EVO_LEVEL, 27, SPECIES_JUMPLUFF}},
|
||||
[SPECIES_SUNKERN] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_SUNFLORA}},
|
||||
[SPECIES_WOOPER] = {{EVO_LEVEL, 20, SPECIES_QUAGSIRE}},
|
||||
[SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}},
|
||||
[SPECIES_SNUBBULL] = {{EVO_LEVEL, 23, SPECIES_GRANBULL}},
|
||||
[SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}},
|
||||
[SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}},
|
||||
[SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}},
|
||||
[SPECIES_REMORAID] = {{EVO_LEVEL, 25, SPECIES_OCTILLERY}},
|
||||
[SPECIES_HOUNDOUR] = {{EVO_LEVEL, 24, SPECIES_HOUNDOOM}},
|
||||
[SPECIES_PHANPY] = {{EVO_LEVEL, 25, SPECIES_DONPHAN}},
|
||||
[SPECIES_TYROGUE] = {{EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
|
||||
{EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
|
||||
{EVO_LEVEL_ATK_EQ_DEF, 20, SPECIES_HITMONTOP}},
|
||||
[SPECIES_SMOOCHUM] = {{EVO_LEVEL, 30, SPECIES_JYNX}},
|
||||
[SPECIES_ELEKID] = {{EVO_LEVEL, 30, SPECIES_ELECTABUZZ}},
|
||||
[SPECIES_MAGBY] = {{EVO_LEVEL, 30, SPECIES_MAGMAR}},
|
||||
[SPECIES_LARVITAR] = {{EVO_LEVEL, 30, SPECIES_PUPITAR}},
|
||||
[SPECIES_PUPITAR] = {{EVO_LEVEL, 55, SPECIES_TYRANITAR}},
|
||||
[SPECIES_TREECKO] = {{EVO_LEVEL, 16, SPECIES_GROVYLE}},
|
||||
[SPECIES_GROVYLE] = {{EVO_LEVEL, 36, SPECIES_SCEPTILE}},
|
||||
[SPECIES_TORCHIC] = {{EVO_LEVEL, 16, SPECIES_COMBUSKEN}},
|
||||
[SPECIES_COMBUSKEN] = {{EVO_LEVEL, 36, SPECIES_BLAZIKEN}},
|
||||
[SPECIES_MUDKIP] = {{EVO_LEVEL, 16, SPECIES_MARSHTOMP}},
|
||||
[SPECIES_MARSHTOMP] = {{EVO_LEVEL, 36, SPECIES_SWAMPERT}},
|
||||
[SPECIES_POOCHYENA] = {{EVO_LEVEL, 18, SPECIES_MIGHTYENA}},
|
||||
[SPECIES_ZIGZAGOON] = {{EVO_LEVEL, 20, SPECIES_LINOONE}},
|
||||
[SPECIES_WURMPLE] = {{EVO_LEVEL_SILCOON, 7, SPECIES_SILCOON},
|
||||
{EVO_LEVEL_CASCOON, 7, SPECIES_CASCOON}},
|
||||
[SPECIES_SILCOON] = {{EVO_LEVEL, 10, SPECIES_BEAUTIFLY}},
|
||||
[SPECIES_CASCOON] = {{EVO_LEVEL, 10, SPECIES_DUSTOX}},
|
||||
[SPECIES_LOTAD] = {{EVO_LEVEL, 14, SPECIES_LOMBRE}},
|
||||
[SPECIES_LOMBRE] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_LUDICOLO}},
|
||||
[SPECIES_SEEDOT] = {{EVO_LEVEL, 14, SPECIES_NUZLEAF}},
|
||||
[SPECIES_NUZLEAF] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_SHIFTRY}},
|
||||
[SPECIES_NINCADA] = {{EVO_LEVEL_NINJASK, 20, SPECIES_NINJASK},
|
||||
{EVO_LEVEL_SHEDINJA, 20, SPECIES_SHEDINJA}},
|
||||
[SPECIES_TAILLOW] = {{EVO_LEVEL, 22, SPECIES_SWELLOW}},
|
||||
[SPECIES_SHROOMISH] = {{EVO_LEVEL, 23, SPECIES_BRELOOM}},
|
||||
[SPECIES_WINGULL] = {{EVO_LEVEL, 25, SPECIES_PELIPPER}},
|
||||
[SPECIES_SURSKIT] = {{EVO_LEVEL, 22, SPECIES_MASQUERAIN}},
|
||||
[SPECIES_WAILMER] = {{EVO_LEVEL, 40, SPECIES_WAILORD}},
|
||||
[SPECIES_SKITTY] = {{EVO_ITEM, ITEM_MOON_STONE, SPECIES_DELCATTY}},
|
||||
[SPECIES_BALTOY] = {{EVO_LEVEL, 36, SPECIES_CLAYDOL}},
|
||||
[SPECIES_BARBOACH] = {{EVO_LEVEL, 30, SPECIES_WHISCASH}},
|
||||
[SPECIES_CORPHISH] = {{EVO_LEVEL, 30, SPECIES_CRAWDAUNT}},
|
||||
[SPECIES_FEEBAS] = {{EVO_BEAUTY, 170, SPECIES_MILOTIC}},
|
||||
[SPECIES_CARVANHA] = {{EVO_LEVEL, 30, SPECIES_SHARPEDO}},
|
||||
[SPECIES_TRAPINCH] = {{EVO_LEVEL, 35, SPECIES_VIBRAVA}},
|
||||
[SPECIES_VIBRAVA] = {{EVO_LEVEL, 45, SPECIES_FLYGON}},
|
||||
[SPECIES_MAKUHITA] = {{EVO_LEVEL, 24, SPECIES_HARIYAMA}},
|
||||
[SPECIES_ELECTRIKE] = {{EVO_LEVEL, 26, SPECIES_MANECTRIC}},
|
||||
[SPECIES_NUMEL] = {{EVO_LEVEL, 33, SPECIES_CAMERUPT}},
|
||||
[SPECIES_SPHEAL] = {{EVO_LEVEL, 32, SPECIES_SEALEO}},
|
||||
[SPECIES_SEALEO] = {{EVO_LEVEL, 44, SPECIES_WALREIN}},
|
||||
[SPECIES_CACNEA] = {{EVO_LEVEL, 32, SPECIES_CACTURNE}},
|
||||
[SPECIES_SNORUNT] = {{EVO_LEVEL, 42, SPECIES_GLALIE}},
|
||||
[SPECIES_AZURILL] = {{EVO_FRIENDSHIP, 0, SPECIES_MARILL}},
|
||||
[SPECIES_SPOINK] = {{EVO_LEVEL, 32, SPECIES_GRUMPIG}},
|
||||
[SPECIES_MEDITITE] = {{EVO_LEVEL, 37, SPECIES_MEDICHAM}},
|
||||
[SPECIES_SWABLU] = {{EVO_LEVEL, 35, SPECIES_ALTARIA}},
|
||||
[SPECIES_WYNAUT] = {{EVO_LEVEL, 15, SPECIES_WOBBUFFET}},
|
||||
[SPECIES_DUSKULL] = {{EVO_LEVEL, 37, SPECIES_DUSCLOPS}},
|
||||
[SPECIES_SLAKOTH] = {{EVO_LEVEL, 18, SPECIES_VIGOROTH}},
|
||||
[SPECIES_VIGOROTH] = {{EVO_LEVEL, 36, SPECIES_SLAKING}},
|
||||
[SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}},
|
||||
[SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}},
|
||||
[SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}},
|
||||
[SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
|
||||
{EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}},
|
||||
[SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}},
|
||||
[SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}},
|
||||
[SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}},
|
||||
[SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}},
|
||||
[SPECIES_ANORITH] = {{EVO_LEVEL, 40, SPECIES_ARMALDO}},
|
||||
[SPECIES_RALTS] = {{EVO_LEVEL, 20, SPECIES_KIRLIA}},
|
||||
[SPECIES_KIRLIA] = {{EVO_LEVEL, 30, SPECIES_GARDEVOIR}},
|
||||
[SPECIES_BAGON] = {{EVO_LEVEL, 30, SPECIES_SHELGON}},
|
||||
[SPECIES_SHELGON] = {{EVO_LEVEL, 50, SPECIES_SALAMENCE}},
|
||||
[SPECIES_BELDUM] = {{EVO_LEVEL, 20, SPECIES_METANG}},
|
||||
[SPECIES_METANG] = {{EVO_LEVEL, 45, SPECIES_METAGROSS}},
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_EVOLUTION_H
|
||||
@@ -0,0 +1,849 @@
|
||||
#ifndef POKEEMERALD_EXPERIENCE_TABLES_H
|
||||
#define POKEEMERALD_EXPERIENCE_TABLES_H
|
||||
|
||||
#define SQUARE(n)(n * n)
|
||||
#define CUBE(n)(n * n * n)
|
||||
|
||||
#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4
|
||||
#define EXP_FAST(n)((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5
|
||||
#define EXP_MEDIUM_FAST(n)(CUBE(n)) // (n)^3
|
||||
#define EXP_MEDIUM_SLOW(n)((6 * CUBE(n)) / 5 - (15 * SQUARE(n)) + (100 * n) - 140) // (6 * (n)^3) / 5 - (15 * (n)^2) + (100 * n) - 140
|
||||
#define EXP_ERRATIC(n) \
|
||||
(n <= 50) ? ((100 - n) * CUBE(n) / 50) \
|
||||
:(n <= 68) ? ((150 - n) * CUBE(n) / 100) \
|
||||
:(n <= 98) ? (((1911 - 10 * n) / 3) * CUBE(n) / 500) \
|
||||
: ((160 - n) * CUBE(n) / 100)
|
||||
#define EXP_FLUCTUATING(n) \
|
||||
(n <= 15) ? (((n + 1) / 3 + 24) * CUBE(n) / 50) \
|
||||
:(n <= 36) ? ((n + 14) * CUBE(n) / 50) \
|
||||
: (((n / 2) + 32) * CUBE(n) / 50)
|
||||
|
||||
const u32 gExperienceTables[][MAX_MON_LEVEL + 1] =
|
||||
{
|
||||
{ // Medium Fast
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_MEDIUM_FAST(2),
|
||||
EXP_MEDIUM_FAST(3),
|
||||
EXP_MEDIUM_FAST(4),
|
||||
EXP_MEDIUM_FAST(5),
|
||||
EXP_MEDIUM_FAST(6),
|
||||
EXP_MEDIUM_FAST(7),
|
||||
EXP_MEDIUM_FAST(8),
|
||||
EXP_MEDIUM_FAST(9),
|
||||
EXP_MEDIUM_FAST(10),
|
||||
EXP_MEDIUM_FAST(11),
|
||||
EXP_MEDIUM_FAST(12),
|
||||
EXP_MEDIUM_FAST(13),
|
||||
EXP_MEDIUM_FAST(14),
|
||||
EXP_MEDIUM_FAST(15),
|
||||
EXP_MEDIUM_FAST(16),
|
||||
EXP_MEDIUM_FAST(17),
|
||||
EXP_MEDIUM_FAST(18),
|
||||
EXP_MEDIUM_FAST(19),
|
||||
EXP_MEDIUM_FAST(20),
|
||||
EXP_MEDIUM_FAST(21),
|
||||
EXP_MEDIUM_FAST(22),
|
||||
EXP_MEDIUM_FAST(23),
|
||||
EXP_MEDIUM_FAST(24),
|
||||
EXP_MEDIUM_FAST(25),
|
||||
EXP_MEDIUM_FAST(26),
|
||||
EXP_MEDIUM_FAST(27),
|
||||
EXP_MEDIUM_FAST(28),
|
||||
EXP_MEDIUM_FAST(29),
|
||||
EXP_MEDIUM_FAST(30),
|
||||
EXP_MEDIUM_FAST(31),
|
||||
EXP_MEDIUM_FAST(32),
|
||||
EXP_MEDIUM_FAST(33),
|
||||
EXP_MEDIUM_FAST(34),
|
||||
EXP_MEDIUM_FAST(35),
|
||||
EXP_MEDIUM_FAST(36),
|
||||
EXP_MEDIUM_FAST(37),
|
||||
EXP_MEDIUM_FAST(38),
|
||||
EXP_MEDIUM_FAST(39),
|
||||
EXP_MEDIUM_FAST(40),
|
||||
EXP_MEDIUM_FAST(41),
|
||||
EXP_MEDIUM_FAST(42),
|
||||
EXP_MEDIUM_FAST(43),
|
||||
EXP_MEDIUM_FAST(44),
|
||||
EXP_MEDIUM_FAST(45),
|
||||
EXP_MEDIUM_FAST(46),
|
||||
EXP_MEDIUM_FAST(47),
|
||||
EXP_MEDIUM_FAST(48),
|
||||
EXP_MEDIUM_FAST(49),
|
||||
EXP_MEDIUM_FAST(50),
|
||||
EXP_MEDIUM_FAST(51),
|
||||
EXP_MEDIUM_FAST(52),
|
||||
EXP_MEDIUM_FAST(53),
|
||||
EXP_MEDIUM_FAST(54),
|
||||
EXP_MEDIUM_FAST(55),
|
||||
EXP_MEDIUM_FAST(56),
|
||||
EXP_MEDIUM_FAST(57),
|
||||
EXP_MEDIUM_FAST(58),
|
||||
EXP_MEDIUM_FAST(59),
|
||||
EXP_MEDIUM_FAST(60),
|
||||
EXP_MEDIUM_FAST(61),
|
||||
EXP_MEDIUM_FAST(62),
|
||||
EXP_MEDIUM_FAST(63),
|
||||
EXP_MEDIUM_FAST(64),
|
||||
EXP_MEDIUM_FAST(65),
|
||||
EXP_MEDIUM_FAST(66),
|
||||
EXP_MEDIUM_FAST(67),
|
||||
EXP_MEDIUM_FAST(68),
|
||||
EXP_MEDIUM_FAST(69),
|
||||
EXP_MEDIUM_FAST(70),
|
||||
EXP_MEDIUM_FAST(71),
|
||||
EXP_MEDIUM_FAST(72),
|
||||
EXP_MEDIUM_FAST(73),
|
||||
EXP_MEDIUM_FAST(74),
|
||||
EXP_MEDIUM_FAST(75),
|
||||
EXP_MEDIUM_FAST(76),
|
||||
EXP_MEDIUM_FAST(77),
|
||||
EXP_MEDIUM_FAST(78),
|
||||
EXP_MEDIUM_FAST(79),
|
||||
EXP_MEDIUM_FAST(80),
|
||||
EXP_MEDIUM_FAST(81),
|
||||
EXP_MEDIUM_FAST(82),
|
||||
EXP_MEDIUM_FAST(83),
|
||||
EXP_MEDIUM_FAST(84),
|
||||
EXP_MEDIUM_FAST(85),
|
||||
EXP_MEDIUM_FAST(86),
|
||||
EXP_MEDIUM_FAST(87),
|
||||
EXP_MEDIUM_FAST(88),
|
||||
EXP_MEDIUM_FAST(89),
|
||||
EXP_MEDIUM_FAST(90),
|
||||
EXP_MEDIUM_FAST(91),
|
||||
EXP_MEDIUM_FAST(92),
|
||||
EXP_MEDIUM_FAST(93),
|
||||
EXP_MEDIUM_FAST(94),
|
||||
EXP_MEDIUM_FAST(95),
|
||||
EXP_MEDIUM_FAST(96),
|
||||
EXP_MEDIUM_FAST(97),
|
||||
EXP_MEDIUM_FAST(98),
|
||||
EXP_MEDIUM_FAST(99),
|
||||
EXP_MEDIUM_FAST(100),
|
||||
},
|
||||
{ // Erratic
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_ERRATIC(2),
|
||||
EXP_ERRATIC(3),
|
||||
EXP_ERRATIC(4),
|
||||
EXP_ERRATIC(5),
|
||||
EXP_ERRATIC(6),
|
||||
EXP_ERRATIC(7),
|
||||
EXP_ERRATIC(8),
|
||||
EXP_ERRATIC(9),
|
||||
EXP_ERRATIC(10),
|
||||
EXP_ERRATIC(11),
|
||||
EXP_ERRATIC(12),
|
||||
EXP_ERRATIC(13),
|
||||
EXP_ERRATIC(14),
|
||||
EXP_ERRATIC(15),
|
||||
EXP_ERRATIC(16),
|
||||
EXP_ERRATIC(17),
|
||||
EXP_ERRATIC(18),
|
||||
EXP_ERRATIC(19),
|
||||
EXP_ERRATIC(20),
|
||||
EXP_ERRATIC(21),
|
||||
EXP_ERRATIC(22),
|
||||
EXP_ERRATIC(23),
|
||||
EXP_ERRATIC(24),
|
||||
EXP_ERRATIC(25),
|
||||
EXP_ERRATIC(26),
|
||||
EXP_ERRATIC(27),
|
||||
EXP_ERRATIC(28),
|
||||
EXP_ERRATIC(29),
|
||||
EXP_ERRATIC(30),
|
||||
EXP_ERRATIC(31),
|
||||
EXP_ERRATIC(32),
|
||||
EXP_ERRATIC(33),
|
||||
EXP_ERRATIC(34),
|
||||
EXP_ERRATIC(35),
|
||||
EXP_ERRATIC(36),
|
||||
EXP_ERRATIC(37),
|
||||
EXP_ERRATIC(38),
|
||||
EXP_ERRATIC(39),
|
||||
EXP_ERRATIC(40),
|
||||
EXP_ERRATIC(41),
|
||||
EXP_ERRATIC(42),
|
||||
EXP_ERRATIC(43),
|
||||
EXP_ERRATIC(44),
|
||||
EXP_ERRATIC(45),
|
||||
EXP_ERRATIC(46),
|
||||
EXP_ERRATIC(47),
|
||||
EXP_ERRATIC(48),
|
||||
EXP_ERRATIC(49),
|
||||
EXP_ERRATIC(50),
|
||||
EXP_ERRATIC(51),
|
||||
EXP_ERRATIC(52),
|
||||
EXP_ERRATIC(53),
|
||||
EXP_ERRATIC(54),
|
||||
EXP_ERRATIC(55),
|
||||
EXP_ERRATIC(56),
|
||||
EXP_ERRATIC(57),
|
||||
EXP_ERRATIC(58),
|
||||
EXP_ERRATIC(59),
|
||||
EXP_ERRATIC(60),
|
||||
EXP_ERRATIC(61),
|
||||
EXP_ERRATIC(62),
|
||||
EXP_ERRATIC(63),
|
||||
EXP_ERRATIC(64),
|
||||
EXP_ERRATIC(65),
|
||||
EXP_ERRATIC(66),
|
||||
EXP_ERRATIC(67),
|
||||
EXP_ERRATIC(68),
|
||||
EXP_ERRATIC(69),
|
||||
EXP_ERRATIC(70),
|
||||
EXP_ERRATIC(71),
|
||||
EXP_ERRATIC(72),
|
||||
EXP_ERRATIC(73),
|
||||
EXP_ERRATIC(74),
|
||||
EXP_ERRATIC(75),
|
||||
EXP_ERRATIC(76),
|
||||
EXP_ERRATIC(77),
|
||||
EXP_ERRATIC(78),
|
||||
EXP_ERRATIC(79),
|
||||
EXP_ERRATIC(80),
|
||||
EXP_ERRATIC(81),
|
||||
EXP_ERRATIC(82),
|
||||
EXP_ERRATIC(83),
|
||||
EXP_ERRATIC(84),
|
||||
EXP_ERRATIC(85),
|
||||
EXP_ERRATIC(86),
|
||||
EXP_ERRATIC(87),
|
||||
EXP_ERRATIC(88),
|
||||
EXP_ERRATIC(89),
|
||||
EXP_ERRATIC(90),
|
||||
EXP_ERRATIC(91),
|
||||
EXP_ERRATIC(92),
|
||||
EXP_ERRATIC(93),
|
||||
EXP_ERRATIC(94),
|
||||
EXP_ERRATIC(95),
|
||||
EXP_ERRATIC(96),
|
||||
EXP_ERRATIC(97),
|
||||
EXP_ERRATIC(98),
|
||||
EXP_ERRATIC(99),
|
||||
EXP_ERRATIC(100),
|
||||
},
|
||||
{ // Fluctuating
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_FLUCTUATING(2),
|
||||
EXP_FLUCTUATING(3),
|
||||
EXP_FLUCTUATING(4),
|
||||
EXP_FLUCTUATING(5),
|
||||
EXP_FLUCTUATING(6),
|
||||
EXP_FLUCTUATING(7),
|
||||
EXP_FLUCTUATING(8),
|
||||
EXP_FLUCTUATING(9),
|
||||
EXP_FLUCTUATING(10),
|
||||
EXP_FLUCTUATING(11),
|
||||
EXP_FLUCTUATING(12),
|
||||
EXP_FLUCTUATING(13),
|
||||
EXP_FLUCTUATING(14),
|
||||
EXP_FLUCTUATING(15),
|
||||
EXP_FLUCTUATING(16),
|
||||
EXP_FLUCTUATING(17),
|
||||
EXP_FLUCTUATING(18),
|
||||
EXP_FLUCTUATING(19),
|
||||
EXP_FLUCTUATING(20),
|
||||
EXP_FLUCTUATING(21),
|
||||
EXP_FLUCTUATING(22),
|
||||
EXP_FLUCTUATING(23),
|
||||
EXP_FLUCTUATING(24),
|
||||
EXP_FLUCTUATING(25),
|
||||
EXP_FLUCTUATING(26),
|
||||
EXP_FLUCTUATING(27),
|
||||
EXP_FLUCTUATING(28),
|
||||
EXP_FLUCTUATING(29),
|
||||
EXP_FLUCTUATING(30),
|
||||
EXP_FLUCTUATING(31),
|
||||
EXP_FLUCTUATING(32),
|
||||
EXP_FLUCTUATING(33),
|
||||
EXP_FLUCTUATING(34),
|
||||
EXP_FLUCTUATING(35),
|
||||
EXP_FLUCTUATING(36),
|
||||
EXP_FLUCTUATING(37),
|
||||
EXP_FLUCTUATING(38),
|
||||
EXP_FLUCTUATING(39),
|
||||
EXP_FLUCTUATING(40),
|
||||
EXP_FLUCTUATING(41),
|
||||
EXP_FLUCTUATING(42),
|
||||
EXP_FLUCTUATING(43),
|
||||
EXP_FLUCTUATING(44),
|
||||
EXP_FLUCTUATING(45),
|
||||
EXP_FLUCTUATING(46),
|
||||
EXP_FLUCTUATING(47),
|
||||
EXP_FLUCTUATING(48),
|
||||
EXP_FLUCTUATING(49),
|
||||
EXP_FLUCTUATING(50),
|
||||
EXP_FLUCTUATING(51),
|
||||
EXP_FLUCTUATING(52),
|
||||
EXP_FLUCTUATING(53),
|
||||
EXP_FLUCTUATING(54),
|
||||
EXP_FLUCTUATING(55),
|
||||
EXP_FLUCTUATING(56),
|
||||
EXP_FLUCTUATING(57),
|
||||
EXP_FLUCTUATING(58),
|
||||
EXP_FLUCTUATING(59),
|
||||
EXP_FLUCTUATING(60),
|
||||
EXP_FLUCTUATING(61),
|
||||
EXP_FLUCTUATING(62),
|
||||
EXP_FLUCTUATING(63),
|
||||
EXP_FLUCTUATING(64),
|
||||
EXP_FLUCTUATING(65),
|
||||
EXP_FLUCTUATING(66),
|
||||
EXP_FLUCTUATING(67),
|
||||
EXP_FLUCTUATING(68),
|
||||
EXP_FLUCTUATING(69),
|
||||
EXP_FLUCTUATING(70),
|
||||
EXP_FLUCTUATING(71),
|
||||
EXP_FLUCTUATING(72),
|
||||
EXP_FLUCTUATING(73),
|
||||
EXP_FLUCTUATING(74),
|
||||
EXP_FLUCTUATING(75),
|
||||
EXP_FLUCTUATING(76),
|
||||
EXP_FLUCTUATING(77),
|
||||
EXP_FLUCTUATING(78),
|
||||
EXP_FLUCTUATING(79),
|
||||
EXP_FLUCTUATING(80),
|
||||
EXP_FLUCTUATING(81),
|
||||
EXP_FLUCTUATING(82),
|
||||
EXP_FLUCTUATING(83),
|
||||
EXP_FLUCTUATING(84),
|
||||
EXP_FLUCTUATING(85),
|
||||
EXP_FLUCTUATING(86),
|
||||
EXP_FLUCTUATING(87),
|
||||
EXP_FLUCTUATING(88),
|
||||
EXP_FLUCTUATING(89),
|
||||
EXP_FLUCTUATING(90),
|
||||
EXP_FLUCTUATING(91),
|
||||
EXP_FLUCTUATING(92),
|
||||
EXP_FLUCTUATING(93),
|
||||
EXP_FLUCTUATING(94),
|
||||
EXP_FLUCTUATING(95),
|
||||
EXP_FLUCTUATING(96),
|
||||
EXP_FLUCTUATING(97),
|
||||
EXP_FLUCTUATING(98),
|
||||
EXP_FLUCTUATING(99),
|
||||
EXP_FLUCTUATING(100),
|
||||
},
|
||||
{ // Medium Slow
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_MEDIUM_SLOW(2),
|
||||
EXP_MEDIUM_SLOW(3),
|
||||
EXP_MEDIUM_SLOW(4),
|
||||
EXP_MEDIUM_SLOW(5),
|
||||
EXP_MEDIUM_SLOW(6),
|
||||
EXP_MEDIUM_SLOW(7),
|
||||
EXP_MEDIUM_SLOW(8),
|
||||
EXP_MEDIUM_SLOW(9),
|
||||
EXP_MEDIUM_SLOW(10),
|
||||
EXP_MEDIUM_SLOW(11),
|
||||
EXP_MEDIUM_SLOW(12),
|
||||
EXP_MEDIUM_SLOW(13),
|
||||
EXP_MEDIUM_SLOW(14),
|
||||
EXP_MEDIUM_SLOW(15),
|
||||
EXP_MEDIUM_SLOW(16),
|
||||
EXP_MEDIUM_SLOW(17),
|
||||
EXP_MEDIUM_SLOW(18),
|
||||
EXP_MEDIUM_SLOW(19),
|
||||
EXP_MEDIUM_SLOW(20),
|
||||
EXP_MEDIUM_SLOW(21),
|
||||
EXP_MEDIUM_SLOW(22),
|
||||
EXP_MEDIUM_SLOW(23),
|
||||
EXP_MEDIUM_SLOW(24),
|
||||
EXP_MEDIUM_SLOW(25),
|
||||
EXP_MEDIUM_SLOW(26),
|
||||
EXP_MEDIUM_SLOW(27),
|
||||
EXP_MEDIUM_SLOW(28),
|
||||
EXP_MEDIUM_SLOW(29),
|
||||
EXP_MEDIUM_SLOW(30),
|
||||
EXP_MEDIUM_SLOW(31),
|
||||
EXP_MEDIUM_SLOW(32),
|
||||
EXP_MEDIUM_SLOW(33),
|
||||
EXP_MEDIUM_SLOW(34),
|
||||
EXP_MEDIUM_SLOW(35),
|
||||
EXP_MEDIUM_SLOW(36),
|
||||
EXP_MEDIUM_SLOW(37),
|
||||
EXP_MEDIUM_SLOW(38),
|
||||
EXP_MEDIUM_SLOW(39),
|
||||
EXP_MEDIUM_SLOW(40),
|
||||
EXP_MEDIUM_SLOW(41),
|
||||
EXP_MEDIUM_SLOW(42),
|
||||
EXP_MEDIUM_SLOW(43),
|
||||
EXP_MEDIUM_SLOW(44),
|
||||
EXP_MEDIUM_SLOW(45),
|
||||
EXP_MEDIUM_SLOW(46),
|
||||
EXP_MEDIUM_SLOW(47),
|
||||
EXP_MEDIUM_SLOW(48),
|
||||
EXP_MEDIUM_SLOW(49),
|
||||
EXP_MEDIUM_SLOW(50),
|
||||
EXP_MEDIUM_SLOW(51),
|
||||
EXP_MEDIUM_SLOW(52),
|
||||
EXP_MEDIUM_SLOW(53),
|
||||
EXP_MEDIUM_SLOW(54),
|
||||
EXP_MEDIUM_SLOW(55),
|
||||
EXP_MEDIUM_SLOW(56),
|
||||
EXP_MEDIUM_SLOW(57),
|
||||
EXP_MEDIUM_SLOW(58),
|
||||
EXP_MEDIUM_SLOW(59),
|
||||
EXP_MEDIUM_SLOW(60),
|
||||
EXP_MEDIUM_SLOW(61),
|
||||
EXP_MEDIUM_SLOW(62),
|
||||
EXP_MEDIUM_SLOW(63),
|
||||
EXP_MEDIUM_SLOW(64),
|
||||
EXP_MEDIUM_SLOW(65),
|
||||
EXP_MEDIUM_SLOW(66),
|
||||
EXP_MEDIUM_SLOW(67),
|
||||
EXP_MEDIUM_SLOW(68),
|
||||
EXP_MEDIUM_SLOW(69),
|
||||
EXP_MEDIUM_SLOW(70),
|
||||
EXP_MEDIUM_SLOW(71),
|
||||
EXP_MEDIUM_SLOW(72),
|
||||
EXP_MEDIUM_SLOW(73),
|
||||
EXP_MEDIUM_SLOW(74),
|
||||
EXP_MEDIUM_SLOW(75),
|
||||
EXP_MEDIUM_SLOW(76),
|
||||
EXP_MEDIUM_SLOW(77),
|
||||
EXP_MEDIUM_SLOW(78),
|
||||
EXP_MEDIUM_SLOW(79),
|
||||
EXP_MEDIUM_SLOW(80),
|
||||
EXP_MEDIUM_SLOW(81),
|
||||
EXP_MEDIUM_SLOW(82),
|
||||
EXP_MEDIUM_SLOW(83),
|
||||
EXP_MEDIUM_SLOW(84),
|
||||
EXP_MEDIUM_SLOW(85),
|
||||
EXP_MEDIUM_SLOW(86),
|
||||
EXP_MEDIUM_SLOW(87),
|
||||
EXP_MEDIUM_SLOW(88),
|
||||
EXP_MEDIUM_SLOW(89),
|
||||
EXP_MEDIUM_SLOW(90),
|
||||
EXP_MEDIUM_SLOW(91),
|
||||
EXP_MEDIUM_SLOW(92),
|
||||
EXP_MEDIUM_SLOW(93),
|
||||
EXP_MEDIUM_SLOW(94),
|
||||
EXP_MEDIUM_SLOW(95),
|
||||
EXP_MEDIUM_SLOW(96),
|
||||
EXP_MEDIUM_SLOW(97),
|
||||
EXP_MEDIUM_SLOW(98),
|
||||
EXP_MEDIUM_SLOW(99),
|
||||
EXP_MEDIUM_SLOW(100),
|
||||
},
|
||||
{ // Fast
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_FAST(2),
|
||||
EXP_FAST(3),
|
||||
EXP_FAST(4),
|
||||
EXP_FAST(5),
|
||||
EXP_FAST(6),
|
||||
EXP_FAST(7),
|
||||
EXP_FAST(8),
|
||||
EXP_FAST(9),
|
||||
EXP_FAST(10),
|
||||
EXP_FAST(11),
|
||||
EXP_FAST(12),
|
||||
EXP_FAST(13),
|
||||
EXP_FAST(14),
|
||||
EXP_FAST(15),
|
||||
EXP_FAST(16),
|
||||
EXP_FAST(17),
|
||||
EXP_FAST(18),
|
||||
EXP_FAST(19),
|
||||
EXP_FAST(20),
|
||||
EXP_FAST(21),
|
||||
EXP_FAST(22),
|
||||
EXP_FAST(23),
|
||||
EXP_FAST(24),
|
||||
EXP_FAST(25),
|
||||
EXP_FAST(26),
|
||||
EXP_FAST(27),
|
||||
EXP_FAST(28),
|
||||
EXP_FAST(29),
|
||||
EXP_FAST(30),
|
||||
EXP_FAST(31),
|
||||
EXP_FAST(32),
|
||||
EXP_FAST(33),
|
||||
EXP_FAST(34),
|
||||
EXP_FAST(35),
|
||||
EXP_FAST(36),
|
||||
EXP_FAST(37),
|
||||
EXP_FAST(38),
|
||||
EXP_FAST(39),
|
||||
EXP_FAST(40),
|
||||
EXP_FAST(41),
|
||||
EXP_FAST(42),
|
||||
EXP_FAST(43),
|
||||
EXP_FAST(44),
|
||||
EXP_FAST(45),
|
||||
EXP_FAST(46),
|
||||
EXP_FAST(47),
|
||||
EXP_FAST(48),
|
||||
EXP_FAST(49),
|
||||
EXP_FAST(50),
|
||||
EXP_FAST(51),
|
||||
EXP_FAST(52),
|
||||
EXP_FAST(53),
|
||||
EXP_FAST(54),
|
||||
EXP_FAST(55),
|
||||
EXP_FAST(56),
|
||||
EXP_FAST(57),
|
||||
EXP_FAST(58),
|
||||
EXP_FAST(59),
|
||||
EXP_FAST(60),
|
||||
EXP_FAST(61),
|
||||
EXP_FAST(62),
|
||||
EXP_FAST(63),
|
||||
EXP_FAST(64),
|
||||
EXP_FAST(65),
|
||||
EXP_FAST(66),
|
||||
EXP_FAST(67),
|
||||
EXP_FAST(68),
|
||||
EXP_FAST(69),
|
||||
EXP_FAST(70),
|
||||
EXP_FAST(71),
|
||||
EXP_FAST(72),
|
||||
EXP_FAST(73),
|
||||
EXP_FAST(74),
|
||||
EXP_FAST(75),
|
||||
EXP_FAST(76),
|
||||
EXP_FAST(77),
|
||||
EXP_FAST(78),
|
||||
EXP_FAST(79),
|
||||
EXP_FAST(80),
|
||||
EXP_FAST(81),
|
||||
EXP_FAST(82),
|
||||
EXP_FAST(83),
|
||||
EXP_FAST(84),
|
||||
EXP_FAST(85),
|
||||
EXP_FAST(86),
|
||||
EXP_FAST(87),
|
||||
EXP_FAST(88),
|
||||
EXP_FAST(89),
|
||||
EXP_FAST(90),
|
||||
EXP_FAST(91),
|
||||
EXP_FAST(92),
|
||||
EXP_FAST(93),
|
||||
EXP_FAST(94),
|
||||
EXP_FAST(95),
|
||||
EXP_FAST(96),
|
||||
EXP_FAST(97),
|
||||
EXP_FAST(98),
|
||||
EXP_FAST(99),
|
||||
EXP_FAST(100),
|
||||
},
|
||||
{ // Slow
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_SLOW(2),
|
||||
EXP_SLOW(3),
|
||||
EXP_SLOW(4),
|
||||
EXP_SLOW(5),
|
||||
EXP_SLOW(6),
|
||||
EXP_SLOW(7),
|
||||
EXP_SLOW(8),
|
||||
EXP_SLOW(9),
|
||||
EXP_SLOW(10),
|
||||
EXP_SLOW(11),
|
||||
EXP_SLOW(12),
|
||||
EXP_SLOW(13),
|
||||
EXP_SLOW(14),
|
||||
EXP_SLOW(15),
|
||||
EXP_SLOW(16),
|
||||
EXP_SLOW(17),
|
||||
EXP_SLOW(18),
|
||||
EXP_SLOW(19),
|
||||
EXP_SLOW(20),
|
||||
EXP_SLOW(21),
|
||||
EXP_SLOW(22),
|
||||
EXP_SLOW(23),
|
||||
EXP_SLOW(24),
|
||||
EXP_SLOW(25),
|
||||
EXP_SLOW(26),
|
||||
EXP_SLOW(27),
|
||||
EXP_SLOW(28),
|
||||
EXP_SLOW(29),
|
||||
EXP_SLOW(30),
|
||||
EXP_SLOW(31),
|
||||
EXP_SLOW(32),
|
||||
EXP_SLOW(33),
|
||||
EXP_SLOW(34),
|
||||
EXP_SLOW(35),
|
||||
EXP_SLOW(36),
|
||||
EXP_SLOW(37),
|
||||
EXP_SLOW(38),
|
||||
EXP_SLOW(39),
|
||||
EXP_SLOW(40),
|
||||
EXP_SLOW(41),
|
||||
EXP_SLOW(42),
|
||||
EXP_SLOW(43),
|
||||
EXP_SLOW(44),
|
||||
EXP_SLOW(45),
|
||||
EXP_SLOW(46),
|
||||
EXP_SLOW(47),
|
||||
EXP_SLOW(48),
|
||||
EXP_SLOW(49),
|
||||
EXP_SLOW(50),
|
||||
EXP_SLOW(51),
|
||||
EXP_SLOW(52),
|
||||
EXP_SLOW(53),
|
||||
EXP_SLOW(54),
|
||||
EXP_SLOW(55),
|
||||
EXP_SLOW(56),
|
||||
EXP_SLOW(57),
|
||||
EXP_SLOW(58),
|
||||
EXP_SLOW(59),
|
||||
EXP_SLOW(60),
|
||||
EXP_SLOW(61),
|
||||
EXP_SLOW(62),
|
||||
EXP_SLOW(63),
|
||||
EXP_SLOW(64),
|
||||
EXP_SLOW(65),
|
||||
EXP_SLOW(66),
|
||||
EXP_SLOW(67),
|
||||
EXP_SLOW(68),
|
||||
EXP_SLOW(69),
|
||||
EXP_SLOW(70),
|
||||
EXP_SLOW(71),
|
||||
EXP_SLOW(72),
|
||||
EXP_SLOW(73),
|
||||
EXP_SLOW(74),
|
||||
EXP_SLOW(75),
|
||||
EXP_SLOW(76),
|
||||
EXP_SLOW(77),
|
||||
EXP_SLOW(78),
|
||||
EXP_SLOW(79),
|
||||
EXP_SLOW(80),
|
||||
EXP_SLOW(81),
|
||||
EXP_SLOW(82),
|
||||
EXP_SLOW(83),
|
||||
EXP_SLOW(84),
|
||||
EXP_SLOW(85),
|
||||
EXP_SLOW(86),
|
||||
EXP_SLOW(87),
|
||||
EXP_SLOW(88),
|
||||
EXP_SLOW(89),
|
||||
EXP_SLOW(90),
|
||||
EXP_SLOW(91),
|
||||
EXP_SLOW(92),
|
||||
EXP_SLOW(93),
|
||||
EXP_SLOW(94),
|
||||
EXP_SLOW(95),
|
||||
EXP_SLOW(96),
|
||||
EXP_SLOW(97),
|
||||
EXP_SLOW(98),
|
||||
EXP_SLOW(99),
|
||||
EXP_SLOW(100),
|
||||
},
|
||||
{ // Medium Fast copy 2 (unused? to-do: investigate)
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_MEDIUM_FAST(2),
|
||||
EXP_MEDIUM_FAST(3),
|
||||
EXP_MEDIUM_FAST(4),
|
||||
EXP_MEDIUM_FAST(5),
|
||||
EXP_MEDIUM_FAST(6),
|
||||
EXP_MEDIUM_FAST(7),
|
||||
EXP_MEDIUM_FAST(8),
|
||||
EXP_MEDIUM_FAST(9),
|
||||
EXP_MEDIUM_FAST(10),
|
||||
EXP_MEDIUM_FAST(11),
|
||||
EXP_MEDIUM_FAST(12),
|
||||
EXP_MEDIUM_FAST(13),
|
||||
EXP_MEDIUM_FAST(14),
|
||||
EXP_MEDIUM_FAST(15),
|
||||
EXP_MEDIUM_FAST(16),
|
||||
EXP_MEDIUM_FAST(17),
|
||||
EXP_MEDIUM_FAST(18),
|
||||
EXP_MEDIUM_FAST(19),
|
||||
EXP_MEDIUM_FAST(20),
|
||||
EXP_MEDIUM_FAST(21),
|
||||
EXP_MEDIUM_FAST(22),
|
||||
EXP_MEDIUM_FAST(23),
|
||||
EXP_MEDIUM_FAST(24),
|
||||
EXP_MEDIUM_FAST(25),
|
||||
EXP_MEDIUM_FAST(26),
|
||||
EXP_MEDIUM_FAST(27),
|
||||
EXP_MEDIUM_FAST(28),
|
||||
EXP_MEDIUM_FAST(29),
|
||||
EXP_MEDIUM_FAST(30),
|
||||
EXP_MEDIUM_FAST(31),
|
||||
EXP_MEDIUM_FAST(32),
|
||||
EXP_MEDIUM_FAST(33),
|
||||
EXP_MEDIUM_FAST(34),
|
||||
EXP_MEDIUM_FAST(35),
|
||||
EXP_MEDIUM_FAST(36),
|
||||
EXP_MEDIUM_FAST(37),
|
||||
EXP_MEDIUM_FAST(38),
|
||||
EXP_MEDIUM_FAST(39),
|
||||
EXP_MEDIUM_FAST(40),
|
||||
EXP_MEDIUM_FAST(41),
|
||||
EXP_MEDIUM_FAST(42),
|
||||
EXP_MEDIUM_FAST(43),
|
||||
EXP_MEDIUM_FAST(44),
|
||||
EXP_MEDIUM_FAST(45),
|
||||
EXP_MEDIUM_FAST(46),
|
||||
EXP_MEDIUM_FAST(47),
|
||||
EXP_MEDIUM_FAST(48),
|
||||
EXP_MEDIUM_FAST(49),
|
||||
EXP_MEDIUM_FAST(50),
|
||||
EXP_MEDIUM_FAST(51),
|
||||
EXP_MEDIUM_FAST(52),
|
||||
EXP_MEDIUM_FAST(53),
|
||||
EXP_MEDIUM_FAST(54),
|
||||
EXP_MEDIUM_FAST(55),
|
||||
EXP_MEDIUM_FAST(56),
|
||||
EXP_MEDIUM_FAST(57),
|
||||
EXP_MEDIUM_FAST(58),
|
||||
EXP_MEDIUM_FAST(59),
|
||||
EXP_MEDIUM_FAST(60),
|
||||
EXP_MEDIUM_FAST(61),
|
||||
EXP_MEDIUM_FAST(62),
|
||||
EXP_MEDIUM_FAST(63),
|
||||
EXP_MEDIUM_FAST(64),
|
||||
EXP_MEDIUM_FAST(65),
|
||||
EXP_MEDIUM_FAST(66),
|
||||
EXP_MEDIUM_FAST(67),
|
||||
EXP_MEDIUM_FAST(68),
|
||||
EXP_MEDIUM_FAST(69),
|
||||
EXP_MEDIUM_FAST(70),
|
||||
EXP_MEDIUM_FAST(71),
|
||||
EXP_MEDIUM_FAST(72),
|
||||
EXP_MEDIUM_FAST(73),
|
||||
EXP_MEDIUM_FAST(74),
|
||||
EXP_MEDIUM_FAST(75),
|
||||
EXP_MEDIUM_FAST(76),
|
||||
EXP_MEDIUM_FAST(77),
|
||||
EXP_MEDIUM_FAST(78),
|
||||
EXP_MEDIUM_FAST(79),
|
||||
EXP_MEDIUM_FAST(80),
|
||||
EXP_MEDIUM_FAST(81),
|
||||
EXP_MEDIUM_FAST(82),
|
||||
EXP_MEDIUM_FAST(83),
|
||||
EXP_MEDIUM_FAST(84),
|
||||
EXP_MEDIUM_FAST(85),
|
||||
EXP_MEDIUM_FAST(86),
|
||||
EXP_MEDIUM_FAST(87),
|
||||
EXP_MEDIUM_FAST(88),
|
||||
EXP_MEDIUM_FAST(89),
|
||||
EXP_MEDIUM_FAST(90),
|
||||
EXP_MEDIUM_FAST(91),
|
||||
EXP_MEDIUM_FAST(92),
|
||||
EXP_MEDIUM_FAST(93),
|
||||
EXP_MEDIUM_FAST(94),
|
||||
EXP_MEDIUM_FAST(95),
|
||||
EXP_MEDIUM_FAST(96),
|
||||
EXP_MEDIUM_FAST(97),
|
||||
EXP_MEDIUM_FAST(98),
|
||||
EXP_MEDIUM_FAST(99),
|
||||
EXP_MEDIUM_FAST(100),
|
||||
},
|
||||
{ // Medium Fast copy 3 (unused? to-do: investigate)
|
||||
0, // 0
|
||||
1, // 1
|
||||
EXP_MEDIUM_FAST(2),
|
||||
EXP_MEDIUM_FAST(3),
|
||||
EXP_MEDIUM_FAST(4),
|
||||
EXP_MEDIUM_FAST(5),
|
||||
EXP_MEDIUM_FAST(6),
|
||||
EXP_MEDIUM_FAST(7),
|
||||
EXP_MEDIUM_FAST(8),
|
||||
EXP_MEDIUM_FAST(9),
|
||||
EXP_MEDIUM_FAST(10),
|
||||
EXP_MEDIUM_FAST(11),
|
||||
EXP_MEDIUM_FAST(12),
|
||||
EXP_MEDIUM_FAST(13),
|
||||
EXP_MEDIUM_FAST(14),
|
||||
EXP_MEDIUM_FAST(15),
|
||||
EXP_MEDIUM_FAST(16),
|
||||
EXP_MEDIUM_FAST(17),
|
||||
EXP_MEDIUM_FAST(18),
|
||||
EXP_MEDIUM_FAST(19),
|
||||
EXP_MEDIUM_FAST(20),
|
||||
EXP_MEDIUM_FAST(21),
|
||||
EXP_MEDIUM_FAST(22),
|
||||
EXP_MEDIUM_FAST(23),
|
||||
EXP_MEDIUM_FAST(24),
|
||||
EXP_MEDIUM_FAST(25),
|
||||
EXP_MEDIUM_FAST(26),
|
||||
EXP_MEDIUM_FAST(27),
|
||||
EXP_MEDIUM_FAST(28),
|
||||
EXP_MEDIUM_FAST(29),
|
||||
EXP_MEDIUM_FAST(30),
|
||||
EXP_MEDIUM_FAST(31),
|
||||
EXP_MEDIUM_FAST(32),
|
||||
EXP_MEDIUM_FAST(33),
|
||||
EXP_MEDIUM_FAST(34),
|
||||
EXP_MEDIUM_FAST(35),
|
||||
EXP_MEDIUM_FAST(36),
|
||||
EXP_MEDIUM_FAST(37),
|
||||
EXP_MEDIUM_FAST(38),
|
||||
EXP_MEDIUM_FAST(39),
|
||||
EXP_MEDIUM_FAST(40),
|
||||
EXP_MEDIUM_FAST(41),
|
||||
EXP_MEDIUM_FAST(42),
|
||||
EXP_MEDIUM_FAST(43),
|
||||
EXP_MEDIUM_FAST(44),
|
||||
EXP_MEDIUM_FAST(45),
|
||||
EXP_MEDIUM_FAST(46),
|
||||
EXP_MEDIUM_FAST(47),
|
||||
EXP_MEDIUM_FAST(48),
|
||||
EXP_MEDIUM_FAST(49),
|
||||
EXP_MEDIUM_FAST(50),
|
||||
EXP_MEDIUM_FAST(51),
|
||||
EXP_MEDIUM_FAST(52),
|
||||
EXP_MEDIUM_FAST(53),
|
||||
EXP_MEDIUM_FAST(54),
|
||||
EXP_MEDIUM_FAST(55),
|
||||
EXP_MEDIUM_FAST(56),
|
||||
EXP_MEDIUM_FAST(57),
|
||||
EXP_MEDIUM_FAST(58),
|
||||
EXP_MEDIUM_FAST(59),
|
||||
EXP_MEDIUM_FAST(60),
|
||||
EXP_MEDIUM_FAST(61),
|
||||
EXP_MEDIUM_FAST(62),
|
||||
EXP_MEDIUM_FAST(63),
|
||||
EXP_MEDIUM_FAST(64),
|
||||
EXP_MEDIUM_FAST(65),
|
||||
EXP_MEDIUM_FAST(66),
|
||||
EXP_MEDIUM_FAST(67),
|
||||
EXP_MEDIUM_FAST(68),
|
||||
EXP_MEDIUM_FAST(69),
|
||||
EXP_MEDIUM_FAST(70),
|
||||
EXP_MEDIUM_FAST(71),
|
||||
EXP_MEDIUM_FAST(72),
|
||||
EXP_MEDIUM_FAST(73),
|
||||
EXP_MEDIUM_FAST(74),
|
||||
EXP_MEDIUM_FAST(75),
|
||||
EXP_MEDIUM_FAST(76),
|
||||
EXP_MEDIUM_FAST(77),
|
||||
EXP_MEDIUM_FAST(78),
|
||||
EXP_MEDIUM_FAST(79),
|
||||
EXP_MEDIUM_FAST(80),
|
||||
EXP_MEDIUM_FAST(81),
|
||||
EXP_MEDIUM_FAST(82),
|
||||
EXP_MEDIUM_FAST(83),
|
||||
EXP_MEDIUM_FAST(84),
|
||||
EXP_MEDIUM_FAST(85),
|
||||
EXP_MEDIUM_FAST(86),
|
||||
EXP_MEDIUM_FAST(87),
|
||||
EXP_MEDIUM_FAST(88),
|
||||
EXP_MEDIUM_FAST(89),
|
||||
EXP_MEDIUM_FAST(90),
|
||||
EXP_MEDIUM_FAST(91),
|
||||
EXP_MEDIUM_FAST(92),
|
||||
EXP_MEDIUM_FAST(93),
|
||||
EXP_MEDIUM_FAST(94),
|
||||
EXP_MEDIUM_FAST(95),
|
||||
EXP_MEDIUM_FAST(96),
|
||||
EXP_MEDIUM_FAST(97),
|
||||
EXP_MEDIUM_FAST(98),
|
||||
EXP_MEDIUM_FAST(99),
|
||||
EXP_MEDIUM_FAST(100),
|
||||
}
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_EXPERIENCE_TABLES_H
|
||||
@@ -0,0 +1,241 @@
|
||||
#ifndef GUARD_ITEM_EFFECTS_H
|
||||
#define GUARD_ITEM_EFFECTS_H
|
||||
|
||||
const u8 gItemEffect_Potion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20};
|
||||
const u8 gItemEffect_Antidote[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00};
|
||||
const u8 gItemEffect_BurnHeal[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00};
|
||||
const u8 gItemEffect_IceHeal[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00};
|
||||
const u8 gItemEffect_Awakening[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
|
||||
const u8 gItemEffect_ParalyzeHeal[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00};
|
||||
const u8 gItemEffect_FullRestore[] = {0x00, 0x00, 0x00, 0x3f, 0x04, 0x00, 0xff};
|
||||
const u8 gItemEffect_MaxPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0xff};
|
||||
const u8 gItemEffect_HyperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 200};
|
||||
const u8 gItemEffect_SuperPotion[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50};
|
||||
const u8 gItemEffect_FullHeal[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
|
||||
const u8 gItemEffect_Revive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xfe};
|
||||
const u8 gItemEffect_MaxRevive[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff};
|
||||
const u8 gItemEffect_FreshWater[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 50};
|
||||
const u8 gItemEffect_SodaPop[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 60};
|
||||
const u8 gItemEffect_Lemonade[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 80};
|
||||
const u8 gItemEffect_MoomooMilk[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 100};
|
||||
const u8 gItemEffect_EnergyPowder[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 50, 0xfb, 0xfb, 0xf6};
|
||||
const u8 gItemEffect_EnergyRoot[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0xe0, 200, 0xf6, 0xf6, 0xf1};
|
||||
const u8 gItemEffect_HealPowder[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0xe0, 0xfb, 0xfb, 0xf6};
|
||||
const u8 gItemEffect_RevivalHerb[] = {0x00, 0x00, 0x00, 0x00, 0x44, 0xe0, 0xff, 0xf1, 0xf1, 0xec};
|
||||
const u8 gItemEffect_Ether[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a};
|
||||
const u8 gItemEffect_MaxEther[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7f};
|
||||
const u8 gItemEffect_Elixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a};
|
||||
const u8 gItemEffect_MaxElixir[] = {0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x7f};
|
||||
const u8 gItemEffect_LavaCookie[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
|
||||
const u8 gItemEffect_BlueFlute[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
|
||||
const u8 gItemEffect_YellowFlute[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
|
||||
const u8 gItemEffect_RedFlute[] = {0x80, 0x00, 0x00, 0x00, 0x00, 0x00};
|
||||
const u8 gItemEffect_BerryJuice[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 20};
|
||||
const u8 gItemEffect_SacredAsh[] = {0x40, 0x00, 0x00, 0x00, 0x44, 0x00, 0xff};
|
||||
const u8 gItemEffect_HPUp[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0x0a, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_Protein[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0x0a, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_Iron[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x0a, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_Carbos[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x0a, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_Calcium[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x0a, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_RareCandy[] = {0x00, 0x00, 0x00, 0x40, 0x44, 0xe0, 253, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_PPUp[] = {0x00, 0x00, 0x00, 0x00, 0x20, 0xe0, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_Zinc[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x0a, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_PPMax[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x05, 0x03, 0x02};
|
||||
const u8 gItemEffect_GuardSpec[] = {0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_DireHit[] = {0x20, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_XAttack[] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_XDefend[] = {0x00, 0x10, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_XSpeed[] = {0x00, 0x01, 0x00, 0x00, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_XAccuracy[] = {0x00, 0x00, 0x10, 0x00, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_XSpecial[] = {0x00, 0x00, 0x01, 0x00, 0x00, 0x60, 0x01, 0x01};
|
||||
const u8 gItemEffect_SunStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
|
||||
const u8 gItemEffect_MoonStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
|
||||
const u8 gItemEffect_FireStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
|
||||
const u8 gItemEffect_ThunderStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
|
||||
const u8 gItemEffect_WaterStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
|
||||
const u8 gItemEffect_LeafStone[] = {0x00, 0x00, 0x00, 0x00, 0x80, 0x00};
|
||||
const u8 gItemEffect_CheriBerry[] = {0x00, 0x00, 0x00, 0x02, 0x00, 0x00};
|
||||
const u8 gItemEffect_ChestoBerry[] = {0x00, 0x00, 0x00, 0x20, 0x00, 0x00};
|
||||
const u8 gItemEffect_PechaBerry[] = {0x00, 0x00, 0x00, 0x10, 0x00, 0x00};
|
||||
const u8 gItemEffect_RawstBerry[] = {0x00, 0x00, 0x00, 0x08, 0x00, 0x00};
|
||||
const u8 gItemEffect_AspearBerry[] = {0x00, 0x00, 0x00, 0x04, 0x00, 0x00};
|
||||
const u8 gItemEffect_LeppaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x0a};
|
||||
const u8 gItemEffect_OranBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 10};
|
||||
const u8 gItemEffect_PersimBerry[] = {0x00, 0x00, 0x00, 0x01, 0x00, 0x00};
|
||||
const u8 gItemEffect_LumBerry[] = {0x00, 0x00, 0x00, 0x3f, 0x00, 0x00};
|
||||
const u8 gItemEffect_SitrusBerry[] = {0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 30};
|
||||
const u8 gItemEffect_PomegBerry[] = {0x00, 0x00, 0x00, 0x00, 0x01, 0xe0, 0xf6, 0x0a, 0x05, 0x02};
|
||||
const u8 gItemEffect_KelpsyBerry[] = {0x00, 0x00, 0x00, 0x00, 0x02, 0xe0, 0xf6, 0x0a, 0x05, 0x02};
|
||||
const u8 gItemEffect_QualotBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf6, 0x0a, 0x05, 0x02};
|
||||
const u8 gItemEffect_HondrewBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xf6, 0x0a, 0x05, 0x02};
|
||||
const u8 gItemEffect_GrepaBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0xf6, 0x0a, 0x05, 0x02};
|
||||
const u8 gItemEffect_TamatoBerry[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0xf6, 0x0a, 0x05, 0x02};
|
||||
|
||||
const u8 *const gItemEffectTable[] =
|
||||
{
|
||||
gItemEffect_Potion,
|
||||
gItemEffect_Antidote,
|
||||
gItemEffect_BurnHeal,
|
||||
gItemEffect_IceHeal,
|
||||
gItemEffect_Awakening,
|
||||
gItemEffect_ParalyzeHeal,
|
||||
gItemEffect_FullRestore,
|
||||
gItemEffect_MaxPotion,
|
||||
gItemEffect_HyperPotion,
|
||||
gItemEffect_SuperPotion,
|
||||
gItemEffect_FullHeal,
|
||||
gItemEffect_Revive,
|
||||
gItemEffect_MaxRevive,
|
||||
gItemEffect_FreshWater,
|
||||
gItemEffect_SodaPop,
|
||||
gItemEffect_Lemonade,
|
||||
gItemEffect_MoomooMilk,
|
||||
gItemEffect_EnergyPowder,
|
||||
gItemEffect_EnergyRoot,
|
||||
gItemEffect_HealPowder,
|
||||
gItemEffect_RevivalHerb,
|
||||
gItemEffect_Ether,
|
||||
gItemEffect_MaxEther,
|
||||
gItemEffect_Elixir,
|
||||
gItemEffect_MaxElixir,
|
||||
gItemEffect_LavaCookie,
|
||||
gItemEffect_BlueFlute,
|
||||
gItemEffect_YellowFlute,
|
||||
gItemEffect_RedFlute,
|
||||
NULL,
|
||||
NULL,
|
||||
gItemEffect_BerryJuice,
|
||||
gItemEffect_SacredAsh,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
gItemEffect_HPUp,
|
||||
gItemEffect_Protein,
|
||||
gItemEffect_Iron,
|
||||
gItemEffect_Carbos,
|
||||
gItemEffect_Calcium,
|
||||
gItemEffect_RareCandy,
|
||||
gItemEffect_PPUp,
|
||||
gItemEffect_Zinc,
|
||||
gItemEffect_PPMax,
|
||||
NULL,
|
||||
gItemEffect_GuardSpec,
|
||||
gItemEffect_DireHit,
|
||||
gItemEffect_XAttack,
|
||||
gItemEffect_XDefend,
|
||||
gItemEffect_XSpeed,
|
||||
gItemEffect_XAccuracy,
|
||||
gItemEffect_XSpecial,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
gItemEffect_SunStone,
|
||||
gItemEffect_MoonStone,
|
||||
gItemEffect_FireStone,
|
||||
gItemEffect_ThunderStone,
|
||||
gItemEffect_WaterStone,
|
||||
gItemEffect_LeafStone,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
gItemEffect_CheriBerry,
|
||||
gItemEffect_ChestoBerry,
|
||||
gItemEffect_PechaBerry,
|
||||
gItemEffect_RawstBerry,
|
||||
gItemEffect_AspearBerry,
|
||||
gItemEffect_LeppaBerry,
|
||||
gItemEffect_OranBerry,
|
||||
gItemEffect_PersimBerry,
|
||||
gItemEffect_LumBerry,
|
||||
gItemEffect_SitrusBerry,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
gItemEffect_PomegBerry,
|
||||
gItemEffect_KelpsyBerry,
|
||||
gItemEffect_QualotBerry,
|
||||
gItemEffect_HondrewBerry,
|
||||
gItemEffect_GrepaBerry,
|
||||
gItemEffect_TamatoBerry,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
};
|
||||
|
||||
#endif //GUARD_ITEM_EFFECTS_H
|
||||
@@ -0,0 +1,420 @@
|
||||
#ifndef POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
|
||||
#define POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
|
||||
|
||||
const u16 *const gLevelUpLearnsets[] =
|
||||
{
|
||||
gBulbasaurLevelUpLearnset,
|
||||
gBulbasaurLevelUpLearnset,
|
||||
gIvysaurLevelUpLearnset,
|
||||
gVenusaurLevelUpLearnset,
|
||||
gCharmanderLevelUpLearnset,
|
||||
gCharmeleonLevelUpLearnset,
|
||||
gCharizardLevelUpLearnset,
|
||||
gSquirtleLevelUpLearnset,
|
||||
gWartortleLevelUpLearnset,
|
||||
gBlastoiseLevelUpLearnset,
|
||||
gCaterpieLevelUpLearnset,
|
||||
gMetapodLevelUpLearnset,
|
||||
gButterfreeLevelUpLearnset,
|
||||
gWeedleLevelUpLearnset,
|
||||
gKakunaLevelUpLearnset,
|
||||
gBeedrillLevelUpLearnset,
|
||||
gPidgeyLevelUpLearnset,
|
||||
gPidgeottoLevelUpLearnset,
|
||||
gPidgeotLevelUpLearnset,
|
||||
gRattataLevelUpLearnset,
|
||||
gRaticateLevelUpLearnset,
|
||||
gSpearowLevelUpLearnset,
|
||||
gFearowLevelUpLearnset,
|
||||
gEkansLevelUpLearnset,
|
||||
gArbokLevelUpLearnset,
|
||||
gPikachuLevelUpLearnset,
|
||||
gRaichuLevelUpLearnset,
|
||||
gSandshrewLevelUpLearnset,
|
||||
gSandslashLevelUpLearnset,
|
||||
gNidoranFLevelUpLearnset,
|
||||
gNidorinaLevelUpLearnset,
|
||||
gNidoqueenLevelUpLearnset,
|
||||
gNidoranMLevelUpLearnset,
|
||||
gNidorinoLevelUpLearnset,
|
||||
gNidokingLevelUpLearnset,
|
||||
gClefairyLevelUpLearnset,
|
||||
gClefableLevelUpLearnset,
|
||||
gVulpixLevelUpLearnset,
|
||||
gNinetalesLevelUpLearnset,
|
||||
gJigglypuffLevelUpLearnset,
|
||||
gWigglytuffLevelUpLearnset,
|
||||
gZubatLevelUpLearnset,
|
||||
gGolbatLevelUpLearnset,
|
||||
gOddishLevelUpLearnset,
|
||||
gGloomLevelUpLearnset,
|
||||
gVileplumeLevelUpLearnset,
|
||||
gParasLevelUpLearnset,
|
||||
gParasectLevelUpLearnset,
|
||||
gVenonatLevelUpLearnset,
|
||||
gVenomothLevelUpLearnset,
|
||||
gDiglettLevelUpLearnset,
|
||||
gDugtrioLevelUpLearnset,
|
||||
gMeowthLevelUpLearnset,
|
||||
gPersianLevelUpLearnset,
|
||||
gPsyduckLevelUpLearnset,
|
||||
gGolduckLevelUpLearnset,
|
||||
gMankeyLevelUpLearnset,
|
||||
gPrimeapeLevelUpLearnset,
|
||||
gGrowlitheLevelUpLearnset,
|
||||
gArcanineLevelUpLearnset,
|
||||
gPoliwagLevelUpLearnset,
|
||||
gPoliwhirlLevelUpLearnset,
|
||||
gPoliwrathLevelUpLearnset,
|
||||
gAbraLevelUpLearnset,
|
||||
gKadabraLevelUpLearnset,
|
||||
gAlakazamLevelUpLearnset,
|
||||
gMachopLevelUpLearnset,
|
||||
gMachokeLevelUpLearnset,
|
||||
gMachampLevelUpLearnset,
|
||||
gBellsproutLevelUpLearnset,
|
||||
gWeepinbellLevelUpLearnset,
|
||||
gVictreebelLevelUpLearnset,
|
||||
gTentacoolLevelUpLearnset,
|
||||
gTentacruelLevelUpLearnset,
|
||||
gGeodudeLevelUpLearnset,
|
||||
gGravelerLevelUpLearnset,
|
||||
gGolemLevelUpLearnset,
|
||||
gPonytaLevelUpLearnset,
|
||||
gRapidashLevelUpLearnset,
|
||||
gSlowpokeLevelUpLearnset,
|
||||
gSlowbroLevelUpLearnset,
|
||||
gMagnemiteLevelUpLearnset,
|
||||
gMagnetonLevelUpLearnset,
|
||||
gFarfetchdLevelUpLearnset,
|
||||
gDoduoLevelUpLearnset,
|
||||
gDodrioLevelUpLearnset,
|
||||
gSeelLevelUpLearnset,
|
||||
gDewgongLevelUpLearnset,
|
||||
gGrimerLevelUpLearnset,
|
||||
gMukLevelUpLearnset,
|
||||
gShellderLevelUpLearnset,
|
||||
gCloysterLevelUpLearnset,
|
||||
gGastlyLevelUpLearnset,
|
||||
gHaunterLevelUpLearnset,
|
||||
gGengarLevelUpLearnset,
|
||||
gOnixLevelUpLearnset,
|
||||
gDrowzeeLevelUpLearnset,
|
||||
gHypnoLevelUpLearnset,
|
||||
gKrabbyLevelUpLearnset,
|
||||
gKinglerLevelUpLearnset,
|
||||
gVoltorbLevelUpLearnset,
|
||||
gElectrodeLevelUpLearnset,
|
||||
gExeggcuteLevelUpLearnset,
|
||||
gExeggutorLevelUpLearnset,
|
||||
gCuboneLevelUpLearnset,
|
||||
gMarowakLevelUpLearnset,
|
||||
gHitmonleeLevelUpLearnset,
|
||||
gHitmonchanLevelUpLearnset,
|
||||
gLickitungLevelUpLearnset,
|
||||
gKoffingLevelUpLearnset,
|
||||
gWeezingLevelUpLearnset,
|
||||
gRhyhornLevelUpLearnset,
|
||||
gRhydonLevelUpLearnset,
|
||||
gChanseyLevelUpLearnset,
|
||||
gTangelaLevelUpLearnset,
|
||||
gKangaskhanLevelUpLearnset,
|
||||
gHorseaLevelUpLearnset,
|
||||
gSeadraLevelUpLearnset,
|
||||
gGoldeenLevelUpLearnset,
|
||||
gSeakingLevelUpLearnset,
|
||||
gStaryuLevelUpLearnset,
|
||||
gStarmieLevelUpLearnset,
|
||||
gMrmimeLevelUpLearnset,
|
||||
gScytherLevelUpLearnset,
|
||||
gJynxLevelUpLearnset,
|
||||
gElectabuzzLevelUpLearnset,
|
||||
gMagmarLevelUpLearnset,
|
||||
gPinsirLevelUpLearnset,
|
||||
gTaurosLevelUpLearnset,
|
||||
gMagikarpLevelUpLearnset,
|
||||
gGyaradosLevelUpLearnset,
|
||||
gLaprasLevelUpLearnset,
|
||||
gDittoLevelUpLearnset,
|
||||
gEeveeLevelUpLearnset,
|
||||
gVaporeonLevelUpLearnset,
|
||||
gJolteonLevelUpLearnset,
|
||||
gFlareonLevelUpLearnset,
|
||||
gPorygonLevelUpLearnset,
|
||||
gOmanyteLevelUpLearnset,
|
||||
gOmastarLevelUpLearnset,
|
||||
gKabutoLevelUpLearnset,
|
||||
gKabutopsLevelUpLearnset,
|
||||
gAerodactylLevelUpLearnset,
|
||||
gSnorlaxLevelUpLearnset,
|
||||
gArticunoLevelUpLearnset,
|
||||
gZapdosLevelUpLearnset,
|
||||
gMoltresLevelUpLearnset,
|
||||
gDratiniLevelUpLearnset,
|
||||
gDragonairLevelUpLearnset,
|
||||
gDragoniteLevelUpLearnset,
|
||||
gMewtwoLevelUpLearnset,
|
||||
gMewLevelUpLearnset,
|
||||
gChikoritaLevelUpLearnset,
|
||||
gBayleefLevelUpLearnset,
|
||||
gMeganiumLevelUpLearnset,
|
||||
gCyndaquilLevelUpLearnset,
|
||||
gQuilavaLevelUpLearnset,
|
||||
gTyphlosionLevelUpLearnset,
|
||||
gTotodileLevelUpLearnset,
|
||||
gCroconawLevelUpLearnset,
|
||||
gFeraligatrLevelUpLearnset,
|
||||
gSentretLevelUpLearnset,
|
||||
gFurretLevelUpLearnset,
|
||||
gHoothootLevelUpLearnset,
|
||||
gNoctowlLevelUpLearnset,
|
||||
gLedybaLevelUpLearnset,
|
||||
gLedianLevelUpLearnset,
|
||||
gSpinarakLevelUpLearnset,
|
||||
gAriadosLevelUpLearnset,
|
||||
gCrobatLevelUpLearnset,
|
||||
gChinchouLevelUpLearnset,
|
||||
gLanturnLevelUpLearnset,
|
||||
gPichuLevelUpLearnset,
|
||||
gCleffaLevelUpLearnset,
|
||||
gIgglybuffLevelUpLearnset,
|
||||
gTogepiLevelUpLearnset,
|
||||
gTogeticLevelUpLearnset,
|
||||
gNatuLevelUpLearnset,
|
||||
gXatuLevelUpLearnset,
|
||||
gMareepLevelUpLearnset,
|
||||
gFlaaffyLevelUpLearnset,
|
||||
gAmpharosLevelUpLearnset,
|
||||
gBellossomLevelUpLearnset,
|
||||
gMarillLevelUpLearnset,
|
||||
gAzumarillLevelUpLearnset,
|
||||
gSudowoodoLevelUpLearnset,
|
||||
gPolitoedLevelUpLearnset,
|
||||
gHoppipLevelUpLearnset,
|
||||
gSkiploomLevelUpLearnset,
|
||||
gJumpluffLevelUpLearnset,
|
||||
gAipomLevelUpLearnset,
|
||||
gSunkernLevelUpLearnset,
|
||||
gSunfloraLevelUpLearnset,
|
||||
gYanmaLevelUpLearnset,
|
||||
gWooperLevelUpLearnset,
|
||||
gQuagsireLevelUpLearnset,
|
||||
gEspeonLevelUpLearnset,
|
||||
gUmbreonLevelUpLearnset,
|
||||
gMurkrowLevelUpLearnset,
|
||||
gSlowkingLevelUpLearnset,
|
||||
gMisdreavusLevelUpLearnset,
|
||||
gUnownLevelUpLearnset,
|
||||
gWobbuffetLevelUpLearnset,
|
||||
gGirafarigLevelUpLearnset,
|
||||
gPinecoLevelUpLearnset,
|
||||
gForretressLevelUpLearnset,
|
||||
gDunsparceLevelUpLearnset,
|
||||
gGligarLevelUpLearnset,
|
||||
gSteelixLevelUpLearnset,
|
||||
gSnubbullLevelUpLearnset,
|
||||
gGranbullLevelUpLearnset,
|
||||
gQwilfishLevelUpLearnset,
|
||||
gScizorLevelUpLearnset,
|
||||
gShuckleLevelUpLearnset,
|
||||
gHeracrossLevelUpLearnset,
|
||||
gSneaselLevelUpLearnset,
|
||||
gTeddiursaLevelUpLearnset,
|
||||
gUrsaringLevelUpLearnset,
|
||||
gSlugmaLevelUpLearnset,
|
||||
gMagcargoLevelUpLearnset,
|
||||
gSwinubLevelUpLearnset,
|
||||
gPiloswineLevelUpLearnset,
|
||||
gCorsolaLevelUpLearnset,
|
||||
gRemoraidLevelUpLearnset,
|
||||
gOctilleryLevelUpLearnset,
|
||||
gDelibirdLevelUpLearnset,
|
||||
gMantineLevelUpLearnset,
|
||||
gSkarmoryLevelUpLearnset,
|
||||
gHoundourLevelUpLearnset,
|
||||
gHoundoomLevelUpLearnset,
|
||||
gKingdraLevelUpLearnset,
|
||||
gPhanpyLevelUpLearnset,
|
||||
gDonphanLevelUpLearnset,
|
||||
gPorygon2LevelUpLearnset,
|
||||
gStantlerLevelUpLearnset,
|
||||
gSmeargleLevelUpLearnset,
|
||||
gTyrogueLevelUpLearnset,
|
||||
gHitmontopLevelUpLearnset,
|
||||
gSmoochumLevelUpLearnset,
|
||||
gElekidLevelUpLearnset,
|
||||
gMagbyLevelUpLearnset,
|
||||
gMiltankLevelUpLearnset,
|
||||
gBlisseyLevelUpLearnset,
|
||||
gRaikouLevelUpLearnset,
|
||||
gEnteiLevelUpLearnset,
|
||||
gSuicuneLevelUpLearnset,
|
||||
gLarvitarLevelUpLearnset,
|
||||
gPupitarLevelUpLearnset,
|
||||
gTyranitarLevelUpLearnset,
|
||||
gLugiaLevelUpLearnset,
|
||||
gHoOhLevelUpLearnset,
|
||||
gCelebiLevelUpLearnset,
|
||||
gSpecies252LevelUpLearnset,
|
||||
gSpecies253LevelUpLearnset,
|
||||
gSpecies254LevelUpLearnset,
|
||||
gSpecies255LevelUpLearnset,
|
||||
gSpecies256LevelUpLearnset,
|
||||
gSpecies257LevelUpLearnset,
|
||||
gSpecies258LevelUpLearnset,
|
||||
gSpecies259LevelUpLearnset,
|
||||
gSpecies260LevelUpLearnset,
|
||||
gSpecies261LevelUpLearnset,
|
||||
gSpecies262LevelUpLearnset,
|
||||
gSpecies263LevelUpLearnset,
|
||||
gSpecies264LevelUpLearnset,
|
||||
gSpecies265LevelUpLearnset,
|
||||
gSpecies266LevelUpLearnset,
|
||||
gSpecies267LevelUpLearnset,
|
||||
gSpecies268LevelUpLearnset,
|
||||
gSpecies269LevelUpLearnset,
|
||||
gSpecies270LevelUpLearnset,
|
||||
gSpecies271LevelUpLearnset,
|
||||
gSpecies272LevelUpLearnset,
|
||||
gSpecies273LevelUpLearnset,
|
||||
gSpecies274LevelUpLearnset,
|
||||
gSpecies275LevelUpLearnset,
|
||||
gSpecies276LevelUpLearnset,
|
||||
gTreeckoLevelUpLearnset,
|
||||
gGrovyleLevelUpLearnset,
|
||||
gSceptileLevelUpLearnset,
|
||||
gTorchicLevelUpLearnset,
|
||||
gCombuskenLevelUpLearnset,
|
||||
gBlazikenLevelUpLearnset,
|
||||
gMudkipLevelUpLearnset,
|
||||
gMarshtompLevelUpLearnset,
|
||||
gSwampertLevelUpLearnset,
|
||||
gPoochyenaLevelUpLearnset,
|
||||
gMightyenaLevelUpLearnset,
|
||||
gZigzagoonLevelUpLearnset,
|
||||
gLinooneLevelUpLearnset,
|
||||
gWurmpleLevelUpLearnset,
|
||||
gSilcoonLevelUpLearnset,
|
||||
gBeautiflyLevelUpLearnset,
|
||||
gCascoonLevelUpLearnset,
|
||||
gDustoxLevelUpLearnset,
|
||||
gLotadLevelUpLearnset,
|
||||
gLombreLevelUpLearnset,
|
||||
gLudicoloLevelUpLearnset,
|
||||
gSeedotLevelUpLearnset,
|
||||
gNuzleafLevelUpLearnset,
|
||||
gShiftryLevelUpLearnset,
|
||||
gNincadaLevelUpLearnset,
|
||||
gNinjaskLevelUpLearnset,
|
||||
gShedinjaLevelUpLearnset,
|
||||
gTaillowLevelUpLearnset,
|
||||
gSwellowLevelUpLearnset,
|
||||
gShroomishLevelUpLearnset,
|
||||
gBreloomLevelUpLearnset,
|
||||
gSpindaLevelUpLearnset,
|
||||
gWingullLevelUpLearnset,
|
||||
gPelipperLevelUpLearnset,
|
||||
gSurskitLevelUpLearnset,
|
||||
gMasquerainLevelUpLearnset,
|
||||
gWailmerLevelUpLearnset,
|
||||
gWailordLevelUpLearnset,
|
||||
gSkittyLevelUpLearnset,
|
||||
gDelcattyLevelUpLearnset,
|
||||
gKecleonLevelUpLearnset,
|
||||
gBaltoyLevelUpLearnset,
|
||||
gClaydolLevelUpLearnset,
|
||||
gNosepassLevelUpLearnset,
|
||||
gTorkoalLevelUpLearnset,
|
||||
gSableyeLevelUpLearnset,
|
||||
gBarboachLevelUpLearnset,
|
||||
gWhiscashLevelUpLearnset,
|
||||
gLuvdiscLevelUpLearnset,
|
||||
gCorphishLevelUpLearnset,
|
||||
gCrawdauntLevelUpLearnset,
|
||||
gFeebasLevelUpLearnset,
|
||||
gMiloticLevelUpLearnset,
|
||||
gCarvanhaLevelUpLearnset,
|
||||
gSharpedoLevelUpLearnset,
|
||||
gTrapinchLevelUpLearnset,
|
||||
gVibravaLevelUpLearnset,
|
||||
gFlygonLevelUpLearnset,
|
||||
gMakuhitaLevelUpLearnset,
|
||||
gHariyamaLevelUpLearnset,
|
||||
gElectrikeLevelUpLearnset,
|
||||
gManectricLevelUpLearnset,
|
||||
gNumelLevelUpLearnset,
|
||||
gCameruptLevelUpLearnset,
|
||||
gSphealLevelUpLearnset,
|
||||
gSealeoLevelUpLearnset,
|
||||
gWalreinLevelUpLearnset,
|
||||
gCacneaLevelUpLearnset,
|
||||
gCacturneLevelUpLearnset,
|
||||
gSnoruntLevelUpLearnset,
|
||||
gGlalieLevelUpLearnset,
|
||||
gLunatoneLevelUpLearnset,
|
||||
gSolrockLevelUpLearnset,
|
||||
gAzurillLevelUpLearnset,
|
||||
gSpoinkLevelUpLearnset,
|
||||
gGrumpigLevelUpLearnset,
|
||||
gPlusleLevelUpLearnset,
|
||||
gMinunLevelUpLearnset,
|
||||
gMawileLevelUpLearnset,
|
||||
gMedititeLevelUpLearnset,
|
||||
gMedichamLevelUpLearnset,
|
||||
gSwabluLevelUpLearnset,
|
||||
gAltariaLevelUpLearnset,
|
||||
gWynautLevelUpLearnset,
|
||||
gDuskullLevelUpLearnset,
|
||||
gDusclopsLevelUpLearnset,
|
||||
gRoseliaLevelUpLearnset,
|
||||
gSlakothLevelUpLearnset,
|
||||
gVigorothLevelUpLearnset,
|
||||
gSlakingLevelUpLearnset,
|
||||
gGulpinLevelUpLearnset,
|
||||
gSwalotLevelUpLearnset,
|
||||
gTropiusLevelUpLearnset,
|
||||
gWhismurLevelUpLearnset,
|
||||
gLoudredLevelUpLearnset,
|
||||
gExploudLevelUpLearnset,
|
||||
gClamperlLevelUpLearnset,
|
||||
gHuntailLevelUpLearnset,
|
||||
gGorebyssLevelUpLearnset,
|
||||
gAbsolLevelUpLearnset,
|
||||
gShuppetLevelUpLearnset,
|
||||
gBanetteLevelUpLearnset,
|
||||
gSeviperLevelUpLearnset,
|
||||
gZangooseLevelUpLearnset,
|
||||
gRelicanthLevelUpLearnset,
|
||||
gAronLevelUpLearnset,
|
||||
gLaironLevelUpLearnset,
|
||||
gAggronLevelUpLearnset,
|
||||
gCastformLevelUpLearnset,
|
||||
gVolbeatLevelUpLearnset,
|
||||
gIllumiseLevelUpLearnset,
|
||||
gLileepLevelUpLearnset,
|
||||
gCradilyLevelUpLearnset,
|
||||
gAnorithLevelUpLearnset,
|
||||
gArmaldoLevelUpLearnset,
|
||||
gRaltsLevelUpLearnset,
|
||||
gKirliaLevelUpLearnset,
|
||||
gGardevoirLevelUpLearnset,
|
||||
gBagonLevelUpLearnset,
|
||||
gShelgonLevelUpLearnset,
|
||||
gSalamenceLevelUpLearnset,
|
||||
gBeldumLevelUpLearnset,
|
||||
gMetangLevelUpLearnset,
|
||||
gMetagrossLevelUpLearnset,
|
||||
gRegirockLevelUpLearnset,
|
||||
gRegiceLevelUpLearnset,
|
||||
gRegisteelLevelUpLearnset,
|
||||
gKyogreLevelUpLearnset,
|
||||
gGroudonLevelUpLearnset,
|
||||
gRayquazaLevelUpLearnset,
|
||||
gLatiasLevelUpLearnset,
|
||||
gLatiosLevelUpLearnset,
|
||||
gJirachiLevelUpLearnset,
|
||||
gDeoxysLevelUpLearnset,
|
||||
gChimechoLevelUpLearnset
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_LEVEL_UP_LEARNSET_POINTERS_H
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,176 @@
|
||||
#ifndef POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
|
||||
#define POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
|
||||
|
||||
const u8 gFacilityClassToPicIndex[] =
|
||||
{
|
||||
TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER
|
||||
TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1
|
||||
TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1
|
||||
TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_1
|
||||
TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
|
||||
TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR
|
||||
TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2
|
||||
TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
|
||||
TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1
|
||||
TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_1
|
||||
TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
|
||||
TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER
|
||||
TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
|
||||
TRAINER_PIC_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY
|
||||
TRAINER_PIC_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC
|
||||
TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
|
||||
TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1
|
||||
TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2
|
||||
TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_2
|
||||
TRAINER_PIC_LADY, // FACILITY_CLASS_LADY
|
||||
TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY
|
||||
TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY
|
||||
TRAINER_PIC_EXPERT_F, // FACILITY_CLASS_EXPERT_2
|
||||
TRAINER_PIC_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC
|
||||
TRAINER_PIC_MAGMA_GRUNT_F, // FACILITY_CLASS_TEAM_MAGMA_2
|
||||
TRAINER_PIC_GUITARIST, // FACILITY_CLASS_GUITARIST
|
||||
TRAINER_PIC_KINDLER, // FACILITY_CLASS_KINDLER
|
||||
TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER
|
||||
TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER
|
||||
TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
|
||||
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1
|
||||
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2
|
||||
TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
|
||||
TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1
|
||||
TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2
|
||||
TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1
|
||||
TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2
|
||||
TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3
|
||||
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1
|
||||
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2
|
||||
TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
|
||||
TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1
|
||||
TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2
|
||||
TRAINER_PIC_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER
|
||||
TRAINER_PIC_CHAMPION_WALLACE, // FACILITY_CLASS_CHAMPION
|
||||
TRAINER_PIC_FISHERMAN, // FACILITY_CLASS_FISHERMAN
|
||||
TRAINER_PIC_CYCLING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_1
|
||||
TRAINER_PIC_CYCLING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_2
|
||||
TRAINER_PIC_RUNNING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_3
|
||||
TRAINER_PIC_RUNNING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_4
|
||||
TRAINER_PIC_SWIMMING_TRIATHLETE_M, // FACILITY_CLASS_TRIATHLETE_5
|
||||
TRAINER_PIC_SWIMMING_TRIATHLETE_F, // FACILITY_CLASS_TRIATHLETE_6
|
||||
TRAINER_PIC_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER
|
||||
TRAINER_PIC_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY
|
||||
TRAINER_PIC_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL
|
||||
TRAINER_PIC_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY
|
||||
TRAINER_PIC_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F
|
||||
TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS
|
||||
TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR
|
||||
TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_2
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_5
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7
|
||||
TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2
|
||||
TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
|
||||
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1
|
||||
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2
|
||||
TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER
|
||||
TRAINER_PIC_LASS, // FACILITY_CLASS_LASS
|
||||
TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
|
||||
TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
|
||||
TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
|
||||
TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_8
|
||||
TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN
|
||||
TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE
|
||||
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9
|
||||
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12
|
||||
};
|
||||
|
||||
const u8 gFacilityClassToTrainerClass[] =
|
||||
{
|
||||
TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER
|
||||
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1
|
||||
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_1
|
||||
TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
|
||||
TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR
|
||||
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2
|
||||
TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
|
||||
TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1
|
||||
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_1
|
||||
TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
|
||||
TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER
|
||||
TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
|
||||
TRAINER_CLASS_AROMA_LADY, // FACILITY_CLASS_AROMA_LADY
|
||||
TRAINER_CLASS_RUIN_MANIAC, // FACILITY_CLASS_RUIN_MANIAC
|
||||
TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
|
||||
TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1
|
||||
TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_2
|
||||
TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY
|
||||
TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY
|
||||
TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY
|
||||
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_2
|
||||
TRAINER_CLASS_POKEMANIAC, // FACILITY_CLASS_POKEMANIAC
|
||||
TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_2
|
||||
TRAINER_CLASS_GUITARIST, // FACILITY_CLASS_GUITARIST
|
||||
TRAINER_CLASS_KINDLER, // FACILITY_CLASS_KINDLER
|
||||
TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER
|
||||
TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER
|
||||
TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2
|
||||
TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
|
||||
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1
|
||||
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2
|
||||
TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
|
||||
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1
|
||||
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2
|
||||
TRAINER_CLASS_YOUNGSTER, // FACILITY_CLASS_YOUNGSTER
|
||||
TRAINER_CLASS_CHAMPION, // FACILITY_CLASS_CHAMPION
|
||||
TRAINER_CLASS_FISHERMAN, // FACILITY_CLASS_FISHERMAN
|
||||
TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_1
|
||||
TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_2
|
||||
TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_3
|
||||
TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_4
|
||||
TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_5
|
||||
TRAINER_CLASS_TRIATHLETE, // FACILITY_CLASS_TRIATHLETE_6
|
||||
TRAINER_CLASS_DRAGON_TAMER, // FACILITY_CLASS_DRAGON_TAMER
|
||||
TRAINER_CLASS_NINJA_BOY, // FACILITY_CLASS_NINJA_BOY
|
||||
TRAINER_CLASS_BATTLE_GIRL, // FACILITY_CLASS_BATTLE_GIRL
|
||||
TRAINER_CLASS_PARASOL_LADY, // FACILITY_CLASS_PARASOL_LADY
|
||||
TRAINER_CLASS_SWIMMER_F, // FACILITY_CLASS_SWIMMER_F
|
||||
TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS
|
||||
TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_2
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_5
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7
|
||||
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2
|
||||
TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_1
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_2
|
||||
TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER
|
||||
TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS
|
||||
TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
|
||||
TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
|
||||
TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_8
|
||||
TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN
|
||||
TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_9
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_10
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
|
||||
+1
-1
@@ -5,6 +5,6 @@ void ClearDma3Requests(void);
|
||||
void ProcessDma3Requests(void);
|
||||
s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
|
||||
s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
|
||||
int CheckForSpaceForDma3Request(s16 index);
|
||||
s16 CheckForSpaceForDma3Request(s16 index);
|
||||
|
||||
#endif // GUARD_DMA3_H
|
||||
|
||||
@@ -39,6 +39,9 @@
|
||||
#define BG_CHAR_ADDR(n) (BG_VRAM + (BG_CHAR_SIZE * (n)))
|
||||
#define BG_SCREEN_ADDR(n) (BG_VRAM + (BG_SCREEN_SIZE * (n)))
|
||||
|
||||
#define BG_TILE_H_FLIP(n) (0x400 + (n))
|
||||
#define BG_TILE_V_FLIP(n) (0x800 + (n))
|
||||
|
||||
// text-mode BG
|
||||
#define OBJ_VRAM0 (VRAM + 0x10000)
|
||||
#define OBJ_VRAM0_SIZE 0x8000
|
||||
|
||||
+14
-7
@@ -25,7 +25,7 @@
|
||||
#define INCBIN_S32 {0}
|
||||
#endif // __APPLE__
|
||||
|
||||
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
|
||||
#define ARRAY_COUNT(array) (size_t)(sizeof(array) / sizeof((array)[0]))
|
||||
|
||||
// useful math macros
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
// Converts a number to Q4.12 fixed-point format
|
||||
#define Q_4_12(n) ((s16)((n) * 4096))
|
||||
|
||||
#define PARTY_SIZE 6
|
||||
|
||||
#define POKEMON_NAME_LENGTH 10
|
||||
#define OT_NAME_LENGTH 7
|
||||
|
||||
@@ -297,6 +299,16 @@ struct SaveBlock2
|
||||
|
||||
extern struct SaveBlock2 *gSaveBlock2Ptr;
|
||||
|
||||
struct SecretBaseParty
|
||||
{
|
||||
u32 personality[PARTY_SIZE];
|
||||
u16 moves[PARTY_SIZE * 4];
|
||||
u16 species[PARTY_SIZE];
|
||||
u16 heldItems[PARTY_SIZE];
|
||||
u8 levels[PARTY_SIZE];
|
||||
u8 EVs[PARTY_SIZE];
|
||||
};
|
||||
|
||||
struct SecretBaseRecord
|
||||
{
|
||||
/*0x1A9C*/ u8 secretBaseId;
|
||||
@@ -312,12 +324,7 @@ struct SecretBaseRecord
|
||||
/*0x1AAD*/ u8 sbr_field_11;
|
||||
/*0x1AAE*/ u8 decorations[16];
|
||||
/*0x1ABE*/ u8 decorationPos[16];
|
||||
/*0x1AD0*/ u32 partyPersonality[6];
|
||||
/*0x1AE8*/ u16 partyMoves[6 * 4];
|
||||
/*0x1B18*/ u16 partySpecies[6];
|
||||
/*0x1B24*/ u16 partyHeldItems[6];
|
||||
/*0x1B2E*/ u8 partyLevels[6];
|
||||
/*0x1B34*/ u8 partyEVs[6];
|
||||
/*0x1AD0*/ struct SecretBaseParty party;
|
||||
};
|
||||
|
||||
#include "constants/game_stat.h"
|
||||
|
||||
@@ -2654,6 +2654,12 @@ extern const u8 gBattleTerrainPalette_StadiumWallace[];
|
||||
extern const u8 gPokedexMenu2_Gfx[];
|
||||
extern const u8 gPokedexText_Pal[];
|
||||
|
||||
// berry tag screen
|
||||
extern const u8 gUnknown_08D9BB44[];
|
||||
extern const u8 gUnknown_08D9BF98[];
|
||||
extern const u8 gUnknown_08D9C13C[];
|
||||
extern const u8 gUnknown_08D9BEF0[];
|
||||
|
||||
// rayquaza scene gfx
|
||||
extern const u8 gRaySceneGroudon_Gfx[];
|
||||
extern const u8 gRaySceneGroudon2_Gfx[];
|
||||
@@ -2673,10 +2679,44 @@ extern const u8 gRaySceneGroudonTail_Gfx[];
|
||||
extern const u8 gRaySceneKyogreRight_Gfx[];
|
||||
extern const u8 gRaySceneRayquazaHover_Gfx[];
|
||||
extern const u8 gRaySceneRayquazaFlyIn_Gfx[];
|
||||
extern const u8 gRaySceneOvercast_Gfx[];
|
||||
extern const u8 gRaySceneOvercast_Tilemap[];
|
||||
extern const u8 gRaySceneRayquaza_Gfx[];
|
||||
extern const u8 gRaySceneRayquaza_Tilemap[];
|
||||
extern const u8 gRaySceneSplash_Gfx[];
|
||||
extern const u8 gRaySceneGroudonLeft_Pal[];
|
||||
extern const u8 gRaySceneKyogreRight_Pal[];
|
||||
extern const u8 gRaySceneRayquazaHover_Pal[];
|
||||
extern const u8 gRaySceneSplash_Pal[];
|
||||
extern const u8 gRaySceneClouds_Gfx[];
|
||||
extern const u8 gRaySceneClouds_Pal[];
|
||||
extern const u8 gRaySceneClouds2_Tilemap[];
|
||||
extern const u8 gRaySceneClouds1_Tilemap[];
|
||||
extern const u8 gRaySceneClouds3_Tilemap[];
|
||||
extern const u8 gRaySceneRayquazaLight_Gfx[];
|
||||
extern const u8 gRaySceneRayquazaLight_Tilemap[];
|
||||
extern const u8 gRaySceneOvercast2_Gfx[];
|
||||
extern const u8 gRaySceneOvercast2_Tilemap[];
|
||||
extern const u8 gRaySceneOvercast2_Pal[];
|
||||
extern const u8 gRaySceneRayquazaChase_Gfx[];
|
||||
extern const u8 gRaySceneChaseStreaks_Gfx[];
|
||||
extern const u8 gRaySceneChaseBg_Gfx[];
|
||||
extern const u8 gRayChaseRayquazaChase2_Tilemap[];
|
||||
extern const u8 gRayChaseRayquazaChase_Tilemap[];
|
||||
extern const u8 gRaySceneChaseStreaks_Tilemap[];
|
||||
extern const u8 gRaySceneChaseBg_Tilemap[];
|
||||
extern const u8 gRaySceneChase_Pal[];
|
||||
extern const u8 gRaySceneHushRing_Tilemap[];
|
||||
extern const u8 gRaySceneHushBg_Tilemap[];
|
||||
extern const u8 gRaySceneHushRing_Map[];
|
||||
extern const u8 gRaySceneHushBg_Pal[];
|
||||
extern const u8 gRaySceneHushBg_Gfx[];
|
||||
extern const u8 gRaySceneHushRing_Gfx[];
|
||||
|
||||
//menu graphics
|
||||
extern const u16 gFireRedMenuElements1_Pal[16];
|
||||
extern const u16 gFireRedMenuElements2_Pal[16];
|
||||
extern const u16 gFireRedMenuElements3_Pal[16];
|
||||
extern const u8 gFireRedMenuElements_Gfx[];
|
||||
|
||||
#endif //GUARD_GRAPHICS_H
|
||||
|
||||
+4
-1
@@ -7,5 +7,8 @@
|
||||
|
||||
// Exported ROM declarations
|
||||
void c2_copyright_1(void);
|
||||
void CB2_InitCopyrightScreenAfterBootup(void);
|
||||
void CB2_InitCopyrightScreenAfterTitleScreen(void);
|
||||
void sub_816F2A8(u16, u16, u16, u16);
|
||||
|
||||
#endif //GUARD_INTRO_H
|
||||
#endif // GUARD_INTRO_H
|
||||
|
||||
@@ -60,5 +60,6 @@ u8 ItemId_GetBattleUsage(u16 itemId);
|
||||
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
|
||||
u8 ItemId_GetSecondaryId(u16 itemId);
|
||||
u16 itemid_get_market_price(u16 itemId);
|
||||
u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos);
|
||||
|
||||
#endif // ITEM_H
|
||||
|
||||
+7
-8
@@ -1,17 +1,16 @@
|
||||
//
|
||||
// Created by scott on 10/20/2017.
|
||||
//
|
||||
|
||||
#ifndef GUARD_ITEM_ICON_H
|
||||
#define GUARD_ITEM_ICON_H
|
||||
|
||||
extern EWRAM_DATA void *gUnknown_0203CEBC;
|
||||
extern EWRAM_DATA void *gUnknown_0203CEC0;
|
||||
extern void *gItemIconDecompressionBuffer;
|
||||
extern void *gItemIcon4x4Buffer;
|
||||
|
||||
extern const struct SpriteTemplate gUnknown_08614FF4;
|
||||
extern const struct SpriteTemplate gItemIconSpriteTemplate;
|
||||
|
||||
bool8 AllocItemIconTemporaryBuffers(void);
|
||||
void CopyItemIconPicTo4x4Buffer(void *src, void *dest);
|
||||
void FreeItemIconTemporaryBuffers(void);
|
||||
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
|
||||
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId);
|
||||
u8 AddCustomItemIconSprite(struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
|
||||
const void *GetItemIconPicOrPalette(u16 itemId, u8 which);
|
||||
|
||||
#endif //GUARD_ITEM_ICON_H
|
||||
|
||||
@@ -2,6 +2,18 @@
|
||||
#define GUARD_item_menu_H
|
||||
|
||||
// Exported type declarations
|
||||
struct BagStruct
|
||||
{
|
||||
void *func;
|
||||
u8 unk4;
|
||||
u8 pocket;
|
||||
u8 unk6[2];
|
||||
u16 unk8[5];
|
||||
u16 unk12[5];
|
||||
void *unk1C;
|
||||
};
|
||||
|
||||
extern struct BagStruct gUnknown_0203CE58;
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
@@ -10,5 +22,6 @@ extern u16 gSpecialVar_ItemId;
|
||||
// Exported ROM declarations
|
||||
void sub_81AAC50(void);
|
||||
void sub_81AAC70(void);
|
||||
void bag_menu_mail_related(void);
|
||||
|
||||
#endif //GUARD_item_menu_H
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
#ifndef GUARD_ITEM_MENU_ICONS
|
||||
#define GUARD_ITEM_MENU_ICONS
|
||||
|
||||
extern const struct CompressedSpriteSheet gUnknown_0857FDEC;
|
||||
extern const struct CompressedSpritePalette gUnknown_0857FDF4;
|
||||
|
||||
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
|
||||
u8 CreateBerryTagSprite(u8 id, s16 x, s16 y);
|
||||
void FreeBerryTagSpritePalette(void);
|
||||
u8 CreateBerryFlavorCircleSprite(s16 x);
|
||||
|
||||
#endif // GUARD_ITEM_MENU_ICONS
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
#ifndef GUARD_ITEM_USE_H
|
||||
#define GUARD_ITEM_USE_H
|
||||
|
||||
extern u16 gSpecialVar_ItemId;
|
||||
|
||||
void ItemUseOutOfBattle_Mail(u8);
|
||||
void ItemUseOutOfBattle_Bike(u8);
|
||||
void ItemUseOnFieldCB_Bike(u8);
|
||||
void ItemUseOutOfBattle_Rod(u8);
|
||||
void ItemUseOnFieldCB_Rod(u8);
|
||||
void ItemUseOutOfBattle_Itemfinder(u8);
|
||||
void ItemUseOnFieldCB_Itemfinder(u8);
|
||||
void RunItemfinderResults(u8);
|
||||
void ExitItemfinder(u8);
|
||||
bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8);
|
||||
void sub_80C9720(u8);
|
||||
void sub_80C9838(u8, s16, s16);
|
||||
u8 GetPlayerDirectionTowardsHiddenItem(s16, s16);
|
||||
void SetPlayerDirectionTowardsItem(u8);
|
||||
void DisplayItemRespondingMessageAndExitItemfinder(u8);
|
||||
void RotatePlayerAndExitItemfinder(u8);
|
||||
void ItemUseOutOfBattle_PokeblockCase(u8);
|
||||
void ItemUseOutOfBattle_CoinCase(u8);
|
||||
void ItemUseOutOfBattle_SSTicket(u8);
|
||||
void sub_80C9D00(u8);
|
||||
void ItemUseOutOfBattle_WailmerPail(u8);
|
||||
void sub_80C9D74(u8);
|
||||
void ItemUseOutOfBattle_Medicine(u8);
|
||||
void ItemUseOutOfBattle_SacredAsh(u8);
|
||||
void ItemUseOutOfBattle_PPRecovery(u8);
|
||||
void ItemUseOutOfBattle_PPUp(u8);
|
||||
void ItemUseOutOfBattle_RareCandy(u8);
|
||||
void ItemUseOutOfBattle_TMHM(u8);
|
||||
void sub_80C9EE4(u8);
|
||||
void sub_80C9F10(u8);
|
||||
void sub_80C9F80(u8);
|
||||
void sub_80C9FC0(u8);
|
||||
void ItemUseOutOfBattle_Repel(u8);
|
||||
void ItemUseOutOfBattle_BlackWhiteFlute(u8);
|
||||
void task08_080A1C44(u8);
|
||||
u8 CanUseEscapeRopeOnCurrMap(void);
|
||||
void ItemUseOutOfBattle_EscapeRope(u8);
|
||||
void ItemUseOutOfBattle_EvolutionStone(u8);
|
||||
void ItemUseInBattle_PokeBall(u8);
|
||||
void ItemUseInBattle_StatIncrease(u8);
|
||||
void ItemUseInBattle_Medicine(u8);
|
||||
void ItemUseInBattle_PPRecovery(u8);
|
||||
void ItemUseInBattle_Escape(u8);
|
||||
void ItemUseOutOfBattle_EnigmaBerry(u8);
|
||||
void ItemUseInBattle_EnigmaBerry(u8);
|
||||
void ItemUseOutOfBattle_CannotUse(u8);
|
||||
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
|
||||
|
||||
#endif // GUARD_ITEM_USE_H
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_MAIN_MENU_H
|
||||
#define GUARD_MAIN_MENU_H
|
||||
|
||||
void CB2_InitMainMenu(void);
|
||||
|
||||
#endif // GUARD_MAIN_MENU_H
|
||||
+30
-8
@@ -1,6 +1,7 @@
|
||||
#ifndef GUARD_MENU_H
|
||||
#define GUARD_MENU_H
|
||||
|
||||
#include "task.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
|
||||
@@ -16,29 +17,50 @@ struct MenuAction
|
||||
} func;
|
||||
};
|
||||
|
||||
void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
|
||||
extern const u16 gUnknown_0860F074[];
|
||||
|
||||
void sub_81971D0(void);
|
||||
void sub_8197200(void);
|
||||
u16 sub_8197224(void);
|
||||
void sub_81973A4(void);
|
||||
void NewMenuHelpers_DrawDialogueFrame(u8, u8);
|
||||
void sub_819746C(u8 windowId, bool8 copyToVram);
|
||||
void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
|
||||
u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
|
||||
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
|
||||
void sub_8197434(u8 a0, u8 a1);
|
||||
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
|
||||
void sub_8197930(void);
|
||||
u8 GetPlayerTextSpeed(void);
|
||||
void sub_81978B0(u16 arg0);
|
||||
|
||||
void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
|
||||
void sub_8198070(u8 windowId, bool8 copyToVram);
|
||||
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
|
||||
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
|
||||
void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
|
||||
void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
|
||||
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
|
||||
void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
|
||||
u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos);
|
||||
u8 GetMenuCursorPos(void);
|
||||
s8 ProcessMenuInput(void);
|
||||
s8 ProcessMenuInputNoWrapAround(void);
|
||||
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
|
||||
void reset_temp_tile_data_buffers(void);
|
||||
int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
|
||||
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
|
||||
bool8 free_temp_tile_data_buffers_if_possible(void);
|
||||
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
|
||||
struct WindowTemplate sub_8198A50(u8, u8, u8, u8, u8, u8, u16);
|
||||
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
|
||||
void copy_decompressed_tile_data_to_vram_autofree(u8 arg0, const void *arg1, bool32 arg2, u16 arg3, u8 arg4);
|
||||
void copy_decompressed_tile_data_to_vram_autofree(u8 bgId, const void *src, int size, u16 offset, u8 mode);
|
||||
s8 ProcessMenuInputNoWrap_(void);
|
||||
void do_scheduled_bg_tilemap_copies_to_vram(void);
|
||||
void clear_scheduled_bg_copies_to_vram(void);
|
||||
void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
|
||||
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
|
||||
void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
|
||||
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
|
||||
void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
|
||||
void sub_8197DF8(u8 windowId, bool8 copyToVram);
|
||||
u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16);
|
||||
void *malloc_and_decompress(const void *src, int *sizeOut);
|
||||
u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode);
|
||||
void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
|
||||
|
||||
#endif // GUARD_MENU_H
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_MENU_HELPERS_H
|
||||
#define GUARD_MENU_HELPERS_H
|
||||
|
||||
#include "task.h"
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
struct YesNoFuncTable
|
||||
@@ -17,6 +19,7 @@ void sub_812225C(u16 *, u16 *, u8, u8);
|
||||
void sub_8122298(u16 *, u16 *, u8, u8, u8);
|
||||
void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
|
||||
bool8 sub_81221AC(void);
|
||||
bool8 sub_81221EC(void);
|
||||
void ResetVramOamAndBgCntRegs(void);
|
||||
void SetVBlankHBlankCallbacksToNull(void);
|
||||
void ResetAllBgsCoordinates(void);
|
||||
@@ -27,5 +30,7 @@ void sub_81223FC(u8 *a0, u8 count, u8 a2);
|
||||
void sub_8122448(u8 *a0, u8 count, u16 x, u16 y);
|
||||
void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg4, u8 textSpeed, const u8 *string, void *taskFunc);
|
||||
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
|
||||
u8 GetLRKeysState(void);
|
||||
u8 sub_812210C(void);
|
||||
|
||||
#endif //GUARD_MENU_HELPERS_H
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#ifndef GUARD_NEW_MENU_HELPERS_H
|
||||
#define GUARD_NEW_MENU_HELPERS_H
|
||||
|
||||
#include "text.h"
|
||||
#include "task.h"
|
||||
|
||||
extern const u16 gUnknown_0860F074[];
|
||||
|
||||
void sub_81971D0(void);
|
||||
void sub_8197200(void);
|
||||
void sub_81973A4(void);
|
||||
void sub_81973C4(u8, u8);
|
||||
void sub_819746C(u8 windowId, bool8 copyToVram);
|
||||
void sub_81973FC(u8, u8);
|
||||
u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
|
||||
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
|
||||
void sub_8197434(u8 a0, u8 a1);
|
||||
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
|
||||
void sub_8197930(void);
|
||||
u8 GetPlayerTextSpeed(void);
|
||||
void sub_81978B0(u16 arg0);
|
||||
u16 sub_8197224(void);
|
||||
int sub_8196094(void);
|
||||
void sub_8196080(u8*);
|
||||
void AddTextPrinterForMessage(u8);
|
||||
|
||||
#endif // GUARD_NEW_MENU_HELPERS_H
|
||||
@@ -67,5 +67,6 @@ void BeginFastPaletteFade(u8);
|
||||
void BeginHardwarePaletteFade(u8, u8, u8, u8, u8);
|
||||
void BlendPalettes(u32, u8, u16);
|
||||
void BlendPalettesUnfaded(u32, u8, u16);
|
||||
void sub_80A2C44(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
|
||||
|
||||
#endif // GUARD_PALETTE_H
|
||||
|
||||
+4
-100
@@ -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,82 +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 PARTY_SIZE 6
|
||||
#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;
|
||||
@@ -375,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;
|
||||
@@ -511,18 +420,13 @@ struct Evolution
|
||||
|
||||
#define EVOS_PER_MON 5
|
||||
|
||||
struct EvolutionData
|
||||
{
|
||||
struct Evolution evolutions[EVOS_PER_MON];
|
||||
};
|
||||
|
||||
extern u8 gPlayerPartyCount;
|
||||
extern struct Pokemon gPlayerParty[PARTY_SIZE];
|
||||
extern u8 gEnemyPartyCount;
|
||||
extern struct Pokemon gEnemyParty[PARTY_SIZE];
|
||||
extern const struct BaseStats gBaseStats[];
|
||||
extern const u8 *const gItemEffectTable[];
|
||||
extern const struct EvolutionData gEvolutionTable[];
|
||||
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
|
||||
extern struct PokemonStorage* gPokemonStoragePtr;
|
||||
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
|
||||
extern const u16 *const gLevelUpLearnsets[];
|
||||
@@ -631,7 +535,7 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
|
||||
bool8 IsTradedMon(struct Pokemon *mon);
|
||||
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
|
||||
s32 GetBankMultiplayerId(u16 a1);
|
||||
s32 GetBattlerMultiplayerId(u16 a1);
|
||||
bool16 sub_806D82C(u8 id);
|
||||
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
|
||||
void sub_8068AA4(void); // sets stats for deoxys
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef GUARD_RAYQUAZA_SCENE_H
|
||||
#define GUARD_RAYQUAZA_SCENE_H
|
||||
|
||||
void DoRayquazaScene(u8 animId, bool8 onlyOneAnim, void (*callback)(void));
|
||||
|
||||
enum
|
||||
{
|
||||
RAY_ANIM_DUO_FIGHT_PRE,
|
||||
RAY_ANIM_DUO_FIGHT,
|
||||
RAY_ANIM_TAKES_FLIGHT,
|
||||
RAY_ANIM_DESCENDS,
|
||||
RAY_ANIM_CHARGES,
|
||||
RAY_ANIM_CHACES_AWAY,
|
||||
RAY_ANIM_END
|
||||
};
|
||||
|
||||
#endif // GUARD_RAYQUAZA_SCENE_H
|
||||
@@ -7,9 +7,9 @@ extern u8 gUnknown_0203C7B4;
|
||||
|
||||
void sub_8184DA4(u8 arg0);
|
||||
void sub_8184E58(void);
|
||||
void RecordedBattle_SetBankAction(u8 bank, u8 action);
|
||||
void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear);
|
||||
u8 RecordedBattle_ReadBankAction(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);
|
||||
|
||||
@@ -93,5 +93,6 @@ void CreateRegionMapPlayerIcon(u16 x, u16 y);
|
||||
void CreateRegionMapCursor(u16 tileTag, u16 paletteTag);
|
||||
u8 *GetMapName(u8 *, u16, u16);
|
||||
bool32 sub_8124668(u8 mapSecId);
|
||||
u8 *sub_81245DC(u8 *dest, u16 mapSecId);
|
||||
|
||||
#endif //GUARD_REGION_MAP_H
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_RESET_RTC_SCREEN_H
|
||||
#define GUARD_RESET_RTC_SCREEN_H
|
||||
|
||||
void CB2_InitResetRtcScreen(void);
|
||||
|
||||
#endif // GUARD_RESET_RTC_SCREEN_H
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_SCANLINE_EFFECT_H
|
||||
#define GUARD_SCANLINE_EFFECT_H
|
||||
|
||||
// DMA control value to ransfer a single 16-bit value at HBlank
|
||||
// DMA control value to transfer a single 16-bit value at HBlank
|
||||
#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
|
||||
|
||||
#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
|
||||
@@ -36,7 +36,7 @@ struct ScanlineEffect
|
||||
|
||||
extern struct ScanlineEffect gScanlineEffect;
|
||||
|
||||
extern u16 gScanlineEffectRegBuffers[][0x3C0];
|
||||
extern u16 gScanlineEffectRegBuffers[2][0x3C0];
|
||||
|
||||
void ScanlineEffect_Stop(void);
|
||||
void ScanlineEffect_Clear(void);
|
||||
|
||||
@@ -157,6 +157,19 @@ extern const u8 gText_EggNickname[];
|
||||
extern const u8 gText_Pokemon[];
|
||||
extern const u8 gText_InGameClockUsable[];
|
||||
|
||||
// reset rtc screen texts
|
||||
extern const u8 gText_Day[];
|
||||
extern const u8 gText_Colon3[];
|
||||
extern const u8 gText_Confirm2[];
|
||||
extern const u8 gText_PresentTime[];
|
||||
extern const u8 gText_PreviousTime[];
|
||||
extern const u8 gText_ResetRTCConfirmCancel[];
|
||||
extern const u8 gText_NoSaveFileCantSetTime[];
|
||||
extern const u8 gText_PleaseResetTime[];
|
||||
extern const u8 gText_ClockHasBeenReset[];
|
||||
extern const u8 gText_SaveCompleted[];
|
||||
extern const u8 gText_SaveFailed[];
|
||||
|
||||
// menu texts
|
||||
extern const u8 gText_MenuPokedex[];
|
||||
extern const u8 gText_MenuPokemon[];
|
||||
@@ -207,6 +220,9 @@ extern const u8 gText_ButtonMode[];
|
||||
extern const u8 gText_MaleSymbol[];
|
||||
extern const u8 gText_FemaleSymbol[];
|
||||
|
||||
extern const u8 gText_SelectorArrow3[];
|
||||
extern const u8 gText_YesNo[];
|
||||
|
||||
// mystery event menu text
|
||||
extern const u8 gText_EventSafelyLoaded[];
|
||||
extern const u8 gText_LoadErrorEndingSession[];
|
||||
@@ -215,4 +231,17 @@ extern const u8 gText_LoadingEvent[];
|
||||
extern const u8 gText_DontRemoveCableTurnOff[];
|
||||
extern const u8 gText_LinkStandby2[];
|
||||
|
||||
// berry tag screen text
|
||||
extern const u8 gBerryFirmnessString_VerySoft[];
|
||||
extern const u8 gBerryFirmnessString_Soft[];
|
||||
extern const u8 gBerryFirmnessString_Hard[];
|
||||
extern const u8 gBerryFirmnessString_VeryHard[];
|
||||
extern const u8 gBerryFirmnessString_SuperHard[];
|
||||
extern const u8 gText_BerryTag[];
|
||||
extern const u8 gText_UnkF908Var1Var2[];
|
||||
extern const u8 gText_SizeSlash[];
|
||||
extern const u8 gText_Var1DotVar2[];
|
||||
extern const u8 gText_ThreeMarks[];
|
||||
extern const u8 gText_FirmSlash[];
|
||||
|
||||
#endif //GUARD_STRINGS_H
|
||||
|
||||
+6
-16
@@ -75,6 +75,10 @@
|
||||
#define CHAR_NEWLINE 0xFE
|
||||
#define EOS 0xFF // end of string
|
||||
|
||||
#define EXT_CTRL_CODE_COLOR 0x1
|
||||
#define EXT_CTRL_CODE_HIGHLIGHT 0x2
|
||||
#define EXT_CTRL_CODE_SHADOW 0x3
|
||||
|
||||
#define TEXT_COLOR_TRANSPARENT 0x0
|
||||
#define TEXT_COLOR_WHITE 0x1
|
||||
#define TEXT_COLOR_DARK_GREY 0x2
|
||||
@@ -116,7 +120,7 @@ struct TextSubPrinter // TODO: Better name
|
||||
u8 letterSpacing;
|
||||
u8 lineSpacing;
|
||||
u8 fontColor_l:4; // 0xC
|
||||
u8 fontColor_h:4;
|
||||
u8 fgColor:4;
|
||||
u8 bgColor:4;
|
||||
u8 shadowColor:4;
|
||||
};
|
||||
@@ -149,7 +153,7 @@ struct FontInfo
|
||||
u8 letterSpacing;
|
||||
u8 lineSpacing;
|
||||
u8 fontColor_l:4;
|
||||
u8 fontColor_h:4;
|
||||
u8 fgColor:4;
|
||||
u8 bgColor:4;
|
||||
u8 shadowColor:4;
|
||||
};
|
||||
@@ -178,20 +182,6 @@ typedef struct {
|
||||
|
||||
extern TextFlags gTextFlags;
|
||||
|
||||
struct __attribute__((packed)) TextColor
|
||||
{
|
||||
u8 fgColor;
|
||||
u8 bgColor;
|
||||
u8 shadowColor;
|
||||
};
|
||||
|
||||
struct AlignedTextColor // because sometimes it's necessary
|
||||
{
|
||||
u8 fgColor;
|
||||
u8 bgColor;
|
||||
u8 shadowColor;
|
||||
};
|
||||
|
||||
extern u8 gStringVar1[];
|
||||
extern u8 gStringVar2[];
|
||||
extern u8 gStringVar3[];
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef GUARD_TITLE_SCREEN_H
|
||||
#define GUARD_TITLE_SCREEN_H
|
||||
|
||||
extern const u16 gUnknown_0853FF70[];
|
||||
|
||||
void CB2_InitTitleScreen(void);
|
||||
|
||||
#endif // GUARD_TITLE_SCREEN_H
|
||||
+1
-1
@@ -52,7 +52,7 @@ void PutWindowTilemap(u8 windowId);
|
||||
void PutWindowRectTilemapOverridePalette(u8 windowId, u8 x, u8 y, u8 width, u8 height, u8 palette);
|
||||
void ClearWindowTilemap(u8 windowId);
|
||||
void PutWindowRectTilemap(u8 windowId, u8 x, u8 y, u8 width, u8 height);
|
||||
void BlitBitmapToWindow(u8 windowId, u8 *pixels, u16 x, u16 y, u16 width, u16 height);
|
||||
void BlitBitmapToWindow(u8 windowId, const u8 *pixels, u16 x, u16 y, u16 width, u16 height);
|
||||
void BlitBitmapRectToWindow(u8 windowId, const u8 *pixels, u16 srcX, u16 srcY, u16 srcWidth, int srcHeight, u16 destX, u16 destY, u16 rectWidth, u16 rectHeight);
|
||||
void FillWindowPixelRect(u8 windowId, u8 fillValue, u16 x, u16 y, u16 width, u16 height);
|
||||
void CopyToWindowPixelBuffer(u8 windowId, const u8 *src, u16 size, u16 tileOffset);
|
||||
|
||||
Reference in New Issue
Block a user