diff --git a/mist/Makefile b/mist/Makefile index 08530dbd..270564ae 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -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 diff --git a/mist/cabin.s b/mist/cabin.s index a7be29d9..07d078e8 100644 --- a/mist/cabin.s +++ b/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" diff --git a/mist/clock_bridge_puzzle.s b/mist/clock_bridge_puzzle.s index c44419b5..b7a0157f 100644 --- a/mist/clock_bridge_puzzle.s +++ b/mist/clock_bridge_puzzle.s @@ -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 diff --git a/mist/graphics_cabin/clearing_e.png b/mist/graphics_cabin/clearing_e.png index c2a8dd08..0e385e7b 100644 Binary files a/mist/graphics_cabin/clearing_e.png and b/mist/graphics_cabin/clearing_e.png differ diff --git a/mist/graphics_cabin/clearing_e_open.png b/mist/graphics_cabin/clearing_e_open.png index a1d7c131..5a6d60df 100644 Binary files a/mist/graphics_cabin/clearing_e_open.png and b/mist/graphics_cabin/clearing_e_open.png differ diff --git a/mist/graphics_cabin/tree_path_w.png b/mist/graphics_cabin/tree_path_w.png index 9d45a630..d6c90d15 100644 Binary files a/mist/graphics_cabin/tree_path_w.png and b/mist/graphics_cabin/tree_path_w.png differ diff --git a/mist/graphics_mist/old/tree_cabin_e.png b/mist/graphics_mist/old/tree_cabin_e.png deleted file mode 100644 index 963800b8..00000000 Binary files a/mist/graphics_mist/old/tree_cabin_e.png and /dev/null differ diff --git a/mist/marker_switch.s b/mist/marker_switch.s index 86e5291e..301ec857 100644 --- a/mist/marker_switch.s +++ b/mist/marker_switch.s @@ -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: