diff --git a/mist/common_defines.inc b/mist/common_defines.inc index 7315c6e7..8490433c 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -435,5 +435,5 @@ DENTIST_PANEL = 5 DNI_ARRIVAL = 0 DNI_DESK = 1 -DNI_MYST_BOOK = 2 -DNI_MYST_BOOK_OPEN = 3 +DNI_MIST_BOOK = 2 +DNI_MIST_BOOK_OPEN = 3 diff --git a/mist/default_save.s b/mist/default_save.s index 3b6c090c..23abbade 100644 --- a/mist/default_save.s +++ b/mist/default_save.s @@ -72,3 +72,5 @@ .byte $00 ; GREEN_BOOK_PROGRESS = $BF .byte $00 ; DNI_PROGRESS = $C0 .byte $00 ; COMPARTMENT_OPEN = $C1 +.byte $00 ; GAME_COMPLETED = $C2 + diff --git a/mist/graphics_dni/Makefile b/mist/graphics_dni/Makefile index dd32c57e..8fe5cc8d 100644 --- a/mist/graphics_dni/Makefile +++ b/mist/graphics_dni/Makefile @@ -19,7 +19,7 @@ dni_graphics.inc: \ echo "dni_w_lzsa: .incbin \"dni_w.lzsa\"" >> dni_graphics.inc echo "dni_desk_n_lzsa: .incbin \"dni_desk_n.lzsa\"" >> dni_graphics.inc echo "dni_desk_book_closed_n_lzsa: .incbin \"dni_desk_book_closed_n.lzsa\"" >> dni_graphics.inc - echo "dni_desk_book_open_n_lzsa: .incbin \"dni_desk_open_n.lzsa\"" >> dni_graphics.inc + echo "dni_desk_book_open_n_lzsa: .incbin \"dni_desk_book_open_n.lzsa\"" >> dni_graphics.inc echo "dni_desk_s_lzsa: .incbin \"dni_desk_s.lzsa\"" >> dni_graphics.inc %.gr: %.png diff --git a/mist/graphics_octagon/Makefile b/mist/graphics_octagon/Makefile index dd85ce84..fc0ccf5d 100644 --- a/mist/graphics_octagon/Makefile +++ b/mist/graphics_octagon/Makefile @@ -14,15 +14,16 @@ octagon_graphics.inc: \ temple_door_closed_s.lzsa temple_door_closed_n.lzsa \ temple_center_n.lzsa temple_center_s.lzsa temple_center_e.lzsa \ temple_center_w.lzsa temple_center_up.lzsa \ + temple_center_exploded_e.lzsa temple_center_exploded_w.lzsa \ temple_center_open_n.lzsa temple_center_closed_s.lzsa \ - red_book_shelf.lzsa \ + red_book_shelf.lzsa red_book_shelf_exploded.lzsa \ red_book_open.lzsa red_book_closed.lzsa \ blue_book_open.lzsa blue_book_closed.lzsa \ fireplace_e.lzsa \ - in_fireplace_w.lzsa in_fireplace_door.lzsa \ + in_fireplace_w.lzsa in_fireplace_door.lzsa in_fireplace_exploded_w.lzsa \ frame_door_open.lzsa \ frame_bookcase_open.lzsa \ - blue_book_shelf.lzsa \ + blue_book_shelf.lzsa blue_book_shelf_exploded.lzsa \ bookshelf_n.lzsa bookshelf_open_n.lzsa \ bookshelf_close_n.lzsa \ map.lzsa tower_rotation.lzsa \ @@ -60,18 +61,23 @@ octagon_graphics.inc: \ echo "temple_center_s_lzsa: .incbin \"temple_center_s.lzsa\"" >> octagon_graphics.inc echo "temple_center_e_lzsa: .incbin \"temple_center_e.lzsa\"" >> octagon_graphics.inc echo "temple_center_w_lzsa: .incbin \"temple_center_w.lzsa\"" >> octagon_graphics.inc + echo "temple_center_exploded_e_lzsa: .incbin \"temple_center_exploded_e.lzsa\"" >> octagon_graphics.inc + echo "temple_center_exploded_w_lzsa: .incbin \"temple_center_exploded_w.lzsa\"" >> octagon_graphics.inc echo "temple_center_open_n_lzsa: .incbin \"temple_center_open_n.lzsa\"" >> octagon_graphics.inc echo "temple_center_closed_s_lzsa: .incbin \"temple_center_closed_s.lzsa\"" >> octagon_graphics.inc echo "temple_center_up_lzsa: .incbin \"temple_center_up.lzsa\"" >> octagon_graphics.inc echo "red_book_open_lzsa: .incbin \"red_book_open.lzsa\"" >> octagon_graphics.inc echo "red_book_closed_lzsa: .incbin \"red_book_closed.lzsa\"" >> octagon_graphics.inc echo "red_book_shelf_lzsa: .incbin \"red_book_shelf.lzsa\"" >> octagon_graphics.inc + echo "red_book_shelf_exploded_lzsa: .incbin \"red_book_shelf_exploded.lzsa\"" >> octagon_graphics.inc echo "fireplace_e_lzsa: .incbin \"fireplace_e.lzsa\"" >> octagon_graphics.inc echo "in_fireplace_w_lzsa: .incbin \"in_fireplace_w.lzsa\"" >> octagon_graphics.inc + echo "in_fireplace_exploded_w_lzsa: .incbin \"in_fireplace_exploded_w.lzsa\"" >> octagon_graphics.inc echo "in_fireplace_door_lzsa: .incbin \"in_fireplace_door.lzsa\"" >> octagon_graphics.inc echo "frame_door_open_lzsa: .incbin \"frame_door_open.lzsa\"" >> octagon_graphics.inc echo "frame_bookcase_open_lzsa: .incbin \"frame_bookcase_open.lzsa\"" >> octagon_graphics.inc echo "blue_book_shelf_lzsa: .incbin \"blue_book_shelf.lzsa\"" >> octagon_graphics.inc + echo "blue_book_shelf_exploded_lzsa: .incbin \"blue_book_shelf_exploded.lzsa\"" >> octagon_graphics.inc echo "blue_book_open_lzsa: .incbin \"blue_book_open.lzsa\"" >> octagon_graphics.inc echo "blue_book_closed_lzsa: .incbin \"blue_book_closed.lzsa\"" >> octagon_graphics.inc echo "bookshelf_n_lzsa: .incbin \"bookshelf_n.lzsa\"" >> octagon_graphics.inc diff --git a/mist/graphics_octagon/blue_book_shelf_exploded.png b/mist/graphics_octagon/blue_book_shelf_exploded.png new file mode 100644 index 00000000..ce16c662 Binary files /dev/null and b/mist/graphics_octagon/blue_book_shelf_exploded.png differ diff --git a/mist/graphics_octagon/in_fireplace_exploded_w.png b/mist/graphics_octagon/in_fireplace_exploded_w.png new file mode 100644 index 00000000..12feef54 Binary files /dev/null and b/mist/graphics_octagon/in_fireplace_exploded_w.png differ diff --git a/mist/graphics_octagon/red_book_shelf_exploded.png b/mist/graphics_octagon/red_book_shelf_exploded.png new file mode 100644 index 00000000..00d702a3 Binary files /dev/null and b/mist/graphics_octagon/red_book_shelf_exploded.png differ diff --git a/mist/graphics_octagon/temple_center_exploded_e.png b/mist/graphics_octagon/temple_center_exploded_e.png new file mode 100644 index 00000000..250add05 Binary files /dev/null and b/mist/graphics_octagon/temple_center_exploded_e.png differ diff --git a/mist/graphics_octagon/temple_center_exploded_w.png b/mist/graphics_octagon/temple_center_exploded_w.png new file mode 100644 index 00000000..e3262d0c Binary files /dev/null and b/mist/graphics_octagon/temple_center_exploded_w.png differ diff --git a/mist/leveldata_dni.inc b/mist/leveldata_dni.inc index 7bc1059e..3b272f84 100644 --- a/mist/leveldata_dni.inc +++ b/mist/leveldata_dni.inc @@ -3,7 +3,7 @@ ;=============================================== locations: - .word location0, location1 + .word location0, location1, location2, location3 ; DNI_ARRIVAL -- deep underneath New Mexico location0: @@ -11,7 +11,7 @@ location0: .byte $ff ; south exit .byte $ff ; east exit .byte $ff ; west exit - .byte $ff ; north exit_dir + .byte $ff ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir .byte $ff ; west exit_dir @@ -25,7 +25,6 @@ location0: .byte 18,38 ; special y .word visit_atrus-1 ; special function - ; DNI_DESK -- Atrus' desk location1: .byte $ff ; north exit @@ -46,3 +45,43 @@ location1: .byte 6,40 ; special y .word skip_text-1 ; special function +; DNI_MIST_BOOK -- mist book closed +location2: + .byte $ff ; north exit + .byte DNI_ARRIVAL ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte $ff ; north exit_dir + .byte DIRECTION_E ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word dni_desk_book_closed_n_lzsa ; north bg + .word dni_desk_s_lzsa ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_SOUTH|BG_NORTH + .byte DIRECTION_N ; special exit + .byte 13,27 ; special x + .byte 6,40 ; special y +; .word skip_text-1 ; special function + +; DNI_MIST_BOOK_OPEN -- mist book open +location3: + .byte $ff ; north exit + .byte DNI_ARRIVAL ; south exit + .byte $ff ; east exit + .byte $ff ; west exit + .byte $ff ; north exit_dir + .byte DIRECTION_E ; south exit_dir + .byte $ff ; east exit_dir + .byte $ff ; west exit_dir + .word dni_desk_book_open_n_lzsa ; north bg + .word dni_desk_s_lzsa ; south bg + .word $0000 ; east bg + .word $0000 ; west bg + .byte BG_SOUTH|BG_NORTH + .byte DIRECTION_N ; special exit + .byte 13,27 ; special x + .byte 6,40 ; special y +; .word skip_text-1 ; special function + diff --git a/mist/octagon.s b/mist/octagon.s index bf1fc4d7..8ef143b1 100644 --- a/mist/octagon.s +++ b/mist/octagon.s @@ -41,6 +41,10 @@ octagon_start: sta CURSOR_Y + ; set up game over status + + jsr update_game_over + ; set up initial location jsr change_location diff --git a/mist/octagon_fireplace.s b/mist/octagon_fireplace.s index 0ee6c694..bab606d6 100644 --- a/mist/octagon_fireplace.s +++ b/mist/octagon_fireplace.s @@ -375,3 +375,28 @@ actually_open_book: jmp change_location + +update_game_over: + + lda GAME_COMPLETE + beq done_update + + ; update background for red + ; update background for blue + + ; update exit of red + ; update exit of blue + + ; clear red pages + lda #$ff + sta RED_PAGES_TAKEN + sta BLUE_PAGES_TAKEN + + ; clear blue pages + + ; update green book so atrus doesn't talk + lda #8 + sta GREEN_BOOK_PROGRESS + +done_update: + rts diff --git a/mist/zp.inc b/mist/zp.inc index 7d3f62f9..5066a36f 100644 --- a/mist/zp.inc +++ b/mist/zp.inc @@ -187,7 +187,9 @@ DNI_PROGRESS = $C0 ; dni: atrus status COMPARTMENT_OPEN = $C1 ; dock marker switch compartment -END_OF_SAVE = $C2 +GAME_COMPLETE = $C2 ; game has been completed + +END_OF_SAVE = $C3 ; done game puzzle state