summaryrefslogtreecommitdiff
path: root/engine/overworld/movement.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/movement.asm')
-rw-r--r--engine/overworld/movement.asm298
1 files changed, 105 insertions, 193 deletions
diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm
index 3dbb0b83a..f7054c680 100644
--- a/engine/overworld/movement.asm
+++ b/engine/overworld/movement.asm
@@ -1,4 +1,4 @@
-MovementPointers: ; 5075
+MovementPointers:
; entries correspond to macros/scripts/movement.asm enumeration
dw Movement_turn_head_down ; 00
dw Movement_turn_head_up ; 01
@@ -90,38 +90,32 @@ MovementPointers: ; 5075
dw Movement_rock_smash ; 57
dw Movement_return_dig ; 58
dw Movement_skyfall_top ; 59
-; 5129
-
-Movement_teleport_from: ; 5129
+Movement_teleport_from:
ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], STEP_TYPE_TELEPORT_FROM
ret
-; 5130
-Movement_teleport_to: ; 5130
+Movement_teleport_to:
ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], STEP_TYPE_TELEPORT_TO
ret
-; 5137
-Movement_skyfall: ; 5137
+Movement_skyfall:
ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], STEP_TYPE_SKYFALL
ret
-; 513e
-Movement_skyfall_top: ; 513e
+Movement_skyfall_top:
ld hl, OBJECT_STEP_TYPE
add hl, bc
ld [hl], STEP_TYPE_SKYFALL_TOP
ret
-; 5145
-Movement_step_dig: ; 5145
+Movement_step_dig:
call GetSpriteDirection
rlca
rlca
@@ -142,9 +136,8 @@ Movement_step_dig: ; 5145
add hl, bc
ld [hl], STANDING
ret
-; 516a
-Movement_return_dig: ; 516a
+Movement_return_dig:
call GetSpriteDirection
rlca
rlca
@@ -162,9 +155,8 @@ Movement_return_dig: ; 516a
add hl, bc
ld [hl], STEP_TYPE_RETURN_DIG
ret
-; 5189
-Movement_fish_got_bite: ; 5189
+Movement_fish_got_bite:
ld hl, OBJECT_ACTION
add hl, bc
ld [hl], OBJECT_ACTION_FISHING
@@ -172,9 +164,8 @@ Movement_fish_got_bite: ; 5189
add hl, bc
ld [hl], STEP_TYPE_GOT_BITE
ret
-; 5196
-Movement_rock_smash: ; 5196
+Movement_rock_smash:
call JumpMovementPointer
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -186,9 +177,8 @@ Movement_rock_smash: ; 5196
add hl, bc
ld [hl], STEP_TYPE_ROCK_SMASH
ret
-; 51ab
-Movement_fish_cast_rod: ; 51ab
+Movement_fish_cast_rod:
ld hl, OBJECT_ACTION
add hl, bc
ld [hl], OBJECT_ACTION_FISHING
@@ -196,16 +186,14 @@ Movement_fish_cast_rod: ; 51ab
add hl, bc
ld [hl], STEP_TYPE_SLEEP
ret
-; 51b8
-Movement_step_loop: ; 51b8
+Movement_step_loop:
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
jp ContinueReadingMovement
-; 51c1
-Movement_step_end: ; 51c1
+Movement_step_end:
call RestoreDefaultMovement
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
@@ -222,9 +210,8 @@ Movement_step_end: ; 51c1
add hl, bc
ld [hl], STEP_TYPE_SLEEP
ret
-; 51db
-Movement_48: ; 51db
+Movement_48:
call RestoreDefaultMovement
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
@@ -246,9 +233,8 @@ Movement_48: ; 51db
ld hl, wVramState
res 7, [hl]
ret
-; 51fd
-Movement_remove_object: ; 51fd
+Movement_remove_object:
call DeleteMapObject
ld hl, wObjectFollow_Leader
ld a, [hMapObjectIndexBuffer]
@@ -260,9 +246,8 @@ Movement_remove_object: ; 51fd
ld hl, wVramState
res 7, [hl]
ret
-; 5210
-Movement_4b: ; 5210
+Movement_4b:
ld hl, OBJECT_ACTION
add hl, bc
ld [hl], OBJECT_ACTION_STAND
@@ -274,48 +259,47 @@ Movement_4b: ; 5210
ld hl, wVramState
res 7, [hl]
ret
-; 5222
-Movement_step_sleep_1: ; 5222
+Movement_step_sleep_1:
ld a, 1
jr Movement_step_sleep_common
-Movement_step_sleep_2: ; 5226
+Movement_step_sleep_2:
ld a, 2
jr Movement_step_sleep_common
-Movement_step_sleep_3: ; 522a
+Movement_step_sleep_3:
ld a, 3
jr Movement_step_sleep_common
-Movement_step_sleep_4: ; 522e
+Movement_step_sleep_4:
ld a, 4
jr Movement_step_sleep_common
-Movement_step_sleep_5: ; 5232
+Movement_step_sleep_5:
ld a, 5
jr Movement_step_sleep_common
-Movement_step_sleep_6: ; 5236
+Movement_step_sleep_6:
ld a, 6
jr Movement_step_sleep_common
-Movement_step_sleep_7: ; 523a
+Movement_step_sleep_7:
ld a, 7
jr Movement_step_sleep_common
-Movement_step_sleep_8: ; 523e
+Movement_step_sleep_8:
ld a, 8
jr Movement_step_sleep_common
-Movement_step_sleep: ; 5242
+Movement_step_sleep:
; parameters:
; duration (DecimalParam)
call JumpMovementPointer
jr Movement_step_sleep_common
-Movement_step_sleep_common: ; 5247
+Movement_step_sleep_common:
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
@@ -332,9 +316,8 @@ Movement_step_sleep_common: ; 5247
add hl, bc
ld [hl], STANDING
ret
-; 525f
-Movement_step_bump: ; 525f
+Movement_step_bump:
ld a, 1
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -352,9 +335,8 @@ Movement_step_bump: ; 525f
add hl, bc
ld [hl], STANDING
ret
-; 5279
-Movement_tree_shake: ; 5279
+Movement_tree_shake:
ld a, 24
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -372,86 +354,76 @@ Movement_tree_shake: ; 5279
add hl, bc
ld [hl], STANDING
ret
-; 5293
-Movement_remove_sliding: ; 5293
+Movement_remove_sliding:
ld hl, OBJECT_FLAGS1
add hl, bc
- res SLIDING, [hl]
+ res SLIDING_F, [hl]
jp ContinueReadingMovement
-; 529c
-Movement_set_sliding: ; 529c
+Movement_set_sliding:
ld hl, OBJECT_FLAGS1
add hl, bc
- set SLIDING, [hl]
+ set SLIDING_F, [hl]
jp ContinueReadingMovement
-; 52a5
-Movement_remove_fixed_facing: ; 52a5
+Movement_remove_fixed_facing:
ld hl, OBJECT_FLAGS1
add hl, bc
- res FIXED_FACING, [hl]
+ res FIXED_FACING_F, [hl]
jp ContinueReadingMovement
-; 52ae
-Movement_fix_facing: ; 52ae
+Movement_fix_facing:
ld hl, OBJECT_FLAGS1
add hl, bc
- set FIXED_FACING, [hl]
+ set FIXED_FACING_F, [hl]
jp ContinueReadingMovement
-; 52b7
-Movement_show_object: ; 52b7
+Movement_show_object:
ld hl, OBJECT_FLAGS1
add hl, bc
- res INVISIBLE, [hl]
+ res INVISIBLE_F, [hl]
jp ContinueReadingMovement
-; 52c0
-Movement_hide_object: ; 52c0
+Movement_hide_object:
ld hl, OBJECT_FLAGS1
add hl, bc
- set INVISIBLE, [hl]
+ set INVISIBLE_F, [hl]
jp ContinueReadingMovement
-; 52c9
-Movement_hide_emote: ; 52c9
+Movement_hide_emote:
call DespawnEmote
jp ContinueReadingMovement
-; 52cf
-Movement_show_emote: ; 52cf
+Movement_show_emote:
call SpawnEmote
jp ContinueReadingMovement
-; 52d5
-Movement_step_shake: ; 52d5
+Movement_step_shake:
; parameters:
; displacement (DecimalParam)
call JumpMovementPointer
call ShakeScreen
jp ContinueReadingMovement
-; 52de
-Movement_turn_head_down: ; 52de
+Movement_turn_head_down:
ld a, OW_DOWN
jr TurnHead
-Movement_turn_head_up: ; 52e2
+Movement_turn_head_up:
ld a, OW_UP
jr TurnHead
-Movement_turn_head_left: ; 52e6
+Movement_turn_head_left:
ld a, OW_LEFT
jr TurnHead
-Movement_turn_head_right: ; 52ea
+Movement_turn_head_right:
ld a, OW_RIGHT
jr TurnHead
-TurnHead: ; 52ee
+TurnHead:
ld hl, OBJECT_FACING
add hl, bc
ld [hl], a
@@ -464,269 +436,216 @@ TurnHead: ; 52ee
add hl, bc
ld [hl], STANDING
ret
-; 5300
-Movement_slow_step_down: ; 5300
+Movement_slow_step_down:
ld a, STEP_SLOW << 2 | DOWN
jp NormalStep
-; 5305
-Movement_slow_step_up: ; 5305
+Movement_slow_step_up:
ld a, STEP_SLOW << 2 | UP
jp NormalStep
-; 530a
-Movement_slow_step_left: ; 530a
+Movement_slow_step_left:
ld a, STEP_SLOW << 2 | LEFT
jp NormalStep
-; 530f
-Movement_slow_step_right: ; 530f
+Movement_slow_step_right:
ld a, STEP_SLOW << 2 | RIGHT
jp NormalStep
-; 5314
-Movement_step_down: ; 5314
+Movement_step_down:
ld a, STEP_WALK << 2 | DOWN
jp NormalStep
-; 5319
-Movement_step_up: ; 5319
+Movement_step_up:
ld a, STEP_WALK << 2 | UP
jp NormalStep
-; 531e
-Movement_step_left: ; 531e
+Movement_step_left:
ld a, STEP_WALK << 2 | LEFT
jp NormalStep
-; 5323
-Movement_step_right: ; 5323
+Movement_step_right:
ld a, STEP_WALK << 2 | RIGHT
jp NormalStep
-; 5328
-Movement_big_step_down: ; 5328
+Movement_big_step_down:
ld a, STEP_BIKE << 2 | DOWN
jp NormalStep
-; 532d
-Movement_big_step_up: ; 532d
+Movement_big_step_up:
ld a, STEP_BIKE << 2 | UP
jp NormalStep
-; 5332
-Movement_big_step_left: ; 5332
+Movement_big_step_left:
ld a, STEP_BIKE << 2 | LEFT
jp NormalStep
-; 5337
-Movement_big_step_right: ; 5337
+Movement_big_step_right:
ld a, STEP_BIKE << 2 | RIGHT
jp NormalStep
-; 533c
-
-Movement_turn_away_down: ; 533c
+Movement_turn_away_down:
ld a, STEP_SLOW << 2 | DOWN
jp TurningStep
-; 5341
-Movement_turn_away_up: ; 5341
+Movement_turn_away_up:
ld a, STEP_SLOW << 2 | UP
jp TurningStep
-; 5346
-Movement_turn_away_left: ; 5346
+Movement_turn_away_left:
ld a, STEP_SLOW << 2 | LEFT
jp TurningStep
-; 534b
-Movement_turn_away_right: ; 534b
+Movement_turn_away_right:
ld a, STEP_SLOW << 2 | RIGHT
jp TurningStep
-; 5350
-Movement_turn_in_down: ; 5350
+Movement_turn_in_down:
ld a, STEP_WALK << 2 | DOWN
jp TurningStep
-; 5355
-Movement_turn_in_up: ; 5355
+Movement_turn_in_up:
ld a, STEP_WALK << 2 | UP
jp TurningStep
-; 535a
-Movement_turn_in_left: ; 535a
+Movement_turn_in_left:
ld a, STEP_WALK << 2 | LEFT
jp TurningStep
-; 535f
-Movement_turn_in_right: ; 535f
+Movement_turn_in_right:
ld a, STEP_WALK << 2 | RIGHT
jp TurningStep
-; 5364
-Movement_turn_waterfall_down: ; 5364
+Movement_turn_waterfall_down:
ld a, STEP_BIKE << 2 | DOWN
jp TurningStep
-; 5369
-Movement_turn_waterfall_up: ; 5369
+Movement_turn_waterfall_up:
ld a, STEP_BIKE << 2 | UP
jp TurningStep
-; 536e
-Movement_turn_waterfall_left: ; 536e
+Movement_turn_waterfall_left:
ld a, STEP_BIKE << 2 | LEFT
jp TurningStep
-; 5373
-Movement_turn_waterfall_right: ; 5373
+Movement_turn_waterfall_right:
ld a, STEP_BIKE << 2 | RIGHT
jp TurningStep
-; 5378
-
-Movement_slow_slide_step_down: ; 5378
+Movement_slow_slide_step_down:
ld a, STEP_SLOW << 2 | DOWN
jp SlideStep
-; 537d
-Movement_slow_slide_step_up: ; 537d
+Movement_slow_slide_step_up:
ld a, STEP_SLOW << 2 | UP
jp SlideStep
-; 5382
-Movement_slow_slide_step_left: ; 5382
+Movement_slow_slide_step_left:
ld a, STEP_SLOW << 2 | LEFT
jp SlideStep
-; 5387
-Movement_slow_slide_step_right: ; 5387
+Movement_slow_slide_step_right:
ld a, STEP_SLOW << 2 | RIGHT
jp SlideStep
-; 538c
-Movement_slide_step_down: ; 538c
+Movement_slide_step_down:
ld a, STEP_WALK << 2 | DOWN
jp SlideStep
-; 5391
-Movement_slide_step_up: ; 5391
+Movement_slide_step_up:
ld a, STEP_WALK << 2 | UP
jp SlideStep
-; 5396
-Movement_slide_step_left: ; 5396
+Movement_slide_step_left:
ld a, STEP_WALK << 2 | LEFT
jp SlideStep
-; 539b
-Movement_slide_step_right: ; 539b
+Movement_slide_step_right:
ld a, STEP_WALK << 2 | RIGHT
jp SlideStep
-; 53a0
-Movement_fast_slide_step_down: ; 53a0
+Movement_fast_slide_step_down:
ld a, STEP_BIKE << 2 | DOWN
jp SlideStep
-; 53a5
-Movement_fast_slide_step_up: ; 53a5
+Movement_fast_slide_step_up:
ld a, STEP_BIKE << 2 | UP
jp SlideStep
-; 53aa
-Movement_fast_slide_step_left: ; 53aa
+Movement_fast_slide_step_left:
ld a, STEP_BIKE << 2 | LEFT
jp SlideStep
-; 53af
-Movement_fast_slide_step_right: ; 53af
+Movement_fast_slide_step_right:
ld a, STEP_BIKE << 2 | RIGHT
jp SlideStep
-; 53b4
-
-Movement_slow_jump_step_down: ; 53b4
+Movement_slow_jump_step_down:
ld a, STEP_SLOW << 2 | DOWN
jp JumpStep
-; 53b9
-Movement_slow_jump_step_up: ; 53b9
+Movement_slow_jump_step_up:
ld a, STEP_SLOW << 2 | UP
jp JumpStep
-; 53be
-Movement_slow_jump_step_left: ; 53be
+Movement_slow_jump_step_left:
ld a, STEP_SLOW << 2 | LEFT
jp JumpStep
-; 53c3
-Movement_slow_jump_step_right: ; 53c3
+Movement_slow_jump_step_right:
ld a, STEP_SLOW << 2 | RIGHT
jp JumpStep
-; 53c8
-Movement_jump_step_down: ; 53c8
+Movement_jump_step_down:
ld a, STEP_WALK << 2 | DOWN
jp JumpStep
-; 53cd
-Movement_jump_step_up: ; 53cd
+Movement_jump_step_up:
ld a, STEP_WALK << 2 | UP
jp JumpStep
-; 53d2
-Movement_jump_step_left: ; 53d2
+Movement_jump_step_left:
ld a, STEP_WALK << 2 | LEFT
jp JumpStep
-; 53d7
-Movement_jump_step_right: ; 53d7
+Movement_jump_step_right:
ld a, STEP_WALK << 2 | RIGHT
jp JumpStep
-; 53dc
-Movement_fast_jump_step_down: ; 53dc
+Movement_fast_jump_step_down:
ld a, STEP_BIKE << 2 | DOWN
jp JumpStep
-; 53e1
-Movement_fast_jump_step_up: ; 53e1
+Movement_fast_jump_step_up:
ld a, STEP_BIKE << 2 | UP
jp JumpStep
-; 53e6
-Movement_fast_jump_step_left: ; 53e6
+Movement_fast_jump_step_left:
ld a, STEP_BIKE << 2 | LEFT
jp JumpStep
-; 53eb
-Movement_fast_jump_step_right: ; 53eb
+Movement_fast_jump_step_right:
ld a, STEP_BIKE << 2 | RIGHT
jp JumpStep
-; 53f0
-
-Movement_turn_step_down: ; 53f0
+Movement_turn_step_down:
ld a, OW_DOWN
jr TurnStep
-Movement_turn_step_up: ; 53f4
+Movement_turn_step_up:
ld a, OW_UP
jr TurnStep
-Movement_turn_step_left: ; 53f8
+Movement_turn_step_left:
ld a, OW_LEFT
jr TurnStep
-Movement_turn_step_right: ; 53fc
+Movement_turn_step_right:
ld a, OW_RIGHT
jr TurnStep
-TurnStep: ; 5400
+TurnStep:
ld hl, OBJECT_1D ; new facing
add hl, bc
ld [hl], a
@@ -739,9 +658,8 @@ TurnStep: ; 5400
add hl, bc
ld [hl], STEP_TYPE_HALF_STEP
ret
-; 5412
-NormalStep: ; 5412
+NormalStep:
call InitStep
call UpdateTallGrassFlags
ld hl, OBJECT_ACTION
@@ -776,9 +694,8 @@ NormalStep: ; 5412
add hl, bc
ld [hl], STEP_TYPE_PLAYER_WALK
ret
-; 5446
-TurningStep: ; 5446
+TurningStep:
call InitStep
call UpdateTallGrassFlags
@@ -801,10 +718,8 @@ TurningStep: ; 5446
add hl, bc
ld [hl], STEP_TYPE_PLAYER_WALK
ret
-; 5468
-
-SlideStep: ; 5468
+SlideStep:
call InitStep
call UpdateTallGrassFlags
@@ -827,10 +742,8 @@ SlideStep: ; 5468
add hl, bc
ld [hl], STEP_TYPE_PLAYER_WALK
ret
-; 548a
-
-JumpStep: ; 548a
+JumpStep:
call InitStep
ld hl, OBJECT_1F
add hl, bc
@@ -838,7 +751,7 @@ JumpStep: ; 548a
ld hl, OBJECT_FLAGS2
add hl, bc
- res OVERHEAD, [hl]
+ res OVERHEAD_F, [hl]
ld hl, OBJECT_ACTION
add hl, bc
@@ -861,4 +774,3 @@ JumpStep: ; 548a
add hl, bc
ld [hl], STEP_TYPE_PLAYER_JUMP
ret
-; 54b8