From bddfcec05a4b1a30b6d3c044a6b27a1a9ec747e9 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Wed, 13 Mar 2019 20:43:38 -0400 Subject: [PATCH] add town overworld --- game.jim | Bin 1868 -> 1925 bytes game.jor | 11 +++++++---- gameboot.jor | 1 + map.jim | Bin 749 -> 746 bytes map.jor | 5 +++-- pete.jim | Bin 225 -> 297 bytes pete.jor | 19 ++++++++++++------- pete.map | Bin 524 -> 524 bytes petehous.jim | Bin 392 -> 372 bytes petehous.jor | 4 +--- road.jim | Bin 0 -> 245 bytes road.jor | 20 ++++++++++++++++++++ road.map | Bin 0 -> 2504 bytes tiles.tif | Bin 4078 -> 4078 bytes 14 files changed, 44 insertions(+), 16 deletions(-) create mode 100755 road.jim create mode 100755 road.jor create mode 100755 road.map diff --git a/game.jim b/game.jim index 9100a5bace1c99b8123fe7819e15f1ee0d400491..846c6cf71e8141b962204f4225a8c0553edbb35d 100755 GIT binary patch literal 1925 zcmdT_-ESL35MTSIB(blF<2be{mGW`7cRn{4l|mHJN~tIWfiT2%-;2@K6+~Ai+aXUy4v4dLV%+VI`5UEFL03f~pEApirv3a7E1Cot@-Q zz|!sR{C0Ncw==WjT)ZIci_g_H3rn313sJ zgtrC1xDEOr3OxcxUO0Y;yb~%2Lt;JAGDg}+Yk9Ie(B?ZOHaNhHnl$WS5hC#^kw68$ z5PP7P?}u!p%=N=19P1(%`3ih4c0m~WK;jc{tFZ((!~_^PUlhZLhrxmgktc8H$r&xz zoi~z(hS?$Hw)mI}+MdfOVlD@d^&>M6`B|(ZhffZ=vX}gYOy?XMZz8W{@sapF`fjJn zt`h8{%itev#r>CN4-WaeykT4TEdv;qeGsl5c# zbg8|w!-A8vM)PLqn^+_DlK040WS07>flB3BqMLb0f6B-GVFBPnZYQ zj`a*`6IYkT^*7pqQR+bb60B3U%0@cCgaG-|>xVM;qt^r=UGV7>7Tm5{azcTYOz;qP z`_K3yU7{usSF)g9+DWnnL(Pt>quD|x#fra|XBy9O%s!iooW!4K>4IUL_n=hdFfvj- z(Y0hXU;CIpV*Q*s+~z^Y_>)tfo61GFNdK78&U$R%yH%+_q-O|MXvT4EydDTfv02> zyrcxZID3c%QF&)oK|Pzz*-5UzE3Ve7I1|)*M!xL2&S>YIx*w929VXVXvcrPcYTJ6! zPPPej%k~BNEpouQ2OpT1FMBMwDhJ8fgf{lN>Lkj&CLeexP1}!YMSd7wi7<{sveCFI zvGI9(9H-43Md^mzM2y@Fvc|%xrMpNM=pC7bBod2C7W`dv;V zQjH6AZ;Tn$V@uS6fmj`xQgv-w)9t64iTO}=ICP)4p$l7~85_D1^OLE9R?ys&d|)=V z!Y$x8kDmps>RGs1G3{5_YOVEpumZowSn+tsVzfxFMOL_V8}%v<`h$y>Z8YklYcBe) zjdr`}eHV4?*ToXzK#=vHkCEAgrt4YtTsEhtuuxe4xW`-2r!?TpOlfwM5qCP>ta2BV z!+O{xTAu2-)A|wed>1(%Q<%-U@NBHi**(#|2fJr|>pWr$_{Aed8j6;X>Z=ZFF%^vD>jXwA~Vg@a^g?z>fx~{S#$frn|rU@TlwHGPtxh9;(^=i;z+8O^& zVLU_eFkEV9eZmZSTa?`v{DOXST3$11*?0gWac0qIbc)`DlsN2r0F#JTAFzd)Se1r- VEL(@-n}3KVY~W2d@Q>1h{{Vu#>DT}O literal 1868 zcmdT_-%lJ>6u!H2DzH0+Wm$F!5X*Mv&JW7?V2hZxp;~DWOQ8`&V|Z|32Uxq^X?JIV zl{Ben8`2olhsM;G#-uUP2NSjFgT738QRAjYAgd1;lvHa>)evlIjHB_~nb`&Y1n1%2 zd%k<_Ip==ooI8ixX9Zh5S``tN_STRSgFVNz6N4ki$j!(TYDDmm=b!8wMr1B333Vi$ z%9(mbn=rE4%f?ua@F5FEgm>$0c)MXVd_Y*?EchkTAK37{vS)8aD#8nb4gWNd9p8xX zrcf*Hfc}TV;{r#X89Ykfh|CHDVl~k-X39+IIno;16L?Xqae;!CFdec8k@!iGKnXq( zJE4p31tYe?^}+& zgig9FZir0YPlp}(NV5$<>&jk}+0=9@GkK(P(uS_B-SI@`v@xx--Q%>a$t`k@2FgSwbBw7@=!NUZ$=^*bL){)j2it78LW6{P&>XG{ zs7*Xw#_Ml1jx5DdzX*R&wlZRIupmT!_XlBxTk~50qyye-v0<@n$)y4Pk=_V4ox zbctF(JjsTjw3`@tQ!^&CF(aQzvf}UJnZ{Ebv(M%WoW!4O=zxBl_n~xwLuRCElGYPt z!U(K49pXxGRbrt|QBkLr&1f!nTOE?qMIxJuETxaxIx9$gIb(e*8tnRX5tg@X>ILWp^ z*|z?|=N^=wCU6T*}DHWV%T9fZbS7R*30okm*BeAj1 z8B?^LQ&74g*AX*Yz^JisD(POJ*Xfrsqoi4Bk!*NSapcz44o6!?SuHc8t;#l|+pCf8 zSC~;lS)w)^S9o$Zujloome!~Bw9~I=m7oiH7$2HfRxy{Xm>G+#Mj|R(tv7xUF2QFC zs|g>u-Gnj6R=Eua{mw(b_0Sau-Sp6P5B=9ct5w&+Jr8y52b2-<=`ed%E@DJedOB@r zGe$O@#Qd{o;Vy4OlUjofm((5d5O*K2Vf9DkoIOoFX!%V1^Tul!=M=`QsLbYEbY5BE zSWBLF?(vpV-B^Tq)V1MJHAs@##LQL;vxeV#3f<=KhQ*i_w&8X3Kao$THFgC3FHojw z!Bs5U1;d;6CQ477R_3> nb}g6``vaSB0MT+E+Q|GJsXxH7!?$n!*DSb&H+z8pI~)E3qHNc0 diff --git a/game.jor b/game.jor index b3c38e3..83252cc 100755 --- a/game.jor +++ b/game.jor @@ -94,8 +94,10 @@ defer player-touch ( x y -- b ) : try-move-entity ( e -- ) dup entity-dst check-entity-touch not if move-entity then ; -var queued-level -: queue-level queued-level ! ; +var q-level +var q-player.x +var q-player.y +: queue-level q-level ! q-player.y ! q-player.x ! ; player :tick 0 ^LEFT key-down if drop 1 W player entity.dir ! then @@ -116,9 +118,10 @@ player :tick ' hello-world JOB send then tick-debounce - queued-level @ dup if - 0 queue-level + q-level @ dup if + 0 q-level ! loadlevel + q-player.x @ q-player.y @ tile>world player entity.pos! else drop then ; ' mode-move MODE-MOVE ! diff --git a/gameboot.jor b/gameboot.jor index 8140a93..a10c3d7 100755 --- a/gameboot.jor +++ b/gameboot.jor @@ -22,6 +22,7 @@ s" game.jor" loadfile intern pete.jor intern petehous.jor +intern road.jor :noname loadfile ; checkpoint _loadlevel ' _loadlevel ' loadlevel redefine diff --git a/map.jim b/map.jim index cbb112ae28a8f1a65c29ea0698bad270aeaa1288..71c915f8b0dfcc99685db60d157faafa6e821a72 100755 GIT binary patch delta 360 zcmaFM`ihlZp6jphIi&{^*^enPGcYrN03#5B!D9t>24BaB5KkXhh8__?2G)u1?+G?#c+ko%nKAY zDtu$kQW-qnR`q>n67_sWC2}yqZZtiCr0_+ez4+FW|*$$ KP+fTne^>yNf?iVq delta 341 zcmaFG`j(Ylp6jphMWx3R*^enQGB7iM03#5Bz+(k=24BaB5KkXhh8__C29}BM<#a_9 zIT^|mbFveYa#HOXcm&QVC@TJ8F$RjJ6lIpdMDK$|Jttc+%G9?g?q^|Sc*e9^be_;v zmPugVJthX0{VWU&&dgU?7AcCc2q-cDu`!Uh3CIJ?+GC#c+ko%nKAY zDtu$kQsTCN;)YlUFb)C~+y9vM{hX3A?l0WBSGn)Ab6fD^KAM3joo% BS?>S< diff --git a/map.jor b/map.jor index e86a0a0..b92e0f5 100755 --- a/map.jor +++ b/map.jor @@ -13,7 +13,7 @@ var tileselect array tileflags ( grass ) WALKABLE b, -( dirt ) WALKABLE b, +( dirt ) WALKABLE DRIVABLE | b, ( water ) 0 b, ( pavement ) WALKABLE DRIVABLE | b, ( brick ) 0 b, @@ -29,6 +29,7 @@ array tileflags ( fridge ) 0 b, ( countertop ) 0 b, ( sink ) 0 b, +( house ) 0 b, here tileflags - 1 - const MAXTILE @@ -47,7 +48,7 @@ here tileflags - 1 - const MAXTILE MOUSEL mousedown if tileselect @ mousetile tile b! invalidate-map then MOUSER clicked if mouseworldpos world>tile - 2dup tile b@ dup tileselect ! . + 2dup tile b@ tileselect ! swap . . cr then ; : copy-mapseg ( neww oldw y -- ) diff --git a/pete.jim b/pete.jim index e0772b5fa0d216a3e09ab3fcf83bedcccd6117cb..e2d70abbe567ca2c1d17d3cbd276d1ca20b0a717 100755 GIT binary patch literal 297 zcmY$=E>(V|CC~Uu>%0~-Lvmsf!&Z@hTAET!3=Iqy7`sV! xkO(_iy&yA0#~Yvy0iY-+!v>(Ksz6ggE`Fc}axtq;L25~=UT$Im!xp7KECBM+RrLS> delta 202 zcmZ3<^pLUsrdEaWLaplz3$@y`m>H52ix{?wY}L|~Vq$1uxWK?8z`(Mfg^|IU`6|m* zEfDLH3WMrOo|Rf(#5+_)B*a+$u4pI8#Lc?7Vy(@_qVS2ua$>8Zt)Dtb2M@!37IuaP9*}Ib mHpH}O?JBKl8X7=(kZF(AK&F*w7o?V?>g6UDFl<-)!vX+EWIF)> diff --git a/pete.jor b/pete.jor index e81e94b..17e92f0 100755 --- a/pete.jor +++ b/pete.jor @@ -12,13 +12,18 @@ car :touch player.driving? not if car yield then 0 |; ' entities redefine - :| touch-begin S leaving? player.driving? not and dup if - pete say" It's too far to walk to town." then - touch-next 12 7 2= dup if - player.driving? not if - petehous.jor queue-level - then then + :| touch-begin S leaving? dup + if player.driving? not + if pete say" It's too far to walk to town." + else 5 10 road.jor queue-level + then + then + touch-next 13 8 2= player.driving? and dup + if 0 player.state DRIVING f! + 12 8 tile>world player entity.pos! + then + touch-next 12 7 2= player.driving? not and dup + if 16 9 petehous.jor queue-level then touch-last |; ' player-touch redefine s" pete.map" load-map ; ' onload redefine - diff --git a/pete.map b/pete.map index 29ec624af1b850d2ba6a1314cfe1859d8f8d1487..cb3160be8d979b9ad1ad45e37f09f2becfa281a8 100755 GIT binary patch delta 13 UcmeBS>0#MW#mLAoxtehz02|^1?EnA( delta 13 UcmeBS>0#MW#mLAwxtehz02}86?f?J) diff --git a/petehous.jim b/petehous.jim index 2b12a940f908ee1be6e00efde9732eb712c03a70..89ca4a67740ed4bd4b28a8f67d43962835811470 100755 GIT binary patch delta 206 zcmeBR{=($_N~=`)yjB+DD=i)YC#_E`mO4BFU)1)q2r%qt;bLguVPLt+BBZ^ag$Kyz zV3?`3MZ;UYgl|6!Cy>tql`qm}Q~1PEFfra;5+ccsB)J$Yxp3ls38*BL39csNgC^bj5XAm?8>O5s0y_856ga*2WmcCpI8EP3Q|i_GxAG|^>Pyn7`7<= GVF3Uf?mFoJ delta 246 zcmeyu)WICTP^&_@O{world player entity.pos! :| touch-begin 16 10 2= dup if - 12 8 tile>world player entity.pos! - pete.jor queue-level + 12 8 pete.jor queue-level then touch-next 9 4 2= dup if pete say" The closet is a disaster.\I don't want to deal with that\right now." then touch-next 11 4 2= dup if diff --git a/road.jim b/road.jim new file mode 100755 index 0000000000000000000000000000000000000000..0afbdd811823e94d677abbcf90a91b2210a4bd87 GIT binary patch literal 245 zcmaE*RjPbm>ovnGEgk_Ut^F*F4Cht;s;uPs#IjGDN8pRvb%{zf29~QV#@cKOpI8jF zJxkP!6$}jw6mm0jQi~Nz@)b%lQWf%2D@uUu@;p6;HS*r-C4Bo?SQ+-Sa56OTfHVhd z?`Po!@_86$YHiVg$b6I1kZ6AKu& IDE(mp03)SK@&Et; literal 0 HcmV?d00001 diff --git a/road.jor b/road.jor new file mode 100755 index 0000000..687d93d --- /dev/null +++ b/road.jor @@ -0,0 +1,20 @@ +( O V E R W O R L D ) + +:noname + reset-level + 1 player.state DRIVING f! + + :| +touch-begin E leaving? dup + if pete say" It's 100 miles to the next town." then +touch-next 5 9 2= dup + if 13 12 pete.jor queue-level then +touch-next 13 6 2= dup + if pete say" Old hiking trail." then +touch-next 24 6 2= dup + if mary say" Welcome to my place, Pete!" then +touch-last |; ' player-touch redefine +s" road.map" load-map + +; ' onload redefine + diff --git a/road.map b/road.map new file mode 100755 index 0000000000000000000000000000000000000000..dd0d26e1f723006f4b2d206c2b9f7ed555307b44 GIT binary patch literal 2504 zcmeH{TMmRE3`Gls1-O;j|Kg_fC1Qo*-z3w-sL;c`Ey@QzP~S%01v3*V&WXe>0gyoI z0*o}}n?_5*i;TsH3Z)d&I072Dc<0099-48ld_f!@@vt}#V*zQ5DNw6ubXi?V-Kagv zmfJf%7@=F#PkIs^aZTknN8%(L$Ag5pFjwAk!zzp<{d4Y3@oeIlew40+%c!euA`VEe za@OzPH9~`0FuOwFIaOya-OUkKBeCu-R5BvH3W=~i?XH?#--T#L#5$QWh}g)N|06Dd zD&acJb(A=5LlQ`?ER@9gF@y*MA}TKkJX!si*0km7T6m-m);5u; KmH*^#b>It7%Pj8z literal 0 HcmV?d00001 diff --git a/tiles.tif b/tiles.tif index a988833f1abd0136cdca700d2625d158eaa3048e..eb2d365d887800b4743ce5e59a80583c38fa522a 100755 GIT binary patch delta 150 zcmaDS|4x2G8fU!{3eW=a)RG`#X=xyOky=_>lF}k2r8FP_@_}5CfKpNdTLPOJPyj>& pDVRJuy(le#4Wv&AL~AK60@ENq7%*xrF63n6IKaTr(7@5b007)zBtrlI delta 24 gcmaDS|4x2G8t3MZoL^ZdadmSXU|?uy;OJlg0Eg)bU;qFB