Merge branch 'master' of https://github.com/pret/pokeemerald into doc-contest
This commit is contained in:
@@ -390,7 +390,7 @@ struct BattleStruct
|
||||
u8 expGetterBattlerId;
|
||||
u8 unused_5;
|
||||
u8 field_91; // related to gAbsentBattlerFlags, possibly absent flags turn ago?
|
||||
u8 field_92; // battle palace related
|
||||
u8 palaceFlags; // First 4 bits are "is < 50% HP and not asleep" for each battler, last 4 bits are selected moves to pass to AI
|
||||
u8 field_93; // related to choosing pokemon?
|
||||
u8 wallyBattleState;
|
||||
u8 wallyMovesState;
|
||||
|
||||
@@ -57,15 +57,15 @@ u32 sub_80397C4(u32 setId, u32 tableId);
|
||||
void SpriteCb_WildMon(struct Sprite *sprite);
|
||||
void SpriteCallbackDummy_2(struct Sprite *sprite);
|
||||
void SpriteCB_FaintOpponentMon(struct Sprite *sprite);
|
||||
void sub_8039AD8(struct Sprite *sprite);
|
||||
void sub_8039B2C(struct Sprite *sprite);
|
||||
void sub_8039B58(struct Sprite *sprite);
|
||||
void SpriteCb_ShowAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCb_HideAsMoveTarget(struct Sprite *sprite);
|
||||
void SpriteCb_OpponentMonFromBall(struct Sprite *sprite);
|
||||
void sub_8039BB4(struct Sprite *sprite);
|
||||
void sub_80105DC(struct Sprite *sprite);
|
||||
void sub_8039C00(struct Sprite *sprite);
|
||||
void DoBounceEffect(u8 battlerId, u8 b, s8 c, s8 d);
|
||||
void EndBounceEffect(u8 battlerId, bool8 b);
|
||||
void sub_8039E44(struct Sprite *sprite);
|
||||
void SpriteCb_PlayerMonFromBall(struct Sprite *sprite);
|
||||
void sub_8039E60(struct Sprite *sprite);
|
||||
void sub_8039E84(struct Sprite *sprite);
|
||||
void sub_8039E9C(struct Sprite *sprite);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
|
||||
#define GUARD_BATTLE_SCRIPT_COMMANDS_H
|
||||
|
||||
#include "constants/pokemon.h"
|
||||
|
||||
#define WINDOW_CLEAR 0x1
|
||||
#define WINDOW_x80 0x80
|
||||
|
||||
@@ -16,6 +18,6 @@ void HandleBattleWindow(u8 xStart, u8 yStart, u8 xEnd, u8 yEnd, u8 flags);
|
||||
bool8 UproarWakeUpCheck(u8 battlerId);
|
||||
|
||||
extern void (* const gBattleScriptingCommandsTable[])(void);
|
||||
extern const u8 gUnknown_0831C494[][4];
|
||||
extern const u8 gBattlePalaceNatureToMoveGroupLikelihood[NUM_NATURES][4];
|
||||
|
||||
#endif // GUARD_BATTLE_SCRIPT_COMMANDS_H
|
||||
|
||||
@@ -205,7 +205,7 @@ extern const u8 BattleScript_BerryStatRaiseEnd2[];
|
||||
extern const u8 BattleScript_BerryFocusEnergyEnd2[];
|
||||
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
|
||||
extern const u8 BattleScript_ArenaTurnBeginning[];
|
||||
extern const u8 BattleScript_82DB881[];
|
||||
extern const u8 BattleScript_PalacePrintFlavorText[];
|
||||
extern const u8 BattleScript_ArenaDoJudgment[];
|
||||
extern const u8 BattleScript_82DAA0B[];
|
||||
extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
|
||||
|
||||
@@ -28,7 +28,7 @@ void BattleSetup_StartLegendaryBattle(void);
|
||||
void StartGroudonKyogreBattle(void);
|
||||
void StartRegiBattle(void);
|
||||
u8 BattleSetup_GetTerrainId(void);
|
||||
u8 sub_80B100C(s32 arg0);
|
||||
u8 GetSpecialBattleTransition(s32 arg0);
|
||||
void ChooseStarter(void);
|
||||
void ResetTrainerOpponentIds(void);
|
||||
void SetMapVarsToTrainer(void);
|
||||
|
||||
@@ -9,7 +9,7 @@ bool8 FldEff_Pokeball(void);
|
||||
void TransitionPhase1_Task_RunFuncs(u8 taskId);
|
||||
void GetBg0TilesDst(u16 **tilemap, u16 **tileset);
|
||||
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo10;
|
||||
extern const struct SpritePalette gSpritePalette_Pokeball;
|
||||
|
||||
enum // TRANSITION_MUGSHOT
|
||||
{
|
||||
@@ -24,49 +24,49 @@ enum // TRANSITION_MUGSHOT
|
||||
// credits for the names go to Dyskinesia, Tetrable and Farore
|
||||
// names are naturally subject to change
|
||||
|
||||
#define B_TRANSITION_BLUR 0
|
||||
#define B_TRANSITION_SWIRL 1
|
||||
#define B_TRANSITION_SHUFFLE 2
|
||||
#define B_TRANSITION_BIG_POKEBALL 3
|
||||
#define B_TRANSITION_POKEBALLS_TRAIL 4
|
||||
#define B_TRANSITION_CLOCKWISE_BLACKFADE 5
|
||||
#define B_TRANSITION_RIPPLE 6
|
||||
#define B_TRANSITION_WAVE 7
|
||||
#define B_TRANSITION_SLICE 8
|
||||
#define B_TRANSITION_WHITEFADE 9
|
||||
#define B_TRANSITION_GRID_SQUARES 10
|
||||
#define B_TRANSITION_SHARDS 11
|
||||
#define B_TRANSITION_SIDNEY 12
|
||||
#define B_TRANSITION_PHOEBE 13
|
||||
#define B_TRANSITION_GLACIA 14
|
||||
#define B_TRANSITION_DRAKE 15
|
||||
#define B_TRANSITION_CHAMPION 16
|
||||
#define B_TRANSITION_BLUR 0
|
||||
#define B_TRANSITION_SWIRL 1
|
||||
#define B_TRANSITION_SHUFFLE 2
|
||||
#define B_TRANSITION_BIG_POKEBALL 3
|
||||
#define B_TRANSITION_POKEBALLS_TRAIL 4
|
||||
#define B_TRANSITION_CLOCKWISE_BLACKFADE 5
|
||||
#define B_TRANSITION_RIPPLE 6
|
||||
#define B_TRANSITION_WAVE 7
|
||||
#define B_TRANSITION_SLICE 8
|
||||
#define B_TRANSITION_WHITEFADE 9
|
||||
#define B_TRANSITION_GRID_SQUARES 10
|
||||
#define B_TRANSITION_SHARDS 11
|
||||
#define B_TRANSITION_SIDNEY 12
|
||||
#define B_TRANSITION_PHOEBE 13
|
||||
#define B_TRANSITION_GLACIA 14
|
||||
#define B_TRANSITION_DRAKE 15
|
||||
#define B_TRANSITION_CHAMPION 16
|
||||
// added in Emerald
|
||||
#define B_TRANSITION_AQUA 17
|
||||
#define B_TRANSITION_MAGMA 18
|
||||
#define B_TRANSITION_REGICE 19
|
||||
#define B_TRANSITION_REGISTEEL 20
|
||||
#define B_TRANSITION_REGIROCK 21
|
||||
#define B_TRANSITION_KYOGRE 22
|
||||
#define B_TRANSITION_GROUDON 23
|
||||
#define B_TRANSITION_RAYQUAZA 24
|
||||
#define B_TRANSITION_SHRED_SPLIT 25
|
||||
#define B_TRANSITION_BLACKHOLE1 26
|
||||
#define B_TRANSITION_BLACKHOLE2 27
|
||||
#define B_TRANSITION_RECTANGULAR_SPIRAL 28
|
||||
#define B_TRANSITION_29 29
|
||||
#define B_TRANSITION_30 30
|
||||
#define B_TRANSITION_31 31
|
||||
#define B_TRANSITION_32 32
|
||||
#define B_TRANSITION_33 33
|
||||
#define B_TRANSITION_34 34
|
||||
#define B_TRANSITION_35 35
|
||||
#define B_TRANSITION_36 36
|
||||
#define B_TRANSITION_37 37
|
||||
#define B_TRANSITION_38 38
|
||||
#define B_TRANSITION_39 39
|
||||
#define B_TRANSITION_40 40
|
||||
#define B_TRANSITION_41 41
|
||||
#define B_TRANSITION_COUNT 42
|
||||
#define B_TRANSITION_AQUA 17
|
||||
#define B_TRANSITION_MAGMA 18
|
||||
#define B_TRANSITION_REGICE 19
|
||||
#define B_TRANSITION_REGISTEEL 20
|
||||
#define B_TRANSITION_REGIROCK 21
|
||||
#define B_TRANSITION_KYOGRE 22
|
||||
#define B_TRANSITION_GROUDON 23
|
||||
#define B_TRANSITION_RAYQUAZA 24
|
||||
#define B_TRANSITION_SHRED_SPLIT 25
|
||||
#define B_TRANSITION_BLACKHOLE1 26
|
||||
#define B_TRANSITION_BLACKHOLE2 27
|
||||
#define B_TRANSITION_RECTANGULAR_SPIRAL 28
|
||||
#define B_TRANSITION_FRONTIER_LOGO_WIGGLE 29
|
||||
#define B_TRANSITION_FRONTIER_LOGO_WAVE 30
|
||||
#define B_TRANSITION_FRONTIER_SQUARES 31
|
||||
#define B_TRANSITION_FRONTIER_SQUARES_SCROLL 32
|
||||
#define B_TRANSITION_FRONTIER_SQUARES_SPIRAL 33
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_MEET 34
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_CROSS 35
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_ASYMMETRIC_SPIRAL 36
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_SYMMETRIC_SPIRAL 37
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_MEET_IN_SEQ 38
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_CROSS_IN_SEQ 39
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_ASYMMETRIC_SPIRAL_IN_SEQ 40
|
||||
#define B_TRANSITION_FRONTIER_CIRCLES_SYMMETRIC_SPIRAL_IN_SEQ 41
|
||||
#define B_TRANSITION_COUNT 42
|
||||
|
||||
#endif // GUARD_BATTLE_TRANSITION_H
|
||||
|
||||
13
include/battle_transition_frontier.h
Normal file
13
include/battle_transition_frontier.h
Normal file
@@ -0,0 +1,13 @@
|
||||
#ifndef GUARD_BATTLE_TRANSITION_FRONTIER_H
|
||||
#define GUARD_BATTLE_TRANSITION_FRONTIER_H
|
||||
|
||||
void Phase2Task_FrontierCirclesMeet(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesCross(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesAsymmetricSpiral(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesSymmetricSpiral(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesMeetInSeq(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesCrossInSeq(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesAsymmetricSpiralInSeq(u8 taskId);
|
||||
void Phase2Task_FrontierCirclesSymmetricSpiralInSeq(u8 taskId);
|
||||
|
||||
#endif // GUARD_BATTLE_TRANSITION_FRONTIER_H
|
||||
@@ -52,8 +52,8 @@ void CancelMultiTurnMoves(u8 battlerId);
|
||||
bool8 WasUnableToUseMove(u8 battlerId);
|
||||
void PrepareStringBattle(u16 stringId, u8 battlerId);
|
||||
void ResetSentPokesToOpponentValue(void);
|
||||
void sub_803F9EC(u8 battlerId);
|
||||
void sub_803FA70(u8 battlerId);
|
||||
void OpponentSwitchInResetSentPokesToOpponentValue(u8 battlerId);
|
||||
void UpdateSentPokesToOpponentValue(u8 battlerId);
|
||||
void BattleScriptPush(const u8* bsPtr);
|
||||
void BattleScriptPushCursor(void);
|
||||
void BattleScriptPop(void);
|
||||
|
||||
@@ -37,146 +37,156 @@
|
||||
#define B_SIDE_PLAYER 0
|
||||
#define B_SIDE_OPPONENT 1
|
||||
|
||||
#define B_FLANK_LEFT 0
|
||||
#define B_FLANK_LEFT 0
|
||||
#define B_FLANK_RIGHT 1
|
||||
|
||||
#define BIT_SIDE 1
|
||||
#define BIT_FLANK 2
|
||||
|
||||
// Battle Type Flags
|
||||
#define BATTLE_TYPE_DOUBLE 0x0001
|
||||
#define BATTLE_TYPE_LINK 0x0002
|
||||
#define BATTLE_TYPE_IS_MASTER 0x0004 // In not-link battles, it's always set.
|
||||
#define BATTLE_TYPE_TRAINER 0x0008
|
||||
#define BATTLE_TYPE_FIRST_BATTLE 0x0010
|
||||
#define BATTLE_TYPE_20 0x0020
|
||||
#define BATTLE_TYPE_MULTI 0x0040
|
||||
#define BATTLE_TYPE_SAFARI 0x0080
|
||||
#define BATTLE_TYPE_BATTLE_TOWER 0x0100
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200
|
||||
#define BATTLE_TYPE_ROAMER 0x0400
|
||||
#define BATTLE_TYPE_EREADER_TRAINER 0x0800
|
||||
#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000
|
||||
#define BATTLE_TYPE_LEGENDARY 0x2000
|
||||
#define BATTLE_TYPE_REGI 0x4000
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS 0x8000
|
||||
#define BATTLE_TYPE_DOME 0x10000
|
||||
#define BATTLE_TYPE_PALACE 0x20000
|
||||
#define BATTLE_TYPE_ARENA 0x40000
|
||||
#define BATTLE_TYPE_FACTORY 0x80000
|
||||
#define BATTLE_TYPE_PIKE 0x100000
|
||||
#define BATTLE_TYPE_PYRAMID 0x200000
|
||||
#define BATTLE_TYPE_INGAME_PARTNER 0x400000
|
||||
#define BATTLE_TYPE_x800000 0x800000
|
||||
#define BATTLE_TYPE_RECORDED 0x1000000
|
||||
#define BATTLE_TYPE_x2000000 0x2000000
|
||||
#define BATTLE_TYPE_TRAINER_HILL 0x4000000
|
||||
#define BATTLE_TYPE_SECRET_BASE 0x8000000
|
||||
#define BATTLE_TYPE_GROUDON 0x10000000
|
||||
#define BATTLE_TYPE_KYOGRE 0x20000000
|
||||
#define BATTLE_TYPE_RAYQUAZA 0x40000000
|
||||
#define BATTLE_TYPE_x80000000 0x80000000
|
||||
#define BATTLE_TYPE_DOUBLE (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_20 (1 << 5)
|
||||
#define BATTLE_TYPE_MULTI (1 << 6)
|
||||
#define BATTLE_TYPE_SAFARI (1 << 7)
|
||||
#define BATTLE_TYPE_BATTLE_TOWER (1 << 8)
|
||||
#define BATTLE_TYPE_WALLY_TUTORIAL (1 << 9)
|
||||
#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_REGI (1 << 14)
|
||||
#define BATTLE_TYPE_TWO_OPPONENTS (1 << 15)
|
||||
#define BATTLE_TYPE_DOME (1 << 16)
|
||||
#define BATTLE_TYPE_PALACE (1 << 17)
|
||||
#define BATTLE_TYPE_ARENA (1 << 18)
|
||||
#define BATTLE_TYPE_FACTORY (1 << 19)
|
||||
#define BATTLE_TYPE_PIKE (1 << 20)
|
||||
#define BATTLE_TYPE_PYRAMID (1 << 21)
|
||||
#define BATTLE_TYPE_INGAME_PARTNER (1 << 22)
|
||||
#define BATTLE_TYPE_x800000 (1 << 23)
|
||||
#define BATTLE_TYPE_RECORDED (1 << 24)
|
||||
#define BATTLE_TYPE_x2000000 (1 << 25)
|
||||
#define BATTLE_TYPE_TRAINER_HILL (1 << 26)
|
||||
#define BATTLE_TYPE_SECRET_BASE (1 << 27)
|
||||
#define BATTLE_TYPE_GROUDON (1 << 28)
|
||||
#define BATTLE_TYPE_KYOGRE (1 << 29)
|
||||
#define BATTLE_TYPE_RAYQUAZA (1 << 30)
|
||||
#define BATTLE_TYPE_x80000000 (1 << 31)
|
||||
#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID)
|
||||
#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE)
|
||||
|
||||
// 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_x100000 0x00100000
|
||||
#define HITMARKER_x200000 0x00200000
|
||||
#define HITMARKER_x400000 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_UNK(battler) (0x10000000 << battler)
|
||||
#define HITMARKER_x10 (1 << 4)
|
||||
#define HITMARKER_x20 (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_x100000 (1 << 20)
|
||||
#define HITMARKER_x200000 (1 << 21)
|
||||
#define HITMARKER_x400000 (1 << 22)
|
||||
#define HITMARKER_x800000 (1 << 23)
|
||||
#define HITMARKER_GRUDGE (1 << 24)
|
||||
#define HITMARKER_OBEYS (1 << 25)
|
||||
#define HITMARKER_x4000000 (1 << 26)
|
||||
#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)
|
||||
@@ -215,71 +225,70 @@
|
||||
#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY)
|
||||
|
||||
// Move Effects
|
||||
#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
|
||||
|
||||
@@ -16,4 +16,14 @@
|
||||
#define PALACE_DATA_WIN_STREAK 1
|
||||
#define PALACE_DATA_WIN_STREAK_ACTIVE 2
|
||||
|
||||
// Pokemon in Battle Palace have a move "group" type preference depending on nature
|
||||
#define PALACE_MOVE_GROUP_ATTACK 0
|
||||
#define PALACE_MOVE_GROUP_DEFENSE 1
|
||||
#define PALACE_MOVE_GROUP_SUPPORT 2
|
||||
|
||||
// In palace doubles battles pokemon have a target preference depending on nature
|
||||
#define PALACE_TARGET_STRONGER 0
|
||||
#define PALACE_TARGET_WEAKER 1
|
||||
#define PALACE_TARGET_RANDOM 2
|
||||
|
||||
#endif //GUARD_CONSTANTS_BATTLE_PALACE_H
|
||||
|
||||
@@ -66,8 +66,10 @@
|
||||
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
|
||||
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
|
||||
#define VARIOUS_GET_MOVE_TARGET 3
|
||||
#define VARIOUS_GET_BATTLER_FAINTED 4
|
||||
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
|
||||
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6
|
||||
#define VARIOUS_PALACE_FLAVOR_TEXT 8
|
||||
#define VARIOUS_ARENA_JUDGMENT_WINDOW 9
|
||||
#define VARIOUS_ARENA_OPPONENT_MON_LOST 10
|
||||
#define VARIOUS_ARENA_PLAYER_MON_LOST 11
|
||||
|
||||
@@ -2,5 +2,6 @@
|
||||
#define GUARD_CONSTANTS_COINS_H
|
||||
|
||||
#define MAX_COINS 9999
|
||||
#define MAX_COIN_DIGITS 4
|
||||
|
||||
#endif // GUARD_CONSTANTS_COINS_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_WATER_SURFACING 22
|
||||
#define FLDEFF_BERRY_TREE_GROWTH_SPARKLE 23
|
||||
#define FLDEFF_DEEP_SAND_FOOTPRINTS 24
|
||||
#define FLDEFF_POKECENTER_HEAL 25
|
||||
@@ -50,8 +50,8 @@
|
||||
#define FLDEFF_HEART_ICON 46
|
||||
#define FLDEFF_NOP_47 47
|
||||
#define FLDEFF_NOP_48 48
|
||||
#define FLDEFF_POP_OUT_OF_ASH 49
|
||||
#define FLDEFF_LAVARIDGE_GYM_WARP 50
|
||||
#define FLDEFF_ASH_PUFF 49
|
||||
#define FLDEFF_ASH_LAUNCH 50
|
||||
#define FLDEFF_SWEET_SCENT 51
|
||||
#define FLDEFF_SAND_PILLAR 52
|
||||
#define FLDEFF_BUBBLES 53
|
||||
@@ -65,8 +65,59 @@
|
||||
#define FLDEFF_PCTURN_ON 61
|
||||
#define FLDEFF_HALL_OF_FAME_RECORD 62
|
||||
#define FLDEFF_USE_TELEPORT 63
|
||||
#define FLDEFF_RAYQUAZA 64
|
||||
#define FLDEFF_65 65
|
||||
#define FLDEFF_RAYQUAZA_SPOTLIGHT 64
|
||||
#define FLDEFF_DESTROY_DEOXYS_ROCK 65
|
||||
#define FLDEFF_MOVE_DEOXYS_ROCK 66
|
||||
|
||||
#endif
|
||||
#define FLDEFFOBJ_SHADOW_S 0
|
||||
#define FLDEFFOBJ_SHADOW_M 1
|
||||
#define FLDEFFOBJ_SHADOW_L 2
|
||||
#define FLDEFFOBJ_SHADOW_XL 3
|
||||
#define FLDEFFOBJ_TALL_GRASS 4
|
||||
#define FLDEFFOBJ_RIPPLE 5
|
||||
#define FLDEFFOBJ_ASH 6
|
||||
#define FLDEFFOBJ_SURF_BLOB 7
|
||||
#define FLDEFFOBJ_ARROW 8
|
||||
#define FLDEFFOBJ_GROUND_IMPACT_DUST 9
|
||||
#define FLDEFFOBJ_JUMP_TALL_GRASS 10
|
||||
#define FLDEFFOBJ_SAND_FOOTPRINTS 11
|
||||
#define FLDEFFOBJ_JUMP_BIG_SPLASH 12
|
||||
#define FLDEFFOBJ_SPLASH 13
|
||||
#define FLDEFFOBJ_JUMP_SMALL_SPLASH 14
|
||||
#define FLDEFFOBJ_LONG_GRASS 15
|
||||
#define FLDEFFOBJ_JUMP_LONG_GRASS 16
|
||||
#define FLDEFFOBJ_UNUSED_GRASS 17
|
||||
#define FLDEFFOBJ_UNUSED_GRASS_2 18
|
||||
#define FLDEFFOBJ_UNUSED_SAND 19
|
||||
#define FLDEFFOBJ_WATER_SURFACING 20
|
||||
#define FLDEFFOBJ_REFLECTION_DISTORTION 21
|
||||
#define FLDEFFOBJ_SPARKLE 22
|
||||
#define FLDEFFOBJ_DEEP_SAND_FOOTPRINTS 23
|
||||
#define FLDEFFOBJ_TREE_DISGUISE 24
|
||||
#define FLDEFFOBJ_MOUNTAIN_DISGUISE 25
|
||||
#define FLDEFFOBJ_BIRD 26
|
||||
#define FLDEFFOBJ_BIKE_TIRE_TRACKS 27
|
||||
#define FLDEFFOBJ_SAND_DISGUISE 28
|
||||
#define FLDEFFOBJ_SAND_PILE 29
|
||||
#define FLDEFFOBJ_SHORT_GRASS 30
|
||||
#define FLDEFFOBJ_HOT_SPRINGS_WATER 31
|
||||
#define FLDEFFOBJ_ASH_PUFF 32
|
||||
#define FLDEFFOBJ_ASH_LAUNCH 33
|
||||
#define FLDEFFOBJ_BUBBLES 34
|
||||
#define FLDEFFOBJ_SMALL_SPARKLE 35
|
||||
#define FLDEFFOBJ_RAYQUAZA 36
|
||||
|
||||
#define FLDEFF_PAL_TAG_CUT_GRASS 0x1000
|
||||
#define FLDEFF_PAL_TAG_SECRET_POWER_TREE 0x1003
|
||||
#define FLDEFF_PAL_TAG_GENERAL_0 0x1004
|
||||
#define FLDEFF_PAL_TAG_GENERAL_1 0x1005
|
||||
#define FLDEFF_PAL_TAG_POKEBALL_GLOW 0x1007
|
||||
#define FLDEFF_PAL_TAG_SECRET_POWER_PLANT 0x1008
|
||||
#define FLDEFF_PAL_TAG_POKEBALL 0x1009
|
||||
#define FLDEFF_PAL_TAG_ASH 0x100D
|
||||
#define FLDEFF_PAL_TAG_SAND_PILLAR 0x100E
|
||||
#define FLDEFF_PAL_TAG_SMALL_SPARKLE 0x100F
|
||||
#define FLDEFF_PAL_TAG_HOF_MONITOR 0x1010
|
||||
#define FLDEFF_PAL_TAG_UNKNOWN 0x1011
|
||||
|
||||
#endif // GUARD_FIELD_EFFECT_CONSTANTS_H
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
#define FLAG_RECEIVED_DURIN_BERRY 0xFB
|
||||
#define FLAG_RECEIVED_BELUE_BERRY 0xFC
|
||||
#define FLAG_ENABLE_RIVAL_MATCH_CALL 0xFD
|
||||
#define FLFLAG_RECEIVED_CHARCOAL 0xFE
|
||||
#define FLAG_RECEIVED_CHARCOAL 0xFE
|
||||
#define FLAG_LATIOS_OR_LATIAS_ROAMING 0xFF
|
||||
#define FLAG_RECEIVED_REPEAT_BALL 0x100
|
||||
#define FLAG_RECEIVED_OLD_ROD 0x101
|
||||
@@ -961,10 +961,10 @@
|
||||
#define FLAG_HIDE_MT_PYRE_SUMMIT_ARCHIE 0x394
|
||||
#define FLAG_HIDE_MT_PYRE_SUMMIT_TEAM_AQUA 0x395
|
||||
#define FLAG_HIDE_BATTLE_TOWER_REPORTER 0x396
|
||||
#define FLAG_HIDE_ROUTE_110_RIVAL_1 0x397
|
||||
#define FLAG_HIDE_ROUTE_110_RIVAL 0x397
|
||||
#define FLAG_HIDE_CHAMPIONS_ROOM_RIVAL 0x398
|
||||
#define FLAG_HIDE_CHAMPIONS_ROOM_BIRCH 0x399
|
||||
#define FLAG_HIDE_ROUTE_110_RIVAL_2 0x39A
|
||||
#define FLAG_HIDE_ROUTE_110_RIVAL_ON_BIKE 0x39A
|
||||
#define FLAG_HIDE_ROUTE_119_RIVAL_ON_BIKE 0x39B
|
||||
#define FLAG_HIDE_AQUA_HIDEOUT_GRUNTS 0x39C
|
||||
#define FLAG_HIDE_LILCOVE_MOTEL_GAME_DESIGNERS 0x39D
|
||||
@@ -1077,9 +1077,7 @@
|
||||
#define FLAG_ITEM_ROUTE_120_NUGGET 0x406
|
||||
#define FLAG_ITEM_ROUTE_120_FULL_HEAL 0x407
|
||||
#define FLAG_ITEM_ROUTE_123_CALCIUM 0x408
|
||||
|
||||
#define FLAG_UNUSED_0x409 0x409 // Unused Flag
|
||||
|
||||
#define FLAG_ITEM_ROUTE_123_RARE_CANDY 0x409 // Unused Flag, leftover from R/S. In Emerald this is a hidden item and uses a different flag
|
||||
#define FLAG_ITEM_ROUTE_127_ZINC 0x40A
|
||||
#define FLAG_ITEM_ROUTE_127_CARBOS 0x40B
|
||||
#define FLAG_ITEM_ROUTE_132_RARE_CANDY 0x40C
|
||||
@@ -1171,37 +1169,27 @@
|
||||
#define FLAG_ITEM_NEW_MAUVILLE_FULL_HEAL 0x462
|
||||
#define FLAG_ITEM_NEW_MAUVILLE_PARALYZE_HEAL 0x463
|
||||
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_MASTER_BALL 0x464
|
||||
|
||||
#define FLAG_UNUSED_0x465 0x465 // Unused Flag
|
||||
#define FLAG_UNUSED_0x466 0x466 // Unused Flag
|
||||
#define FLAG_UNUSED_0x467 0x467 // Unused Flag
|
||||
#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MASTER_BALL 0x465 // Unused Flag, leftover from the Ruby Magma hideout
|
||||
#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B1F_MAX_ELIXIR 0x466 // Unused Flag, leftover from the Ruby Magma hideout
|
||||
#define FLAG_ITEM_OLD_MAGMA_HIDEOUT_B2F_NEST_BALL 0x467 // Unused Flag, leftover from the Ruby Magma hideout
|
||||
#define FLAG_UNUSED_0x468 0x468 // Unused Flag
|
||||
|
||||
#define FLAG_ITEM_MT_PYRE_2F_ULTRA_BALL 0x469
|
||||
#define FLAG_ITEM_MT_PYRE_4F_SEA_INCENSE 0x46A
|
||||
#define FLAG_ITEM_SAFARI_ZONE_SOUTH_WEST_MAX_REVIVE 0x46B
|
||||
#define FLAG_ITEM_AQUA_HIDEOUT_B1F_NUGGET 0x46C
|
||||
|
||||
#define FLAG_UNUSED_0x46D 0x46D // Unused Flag
|
||||
|
||||
#define FLAG_ITEM_MOSSDEEP_STEVENS_HOUSE_HM08 0x46D // Unused Flag, leftover from R/S. HM08 is given to the player directly in Emerald
|
||||
#define FLAG_ITEM_ROUTE_119_NUGGET 0x46E
|
||||
#define FLAG_ITEM_ROUTE_104_POTION 0x46F
|
||||
|
||||
#define FLAG_UNUSED_0x470 0x470 // Unused Flag
|
||||
|
||||
#define FLAG_ITEM_ROUTE_103_PP_UP 0x471
|
||||
|
||||
#define FLAG_UNUSED_0x472 0x472 // Unused Flag
|
||||
|
||||
#define FLAG_ITEM_ROUTE_108_STAR_PIECE 0x473
|
||||
#define FLAG_ITEM_ROUTE_109_POTION 0x474
|
||||
#define FLAG_ITEM_ROUTE_110_ELIXIR 0x475
|
||||
#define FLAG_ITEM_ROUTE_111_ELIXIR 0x476
|
||||
#define FLAG_ITEM_ROUTE_113_HYPER_POTION 0x477
|
||||
#define FLAG_ITEM_ROUTE_115_HEAL_POWDER 0x478
|
||||
|
||||
#define FLAG_UNUSED_0x479 0x479 // Unused Flag
|
||||
|
||||
#define FLAG_ITEM_ROUTE_116_POTION 0x47A
|
||||
#define FLAG_ITEM_ROUTE_119_ELIXIR_2 0x47B
|
||||
#define FLAG_ITEM_ROUTE_120_REVIVE 0x47C
|
||||
@@ -1356,7 +1344,7 @@
|
||||
#define FLAG_SYS_POKEMON_GET (SYSTEM_FLAGS + 0x0) // FLAG_0x860
|
||||
#define FLAG_SYS_POKEDEX_GET (SYSTEM_FLAGS + 0x1)
|
||||
#define FLAG_SYS_POKENAV_GET (SYSTEM_FLAGS + 0x2)
|
||||
#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3)
|
||||
#define FLAG_UNUSED_0x863 (SYSTEM_FLAGS + 0x3) // Unused Flag
|
||||
#define FLAG_SYS_GAME_CLEAR (SYSTEM_FLAGS + 0x4)
|
||||
#define FLAG_SYS_CHAT_USED (SYSTEM_FLAGS + 0x5)
|
||||
#define FLAG_SYS_HIPSTER_MEET (SYSTEM_FLAGS + 0x6)
|
||||
@@ -1373,7 +1361,7 @@
|
||||
#define NUM_BADGES (1 + FLAG_BADGE08_GET - FLAG_BADGE01_GET)
|
||||
|
||||
// Towns and Cities
|
||||
#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF)
|
||||
#define FLAG_VISITED_LITTLEROOT_TOWN (SYSTEM_FLAGS + 0xF)
|
||||
#define FLAG_VISITED_OLDALE_TOWN (SYSTEM_FLAGS + 0x10)
|
||||
#define FLAG_VISITED_DEWFORD_TOWN (SYSTEM_FLAGS + 0x11)
|
||||
#define FLAG_VISITED_LAVARIDGE_TOWN (SYSTEM_FLAGS + 0x12)
|
||||
@@ -1418,9 +1406,9 @@
|
||||
#define FLAG_SYS_MIX_RECORD (SYSTEM_FLAGS + 0x34)
|
||||
#define FLAG_SYS_CLOCK_SET (SYSTEM_FLAGS + 0x35)
|
||||
#define FLAG_SYS_NATIONAL_DEX (SYSTEM_FLAGS + 0x36)
|
||||
#define FLAG_SYS_UNUSED_CAVE_SHIP (SYSTEM_FLAGS + 0x37) // Unused Flag?
|
||||
#define FLAG_SYS_UNUSED_CAVE_WONDER (SYSTEM_FLAGS + 0x38) // Unused Flag?
|
||||
#define FLAG_SYS_UNUSED_CAVE_BATTLE (SYSTEM_FLAGS + 0x39) // Unused Flag?
|
||||
#define FLAG_SYS_CAVE_SHIP (SYSTEM_FLAGS + 0x37) // Unused Flag, leftover from R/S debug, presumably used by Emerald's debug too
|
||||
#define FLAG_SYS_CAVE_WONDER (SYSTEM_FLAGS + 0x38) // Unused Flag, same as above
|
||||
#define FLAG_SYS_CAVE_BATTLE (SYSTEM_FLAGS + 0x39) // Unused Flag, same as above
|
||||
#define FLAG_SYS_SHOAL_TIDE (SYSTEM_FLAGS + 0x3A)
|
||||
#define FLAG_SYS_RIBBON_GET (SYSTEM_FLAGS + 0x3B)
|
||||
|
||||
@@ -1573,7 +1561,9 @@
|
||||
#define FLAG_UNUSED_0x91F (SYSTEM_FLAGS + 0xBF) // Unused Flag
|
||||
|
||||
// Daily Flags
|
||||
#define DAILY_FLAGS_START 0x920
|
||||
// These flags are cleared once per day
|
||||
// The start and end are byte-aligned because the flags are cleared in byte increments
|
||||
#define DAILY_FLAGS_START (FLAG_UNUSED_0x91F + (8 - FLAG_UNUSED_0x91F % 8))
|
||||
#define FLAG_UNUSED_0x920 (DAILY_FLAGS_START + 0x0) // Unused Flag
|
||||
#define FLAG_DAILY_CONTEST_LOBBY_RECEIVED_BERRY (DAILY_FLAGS_START + 0x1)
|
||||
#define FLAG_DAILY_SECRET_BASE (DAILY_FLAGS_START + 0x2)
|
||||
@@ -1639,7 +1629,9 @@
|
||||
#define FLAG_UNUSED_0x95D (DAILY_FLAGS_START + 0x3D) // Unused Flag
|
||||
#define FLAG_UNUSED_0x95E (DAILY_FLAGS_START + 0x3E) // Unused Flag
|
||||
#define FLAG_UNUSED_0x95F (DAILY_FLAGS_START + 0x3F) // Unused Flag
|
||||
#define DAILY_FLAGS_END FLAG_UNUSED_0x95F
|
||||
#define DAILY_FLAGS_END (FLAG_UNUSED_0x95F + (7 - FLAG_UNUSED_0x95F % 8))
|
||||
|
||||
#define FLAGS_COUNT (DAILY_FLAGS_END + 1)
|
||||
|
||||
// Special Flags (Stored in EWRAM (gSpecialFlags), not in the SaveBlock)
|
||||
#define SPECIAL_FLAGS_START 0x4000
|
||||
|
||||
@@ -34,8 +34,6 @@
|
||||
#define POKEBLOCKS_COUNT 40
|
||||
#define OBJECT_EVENTS_COUNT 16
|
||||
#define BERRY_TREES_COUNT 128
|
||||
#define FLAGS_COUNT 300
|
||||
#define VARS_COUNT 256
|
||||
#define MAIL_COUNT 16
|
||||
#define SECRET_BASES_COUNT 20
|
||||
#define TV_SHOWS_COUNT 25
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
#define ITEM_LUXURY_BALL 11
|
||||
#define ITEM_PREMIER_BALL 12
|
||||
|
||||
#define LAST_BALL ITEM_PREMIER_BALL
|
||||
|
||||
// Pokemon Items
|
||||
#define ITEM_POTION 13
|
||||
#define ITEM_ANTIDOTE 14
|
||||
@@ -495,6 +497,11 @@
|
||||
#define MAX_PC_ITEM_CAPACITY 999
|
||||
#define MAX_BERRY_CAPACITY 999
|
||||
|
||||
// Secondary IDs for rods
|
||||
#define OLD_ROD 0
|
||||
#define GOOD_ROD 1
|
||||
#define SUPER_ROD 2
|
||||
|
||||
// Check if the item is one that can be used on a Pokemon.
|
||||
#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef GUARD_CONSTANTS_LAYOUTS_H
|
||||
#define GUARD_CONSTANTS_LAYOUTS_H
|
||||
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE! It is auto-generated from data/layouts/layouts.json
|
||||
//
|
||||
|
||||
#define LAYOUT_PETALBURG_CITY 1
|
||||
#define LAYOUT_SLATEPORT_CITY 2
|
||||
#define LAYOUT_MAUVILLE_CITY 3
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
#ifndef GUARD_CONSTANTS_MAP_GROUPS_H
|
||||
#define GUARD_CONSTANTS_MAP_GROUPS_H
|
||||
|
||||
//
|
||||
// DO NOT MODIFY THIS FILE! It is auto-generated from data/maps/map_groups.json
|
||||
//
|
||||
|
||||
// Map Group 0
|
||||
#define MAP_PETALBURG_CITY (0 | (0 << 8))
|
||||
#define MAP_SLATEPORT_CITY (1 | (0 << 8))
|
||||
|
||||
@@ -1,6 +1,41 @@
|
||||
#ifndef GUARD_CONSTANTS_MAP_SCRIPTS_H
|
||||
#define GUARD_CONSTANTS_MAP_SCRIPTS_H
|
||||
|
||||
/*
|
||||
IDs for special scripts that can be run for a particular map.
|
||||
For the functions that handle when they are run, see these constants' uses in src/script.c
|
||||
|
||||
Below describes when a script of this kind will be called, and what it typically does.
|
||||
They are numbered in the order that they will be called when entering a map (from a warp or camera transition).
|
||||
NOTE: These descriptions are just of what they generally do, not what they always or have to do
|
||||
|
||||
3. ON_LOAD: Run after the layout is loaded (but not drawn yet).
|
||||
Almost exclusively used to set metatiles on the map before it's first drawn
|
||||
|
||||
6. ON_FRAME_TABLE: Run every frame after the map has faded in, before player input is processed.
|
||||
This is a table of scripts that each run if their condition is satisfied.
|
||||
Used to trigger an event, such as the player exiting the cable car or the SS Tidal sailor announcing progress
|
||||
|
||||
2. ON_TRANSITION: Run during the transition to the map
|
||||
Used to set map-specific flags/vars, update object positions/movement types, set weather, etc
|
||||
|
||||
5. ON_WARP_INTO_MAP_TABLE: Run after the map's objects are loaded.
|
||||
This is a table of scripts that each run if their condition is satisfied.
|
||||
Used to add objects to the scene or update something about the player as they warp in (e.g. their facing dir or visibility)
|
||||
Note that ON_TRANSITION may also handle object visibility, but would do so by modifying a flag or var
|
||||
|
||||
4. ON_RESUME: Run at the end of map load, and again any time upon returning to field (e.g. exiting the Bag menu, or finishing a battle)
|
||||
Used to hide defeated static pokemon, or maintain some map state (e.g. the Trainer Hill timer, or the cycling road challenge)
|
||||
In some maps this takes the metatile setting job of ON_LOAD
|
||||
|
||||
1. ON_DIVE_WARP: Run after the player chooses to dive/emerge.
|
||||
Only used once, to determine whether or not the player should emerge in the Sealed Chamber
|
||||
|
||||
x. ON_RETURN_TO_FIELD: Run exlusively upon returning to the field, shortly after ON_RESUME (as opposed to ON_RESUME, which also runs once on entering the map)
|
||||
Used rarely, when something must only happen on reload (e.g. making sure Mew is above the grass after battling it on Faraway Island)
|
||||
|
||||
*/
|
||||
|
||||
#define MAP_SCRIPT_ON_LOAD 1
|
||||
#define MAP_SCRIPT_ON_FRAME_TABLE 2
|
||||
#define MAP_SCRIPT_ON_TRANSITION 3
|
||||
|
||||
@@ -289,31 +289,31 @@
|
||||
#define METATILE_EverGrande_Door_PokemonLeague 0x21D
|
||||
|
||||
// gTileset_PokemonCenter
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame0 0x280
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame1 0x282
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile0_Frame2 0x284
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame0 0x281
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame1 0x283
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile1_Frame2 0x285
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame0 0x288
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame1 0x28A
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile2_Frame2 0x28C
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame0 0x289
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame1 0x28B
|
||||
#define METATILE_PokemonCenter_Elevator1F_Tile3_Frame2 0x28D
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame0 0x2A0
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame1 0x2A2
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile0_Frame2 0x2A4
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame0 0x2A1
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame1 0x2A3
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile1_Frame2 0x2A5
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame0 0x2A8
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame1 0x2AA
|
||||
#define METATILE_PokemonCenter_Elevator2F_Tile2_Frame2 0x2AC
|
||||
#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC
|
||||
#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4
|
||||
#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E
|
||||
#define METATILE_PokemonCenter_CounterBarrier 0x25D
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 0x280
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame1 0x282
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame2 0x284
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 0x281
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame1 0x283
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame2 0x285
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 0x288
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame1 0x28A
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame2 0x28C
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 0x289
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame1 0x28B
|
||||
#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame2 0x28D
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame0 0x2A0
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame1 0x2A2
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 0x2A4
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame0 0x2A1
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame1 0x2A3
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 0x2A5
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame0 0x2A8
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame1 0x2AA
|
||||
#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 0x2AC
|
||||
#define METATILE_PokemonCenter_Floor_ShadowTop_Alt 0x2DC
|
||||
#define METATILE_PokemonCenter_Floor_Plain_Alt 0x2E4
|
||||
#define METATILE_PokemonCenter_Floor_ShadowTop 0x21E
|
||||
#define METATILE_PokemonCenter_CounterBarrier 0x25D
|
||||
|
||||
// gTileset_InsideOfTruck
|
||||
#define METATILE_InsideOfTruck_ExitLight_Top 0x208
|
||||
|
||||
@@ -859,6 +859,7 @@
|
||||
|
||||
// NOTE: Because each Trainer uses a flag to determine when they are defeated, there is only space for 9 additional trainers before trainer flag space overflows
|
||||
// More space can be made by shifting flags around in constants/flags.h or changing how trainer flags are handled
|
||||
// MAX_TRAINERS_COUNT can be increased but will take up additional saveblock space
|
||||
|
||||
#define TRAINERS_COUNT 855
|
||||
#define MAX_TRAINERS_COUNT 864
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
#define NATURE_SASSY 22
|
||||
#define NATURE_CAREFUL 23
|
||||
#define NATURE_QUIRKY 24
|
||||
#define NUM_NATURES 25
|
||||
|
||||
// Pokemon Stats
|
||||
#define STAT_HP 0
|
||||
@@ -80,9 +81,13 @@
|
||||
#define STAT_ACC 6 // Only in battles.
|
||||
#define STAT_EVASION 7 // Only in battles.
|
||||
|
||||
#define NUM_EV_STATS NUM_STATS - 1 // excludes HP
|
||||
#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
|
||||
|
||||
|
||||
7
include/constants/roulette.h
Normal file
7
include/constants/roulette.h
Normal file
@@ -0,0 +1,7 @@
|
||||
#ifndef GUARD_CONSTANTS_ROULETTE_H
|
||||
#define GUARD_CONSTANTS_ROULETTE_H
|
||||
|
||||
// Flag set in gSpecialVar_0x8004 when playing Roulette on a Game Corner service day
|
||||
#define ROULETTE_SPECIAL_RATE (1 << 7)
|
||||
|
||||
#endif // GUARD_CONSTANTS_ROULETTE_H
|
||||
@@ -1,42 +1,6 @@
|
||||
#ifndef GUARD_CONSTANTS_SLOT_MACHINE_H
|
||||
#define GUARD_CONSTANTS_SLOT_MACHINE_H
|
||||
|
||||
#define NUM_REELS 3
|
||||
#define REEL_NUM_TAGS 21
|
||||
#define REEL_TAG_HEIGHT 24
|
||||
#define SLOT_MACHINE_COUNT 12
|
||||
|
||||
// Lucky Flags
|
||||
#define LUCKY_BIAS_REPLAY (1 << 0)
|
||||
#define LUCKY_BIAS_CHERRY (1 << 1)
|
||||
#define LUCKY_BIAS_LOTAD (1 << 2)
|
||||
#define LUCKY_BIAS_AZURILL (1 << 3)
|
||||
#define LUCKY_BIAS_POWER (1 << 4)
|
||||
#define LUCKY_BIAS_REELTIME (1 << 5)
|
||||
#define LUCKY_BIAS_MIXED_777 (1 << 6)
|
||||
#define LUCKY_BIAS_777 (1 << 7)
|
||||
|
||||
#define SLOT_MACHINE_TAG_7_RED 0
|
||||
#define SLOT_MACHINE_TAG_7_BLUE 1
|
||||
#define SLOT_MACHINE_TAG_AZURILL 2
|
||||
#define SLOT_MACHINE_TAG_LOTAD 3
|
||||
#define SLOT_MACHINE_TAG_CHERRY 4
|
||||
#define SLOT_MACHINE_TAG_POWER 5
|
||||
#define SLOT_MACHINE_TAG_REPLAY 6
|
||||
|
||||
#define SLOT_MACHINE_MATCHED_1CHERRY 0
|
||||
#define SLOT_MACHINE_MATCHED_2CHERRY 1
|
||||
#define SLOT_MACHINE_MATCHED_REPLAY 2
|
||||
#define SLOT_MACHINE_MATCHED_LOTAD 3
|
||||
#define SLOT_MACHINE_MATCHED_AZURILL 4
|
||||
#define SLOT_MACHINE_MATCHED_POWER 5
|
||||
#define SLOT_MACHINE_MATCHED_777_MIXED 6
|
||||
#define SLOT_MACHINE_MATCHED_777_RED 7
|
||||
#define SLOT_MACHINE_MATCHED_777_BLUE 8
|
||||
#define SLOT_MACHINE_MATCHED_NONE 9
|
||||
|
||||
#define LEFT_REEL 0
|
||||
#define MIDDLE_REEL 1
|
||||
#define RIGHT_REEL 2
|
||||
|
||||
#endif // GUARD_CONSTANTS_SLOT_MACHINE_H
|
||||
#endif // GUARD_CONSTANTS_SLOT_MACHINE_H
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#define TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS 6
|
||||
#define TRAINER_HILL_FUNC_GET_CHALLENGE_TIME 7
|
||||
#define TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED 8
|
||||
#define TRAINER_HILL_FUNC_CLEAR_RESULT 9
|
||||
#define TRAINER_HILL_FUNC_GET_IN_EREADER_MODE 9
|
||||
#define TRAINER_HILL_FUNC_IN_CHALLENGE 10
|
||||
#define TRAINER_HILL_FUNC_POST_BATTLE_TEXT 11
|
||||
#define TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS 12
|
||||
|
||||
@@ -274,6 +274,7 @@
|
||||
#define VAR_UNUSED_0x40FF 0x40FF // Unused Var
|
||||
|
||||
#define VARS_END 0x40FF
|
||||
#define VARS_COUNT (VARS_END - VARS_START + 1)
|
||||
|
||||
#define SPECIAL_VARS_START 0x8000
|
||||
// special vars
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
#ifndef GUARD_EVENT_DATA_H
|
||||
#define GUARD_EVENT_DATA_H
|
||||
|
||||
#include "constants/flags.h"
|
||||
#include "constants/vars.h"
|
||||
|
||||
void InitEventData(void);
|
||||
void ClearTempFieldEventData(void);
|
||||
void ClearDailyFlags(void);
|
||||
|
||||
@@ -16,11 +16,7 @@ enum SpinnerRunnerFollowPatterns
|
||||
RUNFOLLOW_SOUTH_EAST_WEST
|
||||
};
|
||||
|
||||
struct UnkStruct_085094AC
|
||||
{
|
||||
const union AnimCmd *const *anims;
|
||||
u8 animPos[4];
|
||||
};
|
||||
#define FIGURE_8_LENGTH 72
|
||||
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
|
||||
@@ -43,6 +39,12 @@ struct UnkStruct_085094AC
|
||||
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
|
||||
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
|
||||
|
||||
struct UnkStruct_085094AC
|
||||
{
|
||||
const union AnimCmd *const *anims;
|
||||
u8 animPos[4];
|
||||
};
|
||||
|
||||
struct PairedPalettes
|
||||
{
|
||||
u16 tag;
|
||||
@@ -98,7 +100,7 @@ void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
|
||||
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8 graphicsId);
|
||||
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
|
||||
void FreeAndReserveObjectSpritePalettes(void);
|
||||
void sub_808E82C(u8, u8, u8, s16, s16);
|
||||
void SetObjectEventSpritePosByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y);
|
||||
void sub_808E7E4(u8, u8, u8);
|
||||
void sub_808E78C(u8, u8, u8, u8);
|
||||
void sub_808E75C(s16, s16);
|
||||
@@ -174,8 +176,6 @@ u8 sub_809785C(struct Sprite *);
|
||||
u8 sub_80978E4(struct Sprite *);
|
||||
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
|
||||
bool8 SpriteAnimEnded(struct Sprite *);
|
||||
void sub_8097750(struct Sprite *);
|
||||
bool8 sub_8097758(struct Sprite *);
|
||||
void CreateLevitateMovementTask(struct ObjectEvent *);
|
||||
void DestroyExtraMovementTask(u8);
|
||||
void UnfreezeObjectEvents(void);
|
||||
@@ -191,8 +191,8 @@ u8 GetLedgeJumpDirection(s16, s16, u8);
|
||||
void CameraObjectSetFollowedObjectId(u8 objectId);
|
||||
u16 GetObjectPaletteTag(u8 palSlot);
|
||||
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible);
|
||||
s16 sub_809773C(s16 a1);
|
||||
s16 sub_8097728(s16 a1);
|
||||
s16 GetFigure8XOffset(s16 idx);
|
||||
s16 GetFigure8YOffset(s16 idx);
|
||||
void CameraObjectReset2(void);
|
||||
u8 GetObjectEventBerryTreeId(u8 objectEventId);
|
||||
void sub_8092EF0(u8 mapId, u8 mapNumber, u8 mapGroup);
|
||||
|
||||
@@ -372,10 +372,11 @@ extern const u8 SecretBase_Text_Trainer8Defeated[];
|
||||
extern const u8 SecretBase_Text_Trainer9Defeated[];
|
||||
|
||||
//field effects
|
||||
extern const u8 EventScript_FldEffStrength[];
|
||||
extern const u8 EventScript_UseStrength[];
|
||||
extern const u8 EventScript_FailSweetScent[];
|
||||
extern const u8 EventScript_FldEffFlash[];
|
||||
extern const u8 EventScript_FldEffRockSmash[];
|
||||
extern const u8 EventScript_UseFlash[];
|
||||
extern const u8 EventScript_UseCut[];
|
||||
extern const u8 EventScript_UseRockSmash[];
|
||||
|
||||
//player pc
|
||||
extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC[];
|
||||
@@ -587,4 +588,26 @@ extern u8 BerryTree_EventScript_ItemUsePlantBerry[];
|
||||
extern u8 BerryTree_EventScript_ItemUseWailmerPail[];
|
||||
extern u8 BattleFrontier_OutsideEast_EventScript_WaterSudowoodo[];
|
||||
|
||||
// overworld
|
||||
extern const u8 EventScript_WhiteOut[];
|
||||
extern const u8 EventScript_ResetMrBriney[];
|
||||
extern const u8 EventScript_DoLinkRoomExit[];
|
||||
extern const u8 CableClub_EventScript_TooBusyToNotice[];
|
||||
extern const u8 CableClub_EventScript_ReadTrainerCard[];
|
||||
extern const u8 CableClub_EventScript_ReadTrainerCardColored[];
|
||||
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot0[];
|
||||
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot1[];
|
||||
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot2[];
|
||||
extern const u8 EventScript_BattleColosseum_4P_PlayerSpot3[];
|
||||
extern const u8 EventScript_RecordCenter_Spot0[];
|
||||
extern const u8 EventScript_RecordCenter_Spot1[];
|
||||
extern const u8 EventScript_RecordCenter_Spot2[];
|
||||
extern const u8 EventScript_RecordCenter_Spot3[];
|
||||
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot0[];
|
||||
extern const u8 EventScript_BattleColosseum_2P_PlayerSpot1[];
|
||||
extern const u8 EventScript_TradeCenter_Chair1[];
|
||||
extern const u8 EventScript_TradeCenter_Chair0[];
|
||||
extern const u8 EventScript_ConfirmLeaveTradeRoom[];
|
||||
extern const u8 EventScript_TerminateLink[];
|
||||
|
||||
#endif // GUARD_EVENT_SCRIPTS_H
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#define GUARD_FARAWAY_ISLAND_H
|
||||
|
||||
u32 GetMewMoveDirection(void);
|
||||
bool8 sub_81D4A58(struct ObjectEvent*);
|
||||
bool8 ShouldMewShakeGrass(struct ObjectEvent*);
|
||||
void UpdateFarawayIslandStepCounter(void);
|
||||
bool8 ObjectEventIsFarawayIslandMew(struct ObjectEvent *);
|
||||
bool8 IsMewPlayingHideAndSeek(void);
|
||||
|
||||
@@ -23,7 +23,7 @@ void DrawWholeMapView(void);
|
||||
void CurrentMapDrawMetatileAt(int x, int y);
|
||||
void sub_8089C08(s16 *a0, s16 *a1);
|
||||
void DrawDoorMetatileAt(int x, int y, u16 *arr);
|
||||
void move_tilemap_camera_to_upper_left_corner(void);
|
||||
void ResetFieldCamera(void);
|
||||
void sub_8057A58(void);
|
||||
void ResetCameraUpdateInfo(void);
|
||||
u32 InitCameraUpdateCallback(u8 a);
|
||||
|
||||
@@ -34,7 +34,7 @@ bool8 sub_8068870(u16 a);
|
||||
bool8 sub_8068894(void);
|
||||
bool8 sub_8068A64(struct MapPosition *, u16);
|
||||
u8 sub_8068F18(void);
|
||||
bool8 dive_warp(struct MapPosition *position, u16 b);
|
||||
bool8 TryDoDiveWarp(struct MapPosition *position, u16 b);
|
||||
int SetCableClubWarp(void);
|
||||
u8 TrySetDiveWarp(void);
|
||||
const u8 *GetInteractedLinkPlayerScript(struct MapPosition *position, u8 metatileBehavior, u8 direction);
|
||||
|
||||
@@ -16,7 +16,7 @@ void ReturnToFieldFromFlyMapSelect(void);
|
||||
u8 AddNewGameBirchObject(s16, s16, u8);
|
||||
void FieldEffectStop(struct Sprite *sprite, u8 id);
|
||||
u8 CreateTrainerSprite(u8 trainerSpriteID, s16 x, s16 y, u8 subpriority, u8 *buffer);
|
||||
void CreateTeleportFieldEffectTask(void);
|
||||
void FldEff_TeleportWarpOut(void);
|
||||
void FieldEffectActiveListRemove(u8 id);
|
||||
void MultiplyInvertedPaletteRGBComponents(u16, u8, u8, u8);
|
||||
void FieldEffectActiveListAdd(u8 id);
|
||||
@@ -39,12 +39,8 @@ void StartEscalatorWarp(u8 metatileBehavior, u8 priority);
|
||||
void StartLavaridgeGymB1FWarp(u8 priority);
|
||||
void StartLavaridgeGym1FWarp(u8 priority);
|
||||
|
||||
void sub_80B9C28(s16*, u8);
|
||||
void sub_80B9C54(s16*, u8);
|
||||
void sub_80B9CDC(s16*, u8);
|
||||
|
||||
void SpriteCB_PopOutOfAsh(struct Sprite*);
|
||||
void SpriteCB_LavaridgeGymWarp(struct Sprite*);
|
||||
void SpriteCB_AshPuff(struct Sprite*);
|
||||
void SpriteCB_AshLaunch(struct Sprite*);
|
||||
|
||||
void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
|
||||
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
|
||||
|
||||
@@ -8,20 +8,22 @@
|
||||
// Exported ROM declarations
|
||||
u8 CreateWarpArrowSprite(void);
|
||||
u8 sub_8155800(u8 oldSpriteId);
|
||||
void sub_81555AC(u8, u8);
|
||||
void SetSurfBobState(u8 spriteId, u8 value);
|
||||
void SetSurfBobWhileFlyingOutState(u8 spriteId, u8 value);
|
||||
void SetSurfBobWhileFishingState(u8 spriteId, u8 value, s16 data1);
|
||||
bool8 sub_8155DA0(struct ObjectEvent *);
|
||||
void sub_8155D78(struct ObjectEvent *);
|
||||
void StartAshFieldEffect(s16, s16, u16, s16);
|
||||
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 sub_8155F80(struct Sprite*);
|
||||
void UpdateRayquazaSpotlightEffect(struct Sprite*);
|
||||
void UpdateShadowFieldEffect(struct Sprite*);
|
||||
void UpdateTallGrassFieldEffect(struct Sprite*);
|
||||
void WaitFieldEffectSpriteAnim(struct Sprite*);
|
||||
void UpdateAshFieldEffect(struct Sprite*);
|
||||
void UpdateSurfBlobFieldEffect(struct Sprite*);
|
||||
void sub_8156194(struct Sprite*);
|
||||
void UpdateJumpImpactEffect(struct Sprite*);
|
||||
void UpdateFootprintsTireTracksFieldEffect(struct Sprite*);
|
||||
void UpdateSplashFieldEffect(struct Sprite*);
|
||||
void UpdateLongGrassFieldEffect(struct Sprite*);
|
||||
@@ -33,7 +35,5 @@ void UpdateBubblesFieldEffect(struct Sprite*);
|
||||
void UpdateSparkleFieldEffect(struct Sprite*);
|
||||
void SetSpriteInvisible(u8 spriteId);
|
||||
void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y);
|
||||
void sub_8155604(u8 spriteId, u8 value, s16 data1);
|
||||
void sub_81555D8(u8 spriteId, u8 value);
|
||||
|
||||
#endif //GUARD_FIELD_EFFECT_HELPERS_H
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef GUARD_FIELD_PLAYER_AVATAR_H
|
||||
#define GUARD_FIELD_PLAYER_AVATAR_H
|
||||
|
||||
void player_step(u8 a, u16 b, u16 c);
|
||||
void PlayerStep(u8 direction, u16 newKeys, u16 heldKeys);
|
||||
void ClearPlayerAvatarInfo(void);
|
||||
void SetPlayerAvatarExtraStateTransition(u8, u8);
|
||||
u8 GetPlayerAvatarGenderByGraphicsId(u8);
|
||||
@@ -39,7 +39,7 @@ void sub_808BCF4(void);
|
||||
void sub_808D074(u8);
|
||||
void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr);
|
||||
u8 GetRivalAvatarGraphicsIdByStateIdAndGender(u8, u8);
|
||||
void sub_808C114(void);
|
||||
void SetPlayerAvatarFieldMove(void);
|
||||
u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
|
||||
void SetPlayerAvatarStateMask(u8 a);
|
||||
u8 GetPlayerAvatarGraphicsIdByStateId(u8 a);
|
||||
@@ -47,9 +47,9 @@ u8 GetJumpSpecialMovementAction(u32);
|
||||
bool8 PartyHasMonWithSurf(void);
|
||||
bool8 IsPlayerFacingSurfableFishableWater(void);
|
||||
bool8 IsPlayerSurfingNorth(void);
|
||||
void sub_808C228(u8 direction);
|
||||
void SetPlayerAvatarWatering(u8 direction);
|
||||
u8 GetPlayerAvatarFlags(void);
|
||||
void sub_808B578(void);
|
||||
void UpdatePlayerAvatarTransitionState(void);
|
||||
u8 GetFRLGAvatarGraphicsIdByGender(u8);
|
||||
u8 GetRSAvatarGraphicsIdByGender(u8);
|
||||
void PlayerWheelieInPlace(u8 direction);
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef GUARD_FIELD_SCREEN_EFFECT_H
|
||||
#define GUARD_FIELD_SCREEN_EFFECT_H
|
||||
|
||||
extern const s32 gMaxFlashLevel;
|
||||
|
||||
void WarpFadeInScreen(void);
|
||||
void WarpFadeOutScreen(void);
|
||||
void FadeInFromBlack(void);
|
||||
@@ -26,7 +28,7 @@ void DoFallWarp(void);
|
||||
void DoEscalatorWarp(u8 metatileBehavior);
|
||||
void DoLavaridgeGymB1FWarp(void);
|
||||
void DoLavaridgeGym1FWarp(void);
|
||||
void DoTeleportWarp(void);
|
||||
void DoTeleportTileWarp(void);
|
||||
void DoMossdeepGymWarp(void);
|
||||
void DoPortholeWarp(void);
|
||||
void DoCableClubWarp(void);
|
||||
|
||||
@@ -30,25 +30,21 @@ struct MapConnection *sub_8088950(u8 direction, int x, int y);
|
||||
bool8 sub_80889A8(u8 direction, int x, int y, struct MapConnection *connection);
|
||||
bool8 sub_8088A0C(int x, int src_width, int dest_width, int offset);
|
||||
void save_serialize_map(void);
|
||||
void sub_8088B3C(u16 x, u16 y);
|
||||
void SetCameraFocusCoords(u16 x, u16 y);
|
||||
void InitMap(void);
|
||||
void InitMapFromSavedGame(void);
|
||||
void InitTrainerHillMap(void);
|
||||
void InitBattlePyramidMap(bool8 setPlayerPosition);
|
||||
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout);
|
||||
void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout);
|
||||
void apply_map_tileset2_palette(struct MapLayout const *mapLayout);
|
||||
void copy_map_tileset2_to_vram_2(struct MapLayout const *mapLayout);
|
||||
void copy_map_tileset1_to_vram(const struct MapLayout *);
|
||||
void copy_map_tileset2_to_vram(const struct MapLayout *);
|
||||
struct MapHeader const *const mapconnection_get_mapheader(struct MapConnection *connection);
|
||||
void CopyMapTilesetsToVram(struct MapLayout const *mapLayout);
|
||||
void LoadMapTilesetPalettes(struct MapLayout const *mapLayout);
|
||||
void LoadSecondaryTilesetPalette(struct MapLayout const *mapLayout);
|
||||
void CopySecondaryTilesetToVramUsingHeap(struct MapLayout const *mapLayout);
|
||||
void CopyPrimaryTilesetToVram(const struct MapLayout *);
|
||||
void CopySecondaryTilesetToVram(const struct MapLayout *);
|
||||
struct MapHeader const *const GetMapHeaderFromConnection(struct MapConnection *connection);
|
||||
struct MapConnection *GetConnectionAtCoords(s16 x, s16 y);
|
||||
void MapGridSetMetatileImpassabilityAt(int x, int y, bool32 impassable);
|
||||
|
||||
void SpriteCB_PokeballGlow(struct Sprite *);
|
||||
void SpriteCB_PokecenterMonitor(struct Sprite *);
|
||||
void SpriteCB_HallOfFameMonitor(struct Sprite *);
|
||||
|
||||
// field_region_map.c
|
||||
void FieldInitRegionMap(MainCallback callback);
|
||||
|
||||
|
||||
@@ -9,22 +9,13 @@ bool8 FldEff_CutGrass(void);
|
||||
void FixLongGrassMetatilesWindowTop(s16 x, s16 y);
|
||||
void FixLongGrassMetatilesWindowBottom(s16 x, s16 y);
|
||||
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo6;
|
||||
extern const struct SpritePalette gSpritePalette_CutGrass;
|
||||
extern struct MapPosition gPlayerFacingPosition;
|
||||
|
||||
// groundshake
|
||||
bool8 sub_81BE66C(void);
|
||||
void sub_81BE6AC(void);
|
||||
void sub_81BE6B8(void);
|
||||
void sub_81BE72C(void);
|
||||
void sub_81BE79C(void);
|
||||
void sub_81BE7F4(void);
|
||||
void sub_81BE994(void);
|
||||
|
||||
// escalator
|
||||
void sub_80E1558(u8 var);
|
||||
void sub_80E1570(void);
|
||||
bool8 sub_80E1584(void);
|
||||
void StartEscalator(bool8 var);
|
||||
void StopEscalator(void);
|
||||
bool8 IsEscalatorMoving(void);
|
||||
|
||||
// soft-boiled
|
||||
bool8 SetUpFieldMove_SoftBoiled(void);
|
||||
@@ -39,7 +30,7 @@ bool8 GetMapPairFadeFromType(u8 a1, u8 a2);
|
||||
|
||||
// strength
|
||||
bool8 SetUpFieldMove_Strength(void);
|
||||
bool8 sub_8145E2C(void);
|
||||
bool8 FldEff_UseStrength(void);
|
||||
|
||||
// sweet scent
|
||||
bool8 SetUpFieldMove_SweetScent(void);
|
||||
@@ -55,7 +46,7 @@ bool8 FldEff_UseDig(void);
|
||||
|
||||
// rock smash
|
||||
bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
|
||||
u8 oei_task_add(void);
|
||||
u8 CreateFieldMoveTask(void);
|
||||
bool8 SetUpFieldMove_RockSmash(void);
|
||||
bool8 FldEff_UseRockSmash(void);
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
#ifndef GUARD_FLDEFF_MISC_H
|
||||
#define GUARD_FLDEFF_MISC_H
|
||||
|
||||
void sub_80F9BCC(u16 a0, u16 a1, u8 a2);
|
||||
void sub_80F9BF4(u16 a0, u16 a1, u8 a2);
|
||||
bool8 sub_80F9C1C(void);
|
||||
bool8 sub_80F9C30(void);
|
||||
void ComputerScreenOpenEffect(u16 a0, u16 a1, u8 a2);
|
||||
void ComputerScreenCloseEffect(u16 a0, u16 a1, u8 a2);
|
||||
bool8 IsComputerScreenOpenEffectActive(void);
|
||||
bool8 IsComputerScreenCloseEffectActive(void);
|
||||
bool8 SetUpFieldMove_SecretPower(void);
|
||||
bool8 FldEff_UseSecretPowerCave(void);
|
||||
bool8 FldEff_SecretPowerCave(void);
|
||||
@@ -15,22 +15,22 @@ bool8 FldEff_SecretPowerShrub(void);
|
||||
bool8 FldEff_SecretBasePCTurnOn(void);
|
||||
void DoSecretBasePCTurnOffEffect(void);
|
||||
void PopSecretBaseBalloon(s16 metatileId, s16 x, s16 y);
|
||||
bool8 FldEff_NopA6FC(void);
|
||||
bool8 FldEff_NopA700(void);
|
||||
bool8 FldEff_Nop47(void);
|
||||
bool8 FldEff_Nop48(void);
|
||||
void ShatterSecretBaseBreakableDoor(s16 x, s16 y);
|
||||
void PlaySecretBaseMusicNoteMatSound(s16 metatileId);
|
||||
void DoSecretBaseGlitterMatSparkle(void);
|
||||
bool8 FldEff_SandPillar(void);
|
||||
void InteractWithShieldOrTVDecoration(void);
|
||||
bool8 sub_80FADE4(u16 arg0, u8 arg1);
|
||||
bool8 IsLargeBreakableDecoration(u16 arg0, u8 arg1);
|
||||
void FldEffPoison_Start(void);
|
||||
bool32 FldEffPoison_IsActive(void);
|
||||
void DoWateringBerryTreeAnim(void);
|
||||
u8 CreateRecordMixingSprite(void);
|
||||
void DestroyRecordMixingSprite(void);
|
||||
u8 CreateRecordMixingLights(void);
|
||||
void DestroyRecordMixingLights(void);
|
||||
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo7;
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo8;
|
||||
extern const struct SpritePalette gSpritePalette_SecretPower_Cave;
|
||||
extern const struct SpritePalette gSpritePalette_SecretPower_Plant;
|
||||
extern const struct SpritePalette gFieldEffectObjectPaletteInfo9;
|
||||
extern const u16 gTilesetPalettes_SecretBase[][16];
|
||||
|
||||
|
||||
@@ -247,14 +247,14 @@ enum {
|
||||
PLAYER_AVATAR_STATE_WATERING,
|
||||
};
|
||||
|
||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << PLAYER_AVATAR_STATE_NORMAL)
|
||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << PLAYER_AVATAR_STATE_MACH_BIKE)
|
||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << PLAYER_AVATAR_STATE_ACRO_BIKE)
|
||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << PLAYER_AVATAR_STATE_SURFING)
|
||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
|
||||
#define PLAYER_AVATAR_FLAG_5 (1 << PLAYER_AVATAR_STATE_FIELD_MOVE)
|
||||
#define PLAYER_AVATAR_FLAG_6 (1 << PLAYER_AVATAR_STATE_FISHING)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING)
|
||||
#define PLAYER_AVATAR_FLAG_ON_FOOT (1 << 0)
|
||||
#define PLAYER_AVATAR_FLAG_MACH_BIKE (1 << 1)
|
||||
#define PLAYER_AVATAR_FLAG_ACRO_BIKE (1 << 2)
|
||||
#define PLAYER_AVATAR_FLAG_SURFING (1 << 3)
|
||||
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << 4)
|
||||
#define PLAYER_AVATAR_FLAG_5 (1 << 5)
|
||||
#define PLAYER_AVATAR_FLAG_FORCED_MOVE (1 << 6)
|
||||
#define PLAYER_AVATAR_FLAG_DASH (1 << 7)
|
||||
|
||||
enum
|
||||
{
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "config.h" // we need to define config before gba headers as print stuff needs the functions nulled before defines.
|
||||
#include "gba/gba.h"
|
||||
#include "constants/global.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/vars.h"
|
||||
|
||||
// Prevent cross-jump optimization.
|
||||
#define BLOCK_CROSS_JUMP asm("");
|
||||
@@ -100,6 +102,7 @@
|
||||
#define TEST_BUTTON(field, button) ({(field) & (button);})
|
||||
#define JOY_NEW(button) TEST_BUTTON(gMain.newKeys, button)
|
||||
#define JOY_HELD(button) TEST_BUTTON(gMain.heldKeys, button)
|
||||
#define JOY_REPEAT(button) TEST_BUTTON(gMain.newAndRepeatedKeys, button)
|
||||
|
||||
#define S16TOPOSFLOAT(val) \
|
||||
({ \
|
||||
@@ -109,6 +112,11 @@
|
||||
f; \
|
||||
})
|
||||
|
||||
#define ROUND_BITS_TO_BYTES(numBits)(((numBits) / 8) + (((numBits) % 8) ? 1 : 0))
|
||||
|
||||
#define DEX_FLAGS_NO (ROUND_BITS_TO_BYTES(POKEMON_SLOTS_NUMBER))
|
||||
#define NUM_FLAG_BYTES (ROUND_BITS_TO_BYTES(FLAGS_COUNT))
|
||||
|
||||
struct Coords8
|
||||
{
|
||||
s8 x;
|
||||
@@ -153,8 +161,6 @@ struct Time
|
||||
/*0x04*/ s8 seconds;
|
||||
};
|
||||
|
||||
#define DEX_FLAGS_NO ((POKEMON_SLOTS_NUMBER / 8) + ((POKEMON_SLOTS_NUMBER % 8) ? 1 : 0))
|
||||
|
||||
struct Pokedex
|
||||
{
|
||||
/*0x00*/ u8 order;
|
||||
@@ -923,7 +929,7 @@ struct SaveBlock1
|
||||
/*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES];
|
||||
/*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
|
||||
/*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT];
|
||||
/*0x1270*/ u8 flags[FLAGS_COUNT];
|
||||
/*0x1270*/ u8 flags[NUM_FLAG_BYTES];
|
||||
/*0x139C*/ u16 vars[VARS_COUNT];
|
||||
/*0x159C*/ u32 gameStats[NUM_GAME_STATS];
|
||||
/*0x169C*/ struct BerryTree berryTrees[BERRY_TREES_COUNT];
|
||||
|
||||
@@ -4069,16 +4069,16 @@ extern const u8 gHealthboxElementsGfxTable[][32];
|
||||
|
||||
extern const u16 gNamingScreenMenu_Pal[];
|
||||
extern const u32 gNamingScreenMenu_Gfx[];
|
||||
extern const u32 gUnknown_08DD4544[];
|
||||
extern const u8 gUnknown_08DD4620[];
|
||||
extern const u8 gUnknown_08DD46E0[];
|
||||
extern const u8 gUnknown_08DD47A0[];
|
||||
extern const u32 gNamingScreenBackground_Tilemap[];
|
||||
extern const u8 gNamingScreenKeyboardUpper_Tilemap[];
|
||||
extern const u8 gNamingScreenKeyboardLower_Tilemap[];
|
||||
extern const u8 gNamingScreenKeyboardSymbols_Tilemap[];
|
||||
extern const u8 gNamingScreenRWindow_Gfx[];
|
||||
extern const u8 gNamingScreenKeyboardButton_Gfx[];
|
||||
extern const u8 gNamingScreenPageButton_Gfx[];
|
||||
extern const u8 gNamingScreenROptions_Gfx[];
|
||||
extern const u8 gNamingScreenCursor_Gfx[];
|
||||
extern const u8 gNamingScreenRightPointingTriangleTiles[];
|
||||
extern const u8 gNamingScreenUnderscoreTiles[];
|
||||
extern const u8 gNamingScreenInputArrow_Gfx[];
|
||||
extern const u8 gNamingScreenUnderscore_Gfx[];
|
||||
|
||||
extern const u32 gUnknown_08D9BA44[];
|
||||
|
||||
@@ -4824,7 +4824,7 @@ extern const u32 gUnknown_08D91DB8[];
|
||||
extern const u32 gUnknown_08D927EC[];
|
||||
|
||||
// Slot Machine
|
||||
extern const u32 gSlotMachineReelTime_Gfx[];
|
||||
extern const u32 gSlotMachineDigitalDisplay_Gfx[];
|
||||
extern const u8 gSlotMachineReelTimeNumber0[];
|
||||
extern const u8 gSlotMachineReelTimeNumber1[];
|
||||
extern const u8 gSlotMachineReelTimeNumber2[];
|
||||
@@ -4832,15 +4832,15 @@ extern const u8 gSlotMachineReelTimeNumber3[];
|
||||
extern const u8 gSlotMachineReelTimeNumber4[];
|
||||
extern const u8 gSlotMachineReelTimeNumber5[];
|
||||
extern const u8 gSlotMachineReelTimeShadow[];
|
||||
extern const u8 gUnknown_08DD1A18[];
|
||||
extern const u8 gSlotMachineReelTimeLargeBolt0[];
|
||||
extern const u8 gSlotMachineReelTimeLargeBolt1[];
|
||||
extern const u8 gSlotMachineReelTimeNumberGap_Gfx[];
|
||||
extern const u8 gSlotMachineReelTimeBolt0[];
|
||||
extern const u8 gSlotMachineReelTimeBolt1[];
|
||||
extern const u8 gSlotMachineReelTimePikaAura[];
|
||||
extern const u8 gSlotMachineReelTimeExplosion0[];
|
||||
extern const u8 gSlotMachineReelTimeExplosion1[];
|
||||
extern const u8 gSlotMachineReelTimeDuck[];
|
||||
extern const u8 gSlotMachineReelTimeSmoke[];
|
||||
extern const u8 gSlotMachineReelTimeBolt[];
|
||||
extern const u8 gSlotMachinePikaPowerBolt[];
|
||||
extern const u8 gSlotMachineReelSymbol1Tiles[];
|
||||
extern const u8 gSlotMachineReelSymbol2Tiles[];
|
||||
extern const u8 gSlotMachineReelSymbol3Tiles[];
|
||||
@@ -4858,19 +4858,18 @@ extern const u8 gSlotMachineNumber6Tiles[];
|
||||
extern const u8 gSlotMachineNumber7Tiles[];
|
||||
extern const u8 gSlotMachineNumber8Tiles[];
|
||||
extern const u8 gSlotMachineNumber9Tiles[];
|
||||
extern const u8 gUnknown_08DD19F8[];
|
||||
extern const u8 gSlotMachineReelBackground_Tilemap[];
|
||||
extern const u32 gSlotMachineMenu_Gfx[];
|
||||
extern const u16 gSlotMachineMenu_Tilemap[];
|
||||
extern const u16 gUnknown_08DCEC70[];
|
||||
extern const u16 gSlotMachineInfoBox_Tilemap[];
|
||||
extern const u16 gSlotMachineMenu_Pal[];
|
||||
extern const u16 gUnknown_08DCF230[];
|
||||
extern const u16 gUnknown_08DCF170[];
|
||||
extern const u16 gUnknown_08DCF1B0[];
|
||||
extern const u16 gSlotMachineReelTime_Pal[];
|
||||
extern const u16 gUnknown_08DCF1F0[];
|
||||
extern const u16 gUnknown_08DCF210[];
|
||||
extern const u16 gUnknown_08DCF230[];
|
||||
extern const u16 gUnknown_08DCF190[];
|
||||
extern const u16 gSlotMachineReelSymbols_Pal[];
|
||||
extern const u16 gSlotMachineReelTimeMisc_Pal[];
|
||||
extern const u16 gSlotMachineReelTimeMachine_Pal[];
|
||||
extern const u16 gSlotMachineMisc_Pal[];
|
||||
extern const u16 gSlotMachineReelTimeExplosion_Pal[];
|
||||
extern const u16 gSlotMachineDigitalDisplay_Pal[];
|
||||
extern const u16 gSlotMachineReelTimePikachu_Pal[];
|
||||
|
||||
extern const u32 gBattleAnimBgTilemap_Sandstorm[];
|
||||
extern const u32 gBattleAnimBgImage_Sandstorm[];
|
||||
@@ -4919,13 +4918,13 @@ extern const u32 gPartyMenuPokeball_Pal[];
|
||||
extern const u32 gStatusPal_Icons[];
|
||||
|
||||
// Roulette
|
||||
extern const u32 gRouletteMenuTiles[];
|
||||
extern const u32 gRouletteWheelTiles[];
|
||||
extern const u32 gRouletteMenu_Gfx[];
|
||||
extern const u32 gRouletteWheel_Gfx[];
|
||||
extern const u32 gRouletteCenter_Gfx[];
|
||||
extern const u32 gRouletteHeadersTiles[];
|
||||
extern const u32 gRouletteCreditTiles[];
|
||||
extern const u32 gRouletteNumbersTiles[];
|
||||
extern const u32 gRouletteMultiplierTiles[];
|
||||
extern const u32 gRouletteHeaders_Gfx[];
|
||||
extern const u32 gRouletteCredit_Gfx[];
|
||||
extern const u32 gRouletteNumbers_Gfx[];
|
||||
extern const u32 gRouletteMultiplier_Gfx[];
|
||||
|
||||
// Contest util
|
||||
extern const u32 gContestResults_Gfx[];
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#ifndef GUARD_LIBGCMMULTIBOOT_H
|
||||
#ifndef GUARD_LIBGCNMULTIBOOT_H
|
||||
#define GUARD_LIBGCNMULTIBOOT_H
|
||||
|
||||
struct GcmbStruct
|
||||
|
||||
@@ -30,7 +30,7 @@ extern const u16 gUnknown_0860F074[];
|
||||
|
||||
void FreeAllOverworldWindowBuffers(void);
|
||||
void InitStandardTextBoxWindows(void);
|
||||
void sub_8197200(void);
|
||||
void InitTextBoxGfxAndPrinters(void);
|
||||
u16 RunTextPrintersAndIsPrinter0Active(void);
|
||||
void LoadMessageBoxAndBorderGfx(void);
|
||||
void DrawDialogueFrame(u8 windowId, bool8 copyToVram);
|
||||
@@ -64,8 +64,8 @@ void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirs
|
||||
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
|
||||
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
|
||||
s8 ProcessMenuInput_other(void);
|
||||
void do_scheduled_bg_tilemap_copies_to_vram(void);
|
||||
void clear_scheduled_bg_copies_to_vram(void);
|
||||
void DoScheduledBgTilemapCopiesToVram(void);
|
||||
void ClearScheduledBgCopiesToVram(void);
|
||||
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
|
||||
void DrawDialogFrameWithCustomTileAndPalette(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
|
||||
void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
|
||||
|
||||
@@ -3,91 +3,14 @@
|
||||
|
||||
#include "main.h"
|
||||
|
||||
#define KBEVENT_NONE 0
|
||||
#define KBEVENT_PRESSED_A 5
|
||||
#define KBEVENT_PRESSED_B 6
|
||||
#define KBEVENT_PRESSED_SELECT 8
|
||||
#define KBEVENT_PRESSED_START 9
|
||||
|
||||
#define KBROW_COUNT 4
|
||||
|
||||
enum
|
||||
{
|
||||
KBPAGE_LETTERS_LOWER,
|
||||
KBPAGE_LETTERS_UPPER,
|
||||
KBPAGE_SYMBOLS,
|
||||
KBPAGE_COUNT,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
enum {
|
||||
NAMING_SCREEN_PLAYER,
|
||||
NAMING_SCREEN_BOX,
|
||||
NAMING_SCREEN_CAUGHT_MON,
|
||||
NAMING_SCREEN_3,
|
||||
NAMING_SCREEN_NICKNAME,
|
||||
NAMING_SCREEN_WALDA,
|
||||
};
|
||||
|
||||
struct NamingScreenTemplate
|
||||
{
|
||||
u8 copyExistingString;
|
||||
u8 maxChars;
|
||||
u8 iconFunction;
|
||||
u8 addGenderIcon;
|
||||
u8 initialPage;
|
||||
u8 unused;
|
||||
const u8 *title;
|
||||
};
|
||||
|
||||
struct NamingScreenData {
|
||||
/*0x0*/ u8 tilemapBuffer1[0x800];
|
||||
/*0x800*/ u8 tilemapBuffer2[0x800];
|
||||
/*0x800*/ u8 tilemapBuffer3[0x800];
|
||||
/*0x1800*/ u8 textBuffer[0x10];
|
||||
/*0x1810*/ u8 tileBuffer[0x600];
|
||||
/*0x1E10*/ u8 state;
|
||||
/*0x1E11*/ u8 windows[5];
|
||||
/*0x1E16*/ u16 inputCharBaseXPos;
|
||||
/*0x1E18*/ u16 bg1vOffset;
|
||||
/*0x1E1A*/ u16 bg2vOffset;
|
||||
/*0x1E1C*/ u16 bg1Priority;
|
||||
/*0x1E1E*/ u16 bg2Priority;
|
||||
/*0x1E20*/ u8 bgToReveal;
|
||||
/*0x1E21*/ u8 bgToHide;
|
||||
/*0x1E22*/ u8 currentPage;
|
||||
/*0x1E23*/ u8 cursorSpriteId;
|
||||
/*0x1E24*/ u8 selectBtnFrameSpriteId;
|
||||
/*0x1E25*/ u8 keyRepeatStartDelayCopy;
|
||||
/*0x1E28*/ const struct NamingScreenTemplate *template;
|
||||
/*0x1E2C*/ u8 templateNum;
|
||||
/*0x1E30*/ u8 *destBuffer;
|
||||
/*0x1E34*/ u16 monSpecies;
|
||||
/*0x1E36*/ u16 monGender;
|
||||
/*0x1E38*/ u32 monPersonality;
|
||||
/*0x1E3C*/ MainCallback returnCallback;
|
||||
};
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
MAIN_STATE_BEGIN_FADE_IN,
|
||||
MAIN_STATE_WAIT_FADE_IN,
|
||||
MAIN_STATE_HANDLE_INPUT,
|
||||
MAIN_STATE_MOVE_TO_OK_BUTTON,
|
||||
MAIN_STATE_START_PAGE_SWAP,
|
||||
MAIN_STATE_WAIT_PAGE_SWAP,
|
||||
MAIN_STATE_6,
|
||||
MAIN_STATE_UPDATE_SENT_TO_PC_MESSAGE,
|
||||
MAIN_STATE_BEGIN_FADE_OUT,
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
INPUT_STATE_DISABLED,
|
||||
INPUT_STATE_ENABLED,
|
||||
INPUT_STATE_2,
|
||||
};
|
||||
|
||||
void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback);
|
||||
|
||||
#endif // GUARD_NAMING_SCREEN_H
|
||||
|
||||
@@ -24,6 +24,8 @@
|
||||
#define MOVEMENT_MODE_FROZEN 1
|
||||
#define MOVEMENT_MODE_SCRIPTED 2
|
||||
|
||||
#define SKIP_OBJECT_EVENT_LOAD 1
|
||||
|
||||
struct InitialPlayerAvatarState
|
||||
{
|
||||
u8 transitionFlags;
|
||||
@@ -99,8 +101,7 @@ void SetDefaultFlashLevel(void);
|
||||
void Overworld_SetFlashLevel(s32 flashLevel);
|
||||
u8 Overworld_GetFlashLevel(void);
|
||||
void SetCurrentMapLayout(u16 mapLayoutId);
|
||||
void sub_8085540(u8 var);
|
||||
u8 sub_808554C(void);
|
||||
void SetObjectEventLoadFlag(u8 var);
|
||||
u16 GetLocationMusic(struct WarpData *warp);
|
||||
u16 GetCurrLocationDefaultMusic(void);
|
||||
u16 GetWarpDestinationMusic(void);
|
||||
@@ -135,11 +136,9 @@ void SetUnusedCallback(void *a0);
|
||||
void CB2_NewGame(void);
|
||||
void CB2_WhiteOut(void);
|
||||
void CB2_LoadMap(void);
|
||||
void sub_8086024(void);
|
||||
void CB2_ReturnToFieldContestHall(void);
|
||||
void CB2_ReturnToFieldCableClub(void);
|
||||
void CB2_ReturnToField(void);
|
||||
void CB2_ReturnToFieldLocal(void);
|
||||
void CB2_ReturnToFieldLink(void);
|
||||
void CB2_ReturnToFieldFromMultiplayer(void);
|
||||
void CB2_ReturnToFieldWithOpenMenu(void);
|
||||
void CB2_ReturnToFieldContinueScript(void);
|
||||
|
||||
83
include/palette_util.h
Normal file
83
include/palette_util.h
Normal file
@@ -0,0 +1,83 @@
|
||||
#ifndef GUARD_PALETTE_UTIL_H
|
||||
#define GUARD_PALETTE_UTIL_H
|
||||
|
||||
struct PulseBlendSettings
|
||||
{
|
||||
u16 blendColor;
|
||||
u16 paletteOffset;
|
||||
u8 numColors;
|
||||
u8 delay;
|
||||
u8 numFadeCycles;
|
||||
s8 maxBlendCoeff:4;
|
||||
s8 fadeType:2;
|
||||
s8 restorePaletteOnUnload:1;
|
||||
s8 unk7_7:1;
|
||||
};
|
||||
|
||||
struct PulseBlendPalette
|
||||
{
|
||||
u8 paletteSelector;
|
||||
u8 blendCoeff:4;
|
||||
u8 fadeDirection:1;
|
||||
s8 unk1_5:1;
|
||||
s8 available:1;
|
||||
u32 inUse:1;
|
||||
u8 delayCounter;
|
||||
u8 fadeCycleCounter;
|
||||
struct PulseBlendSettings pulseBlendSettings;
|
||||
};
|
||||
|
||||
struct PulseBlend
|
||||
{
|
||||
u16 usedPulseBlendPalettes;
|
||||
struct PulseBlendPalette pulseBlendPalettes[16];
|
||||
};
|
||||
|
||||
|
||||
#define FLASHUTIL_USE_EXISTING_COLOR (1 << 15)
|
||||
|
||||
struct RouletteFlashSettings
|
||||
{
|
||||
u16 color;
|
||||
u16 paletteOffset;
|
||||
u8 numColors;
|
||||
u8 delay;
|
||||
s8 unk6; // Set but never used
|
||||
s8 numFadeCycles:5;
|
||||
s8 unk7_5:2; // Set but never used
|
||||
s8 colorDeltaDir:1;
|
||||
};
|
||||
|
||||
struct RouletteFlashPalette
|
||||
{
|
||||
u8 state:7;
|
||||
bool8 available:1;
|
||||
u8 delayCounter;
|
||||
s8 fadeCycleCounter;
|
||||
s8 colorDelta;
|
||||
struct RouletteFlashSettings settings;
|
||||
};
|
||||
|
||||
struct RouletteFlashUtil
|
||||
{
|
||||
u8 enabled;
|
||||
u8 unused;
|
||||
u16 flags;
|
||||
struct RouletteFlashPalette palettes[16];
|
||||
};
|
||||
|
||||
int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *);
|
||||
void InitPulseBlend(struct PulseBlend *);
|
||||
void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
|
||||
void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
|
||||
void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
|
||||
void UpdatePulseBlend(struct PulseBlend *);
|
||||
void ClearTilemapRect(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
|
||||
void SetTilemapRect(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
|
||||
void RouletteFlash_Run(struct RouletteFlashUtil *r0);
|
||||
void RouletteFlash_Reset(struct RouletteFlashUtil *r0);
|
||||
u8 RouletteFlash_Add(struct RouletteFlashUtil *r0, u8 r1, const struct RouletteFlashSettings *r2);
|
||||
void RouletteFlash_Stop(struct RouletteFlashUtil *r0, u16 r1);
|
||||
void RouletteFlash_Enable(struct RouletteFlashUtil *r0, u16 r1);
|
||||
|
||||
#endif // GUARD_PALETTE_UTIL_H
|
||||
@@ -1,6 +1,9 @@
|
||||
#ifndef GUARD_POKEBLOCK_H
|
||||
#define GUARD_POKEBLOCK_H
|
||||
|
||||
#include "constants/berry.h"
|
||||
#include "constants/pokemon.h"
|
||||
|
||||
#define GFX_TAG_POKEBLOCK 14818
|
||||
#define GFX_TAG_POKEBLOCK_CASE 14800
|
||||
|
||||
@@ -43,7 +46,7 @@ void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void
|
||||
void CB2_PreparePokeblockFeedScene(void);
|
||||
|
||||
// pokeblock
|
||||
extern const s8 gPokeblockFlavorCompatibilityTable[];
|
||||
extern const s8 gPokeblockFlavorCompatibilityTable[NUM_NATURES * FLAVOR_COUNT];
|
||||
extern const u8 *const gPokeblockNames[];
|
||||
extern const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet;
|
||||
extern const struct CompressedSpritePalette gPokeblockCase_SpritePal;
|
||||
|
||||
@@ -254,7 +254,7 @@ extern const u16 *const gLevelUpLearnsets[];
|
||||
extern const u8 gPPUpGetMask[];
|
||||
extern const u8 gPPUpSetMask[];
|
||||
extern const u8 gPPUpAddMask[];
|
||||
extern const u8 gStatStageRatios[][2];
|
||||
extern const u8 gStatStageRatios[MAX_STAT_STAGE + 1][2];
|
||||
extern const u16 gLinkPlayerFacilityClasses[];
|
||||
extern const struct SpriteTemplate gUnknown_08329D98[];
|
||||
extern const s8 gNatureStatTable[][5];
|
||||
|
||||
@@ -1,34 +1,6 @@
|
||||
#ifndef GUARD_ROULETTE_H
|
||||
#define GUARD_ROULETTE_H
|
||||
|
||||
struct UnkStruct1
|
||||
{
|
||||
u16 var00;
|
||||
u16 var02;
|
||||
u8 var04;
|
||||
u8 var05;
|
||||
u8 var06;
|
||||
s8 var07_0:5;
|
||||
s8 var07_5:2;
|
||||
s8 var07_7:1;
|
||||
};
|
||||
|
||||
struct UnkStruct3
|
||||
{
|
||||
u8 var00_0:7;
|
||||
u8 var00_7:1;
|
||||
u8 var01;
|
||||
s8 var02;
|
||||
s8 var03;
|
||||
struct UnkStruct1 var04;
|
||||
};
|
||||
|
||||
struct UnkStruct0
|
||||
{
|
||||
u8 var00;
|
||||
u8 var01;
|
||||
u16 var02; //flag for each UnkStruct3
|
||||
struct UnkStruct3 var04[0x10];
|
||||
};
|
||||
void PlayRoulette(void);
|
||||
|
||||
#endif // GUARD_ROULETTE_H
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
#ifndef GUARD_ROULETTE_UTIL_H
|
||||
#define GUARD_ROULETTE_UTIL_H
|
||||
|
||||
#include "roulette.h"
|
||||
|
||||
struct PulseBlendSettings
|
||||
{
|
||||
u16 blendColor;
|
||||
u16 paletteOffset;
|
||||
u8 numColors;
|
||||
u8 delay;
|
||||
u8 numFadeCycles;
|
||||
s8 maxBlendCoeff:4;
|
||||
s8 fadeType:2;
|
||||
s8 restorePaletteOnUnload:1;
|
||||
s8 unk7_7:1;
|
||||
};
|
||||
|
||||
struct PulseBlendPalette
|
||||
{
|
||||
u8 paletteSelector;
|
||||
u8 blendCoeff:4;
|
||||
u8 fadeDirection:1;
|
||||
s8 unk1_5:1;
|
||||
s8 available:1;
|
||||
u32 inUse:1;
|
||||
u8 delayCounter;
|
||||
u8 fadeCycleCounter;
|
||||
struct PulseBlendSettings pulseBlendSettings;
|
||||
};
|
||||
|
||||
struct PulseBlend
|
||||
{
|
||||
u16 usedPulseBlendPalettes;
|
||||
struct PulseBlendPalette pulseBlendPalettes[16];
|
||||
};
|
||||
|
||||
int InitPulseBlendPaletteSettings(struct PulseBlend *, const struct PulseBlendSettings *);
|
||||
void InitPulseBlend(struct PulseBlend *);
|
||||
void MarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
|
||||
void UnloadUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
|
||||
void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
|
||||
void UpdatePulseBlend(struct PulseBlend *);
|
||||
void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
|
||||
void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
|
||||
void task_tutorial_controls_fadein(struct UnkStruct0 *r0);
|
||||
void sub_8151678(struct UnkStruct0 *r0);
|
||||
u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2);
|
||||
void sub_8151A9C(struct UnkStruct0 *r0, u16 r1);
|
||||
void sub_8151A48(struct UnkStruct0 *r0, u16 r1);
|
||||
|
||||
#endif // GUARD_ROULETTE_UTIL_H
|
||||
@@ -5,6 +5,7 @@ extern const u16 gBirchBagGrassPal[2][16];
|
||||
extern const u32 gBirchBagTilemap[];
|
||||
extern const u32 gBirchGrassTilemap[];
|
||||
extern const u32 gBirchHelpGfx[];
|
||||
extern const u32 gPokeballSelection_Gfx[];
|
||||
|
||||
u16 GetStarterPokemon(u16 chosenStarterId);
|
||||
void CB2_ChooseStarter(void);
|
||||
|
||||
@@ -84,10 +84,29 @@ extern const u8 gText_SoSo[];
|
||||
extern const u8 gText_Bad[];
|
||||
extern const u8 gText_TheWorst[];
|
||||
|
||||
extern const u8 Roulette_Text_ControlsInstruction[];
|
||||
extern const u8 Roulette_Text_KeepPlaying[];
|
||||
extern const u8 Roulette_Text_Jackpot[];
|
||||
extern const u8 Roulette_Text_ItsAHit[];
|
||||
extern const u8 Roulette_Text_NothingDoing[];
|
||||
extern const u8 Roulette_Text_YouveWonXCoins[];
|
||||
extern const u8 Roulette_Text_BoardWillBeCleared[];
|
||||
extern const u8 Roulette_Text_CoinCaseIsFull[];
|
||||
extern const u8 Roulette_Text_NoCoinsLeft[];
|
||||
extern const u8 Roulette_Text_PlayMinimumWagerIsX[];
|
||||
extern const u8 Roulette_Text_SpecialRateTable[];
|
||||
extern const u8 Roulette_Text_NotEnoughCoins[];
|
||||
|
||||
extern const u8 gText_Slots[];
|
||||
extern const u8 gText_Roulette[];
|
||||
extern const u8 gText_Jackpot[];
|
||||
|
||||
extern const u8 gText_YouDontHaveThreeCoins[];
|
||||
extern const u8 gText_QuitTheGame[];
|
||||
extern const u8 gText_YouveGot9999Coins[];
|
||||
extern const u8 gText_YouveRunOutOfCoins[];
|
||||
extern const u8 gText_ReelTimeHelp[];
|
||||
|
||||
extern const u8 gText_First[];
|
||||
extern const u8 gText_Second[];
|
||||
extern const u8 gText_Third[];
|
||||
@@ -374,6 +393,9 @@ extern const u8 gText_DefaultNameTerra[];
|
||||
extern const u8 gText_DefaultNameLucy[];
|
||||
extern const u8 gText_DefaultNameHalie[];
|
||||
|
||||
extern const u8 gText_BirchInTrouble[];
|
||||
extern const u8 gText_ConfirmStarterChoice[];
|
||||
|
||||
// mystery event menu text
|
||||
extern const u8 gText_EventSafelyLoaded[];
|
||||
extern const u8 gText_LoadErrorEndingSession[];
|
||||
|
||||
@@ -20,7 +20,7 @@ void LoadUserWindowBorderGfx_(u8 windowId, u16 destOffset, u8 palOffset);
|
||||
void DrawTextBorderOuter(u8 windowId, u16 tileNum, u8 palNum);
|
||||
void DrawTextBorderInner(u8 windowId, u16 tileNum, u8 palNum);
|
||||
void rbox_fill_rectangle(u8 windowId);
|
||||
const u16 *stdpal_get(u8 id);
|
||||
const u16 *GetTextWindowPalette(u8 id);
|
||||
const u16 *GetOverworldTextboxPalettePtr(void);
|
||||
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ void FillHillTrainerParty(void);
|
||||
void FillHillTrainersParties(void);
|
||||
u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId);
|
||||
u8 GetNumFloorsInTrainerHillChallenge(void);
|
||||
void sub_81D64C0(void);
|
||||
bool32 sub_81D6534(void);
|
||||
void TryLoadTrainerHillEReaderPalette(void);
|
||||
bool32 OnTrainerHillEReaderChallengeFloor(void);
|
||||
|
||||
#endif // GUARD_TRAINER_HILL_H
|
||||
|
||||
@@ -30,12 +30,12 @@ void AlertTVThatPlayerPlayedSlotMachine(u16 nCoinsSpent);
|
||||
void AlertTVThatPlayerPlayedRoulette(u16 nCoinsSpent);
|
||||
void AlertTVOfNewCoinTotal(u16 nCoinsPaidOut);
|
||||
void TryPutSecretBaseSecretsOnAir(void);
|
||||
void sub_80EDB44(void);
|
||||
void TryPutTodaysRivalTrainerOnAir(void);
|
||||
void sub_80EDC60(const u16 *words);
|
||||
void sub_80EDA80(void);
|
||||
void ReceivePokeNewsData(void *src, u32 size, u8 masterIdx);
|
||||
void sub_80F0BB8(void);
|
||||
void sub_80ED950(bool8 flag);
|
||||
void RecordFishingAttemptForTV(bool8 caughtFish);
|
||||
void IncrementDailySlotsUses(void);
|
||||
void IncrementDailyRouletteUses(void);
|
||||
void IncrementDailyWildBattles(void);
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
#ifndef GUARD_UNK_TRANSITION_H
|
||||
#define GUARD_UNK_TRANSITION_H
|
||||
|
||||
void Phase2Task_34(u8 taskId);
|
||||
void Phase2Task_35(u8 taskId);
|
||||
void Phase2Task_36(u8 taskId);
|
||||
void Phase2Task_37(u8 taskId);
|
||||
void Phase2Task_38(u8 taskId);
|
||||
void Phase2Task_39(u8 taskId);
|
||||
void Phase2Task_40(u8 taskId);
|
||||
void Phase2Task_41(u8 taskId);
|
||||
|
||||
#endif // GUARD_UNK_TRANSITION_H
|
||||
Reference in New Issue
Block a user