From 37431b046aa29ebf99f84b27a9c4ce104d2b345f Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 11 Aug 2020 15:17:18 -0400 Subject: [PATCH] mist: meche: add achenar's letter --- mist/graphics_meche/Makefile | 5 +++- mist/graphics_meche/achenar_letter.png | Bin 0 -> 977 bytes mist/hello.bas | 2 +- mist/leveldata_meche.inc | 10 +++----- mist/meche.s | 33 ++++++++++++++++++++++++- mist/playthrough_save.inc | 10 ++++---- 6 files changed, 46 insertions(+), 14 deletions(-) create mode 100644 mist/graphics_meche/achenar_letter.png 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 0000000000000000000000000000000000000000..18c33b3c06a4c51282b051a3473b94ea40686e25 GIT binary patch literal 977 zcmV;?11|iDP)EX>4Tx04R}tkv&MmKpe$iQ^lecK|6>zWT;LSib`?RDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbgZG^;BLXu55t z5^*t;T@`y?5kMaX5kpjFmN6$uNqCO0d-(Wz7vWjn=l&f1YR+PSPb8jYhG`RT5XUxc zgY!Odh!tg(_?&pcqze*1a$RZi8|Q+{0?!PY>C`-Nh*&Iiu+qV-XllgM#9>v_DPPDm zS>?RNSu0mr>z@3D!JNLb%ypWhNMI35kRU=q6(y8mBSNcAiiH&I$36Tbu3sXTLaq`R zITlcX2HEw4|H1EWt^CwvGbtDcx?ddUV+`oo1sXNS`95}>#tGnm2CnqBzfuQgK1r{& zweS%zunk;Xw>4!CxZDATpA6ZQUCB>V$mfCgGy0}1Fmwy_t~GmW?c?+TNK;qI8{ps& z7%x!vy2rZ%oxS~grq$mM#WZrr;8IWG0000pP)t-s0002v9$;Wjz5hi00Ha`>oSYQT z{m{ezU~&WhYCN5to&TWF6!kpN-Hmep(EtDc0001;kA{E%0004EOGiWihy@);00009 za7bBm000zp000$W0hU+mk^lez2XskIMF->v3lcjkDcoL?0000PbVXQnLvL+uWo~o; zLvm$dbY)~9cWHEJAV*0}P*;Ht7XSbOZ%IT!R7l6|meFp5FbqW&Xpl^O1P-Xd^q_&!w`tVJ(&Ll!<5Wahk+|Mvdqh(S_(7Kx~c-s4u*JS{fqC`@N3w;977Sf2rE^I#?j2lf?m!d)3lqRQ^c>X z8cpB51j7(Yfq6tZ!#a?}f#D%hDXQb>J1=I~o7Z@`l|9!>^}`TEKx`aSLM4~te!{_& z@-47JO^bNnbml*L*!Wf3`iibBJsQ!IGF(^CVuow;?1bDvGq4gd^8@3)mpt@}Z4CR$ zc8-ur7~X1FXc&e=_qYDzJB{pO4cM}I_hyN{U9 zUhBW~!!|wI6s}G-lF#$`qzuvFV#GmF!(i9K>~a0Fhuf3md;bnHG+S?xGc(?PDNXjb z7(Rc89n6r~yP(hO54`2xwr!3l_3%H#Lm7SnF?J#ss0^T+00000NkvXXu0mjfjZC{X literal 0 HcmV?d00001 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