mirror of https://github.com/pret/pokecrystal.git
234 lines
6.3 KiB
NASM
234 lines
6.3 KiB
NASM
; base data struct members (see data/pokemon/base_stats/*.asm)
|
|
rsreset
|
|
DEF BASE_DEX_NO rb
|
|
DEF BASE_STATS rb NUM_STATS
|
|
rsset BASE_STATS
|
|
DEF BASE_HP rb
|
|
DEF BASE_ATK rb
|
|
DEF BASE_DEF rb
|
|
DEF BASE_SPD rb
|
|
DEF BASE_SAT rb
|
|
DEF BASE_SDF rb
|
|
DEF BASE_TYPES rw
|
|
rsset BASE_TYPES
|
|
DEF BASE_TYPE_1 rb
|
|
DEF BASE_TYPE_2 rb
|
|
DEF BASE_CATCH_RATE rb
|
|
DEF BASE_EXP rb
|
|
DEF BASE_ITEMS rw
|
|
rsset BASE_ITEMS
|
|
DEF BASE_ITEM_1 rb
|
|
DEF BASE_ITEM_2 rb
|
|
DEF BASE_GENDER rb
|
|
rb_skip
|
|
DEF BASE_EGG_STEPS rb
|
|
rb_skip
|
|
DEF BASE_PIC_SIZE rb
|
|
DEF BASE_FRONTPIC rw
|
|
DEF BASE_BACKPIC rw
|
|
DEF BASE_GROWTH_RATE rb
|
|
DEF BASE_EGG_GROUPS rb
|
|
DEF BASE_TMHM rb (NUM_TM_HM_TUTOR + 7) / 8
|
|
DEF BASE_DATA_SIZE EQU _RS
|
|
|
|
; gender ratio constants
|
|
DEF GENDER_F0 EQU 0 percent
|
|
DEF GENDER_F12_5 EQU 12 percent + 1
|
|
DEF GENDER_F25 EQU 25 percent
|
|
DEF GENDER_F50 EQU 50 percent
|
|
DEF GENDER_F75 EQU 75 percent
|
|
DEF GENDER_F100 EQU 100 percent - 1
|
|
DEF GENDER_UNKNOWN EQU -1
|
|
|
|
; wBaseGrowthRate values
|
|
; GrowthRates indexes (see data/growth_rates.asm)
|
|
const_def
|
|
const GROWTH_MEDIUM_FAST
|
|
const GROWTH_SLIGHTLY_FAST
|
|
const GROWTH_SLIGHTLY_SLOW
|
|
const GROWTH_MEDIUM_SLOW
|
|
const GROWTH_FAST
|
|
const GROWTH_SLOW
|
|
DEF NUM_GROWTH_RATES EQU const_value
|
|
|
|
; wBaseEggGroups values
|
|
const_def 1
|
|
const EGG_MONSTER ; 1
|
|
const EGG_WATER_1 ; 2 (Amphibian)
|
|
const EGG_BUG ; 3
|
|
const EGG_FLYING ; 4
|
|
const EGG_GROUND ; 5 (Field)
|
|
const EGG_FAIRY ; 6
|
|
const EGG_PLANT ; 7 (Grass)
|
|
const EGG_HUMANSHAPE ; 8 (Human-Like)
|
|
const EGG_WATER_3 ; 9 (Invertebrate)
|
|
const EGG_MINERAL ; a
|
|
const EGG_INDETERMINATE ; b (Amorphous)
|
|
const EGG_WATER_2 ; c (Fish)
|
|
const EGG_DITTO ; d
|
|
const EGG_DRAGON ; e
|
|
const EGG_NONE ; f (Undiscovered)
|
|
|
|
; pokedex entries (see data/pokemon/dex_entries.asm)
|
|
DEF NUM_DEX_ENTRY_BANKS EQU 4
|
|
|
|
; party_struct members (see macros/ram.asm)
|
|
rsreset
|
|
DEF MON_SPECIES rb
|
|
DEF MON_ITEM rb
|
|
DEF MON_MOVES rb NUM_MOVES
|
|
DEF MON_ID rw
|
|
DEF MON_EXP rb 3
|
|
DEF MON_STAT_EXP rw NUM_EXP_STATS
|
|
rsset MON_STAT_EXP
|
|
DEF MON_HP_EXP rw
|
|
DEF MON_ATK_EXP rw
|
|
DEF MON_DEF_EXP rw
|
|
DEF MON_SPD_EXP rw
|
|
DEF MON_SPC_EXP rw
|
|
DEF MON_DVS rw
|
|
DEF MON_PP rb NUM_MOVES
|
|
DEF MON_HAPPINESS rb
|
|
DEF MON_POKERUS rb
|
|
DEF MON_CAUGHTDATA rw
|
|
rsset MON_CAUGHTDATA
|
|
DEF MON_CAUGHTTIME rb
|
|
DEF MON_CAUGHTGENDER rb
|
|
rsset MON_CAUGHTDATA
|
|
DEF MON_CAUGHTLEVEL rb
|
|
DEF MON_CAUGHTLOCATION rb
|
|
DEF MON_LEVEL rb
|
|
DEF BOXMON_STRUCT_LENGTH EQU _RS
|
|
DEF MON_STATUS rb
|
|
rb_skip
|
|
DEF MON_HP rw
|
|
DEF MON_MAXHP rw
|
|
DEF MON_STATS rw NUM_BATTLE_STATS
|
|
rsset MON_STATS
|
|
DEF MON_ATK rw
|
|
DEF MON_DEF rw
|
|
DEF MON_SPD rw
|
|
DEF MON_SAT rw
|
|
DEF MON_SDF rw
|
|
DEF PARTYMON_STRUCT_LENGTH EQU _RS
|
|
|
|
DEF NICKNAMED_MON_STRUCT_LENGTH EQU PARTYMON_STRUCT_LENGTH + MON_NAME_LENGTH
|
|
DEF REDMON_STRUCT_LENGTH EQU 44
|
|
|
|
; caught data
|
|
|
|
DEF CAUGHT_TIME_MASK EQU %11000000
|
|
DEF CAUGHT_LEVEL_MASK EQU %00111111
|
|
|
|
DEF CAUGHT_GENDER_MASK EQU %10000000
|
|
DEF CAUGHT_LOCATION_MASK EQU %01111111
|
|
|
|
DEF CAUGHT_BY_UNKNOWN EQU 0
|
|
DEF CAUGHT_BY_GIRL EQU 1
|
|
DEF CAUGHT_BY_BOY EQU 2
|
|
|
|
DEF CAUGHT_EGG_LEVEL EQU 1
|
|
|
|
DEF MON_CRY_LENGTH EQU 6
|
|
|
|
; maximum number of party pokemon
|
|
DEF PARTY_LENGTH EQU 6
|
|
|
|
; boxes
|
|
DEF MONS_PER_BOX EQU 20
|
|
; box: count, species, mons, OTs, nicknames, padding
|
|
DEF BOX_LENGTH EQU 1 + MONS_PER_BOX + 1 + (BOXMON_STRUCT_LENGTH + NAME_LENGTH + MON_NAME_LENGTH) * MONS_PER_BOX + 2 ; $450
|
|
DEF NUM_BOXES EQU 14
|
|
|
|
; hall of fame
|
|
; hof_mon: species, id, dvs, level, nicknames
|
|
DEF HOF_MON_LENGTH EQU 1 + 2 + 2 + 1 + (MON_NAME_LENGTH - 1) ; $10
|
|
; hall_of_fame: win count, party, terminator
|
|
DEF HOF_LENGTH EQU 1 + HOF_MON_LENGTH * PARTY_LENGTH + 1 ; $62
|
|
DEF NUM_HOF_TEAMS EQU 30
|
|
|
|
; evolution types (used in data/pokemon/evos_attacks.asm)
|
|
const_def 1
|
|
const EVOLVE_LEVEL
|
|
const EVOLVE_ITEM
|
|
const EVOLVE_TRADE
|
|
const EVOLVE_HAPPINESS
|
|
const EVOLVE_STAT
|
|
|
|
; EVOLVE_HAPPINESS triggers
|
|
const_def 1
|
|
const TR_ANYTIME
|
|
const TR_MORNDAY
|
|
const TR_NITE
|
|
|
|
; EVOLVE_STAT triggers
|
|
const_def 1
|
|
const ATK_GT_DEF
|
|
const ATK_LT_DEF
|
|
const ATK_EQ_DEF
|
|
|
|
; wild data
|
|
|
|
DEF NUM_GRASSMON EQU 7 ; data/wild/*_grass.asm table size
|
|
DEF NUM_WATERMON EQU 3 ; data/wild/*_water.asm table size
|
|
|
|
DEF GRASS_WILDDATA_LENGTH EQU 2 + 3 + NUM_GRASSMON * 2 * 3
|
|
DEF WATER_WILDDATA_LENGTH EQU 2 + 1 + NUM_WATERMON * 2
|
|
DEF FISHGROUP_DATA_LENGTH EQU 1 + 2 * 3
|
|
|
|
DEF NUM_ROAMMON_MAPS EQU 16 ; RoamMaps table size (see data/wild/roammon_maps.asm)
|
|
|
|
; treemon sets
|
|
; TreeMons indexes (see data/wild/treemons.asm)
|
|
const_def
|
|
const TREEMON_SET_CITY
|
|
const TREEMON_SET_CANYON
|
|
const TREEMON_SET_TOWN
|
|
const TREEMON_SET_ROUTE
|
|
const TREEMON_SET_KANTO
|
|
const TREEMON_SET_LAKE
|
|
const TREEMON_SET_FOREST
|
|
const TREEMON_SET_ROCK
|
|
DEF NUM_TREEMON_SETS EQU const_value
|
|
|
|
; treemon scores
|
|
const_def
|
|
const TREEMON_SCORE_BAD ; 0
|
|
const TREEMON_SCORE_GOOD ; 1
|
|
const TREEMON_SCORE_RARE ; 2
|
|
|
|
; ChangeHappiness arguments (see data/events/happiness_changes.asm)
|
|
const_def 1
|
|
const HAPPINESS_GAINLEVEL ; 01
|
|
const HAPPINESS_USEDITEM ; 02
|
|
const HAPPINESS_USEDXITEM ; 03
|
|
const HAPPINESS_GYMBATTLE ; 04
|
|
const HAPPINESS_LEARNMOVE ; 05
|
|
const HAPPINESS_FAINTED ; 06
|
|
const HAPPINESS_POISONFAINT ; 07
|
|
const HAPPINESS_BEATENBYSTRONGFOE ; 08
|
|
const HAPPINESS_OLDERCUT1 ; 09
|
|
const HAPPINESS_OLDERCUT2 ; 0a
|
|
const HAPPINESS_OLDERCUT3 ; 0b
|
|
const HAPPINESS_YOUNGCUT1 ; 0c
|
|
const HAPPINESS_YOUNGCUT2 ; 0d
|
|
const HAPPINESS_YOUNGCUT3 ; 0e
|
|
const HAPPINESS_BITTERPOWDER ; 0f
|
|
const HAPPINESS_ENERGYROOT ; 10
|
|
const HAPPINESS_REVIVALHERB ; 11
|
|
const HAPPINESS_GROOMING ; 12
|
|
const HAPPINESS_GAINLEVELATHOME ; 13
|
|
DEF NUM_HAPPINESS_CHANGES EQU const_value - 1
|
|
|
|
; significant happiness values
|
|
DEF BASE_HAPPINESS EQU 70
|
|
DEF FRIEND_BALL_HAPPINESS EQU 200
|
|
DEF HAPPINESS_TO_EVOLVE EQU 220
|
|
DEF HAPPINESS_THRESHOLD_1 EQU 100
|
|
DEF HAPPINESS_THRESHOLD_2 EQU 200
|
|
|
|
; PP
|
|
DEF PP_UP_MASK EQU %11000000
|
|
DEF PP_UP_ONE EQU %01000000
|
|
DEF PP_MASK EQU %00111111
|