From 60f6e348adafd1ec19b85c57024a5ea415c94849 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Fri, 3 Apr 2020 23:06:18 -0400 Subject: [PATCH] finish up level 6, implement libb hack key --- boot.jim | Bin 1360 -> 1360 bytes debug.jim | Bin 1382 -> 1382 bytes defs.jim | Bin 2269 -> 2269 bytes end.jim | Bin 0 -> 60 bytes entity.jim | Bin 1664 -> 1698 bytes entity.jor | 4 ++- footer.jim | Bin 1816 -> 1816 bytes game.jim | Bin 4973 -> 5491 bytes game.jor | 81 +++++++++++++++++++++++++++++++++++++++------------ input.jim | Bin 532 -> 532 bytes jiles.jim | Bin 1648 -> 1648 bytes job.jim | Bin 1113 -> 1113 bytes lev00006.jim | Bin 5338 -> 5741 bytes lev00006.jor | 79 ++++++++++++++++++++++++++++++------------------- lev00006.map | Bin 264 -> 264 bytes level.jim | Bin 471 -> 471 bytes map.jim | Bin 1160 -> 1160 bytes neuttowr.exe | Bin 127243 -> 127660 bytes neuttowr.prj | Bin 5784 -> 5784 bytes sprite.gfx | Bin 10240 -> 10240 bytes state.jim | Bin 271 -> 271 bytes testbed.c | 24 +++++++++++++-- timer.jim | Bin 453 -> 453 bytes 23 files changed, 136 insertions(+), 52 deletions(-) create mode 100755 end.jim diff --git a/boot.jim b/boot.jim index 795f8038621d37860a661af047985235616bfaec..89d4d5c0ff6f45d6909e28db16b42b03fc7f97d4 100755 GIT binary patch delta 11 Scmcb>b%Bd%%J+>-eyji-!vshG delta 11 Scmcb>b%Bd%h2KUdKUM%4?gO&` diff --git a/debug.jim b/debug.jim index 991dd3b2c9b2479a3518f78cfc4669974cd1d870..c86128ce8bb812ce70bd19919a6a6fe532399569 100755 GIT binary patch literal 1382 zcmah}O>7%Q6rT0Y>n@n2ZX0|f*rGicd7~)G2}K~6nkYgzCQT`son6{6~2=?o?{SY6AOn(p|)&XsFK&CghbgPQY>C$ZE>&tR~l4%lH zJYOW=MW(`O_L3s}OXXU;N>K2VtkM6winOcH1)}|c3WghKl!oG}lTq3_o z`x_RgB_=%Dw5R!ShJ8vJ`SJ<|Yr&6fGt$NF4)q~`TZ#|Y*o$PzX&B;My!K`!j{F?P zeTZ)ke~9R~^5GXYOcvcry?Nd_aNcD-EzT0S{TRiaIyr5eP0h?>6t1NZ&cdjfh4)!G z?9p+w-_nG&!;YAgjNyssxTbP%L=GOA*EJ4L%nqFh1+o$YZeR{e?%bJ-F+XdhGpCT8g*9{)xh1@xjkjkr zA{zpFl`BeJI&DAAi4PNqRV4Q7KK2e`ixNxne(ro=h&3g4Y#*!ekWy$Mn8Nbxj`*;K zPNK@=Xm20&;R_C=P#r6}k{BW}eNy$|YkpCnvblWN>HEmSi$?R|E{|iu6I95ZR0nc@ z<|?w17^$NLkcBP}poc5*`0zUqW7|9V<*Hk*H0s#f3(+no`1`;2kad{6m-^5+IhRho zo1LA>%%3Jo6v(voY{b{30!pUTEQCl>jp?sg;;uO>LKat?e9bsG9bG+~hZ5YhJSxPj zqm{r(SeO4>h$XPE1FMZSxo8cOIyV1vbSysnX{`(;Bz0X9zUNy==kOQO1o0<4x#s+b z>d`A!*Ye?SlvS!Z&hvqLnrZd44o>oITE*`A*zVv8FwL&jpSg2(`zaFOyLFhu6e3+b zaMV7gh~p~Gg@0XlLPl||5j&tQ_|h&^#Sm>k3$EG7z_l2js;wvm%*{yXaj1>m?V-q9 z_9dIceY*ws>`&ZUF;;OKv69=Y6eUUM{J~b0Wk0~cV22f%EF)iP$T5uRqTiD0 zCEJHR8(Z=tbna4Y}kXO#0p^mXqcX!D{Dy z^S<~0_M60b=&Sg@(uN1AowNH`ro3pbl-QAB#vY{hv213+%y-4dDMN|XbY)T9KTGKf zm|xDa@51Auu;|lBKbJ38s>Ip|dwkFs32yNy_xSbwp9OO;C7N79MR>fWlY9Z?s6y^3 zxhSIis346d@8~{6#2Txn^Gj%~4xfvS@EyEvaUa_7o907J9AFD>)g-?d_D1+oD#|aQ z-5=48gce#M#D_0MKbtQWDz#;IPx*@I=#Nq{y#84j?9Ay8%~X7H4y{PNPsDf<9*QI! z7Wt6JJE-=)PSTpVD>xfPkEpn6csxE-hqtUqzBCqLSHa`!_*@Y`1g^rW(c;_C=BtJe z`z=Gux|!O-f?Gynn-5xKe@&dSpnHMnQL&4rtdI(5c5WhRPA2fq<9~=Peof!iShf!C zX-uD;nCa;>utZdY>((`0!VRm%j|I>lc4C)%+3Hu^nU53Z+_X87ID_OQOra{(_E)Q0 zjSr?1R1Jduu{5osls>_@sU|+`AXZS=*FEeFThrzh_Oyq+jaW@#_j=fSc0kKi5$wZ8 z-5&B`3YDnK9cEAY zr)MVOA0?+J6LYgn8wNJ$ylC-Fl>ukt!6XFONHAjjZBwjAoG_bTa?@pV&pWDmxDPq- z9gkBo4U}TI2@UnXg;)&d`m)o+o+O=qR>9$aiQYhR+gUmoQ`Ckctk_#fmv9qlL~Nkv zvil0vgoRt#3mv#77UMiNekwUQ=$rWpbtRhjKt1_t73Pc=pTuf|RhBQ?yGo7odHH;WE zZzI83>BBD)NAe;ncl19|{0qsW8TzJB<}c)Zjv`(MikiM_>p-hc67{RQ_PhB%d!GM) D53-f` diff --git a/defs.jim b/defs.jim index 103a5fd92d65065ce7d990c6816bc87545c05c91..38e2556ed7dc4e34d1e2716ac8d599d3ca612a50 100755 GIT binary patch delta 11 ScmcaBcvp~V%J+>-w>bbGVg&#I delta 11 ScmcaBcvp~Vh2KV|+Z+HKjRb1| diff --git a/end.jim b/end.jim new file mode 100755 index 0000000000000000000000000000000000000000..980c156bbc71d3e9b80f828f3f8d794c406c11cc GIT binary patch literal 60 zcmbR8eS1Pd{G0>>hV2Q{1)5opCZy)2=;bCBFw`0au(C4*uyQk`DeiUusuaM=2ITPo Md6$5^6%oCx0G2}&z5oCK literal 0 HcmV?d00001 diff --git a/entity.jim b/entity.jim index 736a85bd71605ceb9b832d3e7c0457b4b684dffe..49e55bc6c9bd46d5cf888dbef533ddc87c572ab0 100755 GIT binary patch literal 1698 zcmZ`(O>7%Q6drr$*^V9KP@-@s5bvKug55(^POeO=#G(-;c4EOFR_0Z~+0DmMcs6fV$SK#fYF_|QXzIFtiFLWonPqJk_4@6E2$T#&WidEfiy zoA)>S-h-pDCk}?k-Va?(evkx~e|e@*WPy?0-K)tETC>xWFQCcT&19I&!kNhvXb0H$ z$pN&_%=D2U`%P>=J~@kiiTy43Q+dzkEG(1wY~gwI0()F0@e{{|c!=q8G_Y>ht#ZyW zErVSeDgtN!NFCmPyKn?4dN zxhT8Pl4Go7S+-+T9n;wqifz6F^sC79@4`p&04p1nJw_z)Iqv*UjH9YPY&^%JJIXdb6IzF#7qvXB_4}SFHyk8g<6U&gd|mB|rtFBO zOv*IXr?ePbwJ#W%y_s$LTqiLiN!^7mAS6k0o5l@*&*?#b;oZ#OJ_coD&SnfK;aRL1x+Z z%33Yc53`Ab4LJ5$Of1W9jdb`FegRHmQbE=~{Jf4cV^m62bJah($-B@CU&Fm!Uc-Lg z*0I2_gVx2w0(_yj`43p4yW;Roox;1KM@VCJ&2r5D5gAGC7x~v0QBss6Ww41dKVv9c zi&m++@&=n5Ij8SVqz2j6vRyA{DwtW_Ls>Qz_0fjucv#@n9uuorEfbp4nURY5%=MBb zMDOYl46rR?zgF5bGW*!UcZn^~{cI`taVo^N%4N-m|qTDS2K9@jyzl@eeuB=XTs|93rF)2q!4X-JvPL{*GM1aprZYDJASu)75gN zVDS=;(J?Z6+H2!$%21!pnZ&eMo#pW}<-WWUuCu#xl5rh>ui|y3$(j`UmJ;+hp-(%d ztFv)MW-ay<{oDA35_0LYM9bu~%^IXg5}zdg2PMP{S1eSiydv{JWC?kBZTwB~gRxbv zm^(bb276Dj5mgVoDhBHjTFr@(QfZZ;l^4>qdYM)dJfk9H7H8*QB8$OA)elsPL4+~& zeJPJ`sZE-jUa#x7vCfhL+b0YI4suQ)2ZVI}Txa8yKw4_okAYSElHOdoNZu*AX{XqA zQa8x^kF>AJ&Z(>D(YpS33HgPPDPi|De-aWqrRb?iVO>&fJXC#<&#o6r8=+^VXT zwF>LxJr?QU5-R$05xT?dM6=PSI|{0j_#8NjS)t$=a4%={VJMpBwOTpd53^2#jWqU? zl-MM@6K%0s`T{IaQeNmEzM#|082N0eu<0IMXC3VNk7#d)m8qXMbSf|&leHgN#ZUDn zyGJFuB@Vx$^YHfd0Qa$3D_VvBaq{3lPJVTr_!2xvp1~E}#_uSUy|rStbnR_;JvyuR zMiRrYw_#Rt={#jtaZrdQf-YJuSPtenKTuK?OF51zI?N|Ru5vqD6i#pH==H!=u6{GS zYot%9z1v(Z(9>$kYbSiLm#eJ{2a3)<=XS}ciL-qP^p1pYaHwMJ>^KMG_Y|V@;YqKV wYgCdtRV)m1$#tile 4 >> swap 4 >> swap ; userword : tile>world 4 << swap 4 << swap ; userword @@ -104,9 +105,10 @@ array frames 2 3 2 5 defanim {jaye-walk} 4 defstatic {duck} 13 14 2 5 defmulti {neut} +19 20 2 5 defmulti {libb} 5 defstatic {rexx} : sprite-bob ( x y sprindex -- x y sprindex ) - dup 13 >= over 18 <= and if + dup 13 >= over 20 <= and if >rot 2dup + ticks + 40 % 20 < if 1 + then U84>F}}^L+Ov?exXM{nGP0 zf4|>3=X>XNGP327c+W=Blto#ByzAENN@5bUP5@JmK(1mPPXs8;#E!^u_I0O+mW=Ss zKx+SU5F)!NnUVB-nuHKcld5khogO4<1H4PB{Ua$Z2=I|Cz)<=C{mh-Ol9-rdB_+;o5Eo^o1#Akj&XLyx59RR>#l#$B@K5^P03KeYdvKeQov-;JZYz;BplUUfF;!(A zN^1L>E?aPmS=+BgfMR>nUDd-;RRB376Nec%t2PFFIj#Hu{(w`!+5MDS+2NmC>E!)N|oJLKGkE^(YjlghoRZSDHF%fl^tq`Bz6 z=3;Dz{Tdv{+sOEr78Bpn=i5DeUvB{#L$_*=*$!NcB_s2?2*m*MdwQAV?0xbNdOKv@ai_NK zHWOPF7xg9T-zH<0&H5vmie>PwzQV5SoV%YX&6v$yf`M<^zhKN!2bT3XJ41ao4L&3< zw(%Gl9Hv;G$9S9`V})WoY_vhva)Pw}uFb@_=c@R+;NeRKmDSW%iem-NFIQiu52ang z88Uj6Lgb3oa><%pE9Hb%HuAV+oWyU8B(*b4Uk6MnrwP45=!&t2knIgrp`vzcH2X#i zIM%VXD68ULaiUA>EF0g_MIKCW5=^{zZ&}~TP7!|E#}ht|5=XZZn#W#3_$$J<qgAo!Y2bVCX!H_Z zLKDv=_C-Ccvp7ADD%(Wt#@TDMy00Wy$g#(3Fw%K0(Fy>c5KyrvCVZeBLa;!<%hsgr z11%uH_XLc&m7EUn$qdw3I4DJz7Dvpl&00RkPJs5Ia*Wqto cb4`;yd`taJ6@gQ|b9uWtZS3k^fHb0{SRg~k#J4fgHAZ$U35RN9m3?;F^k zg3R=)j5xUWfV2$LNl5Ab!PF2Wm1ZIBYDyY?Bz4Vnt#ly~mX?itZFEg4n+YTIBeG{6 z9*|Y8px+W2rI%AiiS#fH^`+B$4?y2eD|My=4?VnJUZaD$^fszFe0cje3<@C0D9R4QppaTKD-;U8QO*R~xHJG{a$P;G@VBgb6r) zxhXXmKY>_MR~>bn0=%?4i~O0M;R0p(b9}du&u{5kU{iLAwIIX=J+cH;bBoEY>W1+7 zy57E|%a3@ayc5)-QA7PZuH=?wM!;8bp=o$!xQ$NfJ@8&-XjF3ZjcR9N(=cGoR;FOG zf!5Gn6K+_*S}r@{00;JIQnxT%#6JF+1}pEeN}^*1tXL5?E-VZ30-Im@OYA~u`n#J9$INRu5|j+=FH zU2Ipg9K|o6|1vm~FFUykt|Ujm)VG3yNuD&j{_jJQ0?F=kXyvNlT!&No|C@W+xqdT3 z)e-Nu<;(DWB)z*64|Mtb9`qxng0sAw3+l4=irG#Duc=EO!Dyn~d2{93*Vp>|3tXFv z9%yD`WVKl_IJmX{xMY~D46m_D5uevt9IA}Do{LZ!-nfLPEG5*KyPx!Z=DewzYb>9K ztfK_`0f!z%SZc_8dBJ+KP+g=yTkbL-Kf3 z#>nzLc3qr}$vC$V$LF7|DCKi*BWqwn;e- zqdj(%3Z?33IXAIX%04q?7x|<;$*!3G4Df>i{&#@0Cef8Zi@YLP#{jlq5Q}^n z*WZLHKeofoo&>kOFcY4Le=QnoQy$>G%?_h5a; zc|Ok>E+uz#_&g=zcsUy44zL>+&tr9WCq>A0#%eUwSxUAM(X#+5&iHr$v{Q&)0q|sQ z!U=#@Qs_+p!(OEj017dk1u&W`Oawrb!ZZ&6=?@1$8wvUnK)H12Pyh(h=({9`T+egm eJ8yAKqup{#gH4pXh<`lnVk|gU2WJ;fpZ@{F^TcTY diff --git a/game.jim b/game.jim index 978188513e9fe414fd4dd7504fadaca41fabca95..8c174c69f8030794231186797a25988d0f17a7fb 100755 GIT binary patch literal 5491 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 NYOqu(d_6El{%;|{z~=w} literal 4973 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 diff --git a/game.jor b/game.jor index e0c50af..2ee9597 100755 --- a/game.jor +++ b/game.jor @@ -25,6 +25,7 @@ var player.prevdir 8 const HASGORD userword 16 const ISPROG userword 32 const GORDSIT userword +64 const HASLIBB userword 1 player.state HASNEUT f! @@ -37,6 +38,7 @@ var posessed-rexx : isjaye? isprog? not ; userword : isrexx? isprog? posessed-rexx @ and ; userword : gord-follow? player.state HASGORD f@ ; +: haslibb? player.state HASLIBB f@ ; : {jaye} isjaye? player.state MOVING f@ and @@ -56,8 +58,10 @@ var posessed-rexx 14 9 N ' {jaye} defentity Jaye 17 5 N ' {neut} defentity Neut -10 -10 N ' {gord} defentity Gord +-10 -10 N ' {libb} defentity Libb -: gord-present? Gord entity>pos drop 0 >= ; +: entity-present? entity>pos drop 0 >= ; +: gord-present? Gord entity-present? ; : player isrexx? if posessed-rexx @ else @@ -152,19 +156,39 @@ defer on-gord-sit dir>pos +pos touchable-entity-at EVTOUCH entity>do ; : activate-gord - Gord entity>pos world>tile - 2dup N activate-dir - 2dup S activate-dir - 2dup E activate-dir - W activate-dir ; + player.state GORDSIT f@ if + :| Gord entity>pos world>tile + 2dup N activate-dir + 2dup S activate-dir + 2dup E activate-dir + W activate-dir |; sched + then ; +var hack-handled +: hacked 1 hack-handled ! ; +: activate-libb + haslibb? if Libb entity-present? not if + :| 0 hack-handled ! + Neut entity>pos world>tile touchable-entity-at EVHACK entity>do + hack-handled @ not if + libb say" don't think i can hack that." + then |; sched + then then ; : touch-begin each 2dup more >rot drop drop ; : touch-next dup if rdrop done then drop rswap ; : touch-last ' done , ; immediate : ;touch [ ' touch-last , ' [ , ] ; immediate +: neut-touch-libb ( x y -- b ) + Libb entity>pos world>tile 2= isneut? and if + move-player + -100 -100 Libb entity.pos! + 1 + else 0 then ; + : check-player-touch ( x y -- b ) - touch-begin touchable-entity-at dup if EVTOUCH entity>do 1 then + touch-begin neut-touch-libb + touch-next touchable-entity-at dup if EVTOUCH entity>do 1 then touch-next touch-override touch-next rexx-touch touch-next do-gord-sit @@ -185,11 +209,9 @@ var q-level player.state ISPROG fnot! isprog? if prog-view else human-view then then then - ^Z key-pressed if player.state GORDSIT f@ if - :| isprog? 0 player.state ISPROG f! - activate-gord - player.state ISPROG f! |; sched - then then + ^Z key-pressed if + isprog? if activate-libb else activate-gord then + then 0 ^LEFT key-down if drop 1 W player entity.dir ! then ^RIGHT key-down if drop 1 E player entity.dir ! then ^UP key-down if drop 1 N player entity.dir ! then @@ -201,12 +223,16 @@ defer reset-level userword 67 const ^F9 +: boss-tick + ^F9 key-pressed if + ticks boss + unfuck invalidate-map reloadtiles reloadportraits + ticks! + then ; + : mode-move player-tick - ^F9 key-pressed if - boss - unfuck invalidate-map reloadtiles reloadportraits load-footer - then + boss-tick ticking-objects @ if ticking-objects @ links @@ -223,6 +249,8 @@ defer reset-level userword party each follow more else drop then ; +: mode-wait tick-debounce boss-tick ; + : draw-entity >r r@ entity.x @ r@ entity.y @ r@ entity.dir @ sprite @@ -243,6 +271,7 @@ var quaking party each dup Jaye != if draw-entity else drop then more Jaye draw-entity player.state HASNEUT f@ if Neut draw-entity then + Libb entity-present? if Libb draw-entity then visible-objects@ if visible-objects@ links each dup obj-entity draw-entity more then @@ -322,9 +351,11 @@ does> :| dup door-listener entering-door? if gord-follow? not gord-present? and if jaye say" I'm not leaving Gord behind." + else Libb entity-present? if + neut say" I SHOULD PROBABLY RETRIEVE\LIBB." else responder entity.user @ queue-level - then + then then then |; listener! ; : statechange? ( ev -- b ) @@ -363,6 +394,7 @@ does> then then |; listener! ; : computer-on? ( entity -- b ) COMP-ON entity>tile? ; +: switch-on? ( entity -- b ) SWITCH-ON entity>tile? ; : handle-teleport ( ev -- ) EVTOUCH = isneut? and COMP-ON responder>tile? and if @@ -375,6 +407,7 @@ does> : computer blankentity swap , dup link-object :| dup EVTOUCH = isjaye? and if responder EVACT entity>do then dup EVTOUCH = isneut? and COMP-ON responder>tile? and if move-player then + dup EVHACK = if hacked libb say" nothing interesting on this one." then dup COMP-ON COMP-OFF handle-onoff handle-teleport |; listener! ; @@ -383,7 +416,16 @@ does> move-player responder EVACT entity>do then - dup EVUNTOUCH = isneut? and if responder EVDEACT entity>do then + dup EVHACK = if + libb say" that's easy." + responder entity>pos Libb entity.pos! + hacked + then + dup EVUNTOUCH = isneut? and if + Libb entity>pos responder entity>pos 2= not if + responder EVDEACT entity>do + then + then dup SCAN-ON SCAN-OFF handle-onoff SCAN-ON handle-link |; listener! ; @@ -406,6 +448,7 @@ does> : cancel-ev ( ev -- EVNOP ) drop EVNOP ; : with-gord Gord follow 1 player.state HASGORD f! ; +: with-libb 1 player.state HASLIBB f! ; Gord :noname dup EVTOUCH = isjaye? and gord-follow? not and if @@ -436,6 +479,6 @@ Gord @ const gord-listener :| Jaye yield gord-follow? if Gord yield then done |; ' party redefine - :| ' tick-debounce ' tick redefine |; ' any-job-started redefine + :| ' mode-wait ' tick redefine |; ' any-job-started redefine :| ' mode-move ' tick redefine hide-footer |; ' all-jobs-complete redefine ; ' onload redefine diff --git a/input.jim b/input.jim index db91874eafd4a8b08223acb178d62c35edeb2017..8fc924973090b35ba0e2c7e4ec4755befe198867 100755 GIT binary patch literal 532 zcmXw$yGjE=6oyYSGf7muLoCb;C^m`#!5|SuiE+I~U6P1Rh~%;XHSWr~YgEKC7P5t) zh+rQZdkddHpFmQHScnfGBB*Cp?9TU{^Uus-&OgSRLfy|I;Qb6Wc2meIsW^Co9{3C) zq+?SEt>EK6>@261Bw`3UIfHCGolGEc=;dC>j$=6tL$aK}G6G{9^RYx4Aqq1xpHgFS z1#uKooIrL}#d;3%@~nh1BL^2jmxIaq**S?za3q`4D{IS0DxC5FRB{_ucuPBg%eE>V z2(FV7yW^Ao47=gi)L~bcw~JcY%Hcq{`4-!+yhc^_^HZY{GDuipkYv~!x(IRDJ#T@6 zZJL^Hg>$B9RCY18$wz}F)+SWufeh;qU;Yc%^rG>i=|l5E_FXrEj-rdY?!bUiz@I#@D W2WmxhRr(~>NsT(9ht|mh_J0A7T!2pi literal 532 zcmXw$ze`(D6vt0;?@dz0Y6m0K+zZ9YA8|251GbXJXO+hI$PZj%BqlE)iFx+rtBa$E*zbMfc0QkTzW3h4{gIs?93KCpBEg&3!)s1u zBcG-~G(a~oKq2)3Fidx`5IWg{kpspkBn6ezg+wVNhWFVo^#22=_VYZ6YuhB;KS1iN|dEYC#-dNf# zVF+XEu?FV58Q(1oN5@<@?WTqNs9p@nte3ObBs z-p-TyEj*uM1X-u-8U=6FHEm)0Rz1QmLQ*e7xA6!|`-9`r{9x8C7F`Uf1RU7TWYs*@ zJZ~&weFt7<^sBJHmAmQ^D%0T<4C8*Z%aMm=sy&irc5EsWHWzs%Fs_l!6*M@h8yfkT z)O)lPtQis;n%v~DLcQOIzXw>CBDEy4M${(tj8-$SP&F`X>|~?4(*<`Zm-Ey6@xTJ$ zaj1^mwZ|l!f`j-}*aM{ukC|bamCqF@2OpRbHRn0~m*FKdDA!99w6Irw%Osm+IAw;a ziC)Rg%3COz^=O_t_LaHJOXhu*;@=dva0cT~W=a_^>y8bM$}US&x6Nr-Gvx(!V+i`| zv>+%Ko2@&~_Qf&~w5EYuV?|6aRD+sOYO*#fov3tL`J7+$2fd;QE5mnY0~?{VXfB(M z7QLZUVtk|4W|;;+$Vsb?4ZO~_G{0yf~Bd@Yac5c^iLhv_$HFaj z-GL9-C(1ldA3cA;4!7AiTW+;vV3&O-7U8qz&w{nt{|H7IA67H$EfXSR#NMmU^EolW z50n`$^ZPNs!AQYzdydN*!&rlq5mZV~bTnn4WIM32kuc5*cE*Na!Z=~k%B)RyP8CK4 zza}{4mjqw3r{SjEccA}J@4;4f9hS@)ejVNoKBY~I^*`-#jXpLsj)#?VS|yM$u8Ea< zHqF_p)y@|LuZyo*5l-4qT2enRv>kEce<1%<@HWA3BmY(KXW|Y3OBmk^wjWsqPcb4+ zaTM9c2Ic>Y@fU@bjzh4fgoW}^{21=)K>cnn^nyU^&0gq+dP1G*{!IH?E2>vp%CPqE z!o(b1YHY=_8CZ|sP`@w;(_2Sx{qJ#IPvCczj+_vOSy5B4B5ePl(nUIOgjE7}Rk}t8 zdIcUZE~}M*{0e^@2RR$~GD?fjKS%baLdURG4y-p%p;1Ct@PK67fqNF|Ug&-GvPxgP F{{UTYlDhx^ literal 1648 zcmc&!-)mcS6#usOdz!d}rgdxY^;c(6u$@gO-k-5$FddV?7O(9(reqr-xvA;0B;2H1 zqdrutWqZg#q3)#v5uqIxRzWG)hrQ??%KGFF*aj+y4s|c1?qQ@`J?HyP#{3Hme7cw~`fOKsge@WUo3w+i>LFGx`MHXhD`dPW zG+}H_Z)d)j^}X_2(Sqk?yo`{4eqfr(`IV~B?&yK0DLdZ*!P|O2ufZe6wx$}Ls?vf1 z!2u<~!ANiyTA4K4X#`lw_fF-!(;^uAUw`|JHYWPgiwUptS-#GD`B^0kcZ_+Sgu1cL z`+1jf4eR^C2(ss8*U0#~9?~v#Ue|m19CR5q*fPQ_3A0^iVIF-b%&!=x9+=Q5%|&yaj~IO# zaQfHaNh>JVr>eA|sV`WRW(|g| zP{T1d<>lom#I3vPI;W1kXRY(N^_NQagW?p%(0)8SmCfb7Lh7XKvP|kLYX+7rc|e0` zg86M)5R{95TPrUam8%G|8hmKAvk7vG z7W0{CC6_)S#`pezWEub=ciFA%*qf}Sdw>lPJc2OFY=WZ*ce0lW9zwW-9VECPVJ|yE za0KCYmL~WL!a-Ibco^YsR<(g0bH~R@$l~k+$@UeHz0N+i131g2YS~YV96q(TH8K|2 zQrBIWW*;dFIDPb9!wzrQU-Vq<$-?jU3Z92&eIwY0eMK@>erKM`7%}IHP=-)B@zk#FEW{lbwzk6N+k%Zb5Dc5TO)H*5XHF6J z2tFw|`NsvHb7tVIGrIS1Jn`z&>>|urv-~2w6MRfNB-SrE6B=DMG>!+9ceQ#TY)*=m z%MQ)ilHJdz1^?bzvU@pcUu#{)aiRStY`#N2A^3*iKOvtNyd~xWu&{Yfun4j`R&i8R z@eH!9EsFOi+Mf}c8G~R`X%))RSRd}{!rjMnp-zErA-bTBsiTAEw9mD1^^=|&EI&9f zF-PY+Ze!Riti>**4g45oitR5^dhdt&uvISHLewcx2@9mOUASzMo(uVEO{E*}UqG;= Al>h($ diff --git a/job.jim b/job.jim index 0564d3de60129c75e3d2f834576378a59fc06799..4bff4a5b990453f2ea29170a15bd066f93819973 100755 GIT binary patch literal 1113 zcmZvaKWGzC9LHaC??+B++q9B`+QE)$ZfMcLyLYJ(yC`BHfeHq~HMz90>7`BXXuA|_ zX}}@W(n1mHQiqe`rjuP9oWu?aR$Qu^AUFsGhk*F|y-V7l2J%S0zd!Hue!uU=FE>7L zZY+MAkLZo7JJJ(a` zM0%86>}PB?5Yma%t&|j){4D8Q=Cw&dfU(DVm_j!a>BN7cFR|aaBr4|FX2j>9URKVl zF{KV4un>vzmTO_8#$W4S^g&*SA6U}V2QfhM1(d;vup;WNRh`l*p5qjq2@E&Fjc^h; z+vPRB$7hrR6pdZJs_${SWsqmW4^hh+TNr(V-{qbRnE3BAwj3~e=_c86+^a5Vg_1=* zLG}5evZ(u*Q#Sf2N2}&0?YvjA^R1*LsO&gx-8ju0d*0QiEjKrbXf$m3 zE_q_MmauLv>Y(o7#%Y!XSU0!Y{L}JG4ps8ZHM5i1&a7v9@&d#dlOuR<*7&`yz}?#t zCj%eNV1ZAu#;q)nYY7T#{`Txhd>4(dBDYz9D{qKjBWghB@=2SMr9tyKKIms}gvKpuDB-=F)u-|xGAYb=vI zGmyDSQ|!}~Br%=Yf(< z+N4`_UMU09H|ZqXqT(z4v=o1g+9iDrqwn#*oGd{C-*&L&F3u(DIOV$ytz0!lPf$a; zr{q|OIal>wk)yfOGq&YdZ7WL3gG!FlEd3O5>_tzTGrj2`TbdQS_(cYGIF zBZy_V%vV#t^$F#pn7kf9FYj$-E|?XslXn?RnHnW>o+LF#dg{8nfO{Aqok+1;P4aJ-E0}pZ0lWb5C9{Ckrs$92iiQG>8*Cmb- zEx|H!4Ad>$xR_-bEMu+1KapofP!*o(F}jHD-1lu?egH8B>h&j=ndK2TTWK#%;qo!&u?JPh*QBcfIs1xJf#2t diff --git a/lev00006.jim b/lev00006.jim index 62f38a03d9deac776c3e28be67d4d85c59196d36..e57c40938eebef9b73a2ff8129a8862212982062 100755 GIT binary patch delta 3179 zcmZWr4RBP|6~3E&&s`FdEJ4zMh<8IJzng3b3OEP^NgxnN2pbY4E&F!&{cU#N+r0O7 zLxK|9bRxF1b@l3`g{?#FP-=(L%t*^nN=qG!jvb)mOgq(TwU&Z2(pqOwQ@15OXMZA2 zGr7q-=R5!Ro^$V;b^mA_f9BJfL~MVnDpa2Fr~Nk4P4-r<*|k+Aq(nO7FCt%UA-2jQ z@{0cs64XPYXB5a~ zKO~ILBZer1JeV8Aytg(|TgOfC7lq~ULvHxr_8+XxIKZ#KJCi~WUqtY)9sVZy6GAzO z387Jss#%5}iU-9IsjnpDs!&3P#8H3>X6@B?RaZbZZZ66HN4O)8g1_(A?4ICnic_vh z?r-!7`)eKh?XN+uS3@&`o7)dxHv*q}Cirgz*iUWuIa3XP0OG{}yJ4#V0+Fi$c2`l| zvQz`_oDu4{bce)$5d1}FmAAfE;;#o$vV%%yXsfIy_ZW7|eD06PkhsLt8tPZh% z+gDYj8h$3s58##^3ZZ{1#5QmZu2e&sv%3fRvsvbu5F6uK=jY6!)O#Uzmb+&>)iB9< z-Kcy`MD~}(Hchu60BTx>pvfYQ8MV^n0k9HCA zh{cD*CK`)~f+iyKL1`v$O))t#j<@ak7!Dl{%yck-ut=pCZRdkMtGEhwS_2 z*wf%pmMm#Vnnx_rhbtlydeEt z`UwK9fYH2Qs{vVYx;4lLYGvF@+{xaY%1OCP{;4lLYGvF{I zpO=&Tl*?XSq9plQ$ae_0)DysbDePUPwByci$`K`~0EC-bfLu0@G&?({Jgyu<2oG2e zItJ%!v-I2IXO-ub?;?cTSAdAk7?*@))5>|}G++UA_G}+I^TMt_BL7bLlX3+Cbd>|9 ziPzR5UsXO*-Uq-$jl{_S0GJ5mG%mmf zx)-a>>N*wo%-(O$&V|{q6B=?#W!oI9>rxFF#{~az7>j&b6#_c+xFi_EaX|=?34SR6 zDE*nre(ZPvdKrnTa7fo`aJHEy9Z@ZXs+QZ0gCoheft}{C*%~xjEgJNOTF1c3j=Yu5 zunZ#+T||VaXv`@Lh66g7f{_oxU&{+W8jcz0Kw1lfi3&kWO_T|iIHz}D`_BA(^Hcm?4W@WPG)xudK<+-wXzS?C_C6m?c$-$YG_5j%Ei3cT5`8`G z+}ys?*V(ame@}1smfp4 ziim7osq^lfLsj3|?W1k9qrI!E4KE{9IifS6vF@22M|hFEQM`k-uk+I#8NzFyyM>g%Rk+q-%S z`8;S?ieS~46mD*6##BSiJ{?eXz*tZFdb+yXHe)Smb64l4P5CN>;Z-+6M^)1-*!h8x zYoak99Z^J$j_PrEhln9KW`odGpLZ}GMoUpO88z+wUp&5Nj4#qj3y)%{$zEBo5mH7% zFrdOP%Ikrnz#T_xJET;hmEE{FaZadw7my O9FqHW`2NvAlK&q=k=^(J delta 2772 zcmZWqeQXrh5r22LFE+Np7cdUAjoE_&w$FF|#)gmtBMcZE`)X_#5_0RkeY@xNop;ZB zXB(%9OmO5TRZlf}L>9tCs6+`-OrcT~DnQghfu@y6(tK2L0}WIvAyKK+e+acj+?l&Q zhpH#d?ausWelzdwym`0F{#r78qNO7K$kPwSKPWg53!468p>qz| z=qht1X_GX(fLN-`e7H8KxwQDv;u2wm9+XzWkDLjf2sRhbX3b{pmT2~FDL|bB|6TB( zq?VLTy5+bps)s_Pw2+WfQa*{vY{;h@3Cm>tipo;uSIONiWL$GoeLH zdw-1HW=u5zoDlAadm-}+;FK5QOa9z!73)zbQL0*QEn+&>^lUo4mpfK1wmj56WK!y0IcL%Hv(NLpp30&70fwI6fEXc z4NF!@wO&EgJyl2>4ju|D$A}oZ!Isi&yHWvVc>;?8S1nK~o>qB4+_H0HOV@KH` z1nL3k>_|uKhqB&e@34~y46nZrnF8b@`;c8`c+e6)UGtd+wE3v;?{#p9 z6nx3DiKbieMB0I}+pGwr4kQ4ggB$=k0`fM<6%ZT;4mFo3y)mDm?n^~Zx`#LB)~i`0 zV;Faj&;fPaeNe!5N~jZX{(+KiSM}T^O+P8yt`>pRfdoKwkOLq`K;8zq0?JtqNvsojwBaGP#G&yAUCqzxQ`ub&= zkrDc=Htxo-CpErw!3OA9RQ74iG}b1>UNs&U2lYg^s3$xg51gbVZ2+EMY4K{ss!oVX z1*?7rSWen3Z)#yRA!3TC+^bsi0q3=l2~;q8!1;#ld`*j4m_S=ECQMOQ68gZfoKWY3 zW;8s$V$5V>NFEZIXng$`QcF4AH z*aS99XG}H}^qmlBHm)h)PSRDr(T8Cc&BBMl4gP*(zv#w%?}vF$&Mp`nsI2VfmvY){ z<+*OYA~%Cfck^d*+n3>1-Oq8d2g5e&{ATV?>@cSD$Mb$*EAQ%D&g+1=a)e<&l9c<5 z&M)Vcl;T_|N*R9C)84I$F*zQ`YeLlHVr}L6IzKD~*&{uC`NC~B;ajMz;6Gou9L8I^ zmUNrkN-^E+;qNS5U5pbdJ>I7boYPYV4rCniQwGgG57QebZ*_#AZ~4JZf?NUq6dlc%Zo~2wOD~a z%D-K-1{6e$C|{jlZ!42guI8_^-L6LY@%-YIX}3F3T^y8+RKJ#qhT5OVQ19sFxAU8A zfeg zK_}FJ$}dd*Q9-+{Tr+vu(w(530c3TI4=>&He_eU655t~|@s*1=*<$`iMy5Hh; z1*>4%Bx$qiBoVxF7IfhV7vXN%uRKxk1v_93SpeaslY!ihab<39%sOfvLI|&&G;|Cu zz~3mBa^A9jXPrU_ua^u&99I>&=(6>R^(TNrm}_nq=GuFjR5*^X8`i(9e*nVv0aBMj zrpQNRZf?fPihl<{9D&zUH_Q~dPH22dT#S#qUknB)B{X}7C%kQXWq=A~Hfx9HS$I!& HCh30x^-68{ diff --git a/lev00006.jor b/lev00006.jor index ee62cb5..50727e9 100755 --- a/lev00006.jor +++ b/lev00006.jor @@ -20,11 +20,10 @@ objects: O 2 code-digit 3 code-digit ; -var has-libb var pady-introduced : keypad-code responder entity.user cell + @ ; : keypad create-extra-linked-object - :| dup EVTOUCH = if + :| dup EVTOUCH = isrexx? not and if pady-introduced @ not if pady say" Hello, stranger! I'm Pady,\the friendly keypad lock!" jaye say" I need to get through this\door, Pady." @@ -35,19 +34,13 @@ var pady-introduced move-player PAD-OFF responder>tile? if pady say" Oh hi there, suspicious\program! What can I do\you for?" - has-libb @ if - libb say" oh puke. please shut up." - runon pady say" How rud" - libb say" > /winnuke 182.556.21.74" - pady say" PADYSEC caused a General\Protection Fault in module\MORICON.DLL at 000A:BE3F." - libb say" > /open" - drop EVACT - else - neut say" PEOPLE ARE IN DANGER\PLEASE OPEN THE DOOR" - pady say" Well that's terrible!\But I just can't open\without the proper code." + neut say" PEOPLE ARE IN DANGER\PLEASE OPEN THE DOOR" + pady say" Well that's terrible!\But I just can't open\without the proper code." + haslibb? if + libb say" oh jeez, let me at her, neut." then then - else + else isprog? not if PAD-OFF responder>tile? if runon pady say" Enter your 4-digit door code!\And have a super day!" read-code keypad-code = if @@ -59,7 +52,16 @@ var pady-introduced else pady say" Oh hi again! I missed you too!" then - then + then then + then + dup EVHACK = if + pady say" Another strange program!\My, I'm popular today!" + libb say" oh puke. please shut up." + runon pady say" How rud" + libb say" > /winnuke 182.556.21.74" + pady say" PADYSEC caused a General\Protection Fault in module\MORICON.DLL at 000A:BE3F." + libb say" > /open" + drop EVACT hacked then dup PAD-ON PAD-OFF handle-onoff PAD-ON handle-link |; listener! ; @@ -81,18 +83,33 @@ defer term-loop ' term-loop 18 9 computer c7 ' term-loop 8 6 computer c8 ' term-loop 12 6 computer c9 +' term-loop 14 11 computer cx : ret-if-on ( e -- ) dup computer-on? if rdrop else drop then ; : first-on ( -- e ) c1 ret-if-on c2 ret-if-on c3 ret-if-on c4 ret-if-on c5 ret-if-on - c6 ret-if-on c7 ret-if-on c8 ret-if-on c9 ret-if-on 0 ; + c6 ret-if-on c7 ret-if-on c8 ret-if-on c9 ret-if-on cx ret-if-on 0 ; defer cmp-next-on : next-on ( e -- e ) :| over = if drop ' ret-if-on ' cmp-next-on redefine then |; ' cmp-next-on redefine c1 cmp-next-on c2 cmp-next-on c3 cmp-next-on c4 cmp-next-on c5 cmp-next-on - c6 cmp-next-on c7 cmp-next-on c8 cmp-next-on c9 cmp-next-on first-on ; + c6 cmp-next-on c7 cmp-next-on c8 cmp-next-on c9 cmp-next-on cx cmp-next-on + first-on ; :noname responder next-on ; ' term-loop redefine +5197 ' d1 3 2 keypad k1 +-1 ' d2 17 2 keypad k2 ( must be hacked ) +2757 ' d3 4 10 keypad k3 +7777 ' d5 16 10 keypad k5 + +' cx 10 3 switch b1 +' c7 19 11 switch b2 + +' d4 3 0 scanner s1 + +LEV_END 13 12 exitdoor dx +' dx 14 12 scanner sx + c1 :noname dup chain-listener EVACT = if term say" .:: welcome to farquaad ::.\please select your choice:" 0 begin :| @@ -133,8 +150,8 @@ c4 :noname term say" bill's workstation\keep out dipshits" then dup EVTOUCH = if isneut? if - has-libb @ not if - 1 has-libb ! + haslibb? not if + with-libb libb say" well, well, well.\what have we here?" libb say" > /version" neut say" < NEUT v0.71.4rc12" @@ -158,14 +175,13 @@ c4 :noname neut say" IT NEVER HURTS TO HELP." libb say" that's the spirit." neut say" > UPLOAD.EXE /LIBB" + libb say" aww yiss." + libb say" press z when you need me\to mess with something." then then then chain-listener ; c5 :noname dup chain-listener EVACT = if - term say" Subject: Password security\A reminder to all developers\about security best practice:" - term say" DO NOT WRITE DOWN PASSWORDS!\We pay significant license fees\for encrypted password" - term say" managers for all employees!\Use it to generate and store\secure passwords!" - gord say" There's a sticky note attached\to the monitor that says\'7777'." + then ; c6 :noname dup chain-listener EVACT = if @@ -182,15 +198,18 @@ c7 :noname dup chain-listener EVTOUCH = if isprog? not if term say" Actively neutralizing:\1 threat(s)" then then ; -5197 ' d1 3 2 keypad k1 --1 ' d2 17 2 keypad k2 ( must be hacked ) -2757 ' d3 4 10 keypad k3 -7777 ' d5 16 10 keypad k5 +c8 :noname dup chain-listener EVACT = if + term say" Subject: Password security\A reminder to all developers\about security best practice:" + term say" DO NOT WRITE DOWN PASSWORDS!\We pay significant license fees\for encrypted password" + term say" managers for all employees!\Use it to generate and store\secure passwords!" + gord say" There's a sticky note attached\to the monitor that says\'7777'." +then ; -' c7 19 11 switch b1 - -LEV_END 13 12 exitdoor dx -' dx 14 12 scanner sx +cx :noname dup EVTOUCH = if isprog? not if b1 switch-on? not if + jaye say" This is the sign-in terminal\used by visitors." + jaye say" It's not turning on for some\reason." + drop EVNOP +then then then chain-listener ; :noname O 5 1 tile>world Jaye entity.pos! diff --git a/lev00006.map b/lev00006.map index e2810bf77a03cd3f134a3659ff589eb36079e1cb..12d2eeda11af8e836508f181154fea65d9c88719 100755 GIT binary patch delta 36 lcmeBR>R{p!Vc=z8U}6%P$Z=gjjDeS(nUfg?SSG%g1OQd&1jGOU delta 36 kcmeBR>R{p!Vc=z8U}9pL$Z=hOiGi1$nUfg~Ccc*h08+RFod5s; diff --git a/level.jim b/level.jim index 2a409e45ce64d161f6433c0c5372153abf727f51..6676a9ee0fc92a66d90f091ff7d75e85693fc839 100755 GIT binary patch literal 471 zcmbR8-G=*|;}nW8MMS0kiiotE(V}5vMi%BA46(xW{ECB zc)CCvizi0`a~f-~vw*WA%O@utWuc=Q%9BtRl{w3>DFr!+ z$*By}1ttP@7CQ&98ZdA&^|FRLvw&rR5^XF2tXvGK&LBDkO21%+@CDRUou{()vX(k? zF{G#FL0ppu)C96oljSRmB1<%H0IRz5R~Ai{X4Z?&KotxtS(mfaIj>{|iG6bFWnJRT z0r7lsQ8G|#GwV-hy{!BqhRx2stPf#wxrqf}IZ+oq5ECT#*O{FmH7^CMHd4%0NY+Kt zg`L62H7wrM&xL_e?Eiml7hZNF-12owHy+FU|;&WXtJ~c zgQ^i25H&7sEL<+NMr|zSE}cMrpUWH;RhJmn2`=xPS$TU|16{ZniWAFH;o5y&6oDE- HjCxrCqacIp literal 471 zcmYk2J4gdT5QaxHgO_L|SfmU@d_^=!3M&!Z*$9HhRDvkTky}N%oFTqyQ4TDwu#hwX z!A8>xsV&keSlC)wC}Lr!2nxD)@wLtD{NMcS&VQC0Yd@Y)@~WjS2FAl+t8Ha3ui6R* zO_Obp^J|d4MIRY!nY5vC1 zCjZ40zF-m;qIr4~FPOqTI$=ElH9Eyvu92@bghyL!G?(8f7qoScE;+rnUWR@4==_Hj z%~HS~IPG73cFk>|94nZek7v7{`AI9&*}0``PC`rk^YeqFP}nM$mGhlc5N(I-1bf}I zh8?xj3^3R-Ayeq;sCIP_Gt$Ld&ShLQ=rRj}B1$e^%xw?L{wUpJih77Q!JoSJ``V9M@T_!%+>OsPBc!)$1j-X0nB;!X={1AR5s?xa^j$c){FzBC-O2 za#T?O0U00_ilQ7eB)E{8D@+AOhv2j!LOPYtWeOxDfNjW-wlCyH?8!+25Eh8v1+vsL zs2U8?XH!#o>Lj>j^udH}=SR}h_Dp7iuqgOF%+6)90j9tcLxGvusY3c}DBK5s(8xWA zOZUS|@}5bjvLWRFyeIE2zzGN8Un1l)b8{m(n_I=8LxfyvBK+YS=r_e~&-sTSZpuIp z#zQ$xkq*&~zlf7iG5ENn4Xik`i4WKV_Ji!Rb7mhb zR%Nngc`Ruu=M6Nkr<@?^|HBpN3-|h)zcEDnC z3yUmnwU7_nk+yIX+gPKslNM*S@s-&kP4wBM6#&Zt z@TcmtSxbRxx$HUhaOpR(BXQe1BvfQSTYPVqt!Ttsu9SP6%ho+q_Kpf$WMhZ*yy~hu zS`*hTj*SWH)_lGvAUUUg>%-*I}`V|1c@m#07Cdlw$lrHpBtZXJ?Xf#I2T= z!W201En5@UL|5gcUqmg&X*HsiE3O;TIuh5|9r`s5y@@+o8xunI>rlTYyKlk=`T`)P BA;tgz literal 1160 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 diff --git a/neuttowr.prj b/neuttowr.prj index cfc413b5241bd29cbe4b8677edebfe641ecaa89a..f026e86afcbfbc96b0f94caab857e73dbc3ecc9d 100755 GIT binary patch delta 227 zcmbQCJ41JaIvcaj`sU4AY=_tw*(bl{$!27m9Lbx_$U6BbZ$6s=gW&q+fXP;TY5e*O zqClnzF9Sn24+DeODz8N@*f>-dv6nSopt22G%$FZtUU)x#N6 z82&TGGiftTXUb$g&6LJi%~Z_zow1+sFi?hpL4-k>;oQpR$pI;WMT#>*(&-N0K^+W=l}o! delta 243 zcmbQCJ41JaIvX>~n#RpqY=_tw879Bw$!27k9Lbx_$UONdZ$6tgL*wS3ev_^E()e{5 zI#=lgnD8<%bn`GUcu!u>7YWqB$)C-|#=yj&!q5X!SjV5l$qM8eFfalQeaYX>sD6&| zHsgP$cqVP8=}ei-rKm1Rtp5rBVLrjwz(AA(2zdaX107*L{1E)e`GW9)=1J@=pb*f6 RhX5f5P6h_z=J~vdQULpmzMudA delta 21 ccmZn&Xb9NwkbANcZ{6m21!ktrNqqAp0bC#ljsO4v diff --git a/state.jim b/state.jim index deb097f232d784f21e1562c3e0e6422af3c1f8c7..65365c7bc7dd4d9e5095a4913125231bb70bfab5 100755 GIT binary patch literal 271 zcmbR8-G*C6dXq6T;|-(fMx2ZRLH_Q#VVHRf-!M^7XQs8nZHj%yIyWL;yuRjoBHCQ%gXCKrxVBN8?`BXk$*sMYkZdqn(IZ#70>k8wN%$(F>z4WvS1`qKjy=O-CKm$5~1{4(Krz6x| MG|od;m=0730O%Y`C;$Ke literal 271 zcmZ4CXT!}e-E7RvxY8)Yh?6lO$lqNz%+ocTfl-WsVWkllgPV_|yRNf;s9y+Bh>>Bp z5i3JlPGWj7gO(V>IU^1TrzAg(VY)yYO8_eegA4NwBOT`DV73o4E5~w{FU-BHw~g2# zO4Ag9Dqk2G^7XQ^8M88i%yIyWL;yvkjM*8BQ%gXCKrxVBA>&?F9b-<$F&AS-X>MYkZdqn(IZ#70Yo&2XW=?9cUV2&ugSB|D-gct^paD@p0}6`r(-G> 2, NUM_PORTRAITS); } void showtextscreen(char* filename) { FILE *f; - vid_cleanup(); f = fopen(filename, "rb"); freadfar(f, MK_FP(0xb800, 0), 4000); gotoxy(1, 24); } void shownag() { + vid_cleanup(); showtextscreen("NEUTNAG.BIN"); } void f_showboss() { + copyVidmem(0, OFF_TILES, SIZE_FOOTER); + setMode(0083h) showtextscreen("BOSSKEY.BIN"); kbd_wait(); - setEGAMode(); + setMode(008Dh) + copyVidmem(OFF_TILES, 0, SIZE_FOOTER); } void game_init() { @@ -271,6 +286,10 @@ void f_scrollpos() { // ( -- x y ) void f_ticks() { PUSHU(timer_counter); } +void f_setticks() { + timer_counter = TOP().u; + DROP(1); +} void f_splitscreen() { setSplitScreen(399 - (TOP().i << 1)); @@ -706,6 +725,7 @@ void game_f_init(char *exe, char *bootjor) { CDEF("draw-screen", drawScreen); CDEF("split-screen", f_splitscreen); CDEF("ticks", f_ticks); + CDEF("ticks!", f_setticks); CDEF("text", f_text); CDEF("textc", f_textc); CDEF("map", f_map); diff --git a/timer.jim b/timer.jim index c468ba446e75884526057a0b011c4978b094ef36..fabfa8987da5c0abd667031e82e6f510bfafcc4e 100755 GIT binary patch literal 453 zcmX|-!Ak-`6vjt|ML-)lc)Tahxo)H>LF>iHO>q<7mGWWdetQnL46Su@)38#7{D_on9d_8^S*QJS{RzZ+3ONAr%gmJ^_rV zKg1o8W^Jb{i@w@HJg273w))x!pOe7|0+>^eOAB;FO{>!S&c%Wz#wWyMvB5gNX<5ad kZu+KeRHNzB{0k+&7RWl5ly1Z7ytkO literal 453 zcmX|-u}cC`9LHbyduqsKlMtcrNka$<5ss1&t+g~N!KKgR;5?7>P#Pn+CEg$eQMg}= zi$joZ;U;b^{ud1nQA7RSoyINieZIf%_ucpRa#2a8_wV`J)++ari<5?>x1A&MxNB+8 zu@+6UA=K$1^Wi6_7I#Rz)9N> z;bb``>18ytK}AF@Mu{a{$Hk#3T(KFPGsSP#-2UfdD96g|j!8OT5PDFWXC~PQj@UNw zT+=XwE1IbIFoirQJ*xJJRc3GuG+C!#VXY+=lk^?K>`p%)h6PZ-KmTS)qBncG-4F`< z>l`1(=$BOE3DWNLM9EV-h~BAb^UQx(`~i+qQ4 pJ=3yEeckj-+o*=GPqHIyZgWbymJm+JEbW%JXuws-6ITI}{sD$rfoT8$