summaryrefslogtreecommitdiff
path: root/home/map_objects.asm
diff options
context:
space:
mode:
Diffstat (limited to 'home/map_objects.asm')
-rw-r--r--home/map_objects.asm49
1 files changed, 35 insertions, 14 deletions
diff --git a/home/map_objects.asm b/home/map_objects.asm
index e5d6dab01..67a6c52d5 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -6,7 +6,9 @@ GetSpritePalette:: ; 17ff
push de
push bc
ld c, a
+
callba _GetSpritePalette
+
ld a, c
pop bc
pop de
@@ -15,7 +17,7 @@ GetSpritePalette:: ; 17ff
; 180e
-Function180e:: ; 180e
+GetSpriteVTile:: ; 180e
push hl
push bc
ld hl, UsedSprites + 2
@@ -78,14 +80,14 @@ DoesSpriteHaveFacings:: ; 1836
Function184a:: ; 184a
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call GetTileCollision
ld b, a
ret
; 1852
CheckOnWater:: ; 1852
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
call GetTileCollision
sub 1
ret z
@@ -122,7 +124,18 @@ GetTileCollision:: ; 185d
; 1875
-Function1875:: ; 1875
+CheckGrassTile:: ; 1875
+ ; and %00110111
+ ; cp $10
+ ; ret c
+ ; cp $30
+ ; jr nc, .okay
+ ; scf
+ ; ret
+ ; .okay
+ ; xor a
+ ; ret
+
ld d, a
and $f0
cp $10
@@ -138,7 +151,7 @@ Function1875:: ; 1875
ret z
scf
ret
-
+; For some reason, the above code is duplicated down here.
.ok_20
ld a, d
and 7
@@ -209,7 +222,7 @@ CheckWaterfallTile:: ; 18bd
; 18c3
CheckStandingOnEntrance:: ; 18c3
- ld a, [PlayerStandingTile]
+ ld a, [PlayerNextTile]
cp $71 ; door
ret z
cp $79
@@ -445,7 +458,7 @@ LoadMovementDataPointer:: ; 19e9
add hl, bc
ld [hl], SPRITEMOVEDATA_SCRIPTED
- ld hl, OBJECT_09
+ ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], 0
@@ -508,7 +521,7 @@ endr
ret
; 1a47
-Function1a47:: ; 1a47
+GetInitialFacing:: ; 1a47
push bc
push de
ld e, a
@@ -529,7 +542,7 @@ endr
; 1a61
-Function1a61:: ; 1a61
+CopySpriteMovementData:: ; 1a61
ld l, a
ld a, [hROMBank]
push af
@@ -538,7 +551,7 @@ Function1a61:: ; 1a61
ld a, l
push bc
- call Function1a71
+ call .CopyData
pop bc
pop af
@@ -547,10 +560,11 @@ Function1a61:: ; 1a61
ret
; 1a71
-Function1a71:: ; 1a71
+.CopyData ; 1a71
ld hl, OBJECT_MOVEMENTTYPE
add hl, de
ld [hl], a
+
push de
ld e, a
ld d, 0
@@ -561,29 +575,34 @@ endr
ld b, h
ld c, l
pop de
+
ld a, [bc]
inc bc
rlca
rlca
- and $c
+ and %00001100
ld hl, OBJECT_FACING
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
- ld hl, OBJECT_11
+ ld hl, OBJECT_ACTION
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_FLAGS1
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_FLAGS2
add hl, de
ld [hl], a
+
ld a, [bc]
inc bc
ld hl, OBJECT_PALETTE
@@ -635,8 +654,9 @@ UpdateSprites:: ; 1ad2
ld a, [VramState]
bit 0, a
ret z
+
callba Function55e0
- callba RefreshMapAppearDisappear
+ callba _UpdateSprites
ret
; 1ae5
@@ -659,6 +679,7 @@ GetObjectSprite:: ; 1af1
; 1af8
SetSpriteDirection:: ; 1af8
+ ; preserves other flags
push af
ld hl, OBJECT_FACING
add hl, bc