summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--home.asm26
-rw-r--r--home/map_objects.asm480
-rw-r--r--home/video.asm53
-rwxr-xr-xhram.asm2
-rw-r--r--main.asm30
-rw-r--r--wram.asm872
6 files changed, 349 insertions, 1114 deletions
diff --git a/home.asm b/home.asm
index 06cf2ee0..2353469e 100644
--- a/home.asm
+++ b/home.asm
@@ -24,12 +24,10 @@ INCLUDE "home/palettes.asm"
INCLUDE "home/copy.asm"
INCLUDE "home/text.asm"
INCLUDE "home/video.asm"
+INCLUDE "home/map_objects.asm"
-Function1642::
- dr $1642, $196f
-
-UpdateSprites::
- dr $196f, $1eb3
+Function19ac::
+ dr $19ac, $1eb3
PrinterReceive::
dr $1eb3, $1ebf
@@ -38,7 +36,13 @@ AskSerial::
dr $1ebf, $1efa
Function1efa::
- dr $1efa, $2e27
+ dr $1efa, $2835
+
+Function2835::
+ dr $2835, $2841
+
+Function2841::
+ dr $2841, $2e27
FarCall_hl::
dr $2e27, $2e49
@@ -56,7 +60,10 @@ Function30ff::
dr $30ff, $311a
CopyBytes::
- dr $311a, $313c
+ dr $311a, $3128
+
+Function3128::
+ dr $3128, $313c
GetFarHalfword::
dr $313c, $314c
@@ -85,7 +92,10 @@ ReloadTilesFromBuffer_::
jp CopyBytes
Function317b::
- dr $317b, $31e2
+ dr $317b, $31a3
+
+Function31a3::
+ dr $31a3, $31e2
Function31e2::
dr $31e2, $323d
diff --git a/home/map_objects.asm b/home/map_objects.asm
index f4a4d6d5..49f3c0f4 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -1,107 +1,88 @@
-; Functions handling map objects.
-
-GetSpritePalette:: ; 17ff
+GetSpritePalette:: ; 169c
push hl
push de
push bc
ld c, a
-
- callba _GetSpritePalette
-
+ callba GetSpritePalette_
ld a, c
pop bc
pop de
pop hl
ret
-; 180e
-GetSpriteVTile:: ; 180e
+GetSpriteVTile::
push hl
push bc
- ld hl, UsedSprites + 2
- ld c, SPRITE_GFX_LIST_CAPACITY - 1
+ ld hl, wUsedSprites + 2
+ ld c, $b
ld b, a
ld a, [hMapObjectIndexBuffer]
- cp 0
- jr z, .nope
+ cp $0
+ jr z, .asm_16c8
ld a, b
-.loop
+.asm_16ba
cp [hl]
- jr z, .found
-rept 2
+ jr z, .asm_16cd
+ inc hl
inc hl
-endr
dec c
- jr nz, .loop
- ld a, [UsedSprites + 1]
+ jr nz, .asm_16ba
+ ld a, [wUsedSprites + 1]
scf
- jr .done
+ jr .asm_16d0
-.nope
- ld a, [UsedSprites + 1]
- jr .done
+.asm_16c8
+ ld a, [wUsedSprites + 1]
+ jr .asm_16d0
-.found
+.asm_16cd
inc hl
xor a
ld a, [hl]
-
-.done
+.asm_16d0
pop bc
pop hl
ret
-; 1836
-DoesSpriteHaveFacings:: ; 1836
+DoesSpriteHaveFacings::
push de
push hl
-
ld b, a
ld a, [hROMBank]
push af
- ld a, BANK(_DoesSpriteHaveFacings)
+ ld a, BANK(DoesSpriteHaveFacings_)
rst Bankswitch
-
ld a, b
- call _DoesSpriteHaveFacings
+ call DoesSpriteHaveFacings_
ld c, a
-
pop de
ld a, d
rst Bankswitch
-
pop hl
pop de
ret
-; 184a
-GetPlayerStandingTile:: ; 184a
- ld a, [PlayerStandingTile]
+GetPlayerStandingTile::
+ ld a, [wPlayerStandingTile]
call GetTileCollision
ld b, a
ret
-; 1852
-CheckOnWater:: ; 1852
- ld a, [PlayerStandingTile]
+CheckOnWater::
+ ld a, [wPlayerStandingTile]
call GetTileCollision
- sub 1
+ sub $1
ret z
and a
ret
-; 185d
-
-GetTileCollision:: ; 185d
-; Get the collision type of tile a.
+GetTileCollision:: ; 16fa (0:16fa)
push de
push hl
-
ld hl, TileCollisionTable
ld e, a
- ld d, 0
+ ld d, $0
add hl, de
-
ld a, [hROMBank]
push af
ld a, BANK(TileCollisionTable)
@@ -109,85 +90,75 @@ GetTileCollision:: ; 185d
ld e, [hl]
pop af
rst Bankswitch
-
ld a, e
- and $f ; lo nybble only
-
+ and $f
pop hl
pop de
ret
-; 1875
-CheckGrassTile:: ; 1875
+CheckGrassTile::
ld d, a
and $f0
cp $10
- jr z, .ok_10
+ jr z, .asm_171f
cp $20
- jr z, .ok_20
+ jr z, .asm_1725
scf
ret
-.ok_10
+.asm_171f
ld a, d
- and 7
+ and $7
ret z
scf
ret
-; For some reason, the above code is duplicated down here.
-.ok_20
+
+.asm_1725
ld a, d
- and 7
+ and $7
ret z
scf
ret
-; 188e
-CheckSuperTallGrassTile:: ; 188e
+CheckSuperTallGrassTile::
cp $14
ret z
cp $1c
ret
-; 1894
-CheckCutTreeTile:: ; 1894
+CheckCutTreeTile::
cp $12
ret z
cp $1a
ret
-; 189a
-CheckHeadbuttTreeTile:: ; 189a
+CheckHeadbuttTreeTile::
cp $15
ret z
cp $1d
ret
-; 18a0
-CheckCounterTile:: ; 18a0
+CheckCounterTile::
cp $90
ret z
cp $98
ret
-; 18a6
-CheckPitTile:: ; 18a6
+CheckPitTile::
cp $60
ret z
cp $68
ret
-; 18ac
-CheckIceTile:: ; 18ac
+CheckIceTile::
cp $23
ret z
cp $2b
ret z
scf
ret
-; 18b4
-CheckWhirlpoolTile:: ; 18b4
+CheckWhirlpoolTile::
nop
cp $24
ret z
@@ -195,324 +166,300 @@ CheckWhirlpoolTile:: ; 18b4
ret z
scf
ret
-; 18bd
-CheckWaterfallTile:: ; 18bd
+CheckWaterfallTile::
cp $33
ret z
cp $3b
ret
-; 18c3
-CheckStandingOnEntrance:: ; 18c3
- ld a, [PlayerStandingTile]
- cp $71 ; door
+CheckStandingOnEntrance::
+ ld a, [wPlayerStandingTile]
+ cp $71
ret z
cp $79
ret z
- cp $7a ; stairs
+ cp $7a
ret z
- cp $7b ; cave
+ cp $7b
ret
-; 18d2
-GetMapObject:: ; 18d2
-; Return the location of map object a in bc.
- ld hl, MapObjects
- ld bc, OBJECT_LENGTH
- call AddNTimes
+GetMapObject:: ; 176f (0:176f)
+ ld hl, wMapObjects
+ ld bc, $10
+ call Function31a3
ld b, h
ld c, l
ret
-; 18de
-CheckObjectVisibility:: ; 18de
-; Sets carry if the object is not visible on the screen.
- ld [hMapObjectIndexBuffer], a
+CheckObjectVisibility:: ; 177b (0:177b)
+ ld [hConnectionStripLength], a
call GetMapObject
- ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ ld hl, 0
add hl, bc
ld a, [hl]
- cp -1
- jr z, .not_visible
+ cp $ff
+ jr z, .asm_1790
ld [hObjectStructIndexBuffer], a
call GetObjectStruct
and a
ret
-.not_visible
+.asm_1790
scf
ret
-; 18f5
-CheckObjectTime:: ; 18f5
- ld hl, MAPOBJECT_HOUR
+CheckObjectTime::
+ ld hl, $6
add hl, bc
ld a, [hl]
- cp -1
- jr nz, .check_hour
- ld hl, MAPOBJECT_TIMEOFDAY
+ cp $ff
+ jr nz, .asm_17be
+ ld hl, $7
add hl, bc
ld a, [hl]
- cp -1
- jr z, .timeofday_always
- ld hl, .TimeOfDayValues_191e
- ld a, [TimeOfDay]
+ cp $ff
+ jr z, .asm_17b9
+ ld hl, .TimeOfDayValues_17bb
+ ld a, [wTimeOfDay]
add l
ld l, a
- jr nc, .ok
+ jr nc, .asm_17af
inc h
-
-.ok
+.asm_17af
ld a, [hl]
- ld hl, MAPOBJECT_TIMEOFDAY
+ ld hl, $7
add hl, bc
and [hl]
- jr nz, .timeofday_always
+ jr nz, .asm_17b9
scf
ret
-.timeofday_always
+.asm_17b9
and a
ret
-.TimeOfDayValues_191e
+.TimeOfDayValues_17bb:
db 1 << MORN ; 1
db 1 << DAY ; 2
db 1 << NITE ; 4
-.check_hour
- ld hl, MAPOBJECT_HOUR
+.asm_17be
+ ld hl, $6
add hl, bc
ld d, [hl]
- ld hl, MAPOBJECT_TIMEOFDAY
+ ld hl, $7
add hl, bc
ld e, [hl]
ld hl, hHours
ld a, d
cp e
- jr z, .yes
- jr c, .check_timeofday
+ jr z, .asm_17e6
+ jr c, .asm_17dc
ld a, [hl]
cp d
- jr nc, .yes
+ jr nc, .asm_17e6
cp e
- jr c, .yes
- jr z, .yes
- jr .no
+ jr c, .asm_17e6
+ jr z, .asm_17e6
+ jr .asm_17e8
-.check_timeofday
+.asm_17dc
ld a, e
cp [hl]
- jr c, .no
+ jr c, .asm_17e8
ld a, [hl]
cp d
- jr nc, .yes
- jr .no
+ jr nc, .asm_17e6
+ jr .asm_17e8
-.yes
+.asm_17e6
and a
ret
-.no
+.asm_17e8
scf
ret
-; 194d
-; XXX
+Function17ea::
ld [hMapObjectIndexBuffer], a
call GetMapObject
- call CopyObjectStruct
+ call CopyObjectStruct_
ret
-; 1956
-_CopyObjectStruct:: ; 1956
+CopyObjectStruct::
ld [hMapObjectIndexBuffer], a
- call UnmaskObject
- ld a, [hMapObjectIndexBuffer]
+ call Function2841
+ ld a, [hConnectionStripLength]
call GetMapObject
- callba CopyObjectStruct
+ callba CopyObjectStruct_
ret
-; 1967
-ApplyDeletionToMapObject:: ; 1967
- ld [hMapObjectIndexBuffer], a
+ApplyDeletionToMapObject:: ; 1804 (0:1804)
+ ld [hConnectionStripLength], a
call GetMapObject
- ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ ld hl, 0
add hl, bc
ld a, [hl]
- cp -1
- ret z ; already hidden
- ld [hl], -1
+ cp $ff
+ ret z
+ ld [hl], $ff
push af
- call .CheckStopFollow
+ call DeleteOject_CheckStopFollow
pop af
call GetObjectStruct
callba DeleteMapObject
ret
-.CheckStopFollow
+DeleteOject_CheckStopFollow:: ; 1822 (0:1822)
ld hl, wObjectFollow_Leader
cp [hl]
- jr z, .ok
+ jr z, .asm_182d
ld hl, wObjectFollow_Follower
cp [hl]
ret nz
-.ok
+.asm_182d
callba StopFollow
- ld a, -1
+ ld a, $ff
ld [wObjectFollow_Leader], a
ld [wObjectFollow_Follower], a
ret
-; 199f
-DeleteObjectStruct:: ; 199f
+DeleteObjectStruct::
call ApplyDeletionToMapObject
- call MaskObject
+ call Function2835
ret
-; 19a6
-CopyPlayerObjectTemplate:: ; 19a6
+CopyPlayerObjectTemplate::
push hl
call GetMapObject
ld d, b
ld e, c
- ld a, -1
+ ld a, $ff
ld [de], a
inc de
pop hl
- ld bc, OBJECT_LENGTH - 1
+ ld bc, $f
call CopyBytes
ret
-; 19b8
-; XXX
+Function1855::
call GetMapObject
- ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ ld hl, 0
add hl, bc
ld a, [hl]
push af
- ld [hl], -1
+ ld [hl], $ff
inc hl
- ld bc, OBJECT_LENGTH - 1
+ ld bc, $f
xor a
call ByteFill
pop af
- cp -1
+ cp $ff
ret z
cp $d
ret nc
ld b, a
ld a, [wObjectFollow_Leader]
cp b
- jr nz, .ok
- ld a, -1
+ jr nz, .asm_187b
+ ld a, $ff
ld [wObjectFollow_Leader], a
-
-.ok
+.asm_187b
ld a, b
call GetObjectStruct
callba DeleteMapObject
ret
-; 19e9
-LoadMovementDataPointer:: ; 19e9
-; Load the movement data pointer for person a.
+LoadMovementDataPointer::
ld [wMovementPerson], a
ld a, [hROMBank]
- ld [wMovementDataPointer], a
+ ld [wMovementDataPointerBank], a
ld a, l
- ld [wMovementDataPointer + 1], a
+ ld [wMovementDataPointerAddr], a
ld a, h
- ld [wMovementDataPointer + 2], a
+ ld [wMovementDataPointerAddr + 1], a
ld a, [wMovementPerson]
call CheckObjectVisibility
ret c
-
- ld hl, OBJECT_MOVEMENTTYPE
+ ld hl, $3
add hl, bc
- ld [hl], SPRITEMOVEDATA_SCRIPTED
-
- ld hl, OBJECT_STEP_TYPE
+ ld [hl], $14
+ ld hl, $9
add hl, bc
- ld [hl], STEP_TYPE_00
-
- ld hl, VramState
+ ld [hl], $0
+ ld hl, wVramState
set 7, [hl]
and a
ret
-; 1a13
-FindFirstEmptyObjectStruct:: ; 1a13
-; Returns the index of the first empty object struct in A and its address in HL, then sets carry.
-; If all object structs are occupied, A = 0 and Z is set.
-; Preserves BC and DE.
+FindFirstEmptyObjectStruct::
push bc
push de
- ld hl, ObjectStructs
- ld de, OBJECT_STRUCT_LENGTH
- ld c, NUM_OBJECT_STRUCTS
-.loop
+ ld hl, wObjectStructs
+ ld de, $28
+ ld c, $d
+.asm_18ba
ld a, [hl]
and a
- jr z, .break
+ jr z, .asm_18c5
add hl, de
dec c
- jr nz, .loop
+ jr nz, .asm_18ba
xor a
- jr .done
+ jr .asm_18c9
-.break
- ld a, NUM_OBJECT_STRUCTS
+.asm_18c5
+ ld a, $d
sub c
scf
-
-.done
+.asm_18c9
pop de
pop bc
ret
-; 1a2f
-GetSpriteMovementFunction:: ; 1a2f
- ld hl, OBJECT_MOVEMENTTYPE
+GetSpriteMovementFunction::
+ ld hl, $3
add hl, bc
ld a, [hl]
- cp NUM_SPRITEMOVEDATA
- jr c, .ok
+ cp $25
+ jr c, .asm_18d6
xor a
-
-.ok
+.asm_18d6
ld hl, SpriteMovementData
ld e, a
- ld d, 0
-rept SPRITEMOVEDATA_FIELDS
- add hl,de
-endr
+ ld d, $0
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
ld a, [hl]
ret
-; 1a47
-GetInitialFacing:: ; 1a47
+GetInitialFacing::
push bc
push de
ld e, a
- ld d, 0
- ld hl, SpriteMovementData + 1 ; init facing
-rept SPRITEMOVEDATA_FIELDS
- add hl,de
-endr
+ ld d, $0
+ ld hl, SpriteMovementData + 1
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
ld a, BANK(SpriteMovementData)
- call GetFarByte
-rept 2
+ call Function3128
+ add a
add a
-endr
and $c
pop de
pop bc
ret
-; 1a61
-CopySpriteMovementData:: ; 1a61
+CopySpriteMovementData::
ld l, a
ld a, [hROMBank]
push af
@@ -520,151 +467,130 @@ CopySpriteMovementData:: ; 1a61
rst Bankswitch
ld a, l
push bc
-
call .CopyData
-
pop bc
pop af
rst Bankswitch
-
ret
-; 1a71
-.CopyData ; 1a71
- ld hl, OBJECT_MOVEMENTTYPE
+.CopyData:
+ ld hl, $3
add hl, de
ld [hl], a
-
push de
ld e, a
- ld d, 0
- ld hl, SpriteMovementData + 1 ; init facing
-rept SPRITEMOVEDATA_FIELDS
+ ld d, $0
+ ld hl, $4275
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
+ add hl, de
add hl, de
-endr
ld b, h
ld c, l
pop de
-
ld a, [bc]
inc bc
rlca
rlca
- and %00001100
- ld hl, OBJECT_FACING
+ and $c
+ ld hl, $8
add hl, de
ld [hl], a
-
ld a, [bc]
inc bc
- ld hl, OBJECT_ACTION
+ ld hl, $b
add hl, de
ld [hl], a
-
ld a, [bc]
inc bc
- ld hl, OBJECT_FLAGS1
+ ld hl, $4
add hl, de
ld [hl], a
-
ld a, [bc]
inc bc
- ld hl, OBJECT_FLAGS2
+ ld hl, $5
add hl, de
ld [hl], a
-
ld a, [bc]
inc bc
- ld hl, OBJECT_PALETTE
+ ld hl, $6
add hl, de
ld [hl], a
ret
-; 1aae
-_GetMovementByte:: ; 1aae
-; Switch to the movement data bank
+GetMovementByte_::
ld a, [hROMBank]
push af
ld a, [hli]
rst Bankswitch
-; Load the current script byte as given by OBJECT_MOVEMENT_BYTE_INDEX, and increment OBJECT_MOVEMENT_BYTE_INDEX
ld a, [hli]
ld d, [hl]
- ld hl, OBJECT_MOVEMENT_BYTE_INDEX
+ ld hl, $1b
add hl, bc
add [hl]
ld e, a
ld a, d
- adc 0
+ adc $0
ld d, a
inc [hl]
ld a, [de]
ld h, a
pop af
rst Bankswitch
-
ld a, h
ret
-; 1ac6
-SetVramState_Bit0:: ; 1ac6
- ld hl, VramState
+SetVramState_Bit0::
+ ld hl, wVramState
set 0, [hl]
ret
-; 1acc
-ResetVramState_Bit0:: ; 1acc
- ld hl, VramState
+ResetVramState_Bit0::
+ ld hl, wVramState
res 0, [hl]
ret
-; 1ad2
-UpdateSprites:: ; 1ad2
- ld a, [VramState]
+UpdateSprites:: ; 196f (0:196f)
+ ld a, [wVramState]
bit 0, a
ret z
-
- callba Function55e0
- callba _UpdateSprites
+ callba Function557f
+ callba UpdateSprites_
ret
-; 1ae5
-GetObjectStruct:: ; 1ae5
- ld bc, OBJECT_STRUCT_LENGTH
- ld hl, ObjectStructs
- call AddNTimes
+GetObjectStruct:: ; 1982 (0:1982)
+ ld bc, $28
+ ld hl, wObjectStructs
+ call Function31a3
ld b, h
ld c, l
ret
-; 1af1
-GetObjectSprite:: ; 1af1
- ld hl, OBJECT_SPRITE
+DoesObjectHaveASprite::
+ ld hl, 0
add hl, bc
ld a, [hl]
and a
ret
-; 1af8
-SetSpriteDirection:: ; 1af8
- ; preserves other flags
+SetSpriteDirection::
push af
- ld hl, OBJECT_FACING
+ ld hl, $8
add hl, bc
ld a, [hl]
- and %11110011
+ and $f3
ld e, a
pop af
- and %00001100
+ and $c
or e
ld [hl], a
ret
-; 1b07
-GetSpriteDirection:: ; 1b07
- ld hl, OBJECT_FACING
+GetSpriteDirection::
+ ld hl, $8
add hl, bc
ld a, [hl]
- and %00001100
+ and $c
ret
-; 1b0f
diff --git a/home/video.asm b/home/video.asm
index 201ae7fc..0d105791 100644
--- a/home/video.asm
+++ b/home/video.asm
@@ -326,3 +326,56 @@ AnimateTileset:: ; 162b (0:162b)
ld hl, rLCDC
set 1, [hl]
ret
+
+Function1642:: ; 1642 (0:1642)
+ nop
+ ld a, [hFF9E]
+ and a
+ ret z
+ dec a
+ jr z, .one
+ dec a
+ jr z, .two
+ ld a, $2
+ ld [hFF9E], a
+ ld hl, hBGMapAddress
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld b, $12
+ ld a, $60
+.loop1
+rept 12
+ ld [hli], a
+endr
+ add hl, de
+ dec b
+ jr nz, .loop1
+ ret
+
+.two
+ ld a, $1
+ ld de, $240
+ jr .go
+
+.one
+ xor a
+ ld de, $320
+.go
+ ld [hFF9E], a
+ ld hl, hBGMapAddress
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld b, $e
+ ld a, $60
+.loop2
+rept 16
+ ld [hli], a
+endr
+ dec b
+ jr nz, .loop2
+ ret
diff --git a/hram.asm b/hram.asm
index 34bf01e3..9e5b2924 100755
--- a/hram.asm
+++ b/hram.asm
@@ -17,7 +17,7 @@ hMinutes EQU $ff98
hSeconds EQU $ff9a
hVBlankCounter EQU $ff9d
-
+hFF9E EQU $ff9e
hROMBank EQU $ff9f
hVBlank EQU $ffa0
hMapEntryMethod EQU $ffa1
diff --git a/main.asm b/main.asm
index d43ef0e7..900cc8c0 100644
--- a/main.asm
+++ b/main.asm
@@ -4,15 +4,24 @@ SECTION "bank1", DATA, BANK[$1]
PlaceWaitingText::
dr $4000, $4032
LoadPushOAM::
-
+ dr $4032, $4274
+SpriteMovementData::
+ dr $4274, $4358
+DeleteMapObject::
+ dr $4358, $557f
+Function557f::
+ dr $557f, $5795
+StopFollow::
+ dr $5795, $5896
+UpdateSprites_::
IF DEF(GOLD)
- dr $4032, $6545
+ dr $5896, $6545
GameInit::
dr $6545, $8000
ENDC
IF DEF(SILVER)
- dr $4032, $650b
+ dr $5896, $650b
GameInit::
dr $650b, $8000
ENDC
@@ -21,7 +30,9 @@ SECTION "bank2", DATA, BANK[$2]
SwapTextboxPalettes::
dr $8000, $804f
ScrollBGMapPalettes::
- dr $804f, $9cfd
+ dr $804f, $86d7
+CopyObjectStruct_::
+ dr $86d7, $9cfd
InitCGBPals:: ; 9cfd
dr $9cfd, $c000
@@ -40,7 +51,11 @@ StartClock:: ; 14089
Function140ff:: ; 140ff
dr $140ff, $1413c
Function1413c:: ; 413c
- dr $1413c, $18000
+ dr $1413c, $14317
+DoesSpriteHaveFacings_:: ; 14317
+ dr $14317, $14334
+GetSpritePalette_:: ; 14334
+ dr $14334, $18000
SECTION "bank6", DATA, BANK[$6]
dr $18000, $1c000
@@ -229,7 +244,10 @@ Functionf8000::
Functionf800c::
dr $f800c, $f8032
Functionf8032::
- dr $f8032, $fc000
+ dr $f8032, $fb4be
+
+TileCollisionTable::
+ dr $fb4be, $fc000
SECTION "bank3f", DATA, BANK[$3f]
dr $fc000, $100000
diff --git a/wram.asm b/wram.asm
index b8482505..486d9b04 100644
--- a/wram.asm
+++ b/wram.asm
@@ -2102,10 +2102,9 @@ wce87:: ds 1 ; ce87
wce88:: ds 1 ; ce88
wce89:: ds 1 ; ce89
wce8a:: ds 1 ; ce8a
-wce8b:: ds 1 ; ce8b
-wce8c:: ds 1 ; ce8c
-wce8d:: ds 1 ; ce8d
-wce8e:: ds 1 ; ce8e
+wMovementPerson:: ds 1 ; ce8b
+wMovementDataPointerBank:: ds 1 ; ce8c
+wMovementDataPointerAddr:: dw ; ce8d
wce8f:: ds 1 ; ce8f
wce90:: ds 1 ; ce90
wce91:: ds 1 ; ce91
@@ -2488,38 +2487,9 @@ wd059:: ds 1 ; d059
wd05a:: ds 1 ; d05a
wd05b:: ds 1 ; d05b
wd05c:: ds 1 ; d05c
-wd05d:: ds 1 ; d05d
-wd05e:: ds 1 ; d05e
-wd05f:: ds 1 ; d05f
-wd060:: ds 1 ; d060
-wd061:: ds 1 ; d061
-wd062:: ds 1 ; d062
-wd063:: ds 1 ; d063
-wd064:: ds 1 ; d064
-wd065:: ds 1 ; d065
-wd066:: ds 1 ; d066
-wd067:: ds 1 ; d067
-wd068:: ds 1 ; d068
-wd069:: ds 1 ; d069
-wd06a:: ds 1 ; d06a
-wd06b:: ds 1 ; d06b
-wd06c:: ds 1 ; d06c
-wd06d:: ds 1 ; d06d
-wd06e:: ds 1 ; d06e
-wd06f:: ds 1 ; d06f
-wd070:: ds 1 ; d070
-wd071:: ds 1 ; d071
-wd072:: ds 1 ; d072
-wd073:: ds 1 ; d073
-wd074:: ds 1 ; d074
-wd075:: ds 1 ; d075
-wd076:: ds 1 ; d076
-wd077:: ds 1 ; d077
-wd078:: ds 1 ; d078
-wd079:: ds 1 ; d079
-wd07a:: ds 1 ; d07a
-wd07b:: ds 1 ; d07b
-wd07c:: ds 1 ; d07c
+
+wUsedSprites:: ds SPRITE_GFX_LIST_CAPACITY ; d05d
+
wd07d:: ds 1 ; d07d
wd07e:: ds 1 ; d07e
wd07f:: ds 1 ; d07f
@@ -2738,7 +2708,7 @@ wd153:: ds 1 ; d153
wd154:: ds 1 ; d154
wROMBankBackup:: ds 1
wBuffer:: ds 1 ; d156
-wd157:: ds 1 ; d157
+wTimeOfDay:: ds 1 ; d157
wd158:: ds 1 ; d158
wd159:: ds 1 ; d159
wd15a:: ds 1 ; d15a
@@ -2847,535 +2817,29 @@ wd1f0:: ds 1 ; d1f0
wd1f1:: ds 1 ; d1f1
wd1f2:: ds 1 ; d1f2
wd1f3:: ds 1 ; d1f3
-wd1f4:: ds 1 ; d1f4
-wd1f5:: ds 1 ; d1f5
-wd1f6:: ds 1 ; d1f6
-wd1f7:: ds 1 ; d1f7
-wd1f8:: ds 1 ; d1f8
-wd1f9:: ds 1 ; d1f9
-wd1fa:: ds 1 ; d1fa
-wd1fb:: ds 1 ; d1fb
-wd1fc:: ds 1 ; d1fc
-wd1fd:: ds 1 ; d1fd
-wd1fe:: ds 1 ; d1fe
-wd1ff:: ds 1 ; d1ff
-wd200:: ds 1 ; d200
-wd201:: ds 1 ; d201
-wd202:: ds 1 ; d202
-wd203:: ds 1 ; d203
-wd204:: ds 1 ; d204
-wd205:: ds 1 ; d205
-wd206:: ds 1 ; d206
-wd207:: ds 1 ; d207
-wd208:: ds 1 ; d208
-wd209:: ds 1 ; d209
-wd20a:: ds 1 ; d20a
-wd20b:: ds 1 ; d20b
-wd20c:: ds 1 ; d20c
-wd20d:: ds 1 ; d20d
-wd20e:: ds 1 ; d20e
-wd20f:: ds 1 ; d20f
-wd210:: ds 1 ; d210
-wd211:: ds 1 ; d211
-wd212:: ds 1 ; d212
-wd213:: ds 1 ; d213
-wd214:: ds 1 ; d214
-wd215:: ds 1 ; d215
-wd216:: ds 1 ; d216
-wd217:: ds 1 ; d217
-wd218:: ds 1 ; d218
-wd219:: ds 1 ; d219
-wd21a:: ds 1 ; d21a
-wd21b:: ds 1 ; d21b
-wd21c:: ds 1 ; d21c
-wd21d:: ds 1 ; d21d
-wd21e:: ds 1 ; d21e
-wd21f:: ds 1 ; d21f
-wd220:: ds 1 ; d220
-wd221:: ds 1 ; d221
-wd222:: ds 1 ; d222
-wd223:: ds 1 ; d223
-wd224:: ds 1 ; d224
-wd225:: ds 1 ; d225
-wd226:: ds 1 ; d226
-wd227:: ds 1 ; d227
-wd228:: ds 1 ; d228
-wd229:: ds 1 ; d229
-wd22a:: ds 1 ; d22a
-wd22b:: ds 1 ; d22b
-wd22c:: ds 1 ; d22c
-wd22d:: ds 1 ; d22d
-wd22e:: ds 1 ; d22e
-wd22f:: ds 1 ; d22f
-wd230:: ds 1 ; d230
-wd231:: ds 1 ; d231
-wd232:: ds 1 ; d232
-wd233:: ds 1 ; d233
-wd234:: ds 1 ; d234
-wd235:: ds 1 ; d235
-wd236:: ds 1 ; d236
-wd237:: ds 1 ; d237
-wd238:: ds 1 ; d238
-wd239:: ds 1 ; d239
-wd23a:: ds 1 ; d23a
-wd23b:: ds 1 ; d23b
-wd23c:: ds 1 ; d23c
-wd23d:: ds 1 ; d23d
-wd23e:: ds 1 ; d23e
-wd23f:: ds 1 ; d23f
-wd240:: ds 1 ; d240
-wd241:: ds 1 ; d241
-wd242:: ds 1 ; d242
-wd243:: ds 1 ; d243
-wd244:: ds 1 ; d244
-wd245:: ds 1 ; d245
-wd246:: ds 1 ; d246
-wd247:: ds 1 ; d247
-wd248:: ds 1 ; d248
-wd249:: ds 1 ; d249
-wd24a:: ds 1 ; d24a
-wd24b:: ds 1 ; d24b
-wd24c:: ds 1 ; d24c
-wd24d:: ds 1 ; d24d
-wd24e:: ds 1 ; d24e
-wd24f:: ds 1 ; d24f
-wd250:: ds 1 ; d250
-wd251:: ds 1 ; d251
-wd252:: ds 1 ; d252
-wd253:: ds 1 ; d253
-wd254:: ds 1 ; d254
-wd255:: ds 1 ; d255
-wd256:: ds 1 ; d256
-wd257:: ds 1 ; d257
-wd258:: ds 1 ; d258
-wd259:: ds 1 ; d259
-wd25a:: ds 1 ; d25a
-wd25b:: ds 1 ; d25b
-wd25c:: ds 1 ; d25c
-wd25d:: ds 1 ; d25d
-wd25e:: ds 1 ; d25e
-wd25f:: ds 1 ; d25f
-wd260:: ds 1 ; d260
-wd261:: ds 1 ; d261
-wd262:: ds 1 ; d262
-wd263:: ds 1 ; d263
-wd264:: ds 1 ; d264
-wd265:: ds 1 ; d265
-wd266:: ds 1 ; d266
-wd267:: ds 1 ; d267
-wd268:: ds 1 ; d268
-wd269:: ds 1 ; d269
-wd26a:: ds 1 ; d26a
-wd26b:: ds 1 ; d26b
-wd26c:: ds 1 ; d26c
-wd26d:: ds 1 ; d26d
-wd26e:: ds 1 ; d26e
-wd26f:: ds 1 ; d26f
-wd270:: ds 1 ; d270
-wd271:: ds 1 ; d271
-wd272:: ds 1 ; d272
-wd273:: ds 1 ; d273
-wd274:: ds 1 ; d274
-wd275:: ds 1 ; d275
-wd276:: ds 1 ; d276
-wd277:: ds 1 ; d277
-wd278:: ds 1 ; d278
-wd279:: ds 1 ; d279
-wd27a:: ds 1 ; d27a
-wd27b:: ds 1 ; d27b
-wd27c:: ds 1 ; d27c
-wd27d:: ds 1 ; d27d
-wd27e:: ds 1 ; d27e
-wd27f:: ds 1 ; d27f
-wd280:: ds 1 ; d280
-wd281:: ds 1 ; d281
-wd282:: ds 1 ; d282
-wd283:: ds 1 ; d283
-wd284:: ds 1 ; d284
-wd285:: ds 1 ; d285
-wd286:: ds 1 ; d286
-wd287:: ds 1 ; d287
-wd288:: ds 1 ; d288
-wd289:: ds 1 ; d289
-wd28a:: ds 1 ; d28a
-wd28b:: ds 1 ; d28b
-wd28c:: ds 1 ; d28c
-wd28d:: ds 1 ; d28d
-wd28e:: ds 1 ; d28e
-wd28f:: ds 1 ; d28f
-wd290:: ds 1 ; d290
-wd291:: ds 1 ; d291
-wd292:: ds 1 ; d292
-wd293:: ds 1 ; d293
-wd294:: ds 1 ; d294
-wd295:: ds 1 ; d295
-wd296:: ds 1 ; d296
-wd297:: ds 1 ; d297
-wd298:: ds 1 ; d298
-wd299:: ds 1 ; d299
-wd29a:: ds 1 ; d29a
-wd29b:: ds 1 ; d29b
-wd29c:: ds 1 ; d29c
-wd29d:: ds 1 ; d29d
-wd29e:: ds 1 ; d29e
-wd29f:: ds 1 ; d29f
-wd2a0:: ds 1 ; d2a0
-wd2a1:: ds 1 ; d2a1
-wd2a2:: ds 1 ; d2a2
-wd2a3:: ds 1 ; d2a3
-wd2a4:: ds 1 ; d2a4
-wd2a5:: ds 1 ; d2a5
-wd2a6:: ds 1 ; d2a6
-wd2a7:: ds 1 ; d2a7
-wd2a8:: ds 1 ; d2a8
-wd2a9:: ds 1 ; d2a9
-wd2aa:: ds 1 ; d2aa
-wd2ab:: ds 1 ; d2ab
-wd2ac:: ds 1 ; d2ac
-wd2ad:: ds 1 ; d2ad
-wd2ae:: ds 1 ; d2ae
-wd2af:: ds 1 ; d2af
-wd2b0:: ds 1 ; d2b0
-wd2b1:: ds 1 ; d2b1
-wd2b2:: ds 1 ; d2b2
-wd2b3:: ds 1 ; d2b3
-wd2b4:: ds 1 ; d2b4
-wd2b5:: ds 1 ; d2b5
-wd2b6:: ds 1 ; d2b6
-wd2b7:: ds 1 ; d2b7
-wd2b8:: ds 1 ; d2b8
-wd2b9:: ds 1 ; d2b9
-wd2ba:: ds 1 ; d2ba
-wd2bb:: ds 1 ; d2bb
-wd2bc:: ds 1 ; d2bc
-wd2bd:: ds 1 ; d2bd
-wd2be:: ds 1 ; d2be
-wd2bf:: ds 1 ; d2bf
-wd2c0:: ds 1 ; d2c0
-wd2c1:: ds 1 ; d2c1
-wd2c2:: ds 1 ; d2c2
-wd2c3:: ds 1 ; d2c3
-wd2c4:: ds 1 ; d2c4
-wd2c5:: ds 1 ; d2c5
-wd2c6:: ds 1 ; d2c6
-wd2c7:: ds 1 ; d2c7
-wd2c8:: ds 1 ; d2c8
-wd2c9:: ds 1 ; d2c9
-wd2ca:: ds 1 ; d2ca
-wd2cb:: ds 1 ; d2cb
-wd2cc:: ds 1 ; d2cc
-wd2cd:: ds 1 ; d2cd
-wd2ce:: ds 1 ; d2ce
-wd2cf:: ds 1 ; d2cf
-wd2d0:: ds 1 ; d2d0
-wd2d1:: ds 1 ; d2d1
-wd2d2:: ds 1 ; d2d2
-wd2d3:: ds 1 ; d2d3
-wd2d4:: ds 1 ; d2d4
-wd2d5:: ds 1 ; d2d5
-wd2d6:: ds 1 ; d2d6
-wd2d7:: ds 1 ; d2d7
-wd2d8:: ds 1 ; d2d8
-wd2d9:: ds 1 ; d2d9
-wd2da:: ds 1 ; d2da
-wd2db:: ds 1 ; d2db
-wd2dc:: ds 1 ; d2dc
-wd2dd:: ds 1 ; d2dd
-wd2de:: ds 1 ; d2de
-wd2df:: ds 1 ; d2df
-wd2e0:: ds 1 ; d2e0
-wd2e1:: ds 1 ; d2e1
-wd2e2:: ds 1 ; d2e2
-wd2e3:: ds 1 ; d2e3
-wd2e4:: ds 1 ; d2e4
-wd2e5:: ds 1 ; d2e5
-wd2e6:: ds 1 ; d2e6
-wd2e7:: ds 1 ; d2e7
-wd2e8:: ds 1 ; d2e8
-wd2e9:: ds 1 ; d2e9
-wd2ea:: ds 1 ; d2ea
-wd2eb:: ds 1 ; d2eb
-wd2ec:: ds 1 ; d2ec
-wd2ed:: ds 1 ; d2ed
-wd2ee:: ds 1 ; d2ee
-wd2ef:: ds 1 ; d2ef
-wd2f0:: ds 1 ; d2f0
-wd2f1:: ds 1 ; d2f1
-wd2f2:: ds 1 ; d2f2
-wd2f3:: ds 1 ; d2f3
-wd2f4:: ds 1 ; d2f4
-wd2f5:: ds 1 ; d2f5
-wd2f6:: ds 1 ; d2f6
-wd2f7:: ds 1 ; d2f7
-wd2f8:: ds 1 ; d2f8
-wd2f9:: ds 1 ; d2f9
-wd2fa:: ds 1 ; d2fa
-wd2fb:: ds 1 ; d2fb
-wd2fc:: ds 1 ; d2fc
-wd2fd:: ds 1 ; d2fd
-wd2fe:: ds 1 ; d2fe
-wd2ff:: ds 1 ; d2ff
-wd300:: ds 1 ; d300
-wd301:: ds 1 ; d301
-wd302:: ds 1 ; d302
-wd303:: ds 1 ; d303
-wd304:: ds 1 ; d304
-wd305:: ds 1 ; d305
-wd306:: ds 1 ; d306
-wd307:: ds 1 ; d307
-wd308:: ds 1 ; d308
-wd309:: ds 1 ; d309
-wd30a:: ds 1 ; d30a
-wd30b:: ds 1 ; d30b
-wd30c:: ds 1 ; d30c
-wd30d:: ds 1 ; d30d
-wd30e:: ds 1 ; d30e
-wd30f:: ds 1 ; d30f
-wd310:: ds 1 ; d310
-wd311:: ds 1 ; d311
-wd312:: ds 1 ; d312
-wd313:: ds 1 ; d313
-wd314:: ds 1 ; d314
-wd315:: ds 1 ; d315
-wd316:: ds 1 ; d316
-wd317:: ds 1 ; d317
-wd318:: ds 1 ; d318
-wd319:: ds 1 ; d319
-wd31a:: ds 1 ; d31a
-wd31b:: ds 1 ; d31b
-wd31c:: ds 1 ; d31c
-wd31d:: ds 1 ; d31d
-wd31e:: ds 1 ; d31e
-wd31f:: ds 1 ; d31f
-wd320:: ds 1 ; d320
-wd321:: ds 1 ; d321
-wd322:: ds 1 ; d322
-wd323:: ds 1 ; d323
-wd324:: ds 1 ; d324
-wd325:: ds 1 ; d325
-wd326:: ds 1 ; d326
-wd327:: ds 1 ; d327
-wd328:: ds 1 ; d328
-wd329:: ds 1 ; d329
-wd32a:: ds 1 ; d32a
-wd32b:: ds 1 ; d32b
-wd32c:: ds 1 ; d32c
-wd32d:: ds 1 ; d32d
-wd32e:: ds 1 ; d32e
-wd32f:: ds 1 ; d32f
-wd330:: ds 1 ; d330
-wd331:: ds 1 ; d331
-wd332:: ds 1 ; d332
-wd333:: ds 1 ; d333
-wd334:: ds 1 ; d334
-wd335:: ds 1 ; d335
-wd336:: ds 1 ; d336
-wd337:: ds 1 ; d337
-wd338:: ds 1 ; d338
-wd339:: ds 1 ; d339
-wd33a:: ds 1 ; d33a
-wd33b:: ds 1 ; d33b
-wd33c:: ds 1 ; d33c
-wd33d:: ds 1 ; d33d
-wd33e:: ds 1 ; d33e
-wd33f:: ds 1 ; d33f
-wd340:: ds 1 ; d340
-wd341:: ds 1 ; d341
-wd342:: ds 1 ; d342
-wd343:: ds 1 ; d343
-wd344:: ds 1 ; d344
-wd345:: ds 1 ; d345
-wd346:: ds 1 ; d346
-wd347:: ds 1 ; d347
-wd348:: ds 1 ; d348
-wd349:: ds 1 ; d349
-wd34a:: ds 1 ; d34a
-wd34b:: ds 1 ; d34b
-wd34c:: ds 1 ; d34c
-wd34d:: ds 1 ; d34d
-wd34e:: ds 1 ; d34e
-wd34f:: ds 1 ; d34f
-wd350:: ds 1 ; d350
-wd351:: ds 1 ; d351
-wd352:: ds 1 ; d352
-wd353:: ds 1 ; d353
-wd354:: ds 1 ; d354
-wd355:: ds 1 ; d355
-wd356:: ds 1 ; d356
-wd357:: ds 1 ; d357
-wd358:: ds 1 ; d358
-wd359:: ds 1 ; d359
-wd35a:: ds 1 ; d35a
-wd35b:: ds 1 ; d35b
-wd35c:: ds 1 ; d35c
-wd35d:: ds 1 ; d35d
-wd35e:: ds 1 ; d35e
-wd35f:: ds 1 ; d35f
-wd360:: ds 1 ; d360
-wd361:: ds 1 ; d361
-wd362:: ds 1 ; d362
-wd363:: ds 1 ; d363
-wd364:: ds 1 ; d364
-wd365:: ds 1 ; d365
-wd366:: ds 1 ; d366
-wd367:: ds 1 ; d367
-wd368:: ds 1 ; d368
-wd369:: ds 1 ; d369
-wd36a:: ds 1 ; d36a
-wd36b:: ds 1 ; d36b
-wd36c:: ds 1 ; d36c
-wd36d:: ds 1 ; d36d
-wd36e:: ds 1 ; d36e
-wd36f:: ds 1 ; d36f
-wd370:: ds 1 ; d370
-wd371:: ds 1 ; d371
-wd372:: ds 1 ; d372
-wd373:: ds 1 ; d373
-wd374:: ds 1 ; d374
-wd375:: ds 1 ; d375
-wd376:: ds 1 ; d376
-wd377:: ds 1 ; d377
-wd378:: ds 1 ; d378
-wd379:: ds 1 ; d379
-wd37a:: ds 1 ; d37a
-wd37b:: ds 1 ; d37b
-wd37c:: ds 1 ; d37c
-wd37d:: ds 1 ; d37d
-wd37e:: ds 1 ; d37e
-wd37f:: ds 1 ; d37f
-wd380:: ds 1 ; d380
-wd381:: ds 1 ; d381
-wd382:: ds 1 ; d382
-wd383:: ds 1 ; d383
-wd384:: ds 1 ; d384
-wd385:: ds 1 ; d385
-wd386:: ds 1 ; d386
-wd387:: ds 1 ; d387
-wd388:: ds 1 ; d388
-wd389:: ds 1 ; d389
-wd38a:: ds 1 ; d38a
-wd38b:: ds 1 ; d38b
-wd38c:: ds 1 ; d38c
-wd38d:: ds 1 ; d38d
-wd38e:: ds 1 ; d38e
-wd38f:: ds 1 ; d38f
-wd390:: ds 1 ; d390
-wd391:: ds 1 ; d391
-wd392:: ds 1 ; d392
-wd393:: ds 1 ; d393
-wd394:: ds 1 ; d394
-wd395:: ds 1 ; d395
-wd396:: ds 1 ; d396
-wd397:: ds 1 ; d397
-wd398:: ds 1 ; d398
-wd399:: ds 1 ; d399
-wd39a:: ds 1 ; d39a
-wd39b:: ds 1 ; d39b
-wd39c:: ds 1 ; d39c
-wd39d:: ds 1 ; d39d
-wd39e:: ds 1 ; d39e
-wd39f:: ds 1 ; d39f
-wd3a0:: ds 1 ; d3a0
-wd3a1:: ds 1 ; d3a1
-wd3a2:: ds 1 ; d3a2
-wd3a3:: ds 1 ; d3a3
-wd3a4:: ds 1 ; d3a4
-wd3a5:: ds 1 ; d3a5
-wd3a6:: ds 1 ; d3a6
-wd3a7:: ds 1 ; d3a7
-wd3a8:: ds 1 ; d3a8
-wd3a9:: ds 1 ; d3a9
-wd3aa:: ds 1 ; d3aa
-wd3ab:: ds 1 ; d3ab
-wd3ac:: ds 1 ; d3ac
-wd3ad:: ds 1 ; d3ad
-wd3ae:: ds 1 ; d3ae
-wd3af:: ds 1 ; d3af
-wd3b0:: ds 1 ; d3b0
-wd3b1:: ds 1 ; d3b1
-wd3b2:: ds 1 ; d3b2
-wd3b3:: ds 1 ; d3b3
-wd3b4:: ds 1 ; d3b4
-wd3b5:: ds 1 ; d3b5
-wd3b6:: ds 1 ; d3b6
-wd3b7:: ds 1 ; d3b7
-wd3b8:: ds 1 ; d3b8
-wd3b9:: ds 1 ; d3b9
-wd3ba:: ds 1 ; d3ba
-wd3bb:: ds 1 ; d3bb
-wd3bc:: ds 1 ; d3bc
-wd3bd:: ds 1 ; d3bd
-wd3be:: ds 1 ; d3be
-wd3bf:: ds 1 ; d3bf
-wd3c0:: ds 1 ; d3c0
-wd3c1:: ds 1 ; d3c1
-wd3c2:: ds 1 ; d3c2
-wd3c3:: ds 1 ; d3c3
-wd3c4:: ds 1 ; d3c4
-wd3c5:: ds 1 ; d3c5
-wd3c6:: ds 1 ; d3c6
-wd3c7:: ds 1 ; d3c7
-wd3c8:: ds 1 ; d3c8
-wd3c9:: ds 1 ; d3c9
-wd3ca:: ds 1 ; d3ca
-wd3cb:: ds 1 ; d3cb
-wd3cc:: ds 1 ; d3cc
-wd3cd:: ds 1 ; d3cd
-wd3ce:: ds 1 ; d3ce
-wd3cf:: ds 1 ; d3cf
-wd3d0:: ds 1 ; d3d0
-wd3d1:: ds 1 ; d3d1
-wd3d2:: ds 1 ; d3d2
-wd3d3:: ds 1 ; d3d3
-wd3d4:: ds 1 ; d3d4
-wd3d5:: ds 1 ; d3d5
-wd3d6:: ds 1 ; d3d6
-wd3d7:: ds 1 ; d3d7
-wd3d8:: ds 1 ; d3d8
-wd3d9:: ds 1 ; d3d9
-wd3da:: ds 1 ; d3da
-wd3db:: ds 1 ; d3db
-wd3dc:: ds 1 ; d3dc
-wd3dd:: ds 1 ; d3dd
-wd3de:: ds 1 ; d3de
-wd3df:: ds 1 ; d3df
-wd3e0:: ds 1 ; d3e0
-wd3e1:: ds 1 ; d3e1
-wd3e2:: ds 1 ; d3e2
-wd3e3:: ds 1 ; d3e3
-wd3e4:: ds 1 ; d3e4
-wd3e5:: ds 1 ; d3e5
-wd3e6:: ds 1 ; d3e6
-wd3e7:: ds 1 ; d3e7
-wd3e8:: ds 1 ; d3e8
-wd3e9:: ds 1 ; d3e9
-wd3ea:: ds 1 ; d3ea
-wd3eb:: ds 1 ; d3eb
-wd3ec:: ds 1 ; d3ec
-wd3ed:: ds 1 ; d3ed
-wd3ee:: ds 1 ; d3ee
-wd3ef:: ds 1 ; d3ef
-wd3f0:: ds 1 ; d3f0
-wd3f1:: ds 1 ; d3f1
-wd3f2:: ds 1 ; d3f2
-wd3f3:: ds 1 ; d3f3
-wd3f4:: ds 1 ; d3f4
-wd3f5:: ds 1 ; d3f5
-wd3f6:: ds 1 ; d3f6
-wd3f7:: ds 1 ; d3f7
-wd3f8:: ds 1 ; d3f8
-wd3f9:: ds 1 ; d3f9
-wd3fa:: ds 1 ; d3fa
-wd3fb:: ds 1 ; d3fb
-wd3fc:: ds 1 ; d3fc
-wd3fd:: ds 1 ; d3fd
-wd3fe:: ds 1 ; d3fe
-wd3ff:: ds 1 ; d3ff
-wd400:: ds 1 ; d400
-wd401:: ds 1 ; d401
-wd402:: ds 1 ; d402
-wd403:: ds 1 ; d403
-wd404:: ds 1 ; d404
+
+wObjectFollow_Leader:: ds 1 ; d1f4
+wObjectFollow_Follower:: ds 1 ; d1f5
+wCenteredObject:: ds 1 ; d1f6
+wFollowerMovementQueueLength:: ds 1 ; d1f7
+wFollowMovementQueue:: ds 5 ; d1f8
+
+wObjectStructs:: ; d1fd
+ object_struct wPlayer ; d1fd
+ object_struct wObject1 ; d225
+ object_struct wObject2 ; d24d
+ object_struct wObject3 ; d275
+ object_struct wObject4 ; d29d
+ object_struct wObject5 ; d2c5
+ object_struct wObject6 ; d2ed
+ object_struct wObject7 ; d315
+ object_struct wObject8 ; d33d
+ object_struct wObject9 ; d365
+ object_struct wObject10 ; d38d
+ object_struct wObject11 ; d3b5
+ object_struct wObject12 ; d3dd
+wObjectStructsEnd:: ; d405
+
wd405:: ds 1 ; d405
wd406:: ds 1 ; d406
wd407:: ds 1 ; d407
@@ -3440,262 +2904,26 @@ wd441:: ds 1 ; d441
wd442:: ds 1 ; d442
wd443:: ds 1 ; d443
wd444:: ds 1 ; d444
-wd445:: ds 1 ; d445
-wd446:: ds 1 ; d446
-wd447:: ds 1 ; d447
-wd448:: ds 1 ; d448
-wd449:: ds 1 ; d449
-wd44a:: ds 1 ; d44a
-wd44b:: ds 1 ; d44b
-wd44c:: ds 1 ; d44c
-wd44d:: ds 1 ; d44d
-wd44e:: ds 1 ; d44e
-wd44f:: ds 1 ; d44f
-wd450:: ds 1 ; d450
-wd451:: ds 1 ; d451
-wd452:: ds 1 ; d452
-wd453:: ds 1 ; d453
-wd454:: ds 1 ; d454
-wd455:: ds 1 ; d455
-wd456:: ds 1 ; d456
-wd457:: ds 1 ; d457
-wd458:: ds 1 ; d458
-wd459:: ds 1 ; d459
-wd45a:: ds 1 ; d45a
-wd45b:: ds 1 ; d45b
-wd45c:: ds 1 ; d45c
-wd45d:: ds 1 ; d45d
-wd45e:: ds 1 ; d45e
-wd45f:: ds 1 ; d45f
-wd460:: ds 1 ; d460
-wd461:: ds 1 ; d461
-wd462:: ds 1 ; d462
-wd463:: ds 1 ; d463
-wd464:: ds 1 ; d464
-wd465:: ds 1 ; d465
-wd466:: ds 1 ; d466
-wd467:: ds 1 ; d467
-wd468:: ds 1 ; d468
-wd469:: ds 1 ; d469
-wd46a:: ds 1 ; d46a
-wd46b:: ds 1 ; d46b
-wd46c:: ds 1 ; d46c
-wd46d:: ds 1 ; d46d
-wd46e:: ds 1 ; d46e
-wd46f:: ds 1 ; d46f
-wd470:: ds 1 ; d470
-wd471:: ds 1 ; d471
-wd472:: ds 1 ; d472
-wd473:: ds 1 ; d473
-wd474:: ds 1 ; d474
-wd475:: ds 1 ; d475
-wd476:: ds 1 ; d476
-wd477:: ds 1 ; d477
-wd478:: ds 1 ; d478
-wd479:: ds 1 ; d479
-wd47a:: ds 1 ; d47a
-wd47b:: ds 1 ; d47b
-wd47c:: ds 1 ; d47c
-wd47d:: ds 1 ; d47d
-wd47e:: ds 1 ; d47e
-wd47f:: ds 1 ; d47f
-wd480:: ds 1 ; d480
-wd481:: ds 1 ; d481
-wd482:: ds 1 ; d482
-wd483:: ds 1 ; d483
-wd484:: ds 1 ; d484
-wd485:: ds 1 ; d485
-wd486:: ds 1 ; d486
-wd487:: ds 1 ; d487
-wd488:: ds 1 ; d488
-wd489:: ds 1 ; d489
-wd48a:: ds 1 ; d48a
-wd48b:: ds 1 ; d48b
-wd48c:: ds 1 ; d48c
-wd48d:: ds 1 ; d48d
-wd48e:: ds 1 ; d48e
-wd48f:: ds 1 ; d48f
-wd490:: ds 1 ; d490
-wd491:: ds 1 ; d491
-wd492:: ds 1 ; d492
-wd493:: ds 1 ; d493
-wd494:: ds 1 ; d494
-wd495:: ds 1 ; d495
-wd496:: ds 1 ; d496
-wd497:: ds 1 ; d497
-wd498:: ds 1 ; d498
-wd499:: ds 1 ; d499
-wd49a:: ds 1 ; d49a
-wd49b:: ds 1 ; d49b
-wd49c:: ds 1 ; d49c
-wd49d:: ds 1 ; d49d
-wd49e:: ds 1 ; d49e
-wd49f:: ds 1 ; d49f
-wd4a0:: ds 1 ; d4a0
-wd4a1:: ds 1 ; d4a1
-wd4a2:: ds 1 ; d4a2
-wd4a3:: ds 1 ; d4a3
-wd4a4:: ds 1 ; d4a4
-wd4a5:: ds 1 ; d4a5
-wd4a6:: ds 1 ; d4a6
-wd4a7:: ds 1 ; d4a7
-wd4a8:: ds 1 ; d4a8
-wd4a9:: ds 1 ; d4a9
-wd4aa:: ds 1 ; d4aa
-wd4ab:: ds 1 ; d4ab
-wd4ac:: ds 1 ; d4ac
-wd4ad:: ds 1 ; d4ad
-wd4ae:: ds 1 ; d4ae
-wd4af:: ds 1 ; d4af
-wd4b0:: ds 1 ; d4b0
-wd4b1:: ds 1 ; d4b1
-wd4b2:: ds 1 ; d4b2
-wd4b3:: ds 1 ; d4b3
-wd4b4:: ds 1 ; d4b4
-wd4b5:: ds 1 ; d4b5
-wd4b6:: ds 1 ; d4b6
-wd4b7:: ds 1 ; d4b7
-wd4b8:: ds 1 ; d4b8
-wd4b9:: ds 1 ; d4b9
-wd4ba:: ds 1 ; d4ba
-wd4bb:: ds 1 ; d4bb
-wd4bc:: ds 1 ; d4bc
-wd4bd:: ds 1 ; d4bd
-wd4be:: ds 1 ; d4be
-wd4bf:: ds 1 ; d4bf
-wd4c0:: ds 1 ; d4c0
-wd4c1:: ds 1 ; d4c1
-wd4c2:: ds 1 ; d4c2
-wd4c3:: ds 1 ; d4c3
-wd4c4:: ds 1 ; d4c4
-wd4c5:: ds 1 ; d4c5
-wd4c6:: ds 1 ; d4c6
-wd4c7:: ds 1 ; d4c7
-wd4c8:: ds 1 ; d4c8
-wd4c9:: ds 1 ; d4c9
-wd4ca:: ds 1 ; d4ca
-wd4cb:: ds 1 ; d4cb
-wd4cc:: ds 1 ; d4cc
-wd4cd:: ds 1 ; d4cd
-wd4ce:: ds 1 ; d4ce
-wd4cf:: ds 1 ; d4cf
-wd4d0:: ds 1 ; d4d0
-wd4d1:: ds 1 ; d4d1
-wd4d2:: ds 1 ; d4d2
-wd4d3:: ds 1 ; d4d3
-wd4d4:: ds 1 ; d4d4
-wd4d5:: ds 1 ; d4d5
-wd4d6:: ds 1 ; d4d6
-wd4d7:: ds 1 ; d4d7
-wd4d8:: ds 1 ; d4d8
-wd4d9:: ds 1 ; d4d9
-wd4da:: ds 1 ; d4da
-wd4db:: ds 1 ; d4db
-wd4dc:: ds 1 ; d4dc
-wd4dd:: ds 1 ; d4dd
-wd4de:: ds 1 ; d4de
-wd4df:: ds 1 ; d4df
-wd4e0:: ds 1 ; d4e0
-wd4e1:: ds 1 ; d4e1
-wd4e2:: ds 1 ; d4e2
-wd4e3:: ds 1 ; d4e3
-wd4e4:: ds 1 ; d4e4
-wd4e5:: ds 1 ; d4e5
-wd4e6:: ds 1 ; d4e6
-wd4e7:: ds 1 ; d4e7
-wd4e8:: ds 1 ; d4e8
-wd4e9:: ds 1 ; d4e9
-wd4ea:: ds 1 ; d4ea
-wd4eb:: ds 1 ; d4eb
-wd4ec:: ds 1 ; d4ec
-wd4ed:: ds 1 ; d4ed
-wd4ee:: ds 1 ; d4ee
-wd4ef:: ds 1 ; d4ef
-wd4f0:: ds 1 ; d4f0
-wd4f1:: ds 1 ; d4f1
-wd4f2:: ds 1 ; d4f2
-wd4f3:: ds 1 ; d4f3
-wd4f4:: ds 1 ; d4f4
-wd4f5:: ds 1 ; d4f5
-wd4f6:: ds 1 ; d4f6
-wd4f7:: ds 1 ; d4f7
-wd4f8:: ds 1 ; d4f8
-wd4f9:: ds 1 ; d4f9
-wd4fa:: ds 1 ; d4fa
-wd4fb:: ds 1 ; d4fb
-wd4fc:: ds 1 ; d4fc
-wd4fd:: ds 1 ; d4fd
-wd4fe:: ds 1 ; d4fe
-wd4ff:: ds 1 ; d4ff
-wd500:: ds 1 ; d500
-wd501:: ds 1 ; d501
-wd502:: ds 1 ; d502
-wd503:: ds 1 ; d503
-wd504:: ds 1 ; d504
-wd505:: ds 1 ; d505
-wd506:: ds 1 ; d506
-wd507:: ds 1 ; d507
-wd508:: ds 1 ; d508
-wd509:: ds 1 ; d509
-wd50a:: ds 1 ; d50a
-wd50b:: ds 1 ; d50b
-wd50c:: ds 1 ; d50c
-wd50d:: ds 1 ; d50d
-wd50e:: ds 1 ; d50e
-wd50f:: ds 1 ; d50f
-wd510:: ds 1 ; d510
-wd511:: ds 1 ; d511
-wd512:: ds 1 ; d512
-wd513:: ds 1 ; d513
-wd514:: ds 1 ; d514
-wd515:: ds 1 ; d515
-wd516:: ds 1 ; d516
-wd517:: ds 1 ; d517
-wd518:: ds 1 ; d518
-wd519:: ds 1 ; d519
-wd51a:: ds 1 ; d51a
-wd51b:: ds 1 ; d51b
-wd51c:: ds 1 ; d51c
-wd51d:: ds 1 ; d51d
-wd51e:: ds 1 ; d51e
-wd51f:: ds 1 ; d51f
-wd520:: ds 1 ; d520
-wd521:: ds 1 ; d521
-wd522:: ds 1 ; d522
-wd523:: ds 1 ; d523
-wd524:: ds 1 ; d524
-wd525:: ds 1 ; d525
-wd526:: ds 1 ; d526
-wd527:: ds 1 ; d527
-wd528:: ds 1 ; d528
-wd529:: ds 1 ; d529
-wd52a:: ds 1 ; d52a
-wd52b:: ds 1 ; d52b
-wd52c:: ds 1 ; d52c
-wd52d:: ds 1 ; d52d
-wd52e:: ds 1 ; d52e
-wd52f:: ds 1 ; d52f
-wd530:: ds 1 ; d530
-wd531:: ds 1 ; d531
-wd532:: ds 1 ; d532
-wd533:: ds 1 ; d533
-wd534:: ds 1 ; d534
-wd535:: ds 1 ; d535
-wd536:: ds 1 ; d536
-wd537:: ds 1 ; d537
-wd538:: ds 1 ; d538
-wd539:: ds 1 ; d539
-wd53a:: ds 1 ; d53a
-wd53b:: ds 1 ; d53b
-wd53c:: ds 1 ; d53c
-wd53d:: ds 1 ; d53d
-wd53e:: ds 1 ; d53e
-wd53f:: ds 1 ; d53f
-wd540:: ds 1 ; d540
-wd541:: ds 1 ; d541
-wd542:: ds 1 ; d542
-wd543:: ds 1 ; d543
-wd544:: ds 1 ; d544
+
+wMapObjects:: ; d445
+ map_object wPlayer ; d445
+ map_object wMap1 ; d455
+ map_object wMap2 ; d465
+ map_object wMap3 ; d475
+ map_object wMap4 ; d485
+ map_object wMap5 ; d495
+ map_object wMap6 ; d4a5
+ map_object wMap7 ; d4b5
+ map_object wMap8 ; d4c5
+ map_object wMap9 ; d4d5
+ map_object wMap10 ; d4e5
+ map_object wMap11 ; d4f5
+ map_object wMap12 ; d505
+ map_object wMap13 ; d515
+ map_object wMap14 ; d525
+ map_object wMap15 ; d535
+MapObjectsEnd:: ; d545
+
wd545:: ds 1 ; d545
wd546:: ds 1 ; d546
wd547:: ds 1 ; d547