mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-14 13:33:48 +00:00
mist: stoney: hook up a few switches
This commit is contained in:
parent
6bc8eec4d4
commit
9313d72c31
@ -22,15 +22,16 @@ mist.dsk: HELLO LOADER MIST_TITLE MIST OCTAGON VIEWER \
|
||||
# $(DOS33) -y mist.dsk BSAVE -a 0x1400 MECHE
|
||||
# $(DOS33) -y mist.dsk BSAVE -a 0x1400 SELENA
|
||||
# $(DOS33) -y mist.dsk BSAVE -a 0x1400 CHANNEL
|
||||
$(DOS33) -y mist.dsk BSAVE -a 0x1400 VIEWER
|
||||
# $(DOS33) -y mist.dsk BSAVE -a 0x1400 VIEWER
|
||||
$(DOS33) -y mist.dsk BSAVE -a 0x1400 STONEY
|
||||
$(DOS33) -y mist.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC
|
||||
|
||||
mist_side2.dsk: MECHE SELENA CHANNEL
|
||||
mist_side2.dsk: MECHE SELENA CHANNEL VIEWER
|
||||
cp empty.dsk mist_side2.dsk
|
||||
$(DOS33) -y mist_side2.dsk BSAVE -a 0x1400 MECHE
|
||||
$(DOS33) -y mist_side2.dsk BSAVE -a 0x1400 SELENA
|
||||
$(DOS33) -y mist_side2.dsk BSAVE -a 0x1400 CHANNEL
|
||||
$(DOS33) -y mist_side2.dsk BSAVE -a 0x1400 VIEWER
|
||||
$(DOS33) -y mist_side2.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC
|
||||
|
||||
###
|
||||
|
@ -55,8 +55,8 @@ Stoneship age:
|
||||
+ Implement raising/lowering water
|
||||
+ Implement spinning generator/battery level
|
||||
+ Implement telescope
|
||||
+ Enable linking back to Myst
|
||||
+ Implement book pages
|
||||
+ Hook up the blue room
|
||||
+ Animate mist book rising from table
|
||||
|
||||
Ending:
|
||||
+ Turning
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 993 B After Width: | Height: | Size: 14 KiB |
Binary file not shown.
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 962 B After Width: | Height: | Size: 12 KiB |
@ -55,6 +55,11 @@ init_state:
|
||||
|
||||
sta SHIP_RAISED
|
||||
|
||||
sta PUMP_STATE
|
||||
sta BATTERY_CHARGE
|
||||
sta COMPASS_ANGLE
|
||||
sta CRANK_ANGLE
|
||||
|
||||
lda #$ff ; for debugging
|
||||
sta MARKER_SWITCHES
|
||||
|
||||
|
@ -195,7 +195,11 @@ location9:
|
||||
.word umbrella_e_lzsa ; east bg
|
||||
.word umbrella_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
.byte DIRECTION_W ; special exit
|
||||
.byte 13,26 ; special x
|
||||
.byte 18,24 ; special y
|
||||
.word umbrella_buttons-1
|
||||
|
||||
|
||||
; STONEY_LIGHTHOUSE_PATH -- lighthouse path
|
||||
location10:
|
||||
@ -263,7 +267,11 @@ location13:
|
||||
.word lighthouse_upstairs_e_lzsa ; east bg
|
||||
.word lighthouse_upstairs_w_lzsa ; west bg
|
||||
.byte BG_EAST|BG_WEST
|
||||
.byte $ff
|
||||
.byte DIRECTION_W ; special exit
|
||||
.byte 15,24 ; special x
|
||||
.byte 27,42 ; special y
|
||||
.word handle_crank-1
|
||||
|
||||
|
||||
; STONEY_LIGHTHOUSE_BATTERY -- lighthouse battery
|
||||
location14:
|
||||
|
207
mist/stoney.s
207
mist/stoney.s
@ -23,6 +23,9 @@ stoney_start:
|
||||
sta DRAW_PAGE
|
||||
sta LEVEL_OVER
|
||||
|
||||
; resets if you leave
|
||||
sta BATTERY_CHARGE
|
||||
|
||||
; init cursor
|
||||
|
||||
lda #20
|
||||
@ -71,6 +74,13 @@ game_loop:
|
||||
beq fg_draw_red_page
|
||||
cmp #STONEY_BLUE_ROOM_BED
|
||||
beq fg_draw_blue_page
|
||||
cmp #STONEY_UMBRELLA
|
||||
beq draw_umbrella_light
|
||||
cmp #STONEY_LIGHTHOUSE_UPSTAIRS
|
||||
beq draw_crank_handle
|
||||
cmp #STONEY_LIGHTHOUSE_BATTERY
|
||||
beq draw_battery_level
|
||||
|
||||
|
||||
jmp nothing_special
|
||||
|
||||
@ -146,6 +156,19 @@ fg_draw_blue_page:
|
||||
jsr draw_blue_page
|
||||
jmp nothing_special
|
||||
|
||||
draw_umbrella_light:
|
||||
jsr do_draw_umbrella_light
|
||||
jmp nothing_special
|
||||
|
||||
draw_crank_handle:
|
||||
jsr do_draw_crank_handle
|
||||
jmp nothing_special
|
||||
|
||||
draw_battery_level:
|
||||
jsr do_draw_battery_level
|
||||
jmp nothing_special
|
||||
|
||||
|
||||
nothing_special:
|
||||
|
||||
;====================================
|
||||
@ -255,6 +278,190 @@ no_draw_page:
|
||||
rts
|
||||
|
||||
|
||||
;======================
|
||||
; handle umbrella pump buttons
|
||||
|
||||
umbrella_buttons:
|
||||
|
||||
lda CURSOR_X
|
||||
cmp #15
|
||||
bcc left_button_pressed
|
||||
cmp #19
|
||||
bcc center_button_pressed
|
||||
|
||||
right_button_pressed:
|
||||
; drain lighthouse
|
||||
|
||||
lda #2
|
||||
bne done_umbrella
|
||||
left_button_pressed:
|
||||
; drain mist tunnel
|
||||
lda #0
|
||||
beq done_umbrella
|
||||
|
||||
center_button_pressed:
|
||||
; drain room tunnels
|
||||
lda #1
|
||||
|
||||
done_umbrella:
|
||||
sta PUMP_STATE
|
||||
rts
|
||||
|
||||
|
||||
;========================
|
||||
; handle generator crank
|
||||
handle_crank:
|
||||
|
||||
inc CRANK_ANGLE
|
||||
lda CRANK_ANGLE
|
||||
and #$3
|
||||
sta CRANK_ANGLE
|
||||
|
||||
lda BATTERY_CHARGE
|
||||
cmp #7
|
||||
beq skip_charge
|
||||
|
||||
inc BATTERY_CHARGE
|
||||
skip_charge:
|
||||
|
||||
rts
|
||||
|
||||
|
||||
do_draw_umbrella_light:
|
||||
lda DIRECTION
|
||||
cmp #DIRECTION_W
|
||||
bne done_draw_umbrella
|
||||
|
||||
lda PUMP_STATE
|
||||
asl
|
||||
asl ; *4
|
||||
tay
|
||||
|
||||
lda #$99 ; orange
|
||||
|
||||
sta $528+15,Y ; page 0
|
||||
sta $928+15,Y ; page 1
|
||||
; 15,20
|
||||
; 19,20
|
||||
; 23,20
|
||||
done_draw_umbrella:
|
||||
rts
|
||||
|
||||
|
||||
do_draw_crank_handle:
|
||||
|
||||
lda DIRECTION
|
||||
cmp #DIRECTION_W
|
||||
bne done_draw_it
|
||||
|
||||
lda CRANK_ANGLE
|
||||
asl
|
||||
tay
|
||||
lda crank_sprites,Y
|
||||
sta INL
|
||||
lda crank_sprites+1,Y
|
||||
sta INH
|
||||
|
||||
lda #17
|
||||
sta XPOS
|
||||
lda #32
|
||||
bne draw_it
|
||||
|
||||
do_draw_battery_level:
|
||||
|
||||
lda BATTERY_CHARGE
|
||||
and #7
|
||||
asl
|
||||
tay
|
||||
lda battery_sprites,Y
|
||||
sta INL
|
||||
lda battery_sprites+1,Y
|
||||
sta INH
|
||||
|
||||
lda #16
|
||||
sta XPOS
|
||||
lda #22
|
||||
; bne draw_it
|
||||
|
||||
draw_it:
|
||||
sta YPOS
|
||||
jsr put_sprite_crop
|
||||
done_draw_it:
|
||||
rts
|
||||
|
||||
|
||||
|
||||
crank_sprites:
|
||||
.word crank_sprite0,crank_sprite1,crank_sprite2,crank_sprite3
|
||||
|
||||
battery_sprites:
|
||||
.word battery_sprite0,battery_sprite1,battery_sprite2,battery_sprite3
|
||||
.word battery_sprite4,battery_sprite5,battery_sprite6,battery_sprite7
|
||||
|
||||
crank_sprite0:
|
||||
.byte 5,5
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
.byte $AA,$AA,$dd,$AA,$AA
|
||||
.byte $AA,$AA,$dd,$AA,$AA
|
||||
.byte $AA,$11,$AA,$AA,$AA
|
||||
|
||||
crank_sprite1:
|
||||
.byte 5,5
|
||||
.byte $1A,$AA,$AA,$AA,$AA
|
||||
.byte $A1,$dA,$dA,$AA,$AA
|
||||
.byte $AA,$AA,$ad,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
|
||||
crank_sprite2:
|
||||
.byte 5,5
|
||||
.byte $AA,$AA,$AA,$dA,$11
|
||||
.byte $AA,$AA,$dA,$AA,$AA
|
||||
.byte $AA,$AA,$Ad,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
|
||||
crank_sprite3:
|
||||
.byte 5,5
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$AA,$AA
|
||||
.byte $AA,$AA,$Ad,$AA,$AA
|
||||
.byte $AA,$AA,$AA,$dA,$1d
|
||||
.byte $AA,$AA,$AA,$A1,$AA
|
||||
|
||||
battery_sprite0:
|
||||
.byte 1,7
|
||||
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA
|
||||
|
||||
battery_sprite1:
|
||||
.byte 1,7
|
||||
.byte $AA,$AA,$AA,$AA,$AA,$AA,$FF
|
||||
|
||||
battery_sprite2:
|
||||
.byte 1,7
|
||||
.byte $AA,$AA,$AA,$AA,$AA,$FF,$FF
|
||||
|
||||
battery_sprite3:
|
||||
.byte 1,7
|
||||
.byte $AA,$AA,$AA,$AA,$FF,$FF,$FF
|
||||
|
||||
battery_sprite4:
|
||||
.byte 1,7
|
||||
.byte $AA,$AA,$AA,$FF,$FF,$FF,$FF
|
||||
|
||||
battery_sprite5:
|
||||
.byte 1,7
|
||||
.byte $AA,$AA,$FF,$FF,$FF,$FF,$FF
|
||||
|
||||
battery_sprite6:
|
||||
.byte 1,7
|
||||
.byte $AA,$FF,$FF,$FF,$FF,$FF,$FF
|
||||
|
||||
battery_sprite7:
|
||||
.byte 1,7
|
||||
.byte $FF,$FF,$FF,$FF,$FF,$FF,$FF
|
||||
|
||||
|
||||
|
||||
;==========================
|
||||
|
@ -63,6 +63,7 @@ RED_PAGES_TAKEN = $80
|
||||
SELENA_PAGE = 4
|
||||
STONEY_PAGE = 8
|
||||
CHANNEL_PAGE = 16
|
||||
FINAL_PAGE = 32
|
||||
BLUE_PAGES_TAKEN= $81
|
||||
CLOCK_BRIDGE = $82
|
||||
GEAR_OPEN = $83
|
||||
@ -126,6 +127,12 @@ TOWER_ROTATION = $AB
|
||||
ROTATION_TREE = 4
|
||||
ROTATION_SPACESHIP = 8
|
||||
SHIP_RAISED = $AC
|
||||
; stoneship
|
||||
PUMP_STATE = $AD
|
||||
BATTERY_CHARGE = $AE
|
||||
COMPASS_ANGLE = $AF
|
||||
CRANK_ANGLE = $B0
|
||||
|
||||
|
||||
; done game puzzle state
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user