diff --git a/mist/graphics_meche/Makefile b/mist/graphics_meche/Makefile index 94936661..a8fd6ed7 100644 --- a/mist/graphics_meche/Makefile +++ b/mist/graphics_meche/Makefile @@ -59,7 +59,8 @@ meche_graphics.inc: \ blue_secret_room_n.lzsa blue_secret_room_s.lzsa blue_secret_room_e.lzsa blue_secret_room_w.lzsa \ blue_secret_room_jolt_n.lzsa \ red_secret_door_s.lzsa \ - red_secret_room_n.lzsa red_secret_room_s.lzsa red_secret_room_e.lzsa red_secret_room_w.lzsa + red_secret_room_n.lzsa red_secret_room_s.lzsa red_secret_room_e.lzsa red_secret_room_w.lzsa \ + achenar_letter.lzsa echo "departure_e_lzsa: .incbin \"departure_e.lzsa\"" > meche_graphics.inc echo "arrival_w_lzsa: .incbin \"arrival_w.lzsa\"" >> meche_graphics.inc echo "entrance_e_lzsa: .incbin \"entrance_e.lzsa\"" >> meche_graphics.inc @@ -160,6 +161,8 @@ meche_graphics.inc: \ echo "red_secret_room_s_lzsa: .incbin \"red_secret_room_s.lzsa\"" >> meche_graphics.inc echo "red_secret_room_e_lzsa: .incbin \"red_secret_room_e.lzsa\"" >> meche_graphics.inc echo "red_secret_room_w_lzsa: .incbin \"red_secret_room_w.lzsa\"" >> meche_graphics.inc + echo "achenar_letter_lzsa: .incbin \"achenar_letter.lzsa\"" >> meche_graphics.inc + %.gr: %.png $(PNG2GR) $< $@ diff --git a/mist/graphics_meche/achenar_letter.png b/mist/graphics_meche/achenar_letter.png new file mode 100644 index 00000000..18c33b3c Binary files /dev/null and b/mist/graphics_meche/achenar_letter.png differ diff --git a/mist/hello.bas b/mist/hello.bas index 3296caec..8376ff89 100644 --- a/mist/hello.bas +++ b/mist/hello.bas @@ -1,5 +1,5 @@ 5 HOME -10 PRINT "LOADING MIST V0.99" +10 PRINT "LOADING MIST V0.99.1" 20 PRINT:PRINT 40 PRINT "CONTROLS: " 42 PRINT " MOVE CURSOR : ARROWS OR WASD" diff --git a/mist/leveldata_meche.inc b/mist/leveldata_meche.inc index 9cca3420..8f335203 100644 --- a/mist/leveldata_meche.inc +++ b/mist/leveldata_meche.inc @@ -773,9 +773,9 @@ location41: .word red_secret_room_e_lzsa ; east bg .word red_secret_room_w_lzsa ; west bg .byte BG_NORTH | BG_SOUTH | BG_EAST | BG_WEST - .byte DIRECTION_N - .byte 22,29 ; special x - .byte 14,24 ; special y + .byte DIRECTION_N | DIRECTION_S + .byte 22,31 ; special x + .byte 14,32 ; special y .word meche_take_red_page-1 ; special function ; MECHE_TOP_FLOOR_UP -- looking above elevator @@ -806,11 +806,9 @@ location43: .byte $ff ; east exit_dir .byte $ff ; west exit_dir .word $0000 ; north bg - .word $0000 ; south bg + .word achenar_letter_lzsa ; south bg .word $0000 ; east bg .word $0000 ; west bg .byte BG_SOUTH .byte $ff ; special exit - - diff --git a/mist/meche.s b/mist/meche.s index 0bfcd6db..8967838b 100644 --- a/mist/meche.s +++ b/mist/meche.s @@ -222,6 +222,10 @@ really_exit: ;============================= draw_red_page: + lda DIRECTION + cmp #DIRECTION_N + bne done_draw_red_page + lda RED_PAGES_TAKEN and #MECHE_PAGE bne no_draw_page @@ -237,7 +241,8 @@ draw_red_page: sta INH jmp put_sprite_crop ; tail call - +done_draw_red_page: + rts ;======================== ; draw blue page @@ -293,10 +298,36 @@ actually_draw_blue_page: no_draw_page: rts + ;============================== + ; Take red page + ; or read achenar letter + ;============================== + meche_take_red_page: + lda DIRECTION + cmp #DIRECTION_N + beq actually_take_red_page + + ; otherwise go to read letter + + lda #MECHE_ACHENAR_LETTER + sta LOCATION + jsr change_location + + bit SET_TEXT + rts + + +actually_take_red_page: lda #MECHE_PAGE jmp take_red_page + + ;============================= + ; Take blue page + ; or jolt the chair + ;============================= + meche_take_blue_page: lda DIRECTION cmp #DIRECTION_W diff --git a/mist/playthrough_save.inc b/mist/playthrough_save.inc index 1c31afc5..53c4fdcf 100644 --- a/mist/playthrough_save.inc +++ b/mist/playthrough_save.inc @@ -4,15 +4,15 @@ .byte DIRECTION_S ; DIRECTION = $81 .byte OCTAGON_TEMPLE_CENTER ; LOCATION = $82 -.byte (OCTAGON_PAGE|MECHE_PAGE|SELENA_PAGE|CHANNEL_PAGE) +.byte (OCTAGON_PAGE|MECHE_PAGE|SELENA_PAGE|CHANNEL_PAGE|STONEY_PAGE) ; RED_PAGES_TAKEN = $83 -.byte (OCTAGON_PAGE|MECHE_PAGE|SELENA_PAGE|CHANNEL_PAGE) +.byte (OCTAGON_PAGE|MECHE_PAGE|SELENA_PAGE|CHANNEL_PAGE|STONEY_PAGE) ; BLUE_PAGES_TAKEN = $84 .byte $1 ; CLOCK_BRIDGE = $85 .byte $1 ; GEAR_OPEN = $86 -.byte (MARKER_DOCK|MARKER_GEARS|MARKER_SPACESHIP|MARKER_GENERATOR|MARKER_CLOCK|MARKER_POOL|MARKER_TREE) +.byte (MARKER_DOCK|MARKER_GEARS|MARKER_SPACESHIP|MARKER_GENERATOR|MARKER_CLOCK|MARKER_POOL|MARKER_TREE|MARKER_DENTIST) ; MARKER_SWITCHES = $87 .byte $2 ; CLOCK_HOUR = $88 @@ -53,9 +53,9 @@ .byte $00 ; MECHE_LOCK4 = $A8 .byte $00 ; HOLDING_PAGE = $A9 -.byte $4 +.byte $5 ; RED_PAGE_COUNT = $AA -.byte $4 +.byte $5 ; BLUE_PAGE_COUNT = $AB