pokecrystal-board/engine/movement.asm

864 lines
15 KiB
NASM
Raw Normal View History

2013-07-20 19:34:40 -07:00
MovementPointers: ; 5075
dw Movement_turn_head_down ; 00
dw Movement_turn_head_up ; 01
dw Movement_turn_head_left ; 02
dw Movement_turn_head_right ; 03
dw Movement_half_step_down ; 04
dw Movement_half_step_up ; 05
dw Movement_half_step_left ; 06
dw Movement_half_step_right ; 07
dw Movement_slow_step_down ; 08
dw Movement_slow_step_up ; 09
dw Movement_slow_step_left ; 0a
dw Movement_slow_step_right ; 0b
dw Movement_step_down ; 0c
dw Movement_step_up ; 0d
dw Movement_step_left ; 0e
dw Movement_step_right ; 0f
dw Movement_big_step_down ; 10
dw Movement_big_step_up ; 11
dw Movement_big_step_left ; 12
dw Movement_big_step_right ; 13
dw Movement_slow_slide_step_down ; 14
dw Movement_slow_slide_step_up ; 15
dw Movement_slow_slide_step_left ; 16
dw Movement_slow_slide_step_right ; 17
dw Movement_slide_step_down ; 18
dw Movement_slide_step_up ; 19
dw Movement_slide_step_left ; 1a
dw Movement_slide_step_right ; 1b
dw Movement_fast_slide_step_down ; 1c
dw Movement_fast_slide_step_up ; 1d
dw Movement_fast_slide_step_left ; 1e
dw Movement_fast_slide_step_right ; 1f
dw Movement_turn_away_down ; 20
dw Movement_turn_away_up ; 21
dw Movement_turn_away_left ; 22
dw Movement_turn_away_right ; 23
dw Movement_turn_in_down ; 24
dw Movement_turn_in_up ; 25
dw Movement_turn_in_left ; 26
dw Movement_turn_in_right ; 27
dw Movement_turn_waterfall_down ; 28
dw Movement_turn_waterfall_up ; 29
dw Movement_turn_waterfall_left ; 2a
dw Movement_turn_waterfall_right ; 2b
dw Movement_slow_jump_step_down ; 2c
dw Movement_slow_jump_step_up ; 2d
dw Movement_slow_jump_step_left ; 2e
dw Movement_slow_jump_step_right ; 2f
dw Movement_jump_step_down ; 30
dw Movement_jump_step_up ; 31
dw Movement_jump_step_left ; 32
dw Movement_jump_step_right ; 33
dw Movement_fast_jump_step_down ; 34
dw Movement_fast_jump_step_up ; 35
dw Movement_fast_jump_step_left ; 36
dw Movement_fast_jump_step_right ; 37
dw Movement_38 ; 38
dw Movement_39 ; 39
dw Movement_remove_fixed_facing ; 3a
dw Movement_fix_facing ; 3b
2015-11-15 18:28:15 -08:00
dw Movement_show_person ; 3c
dw Movement_hide_person ; 3d
2015-11-11 20:38:57 -08:00
dw Movement_step_sleep_1 ; 3e
dw Movement_step_sleep_2 ; 3f
dw Movement_step_sleep_3 ; 40
dw Movement_step_sleep_4 ; 41
dw Movement_step_sleep_5 ; 42
dw Movement_step_sleep_6 ; 43
dw Movement_step_sleep_7 ; 44
dw Movement_step_sleep_8 ; 45
dw Movement_step_sleep ; 46
dw Movement_step_end ; 47
dw Movement_48 ; 48
dw Movement_remove_person ; 49
2015-11-11 20:38:57 -08:00
dw Movement_step_loop ; 4a
dw Movement_4b ; 4b
dw Movement_teleport_from ; 4c
dw Movement_teleport_to ; 4d
dw Movement_skyfall ; 4e
2015-11-15 18:28:15 -08:00
dw Movement_step_dig ; 4f
dw Movement_step_bump ; 50
2015-11-11 20:38:57 -08:00
dw Movement_fish_got_bite ; 51
dw Movement_fish_cast_rod ; 52
dw Movement_hide_emote ; 53
dw Movement_show_emote ; 54
dw Movement_step_shake ; 55
dw Movement_56 ; 56
2015-11-11 20:38:57 -08:00
dw Movement_rock_smash ; 57
2015-11-16 08:53:26 -08:00
dw Movement_return_dig ; 58
dw Movement_59 ; 59
2013-07-20 19:34:40 -07:00
; 5129
Movement_teleport_from: ; 5129
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
ld [hl], STEP_TYPE_TELEPORT_FROM
2013-07-20 19:34:40 -07:00
ret
; 5130
Movement_teleport_to: ; 5130
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
ld [hl], STEP_TYPE_TELEPORT_TO
2013-07-20 19:34:40 -07:00
ret
; 5137
Movement_skyfall: ; 5137
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
ld [hl], STEP_TYPE_SKYFALL
2013-07-20 19:34:40 -07:00
ret
; 513e
Movement_59: ; 513e
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], STEP_TYPE_19
2013-07-20 19:34:40 -07:00
ret
; 5145
2015-11-15 18:28:15 -08:00
Movement_step_dig: ; 5145
2013-07-20 19:34:40 -07:00
call GetSpriteDirection
rlca
rlca
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_STEP_FRAME
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_SPIN
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], STEP_TYPE_03
ld hl, OBJECT_DIRECTION_WALKING
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-11 20:38:57 -08:00
ld [hl], STANDING
2013-07-20 19:34:40 -07:00
ret
; 516a
2015-11-15 18:28:15 -08:00
Movement_return_dig: ; 516a
2013-07-20 19:34:40 -07:00
call GetSpriteDirection
rlca
rlca
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_STEP_FRAME
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
ld hl, OBJECT_DIRECTION_WALKING
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-11 20:38:57 -08:00
ld [hl], STANDING
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_RETURN_DIG
2013-07-20 19:34:40 -07:00
ret
; 5189
2015-11-11 20:38:57 -08:00
Movement_fish_got_bite: ; 5189
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_FISHING
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_GOT_BITE
2013-07-20 19:34:40 -07:00
ret
; 5196
2015-11-11 20:38:57 -08:00
Movement_rock_smash: ; 5196
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STAND
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_ROCK_SMASH
2013-07-20 19:34:40 -07:00
ret
; 51ab
2015-11-11 20:38:57 -08:00
Movement_fish_cast_rod: ; 51ab
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_FISHING
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_STANDING
2013-07-20 19:34:40 -07:00
ret
; 51b8
2015-11-11 20:38:57 -08:00
Movement_step_loop: ; 51b8
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], $0
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 51c1
Movement_step_end: ; 51c1
2015-11-02 08:15:32 -08:00
call RestoreDefaultMovement
ld hl, OBJECT_MOVEMENTTYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], $0
2015-11-11 20:38:57 -08:00
2013-07-20 19:34:40 -07:00
ld hl, VramState
res 7, [hl]
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_STANDING
2013-07-20 19:34:40 -07:00
ret
; 51db
Movement_48: ; 51db
2015-11-02 08:15:32 -08:00
call RestoreDefaultMovement
ld hl, OBJECT_MOVEMENTTYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], $0
2015-11-11 20:38:57 -08:00
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], STEP_TYPE_03
2015-11-11 20:38:57 -08:00
2013-07-20 19:34:40 -07:00
ld hl, VramState
res 7, [hl]
ret
; 51fd
Movement_remove_person: ; 51fd
2013-12-23 01:39:26 -08:00
call Function4357
2015-11-02 08:15:32 -08:00
ld hl, wObjectFollow_Leader
ld a, [hMapObjectIndexBuffer]
2013-07-20 19:34:40 -07:00
cp [hl]
2015-11-11 20:38:57 -08:00
jr nz, .not_leading
ld [hl], -1
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
.not_leading
2013-07-20 19:34:40 -07:00
ld hl, VramState
res 7, [hl]
ret
; 5210
Movement_4b: ; 5210
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STAND
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], STEP_TYPE_04
2015-11-11 20:38:57 -08:00
2013-07-20 19:34:40 -07:00
ld hl, VramState
res 7, [hl]
ret
; 5222
2015-11-11 20:38:57 -08:00
Movement_step_sleep_1: ; 5222
ld a, 1
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_2: ; 5226
ld a, 2
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_3: ; 522a
ld a, 3
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_4: ; 522e
ld a, 4
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_5: ; 5232
ld a, 5
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_6: ; 5236
ld a, 6
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_7: ; 523a
ld a, 7
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
2015-11-11 20:38:57 -08:00
Movement_step_sleep_8: ; 523e
ld a, 8
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
Movement_step_sleep: ; 5242
; parameters:
; duration (DecimalParam)
call GetMovementByte
jr Movement_step_sleep_common
2013-07-20 19:34:40 -07:00
Movement_step_sleep_common: ; 5247
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], STEP_TYPE_03
2015-11-11 20:38:57 -08:00
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STAND
2015-11-11 20:38:57 -08:00
ld hl, OBJECT_DIRECTION_WALKING
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-11 20:38:57 -08:00
ld [hl], STANDING
2013-07-20 19:34:40 -07:00
ret
; 525f
Movement_step_bump: ; 525f
2015-11-15 18:28:15 -08:00
ld a, 1
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_BUMP
2015-11-15 18:28:15 -08:00
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_BUMP
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_DIRECTION_WALKING
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-11 20:38:57 -08:00
ld [hl], STANDING
2013-07-20 19:34:40 -07:00
ret
; 5279
Movement_56: ; 5279
ld a, 24
ld hl, OBJECT_STEP_DURATION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], STEP_TYPE_03
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], PERSON_ACTION_0B
ld hl, OBJECT_DIRECTION_WALKING
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-11 20:38:57 -08:00
ld [hl], STANDING
2013-07-20 19:34:40 -07:00
ret
; 5293
Movement_38: ; 5293
ld hl, OBJECT_FLAGS1
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
res SLIDING, [hl]
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 529c
Movement_39: ; 529c
ld hl, OBJECT_FLAGS1
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
set SLIDING, [hl]
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52a5
Movement_remove_fixed_facing: ; 52a5
ld hl, OBJECT_FLAGS1
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-14 11:41:47 -08:00
res FIXED_FACING, [hl]
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52ae
Movement_fix_facing: ; 52ae
ld hl, OBJECT_FLAGS1
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-14 11:41:47 -08:00
set FIXED_FACING, [hl]
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52b7
2015-11-15 18:28:15 -08:00
Movement_show_person: ; 52b7
ld hl, OBJECT_FLAGS1
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
res INVISIBLE, [hl]
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52c0
Movement_hide_person: ; 52c0
ld hl, OBJECT_FLAGS1
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-15 18:28:15 -08:00
set INVISIBLE, [hl]
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52c9
Movement_hide_emote: ; 52c9
2015-11-14 11:41:47 -08:00
call DespawnEmote
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52cf
Movement_show_emote: ; 52cf
2015-11-14 11:41:47 -08:00
call SpawnEmote
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52d5
Movement_step_shake: ; 52d5
; parameters:
; displacement (DecimalParam)
call GetMovementByte
2015-11-14 11:41:47 -08:00
call ShakeScreen
2015-11-11 20:38:57 -08:00
jp ContinueReadingMovement
2013-07-20 19:34:40 -07:00
; 52de
Movement_turn_head_down: ; 52de
ld a, OW_DOWN
jr TurnHead
2013-07-20 19:34:40 -07:00
Movement_turn_head_up: ; 52e2
ld a, OW_UP
jr TurnHead
2013-07-20 19:34:40 -07:00
Movement_turn_head_left: ; 52e6
ld a, OW_LEFT
jr TurnHead
2013-07-20 19:34:40 -07:00
Movement_turn_head_right: ; 52ea
ld a, OW_RIGHT
jr TurnHead
2013-07-20 19:34:40 -07:00
TurnHead: ; 52ee
ld hl, OBJECT_FACING
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STAND
ld hl, OBJECT_DIRECTION_WALKING
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-11 20:38:57 -08:00
ld [hl], STANDING
2013-07-20 19:34:40 -07:00
ret
; 5300
Movement_slow_step_down: ; 5300
ld a, STEP_SLOW << 2 | DOWN
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5305
Movement_slow_step_up: ; 5305
ld a, STEP_SLOW << 2 | UP
jp NormalStep
2013-07-20 19:34:40 -07:00
; 530a
Movement_slow_step_left: ; 530a
ld a, STEP_SLOW << 2 | LEFT
jp NormalStep
2013-07-20 19:34:40 -07:00
; 530f
Movement_slow_step_right: ; 530f
ld a, STEP_SLOW << 2 | RIGHT
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5314
Movement_step_down: ; 5314
ld a, STEP_WALK << 2 | DOWN
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5319
Movement_step_up: ; 5319
ld a, STEP_WALK << 2 | UP
jp NormalStep
2013-07-20 19:34:40 -07:00
; 531e
Movement_step_left: ; 531e
ld a, STEP_WALK << 2 | LEFT
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5323
Movement_step_right: ; 5323
ld a, STEP_WALK << 2 | RIGHT
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5328
Movement_big_step_down: ; 5328
ld a, STEP_BIKE << 2 | DOWN
jp NormalStep
2013-07-20 19:34:40 -07:00
; 532d
Movement_big_step_up: ; 532d
ld a, STEP_BIKE << 2 | UP
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5332
Movement_big_step_left: ; 5332
ld a, STEP_BIKE << 2 | LEFT
jp NormalStep
2013-07-20 19:34:40 -07:00
; 5337
Movement_big_step_right: ; 5337
ld a, STEP_BIKE << 2 | RIGHT
jp NormalStep
2013-07-20 19:34:40 -07:00
; 533c
Movement_turn_away_down: ; 533c
ld a, STEP_SLOW << 2 | DOWN
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5341
Movement_turn_away_up: ; 5341
ld a, STEP_SLOW << 2 | UP
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5346
Movement_turn_away_left: ; 5346
ld a, STEP_SLOW << 2 | LEFT
jp TurningStep
2013-07-20 19:34:40 -07:00
; 534b
Movement_turn_away_right: ; 534b
ld a, STEP_SLOW << 2 | RIGHT
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5350
Movement_turn_in_down: ; 5350
ld a, STEP_WALK << 2 | DOWN
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5355
Movement_turn_in_up: ; 5355
ld a, STEP_WALK << 2 | UP
jp TurningStep
2013-07-20 19:34:40 -07:00
; 535a
Movement_turn_in_left: ; 535a
ld a, STEP_WALK << 2 | LEFT
jp TurningStep
2013-07-20 19:34:40 -07:00
; 535f
Movement_turn_in_right: ; 535f
ld a, STEP_WALK << 2 | RIGHT
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5364
Movement_turn_waterfall_down: ; 5364
ld a, STEP_BIKE << 2 | DOWN
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5369
Movement_turn_waterfall_up: ; 5369
ld a, STEP_BIKE << 2 | UP
jp TurningStep
2013-07-20 19:34:40 -07:00
; 536e
Movement_turn_waterfall_left: ; 536e
ld a, STEP_BIKE << 2 | LEFT
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5373
Movement_turn_waterfall_right: ; 5373
ld a, STEP_BIKE << 2 | RIGHT
jp TurningStep
2013-07-20 19:34:40 -07:00
; 5378
Movement_slow_slide_step_down: ; 5378
ld a, STEP_SLOW << 2 | DOWN
jp SlideStep
2013-07-20 19:34:40 -07:00
; 537d
Movement_slow_slide_step_up: ; 537d
ld a, STEP_SLOW << 2 | UP
jp SlideStep
2013-07-20 19:34:40 -07:00
; 5382
Movement_slow_slide_step_left: ; 5382
ld a, STEP_SLOW << 2 | LEFT
jp SlideStep
2013-07-20 19:34:40 -07:00
; 5387
Movement_slow_slide_step_right: ; 5387
ld a, STEP_SLOW << 2 | RIGHT
jp SlideStep
2013-07-20 19:34:40 -07:00
; 538c
Movement_slide_step_down: ; 538c
ld a, STEP_WALK << 2 | DOWN
jp SlideStep
2013-07-20 19:34:40 -07:00
; 5391
Movement_slide_step_up: ; 5391
ld a, STEP_WALK << 2 | UP
jp SlideStep
2013-07-20 19:34:40 -07:00
; 5396
Movement_slide_step_left: ; 5396
ld a, STEP_WALK << 2 | LEFT
jp SlideStep
2013-07-20 19:34:40 -07:00
; 539b
Movement_slide_step_right: ; 539b
ld a, STEP_WALK << 2 | RIGHT
jp SlideStep
2013-07-20 19:34:40 -07:00
; 53a0
Movement_fast_slide_step_down: ; 53a0
ld a, STEP_BIKE << 2 | DOWN
jp SlideStep
2013-07-20 19:34:40 -07:00
; 53a5
Movement_fast_slide_step_up: ; 53a5
ld a, STEP_BIKE << 2 | UP
jp SlideStep
2013-07-20 19:34:40 -07:00
; 53aa
Movement_fast_slide_step_left: ; 53aa
ld a, STEP_BIKE << 2 | LEFT
jp SlideStep
2013-07-20 19:34:40 -07:00
; 53af
Movement_fast_slide_step_right: ; 53af
ld a, STEP_BIKE << 2 | RIGHT
jp SlideStep
2013-07-20 19:34:40 -07:00
; 53b4
Movement_slow_jump_step_down: ; 53b4
ld a, STEP_SLOW << 2 | DOWN
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53b9
Movement_slow_jump_step_up: ; 53b9
ld a, STEP_SLOW << 2 | UP
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53be
Movement_slow_jump_step_left: ; 53be
ld a, STEP_SLOW << 2 | LEFT
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53c3
Movement_slow_jump_step_right: ; 53c3
ld a, STEP_SLOW << 2 | RIGHT
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53c8
Movement_jump_step_down: ; 53c8
ld a, STEP_WALK << 2 | DOWN
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53cd
Movement_jump_step_up: ; 53cd
ld a, STEP_WALK << 2 | UP
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53d2
Movement_jump_step_left: ; 53d2
ld a, STEP_WALK << 2 | LEFT
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53d7
Movement_jump_step_right: ; 53d7
ld a, STEP_WALK << 2 | RIGHT
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53dc
Movement_fast_jump_step_down: ; 53dc
ld a, STEP_BIKE << 2 | DOWN
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53e1
Movement_fast_jump_step_up: ; 53e1
ld a, STEP_BIKE << 2 | UP
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53e6
Movement_fast_jump_step_left: ; 53e6
ld a, STEP_BIKE << 2 | LEFT
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53eb
Movement_fast_jump_step_right: ; 53eb
ld a, STEP_BIKE << 2 | RIGHT
jp JumpStep
2013-07-20 19:34:40 -07:00
; 53f0
Movement_half_step_down: ; 53f0
ld a, OW_DOWN
jr HalfStep
2013-07-20 19:34:40 -07:00
Movement_half_step_up: ; 53f4
ld a, OW_UP
jr HalfStep
2013-07-20 19:34:40 -07:00
Movement_half_step_left: ; 53f8
ld a, OW_LEFT
jr HalfStep
2013-07-20 19:34:40 -07:00
Movement_half_step_right: ; 53fc
ld a, OW_RIGHT
jr HalfStep
2013-07-20 19:34:40 -07:00
HalfStep: ; 5400
ld hl, OBJECT_29
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], a
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STEP
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_HALF_STEP
2013-07-20 19:34:40 -07:00
ret
; 5412
NormalStep: ; 5412
2013-12-23 01:39:26 -08:00
call Function4690
call Function463f
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STEP
ld hl, OBJECT_NEXT_TILE
2013-07-20 19:34:40 -07:00
add hl, bc
ld a, [hl]
call CheckSuperTallGrassTile
jr z, .shake_grass
2013-12-23 01:39:26 -08:00
call CheckGrassTile
jr c, .skip_grass
2013-07-20 19:34:40 -07:00
.shake_grass
2015-11-14 11:41:47 -08:00
call ShakeGrass
2013-07-20 19:34:40 -07:00
.skip_grass
2015-11-16 08:53:26 -08:00
ld hl, wCenteredObject
2015-11-02 08:15:32 -08:00
ld a, [hMapObjectIndexBuffer]
2013-07-20 19:34:40 -07:00
cp [hl]
2015-11-16 08:53:26 -08:00
jr z, .player
2013-12-23 01:39:26 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_NPC_WALK
2013-07-20 19:34:40 -07:00
ret
2015-11-16 08:53:26 -08:00
.player
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_PLAYER_WALK
2013-07-20 19:34:40 -07:00
ret
; 5446
TurningStep: ; 5446
2013-12-23 01:39:26 -08:00
call Function4690
call Function463f
2015-11-15 18:28:15 -08:00
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_SPIN
2015-11-15 18:28:15 -08:00
2015-11-16 08:53:26 -08:00
ld hl, wCenteredObject
2015-11-02 08:15:32 -08:00
ld a, [hMapObjectIndexBuffer]
2013-07-20 19:34:40 -07:00
cp [hl]
2015-11-16 08:53:26 -08:00
jr z, .player
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_NPC_WALK
2013-07-20 19:34:40 -07:00
ret
2015-11-16 08:53:26 -08:00
.player
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_PLAYER_WALK
2013-07-20 19:34:40 -07:00
ret
; 5468
SlideStep: ; 5468
2013-12-23 01:39:26 -08:00
call Function4690
call Function463f
2015-11-15 18:28:15 -08:00
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STAND
2015-11-15 18:28:15 -08:00
2015-11-16 08:53:26 -08:00
ld hl, wCenteredObject
2015-11-02 08:15:32 -08:00
ld a, [hMapObjectIndexBuffer]
2013-07-20 19:34:40 -07:00
cp [hl]
2015-11-16 08:53:26 -08:00
jr z, .player
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_NPC_WALK
2013-07-20 19:34:40 -07:00
ret
2015-11-16 08:53:26 -08:00
.player
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_PLAYER_WALK
2013-07-20 19:34:40 -07:00
ret
; 548a
JumpStep: ; 548a
2013-12-23 01:39:26 -08:00
call Function4690
ld hl, OBJECT_31
2013-07-20 19:34:40 -07:00
add hl, bc
ld [hl], $0
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_FLAGS2
2013-07-20 19:34:40 -07:00
add hl, bc
res 3, [hl]
2015-11-15 18:28:15 -08:00
2015-11-14 11:41:47 -08:00
ld hl, OBJECT_ACTION
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], PERSON_ACTION_STEP
2015-11-15 18:28:15 -08:00
2015-11-14 11:41:47 -08:00
call SpawnShadow
2015-11-15 18:28:15 -08:00
2015-11-16 08:53:26 -08:00
ld hl, wCenteredObject
2015-11-02 08:15:32 -08:00
ld a, [hMapObjectIndexBuffer]
2013-07-20 19:34:40 -07:00
cp [hl]
2015-11-16 08:53:26 -08:00
jr z, .player
2015-11-15 18:28:15 -08:00
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_NPC_JUMP
2013-07-20 19:34:40 -07:00
ret
2015-11-16 08:53:26 -08:00
.player
ld hl, OBJECT_STEP_TYPE
2013-07-20 19:34:40 -07:00
add hl, bc
2015-11-16 08:53:26 -08:00
ld [hl], STEP_TYPE_PLAYER_JUMP
2013-07-20 19:34:40 -07:00
ret
; 54b8