diff --git a/mist/TODO b/mist/TODO index dc6b4599..764163ad 100644 --- a/mist/TODO +++ b/mist/TODO @@ -33,12 +33,15 @@ For release 1.0 + VIEWER -- have ship up background if ship up ++ MECHE + -- animations for elevator + -- way to click on end puzzle from other angle + -- way to turn around in basement Done: + CABIN + DENTIST + DNI -+ MECHE + MIST_TITLE + ARBOR + SHIP diff --git a/mist/default_save.s b/mist/default_save.s index 5c2fd3ec..4c2bcd4b 100644 --- a/mist/default_save.s +++ b/mist/default_save.s @@ -1,11 +1,25 @@ .include "zp.inc" .include "common_defines.inc" + ; want to load this to address $80 +.if 0 +; ARBOR .byte LOAD_ARBOR ; WHICH_LOAD = $80 .byte DIRECTION_W ; DIRECTION = $81 .byte ARBOR_ARRIVAL_CLOSED ; LOCATION = $82 +.endif + +.if 1 +; MECHE +.byte LOAD_MECHE ; WHICH_LOAD = $80 +.byte DIRECTION_W ; DIRECTION = $81 +.byte MECHE_ARRIVAL ; LOCATION = $82 +.endif + + + .byte $00 ; RED_PAGES_TAKEN = $83 .byte $00 ; BLUE_PAGES_TAKEN = $84 .byte $00 ; CLOCK_BRIDGE = $85 @@ -81,3 +95,4 @@ .byte $00 ; HOLDING_ITEM = $C7 .byte $00 ; BOILER_VALVE = $C8 .byte $00 ; TRUNK_STATE = $C9 + diff --git a/mist/leveldata_meche.inc b/mist/leveldata_meche.inc index f98ad7e4..393cd48d 100644 --- a/mist/leveldata_meche.inc +++ b/mist/leveldata_meche.inc @@ -104,9 +104,9 @@ location4: .word entrance_e_lzsa ; east bg .word entrance_w_lzsa ; west bg .byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST - .byte DIRECTION_N ; special exit - .byte 6,22 ; special x - .byte 30,46 ; special y + .byte DIRECTION_N|DIRECTION_W ; special exit + .byte 6,36 ; special x + .byte 26,46 ; special y .word try_exit_puzzle-1 ; special function diff --git a/mist/link_book_mist.s b/mist/link_book_mist.s index f10036b9..1ab45fed 100644 --- a/mist/link_book_mist.s +++ b/mist/link_book_mist.s @@ -17,7 +17,6 @@ mist_link_book: jsr play_link_noise - lda #OCTAGON_CEILING sta LOCATION lda #DIRECTION_N diff --git a/mist/meche_rotation.s b/mist/meche_rotation.s index 1851164e..7cc0dfe0 100644 --- a/mist/meche_rotation.s +++ b/mist/meche_rotation.s @@ -239,17 +239,45 @@ draw_exit_puzzle_sprites: ;========================================= ; exit puzzle first - ; we really have two entrance points but on same node - ; so can't have both?? + ; + ; we have two exits to puzzle, one N and W, try to handle both + ; not really opitmal ; also handle path to book try_exit_puzzle: + lda DIRECTION + and #$f + cmp #DIRECTION_N + beq exit_facing_north + +exit_facing_west: + lda CURSOR_X + cmp #29 + bcs go_to_puzzle ; bge + + ; didn't click on the puzzle so instead go to MECHE_ARRIVAL + + lda #MECHE_ARRIVAL + sta LOCATION + jmp change_location + +go_to_puzzle: + lda #DIRECTION_N + sta DIRECTION + jmp do_puzzle + + +exit_facing_north: + lda CURSOR_X cmp #14 - bcc do_puzzle + bcc do_puzzle ; if less than 14 go to puzzle + cmp #23 ; if greater than 22 go to MECHE_FORT_VIEW + bcs cant_go_there +exit_check_for_tunnel: ; not puzzle, instead go down steps if available jsr check_puzzle_solved @@ -257,9 +285,12 @@ try_exit_puzzle: lda #MECHE_BOOK_STAIRS sta LOCATION - jsr change_location + jmp change_location + cant_go_there: - rts + lda #MECHE_FORT_VIEW + sta LOCATION + jmp change_location do_puzzle: lda #MECHE_EXIT_PUZZLE