diff --git a/mist/common_defines.inc b/mist/common_defines.inc index a90940d3..df76ef22 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -260,14 +260,23 @@ SELENA_CRYSTAL_PATH2 = 46 ; Submarine on Selena SUB_BUNKER_ENTRY = 0 SUB_HALLWAY = 1 -SUB_ROOM = 2 -SUB_INSIDE_SUB = 3 -SUB_BOOK_HALLWAY = 4 -SUB_BOOK_ROOM = 5 -SUB_BOOK_CLOSED = 6 -SUB_BOOK_OPEN = 7 -SUB_HALLWAY2 = 8 -SUB_CLOSE = 9 +SUB_HALLWAY2 = 2 +SUB_ROOM = 3 +SUB_CLOSE = 4 +SUB_CLOSE_OPEN = 5 +SUB_INSIDE_BACK = 6 +SUB_INSIDE_BACK_OPEN = 7 +SUB_INSIDE_FRONT_SELENA = 8 +SUB_INSIDE_FRONT_MOVING = 9 +SUB_INSIDE_FRONT_BOOK = 10 +SUB_OUTSIDE_BOOK = 11 +SUB_OUTSIDE_BOOK_OPEN = 12 +SUB_BOOK_HALLWAY = 13 +SUB_BOOK_ROOM = 14 +SUB_BOOK_CLOSED = 15 +SUB_BOOK_OPEN = 16 + + ; Viewer Room diff --git a/mist/graphics_sub/Makefile b/mist/graphics_sub/Makefile index cd6e45d6..bcfcbaa9 100644 --- a/mist/graphics_sub/Makefile +++ b/mist/graphics_sub/Makefile @@ -18,7 +18,11 @@ sub_graphics.inc: \ bunker_entry_e.lzsa bunker_entry_w.lzsa \ sub_hallway_e.lzsa sub_hallway_w.lzsa \ sub_hallway2_e.lzsa sub_hallway2_w.lzsa \ - sub_close_n.lzsa sub_close_s.lzsa + sub_close_n.lzsa sub_close_s.lzsa \ + sub_close_open_s.lzsa \ + inside_sub_back_e.lzsa inside_sub_back_closed_s.lzsa \ + inside_sub_back_selena_s.lzsa \ + inside_sub_selena_e.lzsa echo "subroom_s_lzsa: .incbin \"subroom_s.lzsa\"" > sub_graphics.inc echo "subroom_n_lzsa: .incbin \"subroom_n.lzsa\"" >> sub_graphics.inc echo "book_table_s_lzsa: .incbin \"book_table_s.lzsa\"" >> sub_graphics.inc @@ -37,7 +41,11 @@ sub_graphics.inc: \ echo "book_hallway_s_lzsa: .incbin \"book_hallway_s.lzsa\"" >> sub_graphics.inc echo "sub_close_n_lzsa: .incbin \"sub_close_n.lzsa\"" >> sub_graphics.inc echo "sub_close_s_lzsa: .incbin \"sub_close_s.lzsa\"" >> sub_graphics.inc - + echo "sub_close_open_s_lzsa: .incbin \"sub_close_open_s.lzsa\"" >> sub_graphics.inc + echo "inside_sub_back_e_lzsa: .incbin \"inside_sub_back_e.lzsa\"" >> sub_graphics.inc + echo "inside_sub_back_closed_s_lzsa: .incbin \"inside_sub_back_closed_s.lzsa\"" >> sub_graphics.inc + echo "inside_sub_back_selena_s_lzsa: .incbin \"inside_sub_back_selena_s.lzsa\"" >> sub_graphics.inc + echo "inside_sub_selena_e_lzsa: .incbin \"inside_sub_selena_e.lzsa\"" >> sub_graphics.inc %.gr: %.png $(PNG2GR) $< $@ diff --git a/mist/graphics_sub/inside_sub_back_closed_s.png b/mist/graphics_sub/inside_sub_back_closed_s.png new file mode 100644 index 00000000..c6556ff5 Binary files /dev/null and b/mist/graphics_sub/inside_sub_back_closed_s.png differ diff --git a/mist/graphics_sub/inside_sub_back_e.png b/mist/graphics_sub/inside_sub_back_e.png new file mode 100644 index 00000000..031b138d Binary files /dev/null and b/mist/graphics_sub/inside_sub_back_e.png differ diff --git a/mist/graphics_sub/inside_sub_back_selena_s.png b/mist/graphics_sub/inside_sub_back_selena_s.png new file mode 100644 index 00000000..23f60fe5 Binary files /dev/null and b/mist/graphics_sub/inside_sub_back_selena_s.png differ diff --git a/mist/graphics_sub/inside_sub_e.png b/mist/graphics_sub/inside_sub_e.png index 7d219365..02d91cbc 100644 Binary files a/mist/graphics_sub/inside_sub_e.png and b/mist/graphics_sub/inside_sub_e.png differ diff --git a/mist/graphics_sub/inside_sub_selena_e.png b/mist/graphics_sub/inside_sub_selena_e.png new file mode 100644 index 00000000..827c1249 Binary files /dev/null and b/mist/graphics_sub/inside_sub_selena_e.png differ diff --git a/mist/graphics_sub/sub_close_open_s.png b/mist/graphics_sub/sub_close_open_s.png new file mode 100644 index 00000000..c4d04207 Binary files /dev/null and b/mist/graphics_sub/sub_close_open_s.png differ diff --git a/mist/leveldata_sub.inc b/mist/leveldata_sub.inc index 59c6d0e7..b4752b0d 100644 --- a/mist/leveldata_sub.inc +++ b/mist/leveldata_sub.inc @@ -6,7 +6,9 @@ locations: .word location0, location1, location2, location3 .word location4, location5, location6, location7 - .word location8, location9 + .word location8, location9, location10,location11 + .word location12,location13,location14,location15 + .word location16 ; SUB_BUNKER_ENTRY -- entryway inside bunker location0: @@ -45,8 +47,25 @@ location1: .byte BG_EAST|BG_WEST .byte $ff -; SUB_ROOM -- sub room +; SUB_HALLWAY2 -- another hallway to the sub room location2: + .byte $ff ; north exit + .byte $ff ; south exit + .byte SUB_ROOM ; east exit + .byte SUB_HALLWAY ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte DIRECTION_S ; east exit_dir + .byte DIRECTION_W ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word sub_hallway2_e_lzsa ; east bg + .word sub_hallway2_w_lzsa ; west bg + .byte BG_EAST|BG_WEST + .byte $ff + +; SUB_ROOM -- sub room +location3: .byte SUB_HALLWAY2 ; north exit .byte SUB_CLOSE ; south exit .byte $ff ; east exit @@ -62,8 +81,106 @@ location2: .byte BG_SOUTH|BG_NORTH .byte $ff -; SUB_INSIDE_SUB -- inside the submarine -location3: +; SUB_CLOSE -- standing close to the sub +location4: + .byte SUB_ROOM ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_N ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word sub_close_n_lzsa ; north bg + .word sub_close_s_lzsa ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH|BG_SOUTH + .byte DIRECTION_S + .byte 24,30 ; special x + .byte 10,18 ; special y + .word sub_selena_open-1 ; special function + +; SUB_CLOSE_OPEN -- standing close to the sub, door open +location5: + .byte SUB_ROOM ; north exit + .byte SUB_INSIDE_BACK ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_N ; north exit_dir + .byte DIRECTION_E ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word sub_close_n_lzsa ; north bg + .word sub_close_open_s_lzsa ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH|BG_SOUTH + .byte DIRECTION_S + .byte 24,30 ; special x + .byte 10,18 ; special y + .word sub_selena_close-1 ; special function + +; SUB_INSIDE_BACK -- inside the submarine, in the back +location6: + .byte $ff ; north exit + .byte $ff ; south exit + .byte SUB_INSIDE_FRONT_SELENA ; 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 inside_sub_back_closed_s_lzsa ; south bg + .word inside_sub_back_e_lzsa ; east bg + .word $0000 ; west bg + .byte BG_SOUTH|BG_EAST + .byte DIRECTION_S + .byte 9,12 ; special x + .byte 18,26 ; special y + .word sub_door_selena_open-1 ; special function + + +; SUB_INSIDE_BACK_OPEN -- inside the submarine, in the back, door open +location7: + .byte $ff ; north exit + .byte SUB_CLOSE_OPEN ; south exit + .byte SUB_INSIDE_FRONT_SELENA ; east exit + .byte $ff ; west exit + .byte $ff ; north exit_dir + .byte DIRECTION_N ; south exit_dir + .byte DIRECTION_E ; east exit_dir + .byte $ff ; west exit_dir + .word $0000 ; north bg + .word inside_sub_back_selena_s_lzsa ; south bg + .word inside_sub_back_e_lzsa ; east bg + .word $0000 ; west bg + .byte BG_SOUTH|BG_EAST + .byte DIRECTION_S + .byte 9,12 ; special x + .byte 18,26 ; special y + .word sub_door_close-1 ; special function + +; SUB_INSIDE_FRONT_SELENA -- inside the submarine front, at selena side +location8: + .byte $ff ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte SUB_INSIDE_BACK ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte DIRECTION_S ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word inside_sub_selena_e_lzsa ; east bg + .word inside_sub_w_lzsa ; west bg + .byte BG_EAST|BG_WEST + .byte $ff + +; SUB_INSIDE_FRONT_MOVING -- inside the submarine front, when "moving" +location9: .byte $ff ; north exit .byte $ff ; south exit .byte $ff ; east exit @@ -79,9 +196,61 @@ location3: .byte BG_EAST|BG_WEST .byte $ff +; SUB_INSIDE_FRONT_BOOK -- inside the submarine front, at book area +location10: + .byte $ff ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte SUB_BOOK_HALLWAY ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte DIRECTION_S ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word inside_sub_e_lzsa ; east bg + .word inside_sub_w_lzsa ; west bg + .byte BG_EAST|BG_WEST + .byte $ff + +; SUB_OUTSIDE_BOOK -- outside sub in book area +location11: + .byte $ff ; north exit + .byte SUB_BOOK_ROOM ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_E ; north exit_dir + .byte DIRECTION_S ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word book_hallway_n_lzsa ; north bg + .word book_hallway_s_lzsa ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH|BG_SOUTH + .byte $ff + +; SUB_OUTSIDE_BOOK_OPEN -- outside sub in book area, door open +location12: + .byte $ff ; north exit + .byte SUB_BOOK_ROOM ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte DIRECTION_E ; north exit_dir + .byte DIRECTION_S ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word book_hallway_n_lzsa ; north bg + .word book_hallway_s_lzsa ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_NORTH|BG_SOUTH + .byte $ff + + ; SUB_BOOK_HALLWAY -- hallway to the book room -location4: - .byte SUB_INSIDE_SUB ; north exit +location13: + .byte $ff ; north exit .byte SUB_BOOK_ROOM ; south exit .byte $ff ; east exit .byte $ff ; west exit @@ -97,7 +266,7 @@ location4: .byte $ff ; SELENA_BOOK_ROOM -- book room -location5: +location14: .byte SUB_BOOK_HALLWAY ; north exit .byte SUB_BOOK_CLOSED ; south exit .byte $ff ; east exit @@ -114,7 +283,7 @@ location5: .byte $ff ; SUB_BOOK_CLOSED -- book -location6: +location15: .byte $ff ; north exit .byte SUB_BOOK_OPEN ; south exit .byte $ff ; east exit @@ -131,7 +300,7 @@ location6: .byte $ff ; SUB_BOOK_OPEN -- mist book open -location7: +location16: .byte $ff ; north exit .byte SUB_BOOK_ROOM ; south exit .byte $ff ; east exit @@ -149,39 +318,3 @@ location7: .byte 24,32 ; special x .byte 12,22 ; special y .word mist_link_book-1 ; special function - - -; SUB_HALLWAY2 -- another hallway to the sub room -location8: - .byte $ff ; north exit - .byte $ff ; south exit - .byte SUB_ROOM ; east exit - .byte SUB_HALLWAY ; west exit - .byte $ff ; north exit_dir - .byte $ff ; south exit_dir - .byte DIRECTION_S ; east exit_dir - .byte DIRECTION_W ; west exit_dir - .word $0000 ; north bg - .word $0000 ; south bg - .word sub_hallway2_e_lzsa ; east bg - .word sub_hallway2_w_lzsa ; west bg - .byte BG_EAST|BG_WEST - .byte $ff - -; SUB_CLOSE -- standing close to the sub -location9: - .byte SUB_ROOM ; north exit - .byte $ff ; south exit - .byte $ff ; east exit - .byte $ff ; west exit - .byte DIRECTION_N ; north exit_dir - .byte $ff ; south exit_dir - .byte $ff ; east exit_dir - .byte $ff ; west exit_dir - .word sub_close_n_lzsa ; north bg - .word sub_close_s_lzsa ; south bg - .word $0000 ; east bg - .word $0000 ; west bg - .byte BG_NORTH|BG_SOUTH - .byte $ff - diff --git a/mist/sub.s b/mist/sub.s index f3c1b73f..dcdb7502 100644 --- a/mist/sub.s +++ b/mist/sub.s @@ -193,6 +193,33 @@ mist_book_good: done_animate_mist_book: jmp nothing_special + + +sub_selena_open: + lda #SUB_CLOSE_OPEN + sta LOCATION + + jmp change_location + +sub_selena_close: + lda #SUB_CLOSE + sta LOCATION + + jmp change_location + +sub_door_selena_open: + lda #SUB_INSIDE_BACK_OPEN + sta LOCATION + + jmp change_location + +sub_door_close: + lda #SUB_INSIDE_BACK + sta LOCATION + + jmp change_location + + ;========================== ; includes ;==========================