mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-15 20:30:11 +00:00
mist: stoney: draw doorways properly in dark
This commit is contained in:
parent
bc32e0157b
commit
1cb5bc68f4
@ -259,6 +259,7 @@ stoney.o: stoney.s zp.inc hardware.inc common_defines.inc \
|
|||||||
link_book_stoney.s \
|
link_book_stoney.s \
|
||||||
link_book_mist.s \
|
link_book_mist.s \
|
||||||
handle_pages.s \
|
handle_pages.s \
|
||||||
|
hlin_list.s \
|
||||||
lights_off.s stoney_puzzles.s
|
lights_off.s stoney_puzzles.s
|
||||||
ca65 -o stoney.o stoney.s -l stoney.lst
|
ca65 -o stoney.o stoney.s -l stoney.lst
|
||||||
|
|
||||||
|
63
mist/hlin_list.s
Normal file
63
mist/hlin_list.s
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
|
||||||
|
; draw a list of hlins, two wide
|
||||||
|
; at call time:
|
||||||
|
; INL:INH = addrss of list
|
||||||
|
; X is y value to start at (must be even)
|
||||||
|
; list is
|
||||||
|
; color,xstart,xlen
|
||||||
|
; xlen >128 means quit
|
||||||
|
|
||||||
|
hlin_list:
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
hlin_list_yloop:
|
||||||
|
|
||||||
|
lda (INL),Y ; color
|
||||||
|
iny
|
||||||
|
sta hlin_list_color_smc+1
|
||||||
|
|
||||||
|
lda gr_offsets,X ; address low
|
||||||
|
clc
|
||||||
|
adc (INL),Y
|
||||||
|
sec
|
||||||
|
sbc #1
|
||||||
|
iny
|
||||||
|
sta hlin_list_addr_smc+1
|
||||||
|
|
||||||
|
lda (INL),Y ; count
|
||||||
|
bmi done_hlin_list
|
||||||
|
iny
|
||||||
|
sta hlin_list_start_smc+1
|
||||||
|
|
||||||
|
lda gr_offsets+1,X ; address high
|
||||||
|
clc
|
||||||
|
adc DRAW_PAGE
|
||||||
|
sta hlin_list_addr_smc+2
|
||||||
|
|
||||||
|
txa
|
||||||
|
pha
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; hlin
|
||||||
|
|
||||||
|
hlin_list_color_smc:
|
||||||
|
lda #$00
|
||||||
|
hlin_list_start_smc:
|
||||||
|
ldx #$00
|
||||||
|
hlin_list_xloop:
|
||||||
|
|
||||||
|
hlin_list_addr_smc:
|
||||||
|
sta $400,X
|
||||||
|
dex
|
||||||
|
bne hlin_list_xloop
|
||||||
|
|
||||||
|
;
|
||||||
|
;=============================
|
||||||
|
|
||||||
|
pla
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
jmp hlin_list_yloop
|
||||||
|
done_hlin_list:
|
||||||
|
rts
|
@ -80,6 +80,7 @@ check_ship_lights:
|
|||||||
lda COMPASS_STATE
|
lda COMPASS_STATE
|
||||||
bne check_tunnel_lights
|
bne check_tunnel_lights
|
||||||
|
|
||||||
|
; turn off the ship cabin lights if applicable
|
||||||
lda LOCATION
|
lda LOCATION
|
||||||
cmp #STONEY_BOOK_STAIRS1
|
cmp #STONEY_BOOK_STAIRS1
|
||||||
beq turn_off_the_lights
|
beq turn_off_the_lights
|
||||||
@ -127,6 +128,7 @@ turn_off_the_lights:
|
|||||||
|
|
||||||
dont_touch_lights:
|
dont_touch_lights:
|
||||||
|
|
||||||
|
|
||||||
;====================================
|
;====================================
|
||||||
; copy background to current page
|
; copy background to current page
|
||||||
;====================================
|
;====================================
|
||||||
@ -140,6 +142,32 @@ dont_touch_lights:
|
|||||||
; check to see if draw compass light
|
; check to see if draw compass light
|
||||||
jsr compass_draw_light
|
jsr compass_draw_light
|
||||||
|
|
||||||
|
|
||||||
|
; check doorways for water/darkness
|
||||||
|
lda LOCATION
|
||||||
|
cmp #STONEY_DOORWAY1
|
||||||
|
beq handle_doorway1
|
||||||
|
cmp #STONEY_DOORWAY2
|
||||||
|
beq handle_doorway2
|
||||||
|
cmp #STONEY_RIGHT_TUNNEL1
|
||||||
|
beq handle_doorway_light
|
||||||
|
cmp #STONEY_LEFT_TUNNEL1
|
||||||
|
beq handle_doorway_light
|
||||||
|
bne not_a_doorway
|
||||||
|
|
||||||
|
handle_doorway1:
|
||||||
|
jsr draw_doorway1
|
||||||
|
jmp not_a_doorway
|
||||||
|
handle_doorway2:
|
||||||
|
jsr draw_doorway2
|
||||||
|
jmp not_a_doorway
|
||||||
|
handle_doorway_light:
|
||||||
|
jsr draw_light_doorway
|
||||||
|
jmp not_a_doorway
|
||||||
|
|
||||||
|
not_a_doorway:
|
||||||
|
|
||||||
|
|
||||||
lda LOCATION
|
lda LOCATION
|
||||||
|
|
||||||
cmp #STONEY_BOOK_TABLE_OPEN
|
cmp #STONEY_BOOK_TABLE_OPEN
|
||||||
@ -352,6 +380,7 @@ stoney_half_message:
|
|||||||
|
|
||||||
.include "lights_off.s"
|
.include "lights_off.s"
|
||||||
.include "simple_sounds.s"
|
.include "simple_sounds.s"
|
||||||
|
.include "hlin_list.s"
|
||||||
|
|
||||||
; level data
|
; level data
|
||||||
.include "leveldata_stoney.inc"
|
.include "leveldata_stoney.inc"
|
||||||
|
@ -1072,3 +1072,112 @@ lighthouse_beacon_on:
|
|||||||
sta telescope_bg12_sprite+13
|
sta telescope_bg12_sprite+13
|
||||||
sta telescope_bg13_sprite+10
|
sta telescope_bg13_sprite+10
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
draw_doorway1:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_N
|
||||||
|
bne done_doorway
|
||||||
|
|
||||||
|
lda BATTERY_CHARGE
|
||||||
|
bne done_doorway
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
lda #<doorway1_dark_list
|
||||||
|
sta INL
|
||||||
|
lda #>doorway1_dark_list
|
||||||
|
sta INH
|
||||||
|
jmp hlin_list
|
||||||
|
|
||||||
|
draw_doorway2:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_N
|
||||||
|
bne done_doorway
|
||||||
|
|
||||||
|
lda BATTERY_CHARGE
|
||||||
|
bne done_doorway
|
||||||
|
|
||||||
|
ldx #8
|
||||||
|
lda #<doorway2_dark_list
|
||||||
|
sta INL
|
||||||
|
lda #>doorway2_dark_list
|
||||||
|
sta INH
|
||||||
|
jmp hlin_list
|
||||||
|
|
||||||
|
done_doorway:
|
||||||
|
rts
|
||||||
|
|
||||||
|
draw_light_doorway:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_S
|
||||||
|
bne done_doorway
|
||||||
|
|
||||||
|
lda BATTERY_CHARGE
|
||||||
|
bne done_doorway
|
||||||
|
|
||||||
|
ldx #12
|
||||||
|
lda #<doorway_light_list
|
||||||
|
sta INL
|
||||||
|
lda #>doorway_light_list
|
||||||
|
sta INH
|
||||||
|
jmp hlin_list
|
||||||
|
|
||||||
|
; at 0
|
||||||
|
doorway1_dark_list:
|
||||||
|
.byte $00,15,12
|
||||||
|
.byte $00,15,12
|
||||||
|
.byte $00,15,12
|
||||||
|
.byte $00,16,11
|
||||||
|
.byte $00,16,11
|
||||||
|
.byte $00,16,11
|
||||||
|
.byte $00,16,11
|
||||||
|
.byte $00,16,11
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,10
|
||||||
|
.byte $00,17,9
|
||||||
|
.byte $00,24,2
|
||||||
|
.byte $00,24,2
|
||||||
|
.byte $00,24,2
|
||||||
|
.byte $00,24,2
|
||||||
|
.byte $00,24,2
|
||||||
|
.byte $00,24,2
|
||||||
|
.byte $00,25,1
|
||||||
|
.byte $ff,$ff,$ff
|
||||||
|
|
||||||
|
; at 8
|
||||||
|
doorway2_dark_list:
|
||||||
|
.byte $00,16,10
|
||||||
|
.byte $00,17,9
|
||||||
|
.byte $00,17,9
|
||||||
|
.byte $00,18,8
|
||||||
|
.byte $00,19,7
|
||||||
|
.byte $00,20,5
|
||||||
|
.byte $00,21,4
|
||||||
|
.byte $00,22,3
|
||||||
|
.byte $00,23,2
|
||||||
|
.byte $00,23,2
|
||||||
|
.byte $55,21,2
|
||||||
|
.byte $55,20,3
|
||||||
|
.byte $55,16,7
|
||||||
|
.byte $55,16,7
|
||||||
|
.byte $55,16,8
|
||||||
|
.byte $55,16,8
|
||||||
|
.byte $ff,$ff,$ff
|
||||||
|
|
||||||
|
; at 12
|
||||||
|
doorway_light_list:
|
||||||
|
.byte $ff,19,2
|
||||||
|
.byte $ff,19,2
|
||||||
|
.byte $ff,19,2
|
||||||
|
.byte $ff,19,2
|
||||||
|
.byte $ff,19,2
|
||||||
|
.byte $ff,19,2
|
||||||
|
.byte $ff,$ff,$ff
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user