Merge branch 'master' of https://github.com/pret/pokefirered into sync-rfu2

This commit is contained in:
GriffinR
2022-11-07 10:41:03 -05:00
1459 changed files with 41323 additions and 34992 deletions
+4 -19
View File
@@ -29,11 +29,6 @@
(!(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) \
&& !(gDisableStructs[battler].mimickedMoves & gBitTable[moveSlot]))
#define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00
#define TRAINER_LINK_OPPONENT 0x800
#define SECRET_BASE_OPPONENT 0x400
// Battle Actions
// These determine what each battler will do in a turn
#define B_ACTION_USE_MOVE 0
@@ -402,8 +397,8 @@ struct BattleStruct
u8 runTries;
u8 caughtMonNick[POKEMON_NAME_LENGTH + 1];
u8 field_78; // unused
u8 safariGoNearCounter;
u8 safariPkblThrowCounter;
u8 safariRockThrowCounter;
u8 safariBaitThrowCounter;
u8 safariEscapeFactor;
u8 safariCatchFactor;
u8 linkBattleVsSpriteId_V;
@@ -521,16 +516,6 @@ struct BattleScripting
u8 field_23;
};
enum
{
BACK_PIC_RED,
BACK_PIC_LEAF,
BACK_PIC_RS_BRENDAN,
BACK_PIC_RS_MAY,
BACK_PIC_POKEDUDE,
BACK_PIC_OLDMAN
};
struct BattleSpriteInfo
{
/*0x0*/ u16 invisible : 1; // 0x1
@@ -685,8 +670,8 @@ extern u8 *gBattleAnimBgTileBuffer;
extern u8 *gBattleAnimBgTilemapBuffer;
extern void (*gBattleMainFunc)(void);
extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT];
extern u32 gUnknown_2022B54;
extern u8 gUnknown_2023DDC;
extern u32 gUnusedFirstBattleVar1;
extern u8 gUnusedFirstBattleVar2;
extern u8 gBattlerAttacker;
extern u8 gEffectBattler;
extern u8 gMultiHitCounter;
+10 -2
View File
@@ -3,8 +3,7 @@
#include "global.h"
enum
{
enum {
AI_ITEM_FULL_RESTORE = 1,
AI_ITEM_HEAL_HP,
AI_ITEM_CURE_CONDITION,
@@ -13,6 +12,15 @@ enum
AI_ITEM_NOT_RECOGNIZABLE
};
enum {
AI_HEAL_CONFUSION,
AI_HEAL_PARALYSIS,
AI_HEAL_FREEZE,
AI_HEAL_BURN,
AI_HEAL_POISON,
AI_HEAL_SLEEP,
};
void AI_TrySwitchOrUseItem(void);
u8 GetMostSuitableMonToSwitchInto(void);
+74 -364
View File
@@ -17,6 +17,36 @@ enum
BG_ANIM_SCREEN_BASE_BLOCK
};
enum
{
BATTLER_COORD_X,
BATTLER_COORD_Y,
BATTLER_COORD_X_2,
BATTLER_COORD_Y_PIC_OFFSET,
BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
};
enum
{
BATTLER_COORD_ATTR_HEIGHT,
BATTLER_COORD_ATTR_WIDTH,
BATTLER_COORD_ATTR_TOP,
BATTLER_COORD_ATTR_BOTTOM,
BATTLER_COORD_ATTR_LEFT,
BATTLER_COORD_ATTR_RIGHT,
BATTLER_COORD_ATTR_RAW_BOTTOM,
};
// battle_anim_status_effects.s
#define STAT_ANIM_PLUS1 15
#define STAT_ANIM_PLUS2 39
#define STAT_ANIM_MINUS1 22
#define STAT_ANIM_MINUS2 46
#define STAT_ANIM_MULTIPLE_PLUS1 55
#define STAT_ANIM_MULTIPLE_PLUS2 56
#define STAT_ANIM_MULTIPLE_MINUS1 57
#define STAT_ANIM_MULTIPLE_MINUS2 58
struct BattleAnimBgData
{
u8 *bgTiles;
@@ -60,9 +90,8 @@ extern u8 gBattleAnimTarget;
extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT];
extern s32 gAnimMoveDmg;
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gUnknown_2037F24;
extern u8 gAnimCustomPanning;
// battle_anim.c
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
extern const struct OamData gOamData_AffineOff_ObjNormal_16x16;
extern const struct OamData gOamData_AffineOff_ObjNormal_32x32;
@@ -135,8 +164,27 @@ extern const struct OamData gOamData_AffineDouble_ObjBlend_8x16;
extern const struct OamData gOamData_AffineDouble_ObjBlend_8x32;
extern const struct OamData gOamData_AffineDouble_ObjBlend_16x32;
extern const struct OamData gOamData_AffineDouble_ObjBlend_32x64;
extern const struct MonCoords gCastformFrontSpriteCoords[];
extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
extern const struct SpriteTemplate gWishStarSpriteTemplate;
extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate;
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
extern const union AffineAnimCmd *const gAffineAnims_Bite[];
extern const union AffineAnimCmd *const gAffineAnims_Droplet[];
extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[];
extern const union AnimCmd *const gAnims_SmallBubblePair[];
extern const union AnimCmd *const gAnims_BasicFire[];
extern const union AnimCmd *const gAnims_WaterMudOrb[];
extern const union AnimCmd *const gAnims_WaterBubble[];
extern const union AnimCmd *const gMusicNotesAnimTable[];
extern const u8 *const gBattleAnims_StatusConditions[];
extern const u8 *const gBattleAnims_Moves[];
extern const u16 gMovesWithQuietBGM[];
void MoveBattlerSpriteToBG(u8 battlerId, u8);
void ResetBattleAnimBg(u8);
void ClearBattleAnimationVars(void);
@@ -152,209 +200,19 @@ s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
bool8 IsBattlerSpriteVisible(u8 battlerId);
s16 KeepPanInRange(s16 a, s32 oldPan);
void RelocateBattleBgPal(u16 paletteNum, u16 *dest, s32 offset, u8 largeScreen);
// battle_intro.c
void SetAnimBgAttribute(u8 bgId, u8 attributeId, u8 value);
s32 GetAnimBgAttribute(u8 bgId, u8 attributeId);
void HandleIntroSlide(u8 terrain);
void BattleIntroSlideEnd(u8 taskId);
void CopyBattlerSpriteToBg(s32 bgId, u8 x, u8 y, u8 battlerPosition, u8 palno, u8 *tilesDest, u16 *tilemapDest, u16 tilesOffset);
// battle_anim_effects_1.c
extern const union AnimCmd *const gMusicNotesAnimTable[];
extern const struct SpriteTemplate gThoughtBubbleSpriteTemplate;
void AnimMovePowderParticle(struct Sprite *);
void AnimPowerAbsorptionOrb(struct Sprite *);
void AnimSolarBeamBigOrb(struct Sprite *);
void AnimSolarBeamSmallOrb(struct Sprite *);
void AnimAbsorptionOrb(struct Sprite *);
void AnimHyperBeamOrb(struct Sprite *);
void AnimSporeParticle(struct Sprite *);
void AnimPetalDanceBigFlower(struct Sprite *);
void AnimPetalDanceSmallFlower(struct Sprite *);
void AnimRazorLeafParticle(struct Sprite *);
void AnimLeechSeed(struct Sprite *);
void AnimTranslateLinearSingleSineWave(struct Sprite *);
void AnimMoveTwisterParticle(struct Sprite *);
void AnimConstrictBinding(struct Sprite *);
void AnimMimicOrb(struct Sprite *);
void AnimIngrainRoot(struct Sprite *);
void AnimFrenzyPlantRoot(struct Sprite *);
void AnimIngrainOrb(struct Sprite *);
void AnimPresent(struct Sprite *);
void AnimKnockOffItem(struct Sprite *);
void AnimPresentHealParticle(struct Sprite *);
void AnimItemSteal(struct Sprite *);
void AnimTrickBag(struct Sprite *);
void AnimFlyingParticle(struct Sprite *);
void AnimNeedleArmSpike(struct Sprite *);
void AnimSlidingHit(struct Sprite *);
void AnimWhipHit(struct Sprite *);
void AnimFlickeringPunch(struct Sprite *);
void AnimCuttingSlice(struct Sprite *);
void AnimAirCutterSlice(struct Sprite *);
void AnimCirclingMusicNote(struct Sprite *);
void AnimProtect(struct Sprite *);
void AnimMilkBottle(struct Sprite *);
void AnimGrantingStars(struct Sprite *);
void AnimSparkingStars(struct Sprite *);
void AnimBubbleBurst(struct Sprite *);
void AnimSleepLetterZ(struct Sprite *);
void AnimLockOnTarget(struct Sprite *);
void AnimLockOnMoveTarget(struct Sprite *);
void AnimBowMon(struct Sprite *);
void AnimTipMon(struct Sprite *);
void AnimSlashSlice(struct Sprite *);
void AnimFalseSwipeSlice(struct Sprite *);
void AnimFalseSwipePositionedSlice(struct Sprite *);
void AnimEndureEnergy(struct Sprite *);
void AnimSharpenSphere(struct Sprite *);
void AnimConversion(struct Sprite *);
void AnimConversion2(struct Sprite *);
void AnimMoon(struct Sprite *);
void AnimMoonlightSparkle(struct Sprite *);
void AnimHornHit(struct Sprite *);
void AnimSuperFang(struct Sprite *);
void AnimWavyMusicNotes(struct Sprite *);
void AnimFlyingMusicNotes(struct Sprite *);
void AnimBellyDrumHand(struct Sprite *);
void AnimSlowFlyingMusicNotes(struct Sprite *);
void AnimThoughtBubble(struct Sprite *);
void AnimMetronomeFinger(struct Sprite *);
void AnimFollowMeFinger(struct Sprite *);
void AnimTauntFinger(struct Sprite *);
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
void AnimTask_ShrinkTargetCopy(u8 taskId);
// battle_anim_effects_2.c
extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[];
void AnimCirclingFinger(struct Sprite *);
void AnimBouncingMusicNote(struct Sprite *);
void AnimVibrateBattlerBack(struct Sprite *);
void AnimMovingClamp(struct Sprite *);
void Anim_KinesisZapEnergy(struct Sprite *);
void Anim_SwordsDanceBlade(struct Sprite *);
void AnimSonicBoomProjectile(struct Sprite *);
void AnimAirWaveProjectile(struct Sprite *);
void AnimVoidLines(struct Sprite *);
void AnimCoinThrow(struct Sprite *);
void AnimFallingCoin(struct Sprite *);
void AnimBulletSeed(struct Sprite *);
void AnimRazorWindTornado(struct Sprite *);
void AnimViceGripPincer(struct Sprite *);
void AnimGuillotinePincer(struct Sprite *);
void AnimBreathPuff(struct Sprite *);
void AnimAngerMark(struct Sprite *);
void AnimPencil(struct Sprite *);
void AnimBlendThinRing(struct Sprite *);
void AnimHyperVoiceRing(struct Sprite *);
void AnimUproarRing(struct Sprite *);
void AnimSoftBoiledEgg(struct Sprite *);
void AnimSpeedDust(struct Sprite *);
void AnimHealBellMusicNote(struct Sprite *);
void AnimMagentaHeart(struct Sprite *);
void AnimRedHeartProjectile(struct Sprite *);
void AnimParticuleBurst(struct Sprite *);
void AnimRedHeartRising(struct Sprite *);
void AnimOrbitFast(struct Sprite *);
void AnimOrbitScatter(struct Sprite *);
void AnimSpitUpOrb(struct Sprite *);
void AnimEyeSparkle(struct Sprite *);
void AnimAngel(struct Sprite *);
void AnimPinkHeart(struct Sprite *);
void AnimDevil(struct Sprite *);
void AnimFurySwipes(struct Sprite *);
void AnimMovementWaves(struct Sprite *);
void AnimJaggedMusicNote(struct Sprite *);
void AnimPerishSongMusicNote2(struct Sprite *);
void AnimPerishSongMusicNote(struct Sprite *);
void AnimGuardRing(struct Sprite *);
// battle_anim_effects_3.c
extern const struct SpriteTemplate gWishStarSpriteTemplate;
extern const struct SpriteTemplate gMiniTwinklingStarSpriteTemplate;
void AnimBlackSmoke(struct Sprite *);
void AnimWhiteHalo(struct Sprite *);
void AnimTealAlert(struct Sprite *);
void AnimMeanLookEye(struct Sprite *);
void AnimSpikes(struct Sprite *);
void AnimLeer(struct Sprite *);
void AnimLetterZ(struct Sprite *);
void AnimFang(struct Sprite *);
void AnimSpotlight(struct Sprite *);
void AnimClappingHand(struct Sprite *);
void AnimClappingHand2(struct Sprite *);
void AnimRapidSpin(struct Sprite *);
void AnimTriAttackTriangle(struct Sprite *);
void AnimBatonPassPokeball(struct Sprite *);
void AnimWishStar(struct Sprite *);
void AnimMiniTwinklingStar(struct Sprite *);
void AnimSwallowBlueOrb(struct Sprite *);
void AnimGreenStar(struct Sprite *);
void AnimWeakFrustrationAngerMark(struct Sprite *);
void AnimSweetScentPetal(struct Sprite *);
void AnimPainSplitProjectile(struct Sprite *);
void AnimFlatterConfetti(struct Sprite *);
void AnimFlatterSpotlight(struct Sprite *);
void AnimReversalOrb(struct Sprite *);
void AnimYawnCloud(struct Sprite *);
void AnimSmokeBallEscapeCloud(struct Sprite *);
void AnimFacadeSweatDrop(struct Sprite *);
void AnimRoarNoiseLine(struct Sprite *);
void AnimGlareEyeDot(struct Sprite *);
void AnimAssistPawprint(struct Sprite *);
void AnimSmellingSaltsHand(struct Sprite *);
void AnimSmellingSaltExclamation(struct Sprite *);
void AnimHelpingHandClap(struct Sprite *);
void AnimForesightMagnifyingGlass(struct Sprite *);
void AnimMeteorMashStar(struct Sprite *);
void AnimBlockX(struct Sprite *);
void AnimUnusedItemBagSteal(struct Sprite *);
void AnimParticuleBurst(struct Sprite *);
void AnimKnockOffStrike(struct Sprite *);
void AnimRecycle(struct Sprite *);
// battle_anim_special.c
void TryShinyAnimation(u8 battler, struct Pokemon *mon);
u8 ItemIdToBallId(u16 itemId);
u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId);
void DoLoadHealthboxPalsForLevelUp(u8 *, u8 *, u8 battlerId);
void DoFreeHealthboxPalsForLevelUp(u8 batterId);
enum
{
BATTLER_COORD_X,
BATTLER_COORD_Y,
BATTLER_COORD_X_2,
BATTLER_COORD_Y_PIC_OFFSET,
BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
};
enum
{
BATTLER_COORD_ATTR_HEIGHT,
BATTLER_COORD_ATTR_WIDTH,
BATTLER_COORD_ATTR_TOP,
BATTLER_COORD_ATTR_BOTTOM,
BATTLER_COORD_ATTR_LEFT,
BATTLER_COORD_ATTR_RIGHT,
BATTLER_COORD_ATTR_RAW_BOTTOM,
};
// battle_anim_status_effects.s
#define STAT_ANIM_PLUS1 15
#define STAT_ANIM_PLUS2 39
#define STAT_ANIM_MINUS1 22
#define STAT_ANIM_MINUS2 46
#define STAT_ANIM_MULTIPLE_PLUS1 55
#define STAT_ANIM_MULTIPLE_PLUS2 56
#define STAT_ANIM_MULTIPLE_MINUS1 57
#define STAT_ANIM_MULTIPLE_MINUS2 58
void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
// battle_anim_mons.c
extern const struct MonCoords gCastformFrontSpriteCoords[];
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType);
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
@@ -363,15 +221,15 @@ u8 GetGhostSpriteDefault_Y(u8 battlerId);
u8 GetBattlerYCoordWithElevation(u8 battlerId);
u8 GetAnimBattlerSpriteId(u8 animBattler);
void StoreSpriteCallbackInData6(struct Sprite *sprite, SpriteCallback callback);
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite);
void TranslateSpriteInEllipseOverDuration(struct Sprite *sprite);
void TranslateSpriteInCircle(struct Sprite *sprite);
void TranslateSpriteInGrowingCircle(struct Sprite *sprite);
void TranslateSpriteInEllipse(struct Sprite *sprite);
void WaitAnimForDuration(struct Sprite *sprite);
void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite);
void ConvertPosDataToTranslateLinearData(struct Sprite *sprite);
void TranslateSpriteLinear(struct Sprite *sprite);
void TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
void TranslateMonSpriteLinear(struct Sprite *sprite);
void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite);
void TranslateSpriteLinearById(struct Sprite *sprite);
void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
void TranslateSpriteLinearAndFlicker(struct Sprite *sprite);
void DestroySpriteAndMatrix(struct Sprite *sprite);
void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite);
@@ -400,19 +258,19 @@ void InitAnimBgTilemapBuffer(u32 bgId, const void *src);
void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src);
u8 GetBattleBgPaletteNum(void);
void ToggleBg3Mode(bool8 arg0);
void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite);
void TradeMenuBouncePartySprites(struct Sprite *sprite);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite);
void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite);
void RunLinearTranslation_ThenceSetCBtoStoredInData6(struct Sprite *sprite);
void BattleAnim_InitLinearTranslationWithDuration(struct Sprite *sprite);
void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite);
void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
bool8 AnimFastTranslateLinear(struct Sprite *sprite);
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void ResetSpriteRotScale(u8 spriteId);
@@ -421,18 +279,15 @@ void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 x
void TryResetSpriteAffineState(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b);
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
u32 SelectBattleAnimSpriteAndBgPalettes(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7);
u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight);
u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7);
u32 GetBattleMonSpritePalettesMask(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight);
u8 GetSpritePalIdxByBattler(u8 a1);
void AnimSpriteOnMonPos(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
void AnimThrowProjectile(struct Sprite *sprite);
void AnimSnoreZ(struct Sprite *sprite);
void AnimTravelDiagonally(struct Sprite *sprite);
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
void AnimTask_AlphaFadeIn(u8 taskId);
void AnimTask_BlendMonInAndOut(u8 task);
void AnimTask_BlendPalInAndOutByTag(u8 taskId);
void DestroySpriteWithActiveSheet(struct Sprite *sprite);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task);
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
@@ -441,173 +296,28 @@ void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr);
void *LoadPointerFromVars(s16 lo, s16 hi);
void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration);
u8 BattleAnimHelper_RunSpriteSquash(struct Task *task);
void AnimTask_GetFrustrationPowerLevel(u8 taskId);
void ResetSpritePriorityOfAllVisibleBattlers(void);
void InitPrioritiesForVisibleBattlers(void);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
u8 GetBattlerSpriteBGPriority(u8 battlerId);
// Returns 2 if player left or opp right
// Returns 1 if player right or opp left
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 ignoreDeoxys);
void DestroySpriteAndFreeResources_(struct Sprite *sprite);
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species);
void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite);
void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite);
void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite);
void AnimTask_AttackerPunchWithTrace(u8 taskId);
void SpriteCB_WeatherBallUp(struct Sprite *sprite);
u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species);
void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
void AnimSpinningSparkle(struct Sprite *sprite);
void AnimWeatherBallUp(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite);
// battle_anim_mon_movement.c
void AnimTask_ShakeMon(u8 taskId);
void AnimTask_ShakeMon2(u8 taskId);
void AnimTask_ShakeMonInPlace(u8 taskId);
void AnimTask_ShakeAndSinkMon(u8 taskId);
void AnimTask_TranslateMonElliptical(u8 taskId);
void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId);
void AnimTask_WindUpLunge(u8 taskId);
void AnimTask_SlideOffScreen(u8 taskId);
void AnimTask_SwayMon(u8 taskId);
void AnimTask_ScaleMonAndRestore(u8 taskId);
void AnimTask_RotateMonSpriteToSide(u8 taskId);
void AnimTask_RotateMonToSideAndRestore(u8 taskId);
void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId);
// normal.c
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
void AnimTask_CurseBlendEffect(u8 taskId);
void AnimTask_BlendColorCycleExclude(u8 taskId);
void AnimTask_BlendColorCycleByTag(u8 taskId);
void AnimTask_FlashAnimTagWithColor(u8 taskId);
void AnimTask_InvertScreenColor(u8 taskId);
void AnimTask_ShakeBattleTerrain(u8 taskId);
// ground.c
void AnimTask_DigDownMovement(u8 taskId);
void AnimTask_DigUpMovement(u8 taskId);
void AnimParticleBurst(struct Sprite *);
void AnimMoveTwisterParticle(struct Sprite *);
u32 UnpackSelectedBattlePalettes(s16 selector);
void AnimTask_HorizontalShake(u8 taskId);
void AnimTask_IsPowerOver99(u8 taskId);
void AnimTask_PositionFissureBgOnBattler(u8 taskId);
// dragon.c
void AnimTask_DragonDanceWaver(u8 taskId);
// ghost.c
void AnimTask_NightShadeClone(u8 taskId);
void AnimTask_NightmareClone(u8 taskId);
void AnimTask_SpiteTargetShadow(u8 taskId);
void AnimTask_DestinyBondWhiteShadow(u8 taskId);
void AnimTask_CurseStretchingBlackBg(u8 taskId);
void AnimTask_GrudgeFlames(u8 taskId);
void sub_80B6BBC(u8 taskId);
// rock.c
void AnimTask_LoadSandstormBackground(u8 taskId);
void AnimTask_Rollout(u8 taskId);
void AnimTask_GetSeismicTossDamageLevel(u8 taskId);
void AnimTask_MoveSeismicTossBg(u8 taskId);
void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId);
// psychic.c
void AnimTask_MeditateStretchAttacker(u8 taskId);
void AnimTask_Teleport(u8 taskId);
void AnimTask_ImprisonOrbs(u8 taskId);
void AnimTask_SkillSwap(u8 taskId);
void AnimTask_ExtrasensoryDistortion(u8 taskId);
void AnimTask_TransparentCloneGrowAndShrink(u8 taskId);
// dark.c
extern const union AffineAnimCmd *const gAffineAnims_Bite[];
void AnimTask_AttackerFadeToInvisible(u8 taskId);
void AnimTask_AttackerFadeFromInvisible(u8 taskId);
void AnimTask_InitAttackerFadeFromInvisible(u8 taskId);
void AnimTask_MoveAttackerMementoShadow(u8 taskId);
void AnimTask_MoveTargetMementoShadow(u8 taskId);
void AnimTask_InitMementoShadow(u8 taskId);
void sub_80B8664(u8 taskId);
void AnimTask_MetallicShine(u8 taskId);
void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId);
void GetIsDoomDesireHitTurn(u8 taskId);
// flying.c
void AnimTask_AnimateGustTornadoPalette(u8 taskId);
void DestroyAnimSpriteAfterTimer(struct Sprite *sprite);
void AnimTask_DrillPeckHitSplats(u8 taskId);
// poison.c
extern const union AffineAnimCmd *const gAffineAnims_Droplet[];
// fighting.c
void AnimTask_MoveSkyUppercutBg(u8 taskId);
// ice.c
extern const union AnimCmd *const gAnims_SmallBubblePair[];
void AnimTask_Haze1(u8 taskId);
void AnimTask_LoadMistTiles(u8 taskId);
void AnimTask_Hail1(u8 taskId);
void AnimTask_GetRolloutCounter(u8 taskId);
// electric.c
void AnimTask_ElectricBolt(u8 taskId);
void AnimTask_ElectricChargingParticles(u8 taskId);
void AnimTask_VoltTackleAttackerReappear(u8 taskId);
void AnimTask_VoltTackleBolt(u8 taskId);
void AnimTask_ShockWaveProgressingBolt(u8 taskId);
void AnimTask_ShockWaveLightning(u8 taskId);
// fire.c
extern const union AnimCmd *const gAnims_BasicFire[];
void AnimTask_EruptionLaunchRocks(u8 taskId);
void AnimTask_ShakeTargetInPattern(u8 taskId);
void AnimTask_BlendBackground(u8 taskId);
void AnimTask_MoveHeatWaveTargets(u8 taskId);
// water.c
extern const union AnimCmd *const gAnims_WaterMudOrb[];
extern const union AnimCmd *const gAnims_WaterBubble[];
void AnimWaterPulseRing(struct Sprite *sprite);
// smokescreen.c
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
// battle_anim_utility_funcs.c
void AnimTask_BlendSelected(u8 taskId);
void AnimTask_BlendExcept(u8 taskId);
void AnimTask_SetCamouflageBlend(u8 taskId);
void AnimTask_BlendParticle(u8 taskId);
void AnimTask_HardwarePaletteFade(u8 taskId);
void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId);
void AnimTask_SetUpCurseBackground(u8 taskId);
void InitStatsChangeAnimation(u8 taskId);
void AnimTask_BlendNonAttackerPalettes(u8 taskId);
void AnimTask_StartSlidingBg(u8 taskId);
void AnimTask_GetAttackerSide(u8 taskId);
void AnimTask_GetTargetSide(u8 taskId);
void AnimTask_GetTargetIsAttackerPartner(u8 taskId);
void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId);
void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette);
void AnimTask_GetBattleTerrain(u8 taskId);
void AnimTask_AllocBackupPalBuffer(u8 taskId);
void AnimTask_FreeBackupPalBuffer(u8 taskId);
void AnimTask_CopyPalUnfadedToBackup(u8 taskId);
void AnimTask_CopyPalUnfadedFromBackup(u8 taskId);
void AnimTask_CopyPalFadedToUnfaded(u8 taskId);
void AnimTask_IsContest(u8 taskId);
void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId);
void AnimTask_IsTargetSameSide(u8 taskId);
void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId);
void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId);
void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId);
// battle_anim_scripts.s
extern const u8 *const gBattleAnims_StatusConditions[];
extern const u16 gMovesWithQuietBGM[];
extern const u8 *const gBattleAnims_Moves[];
#endif // GUARD_BATTLE_ANIM_H
+13 -13
View File
@@ -108,8 +108,8 @@ enum {
struct UnusedControllerStruct
{
u8 field_0 : 7;
u8 flag_x80 : 1;
u8 unk:7;
u8 flag:1;
};
struct HpAndStatus
@@ -174,14 +174,14 @@ enum
CONTROLLER_CHOSENMONRETURNVALUE,
CONTROLLER_ONERETURNVALUE,
CONTROLLER_ONERETURNVALUE_DUPLICATE,
CONTROLLER_37,
CONTROLLER_38,
CONTROLLER_39,
CONTROLLER_40,
CONTROLLER_CLEARUNKVAR,
CONTROLLER_SETUNKVAR,
CONTROLLER_CLEARUNKFLAG,
CONTROLLER_TOGGLEUNKFLAG,
CONTROLLER_HITANIMATION,
CONTROLLER_42,
CONTROLLER_EFFECTIVENESSSOUND,
CONTROLLER_PLAYFANFAREORBGM,
CONTROLLER_CANTSWITCH,
CONTROLLER_PLAYSE,
CONTROLLER_PLAYFANFARE,
CONTROLLER_FAINTINGCRY,
CONTROLLER_INTROSLIDE,
CONTROLLER_INTROTRAINERBALLTHROW,
@@ -198,12 +198,12 @@ enum
CONTROLLER_CMDS_COUNT
};
extern struct UnusedControllerStruct gUnknown_2022870;
extern struct UnusedControllerStruct gUnusedControllerStruct;
// general functions
void HandleLinkBattleSetup(void);
void SetUpBattleVars(void);
void InitBtlControllers(void);
void InitBattleControllers(void);
void TryReceiveLinkBattleData(void);
void PrepareBufferDataTransferLink(u8 bufferId, u16 size, u8 *data);
@@ -221,7 +221,7 @@ void BtlController_EmitBallThrowAnim(u8 bufferId, u8 caseId);
void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr);
void BtlController_EmitPrintString(u8 bufferId, u16 stringId);
void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
void BtlController_EmitChooseAction(u8 bufferId, u8 action, u16 itemId);
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1);
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4);
@@ -251,7 +251,7 @@ void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome);
// player controller
void PlayerDummy(void);
void BattleControllerDummy(void);
void SetControllerToPlayer(void);
void PlayerHandleGetRawMonData(void);
void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite);
+1 -1
View File
@@ -15,7 +15,7 @@ void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId);
void DecompressGhostFrontPic(struct Pokemon *unused, u8 battlerId);
void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId);
void DecompressTrainerBackPalette(u16 a1, u8 a2);
void BattleGfxSfxDummy3(u8 a1);
void BattleGfxSfxDummy3(u8 gender);
void FreeTrainerFrontPicPaletteAndTile(u16 frontPicId);
bool8 BattleLoadAllHealthBoxesGfx(u8 state);
void LoadBattleBarGfx(u8 arg0);
+1 -1
View File
@@ -82,7 +82,7 @@ void DoBounceEffect(u8 battler, u8 which, s8 delta, s8 amplitude);
void EndBounceEffect(u8 battler, u8 which);
void SpriteCB_PlayerThrowInit(struct Sprite *sprite);
void UpdatePlayerPosInThrowAnim(struct Sprite *sprite);
void BattleDummy(void);
void BeginBattleIntroDummy(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(void);
void FaintClearSetData(void);
+6 -5
View File
@@ -2,6 +2,7 @@
#define GUARD_BATTLE_MESSAGE_H
#include "global.h"
#include "constants/battle_string_ids.h"
// for 0xFD
@@ -242,11 +243,11 @@ extern const u8 gText_Ice[];
extern const u8 gText_Confusion[];
extern const u8 gText_Love[];
extern const u8 gUnknown_83FE859[];
extern const u8 gUnknown_83FE85E[];
extern const u8 gUnknown_83FE85C[];
extern const u8 gUnknown_83FE860[];
extern const u8 gUnknown_83FE864[];
extern const u8 gText_BattleTowerBan_Space[];
extern const u8 gText_BattleTowerBan_Newline1[];
extern const u8 gText_BattleTowerBan_Newline2[];
extern const u8 gText_BattleTowerBan_Is1[];
extern const u8 gText_BattleTowerBan_Is2[];
extern const u8 gText_SafariBalls[];
extern const u8 gText_HighlightRed_Left[];
+1 -1
View File
@@ -2,6 +2,6 @@
#define GUARD_BATTLE_RECORDS_H
void ClearPlayerLinkBattleRecords(void);
void TryRecordLinkBattleOutcome(s32 battlerId);
void UpdatePlayerLinkBattleRecords(s32 battlerId);
#endif // GUARD_BATTLE_RECORDS_H
+1 -1
View File
@@ -1,6 +1,6 @@
#ifndef GUARD_BERRY_FIX_PROGRAM_H
#define GUARD_BERRY_FIX_PROGRAM_H
void mb_berry_fix_serve(void);
void CB2_InitBerryFixProgram(void);
#endif //GUARD_BERRY_FIX_PROGRAM_H
-24
View File
@@ -1,24 +0,0 @@
#ifndef GUARD_BOX_PARTY_POKEMON_DROPDOWN_H
#define GUARD_BOX_PARTY_POKEMON_DROPDOWN_H
enum
{
BPPD_MOVE_INNER_LEFT = 0,
BPPD_MOVE_OUTER_LEFT,
BPPD_MOVE_INNER_TOP,
BPPD_MOVE_OUTER_TOP,
BPPD_MOVE_INNER_X,
BPPD_MOVE_INNER_Y
};
void AllocBoxPartyPokemonDropdowns(u8 num);
void FreeBoxPartyPokemonDropdowns(void);
void CopyAllBoxPartyPokemonDropdownsToVram(void);
void SetBoxPartyPokemonDropdownMap2(u8 idx, u8 bgId, const void *src, u16 width, u16 height);
void SetBoxPartyPokemonDropdownMap1Tiles(u8 idx, const void *src);
void SetBoxPartyPokemonDropdownMap2Pos(u8 idx, u16 x, u16 y);
void SetBoxPartyPokemonDropdownMap2Rect(u8 idx, u16 x, u16 y, u16 width, u16 height);
void AdjustBoxPartyPokemonDropdownPos(u8 a0, u8 a1, s8 a2);
void CopyBoxPartyPokemonDropdownToBgTilemapBuffer(u8 idx);
#endif //GUARD_BOX_PARTY_POKEMON_DROPDOWN_H
+2 -9
View File
@@ -1,15 +1,8 @@
#ifndef GUARD_CABLE_CLUB_H
#define GUARD_CABLE_CLUB_H
#include "task.h"
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
void Task_WaitForReceivedRemoteLinkPlayers5SecondTimeout(u8 taskId);
u8 CreateTask_ReestablishLinkInCableClubRoom(void);
void Task_WaitForLinkPlayerConnection(u8 taskId);
u8 CreateTask_ReestablishCableClubLink(void);
void CB2_ReturnFromCableClubBattle(void);
bool32 GetSeeingLinkPlayerCardMsg(u8 who);
-1
View File
@@ -46,7 +46,6 @@ struct EReaderTrainerTowerSet
bool32 ValidateTrainerTowerData(struct EReaderTrainerTowerSet * ttdata);
bool32 CEReaderTool_SaveTrainerTower(struct EReaderTrainerTowerSet * ttdata);
bool32 CEReaderTool_LoadTrainerTower(struct EReaderTrainerTowerSet * ttdata);
u8 sub_815D654(void);
bool32 ReadTrainerTowerAndValidate(void);
#endif //GUARD_CEREADER_TOOL_H
+1 -1
View File
@@ -324,7 +324,7 @@
#define BATTLE_RUN_FORBIDDEN 1
#define BATTLE_RUN_FAILURE 2
// Window Ids for sStandardBattleWindowTemplates
// Window Ids for sTextOnWindowsInfo_Normal
#define B_WIN_MSG 0
#define B_WIN_ACTION_PROMPT 1 // "What will {x} do?"
#define B_WIN_ACTION_MENU 2 // "Fight/Pokémon/Bag/Run" menu
+71 -52
View File
@@ -237,7 +237,7 @@
#define ANIM_TAG_SPOTLIGHT (ANIM_SPRITES_START + 227)
#define ANIM_TAG_LETTER_Z (ANIM_SPRITES_START + 228)
#define ANIM_TAG_RAPID_SPIN (ANIM_SPRITES_START + 229)
#define ANIM_TAG_TRI_FORCE_TRIANGLE (ANIM_SPRITES_START + 230)
#define ANIM_TAG_TRI_ATTACK_TRIANGLE (ANIM_SPRITES_START + 230)
#define ANIM_TAG_WISP_ORB (ANIM_SPRITES_START + 231)
#define ANIM_TAG_WISP_FIRE (ANIM_SPRITES_START + 232)
#define ANIM_TAG_GOLD_STARS (ANIM_SPRITES_START + 233)
@@ -276,7 +276,7 @@
#define ANIM_TAG_GREEN_SPIKE (ANIM_SPRITES_START + 266)
#define ANIM_TAG_WHITE_CIRCLE_OF_LIGHT (ANIM_SPRITES_START + 267)
#define ANIM_TAG_GLOWY_BLUE_ORB (ANIM_SPRITES_START + 268)
#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 269)
#define ANIM_TAG_SAFARI_BAIT (ANIM_SPRITES_START + 269)
#define ANIM_TAG_WHITE_FEATHER (ANIM_SPRITES_START + 270)
#define ANIM_TAG_SPARKLE_6 (ANIM_SPRITES_START + 271)
#define ANIM_TAG_SPLASH (ANIM_SPRITES_START + 272)
@@ -318,7 +318,7 @@
#define SOUND_PAN_TARGET 63
// move background ids
#define BG_DARK_ 0 // the same as BG_DARK but is unused
#define BG_NONE 0 // the same as BG_DARK
#define BG_DARK 1
#define BG_GHOST 2
#define BG_PSYCHIC 3
@@ -346,59 +346,62 @@
#define BG_SOLAR_BEAM_PLAYER 25
#define BG_SOLAR_BEAM_CONTESTS 26
// table ids for general animations
#define B_ANIM_CASTFORM_CHANGE 0x0
#define B_ANIM_STATS_CHANGE 0x1
#define B_ANIM_SUBSTITUTE_FADE 0x2
#define B_ANIM_SUBSTITUTE_APPEAR 0x3
#define B_ANIM_BAIT_THROW 0x4
#define B_ANIM_ITEM_KNOCKOFF 0x5
#define B_ANIM_TURN_TRAP 0x6
#define B_ANIM_HELD_ITEM_EFFECT 0x7
#define B_ANIM_SMOKEBALL_ESCAPE 0x8
#define B_ANIM_FOCUS_BAND 0x9
#define B_ANIM_RAIN_CONTINUES 0xA
#define B_ANIM_SUN_CONTINUES 0xB
#define B_ANIM_SANDSTORM_CONTINUES 0xC
#define B_ANIM_HAIL_CONTINUES 0xD
#define B_ANIM_LEECH_SEED_DRAIN 0xE
#define B_ANIM_MON_HIT 0xF
#define B_ANIM_ITEM_STEAL 0x10
#define B_ANIM_SNATCH_MOVE 0x11
#define B_ANIM_FUTURE_SIGHT_HIT 0x12
#define B_ANIM_DOOM_DESIRE_HIT 0x13
#define B_ANIM_FOCUS_PUNCH_SETUP 0x14
#define B_ANIM_INGRAIN_HEAL 0x15
#define B_ANIM_WISH_HEAL 0x16
#define B_ANIM_MON_SCARED 0x17
#define B_ANIM_GHOST_GET_OUT 0x18
#define B_ANIM_SILPH_SCOPED 0x19
#define B_ANIM_ROCK_THROW 0x1A
#define B_ANIM_SAFARI_REACTION 0x1B
// table ids for general animations (gBattleAnims_General)
#define B_ANIM_CASTFORM_CHANGE 0
#define B_ANIM_STATS_CHANGE 1
#define B_ANIM_SUBSTITUTE_FADE 2
#define B_ANIM_SUBSTITUTE_APPEAR 3
#define B_ANIM_BAIT_THROW 4
#define B_ANIM_ITEM_KNOCKOFF 5
#define B_ANIM_TURN_TRAP 6
#define B_ANIM_HELD_ITEM_EFFECT 7
#define B_ANIM_SMOKEBALL_ESCAPE 8
#define B_ANIM_FOCUS_BAND 9
#define B_ANIM_RAIN_CONTINUES 10
#define B_ANIM_SUN_CONTINUES 11
#define B_ANIM_SANDSTORM_CONTINUES 12
#define B_ANIM_HAIL_CONTINUES 13
#define B_ANIM_LEECH_SEED_DRAIN 14
#define B_ANIM_MON_HIT 15
#define B_ANIM_ITEM_STEAL 16
#define B_ANIM_SNATCH_MOVE 17
#define B_ANIM_FUTURE_SIGHT_HIT 18
#define B_ANIM_DOOM_DESIRE_HIT 19
#define B_ANIM_FOCUS_PUNCH_SETUP 20
#define B_ANIM_INGRAIN_HEAL 21
#define B_ANIM_WISH_HEAL 22
#define B_ANIM_MON_SCARED 23
#define B_ANIM_GHOST_GET_OUT 24
#define B_ANIM_SILPH_SCOPED 25
#define B_ANIM_ROCK_THROW 26
#define B_ANIM_SAFARI_REACTION 27
// special animations table
#define B_ANIM_LVL_UP 0x0
#define B_ANIM_SWITCH_OUT_PLAYER_MON 0x1
#define B_ANIM_SWITCH_OUT_OPPONENT_MON 0x2
#define B_ANIM_BALL_THROW 0x3
#define B_ANIM_SAFARI_BALL_THROW 0x4
#define B_ANIM_SUBSTITUTE_TO_MON 0x5
#define B_ANIM_MON_TO_SUBSTITUTE 0x6
// special animations table (gBattleAnims_Special)
#define B_ANIM_LVL_UP 0
#define B_ANIM_SWITCH_OUT_PLAYER_MON 1
#define B_ANIM_SWITCH_OUT_OPPONENT_MON 2
#define B_ANIM_BALL_THROW 3
#define B_ANIM_BALL_THROW_WITH_TRAINER 4
#define B_ANIM_SUBSTITUTE_TO_MON 5
#define B_ANIM_MON_TO_SUBSTITUTE 6
// status animation table
#define B_ANIM_STATUS_PSN 0x0
#define B_ANIM_STATUS_CONFUSION 0x1
#define B_ANIM_STATUS_BRN 0x2
#define B_ANIM_STATUS_INFATUATION 0x3
#define B_ANIM_STATUS_SLP 0x4
#define B_ANIM_STATUS_PRZ 0x5
#define B_ANIM_STATUS_FRZ 0x6
#define B_ANIM_STATUS_CURSED 0x7
#define B_ANIM_STATUS_NIGHTMARE 0x8
#define B_ANIM_STATUS_WRAPPED 0x9 // does not actually exist
// status animation table (gBattleAnims_StatusConditions)
#define B_ANIM_STATUS_PSN 0
#define B_ANIM_STATUS_CONFUSION 1
#define B_ANIM_STATUS_BRN 2
#define B_ANIM_STATUS_INFATUATION 3
#define B_ANIM_STATUS_SLP 4
#define B_ANIM_STATUS_PRZ 5
#define B_ANIM_STATUS_FRZ 6
#define B_ANIM_STATUS_CURSED 7
#define B_ANIM_STATUS_NIGHTMARE 8
#define B_ANIM_STATUS_WRAPPED 9 // does not actually exist
// Most tasks return a value to gBattleAnimArgs[7].
#define ARG_RET_ID 0x7
#define ARG_RET_ID 7
// For createsprite macro to use internally
#define ANIMSPRITE_IS_TARGET (1 << 7)
// Trapping Wrap-like moves end turn animation.
#define TRAP_ANIM_BIND 0
@@ -415,6 +418,22 @@
#define ANIM_WEATHER_SANDSTORM 3
#define ANIM_WEATHER_HAIL 4
// Flags given to various functions to indicate which palettes to consider.
// Handled by UnpackSelectedBattlePalettes
#define F_PAL_BG (1 << 0)
#define F_PAL_ATTACKER (1 << 1)
#define F_PAL_TARGET (1 << 2)
#define F_PAL_ATK_PARTNER (1 << 3)
#define F_PAL_DEF_PARTNER (1 << 4)
#define F_PAL_ANIM_1 (1 << 5) // Palette set for GetBattleAnimBg1Data/GetBattleAnimBgDataByPriorityRank. Only used (ineffectually?) by Aromatherapy.
#define F_PAL_ANIM_2 (1 << 6) // Palette set for GetBattleAnimBgData/GetBattleAnimBgDataByPriorityRank. Unused.
#define F_PAL_ATK_SIDE (F_PAL_ATTACKER | F_PAL_ATK_PARTNER)
#define F_PAL_DEF_SIDE (F_PAL_TARGET | F_PAL_DEF_PARTNER)
#define F_PAL_BATTLERS (F_PAL_ATK_SIDE | F_PAL_DEF_SIDE)
// The below are only used by AnimTask_BlendBattleAnimPal to get battler sprite palettes by position rather than by role.
// It's redundant with F_PAL_BATTLERS, because they're only ever used together to refer to all the battlers at once.
#define F_PAL_BATTLERS_2 (1 << 7 | 1 << 8 | 1 << 9 | 1 << 10)
// Battle mon back animations.
#define BACK_ANIM_NONE 0x00
#define BACK_ANIM_H_SLIDE_QUICK 0x01
+1 -1
View File
@@ -87,7 +87,7 @@
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
#define VARIOUS_RESET_PLAYER_FAINTED 7
#define VARIOUS_CASE_8 8
#define VARIOUS_GET_BATTLERS_FOR_RECALL 8
#define VARIOUS_RETURN_OPPONENT_MON1 9
#define VARIOUS_RETURN_OPPONENT_MON2 10
#define VARIOUS_CHECK_POKEFLUTE 11
@@ -373,8 +373,8 @@
#define STRINGID_POKEFLUTECATCHY 372
#define STRINGID_POKEFLUTE 373
#define STRINGID_MONHEARINGFLUTEAWOKE 374
#define STRINGID_TRAINER2CLASS 375
#define STRINGID_TRAINER2NAME 376
#define STRINGID_TRAINER2LOSETEXT 375
#define STRINGID_TRAINER2WINTEXT 376
#define STRINGID_PLAYERWHITEDOUT 377
#define STRINGID_MONTOOSCAREDTOMOVE 378
#define STRINGID_GHOSTGETOUTGETOUT 379
@@ -385,7 +385,7 @@
#define STRINGID_TRAINER1MON2COMEBACK 384
#define STRINGID_TRAINER1MON1AND2COMEBACK 385
#define BATTLESTRINGS_COUNT 374
#define BATTLESTRINGS_COUNT 386
// This is the string id that gBattleStringsTable starts with.
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
@@ -545,19 +545,17 @@
#define B_MSG_WONT_OBEY 1
#define B_MSG_TURNED_AWAY 2
#define B_MSG_PRETEND_NOT_NOTICE 3
#define B_MSG_INCAPABLE_OF_POWER 4
// For randomly selecting a disobey string
// Skips the one used for Battle Palace
#define NUM_LOAF_STRINGS 4
#define NUM_LOAF_STRINGS 4 // For randomly selecting a disobey string
// gSafariGetNearStringIds
#define B_MSG_CREPT_CLOSER 0
#define B_MSG_CANT_GET_CLOSER 1
// gSafariPokeblockResultStringIds
#define B_MSG_MON_CURIOUS 0
#define B_MSG_MON_ENTHRALLED 1
#define B_MSG_MON_IGNORED 2
// gSafariReactionStringIds
#define B_MSG_MON_WATCHING 0
#define B_MSG_MON_ANGRY 1
#define B_MSG_MON_EATING 2
#define NUM_SAFARI_REACTIONS 3
// gFlashFireStringIds
#define B_MSG_FLASH_FIRE_BOOST 0
+17
View File
@@ -12,4 +12,21 @@
#define USING_MINIGAME 8
#define USING_BATTLE_TOWER 9
// Return states for the group of specials that use CreateLinkupTask
// A few also used by TryBecomeLinkLeader and TryJoinLinkGroup
#define LINKUP_ONGOING 0
#define LINKUP_SUCCESS 1
#define LINKUP_SOMEONE_NOT_READY 2
#define LINKUP_DIFF_SELECTIONS 3
#define LINKUP_WRONG_NUM_PLAYERS 4
#define LINKUP_FAILED 5
#define LINKUP_CONNECTION_ERROR 6
#define LINKUP_PLAYER_NOT_READY 7
#define LINKUP_RETRY_ROLE_ASSIGN 8
#define LINKUP_PARTNER_NOT_READY 9
#define CABLE_SEAT_WAITING 0
#define CABLE_SEAT_SUCCESS 1
#define CABLE_SEAT_FAILED 2
#endif //GUARD_CONSTANTS_CABLE_CLUB_H
+1
View File
@@ -8,5 +8,6 @@
#define BG_EVENT_PLAYER_FACING_WEST 4
#define BG_EVENT_HIDDEN_ITEM 7
#define BG_EVENT_SECRET_BASE 8
#endif // GUARD_CONSTANTS_EVENT_BG_H
+5 -4
View File
@@ -70,10 +70,10 @@
#define MOVEMENT_TYPE_WALK_IN_PLACE_UP 0x41
#define MOVEMENT_TYPE_WALK_IN_PLACE_LEFT 0x42
#define MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT 0x43
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN 0x44
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP 0x45
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT 0x46
#define MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT 0x47
#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_DOWN 0x44
#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_UP 0x45
#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_LEFT 0x46
#define MOVEMENT_TYPE_WALK_IN_PLACE_FAST_RIGHT 0x47
#define MOVEMENT_TYPE_JOG_IN_PLACE_DOWN 0x48
#define MOVEMENT_TYPE_JOG_IN_PLACE_UP 0x49
#define MOVEMENT_TYPE_JOG_IN_PLACE_LEFT 0x4A
@@ -260,6 +260,7 @@
#define MOVEMENT_ACTION_JUMP_SPECIAL_WITH_EFFECT_RIGHT 0xA9
#define MOVEMENT_ACTION_STEP_END 0xFE
#define MOVEMENT_ACTION_NONE 0xFF
#define ANIM_STD_FACE_SOUTH 0
#define ANIM_STD_FACE_NORTH 1
+3
View File
@@ -192,4 +192,7 @@
#define OBJ_EVENT_ID_PLAYER 0xFF
#define OBJ_EVENT_ID_CAMERA 0x7F
#define OBJ_KIND_NORMAL 0
#define OBJ_KIND_CLONE 255
#endif // GUARD_CONSTANTS_EVENT_OBJECTS_H
+248 -243
View File
@@ -3,37 +3,45 @@
#include "constants/trainers.h"
#define FLAG_TEMP_1 0x001
#define FLAG_TEMP_2 0x002
#define FLAG_TEMP_3 0x003
#define FLAG_TEMP_4 0x004
#define FLAG_TEMP_5 0x005
#define FLAG_TEMP_6 0x006
#define FLAG_TEMP_7 0x007
#define FLAG_TEMP_8 0x008
#define FLAG_TEMP_9 0x009
#define FLAG_TEMP_A 0x00A
#define FLAG_TEMP_B 0x00B
#define FLAG_TEMP_C 0x00C
#define FLAG_TEMP_D 0x00D
#define FLAG_TEMP_E 0x00E
#define FLAG_TEMP_F 0x00F
#define FLAG_TEMP_10 0x010
#define FLAG_TEMP_11 0x011
#define FLAG_TEMP_12 0x012
#define FLAG_TEMP_13 0x013
#define FLAG_TEMP_14 0x014
#define FLAG_TEMP_15 0x015
#define FLAG_TEMP_16 0x016
#define FLAG_TEMP_17 0x017
#define FLAG_TEMP_18 0x018
#define FLAG_TEMP_19 0x019
#define FLAG_TEMP_1A 0x01A
#define FLAG_TEMP_1B 0x01B
#define FLAG_TEMP_1C 0x01C
#define FLAG_TEMP_1D 0x01D
#define FLAG_TEMP_1E 0x01E
#define FLAG_TEMP_1F 0x01F
// Temporary Flags
// These temporary flags are are cleared every time a map is loaded. They are used
// for things like shortening an NPCs introduction text if the player already spoke
// to them once.
#define TEMP_FLAGS_START 0x0
#define FLAG_TEMP_1 (TEMP_FLAGS_START + 0x01)
#define FLAG_TEMP_2 (TEMP_FLAGS_START + 0x02)
#define FLAG_TEMP_3 (TEMP_FLAGS_START + 0x03)
#define FLAG_TEMP_4 (TEMP_FLAGS_START + 0x04)
#define FLAG_TEMP_5 (TEMP_FLAGS_START + 0x05)
#define FLAG_TEMP_6 (TEMP_FLAGS_START + 0x06)
#define FLAG_TEMP_7 (TEMP_FLAGS_START + 0x07)
#define FLAG_TEMP_8 (TEMP_FLAGS_START + 0x08)
#define FLAG_TEMP_9 (TEMP_FLAGS_START + 0x09)
#define FLAG_TEMP_A (TEMP_FLAGS_START + 0x0A)
#define FLAG_TEMP_B (TEMP_FLAGS_START + 0x0B)
#define FLAG_TEMP_C (TEMP_FLAGS_START + 0x0C)
#define FLAG_TEMP_D (TEMP_FLAGS_START + 0x0D)
#define FLAG_TEMP_E (TEMP_FLAGS_START + 0x0E)
#define FLAG_TEMP_F (TEMP_FLAGS_START + 0x0F)
#define FLAG_TEMP_10 (TEMP_FLAGS_START + 0x10)
// Used for obstacles (e.g. cut trees and rock smash rocks)
#define FLAG_TEMP_11 (TEMP_FLAGS_START + 0x11)
#define FLAG_TEMP_12 (TEMP_FLAGS_START + 0x12)
#define FLAG_TEMP_13 (TEMP_FLAGS_START + 0x13)
#define FLAG_TEMP_14 (TEMP_FLAGS_START + 0x14)
#define FLAG_TEMP_15 (TEMP_FLAGS_START + 0x15)
#define FLAG_TEMP_16 (TEMP_FLAGS_START + 0x16)
#define FLAG_TEMP_17 (TEMP_FLAGS_START + 0x17)
#define FLAG_TEMP_18 (TEMP_FLAGS_START + 0x18)
#define FLAG_TEMP_19 (TEMP_FLAGS_START + 0x19)
#define FLAG_TEMP_1A (TEMP_FLAGS_START + 0x1A)
#define FLAG_TEMP_1B (TEMP_FLAGS_START + 0x1B)
#define FLAG_TEMP_1C (TEMP_FLAGS_START + 0x1C)
#define FLAG_TEMP_1D (TEMP_FLAGS_START + 0x1D)
#define FLAG_TEMP_1E (TEMP_FLAGS_START + 0x1E)
#define FLAG_TEMP_1F (TEMP_FLAGS_START + 0x1F)
#define TEMP_FLAGS_END FLAG_TEMP_1F
#define FLAG_0x020 0x020
#define FLAG_0x021 0x021
@@ -1018,210 +1026,209 @@
#define FLAG_MYSTERY_GIFT_15 0x3E7
#define FLAG_HIDDEN_ITEMS_START 1000 // 0x3E8
#define FLAG_HIDDEN_ITEM(map, item) (FLAG_HIDDEN_ITEMS_START + HIDDEN_ITEM_##map##_##item)
#define HIDDEN_ITEM_VIRIDIAN_FOREST_POTION 0
#define HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE 1
#define HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE 2
#define HIDDEN_ITEM_MT_MOON_B2F_ETHER 3
#define HIDDEN_ITEM_ROUTE25_ELIXIR 4
#define HIDDEN_ITEM_ROUTE25_ETHER 5
#define HIDDEN_ITEM_ROUTE9_ETHER 6
#define HIDDEN_ITEM_UNUSED_0x07 7
#define HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION 8
#define HIDDEN_ITEM_ROUTE10_SUPER_POTION 9
#define HIDDEN_ITEM_ROUTE10_MAX_ETHER 10
#define HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP 11
#define HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET 12
#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL 13
#define HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM 14
#define HIDDEN_ITEM_ROUTE13_PP_UP 15
#define HIDDEN_ITEM_UNUSED_0x10 16
#define HIDDEN_ITEM_ROUTE17_RARE_CANDY 17
#define HIDDEN_ITEM_ROUTE17_FULL_RESTORE 18
#define HIDDEN_ITEM_ROUTE17_PP_UP 19
#define HIDDEN_ITEM_ROUTE17_MAX_REVIVE 20
#define HIDDEN_ITEM_ROUTE17_MAX_ELIXIR 21
#define HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE 22
#define HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE 23
#define HIDDEN_ITEM_SILPH_CO_5F_ELIXIR 24
#define HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION 25
#define HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET 26
#define HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR 27
#define HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE 28
#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET 29
#define HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE 30
#define HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE 31
#define HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY 32
#define HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR 33
#define HIDDEN_ITEM_ROUTE23_FULL_RESTORE 34
#define HIDDEN_ITEM_ROUTE23_ULTRA_BALL 35
#define HIDDEN_ITEM_ROUTE23_MAX_ETHER 36
#define HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL 37
#define HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE 38
#define HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL 39
#define HIDDEN_ITEM_UNUSED_0x28 40
#define HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE 41
#define HIDDEN_ITEM_ROUTE12_HYPER_POTION 42
#define HIDDEN_ITEM_UNUSED_0x2B 43
#define HIDDEN_ITEM_UNUSED_0x2C 44
#define HIDDEN_ITEM_UNUSED_0x2D 45
#define HIDDEN_ITEM_UNUSED_0x2E 46
#define HIDDEN_ITEM_CELADON_CITY_PP_UP 47
#define HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER 48
#define HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY 49
#define HIDDEN_ITEM_ROUTE4_GREAT_BALL 50
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS 51
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 52
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 53
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 54
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 55
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 56
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 57
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 58
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 59
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 60
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 61
#define HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 62
#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY 63
#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 64
#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE 65
#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 66
#define HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 67
#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL 68
#define HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL 69
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION 70
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE 71
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL 72
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING 73
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL 74
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL 75
#define HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER 76
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION 77
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE 78
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL 79
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING 80
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL 81
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL 82
#define HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER 83
#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM 84
#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 85
#define HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 86
#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM 87
#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 88
#define HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 89
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY 90
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY 91
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY 92
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY 93
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY 94
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY 95
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY 96
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY 97
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY 98
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY 99
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY 100
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY 101
#define HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY 102
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST 103
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 104
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL 105
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 106
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL 107
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 108
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE 109
#define HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL 110
#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY 111
#define HIDDEN_ITEM_PEWTER_CITY_POKE_BALL 112
#define HIDDEN_ITEM_ROUTE3_ORAN_BERRY 113
#define HIDDEN_ITEM_ROUTE4_PERSIM_BERRY 114
#define HIDDEN_ITEM_ROUTE24_PECHA_BERRY 115
#define HIDDEN_ITEM_ROUTE25_ORAN_BERRY 116
#define HIDDEN_ITEM_ROUTE25_BLUK_BERRY 117
#define HIDDEN_ITEM_ROUTE6_SITRUS_BERRY 118
#define HIDDEN_ITEM_ROUTE6_RARE_CANDY 119
#define HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY 120
#define HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY 121
#define HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY 122
#define HIDDEN_ITEM_ROUTE9_RARE_CANDY 123
#define HIDDEN_ITEM_UNUSED_0x7C 124
#define HIDDEN_ITEM_ROUTE10_PERSIM_BERRY 125
#define HIDDEN_ITEM_ROUTE10_CHERI_BERRY 126
#define HIDDEN_ITEM_ROUTE8_RAWST_BERRY 127
#define HIDDEN_ITEM_ROUTE8_LUM_BERRY 128
#define HIDDEN_ITEM_ROUTE8_LEPPA_BERRY 129
#define HIDDEN_ITEM_ROUTE12_RARE_CANDY 130
#define HIDDEN_ITEM_ROUTE12_LEFTOVERS 131
#define HIDDEN_ITEM_ROUTE16_LEFTOVERS 132
#define HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE 133
#define HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL 134
#define HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL 135
#define HIDDEN_ITEM_SILPH_CO_3F_PROTEIN 136
#define HIDDEN_ITEM_SILPH_CO_4F_IRON 137
#define HIDDEN_ITEM_SILPH_CO_5F_PP_UP 138
#define HIDDEN_ITEM_SILPH_CO_6F_CARBOS 139
#define HIDDEN_ITEM_SILPH_CO_7F_ZINC 140
#define HIDDEN_ITEM_SILPH_CO_8F_NUGGET 141
#define HIDDEN_ITEM_SILPH_CO_9F_CALCIUM 142
#define HIDDEN_ITEM_SILPH_CO_10F_HP_UP 143
#define HIDDEN_ITEM_SILPH_CO_11F_REVIVE 144
#define HIDDEN_ITEM_ROUTE23_LUM_BERRY 145
#define HIDDEN_ITEM_ROUTE23_SITRUS_BERRY 146
#define HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY 147
#define HIDDEN_ITEM_ROUTE23_LEPPA_BERRY 148
#define HIDDEN_ITEM_ROUTE14_ZINC 149
#define HIDDEN_ITEM_ROUTE9_CHESTO_BERRY 150
#define HIDDEN_ITEM_ROUTE10_NANAB_BERRY 151
#define HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY 152
#define HIDDEN_ITEM_ROUTE20_STARDUST 153
#define HIDDEN_ITEM_ROUTE21_NORTH_PEARL 154
#define HIDDEN_ITEM_ROUTE23_MAX_ELIXIR 155
#define HIDDEN_ITEM_ROUTE4_RAZZ_BERRY 156
#define HIDDEN_ITEM_ROUTE14_PINAP_BERRY 157
#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE 158
#define HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL 159
#define HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH 160
#define HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX 161
#define HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL 162
#define HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET 163
#define HIDDEN_ITEM_THREE_ISLAND_PP_UP 164
#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL 165
#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL 166
#define HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST 167
#define HIDDEN_ITEM_FOUR_ISLAND_PEARL 168
#define HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL 169
#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL 170
#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY 171
#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY 172
#define HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY 173
#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL 174
#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST 175
#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE 176
#define HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 177
#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE 178
#define HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL 179
#define HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL 180
#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY 181
#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY 182
#define HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY 183
#define HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY 184
#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL 185
#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL 186
#define HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY 187
#define HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY 188
#define HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE 189
#define HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE 190
#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_POTION (FLAG_HIDDEN_ITEMS_START + 0)
#define FLAG_HIDDEN_ITEM_VIRIDIAN_FOREST_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 1)
#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 2)
#define FLAG_HIDDEN_ITEM_MT_MOON_B2F_ETHER (FLAG_HIDDEN_ITEMS_START + 3)
#define FLAG_HIDDEN_ITEM_ROUTE25_ELIXIR (FLAG_HIDDEN_ITEMS_START + 4)
#define FLAG_HIDDEN_ITEM_ROUTE25_ETHER (FLAG_HIDDEN_ITEMS_START + 5)
#define FLAG_HIDDEN_ITEM_ROUTE9_ETHER (FLAG_HIDDEN_ITEMS_START + 6)
#define FLAG_HIDDEN_ITEM_UNUSED_0x07 (FLAG_HIDDEN_ITEMS_START + 7)
#define FLAG_HIDDEN_ITEM_SSANNE_B1F_CORRIDOR_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 8)
#define FLAG_HIDDEN_ITEM_ROUTE10_SUPER_POTION (FLAG_HIDDEN_ITEMS_START + 9)
#define FLAG_HIDDEN_ITEM_ROUTE10_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 10)
#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B1F_PP_UP (FLAG_HIDDEN_ITEMS_START + 11)
#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 12)
#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 13)
#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_5F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 14)
#define FLAG_HIDDEN_ITEM_ROUTE13_PP_UP (FLAG_HIDDEN_ITEMS_START + 15)
#define FLAG_HIDDEN_ITEM_UNUSED_0x10 (FLAG_HIDDEN_ITEMS_START + 16)
#define FLAG_HIDDEN_ITEM_ROUTE17_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 17)
#define FLAG_HIDDEN_ITEM_ROUTE17_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 18)
#define FLAG_HIDDEN_ITEM_ROUTE17_PP_UP (FLAG_HIDDEN_ITEMS_START + 19)
#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 20)
#define FLAG_HIDDEN_ITEM_ROUTE17_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 21)
#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_CENTER_LEAF_STONE (FLAG_HIDDEN_ITEMS_START + 22)
#define FLAG_HIDDEN_ITEM_SAFARI_ZONE_WEST_REVIVE (FLAG_HIDDEN_ITEMS_START + 23)
#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 24)
#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_MAX_POTION (FLAG_HIDDEN_ITEMS_START + 25)
#define FLAG_HIDDEN_ITEM_SAFFRON_CITY_COPYCATS_HOUSE_2F_NUGGET (FLAG_HIDDEN_ITEMS_START + 26)
#define FLAG_HIDDEN_ITEM_POWER_PLANT_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 27)
#define FLAG_HIDDEN_ITEM_POWER_PLANT_THUNDER_STONE (FLAG_HIDDEN_ITEMS_START + 28)
#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B3F_NUGGET (FLAG_HIDDEN_ITEMS_START + 29)
#define FLAG_HIDDEN_ITEM_SEAFOAM_ISLANDS_B4F_WATER_STONE (FLAG_HIDDEN_ITEMS_START + 30)
#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_1F_MOON_STONE (FLAG_HIDDEN_ITEMS_START + 31)
#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_3F_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 32)
#define FLAG_HIDDEN_ITEM_POKEMON_MANSION_B1F_ELIXIR (FLAG_HIDDEN_ITEMS_START + 33)
#define FLAG_HIDDEN_ITEM_ROUTE23_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 34)
#define FLAG_HIDDEN_ITEM_ROUTE23_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 35)
#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 36)
#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 37)
#define FLAG_HIDDEN_ITEM_VICTORY_ROAD_1F_FULL_RESTORE (FLAG_HIDDEN_ITEMS_START + 38)
#define FLAG_HIDDEN_ITEM_CERULEAN_CAVE_1F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 39)
#define FLAG_HIDDEN_ITEM_UNUSED_0x28 (FLAG_HIDDEN_ITEMS_START + 40)
#define FLAG_HIDDEN_ITEM_ROUTE11_ESCAPE_ROPE (FLAG_HIDDEN_ITEMS_START + 41)
#define FLAG_HIDDEN_ITEM_ROUTE12_HYPER_POTION (FLAG_HIDDEN_ITEMS_START + 42)
#define FLAG_HIDDEN_ITEM_UNUSED_0x2B (FLAG_HIDDEN_ITEMS_START + 43)
#define FLAG_HIDDEN_ITEM_UNUSED_0x2C (FLAG_HIDDEN_ITEMS_START + 44)
#define FLAG_HIDDEN_ITEM_UNUSED_0x2D (FLAG_HIDDEN_ITEMS_START + 45)
#define FLAG_HIDDEN_ITEM_UNUSED_0x2E (FLAG_HIDDEN_ITEMS_START + 46)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_PP_UP (FLAG_HIDDEN_ITEMS_START + 47)
#define FLAG_HIDDEN_ITEM_VERMILION_CITY_MAX_ETHER (FLAG_HIDDEN_ITEMS_START + 48)
#define FLAG_HIDDEN_ITEM_CERULEAN_CITY_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 49)
#define FLAG_HIDDEN_ITEM_ROUTE4_GREAT_BALL (FLAG_HIDDEN_ITEMS_START + 50)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS (FLAG_HIDDEN_ITEMS_START + 51)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_2 (FLAG_HIDDEN_ITEMS_START + 52)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_3 (FLAG_HIDDEN_ITEMS_START + 53)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_4 (FLAG_HIDDEN_ITEMS_START + 54)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_5 (FLAG_HIDDEN_ITEMS_START + 55)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_6 (FLAG_HIDDEN_ITEMS_START + 56)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_7 (FLAG_HIDDEN_ITEMS_START + 57)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_8 (FLAG_HIDDEN_ITEMS_START + 58)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_9 (FLAG_HIDDEN_ITEMS_START + 59)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_10 (FLAG_HIDDEN_ITEMS_START + 60)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_11 (FLAG_HIDDEN_ITEMS_START + 61)
#define FLAG_HIDDEN_ITEM_CELADON_CITY_GAME_CORNER_COINS_12 (FLAG_HIDDEN_ITEMS_START + 62)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 63)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_4 (FLAG_HIDDEN_ITEMS_START + 64)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE (FLAG_HIDDEN_ITEMS_START + 65)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_2 (FLAG_HIDDEN_ITEMS_START + 66)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TANOBY_RUINS_HEART_SCALE_3 (FLAG_HIDDEN_ITEMS_START + 67)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 68)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_ROCKET_WAREHOUSE_NET_BALL (FLAG_HIDDEN_ITEMS_START + 69)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 70)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 71)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 72)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 73)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 74)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 75)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_NORTH_SOUTH_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 76)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_POTION (FLAG_HIDDEN_ITEMS_START + 77)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ANTIDOTE (FLAG_HIDDEN_ITEMS_START + 78)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_PARALYZE_HEAL (FLAG_HIDDEN_ITEMS_START + 79)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_AWAKENING (FLAG_HIDDEN_ITEMS_START + 80)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_BURN_HEAL (FLAG_HIDDEN_ITEMS_START + 81)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ICE_HEAL (FLAG_HIDDEN_ITEMS_START + 82)
#define FLAG_HIDDEN_ITEM_UNDERGROUND_PATH_EAST_WEST_TUNNEL_ETHER (FLAG_HIDDEN_ITEMS_START + 83)
#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 84)
#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 85)
#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_TINY_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 86)
#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM (FLAG_HIDDEN_ITEMS_START + 87)
#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_2 (FLAG_HIDDEN_ITEMS_START + 88)
#define FLAG_HIDDEN_ITEM_MT_MOON_B1F_BIG_MUSHROOM_3 (FLAG_HIDDEN_ITEMS_START + 89)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 90)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 91)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 92)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 93)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 94)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 95)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 96)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 97)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 98)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 99)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 100)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 101)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BERRY_FOREST_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 102)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST (FLAG_HIDDEN_ITEMS_START + 103)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 104)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL (FLAG_HIDDEN_ITEMS_START + 105)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_PEARL_2 (FLAG_HIDDEN_ITEMS_START + 106)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 107)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_ULTRA_BALL_2 (FLAG_HIDDEN_ITEMS_START + 108)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 109)
#define FLAG_HIDDEN_ITEM_ONE_ISLAND_TREASURE_BEACH_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 110)
#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 111)
#define FLAG_HIDDEN_ITEM_PEWTER_CITY_POKE_BALL (FLAG_HIDDEN_ITEMS_START + 112)
#define FLAG_HIDDEN_ITEM_ROUTE3_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 113)
#define FLAG_HIDDEN_ITEM_ROUTE4_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 114)
#define FLAG_HIDDEN_ITEM_ROUTE24_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 115)
#define FLAG_HIDDEN_ITEM_ROUTE25_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 116)
#define FLAG_HIDDEN_ITEM_ROUTE25_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 117)
#define FLAG_HIDDEN_ITEM_ROUTE6_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 118)
#define FLAG_HIDDEN_ITEM_ROUTE6_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 119)
#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_PECHA_BERRY (FLAG_HIDDEN_ITEMS_START + 120)
#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 121)
#define FLAG_HIDDEN_ITEM_SSANNE_KITCHEN_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 122)
#define FLAG_HIDDEN_ITEM_ROUTE9_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 123)
#define FLAG_HIDDEN_ITEM_UNUSED_0x7C (FLAG_HIDDEN_ITEMS_START + 124)
#define FLAG_HIDDEN_ITEM_ROUTE10_PERSIM_BERRY (FLAG_HIDDEN_ITEMS_START + 125)
#define FLAG_HIDDEN_ITEM_ROUTE10_CHERI_BERRY (FLAG_HIDDEN_ITEMS_START + 126)
#define FLAG_HIDDEN_ITEM_ROUTE8_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 127)
#define FLAG_HIDDEN_ITEM_ROUTE8_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 128)
#define FLAG_HIDDEN_ITEM_ROUTE8_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 129)
#define FLAG_HIDDEN_ITEM_ROUTE12_RARE_CANDY (FLAG_HIDDEN_ITEMS_START + 130)
#define FLAG_HIDDEN_ITEM_ROUTE12_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 131)
#define FLAG_HIDDEN_ITEM_ROUTE16_LEFTOVERS (FLAG_HIDDEN_ITEMS_START + 132)
#define FLAG_HIDDEN_ITEM_FUCHSIA_CITY_MAX_REVIVE (FLAG_HIDDEN_ITEMS_START + 133)
#define FLAG_HIDDEN_ITEM_ROCKET_HIDEOUT_B4F_NET_BALL (FLAG_HIDDEN_ITEMS_START + 134)
#define FLAG_HIDDEN_ITEM_SILPH_CO_2F_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 135)
#define FLAG_HIDDEN_ITEM_SILPH_CO_3F_PROTEIN (FLAG_HIDDEN_ITEMS_START + 136)
#define FLAG_HIDDEN_ITEM_SILPH_CO_4F_IRON (FLAG_HIDDEN_ITEMS_START + 137)
#define FLAG_HIDDEN_ITEM_SILPH_CO_5F_PP_UP (FLAG_HIDDEN_ITEMS_START + 138)
#define FLAG_HIDDEN_ITEM_SILPH_CO_6F_CARBOS (FLAG_HIDDEN_ITEMS_START + 139)
#define FLAG_HIDDEN_ITEM_SILPH_CO_7F_ZINC (FLAG_HIDDEN_ITEMS_START + 140)
#define FLAG_HIDDEN_ITEM_SILPH_CO_8F_NUGGET (FLAG_HIDDEN_ITEMS_START + 141)
#define FLAG_HIDDEN_ITEM_SILPH_CO_9F_CALCIUM (FLAG_HIDDEN_ITEMS_START + 142)
#define FLAG_HIDDEN_ITEM_SILPH_CO_10F_HP_UP (FLAG_HIDDEN_ITEMS_START + 143)
#define FLAG_HIDDEN_ITEM_SILPH_CO_11F_REVIVE (FLAG_HIDDEN_ITEMS_START + 144)
#define FLAG_HIDDEN_ITEM_ROUTE23_LUM_BERRY (FLAG_HIDDEN_ITEMS_START + 145)
#define FLAG_HIDDEN_ITEM_ROUTE23_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 146)
#define FLAG_HIDDEN_ITEM_ROUTE23_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 147)
#define FLAG_HIDDEN_ITEM_ROUTE23_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 148)
#define FLAG_HIDDEN_ITEM_ROUTE14_ZINC (FLAG_HIDDEN_ITEMS_START + 149)
#define FLAG_HIDDEN_ITEM_ROUTE9_CHESTO_BERRY (FLAG_HIDDEN_ITEMS_START + 150)
#define FLAG_HIDDEN_ITEM_ROUTE10_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 151)
#define FLAG_HIDDEN_ITEM_ROUTE7_WEPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 152)
#define FLAG_HIDDEN_ITEM_ROUTE20_STARDUST (FLAG_HIDDEN_ITEMS_START + 153)
#define FLAG_HIDDEN_ITEM_ROUTE21_NORTH_PEARL (FLAG_HIDDEN_ITEMS_START + 154)
#define FLAG_HIDDEN_ITEM_ROUTE23_MAX_ELIXIR (FLAG_HIDDEN_ITEMS_START + 155)
#define FLAG_HIDDEN_ITEM_ROUTE4_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 156)
#define FLAG_HIDDEN_ITEM_ROUTE14_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 157)
#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_FIRE_STONE (FLAG_HIDDEN_ITEMS_START + 158)
#define FLAG_HIDDEN_ITEM_POKEMON_TOWER_7F_SOOTHE_BELL (FLAG_HIDDEN_ITEMS_START + 159)
#define FLAG_HIDDEN_ITEM_NAVEL_ROCK_SUMMIT_SACRED_ASH (FLAG_HIDDEN_ITEMS_START + 160)
#define FLAG_HIDDEN_ITEM_TWO_ISLAND_CAPE_BRINK_PP_MAX (FLAG_HIDDEN_ITEMS_START + 161)
#define FLAG_HIDDEN_ITEM_MT_EMBER_EXTERIOR_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 162)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_DUNSPARCE_TUNNEL_NUGGET (FLAG_HIDDEN_ITEMS_START + 163)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_PP_UP (FLAG_HIDDEN_ITEMS_START + 164)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_MAX_REPEL (FLAG_HIDDEN_ITEMS_START + 165)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_PEARL (FLAG_HIDDEN_ITEMS_START + 166)
#define FLAG_HIDDEN_ITEM_THREE_ISLAND_BOND_BRIDGE_STARDUST (FLAG_HIDDEN_ITEMS_START + 167)
#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_PEARL (FLAG_HIDDEN_ITEMS_START + 168)
#define FLAG_HIDDEN_ITEM_FOUR_ISLAND_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 169)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 170)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_RAZZ_BERRY (FLAG_HIDDEN_ITEMS_START + 171)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_SITRUS_BERRY (FLAG_HIDDEN_ITEMS_START + 172)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_MEMORIAL_PILLAR_BLUK_BERRY (FLAG_HIDDEN_ITEMS_START + 173)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_NEST_BALL (FLAG_HIDDEN_ITEMS_START + 174)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST (FLAG_HIDDEN_ITEMS_START + 175)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 176)
#define FLAG_HIDDEN_ITEM_FIVE_ISLAND_RESORT_GORGEOUS_STARDUST_2 (FLAG_HIDDEN_ITEMS_START + 177)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_STAR_PIECE (FLAG_HIDDEN_ITEMS_START + 178)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_OUTCAST_ISLAND_NET_BALL (FLAG_HIDDEN_ITEMS_START + 179)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_GREEN_PATH_ULTRA_BALL (FLAG_HIDDEN_ITEMS_START + 180)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ASPEAR_BERRY (FLAG_HIDDEN_ITEMS_START + 181)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_ORAN_BERRY (FLAG_HIDDEN_ITEMS_START + 182)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_WATER_PATH_PINAP_BERRY (FLAG_HIDDEN_ITEMS_START + 183)
#define FLAG_HIDDEN_ITEM_SIX_ISLAND_LEPPA_BERRY (FLAG_HIDDEN_ITEMS_START + 184)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_BIG_PEARL (FLAG_HIDDEN_ITEMS_START + 185)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_PEARL (FLAG_HIDDEN_ITEMS_START + 186)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_TRAINER_TOWER_NANAB_BERRY (FLAG_HIDDEN_ITEMS_START + 187)
#define FLAG_HIDDEN_ITEM_SEVEN_ISLAND_SEVAULT_CANYON_ENTRANCE_RAWST_BERRY (FLAG_HIDDEN_ITEMS_START + 188)
#define FLAG_HIDDEN_ITEM_VIRIDIAN_CITY_GYM_MACHO_BRACE (FLAG_HIDDEN_ITEMS_START + 189)
#define FLAG_HIDDEN_ITEM_SSANNE_EXTERIOR_LAVA_COOKIE (FLAG_HIDDEN_ITEMS_START + 190)
// Unused?
#define FLAG_0x4A7 0x4A7
#define FLAG_0x4A8 0x4A8
#define FLAG_0x4A9 0x4A9
#define FLAG_0x4AA 0x4AA
#define FLAG_0x4AB 0x4AB
#define FLAG_0x4AC 0x4AC
#define FLAG_0x4AD 0x4AD
#define FLAG_0x4AE 0x4AE
#define FLAG_0x4AF 0x4AF
// Unused hidden item flags
#define FLAG_UNUSED_0x4A7 0x4A7 // Unused Flag
#define FLAG_UNUSED_0x4A8 0x4A8 // Unused Flag
#define FLAG_UNUSED_0x4A9 0x4A9 // Unused Flag
#define FLAG_UNUSED_0x4AA 0x4AA // Unused Flag
#define FLAG_UNUSED_0x4AB 0x4AB // Unused Flag
#define FLAG_UNUSED_0x4AC 0x4AC // Unused Flag
#define FLAG_UNUSED_0x4AD 0x4AD // Unused Flag
#define FLAG_UNUSED_0x4AE 0x4AE // Unused Flag
#define FLAG_UNUSED_0x4AF 0x4AF // Unused Flag
// Boss clear flags, 1200
#define FLAG_DEFEATED_BROCK 0x4B0
@@ -1377,8 +1384,8 @@
#define FLAG_SYS_NOT_SOMEONES_PC (SYS_FLAGS + 0x34)
#define FLAG_0x835 (SYS_FLAGS + 0x35)
#define FLAG_0x836 (SYS_FLAGS + 0x36)
#define FLAG_0x837 (SYS_FLAGS + 0x37)
#define FLAG_0x838 (SYS_FLAGS + 0x38)
#define FLAG_SYS_RESET_RTC_ENABLE (SYS_FLAGS + 0x37)
#define FLAG_0x838 (SYS_FLAGS + 0x38) // Set, never read
#define FLAG_SYS_MYSTERY_GIFT_ENABLED (SYS_FLAGS + 0x39)
#define FLAG_0x83A (SYS_FLAGS + 0x3A)
#define FLAG_SYS_RIBBON_GET (SYS_FLAGS + 0x3B)
@@ -1516,13 +1523,11 @@
#define FLAGS_COUNT (FLAG_0x8FF + 1)
// SPECIAL FLAGS (unknown purpose)
#define SPECIAL_FLAGS_START 0x4000
#define SPECIAL_FLAGS_COUNT 16
#define FLAG_DONT_SHOW_MAP_NAME_POPUP 0x4000
#define FLAG_DONT_TRANSITION_MUSIC 0x4001
#define FLAG_SPECIAL_FLAG_0x4002 0x4002
#define FLAG_SPECIAL_FLAG_0x4003 0x4003
#define FLAG_SPECIAL_FLAG_0x4004 0x4004
// Special Flags (Stored in EWRAM (sSpecialFlags, not in the SaveBlock)
#define SPECIAL_FLAGS_START 0x4000
#define FLAG_DONT_SHOW_MAP_NAME_POPUP (SPECIAL_FLAGS_START + 0x0)
#define FLAG_DONT_TRANSITION_MUSIC (SPECIAL_FLAGS_START + 0x1)
// FLAG_SPECIAL_FLAG_0x4002 - 0x407F also exist and are unused
#define SPECIAL_FLAGS_END (SPECIAL_FLAGS_START + 0x7F)
#endif // GUARD_CONSTANTS_FLAGS_H
+9
View File
@@ -115,4 +115,13 @@
#define DIR_NORTHWEST 7
#define DIR_NORTHEAST 8
#define CONNECTION_INVALID -1
#define CONNECTION_NONE 0
#define CONNECTION_SOUTH 1
#define CONNECTION_NORTH 2
#define CONNECTION_WEST 3
#define CONNECTION_EAST 4
#define CONNECTION_DIVE 5
#define CONNECTION_EMERGE 6
#endif //GUARD_CONSTANTS_GLOBAL_H
+6 -5
View File
@@ -438,11 +438,7 @@
#define ITEM_RUBY 373
#define ITEM_SAPPHIRE 374
#define ITEM_N_A 375
// Emerald
#define ITEM_MAGMA_EMBLEM 375
#define ITEM_OLD_SEA_MAP 376
#define ITEMS_COUNT 375
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
@@ -452,6 +448,11 @@
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8
// Secondary IDs for rods
#define OLD_ROD 0
#define GOOD_ROD 1
#define SUPER_ROD 2
// Check if the item is one that can be used on a Pokemon.
#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
+10 -1
View File
@@ -4,7 +4,10 @@
#include "constants/map_groups.h"
#include "constants/map_types.h"
#define MAP_NONE (0x7F | (0x7F << 8))
// Warps using this map will instead use the warp data stored in gSaveBlock1Ptr->dynamicWarp.
// Used for warps that need to change destinations, e.g. when stepping off an elevator.
#define MAP_DYNAMIC (0x7F | (0x7F << 8))
#define MAP_UNDEFINED (0xFF | (0xFF << 8))
#define MAP_GROUP(map) (MAP_##map >> 8)
@@ -12,6 +15,12 @@
#define MAP(map) MAP_GROUP(map), MAP_NUM(map)
// ID for dynamic warps. Used in the dest_warp_id field for warp events, but it's never
// read in practice. A dest_map of MAP_DYNAMIC is used to indicate that a dynamic warp
// should be used, at which point the warp id is ignored. It can be passed to SetDynamicWarp
// or SetDynamicWarpWithCoords as the first argument, but this argument is unused.
#define WARP_ID_DYNAMIC 0x7F
// Used to indicate an invalid warp id, for dummy warps or when a warp should
// use the given coordinates rather than the coordinates of a target warp.
#define WARP_ID_NONE (-1)
+47
View File
@@ -0,0 +1,47 @@
#ifndef GUARD_CONSTANTS_MYSTERY_GIFT_H
#define GUARD_CONSTANTS_MYSTERY_GIFT_H
#define GET_NUM_STAMPS 0
#define GET_MAX_STAMPS 1
#define GET_CARD_BATTLES_WON 2
#define GET_CARD_BATTLES_LOST 3
#define GET_CARD_NUM_TRADES 4
#define CARD_STAT_BATTLES_WON 0
#define CARD_STAT_BATTLES_LOST 1
#define CARD_STAT_NUM_TRADES 2
#define CARD_STAT_NUM_STAMPS 3
#define CARD_STAT_MAX_STAMPS 4
// Values for the type field of Wonder Card
#define CARD_TYPE_GIFT 0 // Normal "Wonder Card"
#define CARD_TYPE_STAMP 1 // "Stamp Card"
#define CARD_TYPE_LINK_STAT 2 // Referred to as the "Battle Card", shows battle and trade stats
#define CARD_TYPE_COUNT 3
// Values for the sendType field of Wonder Card/News
#define SEND_TYPE_DISALLOWED 0
#define SEND_TYPE_ALLOWED 1
#define SEND_TYPE_ALLOWED_ALWAYS 2
// Return values for MysteryGift_CompareCardFlags, handled by gMysteryGiftServerScript_SendWonderCard
#define HAS_NO_CARD 0
#define HAS_SAME_CARD 1
#define HAS_DIFF_CARD 2
// The number of battles needed to be recorded on a Battle Card to win a prize
#define REQUIRED_CARD_BATTLES 3
// Stamps are 32 bits. The first 16 bits are the species
// and the second 16 bits are a number (presumably an ID of some kind)
#define STAMP_SPECIES 0
#define STAMP_ID 1
// Number of different types/colors of Wonder Card and News backgrounds
#define NUM_WONDER_BGS 8
#define MAX_WONDER_CARD_STAT 999
#define WONDER_CARD_FLAG_OFFSET 1000
#endif //GUARD_CONSTANTS_MYSTERY_GIFT_H
+9 -2
View File
@@ -55,8 +55,8 @@
#define PARTY_MENU_TYPE_FIELD 0
#define PARTY_MENU_TYPE_IN_BATTLE 1
#define PARTY_MENU_TYPE_CONTEST 2
#define PARTY_MENU_TYPE_CHOOSE_MON 3
#define PARTY_MENU_TYPE_CHOOSE_HALF 4 // multi battles, eReader battles, and some battle facilities
#define PARTY_MENU_TYPE_CHOOSE_SINGLE_MON 3
#define PARTY_MENU_TYPE_CHOOSE_MULTIPLE_MONS 4 // multi battles, eReader battles, and some battle facilities
#define PARTY_MENU_TYPE_MULTI_SHOWCASE 5
#define PARTY_MENU_TYPE_DAYCARE 6
#define PARTY_MENU_TYPE_MOVE_RELEARNER 7
@@ -128,4 +128,11 @@
#define SELECTWINDOW_MAIL 2
#define SELECTWINDOW_MOVES 3
enum
{
CHOOSE_MONS_FOR_CABLE_CLUB_BATTLE,
CHOOSE_MONS_FOR_BATTLE_TOWER,
CHOOSE_MONS_FOR_UNION_ROOM_BATTLE,
};
#endif // GUARD_CONSTANTS_PARTY_MENU_H
+848
View File
@@ -0,0 +1,848 @@
#ifndef GUARD_CONSTANTS_POKEDEX_H
#define GUARD_CONSTANTS_POKEDEX_H
// National Pokedex order
enum {
NATIONAL_DEX_NONE,
// Kanto
NATIONAL_DEX_BULBASAUR,
NATIONAL_DEX_IVYSAUR,
NATIONAL_DEX_VENUSAUR,
NATIONAL_DEX_CHARMANDER,
NATIONAL_DEX_CHARMELEON,
NATIONAL_DEX_CHARIZARD,
NATIONAL_DEX_SQUIRTLE,
NATIONAL_DEX_WARTORTLE,
NATIONAL_DEX_BLASTOISE,
NATIONAL_DEX_CATERPIE,
NATIONAL_DEX_METAPOD,
NATIONAL_DEX_BUTTERFREE,
NATIONAL_DEX_WEEDLE,
NATIONAL_DEX_KAKUNA,
NATIONAL_DEX_BEEDRILL,
NATIONAL_DEX_PIDGEY,
NATIONAL_DEX_PIDGEOTTO,
NATIONAL_DEX_PIDGEOT,
NATIONAL_DEX_RATTATA,
NATIONAL_DEX_RATICATE,
NATIONAL_DEX_SPEAROW,
NATIONAL_DEX_FEAROW,
NATIONAL_DEX_EKANS,
NATIONAL_DEX_ARBOK,
NATIONAL_DEX_PIKACHU,
NATIONAL_DEX_RAICHU,
NATIONAL_DEX_SANDSHREW,
NATIONAL_DEX_SANDSLASH,
NATIONAL_DEX_NIDORAN_F,
NATIONAL_DEX_NIDORINA,
NATIONAL_DEX_NIDOQUEEN,
NATIONAL_DEX_NIDORAN_M,
NATIONAL_DEX_NIDORINO,
NATIONAL_DEX_NIDOKING,
NATIONAL_DEX_CLEFAIRY,
NATIONAL_DEX_CLEFABLE,
NATIONAL_DEX_VULPIX,
NATIONAL_DEX_NINETALES,
NATIONAL_DEX_JIGGLYPUFF,
NATIONAL_DEX_WIGGLYTUFF,
NATIONAL_DEX_ZUBAT,
NATIONAL_DEX_GOLBAT,
NATIONAL_DEX_ODDISH,
NATIONAL_DEX_GLOOM,
NATIONAL_DEX_VILEPLUME,
NATIONAL_DEX_PARAS,
NATIONAL_DEX_PARASECT,
NATIONAL_DEX_VENONAT,
NATIONAL_DEX_VENOMOTH,
NATIONAL_DEX_DIGLETT,
NATIONAL_DEX_DUGTRIO,
NATIONAL_DEX_MEOWTH,
NATIONAL_DEX_PERSIAN,
NATIONAL_DEX_PSYDUCK,
NATIONAL_DEX_GOLDUCK,
NATIONAL_DEX_MANKEY,
NATIONAL_DEX_PRIMEAPE,
NATIONAL_DEX_GROWLITHE,
NATIONAL_DEX_ARCANINE,
NATIONAL_DEX_POLIWAG,
NATIONAL_DEX_POLIWHIRL,
NATIONAL_DEX_POLIWRATH,
NATIONAL_DEX_ABRA,
NATIONAL_DEX_KADABRA,
NATIONAL_DEX_ALAKAZAM,
NATIONAL_DEX_MACHOP,
NATIONAL_DEX_MACHOKE,
NATIONAL_DEX_MACHAMP,
NATIONAL_DEX_BELLSPROUT,
NATIONAL_DEX_WEEPINBELL,
NATIONAL_DEX_VICTREEBEL,
NATIONAL_DEX_TENTACOOL,
NATIONAL_DEX_TENTACRUEL,
NATIONAL_DEX_GEODUDE,
NATIONAL_DEX_GRAVELER,
NATIONAL_DEX_GOLEM,
NATIONAL_DEX_PONYTA,
NATIONAL_DEX_RAPIDASH,
NATIONAL_DEX_SLOWPOKE,
NATIONAL_DEX_SLOWBRO,
NATIONAL_DEX_MAGNEMITE,
NATIONAL_DEX_MAGNETON,
NATIONAL_DEX_FARFETCHD,
NATIONAL_DEX_DODUO,
NATIONAL_DEX_DODRIO,
NATIONAL_DEX_SEEL,
NATIONAL_DEX_DEWGONG,
NATIONAL_DEX_GRIMER,
NATIONAL_DEX_MUK,
NATIONAL_DEX_SHELLDER,
NATIONAL_DEX_CLOYSTER,
NATIONAL_DEX_GASTLY,
NATIONAL_DEX_HAUNTER,
NATIONAL_DEX_GENGAR,
NATIONAL_DEX_ONIX,
NATIONAL_DEX_DROWZEE,
NATIONAL_DEX_HYPNO,
NATIONAL_DEX_KRABBY,
NATIONAL_DEX_KINGLER,
NATIONAL_DEX_VOLTORB,
NATIONAL_DEX_ELECTRODE,
NATIONAL_DEX_EXEGGCUTE,
NATIONAL_DEX_EXEGGUTOR,
NATIONAL_DEX_CUBONE,
NATIONAL_DEX_MAROWAK,
NATIONAL_DEX_HITMONLEE,
NATIONAL_DEX_HITMONCHAN,
NATIONAL_DEX_LICKITUNG,
NATIONAL_DEX_KOFFING,
NATIONAL_DEX_WEEZING,
NATIONAL_DEX_RHYHORN,
NATIONAL_DEX_RHYDON,
NATIONAL_DEX_CHANSEY,
NATIONAL_DEX_TANGELA,
NATIONAL_DEX_KANGASKHAN,
NATIONAL_DEX_HORSEA,
NATIONAL_DEX_SEADRA,
NATIONAL_DEX_GOLDEEN,
NATIONAL_DEX_SEAKING,
NATIONAL_DEX_STARYU,
NATIONAL_DEX_STARMIE,
NATIONAL_DEX_MR_MIME,
NATIONAL_DEX_SCYTHER,
NATIONAL_DEX_JYNX,
NATIONAL_DEX_ELECTABUZZ,
NATIONAL_DEX_MAGMAR,
NATIONAL_DEX_PINSIR,
NATIONAL_DEX_TAUROS,
NATIONAL_DEX_MAGIKARP,
NATIONAL_DEX_GYARADOS,
NATIONAL_DEX_LAPRAS,
NATIONAL_DEX_DITTO,
NATIONAL_DEX_EEVEE,
NATIONAL_DEX_VAPOREON,
NATIONAL_DEX_JOLTEON,
NATIONAL_DEX_FLAREON,
NATIONAL_DEX_PORYGON,
NATIONAL_DEX_OMANYTE,
NATIONAL_DEX_OMASTAR,
NATIONAL_DEX_KABUTO,
NATIONAL_DEX_KABUTOPS,
NATIONAL_DEX_AERODACTYL,
NATIONAL_DEX_SNORLAX,
NATIONAL_DEX_ARTICUNO,
NATIONAL_DEX_ZAPDOS,
NATIONAL_DEX_MOLTRES,
NATIONAL_DEX_DRATINI,
NATIONAL_DEX_DRAGONAIR,
NATIONAL_DEX_DRAGONITE,
NATIONAL_DEX_MEWTWO,
NATIONAL_DEX_MEW,
// Johto
NATIONAL_DEX_CHIKORITA,
NATIONAL_DEX_BAYLEEF,
NATIONAL_DEX_MEGANIUM,
NATIONAL_DEX_CYNDAQUIL,
NATIONAL_DEX_QUILAVA,
NATIONAL_DEX_TYPHLOSION,
NATIONAL_DEX_TOTODILE,
NATIONAL_DEX_CROCONAW,
NATIONAL_DEX_FERALIGATR,
NATIONAL_DEX_SENTRET,
NATIONAL_DEX_FURRET,
NATIONAL_DEX_HOOTHOOT,
NATIONAL_DEX_NOCTOWL,
NATIONAL_DEX_LEDYBA,
NATIONAL_DEX_LEDIAN,
NATIONAL_DEX_SPINARAK,
NATIONAL_DEX_ARIADOS,
NATIONAL_DEX_CROBAT,
NATIONAL_DEX_CHINCHOU,
NATIONAL_DEX_LANTURN,
NATIONAL_DEX_PICHU,
NATIONAL_DEX_CLEFFA,
NATIONAL_DEX_IGGLYBUFF,
NATIONAL_DEX_TOGEPI,
NATIONAL_DEX_TOGETIC,
NATIONAL_DEX_NATU,
NATIONAL_DEX_XATU,
NATIONAL_DEX_MAREEP,
NATIONAL_DEX_FLAAFFY,
NATIONAL_DEX_AMPHAROS,
NATIONAL_DEX_BELLOSSOM,
NATIONAL_DEX_MARILL,
NATIONAL_DEX_AZUMARILL,
NATIONAL_DEX_SUDOWOODO,
NATIONAL_DEX_POLITOED,
NATIONAL_DEX_HOPPIP,
NATIONAL_DEX_SKIPLOOM,
NATIONAL_DEX_JUMPLUFF,
NATIONAL_DEX_AIPOM,
NATIONAL_DEX_SUNKERN,
NATIONAL_DEX_SUNFLORA,
NATIONAL_DEX_YANMA,
NATIONAL_DEX_WOOPER,
NATIONAL_DEX_QUAGSIRE,
NATIONAL_DEX_ESPEON,
NATIONAL_DEX_UMBREON,
NATIONAL_DEX_MURKROW,
NATIONAL_DEX_SLOWKING,
NATIONAL_DEX_MISDREAVUS,
NATIONAL_DEX_UNOWN,
NATIONAL_DEX_WOBBUFFET,
NATIONAL_DEX_GIRAFARIG,
NATIONAL_DEX_PINECO,
NATIONAL_DEX_FORRETRESS,
NATIONAL_DEX_DUNSPARCE,
NATIONAL_DEX_GLIGAR,
NATIONAL_DEX_STEELIX,
NATIONAL_DEX_SNUBBULL,
NATIONAL_DEX_GRANBULL,
NATIONAL_DEX_QWILFISH,
NATIONAL_DEX_SCIZOR,
NATIONAL_DEX_SHUCKLE,
NATIONAL_DEX_HERACROSS,
NATIONAL_DEX_SNEASEL,
NATIONAL_DEX_TEDDIURSA,
NATIONAL_DEX_URSARING,
NATIONAL_DEX_SLUGMA,
NATIONAL_DEX_MAGCARGO,
NATIONAL_DEX_SWINUB,
NATIONAL_DEX_PILOSWINE,
NATIONAL_DEX_CORSOLA,
NATIONAL_DEX_REMORAID,
NATIONAL_DEX_OCTILLERY,
NATIONAL_DEX_DELIBIRD,
NATIONAL_DEX_MANTINE,
NATIONAL_DEX_SKARMORY,
NATIONAL_DEX_HOUNDOUR,
NATIONAL_DEX_HOUNDOOM,
NATIONAL_DEX_KINGDRA,
NATIONAL_DEX_PHANPY,
NATIONAL_DEX_DONPHAN,
NATIONAL_DEX_PORYGON2,
NATIONAL_DEX_STANTLER,
NATIONAL_DEX_SMEARGLE,
NATIONAL_DEX_TYROGUE,
NATIONAL_DEX_HITMONTOP,
NATIONAL_DEX_SMOOCHUM,
NATIONAL_DEX_ELEKID,
NATIONAL_DEX_MAGBY,
NATIONAL_DEX_MILTANK,
NATIONAL_DEX_BLISSEY,
NATIONAL_DEX_RAIKOU,
NATIONAL_DEX_ENTEI,
NATIONAL_DEX_SUICUNE,
NATIONAL_DEX_LARVITAR,
NATIONAL_DEX_PUPITAR,
NATIONAL_DEX_TYRANITAR,
NATIONAL_DEX_LUGIA,
NATIONAL_DEX_HO_OH,
NATIONAL_DEX_CELEBI,
// Hoenn
NATIONAL_DEX_TREECKO,
NATIONAL_DEX_GROVYLE,
NATIONAL_DEX_SCEPTILE,
NATIONAL_DEX_TORCHIC,
NATIONAL_DEX_COMBUSKEN,
NATIONAL_DEX_BLAZIKEN,
NATIONAL_DEX_MUDKIP,
NATIONAL_DEX_MARSHTOMP,
NATIONAL_DEX_SWAMPERT,
NATIONAL_DEX_POOCHYENA,
NATIONAL_DEX_MIGHTYENA,
NATIONAL_DEX_ZIGZAGOON,
NATIONAL_DEX_LINOONE,
NATIONAL_DEX_WURMPLE,
NATIONAL_DEX_SILCOON,
NATIONAL_DEX_BEAUTIFLY,
NATIONAL_DEX_CASCOON,
NATIONAL_DEX_DUSTOX,
NATIONAL_DEX_LOTAD,
NATIONAL_DEX_LOMBRE,
NATIONAL_DEX_LUDICOLO,
NATIONAL_DEX_SEEDOT,
NATIONAL_DEX_NUZLEAF,
NATIONAL_DEX_SHIFTRY,
NATIONAL_DEX_TAILLOW,
NATIONAL_DEX_SWELLOW,
NATIONAL_DEX_WINGULL,
NATIONAL_DEX_PELIPPER,
NATIONAL_DEX_RALTS,
NATIONAL_DEX_KIRLIA,
NATIONAL_DEX_GARDEVOIR,
NATIONAL_DEX_SURSKIT,
NATIONAL_DEX_MASQUERAIN,
NATIONAL_DEX_SHROOMISH,
NATIONAL_DEX_BRELOOM,
NATIONAL_DEX_SLAKOTH,
NATIONAL_DEX_VIGOROTH,
NATIONAL_DEX_SLAKING,
NATIONAL_DEX_NINCADA,
NATIONAL_DEX_NINJASK,
NATIONAL_DEX_SHEDINJA,
NATIONAL_DEX_WHISMUR,
NATIONAL_DEX_LOUDRED,
NATIONAL_DEX_EXPLOUD,
NATIONAL_DEX_MAKUHITA,
NATIONAL_DEX_HARIYAMA,
NATIONAL_DEX_AZURILL,
NATIONAL_DEX_NOSEPASS,
NATIONAL_DEX_SKITTY,
NATIONAL_DEX_DELCATTY,
NATIONAL_DEX_SABLEYE,
NATIONAL_DEX_MAWILE,
NATIONAL_DEX_ARON,
NATIONAL_DEX_LAIRON,
NATIONAL_DEX_AGGRON,
NATIONAL_DEX_MEDITITE,
NATIONAL_DEX_MEDICHAM,
NATIONAL_DEX_ELECTRIKE,
NATIONAL_DEX_MANECTRIC,
NATIONAL_DEX_PLUSLE,
NATIONAL_DEX_MINUN,
NATIONAL_DEX_VOLBEAT,
NATIONAL_DEX_ILLUMISE,
NATIONAL_DEX_ROSELIA,
NATIONAL_DEX_GULPIN,
NATIONAL_DEX_SWALOT,
NATIONAL_DEX_CARVANHA,
NATIONAL_DEX_SHARPEDO,
NATIONAL_DEX_WAILMER,
NATIONAL_DEX_WAILORD,
NATIONAL_DEX_NUMEL,
NATIONAL_DEX_CAMERUPT,
NATIONAL_DEX_TORKOAL,
NATIONAL_DEX_SPOINK,
NATIONAL_DEX_GRUMPIG,
NATIONAL_DEX_SPINDA,
NATIONAL_DEX_TRAPINCH,
NATIONAL_DEX_VIBRAVA,
NATIONAL_DEX_FLYGON,
NATIONAL_DEX_CACNEA,
NATIONAL_DEX_CACTURNE,
NATIONAL_DEX_SWABLU,
NATIONAL_DEX_ALTARIA,
NATIONAL_DEX_ZANGOOSE,
NATIONAL_DEX_SEVIPER,
NATIONAL_DEX_LUNATONE,
NATIONAL_DEX_SOLROCK,
NATIONAL_DEX_BARBOACH,
NATIONAL_DEX_WHISCASH,
NATIONAL_DEX_CORPHISH,
NATIONAL_DEX_CRAWDAUNT,
NATIONAL_DEX_BALTOY,
NATIONAL_DEX_CLAYDOL,
NATIONAL_DEX_LILEEP,
NATIONAL_DEX_CRADILY,
NATIONAL_DEX_ANORITH,
NATIONAL_DEX_ARMALDO,
NATIONAL_DEX_FEEBAS,
NATIONAL_DEX_MILOTIC,
NATIONAL_DEX_CASTFORM,
NATIONAL_DEX_KECLEON,
NATIONAL_DEX_SHUPPET,
NATIONAL_DEX_BANETTE,
NATIONAL_DEX_DUSKULL,
NATIONAL_DEX_DUSCLOPS,
NATIONAL_DEX_TROPIUS,
NATIONAL_DEX_CHIMECHO,
NATIONAL_DEX_ABSOL,
NATIONAL_DEX_WYNAUT,
NATIONAL_DEX_SNORUNT,
NATIONAL_DEX_GLALIE,
NATIONAL_DEX_SPHEAL,
NATIONAL_DEX_SEALEO,
NATIONAL_DEX_WALREIN,
NATIONAL_DEX_CLAMPERL,
NATIONAL_DEX_HUNTAIL,
NATIONAL_DEX_GOREBYSS,
NATIONAL_DEX_RELICANTH,
NATIONAL_DEX_LUVDISC,
NATIONAL_DEX_BAGON,
NATIONAL_DEX_SHELGON,
NATIONAL_DEX_SALAMENCE,
NATIONAL_DEX_BELDUM,
NATIONAL_DEX_METANG,
NATIONAL_DEX_METAGROSS,
NATIONAL_DEX_REGIROCK,
NATIONAL_DEX_REGICE,
NATIONAL_DEX_REGISTEEL,
NATIONAL_DEX_LATIAS,
NATIONAL_DEX_LATIOS,
NATIONAL_DEX_KYOGRE,
NATIONAL_DEX_GROUDON,
NATIONAL_DEX_RAYQUAZA,
NATIONAL_DEX_JIRACHI,
NATIONAL_DEX_DEOXYS,
// Old Unown
NATIONAL_DEX_OLD_UNOWN_B,
NATIONAL_DEX_OLD_UNOWN_C,
NATIONAL_DEX_OLD_UNOWN_D,
NATIONAL_DEX_OLD_UNOWN_E,
NATIONAL_DEX_OLD_UNOWN_F,
NATIONAL_DEX_OLD_UNOWN_G,
NATIONAL_DEX_OLD_UNOWN_H,
NATIONAL_DEX_OLD_UNOWN_I,
NATIONAL_DEX_OLD_UNOWN_J,
NATIONAL_DEX_OLD_UNOWN_K,
NATIONAL_DEX_OLD_UNOWN_L,
NATIONAL_DEX_OLD_UNOWN_M,
NATIONAL_DEX_OLD_UNOWN_N,
NATIONAL_DEX_OLD_UNOWN_O,
NATIONAL_DEX_OLD_UNOWN_P,
NATIONAL_DEX_OLD_UNOWN_Q,
NATIONAL_DEX_OLD_UNOWN_R,
NATIONAL_DEX_OLD_UNOWN_S,
NATIONAL_DEX_OLD_UNOWN_T,
NATIONAL_DEX_OLD_UNOWN_U,
NATIONAL_DEX_OLD_UNOWN_V,
NATIONAL_DEX_OLD_UNOWN_W,
NATIONAL_DEX_OLD_UNOWN_X,
NATIONAL_DEX_OLD_UNOWN_Y,
NATIONAL_DEX_OLD_UNOWN_Z,
};
#define KANTO_DEX_COUNT NATIONAL_DEX_MEW
#define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI
#define NATIONAL_DEX_COUNT NATIONAL_DEX_DEOXYS
// Hoenn Pokedex order
enum {
HOENN_DEX_NONE,
HOENN_DEX_TREECKO,
HOENN_DEX_GROVYLE,
HOENN_DEX_SCEPTILE,
HOENN_DEX_TORCHIC,
HOENN_DEX_COMBUSKEN,
HOENN_DEX_BLAZIKEN,
HOENN_DEX_MUDKIP,
HOENN_DEX_MARSHTOMP,
HOENN_DEX_SWAMPERT,
HOENN_DEX_POOCHYENA,
HOENN_DEX_MIGHTYENA,
HOENN_DEX_ZIGZAGOON,
HOENN_DEX_LINOONE,
HOENN_DEX_WURMPLE,
HOENN_DEX_SILCOON,
HOENN_DEX_BEAUTIFLY,
HOENN_DEX_CASCOON,
HOENN_DEX_DUSTOX,
HOENN_DEX_LOTAD,
HOENN_DEX_LOMBRE,
HOENN_DEX_LUDICOLO,
HOENN_DEX_SEEDOT,
HOENN_DEX_NUZLEAF,
HOENN_DEX_SHIFTRY,
HOENN_DEX_TAILLOW,
HOENN_DEX_SWELLOW,
HOENN_DEX_WINGULL,
HOENN_DEX_PELIPPER,
HOENN_DEX_RALTS,
HOENN_DEX_KIRLIA,
HOENN_DEX_GARDEVOIR,
HOENN_DEX_SURSKIT,
HOENN_DEX_MASQUERAIN,
HOENN_DEX_SHROOMISH,
HOENN_DEX_BRELOOM,
HOENN_DEX_SLAKOTH,
HOENN_DEX_VIGOROTH,
HOENN_DEX_SLAKING,
HOENN_DEX_ABRA,
HOENN_DEX_KADABRA,
HOENN_DEX_ALAKAZAM,
HOENN_DEX_NINCADA,
HOENN_DEX_NINJASK,
HOENN_DEX_SHEDINJA,
HOENN_DEX_WHISMUR,
HOENN_DEX_LOUDRED,
HOENN_DEX_EXPLOUD,
HOENN_DEX_MAKUHITA,
HOENN_DEX_HARIYAMA,
HOENN_DEX_GOLDEEN,
HOENN_DEX_SEAKING,
HOENN_DEX_MAGIKARP,
HOENN_DEX_GYARADOS,
HOENN_DEX_AZURILL,
HOENN_DEX_MARILL,
HOENN_DEX_AZUMARILL,
HOENN_DEX_GEODUDE,
HOENN_DEX_GRAVELER,
HOENN_DEX_GOLEM,
HOENN_DEX_NOSEPASS,
HOENN_DEX_SKITTY,
HOENN_DEX_DELCATTY,
HOENN_DEX_ZUBAT,
HOENN_DEX_GOLBAT,
HOENN_DEX_CROBAT,
HOENN_DEX_TENTACOOL,
HOENN_DEX_TENTACRUEL,
HOENN_DEX_SABLEYE,
HOENN_DEX_MAWILE,
HOENN_DEX_ARON,
HOENN_DEX_LAIRON,
HOENN_DEX_AGGRON,
HOENN_DEX_MACHOP,
HOENN_DEX_MACHOKE,
HOENN_DEX_MACHAMP,
HOENN_DEX_MEDITITE,
HOENN_DEX_MEDICHAM,
HOENN_DEX_ELECTRIKE,
HOENN_DEX_MANECTRIC,
HOENN_DEX_PLUSLE,
HOENN_DEX_MINUN,
HOENN_DEX_MAGNEMITE,
HOENN_DEX_MAGNETON,
HOENN_DEX_VOLTORB,
HOENN_DEX_ELECTRODE,
HOENN_DEX_VOLBEAT,
HOENN_DEX_ILLUMISE,
HOENN_DEX_ODDISH,
HOENN_DEX_GLOOM,
HOENN_DEX_VILEPLUME,
HOENN_DEX_BELLOSSOM,
HOENN_DEX_DODUO,
HOENN_DEX_DODRIO,
HOENN_DEX_ROSELIA,
HOENN_DEX_GULPIN,
HOENN_DEX_SWALOT,
HOENN_DEX_CARVANHA,
HOENN_DEX_SHARPEDO,
HOENN_DEX_WAILMER,
HOENN_DEX_WAILORD,
HOENN_DEX_NUMEL,
HOENN_DEX_CAMERUPT,
HOENN_DEX_SLUGMA,
HOENN_DEX_MAGCARGO,
HOENN_DEX_TORKOAL,
HOENN_DEX_GRIMER,
HOENN_DEX_MUK,
HOENN_DEX_KOFFING,
HOENN_DEX_WEEZING,
HOENN_DEX_SPOINK,
HOENN_DEX_GRUMPIG,
HOENN_DEX_SANDSHREW,
HOENN_DEX_SANDSLASH,
HOENN_DEX_SPINDA,
HOENN_DEX_SKARMORY,
HOENN_DEX_TRAPINCH,
HOENN_DEX_VIBRAVA,
HOENN_DEX_FLYGON,
HOENN_DEX_CACNEA,
HOENN_DEX_CACTURNE,
HOENN_DEX_SWABLU,
HOENN_DEX_ALTARIA,
HOENN_DEX_ZANGOOSE,
HOENN_DEX_SEVIPER,
HOENN_DEX_LUNATONE,
HOENN_DEX_SOLROCK,
HOENN_DEX_BARBOACH,
HOENN_DEX_WHISCASH,
HOENN_DEX_CORPHISH,
HOENN_DEX_CRAWDAUNT,
HOENN_DEX_BALTOY,
HOENN_DEX_CLAYDOL,
HOENN_DEX_LILEEP,
HOENN_DEX_CRADILY,
HOENN_DEX_ANORITH,
HOENN_DEX_ARMALDO,
HOENN_DEX_IGGLYBUFF,
HOENN_DEX_JIGGLYPUFF,
HOENN_DEX_WIGGLYTUFF,
HOENN_DEX_FEEBAS,
HOENN_DEX_MILOTIC,
HOENN_DEX_CASTFORM,
HOENN_DEX_STARYU,
HOENN_DEX_STARMIE,
HOENN_DEX_KECLEON,
HOENN_DEX_SHUPPET,
HOENN_DEX_BANETTE,
HOENN_DEX_DUSKULL,
HOENN_DEX_DUSCLOPS,
HOENN_DEX_TROPIUS,
HOENN_DEX_CHIMECHO,
HOENN_DEX_ABSOL,
HOENN_DEX_VULPIX,
HOENN_DEX_NINETALES,
HOENN_DEX_PICHU,
HOENN_DEX_PIKACHU,
HOENN_DEX_RAICHU,
HOENN_DEX_PSYDUCK,
HOENN_DEX_GOLDUCK,
HOENN_DEX_WYNAUT,
HOENN_DEX_WOBBUFFET,
HOENN_DEX_NATU,
HOENN_DEX_XATU,
HOENN_DEX_GIRAFARIG,
HOENN_DEX_PHANPY,
HOENN_DEX_DONPHAN,
HOENN_DEX_PINSIR,
HOENN_DEX_HERACROSS,
HOENN_DEX_RHYHORN,
HOENN_DEX_RHYDON,
HOENN_DEX_SNORUNT,
HOENN_DEX_GLALIE,
HOENN_DEX_SPHEAL,
HOENN_DEX_SEALEO,
HOENN_DEX_WALREIN,
HOENN_DEX_CLAMPERL,
HOENN_DEX_HUNTAIL,
HOENN_DEX_GOREBYSS,
HOENN_DEX_RELICANTH,
HOENN_DEX_CORSOLA,
HOENN_DEX_CHINCHOU,
HOENN_DEX_LANTURN,
HOENN_DEX_LUVDISC,
HOENN_DEX_HORSEA,
HOENN_DEX_SEADRA,
HOENN_DEX_KINGDRA,
HOENN_DEX_BAGON,
HOENN_DEX_SHELGON,
HOENN_DEX_SALAMENCE,
HOENN_DEX_BELDUM,
HOENN_DEX_METANG,
HOENN_DEX_METAGROSS,
HOENN_DEX_REGIROCK,
HOENN_DEX_REGICE,
HOENN_DEX_REGISTEEL,
HOENN_DEX_LATIAS,
HOENN_DEX_LATIOS,
HOENN_DEX_KYOGRE,
HOENN_DEX_GROUDON,
HOENN_DEX_RAYQUAZA,
HOENN_DEX_JIRACHI,
HOENN_DEX_DEOXYS,
// End of Hoenn Dex (see HOENN_DEX_COUNT)
// Here below have values but are excluded from the Pokedex
HOENN_DEX_BULBASAUR,
HOENN_DEX_IVYSAUR,
HOENN_DEX_VENUSAUR,
HOENN_DEX_CHARMANDER,
HOENN_DEX_CHARMELEON,
HOENN_DEX_CHARIZARD,
HOENN_DEX_SQUIRTLE,
HOENN_DEX_WARTORTLE,
HOENN_DEX_BLASTOISE,
HOENN_DEX_CATERPIE,
HOENN_DEX_METAPOD,
HOENN_DEX_BUTTERFREE,
HOENN_DEX_WEEDLE,
HOENN_DEX_KAKUNA,
HOENN_DEX_BEEDRILL,
HOENN_DEX_PIDGEY,
HOENN_DEX_PIDGEOTTO,
HOENN_DEX_PIDGEOT,
HOENN_DEX_RATTATA,
HOENN_DEX_RATICATE,
HOENN_DEX_SPEAROW,
HOENN_DEX_FEAROW,
HOENN_DEX_EKANS,
HOENN_DEX_ARBOK,
HOENN_DEX_NIDORAN_F,
HOENN_DEX_NIDORINA,
HOENN_DEX_NIDOQUEEN,
HOENN_DEX_NIDORAN_M,
HOENN_DEX_NIDORINO,
HOENN_DEX_NIDOKING,
HOENN_DEX_CLEFAIRY,
HOENN_DEX_CLEFABLE,
HOENN_DEX_PARAS,
HOENN_DEX_PARASECT,
HOENN_DEX_VENONAT,
HOENN_DEX_VENOMOTH,
HOENN_DEX_DIGLETT,
HOENN_DEX_DUGTRIO,
HOENN_DEX_MEOWTH,
HOENN_DEX_PERSIAN,
HOENN_DEX_MANKEY,
HOENN_DEX_PRIMEAPE,
HOENN_DEX_GROWLITHE,
HOENN_DEX_ARCANINE,
HOENN_DEX_POLIWAG,
HOENN_DEX_POLIWHIRL,
HOENN_DEX_POLIWRATH,
HOENN_DEX_BELLSPROUT,
HOENN_DEX_WEEPINBELL,
HOENN_DEX_VICTREEBEL,
HOENN_DEX_PONYTA,
HOENN_DEX_RAPIDASH,
HOENN_DEX_SLOWPOKE,
HOENN_DEX_SLOWBRO,
HOENN_DEX_FARFETCHD,
HOENN_DEX_SEEL,
HOENN_DEX_DEWGONG,
HOENN_DEX_SHELLDER,
HOENN_DEX_CLOYSTER,
HOENN_DEX_GASTLY,
HOENN_DEX_HAUNTER,
HOENN_DEX_GENGAR,
HOENN_DEX_ONIX,
HOENN_DEX_DROWZEE,
HOENN_DEX_HYPNO,
HOENN_DEX_KRABBY,
HOENN_DEX_KINGLER,
HOENN_DEX_EXEGGCUTE,
HOENN_DEX_EXEGGUTOR,
HOENN_DEX_CUBONE,
HOENN_DEX_MAROWAK,
HOENN_DEX_HITMONLEE,
HOENN_DEX_HITMONCHAN,
HOENN_DEX_LICKITUNG,
HOENN_DEX_CHANSEY,
HOENN_DEX_TANGELA,
HOENN_DEX_KANGASKHAN,
HOENN_DEX_MR_MIME,
HOENN_DEX_SCYTHER,
HOENN_DEX_JYNX,
HOENN_DEX_ELECTABUZZ,
HOENN_DEX_MAGMAR,
HOENN_DEX_TAUROS,
HOENN_DEX_LAPRAS,
HOENN_DEX_DITTO,
HOENN_DEX_EEVEE,
HOENN_DEX_VAPOREON,
HOENN_DEX_JOLTEON,
HOENN_DEX_FLAREON,
HOENN_DEX_PORYGON,
HOENN_DEX_OMANYTE,
HOENN_DEX_OMASTAR,
HOENN_DEX_KABUTO,
HOENN_DEX_KABUTOPS,
HOENN_DEX_AERODACTYL,
HOENN_DEX_SNORLAX,
HOENN_DEX_ARTICUNO,
HOENN_DEX_ZAPDOS,
HOENN_DEX_MOLTRES,
HOENN_DEX_DRATINI,
HOENN_DEX_DRAGONAIR,
HOENN_DEX_DRAGONITE,
HOENN_DEX_MEWTWO,
HOENN_DEX_MEW,
HOENN_DEX_CHIKORITA,
HOENN_DEX_BAYLEEF,
HOENN_DEX_MEGANIUM,
HOENN_DEX_CYNDAQUIL,
HOENN_DEX_QUILAVA,
HOENN_DEX_TYPHLOSION,
HOENN_DEX_TOTODILE,
HOENN_DEX_CROCONAW,
HOENN_DEX_FERALIGATR,
HOENN_DEX_SENTRET,
HOENN_DEX_FURRET,
HOENN_DEX_HOOTHOOT,
HOENN_DEX_NOCTOWL,
HOENN_DEX_LEDYBA,
HOENN_DEX_LEDIAN,
HOENN_DEX_SPINARAK,
HOENN_DEX_ARIADOS,
HOENN_DEX_CLEFFA,
HOENN_DEX_TOGEPI,
HOENN_DEX_TOGETIC,
HOENN_DEX_MAREEP,
HOENN_DEX_FLAAFFY,
HOENN_DEX_AMPHAROS,
HOENN_DEX_SUDOWOODO,
HOENN_DEX_POLITOED,
HOENN_DEX_HOPPIP,
HOENN_DEX_SKIPLOOM,
HOENN_DEX_JUMPLUFF,
HOENN_DEX_AIPOM,
HOENN_DEX_SUNKERN,
HOENN_DEX_SUNFLORA,
HOENN_DEX_YANMA,
HOENN_DEX_WOOPER,
HOENN_DEX_QUAGSIRE,
HOENN_DEX_ESPEON,
HOENN_DEX_UMBREON,
HOENN_DEX_MURKROW,
HOENN_DEX_SLOWKING,
HOENN_DEX_MISDREAVUS,
HOENN_DEX_UNOWN,
HOENN_DEX_PINECO,
HOENN_DEX_FORRETRESS,
HOENN_DEX_DUNSPARCE,
HOENN_DEX_GLIGAR,
HOENN_DEX_STEELIX,
HOENN_DEX_SNUBBULL,
HOENN_DEX_GRANBULL,
HOENN_DEX_QWILFISH,
HOENN_DEX_SCIZOR,
HOENN_DEX_SHUCKLE,
HOENN_DEX_SNEASEL,
HOENN_DEX_TEDDIURSA,
HOENN_DEX_URSARING,
HOENN_DEX_SWINUB,
HOENN_DEX_PILOSWINE,
HOENN_DEX_REMORAID,
HOENN_DEX_OCTILLERY,
HOENN_DEX_DELIBIRD,
HOENN_DEX_MANTINE,
HOENN_DEX_HOUNDOUR,
HOENN_DEX_HOUNDOOM,
HOENN_DEX_PORYGON2,
HOENN_DEX_STANTLER,
HOENN_DEX_SMEARGLE,
HOENN_DEX_TYROGUE,
HOENN_DEX_HITMONTOP,
HOENN_DEX_SMOOCHUM,
HOENN_DEX_ELEKID,
HOENN_DEX_MAGBY,
HOENN_DEX_MILTANK,
HOENN_DEX_BLISSEY,
HOENN_DEX_RAIKOU,
HOENN_DEX_ENTEI,
HOENN_DEX_SUICUNE,
HOENN_DEX_LARVITAR,
HOENN_DEX_PUPITAR,
HOENN_DEX_TYRANITAR,
HOENN_DEX_LUGIA,
HOENN_DEX_HO_OH,
HOENN_DEX_CELEBI,
HOENN_DEX_OLD_UNOWN_B,
HOENN_DEX_OLD_UNOWN_C,
HOENN_DEX_OLD_UNOWN_D,
HOENN_DEX_OLD_UNOWN_E,
HOENN_DEX_OLD_UNOWN_F,
HOENN_DEX_OLD_UNOWN_G,
HOENN_DEX_OLD_UNOWN_H,
HOENN_DEX_OLD_UNOWN_I,
HOENN_DEX_OLD_UNOWN_J,
HOENN_DEX_OLD_UNOWN_K,
HOENN_DEX_OLD_UNOWN_L,
HOENN_DEX_OLD_UNOWN_M,
HOENN_DEX_OLD_UNOWN_N,
HOENN_DEX_OLD_UNOWN_O,
HOENN_DEX_OLD_UNOWN_P,
HOENN_DEX_OLD_UNOWN_Q,
HOENN_DEX_OLD_UNOWN_R,
HOENN_DEX_OLD_UNOWN_S,
HOENN_DEX_OLD_UNOWN_T,
HOENN_DEX_OLD_UNOWN_U,
HOENN_DEX_OLD_UNOWN_V,
HOENN_DEX_OLD_UNOWN_W,
HOENN_DEX_OLD_UNOWN_X,
HOENN_DEX_OLD_UNOWN_Y,
HOENN_DEX_OLD_UNOWN_Z,
};
#define HOENN_DEX_COUNT HOENN_DEX_DEOXYS
#endif // GUARD_CONSTANTS_POKEDEX_H
+20 -19
View File
@@ -93,25 +93,26 @@
#define MON_DATA_SPDEF2 88
// Pokemon types
#define TYPE_NORMAL 0x00
#define TYPE_FIGHTING 0x01
#define TYPE_FLYING 0x02
#define TYPE_POISON 0x03
#define TYPE_GROUND 0x04
#define TYPE_ROCK 0x05
#define TYPE_BUG 0x06
#define TYPE_GHOST 0x07
#define TYPE_STEEL 0x08
#define TYPE_MYSTERY 0x09
#define TYPE_FIRE 0x0a
#define TYPE_WATER 0x0b
#define TYPE_GRASS 0x0c
#define TYPE_ELECTRIC 0x0d
#define TYPE_PSYCHIC 0x0e
#define TYPE_ICE 0x0f
#define TYPE_DRAGON 0x10
#define TYPE_DARK 0x11
#define NUMBER_OF_MON_TYPES 0x12
#define TYPE_NONE 255
#define TYPE_NORMAL 0
#define TYPE_FIGHTING 1
#define TYPE_FLYING 2
#define TYPE_POISON 3
#define TYPE_GROUND 4
#define TYPE_ROCK 5
#define TYPE_BUG 6
#define TYPE_GHOST 7
#define TYPE_STEEL 8
#define TYPE_MYSTERY 9
#define TYPE_FIRE 10
#define TYPE_WATER 11
#define TYPE_GRASS 12
#define TYPE_ELECTRIC 13
#define TYPE_PSYCHIC 14
#define TYPE_ICE 15
#define TYPE_DRAGON 16
#define TYPE_DARK 17
#define NUMBER_OF_MON_TYPES 18
// Pokemon egg groups
#define EGG_GROUP_NONE 0
+25
View File
@@ -0,0 +1,25 @@
#ifndef GUARD_RGB_H
#define GUARD_RGB_H
#define GET_R(color) ((color) & 0x1F)
#define GET_G(color) (((color) >> 5) & 0x1F)
#define GET_B(color) (((color) >> 10) & 0x1F)
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
#define RGB_ALPHA (1 << 15)
#define IS_ALPHA(color) ((color) & RGB_ALPHA)
#define RGB_BLACK RGB(0, 0, 0)
#define RGB_WHITE RGB(31, 31, 31)
#define RGB_RED RGB(31, 0, 0)
#define RGB_GREEN RGB(0, 31, 0)
#define RGB_BLUE RGB(0, 0, 31)
#define RGB_YELLOW RGB(31, 31, 0)
#define RGB_MAGENTA RGB(31, 0, 31)
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | RGB_ALPHA)
#endif // GUARD_RGB_H
+30 -863
View File
@@ -153,6 +153,9 @@
#define SPECIES_DRAGONITE 149
#define SPECIES_MEWTWO 150
#define SPECIES_MEW 151
#define KANTO_SPECIES_END SPECIES_MEW
#define SPECIES_CHIKORITA 152
#define SPECIES_BAYLEEF 153
#define SPECIES_MEGANIUM 154
@@ -417,870 +420,34 @@
#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 SPECIES_OLD_UNOWN_EMARK 412
#define SPECIES_OLD_UNOWN_QMARK 413
#define NUM_SPECIES SPECIES_EGG
// National Dex Index Defines
#define NATIONAL_DEX_NONE 0
#define NATIONAL_DEX_BULBASAUR 1
#define NATIONAL_DEX_IVYSAUR 2
#define NATIONAL_DEX_VENUSAUR 3
#define NATIONAL_DEX_CHARMANDER 4
#define NATIONAL_DEX_CHARMELEON 5
#define NATIONAL_DEX_CHARIZARD 6
#define NATIONAL_DEX_SQUIRTLE 7
#define NATIONAL_DEX_WARTORTLE 8
#define NATIONAL_DEX_BLASTOISE 9
#define NATIONAL_DEX_CATERPIE 10
#define NATIONAL_DEX_METAPOD 11
#define NATIONAL_DEX_BUTTERFREE 12
#define NATIONAL_DEX_WEEDLE 13
#define NATIONAL_DEX_KAKUNA 14
#define NATIONAL_DEX_BEEDRILL 15
#define NATIONAL_DEX_PIDGEY 16
#define NATIONAL_DEX_PIDGEOTTO 17
#define NATIONAL_DEX_PIDGEOT 18
#define NATIONAL_DEX_RATTATA 19
#define NATIONAL_DEX_RATICATE 20
#define NATIONAL_DEX_SPEAROW 21
#define NATIONAL_DEX_FEAROW 22
#define NATIONAL_DEX_EKANS 23
#define NATIONAL_DEX_ARBOK 24
#define NATIONAL_DEX_PIKACHU 25
#define NATIONAL_DEX_RAICHU 26
#define NATIONAL_DEX_SANDSHREW 27
#define NATIONAL_DEX_SANDSLASH 28
#define NATIONAL_DEX_NIDORAN_F 29
#define NATIONAL_DEX_NIDORINA 30
#define NATIONAL_DEX_NIDOQUEEN 31
#define NATIONAL_DEX_NIDORAN_M 32
#define NATIONAL_DEX_NIDORINO 33
#define NATIONAL_DEX_NIDOKING 34
#define NATIONAL_DEX_CLEFAIRY 35
#define NATIONAL_DEX_CLEFABLE 36
#define NATIONAL_DEX_VULPIX 37
#define NATIONAL_DEX_NINETALES 38
#define NATIONAL_DEX_JIGGLYPUFF 39
#define NATIONAL_DEX_WIGGLYTUFF 40
#define NATIONAL_DEX_ZUBAT 41
#define NATIONAL_DEX_GOLBAT 42
#define NATIONAL_DEX_ODDISH 43
#define NATIONAL_DEX_GLOOM 44
#define NATIONAL_DEX_VILEPLUME 45
#define NATIONAL_DEX_PARAS 46
#define NATIONAL_DEX_PARASECT 47
#define NATIONAL_DEX_VENONAT 48
#define NATIONAL_DEX_VENOMOTH 49
#define NATIONAL_DEX_DIGLETT 50
#define NATIONAL_DEX_DUGTRIO 51
#define NATIONAL_DEX_MEOWTH 52
#define NATIONAL_DEX_PERSIAN 53
#define NATIONAL_DEX_PSYDUCK 54
#define NATIONAL_DEX_GOLDUCK 55
#define NATIONAL_DEX_MANKEY 56
#define NATIONAL_DEX_PRIMEAPE 57
#define NATIONAL_DEX_GROWLITHE 58
#define NATIONAL_DEX_ARCANINE 59
#define NATIONAL_DEX_POLIWAG 60
#define NATIONAL_DEX_POLIWHIRL 61
#define NATIONAL_DEX_POLIWRATH 62
#define NATIONAL_DEX_ABRA 63
#define NATIONAL_DEX_KADABRA 64
#define NATIONAL_DEX_ALAKAZAM 65
#define NATIONAL_DEX_MACHOP 66
#define NATIONAL_DEX_MACHOKE 67
#define NATIONAL_DEX_MACHAMP 68
#define NATIONAL_DEX_BELLSPROUT 69
#define NATIONAL_DEX_WEEPINBELL 70
#define NATIONAL_DEX_VICTREEBEL 71
#define NATIONAL_DEX_TENTACOOL 72
#define NATIONAL_DEX_TENTACRUEL 73
#define NATIONAL_DEX_GEODUDE 74
#define NATIONAL_DEX_GRAVELER 75
#define NATIONAL_DEX_GOLEM 76
#define NATIONAL_DEX_PONYTA 77
#define NATIONAL_DEX_RAPIDASH 78
#define NATIONAL_DEX_SLOWPOKE 79
#define NATIONAL_DEX_SLOWBRO 80
#define NATIONAL_DEX_MAGNEMITE 81
#define NATIONAL_DEX_MAGNETON 82
#define NATIONAL_DEX_FARFETCHD 83
#define NATIONAL_DEX_DODUO 84
#define NATIONAL_DEX_DODRIO 85
#define NATIONAL_DEX_SEEL 86
#define NATIONAL_DEX_DEWGONG 87
#define NATIONAL_DEX_GRIMER 88
#define NATIONAL_DEX_MUK 89
#define NATIONAL_DEX_SHELLDER 90
#define NATIONAL_DEX_CLOYSTER 91
#define NATIONAL_DEX_GASTLY 92
#define NATIONAL_DEX_HAUNTER 93
#define NATIONAL_DEX_GENGAR 94
#define NATIONAL_DEX_ONIX 95
#define NATIONAL_DEX_DROWZEE 96
#define NATIONAL_DEX_HYPNO 97
#define NATIONAL_DEX_KRABBY 98
#define NATIONAL_DEX_KINGLER 99
#define NATIONAL_DEX_VOLTORB 100
#define NATIONAL_DEX_ELECTRODE 101
#define NATIONAL_DEX_EXEGGCUTE 102
#define NATIONAL_DEX_EXEGGUTOR 103
#define NATIONAL_DEX_CUBONE 104
#define NATIONAL_DEX_MAROWAK 105
#define NATIONAL_DEX_HITMONLEE 106
#define NATIONAL_DEX_HITMONCHAN 107
#define NATIONAL_DEX_LICKITUNG 108
#define NATIONAL_DEX_KOFFING 109
#define NATIONAL_DEX_WEEZING 110
#define NATIONAL_DEX_RHYHORN 111
#define NATIONAL_DEX_RHYDON 112
#define NATIONAL_DEX_CHANSEY 113
#define NATIONAL_DEX_TANGELA 114
#define NATIONAL_DEX_KANGASKHAN 115
#define NATIONAL_DEX_HORSEA 116
#define NATIONAL_DEX_SEADRA 117
#define NATIONAL_DEX_GOLDEEN 118
#define NATIONAL_DEX_SEAKING 119
#define NATIONAL_DEX_STARYU 120
#define NATIONAL_DEX_STARMIE 121
#define NATIONAL_DEX_MR_MIME 122
#define NATIONAL_DEX_SCYTHER 123
#define NATIONAL_DEX_JYNX 124
#define NATIONAL_DEX_ELECTABUZZ 125
#define NATIONAL_DEX_MAGMAR 126
#define NATIONAL_DEX_PINSIR 127
#define NATIONAL_DEX_TAUROS 128
#define NATIONAL_DEX_MAGIKARP 129
#define NATIONAL_DEX_GYARADOS 130
#define NATIONAL_DEX_LAPRAS 131
#define NATIONAL_DEX_DITTO 132
#define NATIONAL_DEX_EEVEE 133
#define NATIONAL_DEX_VAPOREON 134
#define NATIONAL_DEX_JOLTEON 135
#define NATIONAL_DEX_FLAREON 136
#define NATIONAL_DEX_PORYGON 137
#define NATIONAL_DEX_OMANYTE 138
#define NATIONAL_DEX_OMASTAR 139
#define NATIONAL_DEX_KABUTO 140
#define NATIONAL_DEX_KABUTOPS 141
#define NATIONAL_DEX_AERODACTYL 142
#define NATIONAL_DEX_SNORLAX 143
#define NATIONAL_DEX_ARTICUNO 144
#define NATIONAL_DEX_ZAPDOS 145
#define NATIONAL_DEX_MOLTRES 146
#define NATIONAL_DEX_DRATINI 147
#define NATIONAL_DEX_DRAGONAIR 148
#define NATIONAL_DEX_DRAGONITE 149
#define NATIONAL_DEX_MEWTWO 150
#define NATIONAL_DEX_MEW 151
#define NATIONAL_DEX_CHIKORITA 152
#define NATIONAL_DEX_BAYLEEF 153
#define NATIONAL_DEX_MEGANIUM 154
#define NATIONAL_DEX_CYNDAQUIL 155
#define NATIONAL_DEX_QUILAVA 156
#define NATIONAL_DEX_TYPHLOSION 157
#define NATIONAL_DEX_TOTODILE 158
#define NATIONAL_DEX_CROCONAW 159
#define NATIONAL_DEX_FERALIGATR 160
#define NATIONAL_DEX_SENTRET 161
#define NATIONAL_DEX_FURRET 162
#define NATIONAL_DEX_HOOTHOOT 163
#define NATIONAL_DEX_NOCTOWL 164
#define NATIONAL_DEX_LEDYBA 165
#define NATIONAL_DEX_LEDIAN 166
#define NATIONAL_DEX_SPINARAK 167
#define NATIONAL_DEX_ARIADOS 168
#define NATIONAL_DEX_CROBAT 169
#define NATIONAL_DEX_CHINCHOU 170
#define NATIONAL_DEX_LANTURN 171
#define NATIONAL_DEX_PICHU 172
#define NATIONAL_DEX_CLEFFA 173
#define NATIONAL_DEX_IGGLYBUFF 174
#define NATIONAL_DEX_TOGEPI 175
#define NATIONAL_DEX_TOGETIC 176
#define NATIONAL_DEX_NATU 177
#define NATIONAL_DEX_XATU 178
#define NATIONAL_DEX_MAREEP 179
#define NATIONAL_DEX_FLAAFFY 180
#define NATIONAL_DEX_AMPHAROS 181
#define NATIONAL_DEX_BELLOSSOM 182
#define NATIONAL_DEX_MARILL 183
#define NATIONAL_DEX_AZUMARILL 184
#define NATIONAL_DEX_SUDOWOODO 185
#define NATIONAL_DEX_POLITOED 186
#define NATIONAL_DEX_HOPPIP 187
#define NATIONAL_DEX_SKIPLOOM 188
#define NATIONAL_DEX_JUMPLUFF 189
#define NATIONAL_DEX_AIPOM 190
#define NATIONAL_DEX_SUNKERN 191
#define NATIONAL_DEX_SUNFLORA 192
#define NATIONAL_DEX_YANMA 193
#define NATIONAL_DEX_WOOPER 194
#define NATIONAL_DEX_QUAGSIRE 195
#define NATIONAL_DEX_ESPEON 196
#define NATIONAL_DEX_UMBREON 197
#define NATIONAL_DEX_MURKROW 198
#define NATIONAL_DEX_SLOWKING 199
#define NATIONAL_DEX_MISDREAVUS 200
#define NATIONAL_DEX_UNOWN 201
#define NATIONAL_DEX_WOBBUFFET 202
#define NATIONAL_DEX_GIRAFARIG 203
#define NATIONAL_DEX_PINECO 204
#define NATIONAL_DEX_FORRETRESS 205
#define NATIONAL_DEX_DUNSPARCE 206
#define NATIONAL_DEX_GLIGAR 207
#define NATIONAL_DEX_STEELIX 208
#define NATIONAL_DEX_SNUBBULL 209
#define NATIONAL_DEX_GRANBULL 210
#define NATIONAL_DEX_QWILFISH 211
#define NATIONAL_DEX_SCIZOR 212
#define NATIONAL_DEX_SHUCKLE 213
#define NATIONAL_DEX_HERACROSS 214
#define NATIONAL_DEX_SNEASEL 215
#define NATIONAL_DEX_TEDDIURSA 216
#define NATIONAL_DEX_URSARING 217
#define NATIONAL_DEX_SLUGMA 218
#define NATIONAL_DEX_MAGCARGO 219
#define NATIONAL_DEX_SWINUB 220
#define NATIONAL_DEX_PILOSWINE 221
#define NATIONAL_DEX_CORSOLA 222
#define NATIONAL_DEX_REMORAID 223
#define NATIONAL_DEX_OCTILLERY 224
#define NATIONAL_DEX_DELIBIRD 225
#define NATIONAL_DEX_MANTINE 226
#define NATIONAL_DEX_SKARMORY 227
#define NATIONAL_DEX_HOUNDOUR 228
#define NATIONAL_DEX_HOUNDOOM 229
#define NATIONAL_DEX_KINGDRA 230
#define NATIONAL_DEX_PHANPY 231
#define NATIONAL_DEX_DONPHAN 232
#define NATIONAL_DEX_PORYGON2 233
#define NATIONAL_DEX_STANTLER 234
#define NATIONAL_DEX_SMEARGLE 235
#define NATIONAL_DEX_TYROGUE 236
#define NATIONAL_DEX_HITMONTOP 237
#define NATIONAL_DEX_SMOOCHUM 238
#define NATIONAL_DEX_ELEKID 239
#define NATIONAL_DEX_MAGBY 240
#define NATIONAL_DEX_MILTANK 241
#define NATIONAL_DEX_BLISSEY 242
#define NATIONAL_DEX_RAIKOU 243
#define NATIONAL_DEX_ENTEI 244
#define NATIONAL_DEX_SUICUNE 245
#define NATIONAL_DEX_LARVITAR 246
#define NATIONAL_DEX_PUPITAR 247
#define NATIONAL_DEX_TYRANITAR 248
#define NATIONAL_DEX_LUGIA 249
#define NATIONAL_DEX_HO_OH 250
#define NATIONAL_DEX_CELEBI 251
#define NATIONAL_DEX_TREECKO 252
#define NATIONAL_DEX_GROVYLE 253
#define NATIONAL_DEX_SCEPTILE 254
#define NATIONAL_DEX_TORCHIC 255
#define NATIONAL_DEX_COMBUSKEN 256
#define NATIONAL_DEX_BLAZIKEN 257
#define NATIONAL_DEX_MUDKIP 258
#define NATIONAL_DEX_MARSHTOMP 259
#define NATIONAL_DEX_SWAMPERT 260
#define NATIONAL_DEX_POOCHYENA 261
#define NATIONAL_DEX_MIGHTYENA 262
#define NATIONAL_DEX_ZIGZAGOON 263
#define NATIONAL_DEX_LINOONE 264
#define NATIONAL_DEX_WURMPLE 265
#define NATIONAL_DEX_SILCOON 266
#define NATIONAL_DEX_BEAUTIFLY 267
#define NATIONAL_DEX_CASCOON 268
#define NATIONAL_DEX_DUSTOX 269
#define NATIONAL_DEX_LOTAD 270
#define NATIONAL_DEX_LOMBRE 271
#define NATIONAL_DEX_LUDICOLO 272
#define NATIONAL_DEX_SEEDOT 273
#define NATIONAL_DEX_NUZLEAF 274
#define NATIONAL_DEX_SHIFTRY 275
#define NATIONAL_DEX_TAILLOW 276
#define NATIONAL_DEX_SWELLOW 277
#define NATIONAL_DEX_WINGULL 278
#define NATIONAL_DEX_PELIPPER 279
#define NATIONAL_DEX_RALTS 280
#define NATIONAL_DEX_KIRLIA 281
#define NATIONAL_DEX_GARDEVOIR 282
#define NATIONAL_DEX_SURSKIT 283
#define NATIONAL_DEX_MASQUERAIN 284
#define NATIONAL_DEX_SHROOMISH 285
#define NATIONAL_DEX_BRELOOM 286
#define NATIONAL_DEX_SLAKOTH 287
#define NATIONAL_DEX_VIGOROTH 288
#define NATIONAL_DEX_SLAKING 289
#define NATIONAL_DEX_NINCADA 290
#define NATIONAL_DEX_NINJASK 291
#define NATIONAL_DEX_SHEDINJA 292
#define NATIONAL_DEX_WHISMUR 293
#define NATIONAL_DEX_LOUDRED 294
#define NATIONAL_DEX_EXPLOUD 295
#define NATIONAL_DEX_MAKUHITA 296
#define NATIONAL_DEX_HARIYAMA 297
#define NATIONAL_DEX_AZURILL 298
#define NATIONAL_DEX_NOSEPASS 299
#define NATIONAL_DEX_SKITTY 300
#define NATIONAL_DEX_DELCATTY 301
#define NATIONAL_DEX_SABLEYE 302
#define NATIONAL_DEX_MAWILE 303
#define NATIONAL_DEX_ARON 304
#define NATIONAL_DEX_LAIRON 305
#define NATIONAL_DEX_AGGRON 306
#define NATIONAL_DEX_MEDITITE 307
#define NATIONAL_DEX_MEDICHAM 308
#define NATIONAL_DEX_ELECTRIKE 309
#define NATIONAL_DEX_MANECTRIC 310
#define NATIONAL_DEX_PLUSLE 311
#define NATIONAL_DEX_MINUN 312
#define NATIONAL_DEX_VOLBEAT 313
#define NATIONAL_DEX_ILLUMISE 314
#define NATIONAL_DEX_ROSELIA 315
#define NATIONAL_DEX_GULPIN 316
#define NATIONAL_DEX_SWALOT 317
#define NATIONAL_DEX_CARVANHA 318
#define NATIONAL_DEX_SHARPEDO 319
#define NATIONAL_DEX_WAILMER 320
#define NATIONAL_DEX_WAILORD 321
#define NATIONAL_DEX_NUMEL 322
#define NATIONAL_DEX_CAMERUPT 323
#define NATIONAL_DEX_TORKOAL 324
#define NATIONAL_DEX_SPOINK 325
#define NATIONAL_DEX_GRUMPIG 326
#define NATIONAL_DEX_SPINDA 327
#define NATIONAL_DEX_TRAPINCH 328
#define NATIONAL_DEX_VIBRAVA 329
#define NATIONAL_DEX_FLYGON 330
#define NATIONAL_DEX_CACNEA 331
#define NATIONAL_DEX_CACTURNE 332
#define NATIONAL_DEX_SWABLU 333
#define NATIONAL_DEX_ALTARIA 334
#define NATIONAL_DEX_ZANGOOSE 335
#define NATIONAL_DEX_SEVIPER 336
#define NATIONAL_DEX_LUNATONE 337
#define NATIONAL_DEX_SOLROCK 338
#define NATIONAL_DEX_BARBOACH 339
#define NATIONAL_DEX_WHISCASH 340
#define NATIONAL_DEX_CORPHISH 341
#define NATIONAL_DEX_CRAWDAUNT 342
#define NATIONAL_DEX_BALTOY 343
#define NATIONAL_DEX_CLAYDOL 344
#define NATIONAL_DEX_LILEEP 345
#define NATIONAL_DEX_CRADILY 346
#define NATIONAL_DEX_ANORITH 347
#define NATIONAL_DEX_ARMALDO 348
#define NATIONAL_DEX_FEEBAS 349
#define NATIONAL_DEX_MILOTIC 350
#define NATIONAL_DEX_CASTFORM 351
#define NATIONAL_DEX_KECLEON 352
#define NATIONAL_DEX_SHUPPET 353
#define NATIONAL_DEX_BANETTE 354
#define NATIONAL_DEX_DUSKULL 355
#define NATIONAL_DEX_DUSCLOPS 356
#define NATIONAL_DEX_TROPIUS 357
#define NATIONAL_DEX_CHIMECHO 358
#define NATIONAL_DEX_ABSOL 359
#define NATIONAL_DEX_WYNAUT 360
#define NATIONAL_DEX_SNORUNT 361
#define NATIONAL_DEX_GLALIE 362
#define NATIONAL_DEX_SPHEAL 363
#define NATIONAL_DEX_SEALEO 364
#define NATIONAL_DEX_WALREIN 365
#define NATIONAL_DEX_CLAMPERL 366
#define NATIONAL_DEX_HUNTAIL 367
#define NATIONAL_DEX_GOREBYSS 368
#define NATIONAL_DEX_RELICANTH 369
#define NATIONAL_DEX_LUVDISC 370
#define NATIONAL_DEX_BAGON 371
#define NATIONAL_DEX_SHELGON 372
#define NATIONAL_DEX_SALAMENCE 373
#define NATIONAL_DEX_BELDUM 374
#define NATIONAL_DEX_METANG 375
#define NATIONAL_DEX_METAGROSS 376
#define NATIONAL_DEX_REGIROCK 377
#define NATIONAL_DEX_REGICE 378
#define NATIONAL_DEX_REGISTEEL 379
#define NATIONAL_DEX_LATIAS 380
#define NATIONAL_DEX_LATIOS 381
#define NATIONAL_DEX_KYOGRE 382
#define NATIONAL_DEX_GROUDON 383
#define NATIONAL_DEX_RAYQUAZA 384
#define NATIONAL_DEX_JIRACHI 385
#define NATIONAL_DEX_DEOXYS 386
#define NATIONAL_DEX_OLD_UNOWN_B 387
#define NATIONAL_DEX_OLD_UNOWN_C 388
#define NATIONAL_DEX_OLD_UNOWN_D 389
#define NATIONAL_DEX_OLD_UNOWN_E 390
#define NATIONAL_DEX_OLD_UNOWN_F 391
#define NATIONAL_DEX_OLD_UNOWN_G 392
#define NATIONAL_DEX_OLD_UNOWN_H 393
#define NATIONAL_DEX_OLD_UNOWN_I 394
#define NATIONAL_DEX_OLD_UNOWN_J 395
#define NATIONAL_DEX_OLD_UNOWN_K 396
#define NATIONAL_DEX_OLD_UNOWN_L 397
#define NATIONAL_DEX_OLD_UNOWN_M 398
#define NATIONAL_DEX_OLD_UNOWN_N 399
#define NATIONAL_DEX_OLD_UNOWN_O 400
#define NATIONAL_DEX_OLD_UNOWN_P 401
#define NATIONAL_DEX_OLD_UNOWN_Q 402
#define NATIONAL_DEX_OLD_UNOWN_R 403
#define NATIONAL_DEX_OLD_UNOWN_S 404
#define NATIONAL_DEX_OLD_UNOWN_T 405
#define NATIONAL_DEX_OLD_UNOWN_U 406
#define NATIONAL_DEX_OLD_UNOWN_V 407
#define NATIONAL_DEX_OLD_UNOWN_W 408
#define NATIONAL_DEX_OLD_UNOWN_X 409
#define NATIONAL_DEX_OLD_UNOWN_Y 410
#define NATIONAL_DEX_OLD_UNOWN_Z 411
// Hoenn Dex Index Defines
#define HOENN_DEX_NONE 0
#define HOENN_DEX_TREECKO 1
#define HOENN_DEX_GROVYLE 2
#define HOENN_DEX_SCEPTILE 3
#define HOENN_DEX_TORCHIC 4
#define HOENN_DEX_COMBUSKEN 5
#define HOENN_DEX_BLAZIKEN 6
#define HOENN_DEX_MUDKIP 7
#define HOENN_DEX_MARSHTOMP 8
#define HOENN_DEX_SWAMPERT 9
#define HOENN_DEX_POOCHYENA 10
#define HOENN_DEX_MIGHTYENA 11
#define HOENN_DEX_ZIGZAGOON 12
#define HOENN_DEX_LINOONE 13
#define HOENN_DEX_WURMPLE 14
#define HOENN_DEX_SILCOON 15
#define HOENN_DEX_BEAUTIFLY 16
#define HOENN_DEX_CASCOON 17
#define HOENN_DEX_DUSTOX 18
#define HOENN_DEX_LOTAD 19
#define HOENN_DEX_LOMBRE 20
#define HOENN_DEX_LUDICOLO 21
#define HOENN_DEX_SEEDOT 22
#define HOENN_DEX_NUZLEAF 23
#define HOENN_DEX_SHIFTRY 24
#define HOENN_DEX_TAILLOW 25
#define HOENN_DEX_SWELLOW 26
#define HOENN_DEX_WINGULL 27
#define HOENN_DEX_PELIPPER 28
#define HOENN_DEX_RALTS 29
#define HOENN_DEX_KIRLIA 30
#define HOENN_DEX_GARDEVOIR 31
#define HOENN_DEX_SURSKIT 32
#define HOENN_DEX_MASQUERAIN 33
#define HOENN_DEX_SHROOMISH 34
#define HOENN_DEX_BRELOOM 35
#define HOENN_DEX_SLAKOTH 36
#define HOENN_DEX_VIGOROTH 37
#define HOENN_DEX_SLAKING 38
#define HOENN_DEX_ABRA 39
#define HOENN_DEX_KADABRA 40
#define HOENN_DEX_ALAKAZAM 41
#define HOENN_DEX_NINCADA 42
#define HOENN_DEX_NINJASK 43
#define HOENN_DEX_SHEDINJA 44
#define HOENN_DEX_WHISMUR 45
#define HOENN_DEX_LOUDRED 46
#define HOENN_DEX_EXPLOUD 47
#define HOENN_DEX_MAKUHITA 48
#define HOENN_DEX_HARIYAMA 49
#define HOENN_DEX_GOLDEEN 50
#define HOENN_DEX_SEAKING 51
#define HOENN_DEX_MAGIKARP 52
#define HOENN_DEX_GYARADOS 53
#define HOENN_DEX_AZURILL 54
#define HOENN_DEX_MARILL 55
#define HOENN_DEX_AZUMARILL 56
#define HOENN_DEX_GEODUDE 57
#define HOENN_DEX_GRAVELER 58
#define HOENN_DEX_GOLEM 59
#define HOENN_DEX_NOSEPASS 60
#define HOENN_DEX_SKITTY 61
#define HOENN_DEX_DELCATTY 62
#define HOENN_DEX_ZUBAT 63
#define HOENN_DEX_GOLBAT 64
#define HOENN_DEX_CROBAT 65
#define HOENN_DEX_TENTACOOL 66
#define HOENN_DEX_TENTACRUEL 67
#define HOENN_DEX_SABLEYE 68
#define HOENN_DEX_MAWILE 69
#define HOENN_DEX_ARON 70
#define HOENN_DEX_LAIRON 71
#define HOENN_DEX_AGGRON 72
#define HOENN_DEX_MACHOP 73
#define HOENN_DEX_MACHOKE 74
#define HOENN_DEX_MACHAMP 75
#define HOENN_DEX_MEDITITE 76
#define HOENN_DEX_MEDICHAM 77
#define HOENN_DEX_ELECTRIKE 78
#define HOENN_DEX_MANECTRIC 79
#define HOENN_DEX_PLUSLE 80
#define HOENN_DEX_MINUN 81
#define HOENN_DEX_MAGNEMITE 82
#define HOENN_DEX_MAGNETON 83
#define HOENN_DEX_VOLTORB 84
#define HOENN_DEX_ELECTRODE 85
#define HOENN_DEX_VOLBEAT 86
#define HOENN_DEX_ILLUMISE 87
#define HOENN_DEX_ODDISH 88
#define HOENN_DEX_GLOOM 89
#define HOENN_DEX_VILEPLUME 90
#define HOENN_DEX_BELLOSSOM 91
#define HOENN_DEX_DODUO 92
#define HOENN_DEX_DODRIO 93
#define HOENN_DEX_ROSELIA 94
#define HOENN_DEX_GULPIN 95
#define HOENN_DEX_SWALOT 96
#define HOENN_DEX_CARVANHA 97
#define HOENN_DEX_SHARPEDO 98
#define HOENN_DEX_WAILMER 99
#define HOENN_DEX_WAILORD 100
#define HOENN_DEX_NUMEL 101
#define HOENN_DEX_CAMERUPT 102
#define HOENN_DEX_SLUGMA 103
#define HOENN_DEX_MAGCARGO 104
#define HOENN_DEX_TORKOAL 105
#define HOENN_DEX_GRIMER 106
#define HOENN_DEX_MUK 107
#define HOENN_DEX_KOFFING 108
#define HOENN_DEX_WEEZING 109
#define HOENN_DEX_SPOINK 110
#define HOENN_DEX_GRUMPIG 111
#define HOENN_DEX_SANDSHREW 112
#define HOENN_DEX_SANDSLASH 113
#define HOENN_DEX_SPINDA 114
#define HOENN_DEX_SKARMORY 115
#define HOENN_DEX_TRAPINCH 116
#define HOENN_DEX_VIBRAVA 117
#define HOENN_DEX_FLYGON 118
#define HOENN_DEX_CACNEA 119
#define HOENN_DEX_CACTURNE 120
#define HOENN_DEX_SWABLU 121
#define HOENN_DEX_ALTARIA 122
#define HOENN_DEX_ZANGOOSE 123
#define HOENN_DEX_SEVIPER 124
#define HOENN_DEX_LUNATONE 125
#define HOENN_DEX_SOLROCK 126
#define HOENN_DEX_BARBOACH 127
#define HOENN_DEX_WHISCASH 128
#define HOENN_DEX_CORPHISH 129
#define HOENN_DEX_CRAWDAUNT 130
#define HOENN_DEX_BALTOY 131
#define HOENN_DEX_CLAYDOL 132
#define HOENN_DEX_LILEEP 133
#define HOENN_DEX_CRADILY 134
#define HOENN_DEX_ANORITH 135
#define HOENN_DEX_ARMALDO 136
#define HOENN_DEX_IGGLYBUFF 137
#define HOENN_DEX_JIGGLYPUFF 138
#define HOENN_DEX_WIGGLYTUFF 139
#define HOENN_DEX_FEEBAS 140
#define HOENN_DEX_MILOTIC 141
#define HOENN_DEX_CASTFORM 142
#define HOENN_DEX_STARYU 143
#define HOENN_DEX_STARMIE 144
#define HOENN_DEX_KECLEON 145
#define HOENN_DEX_SHUPPET 146
#define HOENN_DEX_BANETTE 147
#define HOENN_DEX_DUSKULL 148
#define HOENN_DEX_DUSCLOPS 149
#define HOENN_DEX_TROPIUS 150
#define HOENN_DEX_CHIMECHO 151
#define HOENN_DEX_ABSOL 152
#define HOENN_DEX_VULPIX 153
#define HOENN_DEX_NINETALES 154
#define HOENN_DEX_PICHU 155
#define HOENN_DEX_PIKACHU 156
#define HOENN_DEX_RAICHU 157
#define HOENN_DEX_PSYDUCK 158
#define HOENN_DEX_GOLDUCK 159
#define HOENN_DEX_WYNAUT 160
#define HOENN_DEX_WOBBUFFET 161
#define HOENN_DEX_NATU 162
#define HOENN_DEX_XATU 163
#define HOENN_DEX_GIRAFARIG 164
#define HOENN_DEX_PHANPY 165
#define HOENN_DEX_DONPHAN 166
#define HOENN_DEX_PINSIR 167
#define HOENN_DEX_HERACROSS 168
#define HOENN_DEX_RHYHORN 169
#define HOENN_DEX_RHYDON 170
#define HOENN_DEX_SNORUNT 171
#define HOENN_DEX_GLALIE 172
#define HOENN_DEX_SPHEAL 173
#define HOENN_DEX_SEALEO 174
#define HOENN_DEX_WALREIN 175
#define HOENN_DEX_CLAMPERL 176
#define HOENN_DEX_HUNTAIL 177
#define HOENN_DEX_GOREBYSS 178
#define HOENN_DEX_RELICANTH 179
#define HOENN_DEX_CORSOLA 180
#define HOENN_DEX_CHINCHOU 181
#define HOENN_DEX_LANTURN 182
#define HOENN_DEX_LUVDISC 183
#define HOENN_DEX_HORSEA 184
#define HOENN_DEX_SEADRA 185
#define HOENN_DEX_KINGDRA 186
#define HOENN_DEX_BAGON 187
#define HOENN_DEX_SHELGON 188
#define HOENN_DEX_SALAMENCE 189
#define HOENN_DEX_BELDUM 190
#define HOENN_DEX_METANG 191
#define HOENN_DEX_METAGROSS 192
#define HOENN_DEX_REGIROCK 193
#define HOENN_DEX_REGICE 194
#define HOENN_DEX_REGISTEEL 195
#define HOENN_DEX_LATIAS 196
#define HOENN_DEX_LATIOS 197
#define HOENN_DEX_KYOGRE 198
#define HOENN_DEX_GROUDON 199
#define HOENN_DEX_RAYQUAZA 200
#define HOENN_DEX_JIRACHI 201
#define HOENN_DEX_DEOXYS 202
#define HOENN_DEX_BULBASAUR 203
#define HOENN_DEX_IVYSAUR 204
#define HOENN_DEX_VENUSAUR 205
#define HOENN_DEX_CHARMANDER 206
#define HOENN_DEX_CHARMELEON 207
#define HOENN_DEX_CHARIZARD 208
#define HOENN_DEX_SQUIRTLE 209
#define HOENN_DEX_WARTORTLE 210
#define HOENN_DEX_BLASTOISE 211
#define HOENN_DEX_CATERPIE 212
#define HOENN_DEX_METAPOD 213
#define HOENN_DEX_BUTTERFREE 214
#define HOENN_DEX_WEEDLE 215
#define HOENN_DEX_KAKUNA 216
#define HOENN_DEX_BEEDRILL 217
#define HOENN_DEX_PIDGEY 218
#define HOENN_DEX_PIDGEOTTO 219
#define HOENN_DEX_PIDGEOT 220
#define HOENN_DEX_RATTATA 221
#define HOENN_DEX_RATICATE 222
#define HOENN_DEX_SPEAROW 223
#define HOENN_DEX_FEAROW 224
#define HOENN_DEX_EKANS 225
#define HOENN_DEX_ARBOK 226
#define HOENN_DEX_NIDORAN_F 227
#define HOENN_DEX_NIDORINA 228
#define HOENN_DEX_NIDOQUEEN 229
#define HOENN_DEX_NIDORAN_M 230
#define HOENN_DEX_NIDORINO 231
#define HOENN_DEX_NIDOKING 232
#define HOENN_DEX_CLEFAIRY 233
#define HOENN_DEX_CLEFABLE 234
#define HOENN_DEX_PARAS 235
#define HOENN_DEX_PARASECT 236
#define HOENN_DEX_VENONAT 237
#define HOENN_DEX_VENOMOTH 238
#define HOENN_DEX_DIGLETT 239
#define HOENN_DEX_DUGTRIO 240
#define HOENN_DEX_MEOWTH 241
#define HOENN_DEX_PERSIAN 242
#define HOENN_DEX_MANKEY 243
#define HOENN_DEX_PRIMEAPE 244
#define HOENN_DEX_GROWLITHE 245
#define HOENN_DEX_ARCANINE 246
#define HOENN_DEX_POLIWAG 247
#define HOENN_DEX_POLIWHIRL 248
#define HOENN_DEX_POLIWRATH 249
#define HOENN_DEX_BELLSPROUT 250
#define HOENN_DEX_WEEPINBELL 251
#define HOENN_DEX_VICTREEBEL 252
#define HOENN_DEX_PONYTA 253
#define HOENN_DEX_RAPIDASH 254
#define HOENN_DEX_SLOWPOKE 255
#define HOENN_DEX_SLOWBRO 256
#define HOENN_DEX_FARFETCHD 257
#define HOENN_DEX_SEEL 258
#define HOENN_DEX_DEWGONG 259
#define HOENN_DEX_SHELLDER 260
#define HOENN_DEX_CLOYSTER 261
#define HOENN_DEX_GASTLY 262
#define HOENN_DEX_HAUNTER 263
#define HOENN_DEX_GENGAR 264
#define HOENN_DEX_ONIX 265
#define HOENN_DEX_DROWZEE 266
#define HOENN_DEX_HYPNO 267
#define HOENN_DEX_KRABBY 268
#define HOENN_DEX_KINGLER 269
#define HOENN_DEX_EXEGGCUTE 270
#define HOENN_DEX_EXEGGUTOR 271
#define HOENN_DEX_CUBONE 272
#define HOENN_DEX_MAROWAK 273
#define HOENN_DEX_HITMONLEE 274
#define HOENN_DEX_HITMONCHAN 275
#define HOENN_DEX_LICKITUNG 276
#define HOENN_DEX_CHANSEY 277
#define HOENN_DEX_TANGELA 278
#define HOENN_DEX_KANGASKHAN 279
#define HOENN_DEX_MR_MIME 280
#define HOENN_DEX_SCYTHER 281
#define HOENN_DEX_JYNX 282
#define HOENN_DEX_ELECTABUZZ 283
#define HOENN_DEX_MAGMAR 284
#define HOENN_DEX_TAUROS 285
#define HOENN_DEX_LAPRAS 286
#define HOENN_DEX_DITTO 287
#define HOENN_DEX_EEVEE 288
#define HOENN_DEX_VAPOREON 289
#define HOENN_DEX_JOLTEON 290
#define HOENN_DEX_FLAREON 291
#define HOENN_DEX_PORYGON 292
#define HOENN_DEX_OMANYTE 293
#define HOENN_DEX_OMASTAR 294
#define HOENN_DEX_KABUTO 295
#define HOENN_DEX_KABUTOPS 296
#define HOENN_DEX_AERODACTYL 297
#define HOENN_DEX_SNORLAX 298
#define HOENN_DEX_ARTICUNO 299
#define HOENN_DEX_ZAPDOS 300
#define HOENN_DEX_MOLTRES 301
#define HOENN_DEX_DRATINI 302
#define HOENN_DEX_DRAGONAIR 303
#define HOENN_DEX_DRAGONITE 304
#define HOENN_DEX_MEWTWO 305
#define HOENN_DEX_MEW 306
#define HOENN_DEX_CHIKORITA 307
#define HOENN_DEX_BAYLEEF 308
#define HOENN_DEX_MEGANIUM 309
#define HOENN_DEX_CYNDAQUIL 310
#define HOENN_DEX_QUILAVA 311
#define HOENN_DEX_TYPHLOSION 312
#define HOENN_DEX_TOTODILE 313
#define HOENN_DEX_CROCONAW 314
#define HOENN_DEX_FERALIGATR 315
#define HOENN_DEX_SENTRET 316
#define HOENN_DEX_FURRET 317
#define HOENN_DEX_HOOTHOOT 318
#define HOENN_DEX_NOCTOWL 319
#define HOENN_DEX_LEDYBA 320
#define HOENN_DEX_LEDIAN 321
#define HOENN_DEX_SPINARAK 322
#define HOENN_DEX_ARIADOS 323
#define HOENN_DEX_CLEFFA 324
#define HOENN_DEX_TOGEPI 325
#define HOENN_DEX_TOGETIC 326
#define HOENN_DEX_MAREEP 327
#define HOENN_DEX_FLAAFFY 328
#define HOENN_DEX_AMPHAROS 329
#define HOENN_DEX_SUDOWOODO 330
#define HOENN_DEX_POLITOED 331
#define HOENN_DEX_HOPPIP 332
#define HOENN_DEX_SKIPLOOM 333
#define HOENN_DEX_JUMPLUFF 334
#define HOENN_DEX_AIPOM 335
#define HOENN_DEX_SUNKERN 336
#define HOENN_DEX_SUNFLORA 337
#define HOENN_DEX_YANMA 338
#define HOENN_DEX_WOOPER 339
#define HOENN_DEX_QUAGSIRE 340
#define HOENN_DEX_ESPEON 341
#define HOENN_DEX_UMBREON 342
#define HOENN_DEX_MURKROW 343
#define HOENN_DEX_SLOWKING 344
#define HOENN_DEX_MISDREAVUS 345
#define HOENN_DEX_UNOWN 346
#define HOENN_DEX_PINECO 347
#define HOENN_DEX_FORRETRESS 348
#define HOENN_DEX_DUNSPARCE 349
#define HOENN_DEX_GLIGAR 350
#define HOENN_DEX_STEELIX 351
#define HOENN_DEX_SNUBBULL 352
#define HOENN_DEX_GRANBULL 353
#define HOENN_DEX_QWILFISH 354
#define HOENN_DEX_SCIZOR 355
#define HOENN_DEX_SHUCKLE 356
#define HOENN_DEX_SNEASEL 357
#define HOENN_DEX_TEDDIURSA 358
#define HOENN_DEX_URSARING 359
#define HOENN_DEX_SWINUB 360
#define HOENN_DEX_PILOSWINE 361
#define HOENN_DEX_REMORAID 362
#define HOENN_DEX_OCTILLERY 363
#define HOENN_DEX_DELIBIRD 364
#define HOENN_DEX_MANTINE 365
#define HOENN_DEX_HOUNDOUR 366
#define HOENN_DEX_HOUNDOOM 367
#define HOENN_DEX_PORYGON2 368
#define HOENN_DEX_STANTLER 369
#define HOENN_DEX_SMEARGLE 370
#define HOENN_DEX_TYROGUE 371
#define HOENN_DEX_HITMONTOP 372
#define HOENN_DEX_SMOOCHUM 373
#define HOENN_DEX_ELEKID 374
#define HOENN_DEX_MAGBY 375
#define HOENN_DEX_MILTANK 376
#define HOENN_DEX_BLISSEY 377
#define HOENN_DEX_RAIKOU 378
#define HOENN_DEX_ENTEI 379
#define HOENN_DEX_SUICUNE 380
#define HOENN_DEX_LARVITAR 381
#define HOENN_DEX_PUPITAR 382
#define HOENN_DEX_TYRANITAR 383
#define HOENN_DEX_LUGIA 384
#define HOENN_DEX_HO_OH 385
#define HOENN_DEX_CELEBI 386
#define HOENN_DEX_OLD_UNOWN_B 387
#define HOENN_DEX_OLD_UNOWN_C 388
#define HOENN_DEX_OLD_UNOWN_D 389
#define HOENN_DEX_OLD_UNOWN_E 390
#define HOENN_DEX_OLD_UNOWN_F 391
#define HOENN_DEX_OLD_UNOWN_G 392
#define HOENN_DEX_OLD_UNOWN_H 393
#define HOENN_DEX_OLD_UNOWN_I 394
#define HOENN_DEX_OLD_UNOWN_J 395
#define HOENN_DEX_OLD_UNOWN_K 396
#define HOENN_DEX_OLD_UNOWN_L 397
#define HOENN_DEX_OLD_UNOWN_M 398
#define HOENN_DEX_OLD_UNOWN_N 399
#define HOENN_DEX_OLD_UNOWN_O 400
#define HOENN_DEX_OLD_UNOWN_P 401
#define HOENN_DEX_OLD_UNOWN_Q 402
#define HOENN_DEX_OLD_UNOWN_R 403
#define HOENN_DEX_OLD_UNOWN_S 404
#define HOENN_DEX_OLD_UNOWN_T 405
#define HOENN_DEX_OLD_UNOWN_U 406
#define HOENN_DEX_OLD_UNOWN_V 407
#define HOENN_DEX_OLD_UNOWN_W 408
#define HOENN_DEX_OLD_UNOWN_X 409
#define HOENN_DEX_OLD_UNOWN_Y 410
#define HOENN_DEX_OLD_UNOWN_Z 411
#define SPECIES_UNOWN_B (NUM_SPECIES + 1)
#define SPECIES_UNOWN_C (NUM_SPECIES + 2)
#define SPECIES_UNOWN_D (NUM_SPECIES + 3)
#define SPECIES_UNOWN_E (NUM_SPECIES + 4)
#define SPECIES_UNOWN_F (NUM_SPECIES + 5)
#define SPECIES_UNOWN_G (NUM_SPECIES + 6)
#define SPECIES_UNOWN_H (NUM_SPECIES + 7)
#define SPECIES_UNOWN_I (NUM_SPECIES + 8)
#define SPECIES_UNOWN_J (NUM_SPECIES + 9)
#define SPECIES_UNOWN_K (NUM_SPECIES + 10)
#define SPECIES_UNOWN_L (NUM_SPECIES + 11)
#define SPECIES_UNOWN_M (NUM_SPECIES + 12)
#define SPECIES_UNOWN_N (NUM_SPECIES + 13)
#define SPECIES_UNOWN_O (NUM_SPECIES + 14)
#define SPECIES_UNOWN_P (NUM_SPECIES + 15)
#define SPECIES_UNOWN_Q (NUM_SPECIES + 16)
#define SPECIES_UNOWN_R (NUM_SPECIES + 17)
#define SPECIES_UNOWN_S (NUM_SPECIES + 18)
#define SPECIES_UNOWN_T (NUM_SPECIES + 19)
#define SPECIES_UNOWN_U (NUM_SPECIES + 20)
#define SPECIES_UNOWN_V (NUM_SPECIES + 21)
#define SPECIES_UNOWN_W (NUM_SPECIES + 22)
#define SPECIES_UNOWN_X (NUM_SPECIES + 23)
#define SPECIES_UNOWN_Y (NUM_SPECIES + 24)
#define SPECIES_UNOWN_Z (NUM_SPECIES + 25)
#define SPECIES_UNOWN_EMARK (NUM_SPECIES + 26)
#define SPECIES_UNOWN_QMARK (NUM_SPECIES + 27)
#endif // GUARD_CONSTANTS_SPECIES_H
+12 -2
View File
@@ -167,8 +167,18 @@
#define TRAINER_PIC_LADY 146
#define TRAINER_PIC_PAINTER 147
// Leftover from R/S
#define TRAINER_SECRET_BASE 1024
// The player back pics are assumed to alternate according to the gender values (MALE/FEMALE)
#define TRAINER_BACK_PIC_RED 0
#define TRAINER_BACK_PIC_LEAF 1
#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 2
#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 3
#define TRAINER_BACK_PIC_POKEDUDE 4
#define TRAINER_BACK_PIC_OLD_MAN 5
// Special Trainer Ids.
#define TRAINER_UNION_ROOM 0xC00
#define TRAINER_LINK_OPPONENT 0x800
#define TRAINER_SECRET_BASE 0x400
#define TRAINER_CLASS_NONE 0
#define TRAINER_CLASS_PKMN_TRAINER_UNUSED 1
+30 -28
View File
@@ -3,23 +3,25 @@
#define VARS_START 0x4000
// Temporary variables. Reset on map load.
#define VAR_TEMP_0 0x4000
#define VAR_TEMP_1 0x4001
#define VAR_TEMP_2 0x4002
#define VAR_TEMP_3 0x4003
#define VAR_TEMP_4 0x4004
#define VAR_TEMP_5 0x4005
#define VAR_TEMP_6 0x4006
#define VAR_TEMP_7 0x4007
#define VAR_TEMP_8 0x4008
#define VAR_TEMP_9 0x4009
#define VAR_TEMP_A 0x400A
#define VAR_TEMP_B 0x400B
#define VAR_TEMP_C 0x400C
#define VAR_TEMP_D 0x400D
#define VAR_TEMP_E 0x400E
#define VAR_TEMP_F 0x400F
// Temporary variables. Temp vars are cleared every time a map is loaded.
#define TEMP_VARS_START 0x4000
#define VAR_TEMP_0 (TEMP_VARS_START + 0x0)
#define VAR_TEMP_1 (TEMP_VARS_START + 0x1)
#define VAR_TEMP_2 (TEMP_VARS_START + 0x2)
#define VAR_TEMP_3 (TEMP_VARS_START + 0x3)
#define VAR_TEMP_4 (TEMP_VARS_START + 0x4)
#define VAR_TEMP_5 (TEMP_VARS_START + 0x5)
#define VAR_TEMP_6 (TEMP_VARS_START + 0x6)
#define VAR_TEMP_7 (TEMP_VARS_START + 0x7)
#define VAR_TEMP_8 (TEMP_VARS_START + 0x8)
#define VAR_TEMP_9 (TEMP_VARS_START + 0x9)
#define VAR_TEMP_A (TEMP_VARS_START + 0xA)
#define VAR_TEMP_B (TEMP_VARS_START + 0xB)
#define VAR_TEMP_C (TEMP_VARS_START + 0xC)
#define VAR_TEMP_D (TEMP_VARS_START + 0xD)
#define VAR_TEMP_E (TEMP_VARS_START + 0xE)
#define VAR_TEMP_F (TEMP_VARS_START + 0xF)
#define TEMP_VARS_END VAR_TEMP_F
// Object event graphics IDs which can be changed by
// script commands.
@@ -86,7 +88,7 @@
#define VAR_0x4029 0x4029
#define VAR_0x402A 0x402A
#define VAR_0x402B 0x402B
#define VAR_RESET_RTC_ENABLE 0x402C
#define VAR_0x402C 0x402C
#define VAR_0x402D 0x402D
#define VAR_0x402E 0x402E
@@ -94,7 +96,7 @@
#define VAR_ICE_STEP_COUNT 0x4030
#define VAR_STARTER_MON 0x4031 // 0: Bulbasaur, 1: Squirtle, 2: Charmander
#define VAR_0x4032 0x4032
#define VAR_RESET_RTC_ENABLE 0x4032
#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
#define VAR_0x4034 0x4034
@@ -105,7 +107,7 @@
#define VAR_FANCLUB_LOSE_FAN_TIMER 0x4039
#define VAR_ELEVATOR_FLOOR 0x403A
#define VAR_RESORT_GORGEOUS_REWARD 0x403B
#define VAR_0x403C 0x403C
#define VAR_0x403C 0x403C // Set to 0x0302, never read
#define VAR_HERACROSS_SIZE_RECORD 0x403D
#define VAR_DEOXYS_INTERACTION_NUM 0x403E
#define VAR_0x403F 0x403F
@@ -158,7 +160,7 @@
#define VAR_MAP_SCENE_PEWTER_CITY 0x406C
#define VAR_0x406D 0x406D
#define VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE 0x406E
#define VAR_CABLE_CLUB_STATE 0x406F
#define VAR_CABLE_CLUB_STATE 0x406F
#define VAR_MAP_SCENE_PALLET_TOWN_SIGN_LADY 0x4070
#define VAR_MAP_SCENE_CINNABAR_ISLAND 0x4071
#define VAR_0x4072 0x4072
@@ -230,13 +232,13 @@
#define VAR_0x40B3 0x40B3
#define VAR_PORTHOLE 0x40B4
#define VAR_EVENT_PICHU_SLOT 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_MYSTERY_GIFT_1 0x40B6
#define VAR_MYSTERY_GIFT_2 0x40B7
#define VAR_MYSTERY_GIFT_3 0x40B8
#define VAR_MYSTERY_GIFT_4 0x40B9
#define VAR_MYSTERY_GIFT_5 0x40BA
#define VAR_MYSTERY_GIFT_6 0x40BB
#define VAR_MYSTERY_GIFT_7 0x40BC
#define VAR_0x40BD 0x40BD
#define VAR_0x40BE 0x40BE
#define VAR_0x40BF 0x40BF
+18
View File
@@ -16,7 +16,25 @@
#define WEATHER_DROUGHT 12 // unused and broken in overworld
#define WEATHER_DOWNPOUR 13 // unused
#define WEATHER_UNDERWATER_BUBBLES 14 // unused
#define WEATHER_ABNORMAL 15 // unused
#define WEATHER_ROUTE119_CYCLE 20 // unused
#define WEATHER_ROUTE123_CYCLE 21 // unused
// These are used in maps' coord_weather_event entries.
// They are not a one-to-one mapping with the engine's
// internal weather constants above.
#define COORD_EVENT_WEATHER_SUNNY_CLOUDS 1
#define COORD_EVENT_WEATHER_SUNNY 2
#define COORD_EVENT_WEATHER_RAIN 3
#define COORD_EVENT_WEATHER_SNOW 4
#define COORD_EVENT_WEATHER_RAIN_THUNDERSTORM 5
#define COORD_EVENT_WEATHER_FOG_HORIZONTAL 6
#define COORD_EVENT_WEATHER_FOG_DIAGONAL 7
#define COORD_EVENT_WEATHER_VOLCANIC_ASH 8
#define COORD_EVENT_WEATHER_SANDSTORM 9
#define COORD_EVENT_WEATHER_SHADE 10
#define COORD_EVENT_WEATHER_DROUGHT 11
#define COORD_EVENT_WEATHER_ROUTE119_CYCLE 20
#define COORD_EVENT_WEATHER_ROUTE123_CYCLE 21
#endif // GUARD_CONSTANTS_WEATHER_H
+4
View File
@@ -14,6 +14,10 @@ struct MonCoords
u8 y_offset;
};
#define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8))
#define GET_MON_COORDS_WIDTH(size)((size >> 4) * 8)
#define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 8)
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13];
+2 -3
View File
@@ -19,9 +19,8 @@ struct DigitObjUtilTemplate
const struct SpritePalette * spritePal;
};
extern const u16 gUnknown_8479668[];
extern const u32 gUnknown_8479688[];
extern const u32 gUnknown_8479748[];
extern const u16 gMinigameDigits_Pal[];
extern const u32 gMinigameDigits_Gfx[];
bool32 DigitObjUtil_Init(u32 count);
void DigitObjUtil_Free(void);
+1 -1
View File
@@ -52,7 +52,7 @@ void ResetSpecialVars(void);
void ResetMysteryEventFlags(void);
void ResetMysteryEventVars(void);
bool32 IsNationalPokedexEnabled(void);
void sub_806E190(void);
void EnableNationalPokedex_RSE(void);
void ClearTempFieldEventData(void);
#endif // GUARD_EVENT_DATA_H
+52 -36
View File
@@ -1,9 +1,27 @@
#ifndef GUARD_EVENT_OBJECT_MOVEMENT_H
#define GUARD_EVENT_OBJECT_MOVEMENT_H
#include "global.h"
// Exported struct declarations
// Palette slots for overworld NPCs.
// The same standard set of palettes for overworld objects are normally always loaded at the same
// time while walking around the overworld. The only exceptions are the palettes for the player and
// the "special" NPC, which can be swapped out. This also means that e.g. two "special" NPCs
// with competing palettes cannot be properly loaded at the same time.
enum {
PALSLOT_PLAYER,
PALSLOT_PLAYER_REFLECTION,
PALSLOT_NPC_1,
PALSLOT_NPC_2,
PALSLOT_NPC_3,
PALSLOT_NPC_4,
PALSLOT_NPC_1_REFLECTION,
PALSLOT_NPC_2_REFLECTION,
PALSLOT_NPC_3_REFLECTION,
PALSLOT_NPC_4_REFLECTION,
PALSLOT_NPC_SPECIAL,
PALSLOT_NPC_SPECIAL_REFLECTION,
OBJ_PALSLOT_COUNT
// the remaining sprite palette slots (12-15) are used by field effects, the interface, etc.
};
enum SpinnerRunnerFollowPatterns
{
@@ -69,15 +87,14 @@ void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8);
void ReloadMapObjectsWithOffset(s16 x, s16 y);
void SpawnObjectEventsOnReturnToField(s16 x, s16 y);
void GetMapCoordsFromSpritePos(s16, s16, s16 *, s16 *);
u8 GetFaceDirectionAnimNum(u8);
void SetSpritePosToOffsetMapCoords(s16 *, s16 *, s16, s16);
void ObjectEventClearHeldMovement(struct ObjectEvent *);
void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
void SpawnObjectEventsInView(s16, s16);
u8 CreateVirtualObject(u8, u8, s16, s16, u8, u8);
u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8);
u8 CreateVirtualObject(u8 graphicsId, u8 virtualObjId, s16 x, s16 y, u8 elevation, u8 direction);
u8 CreateObjectGraphicsSprite(u16 graphicsId, SpriteCallback callback, s16 x, s16 y, u8 subpriority);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
int SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
@@ -99,17 +116,17 @@ void TryOverrideObjectEventTemplateCoords(u8, u8, u8);
void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *));
u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8);
u8 GetOppositeDirection(u8);
u8 GetWalkInPlaceFastMovementAction(u32);
u8 GetWalkInPlaceFasterMovementAction(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
u8 GetWalkInPlaceNormalMovementAction(u32);
u8 GetWalkInPlaceSlowMovementAction(u32);
u8 GetStepInPlaceDelay32AnimId(u32);
u8 GetWalkInPlaceFastMovementAction(u32);
u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct ObjectEvent *, struct Sprite *);
u8 GetObjectEventIdByPosition(u16 x, u16 y, u8 elevation);
void UpdateQuestLogObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *);
bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
void ShiftStillObjectEventCoords(struct ObjectEvent *);
void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8);
@@ -117,13 +134,13 @@ void SetTrainerMovementType(struct ObjectEvent *, u8);
u8 GetFishingDirectionAnimNum(u8 direction);
u8 GetFishingNoCatchDirectionAnimNum(u8 a0);
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
u8 CreateFameCheckerObject(u8 graphicsId, u8 localId, s16 x, s16 y);
void InitObjectEventPalettes(u8 mode);
bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent);
u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
u8 GetWalkNormalMovementAction(u32);
u8 GetWalkFastMovementAction(u32);
u8 GetWalkFastestMovementAction(u32);
u8 GetWalkFasterMovementAction(u32);
u8 GetWalkSlowerMovementAction(u32 direction);
u8 GetTrainerFacingDirectionMovementType(u8 direction);
u8 GetFaceDirectionMovementAction(u32);
@@ -138,7 +155,7 @@ bool8 UpdateWalkSlowerAnim(struct Sprite *sprite);
void SetJumpSpriteData(struct Sprite *, u8, u8, u8);
u8 DoJumpSpriteMovement(struct Sprite *);
u8 DoJumpSpecialSpriteMovement(struct Sprite *);
void TurnVirtualObject(u8, u8);
void TurnVirtualObject(u8 virtualObjId, u8 direction);
const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId);
u8 GetFirstInactiveObjectEventId(void);
u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction);
@@ -148,27 +165,25 @@ void FreezeObjectEvents(void);
bool8 FreezeObjectEvent(struct ObjectEvent *);
void UnfreezeObjectEvent(struct ObjectEvent *);
void FreezeObjectEventsExceptOne(u8 objEventId);
void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction);
void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible);
bool32 RfuUnionObjectIsInvisible(u8 objectEventId);
void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo);
bool32 RfuUnionObjectIsWarping(u8 objectEventId);
void SetVirtualObjectGraphics(u8 virtualObjId, u8 direction);
void SetVirtualObjectInvisibility(u8 virtualObjId, bool32 invisible);
bool32 IsVirtualObjectInvisible(u8 virtualObjId);
void SetVirtualObjectSpriteAnim(u8 virtualObjId, u8 animNo);
bool32 IsVirtualObjectAnimating(u8 virtualObjId);
u8 GetJumpSpecialMovementAction(u32 direction);
void EnableObjectGroundEffectsByXY(s16 x, s16 y);
void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y);
u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority);
u16 GetObjectPaletteTag(u8 paletteIndex);
void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2);
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible);
bool8 AreZCoordsCompatible(u8, u8);
u8 ZCoordToPriority(u8 z);
void ObjectEventUpdateZCoord(struct ObjectEvent *pObject);
void SetObjectSubpriorityByZCoord(u8 z, struct Sprite *sprite, u8 offset);
bool8 IsZCoordMismatchAt(u8, s16, s16);
void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible);
u8 ElevationToPriority(u8 elevation);
void ObjectEventUpdateElevation(struct ObjectEvent *pObject);
void SetObjectSubpriorityByElevation(u8 elevation, struct Sprite *sprite, u8 offset);
void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
u8 AddCameraObject(u8 trackedSpriteId);
void UpdateObjectEventsForCameraUpdate(s16 x, s16 y);
void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *);
void SpriteCB_VirtualObject(struct Sprite *);
void SetMovementDelay(struct Sprite *, s16);
bool8 WaitForMovementDelay(struct Sprite *);
void SetSpriteDataForNormalStep(struct Sprite *, u8, u8);
@@ -192,11 +207,11 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
extern const struct SpritePalette gSpritePalette_GeneralFieldEffect1;
extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[];
extern const struct OamData gObjectEventBaseOam_32x32;
extern const u16 gUnknown_8398648[];
extern const u16 gUnknown_8398688[];
extern const u16 gFieldEffectObjectPic_CutGrass[];
extern const u16 gFieldEffectPal_CutGrass[];
extern const u8 gReflectionEffectPaletteMap[];
u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z);
u8 sub_8063FDC(u32 direction);
u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction);
u8 GetGlideMovementAction(u32 direction);
u8 GetRideWaterCurrentMovementAction(u32 direction);
u8 GetPlayerRunMovementAction(u32 direction);
u8 GetPlayerRunSlowMovementAction(u32 direction);
@@ -206,12 +221,13 @@ u8 GetAcroWheelieFaceDirectionMovementAction(u32 direction);
u8 GetAcroPopWheelieFaceDirectionMovementAction(u32 direction);
u8 GetAcroEndWheelieFaceDirectionMovementAction(u32 direction);
u8 GetAcroWheelieHopFaceDirectionMovementAction(u32 direction);
u8 GetAcroWheelieHopDirectionMovementAction(u32 direction);
u8 GetAcroWheelieJumpDirectionMovementAction(u32 direction);
u8 GetAcroWheelieHopMovementAction(u32 direction);
u8 GetAcroPopWheelieMoveMovementAction(u32 direction);
u8 GetAcroWheelieJumpMovementAction(u32 direction);
u8 GetJumpInPlaceTurnAroundMovementAction(u32 direction);
u8 GetAcroWheelieInPlaceDirectionMovementAction(u32 direction);
u8 GetAcroPopWheelieMoveDirectionMovementAction(u32 direction);
u8 GetAcroWheelieMoveDirectionMovementAction(u32 direction);
u8 GetAcroWheelieInPlaceMovementAction(u32 direction);
u8 GetAcroPopWheelieMoveMovementAction(u32 direction);
u8 GetAcroWheelieMoveMovementAction(u32 direction);
u8 GetJumpSpecialWithEffectMovementAction(u32 direction);
u8 GetFishingBiteDirectionAnimNum(u8 direction);
void TrySpawnObjectEvents(s16 cameraX, s16 cameraY);
+1 -1
View File
@@ -1257,7 +1257,7 @@ extern const u8 EventScript_CantUseWaterfall[];
extern const u8 EventScript_VsSeekerChargingDone[];
extern const u8 EventScript_FieldPoison[];
extern const u8 EventScript_EggHatch[];
extern const u8 EventScript_1C1361[];
extern const u8 EventScript_DoFallWarp[];
// overworld
+7
View File
@@ -3,6 +3,13 @@
#include "global.h"
enum {
FIELD_MESSAGE_BOX_HIDDEN,
FIELD_MESSAGE_BOX_UNUSED,
FIELD_MESSAGE_BOX_NORMAL,
FIELD_MESSAGE_BOX_AUTO_SCROLL,
};
bool8 ShowFieldMessage(const u8 *message);
bool8 ShowFieldAutoScrollMessage(const u8 *message);
void HideFieldMessageBox(void);
+7 -7
View File
@@ -26,7 +26,7 @@ void SetPlayerAvatarTransitionFlags(u16 flags);
bool8 IsPlayerFacingSurfableFishableWater(void);
void StartFishing(u8 secondaryId);
u8 GetPlayerAvatarObjectId(void);
u8 PlayerGetZCoord(void);
u8 PlayerGetElevation(void);
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
void StartPlayerAvatarSummonMonForFieldMoveAnim(void);
void SetPlayerInvisibility(bool8);
@@ -41,13 +41,13 @@ void StartPlayerAvatarVsSeekerAnim(void);
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u8 GetPlayerAvatarGraphicsIdByStateIdAndGender(u8 state, u8 gender);
u8 CheckForObjectEventCollision(struct ObjectEvent *objectEvent, s16 x, s16 y, u8 direction, u8 metatileBehavior);
void PlayerGoSlowest(u8 direction);
void PlayerGoSlow(u8 direction);
void PlayerGoSpeed1(u8 direction);
void PlayerGoSpeed2(u8 direction);
void sub_805C134(u8 direction);
void PlayerWalkSlower(u8 direction);
void PlayerWalkSlow(u8 direction);
void PlayerWalkNormal(u8 direction);
void PlayerWalkFast(u8 direction);
void PlayerGlide(u8 direction);
void PlayerRideWaterCurrent(u8 direction);
void PlayerGoSpeed4(u8 direction);
void PlayerWalkFaster(u8 direction);
void PlayerRun(u8 direction);
void PlayerRunSlow(u8 direction);
void PlayerOnBikeCollide(u8 direction);
+1 -2
View File
@@ -16,8 +16,7 @@ s32 CountDigits(s32 number);
void TV_PrintIntToStringVar(u8 varidx, s32 number);
u16 GetStarterSpecies(void);
void StopPokemonLeagueLightingEffectTask(void);
void nullsub_60(void);
void nullsub_61(void);
void FieldCB_ShowPortholeView(void);
u8 ContextNpcGetTextColor(void);
void SetPCBoxToSendMon(u8);
u16 GetPCBoxToSendMon(void);
+20 -6
View File
@@ -4,6 +4,20 @@
#include "global.h"
#include "constants/field_weather.h"
#define TAG_WEATHER_START 0x1200
enum {
GFXTAG_CLOUD = TAG_WEATHER_START,
GFXTAG_FOG_H,
GFXTAG_ASH,
GFXTAG_FOG_D,
GFXTAG_SANDSTORM,
GFXTAG_BUBBLE,
GFXTAG_RAIN,
};
enum {
PALTAG_WEATHER = TAG_WEATHER_START,
};
struct Weather
{
union
@@ -54,14 +68,14 @@ struct Weather
u8 rainStrength;
bool8 cloudSpritesCreated;
u16 snowflakeVisibleCounter;
u16 unknown_6E2;
u16 snowflakeTimer;
u8 snowflakeSpriteCount;
u8 targetSnowflakeSpriteCount;
u16 unknown_6E6;
u16 thunderDelay;
u16 thunderCounter;
u8 unknown_6EA;
u8 unknown_6EB;
u8 unknown_6EC;
bool8 thunderAllowEnd;
bool8 thunderSkipShort;
u8 thunderShortRetries;
bool8 thunderTriggered;
u16 fogHScrollPosX;
u16 fogHScrollCounter;
@@ -70,7 +84,7 @@ struct Weather
u8 lightenedFogSpritePalsCount;
bool8 fogHSpritesCreated;
u16 ashBaseSpritesX;
u16 unknown_6FE;
u16 ashUnused;
bool8 ashSpritesCreated;
u32 sandstormXOffset;
u32 sandstormYOffset;
+3 -3
View File
@@ -28,14 +28,14 @@ u32 MapGridGetMetatileBehaviorAt(s16, s16);
u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y);
void MapGridSetMetatileIdAt(s32, s32, u16);
void MapGridSetMetatileEntryAt(s32, s32, u16);
u8 MapGridGetZCoordAt(s32 x, s32 y);
u8 MapGridGetElevationAt(s32 x, s32 y);
void GetCameraCoords(u16 *, u16 *);
bool8 MapGridIsImpassableAt(s32, s32);
bool8 MapGridGetCollisionAt(s32, s32);
s32 GetMapBorderIdAt(s32, s32);
bool32 CanCameraMoveInDirection(s32);
const struct MapHeader * GetMapHeaderFromConnection(struct MapConnection * connection);
struct MapConnection * GetMapConnectionAtPos(s16 x, s16 y);
void Fieldmap_ApplyGlobalTintToPaletteSlot(u8 slot, u8 count);
void ApplyGlobalTintToPaletteSlot(u8 slot, u8 count);
void SaveMapView(void);
u32 ExtractMetatileAttribute(u32 attributes, u8 attributeType);
u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attributeType);
-14
View File
@@ -79,20 +79,6 @@
#define TOTAL_OBJ_TILE_COUNT 1024
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
#define RGB2(r, g, b) (((b) << 10) | ((g) << 5) | (r))
#define _RGB(r, g, b) ((((b) & 0x1F) << 10) + (((g) & 0x1F) << 5) + ((r) & 0x1F))
#define RGB_BLACK RGB(0, 0, 0)
#define RGB_WHITE RGB(31, 31, 31)
#define RGB_RED RGB(31, 0, 0)
#define RGB_GREEN RGB(0, 31, 0)
#define RGB_BLUE RGB(0, 0, 31)
#define RGB_YELLOW RGB(31, 31, 0)
#define RGB_MAGENTA RGB(31, 0, 31)
#define RGB_CYAN RGB(0, 31, 31)
#define RGB_WHITEALPHA (RGB_WHITE | 0x8000)
// Some functions are strictly inline asm
#define NAKED __attribute__((naked))
#define UNUSED __attribute__((unused))
+8 -1
View File
@@ -552,6 +552,7 @@
#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN0_ALL (WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
@@ -559,6 +560,7 @@
#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)
#define WININ_WIN1_ALL (WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR)
#define WINOUT_WIN01_BG0 (1 << 0)
#define WINOUT_WIN01_BG1 (1 << 1)
@@ -567,6 +569,7 @@
#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3)
#define WINOUT_WIN01_OBJ (1 << 4)
#define WINOUT_WIN01_CLR (1 << 5)
#define WINOUT_WIN01_ALL (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR)
#define WINOUT_WINOBJ_BG0 (1 << 8)
#define WINOUT_WINOBJ_BG1 (1 << 9)
#define WINOUT_WINOBJ_BG2 (1 << 10)
@@ -574,6 +577,7 @@
#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3)
#define WINOUT_WINOBJ_OBJ (1 << 12)
#define WINOUT_WINOBJ_CLR (1 << 13)
#define WINOUT_WINOBJ_ALL (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR)
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#define WIN_RANGE2(a, b) ((b) | ((a) << 8))
@@ -584,8 +588,10 @@
#define BLDCNT_TGT1_BG1 (1 << 1)
#define BLDCNT_TGT1_BG2 (1 << 2)
#define BLDCNT_TGT1_BG3 (1 << 3)
#define BLDCNT_TGT1_BG_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3)
#define BLDCNT_TGT1_OBJ (1 << 4)
#define BLDCNT_TGT1_BD (1 << 5)
#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG_ALL | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD)
// Bits 6-7 select the special effect
#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
@@ -596,9 +602,10 @@
#define BLDCNT_TGT2_BG1 (1 << 9)
#define BLDCNT_TGT2_BG2 (1 << 10)
#define BLDCNT_TGT2_BG3 (1 << 11)
#define BLDCNT_TGT2_BG_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3)
#define BLDCNT_TGT2_OBJ (1 << 12)
#define BLDCNT_TGT2_BD (1 << 13)
#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG_ALL | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
// BLDALPHA
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
+44 -36
View File
@@ -1,13 +1,23 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
#define METATILE_BEHAVIOR_MASK 0x00FF
#define METATILE_COLLISION_MASK 0x0C00
#define METATILE_ID_MASK 0x03FF
#define METATILE_ID_UNDEFINED 0x03FF
#define METATILE_ELEVATION_SHIFT 12
#define METATILE_COLLISION_SHIFT 10
#define METATILE_ELEVATION_MASK 0xF000
// Masks/shifts for blocks in the map grid
// Map grid blocks consist of a 10 bit metatile id, a 2 bit collision value, and a 4 bit elevation value
// This is the data stored in each data/layouts/*/map.bin file
#define MAPGRID_METATILE_ID_MASK 0x03FF // Bits 0-9
#define MAPGRID_COLLISION_MASK 0x0C00 // Bits 10-11
#define MAPGRID_ELEVATION_MASK 0xF000 // Bits 12-15
#define MAPGRID_COLLISION_SHIFT 10
#define MAPGRID_ELEVATION_SHIFT 12
// An undefined map grid block has all metatile id bits set and nothing else
#define MAPGRID_UNDEFINED MAPGRID_METATILE_ID_MASK
enum {
METATILE_LAYER_TYPE_NORMAL, // Metatile uses middle and top bg layers
METATILE_LAYER_TYPE_COVERED, // Metatile uses bottom and middle bg layers
METATILE_LAYER_TYPE_SPLIT, // Metatile uses bottom and top bg layers
};
#define METATILE_ID(tileset, name) (METATILE_##tileset##_##name)
@@ -22,6 +32,7 @@ enum
METATILE_ATTRIBUTE_LAYER_TYPE,
METATILE_ATTRIBUTE_7,
METATILE_ATTRIBUTE_COUNT,
METATILE_ATTRIBUTES_ALL = 255 // Special id to get the full attributes value
};
enum
@@ -39,29 +50,17 @@ enum
TILE_TERRAIN_WATERFALL,
};
enum
{
CONNECTION_INVALID = -1,
CONNECTION_NONE,
CONNECTION_SOUTH,
CONNECTION_NORTH,
CONNECTION_WEST,
CONNECTION_EAST,
CONNECTION_DIVE,
CONNECTION_EMERGE
};
typedef void (*TilesetCB)(void);
struct Tileset
{
/*0x00*/ bool8 isCompressed;
/*0x01*/ bool8 isSecondary;
/*0x04*/ void *tiles;
/*0x08*/ void *palettes;
/*0x0c*/ void *metatiles;
/*0x04*/ const u32 *tiles;
/*0x08*/ const u16 (*palettes)[16];
/*0x0c*/ const u16 *metatiles;
/*0x10*/ TilesetCB callback;
/*0x14*/ u32 *metatileAttributes;
/*0x14*/ const u32 *metatileAttributes;
};
struct MapLayout
@@ -85,19 +84,28 @@ struct BackupMapLayout
struct ObjectEventTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u8 graphicsId;
/*0x02*/ u8 inConnection;
/*0x04*/ s16 x;
/*0x06*/ s16 y;
/*0x08*/ u8 elevation;
/*0x09*/ u8 movementType;
/*0x0A*/ u16 movementRangeX:4;
u16 movementRangeY:4;
/*0x0C*/ u16 trainerType;
/*0x0E*/ u16 trainerRange_berryTreeId;
/*0x10*/ const u8 *script;
/*0x14*/ u16 flagId;
u8 localId;
u8 graphicsId;
u8 kind; // The "kind" field determines how to access objUnion union below.
s16 x, y;
union {
struct {
u8 elevation;
u8 movementType;
u16 movementRangeX:4;
u16 movementRangeY:4;
u16 trainerType;
u16 trainerRange_berryTreeId;
} normal;
struct {
u8 targetLocalId;
u8 padding[3];
u16 targetMapNum;
u16 targetMapGroup;
} clone;
} objUnion;
const u8 *script;
u16 flagId;
}; /*size = 0x18*/
struct WarpEvent
+5 -3
View File
@@ -8,7 +8,9 @@
#include "constants/flags.h"
#include "constants/vars.h"
#include "constants/species.h"
#include "constants/pokedex.h"
#include "constants/easy_chat.h"
#include "constants/rgb.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
@@ -181,8 +183,8 @@ struct Pokedex
{
/*0x00*/ u8 order;
/*0x01*/ u8 mode;
/*0x02*/ u8 nationalMagic; // must equal 0xDA in order to have National mode
/*0x03*/ u8 unknown2; // set to 0xB9 when national dex is first enabled
/*0x02*/ u8 unused; // set to 0xDA, never read
/*0x03*/ u8 nationalMagic; // set to 0xB9 when national dex is first enabled
/*0x04*/ u32 unownPersonality; // set when you first see Unown
/*0x08*/ u32 spindaPersonality; // set when you first see Spinda
/*0x0C*/ u32 unknown3;
@@ -813,7 +815,7 @@ struct MapPosition
{
s16 x;
s16 y;
s8 height;
s8 elevation;
};
extern struct SaveBlock1* gSaveBlock1Ptr;
+20 -16
View File
@@ -2875,7 +2875,7 @@ extern const u32 gTMCase_TMSpriteGfx[];
extern const u32 gUnknown_8E84F20[];
extern const u32 gUnknown_8E85068[];
extern const u8 gUnknown_8E99118[];
extern const u16 gTMCaseMainWindowPalette[];
extern const u16 gStandardMenuPalette[];
// egg_hatch
extern const u32 gBattleTextboxTiles[];
@@ -2916,11 +2916,11 @@ extern const u32 gItemPcBgPals[];
extern const u8 gItemPcTilemap[];
// item_menu_icons
extern const u32 gUnknown_8E8362C[];
extern const u32 gUnknown_8E83DBC[];
extern const u32 gUnknown_8E84560[];
extern const u32 gFile_graphics_interface_bag_swap_sheet[];
extern const u32 gFile_graphics_interface_bag_swap_palette[];
extern const u32 gBagMale_Gfx[];
extern const u32 gBagFemale_Gfx[];
extern const u32 gBag_Pal[];
extern const u32 gSwapLine_Gfx[];
extern const u32 gSwapLine_Pal[];
extern const u8 gFile_graphics_items_icons_question_mark_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[];
extern const u8 gFile_graphics_items_icons_master_ball_sheet[];
@@ -3687,6 +3687,10 @@ extern const u32 gBattleStatMask8_Pal[];
extern const u32 gBattleStatMask1_Tilemap[];
extern const u32 gBattleStatMask2_Tilemap[];
extern const u32 gSmokescreenImpactTiles[];
extern const u32 gSmokescreenImpactPalette[];
extern const u32 gEnemyMonShadow_Gfx[];
// battle anim particle gfx
extern const u32 gBattleAnimSpriteGfx_Bone[];
extern const u32 gBattleAnimSpriteGfx_Spark[];
@@ -3908,7 +3912,7 @@ extern const u32 gBattleAnimSpriteGfx_Pokeball[];
extern const u32 gBattleAnimSpriteGfx_Spotlight[];
extern const u32 gBattleAnimSpriteGfx_LetterZ[];
extern const u32 gBattleAnimSpriteGfx_RapidSpin[];
extern const u32 gBattleAnimSpriteGfx_TriForceTriangle[];
extern const u32 gBattleAnimSpriteGfx_TriAttackTriangle[];
extern const u32 gBattleAnimSpriteGfx_WispOrb[];
extern const u32 gBattleAnimSpriteGfx_WispFire[];
extern const u32 gBattleAnimSpriteGfx_GoldStars[];
@@ -4161,7 +4165,7 @@ extern const u32 gBattleAnimSpritePal_JaggedMusicNote[];
extern const u32 gBattleAnimSpritePal_Pokeball[];
extern const u32 gBattleAnimSpritePal_LetterZ[];
extern const u32 gBattleAnimSpritePal_RapidSpin[];
extern const u32 gBattleAnimSpritePal_TriForceTriangle[];
extern const u32 gBattleAnimSpritePal_TriAttackTriangle[];
extern const u32 gBattleAnimSpritePal_WispOrb[];
extern const u32 gBattleAnimSpritePal_GoldStars[];
extern const u32 gBattleAnimSpritePal_EclipsingOrb[];
@@ -4215,8 +4219,8 @@ extern const u32 gBattleAnimSpritePal_WhipHit[];
extern const u32 gBattleAnimSpritePal_BlueRing2[];
// battle anim task
extern const u32 gUnknown_D2EC24_Gfx[];
extern const u32 gUnknown_D2EC24_Tilemap[];
extern const u32 gUnusedLevelupAnimationGfx[];
extern const u32 gUnusedLevelupAnimationTilemap[];
extern const u32 gCureBubblesGfx[];
extern const u32 gCureBubblesPal[];
extern const u32 gCureBubblesTilemap[];
@@ -4848,7 +4852,7 @@ extern const u32 gBuyMenuFrame_TmHmTilemap[];
extern const u32 gBuyMenuFrame_Pal[];
// battle_message
extern const u16 gUnknown_8D2FBB4[];
extern const u16 gPPTextPalette[];
// trainer card
extern const u16 gKantoTrainerCard_Pal[];
@@ -4924,11 +4928,11 @@ extern const u16 gNamingScreenInputArrow_Gfx[];
extern const u16 gNamingScreenUnderscore_Gfx[];
// pokemon_storage_system
extern const u32 gPSSMenu_Gfx[];
extern const u32 gUnknown_8E9CAEC[];
extern const u16 gPSSMenu_Pal[];
extern const u16 gUnknown_8E9C3F8[];
extern const u16 gUnknown_8E9C418[];
extern const u32 gPokeStorageMenu_Gfx[];
extern const u32 gPokeStoragePartyMenu_Tilemap[];
extern const u16 gPokeStoragePartyMenu_Pal[];
extern const u16 gPokeStorageInterface_Pal[];
extern const u16 gPokeStorageInterface_NoDisplayMon_Pal[];
// pokedex_screen
extern const u16 gDexScreen_TopMenuIconPals_AtoZ[];
+3 -1
View File
@@ -1,10 +1,12 @@
#ifndef GUARD_HELP_MESSAGE_H
#define GUARD_HELP_MESSAGE_H
extern const u8 gHelpMessageWindow_Gfx[];
void DestroyHelpMessageWindow(u8 a0);
u8 CreateHelpMessageWindow(void);
void PrintTextOnHelpMessageWindow(const u8 * text, u8 mode);
void MapNamePopupWindowIdSetDummy(void);
void sub_8112F18(u8 windowId);
void DrawHelpMessageWindowTilesById(u8 windowId);
#endif //GUARD_HELP_MESSAGE_H
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef GUARD_INTRO_H
#define GUARD_INTRO_H
void CB2_CopyrightScreen(void);
void c2_copyright_1(void);
void CB2_InitCopyrightScreenAfterTitleScreen(void);
void CB2_InitCopyrightScreenAfterBootup(void);
#endif //GUARD_INTRO_H
+11 -2
View File
@@ -16,11 +16,11 @@ struct Item
u8 importance;
u8 exitsBagOnUse;
u8 pocket;
u8 type;
u8 type; // unused for balls
ItemUseFunc fieldUseFunc;
u8 battleUsage;
ItemUseFunc battleUseFunc;
u8 secondaryId;
u8 secondaryId; // only used for fishing rods
};
struct BagPocket
@@ -29,6 +29,15 @@ struct BagPocket
u8 capacity;
};
// Item type IDs (used to determine the exit callback)
enum {
ITEM_TYPE_MAIL,
ITEM_TYPE_PARTY_MENU,
ITEM_TYPE_FIELD,
ITEM_TYPE_UNUSED, // Used for Pokeblock case in RSE
ITEM_TYPE_BAG_MENU, // No exit callback, stays in bag menu
};
extern const struct Item gItems[];
extern struct BagPocket gBagPockets[];
+8 -8
View File
@@ -3,26 +3,26 @@
#include "global.h"
extern const struct CompressedSpriteSheet gSpriteSheet_Backpack;
extern const struct CompressedSpriteSheet gSpriteSheet_Satchel;
extern const struct CompressedSpritePalette gSpritePalette_BagOrSatchel;
extern const struct CompressedSpriteSheet gSpriteSheet_BagMale;
extern const struct CompressedSpriteSheet gSpriteSheet_BagFemale;
extern const struct CompressedSpritePalette gSpritePalette_Bag;
extern const struct CompressedSpriteSheet gBagSwapSpriteSheet;
extern const struct CompressedSpritePalette gBagSwapSpritePalette;
void ResetItemMenuIconState(void);
void ItemMenuIcons_CreateInsertIndicatorBarHidden(void);
void CreateSwapLine(void);
void DestroyItemMenuIcon(bool8 a0);
void CreateItemMenuIcon(u16 itemId, bool8 a0);
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId);
u8 AddItemIconObjectWithCustomObjectTemplate(const struct SpriteTemplate * origTemplate, u16 tilesTag, u16 paletteTag, u16 itemId);
void sub_80989A0(u16 itemId, u8 idx);
void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
void CreateBerryPouchItemIcon(u16 itemId, u8 idx);
void UpdateSwapLinePos(s16 x, u16 y);
void SetSwapLineInvisibility(bool8 invisible);
void SetBagVisualPocketId(u8);
void ShakeBagSprite(void);
const void *GetItemIconGfxPtr(u16 itemId, u8 ptrId);
void CreateBagOrSatchelSprite(u8 animNum);
void CreateBagSprite(u8 animNum);
#endif // GUARD_ITEM_MENU_ICONS
+7 -7
View File
@@ -6,9 +6,9 @@
void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8);
void ItemUse_SetQuestLogEvent(u8, struct Pokemon *, u16, u16);
void FieldUseFunc_OrangeMail(u8 taskId);
void FieldUseFunc_MachBike(u8 taskId);
void FieldUseFunc_OldRod(u8 taskId);
void FieldUseFunc_Mail(u8 taskId);
void FieldUseFunc_Bike(u8 taskId);
void FieldUseFunc_Rod(u8 taskId);
void FieldUseFunc_CoinCase(u8 taskId);
void FieldUseFunc_PowderJar(u8 taskId);
void FieldUseFunc_PokeFlute(u8 taskId);
@@ -22,14 +22,14 @@ void FieldUseFunc_TmCase(u8 taskId);
void FieldUseFunc_BerryPouch(u8 taskId);
void BattleUseFunc_BerryPouch(u8 taskId);
void FieldUseFunc_TeachyTv(u8 taskId);
void FieldUseFunc_SuperRepel(u8 taskId);
void FieldUseFunc_BlackFlute(u8 taskId);
void FieldUseFunc_Repel(u8 taskId);
void FieldUseFunc_BlackWhiteFlute(u8 taskId);
void FieldUseFunc_TownMap(u8 taskId);
void FieldUseFunc_FameChecker(u8 taskId);
void FieldUseFunc_VsSeeker(u8 taskId);
void BattleUseFunc_PokeBallEtc(u8 taskId);
void BattleUseFunc_PokeFlute(u8 taskId);
void BattleUseFunc_GuardSpec(u8 taskId);
void BattleUseFunc_StatBooster(u8 taskId);
void BattleUseFunc_Medicine(u8 taskId);
void BattleUseFunc_Ether(u8 taskId);
void BattleUseFunc_PokeDoll(u8 taskId);
@@ -38,7 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId);
void ItemUseOutOfBattle_EnigmaBerry(u8 taskId);
void ItemUseInBattle_EnigmaBerry(u8 taskId);
void ItemUseOutOfBattle_Itemfinder(u8 taskId);
void sub_80A1C44(u8 taskId);
void Task_UseDigEscapeRopeOnField(u8 taskId);
u8 CanUseEscapeRopeOnCurrMap(void);
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
+4 -4
View File
@@ -32,10 +32,10 @@ extern const u8 gText_UnionRoomChatKeyboard_Emoji8[];
extern const u8 gText_UnionRoomChatKeyboard_Emoji9[];
extern const u8 gText_UnionRoomChatKeyboard_Emoji10[];
extern const u8 gUnknown_847A8D8[];
extern const u8 gUnknown_847A8FA[];
extern const u8 gUnknown_847A913[];
extern const u8 gUnknown_847A934[];
extern const u8 gText_EasyChatKeyboard_ABCDEFothers[];
extern const u8 gText_EasyChatKeyboard_GHIJKL[];
extern const u8 gText_EasyChatKeyboard_MNOPQRS[];
extern const u8 gText_EasyChatKeyboard_TUVWXYZ[];
extern const u8 gText_NamingScreenKeyboard_abcdef[];
extern const u8 gText_NamingScreenKeyboard_ghijkl[];
+22 -15
View File
@@ -68,7 +68,7 @@
#define LINKTYPE_TRADE 0x1111 // trade
#define LINKTYPE_0x1122 0x1122 // trade
#define LINKTYPE_0x1133 0x1133 // trade
#define LINKTYPE_TRADE_SETUP 0x1133
#define LINKTYPE_0x1144 0x1144 // trade
#define LINKTYPE_BATTLE 0x2211
#define LINKTYPE_0x2222 0x2222 // unused battle?
@@ -78,11 +78,19 @@
#define LINKTYPE_BATTLE_TOWER_50 0x2266
#define LINKTYPE_BATTLE_TOWER_OPEN 0x2277
#define LINKTYPE_BATTLE_TOWER 0x2288
#define LINKTYPE_0x3311 0x3311
#define LINKTYPE_0x3322 0x3322
#define LINKTYPE_RECORD_MIX_BEFORE 0x3311
#define LINKTYPE_RECORD_MIX_AFTER 0x3322
#define LINKTYPE_BERRY_BLENDER_SETUP 0x4411
#define LINKTYPE_CONTEST_GMODE 0x6601
enum {
BLOCK_REQ_SIZE_NONE, // Identical to 200
BLOCK_REQ_SIZE_200,
BLOCK_REQ_SIZE_100,
BLOCK_REQ_SIZE_220,
BLOCK_REQ_SIZE_40,
};
#define MASTER_HANDSHAKE 0x8FFF
#define SLAVE_HANDSHAKE 0xB9A0
@@ -102,11 +110,10 @@ enum
EXCHANGE_NOT_STARTED,
EXCHANGE_COMPLETE,
EXCHANGE_TIMED_OUT,
EXCHANGE_IN_PROGRESS,
EXCHANGE_STAT_4,
EXCHANGE_STAT_5,
EXCHANGE_STAT_6,
EXCHANGE_STAT_7
EXCHANGE_DIFF_SELECTIONS,
EXCHANGE_PLAYER_NOT_READY,
EXCHANGE_PARTNER_NOT_READY,
EXCHANGE_WRONG_NUM_PLAYERS,
};
enum
@@ -227,7 +234,7 @@ bool8 IsLinkPlayerDataExchangeComplete(void);
u32 GetLinkPlayerTrainerId(u8);
void ResetLinkPlayers(void);
u8 GetMultiplayerId(void);
u8 bitmask_all_link_players_but_self(void);
u8 BitmaskAllOtherLinkPlayers(void);
bool8 SendBlock(u8, const void *, u16);
u8 GetBlockReceivedStatus(void);
void ResetBlockReceivedFlags(void);
@@ -269,17 +276,17 @@ void ClearLinkCallback_2(void);
void Rfu_SetLinkStandbyCallback(void);
void ConvertLinkPlayerName(struct LinkPlayer * linkPlayer);
bool8 IsWirelessAdapterConnected(void);
bool8 Link_PrepareCmd0xCCCC_Rfu0xA100(u8 blockRequestType);
bool8 SendBlockRequest(u8 blockRequestType);
void LinkVSync(void);
bool8 HandleLinkConnection(void);
void LocalLinkPlayerToBlock(void);
void LinkPlayerFromBlock(u32 who);
void SetLinkErrorFromRfu(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 isConnectionError);
u8 sub_800A8D4(void);
void sub_800AA24(void);
void sub_800A900(u8 a0);
u8 sub_800A8A4(void);
void sub_800A9A4(void);
u8 GetLinkPlayerCountAsBitFlags(void);
void ResetLinkPlayerCount(void);
void SaveLinkPlayers(u8 numPlayers);
u8 GetSavedLinkPlayerCountAsBitFlags(void);
void CheckLinkPlayersMatchSaved(void);
void SetLocalLinkPlayerId(u8 playerId);
bool32 IsSendingKeysToLink(void);
u32 GetLinkRecvQueueLength(void);
+1 -1
View File
@@ -303,6 +303,6 @@ void sub_80FB030(u32 a0);
void ClearRecvCommands(void);
#include "mevent_server.h"
extern const struct mevent_server_cmd gMEventSrvScript_OtherTrainerCanceled[];
extern const struct mevent_server_cmd gServerScript_ClientCanceledCard[];
#endif //GUARD_LINK_RFU_H
+31 -17
View File
@@ -3,6 +3,20 @@
#include "global.h"
#define CARD_STAT_BATTLES_WON 0
#define CARD_STAT_BATTLES_LOST 1
#define CARD_STAT_NUM_TRADES 2
#define CARD_STAT_NUM_STAMPS 3
#define CARD_STAT_MAX_STAMPS 4
enum {
NEWS_INPUT_A,
NEWS_INPUT_B,
NEWS_INPUT_SCROLL_UP,
NEWS_INPUT_SCROLL_DOWN,
NEWS_INPUT_NONE = 0xFF
};
struct MEventClientHeaderStruct
{
u32 unk_00;
@@ -33,12 +47,12 @@ struct MEvent_Str_2
u8 fill_00[0x40];
};
struct UnkStruct_8467FB8
struct WonderGraphics
{
u8 textPal1:4;
u8 textPal2:4;
u8 textPal3:4;
u8 index:4;
u8 titleTextPal:4;
u8 bodyTextPal:4;
u8 footerTextPal:4;
u8 stampShadowPal:4;
const u8 * tiles;
const u8 * map;
const u16 * pal;
@@ -67,25 +81,25 @@ u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void
u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused);
bool32 sub_8144474(const struct MEventClientHeaderStruct * a0, const u16 * a1);
u16 sub_81444B0(const struct MEventClientHeaderStruct * a0, u32 command);
bool32 InitWonderCardResources(struct WonderCard * r5, struct WonderCardMetadata * r6);
bool32 InitWonderNewsResources(const struct WonderNews * a0);
s32 FadeToWonderCardMenu(void);
s32 FadeToWonderNewsMenu(void);
bool32 WonderCard_Init(struct WonderCard * card, struct WonderCardMetadata * metadata);
bool32 WonderNews_Init(const struct WonderNews * news);
s32 WonderCard_Enter(void);
s32 WonderNews_Enter(void);
void DestroyWonderCard(void);
void DestroyWonderNews(void);
void DestroyWonderCardResources(void);
void DestroyWonderNewsResources(void);
s32 FadeOutFromWonderCard(bool32 flag);
s32 FadeOutFromWonderNews(bool32 flag);
void WonderCard_Destroy(void);
void WonderNews_Destroy(void);
s32 WonderCard_Exit(bool32 flag);
s32 WonderNews_Exit(bool32 flag);
bool32 CheckReceivedGiftFromWonderCard(void);
void MENews_AddScrollIndicatorArrowPair(void);
void MENews_RemoveScrollIndicatorArrowPair(void);
void WonderNews_AddScrollIndicatorArrowPair(void);
void WonderNews_RemoveScrollIndicatorArrowPair(void);
bool32 WonderNews_Test_Unk_02(void);
bool32 WonderCard_Test_Unk_08_6(void);
u32 MENews_GetInput(u16 input);
u32 WonderNews_GetInput(u16 input);
void InitMEventData(void);
u16 MEvent_GetBattleCardCount(u32 command);
void MEvent_RecordIdOfWonderCardSenderByEventType(u32 eventId, u32 trainerId);
void MysteryGift_TryIncrementStat(u32 eventId, u32 trainerId);
u16 *GetMEventProfileECWordsMaybe(void);
void ResetReceivedWonderCardFlag(void);
bool32 MEventHandleReceivedWonderCard(u16 flagId);
+5 -3
View File
@@ -5,6 +5,8 @@
#include "text.h"
#include "task.h"
extern const u16 gMenuMessageWindow_Gfx[];
void ClearScheduledBgCopiesToVram(void);
void ScheduleBgCopyTilemapToVram(u8 bgId);
void DoScheduledBgTilemapCopiesToVram(void);
@@ -31,9 +33,9 @@ void DrawDialogueFrame(u8 windowId, bool8 transfer);
void DrawStdWindowFrame(u8 windowId, bool8 copyNow);
void ClearDialogWindowAndFrame(u8 windowId, bool8 copyToVram);
void ClearStdWindowAndFrame(u8 windowId, bool8 copyNow);
void sub_80F771C(bool8 copyToVram);
void EraseFieldMessageBox(bool8 copyToVram);
void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram);
void sub_80F7768(u8 windowId, bool8 copyToVram);
void LoadMessageBoxAndFrameGfx(u8 windowId, bool8 copyToVram);
void Menu_LoadStdPal(void);
void Menu_LoadStdPalAt(u16 offset);
void DisplayItemMessageOnField(u8 taskId, u8 fontId, const u8 *src, TaskFunc callback);
@@ -46,7 +48,7 @@ void RemoveStartMenuWindow(void);
u16 GetStdWindowBaseTileNum(void);
void DrawHelpMessageWindowWithText(const u8 * text);
void DestroyHelpMessageWindow_(void);
void LoadSignPostWindowFrameGfx(void);
void LoadSignpostWindowFrameGfx(void);
void SetDefaultFontsPointer(void);
#endif // GUARD_NEW_MENU_HELPERS_H
+5 -6
View File
@@ -74,11 +74,10 @@ void TintPalette_GrayScale(u16 *palette, u16 count);
void TintPalette_GrayScale2(u16 *palette, u16 count);
void TintPalette_SepiaTone(u16 *palette, u16 count);
void TintPalette_CustomTone(u16 *palette, u16 count, u16 rTone, u16 gTone, u16 bTone);
void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4);
void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
bool32 sub_807185C(u8 var);
void sub_8071898(void);
void ResetPaletteStructByUid(u16 a1);
void ResetPaletteStruct(u8 paletteNum);
void PaletteStruct_ResetById(u16 id);
void CopyPaletteInvertedTint(const u16 *src, u16 *dst, u16 count, u8 tone);
void BlendPalettesGradually(u32 selectedPalettes, s8 delay, u8 coeff, u8 coeffTarget, u16 color, u8 priority, u8 id);
bool32 IsBlendPalettesGraduallyTaskActive(u8 var);
void DestroyBlendPalettesGraduallyTask(void);
#endif // GUARD_PALETTE_H
+83
View File
@@ -0,0 +1,83 @@
#ifndef GUARD_PALETTE_UTIL_H
#define GUARD_PALETTE_UTIL_H
struct PulseBlendSettings
{
u16 blendColor;
u16 paletteOffset;
u8 numColors;
u8 delay;
u8 numFadeCycles;
s8 maxBlendCoeff:4;
s8 fadeType:2;
s8 restorePaletteOnUnload:1;
s8 unk7_7:1;
};
struct PulseBlendPalette
{
u8 paletteSelector;
u8 blendCoeff:4;
u8 fadeDirection:1;
s8 unk1_5:1;
s8 available:1;
u32 inUse:1;
u8 delayCounter;
u8 fadeCycleCounter;
struct PulseBlendSettings pulseBlendSettings;
};
struct PulseBlend
{
u16 usedPulseBlendPalettes;
struct PulseBlendPalette pulseBlendPalettes[16];
};
#define FLASHUTIL_USE_EXISTING_COLOR (1 << 15)
struct RouletteFlashSettings
{
u16 color;
u16 paletteOffset;
u8 numColors;
u8 delay;
u8 unk6; // Set but never used
s8 numFadeCycles:5;
s8 unk7_5:2; // Set but never used
s8 colorDeltaDir:1;
};
struct RouletteFlashPalette
{
u8 state:7;
u8 available:1;
u8 delayCounter;
s8 fadeCycleCounter;
s8 colorDelta;
struct RouletteFlashSettings settings;
};
struct RouletteFlashUtil
{
u8 enabled;
u8 unused;
u16 flags;
struct RouletteFlashPalette palettes[16];
};
void RouletteFlash_Reset(struct RouletteFlashUtil *);
u8 RouletteFlash_Add(struct RouletteFlashUtil *, u8, const struct RouletteFlashSettings *);
void RouletteFlash_Run(struct RouletteFlashUtil *);
void RouletteFlash_Enable(struct RouletteFlashUtil *, u16);
void RouletteFlash_Stop(struct RouletteFlashUtil *, u16);
void InitPulseBlend(struct PulseBlend *);
int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *);
static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *);
void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void UpdatePulseBlend(struct PulseBlend *);
void FillTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
#endif // GUARD_PALETTE_UTIL_H
+7 -8
View File
@@ -11,13 +11,12 @@ struct PartyMenu
TaskFunc task;
u8 menuType:4;
u8 layout:2;
u8 unk_8_6:2;
u8 chooseMonsBattleType:2;
s8 slotId;
s8 slotId2;
u8 action;
u16 bagItem;
s16 data1; // used variously as a moveId, counter, moveSlotId, or cursorPos
s16 learnMoveState;
s16 data[2];
};
extern struct PartyMenu gPartyMenu;
@@ -53,20 +52,20 @@ void SetUsedFlyQuestLogEvent(const u8 *healLocCtrlData);
void CB2_ShowPartyMenuForItemUse(void);
void ItemUseCB_Medicine(u8 taskId, TaskFunc func);
void ItemUseCB_MedicineStep(u8 taskId, TaskFunc func);
void ItemUseCB_PPRecovery(u8 taskId, UNUSED TaskFunc func);
void ItemUseCB_PPUp(u8 taskId, UNUSED TaskFunc func);
void ItemUseCB_TryRestorePP(u8 taskId, TaskFunc func);
void ItemUseCB_PPUp(u8 taskId, TaskFunc func);
u16 ItemIdToBattleMoveId(u16 item);
bool8 IsMoveHm(u16 move);
bool8 MonKnowsMove(struct Pokemon *mon, u16 move);
void ItemUseCB_TMHM(u8 taskId, UNUSED TaskFunc func);
void ItemUseCB_TMHM(u8 taskId, TaskFunc func);
void ItemUseCB_RareCandy(u8 taskId, TaskFunc func);
void ItemUseCB_SacredAsh(u8 taskId, UNUSED TaskFunc func);
void ItemUseCB_SacredAsh(u8 taskId, TaskFunc func);
void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc func);
u8 GetItemEffectType(u16 item);
void CB2_PartyMenuFromStartMenu(void);
void CB2_ChooseMonToGiveItem(void);
void ChooseMonToGiveMailFromMailbox(void);
void InitChooseHalfPartyForBattle(u8 a1);
void InitChooseMonsForBattle(u8 chooseMonsBattleType);
void ClearSelectedPartyOrder(void);
void ChooseMonForTradingBoard(u8 menuType, MainCallback callback);
void ChooseMonForMoveTutor(void);
-4
View File
@@ -1,10 +1,6 @@
#ifndef GUARD_POKEDEX_H
#define GUARD_POKEDEX_H
#define KANTO_DEX_COUNT 151
#define HOENN_DEX_COUNT 202
#define NATIONAL_DEX_COUNT 386
enum
{
DEX_MODE_KANTO,
+16 -5
View File
@@ -4,7 +4,18 @@
#include "global.h"
#define TOTAL_BOXES_COUNT 14
#define IN_BOX_COUNT 30
#define IN_BOX_ROWS 5 // Number of rows, 6 Pokémon per row
#define IN_BOX_COLUMNS 6 // Number of columns, 5 Pokémon per column
#define IN_BOX_COUNT (IN_BOX_ROWS * IN_BOX_COLUMNS)
/*
COLUMNS
ROWS 0 1 2 3 4 5
6 7 8 9 10 11
12 13 14 15 16 17
18 19 20 21 22 23
24 25 26 27 28 29
*/
enum
{
@@ -20,10 +31,10 @@ enum
WALLPAPER_SEAFLOOR,
WALLPAPER_RIVER,
WALLPAPER_SKY,
WALLPAPER_POLKADOT,
WALLPAPER_STARS,
WALLPAPER_POKECENTER,
WALLPAPER_MACHINE,
WALLPAPER_PLAIN,
WALLPAPER_TILES,
WALLPAPER_SIMPLE,
WALLPAPER_COUNT
};
#define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA
@@ -34,7 +45,7 @@ void SetBoxMonNickAt(u8 boxId, u8 monPosition, const u8 *newNick);
s16 CompactPartySlots(void);
u32 GetBoxMonDataAt(u8 boxId, u8 monPosition, s32 request);
void ZeroBoxMonAt(u8 boxId, u8 monPosition);
void Cb2_ReturnToPSS(void);
void CB2_ReturnToPokeStorage(void);
void ResetPokemonStorageSystem(void);
u8 StorageGetCurrentBox(void);
void DrawTextWindowAndBufferTiles(const u8 *string, void *dst, u8 zero1, u8 zero2, u8 *buffer, s32 bytesToBuffer);
+339 -286
View File
@@ -4,9 +4,6 @@
#include "pokemon_storage_system.h"
#include "mon_markings.h"
#define IN_BOX_COLUMNS 5
#define IN_BOX_ROWS 6
// The maximum number of Pokémon icons that can appear on-screen.
// By default the limit is 40 (though in practice only 37 can be).
#define MAX_MON_ICONS (IN_BOX_COUNT + PARTY_SIZE + 1 >= 40 ? IN_BOX_COUNT + PARTY_SIZE + 1 : 40)
@@ -16,13 +13,6 @@
// between 2 Pokémon with held items
#define MAX_ITEM_ICONS 3
enum
{
MODE_PARTY,
MODE_BOX,
MODE_2,
};
enum
{
OPTION_WITHDRAW,
@@ -35,139 +25,200 @@ enum
enum
{
PC_TEXT_EXIT_BOX,
PC_TEXT_WHAT_YOU_DO,
PC_TEXT_PICK_A_THEME,
PC_TEXT_PICK_A_WALLPAPER,
PC_TEXT_IS_SELECTED,
PC_TEXT_JUMP_TO_WHICH_BOX,
PC_TEXT_DEPOSIT_IN_WHICH_BOX,
PC_TEXT_WAS_DEPOSITED,
PC_TEXT_BOX_IS_FULL,
PC_TEXT_RELEASE_POKE,
PC_TEXT_WAS_RELEASED,
PC_TEXT_BYE_BYE,
PC_TEXT_MARK_POKE,
PC_TEXT_LAST_POKE,
PC_TEXT_PARTY_FULL,
PC_TEXT_HOLDING_POKE,
PC_TEXT_WHICH_ONE_WILL_TAKE,
PC_TEXT_CANT_RELEASE_EGG,
PC_TEXT_CONTINUE_BOX,
PC_TEXT_CAME_BACK,
PC_TEXT_WORRIED,
PC_TEXT_SURPRISE,
PC_TEXT_PLEASE_REMOVE_MAIL,
PC_TEXT_IS_SELECTED2,
PC_TEXT_GIVE_TO_MON,
PC_TEXT_PLACED_IN_BAG,
PC_TEXT_BAG_FULL,
PC_TEXT_PUT_IN_BAG,
PC_TEXT_ITEM_IS_HELD,
PC_TEXT_CHANGED_TO_ITEM,
PC_TEXT_CANT_STORE_MAIL,
MENU_TEXT_CANCEL,
MENU_TEXT_STORE,
MENU_TEXT_WITHDRAW,
MENU_TEXT_MOVE,
MENU_TEXT_SHIFT,
MENU_TEXT_PLACE,
MENU_TEXT_SUMMARY,
MENU_TEXT_RELEASE,
MENU_TEXT_MARK,
MENU_TEXT_JUMP,
MENU_TEXT_WALLPAPER,
MENU_TEXT_NAME,
MENU_TEXT_TAKE,
MENU_TEXT_GIVE,
MENU_TEXT_GIVE2,
MENU_TEXT_SWITCH,
MENU_TEXT_BAG,
MENU_TEXT_INFO,
MENU_TEXT_SCENERY_1,
MENU_TEXT_SCENERY_2,
MENU_TEXT_SCENERY_3,
MENU_TEXT_ETCETERA,
MENU_TEXT_FOREST,
MENU_TEXT_CITY,
MENU_TEXT_DESERT,
MENU_TEXT_SAVANNA,
MENU_TEXT_CRAG,
MENU_TEXT_VOLCANO,
MENU_TEXT_SNOW,
MENU_TEXT_CAVE,
MENU_TEXT_BEACH,
MENU_TEXT_SEAFLOOR,
MENU_TEXT_RIVER,
MENU_TEXT_SKY,
MENU_TEXT_POLKADOT,
MENU_TEXT_POKECENTER,
MENU_TEXT_MACHINE,
MENU_TEXT_SIMPLE,
};
// Return IDs for input handlers
enum {
INPUT_NONE,
INPUT_MOVE_CURSOR,
INPUT_2, // Unused
INPUT_3, // Unused
INPUT_CLOSE_BOX,
INPUT_SHOW_PARTY,
INPUT_HIDE_PARTY,
INPUT_BOX_OPTIONS,
INPUT_IN_MENU,
INPUT_SCROLL_RIGHT,
INPUT_SCROLL_LEFT,
INPUT_DEPOSIT,
INPUT_WITHDRAW,
INPUT_MOVE_MON,
INPUT_SHIFT_MON,
INPUT_PLACE_MON,
INPUT_TAKE_ITEM,
INPUT_GIVE_ITEM,
INPUT_SWITCH_ITEMS,
INPUT_PRESSED_B,
INPUT_MULTIMOVE_START,
INPUT_MULTIMOVE_CHANGE_SELECTION,
INPUT_MULTIMOVE_SINGLE,
INPUT_MULTIMOVE_GRAB_SELECTION,
INPUT_MULTIMOVE_UNABLE,
INPUT_MULTIMOVE_MOVE_MONS,
INPUT_MULTIMOVE_PLACE_MONS,
};
enum
{
PC_TEXT_FMT_NORMAL,
PC_TEXT_FMT_MON_NAME_1,
PC_TEXT_FMT_MON_NAME_2,
PC_TEXT_FMT_MON_NAME_3,
PC_TEXT_FMT_MON_NAME_4,
PC_TEXT_FMT_MON_NAME_5,
PC_TEXT_FMT_MON_NAME_6,
PC_TEXT_FMT_ITEM_NAME,
RELEASE_MON_NOT_ALLOWED,
RELEASE_MON_ALLOWED,
RELEASE_MON_UNDETERMINED = -1,
};
enum
{
PC_TEXT_CANCEL,
PC_TEXT_STORE,
PC_TEXT_WITHDRAW,
PC_TEXT_MOVE,
PC_TEXT_SHIFT,
PC_TEXT_PLACE,
PC_TEXT_SUMMARY,
PC_TEXT_RELEASE,
PC_TEXT_MARK,
PC_TEXT_JUMP,
PC_TEXT_WALLPAPER,
PC_TEXT_NAME,
PC_TEXT_TAKE,
PC_TEXT_GIVE,
PC_TEXT_GIVE2,
PC_TEXT_SWITCH,
PC_TEXT_BAG,
PC_TEXT_INFO,
PC_TEXT_SCENERY1,
PC_TEXT_SCENERY2,
PC_TEXT_SCENERY3,
PC_TEXT_ETCETERA,
PC_TEXT_FOREST,
PC_TEXT_CITY,
PC_TEXT_DESERT,
PC_TEXT_SAVANNA,
PC_TEXT_CRAG,
PC_TEXT_VOLCANO,
PC_TEXT_SNOW,
PC_TEXT_CAVE,
PC_TEXT_BEACH,
PC_TEXT_SEAFLOOR,
PC_TEXT_RIVER,
PC_TEXT_SKY,
PC_TEXT_POLKADOT,
PC_TEXT_POKECENTER,
PC_TEXT_MACHINE,
PC_TEXT_SIMPLE,
MODE_PARTY,
MODE_BOX,
MODE_MOVE,
};
enum
{
CURSOR_AREA_IN_BOX,
CURSOR_AREA_IN_PARTY,
CURSOR_AREA_BOX,
CURSOR_AREA_BOX_TITLE,
CURSOR_AREA_BUTTONS, // Party Pokemon and Close Box
};
#define CURSOR_AREA_IN_HAND CURSOR_AREA_BOX_TITLE // Alt name for cursor area used by Move Items
// IDs for InitMonPlaceChange
enum
{
CHANGE_GRAB,
CHANGE_PLACE,
CHANGE_SHIFT,
};
// IDs for the main functions for moving multiple Pokémon.
// Given as arguments to MultiMove_SetFunction
enum
{
MULTIMOVE_START,
MULTIMOVE_SINGLE,
MULTIMOVE_CHANGE_SELECTION,
MULTIMOVE_GRAB_SELECTION,
MULTIMOVE_MOVE_MONS,
MULTIMOVE_PLACE_MONS,
};
enum
{
SCREEN_CHANGE_EXIT_BOX,
SCREEN_CHANGE_SUMMARY_SCREEN,
SCREEN_CHANGE_NAME_BOX,
SCREEN_CHANGE_ITEM_FROM_BAG,
PALTAG_MON_ICON_0 = 56000,
PALTAG_MON_ICON_1, // Used implicitly in CreateMonIconSprite
PALTAG_MON_ICON_2, // Used implicitly in CreateMonIconSprite
PALTAG_3, // Unused
PALTAG_4, // Unused
PALTAG_5, // Unused
PALTAG_DISPLAY_MON,
PALTAG_MISC_1, // Used by cursor in multimove mode, choose box menu popup
PALTAG_MARKING_COMBO,
PALTAG_BOX_TITLE,
PALTAG_MISC_2, // Used by waveforms, cursor in normal mode, cursor shadow, box scroll arrows
PALTAG_ITEM_ICON_0,
PALTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites
PALTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites
PALTAG_MARKING_MENU,
};
#define TAG_PAL_WAVEFORM 0xDACA
#define TAG_PAL_DAC8 0xDAC8
#define TAG_PAL_DAC6 0xDAC6
#define TAG_PAL_DACE 0xDACE
#define TAG_PAL_DAC7 0xDAC7
#define TAG_PAL_DAC9 0xDAC9
#define TAG_PAL_DAC0 0xDAC0
#define TAG_PAL_DACB 0xDACB
enum
{
GFXTAG_CURSOR,
GFXTAG_CURSOR_SHADOW,
GFXTAG_DISPLAY_MON,
GFXTAG_BOX_TITLE,
GFXTAG_BOX_TITLE_ALT,
GFXTAG_WAVEFORM,
GFXTAG_BOX_SCROLL_ARROW,
GFXTAG_ITEM_ICON_0,
GFXTAG_ITEM_ICON_1, // Used implicitly in CreateItemIconSprites
GFXTAG_ITEM_ICON_2, // Used implicitly in CreateItemIconSprites
GFXTAG_CHOOSE_BOX_MENU_CENTER,
GFXTAG_CHOOSE_BOX_MENU_CORNERS, // Used implicitly in LoadChooseBoxMenuGfx
GFXTAG_12, // Unused
GFXTAG_MARKING_MENU,
GFXTAG_14, // Unused
GFXTAG_15, // Unused
GFXTAG_MARKING_COMBO,
GFXTAG_17, // Unused
GFXTAG_MON_ICON,
};
#define TAG_TILE_WAVEFORM 0x5
#define TAG_TILE_10 0x10
#define TAG_TILE_2 0x2
#define TAG_TILE_D 0xD
#define TAG_TILE_A 0xA
#define TAG_TILE_3 0x3
#define TAG_TILE_4 0x4
#define TAG_TILE_12 0x12
#define TAG_TILE_7 0x7
#define TAG_TILE_0 0x0
#define TAG_TILE_1 0x1
#define TAG_TILE_6 0x6
// Special box ids for the choose box menu
#define BOXID_NONE_CHOSEN 200
#define BOXID_CANCELED 201
struct WallpaperTable
enum {
CURSOR_ANIM_BOUNCE,
CURSOR_ANIM_STILL,
CURSOR_ANIM_OPEN,
CURSOR_ANIM_FIST,
};
enum
{
RELEASE_ANIM_RELEASE,
RELEASE_ANIM_COME_BACK,
};
// IDs for the item icons affine anims
enum
{
ITEM_ANIM_NONE,
ITEM_ANIM_APPEAR,
ITEM_ANIM_DISAPPEAR,
ITEM_ANIM_PICK_UP,
ITEM_ANIM_PUT_DOWN,
ITEM_ANIM_PUT_AWAY,
ITEM_ANIM_LARGE,
};
struct Wallpaper
{
const u32 *tiles;
const u32 *tileMap;
const u16 *palettes;
};
struct StorageAction
struct StorageMessage
{
const u8 *text;
u8 format;
@@ -176,7 +227,7 @@ struct StorageAction
struct ChooseBoxMenu
{
struct Sprite *menuSprite;
struct Sprite *menuSideSprites[4];
struct Sprite *menuCornerSprites[4];
u32 unused1[3];
struct Sprite *arrowSprites[2];
u8 buffer[0x200]; // passed but not used
@@ -212,7 +263,7 @@ struct UnkUtil
u8 max;
};
struct PSS_ItemIconSprite
struct PokeStorageItemIcon
{
struct Sprite *sprite;
u8 *tiles;
@@ -222,12 +273,12 @@ struct PSS_ItemIconSprite
u8 active;
};
struct PssQuestLogBuffer
struct PokeStorageQuestLogData
{
u16 species;
u16 species1;
u16 species2;
u8 fromBox;
u8 toBox;
u8 box1;
u8 box2;
};
struct PokemonStorageSystemData
@@ -235,7 +286,7 @@ struct PokemonStorageSystemData
u8 state;
u8 boxOption;
u8 screenChangeType;
bool8 isReshowingPSS;
bool8 isReopening;
u8 taskId;
struct UnkUtil unkUtil;
struct UnkUtilData unkUtilData[8];
@@ -262,8 +313,8 @@ struct PokemonStorageSystemData
u16 scrollUnused5; // Never read
u16 scrollUnused6; // Never read
u8 filler1[22];
u8 field_2F8[512];
u8 field_4F8[512];
u8 boxTitleTiles[512];
u8 boxTitleUnused[512];
u8 boxTitleCycleId;
u8 wallpaperLoadState; // Written to, but never read.
u8 wallpaperLoadBoxId;
@@ -276,7 +327,7 @@ struct PokemonStorageSystemData
struct Sprite *arrowSprites[2];
u32 wallpaperPalBits;
u8 filler2[80]; // Unused
u16 unkUnused1; // Never read.
u16 unusedField1; // Never read.
s16 wallpaperSetId;
s16 wallpaperId;
u16 wallpaperTilemap[360];
@@ -285,112 +336,114 @@ struct PokemonStorageSystemData
u8 scrollToBoxId;
s8 scrollDirection;
// u8 *wallpaperTiles; // used only in Emerald for Walda
/* 0a68 */ struct Sprite *movingMonSprite;
/* 0a6c */ struct Sprite *partySprites[PARTY_SIZE];
/* 0a84 */ struct Sprite *boxMonsSprites[IN_BOX_COUNT];
/* 0afc */ struct Sprite **shiftMonSpritePtr;
/* 0b00 */ struct Sprite **releaseMonSpritePtr;
/* 0b04 */ u16 numIconsPerSpecies[MAX_MON_ICONS];
/* 0b54 */ u16 iconSpeciesList[MAX_MON_ICONS];
/* 0ba4 */ u16 boxSpecies[IN_BOX_COUNT];
/* 0be0 */ u32 boxPersonalities[IN_BOX_COUNT];
/* 0c58 */ u8 incomingBoxId;
/* 0c59 */ u8 shiftTimer;
/* 0c5a */ u8 numPartyToCompact;
/* 0c5c */ u16 iconScrollDistance;
/* 0c5e */ s16 iconScrollPos;
/* 0c60 */ s16 iconScrollSpeed;
/* 0c62 */ u16 iconScrollNumIncoming;
/* 0c64 */ u8 iconScrollCurColumn;
/* 0c65 */ s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection
/* 0c66 */ u8 iconScrollState;
/* 0c67 */ u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId
/* 0c68 */ struct WindowTemplate menuWindow;
/* 0c70 */ struct StorageMenu menuItems[7];
/* 0ca8 */ u8 menuItemsCount;
/* 0ca9 */ u8 menuWidth;
/* 0caa */ u8 menuUnusedField; // Never read.
/* 0cac */ u16 menuWindowId;
/* 0cb0 */ struct Sprite *cursorSprite;
/* 0cb4 */ struct Sprite *cursorShadowSprite;
/* 0cb8 */ s32 cursorNewX;
/* 0cbc */ s32 cursorNewY;
/* 0cc0 */ u32 cursorSpeedX;
/* 0cc4 */ u32 cursorSpeedY;
/* 0cc8 */ s16 cursorTargetX;
/* 0cca */ s16 cursorTargetY;
/* 0ccc */ u16 cursorMoveSteps;
/* 0cce */ s8 cursorVerticalWrap;
/* 0ccf */ s8 cursorHorizontalWrap;
/* 0cd0 */ u8 newCursorArea;
/* 0cd1 */ u8 newCursorPosition;
/* 0cd2 */ u8 cursorPrevHorizPos;
/* 0cd3 */ u8 cursorFlipTimer;
/* 0cd4 */ u8 cursorPalNums[2];
/* 0cd8 */ const u32 *displayMonPalette;
/* 0cdc */ u32 displayMonPersonality;
/* 0ce0 */ u16 displayMonSpecies;
/* 0ce2 */ u16 displayMonItemId;
/* 0ce4 */ u16 displayUnusedVar;
/* 0ce6 */ bool8 setMosaic;
/* 0ce7 */ u8 displayMonMarkings;
/* 0ce8 */ u8 displayMonLevel;
/* 0ce9 */ bool8 displayMonIsEgg;
/* 0cea */ u8 displayMonName[POKEMON_NAME_LENGTH + 1];
/* 0cf5 */ u8 displayMonTexts[4][36];
/* 0d88 */ bool8 (*monPlaceChangeFunc)(void);
/* 0d8c */ u8 monPlaceChangeState;
/* 0d8d */ u8 shiftBoxId;
/* 0d90 */ struct Sprite *markingComboSprite;
/* 0d94 */ struct Sprite *waveformSprites[2];
/* 0d9c */ u16 *markingComboTilesPtr;
/* 0da0 */ struct MonMarkingsMenu markMenu;
/* 1e58 */ struct ChooseBoxMenu field_1E5C;
/* 20a0 */ struct Pokemon movingMon;
/* 2104 */ struct Pokemon field_2108;
/* 2168 */ u8 field_216C;
/* 2169 */ u8 field_216D;
/* 216c */ bool8 isSurfMon;
/* 216d */ bool8 isDiveMon;
/* 216a */ s8 field_216E;
/* 216b */ s8 field_216F;
/* 216e */ s8 field_2170;
/* 216f */ s8 field_2171;
/* 2170 */ u16 field_2172;
/* 2172 */ u16 field_2176[3];
/* 2178 */ u8 field_2186;
/* 2179 */ u8 field_2187;
/* 217a */ u8 summaryScreenMode;
/* 217c */ union
struct Sprite *movingMonSprite;
struct Sprite *partySprites[PARTY_SIZE];
struct Sprite *boxMonsSprites[IN_BOX_COUNT];
struct Sprite **shiftMonSpritePtr;
struct Sprite **releaseMonSpritePtr;
u16 numIconsPerSpecies[MAX_MON_ICONS];
u16 iconSpeciesList[MAX_MON_ICONS];
u16 boxSpecies[IN_BOX_COUNT];
u32 boxPersonalities[IN_BOX_COUNT];
u8 incomingBoxId;
u8 shiftTimer;
u8 numPartySpritesToCompact;
u16 iconScrollDistance;
s16 iconScrollPos;
s16 iconScrollSpeed;
u16 iconScrollNumIncoming;
u8 iconScrollCurColumn;
s8 iconScrollDirection; // Unnecessary duplicate of scrollDirection
u8 iconScrollState;
u8 iconScrollToBoxId; // Unused duplicate of scrollToBoxId
struct WindowTemplate menuWindow;
struct StorageMenu menuItems[7];
u8 menuItemsCount;
u8 menuWidth;
u8 menuUnusedField; // Never read.
u16 menuWindowId;
struct Sprite *cursorSprite;
struct Sprite *cursorShadowSprite;
s32 cursorNewX;
s32 cursorNewY;
u32 cursorSpeedX;
u32 cursorSpeedY;
s16 cursorTargetX;
s16 cursorTargetY;
u16 cursorMoveSteps;
s8 cursorVerticalWrap;
s8 cursorHorizontalWrap;
u8 newCursorArea;
u8 newCursorPosition;
u8 cursorPrevPartyPos;
u8 cursorFlipTimer;
u8 cursorPalNums[2];
const u32 *displayMonPalette;
u32 displayMonPersonality;
u16 displayMonSpecies;
u16 displayMonItemId;
u16 displayUnusedVar;
bool8 setMosaic;
u8 displayMonMarkings;
u8 displayMonLevel;
bool8 displayMonIsEgg;
u8 displayMonNickname[POKEMON_NAME_LENGTH + 1];
u8 displayMonTexts[4][36]; // nickname, species name, gender and level, item name
bool8 (*monPlaceChangeFunc)(void);
u8 monPlaceChangeState;
u8 shiftBoxId;
struct Sprite *markingComboSprite;
struct Sprite *waveformSprites[2];
u16 *markingComboTilesPtr;
struct MonMarkingsMenu markMenu;
struct ChooseBoxMenu chooseBoxMenu;
struct Pokemon movingMon;
struct Pokemon tempMon;
s8 releaseMonStatus;
bool8 releaseMonStatusResolved;
bool8 isSurfMon;
bool8 isDiveMon;
s8 releaseCheckBoxId;
s8 releaseCheckBoxPos;
s8 releaseBoxId;
s8 releaseBoxPos;
u16 releaseCheckState;
u16 restrictedMoveList[3];
u8 summaryLastIndex;
u8 summaryCursorPos;
u8 summaryScreenMode;
union
{
struct Pokemon *mon;
struct BoxPokemon *box;
} field_218C;
/* 2180 */ u8 field_2190[40];
/* 21a8 */ u8 field_21B8[40];
/* 21d0 */ u8 field_21E0[POKEMON_NAME_LENGTH + 1];
/* 21db */ u8 itemName[20];
/* 21ef */ u8 inBoxMovingMode;
/* 21f0 */ u16 field_2200;
/* 21f4 */ struct PSS_ItemIconSprite itemIcons[MAX_ITEM_ICONS];
/* 2224 */ u16 movingItemId;
/* 2226 */ u16 itemInfoWindowOffset;
/* 2228 */ struct PssQuestLogBuffer qlogBuffer;
/* 2230 */ u16 field_2238;
/* 2232 */ u16 field_223A;
/* 2234 */ u16 *field_223C;
/* 2238 */ struct Sprite *cursorMonSprite;
/* 223c */ u16 field_2244[0x40];
/* 22bc */ u8 field_22C4[0x800];
/* 2abc */ u8 field_2AC4[0x1800];
/* 42bc */ u8 itemIconBuffer[0x800];
/* 4abc */ u8 field_4AC4[0x1000];
/* 5abc */ u8 field_5AC4[0x800];
}; // size=62bc
} summaryMonPtr;
u8 actionText[40];
u8 boxTitleText[40];
u8 releaseMonName[POKEMON_NAME_LENGTH + 1];
u8 itemName[20];
u8 inBoxMovingMode;
u16 multiMoveWindowId;
struct PokeStorageItemIcon itemIcons[MAX_ITEM_ICONS];
u16 movingItemId;
u16 itemInfoWindowOffset;
struct PokeStorageQuestLogData pokeStorageQuestLogData;
u16 unusedField2;
u16 displayMonPalOffset;
u16 *displayMonTilePtr;
struct Sprite *displayMonSprite;
u16 displayMonPalBuffer[0x20];
u8 unusedBuffer1[0x40];
u8 tileBuffer[0x800];
u8 unusedBuffer2[0x1800];
u8 itemIconBuffer[0x200];
u8 unusedBuffer3[0x600];
u8 wallpaperBgTilemapBuffer[0x1000];
u8 menuTilemapBuffer[0x800];
};
extern struct PokemonStorageSystemData *gPSSData;
extern struct PokemonStorageSystemData *gStorage;
void Cb2_EnterPSS(u8 a0);
void EnterPokeStorage(u8 boxOption);
u8 GetCurrentBoxOption(void);
struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
void SetBoxWallpaper(u8 boxId, u8 wallpaperId);
@@ -400,46 +453,46 @@ void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon * src);
void CB2_ExitPokeStorage(void);
void FreeBoxSelectionPopupSpriteGfx(void);
void sub_808C940(u8 curBox);
void sub_808C950(void);
void CreateChooseBoxMenuSprites(u8 curBox);
void DestroyChooseBoxMenuSprites(void);
u8 HandleBoxChooseSelectionInput(void);
void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal);
void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *menu, u16 tileTag, u16 palTag, u8 subpriority, bool32 loadPal);
void SetCurrentBoxMonData(u8 boxPosition, s32 request, const void *value);
u32 GetCurrentBoxMonData(u8 boxPosition, s32 request);
u32 GetAndCopyBoxMonDataAt(u8 boxId, u8 boxPosition, s32 request, void *dst);
void sub_80922C0(void);
void sub_8092340(void);
bool8 sub_80924A8(void);
void sub_8092AE4(void);
void sub_8092B3C(u8 a0);
void sub_8092B50(void);
void sub_8092B5C(void);
u8 sub_8092B70(void);
void sub_8092F54(void);
void sub_8093174(void);
void sub_8093194(void);
bool8 sub_80931EC(void);
void sub_8093264(void);
void sub_8093630(void);
void sub_8093660(void);
void sub_80936B8(void);
void sub_80937B4(void);
void sub_8094D14(u8 a0);
u8 sub_8094D34(void);
void sub_8094D60(void);
void sub_8094D84(void);
bool8 sub_8094F90(void);
s16 sub_8094F94(void);
void sub_8095024(void);
bool8 sub_8095050(void);
void sub_80950A4(void);
void sub_80950BC(u8 a0);
bool8 sub_80950D0(void);
void InitCursor(void);
void InitCursorOnReopen(void);
bool8 UpdateCursorPos(void);
void SetCursorInParty(void);
void SetCursorBoxPosition(u8 cursorBoxPosition);
void ClearSavedCursorPos(void);
void SaveCursorPos(void);
u8 GetSavedCursorPos(void);
void DoTrySetDisplayMonData(void);
void ResetSelectionAfterDeposit(void);
void InitReleaseMon(void);
bool8 TryHideReleaseMon(void);
void TrySetCursorFistAnim(void);
void SaveMovingMon(void);
void LoadSavedMovingMon(void);
void InitSummaryScreenData(void);
void SetSelectionAfterSummaryScreen(void);
void StartCursorAnim(u8 animNum);
u8 GetMovingMonOriginalBoxId(void);
void TryHideItemAtCursor(void);
void TryShowItemAtCursor(void);
bool8 IsMenuLoading(void);
s16 HandleMenuInput(void);
void RemoveMenu(void);
bool8 MultiMove_Init(void);
void MultiMove_Free(void);
void MultiMove_SetFunction(u8 funcId);
bool8 MultiMove_RunFunction(void);
void CreateItemIconSprites(void);
void sub_8096088(void);
void sub_80960C0(void);
bool8 sub_809610C(void);
void MoveItemFromCursorToBag(void);
void MoveHeldItemWithPartyMenu(void);
bool8 IsItemIconAnimActive(void);
const u8 *GetMovingItemName(void);
void InitItemInfoWindow(void);
bool8 UpdateItemInfoWindowSlideIn(void);
@@ -455,7 +508,7 @@ u8 GetBoxCursorPosition(void);
u16 GetMovingItem(void);
u8 HandleInput(void);
void InitCanReleaseMonVars(void);
void InitMonPlaceChange(u8 a0);
void InitMonPlaceChange(u8 type);
bool8 IsActiveItemMoving(void);
bool8 IsCursorOnCloseBox(void);
bool8 IsMonBeingMoved(void);
@@ -474,47 +527,47 @@ void SetWallpaperForCurrentBox(u8 wallpaper);
bool8 TryStorePartyMonInBox(u8 boxId);
void InitMenu(void);
void SetMenuText(u8 textId);
void sub_8095C84(u8 cursorArea, u8 cursorPos);
void sub_8095E2C(u16 itemId);
void TryLoadItemIconAtPos(u8 cursorArea, u8 cursorPos);
void InitItemIconInCursor(u16 itemId);
u8 GetBoxWallpaper(u8 boxId);
bool8 IsCursorOnBoxTitle(void);
bool8 IsCursorInBox(void);
void sub_808FFAC(void);
void InitMonIconFields(void);
struct Sprite *CreateMonIconSprite(u16 species, u32 pid, s16 x, s16 y, u8 priority, u8 subpriority);
void CreatePartyMonsSprites(bool8 species);
void sub_80909F4(void);
bool8 sub_8090A60(void);
void sub_8090B98(s16 yDelta);
void CompactPartySprites(void);
u8 GetNumPartySpritesCompacting(void);
void MovePartySprites(s16 yDelta);
void DestroyAllPartyMonIcons(void);
void sub_8091114(void);
bool8 sub_8091150(void);
void sub_80913DC(u8 box);
bool8 sub_809140C(void);
void DoReleaseMonComeBackAnim(void);
bool8 ResetReleaseMonSpritePtr(void);
void CreateInitBoxTask(u8 boxId);
bool8 IsInitBoxActive(void);
void AnimateBoxScrollArrows(bool8 species);
void CreateMovingMonIcon(void);
void sub_8090E08(u8 boxId, u8 cursorPos);
bool8 sub_8090E74(void);
void sub_8090CC0(u8 cursorArea, u8 cursorPos);
void sub_8090D58(u8 cursorArea, u8 cursorPos);
void SetShiftMonSpritePtr(u8 boxId, u8 position);
bool8 ShiftMons(void);
void SetMovingMonSprite(u8 cursorArea, u8 cursorPos);
void SetPlacedMonSprite(u8 cursorArea, u8 cursorPos);
void DestroyPartyMonIcon(u8 partyId);
void DestroyMovingMonIcon(void);
s16 GetFirstFreeBoxSpot(u8 boxId);
void sub_80901EC(u8 boxPosition);
void sub_8090FC4(u8 mode, u8 position);
bool8 sub_8091084(void);
void sub_80910CC(void);
void CreateBoxMonIconAtPos(u8 boxPosition);
void DoReleaseMonAnim(u8 mode, u8 position);
bool8 TryHideReleaseMonSprite(void);
void DestroyReleaseMonIcon(void);
u8 CountPartyMons(void);
u8 CountPartyAliveNonEggMonsExcept(u8 slotToIgnore);
s8 sub_8094E50(u8 a0);
bool8 sub_8095474(u8 action);
u8 sub_8095AA0(void);
bool8 sub_8095ABC(void);
void sub_8095D44(u8 cursorArea, u8 cursorPos);
void sub_8094CD4(u8 *arg0, u8 *arg1);
void sub_8094D40(void);
void sub_8092BAC(bool8 arg0);
s8 GetMenuItemTextId(u8 menuIndex);
bool8 MultiMove_TryMoveGroup(u8 dir);
u8 MultiMove_GetOriginPosition(void);
bool8 MultiMove_CanPlaceSelection(void);
void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos);
void GetCursorBoxColumnAndRow(u8 *column, u8 *row);
void SetCursorPriorityTo1(void);
void InitMultiMonPlaceChange(bool8 moveCursorUp);
void DestroyBoxMonIconAtPosition(u8 boxPosition);
void SetBoxMonIconObjMode(u8 cursorPos, u8 objMode);
void SetPartyMonIconObjMode(u8 cursorPos, u8 objMode);
-1
View File
@@ -30,7 +30,6 @@ struct UnkStruct_203B044
extern u8 gQuestLogState;
extern u8 gQuestLogPlaybackState;
extern const u8 gUnknown_84566A8[];
extern struct FieldInput gQuestLogFieldInput;
extern struct UnkStruct_203B044 gUnknown_203B044;
extern u16 *gUnknown_203AE04;
+3 -2
View File
@@ -15,8 +15,9 @@ u16 Random2(void);
// The number 1103515245 comes from the example implementation of rand and srand
// in the ISO C standard.
#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691)
#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345)
#define RAND_MULT 1103515245
#define ISO_RANDOMIZE1(val)(RAND_MULT * (val) + 24691)
#define ISO_RANDOMIZE2(val)(RAND_MULT * (val) + 12345)
//Sets the initial seed value of the pseudorandom number generator
void SeedRng(u16 seed);
-84
View File
@@ -1,84 +0,0 @@
#ifndef GUARD_ROULETTE_H
#define GUARD_ROULETTE_H
struct UnkStruct1
{
u16 var00;
u16 var02;
u8 var04;
u8 var05;
u8 var06;
s8 var07_0:5;
s8 var07_5:2;
s8 var07_7:1;
};
struct UnkStruct3
{
u8 var00_0:7;
u8 var00_7:1;
u8 var01;
s8 var02;
s8 var03;
struct UnkStruct1 var04;
};
struct UnkStruct0
{
u8 var00;
u8 var01;
u16 var02; //flag for each UnkStruct3
struct UnkStruct3 var04[0x10];
};
struct PulseBlendSettings
{
u16 blendColor;
u16 paletteOffset;
u8 numColors;
u8 delay;
u8 numFadeCycles;
s8 maxBlendCoeff:4;
s8 fadeType:2;
s8 restorePaletteOnUnload:1;
s8 unk7_7:1;
};
struct PulseBlendPalette
{
u8 paletteSelector;
u8 blendCoeff:4;
u8 fadeDirection:1;
s8 unk1_5:1;
s8 available:1;
u32 inUse:1;
u8 delayCounter;
u8 fadeCycleCounter;
struct PulseBlendSettings pulseBlendSettings;
};
struct PulseBlend
{
u16 usedPulseBlendPalettes;
struct PulseBlendPalette pulseBlendPalettes[16];
};
void sub_80D8BE4(struct UnkStruct0 *);
u8 sub_80D8BF8(struct UnkStruct0 *, u8, const struct UnkStruct1 *);
u8 sub_80D8C7C(struct UnkStruct0 *, u8);
u8 sub_80D8CB0(struct UnkStruct3 *);
u8 sub_80D8EB8(struct UnkStruct3 *);
void task_tutorial_controls_fadein(struct UnkStruct0 *);
void sub_80D8FB4(struct UnkStruct0 *, u16);
void sub_80D9008(struct UnkStruct0 *, u16);
void InitPulseBlend(struct PulseBlend *);
int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *);
static void ClearPulseBlendPalettesSettings(struct PulseBlendPalette *);
void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void UpdatePulseBlend(struct PulseBlend *);
void sub_80D9574(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
void sub_80D95C4(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
#endif // GUARD_ROULETTE_H
+16 -21
View File
@@ -28,26 +28,21 @@ u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr);
void SetupNativeScript(struct ScriptContext *ctx, bool8 (*ptr)(void));
void StopScript(struct ScriptContext *ctx);
bool8 RunScriptCommand(struct ScriptContext *ctx);
u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr);
const u8 *ScriptPop(struct ScriptContext *ctx);
void ScriptJump(struct ScriptContext *ctx, const u8 *ptr);
void ScriptCall(struct ScriptContext *ctx, const u8 *ptr);
void ScriptReturn(struct ScriptContext *ctx);
u16 ScriptReadHalfword(struct ScriptContext *ctx);
u32 ScriptReadWord(struct ScriptContext *ctx);
void ScriptContext2_Enable(void);
void ScriptContext2_Disable(void);
bool8 ScriptContext2_IsEnabled(void);
void ScriptContext1_Init(void);
bool8 ScriptContext1_IsScriptSetUp(void);
bool8 ScriptContext2_RunScript(void);
void ScriptContext1_SetupScript(const u8 *ptr);
void ScriptContext1_Stop(void);
void EnableBothScriptContexts(void);
void ScriptContext2_RunNewScript(const u8 *ptr);
u8 *mapheader_get_tagged_pointer(u8 tag);
void mapheader_run_script_by_tag(u8 tag);
u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag);
void LockPlayerFieldControls(void);
void UnlockPlayerFieldControls(void);
bool8 ArePlayerFieldControlsLocked(void);
void ScriptContext_Init(void);
bool8 ScriptContext_IsEnabled(void);
bool8 ScriptContext_RunScript(void);
void ScriptContext_SetupScript(const u8 *ptr);
void ScriptContext_Stop(void);
void ScriptContext_Enable(void);
void RunScriptImmediately(const u8 *ptr);
void RunOnLoadMapScript(void);
void RunOnTransitionMapScript(void);
void RunOnResumeMapScript(void);
@@ -60,24 +55,24 @@ void ClearRamScript(void);
bool8 InitRamScript(u8 *script, u16 scriptSize, u8 mapGroup, u8 mapNum, u8 objectId);
const u8 *GetRamScript(u8 objectId, const u8 *script);
bool32 ValidateRamScript(void);
void MEventSetRamScript(u8 * script, u16 scriptSize);
void InitRamScript_NoObjectEvent(u8 * script, u16 scriptSize);
u8 * GetSavedRamScriptIfValid(void);
void RegisterQuestLogInput(u8 var);
void ClearMsgBoxCancelableState(void);
void SetQuestLogInputIsDpadFlag(void);
void ClearQuestLogInput(void);
void ClearQuestLogInputIsDpadFlag(void);
void MsgSetSignPost(void);
void MsgSetNotSignPost(void);
bool8 IsMsgSignPost(void);
void MsgSetSignpost(void);
void MsgSetNotSignpost(void);
bool8 IsMsgSignpost(void);
bool8 IsQuestLogInputDpad(void);
u8 GetRegisteredQuestLogInput(void);
void ResetFacingNpcOrSignPostVars(void);
void ResetFacingNpcOrSignpostVars(void);
bool8 CanWalkAwayToCancelMsgBox(void);
void SetWalkingIntoSignVars(void);
bool8 IsMsgBoxWalkawayDisabled(void);
extern const u8 *gRAMScriptPtr;
extern const u8 *gRamScriptRetAddr;
extern u8 gWalkAwayFromSignInhibitTimer;
#endif // GUARD_SCRIPT_H
+6 -2
View File
@@ -4,8 +4,12 @@
#include "global.h"
#define MAX_SPRITES 64
#define SPRITE_NONE 0xFF
#define TAG_NONE 0xFFFF
// Given to SetSpriteMatrixAnchor to skip anchoring one of the coords.
#define NO_ANCHOR 0x800
struct SpriteSheet
{
const void *data; // Raw uncompressed pixel data
@@ -227,7 +231,7 @@ struct Sprite
u16 animEnded:1; //0x10
u16 affineAnimEnded:1; //0x20
u16 usingSheet:1; //0x40
u16 flags_f:1; //0x80
u16 anchored:1; //0x80
/*0x40*/ u16 sheetTileStart;
@@ -315,6 +319,6 @@ void ClearSpriteCopyRequests(void);
void ResetAffineAnimData(void);
void FreeSpriteTilesIfNotUsingSheet(struct Sprite *sprite);
s16 AllocSpriteTiles(u16 tileCount);
void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod);
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 xmod, s16 ymod);
#endif //GUARD_SPRITE_H
+2 -2
View File
@@ -11,8 +11,8 @@ enum StringConvertMode
};
u8 *StringCopy_Nickname(u8 *dest, const u8 *src);
u8 *StringGetEnd10(u8 *str);
u8 *StringCopy7(u8 *dest, const u8 *src);
u8 *StringGet_Nickname(u8 *str);
u8 *StringCopy_PlayerName(u8 *dest, const u8 *src);
u8 *StringCopy(u8 *dest, const u8 *src);
u8 *StringAppend(u8 *dest, const u8 *src);
u8 *StringCopyN(u8 *dest, const u8 *src, u8 n);
+130 -132
View File
@@ -76,8 +76,6 @@ extern const u8 gText_Ferry[];
extern const u8 gText_SecretBase[];
extern const u8 gText_Hideout[];
extern const u8 gText_FlyToWhere[];
extern const u8 gStartMenuText_PokemonLeague[];
extern const u8 gStartMenuText_PokemonCenter[];
extern const u8 gText_ApostropheSBase[];
extern const u8 gText_NoRegistry[];
extern const u8 gText_OkayToDeleteFromRegistry[];
@@ -89,7 +87,7 @@ extern const u8 gText_IsThisTheCorrectTime[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
extern const u8 gText_EggNickname[];
extern const u8 gStartMenuText_Pokemon[];
extern const u8 gText_MenuPokemon[];
extern const u8 gOtherText_Use[];
extern const u8 gOtherText_Toss[];
@@ -97,7 +95,7 @@ extern const u8 gOtherText_Give[];
extern const u8 gOtherText_Exit[];
extern const u8 gText_ThreeHyphens[];
extern const u8 gText_SevenHyphens[];
extern const u8 gOtherText_UnkF9_08_Clear_01[];
extern const u8 gText_NumberClear01[];
extern const u8 gText_TimesStrVar1[];
extern const u8 gText_IsSelected[];
extern const u8 gText_ThereIsNoPokemon[];
@@ -170,20 +168,20 @@ extern const u8 gText_Withdraw[];
extern const u8 gText_ReturnToPC[];
extern const u8 gText_OakForbidsUseOfItemHere[];
extern const u8 gUnknown_8416451[];
extern const u8 gUnknown_8416537[];
extern const u8 gUnknown_841658C[];
extern const u8 gUnknown_841659E[];
extern const u8 gUnknown_84165D2[];
extern const u8 gUnknown_8416600[];
extern const u8 gUnknown_8416631[];
extern const u8 gUnknown_8416644[];
extern const u8 gUnknown_841665C[];
extern const u8 gUnknown_8416690[];
extern const u8 gUnknown_84166A7[];
extern const u8 gText_CantDismountBike[];
extern const u8 gText_CoinCase[];
extern const u8 gText_PlayerUsedVar2[];
extern const u8 gText_RepelEffectsLingered[];
extern const u8 gText_UsedVar2WildLured[];
extern const u8 gText_UsedVar2WildRepelled[];
extern const u8 gText_BoxFull[];
extern const u8 gText_PowderQty[];
extern const u8 gText_PlayedPokeFluteCatchy[];
extern const u8 gText_PlayedPokeFlute[];
extern const u8 gText_PokeFluteAwakenedMon[];
extern const u8 gText_WontHaveEffect[];
extern const u8 gUnknown_841623D[];
extern const u8 gUnknown_84162BD[];
extern const u8 gText_YesNo[];
extern const u8 gText_Berry[];
extern const u8 gText_Ghost[];
// pokemon
@@ -196,11 +194,11 @@ extern const u8 gText_PkmnsXPreventsSwitching[];
extern const u8 *const gStatNamesTable[];
// diploma
extern const u8 gUnknown_841B60E[];
extern const u8 gUnknown_841B619[];
extern const u8 gUnknown_841B684[];
extern const u8 gUnknown_841B68F[];
extern const u8 gUnknown_841B698[];
extern const u8 gText_Diploma_Player[];
extern const u8 gText_Diploma_ThisDocument[];
extern const u8 gText_Diploma_GameFreak[];
extern const u8 gText_Diploma_National[];
extern const u8 gText_Diploma_Kanto[];
// battle_records
extern const u8 gString_BattleRecords_PlayersBattleResults[];
@@ -216,12 +214,12 @@ extern const u8 gString_SlotMachineControls[];
// battle_controller_safari
extern const u8 gText_EmptyString3[];
extern const u8 gUnknown_83FE747[];
extern const u8 gText_SafariZoneMenu[];
extern const u8 gText_WhatWillPlayerThrow[];
// battle_controller_player
extern const u8 gText_BattleSwitchWhich[];
extern const u8 gUnknown_83FE770[];
extern const u8 gText_MoveInterfaceDynamicColors[];
extern const u8 gText_MoveInterfacePP[];
extern const u8 gText_MoveInterfaceType[];
extern const u8 gText_LinkStandby[];
@@ -330,7 +328,7 @@ extern const u8 gText_NotPkmnOtherTrainerWants[];
extern const u8 gText_ThatIsntAnEgg[];
extern const u8 gText_OtherTrainerCantAcceptPkmn[];
extern const u8 gText_CantTradeWithTrainer[];
extern const u8 gUnknown_84176CF[];
extern const u8 gText_CancelBattle[];
extern const u8 gText_PkmnWasGivenItem[];
extern const u8 gText_ReceivedItemFromPkmn[];
extern const u8 gText_PkmnAlreadyHoldingItemSwitch[];
@@ -339,7 +337,7 @@ extern const u8 gText_BagFullCouldNotRemoveItem[];
extern const u8 gText_PkmnCantParticipate[];
extern const u8 gText_CancelParticipation[];
extern const u8 gText_OakThisIsListOfPokemon[];
extern const u8 gMenuText_Confirm[];
extern const u8 gText_PartyMenu_OK[];
extern const u8 gText_MaleSymbol[];
extern const u8 gText_FemaleSymbol[];
extern const u8 gText_Slash[];
@@ -350,8 +348,8 @@ extern const u8 gText_MailSentToPC[];
extern const u8 gText_MailMessageWillBeLost[];
extern const u8 gText_SendMailToPC[];
extern const u8 gText_MailTakenFromPkmn[];
extern const u8 gUnknown_8416B3E[];
extern const u8 gUnknown_8416B16[];
extern const u8 gText_NoMoreThanTwoMayEnter[];
extern const u8 gText_NoMoreThanThreeMayEnter[];
extern const u8 gText_PauseUntilPress[];
extern const u8 gText_CantUseUntilNewBadge[];
extern const u8 gText_ReturnToHealingSpot[];
@@ -364,12 +362,12 @@ extern const u8 gText_PkmnCuredOfParalysis[];
extern const u8 gText_PkmnSnappedOutOfConfusion[];
extern const u8 gText_PkmnGotOverInfatuation[];
extern const u8 gText_PkmnBecameHealthy[];
extern const u8 gText_HP3[];
extern const u8 gText_Attack3[];
extern const u8 gText_Defense3[];
extern const u8 gText_Speed2[];
extern const u8 gText_SpAtk3[];
extern const u8 gText_SpDef3[];
extern const u8 gText_ItemEffect_HP[];
extern const u8 gText_ItemEffect_Attack[];
extern const u8 gText_ItemEffect_Defense[];
extern const u8 gText_ItemEffect_Speed[];
extern const u8 gText_ItemEffect_SpAtk[];
extern const u8 gText_ItemEffect_SpDef[];
extern const u8 gText_PkmnBaseVar2StatIncreased[];
extern const u8 gText_MovesPPIncreased[];
extern const u8 gText_PPWasRestored[];
@@ -503,14 +501,14 @@ extern const u8 gText_ABtnTitleScreen[];
extern const u8 gText_ABtnRegistrationCounter[];
// main_menu
extern const u8 gText_SaveFileCorruptedPrevWillBeLoaded[];
extern const u8 gText_SaveFileCorrupted[];
extern const u8 gText_SaveFileHasBeenDeleted[];
extern const u8 gText_1MSubCircuitBoardNotInstalled[];
extern const u8 gText_NewGame[];
extern const u8 gText_Continue[];
extern const u8 gText_MysteryGift[];
extern const u8 gText_WirelessAdapterIsNotConnected[];
extern const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[];
extern const u8 gText_WirelessNotConnected[];
extern const u8 gText_MysteryGiftCantUse[];
extern const u8 gText_Player[];
extern const u8 gText_Time[];
extern const u8 gText_Colon[];
@@ -626,14 +624,14 @@ extern const u8 gText_BagIsFull[];
extern const u8 gText_MailReturnedToBagMessageErased[];
// start_menu
extern const u8 gStartMenuText_Pokedex[];
extern const u8 gStartMenuText_Bag[];
extern const u8 gStartMenuText_Player[];
extern const u8 gStartMenuText_Save[];
extern const u8 gStartMenuText_Option[];
extern const u8 gStartMenuText_Exit[];
extern const u8 gStartMenuText_Retire[];
extern const u8 gUnknown_84162A9[];
extern const u8 gText_MenuPokedex[];
extern const u8 gText_MenuBag[];
extern const u8 gText_MenuPlayer[];
extern const u8 gText_MenuSave[];
extern const u8 gText_MenuOption[];
extern const u8 gText_MenuExit[];
extern const u8 gText_MenuRetire[];
extern const u8 gText_MenuSafariStats[];
extern const u8 gStartMenuDesc_Pokedex[];
extern const u8 gStartMenuDesc_Pokemon[];
extern const u8 gStartMenuDesc_Bag[];
@@ -763,7 +761,7 @@ extern const u8 gText_QuitLooking[];
extern const u8 gText_FreshWater[];
extern const u8 gText_SodaPop[];
extern const u8 gText_Lemonade[];
extern const u8 gText_Bicycle_1000000[];
extern const u8 gText_Bicycle_Price[];
extern const u8 gText_NoThanks[];
extern const u8 gText_Abra_180Coins[];
extern const u8 gText_Clefairy_500Coins[];
@@ -789,9 +787,9 @@ extern const u8 gText_ThreeIsland[];
extern const u8 gText_Vermilion[];
extern const u8 gText_Colosseum_2[];
extern const u8 gText_BerryCrush[];
extern const u8 gText_Dummy_8417E66[];
extern const u8 gText_Dummy_8417E67[];
extern const u8 gText_Dummy_8417E71[];
extern const u8 gText_EmptyLinkService1[];
extern const u8 gText_EmptyLinkService2[];
extern const u8 gText_RecordCorner[];
extern const u8 gText_PokemonJump[];
extern const u8 gText_DodrioBerryPicking[];
extern const u8 gText_2Tinymushrooms[];
@@ -804,8 +802,8 @@ extern const u8 gText_Charcoal_1000Coins[];
extern const u8 gText_MysticWater_1000Coins[];
extern const u8 gText_YellowFlute_1600Coins[];
extern const u8 gText_SmokeBall_800Coins[];
extern const u8 gText_Dummy_8417F67[];
extern const u8 gText_Dummy_8417F68[];
extern const u8 gText_Multichoice_Empty1[];
extern const u8 gText_Multichoice_Empty2[];
extern const u8 gText_BecomeLeader[];
extern const u8 gText_JoinGroup[];
extern const u8 gText_Cool_2[];
@@ -848,16 +846,16 @@ extern const u8 gTradeText_Cancel[];
extern const u8 gTradeText_ChooseAPokemon[];
extern const u8 gTradeText_Summary[];
extern const u8 gTradeText_Trade[];
extern const u8 gTradeText_CancelTrade[];
extern const u8 gText_CancelTrade[];
extern const u8 gTradeText_PressBButtonToExit[];
extern const u8 gUnknown_841E10A[];
extern const u8 gUnknown_841E112[];
extern const u8 gUnknown_841E118[];
extern const u8 gUnknown_841E145[];
extern const u8 gUnknown_841E16B[];
extern const u8 gUnknown_8417094[];
extern const u8 gUnknown_841E199[];
extern const u8 gUnknown_841E1C5[];
extern const u8 gText_TradeAction_Summary[];
extern const u8 gText_TradeAction_Trade[];
extern const u8 gText_Trade_CommunicationStandby[];
extern const u8 gText_TradeHasBeenCanceled[];
extern const u8 gText_Trade_OnlyPkmnForBattle[];
extern const u8 gText_OnlyPkmnForBattle[];
extern const u8 gText_WaitingForFriendToFinish[];
extern const u8 gText_FriendWantsToTrade[];
extern const u8 gText_PkmnCantBeTradedNow[];
extern const u8 gText_EggCantBeTradedNow[];
extern const u8 gText_OtherTrainersPkmnCantBeTraded[];
@@ -938,7 +936,7 @@ extern const u8 gText_SoundStereo[];
extern const u8 gText_ButtonTypeHelp[];
extern const u8 gText_ButtonTypeLR[];
extern const u8 gText_ButtonTypeLEqualsA[];
extern const u8 gText_MenuOption[];
extern const u8 gText_Option[];
extern const u8 gText_FrameType[];
extern const u8 gTextJP_Type[];
extern const u8 gText_PickSwitchCancel[];
@@ -953,7 +951,7 @@ extern const u8 gText_PkmnStoppedEvolving[];
extern const u8 gText_ShopBuy[];
extern const u8 gText_ShopSell[];
extern const u8 gText_ShopQuit[];
extern const u8 gText_CanIHelpWithAnythingElse[];
extern const u8 gText_AnythingElseICanHelp[];
extern const u8 gText_QuitShopping[];
extern const u8 gText_PokedollarVar1[];
extern const u8 gText_YouDontHaveMoney[];
@@ -1073,9 +1071,9 @@ extern const u8 gText_PlayerScurriedToCenter[];
extern const u8 gText_PlayerScurriedBackHome[];
// save_failed_screen
extern const u8 gText_SaveFailedScreen_CheckingBackupMemory[];
extern const u8 gText_SaveFailedScreen_BackupMemoryDamaged[];
extern const u8 gText_SaveFailedScreen_SaveCompleted[];
extern const u8 gText_SaveFailedCheckingBackup[];
extern const u8 gText_BackupMemoryDamaged[];
extern const u8 gText_SaveCompletePressA[];
// bag
extern const u8 gText_DepositItem[];
@@ -1133,10 +1131,10 @@ extern const u8 gText_Register2[];
extern const u8 gText_Exit[];
// wireless_communication_status_screen
extern const u8 gUnknown_841E2B4[];
extern const u8 gUnknown_841E2BF[];
extern const u8 gUnknown_841E2C9[];
extern const u8 gUnknown_841E2D4[];
extern const u8 gText_Dynamic0Players[];
extern const u8 gText_Dynamic1Players[];
extern const u8 gText_Dynamic2Players[];
extern const u8 gText_Dynamic3Players[];
extern const u8 gText_WirelessCommunicationStatus[];
extern const u8 gText_PeopleTrading[];
extern const u8 gText_PeopleBattling[];
@@ -1174,11 +1172,11 @@ extern const u8 gText_ExcellentsInARow[];
extern const u8 gText_PkmnJumpRecords[];
// cable_club
extern const u8 gUnknown_841DF82[];
extern const u8 gUnknown_841DF8B[];
extern const u8 gUnknown_841DF92[];
extern const u8 gUnknown_841DF99[];
extern const u8 gUnknown_841DFA0[];
extern const u8 gText_NumPlayerLink[];
extern const u8 gText_BronzeCard[];
extern const u8 gText_CopperCard[];
extern const u8 gText_SilverCard[];
extern const u8 gText_GoldCard[];
// berry_crush
extern const u8 gText_BerryCrush_AreYouReady[];
@@ -1192,7 +1190,7 @@ extern const u8 gText_BerryCrush_TimeUp[];
extern const u8 gText_BerryCrush_CommunicationStandby[];
extern const u8 gText_1_ClrBluShdwLtBlu_Dynamic0[];
extern const u8 gText_1_Dynamic0[];
extern const u8 gText_SpaceTimes[];
extern const u8 gText_SpaceTimes2[];
extern const u8 gText_XDotY[];
extern const u8 gText_StrVar1Berry[];
extern const u8 gText_TimeColon[];
@@ -1342,45 +1340,45 @@ extern const u8 gText_QuestLog_PokemonLeague[];
extern const u8 gText_QuestLog_CeruleanCave[];
// clear_save_data_screen
extern const u8 gUnknown_841B69E[];
extern const u8 gUnknown_841B6B9[];
extern const u8 gText_ClearAllSaveData[];
extern const u8 gText_ClearingData[];
// easy_chat_2
extern const u8 gUnknown_84186D1[];
extern const u8 gUnknown_84186EF[];
extern const u8 gUnknown_8418706[];
extern const u8 gUnknown_8418725[];
extern const u8 gUnknown_8418745[];
extern const u8 gUnknown_8418763[];
extern const u8 gUnknown_8418780[];
extern const u8 gUnknown_841879E[];
extern const u8 gUnknown_84187B2[];
extern const u8 gUnknown_84187D1[];
extern const u8 gUnknown_84187EE[];
extern const u8 gUnknown_841880E[];
extern const u8 gUnknown_841881B[];
extern const u8 gUnknown_841883E[];
extern const u8 gUnknown_841885F[];
extern const u8 gUnknown_8418881[];
extern const u8 gUnknown_841888C[];
extern const u8 gUnknown_84188AC[];
extern const u8 gUnknown_84188B9[];
extern const u8 gUnknown_84188D6[];
extern const u8 gUnknown_84188F0[];
extern const u8 gUnknown_8418902[];
extern const u8 gUnknown_8418937[];
extern const u8 gUnknown_8418956[];
extern const u8 gUnknown_84189E0[];
extern const u8 gUnknown_84189EE[];
extern const u8 gUnknown_8418A2B[];
extern const u8 gUnknown_8418A33[];
extern const u8 gUnknown_8418A4A[];
extern const u8 gUnknown_8418A61[];
extern const u8 gUnknown_8418A77[];
extern const u8 gUnknown_8418A87[];
extern const u8 gUnknown_8418AA1[];
extern const u8 gUnknown_8418AB2[];
extern const u8 gUnknown_841EE2B[];
extern const u8 gText_CombineFourWordsOrPhrases[];
extern const u8 gText_AndMakeYourProfile[];
extern const u8 gText_MakeMessageSixPhrases[];
extern const u8 gText_MaxTwoTwelveLetterPhrases[];
extern const u8 gText_FindWordsThatDescribeYour[];
extern const u8 gText_FeelingsRightNow[];
extern const u8 gText_CombineNineWordsOrPhrases[];
extern const u8 gText_AndMakeAMessage[];
extern const u8 gText_ChangeJustOneWordOrPhrase[];
extern const u8 gText_AndImproveTheBardsSong[];
extern const u8 gText_AndFillOutTheQuestionnaire[];
extern const u8 gText_YourProfile[];
extern const u8 gText_YourFeelingAtTheBattlesStart[];
extern const u8 gText_WhatYouSayIfYouWin[];
extern const u8 gText_WhatYouSayIfYouLose[];
extern const u8 gText_TheAnswer[];
extern const u8 gText_TheMailMessage[];
extern const u8 gText_TheNewSong[];
extern const u8 gText_CombineTwoWordsOrPhrases[];
extern const u8 gText_AndMakeATrendySaying[];
extern const u8 gText_TheTrendySaying[];
extern const u8 gText_IsAsShownOkay[];
extern const u8 gText_AllTextBeingEditedWill[];
extern const u8 gText_BeDeletedThatOkay[];
extern const u8 gText_QuitEditing[];
extern const u8 gText_StopGivingPkmnMail[];
extern const u8 gText_Profile[];
extern const u8 gText_AtTheBattlesStart[];
extern const u8 gText_UponWinningABattle[];
extern const u8 gText_UponLosingABattle[];
extern const u8 gText_TheBardsSong[];
extern const u8 gText_WhatsHipAndHappening[];
extern const u8 gText_Interview[];
extern const u8 gText_Questionnaire[];
extern const u8 gText_DelAllCancelOk[];
// naming_screen
extern const u8 gText_MoveOkBack[];
@@ -1474,26 +1472,26 @@ extern const u8 gPCText_Machine[];
extern const u8 gPCText_Simple[];
// pokemon_special_anim
extern const u8 gUnknown_841B2ED[];
extern const u8 gUnknown_841B2F1[];
extern const u8 gUnknown_841B2FF[];
extern const u8 gUnknown_841B285[];
extern const u8 gUnknown_841B293[];
extern const u8 gUnknown_841B295[];
extern const u8 gUnknown_841B2A7[];
extern const u8 gUnknown_841B32E[];
extern const u8 gUnknown_841B306[];
extern const u8 gUnknown_841B315[];
extern const u8 gUnknown_841B31B[];
extern const u8 gUnknown_841B329[];
extern const u8 gUnknown_841B2A9[];
extern const u8 gUnknown_841B2B7[];
extern const u8 gUnknown_841B2BE[];
extern const u8 gUnknown_841B2CC[];
extern const u8 gUnknown_841B2D4[];
extern const u8 gUnknown_841B2C6[];
extern const u8 gUnknown_841B2E5[];
extern const u8 gUnknown_841B2DC[];
extern const u8 gText_Counting_1[];
extern const u8 gText_Counting_2And[];
extern const u8 gText_Poof[];
extern const u8 gText_WasUsedOn[];
extern const u8 gText_Period[];
extern const u8 gText_LevelRoseTo[];
extern const u8 gText_Period2[];
extern const u8 gText_MonLearnedTMHM[];
extern const u8 gText_MonForgotMove[];
extern const u8 gText_And[];
extern const u8 gText_MachineSet[];
extern const u8 gText_Huh[];
extern const u8 gText_LevelUp_MaxHP[];
extern const u8 gText_LevelUp_Attack[];
extern const u8 gText_LevelUp_Defense[];
extern const u8 gText_LevelUp_SpAtk[];
extern const u8 gText_LevelUp_SpDef[];
extern const u8 gText_LevelUp_Speed[];
extern const u8 gText_LevelUp_Minus[];
extern const u8 gText_LevelUp_Plus[];
// field_player_avatar
extern const u8 gText_PokemonOnHook[];
+10 -10
View File
@@ -10,18 +10,18 @@ struct TilesPal
};
void rbox_fill_rectangle(u8 windowId);
const u16 *stdpal_get(u8 id);
const u16 *GetTextWindowPalette(u8 id);
const u16 *GetOverworldTextboxPalettePtr(void);
void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette);
void DrawWindowBorderWithStdpal3(u8 bgId, u16 tileStart, u8 palette);
void LoadMenuMessageWindowGfx(u8 windowId, u16 tileStart, u8 palette);
void LoadStdWindowGfx(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowGfx(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowGfx2(u8 windowId, u16 tileStart, u8 palette);
void LoadStdWindowGfxOnBg(u8 bgId, u16 tileStart, u8 palette);
void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette);
void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum);
void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset);
void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx);
void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx);
void sub_814FF6C(u8 windowId, u16 destOffset);
void LoadHelpMessageWindowGfx(u8 windowId, u16 destOffset, u8 palIdx);
void LoadSignpostWindowGfx(u8 windowId, u16 destOffset, u8 palIdx);
void LoadStdWindowTiles(u8 windowId, u16 destOffset);
void LoadQuestLogWindowTiles(u8 windowId, u16 destOffset);
#endif // GUARD_TEXT_WINDOW_H
+5 -5
View File
@@ -7,13 +7,13 @@ struct TextWindowGraphics
const void *palette;
};
extern const u16 gUnknown_8470B0C[];
extern const u16 gStdFrame0[];
extern const u16 gStdFrame1[];
extern const u16 gUnknown_8471DEC[][16];
extern const u16 gSignpostWindow_Gfx[];
extern const u16 gStdTextWindow_Gfx[];
extern const u16 gQuestLogWindow_Gfx[];
extern const u16 gTextWindowPalettes[][16];
extern const struct TextWindowGraphics gUserFrames[];
const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx);
const struct TextWindowGraphics *GetUserWindowGraphics(u8 idx);
#endif //GUARD_TEXT_WINDOW_GRAPHICS_H
+12
View File
@@ -0,0 +1,12 @@
#ifndef GUARD_TILEMAP_UTIL_H
#define GUARD_TILEMAP_UTIL_H
void TilemapUtil_Init(u8 numTilemapIds);
void TilemapUtil_Free(void);
void TilemapUtil_SetTilemap(u8 tilemapId, u8 bg, const void *tilemap, u16 width, u16 height);
void TilemapUtil_SetPos(u8 tilemapId, u16 destX, u16 destY);
void TilemapUtil_SetRect(u8 tilemapId, u16 x, u16 y, u16 width, u16 height);
void TilemapUtil_Move(u8 tilemapId, u8 mode, s8 param);
void TilemapUtil_Update(u8 tilemapId);
#endif //GUARD_TILEMAP_UTIL_H
+7
View File
@@ -6,4 +6,11 @@ void InitSecondaryTilesetAnimation(void);
void UpdateTilesetAnimations(void);
void TransferTilesetAnimsBuffer(void);
void InitTilesetAnim_General(void);
void InitTilesetAnim_CeladonCity(void);
void InitTilesetAnim_VermilionGym(void);
void InitTilesetAnim_CeladonGym(void);
void InitTilesetAnim_SilphCo(void);
void InitTilesetAnim_MtEmber(void);
#endif // GUARD_TILESET_ANIMS_H
+9 -11
View File
@@ -1,15 +1,13 @@
#ifndef GUARD_tilesets_H
#define GUARD_tilesets_H
#ifndef GUARD_TILESETS_H
#define GUARD_TILESETS_H
#include "global.h"
extern const u32 gTilesetTiles_General[];
extern const u16 gTilesetPalettes_General[][16];
// Exported type declarations
extern const u32 gTilesetTiles_GenericBuilding1[];
extern const u16 gTilesetPalettes_GenericBuilding1[][16];
// Exported RAM declarations
extern const u32 gTilesetTiles_DepartmentStore[];
extern const u16 gTilesetPalettes_DepartmentStore[][16];
// Exported ROM declarations
extern struct Tileset *gTilesetPointer_SecretBase;
extern struct Tileset *gTilesetPointer_SecretBaseRedCave;
#endif //GUARD_tilesets_H
#endif // GUARD_TILESETS_H
+107 -107
View File
@@ -3,112 +3,112 @@
#include "global.h"
extern const u8 gUnionRoomActivity_Blank[];
extern const u8 gUnknown_84571B0[];
extern const u8 gUnknown_84571B4[];
extern const u8 gUnknown_84571B8[];
extern const u8 gUnknown_84571E0[];
extern const u8 gUnknown_8457234[];
extern const u8 gUnknown_8457264[];
extern const u8 *const gUnknown_845742C[][5];
extern const u8 gUnknown_845747C[];
extern const u8 gUnknown_84574A0[];
extern const u8 gUnknown_84574C4[];
extern const u8 gUnknown_84574EC[];
extern const u8 gUnknown_8457514[];
extern const u8 gUnknown_8457530[];
extern const u8 gUnknown_8457554[];
extern const u8 *const gUnknown_8457608[];
extern const u8 gUnknown_8457610[];
extern const u8 *const gUnknown_845767C[];
extern const u8 gUnknown_84576AC[];
extern const u8 gUnknown_84576C4[];
extern const u8 gUnknown_8457700[];
extern const u8 gUnknown_845771C[];
extern const u8 *const gUnknown_8457754[];
extern const u8 gUnknown_845777C[];
extern const u8 gUnknown_84577BC[];
extern const u8 gUnknown_84577F8[];
extern const u8 *const gUnknown_8457838[];
extern const u8 gUnknown_84578BC[];
extern const u8 *const gURText_PleaseWaitMsgs[];
extern const u8 *const gURText_FriendPromptsForActivity[][2];
extern const u8 *const gUnknown_8457BCC[];
extern const u8 *const gUnknown_8457C20[];
extern const u8 gUnknown_8457C48[];
extern const u8 gUnknown_8457CA4[];
extern const u8 gUnknown_8457CF8[];
extern const u8 gUnknown_8457D44[];
extern const u8 gUnknown_8457DB8[];
extern const u8 gUnknown_8457E0C[];
extern const u8 gUnknown_8457E28[];
extern const u8 gUnknown_8457E44[];
extern const u8 gUnknown_8457E60[];
extern const u8 *const gUnknown_8457F80[][2];
extern const u8 gUnknown_8457F90[];
extern const u8 *const gResponseToURoomActivityInviteStringPtrs[][4];
extern const u8 *const gUnknown_8458230[][2][3];
extern const u8 *const gUnknown_8458314[];
extern const u8 *const gUnknown_84583B4[];
extern const u8 *const gUnknown_845842C[];
extern const u8 gUnknown_8458434[];
extern const u8 gUnknown_845847C[];
extern const u8 gUnknown_84584C0[];
extern const u8 *const gUnknown_8458548[];
extern const u8 *const gUnknown_84585E8[];
extern const u8 *const gUnknown_8458758[2][4];
extern const u8 *const gUnknown_84588BC[2][4];
extern const u8 *const gUnknown_84589AC[2][2];
extern const u8 *const gUnknown_8458A78[2][4];
extern const u8 gUnknown_8458A98[];
extern const u8 gUnknown_8458AB8[];
extern const u8 gUnknown_8458B44[];
extern const u8 gURText_PleaseChooseTypeOfMon[];
extern const u8 gUnknown_8458D1C[];
extern const u8 gUnknown_8458D54[];
extern const u8 gUnknown_8458D78[];
extern const u8 gUnknown_8458D9C[];
extern const u8 gUnknown_8458DBC[];
extern const u8 gUnknown_8458DE8[];
extern const u8 gUnknown_8458E10[];
extern const u8 gUnknown_8458E70[];
extern const u8 gUnknown_8458ED0[];
extern const u8 gUnknown_8458F04[];
extern const u8 gUnknown_8458F9C[];
extern const u8 gText_EggTrade[];
extern const u8 gUnknown_8458FC8[];
extern const u8 gUnknown_8458FE4[];
extern const u8 gUnknown_84591DC[];
extern const u8 *const gUnknown_84591B8[];
extern const u8 gUnknown_8459238[];
extern const u8 gUnknown_8459250[];
extern const u8 gUnknown_845928C[];
extern const u8 *const gUnknown_845933C[];
extern const u8 gUnknown_8459344[];
extern const u8 gUnknown_845934C[];
extern const u8 gUnknown_8459354[];
extern const u8 gUnknown_8459360[];
extern const u8 gUnknown_8459368[];
extern const u8 gUnknown_8459370[];
extern const u8 gUnknown_8459378[];
extern const u8 gUnionRoomActivity_SingleBattle[];
extern const u8 gUnionRoomActivity_DoubleBattle[];
extern const u8 gUnionRoomActivity_MultiBattle[];
extern const u8 gUnionRoomActivity_PokemonTrades[];
extern const u8 gUnionRoomActivity_Chat[];
extern const u8 gUnionRoomActivity_WonderCards[];
extern const u8 gunionRoomActivity_WonderNews[];
extern const u8 gUnionRoomActivity_Cards[];
extern const u8 gUnionRoomActivity_PokemonJump[];
extern const u8 gUnionRoomActivity_BerryCrush[];
extern const u8 gUnionRoomActivity_BerryPicking[];
extern const u8 gUnionRoomActivity_Search[];
extern const u8 gUnionRoomActivity_SpinTradeJP[];
extern const u8 gUnionRoomActivity_ItemTradeJP[];
extern const u8 *const gUnknown_84594B0[];
extern const u8 gUnknown_84594C4[];
extern const u8 gUnknown_8459504[];
extern const u8 *const gUnknown_8459580[];
extern const u8 gUnknown_8459588[];
extern const u8 gText_UR_EmptyString[];
extern const u8 gText_UR_Colon[];
extern const u8 gText_UR_ID[];
extern const u8 gText_UR_PleaseStartOver[];
extern const u8 gText_UR_WirelessSearchCanceled[];
extern const u8 gText_UR_AwaitingCommunication[];
extern const u8 gText_UR_AwaitingLinkPressStart[];
extern const u8 *const gTexts_UR_PlayersNeededOrMode[][5];
extern const u8 gText_UR_BButtonCancel[];
extern const u8 gText_UR_PlayerContactedYouForXAccept[];
extern const u8 gText_UR_PlayerContactedYouShareX[];
extern const u8 gText_UR_PlayerContactedYouAddToMembers[];
extern const u8 gText_UR_AreTheseMembersOK[];
extern const u8 gText_UR_CancelModeWithTheseMembers[];
extern const u8 gText_UR_AnOKWasSentToPlayer[];
extern const u8 *const gTexts_UR_CantTransmitToTrainer[];
extern const u8 gText_UR_ModeWithTheseMembersWillBeCanceled[];
extern const u8 *const gTexts_UR_PlayerUnavailable[];
extern const u8 gText_UR_PlayerSentBackOK[];
extern const u8 gText_UR_PlayerOKdRegistration[];
extern const u8 gText_UR_AwaitingOtherMembers[];
extern const u8 gText_UR_QuitBeingMember[];
extern const u8 *const gTexts_UR_PlayerDisconnected[];
extern const u8 gText_UR_WirelessLinkEstablished[];
extern const u8 gText_UR_WirelessLinkDropped[];
extern const u8 gText_UR_LinkWithFriendDropped[];
extern const u8 *const gTexts_UR_LinkDropped[];
extern const u8 gText_UR_AwaitingPlayersResponseAboutTrade[];
extern const u8 *const gTexts_UR_CommunicatingWait[];
extern const u8 *const gTexts_UR_HiDoSomething[][GENDER_COUNT];
extern const u8 *const gTexts_UR_PlayerContactedYou[];
extern const u8 *const gTexts_UR_AwaitingResponse[];
extern const u8 gText_UR_ShowTrainerCard[];
extern const u8 gText_UR_BattleChallenge[];
extern const u8 gText_UR_ChatInvitation[];
extern const u8 gText_UR_OfferToTradeMon[];
extern const u8 gText_UR_OfferToTradeEgg[];
extern const u8 gText_UR_ChatDropped[];
extern const u8 gText_UR_OfferDeclined1[];
extern const u8 gText_UR_OfferDeclined2[];
extern const u8 gText_UR_ChatEnded[];
extern const u8 *const gTexts_UR_JoinChat[][GENDER_COUNT];
extern const u8 gText_UR_TrainerAppearsBusy[];
extern const u8 *const gTexts_UR_WaitOrShowCard[GENDER_COUNT][4];
extern const u8 *const gTexts_UR_StartActivity[][GENDER_COUNT][3];
extern const u8 *const gTexts_UR_BattleDeclined[GENDER_COUNT];
extern const u8 *const gTexts_UR_ShowTrainerCardDeclined[GENDER_COUNT];
extern const u8 *const gTexts_UR_IfYouWantToDoSomething[GENDER_COUNT];
extern const u8 gText_UR_TrainerBattleBusy[];
extern const u8 gText_UR_NeedTwoMonsOfLevel30OrLower1[];
extern const u8 gText_UR_NeedTwoMonsOfLevel30OrLower2[];
extern const u8 *const gTexts_UR_DeclineChat[GENDER_COUNT];
extern const u8 *const gTexts_UR_ChatDeclined[GENDER_COUNT];
extern const u8 *const gTexts_UR_BattleReaction[GENDER_COUNT][4];
extern const u8 *const gTexts_UR_ChatReaction[GENDER_COUNT][4];
extern const u8 *const gTexts_UR_TrainerCardReaction[GENDER_COUNT][2];
extern const u8 *const gTexts_UR_TradeReaction[GENDER_COUNT][4];
extern const u8 gText_UR_XCheckedTradingBoard[];
extern const u8 gText_UR_RegisterMonAtTradingBoard[];
extern const u8 gText_UR_TradingBoardInfo[];
extern const u8 gText_UR_ChooseRequestedMonType[];
extern const u8 gText_UR_WhichMonWillYouOffer[];
extern const u8 gText_UR_RegistrationCanceled[];
extern const u8 gText_UR_RegistraionCompleted[];
extern const u8 gText_UR_TradeCanceled[];
extern const u8 gText_UR_CancelRegistrationOfMon[];
extern const u8 gText_UR_CancelRegistrationOfEgg[];
extern const u8 gText_UR_RegistrationCanceled2[];
extern const u8 gText_UR_AskTrainerToMakeTrade[];
extern const u8 gText_UR_DontHaveTypeTrainerWants[];
extern const u8 gText_UR_DontHaveEggTrainerWants[];
extern const u8 gText_UR_TradeOfferRejected[];
extern const u8 gText_UR_EggTrade[];
extern const u8 gText_UR_ChooseJoinCancel[];
extern const u8 gText_UR_ChooseTrainer[];
extern const u8 gText_UR_SearchingForWirelessSystemWait[];
extern const u8 *const gTexts_UR_ChooseTrainer[];
extern const u8 gText_UR_AwaitingPlayersResponse[];
extern const u8 gText_UR_PlayerHasBeenAskedToRegisterYouPleaseWait[];
extern const u8 gText_UR_AwaitingResponseFromWirelessSystem[];
extern const u8 *const gTexts_UR_NoWonderShared[];
extern const u8 gText_UR_Battle[];
extern const u8 gText_UR_Chat2[];
extern const u8 gText_UR_Greetings[];
extern const u8 gText_UR_Exit[];
extern const u8 gText_UR_Exit2[];
extern const u8 gText_UR_Info[];
extern const u8 gText_UR_NameWantedOfferLv[];
extern const u8 gText_UR_SingleBattle[];
extern const u8 gText_UR_DoubleBattle[];
extern const u8 gText_UR_MultiBattle[];
extern const u8 gText_UR_PokemonTrades[];
extern const u8 gText_UR_Chat[];
extern const u8 gText_UR_WonderCards[];
extern const u8 gText_UR_WonderNews[];
extern const u8 gText_UR_Cards[];
extern const u8 gText_UR_PokemonJump[];
extern const u8 gText_UR_BerryCrush[];
extern const u8 gText_UR_BerryPicking[];
extern const u8 gText_UR_Search[];
extern const u8 gText_UR_SpinTrade[];
extern const u8 gText_UR_ItemTrade[];
extern const u8 *const gTexts_UR_CardColor[];
extern const u8 gText_UR_TrainerCardInfoPage1[];
extern const u8 gText_UR_TrainerCardInfoPage2[];
extern const u8 *const gTexts_UR_GladToMeetYou[GENDER_COUNT];
extern const u8 gText_UR_FinishedCheckingPlayersTrainerCard[];
#endif //GUARD_UNION_ROOM_MESSAGE_H