mist: hook up switch by the tree cabin

This commit is contained in:
Vince Weaver 2020-07-11 19:43:09 -04:00
parent 552d6b4cd5
commit 9c5dda4d5f
8 changed files with 40 additions and 7 deletions

View File

@ -256,7 +256,7 @@ cabin.o: cabin.s zp.inc hardware.inc common_defines.inc \
keyboard.s \
draw_pointer.s \
link_book_channel.s \
gr_copy.s audio.s text_print.s decompress_fast_v2.s
marker_switch.s
ca65 -o cabin.o cabin.s -l cabin.lst

View File

@ -70,6 +70,8 @@ game_loop:
; handle special-case forground logic
;====================================
jsr draw_marker_switch
lda LOCATION
cmp #CABIN_TREE_BOOK_OPEN
beq animate_channel_book
@ -175,9 +177,12 @@ handle_clearing:
; else going east
lda CURSOR_X
cmp #23
cmp #22
bcc enter_cabin
cmp #27
bcc marker_switch
enter_tree_path:
lda #DIRECTION_E
sta DIRECTION
@ -187,6 +192,9 @@ enter_tree_path:
jmp change_location
marker_switch:
lda #MARKER_TREE
jmp click_marker_switch
enter_cabin:
lda #DIRECTION_E
@ -224,9 +232,8 @@ exit_to_mist:
; level graphics
.include "graphics_cabin/cabin_graphics.inc"
; puzzles
; .include "channel_switches.s"
.include "marker_switch.s"
; level data
.include "leveldata_cabin.inc"

View File

@ -1,3 +1,7 @@
; note, the clock is a bit different in the real game
; can't see face when pressing buttons
; and the way the hands move is a bit more complex
;======================
; reset the puzzle inside the clock

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1006 B

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

View File

@ -5,12 +5,30 @@
; 19 MARKER_GENERATOR= $08 MIST_TREE_CORRIDOR_4 W 3
; 22 MARKER_CLOCK = $10 MIST_CLOCK_ISLAND S 4
; cab/0 MARKER_TREE = $20 CABIN_OUTSIDE E 5
; cab/1 MARKER_TREE = $20 CABIN_OPEN E 5
; 13 MARKER_POOL = $40 MIST_TREE_CORRIDOR_2 N 6
; den/0 MARKER_DENTIST = $80 DENTIST_OUTSIDE N 7
; den/1 MARKER_DENTIST = $80 DENTIST_OUTSIDE_OPEN N 7
; up is on
; game starts with
; map -> library on (always?)
; DOCK = off, draws dock
; DENTIST=off, draws round dentist building
; POOL=off, draws pool and pillars
; SPACESHIP=off, draws spaceship
; geneator=off, draws generator building
; cabin= off, draws shack and tree ring
; clock, off, draws island and box on shore
; gears,, off, draws gears
; note on actual if you open white page but walk away, the door will
; shut and the switch will flip back
; which switch in A
click_marker_switch:
@ -81,7 +99,7 @@ marker_sprites_xy:
.byte 23,22 ; spaceship
.byte 8,28 ; generator
.byte 5,28 ; clock
.byte 10,10 ; tree
.byte 24,24 ; cabin
.byte 28,18 ; pool
.byte 5,32 ; dentist
@ -100,7 +118,8 @@ draw_marker_switch:
cmp #LOAD_CABIN
beq marker_check_cabin
cmp #LOAD_MIST
bne done_draw_marker
beq marker_check_myst
rts
marker_check_myst:
lda LOCATION
@ -144,11 +163,14 @@ marker_check_dentist:
dentist_marker:
ldy #7
bne draw_marker ; bra
marker_check_cabin:
lda LOCATION
cmp #CABIN_OUTSIDE
beq cabin_marker
cmp #CABIN_OPEN
bne done_draw_marker
cabin_marker:
ldy #5
draw_marker: