decompile main

This commit is contained in:
sceptillion
2017-12-17 13:22:46 -08:00
parent 3ddda066d9
commit b849ce93db
305 changed files with 18946 additions and 3564 deletions
+1008
View File
File diff suppressed because it is too large Load Diff
+55
View File
@@ -0,0 +1,55 @@
#ifndef GUARD_BATTLE_2_H
#define GUARD_BATTLE_2_H
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 nullsub_17(void);
void sub_8038B74(struct Sprite *sprite);
void sub_8038D64(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_8039AD8(struct Sprite *sprite);
void sub_8039B2C(struct Sprite *sprite);
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 sub_8039E44(struct Sprite *sprite);
void sub_8039E60(struct Sprite *sprite);
void sub_8039E84(struct Sprite *sprite);
void sub_8039E9C(struct Sprite *sprite);
void nullsub_20(void);
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_803BDA0(u8 bank);
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);
extern const u8 gStatusConditionString_PoisonJpn[8];
extern const u8 gStatusConditionString_SleepJpn[8];
extern const u8 gStatusConditionString_ParalysisJpn[8];
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];
#endif // GUARD_BATTLE_2_H
+13
View File
@@ -0,0 +1,13 @@
#ifndef GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves);
void BattleAI_SetupAIData(u8 defaultScoreMoves);
u8 BattleAI_ChooseMoveOrAction(void);
void ClearBankMoveHistory(u8 bank);
void RecordAbilityBattle(u8 bank, u8 abilityId);
void ClearBankAbilityHistory(u8 bank);
void RecordItemEffectBattle(u8 bank, u8 itemEffect);
void ClearBankItemEffectHistory(u8 bank);
#endif // GUARD_BATTLE_AI_SCRIPT_COMMANDS_H
+17
View File
@@ -0,0 +1,17 @@
#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H
#define GUARD_BATTLE_AI_SWITCH_ITEMS_H
enum
{
AI_ITEM_FULL_RESTORE = 1,
AI_ITEM_HEAL_HP,
AI_ITEM_CURE_CONDITION,
AI_ITEM_X_STAT,
AI_ITEM_GUARD_SPECS,
AI_ITEM_NOT_RECOGNIZABLE
};
void AI_TrySwitchOrUseItem(void);
u8 GetMostSuitableMonToSwitchInto(void);
#endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H
+118
View File
@@ -0,0 +1,118 @@
#ifndef GUARD_BATTLE_ANIM_H
#define GUARD_BATTLE_ANIM_H
enum
{
ANIM_BANK_ATTACKER,
ANIM_BANK_TARGET,
ANIM_BANK_ATK_PARTNER,
ANIM_BANK_DEF_PARTNER,
};
enum
{
BG_ANIM_SCREEN_SIZE,
BG_ANIM_AREA_OVERFLOW_MODE,
BG_ANIM2,
BG_ANIM3,
BG_ANIM_PRIORITY,
BG_ANIM_5,
BG_ANIM_6
};
struct UnknownAnimStruct2
{
void *unk0;
u16 *unk4;
u8 unk8;
u8 unk9;
u16 unkA;
u16 unkC;
};
struct BattleAnimBackground
{
void *image;
void *palette;
void *tilemap;
};
#define ANIM_ARGS_COUNT 8
#define PAN_SIDE_PLAYER -64
#define PAN_SIDE_OPPONENT 63
extern void (*gAnimScriptCallback)(void);
extern bool8 gAnimScriptActive;
extern u8 gAnimVisualTaskCount;
extern u8 gAnimSoundTaskCount;
extern struct DisableStruct *gAnimDisableStructPtr;
extern u32 gAnimMoveDmg;
extern u16 gAnimMovePower;
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 gUnknown_02038440;
void ClearBattleAnimationVars(void);
void DoMoveAnim(u16 move);
void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMoveAnim);
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 IsContest(void);
s8 BattleAnimAdjustPanning(s8 pan);
s8 BattleAnimAdjustPanning2(s8 pan);
s16 sub_80A52EC(s16 a);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
// battle_anim_80FE840.s
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
void sub_8118FBC(u8 arg0, u8 arg1, u8 arg2, u8 bankIdentity, u8 arg4, void *arg5, u16 *arg6, u16 arg7);
void HandleIntroSlide(u8 terrainId);
// battle_anim_80A5C6C.s
void sub_80A6EEC(struct Sprite *sprite);
void sub_80A68D4(struct Sprite *sprite);
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);
bool8 AnimateBallThrow(struct Sprite *sprite);
enum
{
BANK_X_POS,
BANK_Y_POS,
};
u8 GetBankPosition(u8 bank, u8 attributeId);
bool8 IsBankSpritePresent(u8 bank);
void sub_80A6C68(u8 arg0);
u8 GetAnimBankSpriteId(u8 wantedBank);
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);
// battle_anim_80A9C70.s
void LaunchStatusAnimation(u8 bank, 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);
#endif // GUARD_BATTLE_ANIM_H
+278
View File
@@ -0,0 +1,278 @@
#ifndef GUARD_BATTLE_CONTROLLERS_H
#define GUARD_BATTLE_CONTROLLERS_H
enum
{
REQUEST_ALL_BATTLE,
REQUEST_SPECIES_BATTLE,
REQUEST_HELDITEM_BATTLE,
REQUEST_MOVES_PP_BATTLE,
REQUEST_MOVE1_BATTLE,
REQUEST_MOVE2_BATTLE,
REQUEST_MOVE3_BATTLE,
REQUEST_MOVE4_BATTLE,
REQUEST_PP_DATA_BATTLE,
REQUEST_PPMOVE1_BATTLE,
REQUEST_PPMOVE2_BATTLE,
REQUEST_PPMOVE3_BATTLE,
REQUEST_PPMOVE4_BATTLE,
REQUEST_UNUSED_13_BATTLE,
REQUEST_UNUSED_14_BATTLE,
REQUEST_UNUSED_15_BATTLE,
REQUEST_UNUSED_16_BATTLE,
REQUEST_OTID_BATTLE,
REQUEST_EXP_BATTLE,
REQUEST_HP_EV_BATTLE,
REQUEST_ATK_EV_BATTLE,
REQUEST_DEF_EV_BATTLE,
REQUEST_SPEED_EV_BATTLE,
REQUEST_SPATK_EV_BATTLE,
REQUEST_SPDEF_EV_BATTLE,
REQUEST_FRIENDSHIP_BATTLE,
REQUEST_POKERUS_BATTLE,
REQUEST_MET_LOCATION_BATTLE,
REQUEST_MET_LEVEL_BATTLE,
REQUEST_MET_GAME_BATTLE,
REQUEST_POKEBALL_BATTLE,
REQUEST_ALL_IVS_BATTLE,
REQUEST_HP_IV_BATTLE,
REQUEST_ATK_IV_BATTLE,
REQUEST_DEF_IV_BATTLE,
REQUEST_SPEED_IV_BATTLE,
REQUEST_SPATK_IV_BATTLE,
REQUEST_SPDEF_IV_BATTLE,
REQUEST_PERSONALITY_BATTLE,
REQUEST_CHECKSUM_BATTLE,
REQUEST_STATUS_BATTLE,
REQUEST_LEVEL_BATTLE,
REQUEST_HP_BATTLE,
REQUEST_MAX_HP_BATTLE,
REQUEST_ATK_BATTLE,
REQUEST_DEF_BATTLE,
REQUEST_SPEED_BATTLE,
REQUEST_SPATK_BATTLE,
REQUEST_SPDEF_BATTLE,
REQUEST_COOL_BATTLE,
REQUEST_BEAUTY_BATTLE,
REQUEST_CUTE_BATTLE,
REQUEST_SMART_BATTLE,
REQUEST_TOUGH_BATTLE,
REQUEST_SHEEN_BATTLE,
REQUEST_COOL_RIBBON_BATTLE,
REQUEST_BEAUTY_RIBBON_BATTLE,
REQUEST_CUTE_RIBBON_BATTLE,
REQUEST_SMART_RIBBON_BATTLE,
REQUEST_TOUGH_RIBBON_BATTLE,
};
#define RESET_ACTION_MOVE_SELECTION 0
#define RESET_ACTION_SELECTION 1
#define RESET_MOVE_SELECTION 2
#define BALL_NO_SHAKES 0
#define BALL_1_SHAKE 1
#define BALL_2_SHAKES 2
#define BALL_3_SHAKES_FAIL 3
#define BALL_3_SHAKES_SUCCESS 4
#define BALL_TRAINER_BLOCK 5
#define RET_VALUE_LEVELLED_UP 11
#define INSTANT_HP_BAR_DROP 32767
struct UnusedControllerStruct
{
u8 field_0 : 7;
u8 flag_x80 : 1;
};
struct HpAndStatus
{
u16 hp;
u32 status;
};
struct MovePpInfo
{
u16 moves[4];
u8 pp[4];
u8 ppBonuses;
};
struct ChooseMoveStruct
{
u16 moves[4];
u8 currentPp[4];
u8 maxPp[4];
u16 species;
u8 monType1;
u8 monType2;
};
enum
{
CONTROLLER_GETMONDATA,
CONTROLLER_GETRAWMONDATA,
CONTROLLER_SETMONDATA,
CONTROLLER_SETRAWMONDATA,
CONTROLLER_LOADMONSPRITE,
CONTROLLER_SWITCHINANIM,
CONTROLLER_RETURNMONTOBALL,
CONTROLLER_DRAWTRAINERPIC,
CONTROLLER_TRAINERSLIDE,
CONTROLLER_TRAINERSLIDEBACK,
CONTROLLER_FAINTANIMATION,
CONTROLLER_PALETTEFADE,
CONTROLLER_SUCCESSBALLTHROWANIM,
CONTROLLER_BALLTHROWANIM,
CONTROLLER_PAUSE,
CONTROLLER_MOVEANIMATION,
CONTROLLER_PRINTSTRING,
CONTROLLER_PRINTSTRINGPLAYERONLY,
CONTROLLER_CHOOSEACTION,
CONTROLLER_UNKNOWNYESNOBOX,
CONTROLLER_CHOOSEMOVE,
CONTROLLER_OPENBAG,
CONTROLLER_CHOOSEPOKEMON,
CONTROLLER_23,
CONTROLLER_HEALTHBARUPDATE,
CONTROLLER_EXPUPDATE,
CONTROLLER_STATUSICONUPDATE,
CONTROLLER_STATUSANIMATION,
CONTROLLER_STATUSXOR,
CONTROLLER_DATATRANSFER,
CONTROLLER_DMA3TRANSFER,
CONTROLLER_31,
CONTROLLER_32,
CONTROLLER_TWORETURNVALUES,
CONTROLLER_CHOSENMONRETURNVALUE,
CONTROLLER_ONERETURNVALUE,
CONTROLLER_ONERETURNVALUE_DUPLICATE,
CONTROLLER_37,
CONTROLLER_38,
CONTROLLER_39,
CONTROLLER_40,
CONTROLLER_HITANIMATION,
CONTROLLER_42,
CONTROLLER_EFFECTIVENESSSOUND,
CONTROLLER_PLAYFANFAREORBGM,
CONTROLLER_FAINTINGCRY,
CONTROLLER_INTROSLIDE,
CONTROLLER_INTROTRAINERBALLTHROW,
CONTROLLER_DRAWPARTYSTATUSSUMMARY,
CONTROLLER_49,
CONTROLLER_50,
CONTROLLER_SPRITEINVISIBILITY,
CONTROLLER_BATTLEANIMATION,
CONTROLLER_LINKSTANDBYMSG,
CONTROLLER_RESETACTIONMOVESELECTION,
CONTROLLER_55,
/*new controllers should go here*/
CONTROLLER_TERMINATOR_NOP,
CONTROLLER_CMDS_COUNT
};
// general functions
void HandleLinkBattleSetup(void);
void SetUpBattleVarsAndBirchZigzagoon(void);
void sub_8032768(void);
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);
// player controller
void SetControllerToPlayer(void);
void nullsub_21(void);
void PlayerHandleGetRawMonData(void);
void sub_80587B0(void);
void sub_805CC00(struct Sprite *sprite);
void SetCB2ToReshowScreenAfterMenu(void);
void SetCB2ToReshowScreenAfterMenu2(void);
void c3_0802FDF4(u8 taskId);
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
void ActionSelectionDestroyCursorAt(u8 cursorPos);
void InitMoveSelectionsVarsAndStrings(void);
// recorded player controller
void SetControllerToRecordedPlayer(void);
// opponent controller
void SetControllerToOpponent(void);
// player partner controller
void SetControllerToPlayerPartner(void);
// safari controller
void SetControllerToSafari(void);
// wally controller
void SetControllerToWally(void);
// recorded opponent controller
void SetControllerToRecordedOpponent(void);
// link opponent
void SetControllerToLinkOpponent(void);
// link partner
void SetControllerToLinkPartner(void);
#endif // GUARD_BATTLE_CONTROLLERS_H
+13
View File
@@ -0,0 +1,13 @@
#ifndef GUARD_BATTLE_DOME_CARDS_H
#define GUARD_BATTLE_DOME_CARDS_H
bool16 dp13_810BB8C(void);
u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D7D8(u16 species, u32 otId, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D820(u16 spriteId);
u16 sub_818D8AC(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 sub_818D8F0(u16 spriteId);
u16 sub_818D938(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u8 sub_818D97C(u8 a0, u8 a1);
#endif //GUARD_BATTLE_DOME_CARDS_H
+50
View File
@@ -0,0 +1,50 @@
#ifndef GUARD_BATTLE_GFX_SFX_UTIL
#define GUARD_BATTLE_GFX_SFX_UTIL
void AllocateBattleSpritesData(void);
void FreeBattleSpritesData(void);
u16 ChooseMoveAndTargetInBattlePalace(void);
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 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn);
bool8 mplay_80342A4(u8 bank);
void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank);
void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank);
void nullsub_23(void);
void nullsub_24(u16 species);
void DecompressTrainerFrontPic(u16 frontPicId, u8 bank);
void DecompressTrainerBackPic(u16 backPicId, u8 bank);
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);
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 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 sub_805EF14(void);
void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute);
void AllocateMonSpritesGfx(void);
void FreeMonSpritesGfx(void);
bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon);
#endif // GUARD_BATTLE_GFX_SFX_UTIL
+75
View File
@@ -0,0 +1,75 @@
#ifndef GUARD_BATTLE_INTERFACE_H
#define GUARD_BATTLE_INTERFACE_H
#include "battle_controllers.h"
enum
{
HP_CURRENT,
HP_MAX
};
enum
{
HEALTH_BAR,
EXP_BAR
};
enum
{
HP_BAR_EMPTY,
HP_BAR_RED,
HP_BAR_YELLOW,
HP_BAR_GREEN,
HP_BAR_FULL,
};
#define TAG_HEALTHBOX_PLAYER1_TILE 0xD6FF
#define TAG_HEALTHBOX_PLAYER2_TILE 0xD700
#define TAG_HEALTHBOX_OPPONENT1_TILE 0xD701
#define TAG_HEALTHBOX_OPPONENT2_TILE 0xD702
#define TAG_HEALTHBOX_SAFARI_TILE 0xD70B
#define TAG_STATUS_SUMMARY_BAR_TILE 0xD70C
#define TAG_STATUS_SUMMARY_BALLS_TILE 0xD714
#define TAG_HEALTHBOX_PAL 0xD6FF
#define TAG_STATUS_SUMMARY_BAR_PAL 0xD710
#define TAG_STATUS_SUMMARY_BALLS_PAL 0xD712
enum
{
HEALTHBOX_ALL,
HEALTHBOX_CURRENT_HP,
HEALTHBOX_MAX_HP,
HEALTHBOX_LEVEL,
HEALTHBOX_NICK,
HEALTHBOX_HEALTH_BAR,
HEALTHBOX_EXP_BAR,
HEALTHBOX_UNUSED_7,
HEALTHBOX_UNUSED_8,
HEALTHBOX_STATUS_ICON,
HEALTHBOX_SAFARI_ALL_TEXT,
HEALTHBOX_SAFARI_BALLS_TEXT
};
u8 CreateBankHealthboxSprites(u8 bank);
u8 CreateSafariPlayerHealthboxSprites(void);
void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, s32 receivedValue);
void SetHealthboxSpriteInvisible(u8 healthboxSpriteId);
void SetHealthboxSpriteVisible(u8 healthboxSpriteId);
void DestoryHealthboxSprite(u8 healthboxSpriteId);
void DummyBattleInterfaceFunc(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly);
void UpdateOamPriorityInAllHealthboxes(u8 priority);
void SetBankHealthboxSpritePos(u8 bank);
void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent);
void SwapHpBarsWithHpText(void);
u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 arg2, bool8 isBattleStart);
void sub_8073C30(u8 taskId);
void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId);
s32 sub_8074AA0(u8 bank, u8 healthboxSpriteId, u8 whichBar, u8 arg3);
u8 GetScaledHPFraction(s16 hp, s16 maxhp, u8 scale);
u8 GetHPBarLevel(s16 hp, s16 maxhp);
#endif // GUARD_BATTLE_INTERFACE_H
+235
View File
@@ -0,0 +1,235 @@
#ifndef GUARD_BATTLE_MESSAGE_H
#define GUARD_BATTLE_MESSAGE_H
// for 0xFD
#define B_TXT_BUFF1 0x0
#define B_TXT_BUFF2 0x1
#define B_TXT_COPY_VAR_1 0x2
#define B_TXT_COPY_VAR_2 0x3
#define B_TXT_COPY_VAR_3 0x4
#define B_TXT_PLAYER_MON1_NAME 0x5
#define B_TXT_OPPONENT_MON1_NAME 0x6
#define B_TXT_PLAYER_MON2_NAME 0x7
#define B_TXT_OPPONENT_MON2_NAME 0x8
#define B_TXT_LINK_PLAYER_MON1_NAME 0x9
#define B_TXT_LINK_OPPONENT_MON1_NAME 0xA
#define B_TXT_LINK_PLAYER_MON2_NAME 0xB
#define B_TXT_LINK_OPPONENT_MON2_NAME 0xC
#define B_TXT_ATK_NAME_WITH_PREFIX_MON1 0xD
#define B_TXT_ATK_PARTNER_NAME 0xE
#define B_TXT_ATK_NAME_WITH_PREFIX 0xF
#define B_TXT_DEF_NAME_WITH_PREFIX 0x10
#define B_TXT_EFF_NAME_WITH_PREFIX 0x11 // EFF = short for gEffectBank
#define B_TXT_ACTIVE_NAME_WITH_PREFIX 0x12
#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX 0x13
#define B_TXT_CURRENT_MOVE 0x14
#define B_TXT_LAST_MOVE 0x15
#define B_TXT_LAST_ITEM 0x16
#define B_TXT_LAST_ABILITY 0x17
#define B_TXT_ATK_ABILITY 0x18
#define B_TXT_DEF_ABILITY 0x19
#define B_TXT_SCR_ACTIVE_ABILITY 0x1A
#define B_TXT_EFF_ABILITY 0x1B
#define B_TXT_TRAINER1_CLASS 0x1C
#define B_TXT_TRAINER1_NAME 0x1D
#define B_TXT_1E 0x1E // trainer name for a link player
#define B_TXT_1F 0x1F // trainer name for a link player
#define B_TXT_20 0x20 // trainer name for a link player
#define B_TXT_21 0x21 // trainer name for a link player
#define B_TXT_22 0x22 // trainer name for a link player
#define B_TXT_PLAYER_NAME 0x23
#define B_TXT_TRAINER1_LOSE_TEXT 0x24
#define B_TXT_TRAINER1_WIN_TEXT 0x25
#define B_TXT_26 0x26
#define B_TXT_PC_CREATOR_NAME 0x27
#define B_TXT_ATK_PREFIX1 0x28
#define B_TXT_DEF_PREFIX1 0x29
#define B_TXT_ATK_PREFIX2 0x2A
#define B_TXT_DEF_PREFIX2 0x2B
#define B_TXT_ATK_PREFIX3 0x2C
#define B_TXT_DEF_PREFIX3 0x2D
#define B_TXT_TRAINER2_CLASS 0x2E
#define B_TXT_TRAINER2_NAME 0x2F
#define B_TXT_TRAINER2_LOSE_TEXT 0x30
#define B_TXT_TRAINER2_WIN_TEXT 0x31
#define B_TXT_PARTNER_CLASS 0x32
#define B_TXT_PARTNER_NAME 0x33
#define B_TXT_BUFF3 0x34
// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3
#define B_BUFF_STRING 0
#define B_BUFF_NUMBER 1
#define B_BUFF_MOVE 2
#define B_BUFF_TYPE 3
#define B_BUFF_MON_NICK_WITH_PREFIX 4
#define B_BUFF_STAT 5
#define B_BUFF_SPECIES 6
#define B_BUFF_MON_NICK 7
#define B_BUFF_NEGATIVE_FLAVOR 8
#define B_BUFF_ABILITY 9
#define B_BUFF_ITEM 10
#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
#define B_BUFF_EOS 0xFF
#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
textVar[2] = flavorId; \
textVar[3] = B_BUFF_EOS; \
}
#define PREPARE_STAT_BUFFER(textVar, statId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_STAT; \
textVar[2] = statId; \
textVar[3] = B_BUFF_EOS; \
}
#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_ABILITY; \
textVar[2] = abilityId; \
textVar[3] = B_BUFF_EOS; \
}
#define PREPARE_TYPE_BUFFER(textVar, typeId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_TYPE; \
textVar[2] = typeId; \
textVar[3] = B_BUFF_EOS; \
}
#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_NUMBER; \
textVar[2] = 1; \
textVar[3] = maxDigits; \
textVar[4] = (number); \
textVar[5] = B_BUFF_EOS; \
}
#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_NUMBER; \
textVar[2] = 2; \
textVar[3] = maxDigits; \
textVar[4] = (number); \
textVar[5] = (number & 0x0000FF00) >> 8; \
textVar[6] = B_BUFF_EOS; \
}
#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_NUMBER; \
textVar[2] = 4; \
textVar[3] = maxDigits; \
textVar[4] = (number); \
textVar[5] = (number & 0x0000FF00) >> 8; \
textVar[6] = (number & 0x00FF0000) >> 16; \
textVar[7] = (number & 0xFF000000) >> 24; \
textVar[8] = B_BUFF_EOS; \
}
#define PREPARE_STRING_BUFFER(textVar, stringId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_STRING; \
textVar[2] = stringId; \
textVar[3] = (stringId & 0xFF00) >> 8; \
textVar[4] = B_BUFF_EOS; \
}
#define PREPARE_MOVE_BUFFER(textVar, move) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_MOVE; \
textVar[2] = move; \
textVar[3] = (move & 0xFF00) >> 8; \
textVar[4] = B_BUFF_EOS; \
}
#define PREPARE_ITEM_BUFFER(textVar, item) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_ITEM; \
textVar[2] = item; \
textVar[3] = (item & 0xFF00) >> 8; \
textVar[4] = B_BUFF_EOS; \
}
#define PREPARE_SPECIES_BUFFER(textVar, species) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_SPECIES; \
textVar[2] = species; \
textVar[3] = (species & 0xFF00) >> 8; \
textVar[4] = B_BUFF_EOS; \
}
#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \
textVar[2] = bank; \
textVar[3] = partyId; \
textVar[4] = B_BUFF_EOS; \
}
#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_MON_NICK; \
textVar[2] = bank; \
textVar[3] = partyId; \
textVar[4] = B_BUFF_EOS; \
}
struct StringInfoBattle
{
u16 currentMove;
u16 originallyUsedMove;
u16 lastItem;
u8 lastAbility;
u8 scrActive;
u8 unk1605E;
u8 hpScale;
u8 StringBank;
u8 moveType;
u8 abilities[4];
u8 textBuffs[3][0x10];
};
void BufferStringBattle(u16 stringID);
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src);
u32 BattleStringExpandPlaceholders(const u8* src, u8* dst);
void BattleHandleAddTextPrinter(const u8* text, u8 arg1);
void SetPpNumbersPaletteInMoveSelection(void);
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
#define TEXT_BUFF_ARRAY_COUNT 16
extern u8 gDisplayedStringBattle[300];
extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
extern const u8* const gBattleStringsTable[];
extern const u8* const gStatNamesTable[];
extern const u8* const gPokeblockWasTooXStringTable[];
extern const u8* const gRefereeStringsTable[];
extern const u8* const gStatNamesTable2[];
extern const u16 gMissStringIds[];
extern const u16 gTrappingMoves[];
#endif // GUARD_BATTLE_MESSAGE_H
+66
View File
@@ -0,0 +1,66 @@
#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);
void SetMoveEffect(bool8 primary, u8 certain);
void BattleDestroyYesNoCursorAt(u8 cursorPosition);
void BattleCreateYesNoCursorAt(u8 cursorPosition);
void BufferMoveToLearnIntoBattleTextBuff2(void);
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
bool8 UproarWakeUpCheck(u8 bank);
extern void (* const gBattleScriptingCommandsTable[])(void);
extern const u8 gUnknown_0831C494[][4];
#endif // GUARD_BATTLE_SCRIPT_COMMANDS_H
+290
View File
@@ -0,0 +1,290 @@
#ifndef GUARD_BATTLE_SCRIPTS_H
#define GUARD_BATTLE_SCRIPTS_H
extern const u8 BattleScript_HitFromCritCalc[];
extern const u8 BattleScript_MoveEnd[];
extern const u8 BattleScript_MakeMoveMissed[];
extern const u8 BattleScript_PrintMoveMissed[];
extern const u8 BattleScript_MoveMissedPause[];
extern const u8 BattleScript_MoveMissed[];
extern const u8 BattleScript_ButItFailed[];
extern const u8 BattleScript_StatUp[];
extern const u8 BattleScript_StatDown[];
extern const u8 BattleScript_AlreadyAtFullHp[];
extern const u8 BattleScript_PresentHealTarget[];
extern const u8 BattleScript_MoveUsedMustRecharge[];
extern const u8 BattleScript_FaintAttacker[];
extern const u8 BattleScript_FaintTarget[];
extern const u8 BattleScript_GiveExp[];
extern const u8 BattleScript_HandleFaintedMon[];
extern const u8 BattleScript_LocalTrainerBattleWon[];
extern const u8 BattleScript_LocalTwoTrainersDefeated[];
extern const u8 BattleScript_LocalBattleWonLoseTexts[];
extern const u8 BattleScript_LocalBattleWonReward[];
extern const u8 BattleScript_PayDayMoneyAndPickUpItems[];
extern const u8 BattleScript_LocalBattleLost[];
extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[];
extern const u8 BattleScript_LocalBattleLostEnd[];
extern const u8 BattleScript_CheckDomeDrew[];
extern const u8 BattleScript_82DAA0B[];
extern const u8 BattleScript_82DAA31[];
extern const u8 BattleScript_LinkBattleWonOrLost[];
extern const u8 BattleScript_82DAA5C[];
extern const u8 BattleScript_82DAA83[];
extern const u8 BattleScript_FrontierTrainerBattleWon[];
extern const u8 BattleScript_82DAAAB[];
extern const u8 BattleScript_82DAAAE[];
extern const u8 BattleScript_82DAACB[];
extern const u8 BattleScript_82DAADA[];
extern const u8 BattleScript_SmokeBallEscape[];
extern const u8 BattleScript_RanAwayUsingMonAbility[];
extern const u8 BattleScript_GotAwaySafely[];
extern const u8 BattleScript_WildMonFled[];
extern const u8 BattleScript_PrintCantRunFromTrainer[];
extern const u8 BattleScript_PrintFailedToRunString[];
extern const u8 BattleScript_PrintCantEscapeFromBattle[];
extern const u8 BattleScript_PrintFullBox[];
extern const u8 BattleScript_ActionSwitch[];
extern const u8 BattleScript_82DAB35[];
extern const u8 BattleScript_82DAB37[];
extern const u8 BattleScript_82DAB44[];
extern const u8 BattleScript_82DAB77[];
extern const u8 BattleScript_82DABB8[];
extern const u8 BattleScript_Pausex20[];
extern const u8 BattleScript_LevelUp[];
extern const u8 BattleScript_RainContinuesOrEnds[];
extern const u8 BattleScript_DamagingWeatherContinues[];
extern const u8 BattleScript_SandStormHailEnds[];
extern const u8 BattleScript_SunlightContinues[];
extern const u8 BattleScript_SunlightFaded[];
extern const u8 BattleScript_OverworldWeatherStarts[];
extern const u8 BattleScript_SideStatusWoreOff[];
extern const u8 BattleScript_SafeguardProtected[];
extern const u8 BattleScript_SafeguardEnds[];
extern const u8 BattleScript_LeechSeedTurnDrain[];
extern const u8 BattleScript_82DAD47[];
extern const u8 BattleScript_82DAD4D[];
extern const u8 BattleScript_BideStoringEnergy[];
extern const u8 BattleScript_BideAttack[];
extern const u8 BattleScript_BideNoEnergyToAttack[];
extern const u8 BattleScript_SuccessForceOut[];
extern const u8 BattleScript_82DADF1[];
extern const u8 BattleScript_MistProtected[];
extern const u8 BattleScript_RageIsBuilding[];
extern const u8 BattleScript_MoveUsedIsDisabled[];
extern const u8 BattleScript_SelectingDisabledMove[];
extern const u8 BattleScript_DisabledNoMore[];
extern const u8 BattleScript_SelectingDisabledMoveInPalace[];
extern const u8 BattleScript_SelectingUnusableMoveInPalace[];
extern const u8 BattleScript_EncoredNoMore[];
extern const u8 BattleScript_DestinyBondTakesLife[];
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_82DAEE8[];
extern const u8 BattleScript_82DAEFE[];
extern const u8 BattleScript_PerishSongTakesLife[];
extern const u8 BattleScript_PerishSongCountGoesDown[];
extern const u8 BattleScript_AllStatsUp[];
extern const u8 BattleScript_82DAF54[];
extern const u8 BattleScript_82DAF72[];
extern const u8 BattleScript_82DAF86[];
extern const u8 BattleScript_82DAF9A[];
extern const u8 BattleScript_82DAFAE[];
extern const u8 BattleScript_82DAFC2[];
extern const u8 BattleScript_RapidSpinAway[];
extern const u8 BattleScript_WrapFree[];
extern const u8 BattleScript_LeechSeedFree[];
extern const u8 BattleScript_SpikesFree[];
extern const u8 BattleScript_MonTookFutureAttack[];
extern const u8 BattleScript_82DB001[];
extern const u8 BattleScript_82DB008[];
extern const u8 BattleScript_82DB020[];
extern const u8 BattleScript_82DB027[];
extern const u8 BattleScript_82DB03F[];
extern const u8 BattleScript_82DB058[];
extern const u8 BattleScript_NoMovesLeft[];
extern const u8 BattleScript_SelectingMoveWithNoPP[];
extern const u8 BattleScript_NoPPForMove[];
extern const u8 BattleScript_SelectingTormentedMove[];
extern const u8 BattleScript_MoveUsedIsTormented[];
extern const u8 BattleScript_SelectingTormentedMoveInPalace[];
extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[];
extern const u8 BattleScript_MoveUsedIsTaunted[];
extern const u8 BattleScript_SelectingNotAllowedMoveTauntInPalace[];
extern const u8 BattleScript_WishComesTrue[];
extern const u8 BattleScript_IngrainTurnHeal[];
extern const u8 BattleScript_AtkDefDown[];
extern const u8 BattleScript_82DB144[];
extern const u8 BattleScript_82DB167[];
extern const u8 BattleScript_KnockedOff[];
extern const u8 BattleScript_MoveUsedIsImprisoned[];
extern const u8 BattleScript_SelectingImprisionedMove[];
extern const u8 BattleScript_SelectingImprisionedMoveInPalace[];
extern const u8 BattleScript_GrudgeTakesPp[];
extern const u8 BattleScript_MagicCoatBounce[];
extern const u8 BattleScript_SnatchedMove[];
extern const u8 BattleScript_EnduredMsg[];
extern const u8 BattleScript_OneHitKOMsg[];
extern const u8 BattleScript_SAtkDown2[];
extern const u8 BattleScript_82DB1FE[];
extern const u8 BattleScript_FocusPunchSetUp[];
extern const u8 BattleScript_MoveUsedIsAsleep[];
extern const u8 BattleScript_MoveUsedWokeUp[];
extern const u8 BattleScript_MonWokeUpInUproar[];
extern const u8 BattleScript_PoisonTurnDmg[];
extern const u8 BattleScript_82DB243[];
extern const u8 BattleScript_82DB245[];
extern const u8 BattleScript_82DB25E[];
extern const u8 BattleScript_BurnTurnDmg[];
extern const u8 BattleScript_MoveUsedIsFrozen[];
extern const u8 BattleScript_MoveUsedUnfroze[];
extern const u8 BattleScript_DefrostedViaFireMove[];
extern const u8 BattleScript_MoveUsedIsParalyzed[];
extern const u8 BattleScript_MoveUsedFlinched[];
extern const u8 BattleScript_PrintUproarOverTurns[];
extern const u8 BattleScript_ThrashConfuses[];
extern const u8 BattleScript_MoveUsedIsConfused[];
extern const u8 BattleScript_82DB2D4[];
extern const u8 BattleScript_82DB2FF[];
extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
extern const u8 BattleScript_PrintPayDayMoneyString[];
extern const u8 BattleScript_WrapTurnDmg[];
extern const u8 BattleScript_WrapEnds[];
extern const u8 BattleScript_MoveUsedIsInLove[];
extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[];
extern const u8 BattleScript_NightmareTurnDmg[];
extern const u8 BattleScript_CurseTurnDmg[];
extern const u8 BattleScript_TargetPRLZHeal[];
extern const u8 BattleScript_MoveEffectSleep[];
extern const u8 BattleScript_82DB374[];
extern const u8 BattleScript_YawnMakesAsleep[];
extern const u8 BattleScript_MoveEffectPoison[];
extern const u8 BattleScript_MoveEffectBurn[];
extern const u8 BattleScript_MoveEffectFreeze[];
extern const u8 BattleScript_MoveEffectParalysis[];
extern const u8 BattleScript_MoveEffectUproar[];
extern const u8 BattleScript_MoveEffectToxic[];
extern const u8 BattleScript_MoveEffectPayDay[];
extern const u8 BattleScript_MoveEffectWrap[];
extern const u8 BattleScript_MoveEffectConfusion[];
extern const u8 BattleScript_MoveEffectRecoil33[];
extern const u8 BattleScript_DoRecoil33[];
extern const u8 BattleScript_Recoil33End[];
extern const u8 BattleScript_ItemSteal[];
extern const u8 BattleScript_DrizzleActivates[];
extern const u8 BattleScript_SpeedBoostActivates[];
extern const u8 BattleScript_TraceActivates[];
extern const u8 BattleScript_RainDishActivates[];
extern const u8 BattleScript_SandstreamActivates[];
extern const u8 BattleScript_ShedSkinActivates[];
extern const u8 BattleScript_WeatherFormChanges[];
extern const u8 BattleScript_WeatherFormChangesLoop[];
extern const u8 BattleScript_CastformChange[];
extern const u8 BattleScript_82DB4AF[];
extern const u8 BattleScript_82DB4B8[];
extern const u8 BattleScript_82DB4BE[];
extern const u8 BattleScript_82DB4C1[];
extern const u8 BattleScript_82DB4CD[];
extern const u8 BattleScript_82DB510[];
extern const u8 BattleScript_82DB51B[];
extern const u8 BattleScript_82DB51C[];
extern const u8 BattleScript_DroughtActivates[];
extern const u8 BattleScript_TookAttack[];
extern const u8 BattleScript_SturdyPreventsOHKO[];
extern const u8 BattleScript_DampStopsExplosion[];
extern const u8 BattleScript_MoveHPDrain_PPLoss[];
extern const u8 BattleScript_MoveHPDrain[];
extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[];
extern const u8 BattleScript_MonMadeMoveUseless[];
extern const u8 BattleScript_FlashFireBoost_PPLoss[];
extern const u8 BattleScript_FlashFireBoost[];
extern const u8 BattleScript_AbilityNoStatLoss[];
extern const u8 BattleScript_BRNPrevention[];
extern const u8 BattleScript_PRLZPrevention[];
extern const u8 BattleScript_PSNPrevention[];
extern const u8 BattleScript_ObliviousPreventsAttraction[];
extern const u8 BattleScript_FlinchPrevention[];
extern const u8 BattleScript_OwnTempoPrevents[];
extern const u8 BattleScript_SoundproofProtected[];
extern const u8 BattleScript_AbilityNoSpecificStatLoss[];
extern const u8 BattleScript_StickyHoldActivates[];
extern const u8 BattleScript_ColorChangeActivates[];
extern const u8 BattleScript_RoughSkinActivates[];
extern const u8 BattleScript_CuteCharmActivates[];
extern const u8 BattleScript_ApplySecondaryEffect[];
extern const u8 BattleScript_SynchronizeActivates[];
extern const u8 BattleScript_NoItemSteal[];
extern const u8 BattleScript_AbilityCuredStatus[];
extern const u8 BattleScript_82DB695[];
extern const u8 BattleScript_IgnoresAndUsesRandomMove[];
extern const u8 BattleScript_MoveUsedLoafingAround[];
extern const u8 BattleScript_82DB6C7[];
extern const u8 BattleScript_IgnoresAndFallsAsleep[];
extern const u8 BattleScript_82DB6F0[];
extern const u8 BattleScript_SubstituteFade[];
extern const u8 BattleScript_BerryCurePrlzEnd2[];
extern const u8 BattleScript_BerryCureParRet[];
extern const u8 BattleScript_BerryCurePsnEnd2[];
extern const u8 BattleScript_BerryCurePsnRet[];
extern const u8 BattleScript_BerryCureBrnEnd2[];
extern const u8 BattleScript_BerryCureBrnRet[];
extern const u8 BattleScript_BerryCureFrzEnd2[];
extern const u8 BattleScript_BerryCureFrzRet[];
extern const u8 BattleScript_BerryCureSlpEnd2[];
extern const u8 BattleScript_BerryCureSlpRet[];
extern const u8 BattleScript_BerryCureConfusionEnd2[];
extern const u8 BattleScript_BerryCureConfusionRet[];
extern const u8 BattleScript_BerryCureChosenStatusEnd2[];
extern const u8 BattleScript_BerryCureChosenStatusRet[];
extern const u8 BattleScript_WhiteHerbEnd2[];
extern const u8 BattleScript_WhiteHerbRet[];
extern const u8 BattleScript_ItemHealHP_RemoveItem[];
extern const u8 BattleScript_BerryPPHealEnd2[];
extern const u8 BattleScript_ItemHealHP_End2[];
extern const u8 BattleScript_ItemHealHP_Ret[];
extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
extern const u8 BattleScript_HangedOnMsg[];
extern const u8 BattleScript_BerryConfuseHealEnd2[];
extern const u8 BattleScript_BerryStatRaiseEnd2[];
extern const u8 BattleScript_82DB85B[];
extern const u8 BattleScript_BerryFocusEnergyEnd2[];
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
extern const u8 BattleScript_82DB87D[];
extern const u8 BattleScript_82DB881[];
extern const u8 BattleScript_82DB887[];
extern const u8 BattleScript_82DB89D[];
extern const u8 BattleScript_82DB8BE[];
extern const u8 BattleScript_82DB8E0[];
extern const u8 BattleScript_82DB8F3[];
extern const u8 BattleScript_82DB973[];
extern const u8 BattleScript_82DB992[];
extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
extern const u8 BattleScript_PrintPlayerForfeited[];
extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[];
extern const u8 BattleScript_BallThrow[];
extern const u8 BattleScript_BallThrowByWally[];
extern const u8 BattleScript_SafariBallThrow[];
extern const u8 BattleScript_SuccessBallThrow[];
extern const u8 BattleScript_82DBD92[];
extern const u8 BattleScript_82DBDA5[];
extern const u8 BattleScript_82DBDC2[];
extern const u8 BattleScript_82DBDC3[];
extern const u8 BattleScript_WallyBallThrow[];
extern const u8 BattleScript_ShakeBallThrow[];
extern const u8 BattleScript_82DBE01[];
extern const u8 BattleScript_TrainerBallBlock[];
extern const u8 BattleScript_82DBE12[];
extern const u8 BattleScript_82DBE1C[];
extern const u8 BattleScript_82DBE4B[];
extern const u8 BattleScript_82DBE6F[];
extern const u8 BattleScript_82DBE91[];
extern const u8 BattleScript_RunByUsingItem[];
extern const u8 BattleScript_ActionWatchesCarefully[];
extern const u8 BattleScript_ActionGetNear[];
extern const u8 BattleScript_ActionThrowPokeblock[];
extern const u8 BattleScript_82DBEE3[];
#endif // GUARD_BATTLE_SCRIPTS_H
+18
View File
@@ -0,0 +1,18 @@
#ifndef GUARD_BATTLE_SETUP_H
#define GUARD_BATTLE_SETUP_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 trainer_flag_set(u16);
void trainer_flag_clear(u16);
void BattleSetup_StartTrainerBattle(void);
u8 *BattleSetup_GetScriptAddrAfterBattle(void);
u8 *BattleSetup_GetTrainerPostBattleScript(void);
#endif // GUARD_BATTLE_SETUP_H
+387
View File
@@ -0,0 +1,387 @@
#ifndef GUARD_BATTLE_STRING_IDS_H
#define GUARD_BATTLE_STRING_IDS_H
#define BATTLESTRINGS_COUNT 369
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
#define STRINGID_INTROMSG 0
#define STRINGID_INTROSENDOUT 1
#define STRINGID_RETURNMON 2
#define STRINGID_SWITCHINMON 3
#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
#define STRINGID_PKMNGREWTOLV 14
#define STRINGID_PKMNLEARNEDMOVE 15
#define STRINGID_TRYTOLEARNMOVE1 16
#define STRINGID_TRYTOLEARNMOVE2 17
#define STRINGID_TRYTOLEARNMOVE3 18
#define STRINGID_PKMNFORGOTMOVE 19
#define STRINGID_STOPLEARNINGMOVE 20
#define STRINGID_DIDNOTLEARNMOVE 21
#define STRINGID_PKMNLEARNEDMOVE2 22
#define STRINGID_ATTACKMISSED 23
#define STRINGID_PKMNPROTECTEDITSELF 24
#define STRINGID_STATSWONTINCREASE2 25
#define STRINGID_AVOIDEDDAMAGE 26
#define STRINGID_ITDOESNTAFFECT 27
#define STRINGID_ATTACKERFAINTED 28
#define STRINGID_TARGETFAINTED 29
#define STRINGID_PLAYERGOTMONEY 30
#define STRINGID_PLAYERWHITEOUT 31
#define STRINGID_PLAYERWHITEOUT2 32
#define STRINGID_PREVENTSESCAPE 33
#define STRINGID_HITXTIMES 34
#define STRINGID_PKMNFELLASLEEP 35
#define STRINGID_PKMNMADESLEEP 36
#define STRINGID_PKMNALREADYASLEEP 37
#define STRINGID_PKMNALREADYASLEEP2 38
#define STRINGID_PKMNWASNTAFFECTED 39
#define STRINGID_PKMNWASPOISONED 40
#define STRINGID_PKMNPOISONEDBY 41
#define STRINGID_PKMNHURTBYPOISON 42
#define STRINGID_PKMNALREADYPOISONED 43
#define STRINGID_PKMNBADLYPOISONED 44
#define STRINGID_PKMNENERGYDRAINED 45
#define STRINGID_PKMNWASBURNED 46
#define STRINGID_PKMNBURNEDBY 47
#define STRINGID_PKMNHURTBYBURN 48
#define STRINGID_PKMNWASFROZEN 49
#define STRINGID_PKMNFROZENBY 50
#define STRINGID_PKMNISFROZEN 51
#define STRINGID_PKMNWASDEFROSTED 52
#define STRINGID_PKMNWASDEFROSTED2 53
#define STRINGID_PKMNWASDEFROSTEDBY 54
#define STRINGID_PKMNWASPARALYZED 55
#define STRINGID_PKMNWASPARALYZEDBY 56
#define STRINGID_PKMNISPARALYZED 57
#define STRINGID_PKMNISALREADYPARALYZED 58
#define STRINGID_PKMNHEALEDPARALYSIS 59
#define STRINGID_PKMNDREAMEATEN 60
#define STRINGID_STATSWONTINCREASE 61
#define STRINGID_STATSWONTDECREASE 62
#define STRINGID_TEAMSTOPPEDWORKING 63
#define STRINGID_FOESTOPPEDWORKING 64
#define STRINGID_PKMNISCONFUSED 65
#define STRINGID_PKMNHEALEDCONFUSION 66
#define STRINGID_PKMNWASCONFUSED 67
#define STRINGID_PKMNALREADYCONFUSED 68
#define STRINGID_PKMNFELLINLOVE 69
#define STRINGID_PKMNINLOVE 70
#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71
#define STRINGID_PKMNBLOWNAWAY 72
#define STRINGID_PKMNCHANGEDTYPE 73
#define STRINGID_PKMNFLINCHED 74
#define STRINGID_PKMNREGAINEDHEALTH 75
#define STRINGID_PKMNHPFULL 76
#define STRINGID_PKMNRAISEDSPDEF 77
#define STRINGID_PKMNRAISEDDEF 78
#define STRINGID_PKMNCOVEREDBYVEIL 79
#define STRINGID_PKMNUSEDSAFEGUARD 80
#define STRINGID_PKMNSAFEGUARDEXPIRED 81
#define STRINGID_PKMNWENTTOSLEEP 82
#define STRINGID_PKMNSLEPTHEALTHY 83
#define STRINGID_PKMNWHIPPEDWHIRLWIND 84
#define STRINGID_PKMNTOOKSUNLIGHT 85
#define STRINGID_PKMNLOWEREDHEAD 86
#define STRINGID_PKMNISGLOWING 87
#define STRINGID_PKMNFLEWHIGH 88
#define STRINGID_PKMNDUGHOLE 89
#define STRINGID_PKMNSQUEEZEDBYBIND 90
#define STRINGID_PKMNTRAPPEDINVORTEX 91
#define STRINGID_PKMNWRAPPEDBY 92
#define STRINGID_PKMNCLAMPED 93
#define STRINGID_PKMNHURTBY 94
#define STRINGID_PKMNFREEDFROM 95
#define STRINGID_PKMNCRASHED 96
#define STRINGID_PKMNSHROUDEDINMIST 97
#define STRINGID_PKMNPROTECTEDBYMIST 98
#define STRINGID_PKMNGETTINGPUMPED 99
#define STRINGID_PKMNHITWITHRECOIL 100
#define STRINGID_PKMNPROTECTEDITSELF2 101
#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102
#define STRINGID_PKMNPELTEDBYHAIL 103
#define STRINGID_PKMNSEEDED 104
#define STRINGID_PKMNEVADEDATTACK 105
#define STRINGID_PKMNSAPPEDBYLEECHSEED 106
#define STRINGID_PKMNFASTASLEEP 107
#define STRINGID_PKMNWOKEUP 108
#define STRINGID_PKMNUPROARKEPTAWAKE 109
#define STRINGID_PKMNWOKEUPINUPROAR 110
#define STRINGID_PKMNCAUSEDUPROAR 111
#define STRINGID_PKMNMAKINGUPROAR 112
#define STRINGID_PKMNCALMEDDOWN 113
#define STRINGID_PKMNCANTSLEEPINUPROAR 114
#define STRINGID_PKMNSTOCKPILED 115
#define STRINGID_PKMNCANTSTOCKPILE 116
#define STRINGID_PKMNCANTSLEEPINUPROAR2 117
#define STRINGID_UPROARKEPTPKMNAWAKE 118
#define STRINGID_PKMNSTAYEDAWAKEUSING 119
#define STRINGID_PKMNSTORINGENERGY 120
#define STRINGID_PKMNUNLEASHEDENERGY 121
#define STRINGID_PKMNFATIGUECONFUSION 122
#define STRINGID_PKMNPICKEDUPITEM 123
#define STRINGID_PKMNUNAFFECTED 124
#define STRINGID_PKMNTRANSFORMEDINTO 125
#define STRINGID_PKMNMADESUBSTITUTE 126
#define STRINGID_PKMNHASSUBSTITUTE 127
#define STRINGID_SUBSTITUTEDAMAGED 128
#define STRINGID_PKMNSUBSTITUTEFADED 129
#define STRINGID_PKMNMUSTRECHARGE 130
#define STRINGID_PKMNRAGEBUILDING 131
#define STRINGID_PKMNMOVEWASDISABLED 132
#define STRINGID_PKMNMOVEISDISABLED 133
#define STRINGID_PKMNMOVEDISABLEDNOMORE 134
#define STRINGID_PKMNGOTENCORE 135
#define STRINGID_PKMNENCOREENDED 136
#define STRINGID_PKMNTOOKAIM 137
#define STRINGID_PKMNSKETCHEDMOVE 138
#define STRINGID_PKMNTRYINGTOTAKEFOE 139
#define STRINGID_PKMNTOOKFOE 140
#define STRINGID_PKMNREDUCEDPP 141
#define STRINGID_PKMNSTOLEITEM 142
#define STRINGID_TARGETCANTESCAPENOW 143
#define STRINGID_PKMNFELLINTONIGHTMARE 144
#define STRINGID_PKMNLOCKEDINNIGHTMARE 145
#define STRINGID_PKMNLAIDCURSE 146
#define STRINGID_PKMNAFFLICTEDBYCURSE 147
#define STRINGID_SPIKESSCATTERED 148
#define STRINGID_PKMNHURTBYSPIKES 149
#define STRINGID_PKMNIDENTIFIED 150
#define STRINGID_PKMNPERISHCOUNTFELL 151
#define STRINGID_PKMNBRACEDITSELF 152
#define STRINGID_PKMNENDUREDHIT 153
#define STRINGID_MAGNITUDESTRENGTH 154
#define STRINGID_PKMNCUTHPMAXEDATTACK 155
#define STRINGID_PKMNCOPIEDSTATCHANGES 156
#define STRINGID_PKMNGOTFREE 157
#define STRINGID_PKMNSHEDLEECHSEED 158
#define STRINGID_PKMNBLEWAWAYSPIKES 159
#define STRINGID_PKMNFLEDFROMBATTLE 160
#define STRINGID_PKMNFORESAWATTACK 161
#define STRINGID_PKMNTOOKATTACK 162
#define STRINGID_PKMNATTACK 163
#define STRINGID_PKMNCENTERATTENTION 164
#define STRINGID_PKMNCHARGINGPOWER 165
#define STRINGID_NATUREPOWERTURNEDINTO 166
#define STRINGID_PKMNSTATUSNORMAL 167
#define STRINGID_PKMNHASNOMOVESLEFT 168
#define STRINGID_PKMNSUBJECTEDTOTORMENT 169
#define STRINGID_PKMNCANTUSEMOVETORMENT 170
#define STRINGID_PKMNTIGHTENINGFOCUS 171
#define STRINGID_PKMNFELLFORTAUNT 172
#define STRINGID_PKMNCANTUSEMOVETAUNT 173
#define STRINGID_PKMNREADYTOHELP 174
#define STRINGID_PKMNSWITCHEDITEMS 175
#define STRINGID_PKMNCOPIEDFOE 176
#define STRINGID_PKMNMADEWISH 177
#define STRINGID_PKMNWISHCAMETRUE 178
#define STRINGID_PKMNPLANTEDROOTS 179
#define STRINGID_PKMNABSORBEDNUTRIENTS 180
#define STRINGID_PKMNANCHOREDITSELF 181
#define STRINGID_PKMNWASMADEDROWSY 182
#define STRINGID_PKMNKNOCKEDOFF 183
#define STRINGID_PKMNSWAPPEDABILITIES 184
#define STRINGID_PKMNSEALEDOPPONENTMOVE 185
#define STRINGID_PKMNCANTUSEMOVESEALED 186
#define STRINGID_PKMNWANTSGRUDGE 187
#define STRINGID_PKMNLOSTPPGRUDGE 188
#define STRINGID_PKMNSHROUDEDITSELF 189
#define STRINGID_PKMNMOVEBOUNCED 190
#define STRINGID_PKMNWAITSFORTARGET 191
#define STRINGID_PKMNSNATCHEDMOVE 192
#define STRINGID_PKMNMADEITRAIN 193
#define STRINGID_PKMNRAISEDSPEED 194
#define STRINGID_PKMNPROTECTEDBY 195
#define STRINGID_PKMNPREVENTSUSAGE 196
#define STRINGID_PKMNRESTOREDHPUSING 197
#define STRINGID_PKMNCHANGEDTYPEWITH 198
#define STRINGID_PKMNPREVENTSPARALYSISWITH 199
#define STRINGID_PKMNPREVENTSROMANCEWITH 200
#define STRINGID_PKMNPREVENTSPOISONINGWITH 201
#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202
#define STRINGID_PKMNRAISEDFIREPOWERWITH 203
#define STRINGID_PKMNANCHORSITSELFWITH 204
#define STRINGID_PKMNCUTSATTACKWITH 205
#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206
#define STRINGID_PKMNHURTSWITH 207
#define STRINGID_PKMNTRACED 208
#define STRINGID_STATSHARPLY 209
#define STRINGID_STATROSE 210
#define STRINGID_STATHARSHLY 211
#define STRINGID_STATFELL 212
#define STRINGID_PKMNSSTATCHANGED 213
#define STRINGID_PKMNSSTATCHANGED2 214
#define STRINGID_PKMNSSTATCHANGED3 215
#define STRINGID_PKMNSSTATCHANGED4 216
#define STRINGID_CRITICALHIT 217
#define STRINGID_ONEHITKO 218
#define STRINGID_123POOF 219
#define STRINGID_ANDELLIPSIS 220
#define STRINGID_NOTVERYEFFECTIVE 221
#define STRINGID_SUPEREFFECTIVE 222
#define STRINGID_GOTAWAYSAFELY 223
#define STRINGID_WILDPKMNFLED 224
#define STRINGID_NORUNNINGFROMTRAINERS 225
#define STRINGID_CANTESCAPE 226
#define STRINGID_DONTLEAVEBIRCH 227
#define STRINGID_BUTNOTHINGHAPPENED 228
#define STRINGID_BUTITFAILED 229
#define STRINGID_ITHURTCONFUSION 230
#define STRINGID_MIRRORMOVEFAILED 231
#define STRINGID_STARTEDTORAIN 232
#define STRINGID_DOWNPOURSTARTED 233
#define STRINGID_RAINCONTINUES 234
#define STRINGID_DOWNPOURCONTINUES 235
#define STRINGID_RAINSTOPPED 236
#define STRINGID_SANDSTORMBREWED 237
#define STRINGID_SANDSTORMRAGES 238
#define STRINGID_SANDSTORMSUBSIDED 239
#define STRINGID_SUNLIGHTGOTBRIGHT 240
#define STRINGID_SUNLIGHTSTRONG 241
#define STRINGID_SUNLIGHTFADED 242
#define STRINGID_STARTEDHAIL 243
#define STRINGID_HAILCONTINUES 244
#define STRINGID_HAILSTOPPED 245
#define STRINGID_FAILEDTOSPITUP 246
#define STRINGID_FAILEDTOSWALLOW 247
#define STRINGID_WINDBECAMEHEATWAVE 248
#define STRINGID_STATCHANGESGONE 249
#define STRINGID_COINSSCATTERED 250
#define STRINGID_TOOWEAKFORSUBSTITUTE 251
#define STRINGID_SHAREDPAIN 252
#define STRINGID_BELLCHIMED 253
#define STRINGID_FAINTINTHREE 254
#define STRINGID_NOPPLEFT 255
#define STRINGID_BUTNOPPLEFT 256
#define STRINGID_PLAYERUSEDITEM 257
#define STRINGID_WALLYUSEDITEM 258
#define STRINGID_TRAINERBLOCKEDBALL 259
#define STRINGID_DONTBEATHIEF 260
#define STRINGID_ITDODGEDBALL 261
#define STRINGID_YOUMISSEDPKMN 262
#define STRINGID_PKMNBROKEFREE 263
#define STRINGID_ITAPPEAREDCAUGHT 264
#define STRINGID_AARGHALMOSTHADIT 265
#define STRINGID_SHOOTSOCLOSE 266
#define STRINGID_GOTCHAPKMNCAUGHT 267
#define STRINGID_GOTCHAPKMNCAUGHT2 268
#define STRINGID_GIVENICKNAMECAPTURED 269
#define STRINGID_PKMNSENTTOPC 270
#define STRINGID_PKMNDATAADDEDTODEX 271
#define STRINGID_ITISRAINING 272
#define STRINGID_SANDSTORMISRAGING 273
#define STRINGID_CANTESCAPE2 274
#define STRINGID_PKMNIGNORESASLEEP 275
#define STRINGID_PKMNIGNOREDORDERS 276
#define STRINGID_PKMNBEGANTONAP 277
#define STRINGID_PKMNLOAFING 278
#define STRINGID_PKMNWONTOBEY 279
#define STRINGID_PKMNTURNEDAWAY 280
#define STRINGID_PKMNPRETENDNOTNOTICE 281
#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282
#define STRINGID_CREPTCLOSER 283
#define STRINGID_CANTGETCLOSER 284
#define STRINGID_PKMNWATCHINGCAREFULLY 285
#define STRINGID_PKMNCURIOUSABOUTX 286
#define STRINGID_PKMNENTHRALLEDBYX 287
#define STRINGID_PKMNIGNOREDX 288
#define STRINGID_THREWPOKEBLOCKATPKMN 289
#define STRINGID_OUTOFSAFARIBALLS 290
#define STRINGID_PKMNSITEMCUREDPARALYSIS 291
#define STRINGID_PKMNSITEMCUREDPOISON 292
#define STRINGID_PKMNSITEMHEALEDBURN 293
#define STRINGID_PKMNSITEMDEFROSTEDIT 294
#define STRINGID_PKMNSITEMWOKEIT 295
#define STRINGID_PKMNSITEMSNAPPEDOUT 296
#define STRINGID_PKMNSITEMCUREDPROBLEM 297
#define STRINGID_PKMNSITEMRESTOREDHEALTH 298
#define STRINGID_PKMNSITEMRESTOREDPP 299
#define STRINGID_PKMNSITEMRESTOREDSTATUS 300
#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301
#define STRINGID_ITEMALLOWSONLYYMOVE 302
#define STRINGID_PKMNHUNGONWITHX 303
#define STRINGID_EMPTYSTRING3 304
#define STRINGID_PKMNSXPREVENTSBURNS 305
#define STRINGID_PKMNSXBLOCKSY 306
#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307
#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308
#define STRINGID_PKMNSXPREVENTSYLOSS 309
#define STRINGID_PKMNSXINFATUATEDY 310
#define STRINGID_PKMNSXMADEYINEFFECTIVE 311
#define STRINGID_PKMNSXCUREDYPROBLEM 312
#define STRINGID_ITSUCKEDLIQUIDOOZE 313
#define STRINGID_PKMNTRANSFORMED 314
#define STRINGID_ELECTRICITYWEAKENED 315
#define STRINGID_FIREWEAKENED 316
#define STRINGID_PKMNHIDUNDERWATER 317
#define STRINGID_PKMNSPRANGUP 318
#define STRINGID_HMMOVESCANTBEFORGOTTEN 319
#define STRINGID_XFOUNDONEY 320
#define STRINGID_PLAYERDEFEATEDTRAINER1 321
#define STRINGID_SOOTHINGAROMA 322
#define STRINGID_ITEMSCANTBEUSEDNOW 323
#define STRINGID_FORXCOMMAYZ 324
#define STRINGID_USINGXTHEYOFZN 325
#define STRINGID_PKMNUSEDXTOGETPUMPED 326
#define STRINGID_PKMNSXMADEYUSELESS 327
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
#define STRINGID_EMPTYSTRING4 329
#define STRINGID_ABOOSTED 330
#define STRINGID_PKMNSXINTENSIFIEDSUN 331
#define STRINGID_PKMNMAKESGROUNDMISS 332
#define STRINGID_YOUTHROWABALLNOWRIGHT 333
#define STRINGID_PKMNSXTOOKATTACK 334
#define STRINGID_PKMNCHOSEXASDESTINY 335
#define STRINGID_PKMNLOSTFOCUS 336
#define STRINGID_USENEXTPKMN 337
#define STRINGID_PKMNFLEDUSINGITS 338
#define STRINGID_PKMNFLEDUSING 339
#define STRINGID_PKMNWASDRAGGEDOUT 340
#define STRINGID_PREVENTEDFROMWORKING 341
#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342
#define STRINGID_TRAINER1USEDITEM 343
#define STRINGID_BOXISFULL 344
#define STRINGID_PKMNAVOIDEDATTACK 345
#define STRINGID_PKMNSXMADEITINEFFECTIVE 346
#define STRINGID_PKMNSXPREVENTSFLINCHING 347
#define STRINGID_PKMNALREADYHASBURN 348
#define STRINGID_STATSWONTDECREASE2 349
#define STRINGID_PKMNSXBLOCKSY2 350
#define STRINGID_PKMNSXWOREOFF 351
#define STRINGID_PKMNRAISEDDEFALITTLE 352
#define STRINGID_PKMNRAISEDSPDEFALITTLE 353
#define STRINGID_THEWALLSHATTERED 354
#define STRINGID_PKMNSXPREVENTSYSZ 355
#define STRINGID_PKMNSXCUREDITSYPROBLEM 356
#define STRINGID_ATTACKERCANTESCAPE 357
#define STRINGID_PKMNOBTAINEDX 358
#define STRINGID_PKMNOBTAINEDX2 359
#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360
#define STRINGID_BUTNOEFFECT 361
#define STRINGID_PKMNSXHADNOEFFECTONY 362
#define STRINGID_TWOENEMIESDEFEATED 363
#define STRINGID_TRAINER2LOSETEXT 364
#define STRINGID_PKMNINCAPABLEOFPOWER 365
#define STRINGID_GLINTAPPEARSINEYE 366
#define STRINGID_PKMNGETTINGINTOPOSITION 367
#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368
#define STRINGID_PKMNEAGERFORMORE 369
#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370
#define STRINGID_LOSTTOOPPONENTBYREFEREE 371
#define STRINGID_TIEDOPPONENTBYREFEREE 372
#define STRINGID_QUESTIONFORFEITMATCH 373
#define STRINGID_FORFEITEDMATCH 374
#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375
#define STRINGID_PKMNTRANSFERREDLANETTESPC 376
#define STRINGID_PKMNBOXSOMEONESPCFULL 377
#define STRINGID_PKMNBOXLANETTESPCFULL 378
#define STRINGID_TRAINER1WINTEXT 379
#define STRINGID_TRAINER2WINTEXT 380
#endif // GUARD_BATTLE_STRING_IDS_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_BATTLE_TOWER_H
#define GUARD_BATTLE_TOWER_H
u16 sub_8164FCC(u8, u8);
#endif //GUARD_BATTLE_TOWER_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_BATTLE_TRANSITION_H
#define GUARD_BATTLE_TRANSITION_H
void sub_8149DFC(u8 a1);
#endif // GUARD_BATTLE_TRANSITION_H
+84
View File
@@ -0,0 +1,84 @@
#ifndef GUARD_BATTLE_UTIL_H
#define GUARD_BATTLE_UTIL_H
#define MOVE_LIMITATION_ZEROMOVE (1 << 0)
#define MOVE_LIMITATION_PP (1 << 1)
#define MOVE_LIMITATION_DISABLED (1 << 2)
#define MOVE_LIMITATION_TORMENTED (1 << 3)
#define MOVE_LIMITATION_TAUNT (1 << 4)
#define MOVE_LIMITATION_IMPRISION (1 << 5)
#define ABILITYEFFECT_ON_SWITCHIN 0x0
#define ABILITYEFFECT_ENDTURN 0x1
#define ABILITYEFFECT_MOVES_BLOCK 0x2
#define ABILITYEFFECT_ABSORBING 0x3
#define ABILITYEFFECT_CONTACT 0x4
#define ABILITYEFFECT_IMMUNITY 0x5
#define ABILITYEFFECT_FORECAST 0x6
#define ABILITYEFFECT_SYNCHRONIZE 0x7
#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
#define ABILITYEFFECT_INTIMIDATE1 0x9
#define ABILITYEFFECT_INTIMIDATE2 0xA
#define ABILITYEFFECT_TRACE 0xB
#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD
#define ABILITYEFFECT_FIELD_SPORT 0xE
#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF
#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11
#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
#define ITEMEFFECT_ON_SWITCH_IN 0x0
#define WEATHER_HAS_EFFECT ((!AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, ABILITY_AIR_LOCK, 0, 0)))
#define WEATHER_HAS_EFFECT2 ((!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0) && !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0)))
#define BS_GET_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
#define BS_GET_SCRIPTING_BANK 10
#define BS_GET_PLAYER1 11
#define BS_GET_OPPONENT1 12
#define BS_GET_PLAYER2 13
#define BS_GET_OPPONENT2 14
u8 GetBattleBank(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 sub_803F850(u8 arg0);
void CancelMultiTurnMoves(u8 bank);
bool8 WasUnableToUseMove(u8 bank);
void PrepareStringBattle(u16 stringId, u8 bank);
void ResetSentPokesToOpponentValue(void);
void sub_803F9EC(u8 bank);
void sub_803FA70(u8 bank);
void BattleScriptPush(const u8* bsPtr);
void BattleScriptPushCursor(void);
void BattleScriptPop(void);
u8 TrySetCantSelectMoveBattleScript(void);
u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
bool8 AreAllMovesUnusable(void);
u8 GetImprisonedMovesCount(u8 bank, u16 move);
u8 UpdateTurnCounters(void);
u8 TurnBasedEffects(void);
bool8 HandleWishPerishSongOnTurnEnd(void);
bool8 HandleFaintedMonActions(void);
void TryClearRageStatuses(void);
u8 AtkCanceller_UnableToUseMove(void);
bool8 sub_80423F4(u8 bank, u8 r1, u8 r2);
u8 CastformDataTypeChange(u8 bank);
u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
void BattleScriptExecute(const u8* BS_ptr);
void BattleScriptPushCursorAndCallback(const u8* BS_ptr);
u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
void ClearFuryCutterDestinyBondGrudge(u8 bank);
void HandleAction_RunBattleScript(void);
u8 GetMoveTarget(u16 move, u8 useMoveTarget);
u8 IsMonDisobedient(void);
#endif // GUARD_BATTLE_UTIL_H
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_BATTLE_UTIL2_H
#define GUARD_BATTLE_UTIL2_H
void AllocateBattleResources(void);
void FreeBattleResources(void);
void AdjustFriendshipOnBattleFaint(u8 bank);
void sub_80571DC(u8 bank, u8 arg1);
u32 sub_805725C(u8 bank);
#endif // GUARD_BATTLE_UTIL_H
+73
View File
@@ -0,0 +1,73 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
enum
{
BERRY_FIRMNESS_UNKNOWN,
BERRY_FIRMNESS_VERY_SOFT,
BERRY_FIRMNESS_SOFT,
BERRY_FIRMNESS_HARD,
BERRY_FIRMNESS_VERY_HARD,
BERRY_FIRMNESS_SUPER_HARD,
};
enum
{
FLAVOR_SPICY,
FLAVOR_DRY,
FLAVOR_SWEET,
FLAVOR_BITTER,
FLAVOR_SOUR,
FLAVOR_COUNT
};
#define NUM_BERRIES 44
extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES];
extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[NUM_BERRIES];
extern const u8 *const gBerryTreePaletteSlotTablePointers[NUM_BERRIES];
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
struct BerryTree *GetBerryTreeInfo(u8 id);
bool32 FieldObjectInteractionWaterBerryTree(void);
bool8 IsPlayerFacingPlantedBerryTree(void);
bool8 TryToWaterBerryTree(void);
void ClearBerryTrees(void);
bool32 BerryTreeGrow(struct BerryTree *tree);
void BerryTreeTimeUpdate(s32 minutes);
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle);
void RemoveBerryTree(u8 id);
u8 GetBerryTypeByBerryTreeId(u8 id);
u8 GetStageByBerryTreeId(u8);
u8 ItemIdToBerryType(u16 item);
u16 BerryTypeToItemId(u16 berry);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
u8 GetNumStagesWateredByBerryTreeId(u8 id);
u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
u8 CalcBerryYield(struct BerryTree *tree);
u8 GetBerryCountByBerryTreeId(u8 id);
u16 GetStageDurationByBerryType(u8);
void Bag_ChooseBerry(void);
void FieldObjectInteractionGetBerryTreeData(void);
void FieldObjectInteractionPlantBerryTree(void);
void FieldObjectInteractionPickBerryTree(void);
void FieldObjectInteractionRemoveBerryTree(void);
u8 PlayerHasBerries(void);
void ResetBerryTreeSparkleFlags(void);
extern const struct Berry gBerries[];
struct UnkStruct_0858AB24 {
u8 unk0;
u16 unk1;
};
extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[];
#endif // GUARD_BERRY_H
+85
View File
@@ -0,0 +1,85 @@
#ifndef GUARD_BG_H
#define GUARD_BG_H
struct BGCntrlBitfield // for the I/O registers
{
volatile u16 priority:2;
volatile u16 charBaseBlock:2;
volatile u16 field_0_2:4;
volatile u16 field_1_0:5;
volatile u16 areaOverflowMode:1;
volatile u16 screenSize:2;
};
enum
{
BG_CTRL_ATTR_VISIBLE = 1,
BG_CTRL_ATTR_CHARBASEINDEX = 2,
BG_CTRL_ATTR_MAPBASEINDEX = 3,
BG_CTRL_ATTR_SCREENSIZE = 4,
BG_CTRL_ATTR_PALETTEMODE = 5,
BG_CTRL_ATTR_PRIORITY = 6,
BG_CTRL_ATTR_MOSAIC = 7,
BG_CTRL_ATTR_WRAPAROUND = 8,
};
struct BgTemplate
{
u32 bg:2; // 0x1, 0x2 -> 0x3
u32 charBaseIndex:2; // 0x4, 0x8 -> 0xC
u32 mapBaseIndex:5; // 0x10, 0x20, 0x40, 0x80, 0x100 -> 0x1F0
u32 screenSize:2; // 0x200, 0x400 -> 0x600
u32 paletteMode:1; // 0x800
u32 priority:2; // 0x1000, 0x2000 > 0x3000
u32 baseTile:10;
};
void ResetBgs(void);
u8 GetBgMode(void);
void ResetBgControlStructs(void);
void Unused_ResetBgControlStruct(u8 bg);
void SetBgControlAttributes(u8 bg, u8 charBaseIndex, u8 mapBaseIndex, u8 screenSize, u8 paletteMode, u8 priority, u8 mosaic, u8 wraparound);
u16 GetBgControlAttribute(u8 bg, u8 attributeId);
u8 LoadBgVram(u8 bg, const void *src, u16 size, u16 destOffset, u8 mode);
void SetTextModeAndHideBgs(void);
bool8 IsInvalidBg(u8 bg);
int DummiedOutFireRedLeafGreenTileAllocFunc(int a1, int a2, int a3, int a4);
void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
void InitBgFromTemplate(const struct BgTemplate *template);
void SetBgMode(u8 bgMode);
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset);
u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
bool8 IsDma3ManagerBusyWithBgCopy(void);
void ShowBg(u8 bg);
void HideBg(u8 bg);
void SetBgAttribute(u8 bg, u8 attributeId, u8 value);
u16 GetBgAttribute(u8 bg, u8 attributeId);
u32 ChangeBgX(u8 bg, u32 value, u8 op);
u32 GetBgX(u8 bg);
u32 ChangeBgY(u8 bg, u32 value, u8 op);
u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
u32 GetBgY(u8 bg);
void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg);
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
void CopyBgTilemapBufferToVram(u8 bg);
void CopyToBgTilemapBufferRect(u8 bg, void* src, u8 destX, u8 destY, u8 width, u8 height);
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
void CopyRectToBgTilemapBufferRect(u8 bg, void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, u16 tileOffset, u16 palette2);
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
u16 GetBgMetricTextMode(u8 bg, u8 whichMetric);
u32 GetBgMetricAffineMode(u8 bg, u8 whichMetric);
u32 GetTileMapIndexFromCoords(s32 x, s32 y, s32 screenSize, u32 screenWidth, u32 screenHeight);
void CopyTileMapEntry(u16 *src, u16 *dest, s32 palette1, u32 tileOffset, u32 palette2);
u32 GetBgType(u8 bg);
bool32 IsInvalidBg32(u8 bg);
bool32 IsTileMapOutsideWram(u8 bg);
#endif // GUARD_BG_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_BLEND_PALETTE_H
#define GUARD_BLEND_PALETTE_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void BlendPalette(u16, u16, u8, u16);
#endif //GUARD_BLEND_PALETTE_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_CALCULATE_BASE_DAMAGE_H
#define GUARD_CALCULATE_BASE_DAMAGE_H
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
#endif // GUARD_CALCULATE_BASE_DAMAGE_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_COINS_H
#define GUARD_COINS_H
void PrintCoinsString(u32 coinAmount);
void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y);
void HideCoinsWindow(void);
u16 GetCoins(void);
void SetCoins(u16 coinAmount);
bool8 GiveCoins(u16 toAdd);
bool8 TakeCoins(u16 toSub);
#endif // GUARD_COINS_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_CONFIG_H
#define GUARD_CONFIG_H
#define ENGLISH
#ifdef ENGLISH
#define UNITS_IMPERIAL
#else
#define UNITS_METRIC
#endif
#endif // GUARD_CONFIG_H
+83
View File
@@ -0,0 +1,83 @@
#ifndef GUARD_CONSTANTS_ABILITIES_H
#define GUARD_CONSTANTS_ABILITIES_H
#define ABILITY_NONE 0
#define ABILITY_STENCH 1
#define ABILITY_DRIZZLE 2
#define ABILITY_SPEED_BOOST 3
#define ABILITY_BATTLE_ARMOR 4
#define ABILITY_STURDY 5
#define ABILITY_DAMP 6
#define ABILITY_LIMBER 7
#define ABILITY_SAND_VEIL 8
#define ABILITY_STATIC 9
#define ABILITY_VOLT_ABSORB 10
#define ABILITY_WATER_ABSORB 11
#define ABILITY_OBLIVIOUS 12
#define ABILITY_CLOUD_NINE 13
#define ABILITY_COMPOUND_EYES 14
#define ABILITY_INSOMNIA 15
#define ABILITY_COLOR_CHANGE 16
#define ABILITY_IMMUNITY 17
#define ABILITY_FLASH_FIRE 18
#define ABILITY_SHIELD_DUST 19
#define ABILITY_OWN_TEMPO 20
#define ABILITY_SUCTION_CUPS 21
#define ABILITY_INTIMIDATE 22
#define ABILITY_SHADOW_TAG 23
#define ABILITY_ROUGH_SKIN 24
#define ABILITY_WONDER_GUARD 25
#define ABILITY_LEVITATE 26
#define ABILITY_EFFECT_SPORE 27
#define ABILITY_SYNCHRONIZE 28
#define ABILITY_CLEAR_BODY 29
#define ABILITY_NATURAL_CURE 30
#define ABILITY_LIGHTNING_ROD 31
#define ABILITY_SERENE_GRACE 32
#define ABILITY_SWIFT_SWIM 33
#define ABILITY_CHLOROPHYLL 34
#define ABILITY_ILLUMINATE 35
#define ABILITY_TRACE 36
#define ABILITY_HUGE_POWER 37
#define ABILITY_POISON_POINT 38
#define ABILITY_INNER_FOCUS 39
#define ABILITY_MAGMA_ARMOR 40
#define ABILITY_WATER_VEIL 41
#define ABILITY_MAGNET_PULL 42
#define ABILITY_SOUNDPROOF 43
#define ABILITY_RAIN_DISH 44
#define ABILITY_SAND_STREAM 45
#define ABILITY_PRESSURE 46
#define ABILITY_THICK_FAT 47
#define ABILITY_EARLY_BIRD 48
#define ABILITY_FLAME_BODY 49
#define ABILITY_RUN_AWAY 50
#define ABILITY_KEEN_EYE 51
#define ABILITY_HYPER_CUTTER 52
#define ABILITY_PICKUP 53
#define ABILITY_TRUANT 54
#define ABILITY_HUSTLE 55
#define ABILITY_CUTE_CHARM 56
#define ABILITY_PLUS 57
#define ABILITY_MINUS 58
#define ABILITY_FORECAST 59
#define ABILITY_STICKY_HOLD 60
#define ABILITY_SHED_SKIN 61
#define ABILITY_GUTS 62
#define ABILITY_MARVEL_SCALE 63
#define ABILITY_LIQUID_OOZE 64
#define ABILITY_OVERGROW 65
#define ABILITY_BLAZE 66
#define ABILITY_TORRENT 67
#define ABILITY_SWARM 68
#define ABILITY_ROCK_HEAD 69
#define ABILITY_DROUGHT 70
#define ABILITY_ARENA_TRAP 71
#define ABILITY_VITAL_SPIRIT 72
#define ABILITY_WHITE_SMOKE 73
#define ABILITY_PURE_POWER 74
#define ABILITY_SHELL_ARMOR 75
#define ABILITY_CACOPHONY 76
#define ABILITY_AIR_LOCK 77
#endif // GUARD_CONSTANTS_ABILITIES_H
+219
View File
@@ -0,0 +1,219 @@
#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
#define EFFECT_HIT 0
#define EFFECT_SLEEP 1
#define EFFECT_POISON_HIT 2
#define EFFECT_ABSORB 3
#define EFFECT_BURN_HIT 4
#define EFFECT_FREEZE_HIT 5
#define EFFECT_PARALYZE_HIT 6
#define EFFECT_EXPLOSION 7
#define EFFECT_DREAM_EATER 8
#define EFFECT_MIRROR_MOVE 9
#define EFFECT_ATTACK_UP 10
#define EFFECT_DEFENSE_UP 11
#define EFFECT_SPEED_UP 12
#define EFFECT_SPECIAL_ATTACK_UP 13
#define EFFECT_SPECIAL_DEFENSE_UP 14
#define EFFECT_ACCURACY_UP 15
#define EFFECT_EVASION_UP 16
#define EFFECT_ALWAYS_HIT 17
#define EFFECT_ATTACK_DOWN 18
#define EFFECT_DEFENSE_DOWN 19
#define EFFECT_SPEED_DOWN 20
#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused
#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused
#define EFFECT_ACCURACY_DOWN 23
#define EFFECT_EVASION_DOWN 24
#define EFFECT_HAZE 25
#define EFFECT_BIDE 26
#define EFFECT_RAMPAGE 27
#define EFFECT_ROAR 28
#define EFFECT_MULTI_HIT 29
#define EFFECT_CONVERSION 30
#define EFFECT_FLINCH_HIT 31
#define EFFECT_RESTORE_HP 32
#define EFFECT_TOXIC 33
#define EFFECT_PAY_DAY 34
#define EFFECT_LIGHT_SCREEN 35
#define EFFECT_TRI_ATTACK 36
#define EFFECT_REST 37
#define EFFECT_OHKO 38
#define EFFECT_RAZOR_WIND 39
#define EFFECT_SUPER_FANG 40
#define EFFECT_DRAGON_RAGE 41
#define EFFECT_TRAP 42
#define EFFECT_HIGH_CRITICAL 43
#define EFFECT_DOUBLE_HIT 44
#define EFFECT_RECOIL_IF_MISS 45
#define EFFECT_MIST 46
#define EFFECT_FOCUS_ENERGY 47
#define EFFECT_RECOIL 48
#define EFFECT_CONFUSE 49
#define EFFECT_ATTACK_UP_2 50
#define EFFECT_DEFENSE_UP_2 51
#define EFFECT_SPEED_UP_2 52
#define EFFECT_SPECIAL_ATTACK_UP_2 53
#define EFFECT_SPECIAL_DEFENSE_UP_2 54
#define EFFECT_ACCURACY_UP_2 55
#define EFFECT_EVASION_UP_2 56
#define EFFECT_TRANSFORM 57
#define EFFECT_ATTACK_DOWN_2 58
#define EFFECT_DEFENSE_DOWN_2 59
#define EFFECT_SPEED_DOWN_2 60
#define EFFECT_SPECIAL_ATTACK_DOWN_2 61
#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62
#define EFFECT_ACCURACY_DOWN_2 63
#define EFFECT_EVASION_DOWN_2 64
#define EFFECT_REFLECT 65
#define EFFECT_POISON 66
#define EFFECT_PARALYZE 67
#define EFFECT_ATTACK_DOWN_HIT 68
#define EFFECT_DEFENSE_DOWN_HIT 69
#define EFFECT_SPEED_DOWN_HIT 70
#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71
#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72
#define EFFECT_ACCURACY_DOWN_HIT 73
#define EFFECT_EVASION_DOWN_HIT 74
#define EFFECT_SKY_ATTACK 75
#define EFFECT_CONFUSE_HIT 76
#define EFFECT_TWINEEDLE 77
#define EFFECT_VITAL_THROW 78
#define EFFECT_SUBSTITUTE 79
#define EFFECT_RECHARGE 80
#define EFFECT_RAGE 81
#define EFFECT_MIMIC 82
#define EFFECT_METRONOME 83
#define EFFECT_LEECH_SEED 84
#define EFFECT_SPLASH 85
#define EFFECT_DISABLE 86
#define EFFECT_LEVEL_DAMAGE 87
#define EFFECT_PSYWAVE 88
#define EFFECT_COUNTER 89
#define EFFECT_ENCORE 90
#define EFFECT_PAIN_SPLIT 91
#define EFFECT_SNORE 92
#define EFFECT_CONVERSION_2 93
#define EFFECT_LOCK_ON 94
#define EFFECT_SKETCH 95
#define EFFECT_UNUSED_60 96 // thaw
#define EFFECT_SLEEP_TALK 97
#define EFFECT_DESTINY_BOND 98
#define EFFECT_FLAIL 99
#define EFFECT_SPITE 100
#define EFFECT_FALSE_SWIPE 101
#define EFFECT_HEAL_BELL 102
#define EFFECT_QUICK_ATTACK 103
#define EFFECT_TRIPLE_KICK 104
#define EFFECT_THIEF 105
#define EFFECT_MEAN_LOOK 106
#define EFFECT_NIGHTMARE 107
#define EFFECT_MINIMIZE 108
#define EFFECT_CURSE 109
#define EFFECT_UNUSED_6E 110
#define EFFECT_PROTECT 111
#define EFFECT_SPIKES 112
#define EFFECT_FORESIGHT 113
#define EFFECT_PERISH_SONG 114
#define EFFECT_SANDSTORM 115
#define EFFECT_ENDURE 116
#define EFFECT_ROLLOUT 117
#define EFFECT_SWAGGER 118
#define EFFECT_FURY_CUTTER 119
#define EFFECT_ATTRACT 120
#define EFFECT_RETURN 121
#define EFFECT_PRESENT 122
#define EFFECT_FRUSTRATION 123
#define EFFECT_SAFEGUARD 124
#define EFFECT_THAW_HIT 125
#define EFFECT_MAGNITUDE 126
#define EFFECT_BATON_PASS 127
#define EFFECT_PURSUIT 128
#define EFFECT_RAPID_SPIN 129
#define EFFECT_SONICBOOM 130
#define EFFECT_UNUSED_83 131
#define EFFECT_MORNING_SUN 132
#define EFFECT_SYNTHESIS 133
#define EFFECT_MOONLIGHT 134
#define EFFECT_HIDDEN_POWER 135
#define EFFECT_RAIN_DANCE 136
#define EFFECT_SUNNY_DAY 137
#define EFFECT_DEFENSE_UP_HIT 138
#define EFFECT_ATTACK_UP_HIT 139
#define EFFECT_ALL_STATS_UP_HIT 140
#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2
#define EFFECT_BELLY_DRUM 142
#define EFFECT_PSYCH_UP 143
#define EFFECT_MIRROR_COAT 144
#define EFFECT_SKULL_BASH 145
#define EFFECT_TWISTER 146
#define EFFECT_EARTHQUAKE 147
#define EFFECT_FUTURE_SIGHT 148
#define EFFECT_GUST 149
#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
#define EFFECT_SOLARBEAM 151
#define EFFECT_THUNDER 152
#define EFFECT_TELEPORT 153
#define EFFECT_BEAT_UP 154
#define EFFECT_SEMI_INVULNERABLE 155
#define EFFECT_DEFENSE_CURL 156
#define EFFECT_SOFTBOILED 157
#define EFFECT_FAKE_OUT 158
#define EFFECT_UPROAR 159
#define EFFECT_STOCKPILE 160
#define EFFECT_SPIT_UP 161
#define EFFECT_SWALLOW 162
#define EFFECT_UNUSED_A3 163
#define EFFECT_HAIL 164
#define EFFECT_TORMENT 165
#define EFFECT_FLATTER 166
#define EFFECT_WILL_O_WISP 167
#define EFFECT_MEMENTO 168
#define EFFECT_FACADE 169
#define EFFECT_FOCUS_PUNCH 170
#define EFFECT_SMELLINGSALT 171
#define EFFECT_FOLLOW_ME 172
#define EFFECT_NATURE_POWER 173
#define EFFECT_CHARGE 174
#define EFFECT_TAUNT 175
#define EFFECT_HELPING_HAND 176
#define EFFECT_TRICK 177
#define EFFECT_ROLE_PLAY 178
#define EFFECT_WISH 179
#define EFFECT_ASSIST 180
#define EFFECT_INGRAIN 181
#define EFFECT_SUPERPOWER 182
#define EFFECT_MAGIC_COAT 183
#define EFFECT_RECYCLE 184
#define EFFECT_REVENGE 185
#define EFFECT_BRICK_BREAK 186
#define EFFECT_YAWN 187
#define EFFECT_KNOCK_OFF 188
#define EFFECT_ENDEAVOR 189
#define EFFECT_ERUPTION 190
#define EFFECT_SKILL_SWAP 191
#define EFFECT_IMPRISON 192
#define EFFECT_REFRESH 193
#define EFFECT_GRUDGE 194
#define EFFECT_SNATCH 195
#define EFFECT_LOW_KICK 196
#define EFFECT_SECRET_POWER 197
#define EFFECT_DOUBLE_EDGE 198
#define EFFECT_TEETER_DANCE 199
#define EFFECT_BLAZE_KICK 200
#define EFFECT_MUD_SPORT 201
#define EFFECT_POISON_FANG 202
#define EFFECT_WEATHER_BALL 203
#define EFFECT_OVERHEAT 204
#define EFFECT_TICKLE 205
#define EFFECT_COSMIC_POWER 206
#define EFFECT_SKY_UPPERCUT 207
#define EFFECT_BULK_UP 208
#define EFFECT_POISON_TAIL 209
#define EFFECT_WATER_SPORT 210
#define EFFECT_CALM_MIND 211
#define EFFECT_DRAGON_DANCE 212
#define EFFECT_CAMOUFLAGE 213
#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H
+126
View File
@@ -0,0 +1,126 @@
#ifndef GUARD_CONSTANTS_DECORATIONS_H
#define GUARD_CONSTANTS_DECORATIONS_H
#define DECOR_NONE 0
#define DECOR_SMALL_DESK 1
#define DECOR_POKEMON_DESK 2
#define DECOR_HEAVY_DESK 3
#define DECOR_RAGGED_DESK 4
#define DECOR_COMFORT_DESK 5
#define DECOR_PRETTY_DESK 6
#define DECOR_BRICK_DESK 7
#define DECOR_CAMP_DESK 8
#define DECOR_HARD_DESK 9
#define DECOR_SMALL_CHAIR 10
#define DECOR_POKEMON_CHAIR 11
#define DECOR_HEAVY_CHAIR 12
#define DECOR_PRETTY_CHAIR 13
#define DECOR_COMFORT_CHAIR 14
#define DECOR_RAGGED_CHAIR 15
#define DECOR_BRICK_CHAIR 16
#define DECOR_CAMP_CHAIR 17
#define DECOR_HARD_CHAIR 18
#define DECOR_RED_PLANT 19
#define DECOR_TROPICAL_PLANT 20
#define DECOR_PRETTY_FLOWERS 21
#define DECOR_COLORFUL_PLANT 22
#define DECOR_BIG_PLANT 23
#define DECOR_GORGEOUS_PLANT 24
#define DECOR_RED_BRICK 25
#define DECOR_YELLOW_BRICK 26
#define DECOR_BLUE_BRICK 27
#define DECOR_RED_BALLOON 28
#define DECOR_BLUE_BALLOON 29
#define DECOR_YELLOW_BALLOON 30
#define DECOR_RED_TENT 31
#define DECOR_BLUE_TENT 32
#define DECOR_SOLID_BOARD 33
#define DECOR_SLIDE 34
#define DECOR_FENCE_LENGTH 35
#define DECOR_FENCE_WIDTH 36
#define DECOR_TIRE 37
#define DECOR_STAND 38
#define DECOR_MUD_BALL 39
#define DECOR_BREAKABLE_DOOR 40
#define DECOR_SAND_ORNAMENT 41
#define DECOR_SILVER_SHIELD 42
#define DECOR_GOLD_SHIELD 43
#define DECOR_GLASS_ORNAMENT 44
#define DECOR_TV 45
#define DECOR_ROUND_TV 46
#define DECOR_CUTE_TV 47
#define DECOR_GLITTER_MAT 48
#define DECOR_JUMP_MAT 49
#define DECOR_SPIN_MAT 50
#define DECOR_C_LOW_NOTE_MAT 51
#define DECOR_D_NOTE_MAT 52
#define DECOR_E_NOTE_MAT 53
#define DECOR_F_NOTE_MAT 54
#define DECOR_G_NOTE_MAT 55
#define DECOR_A_NOTE_MAT 56
#define DECOR_B_NOTE_MAT 57
#define DECOR_C_HIGH_NOTE_MAT 58
#define DECOR_SURF_MAT 59
#define DECOR_THUNDER_MAT 60
#define DECOR_FIRE_BLAST_MAT 61
#define DECOR_POWDER_SNOW_MAT 62
#define DECOR_ATTRACT_MAT 63
#define DECOR_FISSURE_MAT 64
#define DECOR_SPIKES_MAT 65
#define DECOR_BALL_POSTER 66
#define DECOR_GREEN_POSTER 67
#define DECOR_RED_POSTER 68
#define DECOR_BLUE_POSTER 69
#define DECOR_CUTE_POSTER 70
#define DECOR_PIKA_POSTER 71
#define DECOR_LONG_POSTER 72
#define DECOR_SEA_POSTER 73
#define DECOR_SKY_POSTER 74
#define DECOR_KISS_POSTER 75
#define DECOR_PICHU_DOLL 76
#define DECOR_PIKACHU_DOLL 77
#define DECOR_MARILL_DOLL 78
#define DECOR_TOGEPI_DOLL 79
#define DECOR_CYNDAQUIL_DOLL 80
#define DECOR_CHIKORITA_DOLL 81
#define DECOR_TOTODILE_DOLL 82
#define DECOR_JIGGLYPUFF_DOLL 83
#define DECOR_MEOWTH_DOLL 84
#define DECOR_CLEFAIRY_DOLL 85
#define DECOR_DITTO_DOLL 86
#define DECOR_SMOOCHUM_DOLL 87
#define DECOR_TREECKO_DOLL 88
#define DECOR_TORCHIC_DOLL 89
#define DECOR_MUDKIP_DOLL 90
#define DECOR_DUSKULL_DOLL 91
#define DECOR_WYNAUT_DOLL 92
#define DECOR_BALTOY_DOLL 93
#define DECOR_KECLEON_DOLL 94
#define DECOR_AZURILL_DOLL 95
#define DECOR_SKITTY_DOLL 96
#define DECOR_SWABLU_DOLL 97
#define DECOR_GULPIN_DOLL 98
#define DECOR_LOTAD_DOLL 99
#define DECOR_SEEDOT_DOLL 100
#define DECOR_PIKA_CUSHION 101
#define DECOR_ROUND_CUSHION 102
#define DECOR_KISS_CUSHION 103
#define DECOR_ZIGZAG_CUSHION 104
#define DECOR_SPIN_CUSHION 105
#define DECOR_DIAMOND_CUSHION 106
#define DECOR_BALL_CUSHION 107
#define DECOR_GRASS_CUSHION 108
#define DECOR_FIRE_CUSHION 109
#define DECOR_WATER_CUSHION 110
#define DECOR_SNORLAX_DOLL 111
#define DECOR_RHYDON_DOLL 112
#define DECOR_LAPRAS_DOLL 113
#define DECOR_VENUSAUR_DOLL 114
#define DECOR_CHARIZARD_DOLL 115
#define DECOR_BLASTOISE_DOLL 116
#define DECOR_WAILMER_DOLL 117
#define DECOR_REGIROCK_DOLL 118
#define DECOR_REGICE_DOLL 119
#define DECOR_REGISTEEL_DOLL 120
#endif // GUARD_CONSTANTS_DECORATIONS_H
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+59
View File
@@ -0,0 +1,59 @@
#ifndef GUARD_CONSTANTS_GAME_STAT_H
#define GUARD_CONSTANTS_GAME_STAT_H
#define GAME_STAT_SAVED_GAME 0
#define GAME_STAT_FIRST_HOF_PLAY_TIME 1
#define GAME_STAT_STARTED_TRENDS 2
#define GAME_STAT_PLANTED_BERRIES 3
#define GAME_STAT_TRADED_BIKES 4
#define GAME_STAT_STEPS 5
#define GAME_STAT_GOT_INTERVIEWED 6
#define GAME_STAT_TOTAL_BATTLES 7
#define GAME_STAT_WILD_BATTLES 8
#define GAME_STAT_TRAINER_BATTLES 9
#define GAME_STAT_ENTERED_HOF 10
#define GAME_STAT_POKEMON_CAPTURES 11
#define GAME_STAT_FISHING_CAPTURES 12
#define GAME_STAT_HATCHED_EGGS 13
#define GAME_STAT_EVOLVED_POKEMON 14
#define GAME_STAT_USED_POKECENTER 15
#define GAME_STAT_RESTED_AT_HOME 16
#define GAME_STAT_ENTERED_SAFARI_ZONE 17
#define GAME_STAT_USED_CUT 18
#define GAME_STAT_USED_ROCK_SMASH 19
#define GAME_STAT_MOVED_SECRET_BASE 20
#define GAME_STAT_POKEMON_TRADES 21
#define GAME_STAT_UNKNOWN_22 22
#define GAME_STAT_LINK_BATTLE_WINS 23
#define GAME_STAT_LINK_BATTLE_LOSSES 24
#define GAME_STAT_LINK_BATTLE_DRAWS 25
#define GAME_STAT_USED_SPLASH 26
#define GAME_STAT_USED_STRUGGLE 27
#define GAME_STAT_SLOT_JACKPOTS 28
#define GAME_STAT_CONSECUTIVE_ROULETTE_WINS 29
#define GAME_STAT_ENTERED_BATTLE_TOWER 30
#define GAME_STAT_UNKNOWN_31 31
#define GAME_STAT_BATTLE_TOWER_BEST_STREAK 32
#define GAME_STAT_POKEBLOCKS 33
#define GAME_STAT_POKEBLOCKS_WITH_FRIENDS 34
#define GAME_STAT_WON_LINK_CONTEST 35
#define GAME_STAT_ENTERED_CONTEST 36
#define GAME_STAT_WON_CONTEST 37
#define GAME_STAT_SHOPPED 38
#define GAME_STAT_USED_ITEMFINDER 39
#define GAME_STAT_GOT_RAINED_ON 40
#define GAME_STAT_CHECKED_POKEDEX 41
#define GAME_STAT_RECEIVED_RIBBONS 42
#define GAME_STAT_JUMPED_DOWN_LEDGES 43
#define GAME_STAT_WATCHED_TV 44
#define GAME_STAT_CHECKED_CLOCK 45
#define GAME_STAT_WON_POKEMON_LOTTERY 46
#define GAME_STAT_USED_DAYCARE 47
#define GAME_STAT_RODE_CABLE_CAR 48
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
/*TODO: add new stats added in Emerald*/
#define NUM_GAME_STATS 64
#endif // GUARD_CONSTANTS_GAME_STAT_H
+72
View File
@@ -0,0 +1,72 @@
#ifndef GUARD_HOLD_EFFECTS_H
#define GUARD_HOLD_EFFECTS_H
#define HOLD_EFFECT_NONE 0
#define HOLD_EFFECT_RESTORE_HP 1
#define HOLD_EFFECT_CURE_PAR 2
#define HOLD_EFFECT_CURE_SLP 3
#define HOLD_EFFECT_CURE_PSN 4
#define HOLD_EFFECT_CURE_BRN 5
#define HOLD_EFFECT_CURE_FRZ 6
#define HOLD_EFFECT_RESTORE_PP 7
#define HOLD_EFFECT_CURE_CONFUSION 8
#define HOLD_EFFECT_CURE_STATUS 9
#define HOLD_EFFECT_CONFUSE_SPICY 10
#define HOLD_EFFECT_CONFUSE_DRY 11
#define HOLD_EFFECT_CONFUSE_SWEET 12
#define HOLD_EFFECT_CONFUSE_BITTER 13
#define HOLD_EFFECT_CONFUSE_SOUR 14
#define HOLD_EFFECT_ATTACK_UP 15
#define HOLD_EFFECT_DEFENSE_UP 16
#define HOLD_EFFECT_SPEED_UP 17
#define HOLD_EFFECT_SP_ATTACK_UP 18
#define HOLD_EFFECT_SP_DEFENSE_UP 19
#define HOLD_EFFECT_CRITICAL_UP 20
#define HOLD_EFFECT_RANDOM_STAT_UP 21
#define HOLD_EFFECT_EVASION_UP 22
#define HOLD_EFFECT_RESTORE_STATS 23
#define HOLD_EFFECT_MACHO_BRACE 24
#define HOLD_EFFECT_EXP_SHARE 25
#define HOLD_EFFECT_QUICK_CLAW 26
#define HOLD_EFFECT_HAPPINESS_UP 27
#define HOLD_EFFECT_CURE_ATTRACT 28
#define HOLD_EFFECT_CHOICE_BAND 29
#define HOLD_EFFECT_FLINCH 30
#define HOLD_EFFECT_BUG_POWER 31
#define HOLD_EFFECT_DOUBLE_PRIZE 32
#define HOLD_EFFECT_REPEL 33
#define HOLD_EFFECT_SOUL_DEW 34
#define HOLD_EFFECT_DEEP_SEA_TOOTH 35
#define HOLD_EFFECT_DEEP_SEA_SCALE 36
#define HOLD_EFFECT_CAN_ALWAYS_RUN 37
#define HOLD_EFFECT_PREVENT_EVOLVE 38
#define HOLD_EFFECT_FOCUS_BAND 39
#define HOLD_EFFECT_LUCKY_EGG 40
#define HOLD_EFFECT_SCOPE_LENS 41
#define HOLD_EFFECT_STEEL_POWER 42
#define HOLD_EFFECT_LEFTOVERS 43
#define HOLD_EFFECT_DRAGON_SCALE 44
#define HOLD_EFFECT_LIGHT_BALL 45
#define HOLD_EFFECT_GROUND_POWER 46
#define HOLD_EFFECT_ROCK_POWER 47
#define HOLD_EFFECT_GRASS_POWER 48
#define HOLD_EFFECT_DARK_POWER 49
#define HOLD_EFFECT_FIGHTING_POWER 50
#define HOLD_EFFECT_ELECTRIC_POWER 51
#define HOLD_EFFECT_WATER_POWER 52
#define HOLD_EFFECT_FLYING_POWER 53
#define HOLD_EFFECT_POISON_POWER 54
#define HOLD_EFFECT_ICE_POWER 55
#define HOLD_EFFECT_GHOST_POWER 56
#define HOLD_EFFECT_PSYCHIC_POWER 57
#define HOLD_EFFECT_FIRE_POWER 58
#define HOLD_EFFECT_DRAGON_POWER 59
#define HOLD_EFFECT_NORMAL_POWER 60
#define HOLD_EFFECT_UP_GRADE 61
#define HOLD_EFFECT_SHELL_BELL 62
#define HOLD_EFFECT_LUCKY_PUNCH 63
#define HOLD_EFFECT_METAL_POWDER 64
#define HOLD_EFFECT_THICK_CLUB 65
#define HOLD_EFFECT_STICK 66
#endif // GUARD_HOLD_EFFECTS_H
+393
View File
@@ -0,0 +1,393 @@
#ifndef GUARD_CONSTANTS_ITEMS_H
#define GUARD_CONSTANTS_ITEMS_H
#define ITEM_NONE 0
#define ITEM_MASTER_BALL 1
#define ITEM_ULTRA_BALL 2
#define ITEM_GREAT_BALL 3
#define ITEM_POKE_BALL 4
#define ITEM_SAFARI_BALL 5
#define ITEM_NET_BALL 6
#define ITEM_DIVE_BALL 7
#define ITEM_NEST_BALL 8
#define ITEM_REPEAT_BALL 9
#define ITEM_TIMER_BALL 10
#define ITEM_LUXURY_BALL 11
#define ITEM_PREMIER_BALL 12
#define ITEM_POTION 13
#define ITEM_ANTIDOTE 14
#define ITEM_BURN_HEAL 15
#define ITEM_ICE_HEAL 16
#define ITEM_AWAKENING 17
#define ITEM_PARALYZE_HEAL 18
#define ITEM_FULL_RESTORE 19
#define ITEM_MAX_POTION 20
#define ITEM_HYPER_POTION 21
#define ITEM_SUPER_POTION 22
#define ITEM_FULL_HEAL 23
#define ITEM_REVIVE 24
#define ITEM_MAX_REVIVE 25
#define ITEM_FRESH_WATER 26
#define ITEM_SODA_POP 27
#define ITEM_LEMONADE 28
#define ITEM_MOOMOO_MILK 29
#define ITEM_ENERGY_POWDER 30
#define ITEM_ENERGY_ROOT 31
#define ITEM_HEAL_POWDER 32
#define ITEM_REVIVAL_HERB 33
#define ITEM_ETHER 34
#define ITEM_MAX_ETHER 35
#define ITEM_ELIXIR 36
#define ITEM_MAX_ELIXIR 37
#define ITEM_LAVA_COOKIE 38
#define ITEM_BLUE_FLUTE 39
#define ITEM_YELLOW_FLUTE 40
#define ITEM_RED_FLUTE 41
#define ITEM_BLACK_FLUTE 42
#define ITEM_WHITE_FLUTE 43
#define ITEM_BERRY_JUICE 44
#define ITEM_SACRED_ASH 45
#define ITEM_SHOAL_SALT 46
#define ITEM_SHOAL_SHELL 47
#define ITEM_RED_SHARD 48
#define ITEM_BLUE_SHARD 49
#define ITEM_YELLOW_SHARD 50
#define ITEM_GREEN_SHARD 51
#define ITEM_034 52
#define ITEM_035 53
#define ITEM_036 54
#define ITEM_037 55
#define ITEM_038 56
#define ITEM_039 57
#define ITEM_03A 58
#define ITEM_03B 59
#define ITEM_03C 60
#define ITEM_03D 61
#define ITEM_03E 62
#define ITEM_HP_UP 63
#define ITEM_PROTEIN 64
#define ITEM_IRON 65
#define ITEM_CARBOS 66
#define ITEM_CALCIUM 67
#define ITEM_RARE_CANDY 68
#define ITEM_PP_UP 69
#define ITEM_ZINC 70
#define ITEM_PP_MAX 71
#define ITEM_048 72
#define ITEM_GUARD_SPEC 73
#define ITEM_DIRE_HIT 74
#define ITEM_X_ATTACK 75
#define ITEM_X_DEFEND 76
#define ITEM_X_SPEED 77
#define ITEM_X_ACCURACY 78
#define ITEM_X_SPECIAL 79
#define ITEM_POKE_DOLL 80
#define ITEM_FLUFFY_TAIL 81
#define ITEM_052 82
#define ITEM_SUPER_REPEL 83
#define ITEM_MAX_REPEL 84
#define ITEM_ESCAPE_ROPE 85
#define ITEM_REPEL 86
#define ITEM_057 87
#define ITEM_058 88
#define ITEM_059 89
#define ITEM_05A 90
#define ITEM_05B 91
#define ITEM_05C 92
#define ITEM_SUN_STONE 93
#define ITEM_MOON_STONE 94
#define ITEM_FIRE_STONE 95
#define ITEM_THUNDER_STONE 96
#define ITEM_WATER_STONE 97
#define ITEM_LEAF_STONE 98
#define ITEM_063 99
#define ITEM_064 100
#define ITEM_065 101
#define ITEM_066 102
#define ITEM_TINY_MUSHROOM 103
#define ITEM_BIG_MUSHROOM 104
#define ITEM_069 105
#define ITEM_PEARL 106
#define ITEM_BIG_PEARL 107
#define ITEM_STARDUST 108
#define ITEM_STAR_PIECE 109
#define ITEM_NUGGET 110
#define ITEM_HEART_SCALE 111
#define ITEM_070 112
#define ITEM_071 113
#define ITEM_072 114
#define ITEM_073 115
#define ITEM_074 116
#define ITEM_075 117
#define ITEM_076 118
#define ITEM_077 119
#define ITEM_078 120
#define ITEM_ORANGE_MAIL 121
#define ITEM_HARBOR_MAIL 122
#define ITEM_GLITTER_MAIL 123
#define ITEM_MECH_MAIL 124
#define ITEM_WOOD_MAIL 125
#define ITEM_WAVE_MAIL 126
#define ITEM_BEAD_MAIL 127
#define ITEM_SHADOW_MAIL 128
#define ITEM_TROPIC_MAIL 129
#define ITEM_DREAM_MAIL 130
#define ITEM_FAB_MAIL 131
#define ITEM_RETRO_MAIL 132
#define ITEM_CHERI_BERRY 133
#define ITEM_CHESTO_BERRY 134
#define ITEM_PECHA_BERRY 135
#define ITEM_RAWST_BERRY 136
#define ITEM_ASPEAR_BERRY 137
#define ITEM_LEPPA_BERRY 138
#define ITEM_ORAN_BERRY 139
#define ITEM_PERSIM_BERRY 140
#define ITEM_LUM_BERRY 141
#define ITEM_SITRUS_BERRY 142
#define ITEM_FIGY_BERRY 143
#define ITEM_WIKI_BERRY 144
#define ITEM_MAGO_BERRY 145
#define ITEM_AGUAV_BERRY 146
#define ITEM_IAPAPA_BERRY 147
#define ITEM_RAZZ_BERRY 148
#define ITEM_BLUK_BERRY 149
#define ITEM_NANAB_BERRY 150
#define ITEM_WEPEAR_BERRY 151
#define ITEM_PINAP_BERRY 152
#define ITEM_POMEG_BERRY 153
#define ITEM_KELPSY_BERRY 154
#define ITEM_QUALOT_BERRY 155
#define ITEM_HONDEW_BERRY 156
#define ITEM_GREPA_BERRY 157
#define ITEM_TAMATO_BERRY 158
#define ITEM_CORNN_BERRY 159
#define ITEM_MAGOST_BERRY 160
#define ITEM_RABUTA_BERRY 161
#define ITEM_NOMEL_BERRY 162
#define ITEM_SPELON_BERRY 163
#define ITEM_PAMTRE_BERRY 164
#define ITEM_WATMEL_BERRY 165
#define ITEM_DURIN_BERRY 166
#define ITEM_BELUE_BERRY 167
#define ITEM_LIECHI_BERRY 168
#define ITEM_GANLON_BERRY 169
#define ITEM_SALAC_BERRY 170
#define ITEM_PETAYA_BERRY 171
#define ITEM_APICOT_BERRY 172
#define ITEM_LANSAT_BERRY 173
#define ITEM_STARF_BERRY 174
#define ITEM_ENIGMA_BERRY 175
#define ITEM_0B0 176
#define ITEM_0B1 177
#define ITEM_0B2 178
#define ITEM_BRIGHT_POWDER 179
#define ITEM_WHITE_HERB 180
#define ITEM_MACHO_BRACE 181
#define ITEM_EXP_SHARE 182
#define ITEM_QUICK_CLAW 183
#define ITEM_SOOTHE_BELL 184
#define ITEM_MENTAL_HERB 185
#define ITEM_CHOICE_BAND 186
#define ITEM_KINGS_ROCK 187
#define ITEM_SILVER_POWDER 188
#define ITEM_AMULET_COIN 189
#define ITEM_CLEANSE_TAG 190
#define ITEM_SOUL_DEW 191
#define ITEM_DEEP_SEA_TOOTH 192
#define ITEM_DEEP_SEA_SCALE 193
#define ITEM_SMOKE_BALL 194
#define ITEM_EVERSTONE 195
#define ITEM_FOCUS_BAND 196
#define ITEM_LUCKY_EGG 197
#define ITEM_SCOPE_LENS 198
#define ITEM_METAL_COAT 199
#define ITEM_LEFTOVERS 200
#define ITEM_DRAGON_SCALE 201
#define ITEM_LIGHT_BALL 202
#define ITEM_SOFT_SAND 203
#define ITEM_HARD_STONE 204
#define ITEM_MIRACLE_SEED 205
#define ITEM_BLACK_GLASSES 206
#define ITEM_BLACK_BELT 207
#define ITEM_MAGNET 208
#define ITEM_MYSTIC_WATER 209
#define ITEM_SHARP_BEAK 210
#define ITEM_POISON_BARB 211
#define ITEM_NEVER_MELT_ICE 212
#define ITEM_SPELL_TAG 213
#define ITEM_TWISTED_SPOON 214
#define ITEM_CHARCOAL 215
#define ITEM_DRAGON_FANG 216
#define ITEM_SILK_SCARF 217
#define ITEM_UP_GRADE 218
#define ITEM_SHELL_BELL 219
#define ITEM_SEA_INCENSE 220
#define ITEM_LAX_INCENSE 221
#define ITEM_LUCKY_PUNCH 222
#define ITEM_METAL_POWDER 223
#define ITEM_THICK_CLUB 224
#define ITEM_STICK 225
#define ITEM_0E2 226
#define ITEM_0E3 227
#define ITEM_0E4 228
#define ITEM_0E5 229
#define ITEM_0E6 230
#define ITEM_0E7 231
#define ITEM_0E8 232
#define ITEM_0E9 233
#define ITEM_0EA 234
#define ITEM_0EB 235
#define ITEM_0EC 236
#define ITEM_0ED 237
#define ITEM_0EE 238
#define ITEM_0EF 239
#define ITEM_0F0 240
#define ITEM_0F1 241
#define ITEM_0F2 242
#define ITEM_0F3 243
#define ITEM_0F4 244
#define ITEM_0F5 245
#define ITEM_0F6 246
#define ITEM_0F7 247
#define ITEM_0F8 248
#define ITEM_0F9 249
#define ITEM_0FA 250
#define ITEM_0FB 251
#define ITEM_0FC 252
#define ITEM_0FD 253
#define ITEM_RED_SCARF 254
#define ITEM_BLUE_SCARF 255
#define ITEM_PINK_SCARF 256
#define ITEM_GREEN_SCARF 257
#define ITEM_YELLOW_SCARF 258
#define ITEM_MACH_BIKE 259
#define ITEM_COIN_CASE 260
#define ITEM_ITEMFINDER 261
#define ITEM_OLD_ROD 262
#define ITEM_GOOD_ROD 263
#define ITEM_SUPER_ROD 264
#define ITEM_SS_TICKET 265
#define ITEM_CONTEST_PASS 266
#define ITEM_10B 267
#define ITEM_WAILMER_PAIL 268
#define ITEM_DEVON_GOODS 269
#define ITEM_SOOT_SACK 270
#define ITEM_BASEMENT_KEY 271
#define ITEM_ACRO_BIKE 272
#define ITEM_POKEBLOCK_CASE 273
#define ITEM_LETTER 274
#define ITEM_EON_TICKET 275
#define ITEM_RED_ORB 276
#define ITEM_BLUE_ORB 277
#define ITEM_SCANNER 278
#define ITEM_GO_GOGGLES 279
#define ITEM_METEORITE 280
#define ITEM_ROOM_1_KEY 281
#define ITEM_ROOM_2_KEY 282
#define ITEM_ROOM_4_KEY 283
#define ITEM_ROOM_6_KEY 284
#define ITEM_STORAGE_KEY 285
#define ITEM_ROOT_FOSSIL 286
#define ITEM_CLAW_FOSSIL 287
#define ITEM_DEVON_SCOPE 288
#define ITEM_TM01 289
#define ITEM_TM02 290
#define ITEM_TM03 291
#define ITEM_TM04 292
#define ITEM_TM05 293
#define ITEM_TM06 294
#define ITEM_TM07 295
#define ITEM_TM08 296
#define ITEM_TM09 297
#define ITEM_TM10 298
#define ITEM_TM11 299
#define ITEM_TM12 300
#define ITEM_TM13 301
#define ITEM_TM14 302
#define ITEM_TM15 303
#define ITEM_TM16 304
#define ITEM_TM17 305
#define ITEM_TM18 306
#define ITEM_TM19 307
#define ITEM_TM20 308
#define ITEM_TM21 309
#define ITEM_TM22 310
#define ITEM_TM23 311
#define ITEM_TM24 312
#define ITEM_TM25 313
#define ITEM_TM26 314
#define ITEM_TM27 315
#define ITEM_TM28 316
#define ITEM_TM29 317
#define ITEM_TM30 318
#define ITEM_TM31 319
#define ITEM_TM32 320
#define ITEM_TM33 321
#define ITEM_TM34 322
#define ITEM_TM35 323
#define ITEM_TM36 324
#define ITEM_TM37 325
#define ITEM_TM38 326
#define ITEM_TM39 327
#define ITEM_TM40 328
#define ITEM_TM41 329
#define ITEM_TM42 330
#define ITEM_TM43 331
#define ITEM_TM44 332
#define ITEM_TM45 333
#define ITEM_TM46 334
#define ITEM_TM47 335
#define ITEM_TM48 336
#define ITEM_TM49 337
#define ITEM_TM50 338
#define ITEM_HM01 339
#define ITEM_HM02 340
#define ITEM_HM03 341
#define ITEM_HM04 342
#define ITEM_HM05 343
#define ITEM_HM06 344
#define ITEM_HM07 345
#define ITEM_HM08 346
#define ITEM_15B 347
#define ITEM_15C 348
// FireRed/LeafGreen
#define ITEM_OAKS_PARCEL 349
#define ITEM_POKE_FLUTE 350
#define ITEM_SECRET_KEY 351
#define ITEM_BIKE_VOUCHER 352
#define ITEM_GOLD_TEETH 353
#define ITEM_OLD_AMBER 354
#define ITEM_CARD_KEY 355
#define ITEM_LIFT_KEY 356
#define ITEM_HELIX_FOSSIL 357
#define ITEM_DOME_FOSSIL 358
#define ITEM_SILPH_SCOPE 359
#define ITEM_BICYCLE 360
#define ITEM_TOWN_MAP 361
#define ITEM_VS_SEEKER 362
#define ITEM_FAME_CHECKER 363
#define ITEM_TM_CASE 364
#define ITEM_BERRY_POUCH 365
#define ITEM_TEACHY_TV 366
#define ITEM_TRI_PASS 367
#define ITEM_RAINBOW_PASS 368
#define ITEM_TEA 369
#define ITEM_MYSTIC_TICKET 370
#define ITEM_AURORA_TICKET 371
#define ITEM_POWDER_JAR 372
#define ITEM_RUBY 373
#define ITEM_SAPPHIRE 374
// Emerald
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
#endif // GUARD_CONSTANTS_ITEMS_H
+263
View File
@@ -0,0 +1,263 @@
#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H
#define GUARD_CONSTANTS_MAP_OBJECTS_H
#define MAP_OBJ_GFX_BRENDAN_NORMAL 0
#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1
#define MAP_OBJ_GFX_BRENDAN_SURFING 2
#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3
#define MAP_OBJ_GFX_QUINTY_PLUMP 4
#define MAP_OBJ_GFX_LITTLE_BOY_1 5
#define MAP_OBJ_GFX_LITTLE_GIRL_1 6
#define MAP_OBJ_GFX_BOY_1 7
#define MAP_OBJ_GFX_GIRL_1 8
#define MAP_OBJ_GFX_BOY_2 9
#define MAP_OBJ_GFX_GIRL_2 10
#define MAP_OBJ_GFX_LITTLE_BOY_2 11
#define MAP_OBJ_GFX_LITTLE_GIRL_2 12
#define MAP_OBJ_GFX_BOY_3 13
#define MAP_OBJ_GFX_GIRL_3 14
#define MAP_OBJ_GFX_BOY_4 15
#define MAP_OBJ_GFX_WOMAN_1 16
#define MAP_OBJ_GFX_FAT_MAN 17
#define MAP_OBJ_GFX_WOMAN_2 18
#define MAP_OBJ_GFX_MAN_1 19
#define MAP_OBJ_GFX_WOMAN_3 20
#define MAP_OBJ_GFX_OLD_MAN_1 21
#define MAP_OBJ_GFX_OLD_WOMAN_1 22
#define MAP_OBJ_GFX_MAN_2 23
#define MAP_OBJ_GFX_WOMAN_4 24
#define MAP_OBJ_GFX_MAN_3 25
#define MAP_OBJ_GFX_WOMAN_5 26
#define MAP_OBJ_GFX_COOK 27
#define MAP_OBJ_GFX_WOMAN_6 28
#define MAP_OBJ_GFX_OLD_MAN_2 29
#define MAP_OBJ_GFX_OLD_WOMAN_2 30
#define MAP_OBJ_GFX_CAMPER 31
#define MAP_OBJ_GFX_PICNICKER 32
#define MAP_OBJ_GFX_MAN_4 33
#define MAP_OBJ_GFX_WOMAN_7 34
#define MAP_OBJ_GFX_YOUNGSTER 35
#define MAP_OBJ_GFX_BUG_CATCHER 36
#define MAP_OBJ_GFX_PSYCHIC_M 37
#define MAP_OBJ_GFX_SCHOOL_KID_M 38
#define MAP_OBJ_GFX_MANIAC 39
#define MAP_OBJ_GFX_HEX_MANIAC 40
#define MAP_OBJ_GFX_RAYQUAZA_1 41
#define MAP_OBJ_GFX_SWIMMER_M 42
#define MAP_OBJ_GFX_SWIMMER_F 43
#define MAP_OBJ_GFX_BLACK_BELT 44
#define MAP_OBJ_GFX_BEAUTY 45
#define MAP_OBJ_GFX_SCIENTIST_1 46
#define MAP_OBJ_GFX_LASS 47
#define MAP_OBJ_GFX_GENTLEMAN 48
#define MAP_OBJ_GFX_SAILOR 49
#define MAP_OBJ_GFX_FISHERMAN 50
#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51
#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52
#define MAP_OBJ_GFX_TUBER_F 53
#define MAP_OBJ_GFX_TUBER_M 54
#define MAP_OBJ_GFX_HIKER 55
#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56
#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57
#define MAP_OBJ_GFX_NURSE 58
#define MAP_OBJ_GFX_ITEM_BALL 59
#define MAP_OBJ_GFX_BERRY_TREE 60
#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61
#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62
#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63
#define MAP_OBJ_GFX_PROF_BIRCH 64
#define MAP_OBJ_GFX_MAN_5 65
#define MAP_OBJ_GFX_MAN_6 66
#define MAP_OBJ_GFX_REPORTER_M 67
#define MAP_OBJ_GFX_REPORTER_F 68
#define MAP_OBJ_GFX_BARD 69
#define MAP_OBJ_GFX_ANABEL 70
#define MAP_OBJ_GFX_TUCKER 71
#define MAP_OBJ_GFX_GRETA 72
#define MAP_OBJ_GFX_SPENSER 73
#define MAP_OBJ_GFX_NOLAND 74
#define MAP_OBJ_GFX_LUCY 75
#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76
#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77
#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78
#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79
#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80
#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81
#define MAP_OBJ_GFX_CUTTABLE_TREE 82
#define MAP_OBJ_GFX_MART_EMPLOYEE 83
#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84
#define MAP_OBJ_GFX_TEALA 85
#define MAP_OBJ_GFX_BREAKABLE_ROCK 86
#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87
#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88
#define MAP_OBJ_GFX_MAY_NORMAL 89
#define MAP_OBJ_GFX_MAY_MACH_BIKE 90
#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91
#define MAP_OBJ_GFX_MAY_SURFING 92
#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93
#define MAP_OBJ_GFX_TRUCK 94
#define MAP_OBJ_GFX_VIGAROTH_CARRYING_BOX 95
#define MAP_OBJ_GFX_VIGAROTH_FACING_AWAY 96
#define MAP_OBJ_GFX_BIRCHS_BAG 97
#define MAP_OBJ_GFX_ZIGZAGOON_1 98
#define MAP_OBJ_GFX_ARTIST 99
#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100
#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101
#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102
#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103
#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104
#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105
#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106
#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107
#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108
#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109
#define MAP_OBJ_GFX_CAMERAMAN 110
#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111
#define MAP_OBJ_GFX_MAY_UNDERWATER 112
#define MAP_OBJ_GFX_MOVING_BOX 113
#define MAP_OBJ_GFX_CABLE_CAR 114
#define MAP_OBJ_GFX_SCIENTIST_2 115
#define MAP_OBJ_GFX_MAN_7 116
#define MAP_OBJ_GFX_AQUA_MEMBER_M 117
#define MAP_OBJ_GFX_AQUA_MEMBER_F 118
#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119
#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120
#define MAP_OBJ_GFX_SIDNEY 121
#define MAP_OBJ_GFX_PHOEBE 122
#define MAP_OBJ_GFX_GLACIA 123
#define MAP_OBJ_GFX_DRAKE 124
#define MAP_OBJ_GFX_ROXANNE 125
#define MAP_OBJ_GFX_BRAWLY 126
#define MAP_OBJ_GFX_WATTSON 127
#define MAP_OBJ_GFX_FLANNERY 128
#define MAP_OBJ_GFX_NORMAN 129
#define MAP_OBJ_GFX_WINONA 130
#define MAP_OBJ_GFX_LIZA 131
#define MAP_OBJ_GFX_TATE 132
#define MAP_OBJ_GFX_WALLACE 133
#define MAP_OBJ_GFX_STEVEN 134
#define MAP_OBJ_GFX_WALLY 135
#define MAP_OBJ_GFX_LITTLE_BOY_3 136
#define MAP_OBJ_GFX_BRENDAN_FISHING 137
#define MAP_OBJ_GFX_MAY_FISHING 138
#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139
#define MAP_OBJ_GFX_SS_TIDAL 140
#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141
#define MAP_OBJ_GFX_PICHU_DOLL 142
#define MAP_OBJ_GFX_PIKACHU_DOLL 143
#define MAP_OBJ_GFX_MARILL_DOLL 144
#define MAP_OBJ_GFX_TOGEPI_DOLL 145
#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146
#define MAP_OBJ_GFX_CHIKORITA_DOLL 147
#define MAP_OBJ_GFX_TOTODILE_DOLL 148
#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149
#define MAP_OBJ_GFX_MEOWTH_DOLL 150
#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151
#define MAP_OBJ_GFX_DITTO_DOLL 152
#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153
#define MAP_OBJ_GFX_TREECKO_DOLL 154
#define MAP_OBJ_GFX_TORCHIC_DOLL 155
#define MAP_OBJ_GFX_MUDKIP_DOLL 156
#define MAP_OBJ_GFX_DUSKULL_DOLL 157
#define MAP_OBJ_GFX_WYNAUT_DOLL 158
#define MAP_OBJ_GFX_BALTOY_DOLL 159
#define MAP_OBJ_GFX_KECLEON_DOLL 160
#define MAP_OBJ_GFX_AZURILL_DOLL 161
#define MAP_OBJ_GFX_SKITTY_DOLL 162
#define MAP_OBJ_GFX_SWABLU_DOLL 163
#define MAP_OBJ_GFX_GULPIN_DOLL 164
#define MAP_OBJ_GFX_LOTAD_DOLL 165
#define MAP_OBJ_GFX_SEEDOT_DOLL 166
#define MAP_OBJ_GFX_PIKA_CUSHION 167
#define MAP_OBJ_GFX_ROUND_CUSHION 168
#define MAP_OBJ_GFX_KISS_CUSHION 169
#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170
#define MAP_OBJ_GFX_SPIN_CUSHION 171
#define MAP_OBJ_GFX_DIAMOND_CUSHION 172
#define MAP_OBJ_GFX_BALL_CUSHION 173
#define MAP_OBJ_GFX_GRASS_CUSHION 174
#define MAP_OBJ_GFX_FIRE_CUSHION 175
#define MAP_OBJ_GFX_WATER_CUSHION 176
#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177
#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178
#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179
#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180
#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181
#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182
#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183
#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184
#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185
#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186
#define MAP_OBJ_GFX_LATIAS 187
#define MAP_OBJ_GFX_LATIOS 188
#define MAP_OBJ_GFX_BOY_5 189
#define MAP_OBJ_GFX_CONTEST_JUDGE 190
#define MAP_OBJ_GFX_BRENDAN_WATERING 191
#define MAP_OBJ_GFX_MAY_WATERING 192
#define MAP_OBJ_GFX_BRENDAN_DECORATING 193
#define MAP_OBJ_GFX_MAY_DECORATING 194
#define MAP_OBJ_GFX_ARCHIE 195
#define MAP_OBJ_GFX_MAXIE 196
#define MAP_OBJ_GFX_KYOGRE_1 197
#define MAP_OBJ_GFX_GROUDON_1 198
#define MAP_OBJ_GFX_FOSSIL 199
#define MAP_OBJ_GFX_REGIROCK 200
#define MAP_OBJ_GFX_REGICE 201
#define MAP_OBJ_GFX_REGISTEEL 202
#define MAP_OBJ_GFX_SKITTY 203
#define MAP_OBJ_GFX_KECLEON_1 204
#define MAP_OBJ_GFX_KYOGRE_2 205
#define MAP_OBJ_GFX_GROUDON_2 206
#define MAP_OBJ_GFX_RAYQUAZA_2 207
#define MAP_OBJ_GFX_ZIGZAGOON_2 208
#define MAP_OBJ_GFX_PIKACHU 209
#define MAP_OBJ_GFX_AZUMARILL 210
#define MAP_OBJ_GFX_WINGULL 211
#define MAP_OBJ_GFX_KECLEON_2 212
#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213
#define MAP_OBJ_GFX_AZURILL 214
#define MAP_OBJ_GFX_MOM 215
#define MAP_OBJ_GFX_LINK_BRENDAN 216
#define MAP_OBJ_GFX_LINK_MAY 217
#define MAP_OBJ_GFX_JUAN 218
#define MAP_OBJ_GFX_SCOTT 219
#define MAP_OBJ_GFX_POOCHYENA 220
#define MAP_OBJ_GFX_KYOGRE_3 221
#define MAP_OBJ_GFX_GROUDON_3 222
#define MAP_OBJ_GFX_MYSTERY_GIFT_MAN 223
#define MAP_OBJ_GFX_TRICK_HOUSE_STATUE 224
#define MAP_OBJ_GFX_KIRLIA 225
#define MAP_OBJ_GFX_DUSCLOPS 226
#define MAP_OBJ_GFX_UNION_ROOM_NURSE 227
#define MAP_OBJ_GFX_SUDOWOODO 228
#define MAP_OBJ_GFX_MEW 229
#define MAP_OBJ_GFX_RED 230
#define MAP_OBJ_GFX_LEAF 231
#define MAP_OBJ_GFX_DEOXYS 232
#define MAP_OBJ_GFX_DEOXYS_TRIANGLE 233
#define MAP_OBJ_GFX_BRANDON 234
#define MAP_OBJ_GFX_LINK_RS_BRENDAN 235
#define MAP_OBJ_GFX_LINK_RS_MAY 236
#define MAP_OBJ_GFX_LUGIA 237
#define MAP_OBJ_GFX_HOOH 238
#define MAP_OBJ_GFX_BARD_2 239
#define MAP_OBJ_GFX_HIPSTER 240
#define MAP_OBJ_GFX_TRADER 241
#define MAP_OBJ_GFX_STORYTELLER 242
#define MAP_OBJ_GFX_GIDDY 243
#define MAP_OBJ_GFX_PLACEHOLDER_1 244
#define MAP_OBJ_GFX_PLACEHOLDER_2 245
#define SHADOW_SIZE_S 0
#define SHADOW_SIZE_M 1
#define SHADOW_SIZE_L 2
#define SHADOW_SIZE_XL 3
#define F_INANIMATE (1 << 6)
#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7)
#define TRACKS_NONE 0
#define TRACKS_FOOT 1
#define TRACKS_BIKE_TIRE 2
#endif // GUARD_CONSTANTS_MAP_OBJECTS_H
+595
View File
@@ -0,0 +1,595 @@
#ifndef GUARD_CONSTANTS_MAPS_H
#define GUARD_CONSTANTS_MAPS_H
// Map Group 0
#define MAP_PETALBURG_CITY (0 | (0 << 8))
#define MAP_SLATEPORT_CITY (1 | (0 << 8))
#define MAP_MAUVILLE_CITY (2 | (0 << 8))
#define MAP_RUSTBORO_CITY (3 | (0 << 8))
#define MAP_FORTREE_CITY (4 | (0 << 8))
#define MAP_LILYCOVE_CITY (5 | (0 << 8))
#define MAP_MOSSDEEP_CITY (6 | (0 << 8))
#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8))
#define MAP_EVER_GRANDE_CITY (8 | (0 << 8))
#define MAP_LITTLEROOT_TOWN (9 | (0 << 8))
#define MAP_OLDALE_TOWN (10 | (0 << 8))
#define MAP_DEWFORD_TOWN (11 | (0 << 8))
#define MAP_LAVARIDGE_TOWN (12 | (0 << 8))
#define MAP_FALLARBOR_TOWN (13 | (0 << 8))
#define MAP_VERDANTURF_TOWN (14 | (0 << 8))
#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8))
#define MAP_ROUTE101 (16 | (0 << 8))
#define MAP_ROUTE102 (17 | (0 << 8))
#define MAP_ROUTE103 (18 | (0 << 8))
#define MAP_ROUTE104 (19 | (0 << 8))
#define MAP_ROUTE105 (20 | (0 << 8))
#define MAP_ROUTE106 (21 | (0 << 8))
#define MAP_ROUTE107 (22 | (0 << 8))
#define MAP_ROUTE108 (23 | (0 << 8))
#define MAP_ROUTE109 (24 | (0 << 8))
#define MAP_ROUTE110 (25 | (0 << 8))
#define MAP_ROUTE111 (26 | (0 << 8))
#define MAP_ROUTE112 (27 | (0 << 8))
#define MAP_ROUTE113 (28 | (0 << 8))
#define MAP_ROUTE114 (29 | (0 << 8))
#define MAP_ROUTE115 (30 | (0 << 8))
#define MAP_ROUTE116 (31 | (0 << 8))
#define MAP_ROUTE117 (32 | (0 << 8))
#define MAP_ROUTE118 (33 | (0 << 8))
#define MAP_ROUTE119 (34 | (0 << 8))
#define MAP_ROUTE120 (35 | (0 << 8))
#define MAP_ROUTE121 (36 | (0 << 8))
#define MAP_ROUTE122 (37 | (0 << 8))
#define MAP_ROUTE123 (38 | (0 << 8))
#define MAP_ROUTE124 (39 | (0 << 8))
#define MAP_ROUTE125 (40 | (0 << 8))
#define MAP_ROUTE126 (41 | (0 << 8))
#define MAP_ROUTE127 (42 | (0 << 8))
#define MAP_ROUTE128 (43 | (0 << 8))
#define MAP_ROUTE129 (44 | (0 << 8))
#define MAP_ROUTE130 (45 | (0 << 8))
#define MAP_ROUTE131 (46 | (0 << 8))
#define MAP_ROUTE132 (47 | (0 << 8))
#define MAP_ROUTE133 (48 | (0 << 8))
#define MAP_ROUTE134 (49 | (0 << 8))
#define MAP_UNDERWATER1 (50 | (0 << 8))
#define MAP_UNDERWATER2 (51 | (0 << 8))
#define MAP_UNDERWATER3 (52 | (0 << 8))
#define MAP_UNDERWATER4 (53 | (0 << 8))
// Map Group 1
#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8))
#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8))
// Map Group 2
#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8))
#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8))
#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8))
#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8))
#define MAP_OLDALE_TOWN_MART (4 | (2 << 8))
// Map Group 3
#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8))
#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8))
#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8))
#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8))
#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8))
#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8))
// Map Group 4
#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8))
#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8))
// Map Group 5
#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8))
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8))
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8))
#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8))
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8))
#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8))
#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8))
#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8))
// Map Group 6
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8))
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8))
#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8))
#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8))
#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8))
#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8))
#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8))
#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8))
#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8))
// Map Group 7
#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8))
#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8))
// Map Group 8
#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8))
#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8))
#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8))
#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8))
#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8))
#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8))
#define MAP_PETALBURG_CITY_MART (6 | (8 << 8))
// Map Group 9
#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8))
#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8))
#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8))
#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8))
#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8))
#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8))
#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8))
#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8))
#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8))
#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8))
// Map Group 10
#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8))
#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8))
#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8))
#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8))
#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8))
#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8))
#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8))
#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8))
// Map Group 11
#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8))
#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8))
#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8))
#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8))
#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8))
#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8))
#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8))
#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8))
#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8))
#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8))
#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8))
#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8))
#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8))
// Map Group 12
#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8))
#define MAP_FORTREE_CITY_GYM (1 | (12 << 8))
#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8))
#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8))
#define MAP_FORTREE_CITY_MART (4 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8))
#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8))
#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8))
// Map Group 13
#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8))
#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8))
#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8))
#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8))
#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8))
#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8))
#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8))
#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8))
#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8))
#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8))
#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8))
#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8))
#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8))
#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8))
// Map Group 14
#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8))
#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8))
#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8))
#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8))
#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8))
#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8))
#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8))
#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8))
#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8))
#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8))
// Map Group 15
#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8))
#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8))
// Map Group 16
#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8))
#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8))
// Map Group 17
#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8))
#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8))
// Map Group 18
#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8))
#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8))
// Map Group 19
#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8))
#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8))
// Map Group 20
#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8))
#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8))
#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8))
// Map Group 21
#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8))
// Map Group 22
#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8))
// Map Group 23
#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8))
// Map Group 24
#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8))
#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8))
#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8))
#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8))
#define MAP_RUSTURF_TUNNEL (4 | (24 << 8))
#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8))
#define MAP_DESERT_RUINS (6 | (24 << 8))
#define MAP_GRANITE_CAVE_1F (7 | (24 << 8))
#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8))
#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8))
#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8))
#define MAP_PETALBURG_WOODS (11 | (24 << 8))
#define MAP_MT_CHIMNEY (12 | (24 << 8))
#define MAP_JAGGED_PASS (13 | (24 << 8))
#define MAP_FIERY_PATH (14 | (24 << 8))
#define MAP_MT_PYRE_1F (15 | (24 << 8))
#define MAP_MT_PYRE_2F (16 | (24 << 8))
#define MAP_MT_PYRE_3F (17 | (24 << 8))
#define MAP_MT_PYRE_4F (18 | (24 << 8))
#define MAP_MT_PYRE_5F (19 | (24 << 8))
#define MAP_MT_PYRE_6F (20 | (24 << 8))
#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8))
#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8))
#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8))
#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8))
#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8))
#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8))
#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8))
#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) //
#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers
#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) //
#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8))
#define MAP_VICTORY_ROAD_1F (43 | (24 << 8))
#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8))
#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8))
#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8))
#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8))
#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8))
#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8))
#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8))
#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8))
#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8))
#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8))
#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8))
#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8))
#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8))
#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8))
#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8))
#define MAP_ISLAND_CAVE (67 | (24 << 8))
#define MAP_ANCIENT_TOMB (68 | (24 << 8))
#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8))
#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8))
#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8))
#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8))
#define MAP_SCORCHED_SLAB (73 | (24 << 8))
#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) //
#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers
#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) //
#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8))
#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8))
#define MAP_SKY_PILLAR_1F (79 | (24 << 8))
#define MAP_SKY_PILLAR_2F (80 | (24 << 8))
#define MAP_SKY_PILLAR_3F (81 | (24 << 8))
#define MAP_SKY_PILLAR_4F (82 | (24 << 8))
#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8))
#define MAP_SKY_PILLAR_5F (84 | (24 << 8))
#define MAP_SKY_PILLAR_TOP (85 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8))
#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8))
#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8))
#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8))
#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8))
#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8))
#define MAP_DESERT_UNDERPASS (98 | (24 << 8))
#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8))
#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8))
#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8))
#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8))
#define MAP_MARINE_CAVE_END (103 | (24 << 8))
#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8))
#define MAP_TERRA_CAVE_END (105 | (24 << 8))
#define MAP_ALTERING_CAVE (106 | (24 << 8))
#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8))
// Map Group 25
#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8))
#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8))
#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8))
#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8))
#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8))
#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8))
#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8))
#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8))
#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8))
#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8))
#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8))
#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8))
#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8))
#define MAP_TRADE_CENTER (25 | (25 << 8))
#define MAP_RECORD_CORNER (26 | (25 << 8))
#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8))
#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8))
#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8))
#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8))
#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8))
#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8))
#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8))
#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8))
#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8))
#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8))
#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8))
#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8))
#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8))
#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8))
#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8))
#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8))
#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8))
#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8))
#define MAP_UNION_ROOM (60 | (25 << 8))
// Map Group 26
#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8))
#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8))
#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8))
#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8))
#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8))
#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8))
#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8))
#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8))
#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8))
#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8))
#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8))
#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8))
#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8))
#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8))
#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8))
#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8))
#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8))
#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8))
#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8))
#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8))
#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8))
#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8))
#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8))
#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8))
#define MAP_TRAINER_HILL_1F (61 | (26 << 8))
#define MAP_TRAINER_HILL_2F (62 | (26 << 8))
#define MAP_TRAINER_HILL_3F (63 | (26 << 8))
#define MAP_TRAINER_HILL_4F (64 | (26 << 8))
#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8))
#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8))
#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8))
#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8))
#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8))
#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8))
#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8))
#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8))
#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8))
#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8))
#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8))
#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8))
#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8))
#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8))
// Map Group 27
#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8))
#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8))
// Map Group 28
#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8))
// Map Group 29
#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8))
#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8))
#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8))
#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8))
// Map Group 30
#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8))
// Map Group 31
#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8))
// Map Group 32
#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8))
#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8))
#define MAP_ROUTE119_HOUSE (2 | (32 << 8))
// Map Group 33
#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8))
#define MAP_NONE (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8))
#define MAP_GROUP(map) (MAP_##map >> 8)
#define MAP_NUM(map) (MAP_##map & 0xFF)
#endif // GUARD_CONSTANTS_MAPS_H
+362
View File
@@ -0,0 +1,362 @@
#ifndef GUARD_CONSTANTS_MOVES_H
#define GUARD_CONSTANTS_MOVES_H
#define MOVE_NONE 0
#define MOVE_POUND 1
#define MOVE_KARATE_CHOP 2
#define MOVE_DOUBLE_SLAP 3
#define MOVE_COMET_PUNCH 4
#define MOVE_MEGA_PUNCH 5
#define MOVE_PAY_DAY 6
#define MOVE_FIRE_PUNCH 7
#define MOVE_ICE_PUNCH 8
#define MOVE_THUNDER_PUNCH 9
#define MOVE_SCRATCH 10
#define MOVE_VICE_GRIP 11
#define MOVE_GUILLOTINE 12
#define MOVE_RAZOR_WIND 13
#define MOVE_SWORDS_DANCE 14
#define MOVE_CUT 15
#define MOVE_GUST 16
#define MOVE_WING_ATTACK 17
#define MOVE_WHIRLWIND 18
#define MOVE_FLY 19
#define MOVE_BIND 20
#define MOVE_SLAM 21
#define MOVE_VINE_WHIP 22
#define MOVE_STOMP 23
#define MOVE_DOUBLE_KICK 24
#define MOVE_MEGA_KICK 25
#define MOVE_JUMP_KICK 26
#define MOVE_ROLLING_KICK 27
#define MOVE_SAND_ATTACK 28
#define MOVE_HEADBUTT 29
#define MOVE_HORN_ATTACK 30
#define MOVE_FURY_ATTACK 31
#define MOVE_HORN_DRILL 32
#define MOVE_TACKLE 33
#define MOVE_BODY_SLAM 34
#define MOVE_WRAP 35
#define MOVE_TAKE_DOWN 36
#define MOVE_THRASH 37
#define MOVE_DOUBLE_EDGE 38
#define MOVE_TAIL_WHIP 39
#define MOVE_POISON_STING 40
#define MOVE_TWINEEDLE 41
#define MOVE_PIN_MISSILE 42
#define MOVE_LEER 43
#define MOVE_BITE 44
#define MOVE_GROWL 45
#define MOVE_ROAR 46
#define MOVE_SING 47
#define MOVE_SUPERSONIC 48
#define MOVE_SONIC_BOOM 49
#define MOVE_DISABLE 50
#define MOVE_ACID 51
#define MOVE_EMBER 52
#define MOVE_FLAMETHROWER 53
#define MOVE_MIST 54
#define MOVE_WATER_GUN 55
#define MOVE_HYDRO_PUMP 56
#define MOVE_SURF 57
#define MOVE_ICE_BEAM 58
#define MOVE_BLIZZARD 59
#define MOVE_PSYBEAM 60
#define MOVE_BUBBLE_BEAM 61
#define MOVE_AURORA_BEAM 62
#define MOVE_HYPER_BEAM 63
#define MOVE_PECK 64
#define MOVE_DRILL_PECK 65
#define MOVE_SUBMISSION 66
#define MOVE_LOW_KICK 67
#define MOVE_COUNTER 68
#define MOVE_SEISMIC_TOSS 69
#define MOVE_STRENGTH 70
#define MOVE_ABSORB 71
#define MOVE_MEGA_DRAIN 72
#define MOVE_LEECH_SEED 73
#define MOVE_GROWTH 74
#define MOVE_RAZOR_LEAF 75
#define MOVE_SOLAR_BEAM 76
#define MOVE_POISON_POWDER 77
#define MOVE_STUN_SPORE 78
#define MOVE_SLEEP_POWDER 79
#define MOVE_PETAL_DANCE 80
#define MOVE_STRING_SHOT 81
#define MOVE_DRAGON_RAGE 82
#define MOVE_FIRE_SPIN 83
#define MOVE_THUNDER_SHOCK 84
#define MOVE_THUNDERBOLT 85
#define MOVE_THUNDER_WAVE 86
#define MOVE_THUNDER 87
#define MOVE_ROCK_THROW 88
#define MOVE_EARTHQUAKE 89
#define MOVE_FISSURE 90
#define MOVE_DIG 91
#define MOVE_TOXIC 92
#define MOVE_CONFUSION 93
#define MOVE_PSYCHIC 94
#define MOVE_HYPNOSIS 95
#define MOVE_MEDITATE 96
#define MOVE_AGILITY 97
#define MOVE_QUICK_ATTACK 98
#define MOVE_RAGE 99
#define MOVE_TELEPORT 100
#define MOVE_NIGHT_SHADE 101
#define MOVE_MIMIC 102
#define MOVE_SCREECH 103
#define MOVE_DOUBLE_TEAM 104
#define MOVE_RECOVER 105
#define MOVE_HARDEN 106
#define MOVE_MINIMIZE 107
#define MOVE_SMOKESCREEN 108
#define MOVE_CONFUSE_RAY 109
#define MOVE_WITHDRAW 110
#define MOVE_DEFENSE_CURL 111
#define MOVE_BARRIER 112
#define MOVE_LIGHT_SCREEN 113
#define MOVE_HAZE 114
#define MOVE_REFLECT 115
#define MOVE_FOCUS_ENERGY 116
#define MOVE_BIDE 117
#define MOVE_METRONOME 118
#define MOVE_MIRROR_MOVE 119
#define MOVE_SELF_DESTRUCT 120
#define MOVE_EGG_BOMB 121
#define MOVE_LICK 122
#define MOVE_SMOG 123
#define MOVE_SLUDGE 124
#define MOVE_BONE_CLUB 125
#define MOVE_FIRE_BLAST 126
#define MOVE_WATERFALL 127
#define MOVE_CLAMP 128
#define MOVE_SWIFT 129
#define MOVE_SKULL_BASH 130
#define MOVE_SPIKE_CANNON 131
#define MOVE_CONSTRICT 132
#define MOVE_AMNESIA 133
#define MOVE_KINESIS 134
#define MOVE_SOFT_BOILED 135
#define MOVE_HI_JUMP_KICK 136
#define MOVE_GLARE 137
#define MOVE_DREAM_EATER 138
#define MOVE_POISON_GAS 139
#define MOVE_BARRAGE 140
#define MOVE_LEECH_LIFE 141
#define MOVE_LOVELY_KISS 142
#define MOVE_SKY_ATTACK 143
#define MOVE_TRANSFORM 144
#define MOVE_BUBBLE 145
#define MOVE_DIZZY_PUNCH 146
#define MOVE_SPORE 147
#define MOVE_FLASH 148
#define MOVE_PSYWAVE 149
#define MOVE_SPLASH 150
#define MOVE_ACID_ARMOR 151
#define MOVE_CRABHAMMER 152
#define MOVE_EXPLOSION 153
#define MOVE_FURY_SWIPES 154
#define MOVE_BONEMERANG 155
#define MOVE_REST 156
#define MOVE_ROCK_SLIDE 157
#define MOVE_HYPER_FANG 158
#define MOVE_SHARPEN 159
#define MOVE_CONVERSION 160
#define MOVE_TRI_ATTACK 161
#define MOVE_SUPER_FANG 162
#define MOVE_SLASH 163
#define MOVE_SUBSTITUTE 164
#define MOVE_STRUGGLE 165
#define MOVE_SKETCH 166
#define MOVE_TRIPLE_KICK 167
#define MOVE_THIEF 168
#define MOVE_SPIDER_WEB 169
#define MOVE_MIND_READER 170
#define MOVE_NIGHTMARE 171
#define MOVE_FLAME_WHEEL 172
#define MOVE_SNORE 173
#define MOVE_CURSE 174
#define MOVE_FLAIL 175
#define MOVE_CONVERSION_2 176
#define MOVE_AEROBLAST 177
#define MOVE_COTTON_SPORE 178
#define MOVE_REVERSAL 179
#define MOVE_SPITE 180
#define MOVE_POWDER_SNOW 181
#define MOVE_PROTECT 182
#define MOVE_MACH_PUNCH 183
#define MOVE_SCARY_FACE 184
#define MOVE_FAINT_ATTACK 185
#define MOVE_SWEET_KISS 186
#define MOVE_BELLY_DRUM 187
#define MOVE_SLUDGE_BOMB 188
#define MOVE_MUD_SLAP 189
#define MOVE_OCTAZOOKA 190
#define MOVE_SPIKES 191
#define MOVE_ZAP_CANNON 192
#define MOVE_FORESIGHT 193
#define MOVE_DESTINY_BOND 194
#define MOVE_PERISH_SONG 195
#define MOVE_ICY_WIND 196
#define MOVE_DETECT 197
#define MOVE_BONE_RUSH 198
#define MOVE_LOCK_ON 199
#define MOVE_OUTRAGE 200
#define MOVE_SANDSTORM 201
#define MOVE_GIGA_DRAIN 202
#define MOVE_ENDURE 203
#define MOVE_CHARM 204
#define MOVE_ROLLOUT 205
#define MOVE_FALSE_SWIPE 206
#define MOVE_SWAGGER 207
#define MOVE_MILK_DRINK 208
#define MOVE_SPARK 209
#define MOVE_FURY_CUTTER 210
#define MOVE_STEEL_WING 211
#define MOVE_MEAN_LOOK 212
#define MOVE_ATTRACT 213
#define MOVE_SLEEP_TALK 214
#define MOVE_HEAL_BELL 215
#define MOVE_RETURN 216
#define MOVE_PRESENT 217
#define MOVE_FRUSTRATION 218
#define MOVE_SAFEGUARD 219
#define MOVE_PAIN_SPLIT 220
#define MOVE_SACRED_FIRE 221
#define MOVE_MAGNITUDE 222
#define MOVE_DYNAMIC_PUNCH 223
#define MOVE_MEGAHORN 224
#define MOVE_DRAGON_BREATH 225
#define MOVE_BATON_PASS 226
#define MOVE_ENCORE 227
#define MOVE_PURSUIT 228
#define MOVE_RAPID_SPIN 229
#define MOVE_SWEET_SCENT 230
#define MOVE_IRON_TAIL 231
#define MOVE_METAL_CLAW 232
#define MOVE_VITAL_THROW 233
#define MOVE_MORNING_SUN 234
#define MOVE_SYNTHESIS 235
#define MOVE_MOONLIGHT 236
#define MOVE_HIDDEN_POWER 237
#define MOVE_CROSS_CHOP 238
#define MOVE_TWISTER 239
#define MOVE_RAIN_DANCE 240
#define MOVE_SUNNY_DAY 241
#define MOVE_CRUNCH 242
#define MOVE_MIRROR_COAT 243
#define MOVE_PSYCH_UP 244
#define MOVE_EXTREME_SPEED 245
#define MOVE_ANCIENT_POWER 246
#define MOVE_SHADOW_BALL 247
#define MOVE_FUTURE_SIGHT 248
#define MOVE_ROCK_SMASH 249
#define MOVE_WHIRLPOOL 250
#define MOVE_BEAT_UP 251
#define MOVE_FAKE_OUT 252
#define MOVE_UPROAR 253
#define MOVE_STOCKPILE 254
#define MOVE_SPIT_UP 255
#define MOVE_SWALLOW 256
#define MOVE_HEAT_WAVE 257
#define MOVE_HAIL 258
#define MOVE_TORMENT 259
#define MOVE_FLATTER 260
#define MOVE_WILL_O_WISP 261
#define MOVE_MEMENTO 262
#define MOVE_FACADE 263
#define MOVE_FOCUS_PUNCH 264
#define MOVE_SMELLING_SALT 265
#define MOVE_FOLLOW_ME 266
#define MOVE_NATURE_POWER 267
#define MOVE_CHARGE 268
#define MOVE_TAUNT 269
#define MOVE_HELPING_HAND 270
#define MOVE_TRICK 271
#define MOVE_ROLE_PLAY 272
#define MOVE_WISH 273
#define MOVE_ASSIST 274
#define MOVE_INGRAIN 275
#define MOVE_SUPERPOWER 276
#define MOVE_MAGIC_COAT 277
#define MOVE_RECYCLE 278
#define MOVE_REVENGE 279
#define MOVE_BRICK_BREAK 280
#define MOVE_YAWN 281
#define MOVE_KNOCK_OFF 282
#define MOVE_ENDEAVOR 283
#define MOVE_ERUPTION 284
#define MOVE_SKILL_SWAP 285
#define MOVE_IMPRISON 286
#define MOVE_REFRESH 287
#define MOVE_GRUDGE 288
#define MOVE_SNATCH 289
#define MOVE_SECRET_POWER 290
#define MOVE_DIVE 291
#define MOVE_ARM_THRUST 292
#define MOVE_CAMOUFLAGE 293
#define MOVE_TAIL_GLOW 294
#define MOVE_LUSTER_PURGE 295
#define MOVE_MIST_BALL 296
#define MOVE_FEATHER_DANCE 297
#define MOVE_TEETER_DANCE 298
#define MOVE_BLAZE_KICK 299
#define MOVE_MUD_SPORT 300
#define MOVE_ICE_BALL 301
#define MOVE_NEEDLE_ARM 302
#define MOVE_SLACK_OFF 303
#define MOVE_HYPER_VOICE 304
#define MOVE_POISON_FANG 305
#define MOVE_CRUSH_CLAW 306
#define MOVE_BLAST_BURN 307
#define MOVE_HYDRO_CANNON 308
#define MOVE_METEOR_MASH 309
#define MOVE_ASTONISH 310
#define MOVE_WEATHER_BALL 311
#define MOVE_AROMATHERAPY 312
#define MOVE_FAKE_TEARS 313
#define MOVE_AIR_CUTTER 314
#define MOVE_OVERHEAT 315
#define MOVE_ODOR_SLEUTH 316
#define MOVE_ROCK_TOMB 317
#define MOVE_SILVER_WIND 318
#define MOVE_METAL_SOUND 319
#define MOVE_GRASS_WHISTLE 320
#define MOVE_TICKLE 321
#define MOVE_COSMIC_POWER 322
#define MOVE_WATER_SPOUT 323
#define MOVE_SIGNAL_BEAM 324
#define MOVE_SHADOW_PUNCH 325
#define MOVE_EXTRASENSORY 326
#define MOVE_SKY_UPPERCUT 327
#define MOVE_SAND_TOMB 328
#define MOVE_SHEER_COLD 329
#define MOVE_MUDDY_WATER 330
#define MOVE_BULLET_SEED 331
#define MOVE_AERIAL_ACE 332
#define MOVE_ICICLE_SPEAR 333
#define MOVE_IRON_DEFENSE 334
#define MOVE_BLOCK 335
#define MOVE_HOWL 336
#define MOVE_DRAGON_CLAW 337
#define MOVE_FRENZY_PLANT 338
#define MOVE_BULK_UP 339
#define MOVE_BOUNCE 340
#define MOVE_MUD_SHOT 341
#define MOVE_POISON_TAIL 342
#define MOVE_COVET 343
#define MOVE_VOLT_TACKLE 344
#define MOVE_MAGICAL_LEAF 345
#define MOVE_WATER_SPORT 346
#define MOVE_CALM_MIND 347
#define MOVE_LEAF_BLADE 348
#define MOVE_DRAGON_DANCE 349
#define MOVE_ROCK_BLAST 350
#define MOVE_SHOCK_WAVE 351
#define MOVE_WATER_PULSE 352
#define MOVE_DOOM_DESIRE 353
#define MOVE_PSYCHO_BOOST 354
#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST
#endif // GUARD_CONSTANTS_MOVES_H
+465
View File
@@ -0,0 +1,465 @@
#ifndef GUARD_CONSTANTS_SONGS_H
#define GUARD_CONSTANTS_SONGS_H
#define SE_STOP 0
#define SE_KAIFUKU 1
#define SE_PC_LOGON 2
#define SE_PC_OFF 3
#define SE_PC_ON 4
#define SE_SELECT 5
#define SE_WIN_OPEN 6
#define SE_WALL_HIT 7
#define SE_DOOR 8
#define SE_KAIDAN 9
#define SE_DANSA 10
#define SE_JITENSYA 11
#define SE_KOUKA_L 12
#define SE_KOUKA_M 13
#define SE_KOUKA_H 14
#define SE_BOWA2 15
#define SE_POKE_DEAD 16
#define SE_NIGERU 17
#define SE_JIDO_DOA 18
#define SE_NAMINORI 19
#define SE_BAN 20
#define SE_PIN 21
#define SE_BOO 22
#define SE_BOWA 23
#define SE_JYUNI 24
#define SE_A 25
#define SE_I 26
#define SE_U 27
#define SE_E 28
#define SE_O 29
#define SE_N 30
#define SE_SEIKAI 31
#define SE_HAZURE 32
#define SE_EXP 33
#define SE_JITE_PYOKO 34
#define SE_MU_PACHI 35
#define SE_TK_KASYA 36
#define SE_FU_ZAKU 37
#define SE_FU_ZAKU2 38
#define SE_FU_ZUZUZU 39
#define SE_RU_GASHIN 40
#define SE_RU_GASYAN 41
#define SE_RU_BARI 42
#define SE_RU_HYUU 43
#define SE_KI_GASYAN 44
#define SE_TK_WARPIN 45
#define SE_TK_WARPOUT 46
#define SE_TU_SAA 47
#define SE_HI_TURUN 48
#define SE_TRACK_MOVE 49
#define SE_TRACK_STOP 50
#define SE_TRACK_HAIK 51
#define SE_TRACK_DOOR 52
#define SE_MOTER 53
#define SE_CARD 54
#define SE_SAVE 55
#define SE_KON 56
#define SE_KON2 57
#define SE_KON3 58
#define SE_KON4 59
#define SE_SUIKOMU 60
#define SE_NAGERU 61
#define SE_TOY_C 62
#define SE_TOY_D 63
#define SE_TOY_E 64
#define SE_TOY_F 65
#define SE_TOY_G 66
#define SE_TOY_A 67
#define SE_TOY_B 68
#define SE_TOY_C1 69
#define SE_MIZU 70
#define SE_HASHI 71
#define SE_DAUGI 72
#define SE_PINPON 73
#define SE_FUUSEN1 74
#define SE_FUUSEN2 75
#define SE_FUUSEN3 76
#define SE_TOY_KABE 77
#define SE_TOY_DANGO 78
#define SE_DOKU 79
#define SE_ESUKA 80
#define SE_T_AME 81
#define SE_T_AME_E 82
#define SE_T_OOAME 83
#define SE_T_OOAME_E 84
#define SE_T_KOAME 85
#define SE_T_KOAME_E 86
#define SE_T_KAMI 87
#define SE_T_KAMI2 88
#define SE_ELEBETA 89
#define SE_HINSI 90
#define SE_EXPMAX 91
#define SE_TAMAKORO 92
#define SE_TAMAKORO_E 93
#define SE_BASABASA 94
#define SE_REGI 95
#define SE_C_GAJI 96
#define SE_C_MAKU_U 97
#define SE_C_MAKU_D 98
#define SE_C_PASI 99
#define SE_C_SYU 100
#define SE_C_PIKON 101
#define SE_REAPOKE 102
#define SE_OP_BASYU 103
#define SE_BT_START 104
#define SE_DENDOU 105
#define SE_JIHANKI 106
#define SE_TAMA 107
#define SE_Z_SCROLL 108
#define SE_Z_PAGE 109
#define SE_PN_ON 110
#define SE_PN_OFF 111
#define SE_Z_SEARCH 112
#define SE_TAMAGO 113
#define SE_TB_START 114
#define SE_TB_KON 115
#define SE_TB_KARA 116
#define SE_BIDORO 117
#define SE_W085 118
#define SE_W085B 119
#define SE_W231 120
#define SE_W171 121
#define SE_W233 122
#define SE_W233B 123
#define SE_W145 124
#define SE_W145B 125
#define SE_W145C 126
#define SE_W240 127
#define SE_W015 128
#define SE_W081 129
#define SE_W081B 130
#define SE_W088 131
#define SE_W016 132
#define SE_W016B 133
#define SE_W003 134
#define SE_W104 135
#define SE_W013 136
#define SE_W196 137
#define SE_W086 138
#define SE_W004 139
#define SE_W025 140
#define SE_W025B 141
#define SE_W152 142
#define SE_W026 143
#define SE_W172 144
#define SE_W172B 145
#define SE_W053 146
#define SE_W007 147
#define SE_W092 148
#define SE_W221 149
#define SE_W221B 150
#define SE_W052 151
#define SE_W036 152
#define SE_W059 153
#define SE_W059B 154
#define SE_W010 155
#define SE_W011 156
#define SE_W017 157
#define SE_W019 158
#define SE_W028 159
#define SE_W013B 160
#define SE_W044 161
#define SE_W029 162
#define SE_W057 163
#define SE_W056 164
#define SE_W250 165
#define SE_W030 166
#define SE_W039 167
#define SE_W054 168
#define SE_W077 169
#define SE_W020 170
#define SE_W082 171
#define SE_W047 172
#define SE_W195 173
#define SE_W006 174
#define SE_W091 175
#define SE_W146 176
#define SE_W120 177
#define SE_W153 178
#define SE_W071B 179
#define SE_W071 180
#define SE_W103 181
#define SE_W062 182
#define SE_W062B 183
#define SE_W048 184
#define SE_W187 185
#define SE_W118 186
#define SE_W155 187
#define SE_W122 188
#define SE_W060 189
#define SE_W185 190
#define SE_W014 191
#define SE_W043 192
#define SE_W207 193
#define SE_W207B 194
#define SE_W215 195
#define SE_W109 196
#define SE_W173 197
#define SE_W280 198
#define SE_W202 199
#define SE_W060B 200
#define SE_W076 201
#define SE_W080 202
#define SE_W100 203
#define SE_W107 204
#define SE_W166 205
#define SE_W129 206
#define SE_W115 207
#define SE_W112 208
#define SE_W197 209
#define SE_W199 210
#define SE_W236 211
#define SE_W204 212
#define SE_W268 213
#define SE_W070 214
#define SE_W063 215
#define SE_W127 216
#define SE_W179 217
#define SE_W151 218
#define SE_W201 219
#define SE_W161 220
#define SE_W161B 221
#define SE_W227 222
#define SE_W227B 223
#define SE_W226 224
#define SE_W208 225
#define SE_W213 226
#define SE_W213B 227
#define SE_W234 228
#define SE_W260 229
#define SE_W328 230
#define SE_W320 231
#define SE_W255 232
#define SE_W291 233
#define SE_W089 234
#define SE_W239 235
#define SE_W230 236
#define SE_W281 237
#define SE_W327 238
#define SE_W287 239
#define SE_W257 240
#define SE_W253 241
#define SE_W258 242
#define SE_W322 243
#define SE_W298 244
#define SE_W287B 245
#define SE_W114 246
#define SE_W063B 247
#define BGM_STOP 349
#define BGM_TETSUJI 350
#define BGM_FIELD13 351
#define BGM_KACHI22 352
#define BGM_KACHI2 353
#define BGM_KACHI3 354
#define BGM_KACHI5 355
#define BGM_PCC 356
#define BGM_NIBI 357
#define BGM_SUIKUN 358
#define BGM_DOORO1 359
#define BGM_DOORO_X1 360
#define BGM_DOORO_X3 361
#define BGM_MACHI_S2 362
#define BGM_MACHI_S4 363
#define BGM_GIM 364
#define BGM_NAMINORI 365
#define BGM_DAN01 366
#define BGM_FANFA1 367
#define BGM_ME_ASA 368
#define BGM_ME_BACHI 369
#define BGM_FANFA4 370
#define BGM_FANFA5 371
#define BGM_ME_WAZA 372
#define BGM_BIJYUTU 373
#define BGM_DOORO_X4 374
#define BGM_FUNE_KAN 375
#define BGM_ME_SHINKA 376
#define BGM_SHINKA 377
#define BGM_ME_WASURE 378
#define BGM_SYOUJOEYE 379
#define BGM_BOYEYE 380
#define BGM_DAN02 381
#define BGM_MACHI_S3 382
#define BGM_ODAMAKI 383
#define BGM_B_TOWER 384
#define BGM_SWIMEYE 385
#define BGM_DAN03 386
#define BGM_ME_KINOMI 387
#define BGM_ME_TAMA 388
#define BGM_ME_B_BIG 389
#define BGM_ME_B_SMALL 390
#define BGM_ME_ZANNEN 391
#define BGM_BD_TIME 392
#define BGM_TEST1 393
#define BGM_TEST2 394
#define BGM_TEST3 395
#define BGM_TEST4 396
#define BGM_TEST 397
#define BGM_GOMACHI0 398
#define BGM_GOTOWN 399
#define BGM_POKECEN 400
#define BGM_NEXTROAD 401
#define BGM_GRANROAD 402
#define BGM_CYCLING 403
#define BGM_FRIENDLY 404
#define BGM_MISHIRO 405
#define BGM_TOZAN 406
#define BGM_GIRLEYE 407
#define BGM_MINAMO 408
#define BGM_ASHROAD 409
#define BGM_EVENT0 410
#define BGM_DEEPDEEP 411
#define BGM_KACHI1 412
#define BGM_TITLE3 413
#define BGM_DEMO1 414
#define BGM_GIRL_SUP 415
#define BGM_HAGESHII 416
#define BGM_KAKKOII 417
#define BGM_KAZANBAI 418
#define BGM_AQA_0 419
#define BGM_TSURETEK 420
#define BGM_BOY_SUP 421
#define BGM_RAINBOW 422
#define BGM_AYASII 423
#define BGM_KACHI4 424
#define BGM_ROPEWAY 425
#define BGM_CASINO 426
#define BGM_HIGHTOWN 427
#define BGM_SAFARI 428
#define BGM_C_ROAD 429
#define BGM_AJITO 430
#define BGM_M_BOAT 431
#define BGM_M_DUNGON 432
#define BGM_FINECITY 433
#define BGM_MACHUPI 434
#define BGM_P_SCHOOL 435
#define BGM_DENDOU 436
#define BGM_TONEKUSA 437
#define BGM_MABOROSI 438
#define BGM_CON_FAN 439
#define BGM_CONTEST0 440
#define BGM_MGM0 441
#define BGM_T_BATTLE 442
#define BGM_OOAME 443
#define BGM_HIDERI 444
#define BGM_RUNECITY 445
#define BGM_CON_K 446
#define BGM_EIKOU_R 447
#define BGM_KARAKURI 448
#define BGM_HUTAGO 449
#define BGM_SITENNOU 450
#define BGM_YAMA_EYE 451
#define BGM_CONLOBBY 452
#define BGM_INTER_V 453
#define BGM_DAIGO 454
#define BGM_THANKFOR 455
#define BGM_END 456
#define BGM_BATTLE_FRONTIER 457
#define BGM_BATTLE_ARENA 458
#define BGM_ME_BATTLE_POINTS 459
#define BGM_ME_MATCH_CALL 460
#define BGM_BATTLE_PYRAMID 461
#define BGM_BATTLE_PYRAMID_SUMMIT 462
#define BGM_BATTLE_PALACE 463
#define BGM_FANFA_RAYQUAZA 464
#define BGM_BATTLE_TOWER 465
#define BGM_ME_BATTLE_SYMBOL 466
#define BGM_BATTLE_DOME_TOURNAMENT 467
#define BGM_BATTLE_PIKE 468
#define BGM_BATTLE_FACTORY 469
#define BGM_BATTLE_LEGENDARY 470
#define BGM_BATTLE_FRONTIER_BRAIN 471
#define BGM_BATTLE_MEW 472
#define BGM_BATTLE_DOME 473
#define BGM_BATTLE27 474
#define BGM_BATTLE31 475
#define BGM_BATTLE20 476
#define BGM_BATTLE32 477
#define BGM_BATTLE33 478
#define BGM_BATTLE36 479
#define BGM_BATTLE34 480
#define BGM_BATTLE35 481
#define BGM_BATTLE38 482
#define BGM_BATTLE30 483
#define BGM_FRLG_FOLLOW_ME 484
#define BGM_FRLG_GAMECORNER 485
#define BGM_FRLG_ROCKET_HIDEOUT 486
#define BGM_FRLG_GYM 487
#define BGM_FRLG_JIGGLYPUFF 488
#define BGM_FRLG_OPENING 489
#define BGM_FRLG_TITLE 490
#define BGM_FRLG_CINNABAR_ISLAND 491
#define BGM_FRLG_LAVENDER_TOWN 492
#define BGM_FRLG_HEALING_TEST 493
#define BGM_FRLG_BICYCLE 494
#define BGM_FRLG_SUSPICIOUS_EYE 495
#define BGM_FRLG_GIRL_EYE 496
#define BGM_FRLG_BOY_EYE 497
#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 498
#define BGM_FRLG_VIRIDIAN_FOREST 499
#define BGM_FRLG_MT_MOON 500
#define BGM_FRLG_POKEMON_MANSION 501
#define BGM_FRLG_CREDITS 502
#define BGM_FRLG_ROUTE_1 503
#define BGM_FRLG_ROUTE_24 504
#define BGM_FRLG_ROUTE_3 505
#define BGM_FRLG_ROUTE_11 506
#define BGM_FRLG_INDIGO_PLATEAU 507
#define BGM_FRLG_BATTLE_LEADER 508
#define BGM_FRLG_BATTLE_TRAINER 509
#define BGM_FRLG_BATTLE_WILD_POKEMON 510
#define BGM_FRLG_BATTLE_CHAMPION 511
#define BGM_FRLG_PALLET_TOWN 512
#define BGM_FRLG_OAK_LAB 513
#define BGM_FRLG_PROF_OAK 514
#define BGM_FRLG_POKEMON_CENTER 515
#define BGM_FRLG_SS_ANNE 516
#define BGM_FRLG_SURF 517
#define BGM_FRLG_POKEMON_TOWER 518
#define BGM_FRLG_SILPH 519
#define BGM_FRLG_CERULEAN_CITY 520
#define BGM_FRLG_CELADON_CITY 521
#define BGM_FRLG_KACHI_TRAINER 522
#define BGM_FRLG_KACHI_WILD_POKEMON 523
#define BGM_FRLG_KACHI_LEADER 524
#define BGM_FRLG_VERMILION_CITY 525
#define BGM_FRLG_VIRIDIAN_CITY 526
#define BGM_FRLG_RIVAL 527
#define BGM_FRLG_RIVAL_POSTBATTLE 528
#define BGM_FRLG_ME_POKEDEX_EVAL 529
#define BGM_FRLG_ME_KEYITEM 530
#define BGM_FRLG_FANFA_POKEMON_CAUGHT 531
#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 532
#define BGM_FRLG_GAMEFREAK_LOGO 533
#define BGM_FRLG_CAUGHT_POKEMON 534
#define BGM_FRLG_GAME_EXPLANATION_START 535
#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 536
#define BGM_FRLG_GAME_EXPLANATION_END 537
#define BGM_FRLG_POKEMON_JUMP 538
#define BGM_FRLG_UNION_ROOM 539
#define BGM_FRLG_POKEMON_NETWORK_CENTER 540
#define BGM_FRLG_MYSTERY_GIFT 541
#define BGM_FRLG_DODRIO_BERRY_PICK 542
#define BGM_FRLG_MT_EMBER 543
#define BGM_FRLG_TEACHY_TV_EPISODE 544
#define BGM_FRLG_SEVII_ISLANDS 545
#define BGM_FRLG_TANOBY_RUINS 546
#define BGM_FRLG_ISLAND_ONE 547
#define BGM_FRLG_ISLAND_FOUR 548
#define BGM_FRLG_ISLAND_SIX 549
#define BGM_FRLG_FLUTE 550
#define BGM_FRLG_BATTLE_DEOXYS 551
#define BGM_FRLG_BATTLE_MEWTWO 552
#define BGM_FRLG_BATTLE_LEGENDARY 553
#define BGM_FRLG_LEADER_EYE 554
#define BGM_FRLG_DEOXYS_EYE 555
#define BGM_FRLG_TRAINER_TOWER 556
#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 557
#define BGM_FRLG_TEACHY_TV 558
#define BGM_ROUTE_118 0x7FFF // What is this for?
#endif // GUARD_CONSTANTS_SONGS_H
+450
View File
@@ -0,0 +1,450 @@
#ifndef GUARD_CONSTANTS_SPECIES_H
#define GUARD_CONSTANTS_SPECIES_H
#define SPECIES_NONE 0
#define SPECIES_BULBASAUR 1
#define SPECIES_IVYSAUR 2
#define SPECIES_VENUSAUR 3
#define SPECIES_CHARMANDER 4
#define SPECIES_CHARMELEON 5
#define SPECIES_CHARIZARD 6
#define SPECIES_SQUIRTLE 7
#define SPECIES_WARTORTLE 8
#define SPECIES_BLASTOISE 9
#define SPECIES_CATERPIE 10
#define SPECIES_METAPOD 11
#define SPECIES_BUTTERFREE 12
#define SPECIES_WEEDLE 13
#define SPECIES_KAKUNA 14
#define SPECIES_BEEDRILL 15
#define SPECIES_PIDGEY 16
#define SPECIES_PIDGEOTTO 17
#define SPECIES_PIDGEOT 18
#define SPECIES_RATTATA 19
#define SPECIES_RATICATE 20
#define SPECIES_SPEAROW 21
#define SPECIES_FEAROW 22
#define SPECIES_EKANS 23
#define SPECIES_ARBOK 24
#define SPECIES_PIKACHU 25
#define SPECIES_RAICHU 26
#define SPECIES_SANDSHREW 27
#define SPECIES_SANDSLASH 28
#define SPECIES_NIDORAN_F 29
#define SPECIES_NIDORINA 30
#define SPECIES_NIDOQUEEN 31
#define SPECIES_NIDORAN_M 32
#define SPECIES_NIDORINO 33
#define SPECIES_NIDOKING 34
#define SPECIES_CLEFAIRY 35
#define SPECIES_CLEFABLE 36
#define SPECIES_VULPIX 37
#define SPECIES_NINETALES 38
#define SPECIES_JIGGLYPUFF 39
#define SPECIES_WIGGLYTUFF 40
#define SPECIES_ZUBAT 41
#define SPECIES_GOLBAT 42
#define SPECIES_ODDISH 43
#define SPECIES_GLOOM 44
#define SPECIES_VILEPLUME 45
#define SPECIES_PARAS 46
#define SPECIES_PARASECT 47
#define SPECIES_VENONAT 48
#define SPECIES_VENOMOTH 49
#define SPECIES_DIGLETT 50
#define SPECIES_DUGTRIO 51
#define SPECIES_MEOWTH 52
#define SPECIES_PERSIAN 53
#define SPECIES_PSYDUCK 54
#define SPECIES_GOLDUCK 55
#define SPECIES_MANKEY 56
#define SPECIES_PRIMEAPE 57
#define SPECIES_GROWLITHE 58
#define SPECIES_ARCANINE 59
#define SPECIES_POLIWAG 60
#define SPECIES_POLIWHIRL 61
#define SPECIES_POLIWRATH 62
#define SPECIES_ABRA 63
#define SPECIES_KADABRA 64
#define SPECIES_ALAKAZAM 65
#define SPECIES_MACHOP 66
#define SPECIES_MACHOKE 67
#define SPECIES_MACHAMP 68
#define SPECIES_BELLSPROUT 69
#define SPECIES_WEEPINBELL 70
#define SPECIES_VICTREEBEL 71
#define SPECIES_TENTACOOL 72
#define SPECIES_TENTACRUEL 73
#define SPECIES_GEODUDE 74
#define SPECIES_GRAVELER 75
#define SPECIES_GOLEM 76
#define SPECIES_PONYTA 77
#define SPECIES_RAPIDASH 78
#define SPECIES_SLOWPOKE 79
#define SPECIES_SLOWBRO 80
#define SPECIES_MAGNEMITE 81
#define SPECIES_MAGNETON 82
#define SPECIES_FARFETCHD 83
#define SPECIES_DODUO 84
#define SPECIES_DODRIO 85
#define SPECIES_SEEL 86
#define SPECIES_DEWGONG 87
#define SPECIES_GRIMER 88
#define SPECIES_MUK 89
#define SPECIES_SHELLDER 90
#define SPECIES_CLOYSTER 91
#define SPECIES_GASTLY 92
#define SPECIES_HAUNTER 93
#define SPECIES_GENGAR 94
#define SPECIES_ONIX 95
#define SPECIES_DROWZEE 96
#define SPECIES_HYPNO 97
#define SPECIES_KRABBY 98
#define SPECIES_KINGLER 99
#define SPECIES_VOLTORB 100
#define SPECIES_ELECTRODE 101
#define SPECIES_EXEGGCUTE 102
#define SPECIES_EXEGGUTOR 103
#define SPECIES_CUBONE 104
#define SPECIES_MAROWAK 105
#define SPECIES_HITMONLEE 106
#define SPECIES_HITMONCHAN 107
#define SPECIES_LICKITUNG 108
#define SPECIES_KOFFING 109
#define SPECIES_WEEZING 110
#define SPECIES_RHYHORN 111
#define SPECIES_RHYDON 112
#define SPECIES_CHANSEY 113
#define SPECIES_TANGELA 114
#define SPECIES_KANGASKHAN 115
#define SPECIES_HORSEA 116
#define SPECIES_SEADRA 117
#define SPECIES_GOLDEEN 118
#define SPECIES_SEAKING 119
#define SPECIES_STARYU 120
#define SPECIES_STARMIE 121
#define SPECIES_MR_MIME 122
#define SPECIES_SCYTHER 123
#define SPECIES_JYNX 124
#define SPECIES_ELECTABUZZ 125
#define SPECIES_MAGMAR 126
#define SPECIES_PINSIR 127
#define SPECIES_TAUROS 128
#define SPECIES_MAGIKARP 129
#define SPECIES_GYARADOS 130
#define SPECIES_LAPRAS 131
#define SPECIES_DITTO 132
#define SPECIES_EEVEE 133
#define SPECIES_VAPOREON 134
#define SPECIES_JOLTEON 135
#define SPECIES_FLAREON 136
#define SPECIES_PORYGON 137
#define SPECIES_OMANYTE 138
#define SPECIES_OMASTAR 139
#define SPECIES_KABUTO 140
#define SPECIES_KABUTOPS 141
#define SPECIES_AERODACTYL 142
#define SPECIES_SNORLAX 143
#define SPECIES_ARTICUNO 144
#define SPECIES_ZAPDOS 145
#define SPECIES_MOLTRES 146
#define SPECIES_DRATINI 147
#define SPECIES_DRAGONAIR 148
#define SPECIES_DRAGONITE 149
#define SPECIES_MEWTWO 150
#define SPECIES_MEW 151
#define SPECIES_CHIKORITA 152
#define SPECIES_BAYLEEF 153
#define SPECIES_MEGANIUM 154
#define SPECIES_CYNDAQUIL 155
#define SPECIES_QUILAVA 156
#define SPECIES_TYPHLOSION 157
#define SPECIES_TOTODILE 158
#define SPECIES_CROCONAW 159
#define SPECIES_FERALIGATR 160
#define SPECIES_SENTRET 161
#define SPECIES_FURRET 162
#define SPECIES_HOOTHOOT 163
#define SPECIES_NOCTOWL 164
#define SPECIES_LEDYBA 165
#define SPECIES_LEDIAN 166
#define SPECIES_SPINARAK 167
#define SPECIES_ARIADOS 168
#define SPECIES_CROBAT 169
#define SPECIES_CHINCHOU 170
#define SPECIES_LANTURN 171
#define SPECIES_PICHU 172
#define SPECIES_CLEFFA 173
#define SPECIES_IGGLYBUFF 174
#define SPECIES_TOGEPI 175
#define SPECIES_TOGETIC 176
#define SPECIES_NATU 177
#define SPECIES_XATU 178
#define SPECIES_MAREEP 179
#define SPECIES_FLAAFFY 180
#define SPECIES_AMPHAROS 181
#define SPECIES_BELLOSSOM 182
#define SPECIES_MARILL 183
#define SPECIES_AZUMARILL 184
#define SPECIES_SUDOWOODO 185
#define SPECIES_POLITOED 186
#define SPECIES_HOPPIP 187
#define SPECIES_SKIPLOOM 188
#define SPECIES_JUMPLUFF 189
#define SPECIES_AIPOM 190
#define SPECIES_SUNKERN 191
#define SPECIES_SUNFLORA 192
#define SPECIES_YANMA 193
#define SPECIES_WOOPER 194
#define SPECIES_QUAGSIRE 195
#define SPECIES_ESPEON 196
#define SPECIES_UMBREON 197
#define SPECIES_MURKROW 198
#define SPECIES_SLOWKING 199
#define SPECIES_MISDREAVUS 200
#define SPECIES_UNOWN 201
#define SPECIES_WOBBUFFET 202
#define SPECIES_GIRAFARIG 203
#define SPECIES_PINECO 204
#define SPECIES_FORRETRESS 205
#define SPECIES_DUNSPARCE 206
#define SPECIES_GLIGAR 207
#define SPECIES_STEELIX 208
#define SPECIES_SNUBBULL 209
#define SPECIES_GRANBULL 210
#define SPECIES_QWILFISH 211
#define SPECIES_SCIZOR 212
#define SPECIES_SHUCKLE 213
#define SPECIES_HERACROSS 214
#define SPECIES_SNEASEL 215
#define SPECIES_TEDDIURSA 216
#define SPECIES_URSARING 217
#define SPECIES_SLUGMA 218
#define SPECIES_MAGCARGO 219
#define SPECIES_SWINUB 220
#define SPECIES_PILOSWINE 221
#define SPECIES_CORSOLA 222
#define SPECIES_REMORAID 223
#define SPECIES_OCTILLERY 224
#define SPECIES_DELIBIRD 225
#define SPECIES_MANTINE 226
#define SPECIES_SKARMORY 227
#define SPECIES_HOUNDOUR 228
#define SPECIES_HOUNDOOM 229
#define SPECIES_KINGDRA 230
#define SPECIES_PHANPY 231
#define SPECIES_DONPHAN 232
#define SPECIES_PORYGON2 233
#define SPECIES_STANTLER 234
#define SPECIES_SMEARGLE 235
#define SPECIES_TYROGUE 236
#define SPECIES_HITMONTOP 237
#define SPECIES_SMOOCHUM 238
#define SPECIES_ELEKID 239
#define SPECIES_MAGBY 240
#define SPECIES_MILTANK 241
#define SPECIES_BLISSEY 242
#define SPECIES_RAIKOU 243
#define SPECIES_ENTEI 244
#define SPECIES_SUICUNE 245
#define SPECIES_LARVITAR 246
#define SPECIES_PUPITAR 247
#define SPECIES_TYRANITAR 248
#define SPECIES_LUGIA 249
#define SPECIES_HO_OH 250
#define SPECIES_CELEBI 251
#define SPECIES_OLD_UNOWN_B 252
#define SPECIES_OLD_UNOWN_C 253
#define SPECIES_OLD_UNOWN_D 254
#define SPECIES_OLD_UNOWN_E 255
#define SPECIES_OLD_UNOWN_F 256
#define SPECIES_OLD_UNOWN_G 257
#define SPECIES_OLD_UNOWN_H 258
#define SPECIES_OLD_UNOWN_I 259
#define SPECIES_OLD_UNOWN_J 260
#define SPECIES_OLD_UNOWN_K 261
#define SPECIES_OLD_UNOWN_L 262
#define SPECIES_OLD_UNOWN_M 263
#define SPECIES_OLD_UNOWN_N 264
#define SPECIES_OLD_UNOWN_O 265
#define SPECIES_OLD_UNOWN_P 266
#define SPECIES_OLD_UNOWN_Q 267
#define SPECIES_OLD_UNOWN_R 268
#define SPECIES_OLD_UNOWN_S 269
#define SPECIES_OLD_UNOWN_T 270
#define SPECIES_OLD_UNOWN_U 271
#define SPECIES_OLD_UNOWN_V 272
#define SPECIES_OLD_UNOWN_W 273
#define SPECIES_OLD_UNOWN_X 274
#define SPECIES_OLD_UNOWN_Y 275
#define SPECIES_OLD_UNOWN_Z 276
#define SPECIES_TREECKO 277
#define SPECIES_GROVYLE 278
#define SPECIES_SCEPTILE 279
#define SPECIES_TORCHIC 280
#define SPECIES_COMBUSKEN 281
#define SPECIES_BLAZIKEN 282
#define SPECIES_MUDKIP 283
#define SPECIES_MARSHTOMP 284
#define SPECIES_SWAMPERT 285
#define SPECIES_POOCHYENA 286
#define SPECIES_MIGHTYENA 287
#define SPECIES_ZIGZAGOON 288
#define SPECIES_LINOONE 289
#define SPECIES_WURMPLE 290
#define SPECIES_SILCOON 291
#define SPECIES_BEAUTIFLY 292
#define SPECIES_CASCOON 293
#define SPECIES_DUSTOX 294
#define SPECIES_LOTAD 295
#define SPECIES_LOMBRE 296
#define SPECIES_LUDICOLO 297
#define SPECIES_SEEDOT 298
#define SPECIES_NUZLEAF 299
#define SPECIES_SHIFTRY 300
#define SPECIES_NINCADA 301
#define SPECIES_NINJASK 302
#define SPECIES_SHEDINJA 303
#define SPECIES_TAILLOW 304
#define SPECIES_SWELLOW 305
#define SPECIES_SHROOMISH 306
#define SPECIES_BRELOOM 307
#define SPECIES_SPINDA 308
#define SPECIES_WINGULL 309
#define SPECIES_PELIPPER 310
#define SPECIES_SURSKIT 311
#define SPECIES_MASQUERAIN 312
#define SPECIES_WAILMER 313
#define SPECIES_WAILORD 314
#define SPECIES_SKITTY 315
#define SPECIES_DELCATTY 316
#define SPECIES_KECLEON 317
#define SPECIES_BALTOY 318
#define SPECIES_CLAYDOL 319
#define SPECIES_NOSEPASS 320
#define SPECIES_TORKOAL 321
#define SPECIES_SABLEYE 322
#define SPECIES_BARBOACH 323
#define SPECIES_WHISCASH 324
#define SPECIES_LUVDISC 325
#define SPECIES_CORPHISH 326
#define SPECIES_CRAWDAUNT 327
#define SPECIES_FEEBAS 328
#define SPECIES_MILOTIC 329
#define SPECIES_CARVANHA 330
#define SPECIES_SHARPEDO 331
#define SPECIES_TRAPINCH 332
#define SPECIES_VIBRAVA 333
#define SPECIES_FLYGON 334
#define SPECIES_MAKUHITA 335
#define SPECIES_HARIYAMA 336
#define SPECIES_ELECTRIKE 337
#define SPECIES_MANECTRIC 338
#define SPECIES_NUMEL 339
#define SPECIES_CAMERUPT 340
#define SPECIES_SPHEAL 341
#define SPECIES_SEALEO 342
#define SPECIES_WALREIN 343
#define SPECIES_CACNEA 344
#define SPECIES_CACTURNE 345
#define SPECIES_SNORUNT 346
#define SPECIES_GLALIE 347
#define SPECIES_LUNATONE 348
#define SPECIES_SOLROCK 349
#define SPECIES_AZURILL 350
#define SPECIES_SPOINK 351
#define SPECIES_GRUMPIG 352
#define SPECIES_PLUSLE 353
#define SPECIES_MINUN 354
#define SPECIES_MAWILE 355
#define SPECIES_MEDITITE 356
#define SPECIES_MEDICHAM 357
#define SPECIES_SWABLU 358
#define SPECIES_ALTARIA 359
#define SPECIES_WYNAUT 360
#define SPECIES_DUSKULL 361
#define SPECIES_DUSCLOPS 362
#define SPECIES_ROSELIA 363
#define SPECIES_SLAKOTH 364
#define SPECIES_VIGOROTH 365
#define SPECIES_SLAKING 366
#define SPECIES_GULPIN 367
#define SPECIES_SWALOT 368
#define SPECIES_TROPIUS 369
#define SPECIES_WHISMUR 370
#define SPECIES_LOUDRED 371
#define SPECIES_EXPLOUD 372
#define SPECIES_CLAMPERL 373
#define SPECIES_HUNTAIL 374
#define SPECIES_GOREBYSS 375
#define SPECIES_ABSOL 376
#define SPECIES_SHUPPET 377
#define SPECIES_BANETTE 378
#define SPECIES_SEVIPER 379
#define SPECIES_ZANGOOSE 380
#define SPECIES_RELICANTH 381
#define SPECIES_ARON 382
#define SPECIES_LAIRON 383
#define SPECIES_AGGRON 384
#define SPECIES_CASTFORM 385
#define SPECIES_VOLBEAT 386
#define SPECIES_ILLUMISE 387
#define SPECIES_LILEEP 388
#define SPECIES_CRADILY 389
#define SPECIES_ANORITH 390
#define SPECIES_ARMALDO 391
#define SPECIES_RALTS 392
#define SPECIES_KIRLIA 393
#define SPECIES_GARDEVOIR 394
#define SPECIES_BAGON 395
#define SPECIES_SHELGON 396
#define SPECIES_SALAMENCE 397
#define SPECIES_BELDUM 398
#define SPECIES_METANG 399
#define SPECIES_METAGROSS 400
#define SPECIES_REGIROCK 401
#define SPECIES_REGICE 402
#define SPECIES_REGISTEEL 403
#define SPECIES_KYOGRE 404
#define SPECIES_GROUDON 405
#define SPECIES_RAYQUAZA 406
#define SPECIES_LATIAS 407
#define SPECIES_LATIOS 408
#define SPECIES_JIRACHI 409
#define SPECIES_DEOXYS 410
#define SPECIES_CHIMECHO 411
#define SPECIES_EGG 412
#define SPECIES_UNOWN_B 413
#define SPECIES_UNOWN_C 414
#define SPECIES_UNOWN_D 415
#define SPECIES_UNOWN_E 416
#define SPECIES_UNOWN_F 417
#define SPECIES_UNOWN_G 418
#define SPECIES_UNOWN_H 419
#define SPECIES_UNOWN_I 420
#define SPECIES_UNOWN_J 421
#define SPECIES_UNOWN_K 422
#define SPECIES_UNOWN_L 423
#define SPECIES_UNOWN_M 424
#define SPECIES_UNOWN_N 425
#define SPECIES_UNOWN_O 426
#define SPECIES_UNOWN_P 427
#define SPECIES_UNOWN_Q 428
#define SPECIES_UNOWN_R 429
#define SPECIES_UNOWN_S 430
#define SPECIES_UNOWN_T 431
#define SPECIES_UNOWN_U 432
#define SPECIES_UNOWN_V 433
#define SPECIES_UNOWN_W 434
#define SPECIES_UNOWN_X 435
#define SPECIES_UNOWN_Y 436
#define SPECIES_UNOWN_Z 437
#define SPECIES_UNOWN_EMARK 438
#define SPECIES_UNOWN_QMARK 439
#define NUM_SPECIES SPECIES_EGG
#endif // GUARD_CONSTANTS_SPECIES_H
+288
View File
@@ -0,0 +1,288 @@
#ifndef GUARD_CONSTANTS_VARS_H
#define GUARD_CONSTANTS_VARS_H
#define VAR_0x3F20 0x3F20
#define VAR_0x4000 0x4000
#define VAR_0x4001 0x4001
#define VAR_0x4002 0x4002
#define VAR_0x4003 0x4003
#define VAR_0x4004 0x4004
#define VAR_0x4005 0x4005
#define VAR_0x4006 0x4006
#define VAR_0x4007 0x4007
#define VAR_0x4008 0x4008
#define VAR_0x4009 0x4009
#define VAR_0x400A 0x400A
#define VAR_0x400B 0x400B
#define VAR_0x400C 0x400C
#define VAR_0x400D 0x400D
#define VAR_0x400E 0x400E
#define VAR_0x400F 0x400F
#define VAR_0x4010 0x4010
#define VAR_0x4011 0x4011
#define VAR_0x4012 0x4012
#define VAR_0x4013 0x4013
#define VAR_0x4014 0x4014
#define VAR_0x4015 0x4015
#define VAR_0x4016 0x4016
#define VAR_0x4017 0x4017
#define VAR_0x4018 0x4018
#define VAR_0x4019 0x4019
#define VAR_0x401A 0x401A
#define VAR_0x401B 0x401B
#define VAR_0x401C 0x401C
#define VAR_0x401D 0x401D
#define VAR_0x401E 0x401E
#define VAR_0x401F 0x401F
#define VAR_RECYCLE_GOODS 0x4020
#define VAR_REPEL_STEP_COUNT 0x4021
#define VAR_ICE_STEP_COUNT 0x4022
#define VAR_FIRST_POKE 0x4023
#define VAR_MIRAGE_RND_H 0x4024
#define VAR_MIRAGE_RND_L 0x4025
#define VAR_SECRET_BASE_MAP 0x4026
#define VAR_0x4027 0x4027
#define VAR_0x4028 0x4028
#define VAR_0x4029 0x4029
#define VAR_HAPPINESS_STEP_COUNTER 0x402A
#define VAR_POISON_STEP_COUNTER 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E
#define VAR_FRONTIER_MANIAC_FACILITY 0x402F
#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030
#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031
#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032
#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033
#define VAR_0x4034 0x4034
#define VAR_0x4035 0x4035
#define VAR_STORAGE_UNKNOWN 0x4036
#define VAR_0x4037 0x4037
#define VAR_0x4038 0x4038
#define VAR_0x4039 0x4039
#define VAR_0x403A 0x403A
#define VAR_0x403B 0x403B
#define VAR_0x403C 0x403C
#define VAR_0x403D 0x403D
#define VAR_ALTERING_CAVE_WILD_SET 0x403E
#define VAR_0x403F 0x403F
#define VAR_DAYS 0x4040
#define VAR_0x4041 0x4041
#define VAR_0x4042 0x4042
#define VAR_DEPT_STORE_FLOOR 0x4043
#define VAR_0x4044 0x4044
#define VAR_POKELOT_PRIZE 0x4045
#define VAR_NATIONAL_DEX 0x4046
#define VAR_SEEDOT_SIZE_RECORD 0x4047
#define VAR_ASH_GATHER_COUNT 0x4048
#define VAR_BIRCH_STATE 0x4049
#define VAR_CRUISE_STEP_COUNT 0x404A
#define VAR_POKELOT_RND1 0x404B
#define VAR_POKELOT_RND2 0x404C
#define VAR_0x404D 0x404D
#define VAR_0x404E 0x404E
#define VAR_LOTAD_SIZE_RECORD 0x404F
#define VAR_0x4050 0x4050
#define VAR_0x4051 0x4051
#define VAR_0x4052 0x4052
#define VAR_0x4053 0x4053
#define VAR_0x4054 0x4054
#define VAR_0x4055 0x4055
#define VAR_0x4056 0x4056
#define VAR_0x4057 0x4057
#define VAR_0x4058 0x4058
#define VAR_0x4059 0x4059
#define VAR_0x405A 0x405A
#define VAR_0x405B 0x405B
#define VAR_0x405C 0x405C
#define VAR_0x405D 0x405D
#define VAR_0x405E 0x405E
#define VAR_0x405F 0x405F
#define VAR_0x4060 0x4060
#define VAR_0x4061 0x4061
#define VAR_0x4062 0x4062
#define VAR_0x4063 0x4063
#define VAR_0x4064 0x4064
#define VAR_0x4065 0x4065
#define VAR_0x4066 0x4066
#define VAR_0x4067 0x4067
#define VAR_0x4068 0x4068
#define VAR_0x4069 0x4069
#define VAR_0x406A 0x406A
#define VAR_0x406B 0x406B
#define VAR_0x406C 0x406C
#define VAR_0x406D 0x406D
#define VAR_0x406E 0x406E
#define VAR_0x406F 0x406F
#define VAR_0x4070 0x4070
#define VAR_0x4071 0x4071
#define VAR_0x4072 0x4072
#define VAR_0x4073 0x4073
#define VAR_0x4074 0x4074
#define VAR_0x4075 0x4075
#define VAR_0x4076 0x4076
#define VAR_0x4077 0x4077
#define VAR_0x4078 0x4078
#define VAR_0x4079 0x4079
#define VAR_0x407A 0x407A
#define VAR_0x407B 0x407B
#define VAR_0x407C 0x407C
#define VAR_0x407D 0x407D
#define VAR_0x407E 0x407E
#define VAR_0x407F 0x407F
#define VAR_0x4080 0x4080
#define VAR_0x4081 0x4081
#define VAR_0x4082 0x4082
#define VAR_0x4083 0x4083
#define VAR_0x4084 0x4084
#define VAR_0x4085 0x4085
#define VAR_0x4086 0x4086
#define VAR_0x4087 0x4087
#define VAR_0x4088 0x4088
#define VAR_0x4089 0x4089
#define VAR_0x408A 0x408A
#define VAR_0x408B 0x408B
#define VAR_0x408C 0x408C
#define VAR_0x408D 0x408D
#define VAR_0x408E 0x408E
#define VAR_0x408F 0x408F
#define VAR_0x4090 0x4090
#define VAR_0x4091 0x4091
#define VAR_0x4092 0x4092
#define VAR_0x4093 0x4093
#define VAR_0x4094 0x4094
#define VAR_0x4095 0x4095
#define VAR_0x4096 0x4096
#define VAR_0x4097 0x4097
#define VAR_0x4098 0x4098
#define VAR_0x4099 0x4099
#define VAR_0x409A 0x409A
#define VAR_0x409B 0x409B
#define VAR_0x409C 0x409C
#define VAR_0x409D 0x409D
#define VAR_0x409E 0x409E
#define VAR_0x409F 0x409F
#define VAR_0x40A0 0x40A0
#define VAR_0x40A1 0x40A1
#define VAR_0x40A2 0x40A2
#define VAR_0x40A3 0x40A3
#define VAR_0x40A4 0x40A4
#define VAR_0x40A5 0x40A5
#define VAR_0x40A6 0x40A6
#define VAR_0x40A7 0x40A7
#define VAR_0x40A8 0x40A8
#define VAR_0x40A9 0x40A9
#define VAR_0x40AA 0x40AA
#define VAR_0x40AB 0x40AB
#define VAR_0x40AC 0x40AC
#define VAR_0x40AD 0x40AD
#define VAR_0x40AE 0x40AE
#define VAR_0x40AF 0x40AF
#define VAR_0x40B0 0x40B0
#define VAR_0x40B1 0x40B1
#define VAR_0x40B2 0x40B2
#define VAR_0x40B3 0x40B3
#define VAR_PORTHOLE 0x40B4
#define VAR_0x40B5 0x40B5
#define VAR_0x40B6 0x40B6
#define VAR_0x40B7 0x40B7
#define VAR_0x40B8 0x40B8
#define VAR_0x40B9 0x40B9
#define VAR_0x40BA 0x40BA
#define VAR_0x40BB 0x40BB
#define VAR_0x40BC 0x40BC
#define VAR_0x40BD 0x40BD
#define VAR_0x40BE 0x40BE
#define VAR_0x40BF 0x40BF
#define VAR_0x40C0 0x40C0
#define VAR_0x40C1 0x40C1
#define VAR_0x40C2 0x40C2
#define VAR_0x40C3 0x40C3
#define VAR_0x40C4 0x40C4
#define VAR_0x40C5 0x40C5
#define VAR_0x40C6 0x40C6
#define VAR_0x40C7 0x40C7
#define VAR_0x40C8 0x40C8
#define VAR_0x40C9 0x40C9
#define VAR_0x40CA 0x40CA
#define VAR_0x40CB 0x40CB
#define VAR_0x40CC 0x40CC
#define VAR_0x40CD 0x40CD
#define VAR_0x40CE 0x40CE
#define VAR_FRONTIER_FACILITY 0x40CF
#define VAR_0x40D0 0x40D0
#define VAR_0x40D1 0x40D1
#define VAR_0x40D2 0x40D2
#define VAR_0x40D3 0x40D3
#define VAR_0x40D4 0x40D4
#define VAR_0x40D5 0x40D5
#define VAR_0x40D6 0x40D6
#define VAR_0x40D7 0x40D7
#define VAR_0x40D8 0x40D8
#define VAR_0x40D9 0x40D9
#define VAR_0x40DA 0x40DA
#define VAR_0x40DB 0x40DB
#define VAR_0x40DC 0x40DC
#define VAR_0x40DD 0x40DD
#define VAR_0x40DE 0x40DE
#define VAR_0x40DF 0x40DF
#define VAR_0x40E0 0x40E0
#define VAR_0x40E1 0x40E1
#define VAR_0x40E2 0x40E2
#define VAR_0x40E3 0x40E3
#define VAR_0x40E4 0x40E4
#define VAR_0x40E5 0x40E5
#define VAR_DAILY_SLOTS 0x40E6
#define VAR_DAILY_WILDS 0x40E7
#define VAR_DAILY_BLENDER 0x40E8
#define VAR_DAILY_PLANTED_BERRIES 0x40E9
#define VAR_DAILY_PICKED_BERRIES 0x40EA
#define VAR_DAILY_ROULETTE 0x40EB
#define VAR_0x40EC 0x40EC
#define VAR_0x40ED 0x40ED
#define VAR_0x40EE 0x40EE
#define VAR_0x40EF 0x40EF
#define VAR_0x40F0 0x40F0
#define VAR_DAILY_BP 0x40F1
#define VAR_0x40F2 0x40F2
#define VAR_0x40F3 0x40F3
#define VAR_0x40F4 0x40F4
#define VAR_0x40F5 0x40F5
#define VAR_0x40F6 0x40F6
#define VAR_0x40F7 0x40F7
#define VAR_0x40F8 0x40F8
#define VAR_0x40F9 0x40F9
#define VAR_0x40FA 0x40FA
#define VAR_0x40FB 0x40FB
#define VAR_0x40FC 0x40FC
#define VAR_0x40FD 0x40FD
#define VAR_0x40FE 0x40FE
#define VAR_0x40FF 0x40FF
#define VAR_0x8000 0x8000
#define VAR_0x8001 0x8001
#define VAR_0x8002 0x8002
#define VAR_0x8003 0x8003
#define VAR_0x8004 0x8004
#define VAR_0x8005 0x8005
#define VAR_0x8006 0x8006
#define VAR_0x8007 0x8007
#define VAR_0x8008 0x8008
#define VAR_0x8009 0x8009
#define VAR_0x800A 0x800A
#define VAR_0x800B 0x800B
#define VAR_FACING 0x800C
#define VAR_RESULT 0x800D
#define VAR_ITEM_ID 0x800E
#define VAR_LAST_TALKED 0x800F
#define VAR_CONTEST_RANK 0x8010
#define VAR_CONTEST_CATEGORY 0x8011
#define VAR_MON_BOX_ID 0x8012
#define VAR_MON_BOX_POS 0x8013
#define VAR_0x8014 0x8014
#endif // GUARD_CONSTANTS_VARS_H
+20
View File
@@ -0,0 +1,20 @@
#ifndef GUARD_DATA2_H
#define GUARD_DATA2_H
struct MonCoords
{
// This would use a bitfield, but some function
// uses it as a u8 and casting won't match.
u8 coords; // u8 x:4, y:4;
u8 y_offset;
};
extern struct MonCoords gTrainerBackPicCoords[];
extern struct MonCoords gTrainerFrontPicCoords[];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13];
extern const u8 gAbilityNames[][13];
extern const u8 gTypeNames[][7];
#endif // GUARD_DATA2_H
+27
View File
@@ -0,0 +1,27 @@
#ifndef GUARD_DAYCARE_H
#define GUARD_DAYCARE_H
#define EGG_HATCH_LEVEL 5
u8 *GetMonNick(struct Pokemon *mon, u8 *dest);
u8 *GetBoxMonNick(struct BoxPokemon *mon, u8 *dest);
u8 CountPokemonInDaycare(struct DayCare *daycare);
void InitDaycareMailRecordMixing(struct DayCare *daycare, struct RecordMixingDayCareMail *daycareMail);
void StoreSelectedPokemonInDaycare(void);
u16 TakePokemonFromDaycare(void);
void GetDaycareCost(void);
u8 GetNumLevelsGainedFromDaycare(void);
void TriggerPendingDaycareEgg(void);
void RejectEggFromDayCare(void);
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
void GiveEggFromDaycare(void);
bool8 DoEggActions_CheckHatch(void);
u16 GetSelectedMonNickAndSpecies(void);
void GetDaycareMonNicknames(void);
u8 GetDaycareState(void);
void SetDaycareCompatibilityString(void);
bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio);
void ShowDaycareLevelMenu(void);
void ChooseSendDaycareMon(void);
#endif // GUARD_DAYCARE_H
+33
View File
@@ -0,0 +1,33 @@
#ifndef GUARD_DECOMPRESS_H
#define GUARD_DECOMPRESS_H
#include "sprite.h"
extern u8 gDecompressionBuffer[0x4000];
void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src);
void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src);
void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src);
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
u32 sub_8034974(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_DIPLOMA_H
#define GUARD_DIPLOMA_H
void CB2_ShowDiploma(void);
#endif // GUARD_DIPLOMA_H
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_DMA3_H
#define GUARD_DMA3_H
void ClearDma3Requests(void);
void ProcessDma3Requests(void);
int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
int CheckForSpaceForDma3Request(s16 index);
#endif // GUARD_DMA3_H
+39
View File
@@ -0,0 +1,39 @@
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
// Taken from Pokeruby, check if it's correct
enum
{
EC_GROUP_POKEMON,
EC_GROUP_TRAINER,
EC_GROUP_STATUS,
EC_GROUP_BATTLE,
EC_GROUP_GREETINGS,
EC_GROUP_PEOPLE,
EC_GROUP_VOICES,
EC_GROUP_SPEECH,
EC_GROUP_ENDINGS,
EC_GROUP_FEELINGS,
EC_GROUP_CONDITIONS,
EC_GROUP_ACTIONS,
EC_GROUP_LIFESTYLE,
EC_GROUP_HOBBIES,
EC_GROUP_TIME,
EC_GROUP_MISC,
EC_GROUP_ADJECTIVES,
EC_GROUP_EVENTS,
EC_GROUP_MOVE_1,
EC_GROUP_MOVE_2,
EC_GROUP_TRENDY_SAYING,
EC_GROUP_POKEMON_2,
};
void InitEasyChatPhrases(void);
void easy_chat_input_maybe(void);
void CopyEasyChatWord(u8 *dest, u16 word);
bool32 sub_811F8D8(u16 word);
void InitializeEasyChatWordArray(u16 *words, u16 length);
void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2);
bool8 ECWord_CheckIfOutsideOfValidRange(u16 word);
#endif // GUARD_EASYCHAT_H
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_EGG_HATCH_H
#define GUARD_EGG_HATCH_H
void ScriptHatchMon(void);
bool8 sub_8071614(void);
void EggHatch(void);
u8 GetEggStepsToSubtract(void);
u16 sub_80722E0(void);
#endif // GUARD_EGG_HATCH_H
+52
View File
@@ -0,0 +1,52 @@
#ifndef GUARD_EVENT_DATA_H
#define GUARD_EVENT_DATA_H
#include "constants/flags.h"
#include "constants/vars.h"
void InitEventData(void);
void ClearTempFieldEventData(void);
void ClearUpperFlags(void);
void DisableNationalPokedex(void);
void EnableNationalPokedex(void);
bool32 IsNationalPokedexEnabled(void);
void DisableMysteryEvent(void);
void EnableMysteryEvent(void);
bool32 IsMysteryEventEnabled(void);
void DisableMysteryGift(void);
void EnableMysteryGift(void);
bool32 IsMysteryGiftEnabled(void);
void sub_809D4D8(void);
void sub_809D570(void);
void DisableResetRTC(void);
void EnableResetRTC(void);
bool32 CanResetRTC(void);
u16 *GetVarPointer(u16 id);
u16 VarGet(u16 id);
bool8 VarSet(u16 id, u16 value);
u8 VarGetFieldObjectGraphicsId(u8 id);
u8 *GetFlagPointer(u16 id);
u8 FlagSet(u16 id);
u8 FlagClear(u16 id);
bool8 FlagGet(u16 id);
extern u16 gSpecialVar_0x8000;
extern u16 gSpecialVar_0x8001;
extern u16 gSpecialVar_0x8002;
extern u16 gSpecialVar_0x8003;
extern u16 gSpecialVar_0x8004;
extern u16 gSpecialVar_0x8005;
extern u16 gSpecialVar_0x8006;
extern u16 gSpecialVar_0x8007;
extern u16 gSpecialVar_0x8008;
extern u16 gSpecialVar_0x8009;
extern u16 gSpecialVar_0x800A;
extern u16 gSpecialVar_0x800B;
extern u16 gSpecialVar_Result;
extern u16 gSpecialVar_LastTalked;
extern u16 gSpecialVar_Facing;
extern u16 gSpecialVar_MonBoxId;
extern u16 gSpecialVar_MonBoxPos;
extern u16 gSpecialVar_0x8014;
#endif // GUARD_EVENT_DATA_H
+375
View File
@@ -0,0 +1,375 @@
//
// Created by scott on 9/12/2017.
//
#ifndef GUARD_EVENT_SCRIPTS_H
#define GUARD_EVENT_SCRIPTS_H
extern const u8 gUnknown_0823B4E8[];
extern const u8 gUnknown_0823B5E9[];
extern const u8 EventScript_275BB7[];
extern const u8 EventScript_275D0C[];
extern const u8 EventScript_275D1F[];
extern const u8 EventScript_275D2E[];
extern const u8 EventScript_2766A2[];
extern const u8 EventScript_2766A6[];
extern const u8 gTVBravoTrainerText00[];
extern const u8 gTVBravoTrainerText01[];
extern const u8 gTVBravoTrainerText02[];
extern const u8 gTVBravoTrainerText03[];
extern const u8 gTVBravoTrainerText04[];
extern const u8 gTVBravoTrainerText05[];
extern const u8 gTVBravoTrainerText06[];
extern const u8 gTVBravoTrainerText07[];
extern const u8 gTVBravoTrainerText08[];
extern const u8 gTVBravoTrainerBattleTowerText00[];
extern const u8 gTVBravoTrainerBattleTowerText01[];
extern const u8 gTVBravoTrainerBattleTowerText02[];
extern const u8 gTVBravoTrainerBattleTowerText03[];
extern const u8 gTVBravoTrainerBattleTowerText04[];
extern const u8 gTVBravoTrainerBattleTowerText05[];
extern const u8 gTVBravoTrainerBattleTowerText06[];
extern const u8 gTVBravoTrainerBattleTowerText07[];
extern const u8 gTVBravoTrainerBattleTowerText08[];
extern const u8 gTVBravoTrainerBattleTowerText09[];
extern const u8 gTVBravoTrainerBattleTowerText10[];
extern const u8 gTVBravoTrainerBattleTowerText11[];
extern const u8 gTVBravoTrainerBattleTowerText12[];
extern const u8 gTVBravoTrainerBattleTowerText13[];
extern const u8 gTVBravoTrainerBattleTowerText14[];
extern const u8 gTVFanClubOpinionsText00[];
extern const u8 gTVFanClubOpinionsText01[];
extern const u8 gTVFanClubOpinionsText02[];
extern const u8 gTVFanClubOpinionsText03[];
extern const u8 gTVFanClubOpinionsText04[];
extern const u8 gTVFanClubText00[];
extern const u8 gTVFanClubText01[];
extern const u8 gTVFanClubText02[];
extern const u8 gTVFanClubText03[];
extern const u8 gTVFanClubText04[];
extern const u8 gTVFanClubText05[];
extern const u8 gTVFanClubText06[];
extern const u8 gTVFanClubText07[];
extern const u8 gTVRecentHappeningsText00[];
extern const u8 gTVRecentHappeningsText01[];
extern const u8 gTVRecentHappeningsText02[];
extern const u8 gTVRecentHappeningsText03[];
extern const u8 gTVRecentHappeningsText04[];
extern const u8 gTVRecentHappeningsText05[];
extern const u8 gTVMassOutbreakText00[];
extern const u8 gTV3CheersForPokeblocksText00[];
extern const u8 gTV3CheersForPokeblocksText01[];
extern const u8 gTV3CheersForPokeblocksText02[];
extern const u8 gTV3CheersForPokeblocksText03[];
extern const u8 gTV3CheersForPokeblocksText04[];
extern const u8 gTV3CheersForPokeblocksText05[];
extern const u8 gTVTrainerFanClubSpecialText00[];
extern const u8 gTVTrainerFanClubSpecialText01[];
extern const u8 gTVTrainerFanClubSpecialText02[];
extern const u8 gTVTrainerFanClubSpecialText03[];
extern const u8 gTVTrainerFanClubSpecialText04[];
extern const u8 gTVTrainerFanClubSpecialText05[];
extern const u8 gTVNameRaterText00[];
extern const u8 gTVNameRaterText01[];
extern const u8 gTVNameRaterText02[];
extern const u8 gTVNameRaterText03[];
extern const u8 gTVNameRaterText04[];
extern const u8 gTVNameRaterText05[];
extern const u8 gTVNameRaterText06[];
extern const u8 gTVNameRaterText07[];
extern const u8 gTVNameRaterText08[];
extern const u8 gTVNameRaterText09[];
extern const u8 gTVNameRaterText10[];
extern const u8 gTVNameRaterText11[];
extern const u8 gTVNameRaterText12[];
extern const u8 gTVNameRaterText13[];
extern const u8 gTVNameRaterText14[];
extern const u8 gTVNameRaterText15[];
extern const u8 gTVNameRaterText16[];
extern const u8 gTVNameRaterText17[];
extern const u8 gTVNameRaterText18[];
extern const u8 gTVPokemonAnglerText00[];
extern const u8 gTVPokemonAnglerText01[];
extern const u8 gTVPokemonTodayFailedText00[];
extern const u8 gTVPokemonTodayFailedText01[];
extern const u8 gTVPokemonTodayFailedText02[];
extern const u8 gTVPokemonTodayFailedText03[];
extern const u8 gTVPokemonTodayFailedText04[];
extern const u8 gTVPokemonTodayFailedText05[];
extern const u8 gTVPokemonTodayFailedText06[];
extern const u8 gTVPokemonTodaySuccessfulText00[];
extern const u8 gTVPokemonTodaySuccessfulText01[];
extern const u8 gTVPokemonTodaySuccessfulText02[];
extern const u8 gTVPokemonTodaySuccessfulText03[];
extern const u8 gTVPokemonTodaySuccessfulText04[];
extern const u8 gTVPokemonTodaySuccessfulText05[];
extern const u8 gTVPokemonTodaySuccessfulText06[];
extern const u8 gTVPokemonTodaySuccessfulText07[];
extern const u8 gTVPokemonTodaySuccessfulText08[];
extern const u8 gTVPokemonTodaySuccessfulText09[];
extern const u8 gTVPokemonTodaySuccessfulText10[];
extern const u8 gTVPokemonTodaySuccessfulText11[];
extern const u8 gTVTodaysSmartShopperText00[];
extern const u8 gTVTodaysSmartShopperText01[];
extern const u8 gTVTodaysSmartShopperText02[];
extern const u8 gTVTodaysSmartShopperText03[];
extern const u8 gTVTodaysSmartShopperText04[];
extern const u8 gTVTodaysSmartShopperText05[];
extern const u8 gTVTodaysSmartShopperText06[];
extern const u8 gTVTodaysSmartShopperText07[];
extern const u8 gTVTodaysSmartShopperText08[];
extern const u8 gTVTodaysSmartShopperText09[];
extern const u8 gTVTodaysSmartShopperText10[];
extern const u8 gTVTodaysSmartShopperText11[];
extern const u8 gTVTodaysSmartShopperText12[];
extern const u8 gTVWorldOfMastersText00[];
extern const u8 gTVWorldOfMastersText01[];
extern const u8 gTVWorldOfMastersText02[];
extern const u8 gTVTodaysRivalTrainerText00[];
extern const u8 gTVTodaysRivalTrainerText07[];
extern const u8 gTVTodaysRivalTrainerText08[];
extern const u8 gTVTodaysRivalTrainerText09[];
extern const u8 gTVTodaysRivalTrainerText10[];
extern const u8 gTVTodaysRivalTrainerText01[];
extern const u8 gTVTodaysRivalTrainerText02[];
extern const u8 gTVTodaysRivalTrainerText03[];
extern const u8 gTVTodaysRivalTrainerText04[];
extern const u8 gTVTodaysRivalTrainerText05[];
extern const u8 gTVTodaysRivalTrainerText06[];
extern const u8 gTVDewfordTrendWatcherNetworkText00[];
extern const u8 gTVDewfordTrendWatcherNetworkText01[];
extern const u8 gTVDewfordTrendWatcherNetworkText02[];
extern const u8 gTVDewfordTrendWatcherNetworkText03[];
extern const u8 gTVDewfordTrendWatcherNetworkText04[];
extern const u8 gTVDewfordTrendWatcherNetworkText05[];
extern const u8 gTVDewfordTrendWatcherNetworkText06[];
extern const u8 gTVHoennTreasureInvestigatorsText00[];
extern const u8 gTVHoennTreasureInvestigatorsText01[];
extern const u8 gTVHoennTreasureInvestigatorsText02[];
extern const u8 gTVFindThatGamerText00[];
extern const u8 gTVFindThatGamerText01[];
extern const u8 gTVFindThatGamerText02[];
extern const u8 gTVFindThatGamerText03[];
extern const u8 gTVBreakingNewsText00[];
extern const u8 gTVBreakingNewsText01[];
extern const u8 gTVBreakingNewsText02[];
extern const u8 gTVBreakingNewsText03[];
extern const u8 gTVBreakingNewsText04[];
extern const u8 gTVBreakingNewsText05[];
extern const u8 gTVBreakingNewsText06[];
extern const u8 gTVBreakingNewsText07[];
extern const u8 gTVBreakingNewsText12[];
extern const u8 gTVBreakingNewsText08[];
extern const u8 gTVBreakingNewsText09[];
extern const u8 gTVBreakingNewsText10[];
extern const u8 gTVBreakingNewsText11[];
extern const u8 gTVSecretBaseVisitText00[];
extern const u8 gTVSecretBaseVisitText01[];
extern const u8 gTVSecretBaseVisitText02[];
extern const u8 gTVSecretBaseVisitText03[];
extern const u8 gTVSecretBaseVisitText04[];
extern const u8 gTVSecretBaseVisitText05[];
extern const u8 gTVSecretBaseVisitText06[];
extern const u8 gTVSecretBaseVisitText07[];
extern const u8 gTVSecretBaseVisitText08[];
extern const u8 gTVSecretBaseVisitText09[];
extern const u8 gTVSecretBaseVisitText10[];
extern const u8 gTVSecretBaseVisitText11[];
extern const u8 gTVSecretBaseVisitText12[];
extern const u8 gTVSecretBaseVisitText13[];
extern const u8 gTVPokemonLotteryWinnerFlashReportText00[];
extern const u8 gTVThePokemonBattleSeminarText00[];
extern const u8 gTVThePokemonBattleSeminarText01[];
extern const u8 gTVThePokemonBattleSeminarText02[];
extern const u8 gTVThePokemonBattleSeminarText03[];
extern const u8 gTVThePokemonBattleSeminarText04[];
extern const u8 gTVThePokemonBattleSeminarText05[];
extern const u8 gTVThePokemonBattleSeminarText06[];
extern const u8 gTVTrainerFanClubText00[];
extern const u8 gTVTrainerFanClubText01[];
extern const u8 gTVTrainerFanClubText02[];
extern const u8 gTVTrainerFanClubText03[];
extern const u8 gTVTrainerFanClubText04[];
extern const u8 gTVTrainerFanClubText05[];
extern const u8 gTVTrainerFanClubText06[];
extern const u8 gTVTrainerFanClubText07[];
extern const u8 gTVTrainerFanClubText08[];
extern const u8 gTVTrainerFanClubText09[];
extern const u8 gTVTrainerFanClubText10[];
extern const u8 gTVTrainerFanClubText11[];
extern const u8 gTVCutiesText00[];
extern const u8 gTVCutiesText01[];
extern const u8 gTVCutiesText02[];
extern const u8 gTVCutiesText03[];
extern const u8 gTVCutiesText04[];
extern const u8 gTVCutiesText05[];
extern const u8 gTVCutiesText06[];
extern const u8 gTVCutiesText07[];
extern const u8 gTVCutiesText08[];
extern const u8 gTVCutiesText09[];
extern const u8 gTVCutiesText10[];
extern const u8 gTVCutiesText11[];
extern const u8 gTVCutiesText12[];
extern const u8 gTVCutiesText13[];
extern const u8 gTVCutiesText14[];
extern const u8 gTVCutiesText15[];
extern const u8 gTVPokemonNewsBattleFrontierText00[];
extern const u8 gTVPokemonNewsBattleFrontierText01[];
extern const u8 gTVPokemonNewsBattleFrontierText02[];
extern const u8 gTVPokemonNewsBattleFrontierText03[];
extern const u8 gTVPokemonNewsBattleFrontierText04[];
extern const u8 gTVPokemonNewsBattleFrontierText05[];
extern const u8 gTVPokemonNewsBattleFrontierText06[];
extern const u8 gTVPokemonNewsBattleFrontierText07[];
extern const u8 gTVPokemonNewsBattleFrontierText08[];
extern const u8 gTVPokemonNewsBattleFrontierText09[];
extern const u8 gTVPokemonNewsBattleFrontierText10[];
extern const u8 gTVPokemonNewsBattleFrontierText11[];
extern const u8 gTVPokemonNewsBattleFrontierText12[];
extern const u8 gTVPokemonNewsBattleFrontierText13[];
extern const u8 gTVPokemonNewsBattleFrontierText14[];
extern const u8 gTVPokemonNewsBattleFrontierText15[];
extern const u8 gTVPokemonNewsBattleFrontierText16[];
extern const u8 gTVPokemonNewsBattleFrontierText17[];
extern const u8 gTVPokemonNewsBattleFrontierText18[];
extern const u8 gTVWhatsNo1InHoennTodayText00[];
extern const u8 gTVWhatsNo1InHoennTodayText01[];
extern const u8 gTVWhatsNo1InHoennTodayText02[];
extern const u8 gTVWhatsNo1InHoennTodayText03[];
extern const u8 gTVWhatsNo1InHoennTodayText04[];
extern const u8 gTVWhatsNo1InHoennTodayText05[];
extern const u8 gTVWhatsNo1InHoennTodayText06[];
extern const u8 gTVWhatsNo1InHoennTodayText07[];
extern const u8 gTVWhatsNo1InHoennTodayText08[];
extern const u8 gTVSecretBaseSecretsText00[];
extern const u8 gTVSecretBaseSecretsText01[];
extern const u8 gTVSecretBaseSecretsText02[];
extern const u8 gTVSecretBaseSecretsText03[];
extern const u8 gTVSecretBaseSecretsText04[];
extern const u8 gTVSecretBaseSecretsText05[];
extern const u8 gTVSecretBaseSecretsText06[];
extern const u8 gTVSecretBaseSecretsText07[];
extern const u8 gTVSecretBaseSecretsText08[];
extern const u8 gTVSecretBaseSecretsText09[];
extern const u8 gTVSecretBaseSecretsText10[];
extern const u8 gTVSecretBaseSecretsText11[];
extern const u8 gTVSecretBaseSecretsText12[];
extern const u8 gTVSecretBaseSecretsText13[];
extern const u8 gTVSecretBaseSecretsText14[];
extern const u8 gTVSecretBaseSecretsText15[];
extern const u8 gTVSecretBaseSecretsText16[];
extern const u8 gTVSecretBaseSecretsText17[];
extern const u8 gTVSecretBaseSecretsText18[];
extern const u8 gTVSecretBaseSecretsText19[];
extern const u8 gTVSecretBaseSecretsText20[];
extern const u8 gTVSecretBaseSecretsText21[];
extern const u8 gTVSecretBaseSecretsText22[];
extern const u8 gTVSecretBaseSecretsText23[];
extern const u8 gTVSecretBaseSecretsText24[];
extern const u8 gTVSecretBaseSecretsText25[];
extern const u8 gTVSecretBaseSecretsText26[];
extern const u8 gTVSecretBaseSecretsText27[];
extern const u8 gTVSecretBaseSecretsText28[];
extern const u8 gTVSecretBaseSecretsText29[];
extern const u8 gTVSecretBaseSecretsText30[];
extern const u8 gTVSecretBaseSecretsText31[];
extern const u8 gTVSecretBaseSecretsText32[];
extern const u8 gTVSecretBaseSecretsText33[];
extern const u8 gTVSecretBaseSecretsText34[];
extern const u8 gTVSecretBaseSecretsText35[];
extern const u8 gTVSecretBaseSecretsText36[];
extern const u8 gTVSecretBaseSecretsText37[];
extern const u8 gTVSecretBaseSecretsText38[];
extern const u8 gTVSecretBaseSecretsText39[];
extern const u8 gTVSecretBaseSecretsText40[];
extern const u8 gTVSecretBaseSecretsText41[];
extern const u8 gTVSecretBaseSecretsText42[];
extern const u8 gTVSafariFanClubText00[];
extern const u8 gTVSafariFanClubText01[];
extern const u8 gTVSafariFanClubText02[];
extern const u8 gTVSafariFanClubText03[];
extern const u8 gTVSafariFanClubText04[];
extern const u8 gTVSafariFanClubText05[];
extern const u8 gTVSafariFanClubText06[];
extern const u8 gTVSafariFanClubText07[];
extern const u8 gTVSafariFanClubText08[];
extern const u8 gTVSafariFanClubText09[];
extern const u8 gTVSafariFanClubText10[];
extern const u8 gTVContestLiveUpdatesText00[];
extern const u8 gTVContestLiveUpdatesText01[];
extern const u8 gTVContestLiveUpdatesText02[];
extern const u8 gTVContestLiveUpdatesText03[];
extern const u8 gTVContestLiveUpdatesText04[];
extern const u8 gTVContestLiveUpdatesText05[];
extern const u8 gTVContestLiveUpdatesText06[];
extern const u8 gTVContestLiveUpdatesText07[];
extern const u8 gTVContestLiveUpdatesText08[];
extern const u8 gTVContestLiveUpdatesText09[];
extern const u8 gTVContestLiveUpdatesText10[];
extern const u8 gTVContestLiveUpdatesText11[];
extern const u8 gTVContestLiveUpdatesText12[];
extern const u8 gTVContestLiveUpdatesText13[];
extern const u8 gTVContestLiveUpdatesText14[];
extern const u8 gTVContestLiveUpdatesText15[];
extern const u8 gTVContestLiveUpdatesText16[];
extern const u8 gTVContestLiveUpdatesText17[];
extern const u8 gTVContestLiveUpdatesText18[];
extern const u8 gTVContestLiveUpdatesText19[];
extern const u8 gTVContestLiveUpdatesText20[];
extern const u8 gTVContestLiveUpdatesText21[];
extern const u8 gTVContestLiveUpdatesText22[];
extern const u8 gTVContestLiveUpdatesText23[];
extern const u8 gTVContestLiveUpdatesText24[];
extern const u8 gTVContestLiveUpdatesText25[];
extern const u8 gTVContestLiveUpdatesText26[];
extern const u8 gTVContestLiveUpdatesText27[];
extern const u8 gTVContestLiveUpdatesText28[];
extern const u8 gTVContestLiveUpdatesText29[];
extern const u8 gTVContestLiveUpdatesText30[];
extern const u8 gTVContestLiveUpdatesText31[];
extern const u8 gTVContestLiveUpdatesText32[];
extern const u8 gTVPokemonBattleUpdateText00[];
extern const u8 gTVPokemonBattleUpdateText01[];
extern const u8 gTVPokemonBattleUpdateText02[];
extern const u8 gTVPokemonBattleUpdateText03[];
extern const u8 gTVPokemonBattleUpdateText04[];
extern const u8 gTVPokemonBattleUpdateText05[];
extern const u8 gTVPokemonBattleUpdateText06[];
extern const u8 gTVPokemonBattleUpdateText07[];
extern const u8 gTVInSearchOfTrainersText00[];
extern const u8 gTVInSearchOfTrainersText01[];
extern const u8 gTVInSearchOfTrainersText02[];
extern const u8 gTVInSearchOfTrainersText03[];
extern const u8 gTVInSearchOfTrainersText04[];
extern const u8 gTVInSearchOfTrainersText05[];
extern const u8 gTVInSearchOfTrainersText06[];
extern const u8 gTVInSearchOfTrainersText07[];
extern const u8 gTVInSearchOfTrainersText08[];
extern const u8 gTVPokemonContestLiveUpdates2Text00[];
extern const u8 gTVPokemonContestLiveUpdates2Text01[];
extern const u8 gTVPokemonContestLiveUpdates2Text02[];
extern const u8 gTVPokemonContestLiveUpdates2Text03[];
extern const u8 gPokeNewsTextSlateport_Upcoming[];
extern const u8 gPokeNewsTextSlateport_Ongoing[];
extern const u8 gPokeNewsTextSlateport_Ending[];
extern const u8 gPokeNewsTextGameCorner_Upcoming[];
extern const u8 gPokeNewsTextGameCorner_Ongoing[];
extern const u8 gPokeNewsTextGameCorner_Ending[];
extern const u8 gPokeNewsTextLilycove_Upcoming[];
extern const u8 gPokeNewsTextLilycove_Ongoing[];
extern const u8 gPokeNewsTextLilycove_Ending[];
extern const u8 gPokeNewsTextBlendMaster_Upcoming[];
extern const u8 gPokeNewsTextBlendMaster_Ongoing[];
extern const u8 gPokeNewsTextBlendMaster_Ending[];
extern const u8 SecretBase_RedCave1_Text_274966[];
extern const u8 SecretBase_RedCave1_Text_274D13[];
extern const u8 SecretBase_RedCave1_Text_274FFE[];
extern const u8 SecretBase_RedCave1_Text_275367[];
extern const u8 SecretBase_RedCave1_Text_2756C7[];
extern const u8 SecretBase_RedCave1_Text_274B24[];
extern const u8 SecretBase_RedCave1_Text_274E75[];
extern const u8 SecretBase_RedCave1_Text_2751E1[];
extern const u8 SecretBase_RedCave1_Text_2754F6[];
extern const u8 SecretBase_RedCave1_Text_2758CC[];
#endif //GUARD_EVENT_SCRIPTS_H
+15
View File
@@ -0,0 +1,15 @@
#ifndef GUARD_EVOLUTION_GRAPHICS_H
#define GUARD_EVOLUTION_GRAPHICS_H
void LoadEvoSparkleSpriteAndPal(void);
u8 LaunchTask_PreEvoSparklesSet1(u16 arg0);
u8 LaunchTask_PreEvoSparklesSet2(void);
u8 LaunchTask_PostEvoSparklesSet1(void);
u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species);
u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species);
u8 sub_817C3A0(u8 preEvoSpriteID, u8 postEvoSpriteID);
#define EvoGraphicsTaskEvoStop data[8]
#endif // GUARD_EVOLUTION_GRAPHICS_H
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_EVOLUTION_SCENE_H
#define GUARD_EVOLUTION_SCENE_H
void BeginEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, u8 partyID);
void TradeEvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, u8 preEvoSpriteID, u8 partyID);
extern void (*gCB2_AfterEvolution)(void);
#endif // GUARD_EVOLUTION_SCENE_H
+28
View File
@@ -0,0 +1,28 @@
#ifndef GUARD_FIELD_CAMERA_H
#define GUARD_FIELD_CAMERA_H
// Exported type declarations
struct CameraObject
{
void (*callback)(struct CameraObject *);
u32 unk4;
s32 unk8;
s32 unkC;
s32 x;
s32 y;
};
extern struct CameraObject gUnknown_03005DD0;
// Exported RAM declarations
extern u16 gUnknown_03005DEC;
extern u16 gUnknown_03005DE8;
// Exported ROM declarations
void DrawWholeMapView(void);
void CurrentMapDrawMetatileAt(int x, int y);
#endif //GUARD_FIELD_CAMERA_H
+11
View File
@@ -0,0 +1,11 @@
#ifndef GUARD_FIELDDOOR_H
#define GUARD_FIELDDOOR_H
void FieldSetDoorOpened(u32, u32);
void FieldSetDoorClosed(u32, u32);
s8 FieldAnimateDoorClose(u32, u32);
s8 FieldAnimateDoorOpen(u32, u32);
bool8 FieldIsDoorAnimationRunning(void);
u32 GetDoorSoundEffect(u32 x, u32 y);
#endif
+78
View File
@@ -0,0 +1,78 @@
#ifndef GUARD_FIELD_EFFECTS_H
#define GUARD_FIELD_EFFECTS_H
enum FieldEffectScriptIdx
{
FLDEFF_EXCLAMATION_MARK_ICON_1,
FLDEFF_USE_CUT_ON_GRASS,
FLDEFF_USE_CUT_ON_TREE,
FLDEFF_SHADOW,
FLDEFF_TALL_GRASS,
FLDEFF_RIPPLE,
FLDEFF_FIELD_MOVE_SHOW_MON,
FLDEFF_ASH,
FLDEFF_SURF_BLOB,
FLDEFF_USE_SURF,
FLDEFF_DUST,
FLDEFF_USE_SECRET_POWER_CAVE,
FLDEFF_JUMP_TALL_GRASS,
FLDEFF_SAND_FOOTPRINTS,
FLDEFF_JUMP_BIG_SPLASH,
FLDEFF_SPLASH,
FLDEFF_JUMP_SMALL_SPLASH,
FLDEFF_LONG_GRASS,
FLDEFF_JUMP_LONG_GRASS,
FLDEFF_UNKNOWN_19,
FLDEFF_UNKNOWN_20,
FLDEFF_UNKNOWN_21,
FLDEFF_UNKNOWN_22,
FLDEFF_BERRY_TREE_GROWTH_SPARKLE,
FLDEFF_DEEP_SAND_FOOTPRINTS,
FLDEFF_POKECENTER_HEAL,
FLDEFF_USE_SECRET_POWER_TREE,
FLDEFF_USE_SECRET_POWER_SHRUB,
FLDEFF_TREE_DISGUISE,
FLDEFF_MOUNTAIN_DISGUISE,
FLDEFF_NPCFLY_OUT,
FLDEFF_USE_FLY,
FLDEFF_FLY_IN,
FLDEFF_EXCLAMATION_MARK_ICON_2,
FLDEFF_FEET_IN_FLOWING_WATER,
FLDEFF_BIKE_TIRE_TRACKS,
FLDEFF_SAND_DISGUISE,
FLDEFF_USE_ROCK_SMASH,
FLDEFF_USE_DIG,
FLDEFF_SAND_PILE,
FLDEFF_USE_STRENGTH,
FLDEFF_SHORT_GRASS,
FLDEFF_HOT_SPRINGS_WATER,
FLDEFF_USE_WATERFALL,
FLDEFF_USE_DIVE,
FLDEFF_POKEBALL,
FLDEFF_HEART_ICON,
FLDEFF_NOP_47,
FLDEFF_NOP_48,
FLDEFF_POP_OUT_OF_ASH,
FLDEFF_LAVARIDGE_GYM_WARP,
FLDEFF_SWEET_SCENT,
FLDEFF_SAND_PILLAR,
FLDEFF_BUBBLES,
FLDEFF_SPARKLE,
FLDEFF_SECRET_POWER_CAVE,
FLDEFF_SECRET_POWER_TREE,
FLDEFF_SECRET_POWER_SHRUB,
FLDEFF_CUT_GRASS,
FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
FLDEFF_USE_FLY_ANCIENT_TOMB,
FLDEFF_PCTURN_ON,
FLDEFF_HALL_OF_FAME_RECORD,
FLDEFF_USE_TELEPORT
};
extern u32 gFieldEffectArguments[8];
u8 FieldEffectStart(u8);
bool8 FieldEffectActiveListContains(u8 id);
void sub_80B69DC(void);
#endif //GUARD_FIELD_EFFECTS_H
+16
View File
@@ -0,0 +1,16 @@
//
// Created by scott on 9/7/2017.
//
#ifndef GUARD_FIELD_EFFECT_HELPERS_H
#define GUARD_FIELD_EFFECT_HELPERS_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
u8 sub_8154228(void);
bool8 sub_8155DA0(struct MapObject *);
#endif //GUARD_FIELD_EFFECT_HELPERS_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_FIELD_FADETRANSITION_H
#define GUARD_FIELD_FADETRANSITION_H
void sub_80AF734(void);
void sp13E_warp_to_last_warp(void);
void sub_80AF7D0(void);
void sp13F_fall_to_last_warp(void);
void sub_80AF848(void);
void sub_80AF87C(void);
#endif // GUARD_FIELD_FADETRANSITION_H
+22
View File
@@ -0,0 +1,22 @@
//
// Created by scott on 9/6/2017.
//
#ifndef GUARD_FIELD_GROUND_EFFECT_H
#define GUARD_FIELD_GROUND_EFFECT_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
void InitObjectPriorityByZCoord(struct Sprite *, u8);
bool8 IsZCoordMismatchAt(u8, s16, s16);
bool8 AreZCoordsCompatible(u8, u8);
void FieldObjectUpdateSubpriority(struct MapObject *, struct Sprite *);
void DoGroundEffects_OnSpawn(struct MapObject *, struct Sprite *);
void DoGroundEffects_OnBeginStep(struct MapObject *, struct Sprite *);
void DoGroundEffects_OnFinishStep(struct MapObject *, struct Sprite *);
#endif //GUARD_FIELD_GROUND_EFFECT_H
+84
View File
@@ -0,0 +1,84 @@
#ifndef GUARD_FIELD_MAP_OBJ_H
#define GUARD_FIELD_MAP_OBJ_H
#define NUM_OBJECT_GRAPHICS_INFO 239
#define SPRITE_VAR 240
// Exported struct declarations
enum SpinnerRunnerFollowPatterns {
RUNFOLLOW_ANY,
RUNFOLLOW_NORTH_SOUTH,
RUNFOLLOW_EAST_WEST,
RUNFOLLOW_NORTH_WEST,
RUNFOLLOW_NORTH_EAST,
RUNFOLLOW_SOUTH_WEST,
RUNFOLLOW_SOUTH_EAST,
RUNFOLLOW_NORTH_SOUTH_WEST,
RUNFOLLOW_NORTH_SOUTH_EAST,
RUNFOLLOW_NORTH_EAST_WEST,
RUNFOLLOW_SOUTH_EAST_WEST
};
// Exported RAM declarations
// Exported ROM declarations
void sub_808D438(void);
u8 GetFieldObjectIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetFieldObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
u8 GetFieldObjectIdByXY(s16, s16);
void FieldObjectSetDirection(struct MapObject *, u8);
u8 sub_808D4F4(void);
void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8);
void npc_load_two_palettes__no_record(u16, u8);
void npc_load_two_palettes__and_record(u16, u8);
void sub_808EBA8(u8, u8, u8, s16, s16);
void pal_patch_for_npc(u16, u8);
void sub_808E16C(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void sub_8092FF0(s16, s16, s16 *, s16 *);
u8 FieldObjectDirectionToImageAnimId(u8);
void sub_80930E0(s16 *, s16 *, s16, s16);
void FieldObjectClearAnim(struct MapObject *);
void FieldObjectClearAnimIfSpecialAnimActive(struct MapObject *);
void SpawnFieldObjectsInView(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoFieldObject(u16, void (*)(struct Sprite *), s16, s16, u8);
u8 show_sprite(u8, u8, u8);
u8 SpawnSpecialFieldObjectParametrized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialFieldObject(struct MapObjectTemplate *);
void sub_8093038(s16, s16, s16 *, s16 *);
void CameraObjectReset1(void);
void FieldObjectSetGraphicsId(struct MapObject *, u8);
void FieldObjectTurn(struct MapObject *, u8);
void FieldObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
const struct MapObjectGraphicsInfo *GetFieldObjectGraphicsInfo(u8);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
void gpu_pal_allocator_reset__manage_upper_four(void);
void sub_808E82C(u8, u8, u8, s16, s16);
void sub_808E7E4(u8, u8, u8);
void sub_808E78C(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
void FieldObjectGetLocalIdAndMap(struct MapObject *, u8 *, u8 *, u8 *);
void npc_coords_shift(struct MapObject *, s16, s16);
void sub_808EB08(struct MapObject *, s16, s16);
void sub_808F254(u8, u8, u8);
void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *));
u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8);
u8 GetOppositeDirection(u8);
u8 GetStepInPlaceDelay4AnimId(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
u8 GetStepInPlaceDelay16AnimId(u32);
u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
// Exported data declarations
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
#endif //GUARD_FIELD_MAP_OBJ_H
+7
View File
@@ -0,0 +1,7 @@
#ifndef GUARD_FIELDMAPOBJHELP_H
#define GUARD_FIELDMAPOBJHELP_H
void UnfreezeMapObjects(void);
void sub_8097B78(u8, u8);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef GUARD_FIELD_MESSAGE_BOX_H
#define GUARD_FIELD_MESSAGE_BOX_H
bool8 ShowFieldMessage(const u8 *message);
bool8 sub_8098238(const u8 *message);
bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void);
bool8 IsFieldMessageBoxHidden(void);
#endif // GUARD_FIELD_MESSAGE_BOX_H
+16
View File
@@ -0,0 +1,16 @@
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
#define GUARD_FIELD_PLAYER_AVATAR_H
void ClearPlayerAvatarInfo(void);
void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
void PlayerGetDestCoords(s16 *, s16 *);
u8 player_get_direction_lower_nybble(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
void sub_808D074(u8);
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
+19
View File
@@ -0,0 +1,19 @@
#ifndef GUARD_FIELD_POISON_H
#define GUARD_FIELD_POISON_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
enum {
FLDPSN_NONE,
FLDPSN_PSN,
FLDPSN_FNT
};
void sub_80F972C(void);
unsigned int overworld_poison(void);
#endif //GUARD_FIELD_POISON_H
+14
View File
@@ -0,0 +1,14 @@
#ifndef GUARD_FIELD_SCREEN_H
#define GUARD_FIELD_SCREEN_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void pal_fill_black(void);
bool8 sub_80ABDFC(void);
void sub_80AF168(void);
void UpdateWeatherPerDay(u16 days);
#endif //GUARD_FIELD_SCREEN_H
+8
View File
@@ -0,0 +1,8 @@
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
#define GUARD_FIELD_SCREEN_EFFECT_H
void sub_80AF79C(void);
void sub_80B009C(u8);
void sub_80B0244(void);
#endif // GUARD_FIELD_SCREEN_EFFECT_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_FIELD_SPECIALS_H
#define GUARD_FIELD_SPECIALS_H
u8 GetLeadMonIndex(void);
#endif // GUARD_FIELD_SPECIALS_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_FIELD_TASKS_H
#define GUARD_FIELD_TASKS_H
void ActivatePerStepCallback(u8);
#endif // GUARD_FIELD_TASKS_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_WEATHER_H
#define GUARD_WEATHER_H
void fade_screen(u8, s8);
void SetSav1Weather(u32);
u8 GetSav1Weather(void);
void sub_80AEDBC(void);
void DoCurrentWeather(void);
#endif // GUARD_WEATHER_H
+19
View File
@@ -0,0 +1,19 @@
#ifndef GUARD_FIELDMAP_H
#define GUARD_FIELDMAP_H
extern struct MapCoords {
int width;
int height;
} gUnknown_03005DC0;
u32 MapGridGetMetatileIdAt(int, int);
u32 MapGridGetMetatileBehaviorAt(int, int);
void MapGridSetMetatileIdAt(int, int, u16);
void MapGridSetMetatileEntryAt(int, int, u16);
void GetCameraCoords(u16*, u16*);
bool8 MapGridIsImpassableAt(s16, s16);
s32 GetMapBorderIdAt(s16, s16);
bool32 CanCameraMoveInDirection(u8);
u16 GetBehaviorByMetatileId(u16 metatileId);
#endif //GUARD_FIELDMAP_H
+14
View File
@@ -0,0 +1,14 @@
#ifndef GUARD_FLDEFF_80F9BCC_H
#define GUARD_FLDEFF_80F9BCC_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_80FA5E4(s16 id, s16 x, s16 y);
void sub_80FA794(s16 x, s16 y);
void overworld_poison_effect(void);
#endif //GUARD_FLDEFF_80F9BCC_H
+7 -6
View File
@@ -1,11 +1,12 @@
#ifndef GUARD_GBA_GBA_H
#define GUARD_GBA_GBA_H
#include "gba/defines.h"
#include "gba/io_reg.h"
#include "gba/types.h"
#include "gba/multiboot.h"
#include "gba/syscall.h"
#include "gba/macro.h"
#include "defines.h"
#include "io_reg.h"
#include "types.h"
#include "multiboot.h"
#include "syscall.h"
#include "macro.h"
#include "isagbprint.h"
#endif // GUARD_GBA_GBA_H
+36
View File
@@ -0,0 +1,36 @@
#ifndef GUARD_GBA_ISAGBPRINT_H
#define GUARD_GBA_ISAGBPRINT_H
#ifdef NDEBUG
#define AGBPrintInit()
#define AGBPutc(cChr)
#define AGBPrint(pBuf)
#define AGBPrintf(pBuf, ...)
#define AGBPrintFlush1Block()
#define AGBPrintFlush()
#define AGBAssert(pFile, nLine, pExpression, nStopProgram)
#else
void AGBPrintInit(void);
void AGBPutc(const char cChr);
void AGBPrint(const char *pBuf);
void AGBPrintf(const char *pBuf, ...);
void AGBPrintFlush1Block(void);
void AGBPrintFlush(void);
void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopProgram);
#endif
#undef AGB_ASSERT
#ifdef NDEBUG
#define AGB_ASSERT(exp)
#else
#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
#endif
#undef AGB_WARNING
#ifdef NDEBUG
#define AGB_WARNING(exp)
#else
#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
#endif
#endif // GUARD_GBA_ISAGBPRINT_H
+76
View File
@@ -0,0 +1,76 @@
#ifndef GUARD_GLOBAL_BERRY_H
#define GUARD_GLOBAL_BERRY_H
#define BERRY_NAME_COUNT 7
#define BERRY_ITEM_EFFECT_COUNT 18
struct Berry
{
const u8 name[BERRY_NAME_COUNT];
u8 firmness;
u16 size;
u8 maxYield;
u8 minYield;
const u8 *description1;
const u8 *description2;
u8 stageDuration;
u8 spicy;
u8 dry;
u8 sweet;
u8 bitter;
u8 sour;
u8 smoothness;
};
// with no const fields
struct Berry2
{
u8 name[BERRY_NAME_COUNT];
u8 firmness;
u16 size;
u8 maxYield;
u8 minYield;
u8 *description1;
u8 *description2;
u8 stageDuration;
u8 spicy;
u8 dry;
u8 sweet;
u8 bitter;
u8 sour;
u8 smoothness;
};
struct EnigmaBerry
{
struct Berry2 berry;
u8 itemEffect[BERRY_ITEM_EFFECT_COUNT];
u8 holdEffect;
u8 holdEffectParam;
u32 checksum;
};
struct BattleEnigmaBerry
{
/*0x00*/ u8 name[BERRY_NAME_COUNT];
/*0x07*/ u8 holdEffect;
/*0x08*/ u8 itemEffect[BERRY_ITEM_EFFECT_COUNT];
/*0x1A*/ u8 holdEffectParam;
};
struct BerryTree
{
u8 berry;
u8 stage:7;
u8 growthSparkle:1;
u16 minutesUntilNextStage;
u8 berryYield;
u8 regrowthCount:4;
u8 watered1:1;
u8 watered2:1;
u8 watered3:1;
u8 watered4:1;
};
#endif // GUARD_GLOBAL_BERRY_H
+336
View File
@@ -0,0 +1,336 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
#define NUM_FIELD_OBJECTS 16
enum
{
CONNECTION_SOUTH = 1,
CONNECTION_NORTH,
CONNECTION_WEST,
CONNECTION_EAST,
CONNECTION_DIVE,
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
{
/*0x00*/ bool8 isCompressed;
/*0x01*/ bool8 isSecondary;
/*0x04*/ void *tiles;
/*0x08*/ void *palettes;
/*0x0c*/ void *metatiles;
/*0x10*/ void *metatileAttributes;
/*0x14*/ TilesetCB callback;
};
struct MapData
{
/*0x00*/ s32 width;
/*0x04*/ s32 height;
/*0x08*/ u16 *border;
/*0x0c*/ u16 *map;
/*0x10*/ struct Tileset *primaryTileset;
/*0x14*/ struct Tileset *secondaryTileset;
};
struct BackupMapData
{
s32 width;
s32 height;
u16 *map;
};
struct MapObjectTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u8 graphicsId;
/*0x02*/ u8 unk2;
/*0x04*/ s16 x;
/*0x06*/ s16 y;
/*0x08*/ u8 elevation;
/*0x09*/ u8 movementType;
/*0x0A*/ u8 unkA_0:4;
u8 unkA_4:4;
///*0x0B*/ u8 fillerB[1];
/*0x0C*/ u16 unkC;
/*0x0E*/ u16 unkE;
/*0x10*/ const u8 *script;
/*0x14*/ u16 flagId;
/*0x16*/ u8 filler_16[2];
}; /*size = 0x18*/
struct WarpEvent
{
s16 x, y;
s8 warpId;
u8 mapGroup;
u8 mapNum;
u8 unk7;
};
struct CoordEvent
{
s16 x, y;
u8 unk4;
u8 filler_5;
u16 trigger;
u16 index;
u8 filler_A[0x2];
u8 *script;
};
struct BgEvent
{
u16 x, y;
u8 unk4;
u8 kind;
// 0x2 padding for the union beginning.
union { // carried over from diego's FR/LG work, seems to be the same struct
// in gen 3, "kind" (0x3 in BgEvent struct) determines the method to read the union.
u8 *script;
// hidden item type probably
struct {
u8 filler6[0x2];
u16 hiddenItemId; // flag offset to determine flag lookup
} hiddenItem;
// secret base type
u32 secretBaseId;
} bgUnion;
};
struct MapEvents
{
u8 mapObjectCount;
u8 warpCount;
u8 coordEventCount;
u8 bgEventCount;
struct MapObjectTemplate *mapObjects;
struct WarpEvent *warps;
struct CoordEvent *coordEvents;
struct BgEvent *bgEvents;
};
struct MapConnection
{
/*0x00*/ u8 direction;
/*0x01*/ u32 offset;
/*0x05*/ u8 mapGroup;
/*0x06*/ u8 mapNum;
};
struct MapConnections
{
s32 count;
struct MapConnection *connections;
};
struct MapHeader
{
/* 0x00 */ struct MapData *mapData;
/* 0x04 */ struct MapEvents *events;
/* 0x08 */ u8 *mapScripts;
/* 0x0C */ struct MapConnections *connections;
/* 0x10 */ u16 music;
/* 0x12 */ u16 mapDataId;
/* 0x14 */ u8 regionMapSectionId;
/* 0x15 */ u8 cave;
/* 0x16 */ u8 weather;
/* 0x17 */ u8 mapType;
/* 0x18 */ u8 filler_18;
/* 0x19 */ u8 escapeRope;
/* 0x1A */ u8 flags;
/* 0x1B */ u8 battleType;
};
struct MapObject
{
/*0x00*/ u32 active:1;
u32 mapobj_bit_1:1;
u32 mapobj_bit_2:1;
u32 mapobj_bit_3:1;
u32 mapobj_bit_4:1;
u32 mapobj_bit_5:1;
u32 mapobj_bit_6:1;
u32 mapobj_bit_7:1;
/*0x01*/ u32 mapobj_bit_8:1;
u32 mapobj_bit_9:1;
u32 mapobj_bit_10:1;
u32 mapobj_bit_11:1;
u32 mapobj_bit_12:1;
u32 mapobj_bit_13:1;
u32 mapobj_bit_14:1;
u32 mapobj_bit_15:1;
/*0x02*/ u32 mapobj_bit_16:1;
u32 mapobj_bit_17:1;
u32 mapobj_bit_18:1;
u32 mapobj_bit_19:1;
u32 mapobj_bit_20:1;
u32 mapobj_bit_21:1;
u32 mapobj_bit_22:1;
u32 mapobj_bit_23:1;
/*0x03*/ u32 mapobj_bit_24:1;
u32 mapobj_bit_25:1;
u32 mapobj_bit_26:1;
u32 mapobj_bit_27:1;
u32 mapobj_bit_28:1;
u32 mapobj_bit_29:1;
u32 mapobj_bit_30:1;
u32 mapobj_bit_31:1;
/*0x04*/ u8 spriteId;
/*0x05*/ u8 graphicsId;
/*0x06*/ u8 animPattern;
/*0x07*/ u8 trainerType;
/*0x08*/ u8 localId;
/*0x09*/ u8 mapNum;
/*0x0A*/ u8 mapGroup;
/*0x0B*/ u8 mapobj_unk_0B_0:4;
u8 elevation:4;
/*0x0C*/ struct Coords16 coords1;
/*0x10*/ struct Coords16 coords2;
/*0x14*/ struct Coords16 coords3;
/*0x18*/ u8 mapobj_unk_18:4; //current direction?
/*0x18*/ u8 placeholder18:4;
/*0x19*/ union __attribute__((packed)) {
u8 as_byte;
struct __attribute__((packed)) {
u8 x:4;
u8 y:4;
} __attribute__((aligned (1))) as_nybbles;
} __attribute__((aligned (1))) range;
/*0x1A*/ u8 mapobj_unk_1A;
/*0x1B*/ u8 mapobj_unk_1B;
/*0x1C*/ u8 mapobj_unk_1C;
/*0x1D*/ u8 trainerRange_berryTreeId;
/*0x1E*/ u8 mapobj_unk_1E;
/*0x1F*/ u8 mapobj_unk_1F;
/*0x20*/ u8 mapobj_unk_20;
/*0x21*/ u8 mapobj_unk_21;
/*0x22*/ u8 animId;
/*size = 0x24*/
};
struct MapObjectGraphicsInfo
{
/*0x00*/ u16 tileTag;
/*0x02*/ u16 paletteTag1;
/*0x04*/ u16 paletteTag2;
/*0x06*/ u16 size;
/*0x08*/ s16 width;
/*0x0A*/ s16 height;
/*0x0C*/ u8 paletteSlot:4;
u8 shadowSize:2;
u8 inanimate:1;
u8 disableReflectionPaletteLoad:1;
/*0x0D*/ u8 tracks;
/*0x10*/ const struct OamData *oam;
/*0x14*/ const struct SubspriteTable *subspriteTables;
/*0x18*/ const union AnimCmd *const *anims;
/*0x1C*/ const struct SpriteFrameImage *images;
/*0x20*/ const union AffineAnimCmd *const *affineAnims;
};
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
#define PLAYER_AVATAR_FLAG_4 (1 << 4)
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
#define PLAYER_AVATAR_FLAG_6 (1 << 6)
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
enum
{
ACRO_BIKE_NORMAL,
ACRO_BIKE_TURNING,
ACRO_BIKE_WHEELIE_STANDING,
ACRO_BIKE_BUNNY_HOP,
ACRO_BIKE_WHEELIE_MOVING,
ACRO_BIKE_STATE5,
ACRO_BIKE_STATE6,
};
enum
{
DIR_NONE,
DIR_SOUTH,
DIR_NORTH,
DIR_WEST,
DIR_EAST,
};
enum
{
COLLISION_LEDGE_JUMP = 6
};
struct PlayerAvatar /* 0x202E858 */
{
/*0x00*/ u8 flags;
/*0x01*/ u8 bike;
/*0x02*/ u8 running2;
/*0x03*/ u8 running1;
/*0x04*/ u8 spriteId;
/*0x05*/ u8 mapObjectId;
/*0x06*/ u8 unk6;
/*0x07*/ u8 gender;
u8 acroBikeState;
u8 unk9;
u8 bikeFrameCounter;
u8 unkB;
u32 unkC;
u32 unk10;
u8 unk14[8];
u8 unk1C[8];
// TODO: rest of struct
};
struct Camera
{
bool8 active:1;
s32 x;
s32 y;
};
extern struct MapObject gMapObjects[NUM_FIELD_OBJECTS];
extern u8 gSelectedMapObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
extern struct Camera gCamera;
#endif // GUARD_GLOBAL_FIELDMAP_H
+620
View File
@@ -0,0 +1,620 @@
#ifndef GUARD_GLOBAL_H
#define GUARD_GLOBAL_H
#include "gba/gba.h"
#include "config.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
// to help in decompiling
#define asm_comment(x) asm volatile("@ -- " x " -- ")
#define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided")
#if defined (__APPLE__) || defined (__CYGWIN__)
void *memset(void *, int, size_t);
void *memcpy(void *, const void *, size_t);
int strcmp(const char *s1, const char *s2);
char* strcpy(char *dst0, const char *src0);
#endif // __APPLE__
#define ARRAY_COUNT(array) (sizeof(array) / sizeof((array)[0]))
// useful math macros
// Converts a number to Q8.8 fixed-point format
#define Q_8_8(n) ((s16)((n) * 256))
// Converts a number to Q4.12 fixed-point format
#define Q_4_12(n) ((s16)((n) * 4096))
#define POKEMON_NAME_LENGTH 10
#define OT_NAME_LENGTH 7
extern u8 gStringVar1[];
extern u8 gStringVar2[];
extern u8 gStringVar3[];
extern u8 gStringVar4[];
enum
{
VERSION_SAPPHIRE = 1,
VERSION_RUBY = 2,
VERSION_EMERALD = 3,
VERSION_FIRE_RED = 4,
VERSION_LEAF_GREEN = 5,
};
enum LanguageId {
LANGUAGE_JAPANESE = 1,
LANGUAGE_ENGLISH = 2,
LANGUAGE_FRENCH = 3,
LANGUAGE_ITALIAN = 4,
LANGUAGE_GERMAN = 5,
// 6 goes unused but the theory is it was meant to be Korean
LANGUAGE_SPANISH = 7,
};
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
enum
{
MALE,
FEMALE
};
enum
{
OPTIONS_BUTTON_MODE_NORMAL,
OPTIONS_BUTTON_MODE_LR,
OPTIONS_BUTTON_MODE_L_EQUALS_A
};
enum
{
OPTIONS_TEXT_SPEED_SLOW,
OPTIONS_TEXT_SPEED_MID,
OPTIONS_TEXT_SPEED_FAST
};
enum
{
OPTIONS_SOUND_MONO,
OPTIONS_SOUND_STEREO
};
enum
{
OPTIONS_BATTLE_STYLE_SHIFT,
OPTIONS_BATTLE_STYLE_SET
};
enum
{
BAG_ITEMS = 1,
BAG_POKEBALLS,
BAG_TMsHMs,
BAG_BERRIES,
BAG_KEYITEMS
};
struct Coords16
{
s16 x;
s16 y;
};
struct UCoords16
{
u16 x;
u16 y;
};
struct Time
{
/*0x00*/ s16 days;
/*0x02*/ s8 hours;
/*0x03*/ s8 minutes;
/*0x04*/ s8 seconds;
};
struct Pokedex
{
/*0x00*/ u8 order;
/*0x01*/ u8 unknown1;
/*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode
/*0x03*/ u8 unknown2;
/*0x04*/ u32 unownPersonality; // set when you first see Unown
/*0x08*/ u32 spindaPersonality; // set when you first see Spinda
/*0x0C*/ u32 unknown3;
/*0x10*/ u8 owned[52];
/*0x44*/ u8 seen[52];
};
struct PokemonJumpResults // possibly used in the game itself?
{
u16 jumpsInRow;
u16 field2;
u16 excellentsInRow;
u16 field6;
u16 field8;
u16 fieldA;
u32 bestJumpScore;
};
struct BerryPickingResults // possibly used in the game itself? Size may be wrong as well
{
u32 bestScore;
u16 berriesPicked;
u16 berriesPickedInRow;
u8 field_8;
u8 field_9;
u8 field_A;
u8 field_B;
u8 field_C;
u8 field_D;
u8 field_E;
u8 field_F;
};
struct PyramidBag
{
u16 items_Lvl50[10];
u16 items_OpenLvl[10];
u8 quantity[10];
};
struct BerryCrush
{
u16 berryCrushResults[4];
u32 berryPowderAmount;
u32 unk;
};
#define PLAYER_NAME_LENGTH 8
struct UnknownSaveBlock2Struct
{
u8 field_0;
u8 field_1;
u8 field_2[2];
u8 field_4[8];
u8 field_C[16];
u16 field_1C[6];
u16 field_28[6];
u8 field_34[176];
u8 field_E4;
u8 field_E5;
u8 field_E6;
u8 field_E7;
u8 field_E8;
u8 field_E9;
u8 field_EA;
u8 field_EB;
}; // sizeof = 0xEC
struct SaveBlock2
{
/*0x000*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x008*/ u8 playerGender; // MALE, FEMALE
/*0x009*/ u8 specialSaveWarp;
/*0x00A*/ u8 playerTrainerId[4];
/*0x00E*/ u16 playTimeHours;
/*0x010*/ u8 playTimeMinutes;
/*0x011*/ u8 playTimeSeconds;
/*0x012*/ u8 playTimeVBlanks;
/*0x013*/ u8 optionsButtonMode; // OPTIONS_BUTTON_MODE_[NORMAL/LR/L_EQUALS_A]
/*0x014*/ u16 optionsTextSpeed:3; // OPTIONS_TEXT_SPEED_[SLOW/MID/FAST]
u16 optionsWindowFrameType:5; // Specifies one of the 20 decorative borders for text boxes
u16 optionsSound:1; // OPTIONS_SOUND_[MONO/STEREO]
u16 optionsBattleStyle:1; // OPTIONS_BATTLE_STYLE_[SHIFT/SET]
u16 optionsBattleSceneOff:1; // whether battle animations are disabled
u16 regionMapZoom:1; // whether the map is zoomed in
/*0x018*/ struct Pokedex pokedex;
/*0x090*/ u8 filler_90[0x8];
/*0x098*/ struct Time localTimeOffset;
/*0x0A0*/ struct Time lastBerryTreeUpdate;
/*0x0A8*/ u32 field_A8;
/*0x0AC*/ u8 filler_AC[0xE74];
/*0xF20*/ u32 encryptionKey;
};
extern struct SaveBlock2 *gSaveBlock2Ptr;
struct SecretBaseRecord
{
/*0x1A9C*/ u8 secretBaseId;
/*0x1A9D*/ u8 sbr_field_1_0:4;
/*0x1A9D*/ u8 gender:1;
/*0x1A9D*/ u8 sbr_field_1_5:1;
/*0x1A9D*/ u8 sbr_field_1_6:2;
/*0x1A9E*/ u8 trainerName[OT_NAME_LENGTH];
/*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class
/*0x1AA9*/ u8 language;
/*0x1AAA*/ u16 sbr_field_e;
/*0x1AAC*/ u8 sbr_field_10;
/*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];
};
#include "constants/game_stat.h"
#include "global.fieldmap.h"
#include "global.berry.h"
#include "pokemon.h"
struct WarpData
{
s8 mapGroup;
s8 mapNum;
s8 warpId;
s16 x, y;
};
struct ItemSlot
{
u16 itemId;
u16 quantity;
};
struct Pokeblock
{
u8 color;
u8 spicy;
u8 dry;
u8 sweet;
u8 bitter;
u8 sour;
u8 feel;
};
struct Roamer
{
/*0x00*/ u32 ivs;
/*0x04*/ u32 personality;
/*0x08*/ u16 species;
/*0x0A*/ u16 hp;
/*0x0C*/ u8 level;
/*0x0D*/ u8 status;
/*0x0E*/ u8 cool;
/*0x0F*/ u8 beauty;
/*0x10*/ u8 cute;
/*0x11*/ u8 smart;
/*0x12*/ u8 tough;
/*0x13*/ bool8 active;
/*0x14*/ u8 filler[0x8];
};
struct RamScriptData
{
u8 magic;
u8 mapGroup;
u8 mapNum;
u8 objectId;
u8 script[995];
};
struct RamScript
{
u32 checksum;
struct RamScriptData data;
};
struct EasyChatPair
{
u16 unk0_0:7;
u16 unk0_7:7;
u16 unk1_6:1;
u16 unk2;
u16 words[2];
}; /*size = 0x8*/
struct MailStruct
{
/*0x00*/ u16 words[9];
/*0x12*/ u8 playerName[8];
/*0x1A*/ u8 trainerId[4];
/*0x1E*/ u16 species;
/*0x20*/ u16 itemId;
};
struct UnkMauvilleOldManStruct
{
u8 unk_2D94;
u8 unk_2D95;
/*0x2D96*/ u16 mauvilleOldMan_ecArray[6];
/*0x2DA2*/ u16 mauvilleOldMan_ecArray2[6];
/*0x2DAE*/ u8 playerName[8];
/*0x2DB6*/ u8 filler_2DB6[0x3];
/*0x2DB9*/ u8 playerTrainerId[4];
u8 unk_2DBD;
}; /*size = 0x2C*/
struct UnkMauvilleOldManStruct2
{
u8 filler0;
u8 unk1;
u8 unk2;
u16 mauvilleOldMan_ecArray[10];
u8 mauvilleOldMan_ecArray2[12];
u8 fillerF[0x2];
}; /*size = 0x2C*/
struct MauvilleOldManTrader
{
u8 unk0;
u8 unk1[4];
u8 unk5[4][11];
u8 unk31;
};
typedef union OldMan
{
struct UnkMauvilleOldManStruct oldMan1;
struct UnkMauvilleOldManStruct2 oldMan2;
struct MauvilleOldManTrader trader;
u8 filler[0x40];
} OldMan;
struct RecordMixing_UnknownStructSub
{
u32 unk0;
u8 data[0x34];
//u8 data[0x38];
};
struct RecordMixing_UnknownStruct
{
struct RecordMixing_UnknownStructSub data[2];
u32 unk70;
u16 unk74[0x2];
};
struct LinkBattleRecord
{
u8 name[8];
u16 trainerId;
u16 wins;
u16 losses;
u16 draws;
};
struct RecordMixingGiftData
{
u8 unk0;
u8 quantity;
u16 itemId;
u8 filler4[8];
};
struct RecordMixingGift
{
int checksum;
struct RecordMixingGiftData data;
};
struct ContestWinner
{
u32 personality;
u32 trainerId;
u16 species;
u8 contestCategory;
u8 monName[11];
u8 trainerName[8];
u8 contestRank;
};
struct DaycareMiscMon
{
struct MailStruct mail;
u8 OT_name[OT_NAME_LENGTH + 1];
u8 monName[POKEMON_NAME_LENGTH + 1];
u8 gameLanguage:4;
u8 monLanguage:4;
};
struct DaycareMon
{
struct BoxPokemon mon;
struct DaycareMiscMon misc;
u32 steps;
};
#define DAYCARE_MON_COUNT 2
struct DayCare
{
struct DaycareMon mons[DAYCARE_MON_COUNT];
u32 offspringPersonality;
u8 stepCounter;
};
struct DayCareMail
{
/*0x00*/ struct MailStruct message;
/*0x24*/ u8 names[19];
};
struct RecordMixingDayCareMail
{
struct DayCareMail mail[DAYCARE_MON_COUNT];
u32 numDaycareMons;
bool16 holdsItem[DAYCARE_MON_COUNT];
};
#define MAP_OBJECTS_COUNT 16
#define BERRY_TREES_COUNT 128
#define FLAGS_COUNT 300
#define VARS_COUNT 256
#define MAIL_COUNT 16
enum
{
LILYCOVE_LADY_QUIZ,
LILYCOVE_LADY_FAVOUR,
LILYCOVE_LADY_CONTEST
};
struct LilycoveLadyQuiz
{
/*0x000*/ u8 id;
/*0x001*/ u8 phase;
/*0x002*/ u16 unk_002[9];
/*0x014*/ u16 unk_014;
/*0x016*/ u16 unk_016;
/*0x018*/ u8 playerName[8];
/*0x020*/ u16 playerTrainerId[4];
/*0x028*/ u16 itemId;
/*0x02a*/ u8 unk_02a;
/*0x02b*/ u8 unk_02b;
/*0x02c*/ u8 unk_02c;
/*0x02d*/ u8 language;
};
struct LilycoveLadyFavour
{
/*0x000*/ u8 id;
/*0x001*/ u8 phase;
/*0x002*/ u8 unk_002;
/*0x003*/ u8 unk_003;
/*0x004*/ u8 playerName[8];
/*0x00c*/ u8 unk_00c;
/*0x00e*/ u16 itemId;
/*0x010*/ u16 unk_010;
/*0x012*/ u8 language;
};
struct LilycoveLadyContest
{
/*0x000*/ u8 id;
/*0x001*/ u8 phase;
/*0x002*/ u8 fave_pkblk;
/*0x003*/ u8 other_pkblk;
/*0x004*/ u8 playerName[8];
/*0x00c*/ u8 max_sheen;
/*0x00d*/ u8 category;
/*0x00e*/ u8 language;
};
typedef union // TODO
{
struct LilycoveLadyQuiz quiz;
struct LilycoveLadyFavour favour;
struct LilycoveLadyContest contest;
u8 id;
} LilycoveLady;
struct WaldaPhrase
{
u16 field_0;
u16 field_2;
u8 text[16];
u8 iconId;
u8 patternId;
bool8 patternUnlocked;
};
struct SaveBlock1
{
/*0x00*/ struct Coords16 pos;
/*0x04*/ struct WarpData location;
/*0x0C*/ struct WarpData warp1;
/*0x14*/ struct WarpData warp2;
/*0x1C*/ struct WarpData warp3;
/*0x24*/ struct WarpData warp4;
/*0x2C*/ u16 battleMusic;
/*0x2E*/ u8 weather;
/*0x2F*/ u8 filler_2F;
/*0x30*/ u8 flashUsed;
/*0x32*/ u16 mapDataId;
/*0x34*/ u16 mapView[0x100];
/*0x234*/ u8 playerPartyCount;
/*0x238*/ struct Pokemon playerParty[6];
/*0x490*/ u32 money;
/*0x494*/ u16 coins;
/*0x496*/ u16 registeredItem; // registered for use with SELECT button
/*0x498*/ struct ItemSlot pcItems[50];
/*0x560*/ struct ItemSlot bagPocket_Items[30];
/*0x5D8*/ struct ItemSlot bagPocket_KeyItems[30];
/*0x650*/ struct ItemSlot bagPocket_PokeBalls[16];
/*0x690*/ struct ItemSlot bagPocket_TMHM[64];
/*0x790*/ struct ItemSlot bagPocket_Berries[46];
/*0x848*/ struct Pokeblock pokeblocks[40];
/*0x988*/ u8 seen1[52];
/*0x9BC*/ u16 berryBlenderRecords[3];
/*0x9C2*/ u8 field_9C2[6];
/*0x9C8*/ u16 trainerRematchStepCounter;
/*0x9CA*/ u8 trainerRematches[100];
/*0xA30*/ struct MapObject mapObjects[MAP_OBJECTS_COUNT];
/*0xC70*/ struct MapObjectTemplate mapObjectTemplates[64];
/*0x1270*/ u8 flags[FLAGS_COUNT];
/*0x139C*/ u16 vars[VARS_COUNT];
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
/*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
/*0x1A9C*/ struct SecretBaseRecord secretBases[20];
/*0x271C*/ u8 playerRoomDecor[12];
/*0x2728*/ u8 playerRoomDecorPos[12];
/*0x2734*/ u8 decorDesk[10];
/*0x????*/ u8 decorChair[10];
/*0x????*/ u8 decorPlant[10];
/*0x????*/ u8 decorOrnament[30];
/*0x????*/ u8 decorMat[30];
/*0x????*/ u8 decorPoster[10];
/*0x????*/ u8 decorDoll[40];
/*0x????*/ u8 decorCushion[10];
/*0x27CA*/ u8 padding_27CA[2];
/*0x2B90*/ u16 outbreakPokemonSpecies;
/*0x2B92*/ u8 outbreakLocationMapNum;
/*0x2B93*/ u8 outbreakLocationMapGroup;
/*0x2B94*/ u8 outbreakPokemonLevel;
/*0x2B95*/ u8 outbreakUnk1;
/*0x2B96*/ u16 outbreakUnk2;
/*0x2B98*/ u16 outbreakPokemonMoves[4];
/*0x2BA0*/ u8 outbreakUnk4;
/*0x2BA1*/ u8 outbreakPokemonProbability;
/*0x2BA2*/ u16 outbreakDaysLeft;
/*0x2BB0*/ u16 unk2BB0[6];
/*0x2BBC*/ u16 unk2BBC[6];
/*0x2BC8*/ u16 unk2BC8[6];
/*0x2BD4*/ u16 unk2BD4[6];
/*0x2BE0*/ struct MailStruct mail[MAIL_COUNT];
/*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system
/*0x2E25*/ u8 unk2E25[3]; // possibly padding?
/*0x2E28*/ OldMan oldMan;
/*0x2e64*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff
/*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum
/*0x3030*/ struct DayCare daycare;
/*0x3150*/ struct LinkBattleRecord linkBattleRecords[5];
/*0x31A0*/ u8 unk_31A0;
/*0x31A1*/ u8 filler_31A1[7];
/*0x31A8*/ u8 giftRibbons[52];
/*0x31DC*/ struct Roamer roamer;
/*0x31F8*/ struct EnigmaBerry enigmaBerry;
/*0x322C*/ u8 field_322C[1276];
/*0x3728*/ struct RamScript ramScript;
/*0x3B14*/ struct RecordMixingGift recordMixingGift;
/*0x3B24*/ u8 seen2[52];
/*0x3B58*/ LilycoveLady lilycoveLady;
/*0x3B88*/ u8 filler_3B88[0x1E8];
/*0x3D70*/ struct WaldaPhrase waldaPhrase;
// sizeof: 0x3D88
};
extern struct SaveBlock1* gSaveBlock1Ptr;
struct Bitmap // TODO: Find a better spot for this
{
u8* pixels;
u32 width:16;
u32 height:16;
};
extern u8 gReservedSpritePaletteCount;
#endif // GUARD_GLOBAL_H
+19
View File
@@ -0,0 +1,19 @@
#ifndef GUARD_GPU_REGS_H
#define GUARD_GPU_REGS_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void InitGpuRegManager(void);
void CopyBufferedValuesToGpuRegs(void);
void SetGpuReg(u8 regOffset, u16 value);
void SetGpuReg_ForcedBlank(u8 regOffset, u16 value);
u16 GetGpuReg(u8 regOffset);
void SetGpuRegBits(u8 regOffset, u16 mask);
void ClearGpuRegBits(u8 regOffset, u16 mask);
void EnableInterrupts(u16 mask);
void DisableInterrupts(u16 mask);
#endif //GUARD_GPU_REGS_H
+144
View File
@@ -0,0 +1,144 @@
//
// Created by scott on 10/21/2017.
//
#ifndef GUARD_GRAPHICS_H
#define GUARD_GRAPHICS_H
extern const u8 gInterfaceGfx_PokeBall[];
extern const u8 gInterfacePal_PokeBall[];
extern const u8 gInterfaceGfx_GreatBall[];
extern const u8 gInterfacePal_GreatBall[];
extern const u8 gInterfaceGfx_SafariBall[];
extern const u8 gInterfacePal_SafariBall[];
extern const u8 gInterfaceGfx_UltraBall[];
extern const u8 gInterfacePal_UltraBall[];
extern const u8 gInterfaceGfx_MasterBall[];
extern const u8 gInterfacePal_MasterBall[];
extern const u8 gInterfaceGfx_NetBall[];
extern const u8 gInterfacePal_NetBall[];
extern const u8 gInterfaceGfx_DiveBall[];
extern const u8 gInterfacePal_DiveBall[];
extern const u8 gInterfaceGfx_NestBall[];
extern const u8 gInterfacePal_NestBall[];
extern const u8 gInterfaceGfx_RepeatBall[];
extern const u8 gInterfacePal_RepeatBall[];
extern const u8 gInterfaceGfx_TimerBall[];
extern const u8 gInterfacePal_TimerBall[];
extern const u8 gInterfaceGfx_LuxuryBall[];
extern const u8 gInterfacePal_LuxuryBall[];
extern const u8 gInterfaceGfx_PremierBall[];
extern const u8 gInterfacePal_PremierBall[];
extern const u8 gOpenPokeballGfx[];
extern const u8 gItemIcon_QuestionMark[];
extern const u8 gItemIconPalette_QuestionMark[];
extern const u8 gUnknown_08DB7AA0[];
extern const u8 gUnknown_08DB7B34[];
extern const u8 gUnknown_08DB7B5C[];
extern const u8 gUnknown_08DB7BEC[];
extern const u8 gUnknown_08DB7C08[];
extern const u8 gUnknown_08DB7CE8[];
extern const u8 gUnknown_08DB7D08[];
extern const u8 gUnknown_08DB7DCC[];
extern const u8 gUnknown_08DB7DF4[];
extern const u8 gUnknown_08DB7EA0[];
extern const u8 gUnknown_08DB7EC4[];
extern const u8 gUnknown_08DB7F60[];
extern const u8 gUnknown_08DB7F7C[];
extern const u8 gUnknown_08DB8070[];
extern const u8 gUnknown_08DB808C[];
extern const u8 gUnknown_08DB8138[];
extern const u8 gUnknown_08DB8160[];
extern const u8 gUnknown_08DB8218[];
extern const u8 gUnknown_08DB823C[];
extern const u8 gUnknown_08DB8300[];
extern const u8 gUnknown_08DB8328[];
extern const u8 gUnknown_08DB8430[];
extern const u8 gUnknown_08DB8458[];
extern const u8 gUnknown_08DB8528[];
extern const u8 gUnknown_08DB854C[];
extern const u8 gUnknown_08DB862C[];
extern const u8 gUnknown_08DB8654[];
extern const u8 gUnknown_08DB86C4[];
extern const u8 gUnknown_08DB86E0[];
extern const u8 gUnknown_08DB8750[];
extern const u8 gUnknown_08DB876C[];
extern const u8 gUnknown_08DB87DC[];
extern const u8 gUnknown_08DB87F8[];
extern const u8 gUnknown_08DB88D8[];
extern const u8 gUnknown_08DB8900[];
extern const u8 gUnknown_08DB89E0[];
extern const u8 gUnknown_08DB8A08[];
extern const u8 gUnknown_08DB8A68[];
extern const u8 gUnknown_08DB8A84[];
extern const u8 gUnknown_08DB8B40[];
extern const u8 gUnknown_08DB8B68[];
extern const u8 gUnknown_08DB8C40[];
extern const u8 gUnknown_08DB8C5C[];
extern const u8 gUnknown_08DB8CF4[];
extern const u8 gUnknown_08DB8D18[];
extern const u8 gUnknown_08DB8DB0[];
extern const u8 gUnknown_08DB8DD4[];
extern const u8 gUnknown_08DB8E80[];
extern const u8 gUnknown_08DB8EA0[];
extern const u8 gUnknown_08DB8F58[];
extern const u8 gUnknown_08DB8F7C[];
extern const u8 gUnknown_08DB9038[];
extern const u8 gUnknown_08DB9058[];
extern const u8 gUnknown_08DB9130[];
extern const u8 gUnknown_08DB9154[];
extern const u8 gUnknown_08DB9218[];
extern const u8 gUnknown_08DB9234[];
extern const u8 gUnknown_08DB92FC[];
extern const u8 gUnknown_08DB931C[];
extern const u8 gUnknown_08DB93E8[];
extern const u8 gUnknown_08DB940C[];
extern const u8 gUnknown_08DB94CC[];
extern const u8 gUnknown_08DB94E8[];
extern const u8 gUnknown_08DB95AC[];
extern const u8 gUnknown_08DB95D0[];
extern const u8 gUnknown_08DB96C4[];
extern const u8 gUnknown_08DB96EC[];
extern const u8 gUnknown_08DB97F4[];
extern const u8 gUnknown_08DB981C[];
extern const u8 gUnknown_08DB9908[];
extern const u8 gUnknown_08DB9930[];
extern const u8 gUnknown_08DB9A54[];
extern const u8 gUnknown_08DB9A7C[];
extern const u8 gUnknown_08DB9B7C[];
extern const u8 gUnknown_08DB9BA4[];
extern const u8 gUnknown_08DB9CB0[];
extern const u8 gUnknown_08DB9CD8[];
extern const u8 gUnknown_08DB9DAC[];
extern const u8 gUnknown_08DB9DD4[];
extern const u8 gUnknown_08DB9EE4[];
extern const u8 gUnknown_08DB9F08[];
extern const u8 gUnknown_08DB9FFC[];
extern const u8 gUnknown_08DBA020[];
extern const u8 gUnknown_08DBA12C[];
extern const u8 gUnknown_08DCC05C[];
extern const u16 gUnknown_08DCC01C[];
extern const u16 gUnknown_08DCC03C[];
extern const u8 gUnknown_08DCC648[];
extern const u8 gUnknown_08DCC908[];
extern const u8 gUnknown_08DD87C0[];
extern const u8 gUnknown_08DD8EE0[];
extern const u16 gUnknown_08DD8780[];
extern const u8 gUnknown_08DD90E0[];
extern const u8 gUnknown_08DD9718[];
extern const u16 gUnknown_08DD9080[];
extern const u8 gUnknown_08DD98B4[];
extern const u8 gUnknown_08DD9E58[];
extern const u16 gUnknown_08DD9874[];
extern const u8 gUnknown_08DDA02C[];
extern const u8 gUnknown_08DDA63C[];
extern const u16 gUnknown_08DD9FEC[];
extern const u8 gUnknown_08DDA840[];
extern const u8 gUnknown_08DDAE40[];
extern const u16 gUnknown_08DDA800[];
extern const u8 gUnknown_08DDB020[];
extern const u8 gUnknown_08DDB2C4[];
extern const u16 gUnknown_08DDAFE0[];
#endif //GUARD_GRAPHICS_H
+9
View File
@@ -0,0 +1,9 @@
#ifndef GUARD_HALL_OF_FAME_H
#define GUARD_HALL_OF_FAME_H
void CB2_DoHallOfFameScreen(void);
void CB2_DoHallOfFameScreenDontSaveData(void);
void CB2_DoHallOfFamePC(void);
void sub_8175280(void);
#endif // GUARD_HALL_OF_FAME_H
+25
View File
@@ -0,0 +1,25 @@
#ifndef GUARD_HEAL_LOCATION_H
#define GUARD_HEAL_LOCATION_H
// Exported type declarations
struct UnkStruct_0859F534 {
const union AffineAnimCmd *const *const affineAnims;
void (* callback)(struct Sprite *sprite);
};
struct HealLocation
{
s8 group;
s8 map;
u16 x;
u16 y;
};
// Exported RAM declarations
// Exported ROM declarations
const struct HealLocation *GetHealLocationPointer(u32 loc);
#endif //GUARD_HEAL_LOCATION_H
+23
View File
@@ -0,0 +1,23 @@
#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H
#define GUARD_INTERNATIONAL_STRING_UTIL_H
#include "menu.h"
void sub_81DB52C(const u8 *src);
void TVShowConvertInternationalString(u8 *dest, const u8 *src, u8 language);
s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth);
s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing);
s32 GetMaxWidthInMenuTable(const struct MenuAction *str, s32 arg1);
s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2);
// sub_81DB41C
// CopyMonCategoryText
// sub_81DB494
// sub_81DB4DC
// sub_81DB554
// sub_81DB5AC
u32 sub_81DB604(const u8 *);
// sub_81DB620
#endif // GUARD_INTERNATIONAL_STRING_UTIL_H
+64
View File
@@ -0,0 +1,64 @@
#ifndef ITEM_H
#define ITEM_H
typedef void (*ItemUseFunc)(u8);
struct Item
{
u8 name[14];
u16 itemId;
u16 price;
u8 holdEffect;
u8 holdEffectParam;
const u8 *description;
u8 importance;
u8 unk19;
u8 pocket;
u8 type;
ItemUseFunc fieldUseFunc;
u8 battleUsage;
ItemUseFunc battleUseFunc;
u8 secondaryId;
};
struct BagPocket
{
struct ItemSlot *itemSlots;
u8 capacity;
};
extern struct BagPocket gBagPockets[];
void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity);
void CopyItemName(u16 itemId, u8 *string);
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);
u8 CountUsedPCItemSlots(void);
bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
void SwapRegisteredBike(void);
const struct Item *ItemId_GetItem(u16 itemId);
u16 ItemId_GetId(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
u8 ItemId_GetHoldEffectParam(u16 itemId);
const u8 *ItemId_GetDescription(u16 itemId);
bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
u8 ItemId_GetImportance(u16 itemId);
u8 ItemId_GetUnknownValue(u16 itemId);
u8 ItemId_GetPocket(u16 itemId);
u8 ItemId_GetType(u16 itemId);
ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
u8 ItemId_GetBattleUsage(u16 itemId);
ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
u8 ItemId_GetSecondaryId(u16 itemId);
u16 itemid_get_market_price(u16 itemId);
#endif // ITEM_H
+17
View File
@@ -0,0 +1,17 @@
//
// 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 const struct SpriteTemplate gUnknown_08614FF4;
bool8 AllocItemIconTemporaryBuffers(void);
void CopyItemIconPicTo4x4Buffer(void *src, void *dest);
void FreeItemIconTemporaryBuffers(void);
#endif //GUARD_ITEM_ICON_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_item_menu_H
#define GUARD_item_menu_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void sub_81AAC50(void);
void sub_81AAC70(void);
#endif //GUARD_item_menu_H
+6
View File
@@ -0,0 +1,6 @@
#ifndef GUARD_ITEM_MENU_ICONS
#define GUARD_ITEM_MENU_ICONS
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
#endif // GUARD_ITEM_MENU_ICONS
+108
View File
@@ -0,0 +1,108 @@
#include "main.h"
enum
{
RFU_RESET = 0x10,
RFU_LINK_STATUS,
RFU_VERSION_STATUS,
RFU_SYSTEM_STATUS,
RFU_SLOT_STATUS,
RFU_CONFIG_STATUS,
RFU_GAME_CONFIG,
RFU_SYSTEM_CONFIG,
RFU_UNK18,
RFU_SC_START,
RFU_SC_POLLING,
RFU_SC_END,
RFU_SP_START,
RFU_SP_POLLING,
RFU_SP_END,
RFU_CP_START,
RFU_CP_POLLING,
RFU_CP_END,
RFU_UNK22,
RFU_UNK23,
RFU_DATA_TX,
RFU_DATA_TX_AND_CHANGE,
RFU_DATA_RX,
RFU_MS_CHANGE,
RFU_DATA_READY_AND_CHANGE,
RFU_DISCONNECTED_AND_CHANGE,
RFU_UNK2A,
RFU_UNK2B,
RFU_UNK2C,
RFU_UNK2D,
RFU_UNK2E,
RFU_UNK2F,
RFU_DISCONNECT,
RFU_TEST_MODE,
RFU_CPR_START,
RFU_CPR_POLLING,
RFU_CPR_END,
RFU_UNK35,
RFU_UNK36,
RFU_RESUME_RETRANSMIT_AND_CHANGE,
RFU_UNK38,
RFU_UNK39,
RFU_UNK3A,
RFU_UNK3B,
RFU_UNK3C,
RFU_STOP_MODE, //3D
};
struct RfuPacket8
{
u8 data[0x74];
};
struct RfuPacket32
{
u32 command;
u32 data[0x1C];
};
union RfuPacket
{
struct RfuPacket32 rfuPacket32;
struct RfuPacket8 rfuPacket8;
};
struct RfuStruct
{
vs32 unk_0;
u8 txParams;
u8 unk_5;
u8 activeCommand;
u8 unk_7;
u8 unk_8;
u8 unk_9;
u8 timerSelect;
u8 unk_b;
int timerState;
vu8 timerActive;
u8 unk_11;
vu16 unk_12;
vu8 msMode;
u8 unk_15;
u8 unk_16;
u8 unk_17;
void (*callbackM)();
void (*callbackS)();
u32 callbackID;
union RfuPacket *txPacket;
union RfuPacket *rxPacket;
vu8 unk_2c;
u8 padding[3];
};
struct RfuIntrStruct
{
u8 rxPacketAlloc[0x74];
u8 txPacketAlloc[0x74];
u8 block1[0x960];
u8 block2[0x30];
};
extern struct RfuStruct *gRfuState;
void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam);
+198
View File
@@ -0,0 +1,198 @@
#ifndef GUARD_LINK_H
#define GUARD_LINK_H
#define MAX_LINK_PLAYERS 4
#define MAX_RFU_PLAYERS 5
#define CMD_LENGTH 8
#define QUEUE_CAPACITY 50
#define BLOCK_BUFFER_SIZE 0x100
#define LINK_STAT_LOCAL_ID 0x00000003
#define LINK_STAT_PLAYER_COUNT 0x0000001C
#define LINK_STAT_PLAYER_COUNT_SHIFT 2
#define LINK_STAT_MASTER 0x00000020
#define LINK_STAT_MASTER_SHIFT 5
#define LINK_STAT_CONN_ESTABLISHED 0x00000040
#define LINK_STAT_CONN_ESTABLISHED_SHIFT 6
#define LINK_STAT_RECEIVED_NOTHING 0x00000100
#define LINK_STAT_RECEIVED_NOTHING_SHIFT 8
#define LINK_STAT_ERRORS 0x0007F000
#define EXTRACT_PLAYER_COUNT(status) \
(((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT)
#define EXTRACT_MASTER(status) \
(((status) >> LINK_STAT_MASTER_SHIFT) & 1)
#define EXTRACT_CONN_ESTABLISHED(status) \
(((status) >> LINK_STAT_CONN_ESTABLISHED_SHIFT) & 1)
#define EXTRACT_RECEIVED_NOTHING(status) \
(((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1)
#define MASTER_HANDSHAKE 0x8FFF
#define SLAVE_HANDSHAKE 0xB9A0
enum
{
LINK_STATE_START0,
LINK_STATE_START1,
LINK_STATE_HANDSHAKE,
LINK_STATE_INIT_TIMER,
LINK_STATE_CONN_ESTABLISHED,
};
enum
{
EXCHANGE_NOT_STARTED,
EXCHANGE_COMPLETE,
EXCHANGE_TIMED_OUT,
EXCHANGE_IN_PROGRESS,
};
enum
{
QUEUE_FULL_NONE,
QUEUE_FULL_SEND,
QUEUE_FULL_RECV,
};
enum
{
LAG_NONE,
LAG_MASTER,
LAG_SLAVE,
};
struct LinkPlayer
{
/* 0x00 */ u16 version;
/* 0x02 */ u16 lp_field_2;
/* 0x04 */ u32 trainerId;
/* 0x08 */ u8 name[11];
/* 0x13 */ u8 gender;
/* 0x14 */ u32 linkType;
/* 0x18 */ u16 lp_field_18; // battle bank in battles
/* 0x1A */ u16 language;
};
struct LinkPlayerBlock
{
u8 magic1[16];
struct LinkPlayer linkPlayer;
u8 magic2[16];
};
// circular queues
struct SendQueue
{
u16 data[CMD_LENGTH][QUEUE_CAPACITY];
u8 pos;
u8 count;
};
struct RecvQueue
{
u16 data[MAX_LINK_PLAYERS][CMD_LENGTH][QUEUE_CAPACITY];
u8 pos;
u8 count;
};
struct Link
{
u8 isMaster; // 0: slave, 8: master
u8 state;
u8 localId; // local multi-player ID
u8 playerCount;
u16 tempRecvBuffer[4];
bool8 receivedNothing;
s8 serialIntrCounter;
bool8 handshakeAsMaster;
u8 link_field_F;
// error conditions
bool8 hardwareError; // hardware reported an error
bool8 badChecksum; // checksum didn't match between devices
u8 queueFull; // send or recv queue out of space
u8 lag; // connection is lagging
u16 checksum;
u8 sendCmdIndex;
u8 recvCmdIndex;
struct SendQueue sendQueue;
struct RecvQueue recvQueue;
};
struct BlockRequest
{
void * address;
u32 size;
};
extern const struct BlockRequest sBlockRequestLookupTable[5];
extern struct Link gLink;
extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType;
extern u32 gLinkStatus;
extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern u16 gSendCmd[CMD_LENGTH];
extern u8 gShouldAdvanceLinkState;
extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkVSyncDisabled;
void Task_DestroySelf(u8);
void OpenLink(void);
void CloseLink(void);
u16 LinkMain2(u16 *);
void sub_8007B14(void);
bool32 sub_8007B24(void);
void ClearLinkCallback(void);
void ClearLinkCallback_2(void);
u8 GetLinkPlayerCount(void);
void OpenLinkTimed(void);
u8 GetLinkPlayerDataExchangeStatusTimed(void);
bool8 IsLinkPlayerDataExchangeComplete(void);
u32 GetLinkPlayerTrainerId(u8);
void ResetLinkPlayers(void);
void sub_8007E24(void);
void sub_8007E4C(void);
u8 GetMultiplayerId(void);
u8 bitmask_all_link_players_but_self(void);
bool8 SendBlock(u8, void *, u16);
u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void);
void ResetBlockReceivedFlag(u8);
void SetLinkDebugValues(u32, u32);
u8 GetLinkPlayerCount_2(void);
bool8 IsLinkMaster(void);
void CB2_LinkError(void);
u8 GetSioMultiSI(void);
bool8 IsLinkConnectionEstablished(void);
void SetSuppressLinkErrorMessage(bool8);
bool8 HasLinkErrorOccurred(void);
void ResetSerial(void);
u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]);
void RFUVSync(void);
void Timer3Intr(void);
void SerialCB(void);
u8 GetLinkPlayerCount(void);
bool32 InUnionRoom(void);
void sub_800E0E8(void);
bool8 sub_800A520(void);
bool8 sub_8010500(void);
void sub_800DFB4(u8, u8);
void sub_800ADF8(void);
void sub_800B488(void);
void sub_8009734(void);
void sub_800A620(void);
void sub_8011BD0(void);
u8 sub_800ABAC(void);
u8 sub_800ABBC(void);
void sub_800AC34(void);
#endif // GUARD_LINK_H
+56
View File
@@ -0,0 +1,56 @@
#ifndef GUARD_LIST_MENU_H
#define GUARD_LIST_MENU_H
// Exported type declarations
// Exported RAM declarations
struct ListMenuItem
{
const u8 *unk_00;
s32 unk_04;
};
struct ListMenu;
struct ListMenuTemplate
{
const struct ListMenuItem *items;
void (* unk_04)(u32, bool8, struct ListMenu *);
void (* unk_08)(u8, s32, u8);
u16 totalItems;
u16 maxShowed;
u8 unk_10;
u8 unk_11;
u8 unk_12;
u8 cursor_Y;
u32 upText_Y:4; // x1, x2, x4, x8 = xF
u32 cursorColor:4; // x10, x20, x40, x80 = xF0
u32 fillColor:4; // x100, x200, x400, x800 = xF00
u32 cursorShadowColor:4; // x1000, x2000, x4000, x8000 = xF000
u32 unk_16_0:1; // x10000
u32 spaceBetweenItems:6; // x20000, x40000, x80000, x100000, x200000, x400000 = x7E0000
u32 unk_16_7:1; // x800000
u32 unk_17_0:6; // x1000000, x2000000, x4000000, x8000000, x10000000, x20000000 = x3F000000
};
struct ListMenu {
struct ListMenuTemplate _template;
u16 scrollOffset;
u16 selectedRow;
u8 unk_1C;
u8 unk_1D;
u8 unk_1E;
u8 unk_1F;
};
extern struct ListMenuTemplate gUnknown_03006310;
// Exported ROM declarations
u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void get_coro_args_x18_x1A(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
#endif //GUARD_LIST_MENU_H
+24
View File
@@ -0,0 +1,24 @@
#ifndef GUARD_LOAD_SAVE_H
#define GUARD_LOAD_SAVE_H
extern bool32 gFlashMemoryPresent;
void ClearSav2(void);
void ClearSav1(void);
void CheckForFlashMemory(void);
void MoveSaveBlocks_ResetHeap(void);
bool32 GetSecretBase2Field_9(void);
void ClearSecretBase2Field_9(void);
void SetSecretBase2Field_9(void);
void SetSecretBase2Field_9_AndHideBG(void);
void ClearSecretBase2Field_9_2(void);
void SavePlayerParty(void);
void LoadPlayerParty(void);
void SaveSerializedGame(void);
void LoadSerializedGame(void);
void LoadPlayerBag(void);
void SavePlayerBag(void);
void SetSaveBlocksPointers(u16);
void MoveSaveBlocks_ResetHeap(void);
#endif // GUARD_LOAD_SAVE_H
+20
View File
@@ -0,0 +1,20 @@
#ifndef GUARD_M4A_H
#define GUARD_M4A_H
#include "gba/m4a_internal.h"
void m4aSoundVSync(void);
void m4aSoundVSyncOn(void);
void m4aSoundInit(void);
void m4aSoundMain(void);
void m4aSongNumStart(u16);
void m4aSongNumStop(u16 n);
void m4aMPlayAllStop(void);
void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
#endif //GUARD_M4A_H
+23
View File
@@ -0,0 +1,23 @@
#ifndef GUARD_MAIL_H
#define GUARD_MAIL_H
#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \
|| itemId == ITEM_HARBOR_MAIL \
|| itemId == ITEM_GLITTER_MAIL \
|| itemId == ITEM_MECH_MAIL \
|| itemId == ITEM_WOOD_MAIL \
|| itemId == ITEM_WAVE_MAIL \
|| itemId == ITEM_BEAD_MAIL \
|| itemId == ITEM_SHADOW_MAIL \
|| itemId == ITEM_TROPIC_MAIL \
|| itemId == ITEM_DREAM_MAIL \
|| itemId == ITEM_FAB_MAIL \
|| itemId == ITEM_RETRO_MAIL))
bool8 MonHasMail(struct Pokemon *mon);
void TakeMailFromMon(struct Pokemon *mon);
u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
void ClearMailStruct(struct MailStruct *mail);
#endif // GUARD_MAIL_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_MAIL_DATA_H
#define GUARD_MAIL_DATA_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
u16 sub_80D45E8(u16, u16 *);
#endif //GUARD_MAIL_DATA_H
+64
View File
@@ -0,0 +1,64 @@
#ifndef GUARD_MAIN_H
#define GUARD_MAIN_H
#include "global.h"
typedef void (*MainCallback)(void);
typedef void (*IntrCallback)(void);
typedef void (*IntrFunc)(void);
struct Main
{
/*0x000*/ MainCallback callback1;
/*0x004*/ MainCallback callback2;
/*0x008*/ MainCallback savedCallback;
/*0x00C*/ IntrCallback vblankCallback;
/*0x010*/ IntrCallback hblankCallback;
/*0x014*/ IntrCallback vcountCallback;
/*0x018*/ IntrCallback serialCallback;
/*0x01C*/ vu16 intrCheck;
/*0x020*/ u32 *vblankCounter1;
/*0x024*/ u32 vblankCounter2;
/*0x028*/ u16 heldKeysRaw; // held keys without L=A remapping
/*0x02A*/ u16 newKeysRaw; // newly pressed keys without L=A remapping
/*0x02C*/ u16 heldKeys; // held keys with L=A remapping
/*0x02E*/ u16 newKeys; // newly pressed keys with L=A remapping
/*0x030*/ u16 newAndRepeatedKeys; // newly pressed keys plus key repeat
/*0x032*/ u16 keyRepeatCounter; // counts down to 0, triggering key repeat
/*0x034*/ bool16 watchedKeysPressed; // whether one of the watched keys was pressed
/*0x036*/ u16 watchedKeysMask; // bit mask for watched keys
/*0x038*/ struct OamData oamBuffer[128];
/*0x438*/ u8 state;
/*0x439*/ u8 oamLoadDisabled:1;
/*0x439*/ u8 inBattle:1;
/*0x439*/ u8 field_439_x4:1;
};
extern u8 gUnknown_3001764;
extern struct Main gMain;
extern bool8 gSoftResetDisabled;
extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
void AgbMain(void);
void SetMainCallback2(MainCallback callback);
void InitKeys(void);
void SetVBlankCallback(IntrCallback callback);
void SetHBlankCallback(IntrCallback callback);
void SetVCountCallback(IntrCallback callback);
void SetSerialCallback(IntrCallback callback);
void InitFlashTimer(void);
void DoSoftReset(void);
void ClearPokemonCrySongs(void);
#endif // GUARD_MAIN_H
+20
View File
@@ -0,0 +1,20 @@
#ifndef GUARD_MALLOC_H
#define GUARD_MALLOC_H
#define malloc Alloc
#define calloc(ct, sz) AllocZeroed((ct) * (sz))
#define free Free
#define FREE_AND_SET_NULL(ptr) \
{ \
free(ptr); \
ptr = NULL; \
}
extern u8 gHeap[];
void *Alloc(u32 size);
void *AllocZeroed(u32 size);
void Free(void *pointer);
void InitHeap(void *pointer, u32 size);
#endif // GUARD_MALLOC_H
+11
View File
@@ -0,0 +1,11 @@
#ifndef GUARD_MAP_NAME_POPUP_H
#define GUARD_MAP_NAME_POPUP_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void HideMapNamePopUpWindow(void);
#endif //GUARD_MAP_NAME_POPUP_H
+32
View File
@@ -0,0 +1,32 @@
//
// Created by scott on 9/7/2017.
//
#ifndef GUARD_MAP_OBJ_8097404_H
#define GUARD_MAP_OBJ_8097404_H
// Exported type declarations
// Exported RAM declarations
extern void *gUnknown_020375B8;
// Exported ROM declarations
void sub_8097AC8(struct Sprite *);
void npc_sync_anim_pause_bits(struct MapObject *);
void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
u8 sub_8097F78(struct MapObject *);
bool8 obj_npc_ministep(struct Sprite *sprite);
bool8 sub_80976EC(struct Sprite *sprite);
void sub_80976DC(struct Sprite *, u8);
void sub_809783C(struct Sprite *, u8, u8, u8);
void DoShadowFieldEffect(struct MapObject *);
u8 sub_809785C(struct Sprite *);
u8 sub_80978E4(struct Sprite *);
void obj_anim_image_set_and_seek(struct Sprite *, u8, u8);
bool8 sub_80979BC(struct Sprite *);
void sub_8097750(struct Sprite *);
bool8 sub_8097758(struct Sprite *);
void sub_8097FA4(struct MapObject *);
void sub_8098044(u8);
#endif //GUARD_MAP_OBJ_8097404_H
+11
View File
@@ -0,0 +1,11 @@
#ifndef GUARD_MAP_OBJ_LOCK_H
#define GUARD_MAP_OBJ_LOCK_H
bool8 sub_80983C4(void);
void ScriptFreezeMapObjects(void);
bool8 sub_809847C(void);
void LockSelectedMapObject(void);
void sub_8098630(void);
bool8 sub_8098734(void);
#endif // GUARD_MAP_OBJ_LOCK_H
+38
View File
@@ -0,0 +1,38 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
#include "text.h"
#include "window.h"
struct MenuAction
{
const u8 *text;
union {
void (*void_u8)(u8);
u8 (*u8_void)(void);
} func;
};
void box_print(u8, u8, u8, u8, const void *, s8, const u8 *);
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);
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);
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
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
s8 ProcessMenuInputNoWrap_(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
#endif // GUARD_MENU_H
+20
View File
@@ -0,0 +1,20 @@
#ifndef GUARD_MENU_HELPERS_H
#define GUARD_MENU_HELPERS_H
// Exported type declarations
struct YesNoFuncTable {
TaskFunc yesFunc;
TaskFunc noFunc;
};
// Exported RAM declarations
// Exported ROM declarations
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);
#endif //GUARD_MENU_HELPERS_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_MENU_INDICATORS_H
#define GUARD_MENU_INDICATORS_H
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *);
void RemoveScrollIndicatorArrowPair(u8);
#endif //GUARD_MENU_INDICATORS_H
+149
View File
@@ -0,0 +1,149 @@
#ifndef GUARD_METATILE_BEHAVIOR
#define GUARD_METATILE_BEHAVIOR
bool8 ShouldDoJumpLandingDustEffect(u8);
bool8 MetatileBehavior_IsEncounterTile(u8);
bool8 MetatileBehavior_IsJumpEast(u8);
bool8 MetatileBehavior_IsJumpWest(u8);
bool8 MetatileBehavior_IsJumpNorth(u8);
bool8 MetatileBehavior_IsJumpSouth(u8);
bool8 MetatileBehavior_IsPokeGrass(u8);
bool8 MetatileBehavior_IsSandOrDeepSand(u8);
bool8 MetatileBehavior_IsDeepSand(u8);
bool8 MetatileBehavior_IsReflective(u8);
bool8 MetatileBehavior_IsIce(u8);
bool8 MetatileBehavior_IsWarpDoor(u8);
bool8 MetatileBehavior_IsDoor(u8);
bool8 MetatileBehavior_IsEscalator(u8);
bool8 MetatileBehavior_IsMB_04(u8);
bool8 MetatileBehavior_IsLadder(u8);
bool8 MetatileBehavior_IsNonAnimDoor(u8);
bool8 MetatileBehavior_IsDeepSouthWarp(u8);
bool8 MetatileBehavior_IsSurfableWaterOrUnderwater(u8);
bool8 MetatileBehavior_IsEastArrowWarp(u8);
bool8 MetatileBehavior_IsWestArrowWarp(u8);
bool8 MetatileBehavior_IsNorthArrowWarp(u8);
bool8 MetatileBehavior_IsSouthArrowWarp(u8);
bool8 MetatileBehavior_IsArrowWarp(u8);
bool8 MetatileBehavior_IsMoveTile(u8);
bool8 MetatileBehavior_IsIce_2(u8);
bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8);
bool8 MetatileBehavior_IsMB_05(u8);
bool8 MetatileBehavior_IsWalkNorth(u8);
bool8 MetatileBehavior_IsWalkSouth(u8);
bool8 MetatileBehavior_IsWalkWest(u8);
bool8 MetatileBehavior_IsWalkEast(u8);
bool8 MetatileBehavior_IsNorthwardCurrent(u8);
bool8 MetatileBehavior_IsSouthwardCurrent(u8);
bool8 MetatileBehavior_IsWestwardCurrent(u8);
bool8 MetatileBehavior_IsEastwardCurrent(u8);
bool8 MetatileBehavior_IsSlideNorth(u8);
bool8 MetatileBehavior_IsSlideSouth(u8);
bool8 MetatileBehavior_IsSlideWest(u8);
bool8 MetatileBehavior_IsSlideEast(u8);
bool8 MetatileBehavior_IsCounter(u8);
bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDir);
bool8 MetatileBehavior_IsPC(u8);
bool8 MetatileBehavior_IsCableBoxResults1(u8);
bool8 MetatileBehavior_IsSecretBaseOpen(u8);
bool8 MetatileBehavior_IsSecretBaseCave(u8);
bool8 MetatileBehavior_IsSecretBaseTree(u8);
bool8 MetatileBehavior_IsSecretBaseShrub(u8);
bool8 MetatileBehavior_IsSecretBasePC(u8);
bool8 MetatileBehavior_IsSecretBaseRegisterPC(u8);
bool8 MetatileBehavior_IsMB_B2(u8);
bool8 MetatileBehavior_IsMB_B3(u8);
bool8 MetatileBehavior_IsMB_B9(u8);
bool8 MetatileBehavior_IsMB_C6(u8);
bool8 MetatileBehavior_IsSecretBasePoster(u8);
bool8 MetatileBehavior_IsNormal(u8);
bool8 MetatileBehavior_IsMB_B7(u8);
bool8 MetatileBehavior_IsMB_B2_Duplicate(u8);
bool8 MetatileBehavior_IsMB_B5(u8);
bool8 MetatileBehavior_IsMB_C3(u8);
bool8 MetatileBehavior_IsMB_C2(u8);
bool8 MetatileBehavior_IsSecretBaseBalloon(u8);
bool8 MetatileBehavior_IsMB_BE(u8);
bool8 MetatileBehavior_IsSecretBaseSoundMat(u8);
bool8 MetatileBehavior_IsSecretBaseGlitterMat(u8);
bool8 MetatileBehavior_IsMB_BF(u8);
bool8 MetatileBehavior_IsSecretBaseTvOrShield(u8);
bool8 MetatileBehavior_IsMB_C5(u8);
bool8 MetatileBehavior_HasRipples(u8);
bool8 MetatileBehavior_IsPuddle(u8);
bool8 MetatileBehavior_IsTallGrass(u8);
bool8 MetatileBehavior_IsLongGrass(u8);
bool8 MetatileBehavior_IsBerryTreeSoil(u8);
bool8 MetatileBehavior_IsAsh(u8);
bool8 MetatileBehavior_IsUnusedFootprintMetatile(u8);
bool8 MetatileBehavior_IsBridge(u8);
u8 MetatileBehavior_GetBridgeSth(u8);
u8 MetatileBehavior_8089510(u8);
bool8 MetatileBehavior_IsLandWildEncounter(u8);
bool8 MetatileBehavior_IsWaterWildEncounter(u8);
bool8 MetatileBehavior_IsMB_0B(u8);
bool8 MetatileBehavior_IsMountain(u8);
bool8 MetatileBehavior_IsDiveable(u8);
bool8 MetatileBehavior_IsUnableToEmerge(u8);
bool8 MetatileBehavior_IsShallowFlowingWater(u8);
bool8 MetatileBehavior_IsThinIce(u8);
bool8 MetatileBehavior_IsCrackedIce(u8);
bool8 MetatileBehavior_IsDeepOrOceanWater(u8);
bool8 MetatileBehavior_IsMB_18_OrMB_1A(u8);
bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8);
bool8 MetatileBehavior_IsEastBlocked(u8);
bool8 MetatileBehavior_IsWestBlocked(u8);
bool8 MetatileBehavior_IsNorthBlocked(u8);
bool8 MetatileBehavior_IsSouthBlocked(u8);
bool8 MetatileBehavior_IsShortGrass(u8);
bool8 MetatileBehavior_IsHotSprings(u8);
bool8 MetatileBehavior_IsWaterfall(u8);
bool8 MetatileBehavior_IsFortreeBridge(u8);
bool8 MetatileBehavior_IsPacifilogVerticalLog1(u8);
bool8 MetatileBehavior_IsPacifilogVerticalLog2(u8);
bool8 MetatileBehavior_IsPacifilogHorizontalLog1(u8);
bool8 MetatileBehavior_IsPacifilogHorizontalLog2(u8);
bool8 MetatileBehavior_IsPacifidlogLog(u8);
bool8 MetatileBehavior_IsTrickHousePuzzleDoor(u8);
bool8 MetatileBehavior_IsRegionMap(u8);
bool8 MetatileBehavior_IsClosedSootopolisGymDoor(u8);
bool8 MetatileBehavior_IsUnknownClosedDoor(u8);
bool8 MetatileBehavior_IsRoulette(u8);
bool8 MetatileBehavior_IsPokeblockFeeder(u8);
bool8 MetatileBehavior_IsSecretBaseJumpMat(u8);
bool8 MetatileBehavior_IsSecretBaseSpinMat(u8);
bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8);
bool8 MetatileBehavior_IsAquaHideoutWarp(u8);
bool8 MetatileBehavior_IsWarpOrBridge(u8);
bool8 MetatileBehavior_IsMossdeepGymWarp(u8);
bool8 MetatileBehavior_IsSurfableFishableWater(u8);
bool8 MetatileBehavior_IsMtPyreHole(u8);
bool8 MetatileBehavior_IsCrackedFloorHole(u8);
bool8 MetatileBehavior_IsCrackedFloor(u8);
bool8 MetatileBehavior_IsMuddySlope(u8);
bool8 MetatileBehavior_IsBumpySlope(u8);
bool8 MetatileBehavior_IsIsolatedVerticalRail(u8);
bool8 MetatileBehavior_IsIsolatedHorizontalRail(u8);
bool8 MetatileBehavior_IsVerticalRail(u8);
bool8 MetatileBehavior_IsHorizontalRail(u8);
bool8 MetatileBehavior_IsSeaweed(u8);
bool8 MetatileBehavior_IsRunningDisallowed(u8);
bool8 MetatileBehavior_IsCuttableGrass(u8);
bool8 MetatileBehavior_IsRunningShoesInstruction(u8);
bool8 MetatileBehavior_IsPictureBookShelf(u8);
bool8 MetatileBehavior_IsBookShelf(u8);
bool8 MetatileBehavior_IsPokeCenterBookShelf(u8);
bool8 MetatileBehavior_IsVase(u8);
bool8 MetatileBehavior_IsTrashCan(u8);
bool8 MetatileBehavior_IsShopShelf(u8);
bool8 MetatileBehavior_IsBlueprint(u8);
bool8 MetatileBehavior_IsBattlePyramidWarp(u8);
bool8 MetatileBehavior_IsPlayerFacingWirelessBoxResults(u8 tile, u8 playerDir);
bool8 MetatileBehavior_IsCableBoxResults2(u8 tile, u8 playerDir);
bool8 MetatileBehavior_IsQuestionnaire(u8);
bool8 MetatileBehavior_IsLongGrass_Duplicate(u8);
bool8 MetatileBehavior_IsLongGrassSouthEdge(u8);
bool8 MetatileBehavior_IsTrainerHillTimer(u8);
#endif // GUARD_METATILE_BEHAVIOR
+179
View File
@@ -0,0 +1,179 @@
#ifndef GUARD_METATILE_BEHAVIORS
#define GUARD_METATILE_BEHAVIORS
#define MB_NORMAL 0x00
#define MB_TALL_GRASS 0x02
#define MB_LONG_GRASS 0x03
#define MB_04 0x04
#define MB_05 0x05
#define MB_DEEP_SAND 0x06
#define MB_SHORT_GRASS 0x07
#define MB_CAVE 0x08
#define MB_LONG_GRASS_SOUTH_EDGE 0x09
#define MB_NO_RUNNING 0x0A
#define MB_0B 0x0B
#define MB_MOUNTAIN_TOP 0x0C
#define MB_BATTLE_PYRAMID_WARP 0x0D
#define MB_MOSSDEEP_GYM_WARP 0x0E
#define MB_MT_PYRE_HOLE 0x0F
#define MB_POND_WATER 0x10
#define MB_SEMI_DEEP_WATER 0x11
#define MB_DEEP_WATER 0x12
#define MB_WATERFALL 0x13
#define MB_SOOTOPOLIS_DEEP_WATER 0x14
#define MB_OCEAN_WATER 0x15
#define MB_PUDDLE 0x16
#define MB_SHALLOW_WATER 0x17
#define MB_18 0x18
#define MB_NO_SURFACING 0x19
#define MB_1A 0x1A
#define MB_STAIRS_OUTSIDE_ABANDONED_SHIP 0x1B
#define MB_SHOAL_CAVE_ENTRANCE 0x1C
#define MB_ICE 0x20
#define MB_SAND 0x21
#define MB_SEAWEED 0x22
#define MB_ASHGRASS 0x24
#define MB_25 0x25
#define MB_THIN_ICE 0x26
#define MB_CRACKED_ICE 0x27
#define MB_HOT_SPRINGS 0x28
#define MB_LAVARIDGE_GYM_B1F_WARP 0x29
#define MB_SEAWEED_NO_SURFACING 0x2A
#define MB_REFLECTION_UNDER_BRIDGE 0x2B
#define MB_IMPASSABLE_EAST 0x30
#define MB_IMPASSABLE_WEST 0x31
#define MB_IMPASSABLE_NORTH 0x32
#define MB_IMPASSABLE_SOUTH 0x33
#define MB_IMPASSABLE_NORTHEAST 0x34
#define MB_IMPASSABLE_NORTHWEST 0x35
#define MB_IMPASSABLE_SOUTHEAST 0x36
#define MB_IMPASSABLE_SOUTHWEST 0x37
#define MB_JUMP_EAST 0x38
#define MB_JUMP_WEST 0x39
#define MB_JUMP_NORTH 0x3A
#define MB_JUMP_SOUTH 0x3B
#define MB_JUMP_SOUTHEAST 0x3E
#define MB_JUMP_SOUTHWEST 0x3F
#define MB_WALK_EAST 0x40
#define MB_WALK_WEST 0x41
#define MB_WALK_NORTH 0x42
#define MB_WALK_SOUTH 0x43
#define MB_SLIDE_EAST 0x44
#define MB_SLIDE_WEST 0x45
#define MB_SLIDE_NORTH 0x46
#define MB_SLIDE_SOUTH 0x47
#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
#define MB_EASTWARD_CURRENT 0x50
#define MB_WESTWARD_CURRENT 0x51
#define MB_NORTHWARD_CURRENT 0x52
#define MB_SOUTHWARD_CURRENT 0x53
#define MB_NON_ANIMATED_DOOR 0x60
#define MB_LADDER 0x61
#define MB_EAST_ARROW_WARP 0x62
#define MB_WEST_ARROW_WARP 0x63
#define MB_NORTH_ARROW_WARP 0x64
#define MB_SOUTH_ARROW_WARP 0x65
#define MB_CRACKED_FLOOR_HOLE 0x66
#define MB_AQUA_HIDEOUT_WARP 0x67
#define MB_LAVARIDGE_GYM_1F_WARP 0x68
#define MB_ANIMATED_DOOR 0x69
#define MB_UP_ESCALATOR 0x6A
#define MB_DOWN_ESCALATOR 0x6B
#define MB_WATER_DOOR 0x6C
#define MB_WATER_SOUTH_ARROW_WARP 0x6D
#define MB_DEEP_SOUTH_WARP 0x6E
#define MB_WARP_OR_BRIDGE 0x70
#define MB_71 0x71
#define MB_ROUTE120_NORTH_BRIDGE_1 0x72
#define MB_ROUTE120_NORTH_BRIDGE_2 0x73
#define MB_PACIFIDLOG_VERTICAL_LOG_1 0x74
#define MB_PACIFIDLOG_VERTICAL_LOG_2 0x75
#define MB_PACIFIDLOG_HORIZONTAL_LOG_1 0x76
#define MB_PACIFIDLOG_HORIZONTAL_LOG_2 0x77
#define MB_FORTREE_BRIDGE 0x78
#define MB_ROUTE120_SOUTH_BRIDGE_1 0x7A
#define MB_ROUTE120_SOUTH_BRIDGE_2 0x7B
#define MB_ROUTE120_NORTH_BRIDGE_3 0x7C
#define MB_ROUTE120_NORTH_BRIDGE_4 0x7D
#define MB_7E 0x7E
#define MB_ROUTE110_BRIDGE 0x7F
#define MB_COUNTER 0x80
#define MB_PC 0x83
#define MB_CABLE_BOX_RESULTS_1 0x84
#define MB_REGION_MAP 0x85
#define MB_TELEVISION 0x86
#define MB_POKEBLOCK_FEEDER 0x87
#define MB_SLOT_MACHINE 0x89
#define MB_ROULETTE 0x8A
#define MB_CLOSED_SOOTOPOLIS_GYM_DOOR 0x8B
#define MB_TRICK_HOUSE_PUZZLE_DOOR 0x8C
#define MB_8D 0x8D
#define MB_RUNNING_SHOES_INSTRUCTION 0x8E
#define MB_QUESTIONNAIRE 0x8F
#define MB_SECRET_BASE_SPOT_RED_CAVE 0x90
#define MB_SECRET_BASE_SPOT_RED_CAVE_OPEN 0x91
#define MB_SECRET_BASE_SPOT_BROWN_CAVE 0x92
#define MB_SECRET_BASE_SPOT_BROWN_CAVE_OPEN 0x93
#define MB_SECRET_BASE_SPOT_YELLOW_CAVE 0x94
#define MB_SECRET_BASE_SPOT_YELLOW_CAVE_OPEN 0x95
#define MB_SECRET_BASE_SPOT_TREE_LEFT 0x96
#define MB_SECRET_BASE_SPOT_TREE_LEFT_OPEN 0x97
#define MB_SECRET_BASE_SPOT_SHRUB 0x98
#define MB_SECRET_BASE_SPOT_SHRUB_OPEN 0x99
#define MB_SECRET_BASE_SPOT_BLUE_CAVE 0x9A
#define MB_SECRET_BASE_SPOT_BLUE_CAVE_OPEN 0x9B
#define MB_SECRET_BASE_SPOT_TREE_RIGHT 0x9C
#define MB_SECRET_BASE_SPOT_TREE_RIGHT_OPEN 0x9D
#define MB_BERRY_TREE_SOIL 0xA0
#define MB_SECRET_BASE_PC 0xB0
#define MB_SECRET_BASE_REGISTER_PC 0xB1
#define MB_B2 0xB2
#define MB_B3 0xB3
#define MB_B4 0xB4
#define MB_B5 0xB5
#define MB_B6 0xB6
#define MB_B7 0xB7
#define MB_SECRET_BASE_BALLOON 0xB8
#define MB_B9 0xB9
#define MB_SECRET_BASE_GLITTER_MAT 0xBA
#define MB_SECRET_BASE_JUMP_MAT 0xBB
#define MB_SECRET_BASE_SPIN_MAT 0xBC
#define MB_SECRET_BASE_SOUND_MAT 0xBD
#define MB_BE 0xBE
#define MB_BF 0xBF
#define MB_BED 0xC0
#define MB_C1 0xC1
#define MB_C2 0xC2
#define MB_C3 0xC3
#define MB_SECRET_BASE_TV_SHIELD 0xC4
#define MB_C5 0xC5
#define MB_C6 0xC6
#define MB_SECRET_BASE_POSTER 0xC7
#define MB_C8 0xC8
#define MB_C9 0xC9
#define MB_CA 0xCA
#define MB_CB 0xCB
#define MB_CC 0xCC
#define MB_CD 0xCD
#define MB_CE 0xCE
#define MB_CF 0xCF
#define MB_MUDDY_SLOPE 0xD0
#define MB_BUMPY_SLOPE 0xD1
#define MB_CRACKED_FLOOR 0xD2
#define MB_ISOLATED_VERTICAL_RAIL 0xD3
#define MB_ISOLATED_HORIZONTAL_RAIL 0xD4
#define MB_VERTICAL_RAIL 0xD5
#define MB_HORIZONTAL_RAIL 0xD6
#define MB_PICTURE_BOOK_SHELF 0xE0
#define MB_BOOKSHELF 0xE1
#define MB_POKEMON_CENTER_BOOKSHELF 0xE2
#define MB_VASE 0xE3
#define MB_TRASH_CAN 0xE4
#define MB_SHOP_SHELF 0xE5
#define MB_BLUEPRINT 0xE6
#define MB_CABLE_BOX_RESULTS_2 0xE7
#define MB_WIRELESS_BOX_RESULTS 0xE8
#define MB_TRAINER_HILL_TIMER 0xE9
#define MB_UNKNOWN_CLOSED_DOOR 0xEA
#endif // GUARD_METATILE_BEHAVIORS
+20
View File
@@ -0,0 +1,20 @@
#ifndef GUARD_MONEY_H
#define GUARD_MONEY_H
u32 GetMoney(u32* moneyPtr);
void SetMoney(u32* moneyPtr, u32 newValue);
bool8 IsEnoughMoney(u32* moneyPtr, u32 cost);
void AddMoney(u32* moneyPtr, u32 toAdd);
void RemoveMoney(u32* moneyPtr, u32 toSub);
bool8 IsEnoughForCostInVar0x8005(void);
void SubtractMoneyFromVar0x8005(void);
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed);
void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount);
void ChangeAmountInMoneyBox(int amount);
void DrawMoneyBox(int amount, u8 x, u8 y);
void HideMoneyBox(void);
void AddMoneyLabelObject(u16 x, u16 y);
void RemoveMoneyLabelObject(void);
#endif // GUARD_MONEY_H
+21
View File
@@ -0,0 +1,21 @@
#ifndef GUARD_MULTIBOOT_H
#define GUARD_MULTIBOOT_H
#define MULTIBOOT_MASTER_INFO 0x62
#define MULTIBOOT_CLIENT_INFO 0x72
#define MULTIBOOT_MASTER_START_PROBE 0x61
#define MULTIBOOT_MASTER_REQUEST_DLREADY 0x63
#define MULTIBOOT_CLIENT_DLREADY 0x73
#define MULTIBOOT_MASTER_START_DL 0x64
#define MULTIBOOT_MASTER_REQUEST_CRC 0x65
#define MULTIBOOT_CLIENT_CALC_CRC 0x74
#define MULTIBOOT_CLIENT_CRCREADY 0x75
#define MULTIBOOT_MASTER_VERIFY_CRC 0x66
void MultiBootInit(struct MultiBootParam *mp);
int MultiBootMain(struct MultiBootParam *mp);
void MultiBootStartProbe(struct MultiBootParam *mp);
void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed);
int MultiBootCheckComplete(struct MultiBootParam *mp);
#endif // GUARD_MULTIBOOT_H

Some files were not shown because too many files have changed in this diff Show More