mist: hook up switch by the tree cabin
@ -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
|
||||
|
||||
|
||||
|
13
mist/cabin.s
@ -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"
|
||||
|
@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1006 B After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 586 B |
@ -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:
|
||||
|