mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-06 14:30:18 +00:00
monkey: can click on bottom menu now
also fixes an unrelated off-by-one error in the noun code that somehow these changes activated, which was a *huge* pan to track down
This commit is contained in:
parent
57333b52de
commit
37516b2298
@ -280,14 +280,84 @@ no_keypress:
|
|||||||
;============================
|
;============================
|
||||||
handle_return:
|
handle_return:
|
||||||
|
|
||||||
|
; if Y>38 then clicking on verb
|
||||||
|
lda CURSOR_Y
|
||||||
|
cmp #38
|
||||||
|
bcc check_walking ; blt
|
||||||
|
|
||||||
|
lda CURSOR_X
|
||||||
|
clc
|
||||||
|
adc #3 ; get onto screen
|
||||||
|
|
||||||
|
cmp #7
|
||||||
|
bcc menu_col1
|
||||||
|
cmp #16
|
||||||
|
bcc menu_col2
|
||||||
|
cmp #22
|
||||||
|
bcc menu_col3
|
||||||
|
bcs done_click_nochange
|
||||||
|
|
||||||
|
menu_col1:
|
||||||
|
lda CURSOR_Y
|
||||||
|
cmp #40
|
||||||
|
beq menu_col1_row2
|
||||||
|
bcs menu_col1_row3
|
||||||
|
menu_col1_row1:
|
||||||
|
lda #VERB_GIVE
|
||||||
|
jmp done_click_menu
|
||||||
|
menu_col1_row2:
|
||||||
|
lda #VERB_OPEN
|
||||||
|
jmp done_click_menu
|
||||||
|
menu_col1_row3:
|
||||||
|
lda #VERB_CLOSE
|
||||||
|
jmp done_click_menu
|
||||||
|
|
||||||
|
menu_col2:
|
||||||
|
lda CURSOR_Y
|
||||||
|
cmp #40
|
||||||
|
beq menu_col2_row2
|
||||||
|
bcs menu_col2_row3
|
||||||
|
menu_col2_row1:
|
||||||
|
lda #VERB_PICK_UP
|
||||||
|
jmp done_click_menu
|
||||||
|
menu_col2_row2:
|
||||||
|
lda #VERB_LOOK_AT
|
||||||
|
jmp done_click_menu
|
||||||
|
menu_col2_row3:
|
||||||
|
lda #VERB_TALK_TO
|
||||||
|
jmp done_click_menu
|
||||||
|
|
||||||
|
menu_col3:
|
||||||
|
lda CURSOR_Y
|
||||||
|
cmp #40
|
||||||
|
beq menu_col3_row2
|
||||||
|
bcs menu_col3_row3
|
||||||
|
menu_col3_row1:
|
||||||
|
lda #VERB_USE
|
||||||
|
jmp done_click_menu
|
||||||
|
menu_col3_row2:
|
||||||
|
lda #VERB_PUSH
|
||||||
|
jmp done_click_menu
|
||||||
|
menu_col3_row3:
|
||||||
|
lda #VERB_PULL
|
||||||
|
jmp done_click_menu
|
||||||
|
|
||||||
|
|
||||||
|
done_click_menu:
|
||||||
|
sta CURRENT_VERB
|
||||||
|
done_click_nochange:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
check_walking:
|
||||||
; check if walking verb
|
; check if walking verb
|
||||||
lda CURRENT_VERB
|
lda CURRENT_VERB
|
||||||
cmp #VERB_WALK
|
cmp #VERB_WALK
|
||||||
beq action_walk_to
|
beq action_walk_to
|
||||||
|
|
||||||
; otherwise see if there's a noun
|
; otherwise see if there's a noun
|
||||||
lda VALID_NOUN ; 0 means yes for some reason
|
lda VALID_NOUN
|
||||||
beq activate_noun
|
bne activate_noun
|
||||||
|
|
||||||
; wasn't valid, switch to walk
|
; wasn't valid, switch to walk
|
||||||
lda #VERB_WALK
|
lda #VERB_WALK
|
||||||
|
@ -40,6 +40,7 @@ monkey_start:
|
|||||||
sta GUYBRUSH_DIRECTION
|
sta GUYBRUSH_DIRECTION
|
||||||
sta DISPLAY_MESSAGE
|
sta DISPLAY_MESSAGE
|
||||||
sta BAR_DOOR_OPEN
|
sta BAR_DOOR_OPEN
|
||||||
|
sta VALID_NOUN
|
||||||
|
|
||||||
; init cursor
|
; init cursor
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ where_loop:
|
|||||||
lda (LOCATION_STRUCT_L),Y
|
lda (LOCATION_STRUCT_L),Y
|
||||||
sta NOUN_VECTOR_H
|
sta NOUN_VECTOR_H
|
||||||
|
|
||||||
lda #0
|
lda #1
|
||||||
sta VALID_NOUN
|
sta VALID_NOUN
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -69,12 +69,12 @@ where_notyhigh:
|
|||||||
iny
|
iny
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl where_loop
|
bne where_loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
point_nowhere:
|
point_nowhere:
|
||||||
lda #$ff
|
lda #0
|
||||||
sta VALID_NOUN
|
sta VALID_NOUN
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ no_message:
|
|||||||
|
|
||||||
|
|
||||||
lda VALID_NOUN
|
lda VALID_NOUN
|
||||||
bmi no_noun
|
beq no_noun
|
||||||
|
|
||||||
lda NOUN_L
|
lda NOUN_L
|
||||||
sta OUTL
|
sta OUTL
|
||||||
|
Loading…
x
Reference in New Issue
Block a user