summaryrefslogtreecommitdiff
path: root/engine/overworld/npc_movement.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/npc_movement.asm')
-rw-r--r--engine/overworld/npc_movement.asm98
1 files changed, 37 insertions, 61 deletions
diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm
index 5670935e8..b4b5ef467 100644
--- a/engine/overworld/npc_movement.asm
+++ b/engine/overworld/npc_movement.asm
@@ -1,37 +1,37 @@
-Function6ec1: ; 6ec1
-
+CanObjectMoveInDirection:
ld hl, OBJECT_PALETTE
add hl, bc
- bit 5, [hl]
- jr z, .not_bit_5
+ bit SWIMMING_F, [hl]
+ jr z, .not_swimming
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 4, [hl] ; lost, uncomment next line to fix
-; jr nz, .resume
+ bit NOCLIP_TILES_F, [hl] ; lost, uncomment next line to fix
+ ; jr nz, .noclip_tiles
push hl
push bc
- call Function6f2c
+ call WillObjectBumpIntoLand
pop bc
pop hl
ret c
- jr .resume
+ jr .continue
-.not_bit_5
+.not_swimming
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 4, [hl]
- jr nz, .resume
+ bit NOCLIP_TILES_F, [hl]
+ jr nz, .noclip_tiles
push hl
push bc
- call Function6f07
+ call WillObjectBumpIntoWater
pop bc
pop hl
ret c
-.resume
- bit 6, [hl]
- jr nz, .bit_6
+.noclip_tiles
+.continue
+ bit NOCLIP_OBJS_F, [hl]
+ jr nz, .noclip_objs
push hl
push bc
@@ -40,9 +40,9 @@ Function6ec1: ; 6ec1
pop hl
ret c
-.bit_6
- bit 5, [hl]
- jr nz, .bit_5
+.noclip_objs
+ bit MOVE_ANYWHERE_F, [hl]
+ jr nz, .move_anywhere
push hl
call HasObjectReachedMovementLimit
pop hl
@@ -53,13 +53,11 @@ Function6ec1: ; 6ec1
pop hl
ret c
-.bit_5
+.move_anywhere
and a
ret
-; 6f07
-
-Function6f07: ; 6f07
+WillObjectBumpIntoWater:
call Function6f5f
ret c
ld hl, OBJECT_NEXT_MAP_X
@@ -78,12 +76,11 @@ Function6f07: ; 6f07
ld d, a
call GetTileCollision
and a ; LANDTILE
- jr z, Function6f3e
+ jr z, WillObjectBumpIntoTile
scf
ret
-; 6f2c
-Function6f2c: ; 6f2c
+WillObjectBumpIntoLand:
call Function6f5f
ret c
ld hl, OBJECT_NEXT_TILE
@@ -91,12 +88,11 @@ Function6f2c: ; 6f2c
ld a, [hl]
call GetTileCollision
cp WATERTILE
- jr z, Function6f3e
+ jr z, WillObjectBumpIntoTile
scf
ret
-; 6f3e
-Function6f3e: ; 6f3e
+WillObjectBumpIntoTile:
ld hl, OBJECT_NEXT_TILE
add hl, bc
ld a, [hl]
@@ -116,13 +112,11 @@ Function6f3e: ; 6f3e
ret z
scf
ret
-; 6f5b
.data_6f5b
db DOWN_MASK, UP_MASK, RIGHT_MASK, LEFT_MASK
-; 6f5f
-Function6f5f: ; 6f5f
+Function6f5f:
ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
@@ -141,18 +135,16 @@ Function6f5f: ; 6f5f
ret z
scf
ret
-; 6f7b
.data_6f7b
db UP_MASK, DOWN_MASK, LEFT_MASK, RIGHT_MASK
-; 6f7f
-Function6f7f: ; 6f7f
+Function6f7f:
ld d, a
and $f0
- cp $b0
+ cp HI_NYBBLE_SIDE_WALLS
jr z, .done
- cp $c0
+ cp HI_NYBBLE_UNUSED_C0
jr z, .done
xor a
ret
@@ -167,14 +159,12 @@ Function6f7f: ; 6f7f
ld a, [hl]
scf
ret
-; 6f99
.data_6f99
db 8, 4, 1, 2
db 10, 6, 9, 5
-; 6fa1
-Function6fa1: ; 6fa1
+Function6fa1:
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld a, [hl]
@@ -223,12 +213,8 @@ Function6fa1: ; 6fa1
.not_land
scf
ret
-; 6fd9
-
-
-
-CheckFacingObject:: ; 6fd9
+CheckFacingObject::
call GetFacingTileCoord
; Double the distance for counter tiles.
@@ -266,10 +252,8 @@ CheckFacingObject:: ; 6fd9
.standing
scf
ret
-; 7009
-
-WillObjectBumpIntoSomeoneElse: ; 7009
+WillObjectBumpIntoSomeoneElse:
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
@@ -277,7 +261,6 @@ WillObjectBumpIntoSomeoneElse: ; 7009
add hl, bc
ld e, [hl]
jr IsNPCAtCoord
-; 7015
Unreferenced_Function7015:
ld a, [hMapObjectIndexBuffer]
@@ -286,7 +269,7 @@ Unreferenced_Function7015:
call IsNPCAtCoord
ret
-.CheckWillBeFacingNPC: ; 7021
+.CheckWillBeFacingNPC:
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld d, [hl]
@@ -314,9 +297,8 @@ Unreferenced_Function7015:
.left
dec d
ret
-; 7041
-IsNPCAtCoord: ; 7041
+IsNPCAtCoord:
ld bc, wObjectStructs
xor a
.loop
@@ -331,7 +313,7 @@ IsNPCAtCoord: ; 7041
ld hl, OBJECT_PALETTE
add hl, bc
- bit 7, [hl]
+ bit BIG_OBJECT_F, [hl]
jr z, .got
call Function7171
@@ -389,9 +371,8 @@ IsNPCAtCoord: ; 7041
.setcarry
scf
ret
-; 70a4
-HasObjectReachedMovementLimit: ; 70a4
+HasObjectReachedMovementLimit:
ld hl, OBJECT_RADIUS
add hl, bc
ld a, [hl]
@@ -449,9 +430,8 @@ HasObjectReachedMovementLimit: ; 70a4
.yes
scf
ret
-; 70ed
-IsObjectMovingOffEdgeOfScreen: ; 70ed
+IsObjectMovingOffEdgeOfScreen:
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [wXCoord]
@@ -480,7 +460,6 @@ IsObjectMovingOffEdgeOfScreen: ; 70ed
.yes
scf
ret
-; 7113
Unreferenced_Function7113:
ld a, [wPlayerStandingMapX]
@@ -546,10 +525,8 @@ Unreferenced_Function7113:
.yes
scf
ret
-; 7171
-
-Function7171: ; 7171
+Function7171:
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, d
@@ -570,4 +547,3 @@ Function7171: ; 7171
.nope
and a
ret
-; 718d