diff --git a/mist/clock_bridge_puzzle.s b/mist/clock_bridge_puzzle.s index ae3ae722..da375cd4 100644 --- a/mist/clock_bridge_puzzle.s +++ b/mist/clock_bridge_puzzle.s @@ -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+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+1,Y done_clock_bridge: jsr change_location diff --git a/mist/graphics_island/Makefile b/mist/graphics_island/Makefile index dcfa77f2..4968b016 100644 --- a/mist/graphics_island/Makefile +++ b/mist/graphics_island/Makefile @@ -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 diff --git a/mist/graphics_island/mist_graphics.inc b/mist/graphics_island/mist_graphics.inc index d302b0f5..966157b0 100644 --- a/mist/graphics_island/mist_graphics.inc +++ b/mist/graphics_island/mist_graphics.inc @@ -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" diff --git a/mist/leveldata_island.inc b/mist/leveldata_island.inc index da6f75d2..4c97c118 100644 --- a/mist/leveldata_island.inc +++ b/mist/leveldata_island.inc @@ -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 diff --git a/mist/zp.inc b/mist/zp.inc index 8e8f4bda..d5f2a4e0 100644 --- a/mist/zp.inc +++ b/mist/zp.inc @@ -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