summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2015-02-11 14:13:22 -0800
committeryenatch <yenatch@gmail.com>2015-02-11 14:13:22 -0800
commit9aef93701a6cd301a3343c58efac31528958be22 (patch)
tree2178e0c56b92dfd80ed74d89387196acdfd2da88 /main.asm
parenta31b4586df7a659f15f5c864c469d309bf60f719 (diff)
Split out map object code.
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm3683
1 files changed, 1 insertions, 3682 deletions
diff --git a/main.asm b/main.asm
index 77ff826bc..52affc04e 100644
--- a/main.asm
+++ b/main.asm
@@ -56,3688 +56,7 @@ PushOAMEnd
; 4049
-INCLUDE "engine/facings.asm"
-
-
-Data4273:: ; 4273
- db $00, $00, $01, $02, $00, $00
- db $06, $00, $01, $0c, $00, $00
- db $03, $00, $01, $00, $00, $00
- db $04, $00, $01, $00, $00, $00
- db $01, $00, $01, $00, $00, $00
- db $02, $00, $01, $00, $00, $00
- db $06, $00, $01, $00, $00, $00
- db $06, $01, $01, $00, $00, $00
- db $06, $02, $01, $00, $00, $00
- db $06, $03, $01, $00, $00, $00
- db $05, $00, $01, $00, $00, $00
- db $07, $00, $01, $02, $00, $00
- db $08, $00, $01, $00, $00, $00
- db $09, $00, $01, $00, $00, $00
- db $0a, $00, $01, $00, $00, $00
- db $0b, $00, $01, $00, $00, $00
- db $0c, $00, $01, $00, $00, $00
- db $0d, $00, $01, $00, $00, $00
- db $0e, $00, $01, $00, $00, $00
- db $0f, $00, $01, $02, $00, $00
- db $10, $00, $01, $02, $00, $00
- db $15, $00, $09, $2e, $01, $c0
- db $16, $00, $0a, $2e, $00, $00
- db $06, $00, $01, $0c, $00, $00
- db $06, $00, $01, $2e, $10, $00
- db $11, $00, $01, $2e, $00, $40
- db $12, $00, $01, $02, $00, $00
- db $13, $00, $00, $8e, $01, $00
- db $14, $00, $08, $8e, $02, $00
- db $17, $00, $00, $82, $00, $00
- db $19, $02, $01, $00, $00, $00
- db $18, $03, $01, $00, $00, $00
- db $11, $00, $0c, $2e, $01, $c0
- db $11, $00, $0d, $2e, $01, $c0
- db $1a, $00, $0e, $8e, $01, $00
- db $1b, $00, $0f, $8e, $02, $00
- db $03, $00, $01, $00, $00, $20
- db $00, $00, $01, $00, $00, $00
-; 4357
-
-
-Function4357:: ; 4357
- push bc
- ld hl, OBJECT_01
- add hl, bc
- ld a, [hl]
- push af
- ld h, b
- ld l, c
- ld bc, ObjectStruct2 - ObjectStruct1
- xor a
- call ByteFill
- pop af
- cp $ff
- jr z, .asm_4379
- bit 7, a
- jr nz, .asm_4379
- call GetMapObject
- ld hl, OBJECT_00
- add hl, bc
- ld [hl], $ff
-
-.asm_4379
- pop bc
- ret
-; 437b
-
-Function437b: ; 437b
- call Function4386
- ret c
- call Function43f3
- call Function4427
- ret
-; 4386
-
-Function4386: ; 4386
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 6, [hl]
- ld a, [XCoord]
- ld e, a
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld a, [hl]
- add $1
- sub e
- jr c, .asm_43b2
- cp $c
- jr nc, .asm_43b2
- ld a, [YCoord]
- ld e, a
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld a, [hl]
- add $1
- sub e
- jr c, .asm_43b2
- cp $b
- jr nc, .asm_43b2
- jr .asm_43dc
-
-.asm_43b2
- ld hl, OBJECT_FLAGS
- add hl, bc
- set 6, [hl]
- ld a, [XCoord]
- ld e, a
- ld hl, OBJECT_20
- add hl, bc
- ld a, [hl]
- add $1
- sub e
- jr c, .asm_43de
- cp $c
- jr nc, .asm_43de
- ld a, [YCoord]
- ld e, a
- ld hl, OBJECT_21
- add hl, bc
- ld a, [hl]
- add $1
- sub e
- jr c, .asm_43de
- cp $b
- jr nc, .asm_43de
-
-.asm_43dc
- and a
- ret
-
-.asm_43de
- ld hl, OBJECT_04
- add hl, bc
- bit 1, [hl]
- jr nz, .asm_43eb
- call Function4357
- scf
- ret
-
-.asm_43eb
- ld hl, OBJECT_FLAGS
- add hl, bc
- set 6, [hl]
- and a
- ret
-; 43f3
-
-Function43f3: ; 43f3
- ld hl, OBJECT_09
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_4409
- ld hl, OBJECT_FLAGS
- add hl, bc
- bit 5, [hl]
- jr nz, .asm_4426
- cp $1
- jr z, .asm_4414
- jr .asm_4421
-
-.asm_4409
- call Function47bc
- ld hl, OBJECT_FLAGS
- add hl, bc
- bit 5, [hl]
- jr nz, .asm_4426
-
-.asm_4414
- call Function47dd
- ld hl, OBJECT_09
- add hl, bc
- ld a, [hl]
- and a
- ret z
- cp $1
- ret z
-
-.asm_4421
- ld hl, Pointers4b45
- rst JumpTable
- ret
-
-.asm_4426
- ret
-; 4427
-
-Function4427: ; 4427
- ld hl, OBJECT_04
- add hl, bc
- bit 0, [hl]
- jr nz, Function44a3
-
- ld hl, OBJECT_FLAGS
- add hl, bc
- bit 6, [hl]
- jr nz, Function44a3
-
- bit 5, [hl]
- jr nz, Function4448
-
- ld de, Pointers445f
- jr Function444d
-; 4440
-
-Function4440: ; 4440
- ld hl, OBJECT_04
- add hl, bc
- bit 0, [hl]
- jr nz, Function44a3
- ; fallthrough
-; 4448
-
-Function4448: ; 4448
- ld de, Pointers445f + 2
- jr Function444d
-; 444d
-
-Function444d: ; 444d
- ld hl, OBJECT_11
- add hl, bc
- ld a, [hl]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call _hl_
- ret
-; 445f
-
-Pointers445f: ; 445f
- dw Function44a3
- dw Function44a3
- dw Function44b5
- dw Function44aa
- dw Function44c1
- dw Function44aa
- dw Function4508
- dw Function44aa
- dw Function4529
- dw Function44aa
- dw Function4539
- dw Function44a3
- dw Function456e
- dw Function456e
- dw Function457b
- dw Function44a3
- dw Function4582
- dw Function4582
- dw Function4589
- dw Function4589
- dw Function4590
- dw Function45a4
- dw Function45ab
- dw Function44aa
- dw Function45be
- dw Function45be
- dw Function45c5
- dw Function45c5
- dw Function45da
- dw Function44a3
- dw Function45ed
- dw Function44a3
- dw Function44e4
- dw Function44aa
-; 44a3
-
-Function44a3: ; 44a3
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $ff
- ret
-; 44aa
-
-Function44aa: ; 44aa
- call GetSpriteDirection
- or $0
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 44b5
-
-Function44b5: ; 44b5
- ld hl, OBJECT_FACING
- add hl, bc
- ld a, [hl]
- and $1
- jr nz, Function44c1
- jp Function44aa
-; 44c1
-
-Function44c1: ; 44c1
- ld hl, OBJECT_04
- add hl, bc
- bit 3, [hl]
- jp nz, Function44aa
- ld hl, OBJECT_12
- add hl, bc
- ld a, [hl]
- inc a
- and $f
- ld [hl], a
- rrca
- rrca
- and $3
- ld d, a
- call GetSpriteDirection
- or $0
- or d
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 44e4
-
-Function44e4: ; 44e4
- ld hl, OBJECT_04
- add hl, bc
- bit 3, [hl]
- jp nz, Function44aa
- ld hl, OBJECT_12
- add hl, bc
- ld a, [hl]
- add $2
- and $f
- ld [hl], a
- rrca
- rrca
- and $3
- ld d, a
- call GetSpriteDirection
- or $0
- or d
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 4508
-
-Function4508: ; 4508
- ld hl, OBJECT_04
- add hl, bc
- bit 3, [hl]
- jp nz, Function44aa
- ld hl, OBJECT_12
- add hl, bc
- inc [hl]
- ld a, [hl]
- rrca
- rrca
- rrca
- and $3
- ld d, a
- call GetSpriteDirection
- or $0
- or d
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 4529
-
-Function4529: ; 4529
- call Function453f
- ld hl, OBJECT_08
- add hl, bc
- ld a, [hl]
- or $0
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 4539
-
-Function4539: ; 4539
- call Function453f
- jp Function44a3
-; 453f
-
-Function453f: ; 453f
- ld hl, OBJECT_12
- add hl, bc
- ld a, [hl]
- and $f0
- ld e, a
- ld a, [hl]
- inc a
- and $f
- ld d, a
- cp $4
- jr c, .asm_4558
- ld d, 0
- ld a, e
- add $10
- and $30
- ld e, a
-
-.asm_4558
- ld a, d
- or e
- ld [hl], a
- swap e
- ld d, 0
- ld hl, .Directions
- add hl, de
- ld a, [hl]
- ld hl, OBJECT_08
- add hl, bc
- ld [hl], a
- ret
-; 456a
-
-.Directions ; 456a
- db $00, $0c, $04, $08
-; 456e
-
-Function456e: ; 456e
- call GetSpriteDirection
- rrca
- rrca
- add $10
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 457b
-
-Function457b: ; 457b
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $15
- ret
-; 4582
-
-Function4582: ; 4582
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $14
- ret
-; 4589
-
-Function4589: ; 4589
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $17
- ret
-; 4590
-
-Function4590: ; 4590
- ld hl, OBJECT_12
- add hl, bc
- ld a, [hl]
- inc a
- and $f
- ld [hl], a
- and $8
- jr z, Function45a4
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $4
- ret
-; 45a4
-
-Function45a4: ; 45a4
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $0
- ret
-; 45ab
-
-Function45ab: ; 45ab
- ld hl, OBJECT_12
- add hl, bc
- ld a, [hl]
- inc a
- ld [hl], a
- and $c
- rrca
- rrca
- add $18
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], a
- ret
-; 45be
-
-Function45be: ; 45be
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $16
- ret
-; 45c5
-
-Function45c5: ; 45c5
- ld a, [VariableSprites + 3]
- ld d, $17
- cp $33
- jr z, .asm_45d4
- cp $47
- jr z, .asm_45d4
- ld d, $16
-
-.asm_45d4
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], d
- ret
-; 45da
-
-Function45da: ; 45da
- ld hl, OBJECT_12
- add hl, bc
- inc [hl]
- ld a, [hl]
-
- ld hl, OBJECT_FACING
- add hl, bc
- and 2
- ld a, $1c
- jr z, .asm_45eb
- inc a
-.asm_45eb
- ld [hl], a
- ret
-; 45ed
-
-Function45ed: ; 45ed
- ld hl, OBJECT_12
- add hl, bc
- inc [hl]
- ld a, [hl]
- ld hl, OBJECT_FACING
- add hl, bc
- and 4
- ld a, $1e
- jr z, .asm_45fe
- inc a
-
-.asm_45fe
- ld [hl], a
- ret
-; 4600
-
-Function4600: ; 4600
-
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_NEXT_MAP_X
- add hl, bc
- ld [hl], a
-
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_NEXT_MAP_Y
- add hl, bc
- ld [hl], a
-
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_NEXT_TILE
- add hl, bc
- ld [hl], a
-
- call Function4661
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld a, [hl]
-
- call Function4679
- ret
-; 462a
-
-Function462a: ; 462a
-
- ld hl, OBJECT_NEXT_MAP_X
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld [hl], a
-
- ld hl, OBJECT_NEXT_MAP_Y
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld [hl], a
-
- ret
-; 463f
-
-Function463f: ; 463f
- ld hl, OBJECT_FLAGS
- add hl, bc
- bit 3, [hl]
- jr z, .asm_464f
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld a, [hl]
- call Function4661
-
-.asm_464f
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld a, [hl]
- call Function4679
- ret c
- ld hl, OBJECT_NEXT_TILE
- add hl, bc
- ld a, [hl]
- call Function4679
- ret
-; 4661
-
-Function4661: ; 4661
- call Function188e
- jr z, .asm_466b
- call Function1875
- jr c, .asm_4672
-
-.asm_466b
- ld hl, OBJECT_FLAGS
- add hl, bc
- set 3, [hl]
- ret
-
-.asm_4672
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 3, [hl]
- ret
-; 4679
-
-Function4679: ; 4679
- and a
- ret
-; 467b
-
-Function467b: ; 467b
- xor a
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_27
- add hl, bc
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ret
-; 4690
-
-Function4690: ; 4690
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_04
- add hl, bc
- bit 2, [hl]
- jr nz, .asm_46a6
-
- add a
- add a
- and $c
- ld hl, OBJECT_08
- add hl, bc
- ld [hl], a
-
-.asm_46a6
- ; fallthrough
-; 46a6
-
-Function46a6: ; 46a6
-
- call GetStepVector
-
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], a
-
- ld a, d
- call Function4730
- ld hl, OBJECT_NEXT_MAP_X
- add hl, bc
- add [hl]
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld [hl], a
- ld d, a
-
- ld a, e
- call Function4730
- ld hl, OBJECT_NEXT_MAP_Y
- add hl, bc
- add [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld [hl], a
- ld e, a
-
- push bc
- call Function2a3c
- pop bc
-
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld [hl], a
-
- ret
-; 46d7
-
-Function46d7: ; 46d7
-
- call GetStepVector
-
- ld hl, OBJECT_SPRITE_X
- add hl, bc
- ld a, [hl]
- add d
- ld [hl], a
-
- ld hl, OBJECT_SPRITE_Y
- add hl, bc
- ld a, [hl]
- add e
- ld [hl], a
-
- ret
-; 46e9
-
-GetStepVector: ; 46e9
-; Return (x, y, duration, speed) in (d, e, a, h).
- ld hl, OBJECT_07
- add hl, bc
- ld a, [hl]
- and $f
- add a
- add a
- ld l, a
- ld h, 0
- ld de, StepVectors
- add hl, de
- ld d, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ret
-; 4700
-
-StepVectors: ; 4700
-; x, y, duration, speed
- ; slow
- db 0, 1, 16, 1
- db 0, -1, 16, 1
- db -1, 0, 16, 1
- db 1, 0, 16, 1
- ; normal
- db 0, 2, 8, 2
- db 0, -2, 8, 2
- db -2, 0, 8, 2
- db 2, 0, 8, 2
- ; fast
- db 0, 4, 4, 4
- db 0, -4, 4, 4
- db -4, 0, 4, 4
- db 4, 0, 4, 4
-; 4730
-
-Function4730: ; 4730
- add a
- ret z
- ld a, 1
- ret nc
- ld a, -1
- ret
-; 4738
-
-Function4738: ; 4738
- ld hl, OBJECT_07
- add hl, bc
- ld a, [hl]
- and $3
- ld [wd151], a
- call Function46d7
- ld a, [wd14e]
- add d
- ld [wd14e], a
- ld a, [wd14f]
- add e
- ld [wd14f], a
- ld hl, wd150
- set 5, [hl]
- ret
-; 4759
-
-Function4759: ; 4759
- push bc
- ld e, a
- ld d, 0
- ld hl, OBJECT_01
- add hl, bc
- ld a, [hl]
- call GetMapObject
- add hl, de
- ld a, [hl]
- pop bc
- ret
-; 4769
-
-Function4769: ; 4769
- ld hl, OBJECT_01
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, .asm_477d
- push bc
- call GetMapObject
- ld hl, $0004
- add hl, bc
- ld a, [hl]
- pop bc
- ret
-
-.asm_477d
- ld a, $6
- ret
-; 4780
-
-Function4780: ; 4780
- ld hl, OBJECT_27
- add hl, bc
- ld [hl], $0
- ret
-; 4787
-
-Function4787: ; 4787
- ld hl, OBJECT_27
- add hl, bc
- inc [hl]
- ret
-; 478d
-
-Function478d: ; 478d
- ld hl, OBJECT_27
- add hl, bc
- dec [hl]
- ret
-; 4793
-
-Function4793: ; 4793
- ld hl, OBJECT_27
- add hl, bc
- ld a, [hl]
- pop hl
- rst JumpTable
- ret
-; 479b
-
-Function479b: ; 479b
- ld hl, OBJECT_28
- add hl, bc
- ld [hl], $0
- ret
-; 47a2
-
-Function47a2: ; 47a2
- ld hl, OBJECT_28
- add hl, bc
- inc [hl]
- ret
-; 47a8
-
-Function47a8: ; 47a8
- ld hl, OBJECT_28
- add hl, bc
- ld a, [hl]
- pop hl
- rst JumpTable
- ret
-; 47b0
-
-Function47b0: ; 47b0
- ld hl, OBJECT_28
- add hl, bc
- ld a, [hl]
- ret
-; 47b6
-
-Function47b6: ; 47b6
- ld hl, OBJECT_28
- add hl, bc
- ld [hl], a
- ret
-; 47bc
-
-Function47bc: ; 47bc
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld d, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld e, [hl]
- push bc
- call Function2a3c
- pop bc
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld [hl], a
- call Function4600
- call Function467b
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 47dd
-
-Function47dd: ; 47dd
- call Function479b
- call Function1a2f
- ld a, [hl]
- ld hl, .Pointers
- rst JumpTable
- ret
-; 47e9
-
-.Pointers ; 47e9
- dw Function4821
- dw Function4822
- dw Function482c
- dw Function4838
- dw Function4842
- dw Function4851
- dw Function4869
- dw Function487c
- dw Function4882
- dw Function4888
- dw Function488e
- dw Function4891
- dw Function4894
- dw Function4897
- dw Function489d
- dw Function48a0
- dw Function48a6
- dw Function48ac
- dw Function48ff
- dw Function49e5
- dw Function4a21
- dw Function4958
- dw Function496e
- dw Function4abc
- dw Function498d
- dw Function4984
- dw Function4a46
- dw Function4a89
-; 4821
-
-Function4821: ; 4821
- ret
-; 4822
-
-Function4822: ; 4822
- call Random
- ld a, [hRandomAdd]
- and 1
- jp Function4af0
-; 482c
-
-Function482c: ; 482c
- call Random
- ld a, [hRandomAdd]
- and 1
- or 2
- jp Function4af0
-; 4838
-
-Function4838: ; 4838
- call Random
- ld a, [hRandomAdd]
- and 3
- jp Function4af0
-; 4842
-
-Function4842: ; 4842
- call Random
- ld a, [hRandomAdd]
- and $c
- ld hl, OBJECT_08
- add hl, bc
- ld [hl], a
- jp Function4b1d
-; 4851
-
-Function4851: ; 4851
- ld hl, OBJECT_08
- add hl, bc
- ld a, [hl]
- and $c
- ld d, a
- call Random
- ld a, [hRandomAdd]
- and $c
- cp d
- jr nz, .asm_4865
- xor $c
-
-.asm_4865
- ld [hl], a
- jp Function4b26
-; 4869
-
-Function4869: ; 4869
- call Function462a
- call Function467b
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $1
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $5
- ret
-; 487c
-
-Function487c: ; 487c
- ld hl, Function5000
- jp Function5041
-; 4882
-
-Function4882: ; 4882
- ld hl, Function5015
- jp Function5041
-; 4888
-
-Function4888: ; 4888
- ld hl, Function5026
- jp Function5041
-; 488e
-
-Function488e: ; 488e
- jp Function5037
-; 4891
-
-Function4891: ; 4891
- jp Function5037
-; 4894
-
-Function4894: ; 4894
- jp Function5037
-; 4897
-
-Function4897: ; 4897
- ld hl, Function5000
- jp Function5041
-; 489d
-
-Function489d: ; 489d
- jp Function5037
-; 48a0
-
-Function48a0: ; 48a0
- ld hl, Function54e6
- jp Function5041
-; 48a6
-
-Function48a6: ; 48a6
- ld hl, Function500e
- jp Function5041
-; 48ac
-
-Function48ac: ; 48ac
- call Function4793
- dw Function48b3
- dw Function48f8
-; 48b3
-
-Function48b3: ; 48b3
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld a, [hl]
- call CheckPitTile
- jr z, .asm_48f5
- ld hl, OBJECT_FLAGS
- add hl, bc
- bit 2, [hl]
- res 2, [hl]
- jr z, .asm_48ee
- ld hl, OBJECT_32
- add hl, bc
- ld a, [hl]
- and $3
- or $0
- call Function4690
- call Function6ec1
- jr c, .asm_48eb
- ld de, SFX_STRENGTH
- call PlaySFX
- call Function5538
- call Function463f
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $f
- ret
-
-.asm_48eb
- call Function462a
-
-.asm_48ee
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ret
-
-.asm_48f5
- call Function4787
- ; fallthrough
-; 48f8
-
-Function48f8: ; 48f8
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ret
-; 48ff
-
-Function48ff: ; 48ff
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld d, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld e, [hl]
- ld hl, OBJECT_32
- add hl, bc
- ld a, [hl]
- push bc
- call Function1ae5
- ld hl, OBJECT_07
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, .asm_494a
- ld hl, OBJECT_NEXT_MAP_X
- add hl, bc
- ld a, [hl]
- cp d
- jr z, .asm_492d
- jr c, .asm_4929
- ld a, $3
- jr .asm_493d
-
-.asm_4929
- ld a, $2
- jr .asm_493d
-
-.asm_492d
- ld hl, OBJECT_NEXT_MAP_Y
- add hl, bc
- ld a, [hl]
- cp e
- jr z, .asm_494a
- jr c, .asm_493b
- ld a, $0
- jr .asm_493d
-
-.asm_493b
- ld a, $1
-
-.asm_493d
- ld d, a
- ld hl, OBJECT_07
- add hl, bc
- ld a, [hl]
- and $c
- or d
- pop bc
- jp Function5412
-
-.asm_494a
- pop bc
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $1
- ret
-; 4958
-
-Function4958: ; 4958
- call Function467b
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $9
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $4
- ret
-; 496e
-
-Function496e: ; 496e
- call Function467b
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $a
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $4
- ret
-; 4984
-
-Function4984: ; 4984
- call Function4793
- dw Function4996
- dw Function499c
- dw Function49b8
-; 498d
-
-Function498d: ; 498d
- call Function4793
- dw Function4996
- dw Function499c
- dw Function49c4
-; 4996
-
-Function4996: ; 4996
- call Function467b
- call Function4787
- ; fallthrough
-; 499c
-
-Function499c: ; 499c
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $1
- ld hl, OBJECT_32
- add hl, bc
- ld a, [hl]
- ld a, $10
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $3
- call Function4787
- ret
-; 49b8
-
-Function49b8: ; 49b8
- ld de, .data_49c0
- call Function49d0
- jr Function4984
-; 49c0
-
-.data_49c0 ; 49c0
- db $0c, $08, $00, $04
-; 49c4
-
-Function49c4: ; 49c4
- ld de, .data_49cc
- call Function49d0
- jr Function498d
-; 49cc
-
-.data_49cc ; 49cc
- db $08, $0c, $04, $00
-; 49d0
-
-Function49d0: ; 49d0
- ld hl, OBJECT_08
- add hl, bc
- ld a, [hl]
- and $c
- rrca
- rrca
- push hl
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- pop hl
- ld [hl], a
- call Function478d
- ret
-; 49e5
-
-Function49e5: ; 49e5
- call Function4aa8
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $7
- ld hl, OBJECT_STEP_DURATION
- add hl, de
- ld a, [hl]
- inc a
- add a
- add $0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_07
- add hl, de
- ld a, [hl]
- and 3
- ld d, $e
- cp 0
- jr z, .asm_4a0f
- cp 1
- jr z, .asm_4a0f
- ld d, $c
-
-.asm_4a0f
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], d
- ld hl, OBJECT_SPRITE_X_OFFSET
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $13
- ret
-; 4a21
-
-Function4a21: ; 4a21
- call Function467b
- call Function4aa8
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $8
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], $f0
- ld hl, OBJECT_SPRITE_X_OFFSET
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $13
- ret
-; 4a46
-
-Function4a46: ; 4a46
- call Function467b
- call Function4aa8
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $e
- ld hl, OBJECT_STEP_DURATION
- add hl, de
- ld a, [hl]
- inc a
- add a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_07
- add hl, de
- ld a, [hl]
- and 3
- ld e, a
- ld d, 0
- ld hl, .data_4a81
- add hl, de
- add hl, de
- ld d, [hl]
- inc hl
- ld e, [hl]
- ld hl, OBJECT_SPRITE_X_OFFSET
- add hl, bc
- ld [hl], d
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], e
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $13
- ret
-; 4a81
-
-.data_4a81 ; 4a81
- ; x, y
- db 0, -4
- db 0, 8
- db 6, 2
- db -6, 2
-; 4a89
-
-Function4a89: ; 4a89
- call Function467b
- call Function4aa8
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $f
- ld hl, OBJECT_STEP_DURATION
- add hl, de
- ld a, [hl]
- add $ff
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $13
- ret
-; 4aa8
-
-Function4aa8: ; 4aa8
- ld hl, OBJECT_32
- add hl, bc
- ld a, [hl]
- push bc
- call Function1ae5
- ld d, b
- ld e, c
- pop bc
- ld hl, OBJECT_29
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-; 4abc
-
-Function4abc: ; 4abc
- call Function467b
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_32
- add hl, bc
- ld a, [hl]
- call Function4ade
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], e
- ld hl, OBJECT_30
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $15
- ret
-; 4ade
-
-Function4ade: ; 4ade
- ld d, a
- and $3f
- ld e, a
- ld a, d
- rlca
- rlca
- and $3
- ld d, a
- inc d
- ld a, $1
-.asm_4aeb
- dec d
- ret z
- add a
- jr .asm_4aeb
-; 4af0
-
-Function4af0: ; 4af0
- call Function4690
- call Function6ec1
- jr c, Function4b17
- call Function463f
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $2
- ld hl, wd4cf
- ld a, [$ffaf]
- cp [hl]
- jr z, .asm_4b10
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $7
- ret
-
-.asm_4b10
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $6
- ret
-
-Function4b17: ; 4b17
- call Function467b
- call Function462a
- ; fallthrough
-; 4b1d
-
-Function4b1d: ; 4b1d
- call Random
- ld a, [hRandomAdd]
- and $7f
- jr Function4b2d
-; 4b26
-
-Function4b26: ; 4b26
- call Random
- ld a, [hRandomAdd]
- and $1f
- ; fallthrough
-; 4b2d
-
-Function4b2d: ; 4b2d
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $1
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $3
- ret
-; 4b45
-
-Pointers4b45: ; 4b45
- dw Function47bc
- dw Function47dd
- dw Function4e2b
- dw Function4ddd
- dw Function4e21
- dw Function4e0c
- dw Function4e56
- dw Function4e47
- dw Function4b86
- dw Function4bbf
- dw Function4e83
- dw Function4dff
- dw Function4c18
- dw Function4c89
- dw Function4d14
- dw Function4ecd
- dw Function4d7e
- dw Function4daf
- dw Function4dc8
- dw Function4f04
- dw Function4f33
- dw Function4f33
- dw Function4f77
- dw Function4f7a
- dw Function4df0
- dw Function4f83
-; 4b79
-
-Function4b79: ; 4b79
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4b86
-
-Function4b86: ; 4b86
- call Function47a8
- dw Function4b8d
- dw Function4ba9
-; 4b8d
-
-Function4b8d: ; 4b8d
- call Function46d7
- call UpdateJumpPosition
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function4600
- call Function46a6
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 3, [hl]
- call Function47a2
- ret
-; 4ba9
-
-Function4ba9: ; 4ba9
- call Function46d7
- call UpdateJumpPosition
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function4600
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4bbf
-
-Function4bbf: ; 4bbf
- call Function47a8
- dw Function4bca
- dw Function4bd2
- dw Function4bf2
- dw Function4bfd
-; 4bca
-
-Function4bca: ; 4bca
- ld hl, wd150
- set 7, [hl]
- call Function47a2
-; fallthrough
-; 4bd2
-
-Function4bd2: ; 4bd2
- call UpdateJumpPosition
- call Function4738
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function4600
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 3, [hl]
- ld hl, wd150
- set 6, [hl]
- set 4, [hl]
- call Function47a2
- ret
-; 4bf2
-
-Function4bf2: ; 4bf2
- call Function46a6
- ld hl, wd150
- set 7, [hl]
- call Function47a2
-; fallthrough
-; 4bfd
-
-Function4bfd: ; 4bfd
- call UpdateJumpPosition
- call Function4738
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, wd150
- set 6, [hl]
- call Function4600
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4c18
-
-Function4c18: ; 4c18
- call Function47a8
- dw Function4c23
- dw Function4c32
- dw Function4c42
- dw Function4c5d
-; 4c23
-
-Function4c23: ; 4c23
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
-; fallthrough
-; 4c32
-
-Function4c32: ; 4c32
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $4
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function47a2
- ret
-; 4c42
-
-Function4c42: ; 4c42
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_31
- add hl, bc
- ld [hl], $10
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 3, [hl]
- call Function47a2
-; fallthrough
-; 4c5d
-
-Function4c5d: ; 4c5d
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $4
- ld hl, OBJECT_31
- add hl, bc
- inc [hl]
- ld a, [hl]
- ld d, $60
- call Sine
- ld a, h
- sub $60
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4c89
-
-Function4c89: ; 4c89
- call Function47a8
- dw Function4c9a
- dw Function4caa
- dw Function4cb3
- dw Function4cc9
- dw Function4ceb
- dw Function4cf5
- dw Function4d01
-; 4c9a
-
-Function4c9a: ; 4c9a
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
- ret
-; 4caa
-
-Function4caa: ; 4caa
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function47a2
-; fallthrough
-; 4cb3
-
-Function4cb3: ; 4cb3
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_31
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
- ret
-; 4cc9
-
-Function4cc9: ; 4cc9
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $4
- ld hl, OBJECT_31
- add hl, bc
- inc [hl]
- ld a, [hl]
- ld d, $60
- call Sine
- ld a, h
- sub $60
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function47a2
-; fallthrough
-; 4ceb
-
-Function4ceb: ; 4ceb
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
- ret
-; 4cf5
-
-Function4cf5: ; 4cf5
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $4
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
-; 4d01
-
-Function4d01: ; 4d01
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4d14
-
-Function4d14: ; 4d14
- call Function47a8
- dw Function4d1f
- dw Function4d2e
- dw Function4d4f
- dw Function4d6b
-; 4d1f
-
-Function4d1f: ; 4d1f
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
-; fallthrough
-; 4d2e
-
-Function4d2e: ; 4d2e
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $2
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_31
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
-; fallthrough
-; 4d4f
-
-Function4d4f: ; 4d4f
- ld hl, OBJECT_31
- add hl, bc
- inc [hl]
- ld a, [hl]
- ld d, $60
- call Sine
- ld a, h
- sub $60
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function47a2
-; fallthrough
-; 4d6b
-
-Function4d6b: ; 4d6b
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4d7e
-
-Function4d7e: ; 4d7e
- call Function47a8
- dw Function4d85
- dw Function4d94
-; 4d85
-
-Function4d85: ; 4d85
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $8
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], $0
- call Function47a2
- ; fallthrough
-; 4d94
-
-Function4d94: ; 4d94
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld a, [hl]
- xor 1
- ld [hl], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4daf
-
-Function4daf: ; 4daf
- call Function4db5
- jp Function4b79
-; 4db5
-
-Function4db5: ; 4db5
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld a, [hl]
- and $1
- ld a, $1
- jr z, .asm_4dc2
- ld a, $0
-
-.asm_4dc2
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], a
- ret
-; 4dc8
-
-Function4dc8: ; 4dc8
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld a, [hl]
- and $1
- ld a, $4
- jr z, .asm_4dd5
- ld a, $5
-
-.asm_4dd5
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], a
- jp Function4b79
-; 4ddd
-
-Function4ddd: ; 4ddd
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4df0
-
-Function4df0: ; 4df0
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- jp Function4357
-; 4dff
-
-Function4dff: ; 4dff
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4e0c
-
-Function4e0c: ; 4e0c
- call Function47a8
- dw Function4e13
- dw Function4e21
-; 4e13
-
-Function4e13: ; 4e13
- call Function4769
- call Function1a47
- ld hl, OBJECT_08
- add hl, bc
- ld [hl], a
- call Function47a2
- ; fallthrough
-; 4e21
-
-Function4e21: ; 4e21
- call Function4fb2
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ret
-; 4e2b
-
-Function4e2b: ; 4e2b
- call Function4fb2
- call Function46d7
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function4600
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4e47
-
-Function4e47: ; 4e47
- call Function46d7
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function4600
- jp Function4b1d
-; 4e56
-
-Function4e56: ; 4e56
-; AnimateStep?
- call Function47a8
- dw Function4e5d
- dw Function4e65
-; 4e5d
-
-Function4e5d: ; 4e5d
- ld hl, wd150
- set 7, [hl]
- call Function47a2
- ; fallthrough
-; 4e65
-
-Function4e65: ; 4e65
- call Function4738
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, wd150
- set 6, [hl]
- call Function4600
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4e83
-
-Function4e83: ; 4e83
- call Function47a8
- dw Function4e8e
- dw Function4ea4
- dw Function4ead
- dw Function4ec0
-; 4e8e
-
-Function4e8e: ; 4e8e
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_12
- add hl, bc
- ld a, [hl]
- ld [hl], $2
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $2
- call Function47a2
- ; fallthrough
-; 4ea4
-
-Function4ea4: ; 4ea4
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- call Function47a2
- ; fallthrough
-; 4ead
-
-Function4ead: ; 4ead
- ld hl, OBJECT_29
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_08
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $2
- call Function47a2
- ; fallthrough
-; 4ec0
-
-Function4ec0: ; 4ec0
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4ecd
-
-Function4ecd: ; 4ecd
- call Function46d7
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- push bc
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld d, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld e, [hl]
- ld hl, OBJECT_01
- add hl, bc
- ld a, [hl]
- ld b, a
- callba Function807e
- pop bc
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 2, [hl]
- call Function4600
- ld hl, OBJECT_07
- add hl, bc
- ld [hl], $ff
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4f04
-
-Function4f04: ; 4f04
- ld hl, OBJECT_29
- add hl, bc
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, OBJECT_00
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_4f30
- ld hl, OBJECT_SPRITE_X
- add hl, de
- ld a, [hl]
- ld hl, OBJECT_SPRITE_X
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_SPRITE_Y
- add hl, de
- ld a, [hl]
- ld hl, OBJECT_SPRITE_Y
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret nz
-
-.asm_4f30
- jp Function4357
-; 4f33
-
-Function4f33: ; 4f33
- call Function47a8
- dw Function4f3a
- dw Function4f43
-; 4f3a
-
-Function4f3a: ; 4f3a
- xor a
- ld hl, OBJECT_29
- add hl, bc
- ld [hl], a
- call Function47a2
- ; fallthrough
-; 4f43
-
-Function4f43: ; 4f43
- ld hl, OBJECT_29
- add hl, bc
- ld d, [hl]
- ld a, [wd14f]
- sub d
- ld [wd14f], a
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- jr z, .asm_4f68
- ld a, [hl]
- call Function4f6c
- ld hl, OBJECT_29
- add hl, bc
- ld [hl], a
- ld d, a
- ld a, [wd14f]
- add d
- ld [wd14f], a
- ret
-
-.asm_4f68
- call Function4357
- ret
-; 4f6c
-
-Function4f6c: ; 4f6c
- ld hl, OBJECT_30
- add hl, bc
- and 1
- ld a, [hl]
- ret z
- cpl
- inc a
- ret
-; 4f77
-
-Function4f77: ; 4f77
- call Function47a8 ; ????
-; 4f7a
-
-Function4f7a: ; 4f7a
- call Function47a8
- dw Function4f83
- dw Function4f83
- dw Function4f83
-; 4f83
-
-Function4f83: ; 4f83
- call Function47a8
- dw Function4f8a
- dw Function4f99
-; 4f8a
-
-Function4f8a: ; 4f8a
- ld hl, OBJECT_11
- add hl, bc
- ld [hl], $10
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- ld [hl], $10
- call Function47a2
-; 4f99
-
-Function4f99: ; 4f99
- ld hl, OBJECT_STEP_DURATION
- add hl, bc
- dec [hl]
- ret nz
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], $60
- ld hl, OBJECT_12
- add hl, bc
- ld [hl], $0
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $1
- ret
-; 4fb2
-
-Function4fb2: ; 4fb2
- ret
-; 4fb3
-
-Function4fb3: ; 4fb3
- ld hl, OBJECT_29
- add hl, bc
- inc [hl]
- ld a, [hl]
- srl a
- srl a
- and 7
- ld l, a
- ld h, 0
- ld de, .y
- add hl, de
- ld a, [hl]
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], a
- ret
-; 4fcd
-
-.y ; 4fcd
- db 0, -1, -2, -3, -4, -3, -2, -1
-; 4fd5
-
-UpdateJumpPosition: ; 4fd5
- call GetStepVector
- ld a, h
- ld hl, OBJECT_31
- add hl, bc
- ld e, [hl]
- add e
- ld [hl], a
- nop
- srl e
- ld d, 0
- ld hl, .y
- add hl, de
- ld a, [hl]
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld [hl], a
- ret
-; 4ff0
-
-.y ; 4ff0
- db -4, -6, -8, -10, -11, -12, -12, -12
- db -11, -10, -9, -8, -6, -4, 0, 0
-; 5000
-
-Function5000: ; 5000
- ld a, [wc2de]
- ld hl, wc2df
- ld [hl], a
- ld a, $3e
- ld [wc2de], a
- ld a, [hl]
- ret
-; 500e
-
-Function500e: ; 500e
- ld hl, wc2e3
- call Function1aae
- ret
-; 5015
-
-Function5015: ; 5015
- ld hl, OBJECT_27
- add hl, bc
- ld e, [hl]
- inc [hl]
- ld d, 0
- ld hl, wc2e2
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld a, [hl]
- ret
-; 5026
-
-Function5026: ; 5026
- ld hl, OBJECT_27
- add hl, bc
- ld e, [hl]
- inc [hl]
- ld d, 0
- ld hl, wc2e6
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld a, [hl]
- ret
-; 5037
-
-Function5037: ; 5037
- ld hl, Function503d
- jp Function5041
-; 503d
-
-Function503d: ; 503d
- ld a, [wc2e2]
- ret
-; 5041
-
-Function5041: ; 5041
- call Function5055
-.asm_5044
- xor a
- ld [wc2ea], a
- call Function505e
- call Function506b
- ld a, [wc2ea]
- and a
- jr nz, .asm_5044
- ret
-; 5055
-
-Function5055: ; 5055
- ld a, l
- ld [wc2eb], a
- ld a, h
- ld [wc2ec], a
- ret
-; 505e
-
-Function505e: ; 505e
- ld hl, wc2eb
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 5065
-
-Function5065: ; 5065
- ld a, $1
- ld [wc2ea], a
- ret
-; 506b
-
-Function506b: ; 506b
- push af
- call Function54b8
- pop af
- ld hl, MovementPointers
- rst JumpTable
- ret
-; 5075
-
-
-; 5075
-INCLUDE "engine/movement.asm"
-; 54b8
-
-
-Function54b8: ; 54b8
- ld e, a
- ld a, [wd4ce]
- cp $ff
- ret z
- ld a, [wd4cd]
- ld d, a
- ld a, [$ffaf]
- cp d
- ret nz
- ld a, e
- cp $3e
- ret z
- cp $47
- ret z
- cp $4b
- ret z
- cp $50
- ret z
- cp $8
- ret c
- push af
- ld hl, wd4d0
- inc [hl]
- ld e, [hl]
- ld d, 0
- ld hl, wd4d1
- add hl, de
- pop af
- ld [hl], a
- ret
-; 54e6
-
-Function54e6: ; 54e6
- ld hl, wd4d0
- ld a, [hl]
- and a
- jr z, .asm_5503
- cp $ff
- jr z, .asm_5503
- dec [hl]
- ld e, a
- ld d, 0
- ld hl, wd4d1
- add hl, de
- inc e
- ld a, $ff
-.asm_54fc
- ld d, [hl]
- ld [hld], a
- ld a, d
- dec e
- jr nz, .asm_54fc
- ret
-
-.asm_5503
- call Function550a
- ret c
- ld a, $3e
- ret
-; 550a
-
-Function550a: ; 550a
- ld a, [wd4cd]
- cp $ff
- jr z, .asm_5520
- push bc
- call Function1ae5
- ld hl, OBJECT_00
- add hl, bc
- ld a, [hl]
- pop bc
- and a
- jr z, .asm_5520
- and a
- ret
-
-.asm_5520
- ld a, $ff
- ld [wd4ce], a
- ld a, $47
- scf
- ret
-; 5529
-
-Function5529: ; 5529
- push bc
- ld de, .data_5535
- call Function55b9
- call Function55ac
- pop bc
- ret
-
-.data_5535
- db $00, $05, $1b
-; 5538
-
-Function5538: ; 5538
- push bc
- ld de, .data_5544
- call Function55b9
- call Function55ac
- pop bc
- ret
-
-.data_5544
- db $00, $05, $22
-; 5547
-
-Function5547: ; 5547
- push bc
- ld de, .data_5553
- call Function55b9
- call Function55ac
- pop bc
- ret
-
-.data_5553
- db $00, $05, $1c
-; 5556
-
-Function5556: ; 5556
- push bc
- ld de, .data_5562
- call Function55b9
- call Function55ac
- pop bc
- ret
-
-.data_5562
- db $00, $06, $23
-; 5565
-
-Function5565: ; 5565
- push bc
- push af
- ld de, .data_5576
- call Function55b9
- pop af
- ld [wc2f5], a
- call Function55ac
- pop bc
- ret
-
-.data_5576
- db $00, $05, $1d
-; 5579
-
-Function5579: ; 5579
- push bc
- ld a, [$ffaf]
- ld c, a
- call Function5582
- pop bc
- ret
-; 5582
-
-Function5582: ; 5582
- ld de, ObjectStructs
- ld a, $d
-.asm_5587
- push af
- ld hl, OBJECT_04
- add hl, de
- bit 7, [hl]
- jr z, .asm_55a1
- ld hl, OBJECT_00
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_55a1
- push bc
- xor a
- ld bc, ObjectStruct2 - ObjectStruct1
- call ByteFill
- pop bc
-
-.asm_55a1
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, de
- ld d, h
- ld e, l
- pop af
- dec a
- jr nz, .asm_5587
- ret
-; 55ac
-
-Function55ac: ; 55ac
- call Function1a13
- ret nc
- ld d, h
- ld e, l
- callba Function8286
- ret
-; 55b9
-
-Function55b9: ; 55b9
- ld hl, wc2f0
- ld [hl], $ff
- inc hl
- ld [hl], $ff
- inc hl
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hli], a
- ld a, [$ffaf]
- ld [hli], a
- push hl
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld d, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld e, [hl]
- pop hl
- ld [hl], d
- inc hl
- ld [hl], e
- inc hl
- ld [hl], $ff
- ret
-; 55e0
-
-Function55e0:: ; 55e0
- ld a, [VramState]
- bit 0, a
- ret z
- ld bc, ObjectStructs
- xor a
-.asm_55ea
- ld [$ffaf], a
- call Function1af1
- jr z, .asm_55f4
- call Function565c
-
-.asm_55f4
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- ld a, [$ffaf]
- inc a
- cp $d
- jr nz, .asm_55ea
- ret
-; 5602
-
-Function5602: ; 5602
- call Function5645
- ld a, $0
- call Function5629
- ld a, [wd459]
- bit 7, a
- jr z, .asm_5619
- ld a, [$ffe0]
- and a
- jr z, .asm_5619
- call Function5629
-
-.asm_5619
- call Function5920
- ret
-; 561d
-
-Function561d: ; 561d
- call Function5645
- ld a, $0
- call Function5629
- call Function5920
- ret
-; 5629
-
-Function5629: ; 5629
- cp $10
- ret nc
- call GetMapObject
- ld hl, $0000
- add hl, bc
- ld a, [hl]
- cp $ff
- ret z
- cp $d
- ret nc
- call Function1ae5
- call Function1af1
- ret z
- call Function5673
- ret
-; 5645
-
-Function5645: ; 5645
- xor a
- ld bc, ObjectStructs
-.asm_5649
- ld [$ffaf], a
- call Function5680
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- ld a, [$ffaf]
- inc a
- cp $d
- jr nz, .asm_5649
- ret
-; 565c
-
-Function565c: ; 565c
- push bc
- call Function56cd
- pop bc
- jr c, Function5680
- call Function56a3
- jr c, Function5680
- call Function5688
- callba Function4440
- xor a
- ret
-; 5673
-
-Function5673: ; 5673
- call Function56a3
- jr c, Function5680
- callba Function4440
- xor a
- ret
-; 5680
-
-Function5680: ; 5680
- ld hl, OBJECT_FACING
- add hl, bc
- ld [hl], $ff
- scf
- ret
-; 5688
-
-Function5688: ; 5688
- push bc
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld d, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld e, [hl]
- call Function2a3c
- pop bc
- ld hl, OBJECT_STANDING_TILE
- add hl, bc
- ld [hl], a
- callba Function463f
- ret
-; 56a3
-
-Function56a3: ; 56a3
- ld hl, OBJECT_MAP_X
- add hl, bc
- ld d, [hl]
- ld hl, OBJECT_MAP_Y
- add hl, bc
- ld e, [hl]
- inc d
- inc e
- ld a, [XCoord]
- cp d
- jr z, .asm_56bc
- jr nc, .asm_56cb
- add $b
- cp d
- jr c, .asm_56cb
-
-.asm_56bc
- ld a, [YCoord]
- cp e
- jr z, .asm_56c9
- jr nc, .asm_56cb
- add $a
- cp e
- jr c, .asm_56cb
-
-.asm_56c9
- xor a
- ret
-
-.asm_56cb
- scf
- ret
-; 56cd
-
-Function56cd: ; 56cd
- ld a, [wd14c]
- ld d, a
- ld hl, OBJECT_SPRITE_X_OFFSET
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_SPRITE_X
- add hl, bc
- add [hl]
- add d
- cp $f0
- jr nc, .asm_56e5
- cp $a0
- jp nc, .asm_5768
-
-.asm_56e5
- and $7
- ld d, $2
- cp $4
- jr c, .asm_56ef
- ld d, $3
-
-.asm_56ef
- ld a, [hl]
- srl a
- srl a
- srl a
- cp $14
- jr c, .asm_56fc
- sub $20
-
-.asm_56fc
- ld [$ffbd], a
- ld a, [wd14d]
- ld e, a
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- ld a, [hl]
- ld hl, OBJECT_SPRITE_Y
- add hl, bc
- add [hl]
- add e
- cp $f0
- jr nc, .asm_5715
- cp $90
- jr nc, .asm_5768
-
-.asm_5715
- and $7
- ld e, $2
- cp $4
- jr c, .asm_571f
- ld e, $3
-
-.asm_571f
- ld a, [hl]
- srl a
- srl a
- srl a
- cp $12
- jr c, .asm_572c
- sub $20
-
-.asm_572c
- ld [$ffbe], a
- ld hl, OBJECT_PALETTE
- add hl, bc
- bit 7, [hl]
- jr z, .asm_573e
- ld a, d
- add $2
- ld d, a
- ld a, e
- add $2
- ld e, a
-
-.asm_573e
- ld a, d
- ld [$ffbf], a
-.asm_5741
- ld a, [$ffbf]
- ld d, a
- ld a, [$ffbe]
- add e
- dec a
- cp $12
- jr nc, .asm_5763
- ld b, a
-.asm_574d
- ld a, [$ffbd]
- add d
- dec a
- cp $14
- jr nc, .asm_5760
- ld c, a
- push bc
- call GetTileCoord
- pop bc
- ld a, [hl]
- cp $60
- jr nc, .asm_5768
-
-.asm_5760
- dec d
- jr nz, .asm_574d
-
-.asm_5763
- dec e
- jr nz, .asm_5741
- and a
- ret
-
-.asm_5768
- scf
- ret
-; 576a
-
-Function576a:: ; 576a
- call Function5771
- call Function5781
- ret
-; 5771
-
-Function5771: ; 5771
- xor a
- ld [wd14e], a
- ld [wd14f], a
- ld [wd150], a
- ld a, $ff
- ld [wd151], a
- ret
-; 5781
-
-Function5781: ; 5781
- ld bc, ObjectStructs
- xor a
-.asm_5785
- ld [$ffaf], a
- call Function1af1
- jr z, .asm_578f
- call Function437b
-
-.asm_578f
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- ld a, [$ffaf]
- inc a
- cp $d
- jr nz, .asm_5785
- ret
-; 579d
-
-Function579d: ; 579d
- ld a, $3e
- ld [wc2de], a
- ld [wc2df], a
- xor a
- ld [wd04e], a
- ld [wd4e2], a
- call Function57bc
- callba Function149c6
- call c, Function57d9
- call Function57ca
- ret
-; 57bc
-
-Function57bc: ; 57bc
- ld hl, wd45b
- bit 7, [hl]
- jr nz, .asm_57c4
- ret
-
-.asm_57c4
- ld a, $0
- ld [PlayerAction], a
- ret
-; 57ca
-
-Function57ca: ; 57ca
- ld hl, wd45b
- bit 5, [hl]
- ret z
- ld a, [wd45b]
- and $3
- add a
- add a
- jr Function57db
-; 57d9
-
-Function57d9: ; 57d9
- ld a, $0
- ; fallthrough
-; 57db
-
-Function57db: ; 57db
- ld bc, PlayerStruct
- call Function1af8
- ret
-; 57e2
-
-Function57e2: ; 57e2
- ld a, d
- and $80
- ret z
- ld bc, $0000 ; debug?
- ld hl, OBJECT_08
- add hl, bc
- ld a, [hl]
- or d
- ld [hl], a
- ld a, d
- swap a
- and $7
- ld d, a
- ld bc, PlayerStruct
- ld hl, OBJECT_PALETTE
- add hl, bc
- ld a, [hl]
- and $f8
- or d
- ld [hl], a
- ret
-; 5803
-
-Function5803:: ; 5803
- push bc
- ld a, b
- call Function5815
- pop bc
- ret c
- ld a, c
- call Function582c
- callba Function848a
- ret
-; 5815
-
-Function5815: ; 5815
- call Function18de
- ret c
- ld a, [$ffb0]
- ld [wd4cd], a
- ret
-; 581f
-
-Function581f:: ; 581f
- call Function5826
- call Function5847
- ret
-; 5826
-
-Function5826: ; 5826
- ld a, $ff
- ld [wd4cd], a
- ret
-; 582c
-
-Function582c: ; 582c
- push af
- call Function5847
- pop af
- call Function18de
- ret c
- ld hl, OBJECT_03
- add hl, bc
- ld [hl], $13
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $0
- ld a, [$ffb0]
- ld [wd4ce], a
- ret
-; 5847
-
-Function5847: ; 5847
- ld a, [wd4ce]
- cp $ff
- ret z
- call Function1ae5
- callba Function58e3
- ld a, $ff
- ld [wd4ce], a
- ret
-; 585c
-
-Function585c:: ; 585c
- ld a, c
- call Function18de
- ret c
- push bc
- call Function587a
- pop bc
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 5, [hl]
- xor a
- ret
-; 586e
-
-Function586e: ; 586e
- call Function18de
- ret c
- ld hl, OBJECT_FLAGS
- add hl, bc
- set 5, [hl]
- xor a
- ret
-; 587a
-
-Function587a: ; 587a
- ld bc, ObjectStructs
- xor a
-.asm_587e
- push af
- call Function1af1
- jr z, .asm_588a
- ld hl, OBJECT_FLAGS
- add hl, bc
- set 5, [hl]
-
-.asm_588a
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- pop af
- inc a
- cp $d
- jr nz, .asm_587e
- ret
-; 5897
-
-Function5897:: ; 5897
- ld a, [wd4cd]
- cp $ff
- ret z
- push bc
- call Function1ae5
- ld hl, OBJECT_01
- add hl, bc
- ld a, [hl]
- pop bc
- cp c
- ret nz
- ld a, [wd4ce]
- cp $ff
- ret z
- call Function1ae5
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 5, [hl]
- ret
-; 58b9
-
-Function58b9:: ; 58b9
- push bc
- ld bc, ObjectStructs
- xor a
-.asm_58be
- push af
- call Function1af1
- jr z, .asm_58ca
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 5, [hl]
-
-.asm_58ca
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- pop af
- inc a
- cp $d
- jr nz, .asm_58be
- pop bc
- ret
-; 58d8
-
-Function58d8: ; 58d8
- call Function18de
- ret c
- ld hl, OBJECT_FLAGS
- add hl, bc
- res 5, [hl]
- ret
-; 58e3
-
-Function58e3: ; 58e3
- ld hl, OBJECT_01
- add hl, bc
- ld a, [hl]
- cp $ff
- jp z, Function5903
- push bc
- call GetMapObject
- ld hl, $0004
- add hl, bc
- ld a, [hl]
- pop bc
- ld hl, OBJECT_03
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $0
- ret
-; 5903
-
-Function5903: ; 5903
- call GetSpriteDirection
- rrca
- rrca
- ld e, a
- ld d, 0
- ld hl, .data_591c
- add hl, de
- ld a, [hl]
- ld hl, OBJECT_03
- add hl, bc
- ld [hl], a
- ld hl, OBJECT_09
- add hl, bc
- ld [hl], $0
- ret
-
-.data_591c
- db 6, 7, 8, 9
-; 5920
-
-Function5920:: ; 5920
- ld a, [VramState]
- bit 0, a
- ret z
- xor a
- ld [$ffbd], a
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call Function5991
- call Function593a
- pop af
- ld [hOAMUpdate], a
- ret
-; 593a
-
-Function593a: ; 593a
- ld a, [VramState]
- bit 1, a
- ld b, $a0
- jr z, .asm_5945
- ld b, $70
-
-.asm_5945
- ld a, [$ffbd]
- cp b
- ret nc
- ld l, a
- ld h, $c4
- ld de, OBJECT_04
- ld a, b
- ld c, $a0
-.asm_5952
- ld [hl], c
- add hl, de
- cp l
- jr nz, .asm_5952
- ret
-; 5958
-
-Function5958: ; 5958
- push hl
- push de
- push bc
- ld a, [wd14c]
- ld d, a
- ld a, [wd14d]
- ld e, a
- ld bc, ObjectStructs
- ld a, $d
-
-.asm_5968
- push af
- call Function1af1
- jr z, .asm_597c
-
- ld hl, OBJECT_SPRITE_X
- add hl, bc
- ld a, [hl]
- add d
- ld [hl], a
-
- ld hl, OBJECT_SPRITE_Y
- add hl, bc
- ld a, [hl]
- add e
- ld [hl], a
-
-.asm_597c
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- pop af
- dec a
- jr nz, .asm_5968
-
- xor a
- ld [wd14c], a
- ld [wd14d], a
- pop bc
- pop de
- pop hl
- ret
-; 5991
-
-Function5991: ; 5991
- call Function59a4
- ld c, $30
- call Function59f3
- ld c, $20
- call Function59f3
- ld c, $10
- call Function59f3
- ret
-; 59a4
-
-Function59a4: ; 59a4
- xor a
- ld hl, wc2eb
- ld bc, 13
- call ByteFill
-
- ld d, 0
- ld bc, ObjectStructs
- ld hl, wc2eb
-.loop
- push hl
- call Function1af1
- jr z, .skip
-
- ld hl, OBJECT_FACING
- add hl, bc
- ld a, [hl]
- cp -1
- jr z, .skip
-
-; Define the sprite priority.
- ld e, $10
- ld hl, OBJECT_FLAGS
- add hl, bc
- bit 0, [hl]
- jr nz, .add
- ld e, $20
- bit 1, [hl]
- jr z, .add
- ld e, $30
- jr .add
-
-.skip
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- jr .next
-
-.add
- ld hl, ObjectStruct2 - ObjectStruct1
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- ld a, d
- or e
- ld [hli], a
-
-.next
- inc d
- ld a, d
- cp $d
- jr nz, .loop
- ret
-; 59f3
-
-Function59f3: ; 59f3
- ld hl, wc2eb
-.next
- ld a, [hli]
- ld d, a
- and $f0
- ret z
- cp c
- jr nz, .next
-
- push bc
- push hl
- ld a, d
- and $f
- call Function5ac2
- call Function5a0d
- pop hl
- pop bc
- jr .next
-; 5a0d
-
-Function5a0d: ; 5a0d
- ld hl, OBJECT_SPRITE
- add hl, bc
- ld a, [hl]
- and $7f
- ld [$ffc1], a
-
- xor a
- bit 7, [hl]
- jr nz, .asm_5a1d
- or 8
-.asm_5a1d
-
- ld hl, OBJECT_FLAGS
- add hl, bc
- ld e, [hl]
- bit 7, e
- jr z, .asm_5a28
- or $80
-.asm_5a28
-
- bit 4, e
- jr z, .asm_5a2e
- or $10
-.asm_5a2e
-
- ld hl, OBJECT_PALETTE
- add hl, bc
- ld d, a
- ld a, [hl]
- and 7
- or d
- ld d, a
-
- xor a
- bit 3, e
- jr z, .asm_5a3f
- or $80
-.asm_5a3f
- ld [$ffc2], a
-
- ld hl, OBJECT_SPRITE_X
- add hl, bc
- ld a, [hl]
-
- ld hl, OBJECT_SPRITE_X_OFFSET
- add hl, bc
- add [hl]
-
- add 8
-
- ld e, a
- ld a, [wd14c]
- add e
- ld [$ffbf], a
-
- ld hl, OBJECT_SPRITE_Y
- add hl, bc
- ld a, [hl]
-
- ld hl, OBJECT_SPRITE_Y_OFFSET
- add hl, bc
- add [hl]
-
- add 12
-
- ld e, a
- ld a, [wd14d]
- add e
- ld [$ffc0], a
-
- ld hl, OBJECT_FACING
- add hl, bc
- ld a, [hl]
- cp -1
- jp z, .done
- cp NUM_FACINGS
- jp nc, .done
-
- ld l, a
- ld h, 0
- add hl, hl
- ld bc, Facings
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [$ffbd]
- ld c, a
- ld b, Sprites / $100
- ld a, [hli]
- ld [$ffbe], a
- add c
- cp SpritesEnd % $100
- jr nc, .full
-
-.addsprite
- ld a, [$ffc0]
- add [hl]
- inc hl
-
- ld [bc], a
- inc c
-
- ld a, [$ffbf]
- add [hl]
- inc hl
-
- ld [bc], a
- inc c
-
- ld e, [hl]
- inc hl
-
- ld a, [$ffc1]
- bit 2, e
- jr z, .asm_5aa3
- xor a
-.asm_5aa3
- add [hl]
- inc hl
-
- ld [bc], a
- inc c
-
- ld a, e
- bit 1, a
- jr z, .asm_5aaf
- ld a, [$ffc2]
- or e
-.asm_5aaf
- and $f0
- or d
- ld [bc], a
- inc c
-
- ld a, [$ffbe]
- dec a
- ld [$ffbe], a
- jr nz, .addsprite
-
- ld a, c
- ld [$ffbd], a
-
-.done
- xor a
- ret
-
-.full
- scf
- ret
-; 5ac2
-
-Function5ac2: ; 5ac2
- ld c, a
- ld b, 0
- ld hl, .Addresses
- add hl, bc
- add hl, bc
- ld c, [hl]
- inc hl
- ld b, [hl]
- ret
-; 5ace
-
-.Addresses ; 5ace
- dw PlayerStruct
- dw ObjectStruct1
- dw ObjectStruct2
- dw ObjectStruct3
- dw ObjectStruct4
- dw ObjectStruct5
- dw ObjectStruct6
- dw ObjectStruct7
- dw ObjectStruct8
- dw ObjectStruct9
- dw ObjectStruct10
- dw ObjectStruct11
- dw ObjectStruct12
-; 5ae8
+INCLUDE "engine/map_objects.asm"
Function5ae8: ; 5ae8