From 64d21bc87553bbab8df187fa60682a74de087544 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Tue, 24 Mar 2020 23:46:09 -0400 Subject: [PATCH] step-through debugger! level 6! level loading by number! --- boot.jim | Bin 1360 -> 1360 bytes debug.jim | Bin 0 -> 1337 bytes debug.jor | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ defs.jim | Bin 2184 -> 2269 bytes defs.jor | 19 +++++----- end.jim | Bin 60 -> 60 bytes entity.jim | Bin 1664 -> 1664 bytes footer.jim | Bin 1683 -> 1683 bytes game.jim | Bin 4869 -> 4869 bytes gameboot.jor | 14 +++----- input.jim | Bin 532 -> 532 bytes jiles.jim | Bin 1549 -> 1549 bytes job.jim | Bin 1113 -> 1113 bytes jorth.c | 13 +++++++ lev00001.jim | Bin 0 -> 1023 bytes lev00001.jor | 3 +- lev00002.jor | 3 +- lev00003.jim | Bin 0 -> 2333 bytes lev00003.jor | 3 +- lev00004.jim | Bin 0 -> 655 bytes lev00004.jor | 3 +- lev00005.jim | Bin 1531 -> 1512 bytes lev00005.jor | 3 +- lev00006.jim | Bin 0 -> 42 bytes lev00006.jor | 8 +++++ lev00006.map | Bin 0 -> 264 bytes lev16597.jim | Bin 0 -> 12 bytes lev16597.jor | 0 lev16603.jim | Bin 0 -> 12 bytes lev16603.jor | 0 lev16625.jor | 0 lev16631.jor | 0 level.jim | Bin 0 -> 471 bytes level.jor | 40 +++++++++++++++++++++ map.jim | Bin 1112 -> 1113 bytes map.jor | 3 +- neuttowr.exe | Bin 118183 -> 118344 bytes neuttowr.prj | Bin 5524 -> 5784 bytes ntiles.gfx | Bin 8192 -> 8192 bytes state.jim | Bin 271 -> 271 bytes testbed.c | 1 - tiles.gfx | Bin 8192 -> 8192 bytes timer.jim | Bin 453 -> 453 bytes 43 files changed, 182 insertions(+), 29 deletions(-) create mode 100755 debug.jim create mode 100755 debug.jor create mode 100755 lev00001.jim create mode 100755 lev00003.jim create mode 100755 lev00004.jim create mode 100755 lev00006.jim create mode 100755 lev00006.jor create mode 100755 lev00006.map create mode 100755 lev16597.jim create mode 100755 lev16597.jor create mode 100755 lev16603.jim create mode 100755 lev16603.jor create mode 100755 lev16625.jor create mode 100755 lev16631.jor create mode 100755 level.jim create mode 100755 level.jor diff --git a/boot.jim b/boot.jim index fc63328ed815833a502112f21ae378b728e397d6..4a4ad6896352d885cb46429b890ef3b9224a7284 100755 GIT binary patch literal 1360 zcmYjR-)kII6ux`so;!E$+{HW?3)0FGlq5(nE+S|V2~KJ&Q?qU?mZhSb?CfUhW@g!) z&B79ECYT~=(fC%H2K5h+7@zh@6MYb&C|Kf?^hGL(1S05zK2$t+Ch5wuaLW`>NDzXl1}$J5hz%8)-zMrOTw9Ro`4n~(%8vO2)UxDkUCj0|52 zhOsQk$s}m%AWKFCC9MV?bL3fJlQVCfJAZ!CIXCh8B<7aLgpioKFg;m(W2)$2iexSz zVz!CYPY8>~Fo)qx9m5xrup^dLHLnLMwNSFF!1J$VZgi>DK+ z7^!aJh;J~}8p6~KT7uuLD^>vxESKKRbeRJ~q++bFL$hLhg^GmS!J8deYna&q-T$b( ziT#hsF1v_E?OIt>8+pw}(~CM`vx2Ozi64y{blUh1@n>b87T^`BmE`0@{obHGKjUe` zHRoknKv}LF=-1o9J3-jd9&JDeuE`h4284Lwy0pn`INw0Oj>i2)yQ~CTGA|3TBiGn- zxFcW7x05KAF?@`O2NIK!4rehekfmFQe(WnXf6KTWMJH0LUaVwDai5 zN4Aw*#GfzM^oV<=&-HFG<@4i@ODmZ9!#>S(#t_$6(Eb*Hs4o6;mbpuF#zoqq*U>w! z4$T<8MAlY$!RxaYc{<&tYplrMqebrFSL4^&h@nsYXq_$a7=#+^D;x8xW9>#1R?3l9 z*=4)D1dD2$--c~_4|i@!X-(SNRh6gzpaxf|zLA$hy*#(!1j_g~@d5ZAKJaxV3GQOc zYc61Nb~YK^%nUQL zSy>Y8MB_sUP0*J@D1C_U(W)y zzq9-3#T~6}eZwxo&svI|W`FlEwu7fv@RVY|X@X7JwHgMT?Q4((AzRKIXs4AJo?`jr zRre&8B|D~55Kxe2Cv?t2ACLWPNH^KV4=!E4JeIw5?yWJ*U1P865_4~lj}_m|7qggR zsW%ZZ6(Du5ZtxgN7*5tOJe7owzQ~*^hFK^<3vzr{Ye5Vj>z^~b7TQUnfCWnD_`2v5 zIewrGp~h8giDqmUTRMdpZtF{I(w=rYxft$Y+?a7{9h(31KhVEmf$iJn=-GsIaWo-@ zeFT=L%L!2yXg-NLW-PI~8#$!DBbTy+hQex2hbMd3Icmgg2)o*;EWFGXloGsS#BjyX znB&$Q*Pc%p8rXew;R@E~J4LMhsK;>4(Ai)%e<7dCU%`i5&U|SsvQa|%#w~*;Z(w5n zOhOeS)e4UI9#i1}rf%>OJT`oz0Bs}3+o`6=!T_r%OJY~6C_ka1C&nGTS=(5{%pIV9 zORivlMmEI+8ntbtQEg-geqcupFQ_2v1^pN01|L_p5kD$NcmZCQq~v+|T({S)&raH8 zIB{N;=TX*Knd#Q+?nkcIAdhZB0~X{P>?V})!tYCyO?k6E`gJ(&cit2w*pP#=0N=?q z@fz;Px3ZW-p^V`(L_Cw2jC=tRrx5c{euZ7zh>76`DOt@cSB4$euai#_HpQm6CtIQ= zB&y#zYzU*kai_5%3;U@*5KHK%QZU!^d`!o1+yqv!tB0e`@w>Q{_^u|s!Aqu&D}`0` z7n={Xex(ob=S@iv$8{pdqf1kv2Mh0+D)U?t#%^T>%mCrO7e+~fBrKRSCUMg#Z;qfN zv1ue1ac0ZYG~%J=sI*)En2vh%$?*ziel^di{mOt!S0H~2@R!-dU(TYMwe@_ z$`Pq-iU(>5Tx(0c54X)d+_}IaO=Ru7HNyWy4QDN@YvhL>Ezf=EMH&AlK7hK15B!NG z8SY|e2Xl6n{ODCT#RzW+Km{9?mMG|e8}P_l&a7J3P5e`^V%W0uq+0F#7c`(RO~NLu jaeS=f=^S6eh1e9U7OljV`WSR;53ZX9IFY6uAd3G0{>E^> diff --git a/debug.jim b/debug.jim new file mode 100755 index 0000000000000000000000000000000000000000..40e8fe12096016e66c220132cef7002b98ada930 GIT binary patch literal 1337 zcmah}O=ufO6rR=2)2dZ0E3K4M1j6aT2d{Awl0YxTsYGyoq{Y_kkD+xeX>EiPtyoFO zEbU=w1ho!9Bsqi_Ls1VYrH4S?j4Zop4;4te z@0<6%dEfidx2Gn;W1qdUR0y(>T#)45C3U$%5(fwgvLGqu7u8bVjI)q1YxC75asCNY z1W>qGBe0I&d@av{%i2_f>&&Aah1-|Vjtk^x zVP9i$sx$73t*p_^_!9FC5c1`7ZV%n|fe&o+! z+^6`|;5kO&hz~!q2q`$_YWID$$1hM^>f|Zan4HRC6iqpda0()N3MSbX zVUH%!KB{nQgGo9i<9H)FIw6l9i#1?MPnIg5CdnFjbOpbU*qy){IH3-`4PEMld>Ge5 zQqj)W7Z+_8iCuaEV@LE2R?wk;fT+#}=vR7JBs7ytYwA=6&pi4kTczvDz~hQOwC9o4 z)6=^?O)L?w!LRzdqQPsuLyrWyq7wt|eLW($(=4OrvT8b$LUIaRbmg`EL+@AP^K6D! zgG0lHBvpmet(}_qFoIZFU=Me(8)deQ+VqY2oDPKeIFt%qq=7Wn) zyvs?nZ-3;&HwKV=WxVJJVt~X#qp}ZIjV4FMaQU#&_YsZfgXY7g5yyrnD3?1b59Iz} z$jBPQNFAjMDcCZ)(8D+W_2HQj#<92Omnu%FT&v=2pFOZ;5d8e#^Q|#V&P|%?$?5du z87(`N$<2^AaUdtme?~kc6i_lDryxL*ax64t@?5iKloT%5^RBvgJGy$f53_L3^e7k8 zL@R-t&=kL`h$V2Y@0)GxN!^T)Dh~g9^d^#jGtUnt1hpv$YsMwXZCkav)VgI7oUw`4aN|8 zj2A|%k42_sd--4Kj)*98Cbhb>0hg_Og)h+xG~kAX3F13np7WL@<*_!gz{@}zr`to3 z53FTNgI}x${A4v8x0ozDwd8_RFBb)g>%3{nQoYQHb7l*LJwbas&;KU4m^~@#ESItZ Xo0Lo88_c(tTf7DRO&&=4Ye&*M4rp^M literal 0 HcmV?d00001 diff --git a/debug.jor b/debug.jor new file mode 100755 index 0000000..52584b8 --- /dev/null +++ b/debug.jor @@ -0,0 +1,98 @@ +( xp -- execution pointer - pointer to word definition + ip -- instruction pointer - pointer to pointer to word def + fp -- C function pointer used to drive the VM ) + +var brk-xp +var dbg-ip +var dbg-task +defer dbg-cmd + +: dbg-first-ip ( xp -- [ip|0] ) + dup cell + swap @ ( worddata fp ) + dup $DOCOLON = if drop else + dup $DOCREATE = if drop @ else + $DODEFERRED = if @ dbg-first-ip else + drop 0 then then then ; + +: tail :| rdrop dbg-first-ip >r |; , [ ' [ , ] ; immediate + +: get-dbg-xp ( ip -- xp ) brk-xp @ not if @ else drop brk-xp @ then ; +: consume-dbg-xp ( ip -- xp ) get-dbg-xp 0 brk-xp ! ; + +: DBG-WAIT ( ip -- ip ) + running dbg-task ! + ' DBG-WAIT ' dbg-cmd redefine + dup dbg-ip ! + suspend + ' dbg-cmd tail + +: .dbg ( ip -- ip ) + cr dup .wordin s" ip: " type dup . dup get-dbg-xp ` type cr + >r .s r execute r >r ; +: DBG-CONT ( ip -- ) >r ; + +: s ' DBG-STEP-IN ' dbg-cmd redefine ; userword +: n ' DBG-STEP-OVER ' dbg-cmd redefine ; userword +: c ' DBG-CONT ' dbg-cmd redefine ; userword +: u ' DBG-RUN-TO-END ' dbg-cmd redefine ; userword +: bt dbg-task @ task.bt ; userword +: l dbg-ip @ decompile-from ; userword + +: bp.do 2 cells - ; +: bp.ip ; immediate +: bp.xp cell + ; + +( byte golfing is annoyingly satisfying - we don't need or want $DOCOLON + at the start nor ret at the end, so instead of using an inline function + or a :noname, we just turn on the compiler with "]" and go. ) +here ] bp.xp @ brk-xp ! r r@ breakpoint# reset-breakpoint + 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 diff --git a/defs.jor b/defs.jor index 0f782c9..546116c 100755 --- a/defs.jor +++ b/defs.jor @@ -97,15 +97,13 @@ begin r@ while while dup @ . cell + repeat cr drop drop more ; userword +: task.bt ( task -- ) + dup task-rsp @ swap task-rstack ( rstackLim rstack ) + begin 2dup > while dup @ dup . .wordin cr cell + repeat + drop drop ; userword + : doactivate ( task ip -- ) over task-ip ! dup task-stack over task-sp ! diff --git a/end.jim b/end.jim index 60741491edb3e9455b31eba284be469e45eed561..a7f3f09b61f74baa90dc9be0f6cb9f1f5ac6f824 100755 GIT binary patch literal 60 zcmcCN=!`hH8fpXT}A*p#Odbx=O45##6SlJm|Sh*RhR92>mC&MDY{AvU;6pqw>3I5jUtFE_D(VVAxOD?5V=D>p;7yqME31s7H}Add&g L(+2XA0~=WZ8BP!u diff --git a/entity.jim b/entity.jim index 10fd98fc7d8575e09a62554a7f10cb6697aa52fc..83ddae2bb3cfe11386498a6b4a59b0af4640892e 100755 GIT binary patch literal 1664 zcmZ`(UuauZ82|3Q=j5hI)7H5ZrgXXg!UisD9X3Q1TD@_O?Wned)zynxqw~@U&TVgyj?Bkla5t1;m%Ns68KAM zliu5<8%SZ!B5HZdQrWrWFif+sEiQCWA7}zthPuCLw`XH z3H~0hbPckBIkm}8JhQYK_T8t^t)l1(X(D3;{Uf-&q=s4HidGHF%QHV1NKsZ^mwu?q zVBW4&?FE)!lblpt`lTwsn>Y#pU*l>5R|0&Ct2C}e_z_pH<4S^`RSM}$YVtL-2>gah zSc+sX!cBEqx<;c~3+JZW-IHC~Aln=}f!Mz6A&)rnDk6I_HhIEp`9SOSJ&~_DNLnKubVW&5?eM0o^QL?sV^jTD z3q#4iZ6>_tA-myoSA-^1VX+Wn?sOCy6 ztPb^lF3su~K0|9b_u)R7_J@K2LsO2&bv2eal{j_exuL;=9t1Xrcs;z?7GYO8}jBbd-FmyL8oOV3qjiz+>!k2Frk{{Gj(k(YEL6 zl|(Ph1`hVV%noTI<>7FfoW(D|IZR4~-r-MloEfu_D_bT1=mzP~J$ViHc1RxkdDXxI z({;4w2eb6N(IVSeBGX{u2?h)Agb`#KrFzk^{zv5Ae?;E*MOL{8%Rn$(I%mkRG*ir# z=a%8}@UGsyZ}h{`O}m;;6fm=@hr*^2^3j^*c$o0`DHE$$&NFmNhd+$4&z#Q{xu|JS zQ2;59y0>zRX5tWAd@+t}jvi)9;>+;>EamI7TwqHllguugb$<3L3JyfBGN@`UEO-ag zVm!nf?wE-gdj?C=z=}nnghQ30N8lsr8?5VQJQH~fzsV1W*_fRK)|aEe?o=nvy0(H% F{TG2*$qxVk literal 1664 zcmZ`(PiP}m82^%aFOw!sTZ<{k(#)Gb-3r@m#EY(n(2^9ltF)nJySkK0+Dw<(CYg{- zcH7il9i$+8kl;au9K5VOsXYn3xR8UQxLfeDhay7PgVjP&ki|cT_`NriZZ8rh^S
47$)jI_n8NwlY0oBbM&aW5xtGyP;hYi)+_Y<@V%o7vCfpgyQUZTS zZPI(Y^a4`2Gc9;N<*(AjOqz-@0l$rK(u04BwF!UTQ(XF?5`{vk zWIJZXv78N|*dn`>|JD@#@6ykeJ}8>2Cye8PuW;uNN(A1lnf0n&DVjAH9Rc_SiBFI_ zLywg>2J{ae;q5)&s3Vi-MIjVsl1qnJxaV8c8W@7RjqQs%Zyu0};?#WJ%aP&M+dArx;ATB&?F^(mgcR4d9 zi*2JcHXPbBLjAE|&_G zwOjD&h^co|Mn7y`vunlVDrQ#mP?$6#K3caN4+|`uFtLi2B1bbiTsNXV^JbwWL?7ui z7=U*;`+8x+OrBx~Kjv(Ko@PtIFN_du78@%_N2Zn8@}}VYpE!3=?Hw%X&MFc(~ph1l(|g&Q%1 zld1kwXJI=8uoYt@y_O`w1^pd`R>GC}_{kR%aa?jJ}F zp6e$Wp--ZS!$Tw7(hVm`N(~J6kCG%pnxsTi^1ubIYo_x;QF3!jC!Y`MT-i+MhxaLa z`ph7&@+tU4@<3`oWh;D5uA|9RYG{P?ZLmbHBd5=t<81`sp5%jyK2zz*8AZb+Is&jx z_8gk25fj(h11ZFQATEBByf9^$6*F6?aLtamz_ug{A5n+pO13gx=4b-l;Na~tI$>;% zyPJ~3_;J~5>&jEQo+q!L4`gsmPGBC=I7#0vVBu-mW7`zIlE~xI7S9LVpOP; zi3A@B8EjFwLmEBGJo`@Glr8*87C=5P6Nl%)r|dG2Bkww^vuBi9VS&Xwv%>e}{gUmK z#y6EZ>mw|KX+pTXDf3(j`Zzpq5YJ)7;igh}OXmXt$TyJ^)$e3DOgS?6nQ}Gp#KKoqKTH(z`u=e?#C>grd7-fB2FTvGduYW@oq2NIF1pXvB_k{en z+6Fmex>VVBn+rC?O?8FXKB~>Ld3%A52GjVQw#JyoJN0N@7}vRrv!1*5v)XmyYg-Mm z%QTg;#z#8T%44LlO0m8Q@;I+h91Blqt&q!>oV503%muk;L!1^Yv@|MfS8Eo=CpaNo z%{0Ezig1~Xu2P76p*&U0*7izys9e!9xTRI`ckKlt-%X!(*phA$>W)|Ok@g}XQWHH( zMJ*~8-lK*}*^7Ho8sZT#&>0C|(e6?s$K#xY1U`Petx7CH_$?bx+xU*i(WQ<^ID;1m z;Wy8BIvVG7TG$qMH)ldEBydxG!{4Db$f=8cW6yI#>x^gcgZNo(ftc!Rv2ZfZ$Cx#< zbjW;bpA9VIGA8g&{P}=|brzzZvM%QKM1>H0n-1-ZICGWs=?bL6cj7((SR=sHXJ%}m z4P5Xm0h8I9ZUbHrph3X6VdiZ>00ihpSIIC+{O4x(Lb|*8f!IgD&%gsdI)kA79oeC_ZjSGE#{z%Mb# zo*d^@J_lV=0Mh#@JK(V7hnZA5otY+m7)B(7>DNw9@isakA+>{TEZRePvus*KM<-;+ zow`*07CeaTb{u$+Q!?+w@ zX-OXA*C-a(Rp$+(Kwh%NNa3-f(LPfT!-3{ZJ|MXaql|hOUxV65C-*lF0idIRK?f-m7*sa+M5r#D1Yc zCK8+%a`?W?9kRGAud!EUU3PFv7C=5N6Njf^Mc!o~PvIM^!9JCjgmrcxuq6CM-aoir zS^Q0IutCCdxJ?L`b&4BhTl9E5SBdA(Wse)XG-vRE05n@jh3fY*3{#FA9#AgHyv{5h zQr4)AKd6mr*<5J#`9L1*Yp`K5EGQ4;m-~K^jtEV0gIu>*fr`i}8_cI{l2q!<;wXjK zW=F*=zUT()QP7t!8@fd;@hfmjIztpJ;I~Tu|NVedz}dY>qwI3eK03Mof4S$AD=HzV z7R_gtFNsHhduL)ZeGdLi`eLbI>@R0i+}A!NZEKeo=w4E-ca@Qz>pc#JRl(=ol6Kir z?kbAXr#h&p9|EBRWOzGBiPQ^W2al^kpi5&`jaj1tmm&k9NmYcB2e}h4NX|ba*VHiN z&059YcUz4#MP1z@w!c%?*qVER@=lj2&8)#)yz9AZ|3tk^e4SIHY?-F= zP~{^{bnqBid_=Lni10YKc^tg1c0gXQcxm0uSdDPcrdSgk{D+sdtF=nAMNSA;JM`>` zim*&ZFK8W5C{^dndVQ}HONnSXoYNLCuf0O#`|0U|Icb>C4+yPm#|e>I=q)NrQ5;NY zL8$2O?nP;eN5xNizK=$<8`Q`(jgyeXr%%tR5?d#H*u}S9d`INy2%$N=LkQn_ey1;L zyiNx{*8HuRPzy=a)lBFswMkCBOm*iusa>Gr0`XhwIx#iU=HNXlCtuVpofetjTI}4! zO-$mkxYX%jgGK36*314PcB3pzi}rk+`6@=uhIIF_csl^RPJm@BF1kP%eDD?l@91^I z1%e)qPt%g74MMA@v`v9d+!}vyqD(x+WUZRMK9h}PRY;fECVLet0Q=MGU@V>%O1Im~O4W2^lTz^@y^`~$~bO$z^mqq#}rzakwVs)CRZl9xlePd?MEaKHTf=8HCk zhviXeRJv%?c)ct!4@`x>My1yrrEHXa%vJ#Chkpbx)>O(AW+}N3z*g7`;9J3uLD_Y= z>+&PAS@#0MpFz%$8#c?GjiXZD*at6-$z=uOfOrgcoRG=g3O_5X`m3Ci>06aG{+c|K zrB!58R4rtmEs_P-7%bf{b(s%KosGvEUNwjLRnBopnB$y)k{nX=oNQqkBsfx8Pg|XF z6QUaCcR9bqW;JegR_K+oR>$Uz3+#ubFz*9C%zK>AS{7Lpeh-A^z_-|5BT>ZmIO*$c z3sFAr+%FxL*4c@E2k4#!{Z5!dd=C+yyvV8I37E;b8h1KpvP`rW2}wbjs;D7;$~kPg zdvWbNjlaD_;|HB4CMfhu!j_N1gU1_!&K$HFTOMy%(5Uc=777^UQd89c9C>%kK3I08 z*h8=-Cmoezu-A#NFRe9jSWXImCvRxX8y7k1;9jE6qbjOfO)QnPiTcjOvqEheuvlseMy0)5==@Y@hzkv8 zTPa9098Faep3O4p*$hV?#n<#TIsP+*@3XE@=F#R`V2^j0B#l?s!9&`DCNP)nz^{-V=Bq!K3k+E>ppk-D*!f33|%t zC@3j=m$@d8Eqc~ETr&!kNp%g?A0^?VAdoGi(w~vmeXijGK_ZeN0-4K}ajx+vT#v9N z#hC1HySrrswu#$bv3CyU)02M;DFjU8dIcu6jIM@eH-BcP*5I2HEl( z7mly=TD^j%)yMg{AGoNx8{B!P#{caqV|p8gIVv2nTS815Dcv>R=q}n&Xbwda$p&2) zHAUHShkKf?$@4EKou9kRO}a+hRIxp7BfHO*PzTk7IAeb5HkI5rpbn@7*sx`ro7C=b zn+l!JM&~aK`{yN(GZ z^rx%B{D^1H_0d~ztJ~(TK~D8B??P{wul9y;%=UR-pN}cPYx)1tXla4$XWqqjg+J--#ili$ z@|svrBA$)*PNl=sUZlrBgyt=g9xp=K%7H|}M!SKOaW4%UVSd4TRHp67{Asqpa8#yE z$$SOAH`Xe=(w8^BQA>SnDa6?=-)HbD{0F{K(b%he6M!4M z#S~lW%VG5}Hh8b^VXq#h72sWGH+aeA9?s2E(6fidIoBe%ke^#FfU+|R|2h-c&hgsFW(!6n;Pd&SQ zb<$xxGXL6lbG62EQjN426`Ygw5mXW1GB0Jb#YoyKs{0*Zm6%r(@#Jb@Nh5^ME>PJEzQ<2%7L4MS(-n6$s`25AFMw^!S$ag1g9Q^}Z`7Mz41v5raa zLFkFL3Ut{X%rt|M1mK&%LwRHI(@ClE3vJY<3185;8)yDuA-vQ-j$b>Ia`j}p`>x7Yx*zAb%sahHt>e%X_M3(4Fvm<%jaZ*UzAh})_(s2} zBpdI;4x*SE=s0-JTD&qmQ^e7YA+6(z@zeOY|B3= z;3r@}G_BH6I2pZFeoSd_(`EncB96if8>f*_Xmzq{0<(%_WbF5-h>|jqsMkZRJy3x? zXR>NiO_Rs;BuWP=S#Km6qbpM~wQ?m8yOExI8)&q6IiL?ce!s%c1ai`L0X+ujs8ocF z3)o)(8?gq=^8_W~DWH!Aswh{~G?i8?l}d|=3Jl8~bUE2#`?QU&9iIfum_kx%ThTli zk(0g&g!vDZymO0fgKb+t+!fcvv&0U>&4D4lM(Ot1gxak;%Npb=WkH1t*MQ>8*V9}U#ND1@u_D|cw{5xfPgTgN&Ui>CVe2aqD-j2pHrw^66y9o0pTWYvV)pAwZ;^u=*6ncOl>J5VdpgMB%WYn`bYX{X@x2{J z+)8%Rb|Ffp1{V`6N$C-?+L z)<`@#y~4&IoDK^LMqjXkVOLQ#VN(aOF$x}rUqF$Mz2bfV=w`XuO*a9W@ikuDHo1|i zjB>O*R2=c7P?2)8d{jO%m+lKR^3g4VK^e~Ygn{ywO29Txv>ygNaIE(v&1-b2?B<~T4K|1ZV;+IRo} literal 4869 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 diff --git a/gameboot.jor b/gameboot.jor index 20e5c2d..c2d989f 100755 --- a/gameboot.jor +++ b/gameboot.jor @@ -28,19 +28,15 @@ s" map.jor" loadfile s" state.jor" loadfile s" jiles.jor" loadfile s" job.jor" loadfile +s" level.jor" loadfile s" game.jor" loadfile +s" debug.jor" loadfile ; execute -intern lev00001.jor -intern lev00002.jor -intern lev00003.jor -intern lev00004.jor -intern lev00005.jor -intern end.jor - -:noname loadfile ; checkpoint _loadlevel +' load-new-level checkpoint _loadlevel ' _loadlevel ' loadlevel redefine -lev00005.jor loadlevel +reset-level +6 loadlevel draw unfuck load-footer diff --git a/input.jim b/input.jim index 4f97754b7d50098b96bc613e67b0bfca27ea3996..88d958c5b356e067e99e70e27c17319c87ac3ef6 100755 GIT binary patch literal 532 zcmXw$ze^io7{{N>`@SZ%Se25L_TJY@ame6-V22h;OH8g>8qJZ52oAygxPoYN;k;|w z;9#6erz}pvp;Kx911WUvB!MnY4&orVbm`(`zwe3L^Z7i__kG`o_w(Z1-TuRmDwXJ) z$B#HwZ8uN<(gyWSKqa>T7^g#X1f7+NT?R_}VG63|E9D|c(UF;;>I;;(qvR!bx<$Sl|HLzzt)3qNk|Nq-z+X^T&DXH%|dBy1?12Z znW9c@Gqkq6PxNJ?%cn9fTNfocpLE14+2=hmhkVrZw!<0*Hpaf9y(o2^){y zF&u{*#%?NhXK*RF^Vs#ozMQ;y_B%hgxy6dwxaUB2`GFkbiIYliU?{!8g&d`J;C-k^ zVd%F=Wr)&hjKa;vmeus?e$;As2tR%>qZG!oYJ`?ctFEp8!l1$}>W@m0tM1TyKict{ hey0_uhS<8UlGND7fnF1?%iGFj13shDe8_&G{~u1xi9Y}U literal 532 zcmXw$&r2IY6vtmOGfCQ#Rs#{tOdu`A=CUV6EEFLoTWy;kOEy8sVKHV`v9VcMcMawc zNRJ{#yyj4H=%I)H1r3E>OCh-lUP{lUH$8Ze_-2E*_xZf{otej6K7IB`nZFj1V3fa4 zP%u;~L^(nwvxe{l5ztQPr^CfFpTUUVSYG-@!*YSbnp_C2-CJ}N zUEX(n-x=s4=(c>PmKt7bFX*wy4kux4%M=Sm)0#UT=?x@xQKmJMC96Ww;RGt6$Y zF;M724VtGsXpwGwYEWnhk+u{oQo24AB3LNxLv87Upv4yHva}CIA@Q7hH)8*SF6_+r zefOMm&yRcO?16#M?2B(FT3Y9{qSgxeQ7`WW5bN%QIi$fl4a0&Kf}$VfN^Y)@btlmT z;JVfUfjbts#Z&Qu>t@|7mw(Wdbs1*DE6QChCRf;fRQ11^?^s30B98>%$b6 zTL%WTMpVQl5mnfZ#Z)v}&pKZFOMdWj=p;g#ddOKu; zOgZjn@@}c*qDftG*d`EBvlz3>Si<-YI}G%c;DNNDUPGnanPh+CezeO^&%!i&B*JWd zF3bfCQ&$F~lxEtf$%_6+r92e9HJW6uA@CzrY_eB!*ajHD=RW9_gtiA+7&S%T8C_4n zGDHGB#uga&J}A1Qo)=_a#ezA&awv}2b=e@CWVi7xK|`vrs?jODe6L78_(G2_jjBxl z3j5J$6YGDjLB2Sbh9R}8rM}ZfsJMePL55E*A4{=MtSfkYddv~d=B=+eBagF9 zk3B8p+~c9uu2$t)etH|ylq~#zLI3l5lKpDU$|A;J7=x6DsC2%xtvkgYTMk=WtLfV~ zYqeLDntsoum2R8nO%dvx@8F#LA9Frrm)W3wY~S(WLkD`{5*sq7Em0pk5G4c++;@fl;(pF5?IRDsATM?PGGtq_?=Gu8~a{>8Q&gVJ5jQk+y zU)T;~P}5)I>^o#nu!d_uOo5Cj9|x>d(xqs9Nj=P ztq!X}|46hHeMcRPRaoZP!1y_u3E#!ADRv?;t?uGi@eFw1;UVW4ym!eDz68CCa?7f~`910RGv)bss*)6)OIKyp8y z&-a}3{d~{)-uybe-xq!1m-wFUkoF|j4Y_$Y=Xx*{?1hll4c<2O!>gJPN<}YQcCv-E zQ>74qxV9HOC*wJ#g=oQX(oUMoZ)wW549otuaz-1H>zE?7=sAm7r^2J)fBjVGbo_9` zWN}@t$s2M&{!mKdD|$mt-~oL@9+LCg12T?!4~&YVv*1ass;=}+Y61B(%xiUw>CZ#j zOI4!9RL&`v9SUhFHuiz2nx>i!eVyvtI1TJqf>i48%dlPtp_G7zD@098ENR-*P zt4yDo5)Vv{41ja?9<-=h$ggm##ipR^_IryT>g zI|i=l{g8J*C^_@4>!l~?z#PzVSRJwJ8wSG(oT8@$Po+AlMz6>!x+RuF56U=bG-dX! z;|ZfjtXD6wg|%SHU^eTRH+-GMY}LtireI{qJnPuk#)e!o-c`i}u2AgxOf{3uIfYbS zbXXW_85MkFh~bP;2zeVZ+npYT%t)*eOJcWK!7j5>vbGI@=%7|HXy|S0e zmU&nmzcKd01(p_dbLnU~JAaX1-BEM5%!be9*Uc_Cn}mM?2VjoD_XtKI&EP45FN4eA zX@Ub#V{nq-FkEKv9fJMPVDK2hF=#S4OYk6kWg?tSoS!KYn}XYd*#%;6!;hvy_qcee zk-3?p!2mc;S;yx=vv$$sb##z|XIb#{0b}|m{ z$@7c_Yc1H68~pY@m1?rcKTY|5J%O`ULl!kMRD&rCq+EUJP9TYkmW^9m<9d^`Ppq~w zuAej6$`@9R=FKWx|wEdyHc9m=XIO96;FF6l$evJ4%&d1_5 zB8=;IID3uQGdjgb{1gddTU#uDmg3jA_I|vrY%3A2EXQYPR~s`gPWvV}nj;iZ{|G)A zeWvz>{tbRNSjR^@1LOB-*?)%0Ch_NZM7_!1=tI;ZR^|k>l;bKJk&P!gKBxE7p~b)J s=W!HsrAqU0xJ!bjsD5jxuS_P zn{q(EOFL=+Jqz~&22^T*FsOwHu6+b?X?aO_7SV1;Gg3fF%R5JlhZwHy zR)Dn)QDq;rwb(N)BfUfCHJ@$3Pyt*u3r;6*mHiN{?Z!`9KPlNFQ%BK3+XEWWMxwi# zN2l3E-2$ zREl-MyG=M{goIZOMnq6xpSUq$`0SN&GE|gm!I>8_!Y*+vBFviJgeS$i3BDzG`|Jm!v3EGen14Xb+DHRGTw9QAN3T0Z5xtCG8cfm=q*p3Tx245eb){lB29KoZ0J{6&W-gz} zPowd(2+f2-K9iftaRKq)9K}4ZM+yT7*;Hg9EtAjuC;ANfEpQ^Uh_>Sa?ub`}{(%X> zC$FIph>E(SL&U=`=v$h=KKTG8U40S)OdbdM8;v6qbVs)zN_E$=OsfRp1MxuA2u4lp z;WjP`1#(MnVw1Kp`$__5#SPFDc?Y5`c+6OqjKRM>X!#rF5_Mc~?KNqsqO+bIF~C2B zSsFmj9eI@HNcLjcD7qD+7$s?B03D}Q<>8N}N_=sAh3b9a)EsJ;0mt*zla<;R4x( zGb@%7Y;a7?l9nn5emTGnGN4SPYz9_qAe4?LwoRFx; zFT?tmhNt?TC|Rym~V zEupH;(vH}Mjk8%6NLAhG@lWKL>!32voL2{tVLfsUmwx~-QhWrjR1ar{LU*rooGfXo z;Q}|H#;LC{*D@%m`P;L}bQ6p)&$n41u{7ghd;BLMgO2v7F~i4-BJi5sY5ewH6nVa$M5@o-|w66H*@{W{zBjI zRr0MdjgMmsIi8XNt+vIiPBhfD-TXA!(NzEcakOS#!RH0DBavt{iXQh~>y24^HET0u z8TEBS?Rba0_youlg026?D5TOV)7% zDh;BJ_FE*MY(O{AGfn$|-|Dh&%H0#DysXO`_%q(ZUo=oOz?+c2jJD8g{0p}bM6}Q` z4RmHr$26*<1LQC{q|3f3*M+7v0Hlu$kpT@94RD_t{%O>Pnn|2Yk_53(iC=P*#%QR8 z&>hr(3dAEb8uNFsOy2Y%ZP_J@WRx~xcGGnH zTn^?3q9+HVCuDK(7|oHe@v}8U@k~$G={S0Sp)07ZpA6%!*O`GIBKKROUU0M}2EE3YznF*o9D)t6v3Qr27$*_O~~^9ZSE_W88`C@rR^|% zU|9lROL|=D02KJP2;5S*!n(bZ5OUYrr+S+w6iCiWCb-H%s6l6i1YcCR0es;_>4bSA zPzik1GtZ&KDr}CIwCP=~mO{9LiZf>`&=-KsxH>06ZB{HBTKE`Wg)u+Dn>!1PS*<8$ bwVworld Jaye entity.pos! c1 entity>pos Neut entity.pos! diff --git a/lev00002.jor b/lev00002.jor index 6ebc48a..3952e18 100755 --- a/lev00002.jor +++ b/lev00002.jor @@ -13,7 +13,7 @@ objects: O 2 6 door d9 4 2 door d10 -lev00003.jor 7 0 exitdoor dx +3 7 0 exitdoor dx ' dx 6 0 scanner sx defer c10 ' c10 5 1 computer cx @@ -50,7 +50,6 @@ c2 :noname :noname O - s" lev00002.map" load-map 11 11 tile>world Jaye entity.pos! 10 12 tile>world Neut entity.pos! diff --git a/lev00003.jim b/lev00003.jim new file mode 100755 index 0000000000000000000000000000000000000000..755319da5c64e6daaf7b9f96a3266b67f00b4f1d GIT binary patch literal 2333 zcmaJ?ZD13<2SXw7+jA6YdXL6d{#oRs3+ZA_Bo+f9LyLxwN zjqb$`WFS-A1Sk8l4flp1Q^sI0DjORL`?SH>hly-oiW_B|_9wEm` zj-?o91_GF13%CrKl-ObRB5Sa2auBTh`-Uc3Zqwv>c9NZEr@^Fr1c0A|QujciA@VM} z!afARL!gym8i0@3BKw+s!9pa%k0A78F7#M8p(IVdXG`n{7ADg*t2D!1aUg$G{fzBPWed+Wrekk);*yC8g-TMloX z=npj>(ctaTTU5e^bjO^L|4{JThdvjtpZ81enlQmrg zE|oPSBOPFJCZHqjI?&|3ZKkZX-RedR0*j z@G#(bwl*t!)N|_Gu{pJD1gX#6x@DWSu{P)NY$va~(EwUMirGW~jAtZCmzB5{X=Mc< zLel{039x}bMPfRg8yS9TbaU$7s3N8$Dk?DpUzrB9r4h{Y{d;`H z)eM%0$Dd{AMk7?Fl?L~`PEEf8Hz~z2Y+6MBjC6B4*- zm9Ztan?_+qd6hv2#b^RDm#CJN^=QHvmlCoPLkwH8G!hd8kj5ArT9FCnvL9T?RA(8C zDC<;JR=m#vl*+@T)Obcrr63nQAu9Vd16)REyB=)Wc_3ybnw67D+7dyKk){UDTCG?F zj+hl?>^Pzsnvjy|NYLUS;x;XuSrB?AdWZ{Re~@l(&bB0r=;TtG#S~1-zv%<%4f=IuUSF4b8bC4#vj~1{QmXFCSLi4WY*0h%XklEz- zt^2Cz)$WajPTS5Fm%|$i{h@8zG3f+0qmba>G7k5}SkR1pV2`?t39AWy4@OSxC1XokEeeZhH3B^gYbd#;66ZPLlI9_KKCFyi;9D*R(9+myhJQ}2Hr}h-B~-cDAO6v zXQ>Cj9F|?dj{0!n7^NBqA;5v_OgVms{#r4?Y0YtFJX*70QgHEuYl*YU zYqLRSjag*$LQ>Z>{Pnp%t<#gs;S0t75O&~OL$8|lOmHir$7LfHOs>vt-?}fBG#Shh zCeRL2fuN@AG+R-K(HjXIcHU%QGw8mx_J~fY#N5;@lwOJ{3i99p3m!@86Ta* z3*k@$mK}P*VgFpzIQTbUG10UNRU+1wJSP6?BuIA1qZJ3;EC}n=m=K2LSxb%${2qO1 Vu(e9-;B9rR^A?7;&G5D${0j;)tI+@e literal 0 HcmV?d00001 diff --git a/lev00003.jor b/lev00003.jor index 7c1740e..835dceb 100755 --- a/lev00003.jor +++ b/lev00003.jor @@ -17,7 +17,7 @@ defer c1 ' c1 8 3 computer c3 ' c3 12 11 computer c2 ' c2 5 7 computer _c1 ' _c1 ' c1 redefine -lev00004.jor 0 4 exitdoor dx +4 0 4 exitdoor dx ' dx 0 5 scanner sx 5 2 defrexx Rexx @@ -120,7 +120,6 @@ var gord-up gord say" Let's go." then |; listener! - s" lev00003.map" load-map 7 11 tile>world Jaye entity.pos! 6 12 tile>world Neut entity.pos! 6 7 tile>world Gord entity.pos! diff --git a/lev00004.jim b/lev00004.jim new file mode 100755 index 0000000000000000000000000000000000000000..ac0a4db1745da9e02e47290b91b69cdd919b11af GIT binary patch literal 655 zcmYk2KWI}?6o-##Zc|e!52baG;>}P&Y)Yz~L_)v^MXe^L_uOEJkTmbUquhi@UHcK8g1fAKQsj@DRR; zKVp;O6&-)=OHx|FU|Wo02*Z$7D};L4@YE1=wSPYz!UGtA@@zaPc@=nIB;_22^sLt+ zS*p?1MN*i+vuF~aA_Ks|fHQajZM;Z;s{8{D4LrPtS2XZRmFugD@Cr7>ExeDn36N?4 z3~0bF@fe@s69Uw601~?XZtUSZe67I}sk#|zbqChL!VmZvKN29-03`H3Y>4l;g}(_< zs{ttLH{OU5IWG4|4d!;hb*);(n4FOv!@@`B^X#0oFvBu(729k|j)CoXeh{y?o)!0< zKpz5hjOU`sqPdQtZ0*66xiEjiwF zf3;ky^Mworld Jaye entity.pos! 19 5 tile>world Neut entity.pos! with-gord diff --git a/lev00005.jim b/lev00005.jim index f1eb6030a08cb9abf4659cf2e72b1a482f9c7e21..4fbccdc17a89572c3d41d6ae69b6598c6bad711d 100755 GIT binary patch literal 1512 zcmZuwUrbw77(a0Du^SB6IU&XbI5jhqtc4EuqQi~0x5dtmTW{|<_qM}7h1)?R^ftZ4 z4HjIwIAe%eiaun`mibzSFJqz?rO?*~BS%hkCsCU$L6<3H(U=liKys-5jRiO7EpK%!A zS()d16a9!9=+kr`1(-+gj@vRb=m0%TpX2cJk3>h&QTj4H&fz2f!3519g}y-jy-52tuncRlXhe~IlzCw;m?{r*T0 z-E9=mr)&?(B{POOVn?G%=al0M)-8O(xI_Ve#de__G~SanEg(15KZxF1z&}H#3T&jT zJm9z3raD0y#SdIpfZb+JG?2`AjGUSE*oluCh%$O=nPhB-~b0y^?a zvzR}022X3zq>@(0NHCXE%$&=Gy4yA!oZWIn@v0_kE^VojBZ0rwR@p7^;}^?^HXH?f zN^_#q>714KR1RnhH#Z>=9~T|16T+r{Nm$n!#aKnSOW$&=YqqRY@0Vki6>D#A2SIM+ zMLkUnv-hA%P6va-#4`H^O;eV=Uc)dXc$}u$@AhCe2cgNJ49zHli(ixIZXF(@Rtf6E! z&le6`@wiDKZiyad|XHe3{spR8HwLcxmBpdQD#CY6b&#@mIoPCDWEe z+L@EZ_~;NZhu}EQHhZ)sTrTtXO6xdGnt+J#@bYye`1i#fyd?S>9&)X~m4NfRSJ}rR zpQSCwN=x-x-iz~VSrn`5Uw76Lz6xqr%bRMQ%brgOW3CN{ hUk=Ij5`F^llbmb)D^TZ>@P1ffSUo1yxsJsO_+Jrc!0-S7 literal 1531 zcmZuwUuauZ7(ea3r5(vX}au+{W#}n;baj z`+ev8{m$=v=T3in?9-EXO8)YX1AgC?i8XQ7lK{gG$DvSzH2(Z8q zfD3G%l~`5)LPB#FK}B|!ooDX=U<#fy4W13qc9*WR%j_co2z3^)gGSI%_67TveFH#3 z?D(l6+YTHZ>?Zq}-4cLMW&s}X{yX{`yU$kaHQT21s=OpuWnG%WFY&7|D?5oaBpc3M zh`4!GuHr8tn(hkWPF|6JkjwZ_){b(8L}DS8PcNjztsd&MA34b%Lz7B0%)QdXL={Y0ovI@V_NE&ty$y?54=?ZVowxu$@&b!c}k#}X&$y4dY zIaeVovafK%S#VLn>l~xJQAo~1v?8mx1FcFYlx^wPk#2d7E=${B!;Ge43B~*lSsyIo zpcaaU)2u{%xm?)D_4gysK+Pu5x-Eo@+CKl0Z#Qa8;euA=7eJ3!-W#mh%D7##quF%M z%)1%~w1^!&2*{V@zk8RZ!$7^Nb<4Ct{D)Szt!ftSj+O{g)1+><8wiDv-?cQ+jlgk6 zW_`W|Vj9zPh7k;UJi4x{@Ut?136*h4d*Tt=Vb}ljwndt}8k*h|71tUA+Hv84H^}n>+?4 zMHFF?Xqk#!vlSY4*C|bN_AWMpieTl{!}qWTfMc0!is#mcXv`anxrc3h7P~32HT7Hnb<<= mEf0JzxHIuA`g%ykPa<)+Q+++&2Smk3V1;2d2&?4lW&AJCezo5K diff --git a/lev00005.jor b/lev00005.jor index 3bc7589..04d4228 100755 --- a/lev00005.jor +++ b/lev00005.jor @@ -11,7 +11,7 @@ lazy 60 over 19 9 timedswitch ts 10 9 door d2 5 6 door d3 >lazy! 10 2 door d4 -end.jor 5 12 exitdoor dx +LEV_END 5 12 exitdoor dx lazy dup 11 3 computer c1 ' c1 7 11 computer c2 >lazy! @@ -104,7 +104,6 @@ d2 :noname ' touch ' touch-override redefine - s" lev00005.map" load-map 18 4 tile>world Jaye entity.pos! 19 5 tile>world Neut entity.pos! with-gord diff --git a/lev00006.jim b/lev00006.jim new file mode 100755 index 0000000000000000000000000000000000000000..edb7f3cfc87c2174f59487d1e08cefdb09810d8d GIT binary patch literal 42 vcmeBh_lwf8H;$5H@QdmaaA9R-_{siGKGmgG(S?world Jaye entity.pos! + 4 0 tile>world Neut entity.pos! + with-gord + +; ' onload redefine diff --git a/lev00006.map b/lev00006.map new file mode 100755 index 0000000000000000000000000000000000000000..9dc63805bbf88476932076f6ef669162c69b8fb1 GIT binary patch literal 264 zcmZ9HfeOPQ3`Dat=z^pcS6Ki5OPA{kO?zTE6CbCWxClbVa!H_8vg`|S>}<_gADSJA zdm|j+-GOjJA-!=54p#O`>%r2YMtL6&c%7`)y6A%?RTCQ)OJW6cvIn=6tAh`m=lbuqp%q73c$w literal 0 HcmV?d00001 diff --git a/lev16603.jor b/lev16603.jor new file mode 100755 index 0000000..e69de29 diff --git a/lev16625.jor b/lev16625.jor new file mode 100755 index 0000000..e69de29 diff --git a/lev16631.jor b/lev16631.jor new file mode 100755 index 0000000..e69de29 diff --git a/level.jim b/level.jim new file mode 100755 index 0000000000000000000000000000000000000000..7b4f45e2a03f335b4d6e3e9d82316025c1377ab5 GIT binary patch literal 471 zcmYjNJxc>Y5M9j-CQ(Ba&hEfU8xyY;(d>j1o1j-IXc3Ow`o(z(7d3EVaY(>e*;t6= z7o-r8{DPELVkiCp1EL@{sp8(9UsKHNyf=@Xd1uSo@J#N5?g#R`J)dB&OViXzd@s{bm+Rm`F1L__KH%>E}K@y z5w*y`@X8jc;7O|vr4di$!455I9$eCi>|f~uPRYPGDo}64#~Vtrs(B=Srot ' emit-levelfile task-emit ! + s" lev" type swap 0pad type + task-emit ! levelfile ; + +: levelsrc ( n -- ) s" .jor" genlevelfn ; +: levelmap ( n -- ) s" .map" genlevelfn ; + +intern end.jor + +-1 const LEV_END + +var current-level +: load-new-level ( n -- ) + dup current-level ! + dup 0 > if dup levelmap load-map then + dup LEV_END = + if drop end.jor + else levelsrc + then loadfile ; + +: save-level ( -- ) current-level @ levelmap save-map ; diff --git a/map.jim b/map.jim index a379f82347c899e4f1da6dfba5871e3d1eded2e6..3544aec509c8bf5ea03809c34f0305d911a66ae8 100755 GIT binary patch literal 1113 zcmYLHPiPZq6o1LQZzfGTYYN+`i$t@xE`Bo;Z{k5oW7Mu`CZrWh1x;usIv6*#6I<I5P)#h)FPlvX912Wpl~WbU8R!- z7t9nKcbuwOC^@smhvgJ#_TP(nd71ij99#7vGwr)Re``JSDf` zb%=6Kj^iKu_8SYrvi{K~mFHo7gzBuatxb*{G}B|}WCoqgQf5IcSj_)HK9*CsEYD|d z5q90;+0{ZTX7=!oxFgz$K%}e`EVh?!u$}K-B)4^}>FF^?@6%{`usz(^sUD)D(Oy`| z*s|+;Yr|FQ;g-RFyR9sUzbMuQR>Vtd13B!rwvKDq#|GW~YcZ>jcj>N=t9vTqmDR=H zu}gt?8Gp8rTeBLiRvHa^&!GlO}|Fkzu5hd!@bz8HpqGR zX&>!%ysC4525oq4rzs0-^S2`2(RngF^LP0CCzP6>&%b3Eh_aoC`Sq1yUnkTa{w=mB zW>u}KTLuqgMHOlw61haI)vh<9E->*o;i;Zl)0uQr{bVrh5Yd`ms}<3q_B^(Vdn literal 1112 zcmYLHOK8+!5T0!2PxfKdqD@g-T*X5*k1Za&N_Jgsv3A$A+FCCz-K-5px0toXLJ#qQ zkBao*$k z)NX1?sJWiwJDxLEgDw?dQCkb{naPspmP<9qI9-~6>+5IL+iJkRY6_gLp7Wil>RGQm zQT3_vP}S6{TLbo2OEha-j_`!uOXvn2L;X-<4tvD3IHRV;fbG=dFl_Z7w6gtq_}wl* zmVkl$k)a5P!JsaIeI(ngBb4<-s8sPvC;f2Hm;f;V1R)lqFA9JZ#C%IhZA5rXZE}S}MWe8PKLH5OiQfbUC};3SXOQc)`fSQ%_@bv^U!hx`FHL$~o!(h%Dh$tIjk0D0@C$z%> zBG~zn5u;e(tvX1N9QQ}XmI{EeYc*)pW2sBp=*@=Hu&o7 zuoY+4@fy3vO7VbQF;XyAojA|i`OZn|HjlOvYqOLFZI+fn};qnVi)?iE0gW*A>}ua}M9(91X;8 zahHkQnyKir0(P+pjEBG-C1AJABvdOE->F4MJdH~-Z~KyjitLri@9>_P5d3ks(&F4T zFXJzzTb!phH=@{5Y-L8R<5QDkJ>pZ-3iEGD3*nKioFna?Oe5rQFIJ-k>b&~2$;>>C zDcql?4JR@;Xcn%`zeVOz-W}%r+j{<Lo$BH7jM~7o Nm|YoaIU0%&^dCz8C@=s3 diff --git a/map.jor b/map.jor index f757752..fe7f578 100755 --- a/map.jor +++ b/map.jor @@ -27,13 +27,14 @@ array tileflags ( 14:chair-brok ) RUBBLE b, ( 15:bookcase ) 0 b, ( 16:bookcase-broke ) RUBBLE b, -( 17:scattered books ) WALKABLE b, +( 17:scattered books ) WALKABLE RUBBLE | b, ( 18:plant ) 0 b, ( 19:tipped plant ) RUBBLE b, ( 20:scanner-off ) NEUTABLE b, ( 21:scanner-on ) NEUTABLE b, ( 22:cracked-wall ) 0 b, ( 23:rexx-pod ) NEUTABLE b, +( 24:keypad ) NEUTABLE b, here tileflags - 1 - const MAXTILE diff --git a/neuttowr.exe b/neuttowr.exe index 8d6f8ea8be9f77f12c114dd097b7b194163b1669..206f56c932c4e8cd445ca4fe601879b3e652141f 100755 GIT binary patch delta 33018 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
&40<3IY!SUsajsGN*HuHVW~w;0qLpK&>3!!Q-oD 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 Ln1`-V1E>%HszOWd literal 271 zcmcbmsKl)+`QCt;QPkjyJ||;9kiWZbn5Szv!xvEo22lep1~(r^cU@=yP`?nM5F>-S z0V_jVPGWj7gRB^Xl>rBYQ<9&?&?QjC;=; z6<=q-#h6i=o0z9tmYG@()KJd))Sx6YC$(5FJ*|S_jM#f^WrICH1C9X=C@9KLN2ud7 L%tKeW1gH=I9(YWw diff --git a/testbed.c b/testbed.c index e16f6c9..da126fb 100755 --- a/testbed.c +++ b/testbed.c @@ -764,7 +764,6 @@ int main(int argc, char *argv[]) { while (!keyIsDown(K_ESC)) { kbd_debounce(); f_poll(); - f_taskloop(); f_execcp(tick); f_taskloop(); f_execcp(draw); diff --git a/tiles.gfx b/tiles.gfx index c8076c447b142436dbbd6cfa7903422a1598acb9..12b55ac1d15fad57bbc91be76395caa42f56eefa 100755 GIT binary patch delta 267 zcmZp0XmD7-Q_lbe5BL{wA@Bpf2mCM@2#t^fslz4@6h(m$egDA#MFOr2C{_O-W(~O( P5Yms|0h|BvFbM+yVp>|C delta 238 zcmZp0XmD7-Gm%lW-u^%Te|8{j{(tyC2r$<(*fYp8@c&@{$Nr!Bf3tlv|3P*jY(9ux z9;opk6cW;Z7^v<65Ptao2dorCOyuH;Ioy1(`2i4qIQZw_{{#OY)IX5_!0?0N55vC$ X5OvK!OF$505f*uT`ZxdKVG#xZ0dbZ? diff --git a/timer.jim b/timer.jim index 0fa4ccaf736519509e5633b32d10fbfca24f27d8..dbe416954989fd67864798ab3787f97260df4282 100755 GIT binary patch literal 453 zcmX|7y-UMD6hG~|)(;{gSP*&_9n>zxg1GrHIyh9<4yB6ju^ zrcv`9X{OLRLJOP{TevkBMSYm%1NdSJXA|7{$9s^Dy|HaB=^lsBgVZotNJZcopC_Jc znWk_>85tk?unLNgR=ef_3}6d>aG4vd0~q6ClAdFjQ*Ca9VO?PO^IJYgjB>+pN?XV)P_^N8kT1{=21Akkh;UoS9D71wh*-tD{7m1o}TC`f`bTx6kJM|&>kU>rX>w6WRXKeaL~+l zQlyhmaH?+IT^gbLpb4w7{KSEz8}y%q*}8+Rf?xD$@VI)