From d143b22a23e66c6e6c161aaeeac86bb408188520 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 17 Sep 2020 20:34:27 -0400 Subject: [PATCH] monkey: can now face all directions --- monkey/guy.brush | 2 +- monkey/keyboard.s | 24 ++++++++++++++++++------ monkey/monkey.s | 14 +++++++++++--- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/monkey/guy.brush b/monkey/guy.brush index 41b6e4fb..e08234e4 100644 --- a/monkey/guy.brush +++ b/monkey/guy.brush @@ -39,7 +39,7 @@ guybrush_down2_sprite: .byte $dA,$dA,$dA .byte $dd,$bb,$dd .byte $fA,$6b,$fA -.byte $bf,$00,$bf +.byte $bf,$0f,$bf .byte $0b,$00,$Ab .byte $f0,$AA,$f0 .byte $A0,$AA,$0f diff --git a/monkey/keyboard.s b/monkey/keyboard.s index ce976c0d..09a52ec0 100644 --- a/monkey/keyboard.s +++ b/monkey/keyboard.s @@ -278,12 +278,25 @@ no_keypress: ;============================ handle_return: + ; check if walking verb + + jsr set_destination + + + rts + + ;============================== + ; set destination + ;============================== +set_destination: lda CURSOR_X sta DESTINATION_X lda CURSOR_Y and #$FE ; has to be even sta DESTINATION_Y + ; FIXME: adjust for bounds + rts @@ -324,6 +337,9 @@ change_location: asl tay + ;========================== + ; update location pointer + lda (LOCATIONS_L),Y sta LOCATION_STRUCT_L iny @@ -331,13 +347,9 @@ change_location: sta LOCATION_STRUCT_H - ;============================= - ; change direction - ;============================= -change_direction: + ;========================== + ; load new background - -done_split: ldy #0 lda (LOCATION_STRUCT_L),Y diff --git a/monkey/monkey.s b/monkey/monkey.s index 9e0ff103..2590c39e 100644 --- a/monkey/monkey.s +++ b/monkey/monkey.s @@ -118,9 +118,13 @@ move_guybrush_x: beq guybrush_lr_done bcs move_guybrush_right move_guybrush_left: + lda #DIR_LEFT + sta GUYBRUSH_DIRECTION dec GUYBRUSH_X jmp move_guybrush_y move_guybrush_right: + lda #DIR_RIGHT + sta GUYBRUSH_DIRECTION inc GUYBRUSH_X jmp move_guybrush_y @@ -135,12 +139,16 @@ move_guybrush_y: cmp GUYBRUSH_Y beq guybrush_ud_done - bcs move_guybrush_up -move_guybrush_down: + bcs move_guybrush_down +move_guybrush_up: + lda #DIR_UP + sta GUYBRUSH_DIRECTION dec GUYBRUSH_Y dec GUYBRUSH_Y jmp done_move_guybrush -move_guybrush_up: +move_guybrush_down: + lda #DIR_DOWN + sta GUYBRUSH_DIRECTION inc GUYBRUSH_Y inc GUYBRUSH_Y jmp done_move_guybrush