summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2018-06-09 17:45:02 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2018-06-09 17:45:02 -0400
commit886ecea86b9257ba2755b4718ede90ee18dae96e (patch)
tree0ef5c492aad3b2954daeee335aca9bef8f72f149
parent32b7db0e57f73b855aaba09b946c92dcc3f5fe49 (diff)
Disassembly of home/map_objects.asm
-rw-r--r--constants.asm1
-rw-r--r--constants/map_object_constants.asm72
-rw-r--r--home/map_objects.asm676
-rw-r--r--macros/wram.asm10
-rw-r--r--shim.sym14
-rw-r--r--wram.asm45
6 files changed, 798 insertions, 20 deletions
diff --git a/constants.asm b/constants.asm
index c141901..66383ba 100644
--- a/constants.asm
+++ b/constants.asm
@@ -32,3 +32,4 @@ INCLUDE "constants/misc_constants.asm"
INCLUDE "constants/battle_anim_constants.asm"
INCLUDE "constants/menu_constants.asm"
INCLUDE "constants/sgb_constants.asm"
+INCLUDE "constants/map_object_constants.asm"
diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm
new file mode 100644
index 0000000..c9bce93
--- /dev/null
+++ b/constants/map_object_constants.asm
@@ -0,0 +1,72 @@
+ rsreset
+OBJECT_SPRITE rb 1 ; 00
+OBJECT_MAP_OBJECT_INDEX rb 1 ; 01
+OBJECT_SPRITE_TILE rb 1 ; 02
+OBJECT_MOVEMENTTYPE rb 1 ; 03
+OBJECT_FLAGS rw 1 ; 04
+OBJECT_PALETTE rb 1 ; 06
+OBJECT_DIRECTION_WALKING rb 1 ; 07
+OBJECT_FACING rb 1 ; 08
+OBJECT_STEP_TYPE rb 1 ; 09
+OBJECT_STEP_DURATION rb 1 ; 0a
+OBJECT_ACTION rb 1 ; 0b
+OBJECT_STEP_FRAME rb 1 ; 0c
+OBJECT_FACING_STEP rb 1 ; 0d
+OBJECT_NEXT_TILE rb 1 ; 0e
+OBJECT_STANDING_TILE rb 1 ; 0f
+OBJECT_NEXT_MAP_X rb 1 ; 10
+OBJECT_NEXT_MAP_Y rb 1 ; 11
+OBJECT_MAP_X rb 1 ; 12
+OBJECT_MAP_Y rb 1 ; 13
+OBJECT_INIT_X rb 1 ; 14
+OBJECT_INIT_Y rb 1 ; 15
+OBJECT_RADIUS rb 1 ; 16
+OBJECT_SPRITE_X rb 1 ; 17
+OBJECT_SPRITE_Y rb 1 ; 18
+OBJECT_SPRITE_X_OFFSET rb 1 ; 19
+OBJECT_SPRITE_Y_OFFSET rb 1 ; 1a
+OBJECT_MOVEMENT_BYTE_INDEX rb 1 ; 1b
+OBJECT_1C rb 1 ; 1c
+OBJECT_1D rb 1 ; 1d
+OBJECT_1E rb 1 ; 1e
+OBJECT_1F rb 1 ; 1f
+OBJECT_RANGE rb 1 ; 20
+OBJECT_DATA rb 7 ; 21
+OBJECT_LENGTH SET _RS
+
+ rsreset
+CMDQUEUE_UNK0 rb 16
+CMDQUEUE_ENTRY_SIZE SET _RS
+
+ rsreset
+MAPOBJECT_OBJECT_STRUCT_ID rb 1 ; 0
+MAPOBJECT_SPRITE rb 1 ; 1
+MAPOBJECT_Y_COORD rb 1 ; 2
+MAPOBJECT_X_COORD rb 1 ; 3
+MAPOBJECT_MOVEMENT rb 1 ; 4
+MAPOBJECT_RADIUS rb 1 ; 5
+MAPOBJECT_HOUR rb 1 ; 6
+MAPOBJECT_TIMEOFDAY rb 1 ; 7
+MAPOBJECT_COLOR rb 1 ; 8
+MAPOBJECT_RANGE rb 1 ; 9
+MAPOBJECT_SCRIPT_POINTER rb 1 ; a
+MAPOBJECT_POINTER_HI rb 1 ; b
+MAPOBJECT_EVENT_FLAG rw 1
+MAPOBJECT_E rb 1 ; unused
+MAPOBJECT_F rb 1 ; unused
+MAP_OBJECT_LENGTH SET _RS
+
+ rsreset
+MAPOBJECTTEMPLATE_SPRITE rb 1 ; 0
+MAPOBJECTTEMPLATE_Y_COORD rb 1 ; 1
+MAPOBJECTTEMPLATE_X_COORD rb 1 ; 2
+MAPOBJECTTEMPLATE_MOVEMENT rb 1 ; 3
+MAPOBJECTTEMPLATE_RADIUS rb 1 ; 4
+MAPOBJECTTEMPLATE_HOUR rb 1 ; 5
+MAPOBJECTTEMPLATE_TIMEOFDAY rb 1 ; 6
+MAPOBJECTTEMPLATE_COLOR rb 1 ; 7
+MAPOBJECTTEMPLATE_RANGE rb 1 ; 8
+MAPOBJECTTEMPLATE_SCRIPT_POINTER rb 1 ; 9
+MAPOBJECTTEMPLATE_POINTER_HI rb 1 ; a
+MAPOBJECTTEMPLATE_EVENT_FLAG rw 1 ; b
+MAP_OBJECT_TEMPLATE_LENGTH SET _RS
diff --git a/home/map_objects.asm b/home/map_objects.asm
new file mode 100644
index 0000000..70cba50
--- /dev/null
+++ b/home/map_objects.asm
@@ -0,0 +1,676 @@
+include "constants.asm"
+
+SECTION "Map Object Related Functions", ROM0 [$15b5]
+
+Function15b5:: ; 15b5
+ callab Function8000
+ ret
+
+GetMapObject:: ; 00:15be
+ ld hl, wMapObjects
+ ld bc, MAP_OBJECT_LENGTH
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ret
+
+GetMapObjectAttrPtr:: ; 15ca
+ call GetMapObject
+ ld d, $0
+ add hl, de
+ ret
+
+Function15d1:: ; 15d1
+ ldh [hMapObjectIndexBuffer], a
+ call GetMapObject
+ call Function40eb
+ ret
+
+Function15da::
+ ldh [hMapObjectIndexBuffer], a
+ callab Function8131
+ ldh a, [hMapObjectIndexBuffer]
+ call GetMapObject
+ call Function40eb
+ ret
+
+Function15ed::
+ ldh [hMapObjectIndexBuffer], a
+ call GetMapObject
+ ld a, $0
+ ldh [hObjectStructIndexBuffer], a
+ ld de, wObjectStructs
+ callab Function813d
+ ret
+
+Function1602::
+ ldh [hMapObjectIndexBuffer], a
+ call GetMapObject
+ ld a, $2
+ ldh [hObjectStructIndexBuffer], a
+ ld de, wObject1Struct
+ callab Function813d
+ ret
+
+Function1617:: ; 00:1617
+ ldh [hMapObjectIndexBuffer], a
+ call GetMapObject
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [hl], $ff
+ push af
+ ld d, a
+ ld a, [wObjectFollow_Leader]
+ cp d
+ jr nz, .asm_1633
+ ld a, $ff
+ ld [wObjectFollow_Leader], a
+.asm_1633: ; 00:1633
+ ld a, [wObjectFollow_Follower]
+ cp d
+ jr nz, .asm_163e
+ ld a, $0
+ ld [wObjectFollow_Follower], a
+.asm_163e: ; 00:163e
+ pop af
+ call GetObjectStruct
+ ld bc, OBJECT_LENGTH
+ xor a
+ call ByteFill
+ ret
+
+Function164a::
+ call Function1617
+ callab Function8125
+ ret
+
+Function1656::
+ push hl
+ call GetMapObject
+ ld d, b
+ ld e, c
+ ld a, $ff
+ ld [de], a
+ inc de
+ pop hl
+ ld bc, MAP_OBJECT_TEMPLATE_LENGTH
+ call CopyBytes
+ ret
+
+Function1668::
+ call GetMapObject
+ ld a, [wXCoord]
+ add $4
+ ld hl, MAPOBJECT_X_COORD
+ add hl, bc
+ ld [hl], a
+ ld a, [wYCoord]
+ add $4
+ ld hl, MAPOBJECT_Y_COORD
+ add hl, bc
+ ld [hl], a
+ ret
+
+Function1680::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_NEXT_MAP_X
+ add hl, bc
+ ld d, [hl]
+ ld hl, OBJECT_NEXT_MAP_Y
+ add hl, bc
+ ld e, [hl]
+ ldh a, [hMapObjectIndexBuffer]
+ call GetMapObject
+ ld hl, MAPOBJECT_X_COORD
+ add hl, bc
+ ld [hl], d
+ ld hl, MAPOBJECT_Y_COORD
+ add hl, bc
+ ld [hl], e
+ and a
+ ret
+
+Function169f::
+ call GetMapObject
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld [hl], $ff
+ inc hl
+ ld bc, MAP_OBJECT_LENGTH - 1
+ xor a
+ call ByteFill
+ pop af
+ cp $ff
+ ret z
+ cp $a
+ ret nc
+ ld b, a
+ ld a, [wObjectFollow_Leader]
+ cp b
+ jr nz, .asm_16c5
+ ld a, $ff
+ ld [wObjectFollow_Leader], a
+.asm_16c5: ; 00:16c5
+ ld a, b
+ call GetObjectStruct
+ ld bc, OBJECT_LENGTH
+ xor a
+ call ByteFill
+ ret
+
+LoadMovementDataPointer::
+ ld [wMovementObject], a
+ ldh a, [hROMBank]
+ ld [wMovementDataBank], a
+ ld a, l
+ ld [wMovementDataAddr], a
+ ld a, h
+ ld [wMovementDataAddr + 1], a
+ ld a, [wMovementObject]
+ call CheckObjectVisibility
+ ret c
+ ld hl, $3
+ add hl, bc
+ ld [hl], $19
+ ld hl, $8
+ add hl, bc
+ ld [hl], $0
+ ld hl, wVramState
+ set 7, [hl]
+ and a
+ ret
+
+Function16fb::
+ ld [wMovementObject], a
+ ldh a, [hROMBank]
+ ld [wMovementDataBank], a
+ ld a, l
+ ld [wMovementDataAddr], a
+ ld a, h
+ ld [wMovementDataAddr + 1], a
+ ld a, [wMovementObject]
+ call CheckObjectVisibility
+ jr c, .asm_171f
+ ld hl, OBJECT_MOVEMENTTYPE
+ add hl, bc
+ ld [hl], $19
+ ld hl, OBJECT_FACING
+ add hl, bc
+ ld [hl], $0
+.asm_171f: ; 00:171f
+ ret
+
+CheckObjectVisibility:: ; 00:1720
+ ldh [hMapObjectIndexBuffer], a
+ call GetMapObject
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_1735
+ ldh [hObjectStructIndexBuffer], a
+ call GetObjectStruct
+ and a
+ ret
+
+.asm_1735: ; 00:1735
+ scf
+ ret
+
+PushToCmdQueue:: ; 1737
+ push de
+ call GetCmdQueueEmptySlot
+ pop de
+ ret c
+ ld b, h
+ ld c, l
+ ld a, [de]
+ inc de
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ ld a, [de]
+ inc de
+ ld hl, $2
+ add hl, bc
+ ld [hl], a
+ ld a, [de]
+ inc de
+ ld hl, $3
+ add hl, bc
+ ld [hl], a
+ ld a, [de]
+ inc de
+ ld hl, $d
+ add hl, bc
+ ld [hl], a
+ ld a, [de]
+ inc de
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ld a, [de]
+ inc de
+ ld hl, $f
+ add hl, bc
+ ld [hl], a
+ ldh a, [hMapObjectIndexBuffer]
+ inc a
+ ld hl, $0
+ add hl, bc
+ ld [hl], a
+ push bc
+ dec a
+ call GetObjectStruct
+ ld d, b
+ ld e, c
+ pop bc
+ ld hl, $18
+ add hl, de
+ ld a, [hl]
+ ld hl, $4
+ add hl, bc
+ ld [hl], a
+ ld hl, $19
+ add hl, de
+ ld a, [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], a
+ ret
+
+GetCmdQueueEmptySlot:: ; 00:178e
+ ld hl, wCmdQueue
+ ld de, CMDQUEUE_ENTRY_SIZE
+ ld a, 1
+.asm_1796: ; 00:1796
+ ldh [hObjectStructIndexBuffer], a
+ ld a, [hl]
+ and a
+ jr z, .asm_17a6
+ add hl, de
+ ldh a, [hObjectStructIndexBuffer]
+ inc a
+ cp 4 + 1
+ jr nz, .asm_1796
+ scf
+ ret
+
+.asm_17a6: ; 00:17a6
+ xor a
+ ret
+
+UpdateSprites:: ; 00:17a8
+ ld a, [wVramState]
+ bit 0, a
+ ret z
+ callab Function5007
+ callab Function5190
+ ret
+
+GetObjectStruct:: ; 00:17bf
+ ld bc, $28
+ ld hl, wObjectStructs
+ call AddNTimes
+ ld b, h
+ ld c, l
+ ret
+
+Function17cb::
+ add $10
+ ld e, a
+ ldh a, [hROMBank]
+ push af
+ ld a, BANK(Function862e)
+ call Bankswitch
+ call Function862e
+ pop af
+ call Bankswitch
+ ret
+
+Function17de::
+ push hl
+ push bc
+ ld c, a
+ ld b, $ff
+ ld hl, .Data
+.asm_17e6: ; 00:17e6
+ ld a, [hli]
+ cp b
+ jr z, .asm_17ee
+ cp c
+ jr nz, .asm_17e6
+ scf
+.asm_17ee: ; 00:17ee
+ pop bc
+ pop hl
+ ret
+
+.Data: ; 00:17f1
+ db $51, $55, $56, $57, $58, $5a, $5b, $ff
+
+Function17f9::
+ call GetMapObject
+ ld hl, $0
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ call GetObjectStruct
+ push bc
+ call Function1828
+ pop bc
+ ld hl, $5
+ add hl, bc
+ res 5, [hl]
+ ret
+
+Function1813::
+ call GetMapObject
+ ld hl, $0
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ call GetObjectStruct
+ ld hl, $5
+ add hl, bc
+ set 5, [hl]
+ ret
+
+Function1828:: ; 00:1828
+ ld bc, wObjectStructs
+ xor a
+.asm_182c: ; 00:182c
+ push af
+ ld hl, OBJECT_SPRITE
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_183b
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ set 5, [hl]
+.asm_183b: ; 00:183b
+ ld hl, OBJECT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ inc a
+ cp 10
+ jr nz, .asm_182c
+ ret
+
+Function1848::
+ push bc
+ ld bc, wObjectStructs
+ xor a
+.asm_184d: ; 00:184d
+ push af
+ ld hl, OBJECT_SPRITE
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_185c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ res 5, [hl]
+.asm_185c: ; 00:185c
+ ld hl, OBJECT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ inc a
+ cp 10
+ jr nz, .asm_184d
+ pop bc
+ ret
+
+Function186a::
+ call GetMapObject
+ ld hl, $0
+ add hl, bc
+ ld a, [hl]
+ cp $ff
+ ret z
+ call GetObjectStruct
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ res 5, [hl]
+ ret
+
+Function187f::
+ xor a
+.asm_1880: ; 00:1880
+ push af
+ push hl
+ ld b, a
+ ldh a, [hROMBank]
+ push af
+ ld c, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, c
+ call Bankswitch
+ ld a, b
+ call ._hl_
+ pop af
+ call Bankswitch
+ pop hl
+ pop af
+ inc a
+ cp 16
+ jr nz, .asm_1880
+ ret
+
+._hl_: ; 00:189f
+ jp hl
+
+Function18a0::
+ ld a, [wcb70]
+ and a
+ ret z
+ ldh a, [hROMBank]
+ push af
+ ld a, BANK(Function83e8)
+ call Bankswitch
+ call Function83e8
+ pop af
+ call Bankswitch
+ ret
+
+Function18b4::
+ ld bc, wPlayerStruct
+ ld hl, OBJECT_FLAGS
+ add hl, bc
+ set 3, [hl]
+ set 2, [hl]
+ set 1, [hl]
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ set 5, [hl]
+ call Function18e5
+ ret
+
+Function18cc::
+ ld hl, wPlayerFlags
+ res 3, [hl]
+ res 2, [hl]
+ res 1, [hl]
+ ld hl, wPlayerFlags + 1
+ res 5, [hl]
+ ld hl, wPlayerMovementType
+ ld [hl], $10
+ ld hl, wPlayerDirection
+ ld [hl], $0
+ ret
+
+Function18e5:: ; 00:18e5
+ ld hl, OBJECT_DIRECTION_WALKING
+ add hl, bc
+ ld a, [hl]
+ srl a
+ srl a
+ and $3
+ ld e, a
+ ld d, $0
+ ld hl, .Data
+ add hl, de
+ ld a, [hl]
+ ld hl, OBJECT_MOVEMENTTYPE
+ add hl, bc
+ ld [hl], a
+ ld hl, OBJECT_FACING
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.Data:
+ db $05, $06, $07, $08
+
+Function1908::
+ call CheckObjectVisibility
+ ret c
+ push bc
+ call Function191d
+ pop bc
+ ld hl, OBJECT_FLAGS
+ add hl, bc
+ set 7, [hl]
+ ldh a, [hObjectStructIndexBuffer]
+ ld [wCenteredObject], a
+ ret
+
+Function191d:: ; 00:191d
+ ld a, [wCenteredObject]
+ cp $ff
+ ret z
+ call GetObjectStruct
+ ld hl, OBJECT_FLAGS
+ add hl, bc
+ res 7, [hl]
+ ld a, $ff
+ ld [wCenteredObject], a
+ ret
+
+; 1932
+
+StartFollow::
+ push bc
+ ld a, b
+ call SetLeaderIfVisible
+ pop bc
+ ld a, c
+ call SetFollowerIfVisible
+ callab QueueFollowerFirstStep
+ ret
+
+SetLeaderIfVisible:: ; 00:1945
+ call CheckObjectVisibility
+ ret c
+ ldh a, [hObjectStructIndexBuffer]
+ ld [wObjectFollow_Leader], a
+ ret
+
+ResetLeader::
+ xor a
+ ld [wObjectFollow_Leader], a
+ ret
+
+SetFollowerIfVisible:: ; 00:1954
+ push af
+ call ResetFollower
+ pop af
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_MOVEMENTTYPE
+ add hl, bc
+ ld [hl], $18
+ ld hl, OBJECT_FACING
+ add hl, bc
+ ld [hl], $0
+ ldh a, [hObjectStructIndexBuffer]
+ ld [wObjectFollow_Follower], a
+ ret
+
+ResetFollower:: ; 00:196f
+ ld a, [wObjectFollow_Follower]
+ and a
+ ret z
+ cp $ff
+ ret z
+ call GetObjectStruct
+ call Function18e5
+ ret
+
+Function197e::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ res 0, [hl]
+ ret
+
+Function1989::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ set 0, [hl]
+ ret
+
+Function1994::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ res 4, [hl]
+ ret
+
+Function199f::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ set 4, [hl]
+ ret
+
+Function19aa::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ set 7, [hl]
+ ret
+
+Function19b5::
+ call CheckObjectVisibility
+ ret c
+ ld hl, OBJECT_FLAGS + 1
+ add hl, bc
+ res 7, [hl]
+ ret
+
+Function19c0::
+ push de
+ call CheckObjectVisibility
+ pop de
+ ret c
+ ld a, d
+ add a
+ add a
+ and $c
+ ld hl, OBJECT_DIRECTION_WALKING
+ add hl, bc
+ ld [hl], a
+ ret
diff --git a/macros/wram.asm b/macros/wram.asm
index 77fe153..96cf5e8 100644
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -371,3 +371,13 @@ warp_struct: MACRO
\1MapGroup:: ds 1
\1MapNumber:: ds 1
ENDM
+
+ptrba: MACRO
+\1Bank:: db
+\1Addr:: dw
+ENDM
+
+ptrab: MACRO
+\1Addr:: dw
+\1Bank:: db
+ENDM
diff --git a/shim.sym b/shim.sym
index 184e93c..f1b9b5a 100644
--- a/shim.sym
+++ b/shim.sym
@@ -1,8 +1,4 @@
; ROM0
-00:15BE GetMapObject
-00:1720 CheckObjectVisibility
-00:17A8 UpdateSprites
-00:17BF GetObjectStruct
00:1A7C Function1a7c
00:202C Function202c
00:2117 Function2117
@@ -33,8 +29,10 @@
00:3E2E GetMapMusic.unk_3E2E
00:3E32 Unk_3E32
-
01:4031 Function4031
+01:40EB Function40eb
+01:5007 Function5007
+01:5190 Function5190
01:53CC MainMenu
01:5D27 Function5d27
01:6114 TitleScreenInputAndTimeout
@@ -46,6 +44,12 @@
02:4000 Function8000
02:4098 _InitializeVisibleSprites
+02:4125 Function8125
+02:4131 Function8131
+02:413D Function813d
+02:43E8 Function83e8
+02:45DF QueueFollowerFirstStep
+02:462E Function862e
02:4786 Function8786
02:4856 DecompTownMapTilemap
02:48DA DecompTownMapTilemap.tilemap
diff --git a/wram.asm b/wram.asm
index 08c0631..24be477 100644
--- a/wram.asm
+++ b/wram.asm
@@ -229,12 +229,18 @@ wVBCopyDoubleSize:: ds 1 ; cb67
wVBCopyDoubleSrc:: ds 2 ; cb68
wVBCopyDoubleDst:: ds 2 ; cb6a
-SECTION "CB71", WRAM0[$CB71]
+SECTION "CB71", WRAM0[$CB70]
+
+wcb70:: db
wVBCopyFarSize:: ds 1 ; cb71
wVBCopyFarSrc:: ds 2 ; cb72
wVBCopyFarDst:: ds 2 ; cb74
wVBCopyFarSrcBank:: ds 1 ; cb76
+ db
+
+wMovementObject:: db ; cb78
+ ptrba wMovementData ; cb79
SECTION "Collision buffer", WRAM0[$CB90]
@@ -541,22 +547,31 @@ wObjectFollow_Leader:: ; ce76
db
wObjectFollow_Follower:: ; ce77
db
-
-
-SECTION "Object structs", WRAM0[$CECF]
-
-wObjectStructs:: ; cecf
-wPlayerStruct:: object_struct wPlayer
-wObject1Struct:: object_struct wObject1
-wObject2Struct:: object_struct wObject2
-wObject3Struct:: object_struct wObject3
-wObject4Struct:: object_struct wObject4
-wObject5Struct:: object_struct wObject5
-wObject6Struct:: object_struct wObject6
-wObject7Struct:: object_struct wObject7
+wCenteredObject:: ; ce78
+ db
+wFollowerMovementQueueLength:: ; ce79
+ db
+wFollowMovementQueue:: ; ce7a
+ ds 5
+
+wObjectStructs:: ; ce7f
+wUnkObjectStruct:: object_struct wUnkObject ; ce7f
+wPlayerStruct:: object_struct wPlayer ; cea7
+wObject1Struct:: object_struct wObject1 ; cecf
+wObject2Struct:: object_struct wObject2 ; cef7
+wObject3Struct:: object_struct wObject3 ; cf1f
+wObject4Struct:: object_struct wObject4 ; cf47
+wObject5Struct:: object_struct wObject5 ; cf6f
+wObject6Struct:: object_struct wObject6 ; cf97
+wObject7Struct:: object_struct wObject7 ; cfbf
+wObject8Struct:: object_struct wObject8 ; cfe7
wObjectStructsEnd:: ; d00f
-SECTION "Objects", WRAM0[$D04F]
+wCmdQueue:: ; d00f
+wCmdQueueEntry1:: ds 16
+wCmdQueueEntry2:: ds 16
+wCmdQueueEntry3:: ds 16
+wCmdQueueEntry4:: ds 16
wMapObjects:: ; d04f
wPlayerObject:: map_object wPlayer