More constants, related to map objects

This commit is contained in:
Remy Oukaour 2018-01-18 15:58:55 -05:00
parent 3bf8325edd
commit 72c4f9e04a
2 changed files with 86 additions and 74 deletions

View File

@ -3,6 +3,7 @@ MAP_N_A EQU -1
GROUP_NONE EQU 0
MAP_NONE EQU 0
; map header struct members (see data/maps/definitions.asm)
const_def
const MAPDEF_MAPDATA_BANK ; 0
@ -67,6 +68,75 @@ const_value set 1
shift_const NORTH
; 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
const SPAWN_CERULEAN
const SPAWN_ROCK_TUNNEL
const SPAWN_VERMILION
const SPAWN_LAVENDER
const SPAWN_SAFFRON
const SPAWN_CELADON
const SPAWN_FUCHSIA
const SPAWN_CINNABAR
const SPAWN_INDIGO
; johto
const SPAWN_NEW_BARK
const SPAWN_CHERRYGROVE
const SPAWN_VIOLET
const SPAWN_UNION_CAVE
const SPAWN_AZALEA
const SPAWN_CIANWOOD
const SPAWN_GOLDENROD
const SPAWN_OLIVINE
const SPAWN_ECRUTEAK
const SPAWN_MAHOGANY
const SPAWN_LAKE
const SPAWN_BLACKTHORN
const SPAWN_MT_SILVER
const SPAWN_FAST_SHIP
NUM_SPAWNS EQU const_value
; outdoor sprite limits (see engine/overworld.asm)
MAX_OUTDOOR_SPRITES EQU 23
SPRITE_GFX_LIST_CAPACITY EQU $20
; map_object struct members (see macros/wram.asm)
const_def
const MAPOBJECT_OBJECT_STRUCT_ID ; 0
const MAPOBJECT_SPRITE ; 1
const MAPOBJECT_Y_COORD ; 2
const MAPOBJECT_X_COORD ; 3
const MAPOBJECT_MOVEMENT ; 4
const MAPOBJECT_RADIUS ; 5
const MAPOBJECT_HOUR ; 6
const MAPOBJECT_TIMEOFDAY ; 7
const MAPOBJECT_COLOR ; 8
const MAPOBJECT_RANGE ; 9
const MAPOBJECT_SCRIPT_POINTER ; a
const MAPOBJECT_POINTER_HI ; b
const MAPOBJECT_EVENT_FLAG ; c
const MAPOBJECT_FLAG_HI ; d
const MAPOBJECT_E ; unused
const MAPOBJECT_F ; unused
OBJECT_LENGTH EQU const_value
MAPOBJECT_SCREEN_HEIGHT EQU 11
MAPOBJECT_SCREEN_WIDTH EQU 12
; NPCs disappear if standing on tile $60-$7f or $e0-$ff,
; since those IDs are for text characters and textbox frames.
MAPOBJECT_VISIBLE_TILE_LIMIT EQU $60
; object_struct members (see macros/wram.asm)
const_def
const OBJECT_SPRITE ; 00
@ -106,29 +176,6 @@ const_value set 1
OBJECT_STRUCT_LENGTH EQU 40
NUM_OBJECT_STRUCTS EQU 13 ; see ObjectStructs
; map_object struct members (see macros/wram.asm)
const_def
const MAPOBJECT_OBJECT_STRUCT_ID ; 0
const MAPOBJECT_SPRITE ; 1
const MAPOBJECT_Y_COORD ; 2
const MAPOBJECT_X_COORD ; 3
const MAPOBJECT_MOVEMENT ; 4
const MAPOBJECT_RADIUS ; 5
const MAPOBJECT_HOUR ; 6
const MAPOBJECT_TIMEOFDAY ; 7
const MAPOBJECT_COLOR ; 8
const MAPOBJECT_RANGE ; 9
const MAPOBJECT_SCRIPT_POINTER ; a
const MAPOBJECT_POINTER_HI ; b
const MAPOBJECT_EVENT_FLAG ; c
const MAPOBJECT_FLAG_HI ; d
const MAPOBJECT_E ; unused
const MAPOBJECT_F ; unused
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
@ -140,44 +187,3 @@ INVISIBLE EQU 0
FIXED_FACING EQU 2
SLIDING EQU 3
EMOTE_OBJECT EQU 7
; see engine/overworld.asm
MAX_OUTDOOR_SPRITES EQU 23
SPRITE_GFX_LIST_CAPACITY EQU $20
; 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
const SPAWN_CERULEAN
const SPAWN_ROCK_TUNNEL
const SPAWN_VERMILION
const SPAWN_LAVENDER
const SPAWN_SAFFRON
const SPAWN_CELADON
const SPAWN_FUCHSIA
const SPAWN_CINNABAR
const SPAWN_INDIGO
; johto
const SPAWN_NEW_BARK
const SPAWN_CHERRYGROVE
const SPAWN_VIOLET
const SPAWN_UNION_CAVE
const SPAWN_AZALEA
const SPAWN_CIANWOOD
const SPAWN_GOLDENROD
const SPAWN_OLIVINE
const SPAWN_ECRUTEAK
const SPAWN_MAHOGANY
const SPAWN_LAKE
const SPAWN_BLACKTHORN
const SPAWN_MT_SILVER
const SPAWN_FAST_SHIP
NUM_SPAWNS EQU const_value

View File

@ -2089,6 +2089,7 @@ SpawnShadow: ; 5529
; vtile, palette, movement
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SHADOW
; 5538
SpawnStrengthBoulderDust: ; 5538
push bc
ld de, .BoulderDustObject
@ -2100,6 +2101,7 @@ SpawnStrengthBoulderDust: ; 5538
.BoulderDustObject:
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_BOULDERDUST
; 5547
SpawnEmote: ; 5547
push bc
ld de, .EmoteObject
@ -2111,6 +2113,7 @@ SpawnEmote: ; 5547
.EmoteObject:
db $00, PAL_OW_SILVER, SPRITEMOVEDATA_EMOTE
; 5556
ShakeGrass: ; 5556
push bc
ld de, .data_5562
@ -2122,6 +2125,7 @@ ShakeGrass: ; 5556
.data_5562
db $00, PAL_OW_TREE, SPRITEMOVEDATA_GRASS
; 5565
ShakeScreen: ; 5565
push bc
push af
@ -2359,7 +2363,7 @@ Function56a3: ; 56a3
cp d
jr z, .equal_x
jr nc, .nope
add $b
add MAPOBJECT_SCREEN_WIDTH - 1
cp d
jr c, .nope
.equal_x
@ -2367,7 +2371,7 @@ Function56a3: ; 56a3
cp e
jr z, .equal_y
jr nc, .nope
add $a
add MAPOBJECT_SCREEN_HEIGHT - 1
cp e
jr c, .nope
.equal_y
@ -2406,7 +2410,7 @@ Function56cd: ; 56cd
srl a
cp SCREEN_WIDTH
jr c, .ok3
sub $20
sub BG_MAP_WIDTH
.ok3
ld [hUsedSpriteIndex], a
ld a, [wPlayerBGMapOffsetY]
@ -2433,9 +2437,9 @@ Function56cd: ; 56cd
srl a
srl a
srl a
cp $12
cp SCREEN_HEIGHT
jr c, .ok6
sub $20
sub BG_MAP_HEIGHT
.ok6
ld [hUsedSpriteTile], a
ld hl, OBJECT_PALETTE
@ -2457,21 +2461,21 @@ Function56cd: ; 56cd
ld a, [hUsedSpriteTile]
add e
dec a
cp $12
cp SCREEN_HEIGHT
jr nc, .ok9
ld b, a
.next
ld a, [hUsedSpriteIndex]
add d
dec a
cp $14
cp SCREEN_WIDTH
jr nc, .ok8
ld c, a
push bc
call Coord2Tile
pop bc
ld a, [hl]
cp $60
cp MAPOBJECT_VISIBLE_TILE_LIMIT
jr nc, .nope
.ok8
dec d
@ -2876,10 +2880,12 @@ ApplyBGMapAnchorToObjects: ; 5958
ret
; 5991
InitSprites: ; 5991
PRIORITY_LOW EQU $10
PRIORITY_NORM EQU $20
PRIORITY_HIGH EQU $30
InitSprites: ; 5991
call .DeterminePriorities
ld c, PRIORITY_HIGH
call .InitSpritesByPriority
@ -3069,7 +3075,7 @@ PRIORITY_HIGH EQU $30
ld a, [hFFC2]
or e
.nope2
and %11110000
and OBP_NUM | X_FLIP | Y_FLIP | PRIORITY
or d
ld [bc], a ; attributes
inc c