Merge branch 'master' of github.com:pret/pokefirered into script_menu
This commit is contained in:
+17
-231
@@ -18,14 +18,6 @@
|
||||
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 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 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))
|
||||
@@ -36,40 +28,6 @@
|
||||
#define STEVEN_PARTNER_ID 0xC03
|
||||
#define SECRET_BASE_OPPONENT 0x400
|
||||
|
||||
#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 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 B_ACTION_USE_MOVE 0
|
||||
#define B_ACTION_USE_ITEM 1
|
||||
#define B_ACTION_SWITCH 2
|
||||
@@ -79,7 +37,7 @@
|
||||
#define B_ACTION_SAFARI_POKEBLOCK 6
|
||||
#define B_ACTION_SAFARI_GO_NEAR 7
|
||||
#define B_ACTION_SAFARI_RUN 8
|
||||
#define B_ACTION_9 9
|
||||
#define B_ACTION_OLDMAN_THROW 9
|
||||
#define B_ACTION_EXEC_SCRIPT 10
|
||||
#define B_ACTION_TRY_FINISH 11
|
||||
#define B_ACTION_FINISHED 12
|
||||
@@ -87,31 +45,9 @@
|
||||
#define B_ACTION_NOTHING_FAINTED 13 // when choosing an action
|
||||
#define B_ACTION_NONE 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))
|
||||
|
||||
#define MAX_TRAINER_ITEMS 4
|
||||
#define MAX_MON_MOVES 4
|
||||
|
||||
#define BATTLE_TERRAIN_GRASS 0
|
||||
#define BATTLE_TERRAIN_LONG_GRASS 1
|
||||
#define BATTLE_TERRAIN_SAND 2
|
||||
#define BATTLE_TERRAIN_UNDERWATER 3
|
||||
#define BATTLE_TERRAIN_WATER 4
|
||||
#define BATTLE_TERRAIN_POND 5
|
||||
#define BATTLE_TERRAIN_ROCK 6
|
||||
#define BATTLE_TERRAIN_CAVE 7
|
||||
#define BATTLE_TERRAIN_INSIDE 8
|
||||
#define BATTLE_TERRAIN_PLAIN 9
|
||||
|
||||
// array entries for battle communication
|
||||
#define MULTIUSE_STATE 0x0
|
||||
#define CURSOR_POSITION 0x1
|
||||
@@ -133,29 +69,6 @@
|
||||
#define MOVE_TARGET_FOES_AND_ALLY 0x20
|
||||
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
|
||||
|
||||
// defines for the u8 array gTypeEffectiveness
|
||||
#define TYPE_EFFECT_ATK_TYPE(i)((gTypeEffectiveness[i + 0]))
|
||||
#define TYPE_EFFECT_DEF_TYPE(i)((gTypeEffectiveness[i + 1]))
|
||||
#define TYPE_EFFECT_MULTIPLIER(i)((gTypeEffectiveness[i + 2]))
|
||||
|
||||
// defines for the gTypeEffectiveness multipliers
|
||||
#define TYPE_MUL_NO_EFFECT 0
|
||||
#define TYPE_MUL_NOT_EFFECTIVE 5
|
||||
#define TYPE_MUL_NORMAL 10
|
||||
#define TYPE_MUL_SUPER_EFFECTIVE 20
|
||||
|
||||
// special type table Ids
|
||||
#define TYPE_FORESIGHT 0xFE
|
||||
#define TYPE_ENDTABLE 0xFF
|
||||
|
||||
// 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
|
||||
|
||||
struct TrainerMonNoItemDefaultMoves
|
||||
{
|
||||
u16 iv;
|
||||
@@ -210,13 +123,8 @@ struct Trainer
|
||||
/*0x24*/ const union TrainerMonPtr party;
|
||||
};
|
||||
|
||||
#define PARTY_FLAG_CUSTOM_MOVES 0x1
|
||||
#define PARTY_FLAG_HAS_ITEM 0x2
|
||||
|
||||
extern const struct Trainer gTrainers[];
|
||||
|
||||
#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
|
||||
|
||||
struct ResourceFlags
|
||||
{
|
||||
u32 flags[4];
|
||||
@@ -373,22 +281,6 @@ extern u8 gActiveBattler;
|
||||
extern u8 gBattlerTarget;
|
||||
extern u8 gAbsentBattlerFlags;
|
||||
|
||||
// script's table id to bit
|
||||
#define AI_SCRIPT_CHECK_BAD_MOVE (1 << 0)
|
||||
#define AI_SCRIPT_TRY_TO_FAINT (1 << 1)
|
||||
#define AI_SCRIPT_CHECK_VIABILITY (1 << 2)
|
||||
#define AI_SCRIPT_SETUP_FIRST_TURN (1 << 3)
|
||||
#define AI_SCRIPT_RISKY (1 << 4)
|
||||
#define AI_SCRIPT_PREFER_STRONGEST_MOVE (1 << 5)
|
||||
#define AI_SCRIPT_PREFER_BATON_PASS (1 << 6)
|
||||
#define AI_SCRIPT_DOUBLE_BATTLE (1 << 7)
|
||||
#define AI_SCRIPT_HP_AWARE (1 << 8)
|
||||
#define AI_SCRIPT_UNKNOWN (1 << 9)
|
||||
// 10 - 28 are not used
|
||||
#define AI_SCRIPT_ROAMING (1 << 29)
|
||||
#define AI_SCRIPT_SAFARI (1 << 30)
|
||||
#define AI_SCRIPT_FIRST_BATTLE (1 << 31)
|
||||
|
||||
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
|
||||
|
||||
struct UsedMoves
|
||||
@@ -437,10 +329,6 @@ struct BattleResources
|
||||
|
||||
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
|
||||
@@ -521,22 +409,20 @@ struct BattleStruct
|
||||
u8 expGetterBattlerId;
|
||||
u8 field_90;
|
||||
u8 field_91;
|
||||
u8 AI_monToSwitchIntoId[MAX_BATTLERS_COUNT];
|
||||
u8 AI_monToSwitchIntoId[2];
|
||||
u8 field_94;
|
||||
u8 field_95;
|
||||
u8 field_96;
|
||||
u8 field_97;
|
||||
u8 lastTakenMove[MAX_BATTLERS_COUNT * 2 * 2]; // ask gamefreak why they declared it that way
|
||||
u16 hpOnSwitchout[2];
|
||||
u8 abilityPreventingSwitchout;
|
||||
u8 hpScale;
|
||||
u8 field_AE;
|
||||
u8 field_AF;
|
||||
u8 field_B0;
|
||||
u8 field_B1;
|
||||
u8 field_B2;
|
||||
u8 field_B3;
|
||||
u16 savedBattleTypeFlags;
|
||||
void (*savedCallback)(void);
|
||||
u8 synchronizeMoveEffect;
|
||||
u8 field_B5;
|
||||
u8 field_B6;
|
||||
u8 multiplayerId;
|
||||
u8 overworldWeatherDone;
|
||||
u8 atkCancellerTracker;
|
||||
u16 usedHeldItems[MAX_BATTLERS_COUNT];
|
||||
u8 chosenItem[4]; // why is this an u8?
|
||||
@@ -556,7 +442,12 @@ struct BattleStruct
|
||||
u8 wishPerishSongBattlerId;
|
||||
u8 field_182;
|
||||
u8 field_183;
|
||||
u8 field_184[124]; // currently unknown
|
||||
u8 field_184;
|
||||
u8 field_185;
|
||||
u8 field_186;
|
||||
u8 field_187;
|
||||
struct BattleEnigmaBerry battleEnigmaBerry;
|
||||
u8 field_1A4[0x5C]; // currently unknown
|
||||
}; // size == 0x200 bytes
|
||||
|
||||
extern struct BattleStruct *gBattleStruct;
|
||||
@@ -579,72 +470,6 @@ extern struct BattleStruct *gBattleStruct;
|
||||
gBattleMons[battlerId].type2 = 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 GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8
|
||||
#define GET_STAT_BUFF_VALUE2(n)((n & 0xF0))
|
||||
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
|
||||
@@ -654,32 +479,6 @@ extern struct BattleStruct *gBattleStruct;
|
||||
|
||||
#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
|
||||
|
||||
// used in many battle files, it seems as though Hisashi Sogabe wrote
|
||||
// some sort of macro to replace the use of actually calling memset.
|
||||
// Perhaps it was thought calling memset was much slower?
|
||||
|
||||
// The compiler wont allow us to locally declare ptr in this macro; some
|
||||
// functions that invoke this macro will not match without this egregeous
|
||||
// assumption about the variable names, so in order to avoid this assumption,
|
||||
// we opt to pass the variables themselves, even though it is likely that
|
||||
// Sogabe assumed the variables were named src and dest. Trust me: I tried to
|
||||
// avoid assuming variable names, but the ROM just will not match without the
|
||||
// assumptions. Therefore, these macros are bad practice, but I'm putting them
|
||||
// here anyway.
|
||||
#define MEMSET_ALT(data, c, size, var, dest) \
|
||||
{ \
|
||||
dest = (u8 *)data; \
|
||||
for(var = 0; var < (u32)size; var++) \
|
||||
dest[var] = c; \
|
||||
} \
|
||||
|
||||
#define MEMCPY_ALT(data, dest, size, var, src) \
|
||||
{ \
|
||||
src = (u8 *)data; \
|
||||
for(var = 0; var < (u32)size; var++) \
|
||||
dest[var] = src[var]; \
|
||||
} \
|
||||
|
||||
struct BattleScripting
|
||||
{
|
||||
s32 painSplitHp;
|
||||
@@ -708,17 +507,6 @@ struct BattleScripting
|
||||
u8 field_23;
|
||||
};
|
||||
|
||||
// functions
|
||||
|
||||
// battle_1
|
||||
void LoadBattleTextboxAndBackground(void);
|
||||
void LoadBattleEntryBackground(void);
|
||||
void ApplyPlayerChosenFrameToBattleMenu(void);
|
||||
bool8 LoadChosenBattleElement(u8 caseId);
|
||||
void DrawMainBattleBackground(void);
|
||||
void task00_0800F6FC(u8 taskId);
|
||||
void sub_800F324(void);
|
||||
|
||||
enum
|
||||
{
|
||||
BACK_PIC_BRENDAN,
|
||||
@@ -731,11 +519,6 @@ enum
|
||||
BACK_PIC_STEVEN
|
||||
};
|
||||
|
||||
// rom_80A5C6C
|
||||
u8 GetBattlerSide(u8 bank);
|
||||
u8 GetBattlerPosition(u8 bank);
|
||||
u8 GetBattlerAtPosition(u8 bank);
|
||||
|
||||
struct BattleSpriteInfo
|
||||
{
|
||||
u16 invisible : 1; // 0x1
|
||||
@@ -929,5 +712,8 @@ extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT];
|
||||
extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT];
|
||||
extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattleTerrain;
|
||||
extern struct UnknownPokemonStruct4 gUnknown_2022B58[3];
|
||||
extern u16 *gUnknown_2022BC0;
|
||||
extern u16 gRandomTurnNumber;
|
||||
|
||||
#endif // GUARD_BATTLE_H
|
||||
|
||||
@@ -2,8 +2,9 @@
|
||||
#define GUARD_BATTLE_ANIM_H
|
||||
|
||||
#include "battle.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "data.h"
|
||||
#include "task.h"
|
||||
#include "constants/battle_anim.h"
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -166,8 +167,12 @@ void LaunchStatusAnimation(u8 bank, u8 statusAnimId);
|
||||
u8 ItemIdToBallId(u16 itemId);
|
||||
u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId);
|
||||
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
|
||||
void sub_80EEFC8(u8 *, u8 *, u8 battlerId);
|
||||
void sub_80EF0E0(u8 batterId);
|
||||
|
||||
// battle_anim_mons.c
|
||||
extern const struct MonCoords gCastformFrontSpriteCoords[];
|
||||
|
||||
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType);
|
||||
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType);
|
||||
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
|
||||
@@ -237,9 +242,9 @@ void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
|
||||
u32 sub_8075BE8(u8 battleBackground, u8 attacker, u8 target, u8 attackerPartner, u8 targetPartner, u8 a6, u8 a7);
|
||||
u32 sub_8075CB8(u8 a1, u8 a2, u8 a3, u8 a4);
|
||||
u8 sub_8075D80(u8 a1);
|
||||
void sub_8075D9C(struct Sprite *sprite);
|
||||
void AnimSpriteOnMonPos(struct Sprite *sprite);
|
||||
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
|
||||
void sub_8075E80(struct Sprite *sprite);
|
||||
void AnimThrowProjectile(struct Sprite *sprite);
|
||||
void sub_8075F0C(struct Sprite *sprite);
|
||||
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
|
||||
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
#ifndef GUARD_BATTLE_BG_H
|
||||
#define GUARD_BATTLE_BG_H
|
||||
|
||||
#include "bg.h"
|
||||
|
||||
extern const struct BgTemplate gBattleBgTemplates[];
|
||||
|
||||
void sub_800F34C(void);
|
||||
void DrawBattleEntryBackground(void);
|
||||
void sub_800F6FC(u8 taskId);
|
||||
void LoadBattleMenuWindowGfx(void);
|
||||
void LoadBattleTextboxAndBackground(void);
|
||||
void sub_800F324(void);
|
||||
|
||||
#endif // GUARD_BATTLE_BG_H
|
||||
|
||||
@@ -260,16 +260,18 @@ void SetControllerToPlayerPartner(void);
|
||||
void SetControllerToSafari(void);
|
||||
|
||||
// pokedude controller
|
||||
void SetControllerToPokedude(void);
|
||||
void SetControllerToPokeDude(void);
|
||||
|
||||
// oak controller
|
||||
void SetControllerToOakOrOldman(void);
|
||||
// oak and old man controller
|
||||
void SetControllerToOakOrOldMan(void);
|
||||
bool8 sub_80EB2E0(u8);
|
||||
void sub_80EB2F4(u8);
|
||||
void sub_80E8570(void);
|
||||
void sub_80E85C0(void);
|
||||
void sub_80E8598(void);
|
||||
void sub_80E7988(void);
|
||||
void sub_80EB30C(void);
|
||||
void sub_80EB524(void);
|
||||
|
||||
// link opponent
|
||||
void SetControllerToLinkOpponent(void);
|
||||
|
||||
+42
-47
@@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_BATTLE_MAIN_H
|
||||
#define GUARD_BATTLE_MAIN_H
|
||||
|
||||
#include "constants/abilities.h"
|
||||
|
||||
struct TrainerMoney
|
||||
{
|
||||
u8 classId;
|
||||
@@ -43,50 +45,10 @@ struct UnknownPokemonStruct4
|
||||
#define BOUNCE_MON 0x0
|
||||
#define BOUNCE_HEALTHBOX 0x1
|
||||
|
||||
void CB2_InitBattle(void);
|
||||
void BattleMainCB2(void);
|
||||
void CB2_QuitRecordedBattle(void);
|
||||
void sub_8038528(struct Sprite* sprite);
|
||||
void sub_8038A04(void); // unused
|
||||
void VBlankCB_Battle(void);
|
||||
void sub_801182C(struct Sprite *sprite);
|
||||
void sub_8011A1C(void);
|
||||
u32 sub_80391E0(u8 arrayId, u8 caseId);
|
||||
u32 sub_80397C4(u32 setId, u32 tableId);
|
||||
void oac_poke_opponent(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy_2(struct Sprite *sprite);
|
||||
void sub_8039934(struct Sprite *sprite);
|
||||
void sub_8012098(struct Sprite *sprite);
|
||||
void sub_8012044(struct Sprite *sprite);
|
||||
void sub_8039B58(struct Sprite *sprite);
|
||||
void sub_8039BB4(struct Sprite *sprite);
|
||||
void sub_80105DC(struct Sprite *sprite);
|
||||
void sub_8012110(struct Sprite *sprite);
|
||||
void DoBounceEffect(u8 bank, u8 b, s8 c, s8 d);
|
||||
void EndBounceEffect(u8 bank, bool8 b);
|
||||
void sub_8039E44(struct Sprite *sprite);
|
||||
void sub_8039E60(struct Sprite *sprite);
|
||||
void sub_8039E84(struct Sprite *sprite);
|
||||
void sub_801236C(struct Sprite *sprite);
|
||||
void BeginBattleIntro(void);
|
||||
void SwitchInClearSetData(void);
|
||||
void FaintClearSetData(void);
|
||||
void sub_803B3AC(void); // unused
|
||||
void sub_803B598(void); // unused
|
||||
void BattleTurnPassed(void);
|
||||
u8 IsRunningFromBattleImpossible(void);
|
||||
void sub_8013F6C(u8 battlerId);
|
||||
void SwapTurnOrder(u8 id1, u8 id2);
|
||||
u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves);
|
||||
void RunBattleScriptCommands_PopCallbacksStack(void);
|
||||
void RunBattleScriptCommands(void);
|
||||
bool8 TryRunFromBattle(u8 bank);
|
||||
void sub_800FD9C(void);
|
||||
void sub_80120C4(struct Sprite *);
|
||||
void sub_8012100(struct Sprite *);
|
||||
void nullsub_12(void);
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
|
||||
|
||||
extern const struct SpriteTemplate gUnknown_824EFF0;
|
||||
extern const struct OamData gOamData_824F010;
|
||||
extern const struct OamData gOamData_824F018;
|
||||
extern const u8 gTypeNames[][TYPE_NAME_LENGTH + 1];
|
||||
extern const u8 gStatusConditionString_PoisonJpn[8];
|
||||
extern const u8 gStatusConditionString_SleepJpn[8];
|
||||
extern const u8 gStatusConditionString_ParalysisJpn[8];
|
||||
@@ -94,10 +56,43 @@ extern const u8 gStatusConditionString_BurnJpn[8];
|
||||
extern const u8 gStatusConditionString_IceJpn[8];
|
||||
extern const u8 gStatusConditionString_ConfusionJpn[8];
|
||||
extern const u8 gStatusConditionString_LoveJpn[8];
|
||||
|
||||
extern const u8 * const gStatusConditionStringsTable[7][2];
|
||||
|
||||
extern const u8 *const gStatusConditionStringsTable[7][2];
|
||||
extern const u8 gTypeEffectiveness[336];
|
||||
extern const struct TrainerMoney gTrainerMoneyTable[];
|
||||
extern const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT];
|
||||
extern const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1];
|
||||
|
||||
void CB2_InitBattle(void);
|
||||
void BattleMainCB2(void);
|
||||
void FreeRestoreBattleData(void);
|
||||
void VBlankCB_Battle(void);
|
||||
void nullsub_9(struct Sprite *sprite);
|
||||
void sub_801182C(struct Sprite *sprite);
|
||||
void sub_8011A1C(void);
|
||||
u32 sub_8011C44(u8 arrayId, u8 caseId);
|
||||
void SpriteCB_WildMon(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy2(struct Sprite *sprite);
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
|
||||
void sub_8012044(struct Sprite *sprite);
|
||||
void sub_8012098(struct Sprite *sprite);
|
||||
void sub_80120C4(struct Sprite *sprite);
|
||||
void sub_8012100(struct Sprite *sprite);
|
||||
void sub_8012110(struct Sprite *sprite);
|
||||
void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
|
||||
void EndBounceEffect(u8 battler, u8 which);
|
||||
void sub_8012354(struct Sprite *sprite);
|
||||
void sub_801236C(struct Sprite *sprite);
|
||||
void nullsub_12(void);
|
||||
void BeginBattleIntro(void);
|
||||
void SwitchInClearSetData(void);
|
||||
void FaintClearSetData(void);
|
||||
void BattleTurnPassed(void);
|
||||
u8 IsRunningFromBattleImpossible(void);
|
||||
void sub_8013F6C(u8 battler);
|
||||
void SwapTurnOrder(u8 id1, u8 id2);
|
||||
u8 GetWhoStrikesFirst(u8 battler1, u8 battler2, bool8 ignoreChosenMoves);
|
||||
void RunBattleScriptCommands_PopCallbacksStack(void);
|
||||
void RunBattleScriptCommands(void);
|
||||
bool8 TryRunFromBattle(u8 battler);
|
||||
|
||||
#endif // GUARD_BATTLE_MAIN_H
|
||||
|
||||
@@ -238,4 +238,12 @@ extern const u8* const gStatNamesTable2[];
|
||||
extern const u16 gMissStringIds[];
|
||||
extern const u16 gTrappingMoves[];
|
||||
|
||||
extern const u8 gText_Sleep[];
|
||||
extern const u8 gText_Poison[];
|
||||
extern const u8 gText_Burn[];
|
||||
extern const u8 gText_Paralysis[];
|
||||
extern const u8 gText_Ice[];
|
||||
extern const u8 gText_Confusion[];
|
||||
extern const u8 gText_Love[];
|
||||
|
||||
#endif // GUARD_BATTLE_MESSAGE_H
|
||||
|
||||
@@ -7,13 +7,6 @@
|
||||
#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 ATK48_STAT_NEGATIVE 0x1
|
||||
#define ATK48_STAT_BY_TWO 0x2
|
||||
#define ATK48_BIT_x4 0x4
|
||||
|
||||
@@ -227,5 +227,13 @@ extern const u8 BattleScript_FlushMessageBox[];
|
||||
extern const u8 BattleScript_SpikesOnFaintedBattler[];
|
||||
extern const u8 BattleScript_GhostBallDodge[];
|
||||
extern const u8 gUnknown_81D9A88[];
|
||||
extern const u8 gUnknown_81D91A1[]; // knizz: silph scope unveil
|
||||
extern const u8 gUnknown_81D88D7[];
|
||||
|
||||
extern const u8 *const gBattleScriptsForMoveEffects[];
|
||||
extern const u8 *const gBattlescriptsForBallThrow[];
|
||||
extern const u8 *const gBattlescriptsForRunningByItem[];
|
||||
extern const u8 *const gBattlescriptsForUsingItem[];
|
||||
extern const u8 *const gBattlescriptsForSafariActions[];
|
||||
|
||||
#endif // GUARD_BATTLE_SCRIPTS_H
|
||||
|
||||
+28
-12
@@ -3,20 +3,36 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void BattleSetup_StartScriptedWildBattle(void);
|
||||
u8 BattleSetup_GetTerrainId(void);
|
||||
u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
|
||||
void BattleSetup_StartBattlePikeWildBattle(void);
|
||||
void BattleSetup_StartWildBattle(void);
|
||||
void BattleSetup_StartRoamerBattle(void);
|
||||
|
||||
u8 HasTrainerAlreadyBeenFought(u16);
|
||||
void SetTrainerFlag(u16);
|
||||
void ClearTrainerFlag(u16);
|
||||
void BattleSetup_StartTrainerBattle(void);
|
||||
u8 *BattleSetup_GetScriptAddrAfterBattle(void);
|
||||
u8 *BattleSetup_GetTrainerPostBattleScript(void);
|
||||
void sub_80803FC(void);
|
||||
void ScrSpecial_StartOldManTutorialBattle(void);
|
||||
void BattleSetup_StartScriptedWildBattle(void);
|
||||
void ScrSpecial_StartMarowakBattle(void);
|
||||
void ScrSpecial_StartSouthernIslandBattle(void);
|
||||
void Special_StartLegendaryBattle(void);
|
||||
void Special_StartGroudonKyogreBattle(void);
|
||||
void Special_StartRegiBattle(void);
|
||||
u8 BattleSetup_GetTerrainId(void);
|
||||
u8 sub_8080060(void);
|
||||
const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data);
|
||||
void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript);
|
||||
bool32 GetTrainerFlagFromScriptPointer(const u8 *data);
|
||||
void SetUpTrainerMovement(void);
|
||||
u8 ScrSpecial_GetTrainerBattleMode(void);
|
||||
u16 sub_80803D8(void);
|
||||
u16 ScrSpecial_HasTrainerBeenFought(void);
|
||||
void SetBattledTrainerFlag(void);
|
||||
bool8 HasTrainerBeenFought(u16 trainerId);
|
||||
void SetTrainerFlag(u16 trainerId);
|
||||
void ClearTrainerFlag(u16 trainerId);
|
||||
void BattleSetup_StartTrainerBattle(void);
|
||||
void ScrSpecial_StartTrainerEyeRematch(void);
|
||||
void ScrSpecial_ShowTrainerIntroSpeech(void);
|
||||
const u8 *BattleSetup_GetScriptAddrAfterBattle(void);
|
||||
const u8 *BattleSetup_GetTrainerPostBattleScript(void);
|
||||
void ScrSpecial_ShowTrainerNonBattlingSpeech(void);
|
||||
void PlayTrainerEncounterMusic(void);
|
||||
const u8 *GetTrainerALoseText(void);
|
||||
const u8 *GetTrainerWonSpeech(void);
|
||||
|
||||
#endif // GUARD_BATTLE_SETUP_H
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ void FieldObjectInteractionRemoveBerryTree(void);
|
||||
u8 PlayerHasBerries(void);
|
||||
void ResetBerryTreeSparkleFlags(void);
|
||||
void sub_809C794(void);
|
||||
const struct Berry * sub_809C8A0(u8 berryIdx);
|
||||
const struct Berry * GetBerryInfo(u8 berryIdx);
|
||||
|
||||
extern const struct Berry gBerries[];
|
||||
|
||||
|
||||
@@ -80,4 +80,6 @@
|
||||
#define ABILITY_CACOPHONY 76
|
||||
#define ABILITY_AIR_LOCK 77
|
||||
|
||||
#define ABILITIES_COUNT 78
|
||||
|
||||
#endif // GUARD_CONSTANTS_ABILITIES_H
|
||||
|
||||
+37
-32
@@ -44,38 +44,38 @@
|
||||
#define BIT_FLANK 2
|
||||
|
||||
// Battle Type Flags
|
||||
#define BATTLE_TYPE_DOUBLE 0x0001
|
||||
#define BATTLE_TYPE_LINK 0x0002
|
||||
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
|
||||
#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_OLDMAN_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_GHOST 0x8000
|
||||
#define BATTLE_TYPE_POKEDUDE 0x10000
|
||||
#define BATTLE_TYPE_PALACE 0x20000
|
||||
#define BATTLE_TYPE_ARENA 0x40000
|
||||
#define BATTLE_TYPE_TRAINER_TOWER 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_TRAINER_HILL 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_DOUBLE 0x0001
|
||||
#define BATTLE_TYPE_LINK 0x0002
|
||||
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
|
||||
#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_OLD_MAN_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_GHOST 0x8000
|
||||
#define BATTLE_TYPE_POKEDUDE 0x10000
|
||||
#define BATTLE_TYPE_PALACE 0x20000
|
||||
#define BATTLE_TYPE_ARENA 0x40000
|
||||
#define BATTLE_TYPE_TRAINER_TOWER 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_TRAINER_HILL 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)
|
||||
|
||||
@@ -293,4 +293,9 @@
|
||||
#define BATTLE_TERRAIN_BUILDING 8
|
||||
#define BATTLE_TERRAIN_PLAIN 9
|
||||
|
||||
// Return value for IsRunningFromBattleImpossible.
|
||||
#define BATTLE_RUN_SUCCESS 0
|
||||
#define BATTLE_RUN_FORBIDDEN 1
|
||||
#define BATTLE_RUN_FAILURE 2
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_H
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
#ifndef GUARD_CONSTANTS_BATTLE_SETUP_H
|
||||
#define GUARD_CONSTANTS_BATTLE_SETUP_H
|
||||
|
||||
#define TRAINER_BATTLE_SINGLE 0
|
||||
#define TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC 1
|
||||
#define TRAINER_BATTLE_CONTINUE_SCRIPT 2
|
||||
#define TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT 3
|
||||
#define TRAINER_BATTLE_DOUBLE 4
|
||||
#define TRAINER_BATTLE_REMATCH 5
|
||||
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE 6
|
||||
#define TRAINER_BATTLE_REMATCH_DOUBLE 7
|
||||
#define TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC 8
|
||||
#define TRAINER_BATTLE_TUTORIAL 9
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
|
||||
@@ -0,0 +1,15 @@
|
||||
#ifndef GUARD_CONSTANTS_MAP_TYPES_H
|
||||
#define GUARD_CONSTANTS_MAP_TYPES_H
|
||||
|
||||
#define MAP_TYPE_0 0
|
||||
#define MAP_TYPE_TOWN 1
|
||||
#define MAP_TYPE_CITY 2
|
||||
#define MAP_TYPE_ROUTE 3
|
||||
#define MAP_TYPE_UNDERGROUND 4
|
||||
#define MAP_TYPE_UNDERWATER 5
|
||||
#define MAP_TYPE_OCEAN_ROUTE 6
|
||||
#define MAP_TYPE_7 7
|
||||
#define MAP_TYPE_INDOOR 8
|
||||
#define MAP_TYPE_SECRET_BASE 9
|
||||
|
||||
#endif // GUARD_CONSTANTS_MAP_TYPES_H
|
||||
@@ -165,6 +165,8 @@
|
||||
#define TRAINER_PIC_LADY 146
|
||||
#define TRAINER_PIC_PAINTER 147
|
||||
|
||||
#define TRAINER_SECRET_BASE 1024
|
||||
|
||||
#define F_TRAINER_FEMALE (1 << 7)
|
||||
|
||||
#define TRAINER_PIC_AQUA_LEADER_ARCHIE 0
|
||||
|
||||
+1
-2
@@ -5,6 +5,7 @@
|
||||
#include "constants/species.h"
|
||||
|
||||
#define SPECIES_SHINY_TAG 500
|
||||
#define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F))
|
||||
|
||||
struct MonCoords
|
||||
{
|
||||
@@ -16,8 +17,6 @@ struct MonCoords
|
||||
|
||||
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
|
||||
extern const u8 gMoveNames[][13];
|
||||
extern const u8 gAbilityNames[][13];
|
||||
extern const u8 gTypeNames[][7];
|
||||
extern const u16 gUnknown_8251CB8[];
|
||||
extern const u16 gUnknown_8251FEE[];
|
||||
extern const u16 gUnknown_8252324[];
|
||||
|
||||
@@ -1155,6 +1155,15 @@ extern const u8 EventScript_SafariOutOfBalls[];
|
||||
|
||||
extern const u8 EventScript_ItemfinderDigUpUnderfootItem[];
|
||||
|
||||
// battle_setup
|
||||
extern const u8 EventScript_DoTrainerBattle[];
|
||||
extern const u8 EventScript_TryDoDoubleTrainerBattle[];
|
||||
extern const u8 EventScript_TryDoNormalTrainerBattle[];
|
||||
extern const u8 EventScript_TryDoDoubleRematchBattle[];
|
||||
extern const u8 EventScript_TryDoRematchBattle[];
|
||||
extern const u8 gUnknown_81A4EB4[];
|
||||
extern const u8 EventScript_1C555B[];
|
||||
|
||||
// new_game
|
||||
extern const u8 EventScript_ResetAllMapFlags[];
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
|
||||
void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
|
||||
void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID);
|
||||
void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8, u8 partyID);
|
||||
void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
|
||||
|
||||
extern void (*gCB2_AfterEvolution)(void);
|
||||
|
||||
@@ -5,4 +5,7 @@
|
||||
|
||||
extern u32 gUnknown_3005078;
|
||||
|
||||
void RestartWildEncounterImmunitySteps(void);
|
||||
void ClearPoisonStepCounter(void);
|
||||
|
||||
#endif //GUARD_FIELD_CONTROL_AVATAR_H
|
||||
|
||||
@@ -85,7 +85,7 @@ void sub_8063E28(struct MapObject *, struct Sprite *);
|
||||
void FieldObjectSetHeldMovement(struct MapObject *, u8);
|
||||
void npc_coords_shift_still(struct MapObject *);
|
||||
void sub_805FE7C(struct MapObject *, u8);
|
||||
void npc_set_running_behaviour_etc(struct MapObject *, u8);
|
||||
void SetTrainerMovementType(struct MapObject *, u8);
|
||||
u8 sub_80634F0(u8 direction);
|
||||
u8 sub_8063500(u8 a0);
|
||||
void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1);
|
||||
@@ -94,6 +94,7 @@ void npc_paltag_set_load(u8 mode);
|
||||
bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject);
|
||||
u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject);
|
||||
u8 sub_8063F84(u8 direction);
|
||||
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
||||
void CameraObjectSetFollowedObjectId(u8 spriteId);
|
||||
|
||||
// Exported data declarations
|
||||
|
||||
@@ -13,8 +13,8 @@ u8 player_get_direction_upper_nybble(void);
|
||||
u8 player_get_x22(void);
|
||||
|
||||
void sub_808D074(u8);
|
||||
void sub_805C270();
|
||||
void sub_805C780();
|
||||
void sub_805C270(void);
|
||||
void sub_805C780(void);
|
||||
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
|
||||
u8 sub_805C808(u8);
|
||||
void SetPlayerAvatarStateMask(u8 mask);
|
||||
|
||||
@@ -13,35 +13,6 @@ enum
|
||||
CONNECTION_EMERGE
|
||||
};
|
||||
|
||||
// map types
|
||||
enum
|
||||
{
|
||||
MAP_TYPE_0,
|
||||
MAP_TYPE_TOWN,
|
||||
MAP_TYPE_CITY,
|
||||
MAP_TYPE_ROUTE,
|
||||
MAP_TYPE_UNDERGROUND,
|
||||
MAP_TYPE_UNDERWATER,
|
||||
MAP_TYPE_6,
|
||||
MAP_TYPE_7,
|
||||
MAP_TYPE_INDOOR,
|
||||
MAP_TYPE_SECRET_BASE
|
||||
};
|
||||
|
||||
// map battle scenes
|
||||
enum
|
||||
{
|
||||
MAP_BATTLE_SCENE_NORMAL, // 0
|
||||
MAP_BATTLE_SCENE_GYM, // 1
|
||||
MAP_BATTLE_SCENE_MAGMA, // 2
|
||||
MAP_BATTLE_SCENE_AQUA, // 3
|
||||
MAP_BATTLE_SCENE_SIDNEY, // 4
|
||||
MAP_BATTLE_SCENE_PHOEBE, // 5
|
||||
MAP_BATTLE_SCENE_GLACIA, // 6
|
||||
MAP_BATTLE_SCENE_DRAKE, // 7
|
||||
MAP_BATTLE_SCENE_BATTLE_TOWER, // 8
|
||||
};
|
||||
|
||||
typedef void (*TilesetCB)(void);
|
||||
|
||||
struct Tileset
|
||||
@@ -242,7 +213,7 @@ struct MapObject
|
||||
/*0x0C*/ struct Coords16 coords1;
|
||||
/*0x10*/ struct Coords16 coords2;
|
||||
/*0x14*/ struct Coords16 coords3;
|
||||
/*0x18*/ u8 mapobj_unk_18:4; //current direction?
|
||||
/*0x18*/ u8 facingDirection:4; //current direction?
|
||||
/*0x18*/ u8 placeholder18:4;
|
||||
/*0x19*/ union MapObjectRange range;
|
||||
/*0x1A*/ u8 mapobj_unk_1A;
|
||||
|
||||
@@ -32,6 +32,13 @@
|
||||
// GF's lingo
|
||||
#define NELEMS ARRAY_COUNT
|
||||
|
||||
#define SWAP(a, b, temp) \
|
||||
{ \
|
||||
temp = a; \
|
||||
a = b; \
|
||||
b = temp; \
|
||||
}
|
||||
|
||||
// useful math macros
|
||||
|
||||
// Converts a number to Q8.8 fixed-point format
|
||||
|
||||
@@ -37,7 +37,6 @@ void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
|
||||
bool8 IsBagPocketNonEmpty(u8 pocket);
|
||||
bool8 CheckBagHasItem(u16 itemId, u16 count);
|
||||
bool8 CheckBagHasSpace(u16 itemId, u16 count);
|
||||
bool8 AddBagItem(u16 itemId, u16 count);
|
||||
bool8 RemoveBagItem(u16 itemId, u16 count);
|
||||
u8 GetPocketByItemId(u16 itemId);
|
||||
void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
|
||||
|
||||
@@ -36,6 +36,7 @@ void ItemMenu_SetExitCallback(void (*)(void));
|
||||
void DisplayItemMessageInBag(u8 taskId, u8 bgId, const u8 * string, TaskFunc followUpFunc);
|
||||
void sub_810A1F8(u8 taskId);
|
||||
void sub_8107ECC(void);
|
||||
void sub_810AF74(void);
|
||||
void sub_8108DC8(u8 pocketId);
|
||||
void sub_81089F4(u8 pocketId);
|
||||
void sub_8107DB4(u8 menuType, u8 pocket, MainCallback callback);
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ bool32 MG_PrintTextOnWindow1AndWaitButton(u8 * cmdPtr, const u8 * src);
|
||||
void sub_80FA190(void);
|
||||
void MG_DrawCheckerboardPattern(void);
|
||||
void task_add_05_task_del_08FA224_when_no_RfuFunc(void);
|
||||
bool8 IsRfuTaskFinished(void);
|
||||
bool8 IsLinkRfuTaskFinished(void);
|
||||
void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u8);
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u8);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void player_bitmagic(void);
|
||||
void FreezeEventObjects(void);
|
||||
void FreezeMapObject(struct MapObject *);
|
||||
void FreezeMapObjectsExceptOne(u8 mapObjectId);
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ bool8 MetatileBehavior_IsJumpNorth(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsJumpSouth(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMB21OrSand(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMB21OrWaterfallBottom(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSandOrDeepSand(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsReflective(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIce(u8 metatileBehavior);
|
||||
@@ -53,15 +53,15 @@ bool8 MetatileBehavior_IsPC(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPondWaterOrPuddle(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPuddle(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_3(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_5(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_6(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_7(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsBridge(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedIsMB_01(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedIsTallGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMB0B(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMB0C(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIndoorEncounter(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMountain(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsDeepOrSemiDeepWater(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMB19(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWaterfallBottom(u8 metatileBehavior);
|
||||
|
||||
+2
-1
@@ -62,7 +62,7 @@ void sub_8084EBC(s16, s16);
|
||||
void player_avatar_init_params_reset(void);
|
||||
|
||||
void Overworld_SetFlashLevel(s32 a1);
|
||||
//u8 Overworld_GetFlashLevel(void);
|
||||
u8 Overworld_GetFlashLevel(void);
|
||||
void sub_8085524(u16);
|
||||
|
||||
void Overworld_SetSavedMusic(u16);
|
||||
@@ -141,5 +141,6 @@ bool32 Overworld_DoScrollSceneForCredits(u8 *, const struct CreditsOverworldCmd
|
||||
bool32 sub_8058318(void);
|
||||
|
||||
void CB2_ReturnToStartMenu(void);
|
||||
void CB2_WhiteOut(void);
|
||||
|
||||
#endif //GUARD_OVERWORLD_H
|
||||
|
||||
@@ -84,5 +84,7 @@ bool8 IsMultiBattle(void);
|
||||
void sub_8126EDC(void);
|
||||
void PartyMenuInit_FromPlayerPc(void);
|
||||
void CB2_PartyMenuFromStartMenu(void);
|
||||
void sub_8128198(void);
|
||||
void sub_8127FF4(u8 slot, u8 slot2);
|
||||
|
||||
#endif // GUARD_PARTY_MENU_H
|
||||
|
||||
+2
-31
@@ -169,35 +169,6 @@ enum
|
||||
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;
|
||||
@@ -629,10 +600,10 @@ u8 GetTrainerEncounterMusicId(u16 trainer);
|
||||
void AdjustFriendship(struct Pokemon *mon, u8 event);
|
||||
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
|
||||
u16 GetMonEVCount(struct Pokemon *mon);
|
||||
void sub_8043A68(void);
|
||||
void RandomlyGivePartyPokerus(struct Pokemon *party);
|
||||
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
|
||||
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
|
||||
void sub_8043B40(void);
|
||||
void PartySpreadPokerus(struct Pokemon *party);
|
||||
bool8 TryIncrementMonLevel(struct Pokemon *mon);
|
||||
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm);
|
||||
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define GUARD_QUEST_LOG_H
|
||||
|
||||
#include "global.h"
|
||||
#include "quest_log_battle.h"
|
||||
|
||||
struct UnkStruct_3005E90
|
||||
{
|
||||
@@ -14,6 +15,7 @@ struct UnkStruct_3005E90
|
||||
u8 unk_2;
|
||||
};
|
||||
|
||||
extern u8 gUnknown_203ADFA;
|
||||
extern u8 gUnknown_3005E88;
|
||||
extern u16 sNumQuestLogs;
|
||||
extern struct UnkStruct_3005E90 gUnknown_3005E90;
|
||||
@@ -40,6 +42,8 @@ void sub_8112450(void);
|
||||
void sub_8112364(void);
|
||||
u8 sub_8112CAC(void);
|
||||
void sub_81138F8(void);
|
||||
void sub_811231C(void);
|
||||
void sub_81139BC(void);
|
||||
void *QuestLogGetFlagOrVarPtr(bool8 isFlag, u16 idx);
|
||||
void QuestLogSetFlagOrVar(bool8 isFlag, u16 idx, u16 value);
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
#ifndef GUARD_QUEST_LOG_BATTLE_H
|
||||
#define GUARD_QUEST_LOG_BATTLE_H
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void sub_812BFDC(void);
|
||||
void sub_812C224(void);
|
||||
|
||||
#endif // GUARD_QUEST_LOG_BATTLE_H
|
||||
@@ -16,4 +16,6 @@ void ExitSafariMode(void);
|
||||
bool8 SafariZoneTakeStep(void);
|
||||
void SafariZoneRetirePrompt(void);
|
||||
|
||||
void CB2_EndSafariBattle(void);
|
||||
|
||||
#endif // GUARD_SAFARI_ZONE_H
|
||||
|
||||
@@ -4,5 +4,6 @@
|
||||
bool8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unk1, u32 unk2, u8 unk3);
|
||||
bool8 ScriptGiveEgg(u16 species);
|
||||
void ScriptSetMonMoveSlot(u8 partyIdx, u16 move, u8 slot);
|
||||
void sp000_heal_pokemon(void);
|
||||
|
||||
#endif //GUARD_SCRIPT_POKEMON_UTIL_80A0058_H
|
||||
|
||||
@@ -231,6 +231,18 @@ extern const u8 gText_WhatWillPkmnDo[];
|
||||
// battle_script_commands
|
||||
extern const u8 gText_BattleYesNoChoice[];
|
||||
|
||||
// battle_controller_oak_old_man
|
||||
extern const u8 gUnknown_83FDAE2[];
|
||||
extern const u8 gUnknown_83FDB92[];
|
||||
extern const u8 gUnknown_83FDBEF[];
|
||||
extern const u8 gUnknown_83FDC58[];
|
||||
extern const u8 gUnknown_83FDC95[];
|
||||
extern const u8 gUnknown_83FDD23[];
|
||||
extern const u8 gUnknown_83FDD64[];
|
||||
extern const u8 gUnknown_83FDDEB[];
|
||||
extern const u8 gUnknown_83FDCD2[];
|
||||
extern const u8 gUnknown_83FE6FA[];
|
||||
|
||||
// credits
|
||||
extern const u8 gString_Dummy[];
|
||||
extern const u8 gString_PokemonFireRed_Staff[]; // FR
|
||||
|
||||
+2
-1
@@ -6,9 +6,10 @@
|
||||
void Task_VsSeeker_0(u8 taskId);
|
||||
void sub_810CB90(void);
|
||||
void sub_810CDE8(void);
|
||||
int sub_810CE64(u16 a0);
|
||||
int GetRematchTrainerId(u16 a0);
|
||||
bool8 sub_810CF04(u8 a0);
|
||||
u8 sub_810CF54();
|
||||
void sub_810D0D0(void);
|
||||
void sub_810CB90(void);
|
||||
|
||||
#endif //GUARD_VS_SEEKER_H
|
||||
|
||||
Reference in New Issue
Block a user