summaryrefslogtreecommitdiff
path: root/engine/overworld/movement.asm
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2015-07-15 13:58:21 -0700
committerYamaArashi <shadow962@live.com>2015-07-15 13:58:21 -0700
commitac78dda7d8a4a6cf9af95f601bdac9fc348c65a6 (patch)
tree8e4e90bedb2bfcd6453794afbf48974f6be0157c /engine/overworld/movement.asm
parent7b676f5851a2b6fe0001f259afde6e9918b93683 (diff)
more movement stuff
Diffstat (limited to 'engine/overworld/movement.asm')
-rw-r--r--engine/overworld/movement.asm28
1 files changed, 16 insertions, 12 deletions
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index 5b9f878d..30793dec 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -188,7 +188,7 @@ UpdateNPCSprite: ; 4ed1 (1:4ed1)
call LoadDEPlusA ; a = [wNPCMovementDirections + $fe] (?)
jr .determineDirection
.randomMovement
- call getTileSpriteStandsOn
+ call GetTileSpriteStandsOn
call Random
.determineDirection
ld b, a
@@ -504,7 +504,7 @@ CheckSpriteAvailability: ; 50dc (1:50dc)
.skipXVisibilityTest
; make the sprite invisible if a text box is in front of it
; $5F is the maximum number for map tiles
- call getTileSpriteStandsOn
+ call GetTileSpriteStandsOn
ld d, $60
ld a, [hli]
cp d
@@ -685,7 +685,7 @@ CanWalkOntoTile: ; 516e (1:516e)
; calculates the tile pointer pointing to the tile the current sprite stancs on
; this is always the lower left tile of the 2x2 tile blocks all sprites are snapped to
; hl: output pointer
-getTileSpriteStandsOn: ; 5207 (1:5207)
+GetTileSpriteStandsOn: ; 5207 (1:5207)
ld h, $c1
ld a, [H_CURRENTSPRITEOFFSET]
add $4
@@ -724,6 +724,10 @@ LoadDEPlusA: ; 522f (1:522f)
ret
DoScriptedNPCMovement: ; 5236 (1:5236)
+; This is an alternative method of scripting an NPC's movement and is only used
+; a few times in the game. It is used when the NPC and player must walk together
+; in sync, such as when the player is following the NPC somewhere. An NPC can't
+; be moved in sync with the player using the other method.
ld a, [wd730]
bit 7, a
ret z
@@ -740,28 +744,28 @@ DoScriptedNPCMovement: ; 5236 (1:5236)
.noCarry
ld a, [hl]
; check if moving up
- cp $40
+ cp NPC_MOVEMENT_UP
jr nz, .checkIfMovingDown
call GetSpriteScreenYPointer
ld c, SPRITE_FACING_UP
ld a, -2
jr .move
.checkIfMovingDown
- cp $0
+ cp NPC_MOVEMENT_DOWN
jr nz, .checkIfMovingLeft
call GetSpriteScreenYPointer
ld c, SPRITE_FACING_DOWN
ld a, 2
jr .move
.checkIfMovingLeft
- cp $80
+ cp NPC_MOVEMENT_LEFT
jr nz, .checkIfMovingRight
call GetSpriteScreenXPointer
ld c, SPRITE_FACING_LEFT
ld a, -2
jr .move
.checkIfMovingRight
- cp $c0
+ cp NPC_MOVEMENT_RIGHT
jr nz, .noMatch
call GetSpriteScreenXPointer
ld c, SPRITE_FACING_RIGHT
@@ -781,11 +785,11 @@ DoScriptedNPCMovement: ; 5236 (1:5236)
ld a, c
ld [hl], a ; facing direction
call AnimScriptedNPCMovement
- ld hl, wcf18
+ ld hl, wScriptedNPCWalkCounter
dec [hl]
ret nz
- ld a, $8
- ld [wcf18], a
+ ld a, 8
+ ld [wScriptedNPCWalkCounter], a
ld hl, wNPCMovementDirections2Index
inc [hl]
ret
@@ -793,8 +797,8 @@ DoScriptedNPCMovement: ; 5236 (1:5236)
InitScriptedNPCMovement: ; 52a6 (1:52a6)
xor a
ld [wNPCMovementDirections2Index], a
- ld a, $8
- ld [wcf18], a
+ ld a, 8
+ ld [wScriptedNPCWalkCounter], a
jp AnimScriptedNPCMovement
GetSpriteScreenYPointer: ; 52b2 (1:52b2)