diff --git a/mist/draw_pointer.s b/mist/draw_pointer.s index 36de83c1..947643cd 100644 --- a/mist/draw_pointer.s +++ b/mist/draw_pointer.s @@ -2,12 +2,14 @@ ; draw pointer ;==================================== - lda CURSOR_VISIBLE - bne draw_pointer - jmp no_draw_pointer draw_pointer: + lda CURSOR_VISIBLE + bne really_draw_pointer + jmp no_draw_pointer + +really_draw_pointer: ; point sprite to right location diff --git a/mist/generator_puzzle.s b/mist/generator_puzzle.s index 7fbe0355..2739fa55 100644 --- a/mist/generator_puzzle.s +++ b/mist/generator_puzzle.s @@ -6,6 +6,8 @@ circuit_breaker: + bit $C030 ; click speaker + lda LOCATION cmp #42 bne other_circuit_breaker diff --git a/mist/graphics_mist/Makefile b/mist/graphics_mist/Makefile index ed31eb22..764ed1f1 100644 --- a/mist/graphics_mist/Makefile +++ b/mist/graphics_mist/Makefile @@ -53,7 +53,11 @@ mist_graphics.inc: \ pad_n.lzsa pad_e.lzsa \ spaceship_door_n.lzsa spaceship_door_open_n.lzsa \ tower2_base_w.lzsa tower2_top_w.lzsa \ - tower2_path_e.lzsa tower2_path_n.lzsa + tower2_path_e.lzsa tower2_path_n.lzsa \ + tower1_trail_w.lzsa tower1_trail_e.lzsa \ + tower1_trail2_n.lzsa tower1_trail2_w.lzsa tower1_trail2_s.lzsa \ + tower1_base_e.lzsa \ + tower1_top_e.lzsa echo "m_link_book_lzsa: .incbin \"m_link_book.lzsa\"" > mist_graphics.inc echo "dock_n_lzsa: .incbin \"dock_n.lzsa\"" >> mist_graphics.inc echo "dock_s_lzsa: .incbin \"dock_s.lzsa\"" >> mist_graphics.inc @@ -144,6 +148,13 @@ mist_graphics.inc: \ echo "tower2_top_w_lzsa: .incbin \"tower2_top_w.lzsa\"" >> mist_graphics.inc echo "tower2_path_e_lzsa: .incbin \"tower2_path_e.lzsa\"" >> mist_graphics.inc echo "tower2_path_n_lzsa: .incbin \"tower2_path_n.lzsa\"" >> mist_graphics.inc + echo "tower1_trail_w_lzsa: .incbin \"tower1_trail_w.lzsa\"" >> mist_graphics.inc + echo "tower1_trail_e_lzsa: .incbin \"tower1_trail_e.lzsa\"" >> mist_graphics.inc + echo "tower1_trail2_n_lzsa: .incbin \"tower1_trail2_n.lzsa\"" >> mist_graphics.inc + echo "tower1_trail2_w_lzsa: .incbin \"tower1_trail2_w.lzsa\"" >> mist_graphics.inc + echo "tower1_trail2_s_lzsa: .incbin \"tower1_trail2_s.lzsa\"" >> mist_graphics.inc + echo "tower1_base_e_lzsa: .incbin \"tower1_base_e.lzsa\"" >> mist_graphics.inc + echo "tower1_top_e_lzsa: .incbin \"tower1_top_e.lzsa\"" >> mist_graphics.inc %.gr: %.png diff --git a/mist/graphics_mist/mist_graphics.inc b/mist/graphics_mist/mist_graphics.inc index b9b1e934..eccb6997 100644 --- a/mist/graphics_mist/mist_graphics.inc +++ b/mist/graphics_mist/mist_graphics.inc @@ -88,3 +88,10 @@ tower2_base_w_lzsa: .incbin "tower2_base_w.lzsa" tower2_top_w_lzsa: .incbin "tower2_top_w.lzsa" tower2_path_e_lzsa: .incbin "tower2_path_e.lzsa" tower2_path_n_lzsa: .incbin "tower2_path_n.lzsa" +tower1_trail_w_lzsa: .incbin "tower1_trail_w.lzsa" +tower1_trail_e_lzsa: .incbin "tower1_trail_e.lzsa" +tower1_trail2_n_lzsa: .incbin "tower1_trail2_n.lzsa" +tower1_trail2_w_lzsa: .incbin "tower1_trail2_w.lzsa" +tower1_trail2_s_lzsa: .incbin "tower1_trail2_s.lzsa" +tower1_base_e_lzsa: .incbin "tower1_base_e.lzsa" +tower1_top_e_lzsa: .incbin "tower1_top_e.lzsa" diff --git a/mist/graphics_mist/tower1_base_e.png b/mist/graphics_mist/tower1_base_e.png new file mode 100644 index 00000000..0f68889d Binary files /dev/null and b/mist/graphics_mist/tower1_base_e.png differ diff --git a/mist/graphics_mist/tower1_top_e.png b/mist/graphics_mist/tower1_top_e.png new file mode 100644 index 00000000..f3514637 Binary files /dev/null and b/mist/graphics_mist/tower1_top_e.png differ diff --git a/mist/graphics_mist/tower1_trail2_n.png b/mist/graphics_mist/tower1_trail2_n.png new file mode 100644 index 00000000..e8507966 Binary files /dev/null and b/mist/graphics_mist/tower1_trail2_n.png differ diff --git a/mist/graphics_mist/tower1_trail2_s.png b/mist/graphics_mist/tower1_trail2_s.png new file mode 100644 index 00000000..2cfe825f Binary files /dev/null and b/mist/graphics_mist/tower1_trail2_s.png differ diff --git a/mist/graphics_mist/tower1_trail_e.png b/mist/graphics_mist/tower1_trail_e.png new file mode 100644 index 00000000..77cbb535 Binary files /dev/null and b/mist/graphics_mist/tower1_trail_e.png differ diff --git a/mist/graphics_mist/tower1_trail_w.png b/mist/graphics_mist/tower1_trail_w.png new file mode 100644 index 00000000..c17a8991 Binary files /dev/null and b/mist/graphics_mist/tower1_trail_w.png differ diff --git a/mist/leveldata_mist.inc b/mist/leveldata_mist.inc index 4761c0dc..7951c6ad 100644 --- a/mist/leveldata_mist.inc +++ b/mist/leveldata_mist.inc @@ -43,7 +43,8 @@ locations: .word location28,location29,location30,location31 .word location32,location33,location34,location35 .word location36,location37,location38,location39 - .word location40,location41,location42 + .word location40,location41,location42,location43 + .word location44,location45,location46 ; myst linking book location0: @@ -239,7 +240,7 @@ location10: .byte DIRECTION_N ; north exit_dir .byte DIRECTION_S ; south exit_dir .byte DIRECTION_E ; east exit_dir - .byte DIRECTION_N ; west exit_dir + .byte DIRECTION_N|DIRECTION_ONLY_POINT ; west exit_dir .word step_top_n_lzsa ; north bg .word step_top_s_lzsa ; south bg .word step_top_e_lzsa ; east bg @@ -731,7 +732,10 @@ location37: .word pad_e_lzsa ; east bg .word $0000 ; west bg .byte BG_NORTH | BG_EAST - .byte $ff + .byte DIRECTION_N + .byte 0,20 ; special x + .byte 0,48 ; special y + .word pad_special-1 ; special function ; rocket close in location38: @@ -776,7 +780,7 @@ location40: .byte $ff ; south exit .byte 37 ; east exit .byte $ff ; west exit - .byte DIRECTION_W ; north exit_dir + .byte DIRECTION_W|DIRECTION_ONLY_POINT ; north exit_dir .byte $ff ; south exit_dir .byte DIRECTION_E ; east exit_dir .byte $ff ; west exit_dir @@ -792,17 +796,20 @@ location41: .byte $ff ; north exit .byte $ff ; south exit .byte $ff ; east exit - .byte 42 ; west exit + .byte 40 ; west exit .byte $ff ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir - .byte DIRECTION_W ; west exit_dir + .byte DIRECTION_N ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg .word $0000 ; east bg .word tower2_base_w_lzsa ; west bg .byte BG_WEST - .byte $ff + .byte DIRECTION_W ; special exit + .byte 13,27 ; special x + .byte 0,46 ; special y + .word leave_tower2-1 ; special function ; tower2 top location42: @@ -813,7 +820,7 @@ location42: .byte $ff ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir - .byte DIRECTION_W ; west exit_dir + .byte DIRECTION_W|DIRECTION_ONLY_POINT ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg .word $0000 ; east bg @@ -821,7 +828,73 @@ location42: .byte BG_WEST .byte DIRECTION_W ; special exit .byte 17,22 ; special x - .byte 12,18 ; special y + .byte 10,18 ; special y .word circuit_breaker-1 ; special function +; tower1 trail +location43: + .byte $ff ; north exit + .byte $ff ; south exit + .byte 23 ; east exit + .byte 44 ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte DIRECTION_E ; east exit_dir + .byte DIRECTION_N ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word tower1_trail_e_lzsa ; east bg + .word tower1_trail_w_lzsa ; west bg + .byte BG_WEST|BG_EAST + .byte $ff +; tower1 trail2 +location44: + .byte 45 ; north exit + .byte 43 ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_E ; north exit_dir + .byte DIRECTION_E ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word tower1_trail2_n_lzsa ; north bg + .word tower1_trail2_s_lzsa ; south bg + .word $0000 ; east bg + .word tower1_trail2_w_lzsa ; west bg + .byte BG_NORTH|BG_SOUTH|BG_WEST + .byte $ff + +; tower1 bottom +location45: + .byte $ff ; north exit + .byte $ff ; south exit + .byte 46 ; east exit + .byte $ff ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte DIRECTION_E ; east exit_dir + .byte $ff ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word tower1_base_e_lzsa ; east bg + .word $0000 ; west bg + .byte BG_EAST + .byte $ff + +; tower1 top +location46: + .byte $ff ; north exit + .byte $ff ; south exit + .byte 45 ; east exit + .byte $ff ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte DIRECTION_E ; east exit_dir + .byte $ff ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word tower1_top_e_lzsa ; east bg + .word $0000 ; west bg + .byte BG_EAST + .byte $ff diff --git a/mist/mist.s b/mist/mist.s index 7cd78b6e..37789665 100644 --- a/mist/mist.s +++ b/mist/mist.s @@ -177,7 +177,8 @@ room_frame_no_oflo: really_exit: jmp end_level - +;================= +; special exits go_to_meche: lda #LOAD_MECHE @@ -189,6 +190,21 @@ go_to_meche: rts +pad_special: + lda #40 + sta LOCATION + jsr change_location + + rts + +leave_tower2: + lda #42 + sta LOCATION + jsr change_location + + rts + + ;========================== ; includes ;==========================