From a66acdb7eaed1dcc6345334b0cb28595fa5591c7 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Fri, 10 Apr 2020 11:27:25 -0400 Subject: [PATCH] implement save/load --- debug.jim | Bin 1382 -> 1382 bytes defs.jim | Bin 2273 -> 2255 bytes defs.jor | 14 +++++--------- entity.jim | Bin 1698 -> 1698 bytes footer.jim | Bin 1816 -> 1833 bytes footer.jor | 1 + game.jim | Bin 5591 -> 5787 bytes game.jor | 19 +++++++++++++++++-- input.jim | Bin 532 -> 532 bytes jiles.jim | Bin 1648 -> 1648 bytes job.jim | Bin 1113 -> 1113 bytes lev00001.jim | Bin 1023 -> 1023 bytes lev00002.jim | Bin 1123 -> 1123 bytes lev00003.jim | Bin 2333 -> 2333 bytes level.jim | Bin 471 -> 517 bytes level.jor | 2 ++ map.jim | Bin 1160 -> 1160 bytes portrait.gfx | Bin 8192 -> 8192 bytes state.jim | Bin 271 -> 271 bytes timer.jim | Bin 453 -> 453 bytes title.jim | Bin 1038 -> 1148 bytes title.jor | 29 +++++++++++++++++++---------- 22 files changed, 44 insertions(+), 21 deletions(-) diff --git a/debug.jim b/debug.jim index bd062ff3d97379ca7423311cdd6e4e59311f9b99..74576c50da2007920d5e088dc43ef8567127675d 100755 GIT binary patch literal 1382 zcmah}Ply{;7=M#_UuQJk-MB7Gp?Nd!)q05R>_LOVvM5^{WwB<%HmzEMC9|2VA=@M* zle)6tB|2!AIpnY`LJlg0WnDomf|MM3Fxn!DD+Q&O9!jY<5qr>*i{E=OyRIG#Oy+&R z_x-;A-@N|IZ1m})KZ$d2BYynoA>!7{&T5T3F-gdc_#skomz~l;{5fta(a$%^>i%Bb zP{7iK0{JvH8~r1GSd;q2QoZ3z)@CfA)94Wu*UW%EHPM2o#Y?prPPQSS8~9veUqrTH&Fs=E(4%W+ z2){8?D|l{mdD*KYu}2@E?On9?xCMg?M31l``m7aI0iDjKGR}M&?*jTI+oC(hP$O%N z>}xEXO)c)}w6R381|M2GMh-r)y7b9NPjzC*y=aXp?&6uWlU;C9>61v#KoV7DZLe5^ zYCOM?mer8ZkCvu2lv2SO)Fgzvh*cE!-X8WRVoM6Uy@wsPHLaN+*@IJQZ z+ldg8s3g052j$D-A*5^|Zf&|yRm2G4W>OE~jQy@e)o_JS9_XmX%RvjFWeaS0g35H0 z`Y_$MY#musXsK)TAOq`m5BhkLPY55`Q5<_OU#?Y46~BSA{o3TZP4M@B?`!rLd3o+t z=fq-a?xoDad^&rYXp=x59I*J9%7BttJp&OkrE~KKTgLhbkCCMnFJE`|y`yS?`%na* z2UI50Mk#@t&{qFjh$V2YFY*rdsaH zMTfW0;VyqvlkO_s>c7Ih%cT{;zu`UFf{bu$a)~ye1v!BXJj>-dCN#~(+Dt@#k92Ul z15EO5F(Y!YDO%7LZ&vFCUa9)LSZ!7ciX`)Ng|0O#k|_8oOzZ;@)l{*Ze9>2H$W1wK zQ~HbuVO!uxzJbbp<0^{Rkv#3nZ;H(PA9){>5pRHuT7K6yK(4x!WWNS$Kg|CgRz&9i E7oci#egFUf literal 1382 zcmah}UuauZ7(X}ne7kpxYs0JsS+-TDM;s1EzUG_otqLWNpq8hb~iD( z(Lw1`^g5Lb<{=a$ee$7{iVt%PB=bR*7ukI9L9|1JZ4C8IWQ;*x{LabJZu(&0=AQ3& ze!uUW@84beeLDKu(Lco7a4Y`8(E}t`U2!f}$k-?$x8es#K38-~ee=(_sZ2jxTT%ND zCm}InR&j{gJ_5ty;rB!s+fRETlY!|mXG=whP)I#vsAyRaGN1lt<-iY0c z3;GWF{R;hL;0k(?NC+VtBFkm3R=?oxliRFk+>0l0`zkZZ$rGwMQP`zXOZs1DFIv#wKy-`^(6kj*7dpL|OgnQa+zaUUY>Vy~14h9* zyw8|_Gr6$GX<~|G4lY|eMh31~9eO;{Rh1ZMFIhuMyKpAuEY3U0)JYVlVHT+>w^lzJ zugs@pHY9Y{(zKc)y@&UfISJtbVxGc2-@^{snzpR4zxFT-vAV*3-ouXD5iRE<2w13J zM?#oIlC1K5EZ5Z|A)K{=dOviuQ*RRm~N`dY_{TFB>g{mMyU02`a;# z(g)#wYU`*PM^7E23u)N2yU@dxd_wrzj$+%p*_BGUe;5-x{ z;MhnQOcSjHPC`@tZy}bzzP`lUSd%$EL~7XlPsp1n{+6#EPAF+p3Es80P@aMBP$q?+ z;K^0@Khl6M@l77Wbv{fARo8veanG=M&*Sg)0#Zab1(kux(~SYGRc48UD|-0$W`PJwV(l>Kn1Sl@JtC!%VBOtB7aBP z*xdmJ`I$H+GO#Tg@P&B4T+MT@?DImo?&Xz8#_0=Pt9w#7$(Jy&9TC-3vYc$eS7XRc z*>B_eDG@?PU`w7ya?iMd<}QjSa`KxZBY!OJ=j4rBAa524ZZvoBF|F!54iA4n?}wbXhS8c%vy)I7`5^kEYFutJc^3f4Wu zrBrRC2x2H=(W)1VkJ6rm+Co7r6hT4sARc-W0>$~W$whM6{pNd2W@f+1>$2zK&o1wC zwxO@Q@N`0N9)e&&NzB(KaY`-#O2=x85CQ`q$`1&el}lpvy#O{wWsx-pW8<+@g3b7r zU7$oUI=Me4>MHP!8xzNC{Qh;`0 z4U#yfa0@pmscaGZlye!in(NM03^ac!Yb3!VD6V^5+~IeA9q~D z3CYHnjW#A#kqt!5RCH*JNMRIMfV#Bt7U9`QroYu3Cj74GqH|R=+7``{s|DMnE`q<(*G^e&k-meJuE%HUhWGPMt7q|{ zNGxlPM6&!c19^C=hWKf#dFp~c`L#SbhRXcEnzKjp9}soER~z|Wn{;H|{6CR;+3At= zTv(?;r^j0}iNQF54qZu*<}j`E%#vu}eLX}UjE!mC!$u=!_J8J*ewtX%h-Krf4ymo}hVhMAE_iKo*{Uut!PFeQ7LFaiTagjbp8~*{N&I9lO delta 984 zcmZ8gOK1~O6n&lCn@L*ICi4-cR-5W3(i9OzT1!>1ps3KLi$Td}BB4o>CPP1V5u|0n z$|!LtMF~PF5~?UxMTFo78gOH1rMM`FST`0IU5G0K;(bZ#LWUXMynD{M=id9?s&CWh zzWlwvEQ}#z8ofpPHXIU|WS8J@*Q(FS;v}xw>->4PVi(g^QBA>7N$K zD8f%6hF+OKj+c^#lFU)t60-4BCYmM0sIcbcX3xkbtP5$^rPde@(0WB!BJtB+4G+rP zx*`Khgsx2z<$~}<v_4s>x!MV3-(|+UJm-{2P z)KQtN5sC~G(xW8AI<7+zn|gRzaXze_y5dU0bDf$PQFulCSUmCas?IALbYNmQuFRo^ zlM3%kFDY;j*&g1Rn~lzVP)rz9rt!Ygm+NFpNPUw1kO#_KQ+`KrKaGO-Si^_Pl&b&* z;5jVHVc}FmwI^(lstMb~E<&)u29>i-;tvwDuCYaKxSutpnMG5fh!GzP8T`O>=Hay* zAhbuxlMB8I(rTMl9N( z%<3ai0zIJF`>8KQm3yd)8a`43fHcDy)y>93apQkvMLkKVw}i6ru?p-&Ln%)R7JgJk fmeC`6ymsO>v95oGCIY)S?^mtr dup r@ @ <= if - drop 0 r@ ! - else r@ @ 0 < if - 1 - r@ ! - else drop then then rdrop ; +: cycle! ( var lim -- ) + over @ dup 0 < if drop 1 - swap ! + else <= if 0 swap ! + else drop then then ; -: +!cycle ( n var lim -- ) - >r >r r@ +! r >r r@ +! if drop 0 else dup 0 < : checkpoint ( cp -- ) create here 4 cells + , latest , tasks , , does> dup @ here! diff --git a/entity.jim b/entity.jim index 9340a5fef2fdf6fc87d14a8d33423a691fc38475..a10f837211dd544b6aa0f5f3430cdfd40d24459a 100755 GIT binary patch literal 1698 zcmZ`(UuauZ82^%cPLd|gQfukMgsq*+{g<0EL? zbXCv_fj(R{APyvgOd&6O>Vpr~7qJiBAP?%(z!%+vD2h%d$cn4qckWHs7YR4_e82B^ ze&_pl?v9vs|FhR~Y3I5veQz`bOc%$ZALlV}G3 z zPs$wY@|`LcdK;qp=TjPCL&pMg~pp97DvB^Zx;nmCqII760f4>+t>X4({!+ z687_fjs@nsXuX?Q;6Ldtb_YuoN>O+>bP8_|^Fxi5np3s^N95VmQ4uBOiA)I*%HRgd z^rphFvFPLqSKoqH2efA2LtdqvERt8Tj?Y0;8(;J=ux&5{4N!O4YRf+1eSI7E7=9BCeEHh!DI0U z1UdHNA{|W7z~gZPp|Vx4d$I5#BPwQ~YNZ#8i&&)w7BLR%IA>Wt03S=YvD9nEeB8m$ X^xhy%o(j~e0ibJEGpLc<*ysNM3(v+T literal 1698 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 literal 5591 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 HB8vY5{GQpr diff --git a/game.jor b/game.jor index 31b940b..7cb2af5 100755 --- a/game.jor +++ b/game.jor @@ -233,9 +233,20 @@ defer reset-level userword ticks! then ; +: quit-game hide-footer LEV_QUIT queue-level ; +: quit-tick + ^ESC key-pressed if :| + disk :| + s" Resume play" ' noop yield + s" Save and quit to title" :| savegame quit-game |; yield + s" Don't save and quit to title" ' quit-game yield + done |; choose + |; sched then ; + : mode-move player-tick boss-tick + quit-tick ticking-objects @ if ticking-objects @ links @@ -248,8 +259,12 @@ defer reset-level userword q-level @ dup if 0 q-level ! reset-level - loadlevel - party each follow more + dup LEV_QUIT = if + drop title + else + loadlevel + party each follow more + then else drop then ; : mode-wait tick-debounce boss-tick ; diff --git a/input.jim b/input.jim index fc3f50c9132aedff9aa9ceab69fcf38354d9b8eb..9298ae550f5b08a19bbedf34a662ab1f117c09fb 100755 GIT binary patch literal 532 zcmXw$Jxc>Y5QZnWyCy1rBC${lcLh-l7KUIjC^4QNB+(;@h!8Hs+y%s#lgph!u(pv@ z7B)5_l1i`;3kwTNI~$u+BH|ygv(VWSyLq0OcXx-?KVzMdp^mYD!ujhc1zpW1z!&rZ z=Los@B0>*L^ET|P=hO`1FvK_mJ(0_#kVYWM70_c?&cL=T=dlcfA@lK64q+B7na^tR zgo+r2V@^Qd)UaNKQ+ZZOU6zAMIG2N&wUt$gX}FfnrH!q1Bn|F(0P4kEC$wiC!Flfq z9S;^rnZ5A^f1bVY3))~$n0F1c;uLY9(shIFZqcL~`}t|oFqtAOFh%mLA6=L<*az>1 zl55*$)d>}C+p55^@jlo^gR2h!#HaO2`e)gxugrbijda9`3k~V^v`?2+$N=;Ov(6 zLWa3xxz&=1;ibWQF@fU`q7Bj;n^{%@I$GB W2bu=D6RM0ANR!@+QQ9KU*#89*=zvQA literal 532 zcmXw$KTKLt6o(Jodx6@})}*0BHPL&CNgJ5@21!gC#HSef^8(l|@Cd>qF;Jd;yeDz& zP#p}eE;<_G;AD*H+MyxF!NHA@L3RfQ2Yc=#-Ol%&^Sk$+T>W9`W%B(@IN(+IXr6+u z<`duvc|hR^h4?bUYlw3nb}|Juhd2Wn&OlETaw())C~+_7OIUt_hAcm0slcwx$5RD_ zMffT6c`cq$5o2(~3Fw;|)=4;(XQk9tIk*Amaxk~PmXw%=YuQ}Me#;?Q*^r;mF1yFPQ!|=&1qYhJ3vADc9@W_MbB`({LRcU|iY$yy zAze1+ub}E!meI1K70WU^ZH%4qWT?(IgvLBjWNGo_zjI9qjTcQB&5&HW?gu)GuI;)% zuKR^9fbPI`UA7>mC(o{%*5sC`vxE1<1a2S(_{1wAH#ie=gF`U|JC?D#<=D2_f{!79 z-y#V1cC`_$8C#~)su~#n`mQfN;P|cZK{~scSLI)LVDum5M|oi^Uch(LX&W`O({fV- d+}aoRL$!$q8Z~tL^li9IdbBU*>44l|{~z~p-qOmSCFI`-kWG`_` z6{NLTv>LF;C}ZspDp-e16edinf>8Wn+TZ+Pia$&!tUnBpAzPrT>A2=6yb& zd(OF^d+vE}{Ptk5zk??-O`EZ`SQE=n6!S%oJ=WgLHj#R}G{pXn1zEY|ir=8TC7)*S^`-JwFP}<&%pJDffb{TO%-1&yA#Etm(lUS0^o6| zj@)(FB%A^Vp9W(=FTc*6ABN&4I`YZ^@ z#cu2FU@De{7HbafvkDbVFE@fZQR=kzD}AW+S*4;^@zS}92&=(&=3(|KrA3SROtg}l zI4j1t-`X$J00=p0`Plf2>_B@j%Mg44VU!gKo0g;S)zdK8Fs_+<1Ck^%ie_WaML>2a4g(X*BzK) zi^?iaA3bkihkNWlx_ysi;X(UuEX-HTKLzWt{}qff-f3hE9GDgvW&5bQ%9q6iZ!7a$ z=D&jZs*!@Uz075eb6A6vGAbWE{Aha?W^D&{b`r*yg4JvYB#g5bt*qE|=Tzam;8z8w z{8_;_>^b?g6d#IHyo79L zhw?)YB=zrwHWi1!t}-B$i}BOAs{>sfx!{mMZHU&@g8JUT*V<3ojQVqT4Yu|!Ow7?z zD1v3P;7hElUl@ext)sX8w|GoHhTl~>@-cCkztj}m61H!ubde4uS>5l`=o%du5qQ$L yrq=!PD|{&qayIZ~lopRC$lhDQ)7UBp+7Jy1^cfzIY&&qzB0U$pq+V0$i}xREPnHD$ literal 1648 zcmc&!|7%-S6u;}cw~33ctqXlmMqRURU~5y$K-g&C_oB|#?77XM63asKQlCqc@Dfd8 ze{i%=bdVo9DE%dXD6GBYD{e=>CtRD>yw`L7E%Q2Z_-vWt%gWG=X(X$%Ou?r zm=H3n?jXLK^4H&wf5fL>9 zF?;l@5Z_@(2tFn9Kng40gEG|;XH>6J{L1fJVH!OWVV->=%moNj51dml&Ah%!JG6v? zd30!5CC(;vffI`O$gqUHAB3k#dL^L^0c!=VLp!^bz~M#${rXNap8YWIj%KrdQiFmy zfO0U7`0B4Z;yC*a-V%8zRoJ(Bi}1>2^XLOF@VKEbQ2bZeT|Fq)OJ!WJBLAq!>sjPsqV&t-Z!B2PvZdPHAv4eboZqaNy z87+9Dr}+5Z_>YVOz~!3JL`L2v+uD1{UkKj@7$r?6z+(V+lV=bf2N)&_!dC!BNEgDR z0C$o;gf_rFauDGOfG?3DlaUc;?5!NIL*$5HLm6OilK0F2%yO=r_eXgSr_Ak*jCr=$ zb%&iMGtvS~AHHuwhnLKauJGOz`^KDv5$ZRZ_99y{XE;NTPa7Twww1X@vt`Q*w8|&= zp)^f}|DWK0UW>B_W|fK<)SBT+vsI;+_8e?av9RT^$B);w?>OtUSa4l?WZ+7_g?o+> zo-&aeoTGo3^OM#TJ8m5_PaKN9+DR7KNn@HWvWehPWj9~{*gB`+WrO25EL~RWfpyK` zD`zY`4n?z@9_IXWt7t|jYWJ0z+QYT4xy>WsFLS=cdCPM(b&T^LAa6$2wRbrC30NJf znCDg8=QUxxJz&4aHDa^irt&&hUa&We2y|@!E-!S4qkVvG$*1M#53DFZD`(|jx+-j9 zYs2^)&9z>Guqifc-;zxoF`ha+_2c%MIso@7mOQ|Vk>KR#ZT#px88^~lZ;*N*tl%~} zEXMIa+Ok{^h+DYVW@0wrFp3m!+nC;DXv63Rk9~mda5TVmFXXT@ChA`3g1ju_jrT7G C)Tz(_ diff --git a/job.jim b/job.jim index b179a364f05a7a895b036c89496cd2ee378f4b93..545a3e0e1f70ed2dd845c126631bd317a0fcc2d8 100755 GIT binary patch literal 1113 zcmZvaJ!n%=6vwZ9_wZgVP18yQ>7Yd%)V`s`b`TLF_kCDV1I-{9Y+suf6HQ-Y@}6x4 z2PvdTNug6K#Kplkw2O4CPC8VfqeE51ExI{~gGKP1o1_hDAeZESKJM?H^S@PpXpiZA55oI~leW!d^F9n{L^KN5!Pu)`!z}XhB z@Eu-MGEg$M_?p<^bjtuwsgF_18a0f*!S6y(3QYXBi!DzXy>yf8I2DxV^-SKOo}h*N zhq5R_%$YO#C`T_(XWev=chjw;1ZeCat!5lyo;&C3Gmbx zP9Rp7xq?U`AMT*v?TB@W81fn-ylx@{-af?HxuTrerg0-Op@e+BIlJR#Zv!Lnf-|q5@dTQS~H1?2h8bgsKv%)j* z9?z7z9izdKnu5A{-dM(8i?~vHY2Caps_+zh<#T1<_4G`kB>jlbNPudou`2W*`xHxw zihK<9e-s(+cwwfX)2hNZvztjvQxPo;>xR?{|80i2=ru8@kVj5h%|~TQt}Bt7ssFm< zxz$=i%~}+o?cl~~mKms7wKo5>Jd;P2JagIVVy<^Da07V(Vob^re6T9~W_QEg>k=mg zpRL9MH?YPp&68^h3TyuMtZi?h5tijPGjP!+9vUBLD{`O*e%_AlB1Zxk8Y%&Y@N5zO vY7&02fJvj^Juj{AIJ|52;fA8m=KQRb3AW#$Ai<1Spp94w=wNgzcvj&Ld!9pB literal 1113 zcmZvaPiPZC6voHyJa%hnn<^1np_rq#OKs7EAeETe*`i1n8bolhY@3aVrkggqOaJIa z0)ZYD?5Q9@@DvZ?!Gj3BdZJvq!Dc4mX4mpfRHbu{EEd%0rkM~AM54N^9tTW47b#lY5^s? zv`QOvMacmeyL6m2s5m7_ZFLK^7OP?OBfga(8=Cmn#F8J_usBIpTnzmUJy&!@P0;G} zw=&A=m=iP3h#cKt%DdUH=w`b~7HH%oZPGYPJa;|Nmz`iKk7%OV^2#k0GzU6qKeD@-5;$IUZHAJ}EK?uELi1GCm*)wk38(dK8bf(k0cgAoVBlJQa zS-TJwQ20*#ld+(D7M(XD_=ZI#@S0NydU-1_Ayd1FDjy;xPkQRuI->1$%8jYPFebE#a}btQ5q^Wez6IT91Fao;l)e&wS-E;(Dv08_EL^P3ZGO#Mh!)EGl-k|w)vHq=c_)-OCn z6p9|=2dkt6YW1QQd+@l3=uuld3JSdy5d}f%K})f9CW#vN!Yg$@EK#(4trqmLBKLU z$2a%^8{UcTwZWU>ygDlev37sY`ZKelPI@WdiI0w0(#4Y5Z%L)HW(L^enwdKJyGJLB z^lLn#COsL}Hq&Z5PLJj;k7-g&J8wz(oGDRlyv(;g&pfL%Hhl7gbU~2^!}88bJ{(EM zV@F0}!<-W)Xi)o0m*4Lw30&#_d8}`MxcPvvC(TCjRNtw+S=bwNl%cVIvowuq%(E}( zM% h>}qFHi3e2D1Gj?-vl_qJMWKHJZU1%OA>kE+- z3dJG;Ws&Ml5k{q{Yjv2Z5a@v=63@hO@(=^)ft=^7w)ZP*P!g@IHRf1h@jvnCugM z&)^1!ujM&B!{BB5gRatFj3{#AZCgJB-{B2igCSgtEGWTqn$O{l?UR58Zz2FE)| z1t`EE?!i&q$A}^)9-G{-A0!Ck7#f&H0wsFRb{KcP9R_d{1SsQ0JjJ+1m&;k)2dwi2 zoW~ouAkFoLqx0f%eMwxV&Eesf6H6kJ*T{GB3X_g}wp!Wh$kiIHMA+i8xfc1`gXED} zOx;VR19@gEo7}d}JZhXjNo9?mcI2W_ku5r1<6Hllm?cA|HgaN2KBL5UsqvllqMDdY zX-AUU2^n+ g>vYmd0Cds^x1t%=^iSgh>-jP?TPG&{a=1l)15nS-bpQYW diff --git a/lev00002.jim b/lev00002.jim index f1a62f3fa1683a998f28063464af227b7379fcbe..a4d10c0e0d19999540a86ee4094dc44a25af1984 100755 GIT binary patch literal 1123 zcmX|GT6vyAXE?Ie4DD4o~cu>NFnfb4R+SMI!L1)+9ky_Yt^Uu8Zn?p)ML{u0- zP$Vr8>>&uLpu!FsL4-sl5#b>uOv*e+QsSk=2r4}E-b^zK3%}p@^S*E1pWpG7CA)v1 z%05y&Zsn~2Bp_4Xl|5hs|HiE%=-&%9ArbMpyLch+a?y~z7~ zc?j0vtF>;eirnDKbsW86ZAL(r8+|##*|(vFJ49~s|IK`RzIMbtW5zTQ>p9FO|L19S3BF^F}E@3hBNR)>nj8^a$7SkW`w6Hxw z+lh}-t80(&jCWF)cGE5jvR#_<5<{Sx8mN_8#L~p>3zU+h%*Blv0|;cuAd8MUZW*LY za4ozJ*|$sb z5QaN6M_=fpL*#)RvSn@>lQ;C8HfUXv$%Aq&6TI{(Dp6&sR0Uz!A?~OnJnRmvRC`pF zLnN8EgfUpN4yw31><}ryBNH%fb*ny=aflS{k(W?`gX+8*c8Ij>k|BPLpR6mYphg`c z19J(t6WD}z)ug(w_!UUe%Q@*L$Cd&;S2OCB0IAFcz$0$Nd9|z-1V~{XSc5+Np*GY{ z0aBL-AaE8->@vI5W*}vGK!Y1tY1i6?@a5vt>MOzNPG!@X zw5fM$(HL9fX)_fy6RH1(1>0=rRB@v%9@7m|YmcV0t-5Y#DLt7;xrw`aM?;11q?HV9 Y1^HjEUhb;coeXW^TPfdu^KCTr58?_viU0rr literal 1123 zcmX|D6vmH^OQ2EvqV*Ibq)0?R4X0s1`X8hg6Z)_(cKznnf;j?1F7Y$6G$ca$y8!N$e4wESLLoA1p$j7!ns*uJGk9 zSc7pfB_>$j?aLu@&xl9jF3Wp-IZV}`ir3;f%ay)tK^MFepTr8wdwn?zeehEN{${z# zmq#EB`M3!;Aj$iDISo1#;|?rAjgAxYb)D>0co+|`y_e+c&M|?$sey&fXcOpWFwn;5 z2S`IBX0Qi4sZu*tnhxH>eloSQNpnm=uwWR^;{=Xk9<;K{Lt#QU@HXDZJDjPa_z!%> zOYYT;hiS$y@d>`gSM-fmGI=Bjkn;vV;xGKnkxEL3WS*oY&&5q=$x|RfZk8J*r+JVr zNy7>h$*rA?~QdH0-}(NxqlM z4&h?nC1l~I_$vR%?+)PxJTePs#5z@|3KUo4rakf)7DchzsY)EeM|MdUy~e9zzcSS! zhw#8$LdVH@AR1J=N-25;-1Jy0pC(NaQ=U@iR5t_e%mqLrUKImsObs&N#yqeFg*d5Z z)GY?wmj@tcJ3dtNYK{T7Sxu$(nd9X4Ke56kdeb+>x>Bj7ZYZ3D}VuTTjIs5>3fe z(l+Y#NR*;x(oRI|c;bIxFk{zJDKl1MMva)Q*G7^})rJw%6NVK}xP`U0p}=^sU08tv X;QwT4>PV=}3gpvnJ?&1?ZYb~%5z{`H diff --git a/lev00003.jim b/lev00003.jim index 519c250bf0a9e0388eccc9c8707c0e7e3157b9bb..a97521b4f32f8f7855c845e77c3055f6d94a0372 100755 GIT binary patch literal 2333 zcmaJ?U1$_n6uu@qCQ@ybg3!P8=0RiZnkKQWQiyhv9d}1}XV%?`A!TTs-Mw>XcIRiA znT@V54cH1&()OuR8fhc6BJ@G*AA%I=o7RU?sZc1iP>R%Qiy#)Hm7X)Z8Qha%Y%oEOa z9`PCi7+?!H4Uq(Vo-gp%c{iDb+nd+FXtm7d$(#H=ev%)DE0u!){1vDAG9;QHpYrqk zO8`OyS`p>}_=;cRKk#pPf)v<6g#M^Lo9rf(kIz^^pQtOEB5@Qx%_Z#>$4Ie)Qx%o<3{c3 zm}#Z4rMiPoLXT$DDX5@0nSsb9TAY@($&5ZBWn?9V7?xydJTC|!4TUF{WrDH10w!dt zO%>3itWi~2w*Ce{xf$q`nl6aB9K@n!L}gD=2a`$K&Ie0&5{T0hotCp%+7dw=QBjSJ zwMuabIO4P@W5p3I(2SJLC*u;w9&eUQr3IlMbQ^%!AEw)D)sAla9HIAGbtr*BY_H|i z2^or1P$yJPo`mwrnl7g#MU!{U#4d|cb{F`%0qjyOV>b<2^22aImj_*n6PApHR5d(1 z@`HgkbG{~e725P00WGmGqGn(-uYxFgU95@sG%drlNCi3D#?IH`JpXqrFpfWKGk$}5 zj8&)$8un>q)EM;}k&g1F+z3hrXFIWjNMGZq76jcKpjj5-4VVl&!eEY+7lbR-Rjr|~ z8cp`VxZi+rA8Ms zUKBK2Q;(-B-C-I(`T%_3Jl+S0P!~^@KldS`tN1u-72g}gC1QIucq@W}l90Y#Jk2>@Z-3+6S@7F@=*w86hJY~P(RCLESBMO3Q*iHp* zA^+^`g7BEr(`reh-fqa(W`E(Z@PXgi#4GmV27boFn*HO7nM{T%s;cUWs?oGqm=M#F zE>kfFr^^Rm9M$l&hpUmzu^_HxXf%^8MFZYi^Vs(@Zl~{`c~~sj6N9*0)M^A#XI;MK z<(kxCoE|VjTDLuqRffUuf9gi-piRST(gV!qRz!Ud1c=$9>C;|@1)vS5B~FVu^*FLd z9U0pos8bdE^?5L?)#vMvv1%CE4%kXOPRz!<;yj0vdmwA!>fG^FD`v@IqJK^Be z2>b?2t8MBit{8$L@r*f}L!n}!>8^1ICd`Cpg{<5N?5Ih@W*9NI)8nH)E`(|Wh8=3b zVEzKsIM~-=F!8DdSt8b!JO=*050V`WDfiLLg7D;QUg&}0d4#;Z@z&n{O|4N{4R5Oo Nowpu%>xZ`m;a{}G)m;Dp literal 2333 zcmaJ?TZkJ~7@jtn?iLH(A})v^XCJ!TEivx43$0?dolRzwX_J|3X3}-*wCf}}Cz)g} zab~jH^g${sMJ>TnC@WO0H}FMj5#PMEeej`zf)y`_FH%r^P(*wZ(f^-Gwk={a8`wGD z_us$&XVZujWX<2U8a+*x=yZiU)- zya$dyZQ}8hT$?*Zd-Pd6-n+p*#a-dn>09&y-NIF-1H-EWbd|1;1hld1418aX_xSg~ z#>WWH8R+UYi0}rzM8Bn908l~T{4xSF@Ms0IJj6J0tUK6N7&-U@SDA;!bhH z>~DG>+lBxp7y*|dlY7}1OR}9T#w~;O?$K{pmYF>FziWidm_az-qXjHn*g%d#++7m22jf^tLzH&Gd% zgH0M{w4{`wgF-q7nTteSl(ckCpA&PEoIwm*GLtIuJV@g=I=dkg%;hg|ArY-y!ibVa z6nVq@xH(G-OE4)VTM`Nd$VJNu@?lj6mkH9Z2V0f{;-W|vrF@=5A_y~5mC#w#3L7}W zq99?%5iOCNm@g*67KahfRbobu{{(dFf!Ob++cV}sx0jpz@ELP5j!ArH7L+*&np9He z6irG)`y@@5GNPn~!p^%z}V+O7_)@P12 z1*b;3ZpR}P>IZ~*CUt6vV$@VqxTR?cwnZ#S`95Ye!#e+WEijL>%_X-(97=1%1`WF; zFj|zjoj^x`|9RehY`+r}uyL2;);N6wJOB zq6uQys9?*eVb(sS*dnyi`Lu<+)w}WZwBeuuvE3CYyJ7mIM*S9+i3#;u{qh2@8*M$F zzTHZa@X^QM1Lxs=fXLMro@{(>Lw;<@F0NY5btdo6Xa?0)pz8Rt>C>fAn~d zf4?~tjil4=52Q-h7S{NK&fq3yFdD{R348XcCFF8BA}flb%Zf&_LTOIOin>IE0-SCf zfOAyC#};0VbcK3hFMXq%h!hQYbj{=3RckQ!vW?C9#S*-5TBOnOg28q9uwCd9i`L1i z;gh!MIJB08xc})JX@fQmr%P6;S#JcybwGevExKN?bJPQESdlmz)M|&Bb=t^~AgM!D z{Pnprtyza3R;|f6s^%G6YZy)|ycN;o1v?W?&ZbUa-Vy6hJDej-pdX|TK@HFCz_yx9 zM{$J^EQw>Rn007WC^X$RPQr#U7?w|~9nTE9#P9k6wFfia?cjyb?7*@^FDUGvhZ+a} zIxHrdHlRwx`jW@QA9Fym6F#ZC=%&Yic&x||!SdY0y*|FQFtsaMrET!$Y`hJ@+Zw#} G_~0uzBcYkUJ(4H!6?dRY^ES-`SDi8hu1RxXA-Ul5%FrC%^Z_yX#AzEfFyS?hec z7}8VoAg;*+Y697)$?}y&ktLcJXr}L17EP9B)?2FpB;EZ{o)R<_Cs)h5!Zr{de)>Wk@b9DoV|R1|2x8L;d&|a`F>Xbn{Zn zAt4I(cDkP?OB*ok8i64*&999`*ssl|jm5#Q6UblTH-|;fFNSrM-*;bD-d@&hKQ4yi o#IjVl_H;i*poUnRUe}UFd6(kwQ_5~Pl04d&-ga7~l literal 471 zcma!hZo{4BZQysBvBBrFJ10X> zPZwxo@#H9APGf!Vv&Kh}rO!u)*^h;lV~vjy%WrmsNDS*opE)eOtQ&kd84L;%Qwnkt zlT#U{3rqy+Sg`x!vdBCO0=;AuyQdl`hw^bDE)#N!WU3y^qtDu%PQ#0 z#gLww2XRdvP!q^TO_r}LiY(E*0j!68zOrbtG_&UV0#z`qWL?f8<-3v@ccZejsgZlkXrhzXLL>C4WLnwJ7r8!6@~w9|Jh zP{hYIEZ)`6g@IA*|NrB@ybQ^uMMbH3(2xQL?R8&1hMfGw6y3bka!3GzefiQ?lcfz9 zRE@xZknn3`S>`Kg)5dbyw-d5ff_zo H_p$;2jMItz diff --git a/level.jor b/level.jor index 8e4a501..ac70b39 100755 --- a/level.jor +++ b/level.jor @@ -27,6 +27,7 @@ var ilevelfile intern end.jor -1 const LEV_END +-2 const LEV_QUIT var current-level : load-new-level ( n -- ) @@ -38,3 +39,4 @@ var current-level then loadfile ; : save-level ( -- ) current-level @ levelmap save-map ; +: savegame save.sav overwrite current-level @ fput close ; diff --git a/map.jim b/map.jim index b2c740d77fc856e31683adffadfaab78d175bb09..1436861a51ac457d4c4d9bab16e354b56c308d8d 100755 GIT binary patch literal 1160 zcmYLHOK1~O6us%(HBk@V zfg;EV{x@BSAOR5s7rH2lNL)tHjfx=bm@o9s3q*-M9H( z>>OI!&;2q~O19-#wlz_KJz)S#TMMNVa|OFJS*Tb&#|txXcU_0tsk&@IQ{Z@c*0JWx zr|ij@vO_0()w|(GJ6(2D3pLKT9N`Z%o6yG^ditKk62^pxz|@G~ve%jf!|}mG@!r8C z1i}IMOh77mB-jL_C{G=153@ye>f^eK^yTK6sD-gel@TfE4u%7IX%Q z{`f$ax*%N9TcIzV&h{h*(?iKV!a{JTiKR2il!wXiP?uq7cp#VP_k~;G1zB!FTzU<> zrP)J?c*>`&hp#ld0dT?w_(gZn&|M=*?oiapKEWl6kgSSc7+LhY4E4Ey-}Q5#oO#QJ1ewTqw$)@(4M$nG zSwn7iCAf@>SjQPUOPHKh$9G1JkjrhOY?rx&A90Bc@!kDxAdhC=-$a+CO%Is%fTxPf z#!VT@#iC!eEtBupr(|A7d2Li!rZIWH9#L$Csa3pS zax5lXFh{)pkJ3bVWh)m+`>$E|I6RBhsz#Gnuhtt|#`6l#rx8OWmM1Sz9J#;WP}WO@;qTE~cx`fuu)Z;BiG2YoFbEdT%j literal 1160 zcmYLHO=ufe5FUBw?XFhdq$Y_sAtBHvO6nq?s^Yi1Dn*tR?ADP~Stc$v24SrdwVTTE z$`1WWAPJ=Ouq~mOTzu+9?XB&hgc_QQp@*VlOG9o6GzA}XF?A1}S*>gqmYHw9H{ZPP z&GL&}YWnn>xzBNL;@*S-otEzfp6{)6;Ehp$y@?~x`go)6w;J`1H-5do3J+gNTUjd< zDQUv>_IlvmY_Iu^)pkIYg7y9AuNOjbK_>e(Zb!J3w+Wq;81;`@Y++8xD3+B`La`uq zxRRfJFF!e3gv4k9ZV*r^&evjK2<}Q1s`HcmI>I-U7E866+6P3};aieprKVrM8boss zC3FJ-^`v0{0t!G148!Jpiblf-v z@7u`(h+7Xs!`5N0kT1oQIU~I}eWci|5mo7e*8O6n?WcqLRFqyXU5kIQeXmyC9$yaghHG8xvl8(@`%B?6q zL2*Xe*Rmro&L-9BH zveI7tgyjP7DyeOwZ=M-hG<&oOya!#}If#D3qgp8D9V4;k1+7m9o7cs(#m62fP4NSb zwS!CIk+Xw5?7p^*_pyhoRQuCmRu4U@_3+-&CGm^1g->vc2IAfQ(m}T7X1s}^c-9B5 zMZnKyC|)`Sw42Sq>%>ccANMtuO}kqpdeP;*MK_rUuC&AIZIaoI<3-aq zEvt*iT*h+BF?TV__sjvpk#F9i-e0@Dh{IkSMmwZ@c(p&=ZMySona`~M~J zJLTCZ=l|gPn>00FpTDy*6l1QQ23eT{n@4*g+{W6SDcMkyT(^=_^|6c6-2vW6d+ diff --git a/portrait.gfx b/portrait.gfx index 69e0d590c203022585dfcf4527451a8fdcdc80c3..4f94c7fbfa0e5c4da50c60c27e3626f2910d370f 100755 GIT binary patch delta 296 zcmZp0XmHrTBjod+{lR|*z5<3U{tN4s_&=zF*mw9p+*!r{p%cXJ=l}5kKPvtU_9cl5B^PLH1YY**zlhL2(lO()+;eKsDs#d7#r@aVr=LHvHOAYKm}kmAig~V!-I4N zh7aht9w-Jg&x3(s0?1sL*)X;-14A&FO}u#;AobfB8}ec91My+*JHyzp2Ijua9|e85 I7RfOI0CYcj_W%F@ delta 20 acmZp0XmHrTBeeN~umKm4IKsF{jtKxzTn9V= diff --git a/state.jim b/state.jim index a71d548199888e67e3735395c1d2817f354c9c92..b3514c4a2f0256816483e88fce92e23a666eaae0 100755 GIT binary patch literal 271 zcma!hZo_RRz1x3~oM-?z+zYp?)DiAx4JJ zHmnS3If?1T3|e9gY_=Q_PDy?m!*qc*mH<``1{Y=lTOH=*V73o4E5~w{FU-BH!nW)X zrD=*ll?t|oe7&r8wycaGvmC%85kQe3TXx3c)Dn;&PzyXIVUx-2rB-Y z9U@+3%f*;cnwyxXTb7wx4%E=hy3w{IGbgoJFFmb-Aw;~};=N4=(11xm0}6`r(-G=! M+2)}uEC4D50L*Vo@Bjb+ literal 271 zcma!hZo};%?Ptr(SYl&r!^s#BK6hOVq|Eu zVP#0mNlY(h&=O;qX~O~Gl;o!|Oc!Wl31H=5aA96-qre4pq0{5bt8B=$F6d4D0pR@fq`SbE*bk-IfZ zdx+KO5euM9PnZwCOX`1&{{Umfx)@2C!J-3K_sj+s-9i`kP)ML~hC*R3tRuLLGHpYI znfaKcH&M!H&_B^qjAf qre|7Kwym3JISJys#L6x2KHv9!zYah2+}`pVf11(R3Y#T$X|&vRavWSIun20@VF7$+)c*+o5yp!3Fbb)TrY+C#EeB2K(1TqRawr_5pihM*1gA-+ZHhRv zoDS(tk~2kXh#nXvQh2V1NdvfLL%3v$KmT$2pZB4hK4Gscq+hlHC p_AMz(UBmJ%+pNUhQ^kAS{E<`AmO{8OliCY!(oe36yvJjQ^cOymf^Gl+ diff --git a/title.jim b/title.jim index 36e2e31ae2d52f9adf86c07695f88fd7c959c970..67a41d25597ae3f52db6d23ec6d63cfd1e086988 100755 GIT binary patch literal 1148 zcmYk5Pe@cj9LJ}2e(uxF+Ke{B4qAknzCHNf%oN!{A~Gm>S(j=F)^%1^*4<_ItyvIJ zkAw~{kT40nNWl_C2PF^;FGYvKh$u*k4hD%H%0q#$Mg8VI{~dnwX6E;q-+X_+`Mpc? zts!2!By#kganYzCcFIo61Q`i0>h*LP&4L4@HP9R=(P3PbBcLtnE!2g3hDK~TV5d_V ziMSrEr;B2lf;4d+=UXOr*j%G#cDdgbH?&)IGUR9N&ZqcA<% zNQdZdbECNXrV_`^RdLr%CGM>0g2ccDJD-*rJYEi#5IaJX@EVV+Qut#G#_@m)V+eb7 zD`MxWPQ3 zz#OdJ?z9rAMB33b?kX*LoDt;k$xL)Q#Dmd)6y zOi_{qtH*rjnFHStQ7Z+-V1bo`3jM{}WjaUv1@KPUlPcIUzp_!o&lFQOK3p);7Pi7J z46|xqMnPgH+OpeAWe>0Lcdwu_3$|cST5y3h2V7|3m83f#zpN|q=q(2yuo+bJj3>e2 zLo~|k>1}MqYy7YtgX{bzj<@(+^Dx$Oh#uvtI~v&F8du^LY$Gvv#7}CQnR>&va17#H zwXF-Md5GlY#`|vSDv|{|F^LeGhSpB{%!}NGDPB$FfK2FX$*k)WqJ$CG^)(6AH~U1( z<{0c3qx31>s^fQ6!6xA=Sm0HDDH7RYMm7Fw!bybJ@lM2DI4VLLtBG`!pAwI^D{&*? z4)zI(6~7?C8tMIA<>2#(0}sV&i@f0ud=(?%6MGvXNthI6e%G755*GaXcU4S#tM>x5 ptD?!9e-Xim3)rl+sgMP&XmvPqp;v(ahhVS%*j{mHN$}c1@gIRNM|}VQ literal 1038 zcmYjPK}Zx~6#jAkr_-+DmbGF_phBqO?7^9ThRBeuLs}72)WH}6U1x1#omqBgQ41m% z5DMlX1dHJz7Gi^_LmLzYojes%K|xA4qo7k415vT}&$z3HH~jB?-+S+y_uh@)gVEuH zr!~-$Y{-qowcM85H`33awzIr5(gAX@L4rl11X0Gj7(hO{5PY zbxZ1_W%(rq@g1F`%QPosU|Z(zvb==8*J{9;yhvB*B1Uu&NhHZjEn(krXU27MSV)IA zM2BUxZ{&;YL#q;iQ`STPRuSk#s|H|y2#z~$0KVVN{2G8GionYv5=r*aA+&jVRM{`? zk;27kN=@87g^RnY_>jTE1vj5HZA{;6svzwY&A>-Y=c5R}22?S@hcc3bxfPJiiE~K( ztCVFyk~!UZjwgGt zz)CR?b>>3~p{MMuW4o4JG;x}PQ675DhRtlQ?tWlb%t@=@n)!NYgn$2KQ=9Kp@?oa-DS%-M^|0M zy-}6#aGtKSE_xr&>b!bEGT@^6P^#cWdf8kZ$*4NC5(93kBcj0g22wEtdR2aOJ{(q~ zByaBTqr(xD9Yqt-hKa3ot3KRTTZlPhrlq?4Jw-p&3f9`w@?9Nhc!51uQE9E;+ueR; zH4^@C+9}%nNNc~~*%GRu6JPrPwoEY)Y#w`GM-e9jz1_ z?LHaLz%}ia`XqRzH63<#dbH1h=V&1IXs3hstkx0tL5JfBE9yhL2I0+;(KtD@pn2MG HLe~BR`@ke3 diff --git a/title.jor b/title.jor index ec533f2..4ff5934 100755 --- a/title.jor +++ b/title.jor @@ -19,37 +19,46 @@ : optionbg ( c -- ) dup 10 textx ! titlec 27 textx ! titlec ; : option ( s -- ) dup strlen 1 >> 19 swap - textx ! titles ; +intern save.sav + +var savedlevel + : startgame ( n -- ) s" title" loadscr s" start.jor" loadjor ; : menu-opts s" New Game" :| 1 startgame |; yield - s" Continue" ' noop yield - s" Help" ' noop yield - s" Register" ' noop yield + s" Continue" savedlevel @ if :| savedlevel @ startgame |; else 0 then yield + s" Help" 0 yield + s" Register" 0 yield s" Quit" ' quit yield done ; var menu-selected : menu-y ( i -- y ) 12 * 90 + ; : draw-menu - 0 menu-opts each drop + 0 menu-opts each + if over menu-selected @ = if LGREEN else WHITE then else RED then + text-color ! over menu-y texty ! - over menu-selected @ = if LGREEN else WHITE then text-color ! option + option dup menu-selected @ = if 15 else sp then optionbg 1 + more drop ; -: redraw-menu 21 11 8 72 box draw-menu ; +: redraw-menu WHITE text-color ! 21 11 8 72 box draw-menu ; : exec-selected 0 menu-opts each swap drop - over menu-selected @ = if execute break else drop then - 1 + + over menu-selected @ = if + dup if execute else drop then break else drop + then 1 + more drop ; : menu-count 0 menu-opts each drop drop 1 + more ; : menu-select ( di -- ) menu-selected menu-count +!cycle draw-menu ; :noname - fuck s" title" loadscr redraw-menu + save.sav open fget close savedlevel ! + fuck 0 split-screen s" title" loadscr redraw-menu :| ^ENTER key-pressed if exec-selected then ^UP key-pressed if -1 menu-select then ^DOWN key-pressed if 1 menu-select then ^ESC key-pressed if quit then - |; ' tick redefine ; checkpoint title + |; ' tick redefine + ' noop ' draw redefine ; checkpoint title