summaryrefslogtreecommitdiff
path: root/engine/map_objects.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/map_objects.asm')
-rw-r--r--engine/map_objects.asm206
1 files changed, 105 insertions, 101 deletions
diff --git a/engine/map_objects.asm b/engine/map_objects.asm
index d73ebd142..69c6321f5 100644
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -2,44 +2,45 @@
INCLUDE "engine/facings.asm"
ObjectStruct3_Data:: ; 4273
- db $00, $00, $01, $02, $00, $00 ; 00
- db $06, $00, $01, $0c, $00, $00 ; 01
- db $03, $00, $01, $00, $00, $00 ; 02
- db $04, $00, $01, $00, $00, $00 ; 03
- db $01, $00, $01, $00, $00, $00 ; 04
- db $02, $00, $01, $00, $00, $00 ; 05
- db $06, $00, $01, $00, $00, $00 ; 06
- db $06, $01, $01, $00, $00, $00 ; 07
- db $06, $02, $01, $00, $00, $00 ; 08
- db $06, $03, $01, $00, $00, $00 ; 09
- db $05, $00, $01, $00, $00, $00 ; 0a
- db $07, $00, $01, $02, $00, $00 ; 0b
- db $08, $00, $01, $00, $00, $00 ; 0c
- db $09, $00, $01, $00, $00, $00 ; 0d
- db $0a, $00, $01, $00, $00, $00 ; 0e
- db $0b, $00, $01, $00, $00, $00 ; 0f
- db $0c, $00, $01, $00, $00, $00 ; 10
- db $0d, $00, $01, $00, $00, $00 ; 11
- db $0e, $00, $01, $00, $00, $00 ; 12
- db $0f, $00, $01, $02, $00, $00 ; 13
- db $10, $00, $01, $02, $00, $00 ; 14
- db $15, $00, $09, $2e, $01, $c0 ; 15
- db $16, $00, $0a, $2e, $00, $00 ; 16
- db $06, $00, $01, $0c, $00, $00 ; 17
- db $06, $00, $01, $2e, $10, $00 ; 18
- db $11, $00, $01, $2e, $00, $40 ; 19
- db $12, $00, $01, $02, $00, $00 ; 1a
- db $13, $00, $00, $8e, $01, $00 ; 1b
- db $14, $00, $08, $8e, $02, $00 ; 1c
- db $17, $00, $00, $82, $00, $00 ; 1d
- db $19, $02, $01, $00, $00, $00 ; 1e
- db $18, $03, $01, $00, $00, $00 ; 1f
- db $11, $00, $0c, $2e, $01, $c0 ; 20
- db $11, $00, $0d, $2e, $01, $c0 ; 21
- db $1a, $00, $0e, $8e, $01, $00 ; 22
- db $1b, $00, $0f, $8e, $02, $00 ; 23
- db $03, $00, $01, $00, $00, $20 ; 24
- db $00, $00, $01, $00, $00, $00 ; 25
+ ; function, facing, ?, ?, ?, ?
+ db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00
+ db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 01
+ db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $00 ; 02
+ db SPRITEMOVEFN_04, DOWN, $01, $00, $00, $00 ; 03
+ db SPRITEMOVEFN_01, DOWN, $01, $00, $00, $00 ; 04
+ db SPRITEMOVEFN_02, DOWN, $01, $00, $00, $00 ; 05
+ db SPRITEMOVEFN_06, DOWN, $01, $00, $00, $00 ; 06
+ db SPRITEMOVEFN_06, UP, $01, $00, $00, $00 ; 07
+ db SPRITEMOVEFN_06, LEFT, $01, $00, $00, $00 ; 08
+ db SPRITEMOVEFN_06, RIGHT, $01, $00, $00, $00 ; 09
+ db SPRITEMOVEFN_05, DOWN, $01, $00, $00, $00 ; 0a
+ db SPRITEMOVEFN_07, DOWN, $01, $02, $00, $00 ; 0b
+ db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c
+ db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d
+ db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e
+ db SPRITEMOVEFN_0B, DOWN, $01, $00, $00, $00 ; 0f
+ db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10
+ db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11
+ db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12
+ db SPRITEMOVEFN_0F, DOWN, $01, $02, $00, $00 ; 13
+ db SPRITEMOVEFN_10, DOWN, $01, $02, $00, $00 ; 14
+ db SPRITEMOVEFN_15, DOWN, $09, $2e, $01, $c0 ; 15
+ db SPRITEMOVEFN_16, DOWN, $0a, $2e, $00, $00 ; 16
+ db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 17
+ db SPRITEMOVEFN_06, DOWN, $01, $2e, $10, $00 ; 18
+ db SPRITEMOVEFN_11, DOWN, $01, $2e, $00, $40 ; 19
+ db SPRITEMOVEFN_12, DOWN, $01, $02, $00, $00 ; 1a
+ db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b
+ db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c
+ db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d
+ db SPRITEMOVEFN_19, LEFT, $01, $00, $00, $00 ; 1e
+ db SPRITEMOVEFN_18, RIGHT, $01, $00, $00, $00 ; 1f
+ db SPRITEMOVEFN_11, DOWN, $0c, $2e, $01, $c0 ; 20
+ db SPRITEMOVEFN_11, DOWN, $0d, $2e, $01, $c0 ; 21
+ db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22
+ db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23
+ db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $20 ; 24
+ db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25
; 4357
@@ -78,7 +79,7 @@ Function437b: ; 437b
; 4386
Function4386: ; 4386
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 6, [hl]
ld a, [XCoord]
@@ -104,7 +105,7 @@ Function4386: ; 4386
jr .yes
.ok
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
set 6, [hl]
ld a, [XCoord]
@@ -133,7 +134,7 @@ Function4386: ; 4386
ret
.ok2
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 1, [hl]
jr nz, .yes2
@@ -142,7 +143,7 @@ Function4386: ; 4386
ret
.yes2
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
set 6, [hl]
and a
@@ -155,20 +156,20 @@ Function43f3: ; 43f3
ld a, [hl]
and a
jr z, .zero
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
bit 5, [hl]
- jr nz, .not_bit5
+ jr nz, .bit5
cp 1
jr z, .one
jr .ok
.zero
call Function47bc
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
bit 5, [hl]
- jr nz, .not_bit5
+ jr nz, .bit5
.one
call Function47dd
@@ -185,17 +186,17 @@ Function43f3: ; 43f3
rst JumpTable
ret
-.not_bit5
+.bit5
ret
; 4427
Function4427: ; 4427
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 0, [hl]
jr nz, Function44a3
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
bit 6, [hl]
jr nz, Function44a3
@@ -208,7 +209,7 @@ Function4427: ; 4427
; 4440
Function4440: ; 4440
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 0, [hl]
jr nz, Function44a3
@@ -300,7 +301,7 @@ Function44b5: ; 44b5
; 44c1
Function44c1: ; 44c1
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 3, [hl]
jp nz, Function44aa
@@ -324,7 +325,7 @@ Function44c1: ; 44c1
; 44e4
Function44e4: ; 44e4
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 3, [hl]
jp nz, Function44aa
@@ -348,7 +349,7 @@ Function44e4: ; 44e4
; 4508
Function4508: ; 4508
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 3, [hl]
jp nz, Function44aa
@@ -603,7 +604,7 @@ Function462a: ; 462a
; 463f
Function463f: ; 463f
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
bit 3, [hl]
jr z, .ok
@@ -632,13 +633,13 @@ Function4661: ; 4661
jr c, .reset
.set
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
set 3, [hl]
ret
.reset
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
ret
@@ -670,7 +671,7 @@ Function4690: ; 4690
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], a
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, bc
bit 2, [hl]
jr nz, .ok
@@ -1098,7 +1099,7 @@ Function48b3: ; 48b3
ld a, [hl]
call CheckPitTile
jr z, .on_pit
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
bit 2, [hl]
res 2, [hl]
@@ -1192,7 +1193,7 @@ Function48ff: ; 48ff
and %00001100
or d
pop bc
- jp Function5412
+ jp NormalStep
.standing
pop bc
@@ -1499,7 +1500,7 @@ Function4af0: ; 4af0
add hl, bc
ld [hl], 2
ld hl, wd4cf
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
cp [hl]
jr z, .ok
ld hl, OBJECT_09
@@ -1604,7 +1605,7 @@ Function4b8d: ; 4b8d
ret nz
call Function4600
call Function46a6
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
call IncrementObjectStructField28
@@ -1648,7 +1649,7 @@ Function4bd2: ; 4bd2
dec [hl]
ret nz
call Function4600
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
ld hl, wd150
@@ -1723,7 +1724,7 @@ Function4c42: ; 4c42
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], $10
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
call IncrementObjectStructField28
@@ -2198,7 +2199,7 @@ Function4ecd: ; 4ecd
ld b, a
callba CopyDECoordsToMapObject
pop bc
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 2, [hl]
call Function4600
@@ -2508,7 +2509,7 @@ Function54b8: ; 54b8
ret z
ld a, [wd4cd]
ld d, a
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
cp d
ret nz
ld a, e
@@ -2651,7 +2652,7 @@ Function5565: ; 5565
Function5579: ; 5579
push bc
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
ld c, a
call Function5582
pop bc
@@ -2663,7 +2664,7 @@ Function5582: ; 5582
ld a, NUM_OBJECT_STRUCTS
.loop
push af
- ld hl, OBJECT_04
+ ld hl, OBJECT_FLAGS1
add hl, de
bit 7, [hl]
jr z, .next
@@ -2690,7 +2691,7 @@ Function5582: ; 5582
; 55ac
Function55ac: ; 55ac
- call Function1a13
+ call FindFirstEmptyObjectStruct
ret nc
ld d, h
ld e, l
@@ -2712,7 +2713,7 @@ Function55b9: ; 55b9
ld [hli], a
ld a, [de]
ld [hli], a
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
ld [hli], a
push hl
ld hl, OBJECT_MAP_X
@@ -2737,7 +2738,7 @@ Function55e0:: ; 55e0
ld bc, ObjectStructs
xor a
.loop
- ld [hConnectionStripLength], a
+ ld [hMapObjectIndexBuffer1], a
call GetObjectSprite
jr z, .ok
call Function565c
@@ -2747,7 +2748,7 @@ Function55e0:: ; 55e0
add hl, bc
ld b, h
ld c, l
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
inc a
cp NUM_OBJECT_STRUCTS
jr nz, .loop
@@ -2801,13 +2802,13 @@ Function5645: ; 5645
xor a
ld bc, ObjectStructs
.loop
- ld [hConnectionStripLength], a
+ ld [hMapObjectIndexBuffer1], a
call Function5680
ld hl, OBJECT_STRUCT_LENGTH
add hl, bc
ld b, h
ld c, l
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
inc a
cp NUM_OBJECT_STRUCTS
jr nz, .loop
@@ -2927,7 +2928,7 @@ Function56cd: ; 56cd
sub $20
.ok3
- ld [$ffbd], a
+ ld [hUsedSpriteIndex], a
ld a, [wd14d]
ld e, a
ld hl, OBJECT_SPRITE_Y_OFFSET
@@ -2959,7 +2960,7 @@ Function56cd: ; 56cd
sub $20
.ok6
- ld [$ffbe], a
+ ld [hUsedSpriteTile], a
ld hl, OBJECT_PALETTE
add hl, bc
bit 7, [hl]
@@ -2977,14 +2978,14 @@ Function56cd: ; 56cd
.loop
ld a, [$ffbf]
ld d, a
- ld a, [$ffbe]
+ ld a, [hUsedSpriteTile]
add e
dec a
cp $12
jr nc, .ok9
ld b, a
.next
- ld a, [$ffbd]
+ ld a, [hUsedSpriteIndex]
add d
dec a
cp $14
@@ -3032,7 +3033,7 @@ Function5781: ; 5781
ld bc, ObjectStructs
xor a
.loop
- ld [hConnectionStripLength], a
+ ld [hMapObjectIndexBuffer1], a
call GetObjectSprite
jr z, .next
call Function437b
@@ -3042,7 +3043,7 @@ Function5781: ; 5781
add hl, bc
ld b, h
ld c, l
- ld a, [hConnectionStripLength]
+ ld a, [hMapObjectIndexBuffer1]
inc a
cp NUM_OBJECT_STRUCTS
jr nz, .loop
@@ -3102,7 +3103,7 @@ Function57e2: ; 57e2
ld a, d
and $80
ret z
- ld bc, $0000 ; debug?
+ ld bc, NONE ; debug?
ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
@@ -3137,7 +3138,7 @@ Function5803:: ; 5803
Function5815: ; 5815
call Function18de
ret c
- ld a, [hConnectedMapWidth]
+ ld a, [hMapObjectIndexBuffer2]
ld [wd4cd], a
ret
; 581f
@@ -3166,7 +3167,7 @@ Function582c: ; 582c
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
- ld a, [hConnectedMapWidth]
+ ld a, [hMapObjectIndexBuffer2]
ld [wd4ce], a
ret
; 5847
@@ -3189,7 +3190,7 @@ SetFlagsForMovement_1:: ; 585c
push bc
call Function587a
pop bc
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
xor a
@@ -3199,7 +3200,7 @@ SetFlagsForMovement_1:: ; 585c
Function586e: ; 586e
call Function18de
ret c
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
set 5, [hl]
xor a
@@ -3213,7 +3214,7 @@ Function587a: ; 587a
push af
call GetObjectSprite
jr z, .next
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
set 5, [hl]
@@ -3245,7 +3246,7 @@ _SetFlagsForMovement_2:: ; 5897
cp -1
ret z
call GetObjectStruct
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
ret
@@ -3259,7 +3260,7 @@ Function58b9:: ; 58b9
push af
call GetObjectSprite
jr z, .next
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
@@ -3279,7 +3280,7 @@ Function58b9:: ; 58b9
Function58d8: ; 58d8
call Function18de
ret c
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
res 5, [hl]
ret
@@ -3312,7 +3313,7 @@ Function5903: ; 5903
rrca
ld e, a
ld d, 0
- ld hl, .data_591c
+ ld hl, .standing_movefns
add hl, de
ld a, [hl]
ld hl, OBJECT_03
@@ -3323,8 +3324,11 @@ Function5903: ; 5903
ld [hl], 0
ret
-.data_591c
- db 6, 7, 8, 9
+.standing_movefns
+ db SPRITEMOVEDATA_STANDING_DOWN
+ db SPRITEMOVEDATA_STANDING_UP
+ db SPRITEMOVEDATA_STANDING_LEFT
+ db SPRITEMOVEDATA_STANDING_RIGHT
; 5920
RefreshMapAppearDisappear:: ; 5920
@@ -3332,7 +3336,7 @@ RefreshMapAppearDisappear:: ; 5920
bit 0, a
ret z
xor a
- ld [$ffbd], a
+ ld [hUsedSpriteIndex], a
ld a, [hOAMUpdate]
push af
ld a, 1
@@ -3352,12 +3356,12 @@ Function593a: ; 593a
ld b, $70
.ok
- ld a, [$ffbd]
+ ld a, [hUsedSpriteIndex]
cp b
ret nc
ld l, a
ld h, $c4
- ld de, OBJECT_04
+ ld de, OBJECT_FLAGS1
ld a, b
ld c, $a0
.loop
@@ -3447,7 +3451,7 @@ Function59a4: ; 59a4
; Define the sprite priority.
ld e, $10
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
bit 0, [hl]
jr nz, .add
@@ -3517,7 +3521,7 @@ Function5a0d: ; 5a0d
or %00001000
.skip1
- ld hl, OBJECT_FLAGS
+ ld hl, OBJECT_FLAGS2
add hl, bc
ld e, [hl]
bit 7, e
@@ -3592,11 +3596,11 @@ Function5a0d: ; 5a0d
ld h, [hl]
ld l, a
- ld a, [$ffbd]
+ ld a, [hUsedSpriteIndex]
ld c, a
ld b, Sprites / $100
ld a, [hli]
- ld [$ffbe], a
+ ld [hUsedSpriteTile], a
add c
cp SpritesEnd % $100
jr nc, .full
@@ -3641,13 +3645,13 @@ Function5a0d: ; 5a0d
ld [bc], a
inc c
- ld a, [$ffbe]
+ ld a, [hUsedSpriteTile]
dec a
- ld [$ffbe], a
+ ld [hUsedSpriteTile], a
jr nz, .addsprite
ld a, c
- ld [$ffbd], a
+ ld [hUsedSpriteIndex], a
.done
xor a