mist: stoney: update the umbrella buttons

you can actually turn them all off

also previously the way they were shown was a big hack
This commit is contained in:
Vince Weaver 2020-08-07 23:06:25 -04:00
parent 828e099e7f
commit 5a55fe7a1c
2 changed files with 52 additions and 11 deletions

View File

@ -315,8 +315,11 @@ goto_compass_left:
jmp change_location
;======================
;==============================
; handle umbrella pump buttons
;==============================
; if on and pressed, goes all off
; if off and pressed, clear all others and set
umbrella_buttons:
@ -327,23 +330,43 @@ umbrella_buttons:
bcc center_button_pressed
right_button_pressed:
; drain lighthouse
lda #2
bne done_umbrella
; drain lighthouse
lda PUMP_STATE
and #DRAINED_LIGHTHOUSE
bne clear_umbrella
lda #DRAINED_LIGHTHOUSE
bne done_umbrella ; bra
left_button_pressed:
; drain mist tunnel
lda #0
beq done_umbrella
lda PUMP_STATE
and #DRAINED_EXIT
bne clear_umbrella
lda #DRAINED_EXIT
bne done_umbrella ; bra
center_button_pressed:
; drain room tunnels
lda #1
lda PUMP_STATE
and #DRAINED_TUNNELS
bne clear_umbrella
lda #DRAINED_TUNNELS
bne done_umbrella ; bra
done_umbrella:
sta PUMP_STATE
rts
clear_umbrella:
lda #0
sta PUMP_STATE
rts
;========================
; handle generator crank
@ -366,24 +389,38 @@ skip_charge:
rts
;=========================================
; draw umbrella lights
;=========================================
do_draw_umbrella_light:
lda DIRECTION
cmp #DIRECTION_W
bne done_draw_umbrella
lda PUMP_STATE
beq done_draw_umbrella
lda #5
clc
adc DRAW_PAGE
sta umbrella_smc+2
lda PUMP_STATE
lsr ; convert from 1,2,4 to 0,1,2
asl
asl ; *4
tay
lda #$99 ; orange
sta $528+15,Y ; page 0
sta $928+15,Y ; page 1
lda #$d9 ; orange
; 15,20
; 19,20
; 23,20
umbrella_smc:
sta $528+15,Y
done_draw_umbrella:
rts

View File

@ -171,6 +171,10 @@ TOWER_ROTATION = $AE ; tower rotation: which
SHIP_RAISED = $AF ; ship raised or not
PUMP_STATE = $B0 ; stoneship pump state
DRAINED_EXIT = $01
DRAINED_TUNNELS = $02
DRAINED_LIGHTHOUSE=$04
BATTERY_CHARGE = $B1 ; stoneship battery charge
COMPASS_STATE = $B2 ; stoneship compass state
COMPASS_DEFAULT = 0 ; cabin lights off