-#define PLAYER_SPEED 1
+#define PLAYER_SPEED 0x80
; sets up the player actor
player_init:
; returns:
; b/c: new y/x position
player_stage_move_p:
- ld a, [player+act_pos_y]
+ ld a, [player_sub_pixel_y]
add a, b
+ ld [player_sub_pixel_y], a
+ ld a, [player+act_pos_y]
+ adc a, 0
ld b, a
- ld a, [player+act_pos_x]
+ ld a, [player_sub_pixel_x]
add a, c
+ ld [player_sub_pixel_x], a
+ ld a, [player+act_pos_x]
+ adc a, 0
ld c, a
ret
; returns:
; b/c: new y/x position
player_stage_move_n:
- ld a, [player+act_pos_y]
+ ld a, [player_sub_pixel_y]
sub a, b
+ ld [player_sub_pixel_y], a
+ ld a, [player+act_pos_y]
+ sbc a, 0
ld b, a
- ld a, [player+act_pos_x]
+ ld a, [player_sub_pixel_x]
sub a, c
+ ld [player_sub_pixel_x], a
+ ld a, [player+act_pos_x]
+ sbc a, 0
ld c, a
ret
; advance if possible
player_next_scroll_y: .adv 1
-
+; y/x sub pixel movement for player
+player_sub_pixel_y: .adv 1
+player_sub_pixel_x: .adv 1
player: .adv act_size
actors: .adv act_size * ACTS_MAX
map_objs: .adv mo_size * MAP_OBJ_MAX