mist: meche: can get to the end puzzle from both sides now

This commit is contained in:
Vince Weaver 2020-07-24 15:09:02 -04:00
parent b84c8f9011
commit 4b00599b54
5 changed files with 58 additions and 10 deletions

View File

@ -33,12 +33,15 @@ For release 1.0
+ VIEWER + VIEWER
-- have ship up background if ship up -- 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: Done:
+ CABIN + CABIN
+ DENTIST + DENTIST
+ DNI + DNI
+ MECHE
+ MIST_TITLE + MIST_TITLE
+ ARBOR + ARBOR
+ SHIP + SHIP

View File

@ -1,11 +1,25 @@
.include "zp.inc" .include "zp.inc"
.include "common_defines.inc" .include "common_defines.inc"
; want to load this to address $80 ; want to load this to address $80
.if 0
; ARBOR
.byte LOAD_ARBOR ; WHICH_LOAD = $80 .byte LOAD_ARBOR ; WHICH_LOAD = $80
.byte DIRECTION_W ; DIRECTION = $81 .byte DIRECTION_W ; DIRECTION = $81
.byte ARBOR_ARRIVAL_CLOSED ; LOCATION = $82 .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 ; RED_PAGES_TAKEN = $83
.byte $00 ; BLUE_PAGES_TAKEN = $84 .byte $00 ; BLUE_PAGES_TAKEN = $84
.byte $00 ; CLOCK_BRIDGE = $85 .byte $00 ; CLOCK_BRIDGE = $85
@ -81,3 +95,4 @@
.byte $00 ; HOLDING_ITEM = $C7 .byte $00 ; HOLDING_ITEM = $C7
.byte $00 ; BOILER_VALVE = $C8 .byte $00 ; BOILER_VALVE = $C8
.byte $00 ; TRUNK_STATE = $C9 .byte $00 ; TRUNK_STATE = $C9

View File

@ -104,9 +104,9 @@ location4:
.word entrance_e_lzsa ; east bg .word entrance_e_lzsa ; east bg
.word entrance_w_lzsa ; west bg .word entrance_w_lzsa ; west bg
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST .byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
.byte DIRECTION_N ; special exit .byte DIRECTION_N|DIRECTION_W ; special exit
.byte 6,22 ; special x .byte 6,36 ; special x
.byte 30,46 ; special y .byte 26,46 ; special y
.word try_exit_puzzle-1 ; special function .word try_exit_puzzle-1 ; special function

View File

@ -17,7 +17,6 @@ mist_link_book:
jsr play_link_noise jsr play_link_noise
lda #OCTAGON_CEILING lda #OCTAGON_CEILING
sta LOCATION sta LOCATION
lda #DIRECTION_N lda #DIRECTION_N

View File

@ -239,17 +239,45 @@ draw_exit_puzzle_sprites:
;========================================= ;=========================================
; exit puzzle first ; 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 ; also handle path to book
try_exit_puzzle: 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 lda CURSOR_X
cmp #14 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 ; not puzzle, instead go down steps if available
jsr check_puzzle_solved jsr check_puzzle_solved
@ -257,9 +285,12 @@ try_exit_puzzle:
lda #MECHE_BOOK_STAIRS lda #MECHE_BOOK_STAIRS
sta LOCATION sta LOCATION
jsr change_location jmp change_location
cant_go_there: cant_go_there:
rts lda #MECHE_FORT_VIEW
sta LOCATION
jmp change_location
do_puzzle: do_puzzle:
lda #MECHE_EXIT_PUZZLE lda #MECHE_EXIT_PUZZLE