mist: can solve puzzle, also draw bridge from other screen

This commit is contained in:
Vince Weaver 2020-03-07 15:59:49 -05:00
parent 4a4b0b0255
commit 05ec65861d
5 changed files with 44 additions and 6 deletions

View File

@ -8,6 +8,7 @@ clock_inside_reset:
sta CLOCK_MIDDLE
sta CLOCK_BOTTOM
sta CLOCK_COUNT
sta CLOCK_LAST
rts
@ -36,16 +37,39 @@ inside_not_reset:
inside_left:
inc CLOCK_MIDDLE
lda CLOCK_LAST
cmp #1
bne left_spin_bottom
lda YPOS
cmp #24
bcs left_nospin_bottom
left_spin_bottom:
inc CLOCK_BOTTOM
inc CLOCK_COUNT
left_nospin_bottom:
lda #1
jmp wrap_wheels
inside_right:
inc CLOCK_MIDDLE
lda CLOCK_LAST
cmp #2
bne right_spin_top
lda YPOS
cmp #24
bcs right_nospin_top
right_spin_top:
inc CLOCK_TOP
inc CLOCK_COUNT
right_nospin_top:
lda #2
wrap_wheels:
sta CLOCK_LAST
inc CLOCK_COUNT
ldx #0
wrap_wheels_loop:
@ -83,7 +107,7 @@ draw_clock_inside:
asl
asl
clc
adc #6
adc #4
sta YPOS
jsr put_sprite_crop
@ -170,6 +194,12 @@ raise_bridge:
lda #>clock_puzzle_bridge_lzsa
sta location25+1,Y
; draw it on other too
lda #<clock_bridge_lzsa
sta location15,Y
lda #>clock_bridge_lzsa
sta location15+1,Y
jmp done_clock_bridge
lower_bridge:
@ -188,6 +218,12 @@ lower_bridge:
lda #>clock_puzzle_s_lzsa
sta location25+1,Y
; lower on other too
lda #<clock_s_lzsa
sta location15,Y
lda #>clock_s_lzsa
sta location15+1,Y
done_clock_bridge:
jsr change_location

View File

@ -26,7 +26,7 @@ mist_graphics.inc: \
red_book_shelf.lzsa \
red_book_closed.lzsa \
pool_s.lzsa \
clock_s.lzsa \
clock_s.lzsa clock_bridge.lzsa \
spaceship_far_e.lzsa spaceship_far_n.lzsa \
red_book_open.lzsa red_book_static.lzsa red_book_static2.lzsa \
tree2_n.lzsa \
@ -78,6 +78,7 @@ mist_graphics.inc: \
echo "red_book_shelf_lzsa: .incbin \"red_book_shelf.lzsa\"" >> mist_graphics.inc
echo "pool_s_lzsa: .incbin \"pool_s.lzsa\"" >> mist_graphics.inc
echo "clock_s_lzsa: .incbin \"clock_s.lzsa\"" >> mist_graphics.inc
echo "clock_bridge_lzsa: .incbin \"clock_bridge.lzsa\"" >> mist_graphics.inc
echo "spaceship_far_n_lzsa: .incbin \"spaceship_far_n.lzsa\"" >> mist_graphics.inc
echo "spaceship_far_e_lzsa: .incbin \"spaceship_far_e.lzsa\"" >> mist_graphics.inc
echo "red_book_open_lzsa: .incbin \"red_book_open.lzsa\"" >> mist_graphics.inc

View File

@ -34,6 +34,7 @@ red_book_closed_lzsa: .incbin "red_book_closed.lzsa"
red_book_shelf_lzsa: .incbin "red_book_shelf.lzsa"
pool_s_lzsa: .incbin "pool_s.lzsa"
clock_s_lzsa: .incbin "clock_s.lzsa"
clock_bridge_lzsa: .incbin "clock_bridge.lzsa"
spaceship_far_n_lzsa: .incbin "spaceship_far_n.lzsa"
spaceship_far_e_lzsa: .incbin "spaceship_far_e.lzsa"
red_book_open_lzsa: .incbin "red_book_open.lzsa"

View File

@ -547,7 +547,7 @@ location27:
.byte BG_SOUTH
.byte DIRECTION_S ; special exit
.byte 12,30 ; special x
.byte 8,42 ; special y
.byte 8,32 ; special y
.word clock_inside_puzzle-1 ; special function
; fireplace

View File

@ -67,7 +67,7 @@ CLOCK_COUNT = $8E
CLOCK_TOP = $8F
CLOCK_MIDDLE = $90
CLOCK_BOTTOM = $91
CLOCK_LAST = $92
DISP_PAGE = $ED ; ALL
DRAW_PAGE = $EE ; ALL