mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-20 01:29:36 +00:00
mist: stoney: only draw underwater lamp if on
This commit is contained in:
parent
ce533e347c
commit
dcec7fa124
|
@ -109,8 +109,8 @@
|
||||||
.byte $00 ; SHIP_RAISED = $AF
|
.byte $00 ; SHIP_RAISED = $AF
|
||||||
; stoneship
|
; stoneship
|
||||||
.byte $00 ; PUMP_STATE = $B0
|
.byte $00 ; PUMP_STATE = $B0
|
||||||
.byte $00 ; BATTERY_CHARGE = $B1
|
.byte $07 ; BATTERY_CHARGE = $B1
|
||||||
.byte $00 ; COMPASS_ANGLE = $B2
|
.byte $00 ; COMPASS_STATE = $B2
|
||||||
.byte $00 ; CRANK_ANGLE = $B3
|
.byte $00 ; CRANK_ANGLE = $B3
|
||||||
.byte $00 ; WHITE_PAGE_TAKEN = $B4
|
.byte $00 ; WHITE_PAGE_TAKEN = $B4
|
||||||
.byte $00 ; CHANNEL_SWITCHES = $B5
|
.byte $00 ; CHANNEL_SWITCHES = $B5
|
||||||
|
|
|
@ -48,6 +48,9 @@ stoney_start:
|
||||||
|
|
||||||
jsr change_location
|
jsr change_location
|
||||||
|
|
||||||
|
; make sure book access set up right
|
||||||
|
jsr update_compass_state
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
sta CURSOR_VISIBLE ; visible at first
|
sta CURSOR_VISIBLE ; visible at first
|
||||||
|
|
||||||
|
@ -92,6 +95,9 @@ dont_touch_lights:
|
||||||
; handle special-case forground logic
|
; handle special-case forground logic
|
||||||
;====================================
|
;====================================
|
||||||
|
|
||||||
|
; check to see if draw compass light
|
||||||
|
jsr compass_draw_light
|
||||||
|
|
||||||
lda LOCATION
|
lda LOCATION
|
||||||
|
|
||||||
cmp #STONEY_BOOK_TABLE_OPEN
|
cmp #STONEY_BOOK_TABLE_OPEN
|
||||||
|
|
|
@ -64,6 +64,79 @@ compass_puzzle:
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;==================================
|
||||||
|
; draw compass light
|
||||||
|
;==================================
|
||||||
|
; underwater light comes on if compass successful
|
||||||
|
|
||||||
|
; if in room STONEY_COMPASS_ROOM_RIGHT (facing N) or
|
||||||
|
; STONEY_COMPASS_ROOM_LEFT (facing W)
|
||||||
|
; and COMPASS_STATE is not 0 then draw the sprite
|
||||||
|
|
||||||
|
compass_draw_light:
|
||||||
|
lda COMPASS_STATE
|
||||||
|
beq done_compass_draw_light
|
||||||
|
|
||||||
|
lda LOCATION
|
||||||
|
cmp #STONEY_COMPASS_ROOM_RIGHT
|
||||||
|
beq light_room_right
|
||||||
|
cmp #STONEY_COMPASS_ROOM_LEFT
|
||||||
|
beq light_room_left
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
light_room_right:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_N
|
||||||
|
beq actually_draw_light
|
||||||
|
rts
|
||||||
|
|
||||||
|
light_room_left:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_W
|
||||||
|
bne done_compass_draw_light
|
||||||
|
|
||||||
|
actually_draw_light:
|
||||||
|
lda #17
|
||||||
|
sta XPOS
|
||||||
|
lda #14
|
||||||
|
sta YPOS
|
||||||
|
lda #<compass_light_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>compass_light_sprite
|
||||||
|
sta INH
|
||||||
|
jsr put_sprite_crop
|
||||||
|
|
||||||
|
done_compass_draw_light:
|
||||||
|
rts
|
||||||
|
|
||||||
|
compass_light_sprite:
|
||||||
|
.byte 6,4
|
||||||
|
.byte $44,$94,$94,$94,$94,$44
|
||||||
|
.byte $44,$99,$ff,$ff,$99,$44
|
||||||
|
.byte $44,$99,$9f,$9f,$99,$44
|
||||||
|
.byte $24,$24,$24,$24,$24,$24
|
||||||
|
|
||||||
|
;==================================
|
||||||
|
; update compass state
|
||||||
|
;==================================
|
||||||
|
; if COMPASS_STATE is 0:
|
||||||
|
; disable access to linking book
|
||||||
|
; if COMPASS_STATE is 1:
|
||||||
|
; enable access to linking book
|
||||||
|
update_compass_state:
|
||||||
|
ldy #LOCATION_NORTH_EXIT
|
||||||
|
lda COMPASS_STATE
|
||||||
|
bne enable_book_access
|
||||||
|
disable_book_access:
|
||||||
|
lda #$ff
|
||||||
|
bne update_book_access ; bra
|
||||||
|
enable_book_access:
|
||||||
|
lda #STONEY_BOOK_TABLE
|
||||||
|
update_book_access:
|
||||||
|
sta location16,Y ; STONEY_BOOK_ROOM
|
||||||
|
rts
|
||||||
|
|
||||||
;===================================
|
;===================================
|
||||||
; crawlways
|
; crawlways
|
||||||
;===================================
|
;===================================
|
||||||
|
|
|
@ -172,7 +172,9 @@ SHIP_RAISED = $AF ; ship raised or not
|
||||||
|
|
||||||
PUMP_STATE = $B0 ; stoneship pump state
|
PUMP_STATE = $B0 ; stoneship pump state
|
||||||
BATTERY_CHARGE = $B1 ; stoneship battery charge
|
BATTERY_CHARGE = $B1 ; stoneship battery charge
|
||||||
COMPASS_ANGLE = $B2 ; stoneship compass angle
|
COMPASS_STATE = $B2 ; stoneship compass state
|
||||||
|
COMPASS_DEFAULT = 0 ; cabin lights off
|
||||||
|
COMPASS_LIGHT_ON= 1 ; proper angle selected
|
||||||
CRANK_ANGLE = $B3 ; stoneship crank angle
|
CRANK_ANGLE = $B3 ; stoneship crank angle
|
||||||
|
|
||||||
WHITE_PAGE_TAKEN= $B4 ; white page taken
|
WHITE_PAGE_TAKEN= $B4 ; white page taken
|
||||||
|
|
Loading…
Reference in New Issue
Block a user