#define CURSOR_MOVE_SPEED 8
; init the player
-player_init:
+cursor_player_init:
ld de, st_cursor
ld hl, actor_player
ld bc, st_size
; actor table
; inputs:
; hl: pointer to player memory
-player_update:
- call handle_inputs
+cursor_player_update:
+ call cursor_handle_inputs
push bc
- call player_draw_cursor
+ call cursor_player_draw_cursor
pop bc
ret
; updates the cursor
; sprites
-player_draw_cursor:
+cursor_player_draw_cursor:
@draw_cursor:
; draw cursor
ld a, [scroll_y]
ldnull bc
ret
-handle_inputs:
+cursor_handle_inputs:
input_held BTNA
jr z, @not_a REL
; TODO: remove demo actor load
input_held BTNDOWN
jr z, @notdown REL
- call try_abort_move_down
+ call cursor_try_abort_move_down
jp z, @done
cursor_move_direction cursor_move_y, cursor_move_x, 1
input_held BTNUP
jr z, @notup REL
- call try_abort_move_up
+ call cursor_try_abort_move_up
jp z, @done
cursor_move_direction cursor_move_y, cursor_move_x, NEGATE
input_held BTNLEFT
jr z, @notleft REL
- call try_abort_move_left
+ call cursor_try_abort_move_left
jr z, @done REL
cursor_move_direction cursor_move_x, cursor_move_y, NEGATE
input_held BTNRIGHT
jr z, @notright REL
- call try_abort_move_right
+ call cursor_try_abort_move_right
jr z, @done REL
cursor_move_direction cursor_move_x, cursor_move_y, 1
call scroll_update
ret
-try_abort_move_left:
+cursor_try_abort_move_left:
ld b, CURSOR_MIN_X
ld hl, cursor_x
jp try_abort_move_at
-try_abort_move_right:
+cursor_try_abort_move_right:
ld b, CURSOR_MAX_X
ld hl, cursor_x
jp try_abort_move_at
-try_abort_move_up:
+cursor_try_abort_move_up:
ld b, CURSOR_MIN_Y
ld hl, cursor_y
jp try_abort_move_at
-try_abort_move_down:
+cursor_try_abort_move_down:
ld b, CURSOR_MAX_Y
ld hl, cursor_y
jp try_abort_move_at
; de = actor ptr
pop de
push de
- rst 0x08
+ call_hl
pop hl ; hl = original actor ptr = dst
st_def 0xFF, st_null_fn, st_null
st_cursor:
- st_def 0x00, player_update, st_cursor
+ st_def 0x00, cursor_player_update, st_cursor
st_cursor_draw:
- st_def 0x00, player_draw_cursor, st_cursor
+ st_def 0x00, cursor_player_draw_cursor, st_cursor
st_cursor_delay:
st_def CURSOR_MOVE_TIMER, st_null_fn, st_cursor