Merge branch 'master' of https://github.com/GriffinRichards/pokefirered into clone-union
This commit is contained in:
+60
-49
@@ -4,6 +4,7 @@
|
||||
#include <limits.h>
|
||||
#include "global.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/battle_script_commands.h"
|
||||
#include "battle_util.h"
|
||||
#include "battle_script_commands.h"
|
||||
#include "battle_main.h"
|
||||
@@ -23,18 +24,25 @@
|
||||
#define GET_BATTLER_SIDE(battler)((GetBattlerPosition(battler) & BIT_SIDE))
|
||||
#define GET_BATTLER_SIDE2(battler)((GET_BATTLER_POSITION(battler) & BIT_SIDE))
|
||||
|
||||
// Used to exclude moves learned temporarily by Transform or Mimic
|
||||
#define MOVE_IS_PERMANENT(battler, moveSlot) \
|
||||
(!(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
|
||||
#define B_ACTION_USE_ITEM 1
|
||||
#define B_ACTION_SWITCH 2
|
||||
#define B_ACTION_RUN 3
|
||||
#define B_ACTION_SAFARI_WATCH_CAREFULLY 4
|
||||
#define B_ACTION_SAFARI_BALL 5
|
||||
#define B_ACTION_SAFARI_BAIT 6
|
||||
#define B_ACTION_SAFARI_BAIT 6
|
||||
#define B_ACTION_SAFARI_GO_NEAR 7
|
||||
#define B_ACTION_SAFARI_RUN 8
|
||||
#define B_ACTION_OLDMAN_THROW 9
|
||||
@@ -47,26 +55,23 @@
|
||||
|
||||
#define MAX_TRAINER_ITEMS 4
|
||||
|
||||
// array entries for battle communication
|
||||
#define MULTIUSE_STATE 0x0
|
||||
#define CURSOR_POSITION 0x1
|
||||
#define TASK_ID 0x1 // task Id and cursor position share the same field
|
||||
#define SPRITES_INIT_STATE1 0x1 // shares the Id as well
|
||||
#define SPRITES_INIT_STATE2 0x2
|
||||
#define MOVE_EFFECT_BYTE 0x3
|
||||
#define ACTIONS_CONFIRMED_COUNT 0x4
|
||||
#define MULTISTRING_CHOOSER 0x5
|
||||
#define MSG_DISPLAY 0x7
|
||||
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8
|
||||
enum {
|
||||
BATTLER_AFFINE_NORMAL,
|
||||
BATTLER_AFFINE_EMERGE,
|
||||
BATTLER_AFFINE_RETURN,
|
||||
};
|
||||
|
||||
#define MOVE_TARGET_SELECTED 0x0
|
||||
#define MOVE_TARGET_DEPENDS 0x1
|
||||
#define MOVE_TARGET_USER_OR_SELECTED 0x2
|
||||
#define MOVE_TARGET_RANDOM 0x4
|
||||
#define MOVE_TARGET_BOTH 0x8
|
||||
#define MOVE_TARGET_USER 0x10
|
||||
#define MOVE_TARGET_FOES_AND_ALLY 0x20
|
||||
#define MOVE_TARGET_OPPONENTS_FIELD 0x40
|
||||
#define MOVE_TARGET_SELECTED 0
|
||||
#define MOVE_TARGET_DEPENDS (1 << 0)
|
||||
#define MOVE_TARGET_USER_OR_SELECTED (1 << 1)
|
||||
#define MOVE_TARGET_RANDOM (1 << 2)
|
||||
#define MOVE_TARGET_BOTH (1 << 3)
|
||||
#define MOVE_TARGET_USER (1 << 4)
|
||||
#define MOVE_TARGET_FOES_AND_ALLY (1 << 5)
|
||||
#define MOVE_TARGET_OPPONENTS_FIELD (1 << 6)
|
||||
|
||||
// For the second argument of GetMoveTarget, when no target override is needed
|
||||
#define NO_TARGET_OVERRIDE 0
|
||||
|
||||
struct TrainerMonNoItemDefaultMoves
|
||||
{
|
||||
@@ -159,7 +164,7 @@ struct DisableStruct
|
||||
/*0x16*/ u8 isFirstTurn;
|
||||
/*0x17*/ u8 unk17;
|
||||
/*0x18*/ u8 truantCounter : 1;
|
||||
/*0x18*/ u8 truantSwitchInHack : 1; // unused?
|
||||
/*0x18*/ u8 truantSwitchInHack : 1; // Unused here, but used in pokeemerald
|
||||
/*0x18*/ u8 unk18_a_2 : 2;
|
||||
/*0x18*/ u8 mimickedMoves : 4;
|
||||
/*0x19*/ u8 rechargeTimer;
|
||||
@@ -209,14 +214,14 @@ extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT];
|
||||
|
||||
struct SpecialStatus
|
||||
{
|
||||
u8 statLowered : 1; // 0x1
|
||||
u8 lightningRodRedirected : 1; // 0x2
|
||||
u8 restoredBattlerSprite: 1; // 0x4
|
||||
u8 intimidatedMon : 1; // 0x8
|
||||
u8 traced : 1; // 0x10
|
||||
u8 ppNotAffectedByPressure : 1;
|
||||
u8 flag40 : 1;
|
||||
u8 focusBanded : 1;
|
||||
u8 statLowered:1; // 0x1
|
||||
u8 lightningRodRedirected:1; // 0x2
|
||||
u8 restoredBattlerSprite:1; // 0x4
|
||||
u8 intimidatedMon:1; // 0x8
|
||||
u8 traced:1; // 0x10
|
||||
u8 ppNotAffectedByPressure:1;
|
||||
u8 faintedHasReplacement:1;
|
||||
u8 focusBanded:1;
|
||||
u8 field1[3];
|
||||
s32 dmg;
|
||||
s32 physicalDmg;
|
||||
@@ -455,17 +460,23 @@ struct BattleStruct
|
||||
|
||||
extern struct BattleStruct *gBattleStruct;
|
||||
|
||||
#define GET_MOVE_TYPE(move, typeArg) \
|
||||
{ \
|
||||
if (gBattleStruct->dynamicMoveType) \
|
||||
typeArg = gBattleStruct->dynamicMoveType & 0x3F; \
|
||||
else \
|
||||
typeArg = gBattleMoves[move].type; \
|
||||
#define F_DYNAMIC_TYPE_1 (1 << 6)
|
||||
#define F_DYNAMIC_TYPE_2 (1 << 7)
|
||||
#define DYNAMIC_TYPE_MASK (F_DYNAMIC_TYPE_1 - 1)
|
||||
|
||||
#define GET_MOVE_TYPE(move, typeArg) \
|
||||
{ \
|
||||
if (gBattleStruct->dynamicMoveType) \
|
||||
typeArg = gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK; \
|
||||
else \
|
||||
typeArg = gBattleMoves[move].type; \
|
||||
}
|
||||
|
||||
#define IS_TYPE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY)
|
||||
#define IS_TYPE_SPECIAL(moveType)(moveType > TYPE_MYSTERY)
|
||||
|
||||
#define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0))
|
||||
|
||||
#define IS_BATTLER_OF_TYPE(battlerId, type)((gBattleMons[battlerId].type1 == type || gBattleMons[battlerId].type2 == type))
|
||||
#define SET_BATTLER_TYPE(battlerId, type) \
|
||||
{ \
|
||||
@@ -492,7 +503,7 @@ struct BattleScripting
|
||||
u8 animArg1;
|
||||
u8 animArg2;
|
||||
u16 tripleKickPower;
|
||||
u8 atk49_state;
|
||||
u8 moveendState;
|
||||
u8 battlerWithAbility;
|
||||
u8 multihitMoveEffect;
|
||||
u8 battler;
|
||||
@@ -500,11 +511,11 @@ struct BattleScripting
|
||||
u8 animTargetsHit;
|
||||
u8 statChanger;
|
||||
bool8 statAnimPlayed;
|
||||
u8 atk23_state;
|
||||
u8 getexpState;
|
||||
u8 battleStyle;
|
||||
u8 atk6C_state;
|
||||
u8 drawlvlupboxState;
|
||||
u8 learnMoveState;
|
||||
u8 field_20;
|
||||
u8 pursuitDoublesAttacker;
|
||||
u8 reshowMainState;
|
||||
u8 reshowHelperState;
|
||||
u8 field_23;
|
||||
@@ -540,15 +551,15 @@ struct BattleAnimationInfo
|
||||
u8 field_6;
|
||||
u8 field_7;
|
||||
u8 ballThrowCaseId;
|
||||
u8 healthboxSlideInStarted : 1;
|
||||
u8 field_9_x2 : 1;
|
||||
u8 field_9_x1C : 3;
|
||||
u8 field_9_x20 : 1;
|
||||
u8 field_9_x40 : 1;
|
||||
u8 field_9_x80 : 1;
|
||||
u8 field_A;
|
||||
u8 introAnimActive:1;
|
||||
u8 wildMonInvisible:1;
|
||||
u8 field_9_x1C:3;
|
||||
u8 field_9_x20:1;
|
||||
u8 field_9_x40:1;
|
||||
u8 field_9_x80:1;
|
||||
u8 numBallParticles;
|
||||
u8 field_B;
|
||||
s16 field_C;
|
||||
s16 ballSubpx;
|
||||
u8 field_E;
|
||||
u8 field_F;
|
||||
};
|
||||
@@ -605,8 +616,8 @@ extern u8 *gLinkBattleRecvBuffer;
|
||||
|
||||
struct MonSpritesGfx
|
||||
{
|
||||
void* firstDecompressed; // ptr to the decompressed sprite of the first pokemon
|
||||
void* sprites[MAX_BATTLERS_COUNT];
|
||||
void *firstDecompressed; // ptr to the decompressed sprite of the first pokemon
|
||||
void *sprites[MAX_BATTLERS_COUNT];
|
||||
struct SpriteTemplate templates[MAX_BATTLERS_COUNT];
|
||||
struct SpriteFrameImage images[MAX_BATTLERS_COUNT][4];
|
||||
u8 field_F4[0x80]; // unused
|
||||
|
||||
@@ -165,8 +165,8 @@ 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 AnimSolarBeamBigOrb(struct Sprite *);
|
||||
void AnimSolarBeamSmallOrb(struct Sprite *);
|
||||
void AnimAbsorptionOrb(struct Sprite *);
|
||||
void AnimHyperBeamOrb(struct Sprite *);
|
||||
void AnimSporeParticle(struct Sprite *);
|
||||
@@ -317,7 +317,7 @@ void AnimRecycle(struct Sprite *);
|
||||
// battle_anim_special.c
|
||||
void TryShinyAnimation(u8 battler, struct Pokemon *mon);
|
||||
u8 ItemIdToBallId(u16 itemId);
|
||||
u8 LaunchBallStarsTask(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId);
|
||||
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);
|
||||
|
||||
@@ -68,17 +68,34 @@ enum
|
||||
REQUEST_TOUGH_RIBBON_BATTLE,
|
||||
};
|
||||
|
||||
#define RESET_ACTION_MOVE_SELECTION 0
|
||||
#define RESET_ACTION_SELECTION 1
|
||||
#define RESET_MOVE_SELECTION 2
|
||||
// Special arguments for Battle Controller functions.
|
||||
|
||||
#define BALL_NO_SHAKES 0
|
||||
#define BALL_1_SHAKE 1
|
||||
#define BALL_2_SHAKES 2
|
||||
#define BALL_3_SHAKES_FAIL 3
|
||||
#define BALL_3_SHAKES_SUCCESS 4
|
||||
#define BALL_TRAINER_BLOCK 5
|
||||
#define BALL_GHOST_DODGE 6
|
||||
enum { // Values given to the emit functions to choose gBattleBufferA or gBattleBufferB
|
||||
BUFFER_A,
|
||||
BUFFER_B
|
||||
};
|
||||
|
||||
enum {
|
||||
RESET_ACTION_MOVE_SELECTION,
|
||||
RESET_ACTION_SELECTION,
|
||||
RESET_MOVE_SELECTION,
|
||||
};
|
||||
|
||||
enum {
|
||||
BALL_NO_SHAKES,
|
||||
BALL_1_SHAKE,
|
||||
BALL_2_SHAKES,
|
||||
BALL_3_SHAKES_FAIL,
|
||||
BALL_3_SHAKES_SUCCESS,
|
||||
BALL_TRAINER_BLOCK,
|
||||
BALL_GHOST_DODGE,
|
||||
};
|
||||
|
||||
enum {
|
||||
LINK_STANDBY_MSG_STOP_BOUNCE,
|
||||
LINK_STANDBY_STOP_BOUNCE_ONLY,
|
||||
LINK_STANDBY_MSG_ONLY,
|
||||
};
|
||||
|
||||
#define RET_VALUE_LEVELLED_UP 11
|
||||
|
||||
@@ -149,7 +166,7 @@ enum
|
||||
CONTROLLER_STATUSXOR,
|
||||
CONTROLLER_DATATRANSFER,
|
||||
CONTROLLER_DMA3TRANSFER,
|
||||
CONTROLLER_31,
|
||||
CONTROLLER_PLAYBGM,
|
||||
CONTROLLER_32,
|
||||
CONTROLLER_TWORETURNVALUES,
|
||||
CONTROLLER_CHOSENMONRETURNVALUE,
|
||||
@@ -173,7 +190,7 @@ enum
|
||||
CONTROLLER_BATTLEANIMATION,
|
||||
CONTROLLER_LINKSTANDBYMSG,
|
||||
CONTROLLER_RESETACTIONMOVESELECTION,
|
||||
CONTROLLER_55,
|
||||
CONTROLLER_ENDLINKBATTLE,
|
||||
/*new controllers should go here*/
|
||||
CONTROLLER_TERMINATOR_NOP,
|
||||
CONTROLLER_CMDS_COUNT
|
||||
@@ -193,7 +210,7 @@ void BtlController_EmitGetMonData(u8 bufferId, u8 requestId, u8 monToCheck);
|
||||
void BtlController_EmitSetMonData(u8 bufferId, u8 requestId, u8 monToCheck, u8 bytes, void *data);
|
||||
void BtlController_EmitLoadMonSprite(u8 bufferId);
|
||||
void BtlController_EmitSwitchInAnim(u8 bufferId, u8 partyId, bool8 dontClearSubstituteBit);
|
||||
void BtlController_EmitReturnMonToBall(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitReturnMonToBall(u8 bufferId, bool8 skipAnim);
|
||||
void BtlController_EmitDrawTrainerPic(u8 bufferId);
|
||||
void BtlController_EmitTrainerSlide(u8 bufferId);
|
||||
void BtlController_EmitTrainerSlideBack(u8 bufferId);
|
||||
@@ -205,7 +222,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringId);
|
||||
void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
|
||||
void BtlController_EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||
void BtlController_EmitChooseItem(u8 bufferId, u8 *arg1);
|
||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8* arg4);
|
||||
void BtlController_EmitChoosePokemon(u8 bufferId, u8 caseId, u8 arg2, u8 abilityId, u8 *arg4);
|
||||
void BtlController_EmitHealthBarUpdate(u8 bufferId, u16 hpValue);
|
||||
void BtlController_EmitExpUpdate(u8 bufferId, u8 partyId, u16 expPoints);
|
||||
void BtlController_EmitStatusIconUpdate(u8 bufferId, u32 status1, u32 status2);
|
||||
@@ -216,7 +233,7 @@ void BtlController_EmitChosenMonReturnValue(u8 bufferId, u8 b, u8 *c);
|
||||
void BtlController_EmitOneReturnValue(u8 bufferId, u16 arg1);
|
||||
void BtlController_EmitOneReturnValue_Duplicate(u8 bufferId, u16 b);
|
||||
void BtlController_EmitHitAnimation(u8 bufferId);
|
||||
void BtlController_EmitCmd42(u8 bufferId);
|
||||
void BtlController_EmitCantSwitch(u8 bufferId);
|
||||
void BtlController_EmitPlaySE(u8 bufferId, u16 songId);
|
||||
void BtlController_EmitPlayFanfare(u8 bufferId, u16 songId);
|
||||
void BtlController_EmitFaintingCry(u8 bufferId);
|
||||
@@ -227,9 +244,9 @@ void BtlController_EmitHidePartyStatusSummary(u8 bufferId);
|
||||
void BtlController_EmitEndBounceEffect(u8 bufferId);
|
||||
void BtlController_EmitSpriteInvisibility(u8 bufferId, bool8 isInvisible);
|
||||
void BtlController_EmitBattleAnimation(u8 bufferId, u8 animationId, u16 argument);
|
||||
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitLinkStandbyMsg(u8 bufferId, u8 mode);
|
||||
void BtlController_EmitResetActionMoveSelection(u8 bufferId, u8 caseId);
|
||||
void BtlController_EmitCmd55(u8 bufferId, u8 arg1);
|
||||
void BtlController_EmitEndLinkBattle(u8 bufferId, u8 battleOutcome);
|
||||
|
||||
// player controller
|
||||
void PlayerDummy(void);
|
||||
|
||||
@@ -23,7 +23,7 @@ bool8 BattleInitAllSprites(u8 *state, u8 *battlerId);
|
||||
void ClearSpritesHealthboxAnimData(void);
|
||||
void CopyAllBattleSpritesInvisibilities(void);
|
||||
void CopyBattleSpriteInvisibility(u8 battlerId);
|
||||
void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 notTransform);
|
||||
void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, u8 transformType);
|
||||
void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite);
|
||||
void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId);
|
||||
void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move);
|
||||
@@ -40,6 +40,6 @@ void BattleInterfaceSetWindowPals(void);
|
||||
void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute);
|
||||
void AllocateMonSpritesGfx(void);
|
||||
void FreeMonSpritesGfx(void);
|
||||
bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon);
|
||||
bool32 ShouldPlayNormalMonCry(struct Pokemon *mon);
|
||||
|
||||
#endif // GUARD_BATTLE_GFX_SFX_UTIL_H
|
||||
|
||||
@@ -69,9 +69,9 @@ void VBlankCB_Battle(void);
|
||||
void SpriteCB_VsLetterDummy(struct Sprite *sprite);
|
||||
void SpriteCB_VsLetterInit(struct Sprite *sprite);
|
||||
void CB2_InitEndLinkBattle(void);
|
||||
u32 GetBattleBgAttribute(u8 arrayId, u8 caseId);
|
||||
u32 GetBattleBgTemplateData(u8 arrayId, u8 caseId);
|
||||
void SpriteCB_EnemyMon(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy2(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy_2(struct Sprite *sprite);
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
|
||||
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
|
||||
|
||||
@@ -208,12 +208,12 @@ struct BattleMsgData
|
||||
};
|
||||
|
||||
void BufferStringBattle(u16 stringID);
|
||||
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src);
|
||||
u32 BattleStringExpandPlaceholders(const u8* src, u8* dst);
|
||||
void BattleHandleAddTextPrinter(const u8* text, u8 arg1);
|
||||
u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src);
|
||||
u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst);
|
||||
void BattleHandleAddTextPrinter(const u8 *text, u8 arg1);
|
||||
void SetPpNumbersPaletteInMoveSelection(void);
|
||||
u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp);
|
||||
void BattlePutTextOnWindow(const u8* text, u8 windowId_flags);
|
||||
void BattlePutTextOnWindow(const u8 *text, u8 windowId_flags);
|
||||
bool8 BattleStringShouldBeColored(u16);
|
||||
|
||||
extern struct BattleMsgData *gBattleMsgDataPtr;
|
||||
@@ -225,11 +225,11 @@ extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT];
|
||||
extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT];
|
||||
extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT];
|
||||
|
||||
extern const u8* const gBattleStringsTable[];
|
||||
extern const u8* const gStatNamesTable[];
|
||||
extern const u8* const gPokeblockWasTooXStringTable[];
|
||||
extern const u8* const gRefereeStringsTable[];
|
||||
extern const u8* const gStatNamesTable2[];
|
||||
extern const u8 *const gBattleStringsTable[];
|
||||
extern const u8 *const gStatNamesTable[];
|
||||
extern const u8 *const gPokeblockWasTooXStringTable[];
|
||||
extern const u8 *const gRefereeStringsTable[];
|
||||
extern const u8 *const gStatNamesTable2[];
|
||||
|
||||
extern const u16 gMissStringIds[];
|
||||
extern const u16 gTrappingMoves[];
|
||||
|
||||
@@ -3,23 +3,21 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
#define STAT_CHANGE_WORKED 0
|
||||
#define STAT_CHANGE_DIDNT_WORK 1
|
||||
// Arguments for 'flags' in HandleBattleWindow
|
||||
#define WINDOW_CLEAR (1 << 0)
|
||||
#define WINDOW_BG1 (1 << 7)
|
||||
|
||||
#define WINDOW_CLEAR 0x1
|
||||
#define WINDOW_x80 0x80
|
||||
|
||||
void SetMoveEffect(bool8 primary, u8 certain);
|
||||
bool8 UproarWakeUpCheck(u8 battlerId);
|
||||
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
|
||||
u8 TypeCalc(u16 move, u8 attacker, u8 defender);
|
||||
void AI_CalcDmg(u8 attacker, u8 defender);
|
||||
bool32 IsMonGettingExpSentOut(void);
|
||||
void BattleCreateYesNoCursorAt(void);
|
||||
void BattleDestroyYesNoCursorAt(void);
|
||||
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
|
||||
u8 TypeCalc(u16 move, u8 attacker, u8 defender);
|
||||
u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility);
|
||||
u8 GetBattlerTurnOrderNum(u8 battlerId);
|
||||
void SetMoveEffect(bool8 primary, u8 certain);
|
||||
bool32 IsMonGettingExpSentOut(void);
|
||||
void BattleDestroyYesNoCursorAt(void);
|
||||
void BattleCreateYesNoCursorAt(void);
|
||||
void BufferMoveToLearnIntoBattleTextBuff2(void);
|
||||
void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
|
||||
bool8 UproarWakeUpCheck(u8 battlerId);
|
||||
|
||||
extern void (* const gBattleScriptingCommandsTable[])(void);
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ extern const u8 BattleScript_BerryPPHealEnd2[];
|
||||
extern const u8 BattleScript_ItemHealHP_End2[];
|
||||
extern const u8 BattleScript_ItemHealHP_Ret[];
|
||||
extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
|
||||
extern const u8 BattleScript_HangedOnMsg[];
|
||||
extern const u8 BattleScript_FocusBandActivates[];
|
||||
extern const u8 BattleScript_BerryConfuseHealEnd2[];
|
||||
extern const u8 BattleScript_BerryStatRaiseEnd2[];
|
||||
extern const u8 BattleScript_BerryFocusEnergyEnd2[];
|
||||
|
||||
+209
-8
@@ -1,8 +1,6 @@
|
||||
#ifndef GUARD_BATTLE_STRING_IDS_H
|
||||
#define GUARD_BATTLE_STRING_IDS_H
|
||||
|
||||
#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved
|
||||
|
||||
#define STRINGID_INTROMSG 0
|
||||
#define STRINGID_INTROSENDOUT 1
|
||||
#define STRINGID_RETURNMON 2
|
||||
@@ -123,7 +121,7 @@
|
||||
#define STRINGID_PKMNSTORINGENERGY 120
|
||||
#define STRINGID_PKMNUNLEASHEDENERGY 121
|
||||
#define STRINGID_PKMNFATIGUECONFUSION 122
|
||||
#define STRINGID_PKMNPICKEDUPITEM 123
|
||||
#define STRINGID_PLAYERPICKEDUPMONEY 123
|
||||
#define STRINGID_PKMNUNAFFECTED 124
|
||||
#define STRINGID_PKMNTRANSFORMEDINTO 125
|
||||
#define STRINGID_PKMNMADESUBSTITUTE 126
|
||||
@@ -213,10 +211,10 @@
|
||||
#define STRINGID_STATROSE 210
|
||||
#define STRINGID_STATHARSHLY 211
|
||||
#define STRINGID_STATFELL 212
|
||||
#define STRINGID_PKMNSSTATCHANGED 213
|
||||
#define STRINGID_PKMNSSTATCHANGED2 214
|
||||
#define STRINGID_PKMNSSTATCHANGED3 215
|
||||
#define STRINGID_PKMNSSTATCHANGED4 216
|
||||
#define STRINGID_ATTACKERSSTATROSE 213
|
||||
#define STRINGID_DEFENDERSSTATROSE 214
|
||||
#define STRINGID_ATTACKERSSTATFELL 215
|
||||
#define STRINGID_DEFENDERSSTATFELL 216
|
||||
#define STRINGID_CRITICALHIT 217
|
||||
#define STRINGID_ONEHITKO 218
|
||||
#define STRINGID_123POOF 219
|
||||
@@ -325,7 +323,7 @@
|
||||
#define STRINGID_SOOTHINGAROMA 322
|
||||
#define STRINGID_ITEMSCANTBEUSEDNOW 323
|
||||
#define STRINGID_FORXCOMMAYZ 324
|
||||
#define STRINGID_USINGXTHEYOFZN 325
|
||||
#define STRINGID_USINGITEMSTATOFPKMNROSE 325
|
||||
#define STRINGID_PKMNUSEDXTOGETPUMPED 326
|
||||
#define STRINGID_PKMNSXMADEYUSELESS 327
|
||||
#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328
|
||||
@@ -389,4 +387,207 @@
|
||||
|
||||
#define BATTLESTRINGS_COUNT 374
|
||||
|
||||
// This is the string id that gBattleStringsTable starts with.
|
||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||
// and are instead handled explicitly by BufferStringBattle.
|
||||
#define BATTLESTRINGS_TABLE_START STRINGID_TRAINER1LOSETEXT
|
||||
|
||||
// The below IDs are all indexes into battle message tables,
|
||||
// used to determine which of a set of messages to print.
|
||||
// They are assigned to the MULTISTRING_CHOOSER byte of gBattleCommunication
|
||||
// and read when e.g. the command printfromtable is used.
|
||||
|
||||
// gStatUpStringIds
|
||||
#define B_MSG_ATTACKER_STAT_ROSE 0
|
||||
#define B_MSG_DEFENDER_STAT_ROSE 1
|
||||
#define B_MSG_STAT_WONT_INCREASE 2
|
||||
#define B_MSG_STAT_ROSE_EMPTY 3
|
||||
#define B_MSG_STAT_ROSE_ITEM 4
|
||||
#define B_MSG_USED_DIRE_HIT 5
|
||||
|
||||
// gStatDownStringIds
|
||||
#define B_MSG_ATTACKER_STAT_FELL 0
|
||||
#define B_MSG_DEFENDER_STAT_FELL 1
|
||||
#define B_MSG_STAT_WONT_DECREASE 2
|
||||
#define B_MSG_STAT_FELL_EMPTY 3
|
||||
|
||||
// gMissStringIds
|
||||
#define B_MSG_MISSED 0
|
||||
#define B_MSG_PROTECTED 1
|
||||
#define B_MSG_AVOIDED_ATK 2
|
||||
#define B_MSG_AVOIDED_DMG 3
|
||||
#define B_MSG_GROUND_MISS 4
|
||||
|
||||
// gAbsorbDrainStringIds
|
||||
#define B_MSG_ABSORB 0
|
||||
#define B_MSG_ABSORB_OOZE 1
|
||||
|
||||
// gLeechSeedStringIds
|
||||
#define B_MSG_LEECH_SEED_SET 0
|
||||
#define B_MSG_LEECH_SEED_MISS 1
|
||||
#define B_MSG_LEECH_SEED_FAIL 2
|
||||
#define B_MSG_LEECH_SEED_DRAIN 3
|
||||
#define B_MSG_LEECH_SEED_OOZE 4
|
||||
|
||||
// gFirstTurnOfTwoStringIds
|
||||
#define B_MSG_TURN1_RAZOR_WIND 0
|
||||
#define B_MSG_TURN1_SOLAR_BEAM 1
|
||||
#define B_MSG_TURN1_SKULL_BASH 2
|
||||
#define B_MSG_TURN1_SKY_ATTACK 3
|
||||
#define B_MSG_TURN1_FLY 4
|
||||
#define B_MSG_TURN1_DIG 5
|
||||
#define B_MSG_TURN1_DIVE 6
|
||||
#define B_MSG_TURN1_BOUNCE 7
|
||||
|
||||
// gMoveWeatherChangeStringIds
|
||||
#define B_MSG_STARTED_RAIN 0
|
||||
#define B_MSG_STARTED_DOWNPOUR 1
|
||||
#define B_MSG_WEATHER_FAILED 2
|
||||
#define B_MSG_STARTED_SANDSTORM 3
|
||||
#define B_MSG_STARTED_SUNLIGHT 4
|
||||
#define B_MSG_STARTED_HAIL 5
|
||||
|
||||
// gRainContinuesStringIds
|
||||
#define B_MSG_RAIN_CONTINUES 0
|
||||
#define B_MSG_DOWNPOUR_CONTINUES 1
|
||||
#define B_MSG_RAIN_STOPPED 2
|
||||
|
||||
// gSandStormHailContinuesStringIds / gSandStormHailDmgStringIds/ gSandStormHailEndStringIds
|
||||
#define B_MSG_SANDSTORM 0
|
||||
#define B_MSG_HAIL 1
|
||||
|
||||
// gReflectLightScreenSafeguardStringIds
|
||||
#define B_MSG_SIDE_STATUS_FAILED 0
|
||||
#define B_MSG_SET_REFLECT_SINGLE 1
|
||||
#define B_MSG_SET_REFLECT_DOUBLE 2
|
||||
#define B_MSG_SET_LIGHTSCREEN_SINGLE 3
|
||||
#define B_MSG_SET_LIGHTSCREEN_DOUBLE 4
|
||||
#define B_MSG_SET_SAFEGUARD 5
|
||||
|
||||
// gProtectLikeUsedStringIds
|
||||
#define B_MSG_PROTECTED_ITSELF 0
|
||||
#define B_MSG_BRACED_ITSELF 1
|
||||
#define B_MSG_PROTECT_FAILED 2
|
||||
|
||||
// gRestUsedStringIds
|
||||
#define B_MSG_REST 0
|
||||
#define B_MSG_REST_STATUSED 1
|
||||
|
||||
// gWokeUpStringIds
|
||||
#define B_MSG_WOKE_UP 0
|
||||
#define B_MSG_WOKE_UP_UPROAR 1
|
||||
|
||||
// gUproarAwakeStringIds
|
||||
#define B_MSG_CANT_SLEEP_UPROAR 0
|
||||
#define B_MSG_UPROAR_KEPT_AWAKE 1
|
||||
#define B_MSG_STAYED_AWAKE_USING 2
|
||||
|
||||
// gUproarOverTurnStringIds
|
||||
#define B_MSG_UPROAR_CONTINUES 0
|
||||
#define B_MSG_UPROAR_ENDS 1
|
||||
|
||||
// gStockpileUsedStringIds
|
||||
#define B_MSG_STOCKPILED 0
|
||||
#define B_MSG_CANT_STOCKPILE 1
|
||||
|
||||
// gSwallowFailStringIds
|
||||
#define B_MSG_SWALLOW_FAILED 0
|
||||
#define B_MSG_SWALLOW_FULL_HP 1
|
||||
|
||||
// gKOFailedStringIds
|
||||
#define B_MSG_KO_MISS 0
|
||||
#define B_MSG_KO_UNAFFECTED 1
|
||||
|
||||
// gMistUsedStringIds
|
||||
#define B_MSG_SET_MIST 0
|
||||
#define B_MSG_MIST_FAILED 1
|
||||
|
||||
// gFocusEnergyUsedStringIds
|
||||
#define B_MSG_GETTING_PUMPED 0
|
||||
#define B_MSG_FOCUS_ENERGY_FAILED 1
|
||||
|
||||
// gTransformUsedStringIds
|
||||
#define B_MSG_TRANSFORMED 0
|
||||
#define B_MSG_TRANSFORM_FAILED 1
|
||||
|
||||
// gSubstituteUsedStringIds
|
||||
#define B_MSG_SET_SUBSTITUTE 0
|
||||
#define B_MSG_SUBSTITUTE_FAILED 1
|
||||
|
||||
// gPartyStatusHealStringIds
|
||||
#define B_MSG_BELL 0
|
||||
#define B_MSG_BELL_SOUNDPROOF_ATTACKER 1
|
||||
#define B_MSG_BELL_SOUNDPROOF_PARTNER 2
|
||||
#define B_MSG_BELL_BOTH_SOUNDPROOF 3
|
||||
#define B_MSG_SOOTHING_AROMA 4
|
||||
|
||||
// gFutureMoveUsedStringIds
|
||||
#define B_MSG_FUTURE_SIGHT 0
|
||||
#define B_MSG_DOOM_DESIRE 1
|
||||
|
||||
// gItemSwapStringIds
|
||||
#define B_MSG_ITEM_SWAP_TAKEN 0
|
||||
#define B_MSG_ITEM_SWAP_GIVEN 1
|
||||
#define B_MSG_ITEM_SWAP_BOTH 2
|
||||
|
||||
// gSportsUsedStringIds
|
||||
#define B_MSG_WEAKEN_ELECTRIC 0
|
||||
#define B_MSG_WEAKEN_FIRE 1
|
||||
|
||||
// gCaughtMonStringIds
|
||||
#define B_MSG_SENT_SOMEONES_PC 0
|
||||
#define B_MSG_SENT_BILLS_PC 1
|
||||
#define B_MSG_SOMEONES_BOX_FULL 2
|
||||
#define B_MSG_BILLS_BOX_FULL 3
|
||||
|
||||
// gInobedientStringIds
|
||||
#define B_MSG_LOAFING 0
|
||||
#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
|
||||
|
||||
// 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
|
||||
|
||||
// gFlashFireStringIds
|
||||
#define B_MSG_FLASH_FIRE_BOOST 0
|
||||
#define B_MSG_FLASH_FIRE_NO_BOOST 1
|
||||
|
||||
// gBerryEffectStringIds
|
||||
#define B_MSG_CURED_PROBLEM 0
|
||||
#define B_MSG_NORMALIZED_STATUS 1
|
||||
|
||||
// gNoEscapeStringIds
|
||||
#define B_MSG_CANT_ESCAPE 0
|
||||
#define B_MSG_DONT_LEAVE_BIRCH 1
|
||||
#define B_MSG_PREVENTS_ESCAPE 2
|
||||
#define B_MSG_CANT_ESCAPE_2 3
|
||||
#define B_MSG_ATTACKER_CANT_ESCAPE 4
|
||||
|
||||
// gGotPoisonedStringIds / gGotParalyzedStringIds / gFellAsleepStringIds
|
||||
// gGotBurnedStringIds / gGotFrozenStringIds / gAttractUsedStringIds
|
||||
#define B_MSG_STATUSED 0
|
||||
#define B_MSG_STATUSED_BY_ABILITY 1
|
||||
|
||||
// gBRNPreventionStringIds / gPRLZPreventionStringIds / gPSNPreventionStringIds
|
||||
#define B_MSG_ABILITY_PREVENTS_MOVE_STATUS 0
|
||||
#define B_MSG_ABILITY_PREVENTS_ABILITY_STATUS 1
|
||||
#define B_MSG_STATUS_HAD_NO_EFFECT 2
|
||||
|
||||
// gGotDefrostedStringIds
|
||||
#define B_MSG_DEFROSTED 0
|
||||
#define B_MSG_DEFROSTED_BY_MOVE 1
|
||||
|
||||
#define NUM_TRAPPING_MOVES 6
|
||||
|
||||
#endif // GUARD_BATTLE_STRING_IDS_H
|
||||
|
||||
+23
-21
@@ -10,27 +10,29 @@
|
||||
#define MOVE_LIMITATION_TAUNT (1 << 4)
|
||||
#define MOVE_LIMITATION_IMPRISON (1 << 5)
|
||||
|
||||
#define ABILITYEFFECT_ON_SWITCHIN 0x0
|
||||
#define ABILITYEFFECT_ENDTURN 0x1
|
||||
#define ABILITYEFFECT_MOVES_BLOCK 0x2
|
||||
#define ABILITYEFFECT_ABSORBING 0x3
|
||||
#define ABILITYEFFECT_MOVE_END 0x4
|
||||
#define ABILITYEFFECT_IMMUNITY 0x5
|
||||
#define ABILITYEFFECT_FORECAST 0x6
|
||||
#define ABILITYEFFECT_SYNCHRONIZE 0x7
|
||||
#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8
|
||||
#define ABILITYEFFECT_INTIMIDATE1 0x9
|
||||
#define ABILITYEFFECT_INTIMIDATE2 0xA
|
||||
#define ABILITYEFFECT_TRACE 0xB
|
||||
#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC
|
||||
#define ABILITYEFFECT_CHECK_BATTLER_SIDE 0xD
|
||||
#define ABILITYEFFECT_FIELD_SPORT 0xE
|
||||
#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF // TODO: Is it correct?
|
||||
#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10
|
||||
#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11
|
||||
#define ABILITYEFFECT_COUNT_ON_FIELD 0x12
|
||||
#define ABILITYEFFECT_CHECK_ON_FIELD 0x13
|
||||
#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF
|
||||
#define ABILITYEFFECT_ON_SWITCHIN 0
|
||||
#define ABILITYEFFECT_ENDTURN 1
|
||||
#define ABILITYEFFECT_MOVES_BLOCK 2
|
||||
#define ABILITYEFFECT_ABSORBING 3
|
||||
#define ABILITYEFFECT_ON_DAMAGE 4
|
||||
#define ABILITYEFFECT_IMMUNITY 5
|
||||
#define ABILITYEFFECT_FORECAST 6
|
||||
#define ABILITYEFFECT_SYNCHRONIZE 7
|
||||
#define ABILITYEFFECT_ATK_SYNCHRONIZE 8
|
||||
#define ABILITYEFFECT_INTIMIDATE1 9
|
||||
#define ABILITYEFFECT_INTIMIDATE2 10
|
||||
#define ABILITYEFFECT_TRACE 11
|
||||
#define ABILITYEFFECT_CHECK_OTHER_SIDE 12
|
||||
#define ABILITYEFFECT_CHECK_BATTLER_SIDE 13
|
||||
#define ABILITYEFFECT_FIELD_SPORT 14
|
||||
#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 15
|
||||
#define ABILITYEFFECT_COUNT_OTHER_SIDE 16
|
||||
#define ABILITYEFFECT_COUNT_BATTLER_SIDE 17
|
||||
#define ABILITYEFFECT_COUNT_ON_FIELD 18
|
||||
#define ABILITYEFFECT_CHECK_ON_FIELD 19
|
||||
#define ABILITYEFFECT_MUD_SPORT 253
|
||||
#define ABILITYEFFECT_WATER_SPORT 254
|
||||
#define ABILITYEFFECT_SWITCH_IN_WEATHER 255
|
||||
|
||||
#define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0))
|
||||
#define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0))
|
||||
|
||||
+11
-4
@@ -39,6 +39,13 @@ enum
|
||||
BG_ATTR_BASETILE = 10
|
||||
};
|
||||
|
||||
// Modes for ChangeBgX / ChangeBgY
|
||||
enum {
|
||||
BG_COORD_SET,
|
||||
BG_COORD_ADD,
|
||||
BG_COORD_SUB,
|
||||
};
|
||||
|
||||
enum AdjustBgMosaicMode
|
||||
{
|
||||
BG_MOSAIC_SET,
|
||||
@@ -82,7 +89,7 @@ void ResetBgsAndClearDma3BusyFlags(bool32 enableWindowTileAutoAlloc);
|
||||
void InitBgsFromTemplates(u8 bgMode, const struct BgTemplate *templates, u8 numTemplates);
|
||||
void InitBgFromTemplate(const struct BgTemplate *template);
|
||||
void SetBgMode(u8 bgMode);
|
||||
u16 LoadBgTiles(u8 bg, const void* src, u16 size, u16 destOffset);
|
||||
u16 LoadBgTiles(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 LoadBgTilemap(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
u16 Unused_LoadBgPalette(u8 bg, const void *src, u16 size, u16 destOffset);
|
||||
bool8 IsDma3ManagerBusyWithBgCopy(void);
|
||||
@@ -99,12 +106,12 @@ void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dis
|
||||
u8 AdjustBgMosaic(u8 value, u8 mode);
|
||||
void SetBgTilemapBuffer(u8 bg, void *tilemap);
|
||||
void UnsetBgTilemapBuffer(u8 bg);
|
||||
void* GetBgTilemapBuffer(u8 bg);
|
||||
void *GetBgTilemapBuffer(u8 bg);
|
||||
void CopyToBgTilemapBuffer(u8 bg, const void *src, u16 mode, u16 destOffset);
|
||||
void CopyBgTilemapBufferToVram(u8 bg);
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void* src, u8 destX, u8 destY, u8 width, u8 height);
|
||||
void CopyToBgTilemapBufferRect(u8 bg, const void *src, u8 destX, u8 destY, u8 width, u8 height);
|
||||
void CopyToBgTilemapBufferRect_ChangePalette(u8 bg, const void *src, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette);
|
||||
void CopyRectToBgTilemapBufferRect(u8 bg, const void* src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
|
||||
void CopyRectToBgTilemapBufferRect(u8 bg, const void *src, u8 srcX, u8 srcY, u8 srcWidth, u8 srcHeight, u8 destX, u8 destY, u8 rectWidth, u8 rectHeight, u8 palette1, s16 tileOffset, s16 palette2);
|
||||
void FillBgTilemapBufferRect_Palette0(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height);
|
||||
void FillBgTilemapBufferRect(u8 bg, u16 tileNum, u8 x, u8 y, u8 width, u8 height, u8 palette);
|
||||
void WriteSequenceToBgTilemapBuffer(u8 bg, u16 firstTileNum, u8 x, u8 y, u8 width, u8 height, u8 paletteSlot, s16 tileNumDelta);
|
||||
|
||||
@@ -14,8 +14,8 @@ enum
|
||||
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 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);
|
||||
|
||||
+233
-196
@@ -44,39 +44,27 @@
|
||||
#define BIT_FLANK 2
|
||||
|
||||
// Battle Type Flags
|
||||
#define BATTLE_TYPE_DOUBLE 0x0001
|
||||
#define BATTLE_TYPE_LINK 0x0002
|
||||
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
|
||||
#define BATTLE_TYPE_TRAINER 0x0008
|
||||
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
|
||||
#define BATTLE_TYPE_LINK_ESTABLISHED 0x0020 // Set when the link battle setup callback finishes.
|
||||
#define BATTLE_TYPE_MULTI 0x0040
|
||||
#define BATTLE_TYPE_SAFARI 0x0080
|
||||
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
||||
#define BATTLE_TYPE_OLD_MAN_TUTORIAL 0x0200
|
||||
#define BATTLE_TYPE_ROAMER 0x0400
|
||||
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
|
||||
#define BATTLE_TYPE_LEGENDARY 0x2000
|
||||
#define BATTLE_TYPE_GHOST_UNVEILED 0x2000 // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST
|
||||
#define BATTLE_TYPE_REGI 0x4000
|
||||
#define BATTLE_TYPE_GHOST 0x8000
|
||||
#define BATTLE_TYPE_POKEDUDE 0x10000
|
||||
#define BATTLE_TYPE_WILD_SCRIPTED 0x20000
|
||||
#define BATTLE_TYPE_LEGENDARY_FRLG 0x40000
|
||||
#define BATTLE_TYPE_TRAINER_TOWER 0x80000
|
||||
#define BATTLE_TYPE_x100000 0x100000
|
||||
#define BATTLE_TYPE_x200000 0x200000
|
||||
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
|
||||
#define BATTLE_TYPE_x800000 0x800000
|
||||
#define BATTLE_TYPE_RECORDED 0x1000000
|
||||
#define BATTLE_TYPE_x2000000 0x2000000
|
||||
#define BATTLE_TYPE_x4000000 0x4000000
|
||||
#define BATTLE_TYPE_SECRET_BASE 0x8000000
|
||||
#define BATTLE_TYPE_GROUDON 0x10000000
|
||||
#define BATTLE_TYPE_KYOGRE 0x20000000
|
||||
#define BATTLE_TYPE_RAYQUAZA 0x40000000
|
||||
#define BATTLE_TYPE_x80000000 0x80000000
|
||||
#define BATTLE_TYPE_DOUBLE (1 << 0)
|
||||
#define BATTLE_TYPE_LINK (1 << 1)
|
||||
#define BATTLE_TYPE_IS_MASTER (1 << 2) // In not-link battles, it's always set.
|
||||
#define BATTLE_TYPE_TRAINER (1 << 3)
|
||||
#define BATTLE_TYPE_FIRST_BATTLE (1 << 4)
|
||||
#define BATTLE_TYPE_LINK_IN_BATTLE (1 << 5) // Set on battle entry, cleared on exit. Checked rarely
|
||||
#define BATTLE_TYPE_MULTI (1 << 6)
|
||||
#define BATTLE_TYPE_SAFARI (1 << 7)
|
||||
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
|
||||
#define BATTLE_TYPE_OLD_MAN_TUTORIAL (1 << 9) // Used in pokeemerald as BATTLE_TYPE_WALLY_TUTORIAL.
|
||||
#define BATTLE_TYPE_ROAMER (1 << 10)
|
||||
#define BATTLE_TYPE_EREADER_TRAINER (1 << 11)
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON (1 << 12)
|
||||
#define BATTLE_TYPE_LEGENDARY (1 << 13)
|
||||
#define BATTLE_TYPE_GHOST_UNVEILED (1 << 13) // Re-use of BATTLE_TYPE_LEGENDARY, when combined with BATTLE_TYPE_GHOST
|
||||
#define BATTLE_TYPE_REGI (1 << 14)
|
||||
#define BATTLE_TYPE_GHOST (1 << 15) // Used in pokeemerald as BATTLE_TYPE_TWO_OPPONENTS.
|
||||
#define BATTLE_TYPE_POKEDUDE (1 << 16) // Used in pokeemerald as BATTLE_TYPE_DOME.
|
||||
#define BATTLE_TYPE_WILD_SCRIPTED (1 << 17) // Used in pokeemerald as BATTLE_TYPE_PALACE.
|
||||
#define BATTLE_TYPE_LEGENDARY_FRLG (1 << 18) // Used in pokeemerald as BATTLE_TYPE_ARENA.
|
||||
#define BATTLE_TYPE_TRAINER_TOWER (1 << 19) // Used in pokeemerald as BATTLE_TYPE_FACTORY.
|
||||
|
||||
#define IS_BATTLE_TYPE_GHOST_WITHOUT_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && !((flags) & BATTLE_TYPE_GHOST_UNVEILED))
|
||||
#define IS_BATTLE_TYPE_GHOST_WITH_SCOPE(flags) ((flags) & BATTLE_TYPE_GHOST && (flags) & BATTLE_TYPE_GHOST_UNVEILED)
|
||||
@@ -85,103 +73,113 @@
|
||||
#define RIVAL_BATTLE_TUTORIAL 3
|
||||
|
||||
// Battle Outcome defines
|
||||
#define B_OUTCOME_WON 0x1
|
||||
#define B_OUTCOME_LOST 0x2
|
||||
#define B_OUTCOME_DREW 0x3
|
||||
#define B_OUTCOME_RAN 0x4
|
||||
#define B_OUTCOME_PLAYER_TELEPORTED 0x5
|
||||
#define B_OUTCOME_MON_FLED 0x6
|
||||
#define B_OUTCOME_CAUGHT 0x7
|
||||
#define B_OUTCOME_NO_SAFARI_BALLS 0x8
|
||||
#define B_OUTCOME_FORFEITED 0x9
|
||||
#define B_OUTCOME_MON_TELEPORTED 0xA
|
||||
#define B_OUTCOME_LINK_BATTLE_RAN 0x80
|
||||
#define B_OUTCOME_WON 1
|
||||
#define B_OUTCOME_LOST 2
|
||||
#define B_OUTCOME_DREW 3
|
||||
#define B_OUTCOME_RAN 4
|
||||
#define B_OUTCOME_PLAYER_TELEPORTED 5
|
||||
#define B_OUTCOME_MON_FLED 6
|
||||
#define B_OUTCOME_CAUGHT 7
|
||||
#define B_OUTCOME_NO_SAFARI_BALLS 8
|
||||
#define B_OUTCOME_FORFEITED 9
|
||||
#define B_OUTCOME_MON_TELEPORTED 10
|
||||
#define B_OUTCOME_LINK_BATTLE_RAN (1 << 7) // 128
|
||||
|
||||
// Non-volatile status conditions
|
||||
// These persist remain outside of battle and after switching out
|
||||
#define STATUS1_NONE 0x0
|
||||
#define STATUS1_SLEEP 0x7
|
||||
#define STATUS1_POISON 0x8
|
||||
#define STATUS1_BURN 0x10
|
||||
#define STATUS1_FREEZE 0x20
|
||||
#define STATUS1_PARALYSIS 0x40
|
||||
#define STATUS1_TOXIC_POISON 0x80
|
||||
#define STATUS1_TOXIC_COUNTER 0xF00
|
||||
#define STATUS1_NONE 0
|
||||
#define STATUS1_SLEEP (1 << 0 | 1 << 1 | 1 << 2) // First 3 bits (Number of turns to sleep)
|
||||
#define STATUS1_SLEEP_TURN(num) ((num) << 0) // Just for readability (or if rearranging statuses)
|
||||
#define STATUS1_POISON (1 << 3)
|
||||
#define STATUS1_BURN (1 << 4)
|
||||
#define STATUS1_FREEZE (1 << 5)
|
||||
#define STATUS1_PARALYSIS (1 << 6)
|
||||
#define STATUS1_TOXIC_POISON (1 << 7)
|
||||
#define STATUS1_TOXIC_COUNTER (1 << 8 | 1 << 9 | 1 << 10 | 1 << 11)
|
||||
#define STATUS1_TOXIC_TURN(num) ((num) << 8)
|
||||
#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON)
|
||||
#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON)
|
||||
|
||||
// Volatile status ailments
|
||||
// These are removed after exiting the battle or switching out
|
||||
#define STATUS2_CONFUSION 0x00000007
|
||||
#define STATUS2_FLINCHED 0x00000008
|
||||
#define STATUS2_UPROAR 0x00000070
|
||||
#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200
|
||||
#define STATUS2_LOCK_CONFUSE 0x00000C00
|
||||
#define STATUS2_MULTIPLETURNS 0x00001000
|
||||
#define STATUS2_WRAPPED 0x0000E000
|
||||
#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler
|
||||
#define STATUS2_CONFUSION (1 << 0 | 1 << 1 | 1 << 2)
|
||||
#define STATUS2_CONFUSION_TURN(num) ((num) << 0)
|
||||
#define STATUS2_FLINCHED (1 << 3)
|
||||
#define STATUS2_UPROAR (1 << 4 | 1 << 5 | 1 << 6)
|
||||
#define STATUS2_UPROAR_TURN(num) ((num) << 4)
|
||||
#define STATUS2_UNUSED (1 << 7)
|
||||
#define STATUS2_BIDE (1 << 8 | 1 << 9)
|
||||
#define STATUS2_BIDE_TURN(num) (((num) << 8) & STATUS2_BIDE)
|
||||
#define STATUS2_LOCK_CONFUSE (1 << 10 | 1 << 11) // e.g. Thrash
|
||||
#define STATUS2_LOCK_CONFUSE_TURN(num)((num) << 10)
|
||||
#define STATUS2_MULTIPLETURNS (1 << 12)
|
||||
#define STATUS2_WRAPPED (1 << 13 | 1 << 14 | 1 << 15)
|
||||
#define STATUS2_WRAPPED_TURN(num) ((num) << 13)
|
||||
#define STATUS2_INFATUATION (1 << 16 | 1 << 17 | 1 << 18 | 1 << 19) // 4 bits, one for every battler
|
||||
#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16)
|
||||
#define STATUS2_FOCUS_ENERGY 0x00100000
|
||||
#define STATUS2_TRANSFORMED 0x00200000
|
||||
#define STATUS2_RECHARGE 0x00400000
|
||||
#define STATUS2_RAGE 0x00800000
|
||||
#define STATUS2_SUBSTITUTE 0x01000000
|
||||
#define STATUS2_DESTINY_BOND 0x02000000
|
||||
#define STATUS2_ESCAPE_PREVENTION 0x04000000
|
||||
#define STATUS2_NIGHTMARE 0x08000000
|
||||
#define STATUS2_CURSED 0x10000000
|
||||
#define STATUS2_FORESIGHT 0x20000000
|
||||
#define STATUS2_DEFENSE_CURL 0x40000000
|
||||
#define STATUS2_TORMENT 0x80000000
|
||||
#define STATUS2_FOCUS_ENERGY (1 << 20)
|
||||
#define STATUS2_TRANSFORMED (1 << 21)
|
||||
#define STATUS2_RECHARGE (1 << 22)
|
||||
#define STATUS2_RAGE (1 << 23)
|
||||
#define STATUS2_SUBSTITUTE (1 << 24)
|
||||
#define STATUS2_DESTINY_BOND (1 << 25)
|
||||
#define STATUS2_ESCAPE_PREVENTION (1 << 26)
|
||||
#define STATUS2_NIGHTMARE (1 << 27)
|
||||
#define STATUS2_CURSED (1 << 28)
|
||||
#define STATUS2_FORESIGHT (1 << 29)
|
||||
#define STATUS2_DEFENSE_CURL (1 << 30)
|
||||
#define STATUS2_TORMENT (1 << 31)
|
||||
|
||||
// Seems like per-battler statuses. Not quite sure how to categorize these
|
||||
#define STATUS3_LEECHSEED_BATTLER 0x3
|
||||
#define STATUS3_LEECHSEED 0x4
|
||||
#define STATUS3_ALWAYS_HITS 0x18 // two bits
|
||||
#define STATUS3_PERISH_SONG 0x20
|
||||
#define STATUS3_ON_AIR 0x40
|
||||
#define STATUS3_UNDERGROUND 0x80
|
||||
#define STATUS3_MINIMIZED 0x100
|
||||
#define STATUS3_ROOTED 0x400
|
||||
#define STATUS3_CHARGED_UP 0x200
|
||||
#define STATUS3_YAWN 0x1800 // two bits
|
||||
#define STATUS3_IMPRISONED_OTHERS 0x2000
|
||||
#define STATUS3_GRUDGE 0x4000
|
||||
#define STATUS3_CANT_SCORE_A_CRIT 0x8000
|
||||
#define STATUS3_MUDSPORT 0x10000
|
||||
#define STATUS3_WATERSPORT 0x20000
|
||||
#define STATUS3_UNDERWATER 0x40000
|
||||
#define STATUS3_INTIMIDATE_POKES 0x80000
|
||||
#define STATUS3_TRACE 0x100000
|
||||
#define STATUS3_LEECHSEED_BATTLER (1 << 0 | 1 << 1) // The battler to receive HP from Leech Seed
|
||||
#define STATUS3_LEECHSEED (1 << 2)
|
||||
#define STATUS3_ALWAYS_HITS (1 << 3 | 1 << 4)
|
||||
#define STATUS3_ALWAYS_HITS_TURN(num) (((num) << 3) & STATUS3_ALWAYS_HITS) // "Always Hits" is set as a 2 turn timer, i.e. next turn is the last turn when it's active
|
||||
#define STATUS3_PERISH_SONG (1 << 5)
|
||||
#define STATUS3_ON_AIR (1 << 6)
|
||||
#define STATUS3_UNDERGROUND (1 << 7)
|
||||
#define STATUS3_MINIMIZED (1 << 8)
|
||||
#define STATUS3_CHARGED_UP (1 << 9)
|
||||
#define STATUS3_ROOTED (1 << 10)
|
||||
#define STATUS3_YAWN (1 << 11 | 1 << 12) // Number of turns to sleep
|
||||
#define STATUS3_YAWN_TURN(num) (((num) << 11) & STATUS3_YAWN)
|
||||
#define STATUS3_IMPRISONED_OTHERS (1 << 13)
|
||||
#define STATUS3_GRUDGE (1 << 14)
|
||||
#define STATUS3_CANT_SCORE_A_CRIT (1 << 15)
|
||||
#define STATUS3_MUDSPORT (1 << 16)
|
||||
#define STATUS3_WATERSPORT (1 << 17)
|
||||
#define STATUS3_UNDERWATER (1 << 18)
|
||||
#define STATUS3_INTIMIDATE_POKES (1 << 19)
|
||||
#define STATUS3_TRACE (1 << 20)
|
||||
#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER)
|
||||
|
||||
// Not really sure what a "hitmarker" is.
|
||||
#define HITMARKER_x10 0x00000010
|
||||
#define HITMARKER_x20 0x00000020
|
||||
#define HITMARKER_DESTINYBOND 0x00000040
|
||||
#define HITMARKER_NO_ANIMATIONS 0x00000080
|
||||
#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100
|
||||
#define HITMARKER_NO_ATTACKSTRING 0x00000200
|
||||
#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400
|
||||
#define HITMARKER_NO_PPDEDUCT 0x00000800
|
||||
#define HITMARKER_SWAP_ATTACKER_TARGET 0x00001000
|
||||
#define HITMARKER_IGNORE_SAFEGUARD 0x00002000
|
||||
#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000
|
||||
#define HITMARKER_RUN 0x00008000
|
||||
#define HITMARKER_IGNORE_ON_AIR 0x00010000
|
||||
#define HITMARKER_IGNORE_UNDERGROUND 0x00020000
|
||||
#define HITMARKER_IGNORE_UNDERWATER 0x00040000
|
||||
#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000
|
||||
#define HITMARKER_PASSIVE_DAMAGE 0x00100000
|
||||
#define HITMARKER_x200000 0x00200000
|
||||
#define HITMARKER_PLAYER_FAINTED 0x00400000
|
||||
#define HITMARKER_x800000 0x00800000
|
||||
#define HITMARKER_GRUDGE 0x01000000
|
||||
#define HITMARKER_OBEYS 0x02000000
|
||||
#define HITMARKER_x4000000 0x04000000
|
||||
#define HITMARKER_CHARGING 0x08000000
|
||||
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C)
|
||||
#define HITMARKER_FAINTED2(battler) (0x10000000 << battler)
|
||||
#define HITMARKER_WAKE_UP_CLEAR (1 << 4) // Cleared when waking up. Never set or checked.
|
||||
#define HITMARKER_SKIP_DMG_TRACK (1 << 5)
|
||||
#define HITMARKER_DESTINYBOND (1 << 6)
|
||||
#define HITMARKER_NO_ANIMATIONS (1 << 7)
|
||||
#define HITMARKER_IGNORE_SUBSTITUTE (1 << 8)
|
||||
#define HITMARKER_NO_ATTACKSTRING (1 << 9)
|
||||
#define HITMARKER_ATTACKSTRING_PRINTED (1 << 10)
|
||||
#define HITMARKER_NO_PPDEDUCT (1 << 11)
|
||||
#define HITMARKER_SWAP_ATTACKER_TARGET (1 << 12)
|
||||
#define HITMARKER_IGNORE_SAFEGUARD (1 << 13)
|
||||
#define HITMARKER_SYNCHRONISE_EFFECT (1 << 14)
|
||||
#define HITMARKER_RUN (1 << 15)
|
||||
#define HITMARKER_IGNORE_ON_AIR (1 << 16)
|
||||
#define HITMARKER_IGNORE_UNDERGROUND (1 << 17)
|
||||
#define HITMARKER_IGNORE_UNDERWATER (1 << 18)
|
||||
#define HITMARKER_UNABLE_TO_USE_MOVE (1 << 19)
|
||||
#define HITMARKER_PASSIVE_DAMAGE (1 << 20)
|
||||
#define HITMARKER_DISOBEDIENT_MOVE (1 << 21)
|
||||
#define HITMARKER_PLAYER_FAINTED (1 << 22)
|
||||
#define HITMARKER_ALLOW_NO_PP (1 << 23)
|
||||
#define HITMARKER_GRUDGE (1 << 24)
|
||||
#define HITMARKER_OBEYS (1 << 25)
|
||||
#define HITMARKER_NEVER_SET (1 << 26) // Cleared as part of a large group. Never set or checked
|
||||
#define HITMARKER_CHARGING (1 << 27)
|
||||
#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 28)
|
||||
#define HITMARKER_FAINTED2(battler) ((1 << 28) << battler)
|
||||
|
||||
// Per-side statuses that affect an entire party
|
||||
#define SIDE_STATUS_REFLECT (1 << 0)
|
||||
@@ -205,87 +203,85 @@
|
||||
#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED)
|
||||
|
||||
// Battle Weather flags
|
||||
#define WEATHER_RAIN_TEMPORARY (1 << 0)
|
||||
#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
|
||||
#define WEATHER_RAIN_PERMANENT (1 << 2)
|
||||
#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT)
|
||||
#define WEATHER_SANDSTORM_TEMPORARY (1 << 3)
|
||||
#define WEATHER_SANDSTORM_PERMANENT (1 << 4)
|
||||
#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT)
|
||||
#define WEATHER_SUN_TEMPORARY (1 << 5)
|
||||
#define WEATHER_SUN_PERMANENT (1 << 6)
|
||||
#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)
|
||||
#define WEATHER_HAIL (1 << 7)
|
||||
#define WEATHER_HAIL_ANY (WEATHER_HAIL)
|
||||
#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
|
||||
#define B_WEATHER_RAIN_TEMPORARY (1 << 0)
|
||||
#define B_WEATHER_RAIN_DOWNPOUR (1 << 1) // unused
|
||||
#define B_WEATHER_RAIN_PERMANENT (1 << 2)
|
||||
#define B_WEATHER_RAIN (B_WEATHER_RAIN_TEMPORARY | B_WEATHER_RAIN_DOWNPOUR | B_WEATHER_RAIN_PERMANENT)
|
||||
#define B_WEATHER_SANDSTORM_TEMPORARY (1 << 3)
|
||||
#define B_WEATHER_SANDSTORM_PERMANENT (1 << 4)
|
||||
#define B_WEATHER_SANDSTORM (B_WEATHER_SANDSTORM_TEMPORARY | B_WEATHER_SANDSTORM_PERMANENT)
|
||||
#define B_WEATHER_SUN_TEMPORARY (1 << 5)
|
||||
#define B_WEATHER_SUN_PERMANENT (1 << 6)
|
||||
#define B_WEATHER_SUN (B_WEATHER_SUN_TEMPORARY | B_WEATHER_SUN_PERMANENT)
|
||||
#define B_WEATHER_HAIL_TEMPORARY (1 << 7)
|
||||
#define B_WEATHER_HAIL (B_WEATHER_HAIL_TEMPORARY)
|
||||
#define B_WEATHER_ANY (B_WEATHER_RAIN | B_WEATHER_SANDSTORM | B_WEATHER_SUN | B_WEATHER_HAIL)
|
||||
|
||||
// Move Effects
|
||||
#define MOVE_EFFECT_NOTHING_0 0x0
|
||||
#define MOVE_EFFECT_SLEEP 0x1
|
||||
#define MOVE_EFFECT_POISON 0x2
|
||||
#define MOVE_EFFECT_BURN 0x3
|
||||
#define MOVE_EFFECT_FREEZE 0x4
|
||||
#define MOVE_EFFECT_PARALYSIS 0x5
|
||||
#define MOVE_EFFECT_TOXIC 0x6
|
||||
#define MOVE_EFFECT_CONFUSION 0x7
|
||||
#define MOVE_EFFECT_FLINCH 0x8
|
||||
#define MOVE_EFFECT_TRI_ATTACK 0x9
|
||||
#define MOVE_EFFECT_UPROAR 0xA
|
||||
#define MOVE_EFFECT_PAYDAY 0xB
|
||||
#define MOVE_EFFECT_CHARGING 0xC
|
||||
#define MOVE_EFFECT_WRAP 0xD
|
||||
#define MOVE_EFFECT_RECOIL_25 0xE
|
||||
#define MOVE_EFFECT_ATK_PLUS_1 0xF
|
||||
#define MOVE_EFFECT_DEF_PLUS_1 0x10
|
||||
#define MOVE_EFFECT_SPD_PLUS_1 0x11
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13
|
||||
#define MOVE_EFFECT_ACC_PLUS_1 0x14
|
||||
#define MOVE_EFFECT_EVS_PLUS_1 0x15
|
||||
#define MOVE_EFFECT_ATK_MINUS_1 0x16
|
||||
#define MOVE_EFFECT_DEF_MINUS_1 0x17
|
||||
#define MOVE_EFFECT_SPD_MINUS_1 0x18
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A
|
||||
#define MOVE_EFFECT_ACC_MINUS_1 0x1B
|
||||
#define MOVE_EFFECT_EVS_MINUS_1 0x1C
|
||||
#define MOVE_EFFECT_RECHARGE 0x1D
|
||||
#define MOVE_EFFECT_RAGE 0x1E
|
||||
#define MOVE_EFFECT_STEAL_ITEM 0x1F
|
||||
#define MOVE_EFFECT_PREVENT_ESCAPE 0x20
|
||||
#define MOVE_EFFECT_NIGHTMARE 0x21
|
||||
#define MOVE_EFFECT_ALL_STATS_UP 0x22
|
||||
#define MOVE_EFFECT_RAPIDSPIN 0x23
|
||||
#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24
|
||||
#define MOVE_EFFECT_ATK_DEF_DOWN 0x25
|
||||
#define MOVE_EFFECT_RECOIL_33 0x26
|
||||
#define MOVE_EFFECT_ATK_PLUS_2 0x27
|
||||
#define MOVE_EFFECT_DEF_PLUS_2 0x28
|
||||
#define MOVE_EFFECT_SPD_PLUS_2 0x29
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B
|
||||
#define MOVE_EFFECT_ACC_PLUS_2 0x2C
|
||||
#define MOVE_EFFECT_EVS_PLUS_2 0x2D
|
||||
#define MOVE_EFFECT_ATK_MINUS_2 0x2E
|
||||
#define MOVE_EFFECT_DEF_MINUS_2 0x2F
|
||||
#define MOVE_EFFECT_SPD_MINUS_2 0x30
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32
|
||||
#define MOVE_EFFECT_ACC_MINUS_2 0x33
|
||||
#define MOVE_EFFECT_EVS_MINUS_2 0x34
|
||||
#define MOVE_EFFECT_THRASH 0x35
|
||||
#define MOVE_EFFECT_KNOCK_OFF 0x36
|
||||
#define MOVE_EFFECT_NOTHING_37 0x37
|
||||
#define MOVE_EFFECT_NOTHING_38 0x38
|
||||
#define MOVE_EFFECT_NOTHING_39 0x39
|
||||
#define MOVE_EFFECT_NOTHING_3A 0x3A
|
||||
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B
|
||||
#define MOVE_EFFECT_NOTHING_3C 0x3C
|
||||
#define MOVE_EFFECT_NOTHING_3D 0x3D
|
||||
#define MOVE_EFFECT_NOTHING_3E 0x3E
|
||||
#define MOVE_EFFECT_NOTHING_3F 0x3F
|
||||
#define MOVE_EFFECT_AFFECTS_USER 0x40
|
||||
#define MOVE_EFFECT_CERTAIN 0x80
|
||||
#define MOVE_EFFECT_SLEEP 1
|
||||
#define MOVE_EFFECT_POISON 2
|
||||
#define MOVE_EFFECT_BURN 3
|
||||
#define MOVE_EFFECT_FREEZE 4
|
||||
#define MOVE_EFFECT_PARALYSIS 5
|
||||
#define MOVE_EFFECT_TOXIC 6
|
||||
#define PRIMARY_STATUS_MOVE_EFFECT MOVE_EFFECT_TOXIC // All above move effects apply primary status
|
||||
#define MOVE_EFFECT_CONFUSION 7
|
||||
#define MOVE_EFFECT_FLINCH 8
|
||||
#define MOVE_EFFECT_TRI_ATTACK 9
|
||||
#define MOVE_EFFECT_UPROAR 10
|
||||
#define MOVE_EFFECT_PAYDAY 11
|
||||
#define MOVE_EFFECT_CHARGING 12
|
||||
#define MOVE_EFFECT_WRAP 13
|
||||
#define MOVE_EFFECT_RECOIL_25 14
|
||||
#define MOVE_EFFECT_ATK_PLUS_1 15
|
||||
#define MOVE_EFFECT_DEF_PLUS_1 16
|
||||
#define MOVE_EFFECT_SPD_PLUS_1 17
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_1 18
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_1 19
|
||||
#define MOVE_EFFECT_ACC_PLUS_1 20
|
||||
#define MOVE_EFFECT_EVS_PLUS_1 21
|
||||
#define MOVE_EFFECT_ATK_MINUS_1 22
|
||||
#define MOVE_EFFECT_DEF_MINUS_1 23
|
||||
#define MOVE_EFFECT_SPD_MINUS_1 24
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_1 25
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_1 26
|
||||
#define MOVE_EFFECT_ACC_MINUS_1 27
|
||||
#define MOVE_EFFECT_EVS_MINUS_1 28
|
||||
#define MOVE_EFFECT_RECHARGE 29
|
||||
#define MOVE_EFFECT_RAGE 30
|
||||
#define MOVE_EFFECT_STEAL_ITEM 31
|
||||
#define MOVE_EFFECT_PREVENT_ESCAPE 32
|
||||
#define MOVE_EFFECT_NIGHTMARE 33
|
||||
#define MOVE_EFFECT_ALL_STATS_UP 34
|
||||
#define MOVE_EFFECT_RAPIDSPIN 35
|
||||
#define MOVE_EFFECT_REMOVE_PARALYSIS 36
|
||||
#define MOVE_EFFECT_ATK_DEF_DOWN 37
|
||||
#define MOVE_EFFECT_RECOIL_33 38
|
||||
#define MOVE_EFFECT_ATK_PLUS_2 39
|
||||
#define MOVE_EFFECT_DEF_PLUS_2 40
|
||||
#define MOVE_EFFECT_SPD_PLUS_2 41
|
||||
#define MOVE_EFFECT_SP_ATK_PLUS_2 42
|
||||
#define MOVE_EFFECT_SP_DEF_PLUS_2 43
|
||||
#define MOVE_EFFECT_ACC_PLUS_2 44
|
||||
#define MOVE_EFFECT_EVS_PLUS_2 45
|
||||
#define MOVE_EFFECT_ATK_MINUS_2 46
|
||||
#define MOVE_EFFECT_DEF_MINUS_2 47
|
||||
#define MOVE_EFFECT_SPD_MINUS_2 48
|
||||
#define MOVE_EFFECT_SP_ATK_MINUS_2 49
|
||||
#define MOVE_EFFECT_SP_DEF_MINUS_2 50
|
||||
#define MOVE_EFFECT_ACC_MINUS_2 51
|
||||
#define MOVE_EFFECT_EVS_MINUS_2 52
|
||||
#define MOVE_EFFECT_THRASH 53
|
||||
#define MOVE_EFFECT_KNOCK_OFF 54
|
||||
#define MOVE_EFFECT_NOTHING_37 55
|
||||
#define MOVE_EFFECT_NOTHING_38 56
|
||||
#define MOVE_EFFECT_NOTHING_39 57
|
||||
#define MOVE_EFFECT_NOTHING_3A 58
|
||||
#define MOVE_EFFECT_SP_ATK_TWO_DOWN 59
|
||||
#define NUM_MOVE_EFFECTS 60
|
||||
|
||||
#define MOVE_EFFECT_AFFECTS_USER (1 << 6) // 64
|
||||
#define MOVE_EFFECT_CERTAIN (1 << 7) // 128
|
||||
|
||||
// Battle terrain defines for gBattleTerrain.
|
||||
#define BATTLE_TERRAIN_GRASS 0
|
||||
@@ -309,9 +305,50 @@
|
||||
#define BATTLE_TERRAIN_LANCE 18
|
||||
#define BATTLE_TERRAIN_CHAMPION 19
|
||||
|
||||
// Return value for IsRunningFromBattleImpossible.
|
||||
#define B_WAIT_TIME_LONG 64
|
||||
#define B_WAIT_TIME_MED 48
|
||||
#define B_WAIT_TIME_SHORT 32
|
||||
|
||||
#define CASTFORM_NORMAL 0
|
||||
#define CASTFORM_FIRE 1
|
||||
#define CASTFORM_WATER 2
|
||||
#define CASTFORM_ICE 3
|
||||
#define NUM_CASTFORM_FORMS 4
|
||||
#define CASTFORM_SUBSTITUTE (1 << 7)
|
||||
|
||||
// Return value for IsRunningFromBattleImpossible.
|
||||
#define BATTLE_RUN_SUCCESS 0
|
||||
#define BATTLE_RUN_FORBIDDEN 1
|
||||
#define BATTLE_RUN_FAILURE 2
|
||||
|
||||
// Window Ids for sStandardBattleWindowTemplates
|
||||
#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
|
||||
#define B_WIN_MOVE_NAME_1 3 // Top left
|
||||
#define B_WIN_MOVE_NAME_2 4 // Top right
|
||||
#define B_WIN_MOVE_NAME_3 5 // Bottom left
|
||||
#define B_WIN_MOVE_NAME_4 6 // Bottom right
|
||||
#define B_WIN_PP 7
|
||||
#define B_WIN_MOVE_TYPE 8
|
||||
#define B_WIN_PP_REMAINING 9
|
||||
#define B_WIN_DUMMY 10
|
||||
#define B_WIN_SWITCH_PROMPT 11 // "Switch which?"
|
||||
#define B_WIN_LEVEL_UP_BOX 12
|
||||
#define B_WIN_LEVEL_UP_BANNER 13
|
||||
#define B_WIN_YESNO 14
|
||||
#define B_WIN_VS_PLAYER 15
|
||||
#define B_WIN_VS_OPPONENT 16
|
||||
#define B_WIN_VS_MULTI_PLAYER_1 17
|
||||
#define B_WIN_VS_MULTI_PLAYER_2 18
|
||||
#define B_WIN_VS_MULTI_PLAYER_3 19
|
||||
#define B_WIN_VS_MULTI_PLAYER_4 20
|
||||
#define B_WIN_VS_OUTCOME_DRAW 21
|
||||
#define B_WIN_VS_OUTCOME_LEFT 22
|
||||
#define B_WIN_VS_OUTCOME_RIGHT 23
|
||||
#define B_WIN_OAK_OLD_MAN 24
|
||||
|
||||
#define B_TEXT_FLAG_NPC_CONTEXT_FONT (1 << 6)
|
||||
#define B_TEXT_FLAG_WINDOW_CLEAR (1 << 7)
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_H
|
||||
|
||||
@@ -342,9 +342,9 @@
|
||||
#define BG_FISSURE 21
|
||||
#define BG_BUG_OPPONENT 22
|
||||
#define BG_BUG_PLAYER 23
|
||||
#define BG_SOLARBEAM_OPPONENT 24
|
||||
#define BG_SOLARBEAM_PLAYER 25
|
||||
#define BG_SOLARBEAM_CONTESTS 26
|
||||
#define BG_SOLAR_BEAM_OPPONENT 24
|
||||
#define BG_SOLAR_BEAM_PLAYER 25
|
||||
#define BG_SOLAR_BEAM_CONTESTS 26
|
||||
|
||||
// table ids for general animations
|
||||
#define B_ANIM_CASTFORM_CHANGE 0x0
|
||||
@@ -354,9 +354,9 @@
|
||||
#define B_ANIM_BAIT_THROW 0x4
|
||||
#define B_ANIM_ITEM_KNOCKOFF 0x5
|
||||
#define B_ANIM_TURN_TRAP 0x6
|
||||
#define B_ANIM_ITEM_EFFECT 0x7
|
||||
#define B_ANIM_HELD_ITEM_EFFECT 0x7
|
||||
#define B_ANIM_SMOKEBALL_ESCAPE 0x8
|
||||
#define B_ANIM_HANGED_ON 0x9
|
||||
#define B_ANIM_FOCUS_BAND 0x9
|
||||
#define B_ANIM_RAIN_CONTINUES 0xA
|
||||
#define B_ANIM_SUN_CONTINUES 0xB
|
||||
#define B_ANIM_SANDSTORM_CONTINUES 0xC
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
#define EFFECT_FUTURE_SIGHT 148
|
||||
#define EFFECT_GUST 149
|
||||
#define EFFECT_FLINCH_MINIMIZE_HIT 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
|
||||
#define EFFECT_SOLARBEAM 151
|
||||
#define EFFECT_SOLAR_BEAM 151
|
||||
#define EFFECT_THUNDER 152
|
||||
#define EFFECT_TELEPORT 153
|
||||
#define EFFECT_BEAT_UP 154
|
||||
|
||||
@@ -30,29 +30,40 @@
|
||||
#define sMULTIPLAYER_ID gBattleScripting + 0x25
|
||||
#define sSPECIAL_TRAINER_BATTLE_TYPE gBattleScripting + 0x26
|
||||
|
||||
#define cEFFECT_CHOOSER gBattleCommunication + 3
|
||||
#define cMULTISTRING_CHOOSER gBattleCommunication + 5
|
||||
// Array entries for battle communication
|
||||
#define MULTIUSE_STATE 0
|
||||
#define CURSOR_POSITION 1
|
||||
#define TASK_ID 1 // task Id and cursor position share the same field
|
||||
#define SPRITES_INIT_STATE1 1 // shares the Id as well
|
||||
#define SPRITES_INIT_STATE2 2
|
||||
#define MOVE_EFFECT_BYTE 3
|
||||
#define ACTIONS_CONFIRMED_COUNT 4
|
||||
#define MULTISTRING_CHOOSER 5
|
||||
#define MISS_TYPE 6
|
||||
#define MSG_DISPLAY 7
|
||||
#define BATTLE_COMMUNICATION_ENTRIES_COUNT 8
|
||||
|
||||
#define cEFFECT_CHOOSER (gBattleCommunication + MOVE_EFFECT_BYTE)
|
||||
#define cMULTISTRING_CHOOSER (gBattleCommunication + MULTISTRING_CHOOSER)
|
||||
#define cMISS_TYPE (gBattleCommunication + MISS_TYPE)
|
||||
|
||||
// Battle Script defines for getting the wanted battler
|
||||
#define BS_TARGET 0
|
||||
#define BS_ATTACKER 1
|
||||
#define BS_EFFECT_BATTLER 2
|
||||
#define BS_FAINTED 3
|
||||
#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_updatestatusicon
|
||||
#define BS_UNKNOWN_5 5 // for openpartyscreen
|
||||
#define BS_UNKNOWN_6 6 // for openpartyscreen
|
||||
#define BS_ATTACKER_WITH_PARTNER 4 // for Cmd_updatestatusicon
|
||||
#define BS_FAINTED_LINK_MULTIPLE_1 5 // for openpartyscreen
|
||||
#define BS_FAINTED_LINK_MULTIPLE_2 6 // for openpartyscreen
|
||||
#define BS_BATTLER_0 7
|
||||
#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability
|
||||
#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
|
||||
#define BS_ATTACKER_SIDE 8 // for Cmd_jumpifability
|
||||
#define BS_NOT_ATTACKER_SIDE 9 // for Cmd_jumpifability
|
||||
#define BS_SCRIPTING 10
|
||||
#define BS_PLAYER1 11
|
||||
#define BS_OPPONENT1 12
|
||||
#define BS_PLAYER2 13 // for atk98_updatestatusicon
|
||||
#define BS_PLAYER2 13 // for Cmd_updatestatusicon
|
||||
#define BS_OPPONENT2 14
|
||||
|
||||
// used for openpartyscreen
|
||||
#define OPEN_PARTY_ALLOW_CANCEL 0x80
|
||||
|
||||
// atk 01, accuracy calc
|
||||
#define NO_ACC_CALC 0xFFFE
|
||||
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
|
||||
@@ -72,61 +83,64 @@
|
||||
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
|
||||
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
|
||||
#define VARIOUS_GET_MOVE_TARGET 3
|
||||
#define VARIOUS_CASE_4 4
|
||||
#define VARIOUS_GET_BATTLER_FAINTED 4
|
||||
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
|
||||
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
|
||||
#define VARIOUS_RESET_PLAYER_FAINTED_FLAG 7
|
||||
#define VARIOUS_RESET_PLAYER_FAINTED 7
|
||||
#define VARIOUS_CASE_8 8
|
||||
#define VARIOUS_RETURN_OPPONENT_MON1 9
|
||||
#define VARIOUS_RETURN_OPPONENT_MON2 10
|
||||
#define VARIOUS_CHECK_POKEFLUTE 11
|
||||
#define VARIOUS_WAIT_FANFARE 12
|
||||
|
||||
// atk80, dmg manipulation
|
||||
#define ATK80_DMG_CHANGE_SIGN 0
|
||||
#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1
|
||||
#define ATK80_DMG_DOUBLED 2
|
||||
// Cmd_manipulatedmg
|
||||
#define DMG_CHANGE_SIGN 0
|
||||
#define DMG_RECOIL_FROM_MISS 1
|
||||
#define DMG_DOUBLED 2
|
||||
|
||||
// atk4F, a flag used for the jumpifcantswitch command
|
||||
#define ATK4F_DONT_CHECK_STATUSES 0x80
|
||||
// Cmd_jumpifcantswitch
|
||||
#define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7)
|
||||
|
||||
// statchange defines
|
||||
#define STAT_CHANGE_BS_PTR 0x1
|
||||
#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20
|
||||
// Cmd_statbuffchange
|
||||
#define STAT_CHANGE_ALLOW_PTR (1 << 0) // If set, allow use of jumpptr. Set in every use of statbuffchange
|
||||
#define STAT_CHANGE_NOT_PROTECT_AFFECTED (1 << 5)
|
||||
|
||||
// atk48
|
||||
#define ATK48_STAT_NEGATIVE 0x1
|
||||
#define ATK48_STAT_BY_TWO 0x2
|
||||
#define ATK48_ONLY_MULTIPLE 0x4
|
||||
#define ATK48_DONT_CHECK_LOWER 0x8
|
||||
// stat change flags for Cmd_playstatchangeanimation
|
||||
#define STAT_CHANGE_NEGATIVE (1 << 0)
|
||||
#define STAT_CHANGE_BY_TWO (1 << 1)
|
||||
#define STAT_CHANGE_MULTIPLE_STATS (1 << 2)
|
||||
#define STAT_CHANGE_CANT_PREVENT (1 << 3)
|
||||
|
||||
// atk49, moveend cases
|
||||
#define ATK49_RAGE 0
|
||||
#define ATK49_DEFROST 1
|
||||
#define ATK49_SYNCHRONIZE_TARGET 2
|
||||
#define ATK49_MOVE_END_ABILITIES 3
|
||||
#define ATK49_STATUS_IMMUNITY_ABILITIES 4
|
||||
#define ATK49_SYNCHRONIZE_ATTACKER 5
|
||||
#define ATK49_CHOICE_MOVE 6
|
||||
#define ATK49_CHANGED_ITEMS 7
|
||||
#define ATK49_ATTACKER_INVISIBLE 8
|
||||
#define ATK49_ATTACKER_VISIBLE 9
|
||||
#define ATK49_TARGET_VISIBLE 10
|
||||
#define ATK49_ITEM_EFFECTS_ALL 11
|
||||
#define ATK49_KINGSROCK_SHELLBELL 12
|
||||
#define ATK49_SUBSTITUTE 13
|
||||
#define ATK49_UPDATE_LAST_MOVES 14
|
||||
#define ATK49_MIRROR_MOVE 15
|
||||
#define ATK49_NEXT_TARGET 16
|
||||
#define ATK49_COUNT 17
|
||||
// stat flags for Cmd_playstatchangeanimation
|
||||
#define BIT_HP (1 << 0)
|
||||
#define BIT_ATK (1 << 1)
|
||||
#define BIT_DEF (1 << 2)
|
||||
#define BIT_SPEED (1 << 3)
|
||||
#define BIT_SPATK (1 << 4)
|
||||
#define BIT_SPDEF (1 << 5)
|
||||
#define BIT_ACC (1 << 6)
|
||||
#define BIT_EVASION (1 << 7)
|
||||
|
||||
#define BIT_HP 0x1
|
||||
#define BIT_ATK 0x2
|
||||
#define BIT_DEF 0x4
|
||||
#define BIT_SPEED 0x8
|
||||
#define BIT_SPATK 0x10
|
||||
#define BIT_SPDEF 0x20
|
||||
#define BIT_ACC 0x40
|
||||
#define BIT_EVASION 0x80
|
||||
#define PARTY_SCREEN_OPTIONAL (1 << 7) // Flag for first argument to openpartyscreen
|
||||
|
||||
// cases for Cmd_moveend
|
||||
#define MOVEEND_RAGE 0
|
||||
#define MOVEEND_DEFROST 1
|
||||
#define MOVEEND_SYNCHRONIZE_TARGET 2
|
||||
#define MOVEEND_ON_DAMAGE_ABILITIES 3
|
||||
#define MOVEEND_IMMUNITY_ABILITIES 4
|
||||
#define MOVEEND_SYNCHRONIZE_ATTACKER 5
|
||||
#define MOVEEND_CHOICE_MOVE 6
|
||||
#define MOVEEND_CHANGED_ITEMS 7
|
||||
#define MOVEEND_ATTACKER_INVISIBLE 8
|
||||
#define MOVEEND_ATTACKER_VISIBLE 9
|
||||
#define MOVEEND_TARGET_VISIBLE 10
|
||||
#define MOVEEND_ITEM_EFFECTS_ALL 11
|
||||
#define MOVEEND_KINGSROCK_SHELLBELL 12
|
||||
#define MOVEEND_SUBSTITUTE 13
|
||||
#define MOVEEND_UPDATE_LAST_MOVES 14
|
||||
#define MOVEEND_MIRROR_MOVE 15
|
||||
#define MOVEEND_NEXT_TARGET 16
|
||||
#define MOVEEND_COUNT 17
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
#define MOVEMENT_ACTION_WALK_SLOWEST_UP 0x9C
|
||||
#define MOVEMENT_ACTION_WALK_SLOWEST_LEFT 0x9D
|
||||
#define MOVEMENT_ACTION_WALK_SLOWEST_RIGHT 0x9E
|
||||
#define MOVEMENT_ACTION_SHAKE_HEAD 0x9F
|
||||
#define MOVEMENT_ACTION_SHAKE_HEAD_OR_WALK_IN_PLACE 0x9F
|
||||
#define MOVEMENT_ACTION_0xA0 0xA0
|
||||
#define MOVEMENT_ACTION_0xA1 0xA1
|
||||
#define MOVEMENT_ACTION_0xA2 0xA2
|
||||
@@ -261,4 +261,86 @@
|
||||
|
||||
#define MOVEMENT_ACTION_STEP_END 0xFE
|
||||
|
||||
#define ANIM_STD_FACE_SOUTH 0
|
||||
#define ANIM_STD_FACE_NORTH 1
|
||||
#define ANIM_STD_FACE_WEST 2
|
||||
#define ANIM_STD_FACE_EAST 3
|
||||
#define ANIM_STD_GO_SOUTH 4
|
||||
#define ANIM_STD_GO_NORTH 5
|
||||
#define ANIM_STD_GO_WEST 6
|
||||
#define ANIM_STD_GO_EAST 7
|
||||
#define ANIM_STD_GO_FAST_SOUTH 8
|
||||
#define ANIM_STD_GO_FAST_NORTH 9
|
||||
#define ANIM_STD_GO_FAST_WEST 10
|
||||
#define ANIM_STD_GO_FAST_EAST 11
|
||||
#define ANIM_STD_GO_FASTER_SOUTH 12
|
||||
#define ANIM_STD_GO_FASTER_NORTH 13
|
||||
#define ANIM_STD_GO_FASTER_WEST 14
|
||||
#define ANIM_STD_GO_FASTER_EAST 15
|
||||
#define ANIM_STD_GO_FASTEST_SOUTH 16
|
||||
#define ANIM_STD_GO_FASTEST_NORTH 17
|
||||
#define ANIM_STD_GO_FASTEST_WEST 18
|
||||
#define ANIM_STD_GO_FASTEST_EAST 19
|
||||
#define ANIM_STD_COUNT 20
|
||||
|
||||
#define ANIM_RUN_SOUTH (ANIM_STD_COUNT + 0)
|
||||
#define ANIM_RUN_NORTH (ANIM_STD_COUNT + 1)
|
||||
#define ANIM_RUN_WEST (ANIM_STD_COUNT + 2)
|
||||
#define ANIM_RUN_EAST (ANIM_STD_COUNT + 3)
|
||||
#define ANIM_SPIN_SOUTH (ANIM_STD_COUNT + 4)
|
||||
#define ANIM_SPIN_NORTH (ANIM_STD_COUNT + 5)
|
||||
#define ANIM_SPIN_WEST (ANIM_STD_COUNT + 6)
|
||||
#define ANIM_SPIN_EAST (ANIM_STD_COUNT + 7)
|
||||
#define ANIM_SHAKE_HEAD_OR_WALK_IN_PLACE (ANIM_STD_COUNT + 8)
|
||||
|
||||
#define ANIM_BUNNY_HOP_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 0)
|
||||
#define ANIM_BUNNY_HOP_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 1)
|
||||
#define ANIM_BUNNY_HOP_BACK_WHEEL_WEST (ANIM_STD_COUNT + 2)
|
||||
#define ANIM_BUNNY_HOP_BACK_WHEEL_EAST (ANIM_STD_COUNT + 3)
|
||||
#define ANIM_BUNNY_HOP_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 4)
|
||||
#define ANIM_BUNNY_HOP_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 5)
|
||||
#define ANIM_BUNNY_HOP_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 6)
|
||||
#define ANIM_BUNNY_HOP_FRONT_WHEEL_EAST (ANIM_STD_COUNT + 7)
|
||||
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_SOUTH (ANIM_STD_COUNT + 8)
|
||||
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_NORTH (ANIM_STD_COUNT + 9)
|
||||
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_WEST (ANIM_STD_COUNT + 10)
|
||||
#define ANIM_STANDING_WHEELIE_BACK_WHEEL_EAST (ANIM_STD_COUNT + 11)
|
||||
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_SOUTH (ANIM_STD_COUNT + 12)
|
||||
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_NORTH (ANIM_STD_COUNT + 13)
|
||||
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_WEST (ANIM_STD_COUNT + 14)
|
||||
#define ANIM_STANDING_WHEELIE_FRONT_WHEEL_EAST (ANIM_STD_COUNT + 15)
|
||||
#define ANIM_MOVING_WHEELIE_SOUTH (ANIM_STD_COUNT + 16)
|
||||
#define ANIM_MOVING_WHEELIE_NORTH (ANIM_STD_COUNT + 17)
|
||||
#define ANIM_MOVING_WHEELIE_WEST (ANIM_STD_COUNT + 18)
|
||||
#define ANIM_MOVING_WHEELIE_EAST (ANIM_STD_COUNT + 19)
|
||||
|
||||
#define ANIM_GET_ON_OFF_POKEMON_SOUTH (ANIM_STD_COUNT + 0)
|
||||
#define ANIM_GET_ON_OFF_POKEMON_NORTH (ANIM_STD_COUNT + 1)
|
||||
#define ANIM_GET_ON_OFF_POKEMON_WEST (ANIM_STD_COUNT + 2)
|
||||
#define ANIM_GET_ON_OFF_POKEMON_EAST (ANIM_STD_COUNT + 3)
|
||||
|
||||
#define ANIM_NURSE_BOW (ANIM_STD_COUNT + 0)
|
||||
|
||||
#define ANIM_RAISE_HAND (ANIM_STD_COUNT + 0)
|
||||
|
||||
#define ANIM_FIELD_MOVE 0
|
||||
|
||||
#define ANIM_VS_SEEKER 0
|
||||
|
||||
#define ANIM_STAY_STILL 0
|
||||
#define ANIM_REMOVE_OBSTACLE 1
|
||||
|
||||
#define ANIM_TAKE_OUT_ROD_SOUTH 0
|
||||
#define ANIM_TAKE_OUT_ROD_NORTH 1
|
||||
#define ANIM_TAKE_OUT_ROD_WEST 2
|
||||
#define ANIM_TAKE_OUT_ROD_EAST 3
|
||||
#define ANIM_PUT_AWAY_ROD_SOUTH 4
|
||||
#define ANIM_PUT_AWAY_ROD_NORTH 5
|
||||
#define ANIM_PUT_AWAY_ROD_WEST 6
|
||||
#define ANIM_PUT_AWAY_ROD_EAST 7
|
||||
#define ANIM_HOOKED_POKEMON_SOUTH 8
|
||||
#define ANIM_HOOKED_POKEMON_NORTH 9
|
||||
#define ANIM_HOOKED_POKEMON_WEST 10
|
||||
#define ANIM_HOOKED_POKEMON_EAST 11
|
||||
|
||||
#endif // GUARD_CONSTANTS_EVENT_OBJECT_MOVEMENT_H
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
#ifndef GUARD_CONSTANTS_FANFARES_H
|
||||
#define GUARD_CONSTANTS_FANFARES_H
|
||||
|
||||
enum Fanfares
|
||||
{
|
||||
FANFARE_00,
|
||||
FANFARE_01,
|
||||
FANFARE_02,
|
||||
FANFARE_03,
|
||||
FANFARE_04,
|
||||
FANFARE_05,
|
||||
FANFARE_06,
|
||||
FANFARE_07,
|
||||
FANFARE_08,
|
||||
FANFARE_09,
|
||||
FANFARE_10,
|
||||
FANFARE_POKEFLUTE,
|
||||
FANFARE_KEY_ITEM,
|
||||
FANFARE_DEX_EVAL
|
||||
};
|
||||
|
||||
#endif //GUARD_CONSTANTS_FANFARES_H
|
||||
@@ -20,10 +20,10 @@
|
||||
#define FLDEFF_JUMP_SMALL_SPLASH 16
|
||||
#define FLDEFF_LONG_GRASS 17
|
||||
#define FLDEFF_JUMP_LONG_GRASS 18
|
||||
#define FLDEFF_UNKNOWN_19 19
|
||||
#define FLDEFF_UNKNOWN_20 20
|
||||
#define FLDEFF_UNKNOWN_21 21
|
||||
#define FLDEFF_UNKNOWN_22 22
|
||||
#define FLDEFF_UNUSED_GRASS 19
|
||||
#define FLDEFF_UNUSED_GRASS_2 20
|
||||
#define FLDEFF_UNUSED_SAND 21
|
||||
#define FLDEFF_UNUSED_WATER_SURFACING 22
|
||||
#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23
|
||||
#define FLDEFF_DEEP_SAND_FOOTPRINTS 24
|
||||
#define FLDEFF_POKECENTER_HEAL 25
|
||||
@@ -32,7 +32,7 @@
|
||||
#define FLDEFF_TREE_DISGUISE 28
|
||||
#define FLDEFF_MOUNTAIN_DISGUISE 29
|
||||
#define FLDEFF_NPCFLY_OUT 30
|
||||
#define FLDEFF_USE_FLY 31
|
||||
#define FLDEFF_FLY_OUT 31
|
||||
#define FLDEFF_FLY_IN 32
|
||||
#define FLDEFF_QUESTION_MARK_ICON 33
|
||||
#define FLDEFF_FEET_IN_FLOWING_WATER 34
|
||||
@@ -70,7 +70,7 @@
|
||||
#define FLDEFF_DOUBLE_EXCL_MARK_ICON 66
|
||||
#define FLDEFF_MOVE_DEOXYS_ROCK 67
|
||||
#define FLDEFF_DESTROY_DEOXYS_ROCK 68
|
||||
#define FLDEFF_UNK_45 69 // TODO: related to fame checker photos
|
||||
#define FLDEFF_PHOTO_FLASH 69
|
||||
|
||||
#define FLDEFF_PAL_TAG_GENERAL_0 0x1004
|
||||
#define FLDEFF_PAL_TAG_GENERAL_1 0x1005
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#define GAME_LANGUAGE (LANGUAGE_ENGLISH)
|
||||
#endif
|
||||
|
||||
// capacities of various saveblock objects
|
||||
#define DAYCARE_MON_COUNT 2
|
||||
#define PC_ITEMS_COUNT 30
|
||||
#define BAG_ITEMS_COUNT 42
|
||||
@@ -53,6 +54,9 @@
|
||||
#define POCKET_BERRY_POUCH 5
|
||||
#define NUM_BAG_POCKETS 5
|
||||
|
||||
// Contests
|
||||
#define CONTEST_CATEGORIES_COUNT 5
|
||||
|
||||
// string lengths
|
||||
#define ITEM_NAME_LENGTH 14
|
||||
#define POKEMON_NAME_LENGTH 10
|
||||
|
||||
@@ -372,7 +372,7 @@
|
||||
#define ITEM_TM19_GIGA_DRAIN ITEM_TM19
|
||||
#define ITEM_TM20_SAFEGUARD ITEM_TM20
|
||||
#define ITEM_TM21_FRUSTRATION ITEM_TM21
|
||||
#define ITEM_TM22_SOLARBEAM ITEM_TM22
|
||||
#define ITEM_TM22_SOLAR_BEAM ITEM_TM22
|
||||
#define ITEM_TM23_IRON_TAIL ITEM_TM23
|
||||
#define ITEM_TM24_THUNDERBOLT ITEM_TM24
|
||||
#define ITEM_TM25_THUNDER ITEM_TM25
|
||||
@@ -447,6 +447,7 @@
|
||||
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
|
||||
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
|
||||
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
|
||||
#define MAIL_NONE 0xFF
|
||||
|
||||
#define NUM_TECHNICAL_MACHINES 50
|
||||
#define NUM_HIDDEN_MACHINES 8
|
||||
|
||||
@@ -252,7 +252,7 @@
|
||||
#define LAYOUT_SAFFRON_CITY_POKEMON_TRAINER_FAN_CLUB 263
|
||||
#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM1_DOOR_OPEN 264
|
||||
#define LAYOUT_SEVEN_ISLAND_HOUSE_ROOM2 265
|
||||
#define LAYOUT_VIRIDIAN_CITY_HOUSE2 266
|
||||
#define LAYOUT_VIRIDIAN_CITY_SCHOOL 266
|
||||
#define LAYOUT_CELADON_CITY_RESTAURANT_DUPLICATE 267
|
||||
#define LAYOUT_CELADON_CITY_HOTEL_DUPLICATE 268
|
||||
#define LAYOUT_MT_EMBER_RUBY_PATH_B4F 269
|
||||
@@ -262,7 +262,7 @@
|
||||
#define LAYOUT_VERMILION_CITY_POKEMON_FAN_CLUB 273
|
||||
#define LAYOUT_LAVENDER_TOWN_VOLUNTEER_POKEMON_HOUSE 274
|
||||
#define LAYOUT_ROUTE5_POKEMON_DAY_CARE 275
|
||||
#define LAYOUT_VIRIDIAN_CITY_HOUSE1 276
|
||||
#define LAYOUT_VIRIDIAN_CITY_HOUSE 276
|
||||
#define LAYOUT_FOUR_ISLAND_POKEMON_DAY_CARE 277
|
||||
#define LAYOUT_SEAFOAM_ISLANDS_B3F_CURRENT_STOPPED 278
|
||||
#define LAYOUT_SEAFOAM_ISLANDS_B4F_CURRENT_STOPPED 279
|
||||
|
||||
@@ -274,9 +274,9 @@
|
||||
#define MAP_PALLET_TOWN_PROFESSOR_OAKS_LAB (3 | (4 << 8))
|
||||
|
||||
// gMapGroup_IndoorViridian
|
||||
#define MAP_VIRIDIAN_CITY_HOUSE1 (0 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_HOUSE (0 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_GYM (1 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_HOUSE2 (2 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_SCHOOL (2 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_MART (3 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_1F (4 | (5 << 8))
|
||||
#define MAP_VIRIDIAN_CITY_POKEMON_CENTER_2F (5 | (5 << 8))
|
||||
|
||||
@@ -1,33 +1,41 @@
|
||||
#ifndef GUARD_METATILE_BEHAVIORS
|
||||
#define GUARD_METATILE_BEHAVIORS
|
||||
|
||||
#define METATILE_COUNT 0xF0
|
||||
#define MB_NORMAL 0x00
|
||||
#define MB_01 0x01
|
||||
#define MB_UNUSED_01 0x01
|
||||
#define MB_TALL_GRASS 0x02
|
||||
//
|
||||
#define MB_CAVE 0x08
|
||||
//
|
||||
#define MB_RUNNING_DISALLOWED 0x0A
|
||||
#define MB_0B 0x0B
|
||||
#define MB_0C 0x0C
|
||||
#define MB_INDOOR_ENCOUNTER 0x0B
|
||||
#define MB_MOUNTAIN_TOP 0x0C
|
||||
//
|
||||
#define MB_POND_WATER 0x10
|
||||
#define MB_SEMI_DEEP_WATER 0x11
|
||||
#define MB_DEEP_WATER 0x12
|
||||
#define MB_WATERFALL 0x13
|
||||
//
|
||||
#define MB_OCEAN_WATER 0x15
|
||||
#define MB_PUDDLE 0x16
|
||||
#define MB_SHALLOW_WATER 0x17
|
||||
//
|
||||
#define MB_UNDERWATER_BLOCKED_ABOVE 0x19
|
||||
#define MB_1A 0x1A
|
||||
#define MB_1B 0x1B
|
||||
#define MB_UNUSED_WATER 0x1A
|
||||
#define MB_CYCLING_ROAD_WATER 0x1B
|
||||
//
|
||||
#define MB_STRENGTH_BUTTON 0x20
|
||||
#define MB_SAND 0x21
|
||||
#define MB_SEAWEED 0x22
|
||||
#define MB_ICE 0x23
|
||||
//
|
||||
#define MB_THIN_ICE 0x26
|
||||
#define MB_CRACKED_ICE 0x27
|
||||
#define MB_HOT_SPRINGS 0x28
|
||||
//
|
||||
#define MB_ROCK_STAIRS 0x2A
|
||||
#define MB_SAND_CAVE 0x2B
|
||||
//
|
||||
#define MB_IMPASSABLE_EAST 0x30
|
||||
#define MB_IMPASSABLE_WEST 0x31
|
||||
#define MB_IMPASSABLE_NORTH 0x32
|
||||
@@ -40,8 +48,7 @@
|
||||
#define MB_JUMP_WEST 0x39
|
||||
#define MB_JUMP_NORTH 0x3A
|
||||
#define MB_JUMP_SOUTH 0x3B
|
||||
#define MB_JUMP_SOUTHEAST 0x3E
|
||||
#define MB_JUMP_SOUTHWEST 0x3F
|
||||
//
|
||||
#define MB_WALK_EAST 0x40
|
||||
#define MB_WALK_WEST 0x41
|
||||
#define MB_WALK_NORTH 0x42
|
||||
@@ -50,7 +57,8 @@
|
||||
#define MB_SLIDE_WEST 0x45
|
||||
#define MB_SLIDE_NORTH 0x46
|
||||
#define MB_SLIDE_SOUTH 0x47
|
||||
#define MB_UNKNOWN_MOVEMENT_48 0x48
|
||||
#define MB_TRICK_HOUSE_PUZZLE_8_FLOOR 0x48
|
||||
//
|
||||
#define MB_EASTWARD_CURRENT 0x50
|
||||
#define MB_WESTWARD_CURRENT 0x51
|
||||
#define MB_NORTHWARD_CURRENT 0x52
|
||||
@@ -60,6 +68,7 @@
|
||||
#define MB_SPIN_UP 0x56
|
||||
#define MB_SPIN_DOWN 0x57
|
||||
#define MB_STOP_SPINNING 0x58
|
||||
//
|
||||
#define MB_CAVE_DOOR 0x60
|
||||
#define MB_LADDER 0x61
|
||||
#define MB_EAST_ARROW_WARP 0x62
|
||||
@@ -76,7 +85,9 @@
|
||||
#define MB_UP_LEFT_STAIR_WARP 0x6D
|
||||
#define MB_DOWN_RIGHT_STAIR_WARP 0x6E
|
||||
#define MB_DOWN_LEFT_STAIR_WARP 0x6F
|
||||
//
|
||||
#define MB_UNION_ROOM_WARP 0x71
|
||||
//
|
||||
#define MB_COUNTER 0x80
|
||||
#define MB_BOOKSHELF 0x81
|
||||
#define MB_POKEMART_SHELF 0x82
|
||||
@@ -90,12 +101,12 @@
|
||||
#define MB_KITCHEN 0x8A
|
||||
#define MB_DRESSER 0x8B
|
||||
#define MB_SNACKS 0x8C
|
||||
#define MB_8D 0x8D
|
||||
#define MB_CABLE_CLUB_WIRELESS_MONITOR 0x8D
|
||||
#define MB_BATTLE_RECORDS 0x8E
|
||||
#define MB_QUESTIONNAIRE 0x8F
|
||||
#define MB_FOOD 0x90
|
||||
#define MB_INDIGO_PLATEAU_MARK_DPAD 0x91
|
||||
#define MB_INDIGO_PLATEAU_MARK_2_DPAD 0x92
|
||||
#define MB_INDIGO_PLATEAU_SIGN_1 0x91
|
||||
#define MB_INDIGO_PLATEAU_SIGN_2 0x92
|
||||
#define MB_BLUEPRINTS 0x93
|
||||
#define MB_PAINTING 0x94
|
||||
#define MB_POWER_PLANT_MACHINE 0x95
|
||||
@@ -106,13 +117,17 @@
|
||||
#define MB_TRASH_BIN 0x9A
|
||||
#define MB_CUP 0x9B
|
||||
#define MB_PORTHOLE 0x9C
|
||||
#define MB_WINDOW 0x9D
|
||||
#define MB_BLINKING_LIGHTS 0x9E
|
||||
#define MB_NEATLY_LINED_UP_TOOLS 0x9F
|
||||
#define MB_IMPRESSIVE_MACHINE 0xA0
|
||||
#define MB_VIDEO_GAME 0xA1
|
||||
#define MB_BURGLARY 0xA2
|
||||
#define MB_TRAINER_TOWER_MONITOR 0xA3
|
||||
//
|
||||
#define MB_CYCLING_ROAD_PULL_DOWN 0xD0
|
||||
#define MB_CYCLING_ROAD_PULL_DOWN_GRASS 0xD1
|
||||
//
|
||||
#define NUM_METATILE_BEHAVIORS 0xF0
|
||||
|
||||
#endif // GUARD_METATILE_BEHAVIORS
|
||||
|
||||
@@ -361,6 +361,9 @@
|
||||
|
||||
#define MOVES_COUNT 355
|
||||
|
||||
// Used for checks for moves affected by Disable, Mimic, etc.
|
||||
#define MOVE_UNAVAILABLE 0xFFFF
|
||||
|
||||
#define MOVETUTOR_MEGA_PUNCH 0
|
||||
#define MOVETUTOR_SWORDS_DANCE 1
|
||||
#define MOVETUTOR_MEGA_KICK 2
|
||||
|
||||
+47
-36
@@ -81,7 +81,7 @@
|
||||
#define MON_DATA_NATIONAL_RIBBON 76
|
||||
#define MON_DATA_EARTH_RIBBON 77
|
||||
#define MON_DATA_WORLD_RIBBON 78
|
||||
#define MON_DATA_FILLER 79
|
||||
#define MON_DATA_UNUSED_RIBBONS 79
|
||||
#define MON_DATA_EVENT_LEGAL 80
|
||||
#define MON_DATA_KNOWN_MOVES 81
|
||||
#define MON_DATA_RIBBON_COUNT 82
|
||||
@@ -134,44 +134,51 @@
|
||||
#define EGG_GROUPS_PER_MON 2
|
||||
|
||||
// Pokemon natures
|
||||
#define NATURE_HARDY 0
|
||||
#define NATURE_LONELY 1
|
||||
#define NATURE_BRAVE 2
|
||||
#define NATURE_ADAMANT 3
|
||||
#define NATURE_NAUGHTY 4
|
||||
#define NATURE_BOLD 5
|
||||
#define NATURE_DOCILE 6
|
||||
#define NATURE_RELAXED 7
|
||||
#define NATURE_IMPISH 8
|
||||
#define NATURE_LAX 9
|
||||
#define NATURE_TIMID 10
|
||||
#define NATURE_HASTY 11
|
||||
#define NATURE_SERIOUS 12
|
||||
#define NATURE_JOLLY 13
|
||||
#define NATURE_NAIVE 14
|
||||
#define NATURE_MODEST 15
|
||||
#define NATURE_MILD 16
|
||||
#define NATURE_QUIET 17
|
||||
#define NATURE_BASHFUL 18
|
||||
#define NATURE_RASH 19
|
||||
#define NATURE_CALM 20
|
||||
#define NATURE_GENTLE 21
|
||||
#define NATURE_SASSY 22
|
||||
#define NATURE_CAREFUL 23
|
||||
#define NATURE_QUIRKY 24
|
||||
#define NATURE_HARDY 0
|
||||
#define NATURE_LONELY 1
|
||||
#define NATURE_BRAVE 2
|
||||
#define NATURE_ADAMANT 3
|
||||
#define NATURE_NAUGHTY 4
|
||||
#define NATURE_BOLD 5
|
||||
#define NATURE_DOCILE 6
|
||||
#define NATURE_RELAXED 7
|
||||
#define NATURE_IMPISH 8
|
||||
#define NATURE_LAX 9
|
||||
#define NATURE_TIMID 10
|
||||
#define NATURE_HASTY 11
|
||||
#define NATURE_SERIOUS 12
|
||||
#define NATURE_JOLLY 13
|
||||
#define NATURE_NAIVE 14
|
||||
#define NATURE_MODEST 15
|
||||
#define NATURE_MILD 16
|
||||
#define NATURE_QUIET 17
|
||||
#define NATURE_BASHFUL 18
|
||||
#define NATURE_RASH 19
|
||||
#define NATURE_CALM 20
|
||||
#define NATURE_GENTLE 21
|
||||
#define NATURE_SASSY 22
|
||||
#define NATURE_CAREFUL 23
|
||||
#define NATURE_QUIRKY 24
|
||||
#define NUM_NATURES 25
|
||||
|
||||
// Pokemon Stats
|
||||
#define STAT_HP 0
|
||||
#define STAT_ATK 1
|
||||
#define STAT_DEF 2
|
||||
#define STAT_SPEED 3
|
||||
#define STAT_SPATK 4
|
||||
#define STAT_SPDEF 5
|
||||
#define STAT_ACC 6 // only in battles
|
||||
#define STAT_EVASION 7 // only in battles
|
||||
#define STAT_HP 0
|
||||
#define STAT_ATK 1
|
||||
#define STAT_DEF 2
|
||||
#define STAT_SPEED 3
|
||||
#define STAT_SPATK 4
|
||||
#define STAT_SPDEF 5
|
||||
#define NUM_STATS 6
|
||||
|
||||
#define NUM_STATS 6
|
||||
#define NUM_BATTLE_STATS 8
|
||||
#define STAT_ACC 6 // Only in battles.
|
||||
#define STAT_EVASION 7 // Only in battles.
|
||||
|
||||
#define NUM_NATURE_STATS (NUM_STATS - 1) // excludes HP
|
||||
#define NUM_BATTLE_STATS (NUM_STATS + 2) // includes Accuracy and Evasion
|
||||
|
||||
#define MIN_STAT_STAGE 0
|
||||
#define DEFAULT_STAT_STAGE 6
|
||||
#define MAX_STAT_STAGE 12
|
||||
|
||||
// Shiny odds
|
||||
#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
|
||||
@@ -225,6 +232,10 @@
|
||||
#define EVO_MODE_ITEM_USE 2
|
||||
#define EVO_MODE_ITEM_CHECK 3 // If an Everstone is being held, still want to show that the stone *could* be used on that Pokémon to evolve
|
||||
|
||||
#define MON_PIC_WIDTH 64
|
||||
#define MON_PIC_HEIGHT 64
|
||||
#define MON_PIC_SIZE (MON_PIC_WIDTH * MON_PIC_HEIGHT / 2)
|
||||
|
||||
// used by ShouldIgnoreDeoxysForm
|
||||
#define DEOXYS_CHECK_BATTLE_SPRITE 1
|
||||
#define DEOXYS_CHECK_TRADE_MAIN 3
|
||||
|
||||
@@ -353,4 +353,6 @@
|
||||
#define MUS_SLOW_PALLET 345 // MUS_RG_SLOWMASARA
|
||||
#define MUS_TEACHY_TV_MENU 346 // MUS_RG_TVNOIZE
|
||||
|
||||
#define MUS_NONE 0xFFFF
|
||||
|
||||
#endif // GUARD_CONSTANTS_SONGS_H
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
#ifndef GUARD_CONSTANTS_SOUND_H
|
||||
#define GUARD_CONSTANTS_SOUND_H
|
||||
|
||||
#define FANFARE_LEVEL_UP 0
|
||||
#define FANFARE_OBTAIN_ITEM 1
|
||||
#define FANFARE_EVOLVED 2
|
||||
#define FANFARE_OBTAIN_TMHM 3
|
||||
#define FANFARE_HEAL 4
|
||||
#define FANFARE_OBTAIN_BADGE 5
|
||||
#define FANFARE_MOVE_DELETED 6
|
||||
#define FANFARE_OBTAIN_BERRY 7
|
||||
#define FANFARE_SLOTS_JACKPOT 8
|
||||
#define FANFARE_SLOTS_WIN 9
|
||||
#define FANFARE_TOO_BAD 10
|
||||
#define FANFARE_POKE_FLUTE 11
|
||||
#define FANFARE_KEY_ITEM 12
|
||||
#define FANFARE_DEX_EVAL 13
|
||||
|
||||
#define CRY_MODE_NORMAL 0 // Default
|
||||
#define CRY_MODE_DOUBLES 1 // Shortened cry for double battles
|
||||
#define CRY_MODE_ENCOUNTER 2 // Used when starting a static encounter, or when a Pokémon is "aggressive"
|
||||
#define CRY_MODE_HIGH_PITCH 3 // Highest pitch mode, used exclusively by the move Howl
|
||||
#define CRY_MODE_ECHO_START 4 // For 1st half of cry used by the move Hyper Voice. Played in reverse
|
||||
#define CRY_MODE_FAINT 5 // Used when a Pokémon faints
|
||||
#define CRY_MODE_ECHO_END 6 // For 2nd half of cry used by the move Hyper Voice
|
||||
#define CRY_MODE_ROAR_1 7 // For 1st cry used by the move Roar
|
||||
#define CRY_MODE_ROAR_2 8 // For 2nd cry used by the move Roar
|
||||
#define CRY_MODE_GROWL_1 9 // For 1st cry used by the move Growl. Played in reverse
|
||||
#define CRY_MODE_GROWL_2 10 // For 2nd cry used by the move Growl
|
||||
#define CRY_MODE_WEAK 11 // Used when a Pokémon is unhealthy
|
||||
#define CRY_MODE_WEAK_DOUBLES 12 // Equivalent to CRY_MODE_DOUBLES for CRY_MODE_WEAK
|
||||
|
||||
// Given to SoundTask_PlayDoubleCry to determine which cry mode to use. Values are arbitrary
|
||||
#define DOUBLE_CRY_ROAR 2
|
||||
#define DOUBLE_CRY_GROWL 255
|
||||
|
||||
#define CRY_PRIORITY_NORMAL 10
|
||||
#define CRY_PRIORITY_AMBIENT 1
|
||||
|
||||
// Cry volume was changed from 125 in R/S to 120 for FRLG/Em, but was (accidentally?) not updated outside of sound.c
|
||||
#define CRY_VOLUME 120
|
||||
#define CRY_VOLUME_RS 125
|
||||
|
||||
#endif //GUARD_CONSTANTS_SOUND_H
|
||||
@@ -18,9 +18,9 @@ void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src);
|
||||
void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
|
||||
bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
|
||||
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
|
||||
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
|
||||
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
|
||||
void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *buffer, s32 species);
|
||||
|
||||
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
|
||||
|
||||
@@ -52,4 +52,6 @@ struct Decoration
|
||||
const u16 *tiles;
|
||||
};
|
||||
|
||||
extern const struct Decoration gDecorations[];
|
||||
|
||||
#endif //GUARD_DECORATION_H
|
||||
|
||||
@@ -31,6 +31,6 @@ void EReaderHelper_Timer3Callback(void);
|
||||
void EReaderHelper_SaveRegsState(void);
|
||||
void EReaderHelper_ClearsSendRecvMgr(void);
|
||||
void EReaderHelper_RestoreRegsState(void);
|
||||
u16 EReaderHandleTransfer(u8 mode, size_t size, const void * src, void * dest);
|
||||
u16 EReaderHandleTransfer(u8 mode, size_t size, const void *src, void *dest);
|
||||
|
||||
#endif //GUARD_EREADER_HELPERS_H
|
||||
|
||||
@@ -20,7 +20,7 @@ enum SpinnerRunnerFollowPatterns
|
||||
RUNFOLLOW_SOUTH_EAST_WEST
|
||||
};
|
||||
|
||||
struct UnkStruct_083A3698
|
||||
struct StepAnimTable
|
||||
{
|
||||
const union AnimCmd *const *anims;
|
||||
u8 animPos[4];
|
||||
@@ -156,14 +156,14 @@ bool32 RfuUnionObjectIsWarping(u8 objectEventId);
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
u8 AddCameraObject(u8 trackedSpriteId);
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
|
||||
void LoadEvoSparkleSpriteAndPal(void);
|
||||
|
||||
u8 LaunchTask_PreEvoSparklesSet1(u16 arg0);
|
||||
u8 LaunchTask_PreEvoSparklesSet2(void);
|
||||
u8 LaunchTask_PostEvoSparklesSet1(void);
|
||||
u8 LaunchTask_PostEvoSparklesSet2AndFlash(u16 species);
|
||||
u8 LaunchTask_PostEvoSparklesSet2AndFlash_Trade(u16 species);
|
||||
u8 LaunchTask_PrePostEvoMonSprites(u8 preEvoSpriteId, u8 postEvoSpriteId);
|
||||
u8 EvolutionSparkles_SpiralUpward(u16 arg0);
|
||||
u8 EvolutionSparkles_ArcDown(void);
|
||||
u8 EvolutionSparkles_CircleInward(void);
|
||||
u8 EvolutionSparkles_SprayAndFlash(u16 species);
|
||||
u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species);
|
||||
u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId);
|
||||
|
||||
#define EvoGraphicsTaskEvoStop data[8]
|
||||
|
||||
|
||||
@@ -20,12 +20,12 @@ void StartEscalatorWarp(u8 metatileBehavior, u8 priority);
|
||||
void StartLavaridgeGymB1FWarp(u8 a0);
|
||||
void StartLavaridgeGym1FWarp(u8 a0);
|
||||
void ApplyGlobalFieldPaletteTint(u8 paletteIdx);
|
||||
void FreeResourcesAndDestroySprite(struct Sprite * sprite, u8 spriteId);
|
||||
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
|
||||
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, bool8 unused);
|
||||
void ReturnToFieldFromFlyMapSelect(void);
|
||||
void MultiplyInvertedPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite * sprite);
|
||||
void SpriteCB_AshLaunch(struct Sprite * sprite);
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite *sprite);
|
||||
void SpriteCB_AshLaunch(struct Sprite *sprite);
|
||||
void FieldEffectActiveListClear(void);
|
||||
|
||||
#endif //GUARD_FIELD_EFFECTS_H
|
||||
|
||||
@@ -7,38 +7,38 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
// Exported type declarations
|
||||
|
||||
// Exported RAM declarations
|
||||
|
||||
// Exported ROM declarations
|
||||
enum {
|
||||
BOB_NONE,
|
||||
BOB_PLAYER_AND_MON,
|
||||
BOB_MON_ONLY, // when player has jumped / flown off
|
||||
};
|
||||
|
||||
u8 CreateWarpArrowSprite(void);
|
||||
void SetSurfBlob_BobState(u8, u8);
|
||||
void SetSurfBlob_DontSyncAnim(u8, u8);
|
||||
void SetSurfBlob_BobState(u8 spriteId, u8 bobState);
|
||||
void SetSurfBlob_DontSyncAnim(u8 spriteId, bool8 value);
|
||||
void StartAshFieldEffect(s16, s16, u16, s16);
|
||||
void StartRevealDisguise(struct ObjectEvent *);
|
||||
bool8 UpdateRevealDisguise(struct ObjectEvent *);
|
||||
void SetUpReflection(struct ObjectEvent*, struct Sprite*, u8);
|
||||
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent*);
|
||||
void SetUpReflection(struct ObjectEvent *, struct Sprite *, u8);
|
||||
u32 StartFieldEffectForObjectEvent(u8, struct ObjectEvent *);
|
||||
u8 FindTallGrassFieldEffectSpriteId(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
|
||||
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
|
||||
void SetSpriteInvisible(u8 spriteId);
|
||||
void SetSurfBlob_PlayerOffset(u8 spriteId, u8 hasOffset, s16 offset);
|
||||
void UpdateJumpImpactEffect(struct Sprite * sprite);
|
||||
void UpdateShadowFieldEffect(struct Sprite * sprite);
|
||||
void UpdateBubblesFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSparkleFieldEffect(struct Sprite * sprite);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite * sprite);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite * sprite);
|
||||
void UpdateAshFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite * sprite);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSplashFieldEffect(struct Sprite * sprite);
|
||||
void UpdateShortGrassFieldEffect(struct Sprite * sprite);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite * sprite);
|
||||
void UpdateSandPileFieldEffect(struct Sprite * sprite);
|
||||
void UpdateDisguiseFieldEffect(struct Sprite * sprite);
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite * sprite);
|
||||
void SetSurfBlob_PlayerOffset(u8 spriteId, bool8 hasOffset, s16 offset);
|
||||
void UpdateJumpImpactEffect(struct Sprite *sprite);
|
||||
void UpdateShadowFieldEffect(struct Sprite *sprite);
|
||||
void UpdateBubblesFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSparkleFieldEffect(struct Sprite *sprite);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite *sprite);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite *sprite);
|
||||
void UpdateAshFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite *sprite);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSplashFieldEffect(struct Sprite *sprite);
|
||||
void UpdateShortGrassFieldEffect(struct Sprite *sprite);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite *sprite);
|
||||
void UpdateSandPileFieldEffect(struct Sprite *sprite);
|
||||
void UpdateDisguiseFieldEffect(struct Sprite *sprite);
|
||||
void UpdateHotSpringsWaterFieldEffect(struct Sprite *sprite);
|
||||
|
||||
#endif //GUARD_FIELD_EFFECT_HELPERS_H
|
||||
|
||||
@@ -7,7 +7,7 @@ bool8 ShowFieldMessage(const u8 *message);
|
||||
bool8 ShowFieldAutoScrollMessage(const u8 *message);
|
||||
void HideFieldMessageBox(void);
|
||||
bool8 IsFieldMessageBoxHidden(void);
|
||||
bool8 textbox_any_visible(void);
|
||||
u8 GetFieldMessageBoxType(void);
|
||||
void InitFieldMessageBox(void);
|
||||
|
||||
#endif // GUARD_FIELD_MESSAGE_BOX_H
|
||||
|
||||
@@ -13,7 +13,7 @@ u8 GetPlayerMovementDirection(void);
|
||||
u8 PlayerGetCopyableMovement(void);
|
||||
void MovePlayerNotOnBike(u8 direction, u16 heldKeys);
|
||||
|
||||
void MovementType_Player(struct Sprite * sprite);
|
||||
void MovementType_Player(struct Sprite *sprite);
|
||||
void HandleEnforcedLookDirectionOnPlayerStopMoving(void);
|
||||
void StopPlayerAvatar(void);
|
||||
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
|
||||
@@ -56,7 +56,7 @@ void PlayerFaceDirection(u8 direction);
|
||||
void PlayerFaceDirectionFast(u8 direction);
|
||||
void PlayerTurnInPlace(u8 direction);
|
||||
void PlayerJumpLedge(u8 direction);
|
||||
void PlayerShakeHead(void);
|
||||
void PlayerShakeHeadOrWalkInPlace(void);
|
||||
void player_step(u8 direction, u16 newKeys, u16 heldKeys);
|
||||
bool32 PlayerIsMovingOnRockStairs(u8 direction);
|
||||
void UpdatePlayerAvatarTransitionState(void);
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ u8 MapGridGetMetatileLayerTypeAt(s16 x, s16 y);
|
||||
void MapGridSetMetatileIdAt(s32, s32, u16);
|
||||
void MapGridSetMetatileEntryAt(s32, s32, u16);
|
||||
u8 MapGridGetZCoordAt(s32 x, s32 y);
|
||||
void GetCameraCoords(u16*, u16*);
|
||||
void GetCameraCoords(u16 *, u16 *);
|
||||
bool8 MapGridIsImpassableAt(s32, s32);
|
||||
s32 GetMapBorderIdAt(s32, s32);
|
||||
bool32 CanCameraMoveInDirection(s32);
|
||||
|
||||
@@ -23,14 +23,14 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
|
||||
#ifdef NDEBUG
|
||||
#define AGB_ASSERT(exp)
|
||||
#else
|
||||
#define AGB_ASSERT(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
|
||||
#define AGB_ASSERT(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 1);
|
||||
#endif
|
||||
|
||||
#undef AGB_WARNING
|
||||
#ifdef NDEBUG
|
||||
#define AGB_WARNING(exp)
|
||||
#else
|
||||
#define AGB_WARNING(exp) (exp) ? ((void*)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
|
||||
#define AGB_WARNING(exp) (exp) ? ((void *)0) : AGBAssert(__FILE__, __LINE__, #exp, 0);
|
||||
#endif
|
||||
|
||||
// for matching purposes
|
||||
@@ -42,13 +42,13 @@ void AGBAssert(const char *pFile, int nLine, const char *pExpression, int nStopP
|
||||
#ifdef NDEBUG
|
||||
#define AGB_ASSERT_EX(exp, file, line)
|
||||
#else
|
||||
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 1);
|
||||
#define AGB_ASSERT_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 1);
|
||||
#endif
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define AGB_WARNING_EX(exp, file, line)
|
||||
#else
|
||||
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void*)0) : AGBAssert(file, line, #exp, 0);
|
||||
#define AGB_WARNING_EX(exp, file, line) (exp) ? ((void *)0) : AGBAssert(file, line, #exp, 0);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -313,6 +313,8 @@ struct MusicPlayerTrack
|
||||
|
||||
#define MAX_MUSICPLAYER_TRACKS 16
|
||||
|
||||
#define TRACKS_ALL 0xFFFF
|
||||
|
||||
#define TEMPORARY_FADE 0x0001
|
||||
#define FADE_IN 0x0002
|
||||
#define FADE_VOL_MAX 64
|
||||
|
||||
+6
-2
@@ -100,13 +100,13 @@
|
||||
#define T1_READ_8(ptr) ((ptr)[0])
|
||||
#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8))
|
||||
#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24))
|
||||
#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr)
|
||||
#define T1_READ_PTR(ptr) (u8 *) T1_READ_32(ptr)
|
||||
|
||||
// T2_READ_8 is a duplicate to remain consistent with each group.
|
||||
#define T2_READ_8(ptr) ((ptr)[0])
|
||||
#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8))
|
||||
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
|
||||
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
|
||||
#define T2_READ_PTR(ptr) (void *) T2_READ_32(ptr)
|
||||
|
||||
// This macro is required to prevent the compiler from optimizing
|
||||
// a dpad up/down check in sub_812CAD8 (fame_checker.c).
|
||||
@@ -129,6 +129,10 @@ extern u8 gStringVar4[];
|
||||
#define NUM_FLAG_BYTES ROUND_BITS_TO_BYTES(FLAGS_COUNT)
|
||||
#define NUM_ADDITIONAL_PHRASE_BYTES ROUND_BITS_TO_BYTES(NUM_ADDITIONAL_PHRASES)
|
||||
|
||||
// This produces an error at compile-time if expr is zero.
|
||||
// It looks like file.c:line: size of array `id' is negative
|
||||
#define STATIC_ASSERT(expr, id) typedef char id[(expr) ? 1 : -1];
|
||||
|
||||
struct Coords8
|
||||
{
|
||||
s8 x;
|
||||
|
||||
+28
-28
@@ -3,30 +3,30 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
extern const u32 gInterfaceGfx_PokeBall[];
|
||||
extern const u32 gInterfacePal_PokeBall[];
|
||||
extern const u32 gInterfaceGfx_GreatBall[];
|
||||
extern const u32 gInterfacePal_GreatBall[];
|
||||
extern const u32 gInterfaceGfx_SafariBall[];
|
||||
extern const u32 gInterfacePal_SafariBall[];
|
||||
extern const u32 gInterfaceGfx_UltraBall[];
|
||||
extern const u32 gInterfacePal_UltraBall[];
|
||||
extern const u32 gInterfaceGfx_MasterBall[];
|
||||
extern const u32 gInterfacePal_MasterBall[];
|
||||
extern const u32 gInterfaceGfx_NetBall[];
|
||||
extern const u32 gInterfacePal_NetBall[];
|
||||
extern const u32 gInterfaceGfx_DiveBall[];
|
||||
extern const u32 gInterfacePal_DiveBall[];
|
||||
extern const u32 gInterfaceGfx_NestBall[];
|
||||
extern const u32 gInterfacePal_NestBall[];
|
||||
extern const u32 gInterfaceGfx_RepeatBall[];
|
||||
extern const u32 gInterfacePal_RepeatBall[];
|
||||
extern const u32 gInterfaceGfx_TimerBall[];
|
||||
extern const u32 gInterfacePal_TimerBall[];
|
||||
extern const u32 gInterfaceGfx_LuxuryBall[];
|
||||
extern const u32 gInterfacePal_LuxuryBall[];
|
||||
extern const u32 gInterfaceGfx_PremierBall[];
|
||||
extern const u32 gInterfacePal_PremierBall[];
|
||||
extern const u32 gBallGfx_Poke[];
|
||||
extern const u32 gBallPal_Poke[];
|
||||
extern const u32 gBallGfx_Great[];
|
||||
extern const u32 gBallPal_Great[];
|
||||
extern const u32 gBallGfx_Safari[];
|
||||
extern const u32 gBallPal_Safari[];
|
||||
extern const u32 gBallGfx_Ultra[];
|
||||
extern const u32 gBallPal_Ultra[];
|
||||
extern const u32 gBallGfx_Master[];
|
||||
extern const u32 gBallPal_Master[];
|
||||
extern const u32 gBallGfx_Net[];
|
||||
extern const u32 gBallPal_Net[];
|
||||
extern const u32 gBallGfx_Dive[];
|
||||
extern const u32 gBallPal_Dive[];
|
||||
extern const u32 gBallGfx_Nest[];
|
||||
extern const u32 gBallPal_Nest[];
|
||||
extern const u32 gBallGfx_Repeat[];
|
||||
extern const u32 gBallPal_Repeat[];
|
||||
extern const u32 gBallGfx_Timer[];
|
||||
extern const u32 gBallPal_Timer[];
|
||||
extern const u32 gBallGfx_Luxury[];
|
||||
extern const u32 gBallPal_Luxury[];
|
||||
extern const u32 gBallGfx_Premier[];
|
||||
extern const u32 gBallPal_Premier[];
|
||||
extern const u32 gOpenPokeballGfx[];
|
||||
|
||||
// pokemon gfx
|
||||
@@ -2980,7 +2980,7 @@ extern const u8 gFile_graphics_items_icon_palettes_soda_pop_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_lemonade_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_lemonade_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_moomoo_milk_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];;
|
||||
extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_energy_powder_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_energy_root_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_energy_root_palette[];
|
||||
@@ -4258,7 +4258,7 @@ extern const u32 gBattleAnimBgPalette_Sky[];
|
||||
extern const u32 gBattleAnimBgPalette_Aurora[];
|
||||
extern const u32 gBattleAnimBgPalette_Fissure[];
|
||||
extern const u32 gBattleAnimBgPalette_Bug[];
|
||||
extern const u32 gBattleAnimBgPalette_Solarbeam[];
|
||||
extern const u32 gBattleAnimBgPalette_SolarBeam[];
|
||||
extern const u32 gBattleAnimBgPalette_Surf[];
|
||||
extern const u32 gBattleAnimBgTilemap_Dark[];
|
||||
extern const u32 gBattleAnimBgTilemap_Ghost[];
|
||||
@@ -4829,8 +4829,8 @@ extern const u16 gTradeButtons_Gfx[];
|
||||
extern const u16 gTradeMenuMonBox_Tilemap[];
|
||||
|
||||
// mon_markings
|
||||
extern const u16 gUnknown_8E9CBBC[];
|
||||
extern const u16 gUnknown_8E9CB9C[];
|
||||
extern const u16 gMonMarkingsMenu_Gfx[];
|
||||
extern const u16 gMonMarkingsMenu_Pal[];
|
||||
|
||||
// hall_of_fame
|
||||
extern const u32 gFile_graphics_misc_confetti_sheet[];
|
||||
|
||||
@@ -85,7 +85,7 @@ void HelpSystem_SetInputDelay(u8);
|
||||
s32 HelpSystem_GetMenuInput(void);
|
||||
void HS_UpdateMenuScrollArrows(void);
|
||||
|
||||
void DecompressAndRenderGlyph(u8 font, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height);
|
||||
void DecompressAndRenderGlyph(u8 fontId, u16 glyph, struct Bitmap *srcBlit, struct Bitmap *destBlit, u8 *destBuffer, u8 x, u8 y, u8 width, u8 height);
|
||||
void HelpSystem_PrintTextInTopLeftCorner(const u8 * str);
|
||||
void HelpSystem_FillPanel3(void);
|
||||
void PrintListMenuItems(void);
|
||||
@@ -93,7 +93,7 @@ void PlaceListMenuCursor(void);
|
||||
bool8 MoveCursor(u8 by, u8 dirn);
|
||||
void BackupHelpContext(void);
|
||||
void RestoreHelpContext(void);
|
||||
void HelpSystemRenderText(u8 font, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height);
|
||||
void HelpSystemRenderText(u8 fontId, u8 * dest, const u8 * src, u8 x, u8 y, u8 width, u8 height);
|
||||
void HelpSystem_DisableToggleWithRButton(void);
|
||||
|
||||
#endif //GUARD_HELP_SYSTEM_H
|
||||
|
||||
+2
-1
@@ -29,9 +29,10 @@ struct BagPocket
|
||||
u8 capacity;
|
||||
};
|
||||
|
||||
extern const struct Item gItems[];
|
||||
extern struct BagPocket gBagPockets[];
|
||||
|
||||
void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity);
|
||||
void GetBerryCountString(u8 *dst, const u8 *berryName, u32 quantity);
|
||||
void CopyItemName(u16 itemId, u8 *string);
|
||||
void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity);
|
||||
bool8 IsBagPocketNonEmpty(u8 pocket);
|
||||
|
||||
@@ -22,7 +22,7 @@ void ItemMenuIcons_MoveInsertIndicatorBar(s16 x, u16 y);
|
||||
void ItemMenuIcons_ToggleInsertIndicatorBarVisibility(bool8 invisible);
|
||||
void SetBagVisualPocketId(u8);
|
||||
void ShakeBagSprite(void);
|
||||
const void * GetItemIconGfxPtr(u16 itemId, u8 ptrId);
|
||||
const void *GetItemIconGfxPtr(u16 itemId, u8 ptrId);
|
||||
void CreateBagOrSatchelSprite(u8 animNum);
|
||||
|
||||
#endif // GUARD_ITEM_MENU_ICONS
|
||||
|
||||
+1
-1
@@ -324,7 +324,7 @@ struct STWIStatus
|
||||
vu8 sending;
|
||||
};
|
||||
|
||||
// This struct is used as u8 array in SDK.
|
||||
// This struct is used as u8 array in SDK.
|
||||
struct RfuIntrStruct
|
||||
{
|
||||
union RfuPacket rxPacketAlloc;
|
||||
|
||||
+2
-1
@@ -58,6 +58,7 @@
|
||||
#define LINKCMD_0x5FFF 0x5FFF
|
||||
#define LINKCMD_0x6666 0x6666
|
||||
#define LINKCMD_0x7777 0x7777
|
||||
#define LINKCMD_COUNTDOWN 0x7FFF
|
||||
#define LINKCMD_CONT_BLOCK 0x8888
|
||||
#define LINKCMD_0xAAAA 0xAAAA
|
||||
#define LINKCMD_0xAAAB 0xAAAB
|
||||
@@ -189,7 +190,7 @@ struct Link
|
||||
|
||||
struct BlockRequest
|
||||
{
|
||||
void * address;
|
||||
void *address;
|
||||
u32 size;
|
||||
};
|
||||
|
||||
|
||||
+3
-1
@@ -6,6 +6,8 @@
|
||||
#include "link.h"
|
||||
#include "AgbRfu_LinkManager.h"
|
||||
|
||||
#define RFUCMD_MASK 0xFF00
|
||||
|
||||
#define RFUCMD_SEND_PACKET 0x2F00
|
||||
#define RFUCMD_READY_CLOSE_LINK 0x5f00
|
||||
#define RFUCMD_READY_EXIT_STANDBY 0x6600
|
||||
@@ -219,7 +221,7 @@ void DestroyWirelessStatusIndicatorSprite(void);
|
||||
void MEvent_CreateTask_CardOrNewsWithFriend(u32 arg0);
|
||||
void MEvent_CreateTask_CardOrNewsOverWireless(u32 arg0);
|
||||
void MEvent_CreateTask_Leader(u32 arg0);
|
||||
void Rfu_SendPacket(void * data);
|
||||
void Rfu_SendPacket(void *data);
|
||||
u8 CreateTask_ListenToWireless(void);
|
||||
void LinkRfu_DestroyIdleTask(void);
|
||||
void InitRFUAPI(void);
|
||||
|
||||
@@ -43,9 +43,9 @@ struct MapPreviewScreen
|
||||
u8 mapsec;
|
||||
u8 type;
|
||||
u16 flagId;
|
||||
const void * tilesptr;
|
||||
const void * tilemapptr;
|
||||
const void * palptr;
|
||||
const void *tilesptr;
|
||||
const void *tilemapptr;
|
||||
const void *palptr;
|
||||
};
|
||||
|
||||
u16 MapPreview_CreateMapNameWindow(u8 id);
|
||||
|
||||
+13
-29
@@ -31,10 +31,9 @@ bool8 MetatileBehavior_IsEastArrowWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWestArrowWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsNorthArrowWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSouthArrowWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedIsArrowWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsForcedMovementTile(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIce_2(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsUnknownMovement48(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsTrickHouseSlipperyFloor(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWalkNorth(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWalkSouth(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWalkWest(u8 metatileBehavior);
|
||||
@@ -48,18 +47,16 @@ bool8 MetatileBehavior_IsSlideSouth(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSlideWest(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSlideEast(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsCounter(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 tile, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPlayerFacingTVScreen(u8 metatileBehavior, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPC(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_HasRipples(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPuddle(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsAshGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsFootprints(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsBridge(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedIsMB_01(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedIsTallGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIndoorEncounter(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMountain(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsDiveable(u8 metatileBehavior);
|
||||
@@ -68,7 +65,6 @@ bool8 MetatileBehavior_IsShallowFlowingWater(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsThinIce(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsCrackedIce(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsDeepSemiDeepOrSplashingWater(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsMB1A(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSurfableAndNotWaterfall(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsEastBlocked(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWestBlocked(u8 metatileBehavior);
|
||||
@@ -78,24 +74,15 @@ bool8 MetatileBehavior_IsShortGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsHotSprings(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWaterfall(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsFortreeBridge(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_2(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_3(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_4(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPacifidlogLog(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_11(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsRegionMap(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_5(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_6(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_7(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_8(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsLavaridgeB1FWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsLavaridge1FWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWarpPad(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsUnionRoomWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsWater(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsFallWarp(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_ReturnFalse_13(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsCrackedFloor(u8 metatileBehavior);
|
||||
bool32 MetatileBehavior_IsCyclingRoadPullDownTile(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsCyclingRoadPullDownTileGrass(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsBumpySlope(u8 metatileBehavior);
|
||||
@@ -105,15 +92,10 @@ bool8 MetatileBehavior_IsVerticalRail(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsHorizontalRail(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsRunningDisallowed(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_9(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsBookshelf(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPokeMartShelf(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPlayerFacingPokemonCenterSign(u8 tile, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPlayerFacingPokeMartSign(u8 tile, u8 playerDirection);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_10(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_11(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_12(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_UnusedReturnFalse_13(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPlayerFacingPokemonCenterSign(u8 metatileBehavior, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPlayerFacingPokeMartSign(u8 metatileBehavior, u8 playerDirection);
|
||||
bool8 TestMetatileAttributeBit(u8 attr, u8 bitmask);
|
||||
bool8 MetatileBehavior_IsSpinRight(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSpinLeft(u8 metatileBehavior);
|
||||
@@ -127,11 +109,11 @@ bool8 MetatileBehavior_IsKitchen(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsDresser(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSnacks(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsStrengthButton(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsPlayerFacingCableClubWirelessMonitor(u8 tile, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPlayerFacingBattleRecords(u8 tile, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPlayerFacingCableClubWirelessMonitor(u8 metatileBehavior, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsPlayerFacingBattleRecords(u8 metatileBehavior, u8 playerDirection);
|
||||
bool8 MetatileBehavior_IsQuestionnaire(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIndigoPlateauMark(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIndigoPlateauMark2(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIndigoPlateauSign1(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsIndigoPlateauSign2(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsFood(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsRockStairs(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsBlueprints(u8 metatileBehavior);
|
||||
@@ -151,5 +133,7 @@ bool8 MetatileBehavior_IsImpressiveMachine(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsVideoGame(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsBurglary(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsTrainerTowerMonitor(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSecretBaseJumpMat(u8 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSecretBaseSpinMat(u8 metatileBehavior);
|
||||
|
||||
#endif // GUARD_METATILE_BEHAVIOR
|
||||
|
||||
+3
-3
@@ -25,7 +25,7 @@ struct MEvent_Str_1
|
||||
{
|
||||
u16 status;
|
||||
size_t size;
|
||||
const void * data;
|
||||
const void *data;
|
||||
};
|
||||
|
||||
struct MEvent_Str_2
|
||||
@@ -63,8 +63,8 @@ void MEvent_WonderCardResetUnk08_6(struct WonderCard * buffer);
|
||||
bool32 MEvent_ReceiveDistributionMon(const u16 * data);
|
||||
void BuildMEventClientHeader(struct MEventClientHeaderStruct * data);
|
||||
bool32 ValidateMEventClientHeader(const struct MEventClientHeaderStruct * data);
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused);
|
||||
u32 MEvent_CanPlayerReceiveDistributionMon(const u16 * a0, const struct MEventClientHeaderStruct * a1, void * unused);
|
||||
u32 sub_8144418(const u16 * a0, const struct MEventClientHeaderStruct * a1, void *unused);
|
||||
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);
|
||||
|
||||
+12
-12
@@ -18,8 +18,8 @@ struct mevent_srv_sub
|
||||
u16 sendCounter;
|
||||
u16 sendCRC;
|
||||
u16 sendSize;
|
||||
void * recvBfr;
|
||||
const void * sendBfr;
|
||||
void *recvBfr;
|
||||
const void *sendBfr;
|
||||
u32 (*recvFunc)(struct mevent_srv_sub *);
|
||||
u32 (*sendFunc)(struct mevent_srv_sub *);
|
||||
};
|
||||
@@ -59,10 +59,10 @@ struct mevent_client
|
||||
u32 mainseqno;
|
||||
u32 flag;
|
||||
u32 cmdidx;
|
||||
void * sendBuffer;
|
||||
void * recvBuffer;
|
||||
void *sendBuffer;
|
||||
void *recvBuffer;
|
||||
struct mevent_client_cmd * cmdBuffer;
|
||||
void * buffer;
|
||||
void *buffer;
|
||||
struct mevent_srv_sub manager;
|
||||
};
|
||||
|
||||
@@ -70,7 +70,7 @@ struct mevent_server_cmd
|
||||
{
|
||||
u32 instr;
|
||||
bool32 flag;
|
||||
void * parameter;
|
||||
void *parameter;
|
||||
};
|
||||
|
||||
// Server commands
|
||||
@@ -99,13 +99,13 @@ struct mevent_srv_common
|
||||
u32 mainseqno;
|
||||
u32 cmdidx;
|
||||
const struct mevent_server_cmd * cmdBuffer;
|
||||
void * recvBuffer;
|
||||
void *recvBuffer;
|
||||
struct WonderCard * card;
|
||||
struct WonderNews * news;
|
||||
struct MEventClientHeaderStruct * mevent_unk1442cc;
|
||||
void * sendBuffer1;
|
||||
void *sendBuffer1;
|
||||
u32 sendBuffer1Size;
|
||||
void * sendBuffer2;
|
||||
void *sendBuffer2;
|
||||
u32 sendBuffer2Size;
|
||||
u32 sendWord;
|
||||
struct mevent_srv_sub manager;
|
||||
@@ -114,13 +114,13 @@ struct mevent_srv_common
|
||||
u32 mevent_srv_sub_recv(struct mevent_srv_sub * svr);
|
||||
u32 mevent_srv_sub_send(struct mevent_srv_sub * svr);
|
||||
void mevent_srv_sub_init(struct mevent_srv_sub * svr, u32 sendPlayerNo, u32 recvPlayerNo);
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void * src, u32 size);
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void * dest);
|
||||
void mevent_srv_sub_init_send(struct mevent_srv_sub * svr, u32 ident, const void *src, u32 size);
|
||||
void mevent_srv_sub_init_recv(struct mevent_srv_sub * svr, u32 ident, void *dest);
|
||||
|
||||
void mevent_client_do_init(void);
|
||||
u32 mevent_client_do_exec(u16 * a0);
|
||||
void mevent_client_inc_flag(void);
|
||||
void * mevent_client_get_buffer(void);
|
||||
void *mevent_client_get_buffer(void);
|
||||
void mevent_client_set_param(u32 a0);
|
||||
void mevent_srv_init_wnews(void);
|
||||
void mevent_srv_new_wcard(void);
|
||||
|
||||
+18
-16
@@ -1,33 +1,35 @@
|
||||
#ifndef GUARD_MON_MARKINGS_H
|
||||
#define GUARD_MON_MARKINGS_H
|
||||
|
||||
struct PokemonMarkMenu
|
||||
#define NUM_MON_MARKINGS 4
|
||||
|
||||
struct MonMarkingsMenu
|
||||
{
|
||||
/*0x0000*/ u16 baseTileTag;
|
||||
/*0x0002*/ u16 basePaletteTag;
|
||||
/*0x0004*/ u8 markings; // bit flags
|
||||
/*0x0005*/ s8 cursorPos;
|
||||
/*0x0006*/ bool8 markingsArray[4];
|
||||
/*0x0006*/ bool8 markingsArray[NUM_MON_MARKINGS];
|
||||
/*0x000A*/ u8 cursorBaseY;
|
||||
/*0x000B*/ bool8 spriteSheetLoadRequired;
|
||||
/*0x000C*/ struct Sprite * menuWindowSprites[2]; // upper and lower halves of menu window
|
||||
/*0x0014*/ struct Sprite * menuMarkingSprites[4];
|
||||
/*0x0024*/ struct Sprite * unkSprite;
|
||||
/*0x0028*/ struct Sprite * menuTextSprite;
|
||||
/*0x000C*/ struct Sprite *windowSprites[2]; // upper and lower halves of menu window
|
||||
/*0x0014*/ struct Sprite *markingSprites[NUM_MON_MARKINGS];
|
||||
/*0x0024*/ struct Sprite *cursorSprite;
|
||||
/*0x0028*/ struct Sprite *textSprite;
|
||||
/*0x002C*/ const u8 *frameTiles;
|
||||
/*0x0030*/ const u16 *framePalette;
|
||||
/*0x0034*/ u8 menuWindowSpriteTiles[0x1000];
|
||||
/*0x1034*/ u8 filler1034[0x80];
|
||||
/*0x0034*/ u8 windowSpriteTiles[0x1000];
|
||||
/*0x1034*/ u8 unused[0x80];
|
||||
/*0x10B4*/ u8 tileLoadState;
|
||||
}; // 10b8
|
||||
|
||||
void SetMonMarkingsMenuPointer(struct PokemonMarkMenu * markMenu);
|
||||
void LoadMonMarkingsFrameGfx(void);
|
||||
void DrawMonMarkingsMenu(u8 markings, s16 x, s16 y);
|
||||
void TeardownMonMarkingsMenu(void);
|
||||
bool8 MonMarkingsHandleInput(void);
|
||||
struct Sprite * CreateMonMarkingSprite_SelectCombo(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
struct Sprite * CreateMonMarkingSprite_AllOff(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
void RequestDma3LoadMonMarking(u8 markings, void * dest);
|
||||
void InitMonMarkingsMenu(struct MonMarkingsMenu *ptr);
|
||||
void BufferMonMarkingsMenuTiles(void);
|
||||
void OpenMonMarkingsMenu(u8 markings, s16 x, s16 y);
|
||||
void FreeMonMarkingsMenu(void);
|
||||
bool8 HandleMonMarkingsMenuInput(void);
|
||||
struct Sprite *CreateMonMarkingAllCombosSprite(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
struct Sprite *CreateMonMarkingComboSprite(u16 tileTag, u16 paletteTag, const u16 *palette);
|
||||
void UpdateMonMarkingTiles(u8 markings, void *dest);
|
||||
|
||||
#endif //GUARD_MON_MARKINGS_H
|
||||
|
||||
+5
-5
@@ -3,11 +3,11 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
u32 GetMoney(u32* moneyPtr);
|
||||
void SetMoney(u32* moneyPtr, u32 newValue);
|
||||
bool8 IsEnoughMoney(u32* moneyPtr, u32 cost);
|
||||
void AddMoney(u32* moneyPtr, u32 toAdd);
|
||||
void RemoveMoney(u32* moneyPtr, u32 toSub);
|
||||
u32 GetMoney(u32 *moneyPtr);
|
||||
void SetMoney(u32 *moneyPtr, u32 newValue);
|
||||
bool8 IsEnoughMoney(u32 *moneyPtr, u32 cost);
|
||||
void AddMoney(u32 *moneyPtr, u32 toAdd);
|
||||
void RemoveMoney(u32 *moneyPtr, u32 toSub);
|
||||
bool8 IsEnoughForCostInVar0x8005(void);
|
||||
void SubtractMoneyFromVar0x8005(void);
|
||||
void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed);
|
||||
|
||||
@@ -14,7 +14,7 @@ void *DecompressAndCopyTileDataToVram(u8 bgId, const void *src, u32 size, u16 of
|
||||
void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
void * MallocAndDecompress(const void * src, u32 * size);
|
||||
void *MallocAndDecompress(const void *src, u32 * size);
|
||||
void SetBgTilemapPalette(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
|
||||
void CopyToBufferFromBgTilemap(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
|
||||
void ResetBgPositions(void);
|
||||
@@ -36,7 +36,7 @@ void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram);
|
||||
void sub_80F7768(u8 windowId, bool8 copyToVram);
|
||||
void Menu_LoadStdPal(void);
|
||||
void Menu_LoadStdPalAt(u16 offset);
|
||||
void DisplayItemMessageOnField(u8 taskId, u8 textSpeed, const u8 *src, TaskFunc callback);
|
||||
void DisplayItemMessageOnField(u8 taskId, u8 fontId, const u8 *src, TaskFunc callback);
|
||||
void DisplayYesNoMenuDefaultYes(void);
|
||||
void DisplayYesNoMenuDefaultNo(void);
|
||||
u8 GetTextSpeedSetting(void);
|
||||
|
||||
+11
-21
@@ -10,29 +10,23 @@
|
||||
#define LINK_KEY_CODE_DPAD_UP 0x13
|
||||
#define LINK_KEY_CODE_DPAD_LEFT 0x14
|
||||
#define LINK_KEY_CODE_DPAD_RIGHT 0x15
|
||||
#define LINK_KEY_CODE_UNK_2 0x16
|
||||
#define LINK_KEY_CODE_READY 0x16
|
||||
#define LINK_KEY_CODE_EXIT_ROOM 0x17
|
||||
#define LINK_KEY_CODE_START_BUTTON 0x18
|
||||
#define LINK_KEY_CODE_A_BUTTON 0x19
|
||||
#define LINK_KEY_CODE_UNK_4 0x1A // I'd guess this is the B button?
|
||||
#define LINK_KEY_CODE_IDLE 0x1A
|
||||
|
||||
// These two are a hack to stop user input until link stuff can be
|
||||
// resolved.
|
||||
#define LINK_KEY_CODE_HANDLE_RECV_QUEUE 0x1B
|
||||
#define LINK_KEY_CODE_HANDLE_SEND_QUEUE 0x1C
|
||||
#define LINK_KEY_CODE_UNK_7 0x1D
|
||||
#define LINK_KEY_CODE_UNK_8 0x1E
|
||||
|
||||
#define LINK_KEY_CODE_EXIT_SEAT 0x1D
|
||||
|
||||
#define MOVEMENT_MODE_FREE 0
|
||||
#define MOVEMENT_MODE_FROZEN 1
|
||||
#define MOVEMENT_MODE_SCRIPTED 2
|
||||
|
||||
struct UnkPlayerStruct
|
||||
{
|
||||
u8 player_field_0;
|
||||
u8 player_field_1;
|
||||
};
|
||||
|
||||
struct LinkPlayerObjectEvent
|
||||
{
|
||||
u8 active;
|
||||
@@ -53,14 +47,14 @@ struct CreditsOverworldCmd
|
||||
#define MUSIC_DISABLE_STOP 1
|
||||
#define MUSIC_DISABLE_KEEP 2
|
||||
|
||||
extern const struct UCoords32 gDirectionToVectors[];
|
||||
extern const struct Coords32 gDirectionToVectors[];
|
||||
|
||||
extern struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4];
|
||||
extern MainCallback gFieldCallback;
|
||||
|
||||
extern struct WarpData gLastUsedWarp;
|
||||
|
||||
extern u8 gUnknown_2031DE0;
|
||||
extern u8 gExitStairsMovementDisabled;
|
||||
extern u8 gFieldLinkPlayerCount;
|
||||
extern u8 gLocalLinkPlayerId;
|
||||
|
||||
@@ -83,8 +77,6 @@ u8 IsMapTypeOutdoors(u8 mapType);
|
||||
void Overworld_ClearSavedMusic(void);
|
||||
bool32 Overworld_MusicCanOverrideMapMusic(u16 song);
|
||||
|
||||
void player_avatar_init_params_reset(void);
|
||||
|
||||
void Overworld_SetFlashLevel(s32 a1);
|
||||
u8 Overworld_GetFlashLevel(void);
|
||||
|
||||
@@ -102,9 +94,7 @@ void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
|
||||
void WarpIntoMap(void);
|
||||
u8 GetMapTypeByGroupAndId(s8 mapGroup, s8 mapNum);
|
||||
void SetWarpDestinationToMapWarp(s8 mapGroup, s8 mapNum, s8 warpNum);
|
||||
void c2_load_new_map(void);
|
||||
void SetWarpDestinationToDynamicWarp(u8 unused);
|
||||
void mapldr_default(void);
|
||||
|
||||
u32 GetGameStat(u8 statId);
|
||||
void SetGameStat(u8 statId, u32 value);
|
||||
@@ -174,13 +164,13 @@ bool32 Overworld_RecvKeysFromLinkIsRunning(void);
|
||||
void OverworldWhiteOutGetMoneyLoss(void);
|
||||
u8 GetCurrentMapBattleScene(void);
|
||||
void Overworld_ResetStateAfterFly(void);
|
||||
bool8 sub_8055B38(u16 metatileBehavior);
|
||||
bool8 MetatileBehavior_IsSurfableInSeafoamIslands(u16 metatileBehavior);
|
||||
void Overworld_ResetMapMusic(void);
|
||||
u16 QueueExitLinkRoomKey(void);
|
||||
u16 sub_8057F34(void);
|
||||
u32 sub_8057EC0(void);
|
||||
u16 sub_8057F70(void);
|
||||
u16 sub_8057F48(void);
|
||||
u16 SetInCableClubSeat(void);
|
||||
u32 GetCableClubPartnersReady(void);
|
||||
u16 SetStartedCableClubActivity(void);
|
||||
u16 SetLinkWaitingForScript(void);
|
||||
void SetMainCallback1(MainCallback cb);
|
||||
void CB1_Overworld(void);
|
||||
void CB2_ReturnToFieldContinueScript(void);
|
||||
|
||||
+11
-1
@@ -20,6 +20,16 @@ enum
|
||||
POKEBALL_COUNT
|
||||
};
|
||||
|
||||
enum {
|
||||
BALL_AFFINE_ANIM_0,
|
||||
BALL_ROTATE_RIGHT,
|
||||
BALL_ROTATE_LEFT,
|
||||
BALL_AFFINE_ANIM_3,
|
||||
BALL_AFFINE_ANIM_4
|
||||
};
|
||||
|
||||
extern const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT];
|
||||
extern const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT];
|
||||
extern const struct SpriteTemplate gBallSpriteTemplates[];
|
||||
|
||||
#define POKEBALL_PLAYER_SENDOUT 0xFF
|
||||
@@ -32,6 +42,6 @@ void DoHitAnimHealthboxEffect(u8 bank);
|
||||
void LoadBallGfx(u8 ballId);
|
||||
void FreeBallGfx(u8 ballId);
|
||||
void StartHealthboxSlideIn(u8 battler);
|
||||
void DestroySpriteAndFreeResources2(struct Sprite *sprite);
|
||||
void DestroySpriteAndFreeResources_Ball(struct Sprite *sprite);
|
||||
|
||||
#endif // GUARD_POKEBALL_H
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
struct PAM_TaskData
|
||||
{
|
||||
struct SubspriteTable subsprites;
|
||||
void * buffer;
|
||||
void *buffer;
|
||||
u8 unk_0C;
|
||||
u8 spr_id;
|
||||
u16 tilesTag;
|
||||
|
||||
+9
-8
@@ -73,7 +73,7 @@ struct PokemonSubstruct3
|
||||
/* 0x0B */ u32 nationalRibbon:1;
|
||||
/* 0x0B */ u32 earthRibbon:1;
|
||||
/* 0x0B */ u32 worldRibbon:1; // distributed during Pokémon Festa '04 and '05 to tournament winners
|
||||
/* 0x0B */ u32 filler:4;
|
||||
/* 0x0B */ u32 unusedRibbons:4; // discarded in Gen 4
|
||||
/* 0x0B */ u32 eventLegal:1; // controls Mew & Deoxys obedience; if set, Pokémon is a fateful encounter in FRLG & Gen 4+ summary screens; set for in-game event island legendaries, some distributed events, and Pokémon from XD: Gale of Darkness.
|
||||
};
|
||||
|
||||
@@ -245,12 +245,13 @@ struct BattleMove
|
||||
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
|
||||
#define FLAG_MAKES_CONTACT 0x1
|
||||
#define FLAG_PROTECT_AFFECTED 0x2
|
||||
#define FLAG_MAGICCOAT_AFFECTED 0x4
|
||||
#define FLAG_SNATCH_AFFECTED 0x8
|
||||
#define FLAG_MIRROR_MOVE_AFFECTED 0x10
|
||||
#define FLAG_KINGSROCK_AFFECTED 0x20
|
||||
// Battle move flags
|
||||
#define FLAG_MAKES_CONTACT (1 << 0)
|
||||
#define FLAG_PROTECT_AFFECTED (1 << 1)
|
||||
#define FLAG_MAGIC_COAT_AFFECTED (1 << 2)
|
||||
#define FLAG_SNATCH_AFFECTED (1 << 3)
|
||||
#define FLAG_MIRROR_MOVE_AFFECTED (1 << 4)
|
||||
#define FLAG_KINGS_ROCK_AFFECTED (1 << 5)
|
||||
|
||||
struct SpindaSpot
|
||||
{
|
||||
@@ -396,7 +397,7 @@ u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
|
||||
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
|
||||
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
|
||||
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
|
||||
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
|
||||
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, bool8 usedByAI);
|
||||
bool8 PokemonItemUseNoEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
|
||||
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
|
||||
const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId);
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
extern const u8 *const gMonIconTable[];
|
||||
extern const struct SpritePalette gMonIconPaletteTable[];
|
||||
extern const u16 gMonIconPalettes[][16];
|
||||
extern const u8 gMonIconPaletteIndices[];
|
||||
|
||||
@@ -17,10 +19,10 @@ void DestroyMonIcon(struct Sprite *);
|
||||
u16 GetUnownLetterByPersonality(u32 personality);
|
||||
void SpriteCB_MonIcon(struct Sprite *);
|
||||
u8 CreateMonIcon(u16 species, SpriteCallback callback, s16 x, s16 y, u8 subpriority, u32 personality, bool32 extra);
|
||||
u8 UpdateMonIconFrame(struct Sprite * sprite);
|
||||
u8 UpdateMonIconFrame(struct Sprite *sprite);
|
||||
void LoadMonIconPalette(u16 iconId);
|
||||
void FreeMonIconPalette(u16 iconId);
|
||||
void SetPartyHPBarSprite(struct Sprite * sprite, u8 animNum);
|
||||
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
|
||||
u8 GetMonIconPaletteIndexFromSpecies(u16 species);
|
||||
u16 GetIconSpecies(u16 species, u32 personality);
|
||||
void LoadMonIconPalettesAt(u16 offset);
|
||||
|
||||
+1
-114
@@ -2,122 +2,9 @@
|
||||
#define GUARD_POKEMON_JUMP_H
|
||||
|
||||
#include "main.h"
|
||||
#include "link.h"
|
||||
|
||||
struct PokemonJump1_MonInfo
|
||||
{
|
||||
u16 species;
|
||||
u32 otId;
|
||||
u32 personality;
|
||||
};
|
||||
|
||||
struct PokemonJump1_82E4
|
||||
{
|
||||
int unk0;
|
||||
int unk4;
|
||||
u8 filler8[0x4];
|
||||
u16 unkC;
|
||||
u16 unkE;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
int unk14;
|
||||
int unk18;
|
||||
u8 unk1C[11];
|
||||
};
|
||||
|
||||
struct PokemonJump2
|
||||
{
|
||||
int unk0;
|
||||
u16 unk4;
|
||||
u8 unk6;
|
||||
u8 filler7[0xa - 0x7];
|
||||
u8 unkA;
|
||||
u8 unkB;
|
||||
u8 unkC;
|
||||
u8 unkD;
|
||||
u8 unkE;
|
||||
u8 unkF;
|
||||
u16 filler10;
|
||||
u16 unk12;
|
||||
u16 unk14;
|
||||
u32 unk18;
|
||||
u16 unk1C[5];
|
||||
u8 txtBuff[2][0x40];
|
||||
u8 strBuff[0x100];
|
||||
u16 tilemapBuffer[0x4000]; // Bug: way larger than it should be
|
||||
struct Sprite *unk81A8[MAX_RFU_PLAYERS];
|
||||
struct Sprite *unk81BC[MAX_RFU_PLAYERS];
|
||||
struct Sprite *unk81D0[8];
|
||||
u8 filler81F0[0xC];
|
||||
u8 unk81FC[MAX_RFU_PLAYERS];
|
||||
};
|
||||
|
||||
struct PokemonJump1Sub
|
||||
{
|
||||
u8 unk0;
|
||||
u8 unk1;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u32 unk8;
|
||||
};
|
||||
|
||||
void ResetPokeJumpResults(void);
|
||||
void ResetPokemonJumpRecords(void);
|
||||
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
|
||||
void StartPokemonJump(u16 species, MainCallback callback);
|
||||
u16 sub_81499A4(void);
|
||||
u16 sub_81499B4(void);
|
||||
struct PokemonJump1_MonInfo *sub_81499C0(u8 multiplayerId);
|
||||
u8 *sub_81499E0(u8 multiplayerId);
|
||||
|
||||
void sub_814A95C(int id);
|
||||
void sub_8149CEC(struct PokemonJump2 *);
|
||||
void sub_8149D24(void);
|
||||
void sub_8149D40(int);
|
||||
bool32 sub_8149D68(void);
|
||||
void sub_814A3E4(void);
|
||||
bool32 sub_814A408(void);
|
||||
void sub_814A468(u16 itemId, u16 quantity);
|
||||
void sub_814A53C(u16 itemId);
|
||||
void sub_814A5B4(u16 itemId);
|
||||
bool32 sub_814A62C(void);
|
||||
void sub_814A6CC(void);
|
||||
void sub_814A940(u32 id, s16 y);
|
||||
void sub_814AA48(u8 multiplayerId);
|
||||
bool32 sub_814A6FC(void);
|
||||
void sub_814AA24(int);
|
||||
s8 sub_814A744(void);
|
||||
int sub_814A98C(u8 flags);
|
||||
void sub_814AA34(u16);
|
||||
void sub_814AA60(u8 multiplayerId);
|
||||
int sub_814AA78(int multiplayerId);
|
||||
void sub_814AA8C(void);
|
||||
void sub_814AAA0(void);
|
||||
void sub_814AAB4(int);
|
||||
int sub_814AAC8(void);
|
||||
void sub_8149A6C(struct PokemonJump1_MonInfo *arg0);
|
||||
bool32 sub_8149A90(int multiplayerId, struct PokemonJump1_MonInfo *arg0);
|
||||
void sub_8149AF8(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1);
|
||||
bool32 sub_8149B7C(struct PokemonJump1_82E4 *arg0, struct PokemonJump1Sub *arg1);
|
||||
void sub_8149BF4(struct PokemonJump1_82E4 *arg0, u8 arg1, u16 arg2);
|
||||
bool32 sub_8149C24(struct PokemonJump1_82E4 *arg0, int multiplayerId, u8 *arg2, u16 *arg3);
|
||||
bool32 sub_8149C90(struct PokemonJump1_82E4 *arg0, int multiplayerId);
|
||||
bool32 sub_814B494(u32 jumpScore, u16 jumpsInRow, u16 excellentsInRow);
|
||||
void sub_814B4E8(void);
|
||||
|
||||
void sub_814AD6C(struct PokemonJump2 *);
|
||||
void sub_814B294(struct PokemonJump2 *);
|
||||
void sub_814B43C(struct PokemonJump2 *);
|
||||
bool32 sub_814B460(void);
|
||||
void sub_814B348(struct PokemonJump2 *, int);
|
||||
void sub_814AF0C(struct PokemonJump2 *, int);
|
||||
void sub_814ADCC(struct PokemonJump2 *, struct PokemonJump1_MonInfo *,s16, s16, u8);
|
||||
void sub_814B240(struct PokemonJump2 *,s16, s16, u8);
|
||||
void sub_814AFE8(struct PokemonJump2 *, int multiplayerId);
|
||||
void sub_814B080(struct PokemonJump2 *, int multiplayerId);
|
||||
bool32 sub_814B010(struct PokemonJump2 *, int multiplayerId);
|
||||
void sub_814B0A8(struct PokemonJump2 *);
|
||||
void sub_814B134(struct PokemonJump2 *);
|
||||
void sub_814B168(struct PokemonJump2 *, int multiplayerId);
|
||||
bool32 sub_814B190(struct PokemonJump2 *);
|
||||
|
||||
#endif // GUARD_POKEMON_JUMP_H
|
||||
|
||||
@@ -25,8 +25,8 @@ struct PokemonSpecialAnimScene
|
||||
u16 monSpriteY1;
|
||||
u16 monSpriteY2;
|
||||
u8 lastCloseness;
|
||||
struct Sprite * monSprite;
|
||||
struct Sprite * itemIconSprite;
|
||||
struct Sprite *monSprite;
|
||||
struct Sprite *itemIconSprite;
|
||||
u8 textBuf[0x900];
|
||||
u8 field_0914[BG_SCREEN_SIZE];
|
||||
u8 field_1114[BG_SCREEN_SIZE];
|
||||
|
||||
@@ -26,6 +26,7 @@ enum
|
||||
WALLPAPER_PLAIN,
|
||||
WALLPAPER_COUNT
|
||||
};
|
||||
#define MAX_DEFAULT_WALLPAPER WALLPAPER_SAVANNA
|
||||
|
||||
u8 *GetBoxNamePtr(u8 boxNumber);
|
||||
struct BoxPokemon *GetBoxedMonPtr(u8 boxId, u8 monPosition);
|
||||
|
||||
@@ -7,9 +7,14 @@
|
||||
#define IN_BOX_COLUMNS 5
|
||||
#define IN_BOX_ROWS 6
|
||||
|
||||
#define MAX_MON_ICONS 40
|
||||
// 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)
|
||||
|
||||
// The maximum number of item icons that can appear on-screen while
|
||||
// moving held items. 1 in the cursor, and 2 more while switching
|
||||
// between 2 Pokémon with held items
|
||||
#define MAX_ITEM_ICONS 3
|
||||
#define MAX_MENU_ITEMS 7
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -20,11 +25,12 @@ enum
|
||||
|
||||
enum
|
||||
{
|
||||
BOX_OPTION_WITHDRAW,
|
||||
BOX_OPTION_DEPOSIT,
|
||||
BOX_OPTION_MOVE_MONS,
|
||||
BOX_OPTION_MOVE_ITEMS,
|
||||
BOX_OPTION_EXIT,
|
||||
OPTION_WITHDRAW,
|
||||
OPTION_DEPOSIT,
|
||||
OPTION_MOVE_MONS,
|
||||
OPTION_MOVE_ITEMS,
|
||||
OPTION_EXIT,
|
||||
OPTIONS_COUNT
|
||||
};
|
||||
|
||||
enum
|
||||
@@ -167,19 +173,19 @@ struct StorageAction
|
||||
u8 format;
|
||||
};
|
||||
|
||||
struct UnkPSSStruct_2002370
|
||||
struct ChooseBoxMenu
|
||||
{
|
||||
struct Sprite *unk_0000;
|
||||
struct Sprite *unk_0004[4];
|
||||
u32 unk_0014[3]; // unused
|
||||
struct Sprite *unk_0020[2];
|
||||
struct Sprite *menuSprite;
|
||||
struct Sprite *menuSideSprites[4];
|
||||
u32 unused1[3];
|
||||
struct Sprite *arrowSprites[2];
|
||||
u8 buffer[0x200]; // passed but not used
|
||||
u8 strbuf[20];
|
||||
bool32 loadPal;
|
||||
u16 tilesTag;
|
||||
bool32 loadedPalette;
|
||||
u16 tileTag;
|
||||
u16 paletteTag;
|
||||
u8 curBox;
|
||||
u8 unk_0245; // unused
|
||||
u8 unused3;
|
||||
u8 subpriority;
|
||||
};
|
||||
|
||||
@@ -189,21 +195,21 @@ struct StorageMenu
|
||||
int textId;
|
||||
};
|
||||
|
||||
struct UnkStruct_2000028
|
||||
struct UnkUtilData
|
||||
{
|
||||
const u8 *unk_00;
|
||||
u8 *unk_04;
|
||||
u16 unk_08;
|
||||
u16 unk_0a;
|
||||
u16 newField;
|
||||
void (*unk_0c)(struct UnkStruct_2000028 *data);
|
||||
const u8 *src;
|
||||
u8 *dest;
|
||||
u16 size;
|
||||
u16 unk;
|
||||
u16 height;
|
||||
void (*func)(struct UnkUtilData *data);
|
||||
};
|
||||
|
||||
struct UnkStruct_2000020
|
||||
struct UnkUtil
|
||||
{
|
||||
struct UnkStruct_2000028 *unk_00;
|
||||
u8 unk_04;
|
||||
u8 unk_05;
|
||||
struct UnkUtilData *data;
|
||||
u8 numActive;
|
||||
u8 max;
|
||||
};
|
||||
|
||||
struct PSS_ItemIconSprite
|
||||
@@ -231,115 +237,115 @@ struct PokemonStorageSystemData
|
||||
u8 screenChangeType;
|
||||
bool8 isReshowingPSS;
|
||||
u8 taskId;
|
||||
struct UnkStruct_2000020 unk_0020;
|
||||
struct UnkStruct_2000028 unk_0028[8];
|
||||
u16 field_B0[528 / 2];
|
||||
u16 field_2C0;
|
||||
u16 field_2C2;
|
||||
u8 field_2C4;
|
||||
u8 field_2C5;
|
||||
struct UnkUtil unkUtil;
|
||||
struct UnkUtilData unkUtilData[8];
|
||||
u16 partyMenuTilemapBuffer[0x108];
|
||||
u16 partyMenuUnused1; // Never read
|
||||
u16 partyMenuY;
|
||||
u8 partyMenuUnused2; // Unused
|
||||
u8 partyMenuMoveTimer;
|
||||
u8 showPartyMenuState;
|
||||
bool8 unk_02C7;
|
||||
u8 unk_02C8;
|
||||
bool8 unk_02C9;
|
||||
bool8 closeBoxFlashing;
|
||||
u8 closeBoxFlashTimer;
|
||||
bool8 closeBoxFlashState;
|
||||
s16 newCurrBoxId;
|
||||
u16 bg2_X;
|
||||
s16 field_2CE;
|
||||
u16 field_2D0;
|
||||
u8 field_2D2;
|
||||
u8 field_2D3;
|
||||
u8 field_2D4;
|
||||
u16 field_2D6;
|
||||
s16 field_2D8;
|
||||
u16 field_2DA;
|
||||
u16 field_2DC;
|
||||
u16 field_2DE;
|
||||
u16 field_2E0;
|
||||
u8 filler[22];
|
||||
s16 scrollSpeed;
|
||||
u16 scrollTimer;
|
||||
u8 wallpaperOffset;
|
||||
u8 scrollUnused1; // Never read
|
||||
u8 scrollToBoxIdUnused; // Never read
|
||||
u16 scrollUnused2; // Never read
|
||||
s16 scrollDirectionUnused; // Never read.
|
||||
u16 scrollUnused3; // Never read
|
||||
u16 scrollUnused4; // Never read
|
||||
u16 scrollUnused5; // Never read
|
||||
u16 scrollUnused6; // Never read
|
||||
u8 filler1[22];
|
||||
u8 field_2F8[512];
|
||||
u8 field_4F8[512];
|
||||
u8 field_6F8;
|
||||
u8 field_6F9;
|
||||
u8 field_6FA;
|
||||
s8 field_6FB;
|
||||
u16 field_6FC[16];
|
||||
u16 field_71C;
|
||||
u16 field_71E;
|
||||
struct Sprite *field_720[2];
|
||||
struct Sprite *field_728[2];
|
||||
struct Sprite *field_730[2];
|
||||
u32 field_738;
|
||||
u8 field_73C[80];
|
||||
u16 field_78C;
|
||||
u8 boxTitleCycleId;
|
||||
u8 wallpaperLoadState; // Written to, but never read.
|
||||
u8 wallpaperLoadBoxId;
|
||||
s8 wallpaperLoadDir;
|
||||
u16 boxTitlePal[16];
|
||||
u16 boxTitlePalOffset;
|
||||
u16 boxTitleAltPalOffset;
|
||||
struct Sprite *curBoxTitleSprites[2];
|
||||
struct Sprite *nextBoxTitleSprites[2];
|
||||
struct Sprite *arrowSprites[2];
|
||||
u32 wallpaperPalBits;
|
||||
u8 filler2[80]; // Unused
|
||||
u16 unkUnused1; // Never read.
|
||||
s16 wallpaperSetId;
|
||||
s16 wallpaperId;
|
||||
u16 field_792[360];
|
||||
u16 wallpaperTilemap[360];
|
||||
u8 wallpaperChangeState;
|
||||
u8 field_A63;
|
||||
u8 field_A64;
|
||||
s8 field_A65;
|
||||
u8 scrollState;
|
||||
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 **field_B00;
|
||||
/* 0b00 */ struct Sprite **field_B04;
|
||||
/* 0b04 */ u16 field_B08[MAX_MON_ICONS];
|
||||
/* 0b54 */ u16 field_B58[MAX_MON_ICONS];
|
||||
/* 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 field_C5C;
|
||||
/* 0c59 */ u8 field_C5D;
|
||||
/* 0c5a */ u8 field_C5E;
|
||||
/* 0c5c */ u16 field_C60;
|
||||
/* 0c5e */ s16 field_C62;
|
||||
/* 0c60 */ s16 field_C64;
|
||||
/* 0c62 */ u16 field_C66;
|
||||
/* 0c64 */ u8 field_C68;
|
||||
/* 0c65 */ s8 field_C69;
|
||||
/* 0c66 */ u8 field_C6A;
|
||||
/* 0c67 */ u8 field_C6B;
|
||||
/* 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[MAX_MENU_ITEMS];
|
||||
/* 0c70 */ struct StorageMenu menuItems[7];
|
||||
/* 0ca8 */ u8 menuItemsCount;
|
||||
/* 0ca9 */ u8 menuWidth;
|
||||
/* 0caa */ u8 field_CAE;
|
||||
/* 0cac */ u16 field_CB0;
|
||||
/* 0cb0 */ struct Sprite *field_CB4;
|
||||
/* 0cb4 */ struct Sprite *field_CB8;
|
||||
/* 0cb8 */ s32 field_CBC;
|
||||
/* 0cbc */ s32 field_CC0;
|
||||
/* 0cc0 */ u32 field_CC4;
|
||||
/* 0cc4 */ u32 field_CC8;
|
||||
/* 0cc8 */ s16 field_CCC;
|
||||
/* 0cca */ s16 field_CCE;
|
||||
/* 0ccc */ u16 field_CD0;
|
||||
/* 0cce */ s8 field_CD2;
|
||||
/* 0ccf */ s8 field_CD3;
|
||||
/* 0cd0 */ u8 field_CD4;
|
||||
/* 0cd1 */ u8 field_CD5;
|
||||
/* 0cd2 */ u8 field_CD6;
|
||||
/* 0cd3 */ u8 field_CD7;
|
||||
/* 0cd4 */ u8 field_CD8[2];
|
||||
/* 0cd8 */ const u32 *cursorMonPalette;
|
||||
/* 0cdc */ u32 cursorMonPersonality;
|
||||
/* 0ce0 */ u16 cursorMonSpecies;
|
||||
/* 0ce2 */ u16 cursorMonItem;
|
||||
/* 0ce4 */ u16 field_CE8;
|
||||
/* 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 cursorMonMarkings;
|
||||
/* 0ce8 */ u8 cursorMonLevel;
|
||||
/* 0ce9 */ bool8 cursorMonIsEgg;
|
||||
/* 0cea */ u8 cursorMonNick[POKEMON_NAME_LENGTH + 1];
|
||||
/* 0cf5 */ u8 cursorMonTexts[4][36];
|
||||
/* 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 field_D91;
|
||||
/* 0d90 */ struct Sprite *monMarkingSprite;
|
||||
/* 0d94 */ struct Sprite *field_D98[2];
|
||||
/* 0d9c */ u16 *monMarkingSpriteTileStart;
|
||||
/* 0da0 */ struct PokemonMarkMenu field_DA4;
|
||||
/* 1e58 */ struct UnkPSSStruct_2002370 field_1E5C;
|
||||
/* 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;
|
||||
@@ -366,9 +372,9 @@ struct PokemonStorageSystemData
|
||||
/* 21db */ u8 itemName[20];
|
||||
/* 21ef */ u8 inBoxMovingMode;
|
||||
/* 21f0 */ u16 field_2200;
|
||||
/* 21f4 */ struct PSS_ItemIconSprite itemIconSprites[MAX_ITEM_ICONS];
|
||||
/* 2224 */ u16 movingItem;
|
||||
/* 2226 */ u16 field_2236;
|
||||
/* 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;
|
||||
@@ -377,7 +383,7 @@ struct PokemonStorageSystemData
|
||||
/* 223c */ u16 field_2244[0x40];
|
||||
/* 22bc */ u8 field_22C4[0x800];
|
||||
/* 2abc */ u8 field_2AC4[0x1800];
|
||||
/* 42bc */ u8 field_42C4[0x800];
|
||||
/* 42bc */ u8 itemIconBuffer[0x800];
|
||||
/* 4abc */ u8 field_4AC4[0x1000];
|
||||
/* 5abc */ u8 field_5AC4[0x800];
|
||||
}; // size=62bc
|
||||
@@ -386,18 +392,18 @@ extern struct PokemonStorageSystemData *gPSSData;
|
||||
|
||||
void Cb2_EnterPSS(u8 a0);
|
||||
u8 GetCurrentBoxOption(void);
|
||||
struct Sprite *sub_809223C(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
|
||||
struct Sprite *CreateChooseBoxArrows(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
|
||||
void SetBoxWallpaper(u8 boxId, u8 wallpaperId);
|
||||
void SetCurrentBox(u8 boxId);
|
||||
void BoxMonAtToMon(u8 boxId, u8 boxPosition, struct Pokemon * dst);
|
||||
void SetBoxMonAt(u8 boxId, u8 boxPosition, struct BoxPokemon * src);
|
||||
|
||||
void Cb2_ExitPSS(void);
|
||||
void CB2_ExitPokeStorage(void);
|
||||
void FreeBoxSelectionPopupSpriteGfx(void);
|
||||
void sub_808C940(u8 curBox);
|
||||
void sub_808C950(void);
|
||||
u8 HandleBoxChooseSelectionInput(void);
|
||||
void LoadBoxSelectionPopupSpriteGfx(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3, bool32 loadPal);
|
||||
void LoadChooseBoxMenuGfx(struct ChooseBoxMenu *a0, u16 tileTag, u16 palTag, u8 a3, 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);
|
||||
@@ -430,16 +436,16 @@ bool8 sub_8095050(void);
|
||||
void sub_80950A4(void);
|
||||
void sub_80950BC(u8 a0);
|
||||
bool8 sub_80950D0(void);
|
||||
void sub_8095B5C(void);
|
||||
void CreateItemIconSprites(void);
|
||||
void sub_8096088(void);
|
||||
void sub_80960C0(void);
|
||||
bool8 sub_809610C(void);
|
||||
const u8 *GetMovingItemName(void);
|
||||
void sub_80966F4(void);
|
||||
bool8 sub_8096728(void);
|
||||
bool8 sub_80967C0(void);
|
||||
void sub_8096BE4(struct UnkStruct_2000020 *arg0, struct UnkStruct_2000028 *arg1, u32 arg2);
|
||||
void sub_8096BF8(void);
|
||||
void InitItemInfoWindow(void);
|
||||
bool8 UpdateItemInfoWindowSlideIn(void);
|
||||
bool8 UpdateItemInfoWindowSlideOut(void);
|
||||
void UnkUtil_Init(struct UnkUtil *arg0, struct UnkUtilData *arg1, u32 arg2);
|
||||
void UnkUtil_Run(void);
|
||||
void AddMenu(void);
|
||||
bool8 CanMovePartyMon(void);
|
||||
bool8 CanShiftMon(void);
|
||||
@@ -471,11 +477,11 @@ void SetMenuText(u8 textId);
|
||||
void sub_8095C84(u8 cursorArea, u8 cursorPos);
|
||||
void sub_8095E2C(u16 itemId);
|
||||
u8 GetBoxWallpaper(u8 boxId);
|
||||
bool8 IsCursorOnBox(void);
|
||||
bool8 IsCursorOnBoxTitle(void);
|
||||
bool8 IsCursorInBox(void);
|
||||
|
||||
void sub_808FFAC(void);
|
||||
struct Sprite * CreateMonIconSprite(u16 species, u32 pid, s16 x, s16 y, u8 priority, u8 subpriority);
|
||||
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);
|
||||
@@ -485,7 +491,7 @@ void sub_8091114(void);
|
||||
bool8 sub_8091150(void);
|
||||
void sub_80913DC(u8 box);
|
||||
bool8 sub_809140C(void);
|
||||
void sub_80920FC(bool8 species);
|
||||
void AnimateBoxScrollArrows(bool8 species);
|
||||
void CreateMovingMonIcon(void);
|
||||
void sub_8090E08(u8 boxId, u8 cursorPos);
|
||||
bool8 sub_8090E74(void);
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ void sub_81113E4(void);
|
||||
void sub_8111438(void);
|
||||
void StartRecordingQuestLogEntry(u16 eventId);
|
||||
bool8 WillCommandOfSizeFitInSav1Record(u16 *cursor, size_t size);
|
||||
bool8 sub_8110944(const void * a0, size_t cmdSize);
|
||||
bool8 sub_8110944(const void *a0, size_t cmdSize);
|
||||
|
||||
void sub_8113BD8(void);
|
||||
void ResetUnk203B044(void);
|
||||
|
||||
@@ -13,6 +13,11 @@ u16 Random2(void);
|
||||
//Returns a 32-bit pseudorandom number
|
||||
#define Random32() (Random() | (Random() << 16))
|
||||
|
||||
// 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)
|
||||
|
||||
//Sets the initial seed value of the pseudorandom number generator
|
||||
void SeedRng(u16 seed);
|
||||
void SeedRng2(u16 seed);
|
||||
|
||||
+58
-70
@@ -3,13 +3,44 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
#define NUM_SECTORS 32 // defined in agb_flash but not in a header
|
||||
// Each 4 KiB flash sector contains 3968 bytes of actual data followed by a 128 byte footer.
|
||||
// Only 12 bytes of the footer are used.
|
||||
#define SECTOR_DATA_SIZE 3968
|
||||
#define SECTOR_FOOTER_SIZE 128
|
||||
#define SECTOR_SIZE (SECTOR_DATA_SIZE + SECTOR_FOOTER_SIZE)
|
||||
|
||||
#define SAVE_STATUS_EMPTY 0
|
||||
#define SAVE_STATUS_OK 1
|
||||
#define NUM_SAVE_SLOTS 2
|
||||
|
||||
// If the sector's signature field is not this value then the sector is either invalid or empty.
|
||||
#define SECTOR_SIGNATURE 0x08012025
|
||||
|
||||
#define SPECIAL_SECTOR_SENTINEL 0xB39D
|
||||
|
||||
#define SECTOR_ID_SAVEBLOCK2 0
|
||||
#define SECTOR_ID_SAVEBLOCK1_START 1
|
||||
#define SECTOR_ID_SAVEBLOCK1_END 4
|
||||
#define SECTOR_ID_PKMN_STORAGE_START 5
|
||||
#define SECTOR_ID_PKMN_STORAGE_END 13
|
||||
#define NUM_SECTORS_PER_SLOT 14
|
||||
// Save Slot 1: 0-13; Save Slot 2: 14-27
|
||||
#define SECTOR_ID_HOF_1 28
|
||||
#define SECTOR_ID_HOF_2 29
|
||||
#define SECTOR_ID_TRAINER_TOWER_1 30
|
||||
#define SECTOR_ID_TRAINER_TOWER_2 31
|
||||
#define SECTORS_COUNT 32
|
||||
|
||||
#define NUM_HOF_SECTORS 2
|
||||
|
||||
#define SAVE_STATUS_EMPTY 0
|
||||
#define SAVE_STATUS_OK 1
|
||||
#define SAVE_STATUS_INVALID 2
|
||||
#define SAVE_STATUS_NO_FLASH 4
|
||||
#define SAVE_STATUS_ERROR 0xFF
|
||||
#define SAVE_STATUS_ERROR 0xFF
|
||||
|
||||
// Special sector id value for certain save functions
|
||||
// to indicate that all sectors should be used
|
||||
// instead of a specific sector.
|
||||
#define FULL_SAVE_SLOT 0xFFFF
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -21,45 +52,28 @@ enum
|
||||
SAVE_HALL_OF_FAME_ERASE_BEFORE, // unused
|
||||
};
|
||||
|
||||
struct SaveBlockChunk
|
||||
// A save sector location holds a pointer to the data for a particular sector
|
||||
// and the size of that data. Size cannot be greater than SECTOR_DATA_SIZE.
|
||||
struct SaveSectorLocation
|
||||
{
|
||||
u8 *data;
|
||||
u16 size;
|
||||
};
|
||||
|
||||
struct SaveSection
|
||||
struct SaveSector
|
||||
{
|
||||
u8 data[0xFF4];
|
||||
u8 data[SECTOR_DATA_SIZE];
|
||||
u8 unused[SECTOR_FOOTER_SIZE - 12]; // Unused portion of the footer
|
||||
u16 id;
|
||||
u16 checksum;
|
||||
u32 signature;
|
||||
u32 counter;
|
||||
}; // size is 0x1000
|
||||
}; // size is SECTOR_SIZE (0x1000)
|
||||
|
||||
// headless save section?
|
||||
struct UnkSaveSection
|
||||
{
|
||||
u8 data[0xFF4];
|
||||
u32 signature;
|
||||
}; // size is 0xFF8
|
||||
#define SECTOR_SIGNATURE_OFFSET offsetof(struct SaveSector, signature)
|
||||
#define SECTOR_COUNTER_OFFSET offsetof(struct SaveSector, counter)
|
||||
|
||||
struct SaveSectionOffsets
|
||||
{
|
||||
u16 toAdd;
|
||||
u16 size;
|
||||
};
|
||||
|
||||
// Emerald changes this definition to be the sectors per slot.
|
||||
#define NUM_SECTORS_PER_SAVE_SLOT 14 // Number of sectors occupied by a save slot
|
||||
|
||||
#define UNKNOWN_CHECK_VALUE 0x8012025
|
||||
|
||||
#define SECTOR_SAVE1(n) (n)
|
||||
#define SECTOR_SAVE2(n) ((n) + NUM_SECTORS_PER_SAVE_SLOT)
|
||||
#define SECTOR_HOF(n) ((n) + 2 * NUM_SECTORS_PER_SAVE_SLOT)
|
||||
#define SECTOR_TTOWER(n) ((n) + 2 * NUM_SECTORS_PER_SAVE_SLOT + 2)
|
||||
|
||||
// SetSectorDamagedStatus states
|
||||
// operations for SetDamagedSectorBits
|
||||
enum
|
||||
{
|
||||
ENABLE,
|
||||
@@ -67,53 +81,27 @@ enum
|
||||
CHECK // unused
|
||||
};
|
||||
|
||||
extern u16 gFirstSaveSector;
|
||||
extern u32 gPrevSaveCounter;
|
||||
extern u16 gLastKnownGoodSector;
|
||||
extern u32 gDamagedSaveSectors;
|
||||
extern u32 gSaveCounter;
|
||||
extern struct SaveSection *gFastSaveSection; // the pointer is in fast IWRAM but may sometimes point to the slower EWRAM.
|
||||
extern u16 gUnknown_3005398;
|
||||
extern u16 gSaveUnusedVar;
|
||||
extern struct SaveSector *gSaveDataBufferPtr; // the pointer is in fast IWRAM but points to the slower EWRAM.
|
||||
extern u16 gSaveFileStatus;
|
||||
extern void (*gGameContinueCallback)(void);
|
||||
extern struct SaveBlockChunk gRamSaveSectionLocations[0xE];
|
||||
extern u16 gSaveSucceeded;
|
||||
extern u16 gSaveAttemptStatus;
|
||||
|
||||
extern struct SaveSection gSaveDataBuffer;
|
||||
extern struct SaveSector gSaveDataBuffer;
|
||||
|
||||
void ClearSaveData(void);
|
||||
void Save_ResetSaveCounters(void);
|
||||
bool32 SetSectorDamagedStatus(u8 op, u8 bit);
|
||||
u8 save_write_to_flash(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 HandleWriteSector(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 HandleWriteSectorNBytes(u8 sector, u8 *data, u16 size);
|
||||
u8 TryWriteSector(u8 sector, u8 *data);
|
||||
u32 RestoreSaveBackupVarsAndIncrement(const struct SaveBlockChunk *location);
|
||||
u32 RestoreSaveBackupVars(const struct SaveBlockChunk *location);
|
||||
u8 sub_80D9AA4(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 sub_80D9B04(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 ClearSaveData_2(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 sav12_xor_get(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 sub_80D9D88(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 sub_80D9E14(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 sub_80D9E54(u16 a1, const struct SaveBlockChunk *location);
|
||||
u8 GetSaveValidStatus(const struct SaveBlockChunk *location);
|
||||
u8 sub_80DA120(u8 a1, u8 *data, u16 size);
|
||||
u8 DoReadFlashWholeSection(u8 sector, struct SaveSection *section);
|
||||
u16 CalculateChecksum(void *data, u16 size);
|
||||
void UpdateSaveAddresses(void);
|
||||
u8 HandleSavingData(u8 saveType);
|
||||
u8 TrySavingData(u8 saveType);
|
||||
u8 SaveGame_AfterLinkTrade(void);
|
||||
bool8 AfterLinkTradeSaveFailed(void);
|
||||
u8 ClearSaveAfterLinkTradeSaveFailure(void);
|
||||
u8 sub_80DA434(void);
|
||||
u8 sub_80DA45C(void);
|
||||
bool8 sub_80DA4A0(void);
|
||||
u8 Save_LoadGameData(u8 saveType);
|
||||
u32 TryCopySpecialSaveSection(u8 sector, u8* dst);
|
||||
u32 TryWriteSpecialSaveSection(u8 sector, u8* src);
|
||||
void Task_LinkSave(u8 taskId);
|
||||
bool8 LinkFullSave_Init(void);
|
||||
bool8 LinkFullSave_WriteSector(void);
|
||||
bool8 LinkFullSave_ReplaceLastSector(void);
|
||||
bool8 LinkFullSave_SetLastSectorSignature(void);
|
||||
bool8 WriteSaveBlock2(void);
|
||||
bool8 WriteSaveBlock1Sector(void);
|
||||
u8 LoadGameSave(u8 saveType);
|
||||
u32 TryReadSpecialSaveSector(u8 sector, u8 *dst);
|
||||
u32 TryWriteSpecialSaveSector(u8 sector, u8 *src);
|
||||
void Task_LinkFullSave(u8 taskId);
|
||||
|
||||
#endif // GUARD_SAVE_H
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
|
||||
void CreatePokemartMenu(const u16 *itemsForSale);
|
||||
void CreateDecorationShop1Menu(const u16 *);
|
||||
void CreateDecorationShop2Menu(const u16 *);
|
||||
u8 GetMartUnk16_4(void);
|
||||
u8 GetMartFontId(void);
|
||||
void RecordItemPurchase(u16 a0, u16 a1, u8 a2);
|
||||
|
||||
// buy_menu_helper
|
||||
|
||||
+5
-7
@@ -24,13 +24,11 @@ bool8 IsBGMPausedOrStopped(void);
|
||||
void FadeInBGM(u8 speed);
|
||||
void FadeOutBGM(u8 speed);
|
||||
bool8 IsBGMStopped(void);
|
||||
void PlayCry1(u16 species, s8 pan);
|
||||
void PlayCry2(u16 species, s8 pan, s8 volume, u8 priority);
|
||||
void PlayCry3(u16 species, s8 pan, u8 mode);
|
||||
void PlayCry4(u16 species, s8 pan, u8 mode);
|
||||
void PlayCry5(u16 species, u8 mode);
|
||||
void PlayCry6(u16 species, s8 pan, u8 mode);
|
||||
void PlayCry7(u16 species, u8 mode);
|
||||
void PlayCry_Normal(u16 species, s8 pan);
|
||||
void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority);
|
||||
void PlayCry_ByMode(u16 species, s8 pan, u8 mode);
|
||||
void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode);
|
||||
void PlayCry_Script(u16 species, u8 mode);
|
||||
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode);
|
||||
bool8 IsCryFinished(void);
|
||||
void StopCryAndClearCrySongs(void);
|
||||
|
||||
+1
-3
@@ -4,7 +4,7 @@
|
||||
#include "global.h"
|
||||
|
||||
#define MAX_SPRITES 64
|
||||
#define SPRITE_INVALID_TAG 0xFFFF
|
||||
#define TAG_NONE 0xFFFF
|
||||
|
||||
struct SpriteSheet
|
||||
{
|
||||
@@ -292,8 +292,6 @@ u16 LoadSpriteSheet(const struct SpriteSheet *sheet);
|
||||
void LoadSpriteSheets(const struct SpriteSheet *sheets);
|
||||
u16 AllocTilesForSpriteSheet(struct SpriteSheet *sheet);
|
||||
void AllocTilesForSpriteSheets(struct SpriteSheet *sheets);
|
||||
void LoadTilesForSpriteSheet(const struct SpriteSheet *sheet);
|
||||
void LoadTilesForSpriteSheets(struct SpriteSheet *sheets);
|
||||
void FreeSpriteTilesByTag(u16 tag);
|
||||
void FreeSpriteTileRanges(void);
|
||||
u16 GetSpriteTileStartByTag(u16 tag);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void AppendToList(u8* list, u8* pos, u8 newEntry);
|
||||
void AppendToList(u8 *list, u8 *pos, u8 newEntry);
|
||||
void Task_StartMenuHandleInput(u8 taskId);
|
||||
void SetUpReturnToStartMenu(void);
|
||||
void ShowStartMenu(void);
|
||||
|
||||
@@ -10,7 +10,7 @@ enum StringConvertMode
|
||||
STR_CONV_MODE_LEADING_ZEROS
|
||||
};
|
||||
|
||||
u8 *StringCopy10(u8 *dest, const u8 *src);
|
||||
u8 *StringCopy_Nickname(u8 *dest, const u8 *src);
|
||||
u8 *StringGetEnd10(u8 *str);
|
||||
u8 *StringCopy7(u8 *dest, const u8 *src);
|
||||
u8 *StringCopy(u8 *dest, const u8 *src);
|
||||
|
||||
+1
-1
@@ -188,7 +188,7 @@ extern const u8 gText_Ghost[];
|
||||
|
||||
// pokemon
|
||||
extern const u8 gBattleText_Rose[];
|
||||
extern const u8 gText_PkmnsStatChanged2[];
|
||||
extern const u8 gText_DefendersStatRose[];
|
||||
extern const u8 gBattleText_GetPumped[];
|
||||
extern const u8 gBattleText_MistShroud[];
|
||||
extern const u8 gText_BadEgg[];
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#define HEAD_SENTINEL 0xFE
|
||||
#define TAIL_SENTINEL 0xFF
|
||||
#define TASK_NONE TAIL_SENTINEL
|
||||
|
||||
#define NUM_TASKS 16
|
||||
#define NUM_TASK_DATA 16
|
||||
|
||||
+19
-4
@@ -85,7 +85,7 @@
|
||||
|
||||
#define CHAR_DYNAMIC_PLACEHOLDER 0xF7
|
||||
#define CHAR_KEYPAD_ICON 0xF8
|
||||
#define CHAR_EXTRA_EMOJI 0xF9
|
||||
#define CHAR_EXTRA_SYMBOL 0xF9
|
||||
#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
|
||||
#define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog
|
||||
#define EXT_CTRL_CODE_BEGIN 0xFC // extended control code
|
||||
@@ -93,6 +93,9 @@
|
||||
#define CHAR_NEWLINE 0xFE
|
||||
#define EOS 0xFF // end of string
|
||||
|
||||
// CHAR_EXTRA_SYMBOL chars
|
||||
#define CHAR_LV_2 0x05
|
||||
|
||||
#define TEXT_COLOR_TRANSPARENT 0x0
|
||||
#define TEXT_COLOR_WHITE 0x1
|
||||
#define TEXT_COLOR_DARK_GRAY 0x2
|
||||
@@ -154,7 +157,20 @@
|
||||
#define NUM_TEXT_PRINTERS 32
|
||||
|
||||
#define TEXT_SPEED_INSTANT 0
|
||||
#define TEXT_SPEED_FF 0xFF
|
||||
|
||||
// Given as a text speed when all the text should be
|
||||
// loaded at once but not copied to vram yet.
|
||||
#define TEXT_SKIP_DRAW 0xFF
|
||||
|
||||
enum {
|
||||
FONT_0,
|
||||
FONT_1,
|
||||
FONT_2,
|
||||
FONT_3,
|
||||
FONT_4,
|
||||
FONT_5,
|
||||
FONT_6,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -190,7 +206,7 @@ struct TextPrinterSubStruct
|
||||
|
||||
struct TextPrinterTemplate // TODO: Better name
|
||||
{
|
||||
const u8* currentChar;
|
||||
const u8 *currentChar;
|
||||
u8 windowId;
|
||||
u8 fontId;
|
||||
u8 x;
|
||||
@@ -299,7 +315,6 @@ bool16 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter);
|
||||
bool16 TextPrinterWait(struct TextPrinter *textPrinter);
|
||||
void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool8 drawArrow, u8 *counter, u8 *yCoordIndex);
|
||||
u16 RenderText(struct TextPrinter *textPrinter);
|
||||
s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
|
||||
s32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
|
||||
s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
|
||||
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str, int a3, int a4, int a5, int a6, int a7);
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
|
||||
struct TilesPal
|
||||
{
|
||||
u32* tiles;
|
||||
u16* pal;
|
||||
u32 *tiles;
|
||||
u16 *pal;
|
||||
};
|
||||
|
||||
void rbox_fill_rectangle(u8 windowId);
|
||||
const u16* stdpal_get(u8 id);
|
||||
const u16* GetOverworldTextboxPalettePtr(void);
|
||||
const u16 *stdpal_get(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);
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
struct TextWindowGraphics
|
||||
{
|
||||
const void * tiles;
|
||||
const void * palette;
|
||||
const void *tiles;
|
||||
const void *palette;
|
||||
};
|
||||
|
||||
extern const u16 gUnknown_8470B0C[];
|
||||
@@ -14,6 +14,6 @@ extern const u16 gUnknown_8471DEC[][16];
|
||||
|
||||
extern const struct TextWindowGraphics gUserFrames[];
|
||||
|
||||
const struct TextWindowGraphics * GetUserFrameGraphicsInfo(u8 idx);
|
||||
const struct TextWindowGraphics *GetWindowFrameTilesPal(u8 idx);
|
||||
|
||||
#endif //GUARD_TEXT_WINDOW_GRAPHICS_H
|
||||
|
||||
+10
-5
@@ -17,6 +17,14 @@ enum
|
||||
WINDOW_TILE_DATA
|
||||
};
|
||||
|
||||
// Mode for CopyWindowToVram, CopyWindowRectToVram and CopyWindowToVram8Bit
|
||||
enum {
|
||||
COPYWIN_NONE,
|
||||
COPYWIN_MAP,
|
||||
COPYWIN_GFX,
|
||||
COPYWIN_FULL,
|
||||
};
|
||||
|
||||
struct WindowTemplate
|
||||
{
|
||||
u8 bg;
|
||||
@@ -41,6 +49,8 @@ struct WindowTemplate
|
||||
0, \
|
||||
}
|
||||
|
||||
#define WINDOW_NONE 0xFF
|
||||
|
||||
struct Window
|
||||
{
|
||||
struct WindowTemplate window;
|
||||
@@ -55,11 +65,6 @@ int AddWindowWithoutTileMap(const struct WindowTemplate *template);
|
||||
void RemoveWindow(u8 windowId);
|
||||
void FreeAllWindowBuffers(void);
|
||||
|
||||
// Mode parameter for funcs below
|
||||
#define COPYWIN_MAP 1
|
||||
#define COPYWIN_GFX 2
|
||||
#define COPYWIN_BOTH 3
|
||||
|
||||
void CopyWindowToVram(u8 windowId, u8 mode);
|
||||
void CopyWindowToVram8Bit(u8 windowId, u8 mode);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user