Merge branch 'master' into clone-union

This commit is contained in:
GriffinR
2022-09-03 14:31:04 -04:00
committed by GitHub
353 changed files with 20156 additions and 19152 deletions
+3 -3
View File
@@ -30,7 +30,7 @@
&& !(gDisableStructs[battler].mimickedMoves & gBitTable[moveSlot]))
#define TRAINER_OPPONENT_3FE 0x3FE
#define TRAINER_OPPONENT_C00 0xC00
#define TRAINER_UNION_ROOM 0xC00
#define TRAINER_LINK_OPPONENT 0x800
#define SECRET_BASE_OPPONENT 0x400
@@ -402,8 +402,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;
+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
+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
-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 -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
+2
View File
@@ -12,6 +12,8 @@
#define MAP(map) MAP_GROUP(map), MAP_NUM(map)
#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)
+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
+1
View File
@@ -16,6 +16,7 @@
#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
+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];
+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);
-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))
+1
View File
@@ -9,6 +9,7 @@
#include "constants/vars.h"
#include "constants/species.h"
#include "constants/easy_chat.h"
#include "constants/rgb.h"
// Prevent cross-jump optimization.
#define BLOCK_CROSS_JUMP asm("");
+14 -10
View File
@@ -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[];
+21 -14
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
@@ -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);
+7 -1
View File
@@ -3,6 +3,12 @@
#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
struct MEventClientHeaderStruct
{
u32 unk_00;
@@ -85,7 +91,7 @@ bool32 WonderCard_Test_Unk_08_6(void);
u32 MENews_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);
+1 -1
View File
@@ -31,7 +31,7 @@ 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 Menu_LoadStdPal(void);
+1 -1
View File
@@ -78,7 +78,7 @@ 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 PaletteStruct_ResetById(u16 a1);
void ResetPaletteStruct(u8 paletteNum);
#endif // GUARD_PALETTE_H
+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);
+12 -17
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,7 +55,7 @@ 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);
@@ -77,7 +72,7 @@ bool8 CanWalkAwayToCancelMsgBox(void);
void SetWalkingIntoSignVars(void);
bool8 IsMsgBoxWalkawayDisabled(void);
extern const u8 *gRAMScriptPtr;
extern const u8 *gRamScriptRetAddr;
extern u8 gWalkAwayFromSignInhibitTimer;
#endif // GUARD_SCRIPT_H
+1
View File
@@ -4,6 +4,7 @@
#include "global.h"
#define MAX_SPRITES 64
#define SPRITE_NONE 0xFF
#define TAG_NONE 0xFFFF
struct SpriteSheet
+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);
+7 -7
View File
@@ -216,12 +216,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[];
@@ -1174,11 +1174,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[];
+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