mist: stoney: hook up crawlways properly

you shouldn't be able to crash things anymore
This commit is contained in:
Vince Weaver 2020-08-06 15:11:35 -04:00
parent 27ed0fd181
commit 40a8993cc3
5 changed files with 137 additions and 18 deletions

View File

@ -17,8 +17,12 @@ For release 1.0
-- load 1s clip of sounds (4k each) into language card?
+ STONEY
-- proper crawlway exits if we have space
-- have lights off mean darken the levels
-- have lights come on in telescope view
-- allow coming at steps from an angle
-- allow clicking on tunnel to get there
-- hook up compass rose
-- hook up pump
-- hook up key/trunk puzzle

View File

@ -330,8 +330,8 @@ STONEY_RED_ROOM = 30
STONEY_RED_ROOM_DRESSER = 31
STONEY_RED_DRESSER_OPEN = 32
STONEY_CRAWLWAY_LEFT = 33
STONEY_COMPASS_ROOM = 34
STONEY_COMPASS_ROSE = 35
STONEY_COMPASS_ROOM_LEFT= 34
STONEY_COMPASS_ROSE_LEFT= 35
STONEY_RIGHT_TUNNEL1 = 36
STONEY_RIGHT_TUNNEL2 = 37
STONEY_RIGHT_AIRLOCK = 38
@ -341,6 +341,8 @@ STONEY_BLUE_MAPCASE = 41
STONEY_BLUE_MAPCASE_OPEN= 42
STONEY_BLUE_HALFMESSAGE = 43
STONEY_CRAWLWAY_RIGHT = 44
STONEY_COMPASS_ROOM_RIGHT= 45
STONEY_COMPASS_ROSE_RIGHT= 46
; Channely Wood
CHANNEL_ARRIVAL = 0

View File

@ -39,7 +39,7 @@ stoney_graphics.inc: \
left_airlock_n.lzsa left_airlock_s.lzsa left_airlock_open_n.lzsa \
red_room_n.lzsa red_room_s.lzsa red_room_e.lzsa red_room_w.lzsa \
dresser_e.lzsa dresser_open_e.lzsa \
compass_room_w.lzsa compass_room_e.lzsa \
compass_room_n.lzsa compass_room_w.lzsa compass_room_e.lzsa \
compass_rose_w.lzsa \
crawlway_e.lzsa crawlway_w.lzsa \
blue_room_n.lzsa blue_room_s.lzsa blue_room_e.lzsa blue_room_w.lzsa \
@ -116,6 +116,7 @@ stoney_graphics.inc: \
echo "dresser_open_e_lzsa: .incbin \"dresser_open_e.lzsa\"" >> stoney_graphics.inc
echo "compass_room_e_lzsa: .incbin \"compass_room_e.lzsa\"" >> stoney_graphics.inc
echo "compass_room_w_lzsa: .incbin \"compass_room_w.lzsa\"" >> stoney_graphics.inc
echo "compass_room_n_lzsa: .incbin \"compass_room_n.lzsa\"" >> stoney_graphics.inc
echo "compass_rose_w_lzsa: .incbin \"compass_rose_w.lzsa\"" >> stoney_graphics.inc
echo "crawlway_e_lzsa: .incbin \"crawlway_e.lzsa\"" >> stoney_graphics.inc
echo "crawlway_w_lzsa: .incbin \"crawlway_w.lzsa\"" >> stoney_graphics.inc

View File

@ -15,7 +15,7 @@ locations:
.word location32,location33,location34,location35
.word location36,location37,location38,location39
.word location40,location41,location42,location43
.word location44
.word location44,location45,location46
; STONEY_ARRIVAL -- arrival at stoneship
location0:
@ -604,7 +604,7 @@ location33:
.byte $ff ; north exit
.byte $ff ; south exit
.byte STONEY_LEFT_TUNNEL2 ; east exit
.byte STONEY_COMPASS_ROOM ; west exit
.byte STONEY_COMPASS_ROOM_LEFT ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_N ; east exit_dir
@ -616,29 +616,32 @@ location33:
.byte BG_EAST|BG_WEST
.byte $ff
; STONEY_COMPASS_ROOM -- compass room
; STONEY_COMPASS_ROOM_LEFT -- compass room from left
location34:
.byte $ff ; north exit
.byte $ff ; south exit
.byte STONEY_CRAWLWAY_LEFT ; east exit
.byte STONEY_COMPASS_ROSE ; west exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.byte $ff ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word compass_room_e_lzsa ; east bg
.word compass_room_w_lzsa ; west bg
.byte BG_EAST|BG_WEST
.byte $ff
.byte DIRECTION_W
.byte 12,40 ; special x
.byte 0,46 ; special y
.word view_compass_left-1 ; special function
; STONEY_COMPASS_ROSE -- compass rose
; STONEY_COMPASS_ROSE_LEFT -- compass rose
location35:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte STONEY_COMPASS_ROOM ; west exit
.byte STONEY_COMPASS_ROOM_LEFT ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte $ff ; east exit_dir
@ -648,7 +651,10 @@ location35:
.word $0000 ; east bg
.word compass_rose_w_lzsa ; west bg
.byte BG_WEST
.byte $ff
.byte DIRECTION_W
.byte 6,35 ; special x
.byte 0,46 ; special y
.word view_compass_right-1 ; special function
; STONEY_RIGHT_TUNNEL1 -- right tunnel to blue room
location36:
@ -676,7 +682,7 @@ location37:
.byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte DIRECTION_E ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.byte $ff ; west exit_dir
.word right_tunnel2_n_lzsa ; north bg
.word right_tunnel2_s_lzsa ; south bg
.word right_tunnel2_w_lzsa ; east bg
@ -796,16 +802,57 @@ location43:
location44:
.byte $ff ; north exit
.byte $ff ; south exit
.byte STONEY_COMPASS_ROOM ; east exit
.byte STONEY_COMPASS_ROOM_RIGHT ; east exit
.byte STONEY_RIGHT_TUNNEL2 ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_N ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.byte DIRECTION_N ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word crawlway_e_lzsa ; east bg
.word crawlway_w_lzsa ; west bg
.word crawlway_w_lzsa ; east bg
.word crawlway_e_lzsa ; west bg
.byte BG_EAST|BG_WEST
.byte $ff
; STONEY_COMPASS_ROOM_RIGHT -- compass room from right
location45:
.byte $ff ; north exit
.byte STONEY_CRAWLWAY_RIGHT ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte DIRECTION_W ; south exit_dir
.byte $ff ; east exit_dir
.byte $ff ; west exit_dir
.word compass_room_n_lzsa ; north bg
.word compass_room_e_lzsa ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH
.byte DIRECTION_N
.byte 0,28 ; special x
.byte 0,46 ; special y
.word view_compass_right-1 ; special function
; STONEY_COMPASS_ROSE_RIGHT -- compass rose approached from right
location46:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte STONEY_COMPASS_ROOM_RIGHT ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte $ff ; east exit_dir
.byte DIRECTION_N ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.word compass_rose_w_lzsa ; west bg
.byte BG_WEST
.byte DIRECTION_W
.byte 6,35 ; special x
.byte 0,46 ; special y
.word view_compass_right-1 ; special function

View File

@ -34,8 +34,11 @@
; charge runs down over time
; compass rose puzzle
; press wrong one and lights go out?
; press wrong one and lights go out (all energy to zero)
; also siren plays
; blue light at end of corridor
; press right one, lights in the cabin go on
; also light outside the compass window
@ -52,6 +55,68 @@
; draw hatch as sprite
;==================================
; compass puzzle
;==================================
compass_puzzle:
rts
;==========================
; handle compass room right
view_compass_right:
lda CURSOR_X
cmp #12
bcs goto_compass_right ; blt
goto_left_tunnel:
lda #DIRECTION_E
sta DIRECTION
lda #STONEY_COMPASS_ROOM_LEFT
sta LOCATION
jmp change_location
goto_compass_right:
lda #DIRECTION_W
sta DIRECTION
lda #STONEY_COMPASS_ROSE_RIGHT
sta LOCATION
jmp change_location
;==========================
; handle compass room left
view_compass_left:
lda CURSOR_X
cmp #28
bcc goto_compass_left ; blt
goto_right_tunnel:
lda #DIRECTION_S
sta DIRECTION
lda #STONEY_COMPASS_ROOM_RIGHT
sta LOCATION
jmp change_location
goto_compass_left:
lda #STONEY_COMPASS_ROSE_LEFT
sta LOCATION
jmp change_location
;======================
; handle umbrella pump buttons