From 3d4ce1a21fca0be34723804a52676de7e39aacd9 Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 10 Nov 2019 14:00:45 -0500 Subject: [PATCH] add example project assets --- example/assets/bars.pcx | Bin 0 -> 2763 bytes example/assets/bed.pcx | Bin 0 -> 1326 bytes example/assets/blue.pcx | Bin 0 -> 4757 bytes example/assets/bluewall.pcx | Bin 0 -> 4436 bytes example/assets/brkwall.pcx | Bin 0 -> 6021 bytes example/assets/brkwin.pcx | Bin 0 -> 4885 bytes example/assets/brnwall2.pcx | Bin 0 -> 1915 bytes example/assets/can1.pcx | Bin 0 -> 1575 bytes example/assets/can2.pcx | Bin 0 -> 1575 bytes example/assets/can3.pcx | Bin 0 -> 1574 bytes example/assets/can4.pcx | Bin 0 -> 1574 bytes example/assets/ceil1.pcx | Bin 0 -> 1807 bytes example/assets/ceil2.pcx | Bin 0 -> 1786 bytes example/assets/ceillght.pcx | Bin 0 -> 4083 bytes example/assets/chisel.pcx | Bin 0 -> 4173 bytes example/assets/cons1.pcx | Bin 0 -> 1361 bytes example/assets/cons2.pcx | Bin 0 -> 1361 bytes example/assets/cons3.pcx | Bin 0 -> 1357 bytes example/assets/cons4.pcx | Bin 0 -> 1360 bytes example/assets/danger.pcx | Bin 0 -> 2080 bytes example/assets/diag.pcx | Bin 0 -> 4890 bytes example/assets/diamond.pcx | Bin 0 -> 2279 bytes example/assets/example.dat | 106 ++++++++ example/assets/example.inf | 459 ++++++++++++++++++++++++++++++++ example/assets/example.map | Bin 0 -> 50194 bytes example/assets/example.med | 517 ++++++++++++++++++++++++++++++++++++ example/assets/example.pal | Bin 0 -> 800 bytes example/assets/fence.pcx | Bin 0 -> 2786 bytes example/assets/fern.pcx | Bin 0 -> 1674 bytes example/assets/floor1.pcx | Bin 0 -> 3946 bytes example/assets/floor2.pcx | Bin 0 -> 3189 bytes example/assets/floorlgt.pcx | Bin 0 -> 3402 bytes example/assets/g13.pcx | Bin 0 -> 3044 bytes example/assets/g9.pcx | Bin 0 -> 2026 bytes example/assets/green1.pcx | Bin 0 -> 3708 bytes example/assets/grey.pcx | Bin 0 -> 5164 bytes example/assets/melt1.pcx | Bin 0 -> 2652 bytes example/assets/melt2.pcx | Bin 0 -> 2468 bytes example/assets/melt3.pcx | Bin 0 -> 2294 bytes example/assets/melt4.pcx | Bin 0 -> 1952 bytes example/assets/melt5.pcx | Bin 0 -> 1738 bytes example/assets/melt6.pcx | Bin 0 -> 1477 bytes example/assets/melt7.pcx | Bin 0 -> 1252 bytes example/assets/mine1.pcx | Bin 0 -> 5342 bytes example/assets/mine2.pcx | Bin 0 -> 5350 bytes example/assets/mine4.pcx | Bin 0 -> 5353 bytes example/assets/pave.pcx | Bin 0 -> 2529 bytes example/assets/plant1.pcx | Bin 0 -> 2491 bytes example/assets/redwall.pcx | Bin 0 -> 3479 bytes example/assets/redwin.pcx | Bin 0 -> 2728 bytes example/assets/safe.pcx | Bin 0 -> 1426 bytes example/assets/scont.pcx | Bin 0 -> 1918 bytes example/assets/screw.pcx | Bin 0 -> 1895 bytes example/assets/sdoor1.pcx | Bin 0 -> 2981 bytes example/assets/slime1a.pcx | Bin 0 -> 2897 bytes example/assets/slime1b.pcx | Bin 0 -> 2847 bytes example/assets/slime2a.pcx | Bin 0 -> 2644 bytes example/assets/slime2b.pcx | Bin 0 -> 2592 bytes example/assets/slime3a.pcx | Bin 0 -> 2160 bytes example/assets/slime3b.pcx | Bin 0 -> 2285 bytes example/assets/slime4a.pcx | Bin 0 -> 2363 bytes example/assets/slime4b.pcx | Bin 0 -> 2399 bytes example/assets/slime5a.pcx | Bin 0 -> 2609 bytes example/assets/slime5b.pcx | Bin 0 -> 2616 bytes example/assets/slime6a.pcx | Bin 0 -> 2385 bytes example/assets/slime6b.pcx | Bin 0 -> 2440 bytes example/assets/slime7a.pcx | Bin 0 -> 2476 bytes example/assets/slime7b.pcx | Bin 0 -> 2490 bytes example/assets/slime8a.pcx | Bin 0 -> 2797 bytes example/assets/slime8b.pcx | Bin 0 -> 2734 bytes example/assets/sside.pcx | Bin 0 -> 2019 bytes example/assets/stars1.pcx | Bin 0 -> 4432 bytes example/assets/stone.pcx | Bin 0 -> 2433 bytes example/assets/stone1.pcx | Bin 0 -> 2433 bytes example/assets/stone2.pcx | Bin 0 -> 2433 bytes example/assets/swall11.pcx | Bin 0 -> 1857 bytes example/assets/swall12.pcx | Bin 0 -> 1756 bytes example/assets/swall13.pcx | Bin 0 -> 1802 bytes example/assets/swall15.pcx | Bin 0 -> 1770 bytes example/assets/swall16.pcx | Bin 0 -> 1629 bytes example/assets/swall17.pcx | Bin 0 -> 2332 bytes example/assets/swall22.pcx | Bin 0 -> 2120 bytes example/assets/table.pcx | Bin 0 -> 1499 bytes example/assets/table1.pcx | Bin 0 -> 1358 bytes example/assets/texture3.pcx | Bin 0 -> 5423 bytes example/assets/texture4.pcx | Bin 0 -> 4592 bytes example/assets/throw1a.pcx | Bin 0 -> 2807 bytes example/assets/throw1b.pcx | Bin 0 -> 2633 bytes example/assets/throw2a.pcx | Bin 0 -> 2253 bytes example/assets/throw2b.pcx | Bin 0 -> 2506 bytes example/assets/throw3a.pcx | Bin 0 -> 2475 bytes example/assets/throw3b.pcx | Bin 0 -> 2442 bytes example/assets/throw4a.pcx | Bin 0 -> 2638 bytes example/assets/throw4b.pcx | Bin 0 -> 2436 bytes example/assets/throw5a.pcx | Bin 0 -> 2625 bytes example/assets/throw5b.pcx | Bin 0 -> 2548 bytes example/assets/throw6a.pcx | Bin 0 -> 2480 bytes example/assets/throw6b.pcx | Bin 0 -> 2545 bytes example/assets/throw7a.pcx | Bin 0 -> 2647 bytes example/assets/throw7b.pcx | Bin 0 -> 2483 bytes example/assets/throw8a.pcx | Bin 0 -> 2889 bytes example/assets/throw8b.pcx | Bin 0 -> 2765 bytes example/assets/uiframe.pcx | Bin 0 -> 6349 bytes example/assets/wall.pcx | Bin 0 -> 3393 bytes example/assets/wall1.pcx | Bin 0 -> 3377 bytes example/assets/wall2.pcx | Bin 0 -> 3393 bytes example/assets/wallp2.pcx | Bin 0 -> 4775 bytes 107 files changed, 1082 insertions(+) create mode 100644 example/assets/bars.pcx create mode 100644 example/assets/bed.pcx create mode 100644 example/assets/blue.pcx create mode 100644 example/assets/bluewall.pcx create mode 100644 example/assets/brkwall.pcx create mode 100644 example/assets/brkwin.pcx create mode 100644 example/assets/brnwall2.pcx create mode 100644 example/assets/can1.pcx create mode 100644 example/assets/can2.pcx create mode 100644 example/assets/can3.pcx create mode 100644 example/assets/can4.pcx create mode 100644 example/assets/ceil1.pcx create mode 100644 example/assets/ceil2.pcx create mode 100644 example/assets/ceillght.pcx create mode 100644 example/assets/chisel.pcx create mode 100644 example/assets/cons1.pcx create mode 100644 example/assets/cons2.pcx create mode 100644 example/assets/cons3.pcx create mode 100644 example/assets/cons4.pcx create mode 100644 example/assets/danger.pcx create mode 100644 example/assets/diag.pcx create mode 100644 example/assets/diamond.pcx create mode 100644 example/assets/example.dat create mode 100644 example/assets/example.inf create mode 100644 example/assets/example.map create mode 100644 example/assets/example.med create mode 100644 example/assets/example.pal create mode 100644 example/assets/fence.pcx create mode 100644 example/assets/fern.pcx create mode 100644 example/assets/floor1.pcx create mode 100644 example/assets/floor2.pcx create mode 100644 example/assets/floorlgt.pcx create mode 100644 example/assets/g13.pcx create mode 100644 example/assets/g9.pcx create mode 100644 example/assets/green1.pcx create mode 100644 example/assets/grey.pcx create mode 100644 example/assets/melt1.pcx create mode 100644 example/assets/melt2.pcx create mode 100644 example/assets/melt3.pcx create mode 100644 example/assets/melt4.pcx create mode 100644 example/assets/melt5.pcx create mode 100644 example/assets/melt6.pcx create mode 100644 example/assets/melt7.pcx create mode 100644 example/assets/mine1.pcx create mode 100644 example/assets/mine2.pcx create mode 100644 example/assets/mine4.pcx create mode 100644 example/assets/pave.pcx create mode 100644 example/assets/plant1.pcx create mode 100644 example/assets/redwall.pcx create mode 100644 example/assets/redwin.pcx create mode 100644 example/assets/safe.pcx create mode 100644 example/assets/scont.pcx create mode 100644 example/assets/screw.pcx create mode 100644 example/assets/sdoor1.pcx create mode 100644 example/assets/slime1a.pcx create mode 100644 example/assets/slime1b.pcx create mode 100644 example/assets/slime2a.pcx create mode 100644 example/assets/slime2b.pcx create mode 100644 example/assets/slime3a.pcx create mode 100644 example/assets/slime3b.pcx create mode 100644 example/assets/slime4a.pcx create mode 100644 example/assets/slime4b.pcx create mode 100644 example/assets/slime5a.pcx create mode 100644 example/assets/slime5b.pcx create mode 100644 example/assets/slime6a.pcx create mode 100644 example/assets/slime6b.pcx create mode 100644 example/assets/slime7a.pcx create mode 100644 example/assets/slime7b.pcx create mode 100644 example/assets/slime8a.pcx create mode 100644 example/assets/slime8b.pcx create mode 100644 example/assets/sside.pcx create mode 100644 example/assets/stars1.pcx create mode 100644 example/assets/stone.pcx create mode 100644 example/assets/stone1.pcx create mode 100644 example/assets/stone2.pcx create mode 100644 example/assets/swall11.pcx create mode 100644 example/assets/swall12.pcx create mode 100644 example/assets/swall13.pcx create mode 100644 example/assets/swall15.pcx create mode 100644 example/assets/swall16.pcx create mode 100644 example/assets/swall17.pcx create mode 100644 example/assets/swall22.pcx create mode 100644 example/assets/table.pcx create mode 100644 example/assets/table1.pcx create mode 100644 example/assets/texture3.pcx create mode 100644 example/assets/texture4.pcx create mode 100644 example/assets/throw1a.pcx create mode 100644 example/assets/throw1b.pcx create mode 100644 example/assets/throw2a.pcx create mode 100644 example/assets/throw2b.pcx create mode 100644 example/assets/throw3a.pcx create mode 100644 example/assets/throw3b.pcx create mode 100644 example/assets/throw4a.pcx create mode 100644 example/assets/throw4b.pcx create mode 100644 example/assets/throw5a.pcx create mode 100644 example/assets/throw5b.pcx create mode 100644 example/assets/throw6a.pcx create mode 100644 example/assets/throw6b.pcx create mode 100644 example/assets/throw7a.pcx create mode 100644 example/assets/throw7b.pcx create mode 100644 example/assets/throw8a.pcx create mode 100644 example/assets/throw8b.pcx create mode 100644 example/assets/uiframe.pcx create mode 100644 example/assets/wall.pcx create mode 100644 example/assets/wall1.pcx create mode 100644 example/assets/wall2.pcx create mode 100644 example/assets/wallp2.pcx diff --git a/example/assets/bars.pcx b/example/assets/bars.pcx new file mode 100644 index 0000000000000000000000000000000000000000..d27eba8655f1f272559560d75095adbe204576dc GIT binary patch literal 2763 zcmeHJA&jF~82%>VlIB9v&Zd_^R3H!)2m}H_axb|GL%l$0ZeHcXqD=F`{C`h!rQhy9YCSyU9&fY;v;y``-7yzu>tz`uE%G-){fqn{TiF`ZDQxhuzhmgPZ^K+ouh8SA#$B z%guNAJm>7sIX7N9aK0Dkd+{_XkS%;%iOx@8nQzJT2MzW-cLrLJFZcd~8D9nJEW` zG|`8)CQ!nUWKI$LzzhfhA8-K+plE$14~wWu{B_{WT_ZNf-dHtNNfU(>#{hc|D+`&9 zaD<5rV+c|lR@rtQEn+|M?Wsc@+So0r(mjqP_A9J1WKZXs7%-Z1-5n3*UAZYY#iq!M zJjv52iKkI8nR@obF>G^8$3!EFs)&-v3;e@sd05Q%S-MSTMHJ@2H1#Ht<4i4cLa8;@ zC?T3GE21d!JkN1|yZsMN?}OEQY+&{tXzxL1k7M?zvG*hPo^)!pQ!AZ=+&M_hT?3J+ hhD;?ed!E@3n37}4KC|m#$70){gALPSjTX(X=s&<2LDm2O literal 0 HcmV?d00001 diff --git a/example/assets/bed.pcx b/example/assets/bed.pcx new file mode 100644 index 0000000000000000000000000000000000000000..10665723fe90a66973cdee497e2a9dabcf9ad598 GIT binary patch literal 1326 zcmc(fA&lcj6o&tmTq&vy0s;&c7#IW?7#J8>>VN=)0D}Pr1_1^J1_lNO0R{mE1_1^J z1_1^E0R{m90ZEna`Lez{-|p%Z5UE==r`xJIX)6`3)J`mQReGT6d%xy=^E4y9H#3^= zzq{&y*$>QLZH_rGpI-(R=mqJ;UYOIDm&?!whPWcQ0=cSQH-8)a1^kb?$Ibr!c3a=$ z4%_Odo4abe-`;GiZGDH2ZRX)M^ASy(`LzGBUD4nJoB!PM2fSzeOUv)^j`6Q8zeCOV zbIUbu8GmW{7JJ6OwYKEmwGhKUgJiSlm|6`+sP=|5~#O|25y%XSU+M z&ai9Z+q?aS*Kt0dkH=%vG@H$)EX$%O(lm|ZI1EG2^K9ETO_LC!s;VSOf*>?Hb}Cjf z77}J6G66{sQ5OLZw}TM}%E171Kmq!|aaA;nY&V;(vUrhA+*U&twxsOn|;TSC=my$pvgU83QT|y@PH9OaXDA=G>@A!Tt)88vl4q4 z40T&q3|Y!>ickkwj*y#}4B)G<`XJ?DnQvzCJPFg#8N1Y_?6?(OdBmwgy~Hv{-uC5N zuvlLYr$hBnt*dppE{n2Ai!4r)aUA*M!0}znv4?a>45I0ptjMAyJ}noA`K->fO*$>( zNfC{+z>i&bJhFXCM?-@WVyLPn%d#kng7Bx;dv?3eqwbl>?mp4(lgXck{K?=S2mB-H v9QDpo>m1b1LE#>lWUlFRjl|U=S6_3Lz*RkN*Ts&b8hLq^c1J1OkCTL?94|2m~Sm5rJr` z)7=q>2m~S`A|lmvZbd|lh!_zuB4WgdCq_oRZyiYP%$;ZMqz1ar**|Nq{c}$8pFckB z8UOy|XZLS!Z|~sXpin3ji^X!eT&-5?^}6r-&1SRJYIQoDUavP842Hwucs#aGzI`(P z)8o7Lzx>|BL6XHm9HvaGLWibY@rA3}U-r_|TZ&C!aXn`o(DL)x22rYPwc}(M!jhHXqQs;a3hIow7 z!dcvCdk6OcL4wF+CMB3u;0Zx`ySHG2_(Mtn+6&SkOM)0*C2 zQP8YL7}GX!%jyQAgm>f2hzuk^81eP~#vZ7HST69qwGPx6UUKjWVFD)^K0%@cxEC47 z9d|*lEer&y49gneC)TbGV~G z^{@!D00x*1Lh8J4cyL{)sUp^~lmm<(aE1%=DEKbF+uVT$)LVDzT9Kq`LPmi&!d#Tf z8+*!#ri{uWCu;E}0x=9Emj{upVo2$^95XTnb&*(la79E%t9X@gG(yp&`f@W3>o85c z>^{WWQ+qkVHGlIjm>VlNK2Z0~TTc!8Qctwq5Ax>r-HJU4qEy&RPQSt0b99S}{H1DRXC|3)L zMTo+Lx>#i(Jrx%2NI99Jg2gyx@G)ZX>I#yMa&pMC2j5~@`YIjH6)~z5{4`);1a~w% zgz-qtFrI@T7nzD)^9i=lWJS3J<#xIPQ1#_X%(-!<6UanZ>Czm-wPqMXMD{*m!G^4| zk3_T(6==}cIw6Rc6fs#SRwV#Kyen#qvQJ^EIkgNf7?OhH1Q3*g*v9PwvbKe@(F_GO z;MMXfL*}59LtgV$42U6i6sy3wB6K=eT zNZth;sOlZIvxO^fB7+7{u&aRBCpP!Wg1TSc#E_;vb_qnyFAK_(>O`4BjvA0(9I&q* zmNkNm$uw%pBVCGy#-LJ3Cdm(C>OMSy`yaP1S1m*%HSz(|Y8RgLfamwAAgh|cKV7w7OoYRA2M-F%h(_oN{DtFI>Vw z^p4U6u4GLf6=KS@Wq03V3*z|@GIZ20WKRbh;+mi;1(b8V>!`yKVj4NxR0FALcekyG zGaGrfU=!rv0We3JGWYX5(6&0|{q5I(M3Y&j4L1dKRW$&fTE z4o{+AQ$*7S5fv7Q-)8~au76x_i(JZqQid3mkrre^!n=a}dlb;r>>~5aZHwHKY3bv9 zdy=Uflxq!hC74cd<3K6@$7Kuj62f!nYKoky15$UFR7@`An0B*nEBSHRq6jpgIQjU3 zAPsIt-1eyc7zu19f}q0{q}!X83SFsHjN8DWbbH>@9SDEiwcPpg+g(eZwSxs$#-d8S ziP;C)g?i;oGmLKxJ7!$E112tua0D>ri43coAYC0VvP8SG<7`NVC5(_qye#yK2@f&X z0+~kzC4Eq@!nG?(&MuJXgpex)1Vm>Ce$*$rh^R+N8xs%k7$GPvP(J(sA27RXmW~dM z8A^#=Y^vmlBh$2#*84TfmH02$EU>G56D|zmi@M;vPmpH~)gA53U{L`BeCP|C{HJP3 z-utZie}hLcN`vU&9Y~sbAJ;57-_4re2haOG3l??6{BqBt%64-`%?`|;hYlcb3^0X1D3L{Q7aNTCbF=rJ_xK*!Y_bzu4f(diU13vDVU>p&iex zF|pdnDt#+;?C8V}ecP{2?rnTy!<7xLtT(sr%-Rz>8Qbxx`F*Q*tlF~5v6UKjRJ8(t zUSI9$$!>1!^3tYLJ3X~_+kD?H&1Pm3vyoZftYda!=G%*X&Fyh*>(IifO;7E#ZEfHD zm)!1Gc0IS*#6|<_w9Kztxn$kDx8vn&?c#Ik?DlZ5-0#f1=Gf}}mvg%x*>&G8+BQD6 zUd@^%s}}64-?-@3CY|cARqi)SZNGS2E7U88W*25tv$5H!S+{d^@$F=A zb=sMAPevz=Zll_)lvdtb=)InMk0V?4Y~HeQ!@6bj*I#Zf@2}3UXXE*}e>P|j+R$BX zRP)k&U7TJOMzh2I_@F)5KW=+9-%8J~Uml+y?;h{gckAVPIbVk7^V!+?WOz2}4+ouo z_oRK|H~o5}Ua3}!rQ)}n)tBq5r_1nuez88EE+=Q`~8<)J(qSrg}+DG0=!SfHj+JX1{_50)V s*Sp8(^9juASw_Qh?(A*Swsb* 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 literal 0 HcmV?d00001 diff --git a/example/assets/brkwall.pcx b/example/assets/brkwall.pcx new file mode 100644 index 0000000000000000000000000000000000000000..82e142f02fa941ec83849b3245ac981ce7b994f1 GIT binary patch literal 6021 zcmeI0FKp{Z9LIl^JgJ%r0s;aG0t^BS3=9k`%^<)aAi%&NAi%&NARxdXAiyBNAiy9X zAi$s?ARwS1pze#bOp3PdJy%VofIcbUfr3pcthC+vPkiUtPTReqt<}l){d~Xs-S79g zublhwhqH4)e?OuB=Pr4 zk)suSPYa6umoLb76!)8-a9({6M};CResd6MV@Hi zn1VPnh$K8yl&AbB91}SX$Arfb8NpEpeNpuP)P}rKb9nx3_#D zNe0Kq<6^2w!ha_SC;PJ%IL$u(W=!{G?Sm8QoWXL&4#;?`U_TUUG~U68$wXTNWyZSz zt8=U+=x_o5uJompW-}MRSSqL(&+<}@6hEGnP_CHCy&+S8>9HUH)bmqlOXs!zv8&-TJ4HuC)KKbc{!+5y5+K7 zDybJ2_49L)VQK)oYxiz8UQI{WV`(6wHxX*89VA~$8RF7P5(A-4m*?_VP7yRG`%ms93U`(OyK+6Vo01XrB z9guYpHQ<}T)q$1Zl7|WkXupTe1{MpLOu(|B(*aclS%wLK4KM)c0q6i4Km$OA9XzdI zJ%{-i#uiu|=%}E|An#UiGlMG!>;d!)(3&8NP-CIBe672CVRXm#ugiveq1lXLf~fC? zaMOb;9Y!jcb!ZEqu)tSfs!OAmFwppJv!*MoDp%`5MdZo=BLEA)1n2;?0aO451@!G| zc;}ec17q6J>{g@KkXjP2aO{kE9W(nOv+lvH4NenG30gIf=i9~PW;(pGO~=&xhH9uN z-MqxFSZ7|frj?#u*3FV?T+~%Ykb(90+qJ)5u9x%W+?~6QJ03cAe>mv&dwSQ<^j1S{ z$cijVBFA%8w)$-`+g?pKlktr+nhz~^&>#1@L&NB|TU}LcHxw0}b_;^YaU41WuT*w2 z<4eq1VwNH^7Z{gk#vC)^7^}vZEYqnn?Mp_zWEvGlE;B-j@t>a8{?l^p&zCEAem!<) d_INTFj?BK*>6&fbP_>rQXiBoo3&QK`>)+jI1mOSx literal 0 HcmV?d00001 diff --git a/example/assets/brkwin.pcx b/example/assets/brkwin.pcx new file mode 100644 index 0000000000000000000000000000000000000000..37ec6874154e7b74ead1901ecff04edb9ceb6a10 GIT binary patch literal 4885 zcmeHLEo|dR6#gptr0P@<5D-uhU|?WiU|TaaXN|CPGy4q9FH^uQmNHy^?F?p1WA$d88n{=w((H_<&?qMPf_(Jfn|&(SuzKVExu`ynPX6eZDqgjQmAbjRqui{j`DwVZfx z%pPLsv-{088rL|YR#EBXN$RPV|Df-~Hu|z6g+9|+-qZ5uJ&EA`#{-toI?+kv znwFP3%N+9l?)H*i8ZTNheGJA4m(p2&q&3l2)|lc#?fpX0VYJ;PUcR?yOEi^rQx@cr zAxxq(WpVm`joQS@QJbh76A@~4(w15OZ~KV0(i~BIoz_!K6JBNfdV5Pr$93k>AB0Q! zd%~*}?aaH6HxEb|NElb@AxPboY-0FGW&Xy{!|~;qrrsskWYSDaZdZX_HgkbMhH@%f zLY;WWqLsYA%85kw5Nql)GkR69he0T_m}#L*&d1V~f4$9Fmd7lUVKB+ZePR&F{K>Fd zXS+cei(C`Sm{<1*27yF|slS5PHq%#l{DN39V}Z!w=- zucDCpn-z_=h~-=@{QJ3vey*YXJSezYaGBxm z!Jb!I7tB7E%9i)F(%Apq8Y*SUZ#apLkO>{`j-_3OM4Rq8Nue3_JF=j%KK6{F=p8c$ zVs)pnD^4_0e`6MODEV@}k-d;c;J6vki}unE{EoaQm#4Wj%Od)IynEFF-)Q!9tee&A zH#VAWl{xbBzIBxQ))~3O|IkMO&+~lW4}xGanS^0Do6Q!B#d5h^tyY`OCXVCXZnxj> zA0Ho|o}PF?cy2VlDawN^$C9)X#Y;iB;Q2|t?w_B#wVGY6nw5%vcGf&SRX9!nc9-GJ zY`mI|F2}=}KbU&`!0Gw6>6%8r)3(}LM^oFX(v&4d6ePY5_X*Bd*jrc|bgy76&<>%E z(e%-9A@?Dg;0>I&P*rgzxmR!&uxGHQ=mzNc&|S0~G<#4@COyGIw^`PreRZIXMaDhHx0tV0mRP6Au!g`MR7-J7!4?P{a3U#-_)eIK_d>4HS zMjNUEfk$Wg+zj{f=!PF$R;}>N@Hx$aV(x~x>f^%1NQcuzSBAzzs$pt2MjhETB)ct` z8n3JMrd(6RDlh^(zyW$d7tjHX81(gGcoR66t~Ko$ey7!MH98GR6ZskUJm&U8Zr#VM zi=YjsfsO!mzFkbNro#*02^@1^>6T8yEj6SSAI$6CwAS~lrc=?av!>3;D)@N6UB~O? zdO2Ut!+98l<6+?`otEBGHC1USq9oS&`q#y5dokTi##g~;KJ-F&Fz(w! z%Nle$wyt+unohnx$+9AfBKam&tL;=SZgA@cw^X>f%!Lv+7P*ngc>?F~T(8b`&pG{^ zYt=Zl%E=Wjet2BR56g8tU#`OW%+;zW|!R BXx9J$ literal 0 HcmV?d00001 diff --git a/example/assets/brnwall2.pcx b/example/assets/brnwall2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..d5f3aaf924d7f3ea8aa671397aa9bbbc4eaa3a1c GIT binary patch literal 1915 zcmeH|FN~yC9LK+#ye5-o#E21y5eNhV@$O2yq$TMSBM=A#0)apv5C{YUF#>@=AVwe% zh!Kbp2n1pTV#J6M)7}ci=1STXBUY@aSUJg+-Meis*P0WTG)>>1?=QcXyqC}KmzUq~ z>#wdR7{`y}{4gey$!s>`IF9FeQ4}eqilQ*aG)*%M!?G;LaXilpf*^__TrpgMT^(O; zf2MtNt^T>Le^P!>KNaQl{doB0^yl&QkM=wDFP;(XQ<`VOF9-Af<&SWl(EdmI#}DxL zEd55W$3=%%-+uR^uYP&`IZ@+nV|E+d-rhC?3N9=LGyMBu4zZlkZtQ4PBYLX<$ zvMkT@vMj5rs_VLK+pg;lhr{V~>id2ehV%LS@bK{X_$Y|tMOA-Slsj4ODLqKiP87F- zQ1X1XSi~F`%;)ZGW=^Ne$wVPU1cqI8Qx}KLdRL@%w%R0N9{E||#;z6GhG%HD#tfz` zWvWOb6?nvti0%>G!aKp)!)jqv&2)KX+=m5ijy9165ngT_F z#D{OfWMIPq`x@IES&YzwWq>IV1=!tXS)Jwejj-Cyy=rP@M2n!fLyCQft&6pZXbDG# zCV+C-xa!)LV~Ylc=xTz=_@&G#(i~U=2@nB3-~c9|jX?L?^d^sXvA6N9%+^C)wNn5Ls^=Gfz8S&<}Z?0g(IFw(2!sFF@0jZ7*^3W=;Gl87V{h|d#eLCgiw wIl|^do{|3U;n?4G$G+(fRkJIqIxEUJT}P|L45J`oWS5%EMsL_|bHL`1|B6@ecSmM~Kh z5fM??%uGc@L_|eI7b+^c>=%J8yA@wleDTGKFAKX_wPMwXb#u?-&BfhH)Ho z&a*5lilQvbx~`k1Y1_8%`(YT4$K&~Y9>?)|z20uO*Vos#w>L?a?}qWGu0LzqsH#Ur z*~{`yl4?;bR;yGH;^i_}EZBT*&Sp9xGH~5DPi=MFZuV8)7VB-6lsqcpAPwBab3(`R zEb36*)Kp!ORY^qp2L6Khg76Ig0Jn$Jz^Y&tFj8m8m5n9ETul$)J>nMO7Jdn@ z083$Wm=S0I-G%BvF(DaPsSu`vZa19I=zG*PvJ6oK#y}}*pa4=J0Rq4UY=Gj5=Oa!X zx(Zc>EJDP0`m^yteje=7Mt4Y!e7cy?kN zo}pTb)RKEeZaFz6Xnm9pxB*WF?Jj+N*yg)}mpoX9EM$}2s-YgGvJ+FIYG? z8PO=D@pd_lr{OeoL)Uao*;IL1tn)NpCqW##foC(DT2wc5MO8#eeCgZEZhNk)L%Hel ztV!2Z66ayK_Pv-f-?rEkJWbOTMVaC#2v x5nCX1NwftSpI=Yo^Kcrw;n;Nhs%eX=PV)_4XHm@kAY`s**^WV}s%iK8{clIPZM^^h literal 0 HcmV?d00001 diff --git a/example/assets/can2.pcx b/example/assets/can2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..9a85a76950d0cb3504ff9b6b8e8641c81299ca0a GIT binary patch literal 1575 zcmeHHA*kb66g?l_LRl&*Dk3T}5D^iEh=_>5J`oWS5%EMsL_|bHL`1|B6@ecSmM~Kh z5fM??%uGc@L_|eI7b+^c>=%J8yA@wleDTGKFAKX_wPMwXb#u?-&BfhH)Ho z&a*5lilQvbx~`k1Y1_8%`(YT4$K&~Y9>?)|z20uO*Vos#w>L?a?}qWGu0LzqsH#Ur z*~{`yl4?;bR;yGH;^i_}EZBT*&Sp9xGH~5DPi=MFZuV8)7VB-6lsqcpAPwBab3(`R zEb36*)Kp!ORY^qp2L6Khg76Ig0Jn$Jz^Y&tFj8m8m5n9ETul$)J>nMO7Jdn@ z083$Wm=S0I-G%BvF(DaPsSu`vZa19I=zG*PvJ6oK#y}}*pa4=J0Rq4UY=Gj5=Oa!X zx(Zc>EJDP0`m^yteje=7Mt4Y!e7cy?kN zo}pTb)RKEeZaFz6Xnm9pxB*WF?Jj+N*yg)}mpoX9EM$}2s-YgGvJ+FIYG? z8PO=D@pd_lr{OeoL)Uao*;IL1tn)NpCqW##foC(DT2wc5MO8#eeCgZEZhNk)L%Hel ztV!2Z66ayK_Pv-f-?rEkJWbOTMVaC#2v x5nCX1NwftSpI=Yo^Kcrw;n;Nhs%eX=PV)_4XHm@kAY`s**^WV}s%iK8{cl1^ZM^^h literal 0 HcmV?d00001 diff --git a/example/assets/can3.pcx b/example/assets/can3.pcx new file mode 100644 index 0000000000000000000000000000000000000000..d8c0bf2ce9c594272d6f810c356ab574009a479f GIT binary patch literal 1574 zcmeHHA*`cV6g@wAn>3q>iY9}oKp+rgffp`LeKp+qZ1cGEMNQyv^83Y1> zXtK;q1p){9%h*E zZlW>qoAE&L@Xe+#hJS(YIv4z2{f!H%H=APfX7k%^^UJ1~lt1xD_1CoDet7@+)5qr5 z=HsW&??1f#A^k|=>rTw4zRqT|#bUv69MAKjD9W;|sw$<_FbvDGY}BR;)p1+wtE|n}+cYZUAP>F7vm?jyEyFRW zMO9sqRY{Zu9?2`>XM`8{XSfI0J*);s1wDtBK#3rE5NxbWEGg!4azNZ8Y~gR=mT+>g z1ZE690QI2SkS$0$1Pv=0+;q_GhVvPHkGe*hA_%}3C`AqAKmtU72iSlKP+akJ#HmA9 zp-Pbk2pAXzy&iFBu`7`$hqX1>36oscotG}u%;MNuV5n(D}LS4u{WoHR11q*F*ElS(3mL{gE&0ttBHt_WKZ wlOuFVlm!`|UQXlFa2mVe*mV1gjAod5s; literal 0 HcmV?d00001 diff --git a/example/assets/can4.pcx b/example/assets/can4.pcx new file mode 100644 index 0000000000000000000000000000000000000000..aad309a370db8ae427c7d243f859df31f4ceb046 GIT binary patch literal 1574 zcmeHHA*`cV6g@wAlQf%(iV8#plOPaefL^o zd7?S-yYWEr@ZF|=4Sxau>s;}*{1aD{zmE3X_qAQy{QcWW`5nKNe@y$`#}8jVe`(vKwm+ll$q*V$~gSS$oV5JgdzWmQ#mU8j_qrfJ)@<2at@1wjx+5$8Nj z(>%|MqNu8>X_~fe_xpX{_ovh8a=8q{aJ${caeR4sd3}AAWch9w-*o*+(*{*NDat{X zcal_zV!m1>f)Fj2{$j!A^Yv_|6Cwk*L-W{{r+RxRvo_z1A0 z^|hwzimXZ^l2`C&L{|hCct<#U*bU4Q>l{V`Er#Mlal;O1Zn zERJ;u>O*&++ECVz46IZL(?R2i%LV&AstRd}Fa%?u6cvyI2@nH5-~bjtal_LI=MG(o zGDR99WMCBZcEYj6u0Wn34&d0JI%ElMe_uDFwtbW~hh@;rot&5)x_`@XjIr~vW#DUg z8cYeQfZ8{GK5(=4(bY z3TYUx=i%I+`>yYrt|^)_EAma2M4Q-;0>^hPW>J&shOVfJD2dPe_PVPtRe3D7U6wY< zri`O32sWM@G3Hq&n~JAtx}qpk9R=Y=$zYJPL3*8Z8fjEgDrBpWR3=;^p-8+HVJl(@ vgf5A;Aj8wkd3fs2L)V|0?oc*uURFuA<(o8&xaSAVaZSrMC{;D>e!u?>AyaHM literal 0 HcmV?d00001 diff --git a/example/assets/ceil1.pcx b/example/assets/ceil1.pcx new file mode 100644 index 0000000000000000000000000000000000000000..1741ac0430f03ff46d51c8b09dbf5d4fa70c4ffa GIT binary patch literal 1807 zcmeH|A&jJ05QhIr-X)z&i%zBmyW0YRKp+qZ1j#*tKp+rLAP@)y0)apvS|AVzL<0}$7OT~Y<2at@MNyPxSyfd^sbLtFW!bjvx~}j0VHn17j5~@u(7W+l_7A>a z?(gsa{P6qx>*2#6A0Pg5{iiW}{QT+RTikblhEFe>;eFmu$IpJe8>9d6ID8il|0e4n z^kxp{vz+PuA^g)c&GWn{imIyWx^9}L>$<-0hhaFM&(kzrE|=@|`uh6%_Vy--;!V>& ztLn3&OtL&k(oqx-f>7~%zS$%k7p~XdYQ>gIeX&pp5rNCGer(ENzdM#$lW+HFRK!6Z zdWmO8j^$g1V^E8#x+1HRC<{E2H^eUppWvV2o?v&dY8WN-99jY;g5*K4u`#ixSjx!> zafh&hzlU4E$-xqsG4ue`gK9&zAn6b^Y-DhALDwtJXLKE^3TcWU0ArvO6_5i75CI-w z113Om!SjHzMO&gwkp>7D7zMoyI5jvF$P+|9YztI{D8T7&dVN)PkHYr2_Uomc6C;M| zT{4^^96an8VjZpmLx9X-?`bFhzdjn0)ePNAP^OZ3Pc40QGuvHASx;l z6%`c~6&1~Fcegj&-JRX*?)5IcyAc&5Mw}Sg+}(rDZrj;QE(;|5_`Uai?|XlK;qr%z z66pGo?x(9%Dpe{Kp66?|nkb60EUT)j>$+hWrfJ%??KqC-dA{!lL4XS#7tk-3U(nzA z{-<0n|8aHs=T*6UwdJlZuYTvAEjjkLw>* zec^mgOu&~p_P-((@qaC-2=tm`*SXuGKzuA{-*D`bV_zT9MIlmmg4!9Q_yU9I2f60*+FON}48f8ktmiZnn={aHiCN`NV=85bg)7yfA zb}3mhzdQ05=Ier%oG3x^AW5H|l0EQK&2OGT3d2)3|Gxac#-6nMhP$THP)3vv1-i+_ zK6RG_6h%7(rA$8MPGqL{d23JjPL{=(94Kgbh?xe3a8x{ErU80BG$+N|6pGG+5C;j( zVboB1NZYvs5!2i~ul0eIqJMZwk%Ck6&Y^@`<>nI!Uq|@oy!M9~pr|yMha6~f&iua) z49z)B#F?$2J#;5Ob#zd_>!e3f6vuIrB>jFr%d*jEG?`3hv)N*?Sgls;^?JMA?smI} zhlj_?I>Lg zdegK!iaUd-odm7ecSF~1H%-qpnuc!bYF&|4NtA^e!bb%6@Hg;QaOSWlFf$k_>M^ts zN*j_3!A7+KPDfb|=Ljb7NAL!45;S92AsPYdE$A*(8?p(h4nadz22X-^JFHfiOwjKm ziqLAovY_ke12GT+ZNLR=paJOE;%Rags6p<1xts%U0^=KFhLxm?ZGyos}Kb= zXZw1#Q+l^TXUch5*^U__fa-3$n71)>(X$ZL;V3W!$UFwF)@v%EE&HbE8iJ+Q>I$z) z9MA(IAOKo`16Y7Tg6@ai+a#EV-k@d2%|^SSH8t6ggb}k(nO&DzwlQ*$m5Wza<-g}XX9*~C0W`{ z;!Zd8J8jqZY`5948oHsYnkvasO{m>ZMw{Va)lcV1Z`_Ttu#>j^uIF`}rf*qJ!?5TV zqbRB*N%Z64`K`{ZHD;+XGnE-DOeQm_#PlR45}80?S~bS0GFFvo@QlteN`+b9JuKIE nv*mg`TV&&DnvLSLA9i~|Cu;eD<9e3eG#aL+>$0Nk_xpbV?XmFd literal 0 HcmV?d00001 diff --git a/example/assets/ceillght.pcx b/example/assets/ceillght.pcx new file mode 100644 index 0000000000000000000000000000000000000000..28a560aaf2d8bed34f479df1c20202b4ef84ac5f GIT binary patch literal 4083 zcmb7HEo>rf7rmRzn=}MbQGsX^1OkB=fk2RaBM=A#Vgv$#Kp+qZ#E1$60)ePNAP^OZ z3Iw8}0@0ayhGAQF-+l>VMa7DW6)QfmvdO;ZJP!rh-Ea5ZHdA1p`*ZHO=iZ@-zup}Q ze*S~sGJgN~=ba<({@7{n;4l5q5BxCXrSM)wQ4~ga_aXLiBM6N}5Jr9w`%$puXB7mY zf=#f5Dg6~raPiK4tZl>C$2~vP_95+kScNL`mxzf2T*il4c^B6Tz8_+|0~qAd*cc6# zp<429Ku?8R%)a%)rzPwIe~IY4OC%~<;#L>{M*zQQTPOVWDJ=jlQcK`RWSt+y1R)Ru z>naYnUh0Rq8hhvi74jmZ4=+@2Fo!CBj|u`*%t++*$M`_uYhU7qH=rP1u)G7qkX#ud~f2UotNOq9p2UV~P9Q;2Kx)6$GFeB5UMT~y{)LX$F}*Nm>=ING9Vj?X{A@mqZZR=91W&J2 zgFx5-MhnQFh?7BrHVD3(5_S%3s0iMNea3bILB!(6i69xD1xe)Bvq1?VE+<}J5vQAs znptDlf<*HEjM)%@`7s$#7SL!P_(t4*y0^N=)H5=LiR6c~WMW^xzQ6U+Qw}SpH`akl zB>#pz;$V{oAPX@Og}DGozr!b8iMfM0g3t0S`o4sp*?627W<=MF2kiB>MXCUZqO1SE!5flcSW4rT}iA+0m``tP!1At?%v1j z3pq_B_deSV3?FV2vJ@yii5WfJd%UM?V%p)k!)*X4aEta9E3`XCN5~W^(fndR zDRgZS~J<R zu^Y6HR=P~!3vRl^^sGI49pa&-Sp@#Xs-C|4(|MQth2yM zv&-k6nNbcp)e)`3d&DA!7Y2D71Bt)vL&S})Yk@Yj7SKnWK>q3u{o)gRUnj8H-6+rc>6PkCe1ZW7@7(q`LzgXz634ZwTpbH_oN;V)2J-N(H z%m9pzfJ*3Vv+Do{hk;Oyv4g<(I)6Lm4~T)tF(B|2b%V(R&6Dky`ThvP0KwF($h_G` zM)~{cj=0;j@}V=7h?!@NJMAxVhHQGyIlDO9>YvX{EPh(!`nmGS``h_9lIKo9TzYdU z^PAM08PKOtrP&1hI(Rq*1RE~zUNNtt`C$l0l_#x>v28|{BG0ptbb zhJPDf!;0T)jqk5|rtldcBzryL7jk3CLOFc-e`%3vlP2+II^(b2lIBH(P4o zDG&<0@ZHYFgPDXs=n@$*(}9Y$x59Y*szdvkQ0Ch`5WJoXg^iBE+fIQ(-2EJwDf#_* z690T09UUDXAE#2ObUK~QW^LOp6bg>xl*{F6wOXsy8jVJ))#`LQp6B)Z{o!yp8jU8C z$#goM&1Tov*NeqMDYag&H=E7lRZL3`FCY!y= zWG3nK@bt8oN_9?7n#ad(GFdu0Dp*!lohkDfT4am0VLYH94)wi6cq7 zcPrktbY{}Jl*UNvLvedj@ubuirzwS+*j34uBvX`ATT%e@^d#%GTwlv%BK^L!+v2+7 zI5H6#iu6RfB2AH+NJYevNBOK|HJABV#(n9xrR|FAi1VoAb|zON8TO>xl3G=qf@CvN zUp$wlPx*_7%=yhpYnrSLt+FSD=HozayK>c(3s=07H1bl;h@FzlX7Qq)@73&1HQOv_ zTqj-1rwX|fkqeQ&h$qq(X^6POe_)+2SA&OuF%E zx-x6Xs48Aj>REB-pROmjmxHUJH}ab2Ew|-@Zo6o!%xIqOU#7allcsm|@%1)tJ$l1AcCjI4l_UYU#RK)W;~q@$CKXR!aMJ`J6@yNa%=T+ OrCM|xJD-1ke*Oop07+H= literal 0 HcmV?d00001 diff --git a/example/assets/chisel.pcx b/example/assets/chisel.pcx new file mode 100644 index 0000000000000000000000000000000000000000..443bb9ebdf22c72cb8435c97f742801dff731b87 GIT binary patch literal 4173 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 literal 0 HcmV?d00001 diff --git a/example/assets/cons2.pcx b/example/assets/cons2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..7ec3784087aa328e37f1f75ee456d783becdb322 GIT binary patch literal 1361 zcmc&!A&lcj6n!gArKk!B2rvlnN(Kg&Wwln%r?b=n0R{#J1_lNO1_l8J1_J^N3<3-S z3=9GS45E{PK|nx2?$)`BwAo%-1+1#5+NxP;!GeN?k*-d4d%eOV?f-u?f8NvodYbu~ zZ@;-{p|KwuHyZzHyP&xE>Y{%NJ_7$ie89cB#RsT=$m+}Mb0WWEwS0B?zFBK|%|65I zTE2WMzxmk2Tlw-@{>)s-SNXfwUy^d2uU}t1SKfR{-8`earUBbMpJYpZb8NaF>x_ItKdF0`dH?-c_5F8S{Dv3nA6~rt^?y!&!S>bPLT+B&;Ai}<{d@Zf?dEA) ztyZVg;W&=xc~KMojI2?}0?oln z`i5XrzOQnc)CI;s0x)0zcz})b_dp+Jqg}=paWEY?scS~2?&^vm2_-q@2{K@vT-#^ig=hu;V1}(o*UY> zXBu`hc&e&NlGKbN#~moy>tv&orA8{16bi{DGL}dp5+;xVPrM$nd&J}j?Gm*^_IHn) n{oQi2uav)y>2&%FLZ8qF literal 0 HcmV?d00001 diff --git a/example/assets/cons3.pcx b/example/assets/cons3.pcx new file mode 100644 index 0000000000000000000000000000000000000000..78dbdd579f9b4e90b2556bd8cdb41495c1c6db01 GIT binary patch literal 1357 zcmc&!A&lcj6n!gArKk!B2rvlnN(Kg&Wwln%r?b=n0R{mE1_lNO1_l8J1_J^N3<3-S z3=9GS45G@wARr(hx9jai+H7xI8LXZjcm&1 z)rqQF$Uh;U&`-)d0rGnMNu?Oqm&wkVVb6G+pg>Sz8?euV=Rv2BuUaVozLfao)<;2TCFyl zO;uI<{l2d2!{N|0&C}D<^YgPHibq}lThs1UwN{i$lGdWQ6ofg?Cxb!6aY4WD^?Fvf zJM45cLPX%O&TosXTFlnjv`8k4I850%3B1U&L&x+@!!f8ywV|qLlBftgqGzy21b6WF zaJR5mFmo6gh6(ftY6!`LU}G>spQ5WoTd);^0{#MS3MYXTVZ<;TgL=?xC?=#K1RVnf zTq~$)u-{{~!hDW6#&`_N0;QM(2@nAx-~l!;0w@l+udpjoX2@d1V~j0W6!cJGTVR0xGp4dJRV1SlL9o<4Kb$W{VV z^bEnG{7~gIsSnJ67+}B{Z~+UauYo=;r?)9vNB&}LC(bAw>5i@#l2DLiMw%(vg(zI4 zCYTOK1TF7Y^X+1~OjydiiEsH+r4Z`oZddO%yG^+% z^DyMX%tLCFYs;88CfH0P)*k)MdAhiaaG(c7yEg(O=sma&Z9{d22IlBBjBIqpD7t&^QjHX12ak}D*W$V?)!NSHvzJaGra8jul3XrHJ(Qr|!A n>if;EE;m(PuCu&IvUxO}u}M4*nCtnL?HD6dr&LkZ literal 0 HcmV?d00001 diff --git a/example/assets/cons4.pcx b/example/assets/cons4.pcx new file mode 100644 index 0000000000000000000000000000000000000000..a7bd781941973c53da43245436608c7a4ccc0865 GIT binary patch literal 1360 zcmc&!A&lcj6n!gArKk!B2rvlnN(Kg&Wwln%r?b=n0R{#J1_lNO1_l8J1_J^N3<3-S z3=9GS45E{PK|nx2Zr8h)(`I|yDqvMb)t)XZEm%;nFw&iK>RwxTr2T(J^Yz|5&C|@+ zeE;1^3r+moq|xLz#|g#BH;eujd;1j&cspl6~>(N^LW*c@SrU*A~ zK6cgEQ9?`f4Z)^-U*$BZ3ygsTV88(I02{~Ofj-PeHyK;R!F1rHt{IuSt1E^il;n_; z{fMk1lpZn*OouCiR=4xXYC4*wEMxvKumiifZbesWA*=Xg%0+3{XB|6e_idt52;2Sb zdb?h(m({W=sv;}$QI-xzaX5_pFmQa=v`uPIP1htv;syR;Uf#~8n@PUP#?>e(;$a?z zqaYZ1ZfM({Y1mEUsj4PPQqztcx1(gMleJEk8mUxLC?uE2SR#o?m_P^hRGmgo*&qbYnYZ!siLZf!{IZmZp&N% literal 0 HcmV?d00001 diff --git a/example/assets/danger.pcx b/example/assets/danger.pcx new file mode 100644 index 0000000000000000000000000000000000000000..a661bffaaf064192adfd91192ef387eabacb2a53 GIT binary patch literal 2080 zcmb7^A#CGF6o%hwd}>uytE?1YS&bB6U|?WiU|{JC0t^BI3=9GS3=9GS0t^BI0s;&I ztW!WhfI&e(KtMr2Ydek8y4~F>D`i*FsXj%g>QtQ$6y~lsGfC6*P7BtKllQ&(-@Nx` z#yR@w-67!XXMF#H?;pP2Y4GlcgI)ukbMJFs*#s@v4@Wun3m2j!4bc~l&>f~bOm~z% zb7+yG&(!|N1?XEEppTSpIrM9aZmAt`3A#_wB{xCA)`8+&M0^tt1-W474p44_!dys( zqW=v|sWwefxIct}&Jg0!7+s_>3ermyrZ*cmDS9KpLAbmC&mQ39Ih=>&!qVrENH?EN zfo}r>bn#46ha?e>zjzK%MD#R}S}#42$Ph&-)=lU*&O`#Rl3FAR54@F!w5~UL+z5%7 zd`C~qh&K6&a+?BYnIgOj`&|Thw*uVet2n}K<6^K9cb2|v3f|c5;*<7Bo12PBERB!w z&r97Lni274S%^Et`U!nDv3t^cGEtDb+g61SLy+F#^(VWr^Imf3EA5yBUX#N@HjaA9 zT1Wr!&G3tWn=>7B2G5)7IJUq-~GAzsH^LarKBuP>fMbk80 z*Gr|6X_}Qv#kTEQt>!pRtJQK{*Ymtyujl*zU@#bsM&t1~ilQV*=JWY-xm>MQkB^T} zPfxrctX1_dMY)&dxg*{~WnC+2NYCbpQ*%1SkS%u!Q>v;vo#X&}~7h3RMFP4YXwh=L0zP zz->a^2D1d30s;@^@w(uzHw41d?-KyE9RW2GuP1h7v5hXFt=O0Fc#c4n3bTjc&cxw(UlxTr-SHQ8)0xlVwE|MSL7tcBwIQm5EhmtT02F@g=4!G98g=35>%t z)jU%*pVj2a1P3Hu}%t>E&_!+&|x$=N~t%7lEhSOn<-f`_+Ye6fOd{x_`C12;3ZiUg7b& zg?kiwf#*98fqD9Iap9hGWUhO-N8utckkAL=_RG|>G?37zp&=&>BwRD|K*FV}3^`%Q z3BRk#K*B)6K*GNr*3c&m)!~2DC;T&hdinYI^X2Jf+<&8wMk9t{SeE5DP7nl1k`zUu zlxmu07=~q8j^lWq7X(2RMM;umS(fK{S(a5*)pfmIuiLiW?RJO5q3gQi@pw9&K0iOd zzP@-tIIHU4it;YYoh0osyumxb*}_`GsGt>?Wl&?tAw(Cv zg{h7S#aN2Bh}H;dcuP1r>j%3_-@nl!26c@YMw=gl2EFil6-%pN>hRzy+kab(#eC7nw4 zDrptc$fS};A(Dki5`jcK@j2p5i8&=YOX!5i4C&rK_uYHD@0xa3HJhTUv!aaCMKn+R UAaY#Kv}{c`R7xdTKA+FO0Fya^OaK4? literal 0 HcmV?d00001 diff --git a/example/assets/diamond.pcx b/example/assets/diamond.pcx new file mode 100644 index 0000000000000000000000000000000000000000..17fa7ecaeb579c2d9e3bc0509841e99216a15398 GIT binary patch literal 2279 zcmeHJA&{d;6n#_GSCvX-ce6VYhzJA%fj}S-R9%Y*L<9nXKp+qZ1OkDGKp+r^2m}HV zfrvmLA|eo}9cG8C%hipD7!ffdV#J6OBU5!pUESX8)C95a#CCW6?yl(%IgN`?2)n@AtW%r^~#)=Kl5WvPQp!epLOQ z^n2e+*d=y$|@gpa`tp?4wKVmOO`0Ffqy}PW@Z{dHE6Qiywe^*(Lq9{p{G)?n7 zFN&fp%gts}*LBl0`~CiKI2@11)9Lj5{QUCr!twlBQT~wSM@c$}Vj~D!o?mlZ&a%mL z8ZwMGnb_m8J{rvi1DOyWIBtvkGHX`LZ5EfwVioym;3l3O+Jb0CRxih{pzPg(^c9A#&mB z&?)G#!LGzQMH0eyU}&H+cn)TLo)sr)dCx7j6Q>v%2~h*c_A$oJ$J)kHM=*mWLFFJa zSlPgPN*oMx^H4<~~&lOVwX zIU}c-v_47;sfIv-$%9r8n|!y5*GZ5D_QKH}y`x)H#D+^NHd--$GO>fP?u=$Sktn#s z>7hNebz4_;Ra8Y28+n`0?T%E!&K**La8W8=kxh5KP;&J literal 0 HcmV?d00001 diff --git a/example/assets/example.dat b/example/assets/example.dat new file mode 100644 index 0000000..44f3b87 --- /dev/null +++ b/example/assets/example.dat @@ -0,0 +1,106 @@ +example.inf +example.map +example.pal +stars1.pcx +uiframe.pcx +bars.pcx +blue.pcx +bluewall.pcx +brkwall.pcx +brkwin.pcx +brnwall2.pcx +ceil1.pcx +ceil2.pcx +chisel.pcx +diag.pcx +diamond.pcx +fence.pcx +floor1.pcx +floor2.pcx +g13.pcx +g9.pcx +green1.pcx +pave.pcx +redwall.pcx +redwin.pcx +safe.pcx +scont.pcx +screw.pcx +sdoor1.pcx +sside.pcx +stone.pcx +stone1.pcx +stone2.pcx +swall11.pcx +swall12.pcx +swall13.pcx +swall15.pcx +swall16.pcx +swall17.pcx +swall22.pcx +wall.pcx +wall1.pcx +wall2.pcx +wallp2.pcx +danger.pcx +ceillght.pcx +floorlgt.pcx +grey.pcx +mine1.pcx +mine2.pcx +mine4.pcx +texture3.pcx +texture4.pcx +bed.pcx +plant1.pcx +table.pcx +table1.pcx +can1.pcx +can2.pcx +can3.pcx +can4.pcx +cons1.pcx +cons2.pcx +cons3.pcx +cons4.pcx +fern.pcx +melt1.pcx +melt2.pcx +melt3.pcx +melt4.pcx +melt5.pcx +melt6.pcx +melt7.pcx +slime1a.pcx +slime1b.pcx +slime2a.pcx +slime2b.pcx +slime3a.pcx +slime3b.pcx +slime4a.pcx +slime4b.pcx +slime5a.pcx +slime5b.pcx +slime6a.pcx +slime6b.pcx +slime7a.pcx +slime7b.pcx +slime8a.pcx +slime8b.pcx +throw1a.pcx +throw1b.pcx +throw2a.pcx +throw2b.pcx +throw3a.pcx +throw3b.pcx +throw4a.pcx +throw4b.pcx +throw5a.pcx +throw5b.pcx +throw6a.pcx +throw6b.pcx +throw7a.pcx +throw7b.pcx +throw8a.pcx +throw8b.pcx + diff --git a/example/assets/example.inf b/example/assets/example.inf new file mode 100644 index 0000000..2641a45 --- /dev/null +++ b/example/assets/example.inf @@ -0,0 +1,459 @@ +; index to the .map file to load +MapFile: 1 + +; index to the palette file to load (not required as most of the time, +; you could just rely on ACK-3D's automatic loading of the 'colordat' array +; each time any bitmap is loaded) +PalFile: 2 + +; initial player coordinates +xPlayer: 160 +yPlayer: 160 + +; initial player view angle (direction) +PlayerAngle: 0 + +; colors used for rendering solid ceilings and floors (if texturing is off) +TopColor: 0 +BottomColor: 24 + +; distance light shading +Shading: OFF + +; bitmap texturing resolution (higher detail vs faster performance) +Resolution: 2 + +; bitmap file format. 0 = BBM, 1 = GIF, 2 = PCX +LoadType: 2 + +; index of bitmap for fullscreen UI frame +ScreenBack: 4 + +; index of bitmap for scrolling backdrop +ScrollBack: 3 + + +Walls: +Bitmaps: + +; map resource file indices to wall numbers +; format is: "wallNumber,resourceIndex". first wall number should be 1 +1,5 +2,6 +3,7 +4,8 +5,9 +6,10 +7,11 +8,12 +9,13 +10,14 +11,15 +12,16 +13,17 +14,18 +15,19 +16,20 +17,21 +18,22 +19,23 +20,24 +21,25 +22,26 +23,27 +24,28 +25,29 +26,30 +27,31 +28,32 +29,33 +30,34 +31,35 +32,36 +33,37 +34,38 +35,39 +36,40 +37,41 +38,42 +39,43 +40,44 +41,45 +42,46 +43,47 +44,48 +45,49 +46,50 +47,51 +48,52 +EndBitmaps: +EndWalls: + +Objects: +Bitmaps: + +; map resource file indices to object bitmap numbers +; format is: "bitmapNumber,resourceIndex". first bitmap number should be 1 +1,53 +2,54 +3,55 +4,56 +5,57 +6,58 +7,59 +8,60 +9,61 +10,62 +11,63 +12,64 +13,65 +14,66 +15,67 +16,68 +17,69 +18,70 +19,71 +20,72 +21,73 +22,74 +23,75 +24,76 +25,77 +26,78 +27,79 +28,80 +29,81 +30,82 +31,83 +32,84 +33,85 +34,86 +35,87 +36,88 +37,89 +38,90 +39,91 +40,92 +41,93 +42,94 +43,95 +44,96 +45,97 +46,98 +47,99 +48,100 +49,101 +50,102 +51,103 +52,104 +EndBitmaps: + +; object definition section +ObjDesc: + +; Number: objectNumber,speed +; Create: flags,numViews,bitmapsPerView,listOfbitmaps[,...] + +; trees + +Number: 1,1 +Create: 0,1,1,2 + +Number: 2,1 +Create: 0,1,1,2 + +Number: 3,1 +Create: 0,1,1,2 + +Number: 4,1 +Create: 0,1,1,2 + +Number: 5,1 +Create: 0,1,1,2 + +Number: 6,1 +Create: 0,1,1,2 + +Number: 7,1 +Create: 0,1,1,2 + +Number: 8,1 +Create: 0,1,1,2 + +Number: 9,1 +Create: 0,1,1,2 + +Number: 10,1 +Create: 0,1,1,2 + +; ferns + +Number: 11,1 +Create: 0,1,1,13 + +Number: 12,1 +Create: 0,1,1,13 + +Number: 13,1 +Create: 0,1,1,13 + +Number: 14,1 +Create: 0,1,1,13 + +Number: 15,1 +Create: 0,1,1,13 + +Number: 16,1 +Create: 0,1,1,13 + +Number: 17,1 +Create: 0,1,1,13 + +Number: 18,1 +Create: 0,1,1,13 + +Number: 19,1 +Create: 0,1,1,13 + +Number: 20,1 +Create: 0,1,1,13 + +; beds + +Number: 21,1 +Create: 0,1,1,1 + +Number: 22,1 +Create: 0,1,1,1 + +Number: 23,1 +Create: 0,1,1,1 + +Number: 24,1 +Create: 0,1,1,1 + +Number: 25,1 +Create: 0,1,1,1 + +Number: 26,1 +Create: 0,1,1,1 + +Number: 27,1 +Create: 0,1,1,1 + +Number: 28,1 +Create: 0,1,1,1 + +Number: 29,1 +Create: 0,1,1,1 + +Number: 30,1 +Create: 0,1,1,1 + +; tables (2-chair) + +Number: 31,1 +Create: 0,1,1,3 + +Number: 32,1 +Create: 0,1,1,3 + +Number: 33,1 +Create: 0,1,1,3 + +Number: 34,1 +Create: 0,1,1,3 + +Number: 35,1 +Create: 0,1,1,3 + +Number: 36,1 +Create: 0,1,1,3 + +Number: 37,1 +Create: 0,1,1,3 + +Number: 38,1 +Create: 0,1,1,3 + +Number: 39,1 +Create: 0,1,1,3 + +Number: 40,1 +Create: 0,1,1,3 + +; tables (1-chair) + +Number: 41,1 +Create: 0,1,1,4 + +Number: 42,1 +Create: 0,1,1,4 + +Number: 43,1 +Create: 0,1,1,4 + +Number: 44,1 +Create: 0,1,1,4 + +Number: 45,1 +Create: 0,1,1,4 + +Number: 46,1 +Create: 0,1,1,4 + +Number: 47,1 +Create: 0,1,1,4 + +Number: 48,1 +Create: 0,1,1,4 + +Number: 49,1 +Create: 0,1,1,4 + +Number: 50,1 +Create: 0,1,1,4 + +; cans + +Number: 51,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 52,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 53,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 54,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 55,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 56,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 57,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 58,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 59,1 +Create: ANIMATE,1,4,5,6,7,8 + +Number: 60,1 +Create: ANIMATE,1,4,5,6,7,8 + +; computer console + +Number: 61,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 62,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 63,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 64,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 65,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 66,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 67,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 68,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 69,1 +Create: ANIMATE,1,4,9,10,11,12 + +Number: 70,1 +Create: ANIMATE,1,4,9,10,11,12 + +; slime monsters + +Number: 71,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 72,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 73,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 74,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 75,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 76,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 77,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 78,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 79,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + +Number: 80,1 +Create: ANIMATE|SHOWONCE,1,7,20,19,18,17,16,15,14 +Destroy: ANIMATE|SHOWONCE,1,7,14,15,16,17,18,19,20 +Walk: ANIMATE|MULTIVIEW|MOVEABLE,8,2,21,22,35,36,33,34,31,32,29,30,27,28,25,26,23,24 +Attack: ANIMATE|MULTIVIEW|MOVEABLE|SHOWONCE,8,2,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52 +Interact: ANIMATE,1,1,21 + + +EndDesc: +EndObjects: + +; this must be present at the very end of this file!! +End: + diff --git a/example/assets/example.map b/example/assets/example.map new file mode 100644 index 0000000000000000000000000000000000000000..4a14d0d1f80b912e576f3ac3dc054b9428d22070 GIT binary patch literal 50194 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 CM1lqY literal 0 HcmV?d00001 diff --git a/example/assets/example.med b/example/assets/example.med new file mode 100644 index 0000000..74710bd --- /dev/null +++ b/example/assets/example.med @@ -0,0 +1,517 @@ +; Description file for ACK-3D DOS Map Editor +Walls: + +Files: +1,bars.pcx +2,blue.pcx +3,bluewall.pcx +4,brkwall.pcx +5,brkwin.pcx +6,brnwall2.pcx +7,ceil1.pcx +8,ceil2.pcx +9,chisel.pcx +10,diag.pcx +11,diamond.pcx +12,fence.pcx +13,floor1.pcx +14,floor2.pcx +15,g13.pcx +16,g9.pcx +17,green1.pcx +18,pave.pcx +19,redwall.pcx +20,redwin.pcx +21,safe.pcx +22,scont.pcx +23,screw.pcx +24,sdoor1.pcx +25,sside.pcx +26,stone.pcx +27,stone1.pcx +28,stone2.pcx +29,swall11.pcx +30,swall12.pcx +31,swall13.pcx +32,swall15.pcx +33,swall16.pcx +34,swall17.pcx +35,swall22.pcx +36,wall.pcx +37,wall1.pcx +38,wall2.pcx +39,wallp2.pcx +40,danger.pcx +41,ceillght.pcx +42,floorlgt.pcx +43,grey.pcx +44,mine1.pcx +45,mine2.pcx +46,mine4.pcx +47,texture3.pcx +48,texture4.pcx +EndWalls: + +Objects: +Files: +1,bed.pcx +2,plant1.pcx +3,table.pcx +4,table1.pcx +5,can1.pcx +6,can2.pcx +7,can3.pcx +8,can4.pcx +9,cons1.pcx +10,cons2.pcx +11,cons3.pcx +12,cons4.pcx +13,fern.pcx +14,slime1a.pcx +EndFiles: + +; trees + +Number: 1 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 2 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 3 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 4 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 5 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 6 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 7 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 8 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 9 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +Number: 10 +Bitmaps: 2 +Direction: 0 +Speed: 0 + +; ferns + +Number: 11 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 12 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 13 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 14 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 15 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 16 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 17 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 18 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 19 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +Number: 20 +Bitmaps: 13 +Direction: 0 +Speed: 0 + +; beds + +Number: 21 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 22 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 23 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 24 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 25 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 26 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 27 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 28 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 29 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +Number: 30 +Bitmaps: 1 +Direction: 0 +Speed: 0 + +; tables (2-chair) + +Number: 31 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 32 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 33 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 34 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 35 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 36 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 37 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 38 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 39 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +Number: 40 +Bitmaps: 3 +Direction: 0 +Speed: 0 + +; tables (1-chair) + +Number: 41 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 42 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 43 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 44 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 45 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 46 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 47 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 48 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 49 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +Number: 50 +Bitmaps: 4 +Direction: 0 +Speed: 0 + +; cans + +Number: 51 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 52 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 53 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 54 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 55 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 56 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 57 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 58 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 59 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +Number: 60 +Bitmaps: 5 +Direction: 0 +Speed: 0 + +; computer console + +Number: 61 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 62 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 63 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 64 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 65 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 66 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 67 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 68 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 69 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +Number: 70 +Bitmaps: 9 +Direction: 0 +Speed: 0 + +; slime monsters + +Number: 71 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 72 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 73 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 74 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 75 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 76 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 77 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 78 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 79 +Bitmaps: 14 +Direction: 0 +Speed: 0 + +Number: 80 +Bitmaps: 14 +Direction: 0 +Speed: 0 + + +EndObjects: + +MapFile: example.map +PalFile: example.pal + +; Palette ranges - starting color, number of colors +RANGE: 16,16 +RANGE: 32,16 +RANGE: 48,16 +RANGE: 64,16 +RANGE: 80,16 +RANGE: 96,8 +RANGE: 104,8 +RANGE: 112,8 +RANGE: 120,8 +RANGE: 128,8 +RANGE: 136,8 +RANGE: 144,8 +RANGE: 152,8 +RANGE: 160,8 +RANGE: 168,8 +RANGE: 176,8 +RANGE: 184,8 +RANGE: 192,16 +RANGE: 208,16 +RANGE: 224,8 +RANGE: 232,8 + diff --git a/example/assets/example.pal b/example/assets/example.pal new file mode 100644 index 0000000000000000000000000000000000000000..96fc5fc36e4d08dfd0f2dd727112d2cde1c0918e GIT binary patch literal 800 zcmaiy2a>W%00zG?AYp(Z44IK2Nk9Y_!}_+o|E+#+@cIN@T@7Hf+3a>ZNs?q)R#lZ! zY8VD%%(iXUbv@4uf*^{bBuRu2d7hVLSyffjG+o#AeLs%lG)?n7-)^^cT_2Cf>-BoS z-+zC9imHB0^FPCQ>iSCQtZ5fjJu6Bh%jMyaNm8=khr1o$ZmrG6AVdWom+q&p=k|1| zi@rRzd0L6MOu{VmQs0eS+qap^3`?hmrcy;l_6PBcm&6BTZ9!*>|v=z=|OP36751fD;5I_tB00-=^ z(C@kUsl+9V+Sn_7Cv{BUq_(E?@EI zIxE#6=dF~M`%vt7w6!?V8I<*PU)E(>rePYop{u&OsLErJCC4;OA}{nE?l7AfrlCZRU#A;%Op4uejtuS*q-P+vOeF-`ka<^nC5P{)LmcJO;()5F^>}wgc0|A+i^|C MsIGrLAN&vh02Gf!=l}o! literal 0 HcmV?d00001 diff --git a/example/assets/fence.pcx b/example/assets/fence.pcx new file mode 100644 index 0000000000000000000000000000000000000000..83421b91550b8797dfbdf10d2a3def37fa118606 GIT binary patch literal 2786 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 literal 0 HcmV?d00001 diff --git a/example/assets/floor2.pcx b/example/assets/floor2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..c0383552d9f5dfc6d37454968af28113fe1fec45 GIT binary patch literal 3189 zcmeHJA&jG35dJoKe?pojTTy|iKp+qZ1Oh?wKT&}|Af7-V5C{YUfk0Fs5C}vC0)ePN zR3H!)6^Le+ODZZ>AXZeYs93S$#L6ajTuz+%Z5s#Y3HMvSP3B+d^Mvas^QXt>Tg=mh8{a=aPH!_~q^HN}^DSnK^ldWz zLdX2aGQTKryt>!;mj>Va_*W3$vHG8bdY{LUi|(BBn{V&Ddgs;u&kpc|K!*Sef zHsg6-5Cln*6h+ZAjZ$hDhGki{ZM&}P`+gXPaU7>YymSEbk?0D~gpMd8 zhyR2e?$Am5y zoKD#7P*q4%1OXTWrKo@$NPr0N02?p?iZkAN99y&{$`omUfPqoabB{xVZGk*NiR`o?dN_ywR2*`(7bboLxin|HAB3FtHKbW@Ys0z+EEi*2`$MpL`H?B z%4_l*SOX~#0|DRy48K-r`o7Ixig=&+o50Q;Gct8YR}5Kf$h9Pwj2t60E(!~=4o3oQ zUw74ElWp_3h`p81d^Uc!qAR^vv_iV!qkQhgGv-g1jHndiaCtor$L`p*U0b(xQI}bf zud*auMPBIJo?|kT8dTFYS&;=%c;7Xz+s&ye55>C8(mGj{QJDGu%5_45r;%1AwL(gntYwl)Bo;{^5O+b?f|xv^bE3}3@b+;W-n!$^c75IM e%eu+SD#_OIDhbjYVp`x6PB!EYy*4Fk#LbIh6ZCZy+hv+-UemvzE`Kg*E!LNX0bY!R!N)y8dkpaeG078TDWoNh_6@|hup?Fiu!Mde<1y}h z2suFeF4O=yjqGK9rFYDR#gC7ec4NHk`Iu9!iD=j5&py^qfw0jeBtH>pXrr^k&BPVKFNC?K=;O6gv$Fg+`KwSMi2u^ zP~^x9$O6(qu#iN2L?*zyA{9O#7zh`!lo-O}BeK7T3>omL;JoVsR|H&n)3(eld(Yjn z+jsZ~$nXg9F7zGpKM_JaR3R5WBOy`$%1Fu~2_a#YB>o`z@9>9%d~Debw?#f&&yGM#l7dWh1$ z)A3Sm;Ff-3?tHv)F$_^2HTnQ;(97cNj;mt2`29oEJLv*xQNx^1_4yF4-{R9!#=6Jy zhO2;YZSnW?pUiJ@i^p~zdf0;;_4kt&A1qsbWI+=wZQ_a+SUqa&$-*ZMHinbby?CYb z?t&&**1V0Vm$!t=WU{!X%VaVv%NC2pQmIrfmqk&OWm!>_TCLV-G&D_XwOWQ@bUGc= zGzWu$Wm)6#csiZhwmqNEm&@g9wQ^l|yWQ?~yZwHDI2@jyo}Qnd`EvQCQu#}kA0=rg zimo7BmCKhrKP{E4i;I4-*x@*xWz}r9n#sr%RR-8!+4u8_I~!e1hI6Yo8+6BJ+v@0j zUF$X*Mx)lODGf!gN}?>3MZN_6XE47)=K+i@w5~y0Lc@mI1gaKP`XF^d(1F+Bq7Iw_ zS+Rc&<`Oz{FlNviL(>Aa4|Nl&ZBTTOH4qyhRDrL+g$PA_pu+*STUah(I)%Xi+HFu( zP!yN~SO9&1E`Sc80n`B$*u$d>n*}T;Fd4w04Q&-v1(dxD*K@cWgVl$w0a^nT8Ol5~ zS1(ojAdT+%-W6xqS)M2E8S%sDaH6Fww%=F5rDfKn6(G}Ns}D>)JUKPWy<8Kc8O|TQ0fI$ zFH#CeNi4N{eA?_DSDW2p<=Ts@i9NR_)BbQ|_6F^a+0qSFYu4(GilT^;^z!oZH@CSP AfB*mh literal 0 HcmV?d00001 diff --git a/example/assets/g13.pcx b/example/assets/g13.pcx new file mode 100644 index 0000000000000000000000000000000000000000..89216d392629d5c0094e721d9006348f59f05020 GIT binary patch literal 3044 zcmeHJA#Ceb6g`#Rq-Y8V2rvi;FfcGMFfg#R2LcQN3=9km3=9kc3=9kc3=9Gc0t^fS z0t_N8z#t$XAa2|y`i;K2F6$~S+afKXpkUHUsvj`-H<`Nbt82*gHT`Ej-{ z-0S=GS0^PD?VIA-w^FH8sZOm3NcrnU_I`7bUHm-Hicxm)%cFetX*U0HH~SlUHox9we;np!^ZC2ezxv~Dv-#=n z`wyqj5ZSx4^DIA||3mK4*@y2Qvisv!WDnU-r$wLb`{THnJ93xf^`1Xu*M-jOLLRBB zu<*CDhi}gcQ4EhZ+hvzNg{q`(5p|eL?So zt_ZTv+b8EAQ^T|SCoFzSR4>2dznxv|)7<&Tr1{d8#S4~y{;2c(5F?+q{ScX7-ah|H z{y)8Oh`uM*9!~z>%Y*00r{bbqlq5&hG(ixAVHibGuh&bGWH=m-Mx)7OlIQtyxm>MQ z>-BoO-QL~Z-QVA{9JiC@-z8}yiYr0Ld49}s1D5U8>tU_tGmKNMT9t}cE;mXgi4YE0 zkCV$`ocFuqxHAmf{lJa9R_Iv1rMre|tBRpel}Zg!ka$jD>+tX4-NLzny@WZ1K7yJ+ ziO~ol`w(657FZp%CaM%=!Jon#!5PBt!;D~r(0nvKG+Lk*BpreZz5!N7O#o9EwB2I4 z#At+G4?%!d3z`N>(E~!j2VB4cbf5`Ptg*?lNRh^f0|YI!G-wobont!0AVTQFwV|t^ z5;zvdWYXNnfi4gL9?$|zKm(M*pxZ&`GV;d0-EZlk(R7=#Aqxu64#_Si+YVW{7@CMwcrpwQ zG`$)1rv1(!^diq{+nTKv?iOSrXQQ+p^cgp-T3$u7%MFc)6zpnyvsf)Ai%B|3lQfBv zxD$o#j_am+tKi5&|miAY1B*2|w^(f^ li&Z+wlXM&>!!YjoovzmoT8?L0wx%0OQXOc-MT-`Q76=3afj}Tgu0#t20)apv5C{YUfk3oCAP|Ta2n3=9 zq6LC<*qs)Lo}@F=$+Ej65F=WQXfa~MiIJW3GRe;6CYQTplRI_$UcFaUsZ{05tC#nF z{pD(eL4F(byNpJo$z;MX49l`S&x@ic%QB@@RaITrP1Ce(+jU*v_roy66~z_k)#2^- z56+kFrn`K)`Lt=e4$<-0kH_Qbbb5Y%etCJ}c>b&?zsvHYB=w@W7lbX(uQ{$@ z*>pCG7{;GYoyo))kLRP2Ob8Dgx8;46?^nxho>b{#6$e@9rM?q6W?<>Au39S9sXUiN zS>Q#EMf8I33H}4z4)zXa1HFWrW1d2ZAO#Q{a3*FNrW9i_+97P@H`j>C`AFJKm-JU1DJpYP#p2N$Du}@Baab# z@C+Cf^ti{a!a745A#h>ppfY$4R(qb8Cuw=lEw)p)9GfXoL&(lC!7jks!O}oDhb=+n zATn4v%F>b|Q}lJ-Q8|OMbBU3KDX;`$AOt+X1`I$QfS%ULeHLybcjcL>r3IQ|DWWQH z6*=eRl#oM!%0{LmRABL-^+QwaR>?XIv(Q<%hHDJr78P;NWi=bGm>``x;lyyqbAw0} zTz`5v^oRD))@@zZWme`%mM)UWUj&ZtnvSIz8da&R$bu-a9Q)K%59?J|!?aXQS11)F>3lwa1BzB##{d8T literal 0 HcmV?d00001 diff --git a/example/assets/green1.pcx b/example/assets/green1.pcx new file mode 100644 index 0000000000000000000000000000000000000000..6f2ce7097bc20c0ff10286e05fc8ab59d6b44a0e GIT binary patch literal 3708 zcmb7{AxtA{7lzMF<|gC@fk0Fs5ET^_6%`dt{t<`@L`6d;Gt8u-q5@HYs6bRyASw_Q z6$nHH0)b!?1cJ;=p}UuxtU#j$;_xEeHTBFfuwOU~qb~>GIw;M%KzuzAYhojMGJRX}DnrET6 z{%7~U{Pz58?dMs^ZlXws)RiIdXDAkAg$%T_1359~b6!7p&RPj+b%mxM`DKYM141-?A)fjA>6 z`2!(2a#kd1;#_|AxtV_PS#>M2PyH1M;-bJUQ9#V@49sFH_0tvcIF%9U0#(p-j}-oI z3y#HrTxaQLBFib6=47oDJb$GaE`;MphRP}T3)t7j-+Mp+5%T7C5LSdMDF;^A1%nL$ zbLGm?B32zJ6f|vU!-i8na8#&-uIPnGAq%LF3vJ;jw4oqvhZu9=kZwvJYu)D$)hW^y z=9`+ZPF<;85=kPZG6ACh9K&^*{iPiQqM`ys#UsvS!MTVdAo2N-WsZJ86BH*E9cqsQ>C3@!Y5)!k;ZvaA}RpG&gb7|xv;`zl*f65T;wVONF=c%et6HG zg_W~xlX4s#eFEtUx^YWtDj8Ky*CMu*5s`f|24a*SeLAAPl*)IGm8&yXo|vK?4<;zA ztcy>Pgw0O)Ou#{6P8T5Igyv#L=}9^S$dc$N{{(nDO_|g9C{htz9O5Ey6;-LRg!sL`X~Be$@aC$;DkX3cC^6rK zVA6TS-Vp58#EaZfXEC5|5E9v8scI#RB_g3~4pp9p!vv^qL`Z<7m#WZGp8q8iE>Wp@ z<^--w`IbmHoOq?I^0$yR5VD-Iq^=Q|CIDCc@aeRx9Rzmy$Ph=wSophB2*5Ia7^^TQ+R0C*sua_8GazJ&u)#6-g%|3PrD|)$AmUa`0ri&Vm1?8S z8=jmmO-vx@X@E7&FO&(h!Ij)kJ^EF({hhC7odSv@LWn4_feY~9P%6g-Q1NSolfXEX zaZU~pPF5RM6IkMk^uUWSWG)6&tx|$f&uGf)QknQG(lpZv!$dV2bMLbLM=t#qk6jd+i1-&-t*$0O?cvK*V z5PJ<&Hedi;oNZ(w^TGoST6NiiH6aivn5&pmIVXP64`<9HS4;VKpafbTOG>HHk7tL; zE6j~L?yWok;)JcP3E@Dccg7IGB$KHt0t#nAwu}z^>z#nVD{jIzrqAX8xL(MS_QtDJ zEC(*Pwcd$ji32TcAd{zfdeU=avy@=S!*XNx8CAI5%t~h>(1OU*ZUYeasz}Tm5;ehy zN~j|x0Um%w?4H5$2I;BZ2x}q&F1s@<>lpaxxBf#xx2f2cz7tw^5x~__4W1b?d|>j{pZi0 zzkdCy)@mQ^_J3Qg@6G0GqfyrD_qEz}wR*X~Kik`zR4Sw0-NDXIZ+rV-YpWFmHM6(- z<=2}lT}@Btb^~W+4zTzzS;1_ z`i~afS$Aojg&oYSJ+bDg)dyCMZ12!^L)&gl9&LPQqZ=DuS$}TFGwV(4aBK%B77nZx zS)*(91FN=euVEDcy}#Sbi{0JX<)uxhc5-69o`s=Zn$656W~XKYv&ihwEVMWKUfTNB zZWp$g+VsRude#dqd@Jqo#;)f!o7m~lqOOH4t5xmz;p1TW-n{r)J-go>F1Mpu&>356 z@OEyGr*=KCi=K@StlzXw)fyGM8niEto0F(9>edFGYA@VBXjWSFU9$_bsoB`<#H?@D zGwT58$MyNw`S^Y^ygG?y$A_nf?c;W%Q?K3xAB*7qJXoLFP2c8S8@KJaX5sC(yUWL` z^Xu7oJ|3J6d&3@dH`?Rv<ixdcuru>k?F=OM-oEFY@BI7jZIXYz ziHv{$;s49OD2kSsmseL;*Vfk7*Vh}3Myu6ox7(dgXM20Q*X!->?hXcn{r&ynaAX$$*pfJ^2zDi@7|tjX5}M57EY5+NxbI+C)F?@Lh}IN+1u>f?0$ZtM z^0AV{0*Z~`j^)X`_=HHPc(Rx#ND@y>vnh$$l!qN!|8KIKUT~$&nrq|j+C$~K3PyD9P(p^%Vf&MHG8Q% zf0QmM_40;b5vwQ&3o?KMOeS-%DnM+Vx~h4;kgJB+F`dN}W2rA9yg?DA1YXcVl?5S> z7$`S$FOx`6^9)0zGN~x!gsLDO_(Yvqph`dw-~~uJ9W6TKs9;;{S|p1A`O_$5w?dAD zV)0R#$gq27V4}Nn3RI6u(VR$l`dqh0*aRv9!l!3ES@5yCZ*C!4H6>9hHU*H~Q8Eqg z6kXNW!f$8==8T^6ETs!LMRxHWMu{sb=@)A8ecBq)D98(WlrGRX%A?nUS}B$pJfWc( z@qn$4Tl6wDY7?9oNeYtYzIcqh=%FeUDDEU(DzWpaRD>?Vf+$55Ochm{&{W+5%o+nx zoV+x8nu?dEtdL(pp3&hzaTOHwxvBF9aiRZyxish!ztSkTc9n3Ar<(E$5gBOlcs_6nW@JHgP+j-3eM; zb`4#toh1Mvip&p!_%TkwulSYCHVfcTsdews!*N4>TQCI(iYd9D zCebS)(7tyn3B`vn!oKbWJxMSYIU*uszi=p-_`PRmCrJw*Sfk z?zXotR%ij`4lJoayK99_f0>~{v3YHO4)GTsw6l(8yqs~0@q+6*QD^$4sMtYYGJO`y0Da%R^$q;O?(>rxu~e)HQ0%ei1RpzAWhOf@v@- zE0hr!UOQaf;}a1@)r}#rMAT)4U)^)?k`@O-Rs``z=u00lG^hX~g&L71m>1=o2@=paT!Bu=D(&86U_=Y_N? zb7gJNTJSEr7r7bzIBsGBFfW8&zWuHDE6x%;#Gbo|21&4=NMPJ zLYZ({14{7{0>Myyy%_PBYt0W$nObrPu}WP{rfOt)$|}w7Qi7;PVdlO{nR0@15RyJ> z#p{MN6GF_!n9-q!z68$jE>m5GHWd%>RDH&XPZ?a25L>B%WC_7}lrHK(rZCx2<&(2a z>BK|b9jP0Zq=Lc+oo^HR#U=L0D7@)3lP-GvJfsr$yAcSqO%8|?M4IT*b-*b@t>c}n zHJp$zWz07-f1i}JoYk&EJpS5fu{w;0(#*lR=;sD?R`_jA;&_e_3f->2`da~1SHwEE zwOkTMbtx(Uk68ff4Yvd!w@TA`$z?M^gH4>3QAU&$Z=t}JAW{mYq_Y)I1pvO$XSs`u z!ysjHEDsG^@y4CgDpQp6I>Yxx`XjcoB=z#AToB&PE+k*I#BC6}m_ z{M`(0VIBX-wZQ%|DkAczR`O3=_M)W*A(b?JA#l^*VJifZRy1BWzy}g}IrwRhJtuM{yW1}&x*Wa(NzpK?Q*49RE-yW^5?ys!$ zmzTTM>Sh$R!f@T}>HYYRtMlpQ>HG7OtI^@*@xj?}Z?xY(>h}(Iwg=mtolbkZ-P&w6 zTJ`ltZOx9p+3-)>|7?Q?+x=j@8`~aR=iD|&wsB<51FQF~*0Z-;w$iq0w>zQqtwe88iOzr;KuFviK*pByXuWQ}5wV$T;;mY2f+33g)2G-lQcFWdl zwsZS^bNt*q{iAmHeq}JO_C{f6Xs!O!iG4V*cYQnU+Hli$o7SmWW7RJE8>c(Xqh4cw zd%fSOb=zy3&DB8x7Bf{lh_b&?VfBjmETgcD;6dxq2{K z=?|B?gX(5CY__fT`26|)@&5My_WJgEd_6uJpP!tK4o{Bu4-fkLgI<4UtGm_iv|Agk zdZWHpTl@3o>hrtHhl}$MXQ$UE$K#{J^Mn19!QgOrXTRIs-RgAtqg=Dus@LoMscv=k zsU1FUg!dcaZ7aNPhT}$fUJp;};qiJntc81P;qKe8`!?KK4cjYWb2)tc^7a1l%kBN+ q_3dH9EgIIyoI49`EfBcl(2GZ>O`hz0qzrn$7RuzyA+o^p(N@ literal 0 HcmV?d00001 diff --git a/example/assets/melt1.pcx b/example/assets/melt1.pcx new file mode 100644 index 0000000000000000000000000000000000000000..372b7016a435993a3b3d107da8700dc01a0cea9e GIT binary patch literal 2652 zcmbVOA#fsF7QLPAUzOU5h=@Q$AP@)y0)e1vTObgKu6q4>ul}RE5eNhVfj~qc5C}vB z^$UTBKtv!AhzLaLbpxG*$;_|fSIurkjEER9V#Ua*nmxCZ^}8QJC3)|>bI(2Z-q-y7 z7weSp`Ul>>FN3Tc_x#|X0!QxzE~`l%Vo!LYPFi{x=N{5tJUdrdcEFYFd)kz zi%IA9!9OXY6X^;aD1#0E zflico!vD`?tiKukTMz-^T%R9eN-G=yY4IQ5RgNc*85L0QAsp%rMgg+?8m_zD4H?FW9u zsv{|kE4SotwI2tNrgkZrh}_h!hBR9Fv8CaGigW|ZQZ==ayVPgs(f&>&y4Ya{!L^cs zv3%j`$O`47E7cxI&OV4xl1Rp!Q6#t?2FF|xSt@n~evn84VWDNL&;ZM2;LY-Xp=}8$SAd#lVsr%jzs=8unfWRHxURHVGn$;))fk2i~vW(D;nT1 zqCLtJpnlvUkjrT$5X&MALws}|y2${gb}|vlHz6!UouQF&Z%jU@5(>7VR(o)%M;MN6 zaDpa6x*?3Q7!v~I>n%Dt62X(DT(JWgi-G8Ogn{pT0Ny~baAlD4y&=IBq0w~=G7BX_ zg^&SUK*PE+1X3Ay%bXn5LNMvSVbdC+o&nF1;&C%p6mG2mso((PV*=9~9DRbMtN^Xc zCL4E$(ZN}m)IcbSE(*56VCSF*d8MAh4~cHy5!T+Z7}GZ_#!LsXA8Y)M zxsu3NhdUl$q25)iAf^yrAfyg47%7(Tg0#ah#kf%z{J>?}65Gc8z?DcV&vlZxFhYal z^a&_d_lOAG)%<}IAF&al1CiKU!|b`XsUTOLJY$!K4p^RD_W^x~5$0u-lEXzPPbbOOBoc6O<}#eZWSlElrb0WS4G1*9Us069j*2Lhf4LM88VSTWELQ`IsJvfC>)u z0YNluh;Ylnn+8uD;0HQT7^6cYz_}+dwn+bp__B?dCl-%b;t6}-)KByXSI{vJyaIlF z9(dn>#Ey>*jaqUOz*Q7BOfV0-+(Fb<0U8zWTXC39_?Bl72JGYm-yo3;6Xa@vlP@e-`L2cyiP&6pZUT>RMPSs@0AR#y zW2{jvEa+xnCG;mAB~dyOTRP!8*6<{T2Y#rX;gR@%JxfQU(PT22PN(zve6d(8m&^5f zz1eKyI6fQ>$K&zk<>mGD_1m{^-@kv);XMu3)LT;L zhFVinj}&v|iJEPNNZZyX1M~I5a1k5Dkg? zL~SBPR3~!ig}z{VSG1bZY(%3jbv^PNa$aJ(U()TACPV6XNV(*cDW9X}=0|n$TDty} zySlsREY8%#t_`T%ei_q!pKjZ9?a`o0trFF8RLsy#yK>zu4OOw{=G(QL=VYs;Ou2AD zbWJoO8W44fT0|aE4T8Sjjz3KYcf-z2S52Dre!bGH6l;at(*7~CU&nURr)7(#E)6Qw z%#*YFyq@3RjBh7{>7aep@j4#tE>?Tb4JPGh=b$cE?lATHUQUPO((_ I`Sa(001E*g=l}o! literal 0 HcmV?d00001 diff --git a/example/assets/melt2.pcx b/example/assets/melt2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..bc99e312710dd7d5520e4b1c971e335ea4af4bd8 GIT binary patch literal 2468 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 AyZ`_I literal 0 HcmV?d00001 diff --git a/example/assets/melt4.pcx b/example/assets/melt4.pcx new file mode 100644 index 0000000000000000000000000000000000000000..6ba4a7edbdd127bb6075e548346f6e593cf1c316 GIT binary patch literal 1952 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 Q^PbT)+q$l(>c_{&KMqcKb^rhX literal 0 HcmV?d00001 diff --git a/example/assets/melt6.pcx b/example/assets/melt6.pcx new file mode 100644 index 0000000000000000000000000000000000000000..ff837b98c0f4b995892a18201a687a5bf592bccd GIT binary patch literal 1477 zcmd5+uaB!(7(KkONwcY_sHhlGfj}S-2n5L@Di9SUkaurFfeHko0#SjeKp-j*6=YLU zQGpmyQBg6XVggKF-+RrzzD>o5W;3E<#E2CmCz-v>f3U0eyZ46h{W#}*UvBQNzi=%u z`;D#N*<#jewK|g>RK6u}s2U@D-lxI}gPFf={JYl9CdOxZDAr!~JNYC818~ zIwf&yaPDW~xt3`;E-^_3&#zFrKIeKzmdcg1a%joIT*>Mz;`vTPrZ9w&!~v zpuR&H1QXGuG#{%XUz#e;cS>5iwdYXo8`xC5inUZTN~@7U8JyMN6Nh1y4C@Dc@59>& zteHZyv?{Y^86NisPT(B&%Lc{{^D-Dl#juET!cVyLfe9!H1Fb(M%BENPKk+9@zh;7) zhKb`Rus`{iTXIZW#=}r`H1!2|iXE!%VuNQT@L8oK4+k;k1<#`df z+!d$IvR*Ilmh(+ETc^`Jo@7yw1avwwL(>=;x~Z!JMOGzI7WznD5kDh(M0mvb9&`t@ zfU(3NgO)&hA{>c=mAs;*@QHJpy5VFj|sY7 zaXezT!)k>z#bg58hOT1;WIzH;fdHVu5YX9dpK2Vo*eN6{3LA{%ufPmBmSz-F3sFO*7tzp$3;Z?x(m7u&@yiFjim)kb77M+G3<6RE|tB zFa%rg50suNb%6zt0x>WF#()hNOwjY~{FKLcNw}WSY&4t>wUH(plCa_5mi%?jAEwxh zk(-D$j6~?$$KC3FJ-^N3JPu}|9olT%vL@F;zU`;$-Zbk5amNnZ1DjWL2m5eSUny+c*5M z$Ln2Q>G0>Lm&5sKe>iXVb+Nr$7MpCjO6H4rmQJF09E3I<8ADUkby-o~-{1cMe4Y#w literal 0 HcmV?d00001 diff --git a/example/assets/melt7.pcx b/example/assets/melt7.pcx new file mode 100644 index 0000000000000000000000000000000000000000..f49cfd36677233a89285766db056b0e914fe0651 GIT binary patch literal 1252 zcmd5+A+PFK5dNB+O~?j;KvW@}Dk_@n5r_&z6Pnj16sV}EKvYyzASx;l6^Le2 zfk0FsDk=~N1cBZJL2~cru~~K>FF_!#xMIbXH@REhKiE|}bIzGFlljj1GLy{DKQRr| z@=LA1)>=!W(P*_=EX#5nCkTQhNs6LSN;OT>b=|To$8kK*^L;-ILogJ~1N9%}6Zk)` z?--gx#u|LbHw>Q4ecxoh;ZKbBrgbp;`#LcE3zr}M!_~j+&AvVuF@NB9Fr#7B-|PE& zAAVTtFc|Jf<7fPa(ZD?PE4^>_kB{T2&N83zg0WR!9*Fv}I{H+bI%_y)p79mTxQ6x3 zf%#Np23Gz1z%mEpuMYyF;e*T<(;6NyW-c{d<}e!H9>s0et@&3yjpH~;k~B>hi$$L2 zMNzER>+N=1Rn_TqI-k$i>-B!WzrDS^zrXW>@S&=IE6Pol&yrM$;zkfwJip+$q|=F5 z)^E4nR?BEMyN!lIhyYwS`Ad;i%lRgo70GlN2WdD-d^d8fz}7uovo)$yr7KH{C`deq z=pErJ{0qDjoE@w+^c-4-ZUQxe96)rzTj=!Arf5ph4&fSp0dEN>g`L2N&
    fVxmD zNIJwWcoiK9Y)$BX$LWOi8jA(u7?TMM1C(L`BtQfNfD2ea51_c>R^eEp%#g*1Czu#8 zDCo7quD~iq5+U$l>7WV(9`^R5o8RU63qReoy}W59L<^y~*BN#JRxaiS!Y&*c8V`xZ z(pBfS99fdD3$Df+lpw3^WCYW9+bo5)*Etiym zk&*k190L>%QXQcRTL3LD>&0$4TP0x{x>L{ajJn*CDph=1a`BQ4lC~SR46oTWh)lts z@0a8GxIJ#mZJC#OnrE{#na(1A8o0h^xpvR!QH?69B1$61bFb^-vRa-N*)E-zvpA2Y zS>Vq+Z|c~-VK_a_sE3IxE21dYBZg(Kl$=#^RLNE$rA%^(WFnc1Bo;`>lL<$h4lz2U y#}e8ma*LdAZ^!d(dpwuhDla!#UL@Hfn$5#$Jn=)v^$g3_db&!fB+H+lpZ@?~9IU$l literal 0 HcmV?d00001 diff --git a/example/assets/mine1.pcx b/example/assets/mine1.pcx new file mode 100644 index 0000000000000000000000000000000000000000..c9cb11692eef29747cb9dbefb82e6bba89c1a594 GIT binary patch literal 5342 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 literal 0 HcmV?d00001 diff --git a/example/assets/mine4.pcx b/example/assets/mine4.pcx new file mode 100644 index 0000000000000000000000000000000000000000..c3cc1f278db0e6e8ed87358047bf740147bc4090 GIT binary patch literal 5353 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 E8zMR3ApigX literal 0 HcmV?d00001 diff --git a/example/assets/pave.pcx b/example/assets/pave.pcx new file mode 100644 index 0000000000000000000000000000000000000000..807c08a5d84c79a1b924c316010e45740abb6004 GIT binary patch literal 2529 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 literal 0 HcmV?d00001 diff --git a/example/assets/redwall.pcx b/example/assets/redwall.pcx new file mode 100644 index 0000000000000000000000000000000000000000..93c9694df00a87d193180f30f49caab5c87003b0 GIT binary patch literal 3479 zcmeHKEpX~s6#hDMcZS(PAP^CVh=_=Yh=_>H>=lRzL_|acA|fIJ5rK#RCL#h6fryAe zAR-VE2m}HFyR_xKW%pGeDi9T!d9+ipJ5$NbZc0mA`bx|5&Cks}Ip^G*eCOPA?)~+b zlN_?+x9og8a=BcgP+%B_Wm%r*MNyPxnNq5%s-|g%VVI_A+qUC4uIu82;so?$zSI86 zXX{(~d^P|2K22M1w9}hE*V8TUqu%uT%gyvj_IT>+^|RK;{l(3LH3y!5H?!Z^Z~kkw zva5BLanAR-=gsZgR&%x;^z6XUXE!^ER&#pu`=hz1N0@zj{Ziw;KfTWGEl8(FgEh;( z|59_GI(vfrEk~WM_oer#^BqN`k8+pQt(6meFfZ>Jc!V)avfKVURJE**G>D9&-LZK-hox# zQ>pou=Cf7gPc1`z-w%Qy48v}>8^>{yB*WowJRZ+xv&CYuTrO9uRhp)^x3_n9cO1`e z6y+aTzLKP+D9!|7#PfZQ>#}T6DtQd!6pL1&py%`DTuvs02Uer_B8g_b&M0apL8Ir_ zL$?+0uOZ?h6XBw=TIGQ%5f@nF1W_1 zXvcXYAgT-5TD38$qi><3!!5&teL{;DtvWZCACi6NH6QKrIL6rv`Tn@XFUb`Q-p=&j4 z-PSX>MMa!(;ehpfOg$)CZb7&6Wt~VA+%mnKFX!X=crYHsgE)+%b{I6;p3|sXj%`@g zie8~Al@(bK1(svi!{oBxTXdsI*cr6_*lR>}r)}E}v+C%&SyAi-k literal 0 HcmV?d00001 diff --git a/example/assets/redwin.pcx b/example/assets/redwin.pcx new file mode 100644 index 0000000000000000000000000000000000000000..7e4ba17195e1038dcf8ea1ab65168119ff986805 GIT binary patch literal 2728 zcmeHJFKqKh6#rGaNzoJ#5MU4xU|?WiU|?Wr2LcQN3=9kc3=9kc3<3-i*T5jaAi%&N zAiyBNz#t$XAlb6j+p?`7pdg^Y(%Pz;I;k+y<|fVBL|@l_U|`aBw(s7*JKw##_j~vC zS7#*@<(uMpE~QebQmHTuQ?J)KjuQkyk|av0qA04W>bh1|JZ(<`|0+j*ZcJ9ZaTjD|cBKe|U+RmKAuR9EkBmF-bj0|Qe(MDtDlvZecum)APmFda2UsNk|dMKWHy^Em&?^^ zwO+3`n@yhQ_xJaYkB= zgabCy_%ex>qro)lCqZ}QcS5Hf*rsRdotA2;N=u`#LG!2wu2n2u!bO003fhIt)!SxbZiZnvx!*8RlL8G9XCFTjnAp#E_ z3%Uv_fn(8{Z5wee4ldd5v}(m=Js^q$$=viY?_g|VpuuUt5TURT7>rDL&=NgeuvN}f zSdG>jA|vrtU;y}l1GE7H&;X^F(9O7i89GzX8nyMH)$BComMkbdn~-fp@;=ErNDPE3 z92qSRG`*S(=cE2Oa6-rITAHO5?iOTW$%bj&A2FSvYC09oDmOGDQn2g%DqCl>Y?jW_ zIE}+N>W4wM@7djsXamn@Mst9<7GaJRGEbKlZv&$L?EJ*J##PfV{O=Or2C2N^vGMPyv6-g|Rh$jP{_#AOq(ykMuMzk7fGK5x%SRw1{ p`)qwZ%hu^^8K=`IPJ(FY^#@MZZ`+PxTAJQcnyO5xAd1`V_HW|-a>oDw literal 0 HcmV?d00001 diff --git a/example/assets/safe.pcx b/example/assets/safe.pcx new file mode 100644 index 0000000000000000000000000000000000000000..59ea8a3216dfe634f42b3c96db370609c3fb60ec GIT binary patch literal 1426 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 XpdGcmz;;~2w6vzKQYy*ve!u?*iOvV- literal 0 HcmV?d00001 diff --git a/example/assets/sdoor1.pcx b/example/assets/sdoor1.pcx new file mode 100644 index 0000000000000000000000000000000000000000..0e1fb00b35955d030fcde3d47871209a063d0559 GIT binary patch literal 2981 zcmb7GEsP>r5Ux%7k_j1-mri#YF`FO|2t*4+3zBPrKp+q;5C}wz76=5Q1pMA~KLoK&|7YP`}lTP!D4q2M9F-0G%Hqq|imE-7st|R1ktrsLZD^ zgBBX!p^{!V*1Ul!00)&CV?oD?p#Q-3Q2$; zC_&D7s*KZ-p$-C0RQe;WVZE$@g=!$WiAkaUR%WWgpc`xmfs`pqZWUP{T$SGF2}~-L zwuEY=v-J?HMUqb-4(AL)JeJn5JF*-bCXetO`b5NvKqlA{uHYKNwY7o#4yFKS$UK4I z;>z0b4+(@P;N7OV(4W%0mn)V;jRd?+Z&PwHl}16;^??vsYU$MHwAAz|ol3L$oI$Jy zCK~C~HeUV}%MtoV`XW&8bm~jI@|l6i5R5Vn6`}*kq#^3nB(T5HT-w;=V^;13 zS#x-C+UF>*j1;Oc`o-yh&8R@qDfsQ^P;qY^442ah$LGb7#Blt_cgW`{`|>oa#yUQd zm|2*JnsFEd+*8S{KWM_NfiajckbpN1EGnH$B(#)%%Z0?z#&iK^luX<;1{4$XiV9aE zK$6=5(*hx|8S@nG!WRrL-YN}MF?txL<5|Q#i>ZYBg9i}?3HKh-)>RSV!&_J;Oy%JV z3BY31G3GF&!N37nDN=wYY0Nqvw+VzNXfmlIjL>9G;~d?fS9lEbAeSRH*7#mP5t!t~ z#m6(bgm~EE#dMH}#ANSC5~xIChyjU!>FN!_LfHYyr;5!09AQCvn~Z5N%G(6f8c4p~ zfX2>*^TuFjk(9hLViVX0@Zp+7x)|H|Zmjw0Vs!~F;=lN2VWFI(i1?T?@Gp@{e@mU? z--WZYGa*DKlgVbY`F!3qP0O-u+pbh9wOXxSuQ!`b&-2>tw(tA>em@9;(P%W8OlGs$ zd_G?;m#ft(ilV!_yX|(n+wJ!I{o~`~)6-KfpMNfu{;;fvVsUGlQK4{^&tK+plWaD) zxaegvZB289aL&)mXJ?k8ktx87;gyjrDEv1_(f zE}B*$Z|1Vpdm{fUweQKhqvkc$msFckWlZIONbazL~B~2#O?^CNqjzhLh6QY2qN7Ny5 ziRwgEBAa&f5Yc8qi!qJ+)NfJCA;%_r7t!^cE=LsfsN+$+Mz%%y95q(Y<=MVC{Fv)r zY2NI-9w-%`EO$4c>keJIG<3)>Q?p2w9GMxKx}{;G*sGiETHdYX96MVsW~_onG$iU1 z`9v+ECXqw@FQ@(Wa`18FU-i6cs~$9}oocC3GAo7LTzMWV`+>6Q(7Z{b8u=w^(eV3&%SzJ4(@}+;)Gz*=|;w)nc`nEoP(H zcrXgOgI>Gaaob+qZB(7AU9qi_RWJ+LT=wg7et$W=n~bkV!^NOK>vhMS_Q3PH%|_dC zn$?Pf#w!-BLZN_m%w%@9vMni_lCrXtMNyfV%DA8m3rat)_&KGORhk!ybD>l-imfR{ wp==)>H`|BRX1iELv&GeTHV?*=-eBl=`>nR$bUmlus8nku+ct~E=jZ3Y0d!}`q5uE@ literal 0 HcmV?d00001 diff --git a/example/assets/slime1a.pcx b/example/assets/slime1a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..47b8bfc82ea12d9fd2c5b01c69f9943f52cc2ed8 GIT binary patch literal 2897 zcmbVOA#5sZ7XF6JCe5azq5@HYKp+qZ1cGEoR3H$O47vZG{LBmjfj}S-hzbM(fv6xG z1fl{_fgmpx6^Q1aflgcA-rl#oeSNzXS2WoxuGnn4?k0D?e|Woo7bui}zH`oZ&iT$^ ze*Zh`2z>m3&p-0X$I;Qz$;nAJo6Y5Ng+ifJDpe{K$8l=4n(Mk!%2un@>2!L%-e53* z<-jsl|L5a7aCrR-VKYqdj!?Uv3b*(tl=neupDANR04{lkaA_acHL z{0(B`M&8EtG8=@RaS#Z82(PK}SE!G!2zf!OAPkfizHmK_Uy1zW(pMPsIC2#>(AFnJ zLVF)w#d96#Fp%UU5W!c1Oc?)(!CeFK1ZmRPr%x$>P#3`O_W11#~A8;O8%BSIoZ z2Bf(hNQM`lPl%$Mtry1F5}=xZV#X?D(nK^L;A_%lUc%GN&%86MP}8NagE;g9SYbvP z#+sD;1QrcaI*}Kcb15QTh=f#e%7GSIWkMyQ)FMbs2>ObA22vRk&8XPj5+C`@Oe%Ik zXq9*tYkq)+I>YL^D$aGBLd?DFTqb zNsts{S1~UuAfBX^FQg8AQwLs6J<^zGinbI&z=jyhjrTx=V*ZT8(nuo+I*d}EY5uf{ z4hEzsiR6n$+Vs^An6z&+WQ3M-zh}+(EsbD$CPhrRP)tFX9>p{@);zu!GD@=`Zyjbr z|36qM$SH`_gS#;x)<7#JOBh>bNGFUKs4cy^Kio4t);ls?@DHev?gG=ICs$|+kjYT9 zXzd1{*5~k!+=DyUP#o|%OhxT7Kybap(3B|EOE#R}IHX`wHKYileKO{#Fk3(3xHAgvjl#9-@5sf3 zR56;=U#f0yNYgHl>gA4lA|jm~#-X8--hG;GLWq0JH7m^Se&VvHvvl(sKcvbS49b10 zD5Ga?1Zj*nBzI5B>H4N(%nZ>hYx>Of$U*bBJc-;LPfd4IUbJC1oD@IT!^j7Fo$ zWHOyj=kxhuu~;sbH#axy^*WB@-EOzv?_XbE-`?K7e*OCX{+=%szE!LLs8l|e%llF( zE*5VKh3kBNp36gDK8N8u24B#7L1%~79pnw%1!^;#Pf#7A+()sEyu?`@ zrw)!w!#fOa&|9K&h1L|!2^vGx2RQG-X`>=ha#1`-zKXLFvLy8OhTRS~H<-^c8ll@o zqXEak9GCz@pbxZprvTIehc`Z-VZ02~!-4Y}<8F!TDJDboJCH7%3JQ5N z*Wb<;Z{^G9{Kf5QXK^eic5Q%4`*n=FKCauiY+!JXRvEQCN?BaBtC!94P?mabp2Vwb*JW3s+D4?n9JwB+$>+NuXgj<-Sl!b z9xa9!vwm;f>0Gp$y+)%|uQhn*S}s?L#Uk%#v)Nb2-dF9UYOgEys%$Sx_N-`M7VS~N z9^~zA&TgIAjWfHRwVhMDd}8lEe@*tE*U5ghju)%j*3q>iV8#p0)apv5D1bTQGr0*8kC1%iC3s6h0)Gf>*n_xgR0&Aw!t>`S)di6>S(`I5K4GyTNwx?Nh@nYriu&hPxr zANa%Xodd$_kNEjBe(*XtI5;{w%49OxY&M_I7mLMmx$OIXwOSQIXsuhVR;SbH^?HNB zfE=G3_WD0xKZyS8_iyCrMl2h~d7*o18s|L)@=nMwEv zYl^g$N($Mu(pi(!fW-$P-907LRMLt@sPISxYjU;xRW$Y#)9+NM;SvT`T7?tGsE;DJ zqo4o&4x#u-Oj<>5piQKNR0hbQHS!m}PRLQ>CoAkvLh6_-xk@PO+Ry;95rI)+)U&Wk zIx#h12of?D+OjEZ5S#fby&)S|V*_R7qhKb|q+n79u}VY$`zSQX0p_tZ01k{cK^Vja zE()0J6bl(dZe&dug)ZMI`0_Oj)Ck_5c0KZ$c9aM zF}PM5%wpF@Ryko1MjAfKtZ|7Nm?&7oMaMARAU_3JzyzU$!QTg121#fmSK~ntI&93g zcTmORP%0a;1{Qh%7D=ta9uQF&krPLOwkmbn zp&2cUZ^4Z9VH$)wMyNjIUJC|~5rqy=TPxQbn8R93NRrB$r23;~QR1RWtsB8S0VoT_n2x0fLJ0zspstWn z?cCG^Ss)2E2~!&zZh*K^!aTYW+DkS7f+V95kz#;2CW_r8GV9bNV3P!;M*l!q$U%?P zMAZ}YEo3sVdPvz=X2WD6l+1zTKzk(I!<01+HO4wYv*9;QGgfG48=_#)^*3XK(F!q= zVZbBF;vzmLk0QD}!&)^N77~YRlmvpo8JYns&vtc3^SE&?X<13$~diT@bvw0ETno>5<{yOg0DU}8`?WSc0N01Iv5d;kg$3UUW1 zuL&y~tO>4g&H=FE*vd)shE3Wk=;3ubd_sMoJs`I789t)imL;D7U(sm152BmT0hY**x?uzo-Uid zW997d)CQ;q_RxLm&wsI?cl1n{9PE(P6hn>q1&s4ZAArNNm!uxZef#F}NbeyZmkOC+ z?Z_v*m3gEmdj(Ph)8texL0|wu83t_pL=nnciScB;Z z1`&EUz&hFD$T|=755fdv4mJ)bKG7jQ)&Hlj1EbMsGMP-L(~FCX`Fy@uEUvGwSF2T$ zB)i>izu&*Syu7}?e*OCO+qZAIeExf-^3QVlbE&j17L!8ZCZE5`$;rtulj$8F zw~vnMhli&J2W8L86TRHbpBJ;_^898tUQEs|NB!xbJL$EDZQXB*j;J=PzVOSZrDC~| zFXpl|{6>Q>)cZu89kp&rUz3rr$U=@noeqT?9*X!cuRw8>Mf{qNv$b0 zCsZF&Z9u18^4nC_R1{P=rCfzhij)DN*H_x@==z#2E@(8OZkOtH@_o7>nh*_%`b2Fa zO;jWD>4iQgv|ZA2Mzax(y40;x-6#Jgq1y#rO=&WueuuOmzfAcYHCNwH=dY#n=iJ%N zac6$0Cth_x<@U>%Zu@lArt>-tPN`L*YL1E-x@=d@o28*H_C&s2&DH(vX(>}K921=r zjfe(BU7{9Iou~>zU#`Z_)4|QKbJ^9CX02bVG%LkwA-C|p&%D>Mx9!uSMN>h83N`cO zFF##h++L2aCWGmqeb%XW>X5rwDJHq;GCR7=^e4yd!BM?)cv|;LKIQhWpSJt$YP(vl zmh{ Ij~_q&1$D|{+5i9m literal 0 HcmV?d00001 diff --git a/example/assets/slime2a.pcx b/example/assets/slime2a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..eb4da6e1a7a88d34dcaa2989924da31be82d92e7 GIT binary patch literal 2644 zcmbVOuWw@87XA)7FKJ#XDk=~a2m}IwKp;r&5fuo;Ne*G}+|4-~fj}S-2t)+}fk0G{ z7X+dLQGpb zIk3#B|MT$!czb<@Zumj!Py8Ex;(9;pXZ#C(-IJjgy5YOf{rPwN2`wU5c<%b0=kM`P z_+IRKDsl;V$EW%ge<1Kyu989u+G4ly3D3~p#uX`V>*`;Sz>=QSA0YU@_ujRh5F!YL zFYBQvd?kVn{7}SPri~-R02PC z6E6|2N`+dkT=9{SbShAxkZX}ZOTm0nF+%7oRv<&IM99GY2e2|3`ou9>3`+;fPlZ9K zQwNCa`8qI}D2Bm?tVKi~nfZE6h>V5g5mw=P)+5tefm*SokOyNHn+p9nr5T@em5C%0 zS3Oc1?aPRPD5y}DktL;Aa!UKbfutX3=870cJYvPD1|ECVS}Hb=6|ow!4EfiO4FS_U z&)Q+b&?+RaP{lH0LLyiUu?Fael2ny}F(%0yl=3wLs5li-G(RB&X^8ExH8d$=#DJkm zXwvIAh#2btW1~XPe@~#rq;J4TF$-})qR7yXn3;)U&w9WEj8<~cT6(r=g(t>1&kOrYm?ocIuuwk2G z`V;LNi4>D;@yJf|2+eedCKml>;w>$LEj}XA30(n8r;EwW0I<6c_ytx%zU;nlMv`8t zreaq<;#U)tV;8Jbl+)1TNy^O@?&%_rz>sAZ4^dh6oAWnV45m0Kff@AJR8F5^8$9B7 za5O@xA{p@{dt>5KQ$>wAa&!k2FOs~8rb}#5sK|*Jr60lAI`!7Eh)0Pt(_rLQsok4* zqocsM`0~xIi3R6_=K{u9vtcq3b;X1$VZAqYR?O}b#*y?m)NH&b>Yn<``PZx%KTF_! z4iAWsmtH>{;`(xD#?@TPK#7%Cx3JxImJ@6`rQX914n(*kO0b46hh9+GT_@lew zPE2T#YZ_u2ww|;ieB#I+FfpqSX^h;p7YXi$PiF0K1xCczy_JwF(=7s+j!vqUcsl=DljTtz$} z&FwTJuR?Pt^+5~nVcu;GZa69sS-kJQwi14dpgAsY-(<)9D*T_mLx;oRcs!m=CbQXW zKA$fZi<_I9ySuwMj(5A=e!qWtd3k+({rdImw{PFFx!m`1`9G!7=VEbRD8%{vZ7z46 z&CW8J@!8oRo$j8VwoXoJ$H(VKMi4<C0M$OuJ8)VkNfcb<&yg+TtbjBLy}n|%!_5t5GYp65bWp3oaWDhM zzyRn0EkFWQz`+YX$Ji{foMJk}u!BwwH3!a1jQa(yCm0XVYeTwlO2}o=xch!Se=S}< zWiM_|+w)^Nwkv&fQYQAp#eRlaN#2eQz0bFE6Y=48%`=~Dg_ zxCDkkALsy0paxV(=*#u!Y0|$Pw68jH+^F`dnHgTCd*jnq|D@JFKCjtD2ig7W^Jc%f+uSYh zmhs8rpu;}nX; IA3uKl7g+opoB#j- literal 0 HcmV?d00001 diff --git a/example/assets/slime2b.pcx b/example/assets/slime2b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..8ef9c664320d540f6bc2d1abc42f7430ea30a9f6 GIT binary patch literal 2592 zcmbVOFKl967C-OhZPIKiDk=~a2m}IwKp;r=i3$YbC70#ieD~dV5eNhVfk0Fs5C}vC z*&r$^5ETeAsi;8oyYD@qEz{|I!)&@qH{Xbg5hGTNoMiTQ>3(M2E)+=b@7!~K=Xd_V zpa0|>5FUTQ^KW?Kad2>Obaa%-WU|?8KA$fZi{*0J_x)Vptq7uKr0W>4ssF9QT17eiyI?cmF|#BB7)SSYWte`i{h7 zAfIu}gNEh|XMzVzuSv2G0aJemA`Op>3oKHC$raqPj{*No6h~5NB@7pl;$cd{Fb;^R zPh@25Mn)Qua26)yBB0?3TsGW~aLp|T5p&#S9571)!?wY@G+@pXxhjlex#lboZVYQA zlmxgPB=1%Mf3le=k#c)3lyM`;C5L;4kHEZ3ted|+(F%TI8^FLfLPa{#DwZO)4tely z9XKCg3~6R8os8sbg0oRiXI1`+z?Zgx5+U1oA;z zQbigXD%ZZ-;M*X4Pj?hS$XKL+joP0#Vx-874K9!#G;+4Eb5z1bB9*ax10f+USaX>m zh_G49E!~rbH?fj1;xIDG+9MIEQs|K~=Ybw5Qm6xRMwKj+gvnUr$eIWqvmmraj*f9P zQLcmml)*pNCW*9>)<{0kd(sj7L<%XOxvX616u3?zqa(128LS>j$59F!E>L|4Xf5u* z9$olAAFPTg8VT=iEK{|?#h5?PM+-zs-=UCir%;3aa&H09wdYnbkcx0$NBiJ=)D{D< zQQCk>430X2bQUw(aaFW|ONf|68`O_U_YDCB34hwvfR!b+frd<3Dsbi67E#b2xuwxs zTM>T!{SOc++T$3XDq86Xb^8y9)O55(CXrfcR{_A_!DFORhkHb`!rJCia45ExWTYJ= zj&6!wWQtnCINjsg;`k5v3QQr8kthLBjnbi=Adbc?8=2U;fUqr^y$z`z>9cJ%3C1Iz|g^fUve>8Q;<;LWDJXFhSR&k+2Um z%4}fvK)(@kl?l)lP#mIz_Eoa5dk3a2nm$3<7q}Ic3~g+xzHi%%(Niz=1@s|Ir5t3)f)asFjWUV7H9LByWIA!q=c~?_n}I#t_`B zP&O+A7JPqKZ}_9Vht*&yN=I+tF~s_Ld|MnbPPwyBM6P(_3A>YF7hoS+_UP{zx7nwl zVR!>M!Luc8R}|arJz%W3a8o-1c0i%xryyofIpr$F*f^kqj|d2jq!ydr1O!UDRK7O2>k~O6NUOS z9pY>4fBHTg4u|9Mcruw>TwKg%v-x~}eSN)LE|VnLZnwML?&am>_4W1Jw{PFSf6wLf zKPr`fmCIjBrCqU@6bd)_{8cV@k4;qUKq54YFPCHzkFIMmJ9h}E=z;&)c;D|XKHV$c}wD&f*Dn( zbULQWfJ!|ov?wR&q(;X+9To?-)W4?goZ6SvoKQHX`haSEI_;3(qOzc3K!sDvRp_Kh z84!AXrR|okuj%4~hC}Lfs9q=ErwgJn(SWE&)FKi@H6ov0=u1MI1udpD9n!EvojTQh z@?R3VozvBX#sliLNd)AVDW9Wo`Qvob_4MedU!#6sv{Y-1{;0UPs=hNAo640_s;N%#*)(zP`A<99@n3lYZ;0U2oSRcd=4T za+5`Nc$w*qk6Zntdi(IS?v;GX?OvZZyUlX5Tr3x}#cVR0jwa)?(V%UuN`^{FnF2ZUpsQ7-dRQmbz=f43_iwHXa literal 0 HcmV?d00001 diff --git a/example/assets/slime3a.pcx b/example/assets/slime3a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..38f060ff97e2ead35f6d064d47c24e9e86f18770 GIT binary patch literal 2160 zcmbVNua6>G7rjMllg_3^ix!9$2m}IA0)Zge5(ot1C9lGJ*;hXh2m}IwDA59eKp z4Fb^u(E@=$v_N#K3Ywl~r|E8Hw|ACJMzk2w*?eCzpPOX9^O(P2mm;Cwxwq~;@7(i> zAAc~82%n#D{elahqobpflaq8hoylZ!xtwKL#bVL6?MkJ>7?V=g>-A={*>1PPFeJk! zLqGK|Ki`P(y(L4`-2dU%;}PT1GyY2}GL#fNVKo)}jg@=Pc<`ogA`$UBCX6L{G7-}F zOXqsN5YEn_9*7__bib2%>5G!`4>|kbq5i#n7=UZ4_Z^;OBCBMvE(bpjTgE{ zB_Q`K0+E_nG4Vpbk{1d7z&Msa|4#1-ts<0;uvWj(0|kV0>%Ge>QUcDf%?c&Tip68@Wm78ESb`4 z@b$d|kbv-mt{BM(q(SJ8GyefOkr5F#7PDK(x8wpBb06pfp*Q4R0?@dOK+Zeh2^Z2+ zG8W*umUp4NKSA~+C7U2I*{ zA`u^O!7+~=`JN9FY{lQ<>6)=c(Lgtcni@+u^mry$HwMp@9xlE$F1DIf0ya<;{uR6y zJOJ{S3L9U-c(ES96L~T8mEu;raHV-`Pyxg)aR}aNlnbER5IR@$0UQAr7_D}JiUkzW zenuyxqwp3JSE6=@Ou(SzzXyg{#fLegEQ)KL#CvUHovYIln;IHh2Wdtgc?@QQX4U|2WdOs4K|hQP#20^=~h?`DM+g@2197r?>F z52BPOmm-#sWyR4A)(~Do?v(ozA$`bN6B-_&Nb`eTs!A5r&~_Ym8Ou zu;J-prErQ@urm&W#EHE_&b^Q-rVS1Z83B?-B-esVU+`O$)Kt z5ryYVj2o>E3AZpB-bo)(D)A!^XA*`(eas4u`Tn9i#%uB)yyWMWT-@m@TzP-JD`SK;3%Y7}C{!=V|Din5>mE`l+x!hGYJI-VV zXJ_4Xx_x@uI5}~SkIP3#Mbpd??XM@>=_t9pxE}SVgY(N?XBf5y?MAmDJ1%Roid(Un zT`U)@Vm@bOGt~V;;b&^UP;*1|8Ff1USDamq4}J~W9s#&)gs3s+omzmfT&B< zA!-mwqAHP1d-{~ndPcJmje68;QOhC6CVQXI&6KW&H0V;NNs^IWq+FKV#n=S`>SKyIsKCE4LD)4NP}2B(ei#AzOv9kXClcK7_q*-$PNUtF4Y%r4?TTG274ud;lg)gdPhYMsH{;RG@M6~QO}gi!PP^Z1 zp4Z*B8^LNTAu;ToyV)X{%&te1>0mVO_AkQoUaK9}8%;;Ll`1RQwpA#6`}Xbs Drn*LC literal 0 HcmV?d00001 diff --git a/example/assets/slime3b.pcx b/example/assets/slime3b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..4b95ff35d1636be3e3b11f9e9229bb15d8c98f93 GIT binary patch literal 2285 zcmbVOEsP@B7Cyz+OFEktEm|O2AP@*d2?T=Vl|Ud6H@TI*H+!in1OkCTAWF1AAP|Ta zr_-5CCYQ@umQ^ekZQHI?DvU8HWxZZ+Hk<8sI|u?Y zY%=tz|MU7r^k3f{rS7-)f81|VD@v(Qs{23wN$<#&B4!bnhAa4zadn^#8C)!Q%=lX- ze}{|mLN`>di1<6Eegly5Q?ai^h-aSqm6qh*Z>2boI3VRoCHZ?Mex(JeEqlw?OuXRU z4Tbg(MW_%-@D)?PXczv-gv7y!g<{2OAAm(dN%7(P^UwOI^j!XeDwoXPBb^~*7V-~_ zM{bK&Z6HG>=pS5G`;|?QQaP>sbWW;D4@XALz z627)Xx&{?`T2@*| zdYqy7DQVpEQ#jzN1%k$!Dnrv`gnr74l#Ij@6OB0rq(O{hC00OCfJRW3Cvm^jbYk+~ z#{qtzV9ba;@CR_m-7R{AFF>ScEB*!nlm=^&#$*yR(T)K8h;b;?s@d1QCK3ttx*!mA zvQW}ROEH2cXS^-Fr_@r#5cUH4M;Qwywh){j$^}|aDqKV0niKU7E9GN$68$B%6_x`^ zj=%|bH&{p?kuY(+CJ9qZI0%I`5&YbEOK-_v;-b=9NSi<7`oC0q}~a9V#a4pqR% z#UMh>i5DWHA7Ww<+5&8AaexSrqYKikDkH{jLn=mu_ky8E$gz=;c!R96=E@jn7eX3a z^c6yA2Hde`5#ozj{-k^(#48Bt5DZ^;NB<%trF0pp=0DOg-qHWl%e~j@4F-eZa5x^1 zCzHu^I=#8Mna}5O9B($8{eFKq99~~vKY#xG<;$0BF88%m`ggJTu~67sR-Dh@=5p8B z>^PGdoSk*k>GtVqV-q?9^D3 zRcaNR*~N0fD&})mHbdPn6nvug3pF=Xzax1=Y(kY0l?PPnQlUfn24y9kRq52GW2<{d z!40*i)V!klkZJ>Rx>OCQ+#hqgIO?hise1 zL<6EOQHQ8OB#Ej-HXZ0=OzRoVMl|YCuSG3~9GmPzOm|bd9@3yoohC^}c9C*fs?EQa zC$ELeUH0Pkv^hDJ1G5rPv2p0rU5Bn4bm>q~rh0)YS+de})hJ!o3SDWnS*}sZI(DX9 zNEh>`M3+Q8qJXGHR3~zXDk$jFb$>SuZoAE^mK@ZooocC8vMTxP)ciU!U;E~|L(@79 z83iS(<;b4B+>Gz8`qzVC7&I=LPSXM1R>_L9!&##a(%TKkM4$-vwm;V zy%=@c{buu`UTZr}y;^bbucA;W=JR>{*GQ)iwz)5v>ykMynzMpAvCL84yv&=uoEc=z zR>rKKna-J6O`G7rXy>WDl6Hx KRVaM>_U%6iR*b6v literal 0 HcmV?d00001 diff --git a/example/assets/slime4a.pcx b/example/assets/slime4a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..0aaf182fc0a5931986d76b828f95e9776bd184ce GIT binary patch literal 2363 zcmbVOEsP@B7Cyz+OFAztTC_m4Kp+r^5(oszmOvm7H>t|pn|JF6fj}S-2t*460)c2j zUJ!^Dh!zM0q6MN;Rs40+Gd;8H>}h2nM@{^%UPCHEEa9su2d>Q2&Gi5R%5yTQ z!BPL`=Q|Pp))c;x{=aBRDPPBqiahQ8NeLM;aaKbA!LN~w@$T?@sE+T(TQc-odLJo* zT{F5Caz|R;3z^yj4VCsI>1>6!MY2cX_&>345cyh0&PF%}N=xUR&>v7dIQq&JvMELt zDaU`L6$Sc`C0LRl#2S`2k#K??EXH4^Fve?$tlIe?9QD9G`5c8JDcF4JNG+Gbc`Nk& z!Kh-;{0E3Qv54e*;UJ~Ig((&3SR#vL;#OafJV;mM?|mbp3ra%AaSJQukbykF!A3J2I3gQ!_na*fQKU} zyd}_3MRLV`$_LPvn3ZDq2kop7|AYefuqjU~Obki5N2!(|=qNB)A(srcY{3w)BCJlU zL^wMU0dNx7F{FpX*i}eIh%WuZn2=b8QNY_nS3W!W3fT;7HHO;?224DN4ue5kGW@R( z){t;8H@yWFM+K0Z(hta@IZJ9u36h|@1PyCS#esh?@;Hox5i;X&?k`9gp$^#2LAYk!h0qvhh(G`yDhjnS9_SY=G7Mnh9dFT@jC`qfzybS_ zO8x^Y&G1Lo8is(`GZm~)9bt6mE4g%*NX}EnblE#*f{gMJ;^hMUnF5gJeM>%9>x1`> z_LO3!9&wggB*E_|oSsO4?!g^vjAV+@kR{3mCAN;RBPfNFfEZ)|P#c^SXCVfJ9AJSB zL8##)n5i|p0ZPOQyLtpI4QV0Q5lqm6_lN|C22kvPF>ZGNT6@9JX+APaF#e| z4)*qej3wrlfcN2y{na~b2g3P4{)(lB#qkA!>c)oN<3fqiBebafMEfu-nKTX+Oo0M5 zL|~0kO5Y;}rf|iDd<3Dg&~Zxc5Ca+z(|agL!-DxjL2t1rL>mb`Q5Z`sDsg_rN(3I2 z&^t1C{TgHXjp_I?pn$caar6%ub`h~3PxEjcu!vTNv@!1*T8fw`)W(54Z=91IOvs0G z2I4Vh$+83=J}Z!b50PuN#@1C387pWGlG6d&kCYz+Ks9^`!Y#cZHSXMZd}p8H#{ZxG zRrGqj!C){P4#(s1WHOmfr}O!Iu~;NYvfJ(U`~CCt^Xu#DmoHzwe*K!w<-V0le-?`` zg~Hyll6?L)m%GVk$C=FF;-Z^Qx6aS&XJ_u|Y5C-&Xqq{q=iABCbd+3Q-H!Ux!R2+Y zJ?u0Gt$Mev+MZ~LidV6PT`U)@Vm@bOGt~V`ozK+zM2#KQ?nuo^OsF!V@_vrjDxKSOYIX0ZGpE*+8rM`Ck~bi?OVtjQn`GCisK^qOFH^Qe7Z#;K==GI$JDSgF zJf>ccnoV+DvTYg@4T!o#ZK67nBB~PE^h_@aZDuqZ(WpngCN*7hZL*&ex|`C?kOp09 zH%JMxi(700?}T!&#zy;V zaawlGf=$`|>!;0rv)C+Vi`is08BRw1;o!30ZC$qOt%j<5Rkvza>|&{yxAK{6=JR~| z>E?Pj9^DPEX8qozdpT;i`i;hA&1<=Cty*#M8>LVv=JR>{a!IG3ZF65THzjjXG-m~K zVwt17d6hSNIkS^Bn;ElqVY(M)HEr7GX5q}-zkJ#3UlyDFY>`Z6x1-5)FdBFJSDnjV Xv(>598?N#yRZ+5St5Ep<{rkTGj!v5+ literal 0 HcmV?d00001 diff --git a/example/assets/slime4b.pcx b/example/assets/slime4b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..97ae394b69d0a89a6474b9daf19662d700dfc986 GIT binary patch literal 2399 zcmbVOEpQ@R8a>VSR;6A=L_{DW5C{YUfk05TEg}$zTh(2;U32Mf1OkCTAP^A<1OgF3 zZ6Od5hzJBCA_9@>ZU_P9P2PLtO?FVD_@Ip4Y8 zz0D7QG!DS$PyGCuA3g^M2S-Oo>2x}i$>egmLZMJ9l`PAuR4PIU*LCaldb8PVx7*!r z7ls8xNBy7AH{kbwe}nM{;{*PRK!$cK>`;1-c;?F93Ax7y7;o%%;w)6b1C|Jlz*GK@ zgdc_EcLc*_TqL|5-h}qA!ZzO0s3M)p-@uolEA2;dX6yjZ4P|66#hZI5&ksFCKpI;Z z%9XLb5@*33JU`_tPcgkqz*ixWJK+XPctMJ*P|06JXsZnZCWu)3UYylZg&$vkUYiqz(Yu#4hhZ@zO?=d8ajO3ak z1io_VuPZ(12<5M_qBTkO4`F*7-2Hp`_hh+7;IZ|;=qwt(hp$+eYq=G6pbZAqu|Eh_ zycc$AgAG!Oy}uVWyVj~{;}-s_R4mM1Be{CDGW&+i-%;}*^gWUbuEh5|XrTrbYIRFu-Dv5WQ{f;<0vz1O?Q<7~j zvE*KJ6C*~4ngoT`Fvli*g^4EO>u9=AL~5Ei*wR=c73nRD>767<95_L5!M0Sef`&D^ zWVrrkE{#UU9a4VC)<{g-SIq57cZ2t!Sr4bS>z0+rg1>STsXn8Z$yTJcG%4vOW5%|) zX^OT-eYiNt^m{eh-;LY^YV_U44S0kR$;2WgYbWHX8{@qd-Dunh9zAXmt$SMa#IIOq zBbL;_-{Kc-{9c|TtY<5>W9|Mk0u}upVSak7CHwe^f{`7QMcS5}9(^}x-CXWCkJnG2 zVD5iC^r2$YIOe7~kwUQea7V-}7P}4__eQCiXPMc570(mc1#8>zciP|ir zHDXZ}r_@#l>rsh0(*bo`=>#mqOU4U)`BwLvOwyK@Ohox(4t>nM(I-^L%7_Q5#>+^L zxn@qE_blm!`snFvMFULAF=Mo_e7^>k7- z>ar#wO@GTS+|Ua&@g$KO^X_}iNP%ctGb68%AmllD;=SWh*`%6EOvdXy#IBUT!f)W= zta0Hg&)^;CMRZ#8_GWYn#&0;}Tj76to%H+t;cz$_jV6=HbUK~QX4lu(i^U?2G9VFC<+9?$_AfD2Rsi?70uG1ha; z#~Am~Z=vPDv0y#NxSio@gkcYzCR_olgj^Q2#n;p6OY!0%dwz4=oF2MEv(iPW@jSq7 z2UiVTIOv|DUPL8}LK>Hi@;eYgDq1l{qb@OZj8q0_X!>pas+c2dI$Hr>nuk zsC(0EUbfs}t=g%UYvn>EpPiXs$L7nxTz4?5VIS{18QF69gPOg8iBdiHd6xtok{M;G%!f7&}AciMwy^SoYbJ5Ie?arir?SS;o9 zdH%Xdr=KlzUpCieb5SzqMRQs($9eN2Z}xL$H*2;sX8pu;PRwfBw2sZ z7X+dOq6GqhXo2Y5Dt=~$rhBK^-JVTvGNQ$ZNp|0RBPW^no$B3}XWuJAs5;*{=boSM zoZ|bx8ApWc2YmjH53Zx5qmz@9bUK~MWOBKjWm&~y(YEbMr6Pn-O4aN2X0zFDx4Ydg z88#Vg^?zR9h~81k`xm{TP&&fOZL&19?A1D>1 z;#X6mm~S!rM}Cu4PSeguVtIDj5N<#dQ9YINy?5i^w?- zfdq_fL`@r#<98lJisNA11Dx^zzrn-LLLz;+hDR+!oaiCrt%y(=?K}zu?;~jjJ*3G_ z1sA~!Jg7Vh2bpZRCW=uFTVxDSI}-6C9e`57v=$>1so@FXL_)sDoiJkLm1y`e`KV@u zHfS6#@1cYcWT+`T-@=C%#>gp_u>Dg(`hkZhhhYs(6g=RLK*pKNJruQ{{0ONNR3pMj z#7H3qxEH7jKcoPLk&lvyb<%Al2&eb(qY<)9;N&odwS0x|V2ixj9<2^^2y+P7gcIc0 zI8s!3!+O4QUh5m^lmf00C^X?72XkpqIo4l6tUMn~@skEa9gLC@r-tGqYu`h2lcpfJ zb#fm3dpa;yiG?2;6d7SsjF>Bz3PQF(c#%xpT4z20qSb6&Zvpln8hLg-FR@2i*7%4u0uSr*MWJ#G#Me@93Vi@3A?!qqszH?;98c zPdYxse`be%Y!Mn$MLHn^9!RB~x9Igsf@22Sv}Z9o$^Cf;Ad={?fhO!Z4jxHv#XIJg zR4BxE=RC7}3SfisMVSA;pb#C~(;bghvSI!k^P$XGO(i4BXR#U95QZU2Adk5Qhi{W{ z;4qjA#vQCw!r^lS^9E+1Jr8Ke0o~D#Qs4*L$K~Ys*)JAK=mp^(D8?PcfDqJVFp?;h z@xXf#b}L7|g^2Bp17wNz8q7&J%N$P~2rCe=L5caIHu&=7U`sHRtR*HBD7Rv+NrWN8 zM?j#C2R3mrwg>|Kh~y(yv9AK~!grq7$$9NPVb`IPXtVPnNj~@yBAEIqQ2AG0P!bVi zcf|>9p~UT157^*_;%I+iN#v+|NW6_)L%{vfjKq%;pXULBA09l zNX}aaP{pqw9Ox&!)wF?U%#HDZ@LIt<8^6&p-gE!c3$owu4~N6iXf&Bjrqk(cHd`zf z%jGhTU(V0bQ1oZMkyB#eSG?`GpPpuZYF4;Csh=xQxq7G4m zND)U8GAJe!`{T8)ca&5AoW4fKu^@xT&>NH6SvWt|LQJbfu#K4dR$ zPMgzXH8d+-DmI=6blaip23@+;EmOTfl`L6lx@wdzYlWV&+9KDeWL-N`E~Jb3Q=&_v zK2evbMN}tpi7E)_)AitC)V=97uUcwYt9GiTTFI*9vorJS*nAn7+YZg@G!oP;Q7uRI z{An?{y&7B(yQ6O7qUknWl-nv=Vu34}tdw6-;9=6Nva=x5T z=hM-2JQxix2EF!0r_pYzMy={r?TTG274ud;lg)fu%$}~Vc9Ze#=yE>jPkR^RPJ7U7 zUes%C*R5A8F8-Mn3dMXrkN<1w^s{XqO6Im?E{o>8U`{P_oHsA?Wv(75--4REnyAfB=I40|NsC0|Ns~9S~q(Fw$7LSDHTq0|NsC1A_nq0|SEq zt1>VMFbFU(2nYyB?~H$vI4{{ZK4<|$1@t1t+I8X-L#0O@s}5oj zAoAGy)pw=)*Hppm14El7>=0cp-4%l|k6*OfTd{YZTvDf;l@@EA(*5HQ1Fa1d)zq$a z=`z)_c`Q!}5V9c7!D$^bxFsi&K!qB+qP+%2VGspG$E=WTWP)snuJVpx<*86bf;#0f z7s_S8??J?2tcVt|ra2Cpah~B`&u855zWq9lb{RXCDYO zO6X}0ZwXL>YxZ4j1d(wIHaMa7UXM;|eKzJEPkO|9WbqG8$k_&W|5X){08*=Tzv$I#n zwVl*rKQ&%6B02cBR>3>UW#V$FY3;ZhZ9t;L;vKe}Avd4KNtzS+$qk~wf1)lTM@bCf z{wb9S;}JZplB_dB@#~xH5qE3?WoB^lXDuQ(ex{6j$8B>{6zek{c$R~7g_gVktc8Pk zz=rO)!lXqiiyePU8HYpDm?wpS^;Ws&J;i~?la*eKG)o3^*jEBrJ$dv72s9PRBYDCG z-Re5mf@Hl#C^l!V+PahB0|KT3drH~{laG6 zgKQ+_c`sDRD-#=BqWAcf4{`K&?DKW^KfNahgTZJt8jr`*>2x-m&FAyW%ggKQ>m*6G z+wE?*dwF?zeSQ7>`SX`AUvl~U*GlCdOMZT*w!5 zS@gf4_X(Y6w6#%K1ff3LLxUV(XOLz!+uF{GsndkqdvMVNC$Qq`5gS~ugA03(%Dn)^y;uR+m|D&+C#bd zGQ>?67fqbi(K|+?glZ1O49=UCGr!cA#g3D2R&#YbdtAzt3x~iNFaUZ$8)yJ^pvr_k zT@0Vby{mrfye&t5ty`=3m14D!n_FKe*6YyPbTMyW?4VbHpNGA8zMS5i4=+Z&aj$vW zs<-NFcd=4Ta^ppIaGvRo4x7D$dTal&>i>NG0AAp08NT8-SkjAJ&-#pK_+IRKBJml&AQVg2^I!3a#>kC4*Zb)e8*F`J zp{!SYge4waPyK-py!z;h-+3W7uKEp+2)$3P|ICYbzq(%S8t?BD5dtm3m^Pt#iudTo zo_~d^cKw8iT=9HgjIR&>0EcTJb~pA+}+g|ArepIEShykULSJA_&a9#2NP29 zaR)_!F-&C~G*uD{goGo)fwhKZLf0g%BC&A2Y9y<-^pn1&u?7nfccc*+RXm|6!YzIh zT6*_xRS9FH=YmEl6s7RqT%i(6+)zdu%!&VG-7Nct4N&ASynoP0Ph}aSk~)kS$*R03 zawb4IZaE{C(!Lf8!13<|>z-)H zv#3oXxDt{vk*UvskN?F29=i}~X^t_O1M9<|U=WhO7mG+5n5b_(5%Wz3U#@63xkKjk zH|&LVB{geY2^GW%YU{l-)_?>>b;Y`?tluZXPH+9$dd-Q@Y_$2PAmXrk!G`K47^69J z+GABZ!I5LA0oaZ$5R;Y)6FyVE|GZ(Jd?C%*Y=BuQA%leEm$kt)NM#$fWcy-%grATc zcJT>UoM$Relu=a@4Nd>iHBvB=mrsT$f*(B%JtO-{x!KiI=E42PI zQzi>jJh()4A_$4Hnyr!y`Dk`o8^D;=!h5D6j8)=^Wz`nm?_3$STlr5UOcBZQ4=#o| zGx$g*L1Z?E^vq4m%!~>@K%*wSUufLg&D7BR2;RlaVw+YjJ(kQRT~KimK5*@~5-e%s zZNM~{I&!%f$isrv=5vK?CYMg3_YK`IXg{O5M*R}<9PR|A zF%E|)_K@!&+dx|4pp1P7ySd&ay60$5(L64((DGg~rPOmmQona9lz65cNDtY2=bP zZ4{4d`JT+R-AtpDt~jZ~e6o<;2abV0&;?pR9jE{$68dsBcpP;vdd<_89M;O6ag{jx<%A7aAwcvCzq##vtf7CZ5%Z#%?jnt6?1WVG)whQlbzvy zqq|pW?jBa`yo2=S?Rm9X%~$i;d^VX)Mw9ViG&~yg+DDy6yD1yBa;5B)oItYb~$M~`*wcM-n@QYZC>ZA&1@b|W*6hhbT~fg c4UW4<{Z_kMZ!{~iRw}zi$I0dMKYsl9H&+j=5&!@I literal 0 HcmV?d00001 diff --git a/example/assets/slime6b.pcx b/example/assets/slime6b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..818259789bb616768178a896d93518b23f68fbae GIT binary patch literal 2440 zcmbVOEpQ@R7Czn6Tb0_1h=@Q$AP@)y0)e3FwLl;cx9axh-kM8yBM=A#0)dD?AP|TM zY72pgKtv!A5fO;&?dEU7%u6P`_foHTwGpY>5hGTNoT}OHc51iQ?(&n+_d7q|`OY~F zfButoM0os!=U?%}$;Ung)t_jtk>(!X0zRHce`D( zT(XSU|M~bq^xv;P$okvg-@VZ9WU0TzjKBYbexr9<@D1bkBk6EMzmnoRTx}_kK82EN zrUGk8dkVw@Q){v{<6_OYAJY^0Pwf4Q{Cmb#Ob;fy;6F2d9tnF%_S^9%vV`WzIpb0U zD-s`=<|?93Bs3E$Ne>1xgbz2E@HKrTAGu>gZ381KCJPuB(hm&?FUDc|28Te;4eAH6 z0ey+cnuDf*bBs_3D@+|bcq$tx-!fqg-ivb-EQ2-OlP#oH#&OHEl3F}69x;Cdqz1$| zePAL86;A+V0Hvh>Pks-tCq#r?8~Q+2^v2+YNneY1<_HHyP0bIeN?Ad;r7da_N}>|M ze`kCt{O}%!H7>M5ae_a?JQflixTg(;nuDJ-imd@?_P`^dd}{|xp#{E*d=VQqhHH$V zOI$7?-bYwSE&?Crg;GSwsKttJ@F^0YV0|(nkUr2V2m^)GTF40AV50HC*va4lWS(GsHm2dB9MK#O;`nKk9G|uR|62ULDq%djfQf&F^%_oGM)*gtAd8}3l z4Ba=NBQOiT;A&4;FJzKSwG|0jY@v;K31VXgO}l+%Ce`4EDg=gF4q>apoLVlc~MlN9B$Jj0G3kXNRVUEfW3=@fbDMx)7OGM!Fmv)Rqf&0?{L<9N5*?f3h`;qdzU`t|GAZ{NOU zvf1yY(m#vEmqKBm&&RpkZ8m$I$xPDe;n`U)m1>`!Hcn2w6zccE#hV4eLAv-nJWR+UQWp1%t$QN_jd?ro3Z`A!l?PqH4sD4NChS-!U zV=51+)T2U&at+EzI;+yDOUL=%9d&Q0J)`Co)kjntlGmeZm&z@28&s5(XOt^brbK6X zN`cVpEA4i4b3>B}_50Lnk>`=?(u8P8)FbK;HHaipmB^(7y~MPc(|k%?WaJhpo1xm`dwKd=xO~W5+@3b4$8zXYx>Rf&26We<>jqtV)GbrJ zK$Q&TQ*_lRUDgUcnQyafqmuF5bh(f!=1z$&iTXrcq83q|$RnzN(3k7M!>D`PYhJbF zuvYC4w?wrpx%20n$=%i9de|Lx8y8Kl=|S#%DIaG> z^K}0z)ft{Px+h-qxa>Ivmood;=goez*evFY`E))VO~-@L@M6$wUvwJnrfk%zUe&F* z#Zobs&!sczFE_L2>#N;ld^ftB5Bk&I#kkWRG@BRoTHEvL)ryB7JcU9rm&@U2P%3qB zoqfsKl$=G;nHQXC-Wlhd%be5CI^B%ZN;~y4$2)VXDaSo^3MbC~|XR+?QXr%^kl74WhK|m7YaXq{P-8V(ZX~9 literal 0 HcmV?d00001 diff --git a/example/assets/slime7a.pcx b/example/assets/slime7a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..63b5dee8f53b4391b79c055b44a54fac04ef9abc GIT binary patch literal 2476 zcmbVOEo>@L7Cyt9O`1(bMFpY)fj}S-2n5NFs6ZfYGPAumxy%d#fj}S-hzbM(fv6xG z1fl{_fgnvcsX%n^43xe{e;>Qs-R)*8DxT-A={*>1PH-7Z-U zSse9$zJ3zn{V%d=O6oQJgRDTyNEp|@roWS=V?0WwrM04W3Z)wh{1+G*uIQCM{qAoT znNLg7uGA_95~lmq;VM7y zVbMy%^Dk6;gp)GbC_nX?{!F1O+nVW=#KtCDI|OZ7zt_J(eD9*RxI3GaW16)K-_)`|QYWH22d=bF@0g8H!zmVShm z!OaJR(MWv-wUCWL!&NOc)32FmRDG zd`hf{hHn(y@a#$dkq;&EgE%yBWR8(*@kz!1v0)6!>d-1mUbF^k(5;F|4Q5pKJOzo($xvT3kiwQ zmmf2zp@EAMMnZ6+DFqxWydn!+k6^uq&k|gDZ&)q^2YE+JY^dR7;_Z*zCFhY? z^az<&T;rBv>}!nC|M0ls^#KfDF2OMFH{R1^yFT-s2j>_cOMF@zIQZA-<;#B|d>up* zw^GciFe?Ng6zi*!P-dcn&s>|w2WouO;OXK@yzVf?oXE(vTf0FgvE@hVnl}%cBrfb6 zp%QvqA>f8?aA7Cs&Sw-_m}NjN4<#R0tRNGw_6>wZVJiwFE5eeZA}-F*!e)RAZlUD% z4lTZCtpKU4>%^azEi|}b@g=c~ubBVoyQ$yr4~N6iXf&Bjrqk(cHoLgESS%KC9B($8 z?RNX}^78if_Wu6<{rmT9F88Bc{%5K5S}bl0g*czT%;nCq*-0idJUHm3)9wBJ#@?Q{ zyL-5^Q?l(G(aYuZVK$CWPcFxU+3@(Z-x+mV!*-+BP@S4+ib}2G2&Z&dER^!OLN-Ia z@6`Q9?PqFksD4H2g2a?6V>%pCxktqg2Y3it$6Z~J-*y;PIuMN zu5_u?cp1=Dht3*w;!*dI>P4z#sgS1AM){;x?5RRqFU9-v;)&L$f-K1a-?)%aJpGzL;E{ z4$g+%QMYm2^qL;zE|d##b~MlQPt%>@extkRHFpm^yXa7M`}Vxvt{3aYd@-NSr=#h3 zFd7~YdhO#*quo@ETGgvM6{l1#tHuLRb_I!4_nT)SSC-Xsn+B+V1+Jk2ExL#{} zUcFlJ@S~_$Eamfg{8UP(UmSZ|w%28QQL^Vnds?u^dHW=9_j7hPYqv6X{lNAP>}uL} z_U+=Hy?uROZ(kSd?R*hW=a=K@Y&f3u1}EL)eyiQBH=3TRRjQ)wIE7;I=g*)22J|i5 Ad;kCd literal 0 HcmV?d00001 diff --git a/example/assets/slime7b.pcx b/example/assets/slime7b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..c17b261c505906056ff1556ce17a6abfc6010891 GIT binary patch literal 2490 zcmbVOEpQ^~7Cp`DtxCO$h=@Q$AP@)y0)e1vTObgKuIhg2ueRxK1OkCTAP^A<1OgF3 zy+R-&5D^G!Dk1`r>TZ6LW%4t_%w%V?uSP_S81cl&shW2#nKkS7k%XDt-*eBox5+<$ z()PgD&;0r~zxdkQ+dDWoNG6l1R4S9nx{tquTA7wge8BGrjyI-?k??{$d_-W~n#%jdip*aEZG+!v zcrahZ=Bv=O{&lRh6;00XW@wq!6&~UJYFZA1U-3IML+3bjTraW02j(&9UaXFCJwNch z72ZR$eluS&#rND`g?G@7S?U9SLetZ(X>g>Vssg7FJ3P=G)9nW?Ari9qS&D|xPu$b*EQrNr`IWd>%2(Al zxQALXJYut$1z68?-{1}&Nn6sSJZ3~rs7xz(z%3F^XtB`BQK3xgxgkfEcK$uRen>Z` zBJhP!5&2=@DaUhS%iZ}|iI}flFZ3fx_MIx{@x&K|ibRly(DS|cC4%{0BJf=fz}6g{ z-6ARL@jdjHfgdIiY7Yd=F_}v;#2dPi_u}0OGoeVr1jdAld5eHW6Yt0=Ep!m2WP5Z( ziO|=!^sqB0WCGhOZyAIMj^eo58~WVE4nN6sIYyY!SUz;*chF(VauJ@Ks zpSWZ`;&I7zkkH~F^0gP2BFUi)9|#X&LcsDTArml~iJXaBXE}m|y2=Fi_(x2aH~rATNEU9qdxi(SlwD%!pm=C5~hyAHK= z6pa>FKX@mC--ygUnV_u1FAlN0v=fvl!5tE(;+V9nAEiQWF|WzwijlWl2s29&S2@cc zc12xpv2?jfJBVCTizmQeHCczM^c6mcl1dRA{UHNb(sHyrhLC92S#TM5^z0UsERrNy z>^r7Q*Vr(^S+lB0Bh$-#9E!XVisih<4K$A}&ekl|u8wv+T~X0zFDw@*(`&(F_azI^%m^=mql`Bp6cw@~<$&u??NIGer9WX{v+aVj-9I_f5q zt;56m!GXQMU)tL%=z0ctx}4lkNAcO|<)}X$oSgOA!%lP1s(0(ET{RnKxmq?%qfpA{ z3fW99okI63I-k*cL}P>671RaH3Cbgs1}JusZzEerTH&aILj(J{?iD&0Xid>LLv4ua z0CpFZ4oXcJbrckGCbA`@i#W<5NkGrf*lcidf$x@b3`Oc(`Z(x}eAl_t;m)BE(vo~R1DWR4}IgMNrXZ7M~HQ!aamYJ!S)3%W+<&%Z%A#e)xfDX_EYJd%t z3Fz~A|9;rH>^9DtYEZ4TE5&LtSI(xV`nQq(+}GD_OlugL=oC@Sz?eN=jIYl6=Y!6$ zQ$K0g4V!f5in%yFoTYka$@bu|-Z`)v`z2e?8%S@TAJ^OUd_AAdXOr1vI2rYagOh%@ zb<(c48meBc*cGE}6pDpxE}KfHK3_~9&(AjF(be#D*6&TaC!=<&-)NlFsx8~DRmwL1 zM9Sw2*=&}7I3<%$hQ2N8>!Lm{=(D^&$?2o4ewx*L8NHL%n<>3^q}xY&C8-;Sdj3G) ve)_WBewwehvw1w3U5+Nx!D!s=pLR}q%~q#YZ`i6@u9!u`$mR3jzkmN9B@E)j literal 0 HcmV?d00001 diff --git a/example/assets/slime8a.pcx b/example/assets/slime8a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..dd83416600366673e6209dc2bdd00e823f62ba21 GIT binary patch literal 2797 zcmbVOuWuvU6+Sa>Dn(U5K!8Djfq{X6fq{Xg4hS#^xYBiful9Oo3=9kc3=9kc3=9Gc z0<6j)AiyBNz^YOyz##9=jP3l`yzD-|*Hnu176dF<&{kWOthD{k?Dh|6?Ieot`R@7g zo$s9S?|`PJ~@2r|9pKV!q30S)n-NiqR2=q+?4)FK}%a1D{Z2f{y{nx%IF}}LOPcIM(&Tl z8Fx!fE2IenH&RkXmVPBi%e9a?d`qseS}JRl31Z{Iq#i^wyr&?HLIr15h1Rt)`i1mQ z;*GPRz=V-jQs55$kt*1delJ=p3IPsHtgN&ODY*2W9JLiuLV;C@wg_aEiJX|;(vQFC zzx=VO8T=%)1yJBtER{}7l+rz%t%TLFQSwo!sD)}*63K@)a#FgZmW;)pn@Yl?Mqx_c z3$+%BY=R2otmu{^3w$i_*&DC2Baw3evfw9$_W(%(q8%H7pA2W5 zHElpUBbnCB9}+bnC`QSy-iVZ=ZUD1JOI!on3`+!Xu^U)v;BAfQ(T3K@%xGAVn@VH~ zOc<+L96~s{hnmG`AQ8qxq?C2JtAiAUUyR*VhOzagdS*#=V79APMA`D9Dg|7p88I(SmU_xN{3pBC9lDOe%#=T~vom z*2KPAYcC3)54O71LLrV9|Go*0q|gW7))T|0PV?E z0LJ?s;|c>*gdh+M(%{MfPQ%EFta5$^#zlfyGT<9yZMfAc;c3Dek?Lo9K;tm4S(n+4 z!c(XdG5{69d)N^HBgibXojc2bM9DXq6+*x;pgO3#iRyTAQg~!zHc&_#`hit`x8g&r zGS}IyZwm-*wV53g(Bvi?&Mg4v*@nVMVsgF>2rIAYuz#o%D$3M}!oHi4JSYAZ%M?{0 zX~4k?XNI^~C(b)ub+w9hih>Y~n=VjMD$P4E*17|wCi!+6v$Ec?(9A80z^-Pwq0N~u zsN@Oz#d)Lj8h91D7!Ksh$soy<44$wtLP!g_Bv~vlnW>n024*eI6LvuBTbYQ;`9Mzz z&s)FQ8FuRF~@fQT&Wff~| zZRqb2_7IO1UdFsZVn`Wb8H1INk$s1;!vY8~V-DsU+aF;x9%g@~*ojb393;5qM#ZLc4fI|4$G1(P%Utk0+DK`T6;5Hk;4qS65fdC>mr zpFbCh#V@tm->cORmCCkUPD-WgV)3$2IM3(D2M5DkuD8G6+1qRE?jG*!R6Vaq^m09W znopC9v+L>Ue0*{->Q4s8<6dXj(fyX_ih8T=3%`0;DOXFyav@K{&ouZ*y=Uq^Q2U1T z6^R+ur*t@`+K?)JDs`x!>EMX=ecCM#Z)k8uy*YI+s6C<9m>NSm8qnb}`5mfiDhnzd zQlUl%Wy&F;*H?OYpsOo7Kc~@%j*qF)Am68RqA}5ss87@((nLo@KE2R~gfu2sNs|UlF-eZE+;e|Qol=DkYA-@fm+KihqKqp*;C=9BXw z@ASI5(>iJ#`E|cqtCq^8d?EkwYW{qA@o+x9nVc<7N3-F{wBI}Jc2C-^UZc@IsyFbh zvQnv*N+o>P%;jEuZ(H*=HE&t<78P$+_NFE8tmKV~-k{(e=e_oU*EsNwa-P5MRrb8? vhfkaBhvjCwSSGW@^>j8LPtS*^XM>Z`ac|J>bQ`)=KN2qB~ke literal 0 HcmV?d00001 diff --git a/example/assets/slime8b.pcx b/example/assets/slime8b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..fdf81af1f71a945931b028685246c8d9fa64e472 GIT binary patch literal 2734 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 SCOeWE8crmW(OAs){r>>}L6V*T literal 0 HcmV?d00001 diff --git a/example/assets/stone.pcx b/example/assets/stone.pcx new file mode 100644 index 0000000000000000000000000000000000000000..7b2249090f1b6b14e73aefb5e77543eb2d1fd805 GIT binary patch literal 2433 zcmeHJA#CGF6n&NEr05h75MU5sU|?WiU|?YB1_b!-yp@50L4bjQL4bjQL4bilfI+(J zHUL&pwq(rAnp3FbvDGJkN`wD9bXXR8>`7*G<#3EX#2m*L8j0#}UO5=+XS? z?H}}?PL8kD?sZ|$Pv-AWj^ADVs&>z=o=YF!UwqgG+U0NChSSS0qU^(YysP;9`>y@- zt2m4QLXXp8j7zN;;_{2=LNbg|m~!p%R z2oJ0#>CG_7`khJA9!9Nx=*50Ba_zu2y@u}SYD1+umFtoy3%tm&2p-|z!@Y&GfHi|T zhMq!AP>-MlkUR)BI1@DuRf@70%;1mV4&n4+#b`t@0%$(!O;8)M2~meo2dAJWg2@4` z*H|nt9;4So7^2yPVSrNffCvZx53m6f&;W`R?lR0r7$rzTgiSOJ7!-7sVK&4dMijtv zVCtYUcn*!}rk<{)&JEX^RGqYJMnv@?+p9Ka9tJi#2K+iK2`UGXLElz74Jj~1SLbb& zGbme^7+I(S9UugJpb1!j0jN2k`$79A_9ubUZ<<$CEh=Kh#UnQCGhS4+{fgm~>jsf1xaInGzMN0z)6sO4 zj?y?y+Hurs2X4!=UB|Q=nxRpZ%8D$A0?V=YpY0yeMx9vDBtKk}k zrKv`K(~%@u5QO~x!!RpKmI|3GWGa)9L{gC?0_g}OW91OkDGKp+qi2m~Smfrvn)ceF)B zL?9v%5fKp)5j5eh>9iuEBBCOqqT&;k5g$$eU3=;G^-kaN=Dp>y%f9`+-QVt~-JJsR z@+E&BOQBFGl}Zf5RI62v;{-vFB#Bb0D2l48x~?0BVOf@K+pg>~f zTZ!|*`Gz;|U!Q3+uN3q1;ZIU@i41_9N84V6}a5d~s zdhLGThOXJNG)v3j7Gxo1!$H;WF-}l6-I8V%YZ?(L*v0B9TV&&GJQxq+K^(?WI}BQF z&u%%UZRuvCuGOhRC0XJHzRFf_hRIdGH}6K1urp};vDb7Hh!G=3j9?S)cD6PG5iufSL`1}i$Pve8H+Q$Gq$=z4x~pIJtN!`ESFhgd-+wz9 zpqD@T_Cp4P!DuvM7=~q8p65kTlx3Mxs;a84>!xYiw(YvE@B3jG;)LP^^rU?{{fqj~ z(~GZ9{qnT^aC&k6<>%qkhpUg@EN7ozQq9N9?7RK1S9FuTVaM6y9iLxPpU$q%`}e>6 zJY1f)7pGsJ`qjmMEP6W6DLgWI8UGJbuYrG~{YBv4jn8m@TmB2XpS=73F}B|5=d)M# zz5D+?{$B}=v-kY-JbC^<{|x(j@k<3Kj^i{p}+1~MT$uwR$g zRo*P->pZE_*&+_I&`W(Ma?HTeU0tWrUq1MS``!w6b8(Bebru{UY`1<-br_-|L(v0{!ibh zJO1XVhN^vEb+zhW-Hs@ZzB=i@guAnM>$8)y?di$!*`KG4@p@8<&te*eg@9B+KyKm1-b}yN^SmgEvMf_dRaMnA%`gnhvK+^8UDx;hFbtz8isN`R8l`EPW!ZE(ozLe* zQLI+0vMe{7&33zeczAexeB^k3rzro(^0g$DqF4yRjOQmDH)7eS-3}PWZ8q&jL$B96 zwVF%_4{T=XWtJ4<;Vc&18iWow1#J;b z1!%j)YK7?(qY=Uoy&iNOlwt%#Kmd4v4H!TdpxEHLz%oakAPEun(9@w)&`p6whDnSl zfak!_KxOb8%=xa9Zl&QR*Pk_=v~EO1^v0Tv!6HikO<4lD^O2a&A)A=?32ddMuq z8hiyN51Oy1qs4eIiTv2N`;PAD72TpD7F?XO;h6EFrtLR$r{2+tM8TEY^|D;fm-Bp{ zr+FHu$smsUgTU>3w(A(S+10yLrLrOmqQG+O{WM!o#;Z}Xh==(gOoM*nxdX@PTc)e) zR#(+4;YpG#2tp-ChS^Y3DrBjUxlD42q#{WKG89P26Q3hJmRN0~w@H^Fv`M4}DX$-v n<@J17=JO)WXGxkx$tV~M{eIYUeam)q!&JMPLa8W8yWQ?z{@p@o literal 0 HcmV?d00001 diff --git a/example/assets/swall12.pcx b/example/assets/swall12.pcx new file mode 100644 index 0000000000000000000000000000000000000000..d34aa68f1ca2874cbd43b19a7fb1d577bcf4418d GIT binary patch literal 1756 zcmeHHA&lcz5Pd8CO3^B-3&?35DUl2e3=9km3@r770D}Mn0|NsC0|NsC1A_nq0|SEq z0|SEqg8&1AfB=K&8W0e$z}H5)RJT&y)q({D3j^xh?W$YpROwhNbw(QfKbrY}=Dk1v z`iH9?I{C3vwbSpGD~hY{PWmh1Ve;-cxtX-LH`kM&ZwJ?t+uueP`|*qYfBmn-;rCaD z-aWif_0Vznm9zE>iT_;ohtcQBhc`5T7)^d1P2T_AGx{|6hVT71eE*fWUoNn9y^cP; zba8Whb-c828HG#4D;i%X;sV!OaDEzne!G1$Bo|`3TW%h%yQBNvl=XVO!C=5J49l`S z&x@ic%QB@@RaH&X48yQ2%W)jf^MW9Vq9{p{G)?n7FN&fp%k_F)*Y$3pZJO{Hr zPm5Ms+;Q{G&?)*xLev1VeTuR5v9hty5lmr8P&tSUmbS7mrO*&Pjki@!r|eW>WMK#_ zfCvZx7q9>wm!FzGuHw5i*o4l~H4<~?&lFP;Re>wXIU{XM_C87rsfIv-$%9tMb-rE3 zt0YJRd+z9t-oY&@;*LuzHd-=%GPHw%?)0ZRktn#PJ?@)*y|1gfDykwavN%oVap=u` z+j9)toar;FQdyA&QD8ataa|r)%R`=R(?u0WML5rVFLs={WqP`9%~ZX6c#gaIK7&7*H@R*pRY%k)9YVvUgA&h<3D?TchlU~ zf2sTK=Jv<8x8HsLI`#Ho|2_Htz1#m{F3sz0{BYB}+Rj%&@!Kby-aLHd>Y)ej17O{I z;=ZcvzsTul^z+LnrCc39O6EmHAA0(18NE!VFLd>A*;g6%nj8!UqtS?A7?x#uo)<+? zmSsw*s;Zi%8HQn5mg6{{=LJC!MNyI@X_~H9t31z(qS$V?RaMn>-84$<0> zr|0Kqj_1#c^1CeGOHwO}wIJ+xe#3DqmQ5y;kYT*>*dC4a;czw>$b|5~X_wy>S-oEF zvbabV>&Q<7H}UMyHhfcaG}Tn8M&+3#$^tKPEW&35kMNFg8d!T6TWC4d46_7E2+4!1`XAOS+a2W-Fq<^aVB_cabB$_!bA$c3vzr=X`A`vRL3NeJJ8p@GWaIhfUXmUq(f zj$7=;PChgeq6U!dQ;fZjjg6&_U=CcaC9UFfV`BQfXxTrm|<6}W<&Gt$N6;G?jRY6ujVJZO2`uJ-GAlLTpC zFC5*``*DkkSaWH~Mr+1T#&$5$o#9L;5(U?G$3uIl4pmu|d6}nq7N^M~4!wnMdyZk7 zbA3)#Dl4)e3M|JyZj0k)-K?^Gx-8=;4;Pv5#g4PEOi$OXxvKZzNs=rGLXRWEoG57( za!^PmlTsqNNHT#e1rqTj;E2l-YeMu1nKOiri8LbZ{nMenuMTZl)p@zg@*>GrVZ00$ Vk?RGP?dXQ7&NYQnQIgK*^B;MH1Lgn# literal 0 HcmV?d00001 diff --git a/example/assets/swall15.pcx b/example/assets/swall15.pcx new file mode 100644 index 0000000000000000000000000000000000000000..e386099c4e0ccee3572d0bc30c533f43c908ed3a GIT binary patch literal 1770 zcmcIkA#CGF6n&NEq^L@@0g>uTiDY14U|?WiVCe<~7z7v?7#J8B7z7v?7z8+#buusr zFfa%RFbFU(2nYzsWxd^K6;P1d3kc}xa#caWfx>`uHoLm3uAnP*XEdX)ng8C*e7!g4 zKb_T3wV$i5R{gu%8O7OmgZ>5Fx8H5s7w!G!#d-VlW#hbk`RCPf{_V^BR&jZ?z5e(g z-ty}D^WgfIo99c*!Fy{tD6PTL8hogt|0TSLxv@@=n^)$)Kk_fD13tbA@WPodEG-AW z{!xvGPt`cZuekj7dCrHc?X!x!Rq=l?&tKo<^6vhtZtg2VodmT1qNumk(hq*lN&mlp zbHc^;t0j&uIqkjLCdbNDL>Kqx6-&MHT&-4XG#U)Uuq?~-yeNvYEK^EVRn;`jFbvDG z9LI58*Z2J}4C6RXl4LX*Wm%Tz`E)v+&*x=XuGj0$X0zMv_WS+gilrdTcz(ihBbJR@t$<=VH5E+bZWoSx)A-WoGtDH{Rj>O196Bq&^-~&Ct0(2bzZTc{Y zZWDhNIOCoXn_aJ~n2M+hTuu%t*+*pMA-9ld@D-RmXtAA+7UO6V`-yM&9o^BZa*K*s za!J94W5$b{w%^d5dPgS`1-IF6SDV#*H818xR%A(*MoHX{0=Mtku4C9{SMO4l%8D$A z0?V-v(|kJ_uSe-385U8P1^v`>Bgg4mrmO2#SJf-wNs=rGLM2Cr*-^4l$Vwq|nG_Pq zM3M?*D3FjRK1X^iv06lLkuF1MlSmD+xqDn~?&hmaF)y=XmS%aJj)G|D_rsp+TehPc PrrOmMN<~RJ91i~giI)Z3 literal 0 HcmV?d00001 diff --git a/example/assets/swall16.pcx b/example/assets/swall16.pcx new file mode 100644 index 0000000000000000000000000000000000000000..8b8139f106fe4dbf6964c0266ec0c1cf3621bfee GIT binary patch literal 1629 zcmeH{FN~{L6vn?v?k3HolULDX*rZJm2m}IwK#=Se6$k|43IqayKp+qZL3@F_i*`2;Rl#sH2;~*4`;?j4=?xQmg$K3WHOn}W*o=yJTHo( zEX%5@Qc87QH%-&BEXQ#?&kKSeilQV*vMkHzrPEjc+<4MRP|X=dRab7(q0sIf>82&wphd*7tH7GY{sV3)nuX)A_CWa^;8$f z?Pg!3b++CnVIKKe;Kr^M+NNjfwoXl|t`u37L|Nbwzax4@aDjJ*bAZ*tte_WIWzb?M zAtV=qg@u7R#Z-mPiu# zJ{SX~D1i)!fe>&33ornRE1r)yHE0SH2@)SZ1EZkVBMvooIkFg`2g?LiAqud&+o~Fr z&6BX+&%J7DWkiply4Mtk5IYwehG+#xfi6JiuywVKt;Cibn4+r-jPfgmQ>8hu0TLhr ze82%1KE6u&x=Ww(Xdio9-^y$wG&Eb2bxEkntsp~6P9bUsxrs=FErK?ewmfXpT^8k$ zyY`sJM!RKAJ_>omCtEJe=591&-gL!?LLv0S<dAVN_vf) zG}5W0QAj0|LLwW9BqE6f;`78=5Vjx&N9dd=Gtxi5o%-kQ)HmI+YW77{XGIyOn`oW* ULFBj|vuxckHA-bgx!rDm12I~+Z2$lO literal 0 HcmV?d00001 diff --git a/example/assets/swall17.pcx b/example/assets/swall17.pcx new file mode 100644 index 0000000000000000000000000000000000000000..b4af201698e2f71a76c32086712899723e566ad0 GIT binary patch literal 2332 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 T$1p8TFDXS;l4V{HmdoY8XDb5B literal 0 HcmV?d00001 diff --git a/example/assets/table.pcx b/example/assets/table.pcx new file mode 100644 index 0000000000000000000000000000000000000000..351c07aa6f45df7368feabe6d3fa4442297670ad GIT binary patch literal 1499 zcmcgsEsWzv7=0_bQdC9SXcb@(5MW?n;M-V^ulDU31Q-Mu7#IWu7#IW?1Q-Mu7z7vu zSd~FQfI&b&KtMo1c1*3lA?^JZ)q^dLidGCAQH}f?5 zG~a)BRstDs$^1M@rBbC*p=r8aud^)6^SmTUs;X+5rt7+Cn%!>Kwr$68T-U{!iZiHZ z*_Y~X{QnL74^M{1R+N87BNKCM(MZJW=0?1K0f{KR`)W|UX(q2ePLfy2rSd6DOq!RE zgh{)ihOo`$ALLCx^R)SABavQGi(SOak5bZ1MEO&3Dw1s*KN5U?gM`>fU!)y2h4LQP z=fo<(De?IZVpIGXoAbN?AHMKP^3}i=c_WoFkdy>zBX554v294Z<`x&pIf(DHv1`75 z@h7D}G=6$blnPOHjcpOmkzRc$A{ha{;15_$VZ&Wpvbv5~h| z@_S^EQ^?nliCQ5-Qb~%))eYp^Lfk+maEs((TTLzqz1kK^UVLt=g#Pw#H48VIF94lY_?b|R;yK-rg@(4_xr=)a6BHLo}QkcpBa`tDav1x^dJa(o=-V$ z$+A<18Q1GUt>)3RQ>|K+icv1NN+pS+Sm3aX?`Bat87-sXEEr7ue(3fB$MP(*-_dPd z>u9R3N-cqxIF@JX@Sfp5!nuc?qq~N=fF47O&_3Y3--f9}mB2FStWK@?D2(oy!Ln+{Wiy~O7m{@t zV%^8o!pMNzLRWysfTuCBlu<|UOy1F1OJfYR-V$hus{$jy2V9^BbO8gn@Gf+h zo;~TAL8sksD;AggRUW9Tw{RelcE8hSR_eU29+)wn2`YSNN0( z=XHNV_k*hCRt&q`GAKa>vp?Qv`)rl1=Bs%;kHa_`hQVOyIfK6C*rwHK8*NonB}L+R zuFljS7qk26Bp*lXa5NwKu{VhN&d|08-Hu}z-L__sJ5&%Pj^oJ9O4A3G+ACD1P%DX= z3slTg5l4+U%4aE;p?Yugci{IN Uw`V!Z literal 0 HcmV?d00001 diff --git a/example/assets/table1.pcx b/example/assets/table1.pcx new file mode 100644 index 0000000000000000000000000000000000000000..b23df1d27731dcf700270ea68e90f3adaa6a9c01 GIT binary patch literal 1358 zcmcgsA&lcj6n!gArKpOu)+)dtAi%)Dz?WEw+xU6|0t^BS3=9Gc3=9Gc0t^BS3<3-S ztjZuDz#t$XARr(ha=aIB&wJfU0oy9=t*TU7uxbkyMrysiT~#`E1^qM9y!Zdio3Ht! z|K%5FB^36i7|&KJl^BL$S+-WI@jNezqAbglQdLzoO*0I`G)>#K9mjE97iSb_pl8|3 z>CasM0{(}Yp|NYW|G*B7q*+I3Tfa3DIe$@U)<4Ke>-`f=n}vMi+d}00fGcdD=zCnA|BQENwwga+d;ZG{WRg$t z4tXP$GyD_SVb_qaT02}kZ7ZbZ^y|iVUlp7wc#ia&??1w8B(HB?VEezoDvsN8 zBtttz`x5QK%@mg<%mIaOi}qWzcStUFmE_{5B7^odt}8$OTflNr{LlJ5zV8P?5QgDo zGKu4OKA$g_%k_GlrfHt%`~CiKI2@11hlhv9$48FmPm1!VEZ<4eUKCS7Sn>Rf<0iFQ zP_23_>r^Th!|3I5r&N*&;eo>{zL`hqbi9g2^I$mj2cg>!9LuweK~J+awWm^z${k6R z1zzN8@E+mb!?}f>!`#4FLW`kB=mbzaNCOBKI0Mx#DimeW+rVAInZusK4ABdqd+568 z^g%7i21E@)2b_Yc2)0P*ctoCKxx{1w-$%a>T?eI@00H0u1Hb|dpbJnOaF-%mU=bnm z;rG$kp;OR9ip?Ce5P^q*4MPK!!E@-XPo4NEjc>T&s$$1wBOs~^**c7{8DM5%ti$cV zl%R4DSxhZu+><;*bTr;lIi1!z5-ST8U<~+x3-kdK&;hkb=zcc33Eh=vPy0sD>khg~ zPZ3pto0C&Sjw6x{FgFoua251;(8cX?vYC!%fg8Hk(AI6ecy3V2&en_dB3{H{9F4+YIP#p~z;bNE>UH%lRjI7Vf+*Cu+Wm5VJDcW{ zXcLYXBR}?r(ZCtm_R#D(x^8w=y=YsKBnyI2G&7bxP_kD@rjWHv77~d?5(#815T7S5 zNBT8lR*7CEU6#-akr=YSd&u^8>ukSRr}1JH#q%JVc%!j9^!tu$TDETV)UKvbDoWDn Gbov_&2g-{8 literal 0 HcmV?d00001 diff --git a/example/assets/texture3.pcx b/example/assets/texture3.pcx new file mode 100644 index 0000000000000000000000000000000000000000..1ef08293079700cd26a1eea322c6cc5a16c331f9 GIT binary patch literal 5423 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 literal 0 HcmV?d00001 diff --git a/example/assets/texture4.pcx b/example/assets/texture4.pcx new file mode 100644 index 0000000000000000000000000000000000000000..faaa4afba46ace664be084a016d38fa9a39fad3d GIT binary patch literal 4592 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 literal 0 HcmV?d00001 diff --git a/example/assets/throw1b.pcx b/example/assets/throw1b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..b3f0e5b1aa65d97b1eb23082e8e71e5fd678b19c GIT binary patch literal 2633 zcmbVOEsP?|7Czm#Uov?aF=7N_1OkCTAP@+W+hPO)QArW1@`|cPAP@)y0x<%CKp;kt z7X)GiVgv#)VgzDtb@MYb%{3u5;?tcfRwT zYX1H=?}%{yiqAjs!F69zDbnIC<8CD2^On`3Kj{N`;sfK} zADERG7&lP-JrmOV9o9&RcZ^G+4i8o#Ld-?2zNeTx9X*k;N?XAn85b*NK47|LS$#)Z zDjh2sa~Lg*k|#{;$&$}w=0B1a%IeryX}OkGC@m7knfd?^PsEHz^ov!$efq_Vu?5T~ z_9MY~>>C6^2(I5@uR7ncnyy?IUN z9+7k|%9&JR5L;?x1wh@ie>@!`JTYW$xwJ+(m>62z4@~SF4H6)@(kd2GZ~@B26YxL4 z6uFT^o~Q~(ILqMB)U91h>YM6lA{qtM=Vs$*V0gAHiV#1hxU_b<7=0MWl=(&5^I33TUwFz zoL)K7u9*#(cKU?UR&HtRDrD(BDKOxOfl`pOHm;&8?j7WHaPodS#YVysgWj4IH4LK_ zg5PsZ@35&9CXUPsYLX&`a-1lcSsnU%!xemf`=pi7)-;uI2!Nq0kmKs2 z`O2B3ik?ZuhzX#8>li>aP%MSE6ToKBamqZ?L0>Ky8UYDCpeYp8U{PO+VgS${oL27W z!WV}WI?$j>kv*I*MjLvIK3hBMdlXPA)C~(E2^he~ivNzL7ivQuX0hxIPABtIp+8G% zU6TUohI{~n7@o*iU?2uIr*C}G39*O}B0|-k9FGyGbo2i)t2eZxIu@d*V?4Kr zAMhgaP`Sv5_9Ox*D~%T!^wK93$3o|84?Dl3W4!lq|_4Vu5uiw6X%Ve|POQnAmi=PXHeLkP$a<|#+btW@Sr$=XJ z{Zy)RdfGfWsU9Dn9~~8gAWQUeJA0l_lB>(x$#6cpxEgfFz4oZn>^Eh%&RVQoFNZ8F zo)_}PTsEIcQ~w+FzEI~QwRY6FBY8t?M&${ekEqnALYHz)%1An^&}m4=`TiaCZm2V- z))h6zR3A~bPn8~>w<&B=QBs~!?wm3uI?GcEfL>o|x1*aInoemjpmv+8RSH9z5{-!Z zL|vjLktC`Rh4ez76WT6lF`>zT25o9rsTxxFlF;3puE#X$Q@2HuQCOsGhU&}j=d;(s z<#XoZ_OvxSmZPBDqhj-ANOxVjZqj9ydgs(AP&q^S6kRn-m-Rwl<~uCgEN7}=`n-@T z=1z$&i3UVHqBc>3s7h1@pfA_M=W*}0-@0ncQN7Zwlp~ zUWw{i3Kt)5rgvAv>rrpqYhJXftt#lwm-0zwyhsnOQr*#Mvv*Q$9iLZ&LP(kY>&NYW zyWB1p%f)Ol8_y=g@#tdM?_6}7otA9YE7eL^4vVE?E}u(h(qC@oAFr==)5+cVaxomt z`WKUKXV_|8H0qsdwNWWo@sF)gDCTlG{EtheUcz8s3bv(SSqv71V3rRix!^Jv46;El z6SUJo<1DD21(j3~o(6@JVE_5+cK>;~-7l8OY;il8%}0}Ie|Xuu7_>XRMzd9w^>T%k M!Z2Sb{P^+X-(B1N1poj5 literal 0 HcmV?d00001 diff --git a/example/assets/throw2a.pcx b/example/assets/throw2a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..b04a7bac6f6c8c8d6977ce015f0b225aec92634f GIT binary patch literal 2253 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 A)Bpeg literal 0 HcmV?d00001 diff --git a/example/assets/throw3a.pcx b/example/assets/throw3a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..be775af4e6b5ed881e8feef82a4ae6c63677d2e1 GIT binary patch literal 2475 zcmbVOEo>@X8h(bIO`1(bMFpY)fj}S-2n5NFs6ZelIi%+#!^|KM2m}Iws6ZePhzhbn zASw_Q2t-8%qB%2AXlZHh<@>&F(rm7%xZ)w%ceGa|Z)w@hXXWsw!d7t+TfBCa@ z0Dk_;>uU27=99YKd z|NQ&}`1eovS_Y5&UzM)#H~Sl*UGD+^Kx92ZYFAKkk5`1Ak|K6Ruz_3%d5_-_hzD0a zz?ZR*;Tpdocyhgagqi|>jU6nh#iL7=ilpFWWS*9k32Ox@BI+gYJ~29Px2{}4xDivz z#0oF0PRK||lbK$3u392oQu!yN^rZ44>G_H#T2dS?pq8%wZ0v=rH zi+f77lHNx{0kM5@DP-Ue=?g3^!a)9=BF*ZhGJOzZDU4{}44t2$#BW4l>7GgD!wQMe z7TzCj%s!+SK4Jr_D$Mg4Q@b*J!aXccyt+#fOQE({BXRbb`iK(G_oVQ*SaDF|(>};T z1c^X<))se!ks-8rVnWRsL@Y*2FA-WVSejwoi#6LK1Ob62D75jdPgtND$uqWgN0$X_ zSH31}yorSRj2PjTftXGDu@_j(rZiR3s5oo2kdcyVKOqBsWAEp0aqYcB+MvGuU z_UXMrB!B5W{}Dmx-OIDstdfcJOgsWVw2Xp;G2t}}i;0}~Oq98V2_kE9F&h0eGyd}3 za-AZ^BZJmvhDNMKbxT$zbl?Yy#w(7Guy09hBl8HHASp=dg&8Kp8&(DcpG_)erg*;# z)I9Gsp7IGuK<2NRgK9<9mQWBR-}CwHabzp%mad8SWMHI}HFND3`z14O!4n=~EscEN zq|vZn(nqK#L+RL$2&)0@!;P~rJ1Gbnk@r`7JWbI{9tET|sX=$1NB3;aQ+KQ)B5Z7z z>L6hy3>CwBE(6c5n3dd-sNCEj5gN|#&zLnnihQ7o>uVBI5iIG%!zJcgm{nz^j7=xj zD!rInvnT3;2N`ANWFj!M)_n9MPR%5sn~88o*QF#j#D~#i8EP7+1)t156FD+gGwYTo zLPC=cWT+t!JCFb4zu!@=j7Js|Keo>EjO++~kMoplZ@JGNf9%wLA*F9E$@hgRSMw0y zgv}BzSt{ei=IKtFLtqOXTAU?MOa=@Hw)U%mIRW^NIOH4Ve|k0bdcDD5FdPoY~HhYuFT&2_F zRBCW?(oH5?$H(=fqsrmo>A^w4wll!n&E$DHiZ3s2M*ZpF{Ib^`cAA4$y<1o9s@rf& z)so{nh0}blkj>=MDRjT1^A)XEG&ZQ+LS4h1pftki0L3oyZDi|6E1Z;Z?BFohy+!95 zttlFps0~papwdOTgVQFQItmIo7ui#!i#W+4$%5YBvDx7I8sjl~Jv5uBRNy!m0|TH7 zw1GOHfHL6V4PRocW|)mI>Y>*}vx15P=PkzV6jwtGx@b3`TsQ?}(x}dVoKD{J7tiVQ zo8!jhPz~%-2Zj1uAGd8>)p1cl=M=R(N@?VhxU3g1s`;+UwcJd-l&(0b(|od!Jq9j- z9?$`rKnB^LDcs{cIf+;kh4O*N>N+vQ@lm@8$|Q~Srre(&3>Hl{TUU37}5X5h?T zugABS{i{J|*r}g4Dvb)^&J}ZUdN@ngbrcU$M}daI%8)pDiml$=7bkj-UN>D1Tj>Fd?yW<0tbUd;NvN%wrzZuJ|D z^IEl4snp7)3V##j^M!0S%U?>#!;Bs#+?$MaRkI^FM$7 F{5K|j%i{n5 literal 0 HcmV?d00001 diff --git a/example/assets/throw3b.pcx b/example/assets/throw3b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..c214dbca0dbc3d88f85f2aa8deb3e329e302a713 GIT binary patch literal 2442 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 literal 0 HcmV?d00001 diff --git a/example/assets/throw4b.pcx b/example/assets/throw4b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..6b516f2f3f467e3591b0d3123676a2824ecfbfcd GIT binary patch literal 2436 zcmbVOEpQ@R8a>_BTb0_1h=@Q$AP@)y0)e1vTSOobU3GcsTXVVH2m}IwKp-Lz2m~U6 z+Cm^A5D^GOL_|bhcaty^@;8s!$=hLfBO*qOSTS;{X3u42pWlUqg8QBOo$ov6yBGfa zCu;|M{DsfI^2x`}&d%Q6UMiJJr_U6Fxy7ExjZAcl-_|Zaon^<0C@5Z>WhU&ksM~ z1A-%8y!X@^Ygmc$-+RB<@A*DdVW0yOvY+_T)^-@FKyuqJPuvyRek7D8JbW}sA`yGO z6pxz4kAAh`X294`$Xw%Uj>F*TK9NM z-X|~Nep6cjf|YfLC6`z1gl%%`JE|Ppflzn2`57SR&yY~Dtwik(*U+&kO$D}!nDUnU z{m>@4zQY3HLcArp(cDW+53%sIlA3G@b-EKIu@x6(%u1G?5t4;IFsc*5mLgwLa+YaF z1n@oAZU~}5LeYYl#WS#lsZf)KP@NbUt1_tIksv9qNkJ;3Ji9V#8&^mf8Q&vtt4RDv zMWJQuh;=1)tPJPE+Y&MjESgVwd==?1vN>X$8S21o2F2e>&eFgb)G zg$bMO!nYZv)eAqofu$AQFjGqrxtFgGX3>lw)6-dY!t?PHVC*v<{lqYtB7~E(&CdW0 zUa$(rBdyqfq^t#d(3~KqNX$G@3Ns0$zvrPgRDPgMBU0%op!=p4YPCgj))qbwM0iK# z81$88(|bvYqd-N(8poI;VP%OaZ9DmT1^oIi9a)<697|><(;skYDxo0>dDJb9)1jp~ za70R4%zsXjInPp4HtF9oapXzsEe9b8t$>C~%i{~viPLStk9u;U_Wii3Nea+)zk%7(r0I5WL+?GO{*ccBN zgR!R5Do_i?u7zJS>#ScJDPyuT#CD&zzEI|C#9Nt7*}Tg%D@%Ae#q@=WZ%2x(=5E=} z7*CG=uXlICU(!Kl)C*n`QAi6GoOZ@ZByN1AxY;$t%!MTZaKpk`}{e`iHAEHo) z=B7~zKfc2=QGw=B(!pvg8IL|M|6P7{{7>IG{eFKq9F9h#$z(E}PG_^(`T6lDx*|SV$l1>i~4tl9ndw;*N zw^!ZWJ>1zTI!+eYTudKlCBQb~t@4oIGZZFZP?$T{(2hT@)Le z0j@eYYv81c?jh<0lrzYuaM~!H)CxVBZ+qEBIa77hhlNxzw-1~EeV_}pfI3hG$}H&f z+2C>1z34ShTXI;dbSkA<^Ez;r9n9(&dFYl<%fg*MpHHq%2WP|XsM|Ph zR-0AIoiF8+%xIqOpQbv){YH1M+T1;?It3S*_3QI;y}Vpr&M)WF`E)cL4@Se|L9cz> zX|$WNQL9udZrLrCin)9)ok@Q_pFN+Qt|sHF(aC(!pZ1Q&o%W#FJg(Q;)oQ&`uJXrD zp-{}_a{LLDN^M+cU2>Ks=d$R`3(hp}jC0OO&go~JZpLY)o%(@OJ#Z>1$K7`dd(Qgh u%X0m4xm?dLlj;0oJe>{4liuK@d)#leyY)u1Dr@D6S90Baq453t_x}KX`>cZi literal 0 HcmV?d00001 diff --git a/example/assets/throw5a.pcx b/example/assets/throw5a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..87ff5bba9562433df0b85c6eb8a9453b8638873c GIT binary patch literal 2625 zcmbVOEpTF47XBXnwkow15fOoiKp+qZ1Oh?TJ`sUHysAg_y)~Ej9s+@gKp+qi2t))T zg4#kLA`lS>L_|bH=KT=Tp{KLm^h{Qty`^Dr_p^*$Utl%gu3Z)0z}&f>c0K*p0^h`n0A(T(&WaQf3=k%G4_|qtqz#3P)O*(i+C&J6^!QRttWw-DP9n7uK${9w z%=eNtk%YIfe03w`P^p;b7@JzBSRwP4A8&*&EuNg_8Ko16dV?@lw_Bgovv!w~(lEA{ zVu_4ak@noz!>@pdfYj5HUJ&Fgw3&=SB&c*K_Et)VhDD{2hG-LPG1OD^)7yHPhZEp> zF;hfF{`@HPBT`P`QvjdHCGpfW3Ro!RkYX#X$Lgh?ih)RK@S*n-IF zKPb+OgySfOnSdGngvA80&!n8*ZLm<%5SK_3S(N4p9mWiY46_7+^jQ|uSVEsswqrzH zDTPVG7_sqL@{-HSI>HP>j;Dl7y*mjh%+QQYAQTqq`?heTzTUVRZy)Axb5j1lI4 zI3pD$9b!t-oOnOW;efCK8%X zGGbfB$I(f)k-2+I3L#Jm6x`FN^y@52=Tf<&Vr6~cmEbEAhun?_iQ+Xs;2l$N+c=-< z*R4&7jZ<#|n!Mk52Si@;C)y~dRx&KE_lqDSFMQ8iB;>G@S^8@9+_%=6R#7$G8kvSS zJm+-9ArZ68fFgS9@buQfjWMi{EXh~oWqfMEA-knIvfEsC9yYvNUdNVUUhhM03#a6c z!0j~nVPtLFtLYb2$XNy_5?$W$`@j!4IF!JotWlfWK!*7q{8EuE3qnqX^)vp?dHn}= z`Mvi)ePIrV!_jCo9*?Kf>1;Ne&*v8x7gtwTNs_GB>&<5K`1ttz{QULn*O!-DKwN~NS&yet&X^Z98mH##^NWV7A<{r28oV|Vv(XQyJ@1>o^=c0ZpaXQ!8w zllkcQY}gz3k4D}0psjmNx8v5DHOF--hvibGSSaOl7`&kW1>Fa9)@WTrU%;KAHo@Tt z)d9*q6x+ya9MrMzV7D~5M*jlcIXY)(jnN#TF+jbK!y`CtR5VI1iigNoaZo~*gr1+V zUgP2d(VShsJSA8yu$W*n#PA454Ky4$j|r~lI3Hs) zK(7Ps!l|H;NAv32;q1A5dY?bO-0#eG^~kREQE5M(;JSzNHclJpAEH%8Ess(bXYJ}~ zvpmqHu3Ko=@(m|2*&!o#R%s+i0}vwFZBwmCKc4vB=+V+3cfZZ>sjHYF}0C zMcJN}>`Bo+E!x9^-Ot-cIlFaWHxBH2)^_&o@}9kU`nuXYU9C2Yt7NvgoXqB<$#igX b+CLs1b^EP$r=gp*x?6ReQn~#7`}cnXk--d# literal 0 HcmV?d00001 diff --git a/example/assets/throw5b.pcx b/example/assets/throw5b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..ff36f30daaeaf97de8c0ea58c9cba05b3f390338 GIT binary patch literal 2548 zcmbVOEpQ@R7XF&oTb0_1h=@Q$AP@)y0)e1vTSOobUDa&vt#|2e1OkCTAP^A<1OgF3 zZ6Od5hzJBCA_9@R-2pNo8S;ji$$Oiso!W{RF=EBYsha&RnfL11U4EPM`<-*XbDO{Z z#o7ZOf8+BXeDblkw|8)GkW401sZ=JD$>nl|LcwvIQmN#+u9UJ?t2G*pR;$(NbYMBK zjMxA9_zwK>`Zp|JD?fa~CnSFMZd~~h&#gE5D$~FZRY*ER?=LC5pIznHm2Trv9)y5-p2JzO+qS~EKRE^6}u3;P$J?l zB4ajBgs`GO`w8jWN#hzBYnGe{bm+?nH-zk&mhP}EJQ;-Ar^ZBJ zGmW*PwQ-PvM$G7u3ChenH|d87lENn%c6-HPgn^|KzTmWCa9Fg~o>csjvA8iPTp5LA zk`#)4^%Na+!cxLF4iv|<7lHYp33Eh5Z7^6m)PYYAL5K(~_{!4I_(?^+(gv~MoQ;uFv}CH=QxSNuPM%7m|F0&K#oEm^1}%LyzR#)_rx za+Bj$1S{~BNq)zMm=GI;49oWa0JtDs{hOVEX@m|ou-Fb2M7to0dc%ZhXJICyNPII1 zvKk=)h6^x-Ale^64CW2EMnW;auY88kzS@!1;4ssb8^nTui7&KF3d77BD#>PHoMmW{ zW+ZSRUsVLY&^?JR*U@#mG$K&y2GMP@NmzS6G`8(_K9^Q~C?PoeNBpWo(kaW;FE$y}t<<5X&Jbkt2ITZf1BgM-Tc{_);k!L~EN z^VMWC9mVHoSEK%PaC+Wr4?E34tKO~4cGYdTrE1A>ox*WGSIA~^=@hzO(fN$l6B=vO zt|2esPEZ=*cz|LT`8Kk3q$Q5ZICQX|>t3UCiPjX2bJT{Y4p8Z$+`(}ZP8|h_oQv!+ z(nTEQkR+g&7p&K~yu^5nUJuPCDit^m#=rpR0&SqqQwAsl4)4*QVytGEjWFt=*F>{| ziUa34#`P2zLkzlTHy~X&1!U5w&c7W`Uh-#~^y$@MW3n#?cBz9x{kf0pHZJNotDtj? zS{|h|a!H)mi)Yn*SLRx7rd~={oYZkXS;!s&XFw0=08O9nY?d)3CYhM|j25!DQw+0*6t`n-QJ=nOmc(?+FHVY_q1T$~=x zQoZwJdvI9q98? jtI=dS7>&FAv(9O++3M8ljf$+6%5Kqda{2uC@8ACmI(p$e literal 0 HcmV?d00001 diff --git a/example/assets/throw6a.pcx b/example/assets/throw6a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..dbeaf3cb73be5fe86ab5c0b8ace9d781879e4933 GIT binary patch literal 2480 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 literal 0 HcmV?d00001 diff --git a/example/assets/throw7a.pcx b/example/assets/throw7a.pcx new file mode 100644 index 0000000000000000000000000000000000000000..995abe329916d40ff647a8a30f3f3c60421e5bf1 GIT binary patch literal 2647 zcmbVOuX7?>7Cue&t4eJ}L_{DW5C{aK1p-0Uwm={dx2n6iw_elT2m}IwK(vTJAP|TM z>J@TeBmlYTkEx^8SFgKtlJu=f`)x^PSuL z<2UVy@cJj-f8dSR(b3V#$w@Yw&E;~1LcuVMa=C1pX028eLMWwLtyZVg>GgU+5Rhh) z#$NyD>n9OD_oOxdM>}#YA-~ZbzC&SsqlC0jhL-c5JSn7;`43i{2rKH5G`SU)bf4*# zyhvJ+(Dvk8J0bmlVac&V8CfEO!16)3pRnYHQpFMrjd#L3u$vQ0>-T$-PeSs&?}Q5J zgnvhJC#+kcKJuy;Itp+axNK}hWW@rp`9EOYQs{dQQVDHC9u`AO!ci)@vHU0A_FQbk z-HDMHP7)BU5I{8EhBL5B3%eO=eq6v?ZSjxyS7ee_V(E0jo;D`^SZoLolP&_c z8wux$Hl$g?QhyoCU-{ifY-B)Lly>Elu+SWomwuc*d*R*z2TCfi_z{T|;-rNkp}Rvi zS2~&>dP+vHN|Avf4&%TL_v#Mv0L{S9F_4UjO1LnAelez4sD$=x1d~X~TT8}ip9C0V zvO|=ov@Jc5=DEldIk4frpmW&rv5e-kVn8`s`A8WbdWlpBI=84wF`!6*a1A~1RLB_I z4ZS1Hfg8AvWh3J9xjs-9`jHm-?1ki7Oi!qjDNcYajkdKsiZxGKT$0NM8ehrKb2d;9 ztDLnjR7??aaww>TCjn(=ARH9FMX0S*032(+f-@UrfS{297oaahBxFM*P({*FR~d5Z$cfwG9@zkxbn;d-DLL;);dplspAoQ3HHm(mBjK1hB~ ztUN{oXBRNj?MQw?jqpzQ+z`1jSYQLLzxG1Mg(I@!3q4DB0Q?h3#%Q`2r36_vDJ`LF z9vkqImmI#08t43BR|H+l{^HlpHM{FhGm9`4S1!420NIc zac;&}5qn8z3ri1{e8Oxo!s*$Boh=`P0Oas-rFc&K4NTFoH)-Del^J}cmpB73CYJQr zF4DZWBN?d`<`bt9k1JCSglYrg9gG83FaZ%}08avS3rf;6H-ZtOVgeiZVq=NoL+E@9 z^3r1NiD4)S5L@nB{88C>IMxK1YM^6nvrHGj;aVx*@e9F{j#; zs$;4QsMM!ooAQdz>U3(-u`#%zU`4$JbuOtjq2`$E0o4PlcFAm0S&<>ASfzZ0&J4-| z(CaJh_q1BkY(~Q&b-QHSWSTT18WRnO`b2FaMN}s;>4iSWlq_jErRk7{UFzCon`FMk zbhDtV35^HT@8EGpW|<0kYOa4&=dY!Ur~LW#X=i?{#(FKFa{FaOH+{Nl(}hhzm0BgL z<;lp>WxI0GEDe;=6NPpyZ=1PlDO)a{5?v4ti2|Z7QH#hXssYfKtI^XWxE^#ayK3C5 z_v@8r#i$kY3;oAbe;w&bpB62e2ns6HEReZ;Ud?VUM_1!u612}dcE<+YM#YHplVxsr zneC5H+rf$5Ij-7z$)x<@^*K2t>twxLFXzkoWIi2D#^<9!@4VmcbyT}qx9eujELX}! zqnOL*zN{9{SC{+Q^k#Cg91Z7#^J%{~>U7Rq&7N(y>NOj`-%6!&u~@{fx@`8v)DIOs zsp#vnzAWi;L!TD)i=sX(=s{lZ=JeK?ZlCG(tZts_r4#+|`D=3cyiN|wbv$2QPv?vA ebT$}W1n0wUFKD$pwrbYuqGFmxsr2*b&p!b|${Yy* literal 0 HcmV?d00001 diff --git a/example/assets/throw7b.pcx b/example/assets/throw7b.pcx new file mode 100644 index 0000000000000000000000000000000000000000..1b97bfd16f7634d3c9618336ea639bfdb5193bad GIT binary patch literal 2483 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 literal 0 HcmV?d00001 diff --git a/example/assets/uiframe.pcx b/example/assets/uiframe.pcx new file mode 100644 index 0000000000000000000000000000000000000000..3792eaf99755ff3baeeb2ccffeb20eaf07efd70f GIT binary patch literal 6349 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 H@p$|j4WB|O literal 0 HcmV?d00001 diff --git a/example/assets/wall2.pcx b/example/assets/wall2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..84d2a526d856d817a0e87ee2676d2e9431829f63 GIT binary patch literal 3393 zcmeH~A&jF+7{~vc%uAY=ii!$E1p7*cl@+g>yUq5*=DK+&J7hB7z&9}b@}KXU`TMV{ z29D*!@%mXBjYg~0Vi<;HS)S)bQIutwQmU$|rfG&@SeE5Dj^}wn5a5d93iPUe8U4=o zpNDe)<)mIe)L+YEzkK}sM*H#W&9?mctlWJ%!>+d1-^vref6wk!-~PwQ-Rn0$one36 z-8}yIug`C^*N^qSeE4!wZ}z{^dnWldxfi16Q9C7jKCwUHc@C{tpSNiJxPMCP*}mxQ zW$j$__Cn%SOXcJ5?Tg;Z$8vX!jAz8OQ<@jOUG#Rzr_cGh-2I6xdH!2YSK;sN_r@3MR^ zNh?vT1YySW6OJ3PY~1OD4CA%icB`c~o83l3CWHspv+OoctMPD_4)VA^j{GEWW6ut4 z!#6cYQ%#j>RPIWmEbt=7B78!yg?9&M32Omk3N3@0q8mdAA^8w&a0WU(v?-cmxIi$4 zm%|yuN?^v&L-Yc4T~Hgc0a1g{1*f1Rf;moTv%zwS=@g?8q6n@FT?eHY0WlB)K41d| z&;uyexUWzbC{m;mA{VX>or10_EOJZ|#36hKh6XBw=U~nc-E1QbZ@K=g?PN_OCTalL zUJtPFF|je!5p-cmP&tSU#wP>&PZP6oG0 zFbkcrYs6;H?YQb;5d zNh*+`Kq8(59C2A}J%-RWky>PRzpq#K^LkaxtE`x%SstgOa4-z|k?RGP?dXQ7 N_B4f3QIZaa!+&otO)&rf literal 0 HcmV?d00001 diff --git a/example/assets/wallp2.pcx b/example/assets/wallp2.pcx new file mode 100644 index 0000000000000000000000000000000000000000..aab65438ba6bd1b740895a995d1d1a1a8c7d86eb GIT binary patch literal 4775 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 M6-D(%