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.asm401
1 files changed, 207 insertions, 194 deletions
diff --git a/engine/map_objects.asm b/engine/map_objects.asm
index a53658e60..670eca9a6 100644
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -30,15 +30,15 @@ SpriteMovementData:: ; 4273
db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18
db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19
db SPRITEMOVEFN_FOLLOWNOTEXACT, 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_SHADOW, DOWN, $00, $8e, $01, $00 ; 1b
+ db SPRITEMOVEFN_EMOTE, DOWN, $08, $8e, $02, $00 ; 1c
+ db SPRITEMOVEFN_SCREENSHAKE, DOWN, $00, $82, $00, $00 ; 1d
db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e
db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f
db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20
db SPRITEMOVEFN_STRENGTH, 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_BOULDERDUST, DOWN, $0e, $8e, $01, $00 ; 22
+ db SPRITEMOVEFN_GRASS, DOWN, $0f, $8e, $02, $00 ; 23
db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24
db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25
; 4357
@@ -84,7 +84,7 @@ Function4386: ; 4386
res 6, [hl]
ld a, [XCoord]
ld e, a
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
add 1
@@ -94,7 +94,7 @@ Function4386: ; 4386
jr nc, .ok
ld a, [YCoord]
ld e, a
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
add 1
@@ -110,7 +110,7 @@ Function4386: ; 4386
set 6, [hl]
ld a, [XCoord]
ld e, a
- ld hl, OBJECT_20
+ ld hl, OBJECT_INIT_X
add hl, bc
ld a, [hl]
add 1
@@ -120,7 +120,7 @@ Function4386: ; 4386
jr nc, .ok2
ld a, [YCoord]
ld e, a
- ld hl, OBJECT_21
+ ld hl, OBJECT_INIT_Y
add hl, bc
ld a, [hl]
add 1
@@ -224,7 +224,8 @@ Function4448: ; 4448
; 444d
Function444d: ; 444d
- ld hl, OBJECT_11
+; call [4 * ObjectStructs[ObjInd, OBJECT_ACTION] + de]
+ ld hl, OBJECT_ACTION
add hl, bc
ld a, [hl]
ld l, a
@@ -242,39 +243,39 @@ endr
Pointers445f: ; 445f
dw Function44a3 ; 00
- dw Function44a3 ; 01
- dw Function44b5 ; 02
- dw Function44aa ; 03
- dw Function44c1 ; 04
- dw Function44aa ; 05
- dw Function4508 ; 06
- dw Function44aa ; 07
- dw Function4529 ; 08
- dw Function44aa ; 09
- dw Function4539 ; 0a
- dw Function44a3 ; 0b
- dw Function456e ; 0c
- dw Function456e ; 0d
- dw Function457b ; 0e
- dw Function44a3 ; 0f
- dw Function4582 ; 10
- dw Function4582 ; 11
- dw Function4589 ; 12
- dw Function4589 ; 13
- dw Function4590 ; 14
- dw Function45a4 ; 15
- dw Function45ab ; 16
- dw Function44aa ; 17
- dw Function45be ; 18
- dw Function45be ; 19
- dw Function45c5 ; 1a
- dw Function45c5 ; 1b
- dw Function45da ; 1c
- dw Function44a3 ; 1d
- dw Function45ed ; 1e
- dw Function44a3 ; 1f
- dw Function44e4 ; 20
- dw Function44aa ; 21
+ dw Function44a3 ; 01 (00)
+ dw Function44b5 ; 02 (01)
+ dw Function44aa ; 03 (02)
+ dw Function44c1 ; 04 (03)
+ dw Function44aa ; 05 (04)
+ dw Function4508 ; 06 (05)
+ dw Function44aa ; 07 (06)
+ dw Function4529 ; 08 (07)
+ dw Function44aa ; 09 (08)
+ dw Function4539 ; 0a (09)
+ dw Function44a3 ; 0b (0a)
+ dw Function456e ; 0c (0b)
+ dw Function456e ; 0d (0c)
+ dw Function457b ; 0e (0d)
+ dw Function44a3 ; 0f (0e)
+ dw Function4582 ; 10 (0f)
+ dw Function4582 ; 11 (10)
+ dw Function4589 ; 12 (11)
+ dw Function4589 ; 13 (12)
+ dw Function4590 ; 14 (13)
+ dw Function45a4 ; 15 (14)
+ dw Function45ab ; 16 (15)
+ dw Function44aa ; 17 (16)
+ dw Function45be ; 18 (17)
+ dw Function45be ; 19 (18)
+ dw Function45c5 ; 1a (19)
+ dw Function45c5 ; 1b (1a)
+ dw Function45da ; 1c (1b)
+ dw Function44a3 ; 1d (1c)
+ dw Function45ed ; 1e (1d)
+ dw Function44a3 ; 1f (1e)
+ dw Function44e4 ; 20 (1f)
+ dw Function44aa ; 21 (20)
; 44a3
Function44a3: ; 44a3
@@ -286,7 +287,7 @@ Function44a3: ; 44a3
Function44aa: ; 44aa
call GetSpriteDirection
- or 0
+ or 0 ; useless
ld hl, OBJECT_FACING_STEP
add hl, bc
ld [hl], a
@@ -556,17 +557,17 @@ Function45ed: ; 45ed
Function4600: ; 4600
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld [hl], a
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld [hl], a
@@ -588,17 +589,17 @@ Function4600: ; 4600
Function462a: ; 462a
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld [hl], a
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld [hl], a
@@ -662,7 +663,7 @@ Function467b: ; 467b
rept 3
ld [hli], a
endr
- ld [hl], a
+ ld [hl], a ; OBJECT_30
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
@@ -675,8 +676,8 @@ Function4690: ; 4690
ld [hl], a
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 2, [hl]
- jr nz, .ok
+ bit FIXED_FACING, [hl]
+ jr nz, GetCurTile
rept 2
add a
@@ -685,12 +686,7 @@ endr
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
-
-.ok
- ; fallthrough
-; 46a6
-
-Function46a6: ; 46a6
+GetCurTile: ; 46a6
call GetStepVector
@@ -699,21 +695,21 @@ Function46a6: ; 46a6
ld [hl], a
ld a, d
- call Function4730
- ld hl, OBJECT_NEXT_MAP_X
+ call GetStepVectorSign
+ ld hl, OBJECT_MAP_X
add hl, bc
add [hl]
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld [hl], a
ld d, a
ld a, e
- call Function4730
- ld hl, OBJECT_NEXT_MAP_Y
+ call GetStepVectorSign
+ ld hl, OBJECT_MAP_Y
add hl, bc
add [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld [hl], a
ld e, a
@@ -729,7 +725,7 @@ Function46a6: ; 46a6
ret
; 46d7
-Function46d7: ; 46d7
+AddStepVector: ; 46d7
call GetStepVector
@@ -789,13 +785,15 @@ StepVectors: ; 4700
db 4, 0, 4, 4
; 4730
-Function4730: ; 4730
+GetStepVectorSign: ; 4730
add a
- ret z
+ ret z ; 0 or 128
+
ld a, 1
- ret nc
+ ret nc ; 1 - 127
+
ld a, -1
- ret
+ ret ; 129 - 255
; 4738
Function4738: ; 4738
@@ -804,7 +802,7 @@ Function4738: ; 4738
ld a, [hl]
and %00000011
ld [wd151], a
- call Function46d7
+ call AddStepVector
ld a, [wd14e]
add d
ld [wd14e], a
@@ -849,28 +847,28 @@ RestoreDefaultMovement: ; 4769
ret
; 4780
-ClearObjectStructField27: ; 4780
+ClearObjectMovementByteIndex: ; 4780
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], 0
ret
; 4787
-IncrementObjectStructField27: ; 4787
+IncrementObjectMovementByteIndex: ; 4787
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
inc [hl]
ret
; 478d
-DecrementObjectStructField27: ; 478d
+DecrementObjectMovementByteIndex: ; 478d
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
dec [hl]
ret
; 4793
-JumptoObjectStructField27: ; 4793
+JumptoObjectMovementByteIndex: ; 4793
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld a, [hl]
@@ -893,7 +891,7 @@ IncrementObjectStructField28: ; 47a2
ret
; 47a8
-JumptoObjectStructField28: ; 47a8
+Object28AnonymousJumptable: ; 47a8
; anonymous jumptable
ld hl, OBJECT_28
add hl, bc
@@ -918,10 +916,10 @@ SetValueObjectStructField28: ; 47b6
; 47bc
Function47bc: ; 47bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
push bc
@@ -1011,7 +1009,7 @@ Function47dd: ; 47dd
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
- jp Function4b1d
+ jp RandomStepDuration_Slow
; 4851
.RandomSpin2: ; 4851
@@ -1029,13 +1027,13 @@ Function47dd: ; 47dd
.keep
ld [hl], a
- jp Function4b26
+ jp RandomStepDuration_Fast
; 4869
.Standing: ; 4869
call Function462a
call Function467b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 1
ld hl, OBJECT_09
@@ -1091,7 +1089,7 @@ Function47dd: ; 47dd
; 48ac
.Strength: ; 48ac
- call JumptoObjectStructField27
+ call JumptoObjectMovementByteIndex
dw .Strength_Start
dw .Strength_Stop
; 48b3
@@ -1109,7 +1107,7 @@ Function47dd: ; 47dd
res 2, [hl]
jr z, .ok
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
and %00000011
@@ -1120,7 +1118,7 @@ Function47dd: ; 47dd
ld de, SFX_STRENGTH
call PlaySFX
- call Function5538
+ call SpawnStrengthBoulderDust
call Function463f
ld hl, OBJECT_09
add hl, bc
@@ -1137,7 +1135,7 @@ Function47dd: ; 47dd
ret
.on_pit
- call IncrementObjectStructField27
+ call IncrementObjectMovementByteIndex
; fallthrough
; 48f8
@@ -1149,15 +1147,15 @@ Function47dd: ; 47dd
; 48ff
.FollowNotExact: ; 48ff
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
@@ -1169,7 +1167,7 @@ Function47dd: ; 47dd
cp STANDING
jr z, .standing
- ld hl, OBJECT_NEXT_MAP_X
+ ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
cp d
@@ -1183,7 +1181,7 @@ Function47dd: ; 47dd
jr .done
.equal
- ld hl, OBJECT_NEXT_MAP_Y
+ ld hl, OBJECT_MAP_Y
add hl, bc
ld a, [hl]
cp e
@@ -1210,7 +1208,7 @@ Function47dd: ; 47dd
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 1
ret
@@ -1221,7 +1219,7 @@ Function47dd: ; 47dd
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 9
ld hl, OBJECT_09
@@ -1235,7 +1233,7 @@ Function47dd: ; 47dd
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 10
ld hl, OBJECT_09
@@ -1245,14 +1243,14 @@ Function47dd: ; 47dd
; 4984
.MovementSpinCounterclockwise: ; 4984
- call JumptoObjectStructField27
+ call JumptoObjectMovementByteIndex
dw .MovementSpinInit
dw .MovementSpinRepeat
dw .MovementSpinTurnLeft
; 498d
.MovementSpinClockwise: ; 498d
- call JumptoObjectStructField27
+ call JumptoObjectMovementByteIndex
dw .MovementSpinInit
dw .MovementSpinRepeat
dw .MovementSpinTurnRight
@@ -1260,25 +1258,25 @@ Function47dd: ; 47dd
.MovementSpinInit: ; 4996
call Function467b
- call IncrementObjectStructField27
+ call IncrementObjectMovementByteIndex
; fallthrough
; 499c
.MovementSpinRepeat: ; 499c
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 1
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
- ld a, $10
+ ld a, 16
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, OBJECT_09
add hl, bc
ld [hl], OBJECT_09_VALUE_03
- call IncrementObjectStructField27
+ call IncrementObjectMovementByteIndex
ret
; 49b8
@@ -1316,13 +1314,13 @@ Function47dd: ; 47dd
ld a, [hl]
pop hl
ld [hl], a
- call DecrementObjectStructField27
+ call DecrementObjectMovementByteIndex
ret
; 49e5
.Movement13: ; 49e5
call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], $7
ld hl, OBJECT_STEP_DURATION
@@ -1361,7 +1359,7 @@ Function47dd: ; 47dd
.Movement14: ; 4a21
call Function467b
call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 8
ld hl, OBJECT_STEP_DURATION
@@ -1382,7 +1380,7 @@ Function47dd: ; 47dd
.Movement1a: ; 4a46
call Function467b
call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], $e
ld hl, OBJECT_STEP_DURATION
@@ -1429,7 +1427,7 @@ endr
.Movement1b: ; 4a89
call Function467b
call ._Movement13_14_1a_1b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], $f
ld hl, OBJECT_STEP_DURATION
@@ -1446,7 +1444,7 @@ endr
; 4aa8
._Movement13_14_1a_1b: ; 4aa8
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
push bc
@@ -1464,10 +1462,10 @@ endr
.Movement17: ; 4abc
call Function467b
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 0
- ld hl, OBJECT_32
+ ld hl, OBJECT_RANGE
add hl, bc
ld a, [hl]
call ._Movement17
@@ -1506,7 +1504,7 @@ endr
call Function6ec1
jr c, Function4b17
call Function463f
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 2
ld hl, wd4cf
@@ -1530,28 +1528,28 @@ Function4b17: ; 4b17
; fallthrough
; 4b1d
-Function4b1d: ; 4b1d
+RandomStepDuration_Slow: ; 4b1d
call Random
ld a, [hRandomAdd]
and %01111111
- jr Function4b2d
+ jr SetRandomStepDuration
; 4b26
-Function4b26: ; 4b26
+RandomStepDuration_Fast: ; 4b26
call Random
ld a, [hRandomAdd]
and %00011111
; fallthrough
; 4b2d
-Function4b2d: ; 4b2d
+SetRandomStepDuration: ; 4b2d
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 1
ld hl, OBJECT_09
@@ -1602,20 +1600,21 @@ Function4b79: ; 4b79
; 4b86
Function4b86: ; 4b86
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4b8d
dw Function4ba9
; 4b8d
Function4b8d: ; 4b8d
- call Function46d7
+ call AddStepVector
call UpdateJumpPosition
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
call Function4600
- call Function46a6
+ call GetCurTile
ld hl, OBJECT_FLAGS2
add hl, bc
res 3, [hl]
@@ -1624,7 +1623,7 @@ Function4b8d: ; 4b8d
; 4ba9
Function4ba9: ; 4ba9
- call Function46d7
+ call AddStepVector
call UpdateJumpPosition
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -1638,7 +1637,8 @@ Function4ba9: ; 4ba9
; 4bbf
Function4bbf: ; 4bbf
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4bca
dw Function4bd2
dw Function4bf2
@@ -1671,7 +1671,7 @@ Function4bd2: ; 4bd2
; 4bf2
Function4bf2: ; 4bf2
- call Function46a6
+ call GetCurTile
ld hl, wd150
set 7, [hl]
call IncrementObjectStructField28
@@ -1695,7 +1695,8 @@ Function4bfd: ; 4bfd
; 4c18
Function4c18: ; 4c18
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4c23
dw Function4c32
dw Function4c42
@@ -1714,7 +1715,7 @@ Function4c23: ; 4c23
; 4c32
Function4c32: ; 4c32
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 4
ld hl, OBJECT_STEP_DURATION
@@ -1743,7 +1744,7 @@ Function4c42: ; 4c42
; 4c5d
Function4c5d: ; 4c5d
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 4
ld hl, OBJECT_31
@@ -1771,7 +1772,8 @@ Function4c5d: ; 4c5d
; 4c89
Function4c89: ; 4c89
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4c9a
dw Function4caa
dw Function4cb3
@@ -1782,7 +1784,7 @@ Function4c89: ; 4c89
; 4c9a
Function4c9a: ; 4c9a
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 0
ld hl, OBJECT_STEP_DURATION
@@ -1816,7 +1818,7 @@ Function4cb3: ; 4cb3
; 4cc9
Function4cc9: ; 4cc9
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 4
ld hl, OBJECT_31
@@ -1847,7 +1849,7 @@ Function4ceb: ; 4ceb
; 4cf5
Function4cf5: ; 4cf5
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 4
ld hl, OBJECT_STEP_DURATION
@@ -1870,7 +1872,8 @@ Function4d01: ; 4d01
; 4d14
Function4d14: ; 4d14
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4d1f
dw Function4d2e
dw Function4d4f
@@ -1878,7 +1881,7 @@ Function4d14: ; 4d14
; 4d1f
Function4d1f: ; 4d1f
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 0
ld hl, OBJECT_STEP_DURATION
@@ -1893,7 +1896,7 @@ Function4d2e: ; 4d2e
add hl, bc
dec [hl]
ret nz
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], 2
ld hl, OBJECT_12
@@ -1943,7 +1946,8 @@ Function4d6b: ; 4d6b
; 4d7e
Function4d7e: ; 4d7e
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4d85
dw Function4d94
; 4d85
@@ -1993,7 +1997,7 @@ Function4db5: ; 4db5
ld a, 0
.yes
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], a
ret
@@ -2009,7 +2013,7 @@ Function4dc8: ; 4dc8
ld a, 5
.yes
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], a
jp Function4b79
@@ -2052,7 +2056,8 @@ Function4dff: ; 4dff
; 4e0c
Function4e0c: ; 4e0c
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4e13
dw Function4e21
; 4e13
@@ -2077,7 +2082,7 @@ Function4e21: ; 4e21
Function4e2b: ; 4e2b
call Function4fb2
- call Function46d7
+ call AddStepVector
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
@@ -2093,18 +2098,19 @@ Function4e2b: ; 4e2b
; 4e47
Function4e47: ; 4e47
- call Function46d7
+ call AddStepVector
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
call Function4600
- jp Function4b1d
+ jp RandomStepDuration_Slow
; 4e56
Function4e56: ; 4e56
; AnimateStep?
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4e5d
dw Function4e65
; 4e5d
@@ -2122,6 +2128,7 @@ Function4e65: ; 4e65
add hl, bc
dec [hl]
ret nz
+
ld hl, wd150
set 6, [hl]
call Function4600
@@ -2135,7 +2142,8 @@ Function4e65: ; 4e65
; 4e83
Function4e83: ; 4e83
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4e8e
dw Function4ea4
dw Function4ead
@@ -2192,16 +2200,16 @@ Function4ec0: ; 4ec0
; 4ecd
Function4ecd: ; 4ecd
- call Function46d7
+ call AddStepVector
ld hl, OBJECT_STEP_DURATION
add hl, bc
dec [hl]
ret nz
push bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
ld hl, OBJECT_MAP_OBJECT_INDEX
@@ -2259,7 +2267,8 @@ Function4f04: ; 4f04
; 4f33
Function4f33: ; 4f33
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4f3a
dw Function4f43
; 4f3a
@@ -2312,24 +2321,26 @@ Function4f6c: ; 4f6c
; 4f77
Function4f77: ; 4f77
- call JumptoObjectStructField28 ; ????
+ call Object28AnonymousJumptable ; ????
; 4f7a
Function4f7a: ; 4f7a
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4f83
dw Function4f83
dw Function4f83
; 4f83
Function4f83: ; 4f83
- call JumptoObjectStructField28
+ call Object28AnonymousJumptable
+; anonymous jumptable
dw Function4f8a
dw Function4f99
; 4f8a
Function4f8a: ; 4f8a
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, bc
ld [hl], $10
ld hl, OBJECT_STEP_DURATION
@@ -2602,79 +2613,80 @@ Function550a: ; 550a
ret
; 5529
-Function5529: ; 5529
+SpawnShadow: ; 5529
push bc
- ld de, .data_5535
- call Function55b9
- call Function55ac
+ ld de, .ShadowObject
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
-.data_5535
- db $00, $05, $1b
+.ShadowObject
+ ; vtile, palette, movement
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SHADOW
; 5538
-Function5538: ; 5538
+SpawnStrengthBoulderDust: ; 5538
push bc
- ld de, .data_5544
- call Function55b9
- call Function55ac
+ ld de, .BoulderDustObject
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
-.data_5544
- db $00, $05, $22
+.BoulderDustObject
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_BOULDERDUST
; 5547
-Function5547: ; 5547
+SpawnEmote: ; 5547
push bc
- ld de, .data_5553
- call Function55b9
- call Function55ac
+ ld de, .EmoteObject
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
-.data_5553
- db $00, $05, $1c
+.EmoteObject
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_EMOTE
; 5556
-Function5556: ; 5556
+ShakeGrass: ; 5556
push bc
ld de, .data_5562
- call Function55b9
- call Function55ac
+ call CopyTempObjectData
+ call InitTempObject
pop bc
ret
.data_5562
- db $00, $06, $23
+ db $00, PAL_OW_TREE, SPRITEMOVEDATA_GRASS
; 5565
-Function5565: ; 5565
+ShakeScreen: ; 5565
push bc
push af
- ld de, .data_5576
- call Function55b9
+ ld de, .ScreenShakeObject
+ call CopyTempObjectData
pop af
- ld [wc2f5], a
- call Function55ac
+ ld [wTempObjectCopyRange], a
+ call InitTempObject
pop bc
ret
-.data_5576
- db $00, $05, $1d
+.ScreenShakeObject
+ db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SCREENSHAKE
; 5579
-Function5579: ; 5579
+DespawnEmote: ; 5579
push bc
ld a, [hMapObjectIndexBuffer]
ld c, a
- call Function5582
+ call .DeleteEmote
pop bc
ret
; 5582
-Function5582: ; 5582
+.DeleteEmote: ; 5582
ld de, ObjectStructs
ld a, NUM_OBJECT_STRUCTS
.loop
@@ -2705,20 +2717,21 @@ Function5582: ; 5582
ret
; 55ac
-Function55ac: ; 55ac
+InitTempObject: ; 55ac
call FindFirstEmptyObjectStruct
ret nc
ld d, h
ld e, l
- callba Function8286
+ callba CopyTempObjectToObjectStruct
ret
; 55b9
-Function55b9: ; 55b9
-; load into wc2f0:
-; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1
- ld hl, wc2f0
+CopyTempObjectData: ; 55b9
+; load into wTempObjectCopy:
+; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [NextMapX], [NextMapY], -1
+; This spawns the object at the same place as whichever object is loaded into bc.
+ ld hl, wTempObjectCopyMapObjectIndex
ld [hl], -1
inc hl
ld [hl], -1
@@ -2737,10 +2750,10 @@ Function55b9: ; 55b9
ld [hli], a
push hl
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
pop hl
@@ -2872,10 +2885,10 @@ Function5680: ; 5680
Function5688: ; 5688
push bc
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
call GetCoordTile
@@ -2888,10 +2901,10 @@ Function5688: ; 5688
; 56a3
Function56a3: ; 56a3
- ld hl, OBJECT_MAP_X
+ ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
- ld hl, OBJECT_MAP_Y
+ ld hl, OBJECT_NEXT_MAP_Y
add hl, bc
ld e, [hl]
inc d
@@ -3612,7 +3625,7 @@ Function59f3: ; 59f3
ld hl, OBJECT_FACING_STEP
add hl, bc
ld a, [hl]
- cp -1
+ cp STANDING
jp z, .done
cp NUM_FACINGS
jp nc, .done