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 \
|
keyboard.s \
|
||||||
draw_pointer.s \
|
draw_pointer.s \
|
||||||
link_book_channel.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
|
ca65 -o cabin.o cabin.s -l cabin.lst
|
||||||
|
|
||||||
|
|
||||||
|
13
mist/cabin.s
@ -70,6 +70,8 @@ game_loop:
|
|||||||
; handle special-case forground logic
|
; handle special-case forground logic
|
||||||
;====================================
|
;====================================
|
||||||
|
|
||||||
|
jsr draw_marker_switch
|
||||||
|
|
||||||
lda LOCATION
|
lda LOCATION
|
||||||
cmp #CABIN_TREE_BOOK_OPEN
|
cmp #CABIN_TREE_BOOK_OPEN
|
||||||
beq animate_channel_book
|
beq animate_channel_book
|
||||||
@ -175,9 +177,12 @@ handle_clearing:
|
|||||||
; else going east
|
; else going east
|
||||||
|
|
||||||
lda CURSOR_X
|
lda CURSOR_X
|
||||||
cmp #23
|
cmp #22
|
||||||
bcc enter_cabin
|
bcc enter_cabin
|
||||||
|
|
||||||
|
cmp #27
|
||||||
|
bcc marker_switch
|
||||||
|
|
||||||
enter_tree_path:
|
enter_tree_path:
|
||||||
lda #DIRECTION_E
|
lda #DIRECTION_E
|
||||||
sta DIRECTION
|
sta DIRECTION
|
||||||
@ -187,6 +192,9 @@ enter_tree_path:
|
|||||||
|
|
||||||
jmp change_location
|
jmp change_location
|
||||||
|
|
||||||
|
marker_switch:
|
||||||
|
lda #MARKER_TREE
|
||||||
|
jmp click_marker_switch
|
||||||
|
|
||||||
enter_cabin:
|
enter_cabin:
|
||||||
lda #DIRECTION_E
|
lda #DIRECTION_E
|
||||||
@ -224,9 +232,8 @@ exit_to_mist:
|
|||||||
; level graphics
|
; level graphics
|
||||||
.include "graphics_cabin/cabin_graphics.inc"
|
.include "graphics_cabin/cabin_graphics.inc"
|
||||||
|
|
||||||
|
|
||||||
; puzzles
|
; puzzles
|
||||||
; .include "channel_switches.s"
|
.include "marker_switch.s"
|
||||||
|
|
||||||
; level data
|
; level data
|
||||||
.include "leveldata_cabin.inc"
|
.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
|
; 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
|
; 19 MARKER_GENERATOR= $08 MIST_TREE_CORRIDOR_4 W 3
|
||||||
; 22 MARKER_CLOCK = $10 MIST_CLOCK_ISLAND S 4
|
; 22 MARKER_CLOCK = $10 MIST_CLOCK_ISLAND S 4
|
||||||
; cab/0 MARKER_TREE = $20 CABIN_OUTSIDE E 5
|
; 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
|
; 13 MARKER_POOL = $40 MIST_TREE_CORRIDOR_2 N 6
|
||||||
; den/0 MARKER_DENTIST = $80 DENTIST_OUTSIDE N 7
|
; den/0 MARKER_DENTIST = $80 DENTIST_OUTSIDE N 7
|
||||||
; den/1 MARKER_DENTIST = $80 DENTIST_OUTSIDE_OPEN N 7
|
; den/1 MARKER_DENTIST = $80 DENTIST_OUTSIDE_OPEN N 7
|
||||||
|
|
||||||
; up is on
|
; 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
|
; which switch in A
|
||||||
click_marker_switch:
|
click_marker_switch:
|
||||||
|
|
||||||
@ -81,7 +99,7 @@ marker_sprites_xy:
|
|||||||
.byte 23,22 ; spaceship
|
.byte 23,22 ; spaceship
|
||||||
.byte 8,28 ; generator
|
.byte 8,28 ; generator
|
||||||
.byte 5,28 ; clock
|
.byte 5,28 ; clock
|
||||||
.byte 10,10 ; tree
|
.byte 24,24 ; cabin
|
||||||
.byte 28,18 ; pool
|
.byte 28,18 ; pool
|
||||||
.byte 5,32 ; dentist
|
.byte 5,32 ; dentist
|
||||||
|
|
||||||
@ -100,7 +118,8 @@ draw_marker_switch:
|
|||||||
cmp #LOAD_CABIN
|
cmp #LOAD_CABIN
|
||||||
beq marker_check_cabin
|
beq marker_check_cabin
|
||||||
cmp #LOAD_MIST
|
cmp #LOAD_MIST
|
||||||
bne done_draw_marker
|
beq marker_check_myst
|
||||||
|
rts
|
||||||
|
|
||||||
marker_check_myst:
|
marker_check_myst:
|
||||||
lda LOCATION
|
lda LOCATION
|
||||||
@ -144,11 +163,14 @@ marker_check_dentist:
|
|||||||
dentist_marker:
|
dentist_marker:
|
||||||
ldy #7
|
ldy #7
|
||||||
bne draw_marker ; bra
|
bne draw_marker ; bra
|
||||||
|
|
||||||
marker_check_cabin:
|
marker_check_cabin:
|
||||||
lda LOCATION
|
lda LOCATION
|
||||||
cmp #CABIN_OUTSIDE
|
cmp #CABIN_OUTSIDE
|
||||||
|
beq cabin_marker
|
||||||
|
cmp #CABIN_OPEN
|
||||||
bne done_draw_marker
|
bne done_draw_marker
|
||||||
|
cabin_marker:
|
||||||
ldy #5
|
ldy #5
|
||||||
|
|
||||||
draw_marker:
|
draw_marker:
|
||||||
|