diff options
Diffstat (limited to 'constants')
39 files changed, 2964 insertions, 2197 deletions
diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm index ea052aabb..e7c844c12 100644 --- a/constants/animation_constants.asm +++ b/constants/animation_constants.asm @@ -1,3 +1,4 @@ +; battle_anim_struct members (see macros/wram.asm) const_def const BATTLEANIMSTRUCT_INDEX const BATTLEANIMSTRUCT_01 @@ -25,6 +26,7 @@ const BATTLEANIMSTRUCT_17 BATTLEANIMSTRUCT_LENGTH EQU const_value +; BattleAnimObjects indexes (see battle/objects/data.asm) const_def const ANIM_OBJ_00 const ANIM_OBJ_01 @@ -215,6 +217,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const ANIM_OBJ_BA const ANIM_OBJ_BB +; DoBattleAnimFrame arguments (see battle/objects/functions.asm) const_def const BATTLEANIMFUNC_00 const BATTLEANIMFUNC_01 @@ -297,6 +300,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const BATTLEANIMFUNC_4E const BATTLEANIMFUNC_4F +; BattleAnimFrameData indexes (see battle/objects/framesets.asm) const_def const BATTLEANIMFRAMESET_00 const BATTLEANIMFRAMESET_01 @@ -484,6 +488,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const BATTLEANIMFRAMESET_B7 const BATTLEANIMFRAMESET_B8 +; BattleAnimOAMData indexes (see battle/objects/oam.asm) const_def const BATTLEANIMOAMSET_00 const BATTLEANIMOAMSET_01 @@ -702,6 +707,7 @@ BATTLEANIMSTRUCT_LENGTH EQU const_value const BATTLEANIMOAMSET_D6 const BATTLEANIMOAMSET_D7 +; BattleBGEffects indexes (see battle/bg_effects.asm) const_value SET 1 const ANIM_BG_FLASH_INVERTED const ANIM_BG_FLASH_WHITE @@ -757,17 +763,19 @@ const_value SET 1 const ANIM_BG_WOBBLE_MON const ANIM_BG_35 +; PokeAnims indexes (see gfx/pics/animation.asm) const_def - const ANIM_MON_SLOW ; 0 - const ANIM_MON_NORMAL ; 1 - const ANIM_MON_MENU ; 2 - const ANIM_MON_TRADE ; 3 - const ANIM_MON_EVOLVE ; 4 - const ANIM_MON_HATCH ; 5 - const ANIM_MON_UNUSED ; 6 - const ANIM_MON_EGG1 ; 7 - const ANIM_MON_EGG2 ; 8 + const ANIM_MON_SLOW + const ANIM_MON_NORMAL + const ANIM_MON_MENU + const ANIM_MON_TRADE + const ANIM_MON_EVOLVE + const ANIM_MON_HATCH + const ANIM_MON_UNUSED + const ANIM_MON_EGG1 + const ANIM_MON_EGG2 +; AnimObjGFX indexes (see battle/objects/gfx_headers.asm) const_value SET 1 const ANIM_GFX_HIT const ANIM_GFX_CUT @@ -809,8 +817,31 @@ const_value SET 1 const ANIM_GFX_WAVE const ANIM_GFX_AEROBLAST +; battle_bg_effect struct members (see macros/wram.asm) const_def const BG_EFFECT_STRUCT_FUNCTION const BG_EFFECT_STRUCT_JT_INDEX const BG_EFFECT_STRUCT_BATTLE_TURN const BG_EFFECT_STRUCT_03 + +; battle palettes + const_def + const PAL_BATTLE_BG_PLAYER ; 0 + const PAL_BATTLE_BG_ENEMY ; 1 + const PAL_BATTLE_BG_ENEMY_HP ; 2 + const PAL_BATTLE_BG_PLAYER_HP ; 3 + const PAL_BATTLE_BG_EXP ; 4 + const PAL_BATTLE_BG_5 ; 5 + const PAL_BATTLE_BG_6 ; 6 + const PAL_BATTLE_BG_TEXT ; 7 + +; animation object palettes + const_def + const PAL_BATTLE_OB_ENEMY ; 0 + const PAL_BATTLE_OB_PLAYER ; 1 + const PAL_BATTLE_OB_GRAY ; 2 + const PAL_BATTLE_OB_YELLOW ; 3 + const PAL_BATTLE_OB_RED ; 4 + const PAL_BATTLE_OB_GREEN ; 5 + const PAL_BATTLE_OB_BLUE ; 6 + const PAL_BATTLE_OB_BROWN ; 7 diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm index bc50e3db2..861c35ee0 100755 --- a/constants/audio_constants.asm +++ b/constants/audio_constants.asm @@ -1,63 +1,88 @@ - - ; pitch +; FrequencyTable indexes (see audio/notes.asm) const_def - const __ - const C_ - const C# - const D_ - const D# - const E_ - const F_ - const F# - const G_ - const G# - const A_ - const A# - const B_ - const CC ; used for pitchoffset + const __ ; 0 + const C_ ; 1 + const C# ; 2 + const D_ ; 3 + const D# ; 4 + const E_ ; 5 + const F_ ; 6 + const F# ; 7 + const G_ ; 8 + const G# ; 9 + const A_ ; a + const A# ; b + const B_ ; c + const CC ; d (used for pitchoffset) ; channel +; ChannelPointers indexes (see engine/audio.asm) const_def - const CHAN1 - const CHAN2 - const CHAN3 - const CHAN4 + const CHAN1 ; 0 + const CHAN2 ; 1 + const CHAN3 ; 2 + const CHAN4 ; 3 NUM_MUSIC_CHANS EQU const_value NUM_NOISE_CHANS EQU const_value - const CHAN5 - const CHAN6 - const CHAN7 - const CHAN8 + const CHAN5 ; 4 + const CHAN6 ; 5 + const CHAN7 ; 6 + const CHAN8 ; 7 NUM_CHANNELS EQU const_value ; Flags1 -SOUND_CHANNEL_ON EQU 0 -SOUND_SUBROUTINE EQU 1 -SOUND_LOOPING EQU 2 -SOUND_SFX EQU 3 -SOUND_NOISE EQU 4 -SOUND_REST EQU 5 + const_def + const SOUND_CHANNEL_ON ; 0 + const SOUND_SUBROUTINE ; 1 + const SOUND_LOOPING ; 2 + const SOUND_SFX ; 3 + const SOUND_NOISE ; 4 + const SOUND_REST ; 5 ; Flags2 - -SOUND_VIBRATO EQU 0 -SOUND_PITCH_WHEEL EQU 1 -SOUND_DUTY EQU 2 -SOUND_UNKN_0B EQU 3 -SOUND_CRY_PITCH EQU 4 -SOUND_UNKN_0D EQU 5 -SOUND_UNKN_0E EQU 6 -SOUND_UNKN_0F EQU 7 + const_def + const SOUND_VIBRATO ; 0 + const SOUND_PITCH_WHEEL ; 1 + const SOUND_DUTY ; 2 + const SOUND_UNKN_0B ; 3 + const SOUND_CRY_PITCH ; 4 + const SOUND_UNKN_0D ; 5 + const SOUND_UNKN_0E ; 6 + const SOUND_UNKN_0F ; 7 ; Flags3 -SOUND_VIBRATO_DIR EQU 0 -SOUND_PITCH_WHEEL_DIR EQU 1 + const_def + const SOUND_VIBRATO_DIR ; 0 + const SOUND_PITCH_WHEEL_DIR ; 1 ; NoteFlags -NOTE_DUTY_OVERRIDE EQU 0 -NOTE_FREQ_OVERRIDE EQU 1 -NOTE_UNKN_3 EQU 3 -NOTE_NOISE_SAMPLING EQU 4 -NOTE_REST EQU 5 -NOTE_VIBRATO_OVERRIDE EQU 6 + const_def + const NOTE_DUTY_OVERRIDE ; 0 + const NOTE_FREQ_OVERRIDE ; 1 + const NOTE_UNUSED ; 2 + const NOTE_UNKN_3 ; 3 + const NOTE_NOISE_SAMPLING ; 4 + const NOTE_REST ; 5 + const NOTE_VIBRATO_OVERRIDE ; 6 + +; Volume: +VOLUME_SO1_F EQU 3 +VOLUME_SO2_F EQU 7 +VOLUME_SO1_LEVEL EQU %00000111 +VOLUME_SO2_LEVEL EQU %01110000 +MAX_VOLUME EQU $77 + +; SoundInput: +SOUND_INPUT_CH1_F EQU 0 +SOUND_INPUT_CH2_F EQU 1 +SOUND_INPUT_CH3_F EQU 2 +SOUND_INPUT_CH4_F EQU 3 +SOUND_INPUT_GLOBAL_F EQU 7 + +; Danger: +DANGER_PITCH_F EQU 4 +DANGER_ON_F EQU 7 + +; MusicFade: +MUSIC_FADE_IN_F EQU 7 diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 523713574..f86cd0873 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -1,12 +1,20 @@ +; significant level values MAX_LEVEL EQU 100 MIN_LEVEL EQU 2 EGG_LEVEL EQU 5 + +; maximum moves known per mon NUM_MOVES EQU 4 -REST_TURNS EQU 2 -MAX_STAT_LEVEL EQU 13 +; significant stat values BASE_STAT_LEVEL EQU 7 +MAX_STAT_LEVEL EQU 13 +; turns that Rest sleep lasts +REST_TURNS EQU 2 + +; PlayerStatLevels and EnemyStatLevels indexes +; used for GetStatName const_def const ATTACK const DEFENSE @@ -15,10 +23,10 @@ BASE_STAT_LEVEL EQU 7 const SP_DEFENSE const ACCURACY const EVASION - const ABILITY + const ABILITY ; used for BattleCommand_Curse NUM_LEVEL_STATS EQU const_value -; move struct +; move struct members (see battle/moves/moves.asm) const_def const MOVE_ANIM const MOVE_EFFECT @@ -30,6 +38,9 @@ NUM_LEVEL_STATS EQU const_value const MOVE_LENGTH ; stat constants +; indexes for: +; - PlayerStats and EnemyStats (see wram.asm) +; - party_struct and battle_struct members (see macros/wram.asm) const_value SET 1 const STAT_HP const STAT_ATK @@ -38,19 +49,23 @@ const_value SET 1 const STAT_SATK const STAT_SDEF NUM_STATS EQU const_value + +; stat formula constants STAT_MIN_NORMAL EQU 5 STAT_MIN_HP EQU 10 +MAX_STAT_VALUE EQU 999 + ; shiny dvs ATKDEFDV_SHINY EQU $EA SPDSPCDV_SHINY EQU $AA -; battle classes +; battle classes (wBattleMode values) const_value SET 1 const WILD_BATTLE const TRAINER_BATTLE -; battle types +; battle types (BattleType values) const_def const BATTLETYPE_NORMAL const BATTLETYPE_CANLOSE @@ -66,7 +81,7 @@ const_value SET 1 const BATTLETYPE_CELEBI const BATTLETYPE_SUICUNE -; battle variables +; GetBattleVar and GetBattleVarAddr arguments (see home/battle.asm) const_def const BATTLE_VARS_SUBSTATUS1 const BATTLE_VARS_SUBSTATUS2 @@ -90,8 +105,37 @@ const_value SET 1 const BATTLE_VARS_LAST_MOVE const BATTLE_VARS_LAST_MOVE_OPP -; status -SLP EQU 7 ; 0-7 turns +; GetBattleVar and GetBattleVarAddr internal indexes (see home/battle.asm) + const_def + const PLAYER_SUBSTATUS_1 + const ENEMY_SUBSTATUS_1 + const PLAYER_SUBSTATUS_2 + const ENEMY_SUBSTATUS_2 + const PLAYER_SUBSTATUS_3 + const ENEMY_SUBSTATUS_3 + const PLAYER_SUBSTATUS_4 + const ENEMY_SUBSTATUS_4 + const PLAYER_SUBSTATUS_5 + const ENEMY_SUBSTATUS_5 + const PLAYER_STATUS + const ENEMY_STATUS + const PLAYER_MOVE_ANIMATION + const ENEMY_MOVE_ANIMATION + const PLAYER_MOVE_EFFECT + const ENEMY_MOVE_EFFECT + const PLAYER_MOVE_POWER + const ENEMY_MOVE_POWER + const PLAYER_MOVE_TYPE + const ENEMY_MOVE_TYPE + const PLAYER_CUR_MOVE + const ENEMY_CUR_MOVE + const PLAYER_COUNTER_MOVE + const ENEMY_COUNTER_MOVE + const PLAYER_LAST_MOVE + const ENEMY_LAST_MOVE + +; status condition bit flags +SLP EQU %111 ; 0-7 turns const_value SET 3 const PSN const BRN @@ -100,7 +144,7 @@ const_value SET 3 ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP -; substatus +; PlayerSubStatus1 or EnemySubStatus1 bit flags enum_start 7, -1 enum SUBSTATUS_IN_LOVE enum SUBSTATUS_ROLLOUT @@ -111,8 +155,10 @@ ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP enum SUBSTATUS_CURSE enum SUBSTATUS_NIGHTMARE -SUBSTATUS_CURLED EQU 0 +; PlayerSubStatus2 or EnemySubStatus2 bit flags +SUBSTATUS_CURLED EQU 0 +; PlayerSubStatus3 or EnemySubStatus3 bit flags enum_start 7, -1 enum SUBSTATUS_CONFUSED enum SUBSTATUS_FLYING @@ -123,6 +169,7 @@ SUBSTATUS_CURLED EQU 0 enum SUBSTATUS_RAMPAGE enum SUBSTATUS_BIDE +; PlayerSubStatus4 or EnemySubStatus4 bit flags enum_start 7, -1 enum SUBSTATUS_LEECH_SEED enum SUBSTATUS_RAGE @@ -133,6 +180,7 @@ SUBSTATUS_CURLED EQU 0 enum SUBSTATUS_MIST enum SUBSTATUS_X_ACCURACY +; PlayerSubStatus5 or EnemySubStatus5 bit flags enum_start 7, -1 enum SUBSTATUS_CANT_RUN enum SUBSTATUS_DESTINY_BOND @@ -143,7 +191,7 @@ SUBSTATUS_CURLED EQU 0 enum SUBSTATUS_UNKNOWN_3 enum SUBSTATUS_TOXIC -; environmental +; PlayerScreens or EnemyScreens bit flags enum_start 4, -1 enum SCREENS_REFLECT enum SCREENS_LIGHT_SCREEN @@ -151,7 +199,7 @@ SUBSTATUS_CURLED EQU 0 enum SCREENS_UNUSED enum SCREENS_SPIKES -; weather +; Weather values const_def const WEATHER_NONE const WEATHER_RAIN @@ -161,8 +209,7 @@ SUBSTATUS_CURLED EQU 0 const WEATHER_SUN_END const WEATHER_SANDSTORM_END - -; move effects +; MoveEffectsPointers indexes (see battle/moves/move_effects_pointers.asm) const_def const EFFECT_NORMAL_HIT const EFFECT_SLEEP @@ -322,35 +369,6 @@ SUBSTATUS_CURLED EQU 0 const EFFECT_FLY const EFFECT_DEFENSE_CURL -; Battle vars used in home/battle.asm - const_def - const PLAYER_SUBSTATUS_1 - const ENEMY_SUBSTATUS_1 - const PLAYER_SUBSTATUS_2 - const ENEMY_SUBSTATUS_2 - const PLAYER_SUBSTATUS_3 - const ENEMY_SUBSTATUS_3 - const PLAYER_SUBSTATUS_4 - const ENEMY_SUBSTATUS_4 - const PLAYER_SUBSTATUS_5 - const ENEMY_SUBSTATUS_5 - const PLAYER_STATUS - const ENEMY_STATUS - const PLAYER_MOVE_ANIMATION - const ENEMY_MOVE_ANIMATION - const PLAYER_MOVE_EFFECT - const ENEMY_MOVE_EFFECT - const PLAYER_MOVE_POWER - const ENEMY_MOVE_POWER - const PLAYER_MOVE_TYPE - const ENEMY_MOVE_TYPE - const PLAYER_CUR_MOVE - const ENEMY_CUR_MOVE - const PLAYER_COUNTER_MOVE - const ENEMY_COUNTER_MOVE - const PLAYER_LAST_MOVE - const ENEMY_LAST_MOVE - ; wBattleAction const_def const BATTLEACTION_MOVE1 @@ -370,6 +388,7 @@ SUBSTATUS_CURLED EQU 0 const BATTLEACTION_E const BATTLEACTION_FORFEIT +; wBattleResult const_def const WIN const LOSE diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm index 481c1f19b..74df3a36a 100755 --- a/constants/battle_tower_constants.asm +++ b/constants/battle_tower_constants.asm @@ -1,3 +1,4 @@ +; BattleTowerAction arguments (see mobile/battle_tower_5c.asm) const_def const BATTLETOWERACTION_CHECK_EXPLANATION_READ const BATTLETOWERACTION_SET_EXPLANATION_READ @@ -19,8 +20,8 @@ const BATTLETOWERACTION_11 ; store 0 in 5:aa8d const BATTLETOWERACTION_12 ; store 1 in 5:aa8d const BATTLETOWERACTION_13 ; check 5:aa8d - const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [s1_be4f] - const BATTLETOWERACTION_15 ; set 0, [s1_be4f] + const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [sBattleTowerSaveFileFlags] + const BATTLETOWERACTION_15 ; set 0, [sBattleTowerSaveFileFlags] const BATTLETOWERACTION_16 ; update time in SRAM bank 5 const BATTLETOWERACTION_17 ; check time in SRAM bank 5 const BATTLETOWERACTION_LEVEL_CHECK @@ -32,8 +33,19 @@ const BATTLETOWERACTION_CHOOSEREWARD ; save options const BATTLETOWERACTION_SAVEOPTIONS -BATTLETOWER_NO_CHALLENGE EQU 0 -BATTLETOWER_SAVED_AND_LEFT EQU 1 -BATTLETOWER_CHALLENGE_IN_PROGESS EQU 2 -BATTLETOWER_WON_CHALLENGE EQU 3 -BATTLETOWER_RECEIVED_REWARD EQU 4 +; sBattleTowerChallengeState + const_def + const BATTLETOWER_NO_CHALLENGE + const BATTLETOWER_SAVED_AND_LEFT + const BATTLETOWER_CHALLENGE_IN_PROGESS + const BATTLETOWER_WON_CHALLENGE + const BATTLETOWER_RECEIVED_REWARD + +BATTLETOWER_NROFPKMNS EQU 3 +BATTLETOWER_TRAINERDATALENGTH EQU $24 +BATTLETOWER_NROFTRAINERS EQU 7 +BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS +BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH + +; return value from BattleTowerAction(BATTLETOWERACTION_CHECKMOBILEEVENT) +MOBILE_EVENT_OBJECT_GS_BALL EQU $b diff --git a/constants/cgb_constants.asm b/constants/cgb_constants.asm index 36cf369c2..c419cd465 100755 --- a/constants/cgb_constants.asm +++ b/constants/cgb_constants.asm @@ -1,3 +1,4 @@ +; GetSGBLayout arguments (see engine/cgb_layouts.asm and engine/sgb_layouts.asm) const_def const SCGB_BATTLE_GRAYSCALE const SCGB_BATTLE_COLORS diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm new file mode 100644 index 000000000..88fe9ca6e --- /dev/null +++ b/constants/collision_constants.asm @@ -0,0 +1,115 @@ +; collision permissions (see tilesets/collision_permissions.asm) +LANDTILE EQU $00 +WATERTILE EQU $01 +WALLTILE EQU $0f +TALK EQU $10 + +; collision data types (see tilesets/*_collision.asm) +; TileCollisionTable indexes (see data/collision_permissions.asm) +COLL_FLOOR EQU $00 +COLL_01 EQU $01 ; garbage +COLL_03 EQU $03 ; garbage +COLL_04 EQU $04 ; garbage +COLL_WALL EQU $07 +COLL_CUT_08 EQU $08 ; unused +COLL_TALL_GRASS_10 EQU $10 ; unused +COLL_CUT_TREE EQU $12 +COLL_LONG_GRASS EQU $14 +COLL_HEADBUTT_TREE EQU $15 +COLL_TALL_GRASS EQU $18 +COLL_CUT_TREE_1A EQU $1a ; unused +COLL_LONG_GRASS_1C EQU $1c ; unused +COLL_HEADBUTT_TREE_1D EQU $1d ; unused +COLL_WATER_21 EQU $21 ; ??? +COLL_ICE EQU $23 +COLL_WHIRLPOOL EQU $24 +COLL_BUOY EQU $27 +COLL_CUT_28 EQU $28 ; garbage +COLL_WATER EQU $29 +COLL_ICE_2B EQU $2b ; unused +COLL_WHIRLPOOL_2C EQU $2c ; unused +COLL_WATERFALL_RIGHT EQU $30 ; unused !!! +COLL_WATERFALL_LEFT EQU $31 ; unused !!! +COLL_WATERFALL_UP EQU $32 ; unused !!! +COLL_WATERFALL EQU $33 +COLL_CURRENT_RIGHT EQU $38 ; unused !!! +COLL_CURRENT_LEFT EQU $39 ; unused !!! +COLL_CURRENT_UP EQU $3a ; unused !!! +COLL_CURRENT_DOWN EQU $3b ; unused !!! +COLL_BRAKE EQU $40 ; unused !!! +COLL_WALK_RIGHT EQU $41 ; unused !!! +COLL_WALK_LEFT EQU $42 ; unused !!! +COLL_WALK_UP EQU $43 ; unused !!! +COLL_WALK_DOWN EQU $44 ; unused !!! +COLL_BRAKE_45 EQU $45 ; garbage +COLL_BRAKE_46 EQU $46 ; unused +COLL_BRAKE_47 EQU $47 ; unused +COLL_GRASS_48 EQU $48 ; unused +COLL_GRASS_49 EQU $49 ; unused +COLL_GRASS_4A EQU $4a ; garbage +COLL_GRASS_4B EQU $4b ; garbage +COLL_GRASS_4C EQU $4c ; unused +COLL_WALK_RIGHT_ALT EQU $50 ; unused +COLL_WALK_LEFT_ALT EQU $51 ; unused +COLL_WALK_UP_ALT EQU $52 ; unused +COLL_WALK_DOWN_ALT EQU $53 ; unused +COLL_BRAKE_ALT EQU $54 ; unused +COLL_BRAKE_55 EQU $55 ; unused +COLL_BRAKE_56 EQU $56 ; unused +COLL_BRAKE_57 EQU $57 ; unused +COLL_5B EQU $5b ; garbage +COLL_PIT EQU $60 +COLL_VIRTUAL_BOY EQU $61 ; garbage +COLL_64 EQU $64 ; garbage +COLL_65 EQU $65 ; garbage +COLL_PIT_68 EQU $68 ; unused +COLL_WARP_CARPET_DOWN EQU $70 +COLL_DOOR EQU $71 +COLL_LADDER EQU $72 +COLL_STAIRCASE_73 EQU $73 ; unused +COLL_CAVE_74 EQU $74 ; unused +COLL_DOOR_75 EQU $75 ; unused +COLL_WARP_CARPET_LEFT EQU $76 +COLL_WARP_77 EQU $77 ; unused +COLL_WARP_CARPET_UP EQU $78 +COLL_DOOR_79 EQU $79 ; unused +COLL_STAIRCASE EQU $7a +COLL_CAVE EQU $7b +COLL_WARP_PANEL EQU $7c +COLL_DOOR_7D EQU $7d ; unused +COLL_WARP_CARPET_RIGHT EQU $7e +COLL_WARP_7F EQU $7f ; unused +COLL_COUNTER EQU $90 +COLL_BOOKSHELF EQU $91 +COLL_PC EQU $93 +COLL_RADIO EQU $94 +COLL_TOWN_MAP EQU $95 +COLL_MART_SHELF EQU $96 +COLL_TV EQU $97 +COLL_COUNTER_98 EQU $98 ; unused +COLL_9C EQU $9c ; garbage +COLL_WINDOW EQU $9d +COLL_INCENSE_BURNER EQU $9f +COLL_HOP_RIGHT EQU $a0 +COLL_HOP_LEFT EQU $a1 +COLL_HOP_UP EQU $a2 ; unused !!! +COLL_HOP_DOWN EQU $a3 +COLL_HOP_DOWN_RIGHT EQU $a4 +COLL_HOP_DOWN_LEFT EQU $a5 +COLL_HOP_UP_RIGHT EQU $a6 ; unused !!! +COLL_HOP_UP_LEFT EQU $a7 ; unused !!! +COLL_RIGHT_WALL EQU $b0 +COLL_LEFT_WALL EQU $b1 +COLL_UP_WALL EQU $b2 +COLL_DOWN_WALL EQU $b3 ; unused !!! +COLL_FF EQU $ff ; garbage + +; collision data type nybbles +LO_NYBBLE_GRASS EQU $07 +HI_NYBBLE_TALL_GRASS EQU $10 +HI_NYBBLE_WATER EQU $20 +HI_NYBBLE_CURRENT EQU $30 +HI_NYBBLE_WALK EQU $40 +HI_NYBBLE_WALK_ALT EQU $50 +HI_NYBBLE_WARPS EQU $70 +HI_NYBBLE_LEDGES EQU $a0 diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm new file mode 100644 index 000000000..8ee0391de --- /dev/null +++ b/constants/credits_constants.asm @@ -0,0 +1,115 @@ +; CreditsStrings indexes (see data/credits_text.asm) + const_def + const SATOSHI_TAJIRI + const JUNICHI_MASUDA + const TETSUYA_WATANABE + const SHIGEKI_MORIMOTO + const SOUSUKE_TAMADA + const TAKENORI_OOTA + const KEN_SUGIMORI + const MOTOFUMI_FUJIWARA + const ATSUKO_NISHIDA + const MUNEO_SAITO + const SATOSHI_OOTA + const RENA_YOSHIKAWA + const JUN_OKUTANI + const HIRONOBU_YOSHIDA + const ASUKA_IWASHITA + const GO_ICHINOSE + const MORIKAZU_AOKI + const KOHJI_NISHINO + const KENJI_MATSUSHIMA + const TOSHINOBU_MATSUMIYA + const SATORU_IWATA + const NOBUHIRO_SEYA + const KAZUHITO_SEKINE + const TETSUJI_OOTA + const NCL_SUPER_MARIO_CLUB + const SARUGAKUCHO + const AKITO_MORI + const TAKAHIRO_HARADA + const TOHRU_HASHIMOTO + const NOBORU_MATSUMOTO + const TAKEHIRO_IZUSHI + const TAKASHI_KAWAGUCHI + const TSUNEKAZU_ISHIHARA + const HIROSHI_YAMAUCHI + const KENJI_SAIKI + const ATSUSHI_TADA + const NAOKO_KAWAKAMI + const HIROYUKI_ZINNAI + const KUNIMI_KAWAMURA + const HISASHI_SOGABE + const KEITA_KAGAYA + const YOSHINORI_MATSUDA + const HITOMI_SATO + const TORU_OSAWA + const TAKAO_OHARA + const YUICHIRO_ITO + const TAKAO_SHIMIZU + const PLANNING + const KEITA_NAKAMURA + const HIROTAKA_UEMURA + const HIROAKI_TAMURA + const NORIAKI_SAKAGUCHI + const MIYUKI_SATO + const GAKUZI_NOMOTO + const AI_MASHIMA + const MIKIHIRO_ISHIKAWA + const HIDEYUKI_HASHIMOTO + const SATOSHI_YAMATO + const SHIGERU_MIYAMOTO + const GAIL_TILDEN + const NOB_OGASAWARA + const SETH_MCMAHILL + const HIROTO_ALEXANDER + const TERESA_LILLYGREN + const THOMAS_HERTZOG + const ERIK_JOHNSON + const HIRO_NAKAMURA + const TERUKI_MURAKAWA + const KAZUYOSHI_OSAWA + const KIMIKO_NAKAMICHI + const CREDIT_END + const CREDIT_UNKNOWN + const STAFF + const DIRECTOR + const CODIRECTOR + const PROGRAMMERS + const GRAPHICS_DIRECTOR + const MONSTER_DESIGN + const GRAPHICS_DESIGN + const CREDIT_MUSIC + const CREDIT_SOUND_EFFECTS + const GAME_DESIGN + const GAME_SCENARIO + const TOOL_PROGRAMMING + const PARAMETRIC_DESIGN + const SCRIPT_DESIGN + const MAP_DATA_DESIGN + const MAP_DESIGN + const PRODUCT_TESTING + const SPECIAL_THANKS + const PRODUCERS + const EXECUTIVE_PRODUCER + const POKEMON_ANIMATION + const POKEDEX_TEXT + const MOBILE_PRJ_LEADER + const MOBILE_SYSTEM_AD + const MOBILE_STADIUM_DIR + const COORDINATION + const COPYRIGHT + const US_VERSION_STAFF + const US_COORDINATION + const TEXT_TRANSLATION + const PAAD_TESTING + +; CreditsScript indexes (see data/credits_script.asm) +const_value SET -7 + const CREDITS_THEEND + const CREDITS_WAIT2 + const CREDITS_MUSIC + const CREDITS_CLEAR + const CREDITS_SCENE + const CREDITS_WAIT + const CREDITS_END diff --git a/constants/cry_constants.asm b/constants/cry_constants.asm index da40877cc..654aac523 100755 --- a/constants/cry_constants.asm +++ b/constants/cry_constants.asm @@ -1,3 +1,4 @@ +; Cries indexes (see audio/cry_pointers.asm) const_def ; gen 1 diff --git a/constants/deco_constants.asm b/constants/deco_constants.asm index 22cf1e670..433b11e25 100644 --- a/constants/deco_constants.asm +++ b/constants/deco_constants.asm @@ -1,3 +1,4 @@ +; decoration types const_value = 1 const DECO_PLANT const DECO_BED @@ -6,6 +7,7 @@ const_value = 1 const DECO_DOLL const DECO_BIGDOLL +; DecorationNames indexes (see engine/decorations.asm) const_value = 1 const PUT_IT_AWAY const MAGNAPLANT @@ -33,6 +35,7 @@ const_value = 1 const YELLOW_CARPET const GREEN_CARPET +; DoDecorationAction2 arguments (see engine/decorations.asm) const_value = 1 const SET_UP_BED const PUT_AWAY_BED @@ -56,66 +59,67 @@ deco: MACRO enum DECOFLAG_\1 endm +; decorations (see data/decoration_attribute.asm) const_value = 1 __enum__ = 0 const BEDS - deco FEATHERY_BED ; 2 (0) - deco PINK_BED ; 3 (1) - deco POLKADOT_BED ; 4 (2) - deco PIKACHU_BED ; 5 (3) + deco FEATHERY_BED + deco PINK_BED + deco POLKADOT_BED + deco PIKACHU_BED const CARPETS - deco RED_CARPET ; 7 (4) - deco BLUE_CARPET ; 8 (5) - deco YELLOW_CARPET ; 9 (6) - deco GREEN_CARPET ; a (7) + deco RED_CARPET + deco BLUE_CARPET + deco YELLOW_CARPET + deco GREEN_CARPET const PLANTS - deco MAGNAPLANT ; c (8) - deco TROPICPLANT ; d (9) - deco JUMBOPLANT ; e (a) + deco MAGNAPLANT + deco TROPICPLANT + deco JUMBOPLANT const POSTERS - deco TOWN_MAP ; 10 (b) - deco PIKACHU_POSTER ; 11 (c) - deco CLEFAIRY_POSTER ; 12 (d) - deco JIGGLYPUFF_POSTER ; 13(e) + deco TOWN_MAP + deco PIKACHU_POSTER + deco CLEFAIRY_POSTER + deco JIGGLYPUFF_POSTER const CONSOLES - deco FAMICOM ; 15 (f) - deco SNES ; 16 (10) - deco N64 ; 17 (11) - deco VIRTUAL_BOY ; 18 (12) + deco FAMICOM + deco SNES + deco N64 + deco VIRTUAL_BOY const BIG_DOLLS - deco BIG_SNORLAX_DOLL ; 1a (13) - deco BIG_ONIX_DOLL ; 1b (14) - deco BIG_LAPRAS_DOLL ; 1c (15) + deco BIG_SNORLAX_DOLL + deco BIG_ONIX_DOLL + deco BIG_LAPRAS_DOLL const DOLLS - deco PIKACHU_DOLL ; 1e (16) - deco SURF_PIKACHU_DOLL ; 1f (17) - deco CLEFAIRY_DOLL ; 20 (18) - deco JIGGLYPUFF_DOLL ; 21 (19) - deco BULBASAUR_DOLL ; 22 (1a) - deco CHARMANDER_DOLL ; 23 (1b) - deco SQUIRTLE_DOLL ; 24 (1c) - deco POLIWAG_DOLL ; 25 (1d) - deco DIGLETT_DOLL ; 26 (1e) - deco STARMIE_DOLL ; 27 (1f) - deco MAGIKARP_DOLL ; 28 (20) - deco ODDISH_DOLL ; 29 (21) - deco GENGAR_DOLL ; 2a (22) - deco SHELLDER_DOLL ; 2b (23) - deco GRIMER_DOLL ; 2c (24) - deco VOLTORB_DOLL ; 2d (25) - deco WEEDLE_DOLL ; 2e (26) - deco UNOWN_DOLL ; 2f (27) - deco GEODUDE_DOLL ; 30 (28) - deco MACHOP_DOLL ; 31 (29) - deco TENTACOOL_DOLL ; 32 (2a) - deco GOLD_TROPHY_DOLL ; 33 (2b) - deco SILVER_TROPHY_DOLL ; 34 (2c) + deco PIKACHU_DOLL + deco SURF_PIKACHU_DOLL + deco CLEFAIRY_DOLL + deco JIGGLYPUFF_DOLL + deco BULBASAUR_DOLL + deco CHARMANDER_DOLL + deco SQUIRTLE_DOLL + deco POLIWAG_DOLL + deco DIGLETT_DOLL + deco STARMIE_DOLL + deco MAGIKARP_DOLL + deco ODDISH_DOLL + deco GENGAR_DOLL + deco SHELLDER_DOLL + deco GRIMER_DOLL + deco VOLTORB_DOLL + deco WEEDLE_DOLL + deco UNOWN_DOLL + deco GEODUDE_DOLL + deco MACHOP_DOLL + deco TENTACOOL_DOLL + deco GOLD_TROPHY_DOLL + deco SILVER_TROPHY_DOLL -NUM_NON_TROPHY_DECOS EQU $2b -NUM_DECOS EQU $2d +NUM_DECOS = __enum__ +NUM_NON_TROPHY_DECOS = NUM_DECOS +- 2 diff --git a/constants/engine_flags.asm b/constants/engine_flags.asm index 31a038196..3c088596d 100644 --- a/constants/engine_flags.asm +++ b/constants/engine_flags.asm @@ -1,22 +1,29 @@ +; EngineFlags indexes (see engine/engine_flasg.asm) const_def - +; wPokegearFlags const ENGINE_RADIO_CARD const ENGINE_MAP_CARD const ENGINE_PHONE_CARD const ENGINE_EXPN_CARD const ENGINE_POKEGEAR - const ENGINE_DAYCARE_MAN_HAS_EGG - const ENGINE_DAYCARE_MAN_HAS_MON - const ENGINE_DAYCARE_LADY_HAS_MON +; wDayCareMan + const ENGINE_DAY_CARE_MAN_HAS_EGG + const ENGINE_DAY_CARE_MAN_HAS_MON +; wDayCareLady + const ENGINE_DAY_CARE_LADY_HAS_MON +; wMomSavingMoney const ENGINE_MOM_SAVING_MONEY const ENGINE_DST +; wUnusedTwoDayTimerOn const ENGINE_0A +; StatusFlags const ENGINE_POKEDEX const ENGINE_UNOWN_DEX const ENGINE_POKERUS const ENGINE_ROCKET_SIGNAL_ON_CH20 const ENGINE_CREDITS_SKIP const ENGINE_BUG_CONTEST_ON ; 10 +; StatusFlags2 const ENGINE_BUG_CONTEST_TIMER const ENGINE_SAFARI_ZONE const ENGINE_ROCKETS_IN_RADIO_TOWER @@ -24,9 +31,11 @@ const ENGINE_GIVE_POKERUS const ENGINE_FLORIA const ENGINE_ROCKETS_IN_MAHOGANY +; BikeFlags const ENGINE_STRENGTH_ACTIVE const ENGINE_ALWAYS_ON_BIKE const ENGINE_DOWNHILL +; JohtoBadges const ENGINE_ZEPHYRBADGE const ENGINE_HIVEBADGE const ENGINE_PLAINBADGE @@ -35,6 +44,7 @@ const ENGINE_STORMBADGE ; 20 const ENGINE_GLACIERBADGE const ENGINE_RISINGBADGE +; KantoBadges const ENGINE_BOULDERBADGE const ENGINE_CASCADEBADGE const ENGINE_THUNDERBADGE @@ -43,6 +53,7 @@ const ENGINE_MARSHBADGE const ENGINE_VOLCANOBADGE const ENGINE_EARTHBADGE +; UnlockedUnowns const ENGINE_UNLOCKED_UNOWNS_1 const ENGINE_UNLOCKED_UNOWNS_2 const ENGINE_UNLOCKED_UNOWNS_3 @@ -51,6 +62,7 @@ const ENGINE_UNLOCKED_UNOWNS_6 ; 30 const ENGINE_UNLOCKED_UNOWNS_7 const ENGINE_UNLOCKED_UNOWNS_8 +; VisitedSpawns const ENGINE_FLYPOINT_KRISS_HOUSE const ENGINE_FLYPOINT_VIRIDIAN_POKECENTER const ENGINE_FLYPOINT_PALLET @@ -78,8 +90,11 @@ const ENGINE_FLYPOINT_BLACKTHORN const ENGINE_FLYPOINT_SILVER_CAVE const ENGINE_FLYPOINT_UNUSED +; wLuckyNumberShowFlag const ENGINE_LUCKY_NUMBER_SHOW +; StatusFlags2 const ENGINE_4F +; DailyFlags const ENGINE_KURT_MAKING_BALLS ; 50 const ENGINE_DAILY_BUG_CONTEST const ENGINE_SPECIAL_WILDDATA @@ -88,6 +103,7 @@ const ENGINE_SHUCKLE_GIVEN const ENGINE_GOLDENROD_UNDERGROUND_MERCHANT_CLOSED const ENGINE_FOUGHT_IN_TRAINER_HALL_TODAY +; WeeklyFlags const ENGINE_MT_MOON_SQUARE_CLEFAIRY const ENGINE_UNION_CAVE_LAPRAS const ENGINE_GOLDENROD_UNDERGROUND_GOT_HAIRCUT @@ -96,11 +112,16 @@ const ENGINE_INDIGO_PLATEAU_RIVAL_FIGHT const ENGINE_DAILY_MOVE_TUTOR const ENGINE_BUENAS_PASSWORD +; SwarmFlags const ENGINE_BUENAS_PASSWORD_2 ; 60 const ENGINE_GOLDENROD_DEPT_STORE_SALE_IS_ON +; GameTimerPause const ENGINE_62 +; PlayerGender const ENGINE_PLAYER_IS_FEMALE +; wCelebiEvent const ENGINE_HAVE_EXAMINED_GS_BALL +; wDailyRematchFlags const ENGINE_JACK const ENGINE_HUEY const ENGINE_GAVEN @@ -125,6 +146,7 @@ const ENGINE_WILTON const ENGINE_PARRY const ENGINE_ERIN +; wDailyPhoneItemFlags const ENGINE_BEVERLY_HAS_NUGGET const ENGINE_JOSE_HAS_STAR_PIECE const ENGINE_WADE_HAS_ITEM @@ -135,6 +157,7 @@ const ENGINE_TULLY_HAS_WATER_STONE const ENGINE_TIFFANY_HAS_PINK_BOW const ENGINE_WILTON_HAS_ITEM +; wDailyPhoneTimeOfDayFlags const ENGINE_JACK_MONDAY_MORNING const ENGINE_HUEY_WEDNESDAY_NIGHT const ENGINE_GAVEN_THURSDAY_MORNING @@ -156,10 +179,12 @@ const ENGINE_BRENT_MONDAY_MORNING const ENGINE_TIFFANY_TUESDAY_AFTERNOON const ENGINE_VANCE_WEDNESDAY_NIGHT - const ENGINE_WILTON_THRUSDAY_MORNING + const ENGINE_WILTON_THURSDAY_MORNING const ENGINE_PARRY_FRIDAY_AFTERNOON const ENGINE_ERIN_SATURDAY_NIGHT +; wPlayerSpriteSetupFlags const ENGINE_KRIS_IN_CABLE_CLUB +; SwarmFlags const ENGINE_DUNSPARCE_SWARM ; a0 const ENGINE_YANMA_SWARM NUM_ENGINE_FLAGS EQU const_value diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 636d0226c..4c7e9a582 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -1,7 +1,6 @@ - +; EventFlags bit flags const_def - -; These first eight flags are reset upon reloading the map. +; The first eight flags are reset upon reloading the map const EVENT_GAVE_KURT_APRICORNS ; 000 const EVENT_RECEIVED_BALLS_FROM_KURT const EVENT_DRAGON_SHRINE_QUESTION_2 @@ -10,7 +9,7 @@ const EVENT_DRAGON_SHRINE_QUESTION_5 const EVENT_JUST_RECEIVED_DRATINI const EVENT_IN_YOUR_ROOM -; Johto story events +; Johto Gym Leader TM gifts const EVENT_GOT_TM31_MUD_SLAP const EVENT_GOT_TM49_FURY_CUTTER const EVENT_GOT_TM01_DYNAMICPUNCH @@ -19,6 +18,7 @@ const EVENT_GOT_TM23_IRON_TAIL const EVENT_GOT_TM16_ICY_WIND const EVENT_GOT_TM24_DRAGONBREATH +; HMs (EVENT_GOT_HM07_WATERFALL is with the Johto itemballs) const EVENT_GOT_HM01_CUT const EVENT_GOT_HM02_FLY const EVENT_GOT_HM03_SURF @@ -26,9 +26,11 @@ const EVENT_GOT_HM05_FLASH const EVENT_GOT_HM06_WHIRLPOOL const EVENT_016 +; Rods const EVENT_GOT_OLD_ROD const EVENT_GOT_GOOD_ROD const EVENT_GOT_SUPER_ROD +; Johto story events const EVENT_GOT_A_POKEMON_FROM_ELM const EVENT_GOT_CYNDAQUIL_FROM_ELM const EVENT_GOT_TOTODILE_FROM_ELM @@ -128,7 +130,7 @@ const EVENT_GOT_TM12_SWEET_SCENT const EVENT_RELEASED_THE_BEASTS const EVENT_GOT_MASTER_BALL_FROM_ELM -; Johto Signpost Items +; Johto hidden items const EVENT_TIN_TOWER_4F_HIDDEN_MAX_POTION const EVENT_TIN_TOWER_5F_HIDDEN_FULL_RESTORE const EVENT_TIN_TOWER_5F_HIDDEN_CARBOS @@ -143,11 +145,11 @@ const EVENT_ILEX_FOREST_HIDDEN_ETHER const EVENT_ILEX_FOREST_HIDDEN_SUPER_POTION const EVENT_ILEX_FOREST_HIDDEN_FULL_HEAL - const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_PARLYZ_HEAL - const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_SUPER_POTION - const EVENT_WAREHOUSE_ENTRANCE_HIDDEN_ANTIDOTE - const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION - const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE + const EVENT_GOLDENROD_UNDERGROUND_HIDDEN_PARLYZ_HEAL + const EVENT_GOLDENROD_UNDERGROUND_HIDDEN_SUPER_POTION + const EVENT_GOLDENROD_UNDERGROUND_HIDDEN_ANTIDOTE + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_MAX_POTION + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_HIDDEN_REVIVE const EVENT_MOUNT_MORTAR_1F_OUTSIDE_HIDDEN_HYPER_POTION const EVENT_MOUNT_MORTAR_1F_INSIDE_HIDDEN_MAX_REPEL const EVENT_MOUNT_MORTAR_2F_INSIDE_HIDDEN_FULL_RESTORE @@ -234,10 +236,10 @@ const EVENT_TALKED_TO_OAK_IN_KANTO const EVENT_GOT_HP_UP_FROM_VERMILION_GUY const EVENT_GOT_TM29_PSYCHIC -; Kanto Signpost Items +; Kanto hidden items const EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE - const EVENT_UNDERGROUND_HIDDEN_FULL_RESTORE - const EVENT_UNDERGROUND_HIDDEN_X_SPECIAL + const EVENT_UNDERGROUND_PATH_HIDDEN_FULL_RESTORE + const EVENT_UNDERGROUND_PATH_HIDDEN_X_SPECIAL const EVENT_ROCK_TUNNEL_1F_HIDDEN_X_ACCURACY const EVENT_ROCK_TUNNEL_1F_HIDDEN_X_DEFEND const EVENT_ROCK_TUNNEL_B1F_HIDDEN_MAX_POTION @@ -608,7 +610,7 @@ const EVENT_255 const EVENT_256 const EVENT_257 -; Kurt events +; Kurt Apricorn events const EVENT_GAVE_KURT_RED_APRICORN const EVENT_GAVE_KURT_BLU_APRICORN const EVENT_GAVE_KURT_YLW_APRICORN @@ -682,7 +684,7 @@ const EVENT_ERIN_ASKED_FOR_PHONE_NUMBER const EVENT_BUENA_OFFERED_HER_PHONE_NUMBER_NO_BLUE_CARD const EVENT_29F -; Ruins Of Alph puzzles +; Ruins of Alph puzzles const EVENT_SOLVED_HO_OH_PUZZLE ; 2a0 const EVENT_SOLVED_KABUTO_PUZZLE const EVENT_SOLVED_OMANYTE_PUZZLE @@ -734,7 +736,7 @@ const EVENT_DECO_BIG_SNORLAX_DOLL const EVENT_DECO_BIG_ONIX_DOLL ; 2d0 const EVENT_DECO_BIG_LAPRAS_DOLL -; More Johto events +; More Johto story events const EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE const EVENT_SWITCH_1 const EVENT_SWITCH_2 @@ -785,10 +787,10 @@ const EVENT_LEARNED_SLOWPOKETAIL const EVENT_LEARNED_RATICATE_TAIL const EVENT_OPENED_DOOR_TO_GIOVANNIS_OFFICE - const EVENT_WAREHOUSE_LAYOUT_1 - const EVENT_WAREHOUSE_LAYOUT_2 - const EVENT_WAREHOUSE_LAYOUT_3 - const EVENT_WAREHOUSE_BLOCKED_OFF + const EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_1 + const EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_2 + const EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_3 + const EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_BLOCKED_OFF const EVENT_LEFT_MONS_WITH_CONTEST_OFFICER const EVENT_WILLS_ROOM_ENTRANCE_CLOSED const EVENT_WILLS_ROOM_EXIT_OPEN @@ -818,7 +820,7 @@ const EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA const EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA const EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA -; More Crystal-specific events +; More Crystal-exclusive events in Johto const EVENT_LISTENED_TO_INITIAL_RADIO const EVENT_WALL_OPENED_IN_HO_OH_CHAMBER const EVENT_WALL_OPENED_IN_KABUTO_CHAMBER @@ -1015,7 +1017,7 @@ const EVENT_3E5 const EVENT_3E6 const EVENT_3E7 -; Trainer Flags +; Trainer flags ; Swimmer F const EVENT_BEAT_SWIMMERF_ELAINE const EVENT_BEAT_SWIMMERF_PAULA @@ -1530,7 +1532,7 @@ const EVENT_BEAT_ELITE_4_BRUNO const EVENT_BEAT_ELITE_4_KAREN const EVENT_BEAT_CHAMPION_LANCE -; New to Crystal +; Crystal-exclusive trainer flags const EVENT_BEAT_COOLTRAINERM_DARIN const EVENT_BEAT_COOLTRAINERF_CARA const EVENT_BEAT_TWINS_LEA_AND_PIA @@ -1663,10 +1665,11 @@ const EVENT_63D const EVENT_63E const EVENT_63F -; Sprite visibility: When these events are cleared, the sprite becomes visible; when set, the sprite is hidden. +; Sprite visibility flags +; When these events are cleared, the sprite becomes visible; when set, the sprite is hidden. ; The map script command macros `disappear` and `appear` set/clear these flags and immediately apply the effect on visibility. ; The map script command macros `setevent` and `clearevent` set/clear these flags, and their effects will be seen when the map is reloaded. -; Johto items: 0x640 +; Johto itemballs const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB const EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB const EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB @@ -1688,7 +1691,7 @@ const EVENT_TIN_TOWER_8F_MAX_ELIXER const EVENT_TIN_TOWER_8F_FULL_RESTORE const EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL - const EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL + const EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_ULTRA_BALL const EVENT_BURNED_TOWER_1F_HP_UP const EVENT_BURNED_TOWER_B1F_TM_ENDURE const EVENT_NATIONAL_PARK_PARLYZ_HEAL @@ -1717,15 +1720,15 @@ const EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL const EVENT_ILEX_FOREST_REVIVE - const EVENT_WAREHOUSE_ENTRANCE_COIN_CASE - const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL - const EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL + const EVENT_GOLDENROD_UNDERGROUND_COIN_CASE + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_SMOKE_BALL + const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_FULL_HEAL const EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER const EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN const EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL const EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL - const EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER - const EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK + const EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_MAX_ETHER + const EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK const EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER const EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE const EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE @@ -1797,7 +1800,7 @@ const EVENT_RIVAL_CHERRYGROVE_CITY const EVENT_RIVAL_AZALEA_TOWN const EVENT_RIVAL_TEAM_ROCKET_BASE - const EVENT_RIVAL_UNDERGROUND_PATH + const EVENT_RIVAL_GOLDENROD_UNDERGROUND const EVENT_RIVAL_VICTORY_ROAD const EVENT_RIVAL_OLIVINE_CITY const EVENT_RIVAL_SPROUT_TOWER @@ -1833,10 +1836,10 @@ const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 const EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM const EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM - const EVENT_DAYCARE_MAN_IN_DAYCARE - const EVENT_DAYCARE_MAN_ON_ROUTE_34 - const EVENT_DAYCARE_MON_1 - const EVENT_DAYCARE_MON_2 + const EVENT_DAY_CARE_MAN_IN_DAY_CARE + const EVENT_DAY_CARE_MAN_ON_ROUTE_34 + const EVENT_DAY_CARE_MON_1 + const EVENT_DAY_CARE_MON_2 const EVENT_ILEX_FOREST_FARFETCHD const EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER const EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS @@ -1942,10 +1945,10 @@ const EVENT_OPENED_MT_SILVER const EVENT_FOUGHT_SNORLAX ; 750 const EVENT_LAKE_OF_RAGE_RED_GYARADOS - const EVENT_WAREHOUSE_ENTRANCE_GRANNY - const EVENT_WAREHOUSE_ENTRANCE_GRAMPS - const EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER - const EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER + const EVENT_GOLDENROD_UNDERGROUND_GRANNY + const EVENT_GOLDENROD_UNDERGROUND_GRAMPS + const EVENT_GOLDENROD_UNDERGROUND_OLDER_HAIRCUT_BROTHER + const EVENT_GOLDENROD_UNDERGROUND_YOUNGER_HAIRCUT_BROTHER const EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST const EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM const EVENT_ROUTE_32_FRIEDA_OF_FRIDAY @@ -1986,6 +1989,7 @@ const EVENT_MT_MOON_RIVAL const EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL const EVENT_TELEPORT_GUY +; Kanto itemballs const EVENT_PICKED_UP_FOCUS_BAND const EVENT_ROCK_TUNNEL_1F_ELIXER const EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm index 9478cd123..4c3b23fc9 100644 --- a/constants/gfx_constants.asm +++ b/constants/gfx_constants.asm @@ -1,4 +1,24 @@ -LEN_2BPP_TILE EQU 16 -LEN_1BPP_TILE EQU 8 -TILES_PER_FRAME EQU 6 -TILESIZE EQU $10 +LEN_1BPP_TILE EQU 8 ; bytes +LEN_2BPP_TILE EQU 16 ; bytes + +TILE_WIDTH EQU 8 ; pixels + +NUM_PAL_COLORS EQU 4 + +SCREEN_WIDTH EQU 20 ; tiles +SCREEN_HEIGHT EQU 18 ; tiles +SCREEN_WIDTH_PX EQU SCREEN_WIDTH * TILE_WIDTH ; pixels +SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * TILE_WIDTH ; pixels + +BG_MAP_WIDTH EQU 32 ; tiles +BG_MAP_HEIGHT EQU 32 ; tiles +WMISC_WIDTH EQU 6 * 4 +WMISC_HEIGHT EQU 5 * 4 + +HP_BAR_LENGTH EQU 6 ; tiles +HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels +EXP_BAR_LENGTH EQU 8 ; tiles +EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels + + +PALPACKET_LENGTH EQU $10 diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm new file mode 100644 index 000000000..ae2e97a6b --- /dev/null +++ b/constants/hardware_constants.asm @@ -0,0 +1,135 @@ +; Graciously aped from http://nocash.emubase.de/pandocs.htm . + +; MBC3 +MBC3SRamEnable EQU $0000 +MBC3RomBank EQU $2000 +MBC3SRamBank EQU $4000 +MBC3LatchClock EQU $6000 +MBC3RTC EQU $a000 + +SRAM_DISABLE EQU $00 +SRAM_ENABLE EQU $0a + +NUM_SRAM_BANKS EQU 4 + +RTC_S EQU $08 ; Seconds 0-59 (0-3Bh) +RTC_M EQU $09 ; Minutes 0-59 (0-3Bh) +RTC_H EQU $0a ; Hours 0-23 (0-17h) +RTC_DL EQU $0b ; Lower 8 bits of Day Counter (0-FFh) +RTC_DH EQU $0c ; Upper 1 bit of Day Counter, Carry Bit, Halt Flag + ; Bit 0 Most significant bit of Day Counter (Bit 8) + ; Bit 6 Halt (0=Active, 1=Stop Timer) + ; Bit 7 Day Counter Carry Bit (1=Counter Overflow) + +; interrupt flags +VBLANK EQU 0 +LCD_STAT EQU 1 +TIMER EQU 2 +SERIAL EQU 3 +JOYPAD EQU 4 + +; OAM attribute flags +OAM_TILE_BANK EQU 3 +OAM_OBP_NUM EQU 4 ; non CGB Mode Only +OAM_X_FLIP EQU 5 +OAM_Y_FLIP EQU 6 +OAM_PRIORITY EQU 7 ; 0: OBJ above BG, 1: OBJ behind BG (colors 1-3) + +PALETTE_MASK EQU %111 +VRAM_BANK_1 EQU 1 << OAM_TILE_BANK ; $08 +OBP_NUM EQU 1 << OAM_OBP_NUM ; $10 +X_FLIP EQU 1 << OAM_X_FLIP ; $20 +Y_FLIP EQU 1 << OAM_Y_FLIP ; $40 +BEHIND_BG EQU 1 << OAM_PRIORITY ; $80 + +; Hardware registers +rJOYP EQU $ff00 ; Joypad (R/W) +rSB EQU $ff01 ; Serial transfer data (R/W) +rSC EQU $ff02 ; Serial Transfer Control (R/W) +rSC_ON EQU 7 +rSC_CGB EQU 1 +rSC_CLOCK EQU 0 +rDIV EQU $ff04 ; Divider Register (R/W) +rTIMA EQU $ff05 ; Timer counter (R/W) +rTMA EQU $ff06 ; Timer Modulo (R/W) +rTAC EQU $ff07 ; Timer Control (R/W) +rTAC_ON EQU 2 +rTAC_4096_HZ EQU 0 +rTAC_262144_HZ EQU 1 +rTAC_65536_HZ EQU 2 +rTAC_16384_HZ EQU 3 +rIF EQU $ff0f ; Interrupt Flag (R/W) +rNR10 EQU $ff10 ; Channel 1 Sweep register (R/W) +rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) +rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) +rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) +rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) +rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W) +rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) +rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) +rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) +rNR24 EQU $ff19 ; Channel 2 Frequency hi data (R/W) +rNR30 EQU $ff1a ; Channel 3 Sound on/off (R/W) +rNR31 EQU $ff1b ; Channel 3 Sound Length +rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) +rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) +rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) +rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W) +rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) +rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) +rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) +rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W) +rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) +rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) +rNR52 EQU $ff26 ; Sound on/off +rWave_0 EQU $ff30 +rWave_1 EQU $ff31 +rWave_2 EQU $ff32 +rWave_3 EQU $ff33 +rWave_4 EQU $ff34 +rWave_5 EQU $ff35 +rWave_6 EQU $ff36 +rWave_7 EQU $ff37 +rWave_8 EQU $ff38 +rWave_9 EQU $ff39 +rWave_a EQU $ff3a +rWave_b EQU $ff3b +rWave_c EQU $ff3c +rWave_d EQU $ff3d +rWave_e EQU $ff3e +rWave_f EQU $ff3f +rLCDC EQU $ff40 ; LCD Control (R/W) +rSTAT EQU $ff41 ; LCDC Status (R/W) +rSCY EQU $ff42 ; Scroll Y (R/W) +rSCX EQU $ff43 ; Scroll X (R/W) +rLY EQU $ff44 ; LCDC Y-Coordinate (R) +rLYC EQU $ff45 ; LY Compare (R/W) +rDMA EQU $ff46 ; DMA Transfer and Start Address (W) +rBGP EQU $ff47 ; BG Palette Data (R/W) - Non CGB Mode Only +rOBP0 EQU $ff48 ; Object Palette 0 Data (R/W) - Non CGB Mode Only +rOBP1 EQU $ff49 ; Object Palette 1 Data (R/W) - Non CGB Mode Only +rWY EQU $ff4a ; Window Y Position (R/W) +rWX EQU $ff4b ; Window X Position minus 7 (R/W) +rLCDMODE EQU $ff4c +rKEY1 EQU $ff4d ; CGB Mode Only - Prepare Speed Switch +rVBK EQU $ff4f ; CGB Mode Only - VRAM Bank +rBLCK EQU $ff50 +rHDMA1 EQU $ff51 ; CGB Mode Only - New DMA Source, High +rHDMA2 EQU $ff52 ; CGB Mode Only - New DMA Source, Low +rHDMA3 EQU $ff53 ; CGB Mode Only - New DMA Destination, High +rHDMA4 EQU $ff54 ; CGB Mode Only - New DMA Destination, Low +rHDMA5 EQU $ff55 ; CGB Mode Only - New DMA Length/Mode/Start +rRP EQU $ff56 ; CGB Mode Only - Infrared Communications Port +rBGPI EQU $ff68 ; CGB Mode Only - Background Palette Index +rBGPD EQU $ff69 ; CGB Mode Only - Background Palette Data +rOBPI EQU $ff6a ; CGB Mode Only - Sprite Palette Index +rOBPD EQU $ff6b ; CGB Mode Only - Sprite Palette Data +rUNKNOWN1 EQU $ff6c ; (FEh) Bit 0 (Read/Write) - CGB Mode Only +rSVBK EQU $ff70 ; CGB Mode Only - WRAM Bank +rUNKNOWN2 EQU $ff72 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN3 EQU $ff73 ; (00h) - Bit 0-7 (Read/Write) +rUNKNOWN4 EQU $ff74 ; (00h) - Bit 0-7 (Read/Write) - CGB Mode Only +rUNKNOWN5 EQU $ff75 ; (8Fh) - Bit 4-6 (Read/Write) +rUNKNOWN6 EQU $ff76 ; (00h) - Always 00h (Read Only) +rUNKNOWN7 EQU $ff77 ; (00h) - Always 00h (Read Only) +rIE EQU $ffff ; Interrupt Enable (R/W) diff --git a/constants/input_constants.asm b/constants/input_constants.asm new file mode 100644 index 000000000..3042c3f89 --- /dev/null +++ b/constants/input_constants.asm @@ -0,0 +1,26 @@ +; joypad buttons + const_def + const A_BUTTON_F ; 0 + const B_BUTTON_F ; 1 + const SELECT_F ; 2 + const START_F ; 3 + const D_RIGHT_F ; 4 + const D_LEFT_F ; 5 + const D_UP_F ; 6 + const D_DOWN_F ; 7 + +NO_INPUT EQU %00000000 +A_BUTTON EQU 1 << A_BUTTON_F +B_BUTTON EQU 1 << B_BUTTON_F +SELECT EQU 1 << SELECT_F +START EQU 1 << START_F +D_RIGHT EQU 1 << D_RIGHT_F +D_LEFT EQU 1 << D_LEFT_F +D_UP EQU 1 << D_UP_F +D_DOWN EQU 1 << D_DOWN_F + +BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START +D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN + +R_DPAD EQU %00100000 +R_BUTTONS EQU %00010000 diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 76eaba5ca..5dc506604 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -1,3 +1,9 @@ +; item ids +; indexes for: +; - ItemAttributes (see data/items/item_attributes.asm) +; - ItemDescriptions (see data/items/item_descriptions.asm) +; - ItemEffects (see engine/item_effects.asm) +; - ItemNames (see data/items/item_names.asm) const_def const NO_ITEM ; $00 const MASTER_BALL ; $01 @@ -191,6 +197,7 @@ const MIRAGE_MAIL ; $BD const ITEM_BE ; $BE +; see data/tmhm_moves.asm for moves add_tm DYNAMICPUNCH ; $BF add_tm HEADBUTT ; $C0 add_tm CURSE ; $C1 @@ -221,7 +228,7 @@ add_tm RETURN ; $DA add_tm DIG ; $DB const ITEM_DC ; $DC - add_tm PSYCHIC ; $DD + add_tm PSYCHIC_M ; $DD add_tm SHADOW_BALL ; $DE add_tm MUD_SLAP ; $DF add_tm DOUBLE_TEAM ; $E0 @@ -243,7 +250,7 @@ add_tm FIRE_PUNCH ; $F0 add_tm FURY_CUTTER ; $F1 add_tm NIGHTMARE ; $F2 -NUM_TMS = const_value - TM01 - 2 +NUM_TMS = const_value - TM01 - 2 ; discount ITEM_C3 and ITEM_DC add_hm CUT ; $F3 add_hm FLY ; $F4 @@ -253,27 +260,37 @@ NUM_TMS = const_value - TM01 - 2 add_hm WHIRLPOOL ; $F8 add_hm WATERFALL ; $F9 NUM_HMS = const_value - HM01 - const HM_08 ; $FA + const ITEM_FA ; $FA add_mt FLAMETHROWER add_mt THUNDERBOLT add_mt ICE_BEAM +NUM_TM_HM_TUTOR = __enum__ +- 1 -ITEM_FROM_MEM EQU $ff - +ITEM_FROM_MEM EQU $FF ; leftovers from red -SAFARI_BALL EQU 8 ; MOON_STONE -MOON_STONE_RED EQU 10 ; BURN_HEAL -FULL_HEAL_RED EQU 52 ; X_SPEED -MAIL_MAX_LENGTH EQU $20 +SAFARI_BALL EQU $08 ; MOON_STONE +MOON_STONE_RED EQU $0A ; BURN_HEAL +FULL_HEAL_RED EQU $34 ; X_SPEED + +; mail +MAIL_MSG_LENGTH EQU $20 +MAILBOX_CAPACITY EQU 10 +MAIL_STRUCT_LENGTH EQU $2f ; mailmsg struct -; pockets +; pack pockets ITEM EQU 1 KEY_ITEM EQU 2 BALL EQU 3 TM_HM EQU 4 +; pack pocket sizes +MAX_ITEMS EQU 20 +MAX_KEY_ITEMS EQU 25 +MAX_BALLS EQU 12 +MAX_PC_ITEMS EQU 50 + ; item actions CANT_SELECT EQU 1 << 6 CANT_TOSS EQU 1 << 7 @@ -281,7 +298,6 @@ CANT_TOSS EQU 1 << 7 ; held item effects const_def - const HELD_NONE const HELD_BERRY const HELD_2 @@ -350,12 +366,13 @@ const_value SET 70 const HELD_ESCAPE const HELD_CRITICAL_UP const HELD_QUICK_CLAW - const HELD_TRADE_EVOLVE + const HELD_FLINCH const HELD_AMULET_COIN const HELD_BRIGHTPOWDER const HELD_78 const HELD_FOCUS_BAND +; item_attribute struct members (see data/items/item_attributes.asm) const_def const ITEMATTR_PRICE const ITEMATTR_PRICE_HI @@ -364,13 +381,15 @@ const_value SET 70 const ITEMATTR_PERMISSIONS const ITEMATTR_POCKET const ITEMATTR_HELP -NUM_ITEMATTRS EQU const_value +ITEMATTR_STRUCT_LENGTH EQU const_value -ITEMMENU_NOUSE EQU 0 -ITEMMENU_CURRENT EQU 4 -ITEMMENU_PARTY EQU 5 -ITEMMENU_CLOSE EQU 6 +; item menu types +ITEMMENU_NOUSE EQU 0 +ITEMMENU_CURRENT EQU 4 +ITEMMENU_PARTY EQU 5 +ITEMMENU_CLOSE EQU 6 +; mart types (see engine/mart.asm) const_def const MARTTYPE_STANDARD const MARTTYPE_BITTER @@ -378,6 +397,7 @@ ITEMMENU_CLOSE EQU 6 const MARTTYPE_PHARMACY const MARTTYPE_ROOFTOP +; Marts indexes (see data/items/marts.asm) const_def const MART_CHERRYGROVE const MART_CHERRYGROVE_DEX @@ -414,7 +434,8 @@ ITEMMENU_CLOSE EQU 6 const MART_INDIGO_PLATEAU const MART_UNDERGROUND -; PartyMenuActionText +; PartyMenuActionText values +; GetPartyMenuTilemapPointers arguments (see engine/party_menu.asm) const_def const PARTYMENUACTION_CHOOSE_POKEMON const PARTYMENUACTION_HEALING_ITEM @@ -426,7 +447,7 @@ ITEMMENU_CLOSE EQU 6 const PARTYMENUACTION_GIVE_MON_FEMALE ; unused const PARTYMENUACTION_GIVE_ITEM const PARTYMENUACTION_MOBILE ; mobile - +; PrintPartyMenuActionText arguments (see engine/party_menu.asm) const_value set $f0 const PARTYMENUTEXT_HEAL_PSN const PARTYMENUTEXT_HEAL_BRN diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm index 5aa14f972..4a15928f0 100644 --- a/constants/landmark_constants.asm +++ b/constants/landmark_constants.asm @@ -1,6 +1,7 @@ - +; Landmarks indexes (see data/maps/landmarks.asm) const_def +; Johto landmarks const SPECIAL_MAP ; 00 const NEW_BARK_TOWN ; 01 const ROUTE_29 ; 02 @@ -50,7 +51,6 @@ const SILVER_CAVE ; 2e KANTO_LANDMARK EQU const_value - const PALLET_TOWN ; 2f const ROUTE_1 ; 30 const VIRIDIAN_CITY ; 31 @@ -63,7 +63,7 @@ KANTO_LANDMARK EQU const_value const ROUTE_24 ; 38 const ROUTE_25 ; 39 const ROUTE_5 ; 3a - const UNDERGROUND ; 3b + const UNDERGROUND_PATH ; 3b const ROUTE_6 ; 3c const VERMILION_CITY ; 3d const DIGLETTS_CAVE ; 3e diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 1ed12662f..1af4215a1 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -1,497 +1,56 @@ GROUP_N_A EQU -1 MAP_N_A EQU -1 - GROUP_NONE EQU 0 MAP_NONE EQU 0 -; map group ids +; map header fields (see maps/map_headers.asm) const_def - newgroup ; 1 - - mapgroup OLIVINE_POKECENTER_1F, 4, 5 ; 1 - mapgroup OLIVINE_GYM, 8, 5 ; 2 - mapgroup OLIVINE_TIMS_HOUSE, 4, 4 ; 3 - mapgroup OLIVINE_HOUSE_BETA, 4, 4 ; 4 - mapgroup OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5 - mapgroup OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6 - mapgroup OLIVINE_CAFE, 4, 4 ; 7 - mapgroup OLIVINE_MART, 4, 6 ; 8 - mapgroup ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9 - mapgroup ROUTE_39_BARN, 4, 4 ; 10 - mapgroup ROUTE_39_FARMHOUSE, 4, 4 ; 11 - mapgroup ROUTE_38, 9, 20 ; 12 - mapgroup ROUTE_39, 18, 10 ; 13 - mapgroup OLIVINE_CITY, 18, 20 ; 14 - - newgroup ; 2 - - mapgroup MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1 - mapgroup MAHOGANY_GYM, 9, 5 ; 2 - mapgroup MAHOGANY_POKECENTER_1F, 4, 5 ; 3 - mapgroup ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4 - mapgroup ROUTE_42, 9, 30 ; 5 - mapgroup ROUTE_44, 9, 30 ; 6 - mapgroup MAHOGANY_TOWN, 9, 10 ; 7 - - newgroup ; 3 - - mapgroup SPROUT_TOWER_1F, 8, 10 ; 1 - mapgroup SPROUT_TOWER_2F, 8, 10 ; 2 - mapgroup SPROUT_TOWER_3F, 8, 10 ; 3 - mapgroup TIN_TOWER_1F, 9, 10 ; 4 - mapgroup TIN_TOWER_2F, 9, 10 ; 5 - mapgroup TIN_TOWER_3F, 9, 10 ; 6 - mapgroup TIN_TOWER_4F, 9, 10 ; 7 - mapgroup TIN_TOWER_5F, 9, 10 ; 8 - mapgroup TIN_TOWER_6F, 9, 10 ; 9 - mapgroup TIN_TOWER_7F, 9, 10 ; 10 - mapgroup TIN_TOWER_8F, 9, 10 ; 11 - mapgroup TIN_TOWER_9F, 9, 10 ; 12 - mapgroup BURNED_TOWER_1F, 9, 10 ; 13 - mapgroup BURNED_TOWER_B1F, 9, 10 ; 14 - mapgroup NATIONAL_PARK, 27, 20 ; 15 - mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16 - mapgroup RADIO_TOWER_1F, 4, 9 ; 17 - mapgroup RADIO_TOWER_2F, 4, 9 ; 18 - mapgroup RADIO_TOWER_3F, 4, 9 ; 19 - mapgroup RADIO_TOWER_4F, 4, 9 ; 20 - mapgroup RADIO_TOWER_5F, 4, 9 ; 21 - mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22 - mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23 - mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24 - mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25 - mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26 - mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27 - mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28 - mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29 - mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30 - mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31 - mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32 - mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33 - mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34 - mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35 - mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36 - mapgroup UNION_CAVE_1F, 18, 10 ; 37 - mapgroup UNION_CAVE_B1F, 18, 10 ; 38 - mapgroup UNION_CAVE_B2F, 18, 10 ; 39 - mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40 - mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41 - mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42 - mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43 - mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44 - mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45 - mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46 - mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47 - mapgroup MAHOGANY_MART_1F, 4, 4 ; 48 - mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49 - mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50 - mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51 - mapgroup ILEX_FOREST, 27, 15 ; 52 - mapgroup WAREHOUSE_ENTRANCE, 18, 15 ; 53 - mapgroup UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54 - mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55 - mapgroup UNDERGROUND_WAREHOUSE, 9, 10 ; 56 - mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57 - mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58 - mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59 - mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60 - mapgroup ICE_PATH_1F, 18, 20 ; 61 - mapgroup ICE_PATH_B1F, 18, 10 ; 62 - mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63 - mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64 - mapgroup ICE_PATH_B3F, 9, 10 ; 65 - mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66 - mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67 - mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68 - mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69 - mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70 - mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71 - mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72 - mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73 - mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74 - mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75 - mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76 - mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77 - mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78 - mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79 - mapgroup DRAGONS_DEN_1F, 9, 5 ; 80 - mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81 - mapgroup DRAGON_SHRINE, 5, 5 ; 82 - mapgroup TOHJO_FALLS, 9, 15 ; 83 - mapgroup DIGLETTS_CAVE, 18, 10 ; 84 - mapgroup MOUNT_MOON, 9, 15 ; 85 - mapgroup UNDERGROUND, 14, 3 ; 86 - mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87 - mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88 - mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89 - mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90 - mapgroup VICTORY_ROAD, 36, 10 ; 91 - - newgroup ; 4 - - mapgroup ECRUTEAK_HOUSE, 9, 10 ; 1 - mapgroup WISE_TRIOS_ROOM, 4, 4 ; 2 - mapgroup ECRUTEAK_POKECENTER_1F, 4, 5 ; 3 - mapgroup ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4 - mapgroup DANCE_THEATRE, 7, 6 ; 5 - mapgroup ECRUTEAK_MART, 4, 6 ; 6 - mapgroup ECRUTEAK_GYM, 9, 5 ; 7 - mapgroup ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8 - mapgroup ECRUTEAK_CITY, 18, 20 ; 9 - - newgroup ; 5 - - mapgroup BLACKTHORN_GYM_1F, 9, 5 ; 1 - mapgroup BLACKTHORN_GYM_2F, 9, 5 ; 2 - mapgroup BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3 - mapgroup BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4 - mapgroup BLACKTHORN_MART, 4, 6 ; 5 - mapgroup BLACKTHORN_POKECENTER_1F, 4, 5 ; 6 - mapgroup MOVE_DELETERS_HOUSE, 4, 4 ; 7 - mapgroup ROUTE_45, 45, 10 ; 8 - mapgroup ROUTE_46, 18, 10 ; 9 - mapgroup BLACKTHORN_CITY, 18, 20 ; 10 - - newgroup ; 6 - - mapgroup CINNABAR_POKECENTER_1F, 4, 5 ; 1 - mapgroup CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2 - mapgroup ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3 - mapgroup SEAFOAM_GYM, 4, 5 ; 4 - mapgroup ROUTE_19, 18, 10 ; 5 - mapgroup ROUTE_20, 9, 30 ; 6 - mapgroup ROUTE_21, 18, 10 ; 7 - mapgroup CINNABAR_ISLAND, 9, 10 ; 8 - - newgroup ; 7 - - mapgroup CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1 - mapgroup CERULEAN_POLICE_STATION, 4, 4 ; 2 - mapgroup CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3 - mapgroup CERULEAN_POKECENTER_1F, 4, 5 ; 4 - mapgroup CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5 - mapgroup CERULEAN_GYM, 8, 5 ; 6 - mapgroup CERULEAN_MART, 4, 6 ; 7 - mapgroup ROUTE_10_POKECENTER_1F, 4, 5 ; 8 - mapgroup ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9 - mapgroup POWER_PLANT, 9, 10 ; 10 - mapgroup BILLS_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_4, 9, 20 ; 12 - mapgroup ROUTE_9, 9, 30 ; 13 - mapgroup ROUTE_10_NORTH, 9, 10 ; 14 - mapgroup ROUTE_24, 9, 10 ; 15 - mapgroup ROUTE_25, 9, 30 ; 16 - mapgroup CERULEAN_CITY, 18, 20 ; 17 - - newgroup ; 8 - - mapgroup AZALEA_POKECENTER_1F, 4, 5 ; 1 - mapgroup CHARCOAL_KILN, 4, 4 ; 2 - mapgroup AZALEA_MART, 4, 6 ; 3 - mapgroup KURTS_HOUSE, 4, 8 ; 4 - mapgroup AZALEA_GYM, 8, 5 ; 5 - mapgroup ROUTE_33, 9, 10 ; 6 - mapgroup AZALEA_TOWN, 9, 20 ; 7 - - newgroup ; 9 - - mapgroup LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1 - mapgroup LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2 - mapgroup ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3 - mapgroup ROUTE_43_GATE, 4, 5 ; 4 - mapgroup ROUTE_43, 27, 10 ; 5 - mapgroup LAKE_OF_RAGE, 18, 20 ; 6 - - newgroup ; 10 - - mapgroup ROUTE_32, 45, 10 ; 1 - mapgroup ROUTE_35, 18, 10 ; 2 - mapgroup ROUTE_36, 9, 30 ; 3 - mapgroup ROUTE_37, 9, 10 ; 4 - mapgroup VIOLET_CITY, 18, 20 ; 5 - mapgroup VIOLET_MART, 4, 6 ; 6 - mapgroup VIOLET_GYM, 8, 5 ; 7 - mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8 - mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10 - mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12 - mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13 - mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14 - mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15 - mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16 - mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17 - - newgroup ; 11 - - mapgroup ROUTE_34, 27, 10 ; 1 - mapgroup GOLDENROD_CITY, 18, 20 ; 2 - mapgroup GOLDENROD_GYM, 9, 10 ; 3 - mapgroup GOLDENROD_BIKE_SHOP, 4, 4 ; 4 - mapgroup GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5 - mapgroup GOLDENROD_BILLS_HOUSE, 4, 4 ; 6 - mapgroup GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7 - mapgroup GOLDENROD_FLOWER_SHOP, 4, 4 ; 8 - mapgroup GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup GOLDENROD_NAME_RATER, 4, 4 ; 10 - mapgroup GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11 - mapgroup GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12 - mapgroup GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13 - mapgroup GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14 - mapgroup GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15 - mapgroup GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16 - mapgroup GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17 - mapgroup GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18 - mapgroup GOLDENROD_GAME_CORNER, 7, 10 ; 19 - mapgroup GOLDENROD_POKECENTER_1F, 4, 5 ; 20 - mapgroup GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16 ; 21 - mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5 ; 22 - mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 23 - mapgroup DAYCARE, 4, 5 ; 24 - - newgroup ; 12 - - mapgroup ROUTE_6, 9, 10 ; 1 - mapgroup ROUTE_11, 9, 20 ; 2 - mapgroup VERMILION_CITY, 18, 20 ; 3 - mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4 - mapgroup VERMILION_POKECENTER_1F, 4, 5 ; 5 - mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6 - mapgroup POKEMON_FAN_CLUB, 4, 5 ; 7 - mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8 - mapgroup VERMILION_MART, 4, 6 ; 9 - mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10 - mapgroup VERMILION_GYM, 9, 5 ; 11 - mapgroup ROUTE_6_SAFFRON_GATE, 4, 5 ; 12 - mapgroup ROUTE_6_UNDERGROUND_ENTRANCE, 4, 4 ; 13 - - newgroup ; 13 - - mapgroup ROUTE_1, 18, 10 ; 1 - mapgroup PALLET_TOWN, 9, 10 ; 2 - mapgroup REDS_HOUSE_1F, 4, 4 ; 3 - mapgroup REDS_HOUSE_2F, 4, 4 ; 4 - mapgroup BLUES_HOUSE, 4, 4 ; 5 - mapgroup OAKS_LAB, 6, 5 ; 6 - - newgroup ; 14 - - mapgroup ROUTE_3, 9, 30 ; 1 - mapgroup PEWTER_CITY, 18, 20 ; 2 - mapgroup PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3 - mapgroup PEWTER_GYM, 7, 5 ; 4 - mapgroup PEWTER_MART, 4, 6 ; 5 - mapgroup PEWTER_POKECENTER_1F, 4, 5 ; 6 - mapgroup PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7 - mapgroup PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8 - - newgroup ; 15 - - mapgroup OLIVINE_PORT, 18, 10 ; 1 - mapgroup VERMILION_PORT, 18, 10 ; 2 - mapgroup FAST_SHIP_1F, 9, 16 ; 3 - mapgroup FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4 - mapgroup FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5 - mapgroup FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6 - mapgroup FAST_SHIP_B1F, 8, 16 ; 7 - mapgroup OLIVINE_PORT_PASSAGE, 9, 10 ; 8 - mapgroup VERMILION_PORT_PASSAGE, 9, 10 ; 9 - mapgroup MOUNT_MOON_SQUARE, 9, 15 ; 10 - mapgroup MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11 - mapgroup TIN_TOWER_ROOF, 9, 10 ; 12 - - newgroup ; 16 - - mapgroup ROUTE_23, 9, 10 ; 1 - mapgroup INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2 - mapgroup WILLS_ROOM, 9, 5 ; 3 - mapgroup KOGAS_ROOM, 9, 5 ; 4 - mapgroup BRUNOS_ROOM, 9, 5 ; 5 - mapgroup KARENS_ROOM, 9, 5 ; 6 - mapgroup LANCES_ROOM, 12, 5 ; 7 - mapgroup HALL_OF_FAME, 7, 5 ; 8 - - newgroup ; 17 - - mapgroup ROUTE_13, 9, 30 ; 1 - mapgroup ROUTE_14, 18, 10 ; 2 - mapgroup ROUTE_15, 9, 20 ; 3 - mapgroup ROUTE_18, 9, 10 ; 4 - mapgroup FUCHSIA_CITY, 18, 20 ; 5 - mapgroup FUCHSIA_MART, 4, 6 ; 6 - mapgroup SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7 - mapgroup FUCHSIA_GYM, 9, 5 ; 8 - mapgroup FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup FUCHSIA_POKECENTER_1F, 4, 5 ; 10 - mapgroup FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11 - mapgroup SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12 - mapgroup ROUTE_15_FUCHSIA_GATE, 4, 5 ; 13 - - newgroup ; 18 - - mapgroup ROUTE_8, 9, 20 ; 1 - mapgroup ROUTE_12, 27, 10 ; 2 - mapgroup ROUTE_10_SOUTH, 9, 10 ; 3 - mapgroup LAVENDER_TOWN, 9, 10 ; 4 - mapgroup LAVENDER_POKECENTER_1F, 4, 5 ; 5 - mapgroup LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6 - mapgroup MR_FUJIS_HOUSE, 4, 5 ; 7 - mapgroup LAVENDER_TOWN_SPEECH_HOUSE, 4, 4 ; 8 - mapgroup LAVENDER_NAME_RATER, 4, 4 ; 9 - mapgroup LAVENDER_MART, 4, 6 ; 10 - mapgroup SOUL_HOUSE, 4, 5 ; 11 - mapgroup LAV_RADIO_TOWER_1F, 4, 10 ; 12 - mapgroup ROUTE_8_SAFFRON_GATE, 4, 5 ; 13 - mapgroup ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14 - - newgroup ; 19 - - mapgroup ROUTE_28, 9, 20 ; 1 - mapgroup SILVER_CAVE_OUTSIDE, 18, 20 ; 2 - mapgroup SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3 - mapgroup ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4 - - newgroup ; 20 - - mapgroup POKECENTER_2F, 4, 8 ; 1 - mapgroup TRADE_CENTER, 4, 5 ; 2 - mapgroup COLOSSEUM, 4, 5 ; 3 - mapgroup TIME_CAPSULE, 4, 5 ; 4 - mapgroup MOBILE_TRADE_ROOM_MOBILE, 4, 5 ; 5 - mapgroup MOBILE_BATTLE_ROOM, 4, 5 ; 6 - - newgroup ; 21 - - mapgroup ROUTE_7, 9, 10 ; 1 - mapgroup ROUTE_16, 9, 10 ; 2 - mapgroup ROUTE_17, 45, 10 ; 3 - mapgroup CELADON_CITY, 18, 20 ; 4 - mapgroup CELADON_DEPT_STORE_1F, 4, 8 ; 5 - mapgroup CELADON_DEPT_STORE_2F, 4, 8 ; 6 - mapgroup CELADON_DEPT_STORE_3F, 4, 8 ; 7 - mapgroup CELADON_DEPT_STORE_4F, 4, 8 ; 8 - mapgroup CELADON_DEPT_STORE_5F, 4, 8 ; 9 - mapgroup CELADON_DEPT_STORE_6F, 4, 8 ; 10 - mapgroup CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11 - mapgroup CELADON_MANSION_1F, 5, 4 ; 12 - mapgroup CELADON_MANSION_2F, 5, 4 ; 13 - mapgroup CELADON_MANSION_3F, 5, 4 ; 14 - mapgroup CELADON_MANSION_ROOF, 5, 4 ; 15 - mapgroup CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16 - mapgroup CELADON_POKECENTER_1F, 4, 5 ; 17 - mapgroup CELADON_POKECENTER_2F_BETA, 4, 8 ; 18 - mapgroup CELADON_GAME_CORNER, 7, 10 ; 19 - mapgroup CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20 - mapgroup CELADON_GYM, 9, 5 ; 21 - mapgroup CELADON_CAFE, 4, 6 ; 22 - mapgroup ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23 - mapgroup ROUTE_16_GATE, 4, 5 ; 24 - mapgroup ROUTE_7_SAFFRON_GATE, 4, 5 ; 25 - mapgroup ROUTE_17_18_GATE, 4, 5 ; 26 - - newgroup ; 22 - - mapgroup ROUTE_40, 18, 10 ; 1 - mapgroup ROUTE_41, 27, 25 ; 2 - mapgroup CIANWOOD_CITY, 27, 15 ; 3 - mapgroup MANIAS_HOUSE, 4, 4 ; 4 - mapgroup CIANWOOD_GYM, 9, 5 ; 5 - mapgroup CIANWOOD_POKECENTER_1F, 4, 5 ; 6 - mapgroup CIANWOOD_PHARMACY, 4, 4 ; 7 - mapgroup CIANWOOD_CITY_PHOTO_STUDIO, 4, 4 ; 8 - mapgroup CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup POKE_SEERS_HOUSE, 4, 4 ; 10 - mapgroup BATTLE_TOWER_1F, 5, 8 ; 11 - mapgroup BATTLE_TOWER_BATTLE_ROOM, 4, 4 ; 12 - mapgroup BATTLE_TOWER_ELEVATOR, 2, 2 ; 13 - mapgroup BATTLE_TOWER_HALLWAY, 2, 11 ; 14 - mapgroup ROUTE_40_BATTLE_TOWER_GATE, 4, 5 ; 15 - mapgroup BATTLE_TOWER_OUTSIDE, 14, 10 ; 16 - - newgroup ; 23 - - mapgroup ROUTE_2, 27, 10 ; 1 - mapgroup ROUTE_22, 9, 20 ; 2 - mapgroup VIRIDIAN_CITY, 18, 20 ; 3 - mapgroup VIRIDIAN_GYM, 9, 5 ; 4 - mapgroup VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5 - mapgroup TRAINER_HOUSE_1F, 7, 5 ; 6 - mapgroup TRAINER_HOUSE_B1F, 8, 5 ; 7 - mapgroup VIRIDIAN_MART, 4, 6 ; 8 - mapgroup VIRIDIAN_POKECENTER_1F, 4, 5 ; 9 - mapgroup VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10 - mapgroup ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_2_GATE, 4, 5 ; 12 - mapgroup VICTORY_ROAD_GATE, 9, 10 ; 13 - - newgroup ; 24 - - mapgroup ROUTE_26, 54, 10 ; 1 - mapgroup ROUTE_27, 9, 40 ; 2 - mapgroup ROUTE_29, 9, 30 ; 3 - mapgroup NEW_BARK_TOWN, 9, 10 ; 4 - mapgroup ELMS_LAB, 6, 5 ; 5 - mapgroup KRISS_HOUSE_1F, 4, 5 ; 6 - mapgroup KRISS_HOUSE_2F, 3, 4 ; 7 - mapgroup KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8 - mapgroup ELMS_HOUSE, 4, 4 ; 9 - mapgroup ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10 - mapgroup ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 - mapgroup ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12 - mapgroup ROUTE_29_46_GATE, 4, 5 ; 13 - - newgroup ; 25 - - mapgroup ROUTE_5, 9, 10 ; 1 - mapgroup SAFFRON_CITY, 18, 20 ; 2 - mapgroup FIGHTING_DOJO, 6, 5 ; 3 - mapgroup SAFFRON_GYM, 9, 10 ; 4 - mapgroup SAFFRON_MART, 4, 6 ; 5 - mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6 - mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7 - mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8 - mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9 - mapgroup SILPH_CO_1F, 4, 8 ; 10 - mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11 - mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12 - mapgroup ROUTE_5_UNDERGROUND_ENTRANCE, 4, 4 ; 13 - mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14 - mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15 - - newgroup ; 26 - - mapgroup ROUTE_30, 27, 10 ; 1 - mapgroup ROUTE_31, 9, 20 ; 2 - mapgroup CHERRYGROVE_CITY, 9, 20 ; 3 - mapgroup CHERRYGROVE_MART, 4, 6 ; 4 - mapgroup CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5 - mapgroup CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6 - mapgroup GUIDE_GENTS_HOUSE, 4, 4 ; 7 - mapgroup CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8 - mapgroup ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9 - mapgroup MR_POKEMONS_HOUSE, 4, 4 ; 10 - mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11 - + const MAPHEADER_MAPHEADER2_BANK ; 0 + const MAPHEADER_TILESET ; 1 + const MAPHEADER_ENVIRONMENT ; 2 + const MAPHEADER_MAPHEADER2 ; 3 + const MAPHEADER_MAPHEADER2_HI ; 4 + const MAPHEADER_LOCATION ; 5 + const MAPHEADER_MUSIC ; 6 + const MAPHEADER_PALETTE ; 7 + const MAPHEADER_FISHGROUP ; 8 +NUM_MAPHEADER_ATTRIBUTES EQU const_value + +; map environments (wEnvironment) +const_value SET 1 + const TOWN + const ROUTE + const INDOOR + const CAVE + const ENVIRONMENT_5 + const GATE + const DUNGEON -; elevator floors +; map palettes (wEnvironment) + const_def + const PALETTE_AUTO + const PALETTE_DAY + const PALETTE_NITE + const PALETTE_MORN + const PALETTE_DARK +; fish groups const_def - const _B4F - const _B3F - const _B2F - const _B1F - const _1F - const _2F - const _3F - const _4F - const _5F - const _6F - const _7F - const _8F - const _9F - const _10F - const _11F - const _ROOF + const FISHGROUP_NONE + const FISHGROUP_SHORE + const FISHGROUP_OCEAN + const FISHGROUP_LAKE + const FISHGROUP_POND + const FISHGROUP_DRATINI + const FISHGROUP_QWILFISH_SWARM + const FISHGROUP_REMORAID_SWARM + const FISHGROUP_GYARADOS + const FISHGROUP_DRATINI_2 + const FISHGROUP_WHIRL_ISLANDS + const FISHGROUP_QWILFISH + const FISHGROUP_REMORAID + const FISHGROUP_QWILFISH_NO_SWARM + ; connection directions const_def @@ -500,23 +59,15 @@ MAP_NONE EQU 0 const SOUTH_F const NORTH_F +; MapConnections const_def shift_const EAST shift_const WEST shift_const SOUTH shift_const NORTH -; permissions -const_value SET 1 - const TOWN - const ROUTE - const INDOOR - const CAVE - const PERM_5 - const GATE - const DUNGEON -; object struct +; object_struct members (see macros/wram.asm) const_def const OBJECT_SPRITE ; 00 const OBJECT_MAP_OBJECT_INDEX ; 01 @@ -553,7 +104,7 @@ const_value SET 1 const OBJECT_RANGE ; 20 ; 33-39 are not used -; map object struct +; map_object struct members (see macros/wram.asm) const_def const MAPOBJECT_OBJECT_STRUCT_ID ; 0 const MAPOBJECT_SPRITE ; 1 @@ -576,46 +127,25 @@ OBJECT_LENGTH EQU const_value MAPOBJECT_SCREEN_HEIGHT EQU 11 MAPOBJECT_SCREEN_WIDTH EQU 12 +; object_struct OBJECT_FACING values OW_DOWN EQU DOWN << 2 OW_UP EQU UP << 2 OW_LEFT EQU LEFT << 2 OW_RIGHT EQU RIGHT << 2 - const_def - const EMOTE_SHOCK ; 0 - const EMOTE_QUESTION ; 1 - const EMOTE_HAPPY ; 2 - const EMOTE_SAD ; 3 - const EMOTE_HEART ; 4 - const EMOTE_BOLT ; 5 - const EMOTE_SLEEP ; 6 - const EMOTE_FISH ; 7 - const EMOTE_SHADOW ; 8 - const EMOTE_ROD ; 9 - const EMOTE_BOULDER_DUST ; 10 - const EMOTE_0B ; 11 -EMOTE_MEM EQU -1 - - const_def - const SIGNPOST_READ - const SIGNPOST_UP - const SIGNPOST_DOWN - const SIGNPOST_RIGHT - const SIGNPOST_LEFT - const SIGNPOST_IFSET - const SIGNPOST_IFNOTSET - const SIGNPOST_ITEM - const SIGNPOST_COPY - -; I'm relocating spawn constants here, so that they can be used anywhere in the disassembly. +; object_struct OBJECT_FLAGS1 bit flags +INVISIBLE EQU 0 +FIXED_FACING EQU 2 +SLIDING EQU 3 +EMOTE_OBJECT EQU 7 +; SpawnPoints indexes (see data/maps/spawn_points.asm) const_value = -1 const SPAWN_N_A - const SPAWN_HOME const SPAWN_DEBUG - +; kanto const SPAWN_PALLET const SPAWN_VIRIDIAN const SPAWN_PEWTER @@ -628,7 +158,7 @@ const_value = -1 const SPAWN_FUCHSIA const SPAWN_CINNABAR const SPAWN_INDIGO - +; johto const SPAWN_NEW_BARK const SPAWN_CHERRYGROVE const SPAWN_VIOLET @@ -645,28 +175,48 @@ const_value = -1 const SPAWN_FAST_SHIP NUM_SPAWNS EQU const_value + +; TryBGEvent arguments (see engine/events.asm) const_def - const PALETTE_AUTO - const PALETTE_DAY - const PALETTE_NITE - const PALETTE_MORN - const PALETTE_DARK + const BGEVENT_READ + const BGEVENT_UP + const BGEVENT_DOWN + const BGEVENT_RIGHT + const BGEVENT_LEFT + const BGEVENT_IFSET + const BGEVENT_IFNOTSET + const BGEVENT_ITEM + const BGEVENT_COPY + +; object_event types +; TryObjectEvent arguments (see engine/events.asm) + const_def + const OBJECTTYPE_SCRIPT + const OBJECTTYPE_ITEMBALL + const OBJECTTYPE_TRAINER + const OBJECTTYPE_3 + const OBJECTTYPE_4 + const OBJECTTYPE_5 + const OBJECTTYPE_6 -INVISIBLE EQU 0 -FIXED_FACING EQU 2 -SLIDING EQU 3 -EMOTE_OBJECT EQU 7 +; EmotesPointers indexes (see engine/overworld.asm) const_def - const PERSONTYPE_SCRIPT - const PERSONTYPE_ITEMBALL - const PERSONTYPE_TRAINER - const PERSONTYPE_3 - const PERSONTYPE_4 - const PERSONTYPE_5 - const PERSONTYPE_6 + const EMOTE_SHOCK ; 0 + const EMOTE_QUESTION ; 1 + const EMOTE_HAPPY ; 2 + const EMOTE_SAD ; 3 + const EMOTE_HEART ; 4 + const EMOTE_BOLT ; 5 + const EMOTE_SLEEP ; 6 + const EMOTE_FISH ; 7 + const EMOTE_SHADOW ; 8 + const EMOTE_ROD ; 9 + const EMOTE_BOULDER_DUST ; 10 + const EMOTE_GRASS_RUSTLE ; 11 +EMOTE_MEM EQU -1 -; fruit trees +; FruitTreeItems indexes (see data/items/fruit_trees.asm) const_value SET 1 const FRUITTREE_ROUTE_29 ; 01 const FRUITTREE_ROUTE_30_1 ; 02 @@ -700,6 +250,27 @@ const_value SET 1 const FRUITTREE_FUCHSIA_CITY ; 1e NUM_FRUIT_TREES EQU const_value +- 1 +; elevator floors +; used by `elevfloor` + const_def + const FLOOR_B4F + const FLOOR_B3F + const FLOOR_B2F + const FLOOR_B1F + const FLOOR_1F + const FLOOR_2F + const FLOOR_3F + const FLOOR_4F + const FLOOR_5F + const FLOOR_6F + const FLOOR_7F + const FLOOR_8F + const FLOOR_9F + const FLOOR_10F + const FLOOR_11F + const FLOOR_ROOF + +; command queue members CMDQUEUE_TYPE EQU 0 CMDQUEUE_ADDR EQU 1 CMDQUEUE_03 EQU 3 @@ -708,4 +279,9 @@ CMDQUEUE_05 EQU 5 CMDQUEUE_ENTRY_SIZE EQU 6 CMDQUEUE_CAPACITY EQU 4 +; command queue types CMDQUEUE_STONETABLE EQU 2 + +; see engine/overworld.asm +MAX_OUTDOOR_SPRITES EQU 23 +SPRITE_GFX_LIST_CAPACITY EQU $20 diff --git a/constants/map_dimension_constants.asm b/constants/map_dimension_constants.asm new file mode 100644 index 000000000..be12cca02 --- /dev/null +++ b/constants/map_dimension_constants.asm @@ -0,0 +1,488 @@ +newgroup: macro +const_value = const_value + 1 + enum_start 1 +endm + +mapgroup: macro +;\1: map id +;\2: height: in blocks +;\3: width: in blocks +GROUP_\1 EQU const_value + enum MAP_\1 +\1_HEIGHT EQU \2 +\1_WIDTH EQU \3 +endm + +; map group ids +; `newgroup` indexes are for: +; - MapGroupPointers (see maps/map_headers.asm) +; - OutdoorSprites (see data/maps/outdoor_sprites.asm) +; - MapGroupRoofs (see data/maps/mapgroup_roofs.asm) +; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm) + const_def + + newgroup ; 1 + + mapgroup OLIVINE_POKECENTER_1F, 4, 5 ; 1 + mapgroup OLIVINE_GYM, 8, 5 ; 2 + mapgroup OLIVINE_TIMS_HOUSE, 4, 4 ; 3 + mapgroup OLIVINE_HOUSE_BETA, 4, 4 ; 4 + mapgroup OLIVINE_PUNISHMENT_SPEECH_HOUSE, 4, 4 ; 5 + mapgroup OLIVINE_GOOD_ROD_HOUSE, 4, 4 ; 6 + mapgroup OLIVINE_CAFE, 4, 4 ; 7 + mapgroup OLIVINE_MART, 4, 6 ; 8 + mapgroup ROUTE_38_ECRUTEAK_GATE, 4, 5 ; 9 + mapgroup ROUTE_39_BARN, 4, 4 ; 10 + mapgroup ROUTE_39_FARMHOUSE, 4, 4 ; 11 + mapgroup ROUTE_38, 9, 20 ; 12 + mapgroup ROUTE_39, 18, 10 ; 13 + mapgroup OLIVINE_CITY, 18, 20 ; 14 + + newgroup ; 2 + + mapgroup MAHOGANY_RED_GYARADOS_SPEECH_HOUSE, 4, 4 ; 1 + mapgroup MAHOGANY_GYM, 9, 5 ; 2 + mapgroup MAHOGANY_POKECENTER_1F, 4, 5 ; 3 + mapgroup ROUTE_42_ECRUTEAK_GATE, 4, 5 ; 4 + mapgroup ROUTE_42, 9, 30 ; 5 + mapgroup ROUTE_44, 9, 30 ; 6 + mapgroup MAHOGANY_TOWN, 9, 10 ; 7 + + newgroup ; 3 + + mapgroup SPROUT_TOWER_1F, 8, 10 ; 1 + mapgroup SPROUT_TOWER_2F, 8, 10 ; 2 + mapgroup SPROUT_TOWER_3F, 8, 10 ; 3 + mapgroup TIN_TOWER_1F, 9, 10 ; 4 + mapgroup TIN_TOWER_2F, 9, 10 ; 5 + mapgroup TIN_TOWER_3F, 9, 10 ; 6 + mapgroup TIN_TOWER_4F, 9, 10 ; 7 + mapgroup TIN_TOWER_5F, 9, 10 ; 8 + mapgroup TIN_TOWER_6F, 9, 10 ; 9 + mapgroup TIN_TOWER_7F, 9, 10 ; 10 + mapgroup TIN_TOWER_8F, 9, 10 ; 11 + mapgroup TIN_TOWER_9F, 9, 10 ; 12 + mapgroup BURNED_TOWER_1F, 9, 10 ; 13 + mapgroup BURNED_TOWER_B1F, 9, 10 ; 14 + mapgroup NATIONAL_PARK, 27, 20 ; 15 + mapgroup NATIONAL_PARK_BUG_CONTEST, 27, 20 ; 16 + mapgroup RADIO_TOWER_1F, 4, 9 ; 17 + mapgroup RADIO_TOWER_2F, 4, 9 ; 18 + mapgroup RADIO_TOWER_3F, 4, 9 ; 19 + mapgroup RADIO_TOWER_4F, 4, 9 ; 20 + mapgroup RADIO_TOWER_5F, 4, 9 ; 21 + mapgroup RUINS_OF_ALPH_OUTSIDE, 18, 10 ; 22 + mapgroup RUINS_OF_ALPH_HO_OH_CHAMBER, 5, 4 ; 23 + mapgroup RUINS_OF_ALPH_KABUTO_CHAMBER, 5, 4 ; 24 + mapgroup RUINS_OF_ALPH_OMANYTE_CHAMBER, 5, 4 ; 25 + mapgroup RUINS_OF_ALPH_AERODACTYL_CHAMBER, 5, 4 ; 26 + mapgroup RUINS_OF_ALPH_INNER_CHAMBER, 14, 10 ; 27 + mapgroup RUINS_OF_ALPH_RESEARCH_CENTER, 4, 4 ; 28 + mapgroup RUINS_OF_ALPH_HO_OH_ITEM_ROOM, 5, 4 ; 29 + mapgroup RUINS_OF_ALPH_KABUTO_ITEM_ROOM, 5, 4 ; 30 + mapgroup RUINS_OF_ALPH_OMANYTE_ITEM_ROOM, 5, 4 ; 31 + mapgroup RUINS_OF_ALPH_AERODACTYL_ITEM_ROOM, 5, 4 ; 32 + mapgroup RUINS_OF_ALPH_HO_OH_WORD_ROOM, 12, 10 ; 33 + mapgroup RUINS_OF_ALPH_KABUTO_WORD_ROOM, 7, 10 ; 34 + mapgroup RUINS_OF_ALPH_OMANYTE_WORD_ROOM, 8, 10 ; 35 + mapgroup RUINS_OF_ALPH_AERODACTYL_WORD_ROOM, 7, 10 ; 36 + mapgroup UNION_CAVE_1F, 18, 10 ; 37 + mapgroup UNION_CAVE_B1F, 18, 10 ; 38 + mapgroup UNION_CAVE_B2F, 18, 10 ; 39 + mapgroup SLOWPOKE_WELL_B1F, 9, 10 ; 40 + mapgroup SLOWPOKE_WELL_B2F, 9, 10 ; 41 + mapgroup OLIVINE_LIGHTHOUSE_1F, 9, 10 ; 42 + mapgroup OLIVINE_LIGHTHOUSE_2F, 9, 10 ; 43 + mapgroup OLIVINE_LIGHTHOUSE_3F, 9, 10 ; 44 + mapgroup OLIVINE_LIGHTHOUSE_4F, 9, 10 ; 45 + mapgroup OLIVINE_LIGHTHOUSE_5F, 9, 10 ; 46 + mapgroup OLIVINE_LIGHTHOUSE_6F, 9, 10 ; 47 + mapgroup MAHOGANY_MART_1F, 4, 4 ; 48 + mapgroup TEAM_ROCKET_BASE_B1F, 9, 15 ; 49 + mapgroup TEAM_ROCKET_BASE_B2F, 9, 15 ; 50 + mapgroup TEAM_ROCKET_BASE_B3F, 9, 15 ; 51 + mapgroup ILEX_FOREST, 27, 15 ; 52 + mapgroup GOLDENROD_UNDERGROUND, 18, 15 ; 53 + mapgroup GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES, 18, 15 ; 54 + mapgroup GOLDENROD_DEPT_STORE_B1F, 9, 10 ; 55 + mapgroup GOLDENROD_UNDERGROUND_WAREHOUSE, 9, 10 ; 56 + mapgroup MOUNT_MORTAR_1F_OUTSIDE, 18, 20 ; 57 + mapgroup MOUNT_MORTAR_1F_INSIDE, 27, 20 ; 58 + mapgroup MOUNT_MORTAR_2F_INSIDE, 18, 20 ; 59 + mapgroup MOUNT_MORTAR_B1F, 18, 20 ; 60 + mapgroup ICE_PATH_1F, 18, 20 ; 61 + mapgroup ICE_PATH_B1F, 18, 10 ; 62 + mapgroup ICE_PATH_B2F_MAHOGANY_SIDE, 9, 10 ; 63 + mapgroup ICE_PATH_B2F_BLACKTHORN_SIDE, 9, 5 ; 64 + mapgroup ICE_PATH_B3F, 9, 10 ; 65 + mapgroup WHIRL_ISLAND_NW, 9, 5 ; 66 + mapgroup WHIRL_ISLAND_NE, 9, 10 ; 67 + mapgroup WHIRL_ISLAND_SW, 9, 10 ; 68 + mapgroup WHIRL_ISLAND_CAVE, 9, 5 ; 69 + mapgroup WHIRL_ISLAND_SE, 9, 5 ; 70 + mapgroup WHIRL_ISLAND_B1F, 18, 20 ; 71 + mapgroup WHIRL_ISLAND_B2F, 18, 10 ; 72 + mapgroup WHIRL_ISLAND_LUGIA_CHAMBER, 9, 10 ; 73 + mapgroup SILVER_CAVE_ROOM_1, 18, 10 ; 74 + mapgroup SILVER_CAVE_ROOM_2, 18, 15 ; 75 + mapgroup SILVER_CAVE_ROOM_3, 18, 10 ; 76 + mapgroup SILVER_CAVE_ITEM_ROOMS, 9, 10 ; 77 + mapgroup DARK_CAVE_VIOLET_ENTRANCE, 18, 20 ; 78 + mapgroup DARK_CAVE_BLACKTHORN_ENTRANCE, 18, 15 ; 79 + mapgroup DRAGONS_DEN_1F, 9, 5 ; 80 + mapgroup DRAGONS_DEN_B1F, 18, 20 ; 81 + mapgroup DRAGON_SHRINE, 5, 5 ; 82 + mapgroup TOHJO_FALLS, 9, 15 ; 83 + mapgroup DIGLETTS_CAVE, 18, 10 ; 84 + mapgroup MOUNT_MOON, 9, 15 ; 85 + mapgroup UNDERGROUND_PATH, 14, 3 ; 86 + mapgroup ROCK_TUNNEL_1F, 18, 15 ; 87 + mapgroup ROCK_TUNNEL_B1F, 18, 15 ; 88 + mapgroup SAFARI_ZONE_FUCHSIA_GATE_BETA, 4, 5 ; 89 + mapgroup SAFARI_ZONE_BETA, 18, 10 ; 90 + mapgroup VICTORY_ROAD, 36, 10 ; 91 + + newgroup ; 4 + + mapgroup ECRUTEAK_HOUSE, 9, 10 ; 1 + mapgroup WISE_TRIOS_ROOM, 4, 4 ; 2 + mapgroup ECRUTEAK_POKECENTER_1F, 4, 5 ; 3 + mapgroup ECRUTEAK_LUGIA_SPEECH_HOUSE, 4, 4 ; 4 + mapgroup DANCE_THEATRE, 7, 6 ; 5 + mapgroup ECRUTEAK_MART, 4, 6 ; 6 + mapgroup ECRUTEAK_GYM, 9, 5 ; 7 + mapgroup ECRUTEAK_ITEMFINDER_HOUSE, 4, 4 ; 8 + mapgroup ECRUTEAK_CITY, 18, 20 ; 9 + + newgroup ; 5 + + mapgroup BLACKTHORN_GYM_1F, 9, 5 ; 1 + mapgroup BLACKTHORN_GYM_2F, 9, 5 ; 2 + mapgroup BLACKTHORN_DRAGON_SPEECH_HOUSE, 4, 4 ; 3 + mapgroup BLACKTHORN_EMYS_HOUSE, 4, 4 ; 4 + mapgroup BLACKTHORN_MART, 4, 6 ; 5 + mapgroup BLACKTHORN_POKECENTER_1F, 4, 5 ; 6 + mapgroup MOVE_DELETERS_HOUSE, 4, 4 ; 7 + mapgroup ROUTE_45, 45, 10 ; 8 + mapgroup ROUTE_46, 18, 10 ; 9 + mapgroup BLACKTHORN_CITY, 18, 20 ; 10 + + newgroup ; 6 + + mapgroup CINNABAR_POKECENTER_1F, 4, 5 ; 1 + mapgroup CINNABAR_POKECENTER_2F_BETA, 4, 8 ; 2 + mapgroup ROUTE_19___FUCHSIA_GATE, 4, 5 ; 3 + mapgroup SEAFOAM_GYM, 4, 5 ; 4 + mapgroup ROUTE_19, 18, 10 ; 5 + mapgroup ROUTE_20, 9, 30 ; 6 + mapgroup ROUTE_21, 18, 10 ; 7 + mapgroup CINNABAR_ISLAND, 9, 10 ; 8 + + newgroup ; 7 + + mapgroup CERULEAN_GYM_BADGE_SPEECH_HOUSE, 4, 4 ; 1 + mapgroup CERULEAN_POLICE_STATION, 4, 4 ; 2 + mapgroup CERULEAN_TRADE_SPEECH_HOUSE, 4, 4 ; 3 + mapgroup CERULEAN_POKECENTER_1F, 4, 5 ; 4 + mapgroup CERULEAN_POKECENTER_2F_BETA, 4, 8 ; 5 + mapgroup CERULEAN_GYM, 8, 5 ; 6 + mapgroup CERULEAN_MART, 4, 6 ; 7 + mapgroup ROUTE_10_POKECENTER_1F, 4, 5 ; 8 + mapgroup ROUTE_10_POKECENTER_2F_BETA, 4, 8 ; 9 + mapgroup POWER_PLANT, 9, 10 ; 10 + mapgroup BILLS_HOUSE, 4, 4 ; 11 + mapgroup ROUTE_4, 9, 20 ; 12 + mapgroup ROUTE_9, 9, 30 ; 13 + mapgroup ROUTE_10_NORTH, 9, 10 ; 14 + mapgroup ROUTE_24, 9, 10 ; 15 + mapgroup ROUTE_25, 9, 30 ; 16 + mapgroup CERULEAN_CITY, 18, 20 ; 17 + + newgroup ; 8 + + mapgroup AZALEA_POKECENTER_1F, 4, 5 ; 1 + mapgroup CHARCOAL_KILN, 4, 4 ; 2 + mapgroup AZALEA_MART, 4, 6 ; 3 + mapgroup KURTS_HOUSE, 4, 8 ; 4 + mapgroup AZALEA_GYM, 8, 5 ; 5 + mapgroup ROUTE_33, 9, 10 ; 6 + mapgroup AZALEA_TOWN, 9, 20 ; 7 + + newgroup ; 9 + + mapgroup LAKE_OF_RAGE_HIDDEN_POWER_HOUSE, 4, 4 ; 1 + mapgroup LAKE_OF_RAGE_MAGIKARP_HOUSE, 4, 4 ; 2 + mapgroup ROUTE_43_MAHOGANY_GATE, 4, 5 ; 3 + mapgroup ROUTE_43_GATE, 4, 5 ; 4 + mapgroup ROUTE_43, 27, 10 ; 5 + mapgroup LAKE_OF_RAGE, 18, 20 ; 6 + + newgroup ; 10 + + mapgroup ROUTE_32, 45, 10 ; 1 + mapgroup ROUTE_35, 18, 10 ; 2 + mapgroup ROUTE_36, 9, 30 ; 3 + mapgroup ROUTE_37, 9, 10 ; 4 + mapgroup VIOLET_CITY, 18, 20 ; 5 + mapgroup VIOLET_MART, 4, 6 ; 6 + mapgroup VIOLET_GYM, 8, 5 ; 7 + mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8 + mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9 + mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10 + mapgroup VIOLET_KYLES_HOUSE, 4, 4 ; 11 + mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12 + mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13 + mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14 + mapgroup ROUTE_35_NATIONAL_PARK_GATE, 4, 4 ; 15 + mapgroup ROUTE_36_RUINS_OF_ALPH_GATE, 4, 5 ; 16 + mapgroup ROUTE_36_NATIONAL_PARK_GATE, 4, 5 ; 17 + + newgroup ; 11 + + mapgroup ROUTE_34, 27, 10 ; 1 + mapgroup GOLDENROD_CITY, 18, 20 ; 2 + mapgroup GOLDENROD_GYM, 9, 10 ; 3 + mapgroup GOLDENROD_BIKE_SHOP, 4, 4 ; 4 + mapgroup GOLDENROD_HAPPINESS_RATER, 4, 4 ; 5 + mapgroup GOLDENROD_BILLS_HOUSE, 4, 4 ; 6 + mapgroup GOLDENROD_MAGNET_TRAIN_STATION, 9, 10 ; 7 + mapgroup GOLDENROD_FLOWER_SHOP, 4, 4 ; 8 + mapgroup GOLDENROD_PP_SPEECH_HOUSE, 4, 4 ; 9 + mapgroup GOLDENROD_NAME_RATER, 4, 4 ; 10 + mapgroup GOLDENROD_DEPT_STORE_1F, 4, 8 ; 11 + mapgroup GOLDENROD_DEPT_STORE_2F, 4, 8 ; 12 + mapgroup GOLDENROD_DEPT_STORE_3F, 4, 8 ; 13 + mapgroup GOLDENROD_DEPT_STORE_4F, 4, 8 ; 14 + mapgroup GOLDENROD_DEPT_STORE_5F, 4, 8 ; 15 + mapgroup GOLDENROD_DEPT_STORE_6F, 4, 8 ; 16 + mapgroup GOLDENROD_DEPT_STORE_ELEVATOR, 2, 2 ; 17 + mapgroup GOLDENROD_DEPT_STORE_ROOF, 4, 8 ; 18 + mapgroup GOLDENROD_GAME_CORNER, 7, 10 ; 19 + mapgroup GOLDENROD_POKECENTER_1F, 4, 5 ; 20 + mapgroup GOLDENROD_POKECOM_CENTER_2F_MOBILE, 16, 16 ; 21 + mapgroup ILEX_FOREST_AZALEA_GATE, 4, 5 ; 22 + mapgroup ROUTE_34_ILEX_FOREST_GATE, 4, 5 ; 23 + mapgroup DAY_CARE, 4, 5 ; 24 + + newgroup ; 12 + + mapgroup ROUTE_6, 9, 10 ; 1 + mapgroup ROUTE_11, 9, 20 ; 2 + mapgroup VERMILION_CITY, 18, 20 ; 3 + mapgroup VERMILION_HOUSE_FISHING_SPEECH_HOUSE, 4, 4 ; 4 + mapgroup VERMILION_POKECENTER_1F, 4, 5 ; 5 + mapgroup VERMILION_POKECENTER_2F_BETA, 4, 8 ; 6 + mapgroup POKEMON_FAN_CLUB, 4, 5 ; 7 + mapgroup VERMILION_MAGNET_TRAIN_SPEECH_HOUSE, 4, 4 ; 8 + mapgroup VERMILION_MART, 4, 6 ; 9 + mapgroup VERMILION_HOUSE_DIGLETTS_CAVE_SPEECH_HOUSE, 4, 4 ; 10 + mapgroup VERMILION_GYM, 9, 5 ; 11 + mapgroup ROUTE_6_SAFFRON_GATE, 4, 5 ; 12 + mapgroup ROUTE_6_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13 + + newgroup ; 13 + + mapgroup ROUTE_1, 18, 10 ; 1 + mapgroup PALLET_TOWN, 9, 10 ; 2 + mapgroup REDS_HOUSE_1F, 4, 4 ; 3 + mapgroup REDS_HOUSE_2F, 4, 4 ; 4 + mapgroup BLUES_HOUSE, 4, 4 ; 5 + mapgroup OAKS_LAB, 6, 5 ; 6 + + newgroup ; 14 + + mapgroup ROUTE_3, 9, 30 ; 1 + mapgroup PEWTER_CITY, 18, 20 ; 2 + mapgroup PEWTER_NIDORAN_SPEECH_HOUSE, 4, 4 ; 3 + mapgroup PEWTER_GYM, 7, 5 ; 4 + mapgroup PEWTER_MART, 4, 6 ; 5 + mapgroup PEWTER_POKECENTER_1F, 4, 5 ; 6 + mapgroup PEWTER_POKECENTER_2F_BETA, 4, 8 ; 7 + mapgroup PEWTER_SNOOZE_SPEECH_HOUSE, 4, 4 ; 8 + + newgroup ; 15 + + mapgroup OLIVINE_PORT, 18, 10 ; 1 + mapgroup VERMILION_PORT, 18, 10 ; 2 + mapgroup FAST_SHIP_1F, 9, 16 ; 3 + mapgroup FAST_SHIP_CABINS_NNW_NNE_NE, 16, 4 ; 4 + mapgroup FAST_SHIP_CABINS_SW_SSW_NW, 16, 4 ; 5 + mapgroup FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN, 17, 5 ; 6 + mapgroup FAST_SHIP_B1F, 8, 16 ; 7 + mapgroup OLIVINE_PORT_PASSAGE, 9, 10 ; 8 + mapgroup VERMILION_PORT_PASSAGE, 9, 10 ; 9 + mapgroup MOUNT_MOON_SQUARE, 9, 15 ; 10 + mapgroup MOUNT_MOON_GIFT_SHOP, 4, 4 ; 11 + mapgroup TIN_TOWER_ROOF, 9, 10 ; 12 + + newgroup ; 16 + + mapgroup ROUTE_23, 9, 10 ; 1 + mapgroup INDIGO_PLATEAU_POKECENTER_1F, 7, 9 ; 2 + mapgroup WILLS_ROOM, 9, 5 ; 3 + mapgroup KOGAS_ROOM, 9, 5 ; 4 + mapgroup BRUNOS_ROOM, 9, 5 ; 5 + mapgroup KARENS_ROOM, 9, 5 ; 6 + mapgroup LANCES_ROOM, 12, 5 ; 7 + mapgroup HALL_OF_FAME, 7, 5 ; 8 + + newgroup ; 17 + + mapgroup ROUTE_13, 9, 30 ; 1 + mapgroup ROUTE_14, 18, 10 ; 2 + mapgroup ROUTE_15, 9, 20 ; 3 + mapgroup ROUTE_18, 9, 10 ; 4 + mapgroup FUCHSIA_CITY, 18, 20 ; 5 + mapgroup FUCHSIA_MART, 4, 6 ; 6 + mapgroup SAFARI_ZONE_MAIN_OFFICE, 4, 4 ; 7 + mapgroup FUCHSIA_GYM, 9, 5 ; 8 + mapgroup FUCHSIA_BILL_SPEECH_HOUSE, 4, 4 ; 9 + mapgroup FUCHSIA_POKECENTER_1F, 4, 5 ; 10 + mapgroup FUCHSIA_POKECENTER_2F_BETA, 4, 8 ; 11 + mapgroup SAFARI_ZONE_WARDENS_HOME, 4, 5 ; 12 + mapgroup ROUTE_15_FUCHSIA_GATE, 4, 5 ; 13 + + newgroup ; 18 + + mapgroup ROUTE_8, 9, 20 ; 1 + mapgroup ROUTE_12, 27, 10 ; 2 + mapgroup ROUTE_10_SOUTH, 9, 10 ; 3 + mapgroup LAVENDER_TOWN, 9, 10 ; 4 + mapgroup LAVENDER_POKECENTER_1F, 4, 5 ; 5 + mapgroup LAVENDER_POKECENTER_2F_BETA, 4, 8 ; 6 + mapgroup MR_FUJIS_HOUSE, 4, 5 ; 7 + mapgroup LAVENDER_TOWN_SPEECH_HOUSE, 4, 4 ; 8 + mapgroup LAVENDER_NAME_RATER, 4, 4 ; 9 + mapgroup LAVENDER_MART, 4, 6 ; 10 + mapgroup SOUL_HOUSE, 4, 5 ; 11 + mapgroup LAV_RADIO_TOWER_1F, 4, 10 ; 12 + mapgroup ROUTE_8_SAFFRON_GATE, 4, 5 ; 13 + mapgroup ROUTE_12_SUPER_ROD_HOUSE, 4, 4 ; 14 + + newgroup ; 19 + + mapgroup ROUTE_28, 9, 20 ; 1 + mapgroup SILVER_CAVE_OUTSIDE, 18, 20 ; 2 + mapgroup SILVER_CAVE_POKECENTER_1F, 4, 5 ; 3 + mapgroup ROUTE_28_FAMOUS_SPEECH_HOUSE, 4, 4 ; 4 + + newgroup ; 20 + + mapgroup POKECENTER_2F, 4, 8 ; 1 + mapgroup TRADE_CENTER, 4, 5 ; 2 + mapgroup COLOSSEUM, 4, 5 ; 3 + mapgroup TIME_CAPSULE, 4, 5 ; 4 + mapgroup MOBILE_TRADE_ROOM_MOBILE, 4, 5 ; 5 + mapgroup MOBILE_BATTLE_ROOM, 4, 5 ; 6 + + newgroup ; 21 + + mapgroup ROUTE_7, 9, 10 ; 1 + mapgroup ROUTE_16, 9, 10 ; 2 + mapgroup ROUTE_17, 45, 10 ; 3 + mapgroup CELADON_CITY, 18, 20 ; 4 + mapgroup CELADON_DEPT_STORE_1F, 4, 8 ; 5 + mapgroup CELADON_DEPT_STORE_2F, 4, 8 ; 6 + mapgroup CELADON_DEPT_STORE_3F, 4, 8 ; 7 + mapgroup CELADON_DEPT_STORE_4F, 4, 8 ; 8 + mapgroup CELADON_DEPT_STORE_5F, 4, 8 ; 9 + mapgroup CELADON_DEPT_STORE_6F, 4, 8 ; 10 + mapgroup CELADON_DEPT_STORE_ELEVATOR, 2, 2 ; 11 + mapgroup CELADON_MANSION_1F, 5, 4 ; 12 + mapgroup CELADON_MANSION_2F, 5, 4 ; 13 + mapgroup CELADON_MANSION_3F, 5, 4 ; 14 + mapgroup CELADON_MANSION_ROOF, 5, 4 ; 15 + mapgroup CELADON_MANSION_ROOF_HOUSE, 4, 4 ; 16 + mapgroup CELADON_POKECENTER_1F, 4, 5 ; 17 + mapgroup CELADON_POKECENTER_2F_BETA, 4, 8 ; 18 + mapgroup CELADON_GAME_CORNER, 7, 10 ; 19 + mapgroup CELADON_GAME_CORNER_PRIZE_ROOM, 3, 3 ; 20 + mapgroup CELADON_GYM, 9, 5 ; 21 + mapgroup CELADON_CAFE, 4, 6 ; 22 + mapgroup ROUTE_16_FUCHSIA_SPEECH_HOUSE, 4, 4 ; 23 + mapgroup ROUTE_16_GATE, 4, 5 ; 24 + mapgroup ROUTE_7_SAFFRON_GATE, 4, 5 ; 25 + mapgroup ROUTE_17_18_GATE, 4, 5 ; 26 + + newgroup ; 22 + + mapgroup ROUTE_40, 18, 10 ; 1 + mapgroup ROUTE_41, 27, 25 ; 2 + mapgroup CIANWOOD_CITY, 27, 15 ; 3 + mapgroup MANIAS_HOUSE, 4, 4 ; 4 + mapgroup CIANWOOD_GYM, 9, 5 ; 5 + mapgroup CIANWOOD_POKECENTER_1F, 4, 5 ; 6 + mapgroup CIANWOOD_PHARMACY, 4, 4 ; 7 + mapgroup CIANWOOD_CITY_PHOTO_STUDIO, 4, 4 ; 8 + mapgroup CIANWOOD_LUGIA_SPEECH_HOUSE, 4, 4 ; 9 + mapgroup POKE_SEERS_HOUSE, 4, 4 ; 10 + mapgroup BATTLE_TOWER_1F, 5, 8 ; 11 + mapgroup BATTLE_TOWER_BATTLE_ROOM, 4, 4 ; 12 + mapgroup BATTLE_TOWER_ELEVATOR, 2, 2 ; 13 + mapgroup BATTLE_TOWER_HALLWAY, 2, 11 ; 14 + mapgroup ROUTE_40_BATTLE_TOWER_GATE, 4, 5 ; 15 + mapgroup BATTLE_TOWER_OUTSIDE, 14, 10 ; 16 + + newgroup ; 23 + + mapgroup ROUTE_2, 27, 10 ; 1 + mapgroup ROUTE_22, 9, 20 ; 2 + mapgroup VIRIDIAN_CITY, 18, 20 ; 3 + mapgroup VIRIDIAN_GYM, 9, 5 ; 4 + mapgroup VIRIDIAN_NICKNAME_SPEECH_HOUSE, 4, 4 ; 5 + mapgroup TRAINER_HOUSE_1F, 7, 5 ; 6 + mapgroup TRAINER_HOUSE_B1F, 8, 5 ; 7 + mapgroup VIRIDIAN_MART, 4, 6 ; 8 + mapgroup VIRIDIAN_POKECENTER_1F, 4, 5 ; 9 + mapgroup VIRIDIAN_POKECENTER_2F_BETA, 4, 8 ; 10 + mapgroup ROUTE_2_NUGGET_SPEECH_HOUSE, 4, 4 ; 11 + mapgroup ROUTE_2_GATE, 4, 5 ; 12 + mapgroup VICTORY_ROAD_GATE, 9, 10 ; 13 + + newgroup ; 24 + + mapgroup ROUTE_26, 54, 10 ; 1 + mapgroup ROUTE_27, 9, 40 ; 2 + mapgroup ROUTE_29, 9, 30 ; 3 + mapgroup NEW_BARK_TOWN, 9, 10 ; 4 + mapgroup ELMS_LAB, 6, 5 ; 5 + mapgroup KRISS_HOUSE_1F, 4, 5 ; 6 + mapgroup KRISS_HOUSE_2F, 3, 4 ; 7 + mapgroup KRISS_NEIGHBORS_HOUSE, 4, 4 ; 8 + mapgroup ELMS_HOUSE, 4, 4 ; 9 + mapgroup ROUTE_26_HEAL_SPEECH_HOUSE, 4, 4 ; 10 + mapgroup ROUTE_26_DAY_OF_WEEK_SIBLINGS_HOUSE, 4, 4 ; 11 + mapgroup ROUTE_27_SANDSTORM_HOUSE, 4, 4 ; 12 + mapgroup ROUTE_29_46_GATE, 4, 5 ; 13 + + newgroup ; 25 + + mapgroup ROUTE_5, 9, 10 ; 1 + mapgroup SAFFRON_CITY, 18, 20 ; 2 + mapgroup FIGHTING_DOJO, 6, 5 ; 3 + mapgroup SAFFRON_GYM, 9, 10 ; 4 + mapgroup SAFFRON_MART, 4, 6 ; 5 + mapgroup SAFFRON_POKECENTER_1F, 4, 5 ; 6 + mapgroup SAFFRON_POKECENTER_2F_BETA, 4, 8 ; 7 + mapgroup MR_PSYCHICS_HOUSE, 4, 4 ; 8 + mapgroup SAFFRON_TRAIN_STATION, 9, 10 ; 9 + mapgroup SILPH_CO_1F, 4, 8 ; 10 + mapgroup COPYCATS_HOUSE_1F, 4, 4 ; 11 + mapgroup COPYCATS_HOUSE_2F, 3, 5 ; 12 + mapgroup ROUTE_5_UNDERGROUND_PATH_ENTRANCE, 4, 4 ; 13 + mapgroup ROUTE_5_SAFFRON_CITY_GATE, 4, 5 ; 14 + mapgroup ROUTE_5_CLEANSE_TAG_SPEECH_HOUSE, 4, 4 ; 15 + + newgroup ; 26 + + mapgroup ROUTE_30, 27, 10 ; 1 + mapgroup ROUTE_31, 9, 20 ; 2 + mapgroup CHERRYGROVE_CITY, 9, 20 ; 3 + mapgroup CHERRYGROVE_MART, 4, 6 ; 4 + mapgroup CHERRYGROVE_POKECENTER_1F, 4, 5 ; 5 + mapgroup CHERRYGROVE_GYM_SPEECH_HOUSE, 4, 4 ; 6 + mapgroup GUIDE_GENTS_HOUSE, 4, 4 ; 7 + mapgroup CHERRYGROVE_EVOLUTION_SPEECH_HOUSE, 4, 4 ; 8 + mapgroup ROUTE_30_BERRY_SPEECH_HOUSE, 4, 4 ; 9 + mapgroup MR_POKEMONS_HOUSE, 4, 4 ; 10 + mapgroup ROUTE_31_VIOLET_GATE, 4, 5 ; 11 diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm index 1a3f60e7b..0dcc2b941 100644 --- a/constants/map_setup_constants.asm +++ b/constants/map_setup_constants.asm @@ -1,3 +1,5 @@ +; hMapEntryMethod values +; MapSetupScripts indexes (see engine/map_setup.asm) const_value SET $f1 const MAPSETUP_WARP const MAPSETUP_CONTINUE @@ -12,6 +14,7 @@ const_value SET $f1 const MAPSETUP_BADWARP const MAPSETUP_FLY +; callback types const_value SET 1 const MAPCALLBACK_TILES const MAPCALLBACK_OBJECTS @@ -19,9 +22,10 @@ const_value SET 1 const MAPCALLBACK_SPRITES const MAPCALLBACK_NEWMAP -; Command descriptions from Condensation water's scripting compendium. +; MapSetupCommands indexes (see engine/map_setup.asm) +; Names taken from Condensation water's scripting compendium +; https://hax.iimarck.us/files/scriptingcodes_eng.htm const_def - const map_lcd_on ; 00 const map_lcd_off ; 01 const map_sound_off ; 02 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 77b65a38a..64c625933 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -1,21 +1,33 @@ -PARTY_LENGTH EQU 6 +; Boolean checks +FALSE EQU 0 +TRUE EQU 1 + +; genders +MALE EQU 0 +FEMALE EQU 1 -MAX_ITEMS EQU 20 -MAX_BALLS EQU 12 -MAX_KEY_ITEMS EQU 25 -MAX_PC_ITEMS EQU 50 +; FlagAction arguments (see home/flag.asm) +RESET_FLAG EQU 0 +SET_FLAG EQU 1 +CHECK_FLAG EQU 2 -; strings +; GetHPPal return values (see home.asm) +HP_GREEN EQU 0 +HP_YELLOW EQU 1 +HP_RED EQU 2 + + +; name lengths +NAME_LENGTH EQU 11 PLAYER_NAME_LENGTH EQU 8 -BOX_NAME_LENGTH EQU 9 -PKMN_NAME_LENGTH EQU 11 -MOVE_NAME_LENGTH EQU 13 -ITEM_NAME_LENGTH EQU 13 +BOX_NAME_LENGTH EQU 9 +PKMN_NAME_LENGTH EQU 11 +MOVE_NAME_LENGTH EQU 13 +ITEM_NAME_LENGTH EQU 13 TRAINER_CLASS_NAME_LENGTH EQU 13 -NAME_LENGTH EQU 11 -LV_CHAR EQU $6e +NAME_LENGTH_JAPANESE EQU 6 -; GetName types +; GetName types (see home/names.asm) PKMN_NAME EQU 1 MOVE_NAME EQU 2 ; dummied out EQU 3 @@ -25,136 +37,69 @@ ENEMY_OT_NAME EQU 6 TRAINER_NAME EQU 7 ; broken ptr EQU 8 -; hp -HP_GREEN EQU 0 -HP_YELLOW EQU 1 -HP_RED EQU 2 -; boxes -MONS_PER_BOX EQU 20 -NUM_BOXES EQU 14 +; printing text +const_value set 5 + const PRINTNUM_MONEY_F ; 5 + const PRINTNUM_RIGHTALIGN_F ; 6 + const PRINTNUM_LEADINGZEROS_F ; 7 -; mail -MAIL_STRUCT_LENGTH EQU $2f -MAILBOX_CAPACITY EQU 10 -MAIL_MSG_LENGTH EQU $20 - -; hall of fame -HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick -HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator -NUM_HOF_TEAMS = 30 - - -; flag manipulation -RESET_FLAG EQU 0 -SET_FLAG EQU 1 -CHECK_FLAG EQU 2 - -; Boolean checks -FALSE EQU 0 -TRUE EQU 1 +; PrintNum arguments (see engine/printnum.asm) +PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F +PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F +PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F -; joypad +; DoPlayerMovement.DoStep arguments (see engine/player_movement.asm) const_def - const A_BUTTON_F - const B_BUTTON_F - const SELECT_F - const START_F - const D_RIGHT_F - const D_LEFT_F - const D_UP_F - const D_DOWN_F - -NO_INPUT EQU %00000000 -A_BUTTON EQU 1 << A_BUTTON_F -B_BUTTON EQU 1 << B_BUTTON_F -SELECT EQU 1 << SELECT_F -START EQU 1 << START_F -D_RIGHT EQU 1 << D_RIGHT_F -D_LEFT EQU 1 << D_LEFT_F -D_UP EQU 1 << D_UP_F -D_DOWN EQU 1 << D_DOWN_F + const STEP_SLOW ; 0 + const STEP_WALK ; 1 + const STEP_BIKE ; 2 + const STEP_LEDGE ; 3 + const STEP_ICE ; 4 + const STEP_TURN ; 5 + const STEP_BACK_LEDGE ; 6 + const STEP_WALK_IN_PLACE ; 7 -BUTTONS EQU A_BUTTON | B_BUTTON | SELECT | START -D_PAD EQU D_RIGHT | D_LEFT | D_UP | D_DOWN - -R_DPAD EQU %00100000 -R_BUTTONS EQU %00010000 - -; screen -HP_BAR_LENGTH EQU 6 -HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * 8 -EXP_BAR_LENGTH EQU 8 -EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * 8 - -SCREEN_WIDTH EQU 20 -SCREEN_HEIGHT EQU 18 -SCREEN_WIDTH_PX EQU SCREEN_WIDTH * 8 -SCREEN_HEIGHT_PX EQU SCREEN_HEIGHT * 8 - -BG_MAP_WIDTH EQU 32 -BG_MAP_HEIGHT EQU 32 -WMISC_WIDTH EQU 6 * 4 -WMISC_HEIGHT EQU 5 * 4 - -TILE_WIDTH EQU 8 +; hMenuReturn +HMENURETURN_SCRIPT EQU %10000000 +HMENURETURN_ASM EQU %11111111 -; movement -STEP_SLOW EQU 0 -STEP_WALK EQU 1 -STEP_BIKE EQU 2 -STEP_LEDGE EQU 3 -STEP_ICE EQU 4 -STEP_TURN EQU 5 -STEP_BACK_LEDGE EQU 6 -STEP_WALK_IN_PLACE EQU 7 +; save file corruption check values +SAVE_CHECK_VALUE_1 EQU 99 +SAVE_CHECK_VALUE_2 EQU 127 -; ai -CONTEXT_USE_F EQU 6 -UNKNOWN_USE_F EQU 5 -ALWAYS_USE_F EQU 4 -SWITCH_SOMETIMES_F EQU 2 -SWITCH_RARELY_F EQU 1 -SWITCH_OFTEN_F EQU 0 -CONTEXT_USE EQU 1 << CONTEXT_USE_F -UNKNOWN_USE EQU 1 << UNKNOWN_USE_F -ALWAYS_USE EQU 1 << ALWAYS_USE_F -SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F -SWITCH_RARELY EQU 1 << SWITCH_RARELY_F -SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F -SPRITE_GFX_LIST_CAPACITY EQU $20 +; time of day boundaries +MORN_HOUR EQU 4 ; 4 AM +DAY_HOUR EQU 10 ; 10 AM +NITE_HOUR EQU 18 ; 6 PM +NOON_HOUR EQU 12 ; 12 PM +MAX_HOUR EQU 24 ; 12 AM -const_value = 1 - const MOM_ITEM - const MOM_DOLL -BATTLETOWER_NROFPKMNS EQU 3 -BATTLETOWER_TRAINERDATALENGTH EQU $24 -BATTLETOWER_NROFTRAINERS EQU 7 -BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS -BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH +; boxes +MONS_PER_BOX EQU 20 +NUM_BOXES EQU 14 -NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7 -WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY) +; hall of fame +HOF_MON_LENGTH = 1 + 2 + 2 + 1 + (PKMN_NAME_LENGTH +- 1) ; species, id, dvs, level, nick +HOF_LENGTH = 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; win count, party, terminator +NUM_HOF_TEAMS = 30 -MOBILE_EVENT_OBJECT_GS_BALL EQU $b -MOBILE_LOGIN_PASSWORD_LENGTH EQU 17 +MAX_LINK_RECORD EQU 9999 -MALE EQU 0 -FEMALE EQU 1 -PRINTNUM_MONEY_F EQU 5 -PRINTNUM_RIGHTALIGN_F EQU 6 -PRINTNUM_LEADINGZEROS_F EQU 7 +; significant money values +START_MONEY EQU 3000 +MOM_MONEY EQU 2300 +MAX_MONEY EQU 999999 +MAX_COINS EQU 9999 -PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F -PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F -PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F +; ChangeHappiness arguments (see data/happiness_changes.asm) const_value = 1 const HAPPINESS_GAINLEVEL ; 01 const HAPPINESS_USEDITEM ; 02 @@ -175,88 +120,3 @@ const_value = 1 const HAPPINESS_REVIVALHERB ; 11 const HAPPINESS_MASSAGE ; 12 const HAPPINESS_GAINLEVELATHOME ; 13 - - - const_def - const LINK_NULL - const LINK_TIMECAPSULE - const LINK_TRADECENTER - const LINK_COLOSSEUM - const LINK_MOBILE - -SERIAL_TIMECAPSULE EQU $60 -SERIAL_TRADECENTER EQU $70 -SERIAL_BATTLE EQU $80 - -HMENURETURN_SCRIPT EQU %10000000 -HMENURETURN_ASM EQU %11111111 - -NUM_MON_SUBMENU_ITEMS EQU 8 - - const_def - const ZEPHYRBADGE - const HIVEBADGE - const PLAINBADGE - const FOGBADGE - const MINERALBADGE - const STORMBADGE - const GLACIERBADGE - const RISINGBADGE -NUM_JOHTO_BADGES EQU const_value - const_def - const BOULDERBADGE - const CASCADEBADGE - const THUNDERBADGE - const RAINBOWBADGE - const SOULBADGE - const MARSHBADGE - const VOLCANOBADGE - const EARTHBADGE -NUM_KANTO_BADGES EQU const_value -NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES -NUM_KANA EQU $2d - - const_def - const EZCHAT_POKEMON - const EZCHAT_TYPES - const EZCHAT_GREETINGS - const EZCHAT_PEOPLE - const EZCHAT_BATTLE - const EZCHAT_EXCLAMATIONS - const EZCHAT_CONVERSATION - const EZCHAT_FEELINGS - const EZCHAT_CONDITIONS - const EZCHAT_LIFE - const EZCHAT_HOBBIES - const EZCHAT_ACTIONS - const EZCHAT_TIME - const EZCHAT_FAREWELLS - const EZCHAT_THISANDTHAT - -SWARM_DUNSPARCE EQU 0 -SWARM_YANMA EQU 1 - -FISHSWARM_QWILFISH EQU 1 -FISHSWARM_REMORAID EQU 2 - - const_def - const FISHGROUP_NONE - const FISHGROUP_SHORE - const FISHGROUP_OCEAN - const FISHGROUP_LAKE - const FISHGROUP_POND - const FISHGROUP_DRATINI - const FISHGROUP_QWILFISH_SWARM - const FISHGROUP_REMORAID_SWARM - const FISHGROUP_GYARADOS - const FISHGROUP_DRATINI_2 - const FISHGROUP_WHIRL_ISLANDS - const FISHGROUP_QWILFISH - const FISHGROUP_REMORAID - const FISHGROUP_QWILFISH_NO_SWARM - -INIT_ENEMYOT_LIST EQU 1 -INIT_BAG_ITEM_LIST EQU 2 -INIT_OTHER_ITEM_LIST EQU 3 -INIT_PLAYEROT_LIST EQU 4 -INIT_MON_LIST EQU 5 diff --git a/constants/mobile_constants.asm b/constants/mobile_constants.asm new file mode 100644 index 000000000..b5894b8e9 --- /dev/null +++ b/constants/mobile_constants.asm @@ -0,0 +1,21 @@ +; MobileEZChatCategoryPointers indexes (see mobile/fixed_words.asm) + const_def + const EZCHAT_POKEMON + const EZCHAT_TYPES + const EZCHAT_GREETINGS + const EZCHAT_PEOPLE + const EZCHAT_BATTLE + const EZCHAT_EXCLAMATIONS + const EZCHAT_CONVERSATION + const EZCHAT_FEELINGS + const EZCHAT_CONDITIONS + const EZCHAT_LIFE + const EZCHAT_HOBBIES + const EZCHAT_ACTIONS + const EZCHAT_TIME + const EZCHAT_FAREWELLS + const EZCHAT_THISANDTHAT + +NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm) + +MOBILE_LOGIN_PASSWORD_LENGTH EQU 17 diff --git a/constants/move_constants.asm b/constants/move_constants.asm index 8492c2415..a4b1a0ba8 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -1,291 +1,293 @@ - +; move ids +; indexes for: +; - MoveDescriptions (see battle/moves/move_descriptions.asm) +; - Moves (see battle/moves/moves.asm) +; - MoveNames (see battle/move_names.asm) +; - BattleAnimations (see battle/anims.asm) const_def - const NO_MOVE ; $00 - const POUND ; $01 - const KARATE_CHOP ; $02 - const DOUBLESLAP ; $03 - const COMET_PUNCH ; $04 - const MEGA_PUNCH ; $05 - const PAY_DAY ; $06 - const FIRE_PUNCH ; $07 - const ICE_PUNCH ; $08 - const THUNDERPUNCH ; $09 - const SCRATCH ; $0a - const VICEGRIP ; $0b - const GUILLOTINE ; $0c - const RAZOR_WIND ; $0d - const SWORDS_DANCE ; $0e - const CUT ; $0f - const GUST ; $10 - const WING_ATTACK ; $11 - const WHIRLWIND ; $12 - const FLY ; $13 - const BIND ; $14 - const SLAM ; $15 - const VINE_WHIP ; $16 - const STOMP ; $17 - const DOUBLE_KICK ; $18 - const MEGA_KICK ; $19 - const JUMP_KICK ; $1a - const ROLLING_KICK ; $1b - const SAND_ATTACK ; $1c - const HEADBUTT ; $1d - const HORN_ATTACK ; $1e - const FURY_ATTACK ; $1f - const HORN_DRILL ; $20 - const TACKLE ; $21 - const BODY_SLAM ; $22 - const WRAP ; $23 - const TAKE_DOWN ; $24 - const THRASH ; $25 - const DOUBLE_EDGE ; $26 - const TAIL_WHIP ; $27 - const POISON_STING ; $28 - const TWINEEDLE ; $29 - const PIN_MISSILE ; $2a - const LEER ; $2b - const BITE ; $2c - const GROWL ; $2d - const ROAR ; $2e - const SING ; $2f - const SUPERSONIC ; $30 - const SONICBOOM ; $31 - const DISABLE ; $32 - const ACID ; $33 - const EMBER ; $34 - const FLAMETHROWER ; $35 - const MIST ; $36 - const WATER_GUN ; $37 - const HYDRO_PUMP ; $38 - const SURF ; $39 - const ICE_BEAM ; $3a - const BLIZZARD ; $3b - const PSYBEAM ; $3c - const BUBBLEBEAM ; $3d - const AURORA_BEAM ; $3e - const HYPER_BEAM ; $3f - const PECK ; $40 - const DRILL_PECK ; $41 - const SUBMISSION ; $42 - const LOW_KICK ; $43 - const COUNTER ; $44 - const SEISMIC_TOSS ; $45 - const STRENGTH ; $46 - const ABSORB ; $47 - const MEGA_DRAIN ; $48 - const LEECH_SEED ; $49 - const GROWTH ; $4a - const RAZOR_LEAF ; $4b - const SOLARBEAM ; $4c - const POISONPOWDER ; $4d - const STUN_SPORE ; $4e - const SLEEP_POWDER ; $4f - const PETAL_DANCE ; $50 - const STRING_SHOT ; $51 - const DRAGON_RAGE ; $52 - const FIRE_SPIN ; $53 - const THUNDERSHOCK ; $54 - const THUNDERBOLT ; $55 - const THUNDER_WAVE ; $56 - const THUNDER ; $57 - const ROCK_THROW ; $58 - const EARTHQUAKE ; $59 - const FISSURE ; $5a - const DIG ; $5b - const TOXIC ; $5c - const CONFUSION ; $5d - const PSYCHIC_M ; $5e - const HYPNOSIS ; $5f - const MEDITATE ; $60 - const AGILITY ; $61 - const QUICK_ATTACK ; $62 - const RAGE ; $63 - const TELEPORT ; $64 - const NIGHT_SHADE ; $65 - const MIMIC ; $66 - const SCREECH ; $67 - const DOUBLE_TEAM ; $68 - const RECOVER ; $69 - const HARDEN ; $6a - const MINIMIZE ; $6b - const SMOKESCREEN ; $6c - const CONFUSE_RAY ; $6d - const WITHDRAW ; $6e - const DEFENSE_CURL ; $6f - const BARRIER ; $70 - const LIGHT_SCREEN ; $71 - const HAZE ; $72 - const REFLECT ; $73 - const FOCUS_ENERGY ; $74 - const BIDE ; $75 - const METRONOME ; $76 - const MIRROR_MOVE ; $77 - const SELFDESTRUCT ; $78 - const EGG_BOMB ; $79 - const LICK ; $7a - const SMOG ; $7b - const SLUDGE ; $7c - const BONE_CLUB ; $7d - const FIRE_BLAST ; $7e - const WATERFALL ; $7f - const CLAMP ; $80 - const SWIFT ; $81 - const SKULL_BASH ; $82 - const SPIKE_CANNON ; $83 - const CONSTRICT ; $84 - const AMNESIA ; $85 - const KINESIS ; $86 - const SOFTBOILED ; $87 - const HI_JUMP_KICK ; $88 - const GLARE ; $89 - const DREAM_EATER ; $8a - const POISON_GAS ; $8b - const BARRAGE ; $8c - const LEECH_LIFE ; $8d - const LOVELY_KISS ; $8e - const SKY_ATTACK ; $8f - const TRANSFORM ; $90 - const BUBBLE ; $91 - const DIZZY_PUNCH ; $92 - const SPORE ; $93 - const FLASH ; $94 - const PSYWAVE ; $95 - const SPLASH ; $96 - const ACID_ARMOR ; $97 - const CRABHAMMER ; $98 - const EXPLOSION ; $99 - const FURY_SWIPES ; $9a - const BONEMERANG ; $9b - const REST ; $9c - const ROCK_SLIDE ; $9d - const HYPER_FANG ; $9e - const SHARPEN ; $9f - const CONVERSION ; $a0 - const TRI_ATTACK ; $a1 - const SUPER_FANG ; $a2 - const SLASH ; $a3 - const SUBSTITUTE ; $a4 - const STRUGGLE ; $a5 - const SKETCH ; $a6 - const TRIPLE_KICK ; $a7 - const THIEF ; $a8 - const SPIDER_WEB ; $a9 - const MIND_READER ; $aa - const NIGHTMARE ; $ab - const FLAME_WHEEL ; $ac - const SNORE ; $ad - const CURSE ; $ae - const FLAIL ; $af - const CONVERSION2 ; $b0 - const AEROBLAST ; $b1 - const COTTON_SPORE ; $b2 - const REVERSAL ; $b3 - const SPITE ; $b4 - const POWDER_SNOW ; $b5 - const PROTECT ; $b6 - const MACH_PUNCH ; $b7 - const SCARY_FACE ; $b8 - const FAINT_ATTACK ; $b9 - const SWEET_KISS ; $ba - const BELLY_DRUM ; $bb - const SLUDGE_BOMB ; $bc - const MUD_SLAP ; $bd - const OCTAZOOKA ; $be - const SPIKES ; $bf - const ZAP_CANNON ; $c0 - const FORESIGHT ; $c1 - const DESTINY_BOND ; $c2 - const PERISH_SONG ; $c3 - const ICY_WIND ; $c4 - const DETECT ; $c5 - const BONE_RUSH ; $c6 - const LOCK_ON ; $c7 - const OUTRAGE ; $c8 - const SANDSTORM ; $c9 - const GIGA_DRAIN ; $ca - const ENDURE ; $cb - const CHARM ; $cc - const ROLLOUT ; $cd - const FALSE_SWIPE ; $ce - const SWAGGER ; $cf - const MILK_DRINK ; $d0 - const SPARK ; $d1 - const FURY_CUTTER ; $d2 - const STEEL_WING ; $d3 - const MEAN_LOOK ; $d4 - const ATTRACT ; $d5 - const SLEEP_TALK ; $d6 - const HEAL_BELL ; $d7 - const RETURN ; $d8 - const PRESENT ; $d9 - const FRUSTRATION ; $da - const SAFEGUARD ; $db - const PAIN_SPLIT ; $dc - const SACRED_FIRE ; $dd - const MAGNITUDE ; $de - const DYNAMICPUNCH ; $df - const MEGAHORN ; $e0 - const DRAGONBREATH ; $e1 - const BATON_PASS ; $e2 - const ENCORE ; $e3 - const PURSUIT ; $e4 - const RAPID_SPIN ; $e5 - const SWEET_SCENT ; $e6 - const IRON_TAIL ; $e7 - const METAL_CLAW ; $e8 - const VITAL_THROW ; $e9 - const MORNING_SUN ; $ea - const SYNTHESIS ; $eb - const MOONLIGHT ; $ec - const HIDDEN_POWER ; $ed - const CROSS_CHOP ; $ee - const TWISTER ; $ef - const RAIN_DANCE ; $f0 - const SUNNY_DAY ; $f1 - const CRUNCH ; $f2 - const MIRROR_COAT ; $f3 - const PSYCH_UP ; $f4 - const EXTREMESPEED ; $f5 - const ANCIENTPOWER ; $f6 - const SHADOW_BALL ; $f7 - const FUTURE_SIGHT ; $f8 - const ROCK_SMASH ; $f9 - const WHIRLPOOL ; $fa - const BEAT_UP ; $fb - -const_value SET const_value + -1 + const NO_MOVE ; 00 + const POUND ; 01 + const KARATE_CHOP ; 02 + const DOUBLESLAP ; 03 + const COMET_PUNCH ; 04 + const MEGA_PUNCH ; 05 + const PAY_DAY ; 06 + const FIRE_PUNCH ; 07 + const ICE_PUNCH ; 08 + const THUNDERPUNCH ; 09 + const SCRATCH ; 0a + const VICEGRIP ; 0b + const GUILLOTINE ; 0c + const RAZOR_WIND ; 0d + const SWORDS_DANCE ; 0e + const CUT ; 0f + const GUST ; 10 + const WING_ATTACK ; 11 + const WHIRLWIND ; 12 + const FLY ; 13 + const BIND ; 14 + const SLAM ; 15 + const VINE_WHIP ; 16 + const STOMP ; 17 + const DOUBLE_KICK ; 18 + const MEGA_KICK ; 19 + const JUMP_KICK ; 1a + const ROLLING_KICK ; 1b + const SAND_ATTACK ; 1c + const HEADBUTT ; 1d + const HORN_ATTACK ; 1e + const FURY_ATTACK ; 1f + const HORN_DRILL ; 20 + const TACKLE ; 21 + const BODY_SLAM ; 22 + const WRAP ; 23 + const TAKE_DOWN ; 24 + const THRASH ; 25 + const DOUBLE_EDGE ; 26 + const TAIL_WHIP ; 27 + const POISON_STING ; 28 + const TWINEEDLE ; 29 + const PIN_MISSILE ; 2a + const LEER ; 2b + const BITE ; 2c + const GROWL ; 2d + const ROAR ; 2e + const SING ; 2f + const SUPERSONIC ; 30 + const SONICBOOM ; 31 + const DISABLE ; 32 + const ACID ; 33 + const EMBER ; 34 + const FLAMETHROWER ; 35 + const MIST ; 36 + const WATER_GUN ; 37 + const HYDRO_PUMP ; 38 + const SURF ; 39 + const ICE_BEAM ; 3a + const BLIZZARD ; 3b + const PSYBEAM ; 3c + const BUBBLEBEAM ; 3d + const AURORA_BEAM ; 3e + const HYPER_BEAM ; 3f + const PECK ; 40 + const DRILL_PECK ; 41 + const SUBMISSION ; 42 + const LOW_KICK ; 43 + const COUNTER ; 44 + const SEISMIC_TOSS ; 45 + const STRENGTH ; 46 + const ABSORB ; 47 + const MEGA_DRAIN ; 48 + const LEECH_SEED ; 49 + const GROWTH ; 4a + const RAZOR_LEAF ; 4b + const SOLARBEAM ; 4c + const POISONPOWDER ; 4d + const STUN_SPORE ; 4e + const SLEEP_POWDER ; 4f + const PETAL_DANCE ; 50 + const STRING_SHOT ; 51 + const DRAGON_RAGE ; 52 + const FIRE_SPIN ; 53 + const THUNDERSHOCK ; 54 + const THUNDERBOLT ; 55 + const THUNDER_WAVE ; 56 + const THUNDER ; 57 + const ROCK_THROW ; 58 + const EARTHQUAKE ; 59 + const FISSURE ; 5a + const DIG ; 5b + const TOXIC ; 5c + const CONFUSION ; 5d + const PSYCHIC_M ; 5e + const HYPNOSIS ; 5f + const MEDITATE ; 60 + const AGILITY ; 61 + const QUICK_ATTACK ; 62 + const RAGE ; 63 + const TELEPORT ; 64 + const NIGHT_SHADE ; 65 + const MIMIC ; 66 + const SCREECH ; 67 + const DOUBLE_TEAM ; 68 + const RECOVER ; 69 + const HARDEN ; 6a + const MINIMIZE ; 6b + const SMOKESCREEN ; 6c + const CONFUSE_RAY ; 6d + const WITHDRAW ; 6e + const DEFENSE_CURL ; 6f + const BARRIER ; 70 + const LIGHT_SCREEN ; 71 + const HAZE ; 72 + const REFLECT ; 73 + const FOCUS_ENERGY ; 74 + const BIDE ; 75 + const METRONOME ; 76 + const MIRROR_MOVE ; 77 + const SELFDESTRUCT ; 78 + const EGG_BOMB ; 79 + const LICK ; 7a + const SMOG ; 7b + const SLUDGE ; 7c + const BONE_CLUB ; 7d + const FIRE_BLAST ; 7e + const WATERFALL ; 7f + const CLAMP ; 80 + const SWIFT ; 81 + const SKULL_BASH ; 82 + const SPIKE_CANNON ; 83 + const CONSTRICT ; 84 + const AMNESIA ; 85 + const KINESIS ; 86 + const SOFTBOILED ; 87 + const HI_JUMP_KICK ; 88 + const GLARE ; 89 + const DREAM_EATER ; 8a + const POISON_GAS ; 8b + const BARRAGE ; 8c + const LEECH_LIFE ; 8d + const LOVELY_KISS ; 8e + const SKY_ATTACK ; 8f + const TRANSFORM ; 90 + const BUBBLE ; 91 + const DIZZY_PUNCH ; 92 + const SPORE ; 93 + const FLASH ; 94 + const PSYWAVE ; 95 + const SPLASH ; 96 + const ACID_ARMOR ; 97 + const CRABHAMMER ; 98 + const EXPLOSION ; 99 + const FURY_SWIPES ; 9a + const BONEMERANG ; 9b + const REST ; 9c + const ROCK_SLIDE ; 9d + const HYPER_FANG ; 9e + const SHARPEN ; 9f + const CONVERSION ; a0 + const TRI_ATTACK ; a1 + const SUPER_FANG ; a2 + const SLASH ; a3 + const SUBSTITUTE ; a4 + const STRUGGLE ; a5 + const SKETCH ; a6 + const TRIPLE_KICK ; a7 + const THIEF ; a8 + const SPIDER_WEB ; a9 + const MIND_READER ; aa + const NIGHTMARE ; ab + const FLAME_WHEEL ; ac + const SNORE ; ad + const CURSE ; ae + const FLAIL ; af + const CONVERSION2 ; b0 + const AEROBLAST ; b1 + const COTTON_SPORE ; b2 + const REVERSAL ; b3 + const SPITE ; b4 + const POWDER_SNOW ; b5 + const PROTECT ; b6 + const MACH_PUNCH ; b7 + const SCARY_FACE ; b8 + const FAINT_ATTACK ; b9 + const SWEET_KISS ; ba + const BELLY_DRUM ; bb + const SLUDGE_BOMB ; bc + const MUD_SLAP ; bd + const OCTAZOOKA ; be + const SPIKES ; bf + const ZAP_CANNON ; c0 + const FORESIGHT ; c1 + const DESTINY_BOND ; c2 + const PERISH_SONG ; c3 + const ICY_WIND ; c4 + const DETECT ; c5 + const BONE_RUSH ; c6 + const LOCK_ON ; c7 + const OUTRAGE ; c8 + const SANDSTORM ; c9 + const GIGA_DRAIN ; ca + const ENDURE ; cb + const CHARM ; cc + const ROLLOUT ; cd + const FALSE_SWIPE ; ce + const SWAGGER ; cf + const MILK_DRINK ; d0 + const SPARK ; d1 + const FURY_CUTTER ; d2 + const STEEL_WING ; d3 + const MEAN_LOOK ; d4 + const ATTRACT ; d5 + const SLEEP_TALK ; d6 + const HEAL_BELL ; d7 + const RETURN ; d8 + const PRESENT ; d9 + const FRUSTRATION ; da + const SAFEGUARD ; db + const PAIN_SPLIT ; dc + const SACRED_FIRE ; dd + const MAGNITUDE ; de + const DYNAMICPUNCH ; df + const MEGAHORN ; e0 + const DRAGONBREATH ; e1 + const BATON_PASS ; e2 + const ENCORE ; e3 + const PURSUIT ; e4 + const RAPID_SPIN ; e5 + const SWEET_SCENT ; e6 + const IRON_TAIL ; e7 + const METAL_CLAW ; e8 + const VITAL_THROW ; e9 + const MORNING_SUN ; ea + const SYNTHESIS ; eb + const MOONLIGHT ; ec + const HIDDEN_POWER ; ed + const CROSS_CHOP ; ee + const TWISTER ; ef + const RAIN_DANCE ; f0 + const SUNNY_DAY ; f1 + const CRUNCH ; f2 + const MIRROR_COAT ; f3 + const PSYCH_UP ; f4 + const EXTREMESPEED ; f5 + const ANCIENTPOWER ; f6 + const SHADOW_BALL ; f7 + const FUTURE_SIGHT ; f8 + const ROCK_SMASH ; f9 + const WHIRLPOOL ; fa + const BEAT_UP ; fb +NUM_ATTACKS EQU const_value + -1 - const NUM_ATTACKS ; $fb + const MOVE_OR_ANIM_FC ; fc + const MOVE_OR_ANIM_FD ; fd + const MOVE_OR_ANIM_FE ; fe -; Battle animations use the same constants -; as the moves up to this point. - const ANIM_FC ; $fc - const ANIM_FD ; $fd - const ANIM_FE ; $fe - const ANIM_SWEET_SCENT_2 ; $ff - const ANIM_THROW_POKE_BALL ; $100 - const ANIM_SEND_OUT_MON ; $101 - const ANIM_RETURN_MON ; $102 - const ANIM_CONFUSED ; $103 - const ANIM_SLP ; $104 - const ANIM_BRN ; $105 - const ANIM_PSN ; $106 - const ANIM_SAP ; $107 - const ANIM_FRZ ; $108 - const ANIM_PAR ; $109 - const ANIM_IN_LOVE ; $10a - const ANIM_IN_SANDSTORM ; $10b - const ANIM_IN_NIGHTMARE ; $10c - const ANIM_IN_WHIRLPOOL ; $10d +; Battle animations use the same constants as the moves up to this point + const ANIM_SWEET_SCENT_2 ; ff + const ANIM_THROW_POKE_BALL ; 100 + const ANIM_SEND_OUT_MON ; 101 + const ANIM_RETURN_MON ; 102 + const ANIM_CONFUSED ; 103 + const ANIM_SLP ; 104 + const ANIM_BRN ; 105 + const ANIM_PSN ; 106 + const ANIM_SAP ; 107 + const ANIM_FRZ ; 108 + const ANIM_PAR ; 109 + const ANIM_IN_LOVE ; 10a + const ANIM_IN_SANDSTORM ; 10b + const ANIM_IN_NIGHTMARE ; 10c + const ANIM_IN_WHIRLPOOL ; 10d ; battle anims - const ANIM_MISS ; $10e - const ANIM_ENEMY_DAMAGE ; $10f - const ANIM_ENEMY_STAT_DOWN ; $110 - const ANIM_PLAYER_STAT_DOWN ; $111 - const ANIM_PLAYER_DAMAGE ; $112 - const ANIM_WOBBLE ; $113 - const ANIM_SHAKE ; $114 - const ANIM_HIT_CONFUSION ; $115 + const ANIM_MISS ; 10e + const ANIM_ENEMY_DAMAGE ; 10f + const ANIM_ENEMY_STAT_DOWN ; 110 + const ANIM_PLAYER_STAT_DOWN ; 111 + const ANIM_PLAYER_DAMAGE ; 112 + const ANIM_WOBBLE ; 113 + const ANIM_SHAKE ; 114 + const ANIM_HIT_CONFUSION ; 115 ; wNumHits uses offsets from ANIM_MISS const_def @@ -296,4 +298,4 @@ const_value SET const_value + -1 const BATTLEANIM_PLAYER_DAMAGE const BATTLEANIM_WOBBLE const BATTLEANIM_SHAKE - const BATTLEANIM_HIT_CONFUSION
\ No newline at end of file + const BATTLEANIM_HIT_CONFUSION diff --git a/constants/music_constants.asm b/constants/music_constants.asm index 5c54c3dc0..453bf9098 100644 --- a/constants/music_constants.asm +++ b/constants/music_constants.asm @@ -1,3 +1,5 @@ +; song ids +; Music indexes (see audio/music_pointers.asm) const_def const MUSIC_NONE ; 00 @@ -93,6 +95,8 @@ const MUSIC_LAKE_OF_RAGE_ROCKET_RADIO ; 5a const MUSIC_PRINTER ; 5b const MUSIC_POST_CREDITS ; 5c + +; new to Crystal const MUSIC_CLAIR ; 5d const MUSIC_MOBILE_ADAPTER_MENU ; 5e const MUSIC_MOBILE_ADAPTER ; 5f @@ -104,4 +108,9 @@ const MUSIC_BATTLE_TOWER_LOBBY ; 65 const MUSIC_MOBILE_CENTER ; 66 -MUSIC_MAHOGANY_MART EQU $64 ; leftover from gold +; GetMapHeaderMusic picks music for this value (see home/map.asm) +MUSIC_MAHOGANY_MART EQU $64 + +; GetMapHeaderMusic picks music for this bit flag +RADIO_TOWER_MUSIC_F EQU 7 +RADIO_TOWER_MUSIC EQU 1 << RADIO_TOWER_MUSIC_F diff --git a/constants/npctrade_constants.asm b/constants/npctrade_constants.asm new file mode 100644 index 000000000..2da4abd64 --- /dev/null +++ b/constants/npctrade_constants.asm @@ -0,0 +1,21 @@ +; npctrade struct members (see data/npc_trades.asm) +TRADE_DIALOG EQU 0 +TRADE_GIVEMON EQU 1 +TRADE_GETMON EQU 2 +TRADE_NICK EQU 3 +TRADE_DVS EQU 14 +TRADE_ITEM EQU 16 +TRADE_OT_ID EQU 17 +TRADE_OT_NAME EQU 19 +TRADE_GENDER EQU 30 +TRADE_PADDING EQU 31 + +; NPCTrades indexes (see data/npc_trades.asm) + const_def + const NPCTRADE_MIKE ; 0 + const NPCTRADE_KYLE ; 1 + const NPCTRADE_TIM ; 2 + const NPCTRADE_EMY ; 3 + const NPCTRADE_CHRIS ; 4 + const NPCTRADE_KIM ; 5 + const NPCTRADE_FOREST ; 6 diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm index 1eb2b2d23..b2312ab4b 100644 --- a/constants/phone_constants.asm +++ b/constants/phone_constants.asm @@ -1,4 +1,4 @@ - +; PhoneContacts indexes (see data/phone_contacts.asm) const_def const PHONE_00 const PHONE_MOM @@ -39,6 +39,7 @@ const PHONE_PICNICKER_ERIN const PHONE_BUENA +; SpecialPhoneCallList indexes (see data/phone_special.asm) const_def const SPECIALCALL_NONE const SPECIALCALL_POKERUS @@ -50,6 +51,7 @@ const SPECIALCALL_WORRIED const SPECIALCALL_MASTERBALL +; phone struct members const_def const PHONE_CONTACT_TRAINER_CLASS const PHONE_CONTACT_TRAINER_NUMBER @@ -64,4 +66,6 @@ const PHONE_CONTACT_SCRIPT2_ADDR_LO const PHONE_CONTACT_SCRIPT2_ADDR_HI PHONE_TABLE_WIDTH EQU const_value + +; maximum number of pokegear contacts CONTACT_LIST_SIZE EQU 10 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 5041f7064..13cb577bb 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -1,321 +1,278 @@ - -; pokemon +; pokemon ids +; indexes for: +; - CryHeaders (see data/pokemon/cry_headers.asm) +; - BaseData (see data/pokemon/base_stats.asm) +; - EggMovePointers (see data/pokemon/egg_move_pointers.asm) +; - EvosAttacksPointers (see data/pokemon/evos_attacks_pointers.asm) +; - PokemonNames (see data/pokemon/pokemon_names.asm) +; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm) +; - AnimationPointers (see gfx/pics/anim_pointers.asm) +; - BitmasksPointers (see gfx/pics/bitmask_pointers.asm) +; - AnimationExtraPointers (see gfx/pics/extra_pointers.asm) +; - FramesPointers (see gfx/pics/frame_pointers.asm) +; - PokemonPalettes (see gfx/pics/palette_pointers.asm) +; - PicPointers (see gfx/pics/pic_pointers.asm) +; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm) +; - NewPokedexOrder (see data/pokemon/dex_order_new.asm) +; - MonMenuIcons (see data/pokemon/menu_icons.asm) +; - Pokered_MonIndices (see data/time_capsule/mon_order.asm) +; - SortedPokemon (see mobile/fixed_words.asm) const_value set 1 - const BULBASAUR - const IVYSAUR - const VENUSAUR - const CHARMANDER - const CHARMELEON - const CHARIZARD - const SQUIRTLE - const WARTORTLE - const BLASTOISE - const CATERPIE - const METAPOD - const BUTTERFREE - const WEEDLE - const KAKUNA - const BEEDRILL - const PIDGEY - const PIDGEOTTO - const PIDGEOT - const RATTATA - const RATICATE - const SPEAROW - const FEAROW - const EKANS - const ARBOK - const PIKACHU - const RAICHU - const SANDSHREW - const SANDSLASH - const NIDORAN_F - const NIDORINA - const NIDOQUEEN - const NIDORAN_M - const NIDORINO - const NIDOKING - const CLEFAIRY - const CLEFABLE - const VULPIX - const NINETALES - const JIGGLYPUFF - const WIGGLYTUFF - const ZUBAT - const GOLBAT - const ODDISH - const GLOOM - const VILEPLUME - const PARAS - const PARASECT - const VENONAT - const VENOMOTH - const DIGLETT - const DUGTRIO - const MEOWTH - const PERSIAN - const PSYDUCK - const GOLDUCK - const MANKEY - const PRIMEAPE - const GROWLITHE - const ARCANINE - const POLIWAG - const POLIWHIRL - const POLIWRATH - const ABRA - const KADABRA - const ALAKAZAM - const MACHOP - const MACHOKE - const MACHAMP - const BELLSPROUT - const WEEPINBELL - const VICTREEBEL - const TENTACOOL - const TENTACRUEL - const GEODUDE - const GRAVELER - const GOLEM - const PONYTA - const RAPIDASH - const SLOWPOKE - const SLOWBRO - const MAGNEMITE - const MAGNETON - const FARFETCH_D - const DODUO - const DODRIO - const SEEL - const DEWGONG - const GRIMER - const MUK - const SHELLDER - const CLOYSTER - const GASTLY - const HAUNTER - const GENGAR - const ONIX - const DROWZEE - const HYPNO - const KRABBY - const KINGLER - const VOLTORB - const ELECTRODE - const EXEGGCUTE - const EXEGGUTOR - const CUBONE - const MAROWAK - const HITMONLEE - const HITMONCHAN - const LICKITUNG - const KOFFING - const WEEZING - const RHYHORN - const RHYDON - const CHANSEY - const TANGELA - const KANGASKHAN - const HORSEA - const SEADRA - const GOLDEEN - const SEAKING - const STARYU - const STARMIE - const MR__MIME - const SCYTHER - const JYNX - const ELECTABUZZ - const MAGMAR - const PINSIR - const TAUROS - const MAGIKARP - const GYARADOS - const LAPRAS - const DITTO - const EEVEE - const VAPOREON - const JOLTEON - const FLAREON - const PORYGON - const OMANYTE - const OMASTAR - const KABUTO - const KABUTOPS - const AERODACTYL - const SNORLAX - const ARTICUNO - const ZAPDOS - const MOLTRES - const DRATINI - const DRAGONAIR - const DRAGONITE - const MEWTWO - const MEW - const CHIKORITA - const BAYLEEF - const MEGANIUM - const CYNDAQUIL - const QUILAVA - const TYPHLOSION - const TOTODILE - const CROCONAW - const FERALIGATR - const SENTRET - const FURRET - const HOOTHOOT - const NOCTOWL - const LEDYBA - const LEDIAN - const SPINARAK - const ARIADOS - const CROBAT - const CHINCHOU - const LANTURN - const PICHU - const CLEFFA - const IGGLYBUFF - const TOGEPI - const TOGETIC - const NATU - const XATU - const MAREEP - const FLAAFFY - const AMPHAROS - const BELLOSSOM - const MARILL - const AZUMARILL - const SUDOWOODO - const POLITOED - const HOPPIP - const SKIPLOOM - const JUMPLUFF - const AIPOM - const SUNKERN - const SUNFLORA - const YANMA - const WOOPER - const QUAGSIRE - const ESPEON - const UMBREON - const MURKROW - const SLOWKING - const MISDREAVUS - const UNOWN - const WOBBUFFET - const GIRAFARIG - const PINECO - const FORRETRESS - const DUNSPARCE - const GLIGAR - const STEELIX - const SNUBBULL - const GRANBULL - const QWILFISH - const SCIZOR - const SHUCKLE - const HERACROSS - const SNEASEL - const TEDDIURSA - const URSARING - const SLUGMA - const MAGCARGO - const SWINUB - const PILOSWINE - const CORSOLA - const REMORAID - const OCTILLERY - const DELIBIRD - const MANTINE - const SKARMORY - const HOUNDOUR - const HOUNDOOM - const KINGDRA - const PHANPY - const DONPHAN - const PORYGON2 - const STANTLER - const SMEARGLE - const TYROGUE - const HITMONTOP - const SMOOCHUM - const ELEKID - const MAGBY - const MILTANK - const BLISSEY - const RAIKOU - const ENTEI - const SUICUNE - const LARVITAR - const PUPITAR - const TYRANITAR - const LUGIA - const HO_OH - const CELEBI - -const_value SET const_value + -1 - -NUM_POKEMON EQU const_value - -EGG EQU 253 - -; pokemon structure in RAM -MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)" -MON_ITEM EQUS "(PartyMon1Item - PartyMon1)" -MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)" -MON_ID EQUS "(PartyMon1ID - PartyMon1)" -MON_EXP EQUS "(PartyMon1Exp - PartyMon1)" -MON_STAT_EXP EQUS "(PartyMon1StatExp - PartyMon1)" -MON_HP_EXP EQUS "(PartyMon1HPExp - PartyMon1)" -MON_ATK_EXP EQUS "(PartyMon1AtkExp - PartyMon1)" -MON_DEF_EXP EQUS "(PartyMon1DefExp - PartyMon1)" -MON_SPD_EXP EQUS "(PartyMon1SpdExp - PartyMon1)" -MON_SPC_EXP EQUS "(PartyMon1SpcExp - PartyMon1)" -MON_DVS EQUS "(PartyMon1DVs - PartyMon1)" -MON_PP EQUS "(PartyMon1PP - PartyMon1)" -MON_HAPPINESS EQUS "(PartyMon1Happiness - PartyMon1)" -MON_PKRUS EQUS "(PartyMon1PokerusStatus - PartyMon1)" -MON_CAUGHTDATA EQUS "(PartyMon1CaughtData - PartyMon1)" -MON_CAUGHTLEVEL EQUS "(PartyMon1CaughtLevel - PartyMon1)" -MON_CAUGHTTIME EQUS "(PartyMon1CaughtTime - PartyMon1)" -MON_CAUGHTGENDER EQUS "(PartyMon1CaughtGender - PartyMon1)" -MON_CAUGHTLOCATION EQUS "(PartyMon1CaughtLocation - PartyMon1)" -MON_LEVEL EQUS "(PartyMon1Level - PartyMon1)" -MON_STATUS EQUS "(PartyMon1Status - PartyMon1)" -MON_HP EQUS "(PartyMon1HP - PartyMon1)" -MON_MAXHP EQUS "(PartyMon1MaxHP - PartyMon1)" -MON_ATK EQUS "(PartyMon1Attack - PartyMon1)" -MON_DEF EQUS "(PartyMon1Defense - PartyMon1)" -MON_SPD EQUS "(PartyMon1Speed - PartyMon1)" -MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)" -MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)" -BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)" -PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)" -REDMON_STRUCT_LENGTH EQU 44 - -const_value SET 1 - const MONMENU_CUT ; 1 - const MONMENU_FLY ; 2 - const MONMENU_SURF ; 3 - const MONMENU_STRENGTH ; 4 - const MONMENU_WATERFALL ; 5 - const MONMENU_FLASH ; 6 - const MONMENU_WHIRLPOOL ; 7 - const MONMENU_DIG ; 8 - const MONMENU_TELEPORT ; 9 - const MONMENU_SOFTBOILED ; 10 - const MONMENU_HEADBUTT ; 11 - const MONMENU_ROCKSMASH ; 12 - const MONMENU_MILKDRINK ; 13 - const MONMENU_SWEETSCENT ; 14 - - const MONMENU_STATS ; 15 - const MONMENU_SWITCH ; 16 - const MONMENU_ITEM ; 17 - const MONMENU_CANCEL ; 18 - const MONMENU_MOVE ; 19 - const MONMENU_MAIL ; 20 - const MONMENU_ERROR ; 21 + const BULBASAUR ; 01 + const IVYSAUR ; 02 + const VENUSAUR ; 03 + const CHARMANDER ; 04 + const CHARMELEON ; 05 + const CHARIZARD ; 06 + const SQUIRTLE ; 07 + const WARTORTLE ; 08 + const BLASTOISE ; 09 + const CATERPIE ; 0a + const METAPOD ; 0b + const BUTTERFREE ; 0c + const WEEDLE ; 0d + const KAKUNA ; 0e + const BEEDRILL ; 0f + const PIDGEY ; 10 + const PIDGEOTTO ; 11 + const PIDGEOT ; 12 + const RATTATA ; 13 + const RATICATE ; 14 + const SPEAROW ; 15 + const FEAROW ; 16 + const EKANS ; 17 + const ARBOK ; 18 + const PIKACHU ; 19 + const RAICHU ; 1a + const SANDSHREW ; 1b + const SANDSLASH ; 1c + const NIDORAN_F ; 1d + const NIDORINA ; 1e + const NIDOQUEEN ; 1f + const NIDORAN_M ; 20 + const NIDORINO ; 21 + const NIDOKING ; 22 + const CLEFAIRY ; 23 + const CLEFABLE ; 24 + const VULPIX ; 25 + const NINETALES ; 26 + const JIGGLYPUFF ; 27 + const WIGGLYTUFF ; 28 + const ZUBAT ; 29 + const GOLBAT ; 2a + const ODDISH ; 2b + const GLOOM ; 2c + const VILEPLUME ; 2d + const PARAS ; 2e + const PARASECT ; 2f + const VENONAT ; 30 + const VENOMOTH ; 31 + const DIGLETT ; 32 + const DUGTRIO ; 33 + const MEOWTH ; 34 + const PERSIAN ; 35 + const PSYDUCK ; 36 + const GOLDUCK ; 37 + const MANKEY ; 38 + const PRIMEAPE ; 39 + const GROWLITHE ; 3a + const ARCANINE ; 3b + const POLIWAG ; 3c + const POLIWHIRL ; 3d + const POLIWRATH ; 3e + const ABRA ; 3f + const KADABRA ; 40 + const ALAKAZAM ; 41 + const MACHOP ; 42 + const MACHOKE ; 43 + const MACHAMP ; 44 + const BELLSPROUT ; 45 + const WEEPINBELL ; 46 + const VICTREEBEL ; 47 + const TENTACOOL ; 48 + const TENTACRUEL ; 49 + const GEODUDE ; 4a + const GRAVELER ; 4b + const GOLEM ; 4c + const PONYTA ; 4d + const RAPIDASH ; 4e + const SLOWPOKE ; 4f + const SLOWBRO ; 50 + const MAGNEMITE ; 51 + const MAGNETON ; 52 + const FARFETCH_D ; 53 + const DODUO ; 54 + const DODRIO ; 55 + const SEEL ; 56 + const DEWGONG ; 57 + const GRIMER ; 58 + const MUK ; 59 + const SHELLDER ; 5a + const CLOYSTER ; 5b + const GASTLY ; 5c + const HAUNTER ; 5d + const GENGAR ; 5e + const ONIX ; 5f + const DROWZEE ; 60 + const HYPNO ; 61 + const KRABBY ; 62 + const KINGLER ; 63 + const VOLTORB ; 64 + const ELECTRODE ; 65 + const EXEGGCUTE ; 66 + const EXEGGUTOR ; 67 + const CUBONE ; 68 + const MAROWAK ; 69 + const HITMONLEE ; 6a + const HITMONCHAN ; 6b + const LICKITUNG ; 6c + const KOFFING ; 6d + const WEEZING ; 6e + const RHYHORN ; 6f + const RHYDON ; 70 + const CHANSEY ; 71 + const TANGELA ; 72 + const KANGASKHAN ; 73 + const HORSEA ; 74 + const SEADRA ; 75 + const GOLDEEN ; 76 + const SEAKING ; 77 + const STARYU ; 78 + const STARMIE ; 79 + const MR__MIME ; 7a + const SCYTHER ; 7b + const JYNX ; 7c + const ELECTABUZZ ; 7d + const MAGMAR ; 7e + const PINSIR ; 7f + const TAUROS ; 80 + const MAGIKARP ; 81 + const GYARADOS ; 82 + const LAPRAS ; 83 + const DITTO ; 84 + const EEVEE ; 85 + const VAPOREON ; 86 + const JOLTEON ; 87 + const FLAREON ; 88 + const PORYGON ; 89 + const OMANYTE ; 8a + const OMASTAR ; 8b + const KABUTO ; 8c + const KABUTOPS ; 8d + const AERODACTYL ; 8e + const SNORLAX ; 8f + const ARTICUNO ; 90 + const ZAPDOS ; 91 + const MOLTRES ; 92 + const DRATINI ; 93 + const DRAGONAIR ; 94 + const DRAGONITE ; 95 + const MEWTWO ; 96 + const MEW ; 97 + const CHIKORITA ; 98 + const BAYLEEF ; 99 + const MEGANIUM ; 9a + const CYNDAQUIL ; 9b + const QUILAVA ; 9c + const TYPHLOSION ; 9d + const TOTODILE ; 9e + const CROCONAW ; 9f + const FERALIGATR ; a0 + const SENTRET ; a1 + const FURRET ; a2 + const HOOTHOOT ; a3 + const NOCTOWL ; a4 + const LEDYBA ; a5 + const LEDIAN ; a6 + const SPINARAK ; a7 + const ARIADOS ; a8 + const CROBAT ; a9 + const CHINCHOU ; aa + const LANTURN ; ab + const PICHU ; ac + const CLEFFA ; ad + const IGGLYBUFF ; ae + const TOGEPI ; af + const TOGETIC ; b0 + const NATU ; b1 + const XATU ; b2 + const MAREEP ; b3 + const FLAAFFY ; b4 + const AMPHAROS ; b5 + const BELLOSSOM ; b6 + const MARILL ; b7 + const AZUMARILL ; b8 + const SUDOWOODO ; b9 + const POLITOED ; ba + const HOPPIP ; bb + const SKIPLOOM ; bc + const JUMPLUFF ; bd + const AIPOM ; be + const SUNKERN ; bf + const SUNFLORA ; c0 + const YANMA ; c1 + const WOOPER ; c2 + const QUAGSIRE ; c3 + const ESPEON ; c4 + const UMBREON ; c5 + const MURKROW ; c6 + const SLOWKING ; c7 + const MISDREAVUS ; c8 + const UNOWN ; c9 + const WOBBUFFET ; ca + const GIRAFARIG ; cb + const PINECO ; cc + const FORRETRESS ; cd + const DUNSPARCE ; ce + const GLIGAR ; cf + const STEELIX ; d0 + const SNUBBULL ; d1 + const GRANBULL ; d2 + const QWILFISH ; d3 + const SCIZOR ; d4 + const SHUCKLE ; d5 + const HERACROSS ; d6 + const SNEASEL ; d7 + const TEDDIURSA ; d8 + const URSARING ; d9 + const SLUGMA ; da + const MAGCARGO ; db + const SWINUB ; dc + const PILOSWINE ; dd + const CORSOLA ; de + const REMORAID ; df + const OCTILLERY ; e0 + const DELIBIRD ; e1 + const MANTINE ; e2 + const SKARMORY ; e3 + const HOUNDOUR ; e4 + const HOUNDOOM ; e5 + const KINGDRA ; e6 + const PHANPY ; e7 + const DONPHAN ; e8 + const PORYGON2 ; e9 + const STANTLER ; ea + const SMEARGLE ; eb + const TYROGUE ; ec + const HITMONTOP ; ed + const SMOOCHUM ; ee + const ELEKID ; ef + const MAGBY ; f0 + const MILTANK ; f1 + const BLISSEY ; f2 + const RAIKOU ; f3 + const ENTEI ; f4 + const SUICUNE ; f5 + const LARVITAR ; f6 + const PUPITAR ; f7 + const TYRANITAR ; f8 + const LUGIA ; f9 + const HO_OH ; fa + const CELEBI ; fb +NUM_POKEMON EQU const_value +- 1 + const MON_FC ; fc + const EGG ; fd + const MON_FE ; fe -MONMENU_FIELD_MOVE EQU 0 -MONMENU_MENUOPTION EQU 1 +; number of Unown forms +NUM_UNOWN EQU 26 diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm index 9a34e2ae5..4093adfa9 100644 --- a/constants/pokemon_data_constants.asm +++ b/constants/pokemon_data_constants.asm @@ -1,4 +1,41 @@ -; growth rate +; base data struct members (see data/pokemon/base_stats/*.asm) +BASE_DEX_NO EQUS "(BaseDexNo - CurBaseData)" +BASE_STATS EQUS "(BaseStats - CurBaseData)" +BASE_HP EQUS "(BaseHP - CurBaseData)" +BASE_ATK EQUS "(BaseAttack - CurBaseData)" +BASE_SPD EQUS "(BaseSpeed - CurBaseData)" +BASE_SAT EQUS "(BaseSpecialAttack - CurBaseData)" +BASE_SDF EQUS "(BaseSpecialDefense - CurBaseData)" +BASE_TYPES EQUS "(BaseType - CurBaseData)" +BASE_TYPE_1 EQUS "(BaseType1 - CurBaseData)" +BASE_TYPE_2 EQUS "(BaseType2 - CurBaseData)" +BASE_CATCH_RATE EQUS "(BaseCatchRate - CurBaseData)" +BASE_EXP EQUS "(BaseExp - CurBaseData)" +BASE_ITEMS EQUS "(BaseItems - CurBaseData)" +BASE_ITEM_1 EQUS "(BaseItem1 - CurBaseData)" +BASE_ITEM_2 EQUS "(BaseItem2 - CurBaseData)" +BASE_GENDER EQUS "(BaseGender - CurBaseData)" +BASE_UNKNOWN_1 EQUS "(BaseUnknown1 - CurBaseData)" +BASE_EGG_STEPS EQUS "(BaseEggSteps - CurBaseData)" +BASE_UNKNOWN_2 EQUS "(BaseUnknown2 - CurBaseData)" +BASE_PIC_SIZE EQUS "(BasePicSize - CurBaseData)" +BASE_PADDING EQUS "(BasePadding - CurBaseData)" +BASE_GROWTH_RATE EQUS "(BaseGrowthRate - CurBaseData)" +BASE_EGG_GROUPS EQUS "(BaseEggGroups - CurBaseData)" +BASE_TMHM EQUS "(BaseTMHM - CurBaseData)" +BASE_DATA_SIZE EQUS "(CurBaseDataEnd - CurBaseData)" + +; gender ratio constants +GENDER_F0 EQU 0 percent +GENDER_F12_5 EQU 31 ; 12.5 percent +GENDER_F25 EQU 25 percent +GENDER_F50 EQU 50 percent +GENDER_F75 EQU 75 percent +GENDER_F100 EQU 254 ; 100 percent +GENDERLESS EQU 255 + +; BaseGrowthRate values +; GrowthRates indexes (see data/growth_rates.asm) const_def const MEDIUM_FAST const SLIGHTLY_FAST @@ -7,7 +44,7 @@ const FAST const SLOW -; egg group constants +; BaseEggGroups values const_value SET 1 const MONSTER ; 1 const AMPHIBIAN ; 2 @@ -26,8 +63,48 @@ const_value SET 1 const NO_EGGS ; f -; menu sprites -const_value SET 1 +; party_struct members (see macros/wram.asm) +MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)" +MON_ITEM EQUS "(PartyMon1Item - PartyMon1)" +MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)" +MON_ID EQUS "(PartyMon1ID - PartyMon1)" +MON_EXP EQUS "(PartyMon1Exp - PartyMon1)" +MON_STAT_EXP EQUS "(PartyMon1StatExp - PartyMon1)" +MON_HP_EXP EQUS "(PartyMon1HPExp - PartyMon1)" +MON_ATK_EXP EQUS "(PartyMon1AtkExp - PartyMon1)" +MON_DEF_EXP EQUS "(PartyMon1DefExp - PartyMon1)" +MON_SPD_EXP EQUS "(PartyMon1SpdExp - PartyMon1)" +MON_SPC_EXP EQUS "(PartyMon1SpcExp - PartyMon1)" +MON_DVS EQUS "(PartyMon1DVs - PartyMon1)" +MON_PP EQUS "(PartyMon1PP - PartyMon1)" +MON_HAPPINESS EQUS "(PartyMon1Happiness - PartyMon1)" +MON_PKRUS EQUS "(PartyMon1PokerusStatus - PartyMon1)" +MON_CAUGHTDATA EQUS "(PartyMon1CaughtData - PartyMon1)" +MON_CAUGHTLEVEL EQUS "(PartyMon1CaughtLevel - PartyMon1)" +MON_CAUGHTTIME EQUS "(PartyMon1CaughtTime - PartyMon1)" +MON_CAUGHTGENDER EQUS "(PartyMon1CaughtGender - PartyMon1)" +MON_CAUGHTLOCATION EQUS "(PartyMon1CaughtLocation - PartyMon1)" +MON_LEVEL EQUS "(PartyMon1Level - PartyMon1)" +MON_STATUS EQUS "(PartyMon1Status - PartyMon1)" +MON_HP EQUS "(PartyMon1HP - PartyMon1)" +MON_MAXHP EQUS "(PartyMon1MaxHP - PartyMon1)" +MON_ATK EQUS "(PartyMon1Attack - PartyMon1)" +MON_DEF EQUS "(PartyMon1Defense - PartyMon1)" +MON_SPD EQUS "(PartyMon1Speed - PartyMon1)" +MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)" +MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)" +BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)" +PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)" +REDMON_STRUCT_LENGTH EQU 44 + + +; maximum number of party pokemon +PARTY_LENGTH EQU 6 + + +; IconPointers indexes (see gfx/icon_pointers.asm) + const_def + const ICON_NULL const ICON_POLIWAG const ICON_JIGGLYPUFF const ICON_DIGLETT @@ -68,7 +145,7 @@ const_value SET 1 const ICON_BIGMON -; evolution types +; evolution types (used in data/pokemon/evos_attacks.asm) const_value SET 1 const EVOLVE_LEVEL const EVOLVE_ITEM @@ -76,26 +153,73 @@ const_value SET 1 const EVOLVE_HAPPINESS const EVOLVE_STAT - -BASE_HAPPINESS EQU 70 -FRIEND_BALL_HAPPINESS EQU 200 - -; happiness evolution triggers -HAPPINESS_TO_EVOLVE EQU 220 +; EVOLVE_HAPPINESS triggers const_value SET 1 const TR_ANYTIME const TR_MORNDAY const TR_NITE - -; stat evolution triggers +; EVOLVE_STAT triggers const_value SET 1 const ATK_GT_DEF const ATK_LT_DEF const ATK_EQ_DEF -NUM_GRASSMON EQU 7 -NUM_WATERMON EQU 3 + +; significant happiness values +BASE_HAPPINESS EQU 70 +FRIEND_BALL_HAPPINESS EQU 200 +HAPPINESS_TO_EVOLVE EQU 220 +HAPPINESS_THRESHOLD_1 EQU 100 +HAPPINESS_THRESHOLD_2 EQU 200 + + +; wild data + +NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size +NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size GRASS_WILDDATA_LENGTH EQU (NUM_GRASSMON * 2 + 1) * 3 + 2 WATER_WILDDATA_LENGTH EQU (NUM_WATERMON * 2 + 1) * 1 + 2 + + +; swarms + +SWARM_DUNSPARCE EQU 0 +SWARM_YANMA EQU 1 + +FISHSWARM_QWILFISH EQU 1 +FISHSWARM_REMORAID EQU 2 + + +; MonMenuOptions indexes (see engine/mon_menu.asm) +const_value SET 1 +; moves + const MONMENU_CUT ; 1 + const MONMENU_FLY ; 2 + const MONMENU_SURF ; 3 + const MONMENU_STRENGTH ; 4 + const MONMENU_WATERFALL ; 5 + const MONMENU_FLASH ; 6 + const MONMENU_WHIRLPOOL ; 7 + const MONMENU_DIG ; 8 + const MONMENU_TELEPORT ; 9 + const MONMENU_SOFTBOILED ; 10 + const MONMENU_HEADBUTT ; 11 + const MONMENU_ROCKSMASH ; 12 + const MONMENU_MILKDRINK ; 13 + const MONMENU_SWEETSCENT ; 14 +; options + const MONMENU_STATS ; 15 + const MONMENU_SWITCH ; 16 + const MONMENU_ITEM ; 17 + const MONMENU_CANCEL ; 18 + const MONMENU_MOVE ; 19 + const MONMENU_MAIL ; 20 + const MONMENU_ERROR ; 21 + +; MonMenuOptions types +MONMENU_FIELD_MOVE EQU 0 +MONMENU_MENUOPTION EQU 1 + +NUM_MONMENU_ITEMS EQU 8 diff --git a/constants/printer_constants.asm b/constants/printer_constants.asm index 5cd8fcd77..3cbaa049a 100755 --- a/constants/printer_constants.asm +++ b/constants/printer_constants.asm @@ -1,5 +1,5 @@ +; wPrinterStatus const_value SET 1 - const PRINTER_STATUS_CHECKING const PRINTER_STATUS_TRANSMITTING const PRINTER_STATUS_PRINTING diff --git a/constants/radio_constants.asm b/constants/radio_constants.asm index 14bc75a41..86817081e 100644 --- a/constants/radio_constants.asm +++ b/constants/radio_constants.asm @@ -1,3 +1,4 @@ +; PlayRadioShow arguments, RadioJumptable indexes (see engine/radio.asm) const_def const OAKS_POKEMON_TALK ; $00 const POKEDEX_SHOW ; $01 @@ -88,6 +89,7 @@ const POKEDEX_SHOW_7 ; $56 const POKEDEX_SHOW_8 ; $57 +; PlayRadio arguments (see engine/pokegear.asm) const_def const MAPRADIO_POKEMON_CHANNEL const MAPRADIO_OAKS_MON_TALK @@ -99,12 +101,7 @@ const MAPRADIO_LETS_ALL_SING const MAPRADIO_ROCKET - const_def - const BUENA_MON - const BUENA_ITEM - const BUENA_MOVE - const BUENA_STRING - +; PasswordTable indexes (see engine/radio.asm) const_def const BUENA_STARTERS const BUENA_DRINKS @@ -119,3 +116,10 @@ const BUENA_STATIONS NUM_PASSWORD_CATEGORIES EQU const_value NUM_PASSWORDS_PER_CATEGORY EQU 3 + +; PasswordTable string types (see engine/radio.asm) + const_def + const BUENA_MON + const BUENA_ITEM + const BUENA_MOVE + const BUENA_STRING diff --git a/constants/script_constants.asm b/constants/script_constants.asm index b695c4ee9..9dd4987f8 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -2,6 +2,7 @@ PLAYER EQU 0 LAST_TALKED EQU -2 +; GetVarAction arguments (see engine/variables.asm) const_def const VAR_STRINGBUFFER2 ; 00 const VAR_PARTYCOUNT ; 01 @@ -32,10 +33,12 @@ LAST_TALKED EQU -2 const VAR_KENJI_BREAK ; 1a NUM_VARS EQU const_value ; 1b +; variable action types RETVAR_STRBUF2 EQU (0 << 6) RETVAR_ADDR_DE EQU (1 << 6) RETVAR_EXECUTE EQU (2 << 6) +; PlayerEventScriptPointers indexes (see engine/events.asm) const_value SET -1 const PLAYEREVENT_MAPSCRIPT const PLAYEREVENT_NONE diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm new file mode 100644 index 000000000..e7b4c4b2c --- /dev/null +++ b/constants/serial_constants.asm @@ -0,0 +1,12 @@ +; link types + const_def + const LINK_NULL ; 0 + const LINK_TIMECAPSULE ; 1 + const LINK_TRADECENTER ; 2 + const LINK_COLOSSEUM ; 3 + const LINK_MOBILE ; 4 + + +SERIAL_TIMECAPSULE EQU $60 +SERIAL_TRADECENTER EQU $70 +SERIAL_BATTLE EQU $80 diff --git a/constants/sfx_constants.asm b/constants/sfx_constants.asm index 65abfc3ca..0dee70793 100644 --- a/constants/sfx_constants.asm +++ b/constants/sfx_constants.asm @@ -1,3 +1,4 @@ +; SFX indexes (see audio/sfx_pointers.asm) const_def const SFX_DEX_FANFARE_50_79 ; 00 @@ -149,8 +150,8 @@ const SFX_FANFARE_2 ; 92 const SFX_REGISTER_PHONE_NUMBER ; 93 const SFX_3RD_PLACE ; 94 - const SFX_GET_EGG_FROM_DAYCARE_MAN ; 95 - const SFX_GET_EGG_FROM_DAYCARE_LADY ; 96 + const SFX_GET_EGG_FROM_DAY_CARE_MAN ; 95 + const SFX_GET_EGG_FROM_DAY_CARE_LADY ; 96 const SFX_MOVE_DELETED ; 97 const SFX_2ND_PLACE ; 98 const SFX_1ST_PLACE ; 99 @@ -191,6 +192,7 @@ const SFX_GLASS_TING ; bc const SFX_GLASS_TING_2 ; bd +; new to Crystal const SFX_INTRO_UNOWN_1 ; be const SFX_INTRO_UNOWN_2 ; bf const SFX_INTRO_UNOWN_3 ; c0 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index f9cc7ec77..b008ac6c2 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -1,5 +1,5 @@ - -; sprites +; sprite ids +; SpriteHeaders indexes (see gfx/sprite_headers.asm) const_def const SPRITE_NONE ; 00 const SPRITE_CHRIS ; 01 @@ -105,8 +105,8 @@ const SPRITE_RAIKOU ; 65 const SPRITE_STANDING_YOUNGSTER ; 66 +; SpriteMons indexes (see data/sprite_mons.asm) const_value SET $80 - SPRITE_POKEMON EQU const_value const SPRITE_UNOWN ; 80 const SPRITE_GEODUDE ; 81 @@ -144,10 +144,12 @@ SPRITE_POKEMON EQU const_value const SPRITE_LUGIA ; a1 const SPRITE_HO_OH ; a2 +; special GetMonSprite values (see engine/overworld.asm) const_value SET $e0 - const SPRITE_DAYCARE_MON_1 ; e0 - const SPRITE_DAYCARE_MON_2 ; e1 + const SPRITE_DAY_CARE_MON_1 ; e0 + const SPRITE_DAY_CARE_MON_2 ; e1 +; VariableSprites indexes (see wram.asm) const_value SET $f0 SPRITE_VARS EQU const_value const SPRITE_CONSOLE ; f0 @@ -163,499 +165,3 @@ SPRITE_VARS EQU const_value const SPRITE_FUCHSIA_GYM_4 ; fa const SPRITE_COPYCAT ; fb const SPRITE_JANINE_IMPERSONATOR ; fc - -; sprite types -const_value SET 1 - const WALKING_SPRITE - const STANDING_SPRITE - const STILL_SPRITE - -; sprite header fields - const_def - const SPRITEHEADER_ADDR_LO - const SPRITEHEADER_ADDR_HI - const SPRITEHEADER_SIZE - const SPRITEHEADER_BANK - const SPRITEHEADER_TYPE - const SPRITEHEADER_PALETTE -NUM_SPRITEHEADER_FIELDS EQU const_value - -; sprite palettes - const_def - const PAL_OW_RED - const PAL_OW_BLUE - const PAL_OW_GREEN - const PAL_OW_BROWN - const PAL_OW_PINK - const PAL_OW_SILVER - const PAL_OW_TREE - const PAL_OW_ROCK - -; sprite movement data table indices - const_def - const SPRITEMOVEDATA_00 ; 00 - const SPRITEMOVEDATA_ITEM_TREE ; 01 - const SPRITEMOVEDATA_WANDER ; 02 - const SPRITEMOVEDATA_SPINRANDOM_SLOW ; 03 - const SPRITEMOVEDATA_WALK_UP_DOWN ; 04 - const SPRITEMOVEDATA_WALK_LEFT_RIGHT ; 05 - const SPRITEMOVEDATA_STANDING_DOWN ; 06 - const SPRITEMOVEDATA_STANDING_UP ; 07 - const SPRITEMOVEDATA_STANDING_LEFT ; 08 - const SPRITEMOVEDATA_STANDING_RIGHT ; 09 - const SPRITEMOVEDATA_SPINRANDOM_FAST ; 0a - const SPRITEMOVEDATA_PLAYER ; 0b - const SPRITEMOVEDATA_0C ; 0c - const SPRITEMOVEDATA_0D ; 0d - const SPRITEMOVEDATA_0E ; 0e - const SPRITEMOVEDATA_0F ; 0f - const SPRITEMOVEDATA_10 ; 10 - const SPRITEMOVEDATA_11 ; 11 - const SPRITEMOVEDATA_12 ; 12 - const SPRITEMOVEDATA_FOLLOWING ; 13 - const SPRITEMOVEDATA_SCRIPTED ; 14 - const SPRITEMOVEDATA_SNORLAX ; 15 - const SPRITEMOVEDATA_POKEMON ; 16 - const SPRITEMOVEDATA_SUDOWOODO ; 17 - const SPRITEMOVEDATA_SMASHABLE_ROCK ; 18 - const SPRITEMOVEDATA_STRENGTH_BOULDER ; 19 - const SPRITEMOVEDATA_FOLLOWNOTEXACT ; 1a - const SPRITEMOVEDATA_SHADOW ; 1b - const SPRITEMOVEDATA_EMOTE ; 1c - const SPRITEMOVEDATA_SCREENSHAKE ; 1d - const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e - const SPRITEMOVEDATA_SPINCLOCKWISE ; 1f - const SPRITEMOVEDATA_20 ; 20 - const SPRITEMOVEDATA_BIGDOLL ; 21 - const SPRITEMOVEDATA_BOULDERDUST ; 22 - const SPRITEMOVEDATA_GRASS ; 23 - const SPRITEMOVEDATA_LAPRAS ; 24 -NUM_SPRITEMOVEDATA EQU const_value -SPRITEMOVEDATA_FIELDS EQU 6 - -; sprite movement functions - const_def - const SPRITEMOVEFN_00 - const SPRITEMOVEFN_RANDOM_WALK_Y - const SPRITEMOVEFN_RANDOM_WALK_X - const SPRITEMOVEFN_RANDOM_WALK_XY - const SPRITEMOVEFN_SLOW_RANDOM_SPIN - const SPRITEMOVEFN_FAST_RANDOM_SPIN - const SPRITEMOVEFN_STANDING - const SPRITEMOVEFN_OBEY_DPAD - const SPRITEMOVEFN_08 - const SPRITEMOVEFN_09 - const SPRITEMOVEFN_0A - const SPRITEMOVEFN_0B - const SPRITEMOVEFN_0C - const SPRITEMOVEFN_0D - const SPRITEMOVEFN_0E - const SPRITEMOVEFN_FOLLOW - const SPRITEMOVEFN_SCRIPTED - const SPRITEMOVEFN_STRENGTH - const SPRITEMOVEFN_FOLLOWNOTEXACT - const SPRITEMOVEFN_SHADOW - const SPRITEMOVEFN_EMOTE - const SPRITEMOVEFN_BIG_SNORLAX - const SPRITEMOVEFN_BOUNCE - const SPRITEMOVEFN_SCREENSHAKE - const SPRITEMOVEFN_SPIN_CLOCKWISE - const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE - const SPRITEMOVEFN_BOULDERDUST - const SPRITEMOVEFN_GRASS - -MAX_OUTDOOR_SPRITES EQU 23 - - const_def - const STEP_TYPE_00 - const STEP_TYPE_SLEEP - const STEP_TYPE_NPC_WALK - const STEP_TYPE_03 - const STEP_TYPE_04 - const STEP_TYPE_05 - const STEP_TYPE_PLAYER_WALK - const STEP_TYPE_07 - const STEP_TYPE_NPC_JUMP - const STEP_TYPE_PLAYER_JUMP - const STEP_TYPE_HALF_STEP - const STEP_TYPE_BUMP - const STEP_TYPE_TELEPORT_FROM - const STEP_TYPE_TELEPORT_TO - const STEP_TYPE_SKYFALL - const STEP_TYPE_0F - const STEP_TYPE_GOT_BITE - const STEP_TYPE_ROCK_SMASH - const STEP_TYPE_RETURN_DIG - const STEP_TYPE_TRACKING_OBJECT - const STEP_TYPE_14 - const STEP_TYPE_15 - const STEP_TYPE_16 - const STEP_TYPE_17 - const STEP_TYPE_18 - const STEP_TYPE_SKYFALL_TOP - - const_def - const PERSON_ACTION_00 - const PERSON_ACTION_STAND - const PERSON_ACTION_STEP - const PERSON_ACTION_BUMP - const PERSON_ACTION_SPIN - const PERSON_ACTION_SPIN_FLICKER - const PERSON_ACTION_FISHING - const PERSON_ACTION_SHADOW - const PERSON_ACTION_EMOTE - const PERSON_ACTION_BIG_SNORLAX - const PERSON_ACTION_BOUNCE - const PERSON_ACTION_WEIRD_TREE - const PERSON_ACTION_BIG_LAPRAS - const PERSON_ACTION_BIG_DOLL - const PERSON_ACTION_BOULDER_DUST - const PERSON_ACTION_GRASS_SHAKE - const PERSON_ACTION_SKYFALL - - const_def - const FACING_STEP_DOWN_0 - const FACING_STEP_DOWN_1 - const FACING_STEP_DOWN_2 - const FACING_STEP_DOWN_3 - const FACING_STEP_UP_0 - const FACING_STEP_UP_1 - const FACING_STEP_UP_2 - const FACING_STEP_UP_3 - const FACING_STEP_LEFT_0 - const FACING_STEP_LEFT_1 - const FACING_STEP_LEFT_2 - const FACING_STEP_LEFT_3 - const FACING_STEP_RIGHT_0 - const FACING_STEP_RIGHT_1 - const FACING_STEP_RIGHT_2 - const FACING_STEP_RIGHT_3 - const FACING_FISH_DOWN - const FACING_FISH_UP - const FACING_FISH_LEFT - const FACING_FISH_RIGHT - const FACING_EMOTE - const FACING_SHADOW - const FACING_BIG_DOLL_ASYM - const FACING_BIG_DOLL_SYM - const FACING_WEIRD_TREE_0 - const FACING_WEIRD_TREE_1 - const FACING_WEIRD_TREE_2 - const FACING_WEIRD_TREE_3 - const FACING_BOULDER_DUST_1 - const FACING_BOULDER_DUST_2 - const FACING_GRASS_1 - const FACING_GRASS_2 - - const_def - const SPRITEANIMSTRUCT_INDEX ; 0 - const SPRITEANIMSTRUCT_FRAMESET_ID ; 1 - const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2 - const SPRITEANIMSTRUCT_TILE_ID ; 3 - const SPRITEANIMSTRUCT_XCOORD ; 4 - const SPRITEANIMSTRUCT_YCOORD ; 5 - const SPRITEANIMSTRUCT_XOFFSET ; 6 - const SPRITEANIMSTRUCT_YOFFSET ; 7 - const SPRITEANIMSTRUCT_DURATION ; 8 - const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9 - const SPRITEANIMSTRUCT_FRAME ; a - const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b - const SPRITEANIMSTRUCT_0C ; c - const SPRITEANIMSTRUCT_0D ; d - const SPRITEANIMSTRUCT_0E ; e - const SPRITEANIMSTRUCT_0F ; f - - const_def - const SPRITE_ANIM_FRAMESET_00 - const SPRITE_ANIM_FRAMESET_PARTY_MON - const SPRITE_ANIM_FRAMESET_02 ; unused? - const SPRITE_ANIM_FRAMESET_03 ; unused? - const SPRITE_ANIM_FRAMESET_04 ; unused? - const SPRITE_ANIM_FRAMESET_05 ; unused? - const SPRITE_ANIM_FRAMESET_06 ; unused? - const SPRITE_ANIM_FRAMESET_07 - const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR - const SPRITE_ANIM_FRAMESET_09 ; unused? - const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO - const SPRITE_ANIM_FRAMESET_0B - const SPRITE_ANIM_FRAMESET_0C - const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM - const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY - const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 - const SPRITE_ANIM_FRAMESET_SLOTS_EGG - const SPRITE_ANIM_FRAMESET_WALK_CYCLE - const SPRITE_ANIM_FRAMESET_STILL_CURSOR - const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL - const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0 - const SPRITE_ANIM_FRAMESET_TRADE_POOF - const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE - const SPRITE_ANIM_FRAMESET_TRADEMON_ICON - const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE - const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT - const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB - const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED - const SPRITE_ANIM_FRAMESET_1C ; unused? - const SPRITE_ANIM_FRAMESET_LEAF - const SPRITE_ANIM_FRAMESET_CUT_TREE - const SPRITE_ANIM_FRAMESET_EGG_CRACK - const SPRITE_ANIM_FRAMESET_EGG_HATCH - const SPRITE_ANIM_FRAMESET_21 ; unused? - const SPRITE_ANIM_FRAMESET_22 ; unused? - const SPRITE_ANIM_FRAMESET_23 ; unused? - const SPRITE_ANIM_FRAMESET_24 - const SPRITE_ANIM_FRAMESET_HEADBUTT - const SPRITE_ANIM_FRAMESET_26 - const SPRITE_ANIM_FRAMESET_27 ; unused? - const SPRITE_ANIM_FRAMESET_28 ; unused? - const SPRITE_ANIM_FRAMESET_29 ; unused? - const SPRITE_ANIM_FRAMESET_2A ; unused? - const SPRITE_ANIM_FRAMESET_2B ; unused? - const SPRITE_ANIM_FRAMESET_2C ; unused? - const SPRITE_ANIM_FRAMESET_BLUE_WALK - const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE - const SPRITE_ANIM_FRAMESET_2F - const SPRITE_ANIM_FRAMESET_30 - const SPRITE_ANIM_FRAMESET_31 - const SPRITE_ANIM_FRAMESET_32 - const SPRITE_ANIM_FRAMESET_33 - const SPRITE_ANIM_FRAMESET_34 - const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE - const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 - const SPRITE_ANIM_FRAMESET_INTRO_PICHU - const SPRITE_ANIM_FRAMESET_INTRO_WOOPER - const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 - const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 - const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 - const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 - const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 - const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY - const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F - const SPRITE_ANIM_FRAMESET_CELEBI_LEFT - const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT - - const_def - const SPRITE_ANIM_SEQ_NULL - const SPRITE_ANIM_SEQ_01 - const SPRITE_ANIM_SEQ_02 - const SPRITE_ANIM_SEQ_03 - const SPRITE_ANIM_SEQ_04 - const SPRITE_ANIM_SEQ_05 - const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO - const SPRITE_ANIM_SEQ_07 - const SPRITE_ANIM_SEQ_08 - const SPRITE_ANIM_SEQ_SLOT_GOLEM - const SPRITE_ANIM_SEQ_SLOTS_CHANSEY - const SPRITE_ANIM_SEQ_SLOTS_EGG - const SPRITE_ANIM_SEQ_0C - const SPRITE_ANIM_SEQ_0D - const SPRITE_ANIM_SEQ_0E - const SPRITE_ANIM_SEQ_0F - const SPRITE_ANIM_SEQ_10 - const SPRITE_ANIM_SEQ_11 - const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE - const SPRITE_ANIM_SEQ_13 - const SPRITE_ANIM_SEQ_14 - const SPRITE_ANIM_SEQ_15 - const SPRITE_ANIM_SEQ_FLY_FROM - const SPRITE_ANIM_SEQ_FLY_LEAF - const SPRITE_ANIM_SEQ_FLY_TO - const SPRITE_ANIM_SEQ_19 - const SPRITE_ANIM_SEQ_1A - const SPRITE_ANIM_SEQ_1B - const SPRITE_ANIM_SEQ_1C - const SPRITE_ANIM_SEQ_1D - const SPRITE_ANIM_SEQ_1E - const SPRITE_ANIM_SEQ_1F - const SPRITE_ANIM_SEQ_20 - const SPRITE_ANIM_SEQ_21 - const SPRITE_ANIM_SEQ_22 - - const_def - const SPRITE_ANIM_INDEX_00 - const SPRITE_ANIM_INDEX_01 - const SPRITE_ANIM_INDEX_02 - const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO - const SPRITE_ANIM_INDEX_04 - const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR - const SPRITE_ANIM_INDEX_SLOT_GOLEM - const SPRITE_ANIM_INDEX_SLOTS_CHANSEY - const SPRITE_ANIM_INDEX_SLOTS_EGG - const SPRITE_ANIM_INDEX_09 - const SPRITE_ANIM_INDEX_RED_WALK - const SPRITE_ANIM_INDEX_0B - const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR - const SPRITE_ANIM_INDEX_0D - const SPRITE_ANIM_INDEX_0E - const SPRITE_ANIM_INDEX_0F - const SPRITE_ANIM_INDEX_10 - const SPRITE_ANIM_INDEX_TRADEMON_ICON - const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE - const SPRITE_ANIM_INDEX_13 - const SPRITE_ANIM_INDEX_14 - const SPRITE_ANIM_INDEX_15 - const SPRITE_ANIM_INDEX_LEAF - const SPRITE_ANIM_INDEX_CUT_TREE - const SPRITE_ANIM_INDEX_FLY_LEAF - const SPRITE_ANIM_INDEX_19 - const SPRITE_ANIM_INDEX_1A - const SPRITE_ANIM_INDEX_1B - const SPRITE_ANIM_INDEX_1C - const SPRITE_ANIM_INDEX_1D - const SPRITE_ANIM_INDEX_BLUE_WALK - const SPRITE_ANIM_INDEX_1F - const SPRITE_ANIM_INDEX_20 - const SPRITE_ANIM_INDEX_21 - const SPRITE_ANIM_INDEX_22 - const SPRITE_ANIM_INDEX_23 - const SPRITE_ANIM_INDEX_24 - const SPRITE_ANIM_INDEX_25 - const SPRITE_ANIM_INDEX_26 - const SPRITE_ANIM_INDEX_27 - const SPRITE_ANIM_INDEX_28 - const SPRITE_ANIM_INDEX_29 - const SPRITE_ANIM_INDEX_2A - const SPRITE_ANIM_INDEX_2B - const SPRITE_ANIM_INDEX_2C - - const_def - - const SPRITE_ANIM_FRAME_IDX_00 - const SPRITE_ANIM_FRAME_IDX_01 - const SPRITE_ANIM_FRAME_IDX_02 - const SPRITE_ANIM_FRAME_IDX_03 - const SPRITE_ANIM_FRAME_IDX_04 - const SPRITE_ANIM_FRAME_IDX_05 - const SPRITE_ANIM_FRAME_IDX_06 - const SPRITE_ANIM_FRAME_IDX_07 - const SPRITE_ANIM_FRAME_IDX_08 - const SPRITE_ANIM_FRAME_IDX_09 - const SPRITE_ANIM_FRAME_IDX_0A - const SPRITE_ANIM_FRAME_IDX_0B - const SPRITE_ANIM_FRAME_IDX_0C - const SPRITE_ANIM_FRAME_IDX_0D - const SPRITE_ANIM_FRAME_IDX_0E - const SPRITE_ANIM_FRAME_IDX_0F - const SPRITE_ANIM_FRAME_IDX_10 - const SPRITE_ANIM_FRAME_IDX_11 - const SPRITE_ANIM_FRAME_IDX_12 - const SPRITE_ANIM_FRAME_IDX_13 - const SPRITE_ANIM_FRAME_IDX_14 - const SPRITE_ANIM_FRAME_IDX_15 - const SPRITE_ANIM_FRAME_IDX_16 - const SPRITE_ANIM_FRAME_IDX_17 - const SPRITE_ANIM_FRAME_IDX_18 - const SPRITE_ANIM_FRAME_IDX_19 - const SPRITE_ANIM_FRAME_IDX_1A - const SPRITE_ANIM_FRAME_IDX_1B - const SPRITE_ANIM_FRAME_IDX_1C - const SPRITE_ANIM_FRAME_IDX_1D - const SPRITE_ANIM_FRAME_IDX_1E - const SPRITE_ANIM_FRAME_IDX_1F - const SPRITE_ANIM_FRAME_IDX_20 - const SPRITE_ANIM_FRAME_IDX_21 - const SPRITE_ANIM_FRAME_IDX_22 - const SPRITE_ANIM_FRAME_IDX_23 - const SPRITE_ANIM_FRAME_IDX_24 - const SPRITE_ANIM_FRAME_IDX_25 - const SPRITE_ANIM_FRAME_IDX_26 - const SPRITE_ANIM_FRAME_IDX_27 - const SPRITE_ANIM_FRAME_IDX_28 - const SPRITE_ANIM_FRAME_IDX_29 - const SPRITE_ANIM_FRAME_IDX_2A - const SPRITE_ANIM_FRAME_IDX_2B - const SPRITE_ANIM_FRAME_IDX_2C - const SPRITE_ANIM_FRAME_IDX_2D - const SPRITE_ANIM_FRAME_IDX_2E - const SPRITE_ANIM_FRAME_IDX_2F - const SPRITE_ANIM_FRAME_IDX_30 - const SPRITE_ANIM_FRAME_IDX_31 - const SPRITE_ANIM_FRAME_IDX_32 - const SPRITE_ANIM_FRAME_IDX_33 - const SPRITE_ANIM_FRAME_IDX_34 - const SPRITE_ANIM_FRAME_IDX_35 - const SPRITE_ANIM_FRAME_IDX_36 - const SPRITE_ANIM_FRAME_IDX_37 - const SPRITE_ANIM_FRAME_IDX_38 - const SPRITE_ANIM_FRAME_IDX_39 - const SPRITE_ANIM_FRAME_IDX_3A - const SPRITE_ANIM_FRAME_IDX_3B - const SPRITE_ANIM_FRAME_IDX_3C - const SPRITE_ANIM_FRAME_IDX_3D - const SPRITE_ANIM_FRAME_IDX_3E - const SPRITE_ANIM_FRAME_IDX_3F - const SPRITE_ANIM_FRAME_IDX_40 - const SPRITE_ANIM_FRAME_IDX_41 - const SPRITE_ANIM_FRAME_IDX_42 - const SPRITE_ANIM_FRAME_IDX_43 - const SPRITE_ANIM_FRAME_IDX_44 - const SPRITE_ANIM_FRAME_IDX_45 - const SPRITE_ANIM_FRAME_IDX_46 - const SPRITE_ANIM_FRAME_IDX_47 - const SPRITE_ANIM_FRAME_IDX_48 - const SPRITE_ANIM_FRAME_IDX_49 - const SPRITE_ANIM_FRAME_IDX_4A - const SPRITE_ANIM_FRAME_IDX_4B - const SPRITE_ANIM_FRAME_IDX_4C - const SPRITE_ANIM_FRAME_IDX_4D - const SPRITE_ANIM_FRAME_IDX_4E - const SPRITE_ANIM_FRAME_IDX_4F - const SPRITE_ANIM_FRAME_IDX_50 - const SPRITE_ANIM_FRAME_IDX_51 - const SPRITE_ANIM_FRAME_IDX_52 - const SPRITE_ANIM_FRAME_IDX_53 - const SPRITE_ANIM_FRAME_IDX_54 - const SPRITE_ANIM_FRAME_IDX_55 - const SPRITE_ANIM_FRAME_IDX_56 - const SPRITE_ANIM_FRAME_IDX_57 - const SPRITE_ANIM_FRAME_IDX_58 - const SPRITE_ANIM_FRAME_IDX_59 - const SPRITE_ANIM_FRAME_IDX_5A - const SPRITE_ANIM_FRAME_IDX_5B - const SPRITE_ANIM_FRAME_IDX_5C - const SPRITE_ANIM_FRAME_IDX_5D - const SPRITE_ANIM_FRAME_IDX_5E - const SPRITE_ANIM_FRAME_IDX_5F - const SPRITE_ANIM_FRAME_IDX_60 - const SPRITE_ANIM_FRAME_IDX_61 - const SPRITE_ANIM_FRAME_IDX_62 - const SPRITE_ANIM_FRAME_IDX_63 - const SPRITE_ANIM_FRAME_IDX_64 - const SPRITE_ANIM_FRAME_IDX_65 - const SPRITE_ANIM_FRAME_IDX_66 - const SPRITE_ANIM_FRAME_IDX_67 - const SPRITE_ANIM_FRAME_IDX_68 - const SPRITE_ANIM_FRAME_IDX_69 - const SPRITE_ANIM_FRAME_IDX_6A - const SPRITE_ANIM_FRAME_IDX_6B - const SPRITE_ANIM_FRAME_IDX_6C - const SPRITE_ANIM_FRAME_IDX_6D - const SPRITE_ANIM_FRAME_IDX_6E - const SPRITE_ANIM_FRAME_IDX_6F - const SPRITE_ANIM_FRAME_IDX_70 - const SPRITE_ANIM_FRAME_IDX_71 - const SPRITE_ANIM_FRAME_IDX_72 - const SPRITE_ANIM_FRAME_IDX_73 - const SPRITE_ANIM_FRAME_IDX_74 - const SPRITE_ANIM_FRAME_IDX_75 - const SPRITE_ANIM_FRAME_IDX_76 - const SPRITE_ANIM_FRAME_IDX_77 - const SPRITE_ANIM_FRAME_IDX_78 - const SPRITE_ANIM_FRAME_IDX_79 - const SPRITE_ANIM_FRAME_IDX_7A - const SPRITE_ANIM_FRAME_IDX_7B - const SPRITE_ANIM_FRAME_IDX_7C - const SPRITE_ANIM_FRAME_IDX_7D - const SPRITE_ANIM_FRAME_IDX_7E - const SPRITE_ANIM_FRAME_IDX_7F - const SPRITE_ANIM_FRAME_IDX_80 - const SPRITE_ANIM_FRAME_IDX_81 - const SPRITE_ANIM_FRAME_IDX_82 - const SPRITE_ANIM_FRAME_IDX_83 - const SPRITE_ANIM_FRAME_IDX_84 - const SPRITE_ANIM_FRAME_IDX_85 - const SPRITE_ANIM_FRAME_IDX_86 - const SPRITE_ANIM_FRAME_IDX_87 - const SPRITE_ANIM_FRAME_IDX_88 - const SPRITE_ANIM_FRAME_IDX_89 - const SPRITE_ANIM_FRAME_IDX_8A - const SPRITE_ANIM_FRAME_IDX_8B diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm new file mode 100644 index 000000000..77d9e3975 --- /dev/null +++ b/constants/sprite_data_constants.asm @@ -0,0 +1,511 @@ +; sprite_header struct members (see gfx/sprite_headers.asm) + const_def + const SPRITEHEADER_ADDR_LO ; 0 + const SPRITEHEADER_ADDR_HI ; 1 + const SPRITEHEADER_SIZE ; 2 + const SPRITEHEADER_BANK ; 3 + const SPRITEHEADER_TYPE ; 4 + const SPRITEHEADER_PALETTE ; 5 +NUM_SPRITEHEADER_FIELDS EQU const_value + +; sprite types +const_value SET 1 + const WALKING_SPRITE ; 1 + const STANDING_SPRITE ; 2 + const STILL_SPRITE ; 3 + +; sprite palettes + const_def + const PAL_OW_RED ; 0 + const PAL_OW_BLUE ; 1 + const PAL_OW_GREEN ; 2 + const PAL_OW_BROWN ; 3 + const PAL_OW_PINK ; 4 + const PAL_OW_SILVER ; 5 + const PAL_OW_TREE ; 6 + const PAL_OW_ROCK ; 7 + +; object_events set bit 3 so as not to use the sprite's default palette +const_value set (1 << 3) + const PAL_NPC_RED ; 8 + const PAL_NPC_BLUE ; 9 + const PAL_NPC_GREEN ; a + const PAL_NPC_BROWN ; b + const PAL_NPC_PINK ; c + const PAL_NPC_SILVER ; d + const PAL_NPC_TREE ; e + const PAL_NPC_ROCK ; f + +; SpriteMovementData indexes (see data/map_objects.asm) + const_def + const SPRITEMOVEDATA_00 ; 00 + const SPRITEMOVEDATA_ITEM_TREE ; 01 + const SPRITEMOVEDATA_WANDER ; 02 + const SPRITEMOVEDATA_SPINRANDOM_SLOW ; 03 + const SPRITEMOVEDATA_WALK_UP_DOWN ; 04 + const SPRITEMOVEDATA_WALK_LEFT_RIGHT ; 05 + const SPRITEMOVEDATA_STANDING_DOWN ; 06 + const SPRITEMOVEDATA_STANDING_UP ; 07 + const SPRITEMOVEDATA_STANDING_LEFT ; 08 + const SPRITEMOVEDATA_STANDING_RIGHT ; 09 + const SPRITEMOVEDATA_SPINRANDOM_FAST ; 0a + const SPRITEMOVEDATA_PLAYER ; 0b + const SPRITEMOVEDATA_0C ; 0c + const SPRITEMOVEDATA_0D ; 0d + const SPRITEMOVEDATA_0E ; 0e + const SPRITEMOVEDATA_0F ; 0f + const SPRITEMOVEDATA_10 ; 10 + const SPRITEMOVEDATA_11 ; 11 + const SPRITEMOVEDATA_12 ; 12 + const SPRITEMOVEDATA_FOLLOWING ; 13 + const SPRITEMOVEDATA_SCRIPTED ; 14 + const SPRITEMOVEDATA_SNORLAX ; 15 + const SPRITEMOVEDATA_POKEMON ; 16 + const SPRITEMOVEDATA_SUDOWOODO ; 17 + const SPRITEMOVEDATA_SMASHABLE_ROCK ; 18 + const SPRITEMOVEDATA_STRENGTH_BOULDER ; 19 + const SPRITEMOVEDATA_FOLLOWNOTEXACT ; 1a + const SPRITEMOVEDATA_SHADOW ; 1b + const SPRITEMOVEDATA_EMOTE ; 1c + const SPRITEMOVEDATA_SCREENSHAKE ; 1d + const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE ; 1e + const SPRITEMOVEDATA_SPINCLOCKWISE ; 1f + const SPRITEMOVEDATA_20 ; 20 + const SPRITEMOVEDATA_BIGDOLL ; 21 + const SPRITEMOVEDATA_BOULDERDUST ; 22 + const SPRITEMOVEDATA_GRASS ; 23 + const SPRITEMOVEDATA_LAPRAS ; 24 +NUM_SPRITEMOVEDATA EQU const_value +SPRITEMOVEDATA_FIELDS EQU 6 + +; MapObjectMovementPattern.Pointers indexes (see engine/map_objects.asm) + const_def + const SPRITEMOVEFN_00 ; 00 + const SPRITEMOVEFN_RANDOM_WALK_Y ; 01 + const SPRITEMOVEFN_RANDOM_WALK_X ; 02 + const SPRITEMOVEFN_RANDOM_WALK_XY ; 03 + const SPRITEMOVEFN_SLOW_RANDOM_SPIN ; 04 + const SPRITEMOVEFN_FAST_RANDOM_SPIN ; 05 + const SPRITEMOVEFN_STANDING ; 06 + const SPRITEMOVEFN_OBEY_DPAD ; 07 + const SPRITEMOVEFN_08 ; 08 + const SPRITEMOVEFN_09 ; 09 + const SPRITEMOVEFN_0A ; 0a + const SPRITEMOVEFN_0B ; 0b + const SPRITEMOVEFN_0C ; 0c + const SPRITEMOVEFN_0D ; 0d + const SPRITEMOVEFN_0E ; 0e + const SPRITEMOVEFN_FOLLOW ; 0f + const SPRITEMOVEFN_SCRIPTED ; 10 + const SPRITEMOVEFN_STRENGTH ; 11 + const SPRITEMOVEFN_FOLLOWNOTEXACT ; 12 + const SPRITEMOVEFN_SHADOW ; 13 + const SPRITEMOVEFN_EMOTE ; 14 + const SPRITEMOVEFN_BIG_SNORLAX ; 15 + const SPRITEMOVEFN_BOUNCE ; 16 + const SPRITEMOVEFN_SCREENSHAKE ; 17 + const SPRITEMOVEFN_SPIN_CLOCKWISE ; 18 + const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE ; 19 + const SPRITEMOVEFN_BOULDERDUST ; 1a + const SPRITEMOVEFN_GRASS ; 1b + +; StepTypesJumptable indexes (see engine/map_objects.asm) + const_def + const STEP_TYPE_00 ; 00 + const STEP_TYPE_SLEEP ; 01 + const STEP_TYPE_NPC_WALK ; 02 + const STEP_TYPE_03 ; 03 + const STEP_TYPE_04 ; 04 + const STEP_TYPE_05 ; 05 + const STEP_TYPE_PLAYER_WALK ; 06 + const STEP_TYPE_07 ; 07 + const STEP_TYPE_NPC_JUMP ; 08 + const STEP_TYPE_PLAYER_JUMP ; 09 + const STEP_TYPE_HALF_STEP ; 0a + const STEP_TYPE_BUMP ; 0b + const STEP_TYPE_TELEPORT_FROM ; 0c + const STEP_TYPE_TELEPORT_TO ; 0d + const STEP_TYPE_SKYFALL ; 0e + const STEP_TYPE_0F ; 0f + const STEP_TYPE_GOT_BITE ; 10 + const STEP_TYPE_ROCK_SMASH ; 11 + const STEP_TYPE_RETURN_DIG ; 12 + const STEP_TYPE_TRACKING_OBJECT ; 13 + const STEP_TYPE_14 ; 14 + const STEP_TYPE_15 ; 15 + const STEP_TYPE_16 ; 16 + const STEP_TYPE_17 ; 17 + const STEP_TYPE_18 ; 18 + const STEP_TYPE_SKYFALL_TOP ; 19 + +; ObjectActionPairPointers indexes (see engine/map_object_action.asm) + const_def + const OBJECT_ACTION_00 ; 00 + const OBJECT_ACTION_STAND ; 01 + const OBJECT_ACTION_STEP ; 02 + const OBJECT_ACTION_BUMP ; 03 + const OBJECT_ACTION_SPIN ; 04 + const OBJECT_ACTION_SPIN_FLICKER ; 05 + const OBJECT_ACTION_FISHING ; 06 + const OBJECT_ACTION_SHADOW ; 07 + const OBJECT_ACTION_EMOTE ; 08 + const OBJECT_ACTION_BIG_SNORLAX ; 09 + const OBJECT_ACTION_BOUNCE ; 0a + const OBJECT_ACTION_WEIRD_TREE ; 0b + const OBJECT_ACTION_BIG_LAPRAS ; 0c + const OBJECT_ACTION_BIG_DOLL ; 0d + const OBJECT_ACTION_BOULDER_DUST ; 0e + const OBJECT_ACTION_GRASS_SHAKE ; 0f + const OBJECT_ACTION_SKYFALL ; 10 + +; Facings indexes (see data/facings.asm) + const_def + const FACING_STEP_DOWN_0 ; 00 + const FACING_STEP_DOWN_1 ; 01 + const FACING_STEP_DOWN_2 ; 02 + const FACING_STEP_DOWN_3 ; 03 + const FACING_STEP_UP_0 ; 04 + const FACING_STEP_UP_1 ; 05 + const FACING_STEP_UP_2 ; 06 + const FACING_STEP_UP_3 ; 07 + const FACING_STEP_LEFT_0 ; 08 + const FACING_STEP_LEFT_1 ; 09 + const FACING_STEP_LEFT_2 ; 0a + const FACING_STEP_LEFT_3 ; 0b + const FACING_STEP_RIGHT_0 ; 0c + const FACING_STEP_RIGHT_1 ; 0d + const FACING_STEP_RIGHT_2 ; 0e + const FACING_STEP_RIGHT_3 ; 0f + const FACING_FISH_DOWN ; 10 + const FACING_FISH_UP ; 11 + const FACING_FISH_LEFT ; 12 + const FACING_FISH_RIGHT ; 13 + const FACING_EMOTE ; 14 + const FACING_SHADOW ; 15 + const FACING_BIG_DOLL_ASYM ; 16 + const FACING_BIG_DOLL_SYM ; 17 + const FACING_WEIRD_TREE_0 ; 18 + const FACING_WEIRD_TREE_1 ; 19 + const FACING_WEIRD_TREE_2 ; 1a + const FACING_WEIRD_TREE_3 ; 1b + const FACING_BOULDER_DUST_1 ; 1c + const FACING_BOULDER_DUST_2 ; 1d + const FACING_GRASS_1 ; 1e + const FACING_GRASS_2 ; 1f + +; sprite_anim_struct members (see macros/wram.asm) + const_def + const SPRITEANIMSTRUCT_INDEX ; 0 + const SPRITEANIMSTRUCT_FRAMESET_ID ; 1 + const SPRITEANIMSTRUCT_ANIM_SEQ_ID ; 2 + const SPRITEANIMSTRUCT_TILE_ID ; 3 + const SPRITEANIMSTRUCT_XCOORD ; 4 + const SPRITEANIMSTRUCT_YCOORD ; 5 + const SPRITEANIMSTRUCT_XOFFSET ; 6 + const SPRITEANIMSTRUCT_YOFFSET ; 7 + const SPRITEANIMSTRUCT_DURATION ; 8 + const SPRITEANIMSTRUCT_DURATIONOFFSET ; 9 + const SPRITEANIMSTRUCT_FRAME ; a + const SPRITEANIMSTRUCT_JUMPTABLE_INDEX ; b + const SPRITEANIMSTRUCT_0C ; c + const SPRITEANIMSTRUCT_0D ; d + const SPRITEANIMSTRUCT_0E ; e + const SPRITEANIMSTRUCT_0F ; f + +; SpriteAnimSeqData indexes (see data/sprite_anim_seqs.asm) + const_def + const SPRITE_ANIM_INDEX_PARTY_MON ; 00 + const SPRITE_ANIM_INDEX_GS_TITLE_TRAIL ; 01 + const SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR ; 02 + const SPRITE_ANIM_INDEX_GAMEFREAK_LOGO ; 03 + const SPRITE_ANIM_INDEX_GS_INTRO_STAR ; 04 + const SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE ; 05 + const SPRITE_ANIM_INDEX_SLOTS_GOLEM ; 06 + const SPRITE_ANIM_INDEX_SLOTS_CHANSEY ; 07 + const SPRITE_ANIM_INDEX_SLOTS_EGG ; 08 + const SPRITE_ANIM_INDEX_COMPOSE_MAIL_CURSOR ; 09 + const SPRITE_ANIM_INDEX_RED_WALK ; 0a + const SPRITE_ANIM_INDEX_UNUSED_CURSOR ; 0b + const SPRITE_ANIM_INDEX_DUMMY_GAME ; 0c + const SPRITE_ANIM_INDEX_POKEGEAR_ARROW ; 0d + const SPRITE_ANIM_INDEX_TRADE_POKE_BALL ; 0e + const SPRITE_ANIM_INDEX_TRADE_POOF ; 0f + const SPRITE_ANIM_INDEX_TRADE_TUBE_BULGE ; 10 + const SPRITE_ANIM_INDEX_TRADEMON_ICON ; 11 + const SPRITE_ANIM_INDEX_TRADEMON_BUBBLE ; 12 + const SPRITE_ANIM_INDEX_EVOLUTION_BALL_OF_LIGHT ; 13 + const SPRITE_ANIM_INDEX_RADIO_TUNING_KNOB ; 14 + const SPRITE_ANIM_INDEX_MAGNET_TRAIN_RED ; 15 + const SPRITE_ANIM_INDEX_LEAF ; 16 + const SPRITE_ANIM_INDEX_CUT_TREE ; 17 + const SPRITE_ANIM_INDEX_FLY_LEAF ; 18 + const SPRITE_ANIM_INDEX_EGG_CRACK ; 19 + const SPRITE_ANIM_INDEX_1A ; 1a + const SPRITE_ANIM_INDEX_HEADBUTT ; 1b + const SPRITE_ANIM_INDEX_EGG_HATCH ; 1c + const SPRITE_ANIM_INDEX_1D ; 1d + const SPRITE_ANIM_INDEX_BLUE_WALK ; 1e + const SPRITE_ANIM_INDEX_MAGNET_TRAIN_BLUE ; 1f + const SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL ; 20 + const SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL ; 21 + const SPRITE_ANIM_INDEX_MOBILE_22 ; 22 + const SPRITE_ANIM_INDEX_MOBILE_23 ; 23 + const SPRITE_ANIM_INDEX_MOBILE_24 ; 24 + const SPRITE_ANIM_INDEX_MOBILE_25 ; 25 + const SPRITE_ANIM_INDEX_INTRO_SUICUNE ; 26 + const SPRITE_ANIM_INDEX_INTRO_PICHU ; 27 + const SPRITE_ANIM_INDEX_INTRO_WOOPER ; 28 + const SPRITE_ANIM_INDEX_INTRO_UNOWN ; 29 + const SPRITE_ANIM_INDEX_INTRO_UNOWN_F ; 2a + const SPRITE_ANIM_INDEX_INTRO_SUICUNE_AWAY ; 2b + const SPRITE_ANIM_INDEX_CELEBI ; 2c + +; DoAnimFrame.Jumptable indexes (see engine/sprite_anims.asm) + const_def + const SPRITE_ANIM_SEQ_NULL ; 00 + const SPRITE_ANIM_SEQ_PARTY_MON ; 01 + const SPRITE_ANIM_SEQ_PARTY_MON_SWITCH ; 02 + const SPRITE_ANIM_SEQ_PARTY_MON_SELECTED ; 03 + const SPRITE_ANIM_SEQ_GS_TITLE_TRAIL ; 04 + const SPRITE_ANIM_SEQ_NAMING_SCREEN_CURSOR ; 05 + const SPRITE_ANIM_SEQ_GAMEFREAK_LOGO ; 06 + const SPRITE_ANIM_SEQ_GS_INTRO_STAR ; 07 + const SPRITE_ANIM_SEQ_GS_INTRO_SPARKLE ; 08 + const SPRITE_ANIM_SEQ_SLOTS_GOLEM ; 09 + const SPRITE_ANIM_SEQ_SLOTS_CHANSEY ; 0a + const SPRITE_ANIM_SEQ_SLOTS_EGG ; 0b + const SPRITE_ANIM_SEQ_MAIL_CURSOR ; 0c + const SPRITE_ANIM_SEQ_FOR_UNUSED_CURSOR ; 0d + const SPRITE_ANIM_SEQ_DUMMY_GAME_CURSOR ; 0e + const SPRITE_ANIM_SEQ_POKEGEAR_ARROW ; 0f + const SPRITE_ANIM_SEQ_TRADE_POKE_BALL ; 10 + const SPRITE_ANIM_SEQ_TRADE_TUBE_BULGE ; 11 + const SPRITE_ANIM_SEQ_TRADEMON_IN_TUBE ; 12 + const SPRITE_ANIM_SEQ_REVEAL_NEW_MON ; 13 + const SPRITE_ANIM_SEQ_RADIO_TUNING_KNOB ; 14 + const SPRITE_ANIM_SEQ_CUT_LEAVES ; 15 + const SPRITE_ANIM_SEQ_FLY_FROM ; 16 + const SPRITE_ANIM_SEQ_FLY_LEAF ; 17 + const SPRITE_ANIM_SEQ_FLY_TO ; 18 + const SPRITE_ANIM_SEQ_19 ; 19 + const SPRITE_ANIM_SEQ_1A ; 1a + const SPRITE_ANIM_SEQ_FOR_MOBILE_23 ; 1b + const SPRITE_ANIM_SEQ_FOR_MOBILE_24 ; 1c + const SPRITE_ANIM_SEQ_INTRO_SUICUNE ; 1d + const SPRITE_ANIM_SEQ_INTRO_PICHU_WOOPER ; 1e + const SPRITE_ANIM_SEQ_CELEBI ; 1f + const SPRITE_ANIM_SEQ_INTRO_UNOWN ; 20 + const SPRITE_ANIM_SEQ_INTRO_UNOWN_F ; 21 + const SPRITE_ANIM_SEQ_INTRO_SUICUNE_AWAY ; 22 + +; SpriteAnimFrameData indexes (see data/sprite_anim_frames.asm) + const_def + const SPRITE_ANIM_FRAMESET_00 + const SPRITE_ANIM_FRAMESET_PARTY_MON ; 01 + const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL ; 02 + const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM ; 03 + const SPRITE_ANIM_FRAMESET_PARTY_MON_FAST ; 04 + const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_MAIL_FAST ; 05 + const SPRITE_ANIM_FRAMESET_PARTY_MON_WITH_ITEM_FAST ; 06 + const SPRITE_ANIM_FRAMESET_GS_TITLE_TRAIL ; 07 + const SPRITE_ANIM_FRAMESET_TEXT_ENTRY_CURSOR ; 08 + const SPRITE_ANIM_FRAMESET_09 + const SPRITE_ANIM_FRAMESET_GAMEFREAK_LOGO ; 0a + const SPRITE_ANIM_FRAMESET_GS_INTRO_STAR ; 0b + const SPRITE_ANIM_FRAMESET_GS_INTRO_SPARKLE ; 0c + const SPRITE_ANIM_FRAMESET_SLOTS_GOLEM ; 0d + const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY ; 0e + const SPRITE_ANIM_FRAMESET_SLOTS_CHANSEY_2 ; 0f + const SPRITE_ANIM_FRAMESET_SLOTS_EGG ; 10 + const SPRITE_ANIM_FRAMESET_RED_WALK ; 11 + const SPRITE_ANIM_FRAMESET_STILL_CURSOR ; 12 + const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL ; 13 + const SPRITE_ANIM_FRAMESET_TRADE_POKE_BALL_0 ; 14 + const SPRITE_ANIM_FRAMESET_TRADE_POOF ; 15 + const SPRITE_ANIM_FRAMESET_TRADE_TUBE_BULGE ; 16 + const SPRITE_ANIM_FRAMESET_TRADEMON_ICON ; 17 + const SPRITE_ANIM_FRAMESET_TRADEMON_BUBBLE ; 18 + const SPRITE_ANIM_FRAMESET_EVOLUTION_BALL_OF_LIGHT ; 19 + const SPRITE_ANIM_FRAMESET_RADIO_TUNING_KNOB ; 1a + const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_RED ; 1b + const SPRITE_ANIM_FRAMESET_1C + const SPRITE_ANIM_FRAMESET_LEAF ; 1d + const SPRITE_ANIM_FRAMESET_CUT_TREE ; 1e + const SPRITE_ANIM_FRAMESET_EGG_CRACK ; 1f + const SPRITE_ANIM_FRAMESET_EGG_HATCH ; 20 + const SPRITE_ANIM_FRAMESET_21 + const SPRITE_ANIM_FRAMESET_22 + const SPRITE_ANIM_FRAMESET_23 + const SPRITE_ANIM_FRAMESET_24 + const SPRITE_ANIM_FRAMESET_HEADBUTT ; 25 + const SPRITE_ANIM_FRAMESET_26 + const SPRITE_ANIM_FRAMESET_27 + const SPRITE_ANIM_FRAMESET_28 + const SPRITE_ANIM_FRAMESET_29 + const SPRITE_ANIM_FRAMESET_2A + const SPRITE_ANIM_FRAMESET_2B + const SPRITE_ANIM_FRAMESET_2C + const SPRITE_ANIM_FRAMESET_BLUE_WALK ; 2d + const SPRITE_ANIM_FRAMESET_MAGNET_TRAIN_BLUE ; 2e + const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_SENT_BALL ; 2f + const SPRITE_ANIM_FRAMESET_MOBILE_TRADE_OT_BALL ; 30 + const SPRITE_ANIM_FRAMESET_FOR_MOBILE_22 ; 31 + const SPRITE_ANIM_FRAMESET_FOR_MOBILE_23 ; 32 + const SPRITE_ANIM_FRAMESET_FOR_MOBILE_24 ; 33 + const SPRITE_ANIM_FRAMESET_FOR_MOBILE_25 ; 34 + const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE ; 35 + const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_2 ; 36 + const SPRITE_ANIM_FRAMESET_INTRO_PICHU ; 37 + const SPRITE_ANIM_FRAMESET_INTRO_WOOPER ; 38 + const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_1 ; 39 + const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_2 ; 3a + const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_3 ; 3b + const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_4 ; 3c + const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F_2 ; 3d + const SPRITE_ANIM_FRAMESET_INTRO_SUICUNE_AWAY ; 3e + const SPRITE_ANIM_FRAMESET_INTRO_UNOWN_F ; 3f + const SPRITE_ANIM_FRAMESET_CELEBI_LEFT ; 40 + const SPRITE_ANIM_FRAMESET_CELEBI_RIGHT ; 41 + +; SpriteAnimOAMData indexes (see data/sprite_anim_oam.asm) + const_def + const SPRITE_ANIM_FRAME_IDX_RED_WALK_1 ; 00 + const SPRITE_ANIM_FRAME_IDX_RED_WALK_2 ; 01 + const SPRITE_ANIM_FRAME_IDX_02 + const SPRITE_ANIM_FRAME_IDX_03 + const SPRITE_ANIM_FRAME_IDX_04 + const SPRITE_ANIM_FRAME_IDX_05 + const SPRITE_ANIM_FRAME_IDX_06 + const SPRITE_ANIM_FRAME_IDX_07 + const SPRITE_ANIM_FRAME_IDX_08 + const SPRITE_ANIM_FRAME_IDX_09 + const SPRITE_ANIM_FRAME_IDX_0A + const SPRITE_ANIM_FRAME_IDX_0B + const SPRITE_ANIM_FRAME_IDX_0C + const SPRITE_ANIM_FRAME_IDX_0D + const SPRITE_ANIM_FRAME_IDX_0E + const SPRITE_ANIM_FRAME_IDX_0F + const SPRITE_ANIM_FRAME_IDX_10 + const SPRITE_ANIM_FRAME_IDX_11 + const SPRITE_ANIM_FRAME_IDX_12 + const SPRITE_ANIM_FRAME_IDX_13 + const SPRITE_ANIM_FRAME_IDX_14 + const SPRITE_ANIM_FRAME_IDX_15 + const SPRITE_ANIM_FRAME_IDX_16 + const SPRITE_ANIM_FRAME_IDX_17 + const SPRITE_ANIM_FRAME_IDX_18 + const SPRITE_ANIM_FRAME_IDX_19 + const SPRITE_ANIM_FRAME_IDX_1A + const SPRITE_ANIM_FRAME_IDX_1B + const SPRITE_ANIM_FRAME_IDX_1C + const SPRITE_ANIM_FRAME_IDX_1D + const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_1 ; 1e + const SPRITE_ANIM_FRAME_IDX_GS_TITLE_TRAIL_2 ; 1f + const SPRITE_ANIM_FRAME_IDX_TEXT_ENTRY_CURSOR ; 20 + const SPRITE_ANIM_FRAME_IDX_FOR_FRAMESET_09 ; 21 + const SPRITE_ANIM_FRAME_IDX_22 + const SPRITE_ANIM_FRAME_IDX_GS_INTRO_STAR ; 23 + const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_1 ; 24 + const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_2 ; 25 + const SPRITE_ANIM_FRAME_IDX_GS_INTRO_SPARKLE_3 ; 26 + const SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_1 ; 27 + const SPRITE_ANIM_FRAME_IDX_SLOTS_GOLEM_2 ; 28 + const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_1 ; 29 + const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_2 ; 2a + const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_3 ; 2b + const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_4 ; 2c + const SPRITE_ANIM_FRAME_IDX_SLOTS_CHANSEY_5 ; 2d + const SPRITE_ANIM_FRAME_IDX_SLOTS_EGG ; 2e + const SPRITE_ANIM_FRAME_IDX_STILL_CURSOR ; 2f + const SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_1 ; 30 + const SPRITE_ANIM_FRAME_IDX_TRADE_POKE_BALL_2 ; 31 + const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_1 ; 32 + const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_2 ; 33 + const SPRITE_ANIM_FRAME_IDX_TRADE_POOF_3 ; 34 + const SPRITE_ANIM_FRAME_IDX_35 + const SPRITE_ANIM_FRAME_IDX_36 + const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_1 ; 37 + const SPRITE_ANIM_FRAME_IDX_TRADEMON_ICON_2 ; 38 + const SPRITE_ANIM_FRAME_IDX_TRADEMON_BUBBLE ; 39 + const SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_1 ; 3a + const SPRITE_ANIM_FRAME_IDX_EVOLUTION_BALL_OF_LIGHT_2 ; 3b + const SPRITE_ANIM_FRAME_IDX_RADIO_TUNING_KNOB ; 3c + const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_1 ; 3d + const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_MAIL_2 ; 3e + const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_1 ; 3f + const SPRITE_ANIM_FRAME_IDX_PARTY_MON_WITH_ITEM_2 ; 40 + const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_1 ; 41 + const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_RED_2 ; 42 + const SPRITE_ANIM_FRAME_IDX_43 + const SPRITE_ANIM_FRAME_IDX_44 + const SPRITE_ANIM_FRAME_IDX_45 + const SPRITE_ANIM_FRAME_IDX_46 + const SPRITE_ANIM_FRAME_IDX_47 + const SPRITE_ANIM_FRAME_IDX_48 + const SPRITE_ANIM_FRAME_IDX_49 + const SPRITE_ANIM_FRAME_IDX_4A + const SPRITE_ANIM_FRAME_IDX_4B + const SPRITE_ANIM_FRAME_IDX_4C + const SPRITE_ANIM_FRAME_IDX_4D + const SPRITE_ANIM_FRAME_IDX_4E + const SPRITE_ANIM_FRAME_IDX_LEAF ; 4f + const SPRITE_ANIM_FRAME_IDX_TREE_1 ; 50 + const SPRITE_ANIM_FRAME_IDX_CUT_TREE_2 ; 51 + const SPRITE_ANIM_FRAME_IDX_CUT_TREE_3 ; 52 + const SPRITE_ANIM_FRAME_IDX_CUT_TREE_4 ; 53 + const SPRITE_ANIM_FRAME_IDX_EGG_CRACK ; 54 + const SPRITE_ANIM_FRAME_IDX_55 + const SPRITE_ANIM_FRAME_IDX_56 + const SPRITE_ANIM_FRAME_IDX_57 + const SPRITE_ANIM_FRAME_IDX_58 + const SPRITE_ANIM_FRAME_IDX_59 + const SPRITE_ANIM_FRAME_IDX_5A + const SPRITE_ANIM_FRAME_IDX_HEADBUTT_TREE_2 ; 5b + const SPRITE_ANIM_FRAME_IDX_5C + const SPRITE_ANIM_FRAME_IDX_5D + const SPRITE_ANIM_FRAME_IDX_5E + const SPRITE_ANIM_FRAME_IDX_5F + const SPRITE_ANIM_FRAME_IDX_60 + const SPRITE_ANIM_FRAME_IDX_61 + const SPRITE_ANIM_FRAME_IDX_62 + const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_1 ; 63 + const SPRITE_ANIM_FRAME_IDX_BLUE_WALK_2 ; 64 + const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_1 ; 65 + const SPRITE_ANIM_FRAME_IDX_MAGNET_TRAIN_BLUE_2 ; 66 + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_1 ; 67 + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_22_2 ; 68 + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_1 ; 69 + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_2 ; 6a + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_25_3 ; 6b + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_23 ; 6c + const SPRITE_ANIM_FRAME_IDX_FOR_MOBILE_24 ; 6d + const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_1 ; 6e + const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_2 ; 6f + const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_3 ; 70 + const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_4 ; 71 + const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_1 ; 72 + const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_2 ; 73 + const SPRITE_ANIM_FRAME_IDX_INTRO_PICHU_3 ; 74 + const SPRITE_ANIM_FRAME_IDX_INTRO_WOOPER ; 75 + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_1 ; 76 + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_2 ; 77 + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_3 ; 78 + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_1 ; 79 + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_2 ; 7a + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_3 ; 7b + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_4 ; 7c + const SPRITE_ANIM_FRAME_IDX_INTRO_UNOWN_F_2_5 ; 7d + const SPRITE_ANIM_FRAME_IDX_INTRO_SUICUNE_AWAY ; 7e + const SPRITE_ANIM_FRAME_IDX_CELEBI_1 ; 7f + const SPRITE_ANIM_FRAME_IDX_CELEBI_2 ; 80 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_1 ; 81 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_2 ; 82 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_3 ; 83 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_4 ; 84 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_5 ; 85 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_6 ; 86 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_7 ; 87 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_8 ; 88 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_9 ; 89 + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_10 ; 8A + const SPRITE_ANIM_FRAME_IDX_GAMEFREAK_LOGO_11 ; 8B diff --git a/constants/std_constants.asm b/constants/std_constants.asm index 039b27073..21fb6791f 100644 --- a/constants/std_constants.asm +++ b/constants/std_constants.asm @@ -1,3 +1,5 @@ +; StdScripts indexes (see engine/std_scripts.asm) +; also used in TileCollisionStdScripts (see data/collision_stdscripts.asm) enum_start enum pokecenternurse enum difficultbookshelf diff --git a/constants/tilemap_constants.asm b/constants/tileset_constants.asm index 04f9bcaaa..6a73f61d9 100644 --- a/constants/tilemap_constants.asm +++ b/constants/tileset_constants.asm @@ -1,16 +1,11 @@ -LANDTILE EQU 0 -WALLTILE EQU $f -WATERTILE EQU 1 - -TALK EQU 1 << 4 - +; Tilesets indexes (see tilesets/tileset_headers.asm) const_value SET 1 const TILESET_JOHTO_1 ; 01 const TILESET_JOHTO_2 ; 02 const TILESET_KANTO ; 03 const TILESET_BATTLE_TOWER_OUTSIDE ; 04 const TILESET_HOUSE_1 ; 05 - const TILESET_KRISS_HOUSE ; 06 + const TILESET_PLAYERS_HOUSE ; 06 const TILESET_POKECENTER ; 07 const TILESET_GATE ; 08 const TILESET_PORT ; 09 @@ -20,11 +15,11 @@ const_value SET 1 const TILESET_CELADON_MANSION ; 0d const TILESET_GAME_CORNER ; 0e const TILESET_GYM_1 ; 0f - const TILESET_KURT_HOUSE ; 10 + const TILESET_KURTS_HOUSE ; 10 const TILESET_TRAIN_STATION ; 11 const TILESET_OLIVINE_GYM ; 12 const TILESET_LIGHTHOUSE ; 13 - const TILESET_KRISS_HOUSE_2F ; 14 + const TILESET_PLAYERS_HOUSE_2F ; 14 const TILESET_POKECOM_CENTER ; 15 const TILESET_BATTLE_TOWER ; 16 const TILESET_SPROUT_TOWER ; 17 @@ -36,18 +31,19 @@ const_value SET 1 const TILESET_ICE_PATH ; 1d const TILESET_WHIRL_ISLANDS ; 1e const TILESET_ILEX_FOREST ; 1f - const TILESET_32 ; 20 + const TILESET_BETA_WORD_ROOM ; 20 const TILESET_HO_OH_WORD_ROOM ; 21 const TILESET_KABUTO_WORD_ROOM ; 22 const TILESET_OMANYTE_WORD_ROOM ; 23 const TILESET_AERODACTYL_WORD_ROOM ; 24 +; bg palette values (see tilesets/*_palette_map.asm) const_def - const PAL_BG_GRAY - const PAL_BG_RED - const PAL_BG_GREEN - const PAL_BG_WATER - const PAL_BG_YELLOW - const PAL_BG_BROWN - const PAL_BG_ROOF - const PAL_BG_TEXT + const PAL_BG_GRAY ; 0 + const PAL_BG_RED ; 1 + const PAL_BG_GREEN ; 2 + const PAL_BG_WATER ; 3 + const PAL_BG_YELLOW ; 4 + const PAL_BG_BROWN ; 5 + const PAL_BG_ROOF ; 6 + const PAL_BG_TEXT ; 7 diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index 70692c822..c41a6ed58 100644 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -1,4 +1,17 @@ -; trainer groups +trainerclass: MACRO + enum \1 +const_value = 1 +ENDM + +; trainer class ids +; `trainerclass` indexes are for: +; - TrainerClassAttributes (see data/trainers/trainer_attributes.asm) +; - TrainerClassDVs (see data/trainers/trainer_dvs.asm) +; - TrainerClassNames (see data/trainers/trainer_class_names.asm) +; - TrainerEncounterMusic (see data/trainers/encounter_music.asm) +; - TrainerGroups (see data/trainers/party_pointers.asm) +; - BTTrainerClassGenders (see data/trainers/gendered_trainers.asm) +; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm) enum_start CHRIS EQU __enum__ trainerclass TRAINER_NONE ; 0 @@ -26,21 +39,21 @@ KRIS EQU __enum__ trainerclass CLAIR ; 8 trainerclass RIVAL1 ; 9 - const RIVAL1_1 - const RIVAL1_2 - const RIVAL1_3 - const RIVAL1_4 - const RIVAL1_5 - const RIVAL1_6 - const RIVAL1_7 - const RIVAL1_8 - const RIVAL1_9 - const RIVAL1_10 - const RIVAL1_11 - const RIVAL1_12 - const RIVAL1_13 - const RIVAL1_14 - const RIVAL1_15 + const RIVAL1_1_CHIKORITA + const RIVAL1_1_CYNDAQUIL + const RIVAL1_1_TOTODILE + const RIVAL1_2_CHIKORITA + const RIVAL1_2_CYNDAQUIL + const RIVAL1_2_TOTODILE + const RIVAL1_3_CHIKORITA + const RIVAL1_3_CYNDAQUIL + const RIVAL1_3_TOTODILE + const RIVAL1_4_CHIKORITA + const RIVAL1_4_CYNDAQUIL + const RIVAL1_4_TOTODILE + const RIVAL1_5_CHIKORITA + const RIVAL1_5_CYNDAQUIL + const RIVAL1_5_TOTODILE trainerclass POKEMON_PROF ; a @@ -415,6 +428,12 @@ KRIS EQU __enum__ const MARKUS trainerclass RIVAL2 ; 2a + const RIVAL2_1_CHIKORITA + const RIVAL2_1_CYNDAQUIL + const RIVAL2_1_TOTODILE + const RIVAL2_2_CHIKORITA + const RIVAL2_2_CYNDAQUIL + const RIVAL2_2_TOTODILE trainerclass GUITARIST ; 2b const CLYDE @@ -492,6 +511,10 @@ KRIS EQU __enum__ const WAI trainerclass EXECUTIVEM ; 33 + const EXECUTIVEM_1 + const EXECUTIVEM_2 + const EXECUTIVEM_3 + const EXECUTIVEM_4 trainerclass PSYCHIC_T ; 34 const NATHAN @@ -560,6 +583,8 @@ KRIS EQU __enum__ const QUENTIN trainerclass EXECUTIVEF ; 37 + const EXECUTIVEF_1 + const EXECUTIVEF_2 trainerclass SAGE ; 38 const CHOW @@ -648,12 +673,23 @@ KRIS EQU __enum__ const GRUNTF_4 const GRUNTF_5 - trainerclass MYSTICALMAN ; 43 const EUSINE NUM_TRAINER_CLASSES EQU __enum__ +; TrainerClassAttributes fields (see data/trainers/trainer_attributes.asm) + const_def + const TRNATTR_ITEM1 ; 0 + const TRNATTR_ITEM2 ; 1 + const TRNATTR_BASEMONEY ; 2 + const TRNATTR_AI_MOVE_WEIGHTS ; 3 + const TRNATTR_AI2 ; 4 + const TRNATTR_AI_ITEM_SWITCH ; 5 + const TRNATTR_AI4 ; 6 +NUM_TRAINER_ATTRIBUTES EQU const_value + +; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags) const_def const NO_AI const_value = 0 @@ -674,12 +710,24 @@ const_value = 0 shift_const AI_14 shift_const AI_15 +; TRNATTR_AI_ITEM_SWITCH bit flags +CONTEXT_USE_F EQU 6 +UNKNOWN_USE_F EQU 5 +ALWAYS_USE_F EQU 4 +SWITCH_SOMETIMES_F EQU 2 +SWITCH_RARELY_F EQU 1 +SWITCH_OFTEN_F EQU 0 + +CONTEXT_USE EQU 1 << CONTEXT_USE_F +UNKNOWN_USE EQU 1 << UNKNOWN_USE_F +ALWAYS_USE EQU 1 << ALWAYS_USE_F +SWITCH_SOMETIMES EQU 1 << SWITCH_SOMETIMES_F +SWITCH_RARELY EQU 1 << SWITCH_RARELY_F +SWITCH_OFTEN EQU 1 << SWITCH_OFTEN_F + +; TrainerTypes indexes (see trainers/read_party.asm) const_def - const TRNATTR_ITEM1 - const TRNATTR_ITEM2 - const TRNATTR_BASEMONEY - const TRNATTR_AI_MOVE_WEIGHTS - const TRNATTR_AI2 - const TRNATTR_AI_ITEM_SWITCH - const TRNATTR_AI4 -NUM_TRAINER_ATTRIBUTES EQU const_value + const TRAINERTYPE_NORMAL + const TRAINERTYPE_MOVES + const TRAINERTYPE_ITEM + const TRAINERTYPE_ITEM_MOVES diff --git a/constants/type_constants.asm b/constants/type_constants.asm index b7b350e33..6f389617b 100644 --- a/constants/type_constants.asm +++ b/constants/type_constants.asm @@ -1,3 +1,7 @@ +; TypeNames indexes (see text/types.asm) +; also used in: +; - TypeMatchup (see battle.type_matchup.asm) +; - Pokedex_SearchForMons.TypeConversionTable and Pokedex_PlaceSearchScreenTypeStrings.TypeStrings (see engine/pokedex.asm) const_def PHYSICAL EQU const_value diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 09d457f5e..c8c49621e 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -1,37 +1,57 @@ - ; MonType: ; cf5f -PARTYMON EQU 0 -OTPARTYMON EQU 1 -BOXMON EQU 2 -TEMPMON EQU 3 -WILDMON EQU 4 - -; Options: ; cfcc -FAST_TEXT EQU 0 -MED_TEXT EQU 1 -SLOW_TEXT EQU 2 -NO_TEXT_SCROLL EQU 4 -; bits -STEREO EQU 5 -BATTLE_SHIFT EQU 6 -BATTLE_SCENE EQU 7 + const_def + const PARTYMON ; 0 + const OTPARTYMON ; 1 + const BOXMON ; 2 + const TEMPMON ; 3 + const WILDMON ; 4 + +; Options: (bits) ; cfcc +const_value SET 4 + const NO_TEXT_SCROLL ; 4 + const STEREO ; 5 + const BATTLE_SHIFT ; 6 + const BATTLE_SCENE ; 7 + +; Options: (bits 0-2) +TEXT_DELAY_FAST EQU 1 +TEXT_DELAY_MED EQU 3 +TEXT_DELAY_SLOW EQU 5 + +; TextBoxFrame: ; cfce + const_def + const FRAME_1 ; 0 + const FRAME_2 ; 1 + const FRAME_3 ; 2 + const FRAME_4 ; 3 + const FRAME_5 ; 4 + const FRAME_6 ; 5 + const FRAME_7 ; 6 + const FRAME_8 ; 7 ; Options2: -MENU_ACCOUNT EQU 0 + const_def + const MENU_ACCOUNT ; 0 ; GBPrinter: -PRINT_LIGHTEST EQU $00 -PRINT_LIGHTER EQU $20 -PRINT_NORMAL EQU $40 -PRINT_DARKER EQU $60 -PRINT_DARKEST EQU $7f +GBPRINTER_LIGHTEST EQU $00 +GBPRINTER_LIGHTER EQU $20 +GBPRINTER_NORMAL EQU $40 +GBPRINTER_DARKER EQU $60 +GBPRINTER_DARKEST EQU $7f ; WalkingDirection: ; d043 -STANDING EQU -1 -DOWN EQU 0 -UP EQU 1 -LEFT EQU 2 -RIGHT EQU 3 +const_value SET -1 + const STANDING ; -1 + const DOWN ; 0 + const UP ; 1 + const LEFT ; 2 + const RIGHT ; 3 + +DOWN_MASK EQU 1 << DOWN +UP_MASK EQU 1 << UP +LEFT_MASK EQU 1 << LEFT +RIGHT_MASK EQU 1 << RIGHT ; FacingDirection: ; d044 FACE_CURRENT EQU 0 @@ -41,10 +61,16 @@ FACE_LEFT EQU 2 FACE_RIGHT EQU 1 ; TimeOfDay: ; d269 -MORN EQU 0 -DAY EQU 1 -NITE EQU 2 -DARKNESS EQU 3 + const_def + const MORN_F ; 0 + const DAY_F ; 1 + const NITE_F ; 2 + const DARKNESS_F ; 3 + +MORN EQU 1 << MORN_F +DAY EQU 1 << DAY_F +NITE EQU 1 << NITE_F +DARKNESS EQU 1 << DARKNESS_F ; ScriptFlags: ; d434 SCRIPT_RUNNING EQU 2 @@ -56,13 +82,14 @@ SCRIPT_WAIT_MOVEMENT EQU 2 SCRIPT_WAIT EQU 3 ; CurDay: ; d4cb -SUNDAY EQU 0 -MONDAY EQU 1 -TUESDAY EQU 2 -WEDNESDAY EQU 3 -THURSDAY EQU 4 -FRIDAY EQU 5 -SATURDAY EQU 6 + const_def + const SUNDAY ; 0 + const MONDAY ; 1 + const TUESDAY ; 2 + const WEDNESDAY ; 3 + const THURSDAY ; 4 + const FRIDAY ; 5 + const SATURDAY ; 6 ; MapObjects: ; d71e @@ -80,7 +107,7 @@ REGISTERED_NUMBER EQU %00111111 ; PlayerState: ; d95d PLAYER_NORMAL EQU 0 PLAYER_BIKE EQU 1 -PLAYER_SLIP EQU 2 +PLAYER_SKATE EQU 2 PLAYER_SURF EQU 4 PLAYER_SURF_PIKA EQU 8 @@ -89,13 +116,13 @@ NUM_OBJECT_STRUCTS EQU 13 ; After-Champion Spawn SPAWN_LANCE EQU 1 -SPAWN_RED EQU 2 +SPAWN_RED EQU 2 ; wPokemonWithdrawDepositParameter -PC_WITHDRAW EQU 0 -PC_DEPOSIT EQU 1 -DAYCARE_WITHDRAW EQU 2 -DAYCARE_DEPOSIT EQU 3 +PC_WITHDRAW EQU 0 +PC_DEPOSIT EQU 1 +DAY_CARE_WITHDRAW EQU 2 +DAY_CARE_DEPOSIT EQU 3 ; wCurrentDexMode const_def @@ -103,3 +130,35 @@ DAYCARE_DEPOSIT EQU 3 const DEXMODE_OLD const DEXMODE_ABC const DEXMODE_UNOWN + +; JohtoBadges: + const_def + const ZEPHYRBADGE + const HIVEBADGE + const PLAINBADGE + const FOGBADGE + const MINERALBADGE + const STORMBADGE + const GLACIERBADGE + const RISINGBADGE +NUM_JOHTO_BADGES EQU const_value + +; KantoBadges: + const_def + const BOULDERBADGE + const CASCADEBADGE + const THUNDERBADGE + const RAINBOWBADGE + const SOULBADGE + const MARSHBADGE + const VOLCANOBADGE + const EARTHBADGE +NUM_KANTO_BADGES EQU const_value +NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES + +; wInitListType: +INIT_ENEMYOT_LIST EQU 1 +INIT_BAG_ITEM_LIST EQU 2 +INIT_OTHER_ITEM_LIST EQU 3 +INIT_PLAYEROT_LIST EQU 4 +INIT_MON_LIST EQU 5 |
