mist: fix some irregularities when entering/leaving worlds

sometimes would take two presses to enter area (we weren't tracking
IS_SPECIAL if not visible)

also weren't masking high bits off direction when turning left/right
This commit is contained in:
Vince Weaver 2020-03-24 01:10:39 -04:00
parent 520635437f
commit 9c07f76975
2 changed files with 15 additions and 3 deletions

View File

@ -5,9 +5,6 @@
draw_pointer: draw_pointer:
lda CURSOR_VISIBLE
bne really_draw_pointer
jmp no_draw_pointer
really_draw_pointer: really_draw_pointer:
@ -55,6 +52,13 @@ finger_grab:
lda #1 lda #1
sta IN_SPECIAL sta IN_SPECIAL
lda CURSOR_VISIBLE ; if not visible skip
bne really_draw_grab
rts
really_draw_grab:
lda DIRECTION lda DIRECTION
and #DIRECTION_ONLY_POINT and #DIRECTION_ONLY_POINT
bne special_but_point bne special_but_point
@ -69,6 +73,12 @@ special_but_point:
finger_not_special: finger_not_special:
lda CURSOR_VISIBLE ; if not visible skip
bne really_not_special
rts
really_not_special:
; check for left/right ; check for left/right
lda CURSOR_X lda CURSOR_X

View File

@ -221,6 +221,7 @@ cant_go_forward:
turn_left: turn_left:
lda DIRECTION lda DIRECTION
and #$f
cmp #DIRECTION_N cmp #DIRECTION_N
beq go_west beq go_west
cmp #DIRECTION_W cmp #DIRECTION_W
@ -234,6 +235,7 @@ turn_left:
;=========================== ;===========================
turn_right: turn_right:
lda DIRECTION lda DIRECTION
and #$f
cmp #DIRECTION_N cmp #DIRECTION_N
beq go_east beq go_east
cmp #DIRECTION_E cmp #DIRECTION_E