diff --git a/mist/README b/mist/README index 4bccc78a..e9a41f26 100644 --- a/mist/README +++ b/mist/README @@ -30,14 +30,14 @@ Sizes: disk1: SECTORS TRACKS HELLO 566 -> 768 -> 3 - LOADER 4006 -> 4096 -> 16 1 + LOADER 4013 -> 4096 -> 16 1 MIST_TITLE 21008 -> 21248 -> 83 6 - MIST 39780 -> 39936 -> 156 10 - OCTAGON 32627 -> 32768 -> 128 8 + MIST 40653 -> 40704 -> 159 10 + OCTAGON 32610 -> 32768 -> 128 8 VIEWER 4834 -> 4864 -> 19 2 DENTIST 7879 -> 7936 -> 31 2 D'NI 6863 -> 6912 -> 27 2 - SAVE0 74 -> 256 -> 1 1 + SAVE0 88 -> 256 -> 1 1 SHIP 5047 -> 5120 -> 20 2 ======== ==== 484+10 = 494 = 126k 34 @@ -51,9 +51,9 @@ Sizes: 381+4= 385 = 98k 25 disk3: MECHE 28857 -> 28928 -> 113 8 - SELENA 36907 -> 37120 -> 145 10 - STONEY 29984 -> 30208 -> 118 8 - GENERATOR 8167 -> 8167 -> 2 2 - SUB 8912 -> 8960 -> 35 3 + SELENA 36912 -> 37120 -> 145 10 + STONEY 40195 -> 40448 -> 158 10 + GENERATOR 8434 -> 8448 -> 33 3 + SUB 13786 -> 13824 -> 54 4 ======== ==== - ???+5=??? 31 + 503+5=508 = 127k 35 diff --git a/mist/TODO b/mist/TODO index f630fb79..d521b73d 100644 --- a/mist/TODO +++ b/mist/TODO @@ -32,8 +32,12 @@ For release 1.0 + MECHE -- animations for elevator - -- way to click on end puzzle from other angle -- way to turn around in basement + -- ability to look up at top of elevator + -- look around in the secret rooms + -- note from achenar + + + SUB -- can walk around outside of sub diff --git a/mist/common_defines.inc b/mist/common_defines.inc index 7afb7e79..b23a2952 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -203,6 +203,7 @@ MECHE_BLUE_SECRET_DOOR = 38 MECHE_BLUE_SECRET_ROOM = 39 MECHE_RED_SECRET_DOOR = 40 MECHE_RED_SECRET_ROOM = 41 +MECHE_TOP_FLOOR_UP = 42 diff --git a/mist/graphics_meche/Makefile b/mist/graphics_meche/Makefile index f2dc370b..429c6df7 100644 --- a/mist/graphics_meche/Makefile +++ b/mist/graphics_meche/Makefile @@ -43,6 +43,7 @@ meche_graphics.inc: \ elevator_top_e.lzsa \ elevator_half_e.lzsa \ top_floor_e.lzsa \ + top_floor_up_w.lzsa \ top_floor_ye_w.lzsa top_floor_ne_w.lzsa \ rotate_controls_e.lzsa \ eastturn_e.lzsa eastturn_w.lzsa \ @@ -125,6 +126,7 @@ meche_graphics.inc: \ echo "elevator_half_e_lzsa: .incbin \"elevator_half_e.lzsa\"" >> meche_graphics.inc echo "elevator_top_e_lzsa: .incbin \"elevator_top_e.lzsa\"" >> meche_graphics.inc echo "top_floor_e_lzsa: .incbin \"top_floor_e.lzsa\"" >> meche_graphics.inc + echo "top_floor_up_w_lzsa: .incbin \"top_floor_up_w.lzsa\"" >> meche_graphics.inc echo "top_floor_ye_w_lzsa: .incbin \"top_floor_ye_w.lzsa\"" >> meche_graphics.inc echo "top_floor_ne_w_lzsa: .incbin \"top_floor_ne_w.lzsa\"" >> meche_graphics.inc echo "rotate_controls_e_lzsa: .incbin \"rotate_controls_e.lzsa\"" >> meche_graphics.inc diff --git a/mist/graphics_meche/top_floor_up_w.png b/mist/graphics_meche/top_floor_up_w.png new file mode 100644 index 00000000..afd44f89 Binary files /dev/null and b/mist/graphics_meche/top_floor_up_w.png differ diff --git a/mist/leveldata_meche.inc b/mist/leveldata_meche.inc index 393cd48d..eb31fa0e 100644 --- a/mist/leveldata_meche.inc +++ b/mist/leveldata_meche.inc @@ -14,7 +14,7 @@ locations: .word location28,location29,location30,location31 .word location32,location33,location34,location35 .word location36,location37,location38,location39 - .word location40,location41 + .word location40,location41,location42 ; MECHE_INSIDE_GEAR -- Inside gear on Mist location0: @@ -520,7 +520,10 @@ location27: .word top_floor_e_lzsa ; east bg .word top_floor_ye_w_lzsa ; west bg .byte BG_EAST|BG_WEST - .byte $ff ; special exit + .byte DIRECTION_W ; special exit + .byte 13,25 ; special x + .byte 0,8 ; special y + .word goto_top_floor_up-1 ; special function ; MECHE_ROTATE_CONTROLS -- elevator rotate controls location28: @@ -536,7 +539,7 @@ location28: .word $0000 ; south bg .word rotate_controls_e_lzsa ; east bg .word $0000 ; west bg - .byte BG_EAST|BG_WEST + .byte BG_EAST .byte DIRECTION_E ; special exit .byte 13,28 ; special x .byte 18,42 ; special y @@ -775,3 +778,21 @@ location41: .byte 14,24 ; special y .word meche_take_red_page-1 ; special function +; MECHE_TOP_FLOOR_UP -- looking above elevator +location42: + .byte $ff ; north exit + .byte $ff ; south exit + .byte $ff ; east exit + .byte MECHE_TOP_FLOOR ; west exit + .byte $ff ; north exit_dir + .byte $ff ; south exit_dir + .byte $ff ; east exit_dir + .byte DIRECTION_W ; west exit_dir + .word $0000 ; north bg + .word $0000 ; south bg + .word $0000 ; east bg + .word top_floor_up_w_lzsa ; west bg + .byte BG_WEST + .byte $ff ; special exit + + diff --git a/mist/meche_rotation.s b/mist/meche_rotation.s index 7cc0dfe0..9a7163fa 100644 --- a/mist/meche_rotation.s +++ b/mist/meche_rotation.s @@ -1,3 +1,11 @@ + ;=============================== + ; top floor up + ;=============================== +goto_top_floor_up: + lda #MECHE_TOP_FLOOR_UP + sta LOCATION + jmp change_location + ;============================== ; book page stuff @@ -350,14 +358,19 @@ rot_button_press: ; change to plain elevator ldy #LOCATION_WEST_BG lda #top_floor_ye_w_lzsa - sta location27+1,Y + sta location27+1,Y ; MECHE_TOP_FLOOR ; change destination to controls ldy #LOCATION_WEST_EXIT lda #MECHE_IN_ELEVATOR - sta location27,Y + sta location27,Y ; MECHE_TOP_FLOOR + + ; restore ability to look up + ldy #LOCATION_SPECIAL_EXIT + lda #DIRECTION_W + sta location27,Y ; MECHE_TOP_FLOOR jmp change_location ; tail call @@ -675,14 +688,19 @@ half_and_controls: ; change to elevator roof ldy #LOCATION_WEST_BG lda #top_floor_ne_w_lzsa - sta location27+1,Y + sta location27+1,Y ; MECHE_TOP_FLOOR ; change destination to controls ldy #LOCATION_WEST_EXIT lda #MECHE_ROTATE_CONTROLS - sta location27,Y + sta location27,Y ; MECHE_TOP_FLOOR + + ; disable ability to look up + ldy #LOCATION_SPECIAL_EXIT + lda #$ff + sta location27,Y ; MECHE_TOP_FLOOR jmp elevator_button_done_no_update