From d564176a4080e188751df2ae2363f272c62bf452 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Mon, 25 Jul 2016 11:43:36 -0500 Subject: [PATCH] wolf3d 8088 port by king crimsom is added to 16/ --- 16/wf3d8086.zip | Bin 0 -> 811529 bytes 16/wf3d8086/audiosdm.h | 142 ++ 16/wf3d8086/audiosod.h | 142 ++ 16/wf3d8086/audiowl1.h | 133 ++ 16/wf3d8086/audiowl6.h | 151 ++ 16/wf3d8086/budiosod.h | 142 ++ 16/wf3d8086/budiowl6.h | 151 ++ 16/wf3d8086/c0.asm | 843 +++++++ 16/wf3d8086/contigsc.c | 745 ++++++ 16/wf3d8086/detect.c | 87 + 16/wf3d8086/f_spear.h | 87 + 16/wf3d8086/foreign.h | 110 + 16/wf3d8086/gfxe_sod.equ | 47 + 16/wf3d8086/gfxe_sod.h | 53 + 16/wf3d8086/gfxe_wl1.equ | 201 ++ 16/wf3d8086/gfxe_wl1.h | 211 ++ 16/wf3d8086/gfxe_wl6.equ | 47 + 16/wf3d8086/gfxe_wl6.h | 53 + 16/wf3d8086/gfxv_sdm.equ | 208 ++ 16/wf3d8086/gfxv_sdm.h | 224 ++ 16/wf3d8086/gfxv_sod.equ | 259 +++ 16/wf3d8086/gfxv_sod.h | 280 +++ 16/wf3d8086/gfxv_wl1.equ | 199 ++ 16/wf3d8086/gfxv_wl1.h | 209 ++ 16/wf3d8086/gfxv_wl6.equ | 206 ++ 16/wf3d8086/gfxv_wl6.h | 216 ++ 16/wf3d8086/go.bat | 5 + 16/wf3d8086/goodstuf.txt | 56 + 16/wf3d8086/h_ldiv.asm | 227 ++ 16/wf3d8086/id_ca.c | 1768 ++++++++++++++ 16/wf3d8086/id_ca.h | 101 + 16/wf3d8086/id_head.h | 34 + 16/wf3d8086/id_heads.h | 123 + 16/wf3d8086/id_in.c | 990 ++++++++ 16/wf3d8086/id_in.h | 202 ++ 16/wf3d8086/id_mm.c | 953 ++++++++ 16/wf3d8086/id_mm.h | 96 + 16/wf3d8086/id_pm.c | 1199 ++++++++++ 16/wf3d8086/id_pm.h | 83 + 16/wf3d8086/id_sd.c | 2367 +++++++++++++++++++ 16/wf3d8086/id_sd.equ | 38 + 16/wf3d8086/id_sd.h | 237 ++ 16/wf3d8086/id_sd_a.asm | 572 +++++ 16/wf3d8086/id_sd_a.bak | 572 +++++ 16/wf3d8086/id_us.h | 123 + 16/wf3d8086/id_us_1.c | 755 ++++++ 16/wf3d8086/id_us_a.asm | 101 + 16/wf3d8086/id_vh.c | 547 +++++ 16/wf3d8086/id_vh.h | 134 ++ 16/wf3d8086/id_vh_a.asm | 110 + 16/wf3d8086/id_vl.bak | 1085 +++++++++ 16/wf3d8086/id_vl.c | 1085 +++++++++ 16/wf3d8086/id_vl.equ | 58 + 16/wf3d8086/id_vl.h | 161 ++ 16/wf3d8086/id_vl_a.asm | 742 ++++++ 16/wf3d8086/jabhack.asm | 103 + 16/wf3d8086/makefile.wl6 | 203 ++ 16/wf3d8086/mapssdm.h | 14 + 16/wf3d8086/mapssod.h | 33 + 16/wf3d8086/mapswl1.h | 42 + 16/wf3d8086/mapswl6.h | 73 + 16/wf3d8086/mapswlf.h | 16 + 16/wf3d8086/munge.c | 48 + 16/wf3d8086/obj/wolf3d.exe | Bin 0 -> 499415 bytes 16/wf3d8086/obj/wolf3d.map | 3638 +++++++++++++++++++++++++++++ 16/wf3d8086/oldscale.c | 738 ++++++ 16/wf3d8086/piclist.h | 36 + 16/wf3d8086/readme.uso | 39 + 16/wf3d8086/readme/license.doc | 129 ++ 16/wf3d8086/readme/readme.txt | 8 + 16/wf3d8086/readme/release.txt | 53 + 16/wf3d8086/rules.asi | 692 ++++++ 16/wf3d8086/sdmver.h | 8 + 16/wf3d8086/sharemsg.h | 9 + 16/wf3d8086/sodver.h | 7 + 16/wf3d8086/spanish.h | 112 + 16/wf3d8086/spanver.h | 8 + 16/wf3d8086/sv.exe | Bin 0 -> 6746 bytes 16/wf3d8086/version.h | 10 + 16/wf3d8086/whack_a.asm | 112 + 16/wf3d8086/wl_act1.c | 900 +++++++ 16/wf3d8086/wl_act2.c | 3872 +++++++++++++++++++++++++++++++ 16/wf3d8086/wl_agent.c | 1421 ++++++++++++ 16/wf3d8086/wl_asm.asm | 69 + 16/wf3d8086/wl_debug.c | 722 ++++++ 16/wf3d8086/wl_def.h | 1276 ++++++++++ 16/wf3d8086/wl_dr_a.asm | 795 +++++++ 16/wf3d8086/wl_draw.c | 1419 ++++++++++++ 16/wf3d8086/wl_game.c | 1484 ++++++++++++ 16/wf3d8086/wl_inter.c | 1718 ++++++++++++++ 16/wf3d8086/wl_main.c | 1616 +++++++++++++ 16/wf3d8086/wl_menu.c | 3986 ++++++++++++++++++++++++++++++++ 16/wf3d8086/wl_menu.h | 234 ++ 16/wf3d8086/wl_play.c | 1473 ++++++++++++ 16/wf3d8086/wl_scale.c | 741 ++++++ 16/wf3d8086/wl_state.c | 1480 ++++++++++++ 16/wf3d8086/wl_text.c | 859 +++++++ 16/wf3d8086/wlfj1ver.h | 9 + 16/wf3d8086/wolf.ide | Bin 0 -> 30962 bytes 16/wf3d8086/wolf.obr | Bin 0 -> 467 bytes 16/wf3d8086/wolf.~de | Bin 0 -> 28360 bytes 16/wf3d8086/wolf1ver.h | 7 + 16/wf3d8086/wolf3d.dsk | Bin 0 -> 1677 bytes 16/wf3d8086/wolf3d.map | 3660 +++++++++++++++++++++++++++++ 16/wf3d8086/wolf3d.prj | Bin 0 -> 14880 bytes 16/wf3d8086/wolfgtv.h | 10 + 16/wf3d8086/wolfhack.c | 186 ++ 16/wf3d8086/wolfjver.h | 8 + 16/wf3d8086/wolfver.h | 7 + 109 files changed, 53753 insertions(+) create mode 100755 16/wf3d8086.zip create mode 100755 16/wf3d8086/audiosdm.h create mode 100755 16/wf3d8086/audiosod.h create mode 100755 16/wf3d8086/audiowl1.h create mode 100755 16/wf3d8086/audiowl6.h create mode 100755 16/wf3d8086/budiosod.h create mode 100755 16/wf3d8086/budiowl6.h create mode 100755 16/wf3d8086/c0.asm create mode 100755 16/wf3d8086/contigsc.c create mode 100755 16/wf3d8086/detect.c create mode 100755 16/wf3d8086/f_spear.h create mode 100755 16/wf3d8086/foreign.h create mode 100755 16/wf3d8086/gfxe_sod.equ create mode 100755 16/wf3d8086/gfxe_sod.h create mode 100755 16/wf3d8086/gfxe_wl1.equ create mode 100755 16/wf3d8086/gfxe_wl1.h create mode 100755 16/wf3d8086/gfxe_wl6.equ create mode 100755 16/wf3d8086/gfxe_wl6.h create mode 100755 16/wf3d8086/gfxv_sdm.equ create mode 100755 16/wf3d8086/gfxv_sdm.h create mode 100755 16/wf3d8086/gfxv_sod.equ create mode 100755 16/wf3d8086/gfxv_sod.h create mode 100755 16/wf3d8086/gfxv_wl1.equ create mode 100755 16/wf3d8086/gfxv_wl1.h create mode 100755 16/wf3d8086/gfxv_wl6.equ create mode 100755 16/wf3d8086/gfxv_wl6.h create mode 100755 16/wf3d8086/go.bat create mode 100755 16/wf3d8086/goodstuf.txt create mode 100755 16/wf3d8086/h_ldiv.asm create mode 100755 16/wf3d8086/id_ca.c create mode 100755 16/wf3d8086/id_ca.h create mode 100755 16/wf3d8086/id_head.h create mode 100755 16/wf3d8086/id_heads.h create mode 100755 16/wf3d8086/id_in.c create mode 100755 16/wf3d8086/id_in.h create mode 100755 16/wf3d8086/id_mm.c create mode 100755 16/wf3d8086/id_mm.h create mode 100755 16/wf3d8086/id_pm.c create mode 100755 16/wf3d8086/id_pm.h create mode 100755 16/wf3d8086/id_sd.c create mode 100755 16/wf3d8086/id_sd.equ create mode 100755 16/wf3d8086/id_sd.h create mode 100755 16/wf3d8086/id_sd_a.asm create mode 100755 16/wf3d8086/id_sd_a.bak create mode 100755 16/wf3d8086/id_us.h create mode 100755 16/wf3d8086/id_us_1.c create mode 100755 16/wf3d8086/id_us_a.asm create mode 100755 16/wf3d8086/id_vh.c create mode 100755 16/wf3d8086/id_vh.h create mode 100755 16/wf3d8086/id_vh_a.asm create mode 100755 16/wf3d8086/id_vl.bak create mode 100755 16/wf3d8086/id_vl.c create mode 100755 16/wf3d8086/id_vl.equ create mode 100755 16/wf3d8086/id_vl.h create mode 100755 16/wf3d8086/id_vl_a.asm create mode 100755 16/wf3d8086/jabhack.asm create mode 100755 16/wf3d8086/makefile.wl6 create mode 100755 16/wf3d8086/mapssdm.h create mode 100755 16/wf3d8086/mapssod.h create mode 100755 16/wf3d8086/mapswl1.h create mode 100755 16/wf3d8086/mapswl6.h create mode 100755 16/wf3d8086/mapswlf.h create mode 100755 16/wf3d8086/munge.c create mode 100755 16/wf3d8086/obj/wolf3d.exe create mode 100755 16/wf3d8086/obj/wolf3d.map create mode 100755 16/wf3d8086/oldscale.c create mode 100755 16/wf3d8086/piclist.h create mode 100755 16/wf3d8086/readme.uso create mode 100755 16/wf3d8086/readme/license.doc create mode 100755 16/wf3d8086/readme/readme.txt create mode 100755 16/wf3d8086/readme/release.txt create mode 100755 16/wf3d8086/rules.asi create mode 100755 16/wf3d8086/sdmver.h create mode 100755 16/wf3d8086/sharemsg.h create mode 100755 16/wf3d8086/sodver.h create mode 100755 16/wf3d8086/spanish.h create mode 100755 16/wf3d8086/spanver.h create mode 100755 16/wf3d8086/sv.exe create mode 100755 16/wf3d8086/version.h create mode 100755 16/wf3d8086/whack_a.asm create mode 100755 16/wf3d8086/wl_act1.c create mode 100755 16/wf3d8086/wl_act2.c create mode 100755 16/wf3d8086/wl_agent.c create mode 100755 16/wf3d8086/wl_asm.asm create mode 100755 16/wf3d8086/wl_debug.c create mode 100755 16/wf3d8086/wl_def.h create mode 100755 16/wf3d8086/wl_dr_a.asm create mode 100755 16/wf3d8086/wl_draw.c create mode 100755 16/wf3d8086/wl_game.c create mode 100755 16/wf3d8086/wl_inter.c create mode 100755 16/wf3d8086/wl_main.c create mode 100755 16/wf3d8086/wl_menu.c create mode 100755 16/wf3d8086/wl_menu.h create mode 100755 16/wf3d8086/wl_play.c create mode 100755 16/wf3d8086/wl_scale.c create mode 100755 16/wf3d8086/wl_state.c create mode 100755 16/wf3d8086/wl_text.c create mode 100755 16/wf3d8086/wlfj1ver.h create mode 100755 16/wf3d8086/wolf.ide create mode 100755 16/wf3d8086/wolf.obr create mode 100755 16/wf3d8086/wolf.~de create mode 100755 16/wf3d8086/wolf1ver.h create mode 100755 16/wf3d8086/wolf3d.dsk create mode 100755 16/wf3d8086/wolf3d.map create mode 100755 16/wf3d8086/wolf3d.prj create mode 100755 16/wf3d8086/wolfgtv.h create mode 100755 16/wf3d8086/wolfhack.c create mode 100755 16/wf3d8086/wolfjver.h create mode 100755 16/wf3d8086/wolfver.h diff --git a/16/wf3d8086.zip b/16/wf3d8086.zip new file mode 100755 index 0000000000000000000000000000000000000000..8b46d8fef8389e14854864caa9c4bdbd4e536cc2 GIT binary patch literal 811529 zcmeF3Q;;QHqo&KYZL7<6?Xqo~U3Qmk+qP}nMwe~7t7`iDXHNX*Oq{u&i?eR_&WyEJ zMCQd4&-?C`sUQssh6W1scK~$XB>wsQj{*Jni<=pX2`3{b`wxZxGYtwT#s`3tWUCtP z2L=Qbj06OP`k$v6x|mr0bTYAJu*goEj#*?x@|z{PLlBb4LSmK6Y_fMuv^2_CQ@m`V z!&Ir)Eb|LERr5o-k>kFj7z-G`{mV$mIi%j)dl&MBP?v+_L*(GDBd*{$ zyvyz9_4k{3&XDHxs%=ov{2NP$&fA-F+cQF^{PeunKKqY+EMVS4wP*JjLUfKz`A5 zgal!*f{Paut4YBk;g)4JiWU}tKC9||IMGg!~4?N%g#Wl*K7khm=~v57%fDVlMM3mv#JpH%-Q21Pz^gu;uUHOD_y zF%vFBHa4+a+S7KSdn8zN;fy%|pf*tjA>an>tj-VH2JGti9n(B)aRvAj*@0v;fY+L) z4p5l!35kW(Q3fEBEHvWtB?EJVW2d4^K!*nkmU7t;$p@9Ag`WX-5Tv!LJKH4lly}3O z1|;I71KPq27}Zi|GM(+Yul6zgpR>tk)q*=qHPT(AE|Y~ZO-$jCGlq?kOf?F$LOEv)qP%M0 z=f{&aIRe~j89$zi!ne<;{N=7*1%t8|yK1CD!en1RFT6!jO=Jd~I~Y$;ATT+ml)4(! z1puWctUkQ%g^4}YVl4lIx^X$< zVmXyu!Q32){#_BRQitOjFZ)=9#wKc0pYeW@C+9=Y#!Fwvd2n*8{*Hg=H(sW;O+YAt z7L8UpbB}c`rC1OJm-hMYZ;k+H>Gdth&p534f)qNt&3j9GMF|J)>zyxK?Jq0U2ev>C zTMB8#7yfc>(EuJ`LY7?;O$V?rJ@90qy(uIEh+!%6-)u5Wfd;(Aw825ZyRH?q8A9Y) z*aLQ9aDJ3>dA*O@VFBqwb19KmNGyKW?smlbE+k?bj?hgJjmXLTD9v>K()KF(oA;{< z;WA6fvX8dyyU;38JkU#;ClTl>?c(WY5I{Wel=INR@Qs5RVR7z~`h}{r;yWpk_Z4`W zY`*?nrzvXVW7`=-iYpQ2$OGae;4b7=0J;F8{2>gQeF~6Y(9Y(zZD9P_^6SIox3%)V zI?EqhdxOZmH@9Li3Vi?H!1`(O-vCQMR*SQJ zoRwYnlFC&p1-4?1PDN12nN~2&tu)&`(TE2H$r7>i!G-thPvRN>$LdM{=k+KpE;NB{ z>*|&I&GCc!O*tAi#6s=Wb4&O0(nq0q%nh%=BgMl>|KpqU@!Nw(9!nJ80jNOR_i0D> z`jvJpM==`w>|wVT%lE9n16?t^em03vR+d2FWO8oohxO0i&n1Gc(QP~5EuWu=x{uGJ zsn1FM)-R*-+p~}_H(P}=wi1e234C{7?sDN2=6NPc4IpwlvyXnh5M*d^G$naW{=0C8 zDiY+Ha`@Q7c*0f0Kiv(2ki!^&cEDw3fiQ6$iwh}`NCov+CR9}8Xv>iC{0@yWq}2iu z5c@9SoC&A>sH}h=SmMHeMfA8th8}Rru?kHnoz@Ax{=(f0$UL$UyA5_{x5gR1f@j$B(c%%Vi0xUKCb;x%NJ~>vpm<&~vo5drH(z z4c3eExP+pJ>VBcA=xn@n9*+n)Qz_i143n8v5N`6M1s_dW5=OCft->IPcnyFF5=*3D zDL9>9>@qSgml3VF;|olqzI?`Mb_~ktQVb&CHy3?Ihf&yC&`$46Dw)U#nM|pZ6N7`h z!yw%dt=E&Wvy?l+u*4!#p|U0u(=qGyGc_Z_aE63>aX5c6fI6W@XQ-+cw3rLZxx#AT zNTPVWh*BZqFT8No6sV+VVNv?Q{Wa-8ve{uP`LO>|Y(H%W2Q2(d&;TPd%!|<2Niqbl zBbQmbI$iIVCa{Am#CR8>X#IxE!OWbcP|?81>m#g~k4LD}PNeNkWTc&YJzvxINoJ;q zSETIioQSljm1?ou)zeT|T$KSVe%6~9qcKxE9HOU6-YNsgz(uEk`cr(&0k&t(u5du5{rcgfJ)lPt%dV3X5bt+ zz`%FYQBQw#a}=0RFf|<+u?)fG@#NrArDTW2x9EVBD{~hth!@18+e63DIBS35SP6+L zZvu8wU~`0~+Y-a()bceXlf073?SSeQ?NPE7G+215!ok8*581Su9sgpjtfnGf_2DEf z&_*IV`m!1tMYS*uhuE9UQ9->xXov)aENM*;zb#xrA7o1tm%(5DMA_8=`p?B8q56|g z=eK>|&4)g}o$uxIP1n!P&6n3%ztHc`;V+K=%B%eKmK4#yyi!K|?*z-uhUqV_Qg?p- z6|B)*p?zN{;eBYK#79cr_Hp|9jJ5b*dc%4O!^~-Z0V}e8NZ&kX!9(Z6E2aK6upH$)8X)G&Zj321v#V-!jOkD7++Wo3p#6ZrkEl##V zl~^y3xDFBnUqQ;cojgT6?-v`mf4jM-feV;YHj~;9G)ZdvL}wMPJ%ER3zc zP}pq-O|%ComI$E8k^$y28Z>~_HZlPV$u!kj9?-*pOFrut$r{0@C>hzYyPt-j7XGba zdi*Pi#4>@)?g-;7yj>tNFVA~=L?~lJ#~M$OP77fl>O0K%=tTn;QhC#TA6hYGBNGy^ zHrzih2XH%uof6p=|BZ?)A6H^son@+n#KeO<55**adk;V$1sRB_IoJ1_K z2r`o|(F{_;uo!-WU~R~5)1th9rZPbx18~j_<0QF8cS7Hk^pY*@B2Zpva%4ZL0VCNk zs~CsPoec2ylN2=MOwY>8(P(kdphZbK=|ifFks#M-Icrr{PT=W6qLz*;A(?&Xsrq}t zvc-sgq!P-UmPfka$MOM<7&qDQBE zCTEr1#AtQHZK)DbgvlUsktH$R0?^7Ik(Av2Jx=|3_owsirRHt?^WBH#<@}yv!^+%c zI+#G!g=mLFf6<~~9j^m#HpUX>#H~ofE<6osbJK+=-^Af=!HLenr_EmcZxma!G>+)P z_`4r2G@#XCSRh+t1^D*_B!~tG4Zf2MC|4p6P zzp*a6lOuZSFLhdx|9k4N|F@Q;{nwIgZ2nT`%BERIVHiRK7<^tASh$PlYN$H$N&8#Jj|+*Nr}@dwSj8;S zyT>;&FMioV_j(DLkowuzK*Ha?&Rf0R>(9tHION=V6<#mLjRN0OlL4;Y&9P(;Z+ko? zI!|wQUih{gx$nA zLAXE;(Fd}UKXub zVm!y^FSaNz*+C;Pu`2s(4j88!BE*5)C@@^Nav_^5*$FX)v_UKB+;utvsdcC_|?SiMnGgNO?Zu5e-ALE z1??)!$%#WdpO4bVBg$RKwFIK(3YKb}t~MPAU2t*R`rS!c;FB#hZlx4xrjE({s1kYy zLOE4wmWkq;4t+txQa2L#m0vnFRY9heXoOBOcP1)})29q90jg=l6xEU^C1O849pXbX zw6L;^bovMbB}xP!lhdDtvkYG%E+L5L0$d|2ho*S|u92K#)3}BPNRQ3bPhw=H^OWm4 z6UC<}CB`zG%@jTUdMNNgAy>@J8K=KovBH51oVaocT4lesnuN?O)WoG{9T<0Y_=5Y` z&Nn1!Z^70cT&(yjra9%uk=d$v?oQ9vQ>%Mk>kDvk_>!$d7mZ976t#5=YyaC6bV`-c z=#P=csc`meqv5ZJ_)+si$~b7J;Wm?C3?*= zIjk%nQ1}ol3SSFE0vc^{PypHV)>zIisXSLRj?R3`vNw0tQKQ;JZLYHN z+zrPjBF~@T!^zR<*vzZW)6MBCuRm{xd%oXj_qhKRe*e#iX!Ng6>whBR|3t+9iHQFb z5&yr4i2ul%@#rhw3cI{`pfNDvP|O3v>Zu1PS~;)+X@*U~GPnuq9X`?gU~1pz5}u zjsxrwJ_B!vA|?Yzpf-&}THGgp5Mak?s>R9>9e=J-y3il;Hsd9N=5Rqfuh5(3qiK{v;m?!$bcwiY)WF@IZH6}<4i|OnV5+mWgW?% zpG{L(R7**uXaR(loc_{WR7^ZlY#7F!9FQegY)Xm-7DisB%)lyY2ppfUEQNCwK;SPo zU6h0(;f2>k%FOdadWNB^UW=r4D1w?kLj&LVhT7vcDSUc9A%WS)JsEyKY@kMTcTP|A zg7GIcx-cTvq?sPRrNZd%9^;l6d%K5ta*0hC+~=@ImC*3eA%}U6jFLONcG8Bw7J(Vy zHcJ{~>>5w;IF1RYw6akW=HK1EY$Psl@4LH^tC*h9;bgA}jzi?#63h3RCp$^UKQ zlX2_hO-=w9q>koQ+M+z=PTcHweuAZya*D0w?m?C%AdN$#%)@v@(!1RF(Za?D>E$BS zN>;AWf7fftUa{H5&y2E}y?$gXFZkcG=1B#~U7bctMD&lW8G>Z5{3C1l)u7qzbwK(?42o+?753UBAzrz9|OfZQV|K zzDhpI_J@sN$Um}HordM8mG*yRt-e&|>K|Ei#3ubKYa&|z$Qmq{k)4>fQZaGIaY;!o zOuapuI~aF2h%j;(a{B7(Xo~Y+OH1^_@&X_up~j{`0QQg@{n9*#c!|th)lYI{#q*Ty zJCy~e#3aT-oLv>c|H>N3LEt~K#`uq{4Z5TiQY%NWA<@y2QJ907+VOGzy|(~M-ou;k zzzF&d93lCssyz#q(6i!Lg;Pm*`ET?E7$KL z&zvtsH|6RbeTS(Q8ihA%J3Id+Yr+4LHFzDSikQ{Evc?~m0a|GjPDhPG5Vy{!qij)# z9TOTIk%VT1E%#}*b$Ws2w>Z|8QlN8!+^5T==R|DW_Xrl2^5)lR6xJN+;b*y1bjCU) zTk_oEddr%}ELxyUyGvs>pvT0ZSstu1kN4N<+`$v>ED)AF=I@S@PxrYfo*4s6ODtjr znq)_;9rFu=xXdKVxb_@Cl3k z;!pG0;*K=R$jmv2v?))X%Jp0H4~=h4U>dKg7AD;dvGEIuti~fi77#FR%`n0;{yn1xt#aIP3|AQmkNj* zW|?zDaTp-g^Bljow@`exYx@pavS8BdSc6?Fr%fKGn8wdDLcYXD`*(qU$mKsSSQqe!=?j zD~dSwsQ&ERQwn6^=#Ni zzjw*3v+;Y2owylgi_oKQHHU-p*WruSCdcDhMtG_CEwp?dZ(z?lCY)}SxP>d_z_m?m(vz>;aYFSn2mJmAer9t5fQS74~ z4G62jYg4?j>gAwubIpRN#uQaM@#;hHE*62Q8l)Lpk=;`7C;U_#iik3Vj%VdX`_&3O z^_dwf?68CVxtI7fF4q2b+MoaJ35o;v0sns8{$wab={jOKqRgNfupu9umATynW`zvs zLtBFC;ENAI@h(ddO6gRMC)|CQHv zjhKIh=D=vIv_x!F94LK1dyXi1n`X=<88~aSRj`!8d=>U8WNfhn+qk{Bs#hnC(G5Z0 z8Blb-c@3-co6gv5yXq6;Z{6Oh)dS0JP@UKrs+`|7(ym$MWBXU_cT$GV5ZXA>IZiqK zS>2ck4e2xiapKcB<}`yxzX_b=9C(4;sN6k66l3WUk3#lO=nFx>(^CvGpy(S$?cpoN zQVij4$cp#Plaefy@`6=H#yC|o$f1M0CosZ882KYb5q+gRF12WhpuU%-RHsQ)0*ZhX6E zISXbfK}m)EIMOg`KBd$NJcRiyE~Cn$BORXf(g#5H zCmNtNWc%P(jd^&zQ)b2M7RkDzE&@^El{Q4VKmkxS^fXFu&o+94PhTy8%2b$?6gto- zY&_*$ViGZB)6}TDltFOW4{ocnyx+Mbjy+_T^d1;L_!c_4;TH5|EhE*bhCW=KzIA>1Wh%Z|@aJ1x>`caDu8t(;X`1w_UWC!&nwS?`X)JWA0BWIke18meCAtMq(MibJg(THIsZEi^l`_l`dkJIl& z+jWT5htR}v7~Titz2<>(o^(pH5$64M4+I=<_#EL)N3o?bvgDHVrp)r(jUs^e_R+wh zRCAM$oi=(meb1s;s9BBNU(+t9OACjiMlJoa-n`?$L|^8MWG{$(Q5V8&M!HV04q5V5 z(d5~J^F5%HbVOF0RvqLRe?lgy))@O#akILT&UqNDxOK%amA`T4T6Mr@HPnJ< zYFDS=qEmDWLAMy@q&}=s42`?-=fhZ_Un68G=O?`ow^XawbQyo0JDj?4!O)4^AqGKY zr$DQC`75v84;*=pm`qVXx3(G*9j^;J4P@p51>0?z3MCcFu4ackA7Up>8=2KiT|mp5 zcL1qsnb4dNpBI2o?*5b)>{B{@`juv%CON~J+6HlArzVhv_nt1+u?S_%TPVxpmz3@N z>`s{5>gHT>_i}`qsK1k{%$#zw4=jF>=Gt1_mq$uUkbiue^%bf7VIqX0RMB2mg`{aq zNaT^?)Bh8lk!>Bb7cqql{2jG%ct0rA+Eh-n?PvuSlc7rc`OnN+X{LEy$%TNpx19E7 zf^wTCM`L(ghF?=&3S^$p)q`=n=9{av=ho~qMX1q3-i}&?y-md6D}IiOV_!y6=FRWk zH#@$b-*bcGz-SA%XTdfs}w zx^6$|nytn&R{O$oUDdA8JmavHlL4oNdHEIROb7v(q-h$$?`lSG-3bY;Ys@B~X<>8E zAvou_ao{)e+}2&da5cTv1D;<~;1M@B%S)0>!*dUbcmUbEpgvJF^JK=uoe5k!VH$BF zlk7;AXAW=IHz6L6WPfHJPxPJv1M!ltV3lboH<^|Jw`0xMeMG|aRBG-dS3mumes23X zh0>H_oBZ`zeFs!0Bf~!Gl@l0Eq;MY%WAWq>7M1v~s4Zv2|MD*zW3s|v&@(PR zXzmYQS~zE6AU`g2d|(@x725}K4}&C}kX*S+ERA$!57wB>bMM!Bj!1ik^NTU&G;RA< zukVLlBW$a)qNjv`m)sQI+bg*|dpt2kgh)b7-EQfM!XMx2bTibz_0_Roo_OcL>m6;~ zB5pz2({&aOH6DPEAEka}6`H!FP=2nr+X`=t>D1O=tNSGk>LywrqB?Ak7h<-vyNdze z)T|p3gwcB2lo9b``B0}^9(8giKLb%>_Z$-8QYIFuFm1R5%dbt$vEH;2lJZPc2b#DW zA*nL}L3?Kd`lt0_a#XG@9ervGsda~9e#UacmJIq;zK`0v{;a)({Xj5=Vz^qJk`9&~ zcw17)cA`?&9eFyk@jC4aMYMC^@sBRuF__Tk#~;uNLF^+@Og+5|o*4MdC7dJ-+EDd? zo%5oitF9rWNLoKae??0I^eacec{8`^eG@P3uT+y2Q%hqU@!%nAKCat0YkM7p$6}-N zin>-~dOBG}%Bft-R3>*>jE|+L=g#OR%<3jky_@56n9t;af%v01xUH;Imy*yL1Kx9Z zalUAppP7h;fGr@~Af1KU5h!L~iJ+W=8$WL~+6iW~O$hcc1+HqKedGMKZV-y*Auf-y zo7$`X{{Dl&&!HgNW{`?Ipke+IlC&V84X1qz;d|sc8LJb!fWh@Q3eKOb^92stt+c8N zlW8@(EFZ9V!AaC`WF4}oUNl1nkrN-1dO#pd1_>-y&}{3cqge!!KNu?G;XCsT%<>Fq z&Wh(ruegMB=p<5tP1I6w^VQa+46tRrg{bDt+_}s&k(64N;x0<5f7tV=&D}Q)NyG)< zqfg9Hg9dXmi>rB8#YXF}mME)K%jC{~p&72eHw>LV-2 z&EWX;p}~ERO*k|t5s?dfR5{S%89uQFMtx9KbygO~fZOO~#SXh|7`QbWmp?kvoQj7H zd)-_L3h-Rcng064%)x7bO3cA)_$g~!Wn4cI*TGg30bu6H+}{J zS}K(rQFO#JMToUuBi<8-LVS>kT;Rhrs-yKiCBN*_lG%R#qWa>wJV;B$-W9pxevRig zy}~Y2F-^v|b`@MQZa4%l-6od~jHaWghVv9EDAN;=xw~!GnQY?ovWL2nzOpX8b?~d6BfI+XG$8F#$0TReLjD>yKM$ybZUx-?`yBlu5UR=c#gr>xoo7bu8H@_4S5VR*2#2j>taGBjS)ql5rn<{vGEoJJQXlpafA+hjk3P z=S5Q!-oc_VvYbAOa@lg(nz~yE|lL(;+LlKNeYRZIDyJw=0ei)L?c`Y zNKUw)+KIXzq%B39^?Jo7+rVOXu0q>Ku4rspQzORMkoJrpZNiV9{>k9;#n@%;x%gs-(Y)&lI=*R?s%|ym$`}0#;_AKb z0A{|9do6T#VR|VqynsBWdMrHue&h|ql6_$v&xLEU*a!me?ungW5(HT#&#(*gtDcT_ z1An-w*sIyL;U!f?_t5J#<+f%p(~n5-zTSF{AOeaW2YtH%8&v24JFkuR3;)ed#FIBC z&Yz^GBm=is;6V9<+7@uixC)ciDj~HvZzEVAHjNS>9Vdy@7m#Q_LHBySheh8qNt&75 z`eQ&`5j4O8iHO4!h>&mQ+Y?SxfnZDOqGTYEkC3ypYJU_0U^u%cjOqn<%!`2fO0s5? zVIYZ|kc&0wz?DhN_CbKRP6#7ww)-?E53D)hw8qr7eS6B6?6~RJr zoT>4$itE!#%YJAY(*p9QwQ@`a5FP;_6IOU|fiH<}2FrlX??Q*$+k-(jW8FyBmg2-& zGiU=z$39%EV!Sr3H#qzaWnd#@q2gR*kbM;V75_4j$SjbqZ!M^v#fR4i>- zJZoZ6k4OVoFop4WB=(Z(9vNuOdAVWUMnwA|-ukRVr6S4<92WTd$)c+5ORvH=t69^? z#x~W++rZ26=SzjJ=AhOEznWs_lUr2l-j+p;g$+7e(QVN){RE!7watLhZQtYiUhvq@ zU$;;rvFr^1l>HN*I`EgkU-tT?8CRhnYSU7pWt?H&Eh=%{5d&QaVbQjILcLV)=rgxqyLAG5JjlBzwlv#<7Whh47ppO(>djmE~?Ublki2=r^? zu032R)^Vz)p?o$FsG00~_P$|a3Hk|uG2_Rq;F``fkGX4THZsoD2}sDPFpMs0oLRuWn^IER1Y-*D>m;Jei(Tz5VYOBOVuhq&{&KWA^A9 zTKn!}St{#!Y@^2dD9(0H7D%?dk8CKxGP@{zaA>&A4OfInT?~wnJ+OLgkMk9XRCIT+ zU+Qjv>B~BVF+PuXOE@ost@{jP$V8ni5Ns_YSyTXQEC$IB6umILPb5kQ`;eF#O_ee4 z$zaZjykLyTb(?cH6lgZKcPecXrSG~F(q1u6X^eqd zq*ntPlfmQ4JR#wCRmmp6Y<*78=zFT+dLzri`onfFsq6IfXYrT&xoP-yk+7ZK%gAgc zc{-Qz$d`aVRiwzx9WF=u@OI43$?Uov`>N7KEcfY*R-SHm2*-8ZB=Qyq+9iT@>j3_# zR^}GUdv}W*bPb>;l-*ygX4*j8jcS5{?WF0LBdjI#**->0djMYIXeF5^hn8etx6G+n z2R?WSv!Ym{5$fRZ5jp-rwuibTarq3iKmstZTf^T^xGmmxpBaieb_3UH!|@5Hcja^aqfpe6jnp z-5S@CY!fOpb)F+mxSc!OjGBCoDS(f@r<_%~4GB&uS1baeP_e4s&;ou5=T}9Ucp`FJ zP%JEzjfiGxl1FwyhQqayjw{-EfF~)fBSk(;9ZrKKXg=KbkLkSHHHubccK*izEWr?6 z%5tz?hw-$ZDqm05S>U=y{H>_DrI4w@i~~tbfUL`V5Vev~ewF0NauT@MOg`r&@vt!* zLuJ#?WImF3Kr7J99ywHL8~Asac8&hN>u1^$g|)ovoVpes^-hWyKrM4ms@Uw6NvTA4 zB|Ri`k&B{HW_3Q$UzJ zY)lL#-Gt;yat*kG7h{nfe{XjoTf(m)+k8)MaNI#HU$g+%Q^FpG=Ec**lHLhg(>Xhq(?K@br+(%8fOYL>QuUWuGU^JgX<&zTcsD z7JZu8R3@khOoB>T7<6I4=A8EXeN$Kd6=j4g^|hN9(@VAp_jV6VTRwZIVfvh1`*^Bn zVuw2UxV^zeW?)P^NAt5fHz~xHWJ;2}0kZmi^RK_iU1$k*vu+yGHvVc@(~$)0uiEg% zwwZuF@MqcTbpBtH;UaQPl%o%aKC5vFSfLm1ya}>z(;5nPkAk@6o7?%wq>HR0j~*3U zUA8o;(>*kUS`OzFOo7bDGmEy~^Qc@RB2{-UC$pcx|K7e6MI#~PfqDeef&c_mDDZ#n zT{Qk_=WJ>2WXxcEg=?+6DR$e)lK5?JX|9AjIn12I{K}LFB$=Kdc;LK&Fv!^8JYr=c zS(w=0RNUL$+4?d!xWs5{At0!Wv2%5O-uc6Tak^`=ebh{d;+`zo9XL0H$(*tjlMq3m$I?0V3v85wBS!%DD^p;s ziP#s*%gg)zefjS7tabhNBVhW_g~FM1EA1N#$m3-LGHK-7mv!d6zd*Ha_wvRkP5 z&)$zU*V&KRTv17H=mA+wMY4K-1i>Z{Om(OOyttEXrG4&qM5ahjM<2(;$zt3lXZ8~( zjka0}2C!Zmn_JE@nFP4SsE3Im^Ov!^@vjr-F%pbD(<#trPh_!veok|`>_sr125iJ1 z=Iw(`(`zBQU|p(pjbk1#jjQ2!o4@hCyaZe(7pQ#JtbfEgF03YJ=#m@y3FGRl4CSvp znD+*{_-X`kS^F3sGZwht?!&5FyH;yg6B+0HC>kGlO$b>@%Q7klh>xtqONpr)NzsPR zEc9zw=Mmy8AOd4@#aO(s5!q#%(Adk2R6zM2(D34#&SVbi5%NO1P=|9B+ME4}Fz0~# zGqzwqPO4a7JQ!h*kGV=+q6Tcrmq5icbU^u{{gS0~a+h!A3W_hHz%1p>#)h=cIj z%hioV*kfBTR?UwPNN?B%eL(qhd(M6Hv*hVs{slK{b)x&@Yk%4j)xF8zU~$W#Lm~z$ zc>p7av{UQN+EQF9wBC>pp2HJC(p1eBG5wAKY&3~2lUc|-Qo4rIRf<#;u?~6B^zNH&Ci~db(_S8SYlly{U=9$^Vt=q-1eoALz^oFcBCO$3 zi5_Z*o2C1eA`^u?%b>lZgWn5{Elfe)B8&*07FQ3DF|J9IHwTNK^C*LkX$hI=bSEAxDGm&#+JS zJ3tT%v9Iwm4AK%*X2V#&^Uioc{2_9^N7DTTYAZ(qLkNe}Dgh!(WHt`cF&D&wV6*g_ zKd%4$4X)Su5z&VW>n1uDC)%N5%sWO%>V9u&&;16d1feh1b%1$@zqexD-lvOOz4EsHK zj}}JE1Oy}n3Iq}D2&lwfZ!JCqMb{tE(hjGzVD-|vEm!JrFZr_!L(T~HjiW{1rU zrj^N;F7DW|*_sJ9XR&rQc+-#62HJELqCy-a$cfX=GX|P&K)5o}52GN~&>deQmVw+X zp76m9cfXEJ7q%RB%Z(GeCKj+0yhE=x-JbfZfJ)pkMMkv>JWC-gkor0!l*WRYALi0I zjyZlR92PdbFfLv`6JT+|G~1OWLNdxh(`zC1FNdn`JW4z+0k%C{KDwP07Mo7$<@%iYwi ziw$CABtyKkY6LH#^^h$bZZv+Xk(vvzlVQI8HL%sbktaWXo=7&E*#1nT#DvI5%R4SM zG;USvF)TSl#FIz^D@ciIagpUvj~Qf}0Bdyg`;H_~r9~<>A>XEJ3*C69tln%2f;OuigU4Z^dKjBZ{hlB#c(_a{6AZXy{!flyn3U*C!{hU1>88=%u=-+c|we*_NZZq^v3 zQ7%9-eqAr0b*dlSz{24s7CVVS&^tnBkE0y;%f6aoHEvyBBebo21E`Erh^1!3{;+_O zv8D)yCdd6omoNp>ft1eD4YnlELn4}3H(|=Yhf`LJ9tDQ!d2%BW3(7w-JQJQu>n-|W zAtf+i`3GVQF78vpkb;`11{wCsjPzFLj59u3-PJF8i(QawvmqsT;^RFvHuTcwx)@8w zsPdqNa?*+Hx-BpAh91m310}G}G~cf#BfM*usGbB)Mur@_=0NoEYIO&PDQQ-7gi9-z zY@~^hCNW8|WNEql$mfg`f;z=SLQ8`KJP!S^Op_d9S%&=}r&l=4`f}HKK zhhWBVhjqGGMhE2|FXkI!5}cYiwFNt%3fe4Z%vFX8OH4NYq2*-A5-NJxgXhITv5#qr zFt8pV=${jj7{85hXdUZFc6rX72`nTuj+y=-jN63+%Fyh7=I)d;Nn~s>##4Z6@+GJS zfooFVj>op-2`B1-=yPkP-$eyJl@)LJl|?Qt?!QWg#9s3PHK=UZ9Tz|PCC&=x%W95& zFRe2nBZ**^YjhTYx;VS%F)Vw_x1)&GP$|Q`OP#QOOn$t?c4lJ&0F7beZf$6uvueP& zgA_9$R>$DQiu#%1Sc#9K;-`A!IKpTku~ULx2|cF5)Oyn9Sk+5JO_`U|ZPFijZ+bdI z!=f@~2k95z{EeTbQ(rgC+M)&Uxsc6qz6$tZtWm$#_^Z*1U&ac+vH;ZSmd(9)L(l%E zQ~KH?G6UPaQS&8bdVzVyv4C|?6UDOguUHz! zmH1}#*ZdPj<0wZqd!SU4Vrz6M;2-AZCfufk9{j}?Z6~u+F3=*hr=T<>IUZw7vcg@O z{!7du&|SYbMG&H;stZ8<2&`SPO+{SdE*LUnLc+Gvu4eKPg;|XK?eTZdrdH6Z{sZNNH&JTCVEkgzeihGt1Z90yp zg5W-|w3WkMe92I%yblP~sw;2?OA@xHLFnawmoV45kVo#9*)`?{OX_vvm;X4Xn}tBt zC8a-Om=+pTq#BBBADjZN;c9DHl|rc$YR$R7>B(-ukx>xSODsOhu4t zZE}944rHCR_f8-~elb#rlz*sH;KUva@jX>Hph^n8eB2t=&WTliTq<{iuCSV3 zx?>zKzkw7lr1!!hBwzJZM>__Io$YtXiS0&wfw?F90-ryy1^Z%Jz+Adl$;py}ds-(8 zGD(7xXqUkm?R>TaT23qTX_oVl8L(r8g*?ZtPAv)QzjC%NW2lF(RnzAq6sbsCWmI#_ z2W1-{nra%$j|M^HGHQ(?E9buyldq!?Yw4iha5Rjt;3mxq-ouz@pS#LC$IzRb2j=iz zMh-K^LSa-P9>s4H^p(nz_Du%5h-?eO0%w9dboi`iSXDjng=+gsE+H`jy~ z6~3yH^9Y<=GX^|dY(Ask^feSOzKXoMPDj94&SV#AWML|^7mB0zmx3vvFA_F!wUdHL zA|kuGd_iV)DVTnA3Aw0`Cq?Yvent=#T+oDt(5#O1r&PjbP}edPe8~=9x=irSe2_7E z6i-z}t!obctxJ;|OSEgIuUbs_v6z*!GACF>q*ohMZ}rGKw|t@!bjxf88KivFjW*}J zillf>Tdrv=EUZ*TR@J4g&Uo8`6v|c(pC@3#5cHHafGekAqQt5Wf4d}qf9tBkK_u@GF0|OlL5h zdQ4+JWbd3V`gCHsco^$--^SW)(@vKK9PLuMX!%<&Tl7&&)KN+%@gC{};u)WyX)SCE zcw41LlNW53i^_c`29n5XWHsBTRCGlWz`j{zq4edFLHrrPJyN!=?N)_$QFp;gU@lQ^ zq3uDGH8Lz(p>0F^TL0q&P$v+aZERgD+8X&k6UmT)3H|b2!pFA$<1iNp(!in~ z6U-YVuP(;FQ{SiOq59so4|fPnr!rT6chk0z$h zrpC?;#=}Y4)|-rIqq+EFm}`q3I8078w1srC`MP>A!6|0Ou_E=cxV91K&P5Dc9XCCs z<97Rcr_$?i>?zJO^4yr8p|vm0Ja@7f4-Y?c)zZE-vYwSrMP4cEaG;P)pg}M;RENt^ zOy>QB62MWQU`c=yq8ZhW<)A^$2VoVsG1bm1w)dWL>_X`hoiwbf6>cFu%u|zt{})~F z7-dPYZ3~xec3EAvZFbq}vTfVyvTfV8ZQHi13;pdr=f3aY-S;C#X2e>1*Qgk|SI!wZ zV`dZ^+m(xtD>pPED(98UYfAFTQ=A@#^zJDXLh%nK+Bw$A%Bc}_Z zDpB&7D4PG+zETV-Qdk&#TuOtdKL|+?eEVj5C**c8M**>_ezXyJ(vHVp(YWok$uI0k z+yfLP%8^7bD(5gIrUWhC8&>A^LU)9&yDO61E6!K(%8aR+xd~OK=muMGwMP*(M4PvZ z9t+lA6H(OPr`J2}KP#k_N5MlDycUTpRLJU2q6wQ(6HB-ioEPvYIf;9o2r^ z+_eX|5alyryw*nYhdk^z#uw#pS8ma<0owjWcH=^}@y%XcpY~TsoR?2q3f_|Uu|mJ6 zkw&@&5;K3`BjItfFXU#Rnz7K&{-48+a+*it7HiCLk?K6s?P9z^L=r8m&7 zdzPCvXL`TOknl^hNUIx^!G{>A*0-C?h^L%Ut_x-qf3gM)QEFj(>%MtEGjC=!M|L$& z?h3~y3+UATT+r!Q-si>UYXToM|nl4m86KnbuoO%+=}JE2Rbuv)s4S9 zCcNoT_HCI8v*R`7omC>L9h9Ha=t3xhOdlzZ;iZ=FfsvCoMnVigy zCYLyzHbr8ov~p@U^u+~-=$e5D4h1nhUR6Z|1I5o}bZ}uPq6k7KwGF4Zl}fZNv+3AD zqT4nsvhfvaU&Ec;lG7bmyE37v7KWaYr1be;2J6ad!^B<*VtLQ86SihqEFNKQwuzYr z3@PnEy2OII2C(QbSBg_XS<=$K~b z2geI+EdXy0C@_^k6?VggkuK>4ZWqX~I)a)~!ReuLs8QhhKeuH`lXcWGfq9GM_E?B7 zp6BBZY||_~%HZ_qY6#O6J}Wj2=n)m?hPjqi68ZLB4H>} zW7S*kIFh*)&^b%5V5J+O~LLRC-P52%DK?kvTdAoT~whXlR zWt6=RF5j6O4FjgY9(P+VG5(YSrpWIyNYNTM2(8^*&w40$G$-QhZ4;IYf z5D4^iz#K9{476YSMDQ6*Ez@$dz1m2Djgx(Ldl8LlxRjm z4qRUg_hd(J#d2PLHZ`M|E!UL;&2NDH3Qw*;^6dO2F8CdEm48;AVo*yv#UOBjr!<1- zk2Cl+zS=83+l>jCu?a%{-7~naG<-9;1ohSGFvmIK; zils2?YKSKCpn?`W+nA;V@A$2d(EB2Vd7fdYRlyyn#}9 zA)GRfhHAqseS6(>ZW`JtoG*;GDG>>APY=3uF-!yrBdq&IZvl@UKoPWdOqSldj*OZ%1VYR5>{aZg3AQ6S4W9iG?DXOkb zQNr*}LL1QS`#|<6@@l=fX#j>|o^p5c_@7wg#j3cHW(i0V96cn_t^36lDHAmL-B+!= z?lm0hYH^>UA|=ujX5L+k*m+p`RVXy zc7D2I%$+BO`c01O3=uu<(K*m->v=T87GPnNUhMI;3)@&`-6ijhyaRR>DV~%pD9G){ z@Ju?YKb_0qVWPvA)1QV2hk3+<(`5TL)uvQyV(7VAX%P)bT-vWA3tm z5eW!=(AfFGO5&tI)c^P~A1s;_yW#e8VG*HO7+P+ol`_~FN>Serm_SI{s-D0!{Lij z{d^JrNinRw8E~ z1S8qD=F0UB-x;xgkcgcu#bHn!#&Ozj3Vbdhw8^6q?vc#)znd_93dt&Jj99z%<(;egBb{&~9L?s=G^Km3QA7x2=oI;mj)WIo5Q;QkZ>7skR`O6;YltdoKhs;>Cw+_Na>6;# zMsn&_c=_fXb0rY5VKXElFU`vj(jFMA&;U%Qstj$hdbJk;w)b-bMwbESwCH-;C)1~w z$&i{m;D_FcWkB!^Czh!rjoC7ktI zn7tOBX8q|D8Yz}+4t2T_fsj-2bJ4^LH}yB`m+>UD1qydlS0c=fJZ6R%zPJ)?PsO4` zosGApRZ1U%P;2S<03!?`HEPui;Ms-+%G!K`q4MmJ38yb2AvVN}_+J~m0&y6ES|ZJ3 zkt~fM1Fn^!;{p5HXd~H>udhFKRGts2cZ83OGUGscg;PzahbDFXM8!Zl&(&KZ6gsB3 zb1&Qz$s9AgiqN7u_M;UZw#CxG)4CKFmElPpOql%-9=Hia;ZuB}pDS~gd+t6js}Hu| zIr`4NuPVPLC=87IWDP69j%B;Na1y=L*0qF`$YpN^Qx+tx@jODZP9soudqMZvkY5G( z7Y&~Ij%a#&svo3j7$p?(y6 zQj^B`JegnH2MuOz%k;UKz>))Qc>m}&0ahIc1S&l`Otpm8GMx)C9gC*TK)MnNJ9AdO zA7KX`+9UNqx*P382ki%6jZdXR{gxBOa8)7P2rO);{zQQGg~<3@by$%Jz8j=|IQ5t=)KYhn60eP3Bom)e~6h4|Q-p*D-(s z7LPqQ*@kAUdb&>{_F6)v!)$kuaDa_k?ZpNg1EUf_{GglksL>*t^Sj3VI?+bg%l@SKv#84*g&d63r?AA5e{)3gZ+F z*M&2<8TKU}W2!Q&MG!3R~9y%oiO)iwuTsxZDz_ zb!5!^g(oD`{U>q3%behkN>#BpBd_R)cKx#13=+9#Fb8)YEyjV=x!l0sMc_K26eB08 z8};)kQ|)%{1Vl9G@{Mb`F0yEpHS5EJg0(VS5(cCfmO-}I0IcdJ?C=q}w6~#Ui)!;3 z=7Qpt8}1SEF?IJMhIZf{5%oN-1{`{o>uPHEcQwcjJKbq%#bAeVvu2oW@NtJU&je`< z|G}b6>=Q8E-z324juF3%Po?A*TOUt!5OX<8I6av%+vws_NwZFVr`tdpD`c*;z7TaW zASJ6skRJyb*;lGmPyKjHsI;Yp<%Bz`kqO<+++8Lc;~b*SVAWYGBNJqWIQ0wp6+)dPY92VLzvF`h9Etr>p5tAE5u7d6xM5@kGEKoesd@{_pGeuP@r) z>vv_!0YKs)Zh79abBwxRY9op9Ops0}EN&oSj!<=DPt9a?C_BqDC$tIOw8DG^21TGTz*`+IE zVI!Lg+@14W!WHU~iXm(bp6yPIPs0rw1j=F&qC}1I;RD!Rs_0TJ)qjvsH$67^A97zYz(_@ z59}+RC%rHfdqx-RcDZy8PVHtDQ0iz1!D%#c$0GX&n0X%gADUq4vC00$g(|sgKN>h@ zGaorJNKn|-Z?^S41Hf{#f17`o^dB}3`@uvX@co7O2Mj&*k26xzvQGJHp6B=kD0=Yl zN5%N>I#ei=oePdt;!phfJO?4 z$Tw~Yg41}ads}4Y&j**faN@D zcQ8J&SgNLYaJyK_>>9Md+BSq~Ukff}*eo9Q_T!aU?L=K+bzlvfSG>@KbK9L~Fgt># zR`<+4q?uG>c5e^U{zSllw1)vg7Jw!MEd@e>Kn5)YhVr8Uf{ulZ1wsQZ1TqHt)(q22 zs$HQ88yuqSrpcI;ZBcwK5szbhX+HFwXG!{ABHTcd2Ry2*B$ts}u{_m5PS9|V((Lh! zc}UrPfB5^eGV|MGn?Zbb!0@2b?CAn#1my!7%W-yqSWdUHH0fse@=nvFO+c1rq)piF zd;OA&>GKnr5&O`cZ8{EbhR3qUU=aTa<3w@`*B zMIpAa3+8@{R^|jEK%kQQ!Oz5geKAD5cRoSmp7(>YSI{K3@P@UV#)6U?3C1TJJPO-n z0_|#-EdyIGr#GJjnU$jFBjDM_U3GqCm0#w;RYm>>Z=lv;p>x zXb`&>#CHS%tw$s--GW-J;Ts`j_ThMXo4GJtsebTv*C0e++~M9PqnVlW*7L^?gCm|@ zMKZr1d+=Xw(&%kJ4gY*T424?Wj16=5yn5VD*Z8=}Z7YkYO*l^^#~>1PRY=KQ$LMtZ zIeTmT<0ZCls&E-cQ^1hqy=#55!~ON)^XkU&f{?<#)2aJ%LyO^EaDKeuDu@5VA3e}} z{CR&=J*f*8GbzWJP`>{;N^)~uz|Y2FHZhYN&=hQf5CP{wIc>EiS|`|a`W^B(A54{E zaTpu22%<`3$`vm8Fn2N+-gN0hdXQbRDRZp)NV7dcV4%8APe=g=y%^*bp8DB_4+5mF zXU~cpTPP6eR9!Szq^W#RbFvaYz*k!`I_lCibS+n~bYF~Pna{Hn>JCrPM(t#a3q+jwo-LZRa9O5=u?UP3~2&q!Zgx_R+V^8 z$1DnZia|5tSBBJJv)nJAbw$gPkM*X*UV?Fb%cUrlrBX<-i?CO|b$zl_1$6)+;Zt%I#K*yyD03<9MUIP6rK`sAE8a!cuVHS&sLhQj2|f92>CZqZ=qb}t z&8eT1&XyKecpE{-semcesh}x@s{rRKRtSk0tBO8QJy%5_i&jb^iB?G>qpK$o!PM{E zv7JPLoKlQtN1aCpT&A=JTsmqAK7&^idPbLn)$8uT)axDq(sp6$>FvSSdIr&rdWO)A z{*KoG`s{#w@N&gbpHS-2FZ61{cMP@IEjy@=1z*F##x19m|QIY zPSr%1RX96L*lea$I~95|A;gr|MAp3#o4S`-v#Zb+d$f{PF>Vn1hNn&x|772ALYmwt}Io(=|d^;k_mtBGk9Qt*x+9B* zcdw0QR3FRC0UTD}t^hl+%-%DKR%Sv6cDt?X_^-RlD_mDhPW64Ip7!r|n=;W^efgEQ zrG_+{)WH^(x+e_ka=q_;FYJ!!#77p~uzS&vKV3s2dX822`O=ACih(C%!3(fb$3s(& z4n&RCBK1g#nPe* zrroMWKIdL*i4T6nZdEOA4s>iK{jk=N@v!Mr1;tI$ z0^_feDWKL0f6c<~=$MC>9E~@#pSX5^y>&Zvw*njqCTn1qOD=mVUEm`FYtSOj=|hDw z^**}NoUZKf-fd^z@I~OmEBjI)?RavX#EO~Ef$n(9W!qmAGe1E;3SymM^Zj@>l4@tx z;mXE=9uMHC+N&_RZ_g&PQfC`Yo zAg!>*V$4yF>y!$SG04IAxFLySKVGY8@8(macUrga&iNLgLBAMAN5l8h04UPxKPb}A z!R@dw$S{4fbO1%FBf^o-0_*34*8xzZ%wT1O(c*H%-;jKiec=C^#R34)WH=Ni{(n=X zf4EacC1~6J4@Kh71W=^jFj?0jw4_NUVaw*9`9~x;L+Y&z6JPI|;}UQu{lXHX582Nw za^nXwtk~(8%O|giN0875@ZaCqLkoEZUJbd;=k@U1YY;!6ihwj>Z_m*xu{fqTv#0T3 zFV`l`TZCY6xUp4JQ2Fn{T1#PH=S27e{Ryta3Fwx{Pk#q5;>t9QVQ$T5yJ4v@TD=&N z!=HoHP*^GmmNiEsV&OXL>fH6SY*wVT?dBHKu)W_#1yHTH)Wk1&j^zJ)GC|~C zl8wD6fu@F5=~(n~r#RRyz|Ii$2<)J03g6axKT~gWb&zu|I!>g+$(n~qV*WSF57R{B zy4L_H4R$Wev|o!K&aTBr|91WUo%x$eMDjEMMN0c$D3Xir-*BbA(2+irER&j0Kv>JAJx__l~YenRGsEOtWnFhh= zIo`8W1*@dsz&-Po`~9Kete&(~jeo?zvNSX_wDD`SUshJKvDvA=ZfJ>xinAV7D(ntb ziuR(2%|*dn0msJPq;7_0(zIv3-jXj2m6pbv{NJ-U4Fla?po# zqRz$1M(o)mu_|yj3fGCm^N6sqp?f*X=1h53ddn)^F;lqo2kR1NXh`$D9i>jsRIleTc}1t_%MP6tonzr zmLPUN;IJ6A01dVkACd}h4)qqza<~x};zesdx)PTSDT#gmV?NfF5dLkOJ4>iLj^$9P zkSK=?{*7!t_9mX?u!9)>4e$-!yyl}X{w#;6D}h#K3-xx}EM<=rp;dO7dr1>`{;d_R zYBDvr%yE0qCeecuqoxMb+UGy2#^(eRyjN?XSb#ihqVjE6@HP*3o~F{7(jeGSttD*g zU5%TpJ^a5>Fjq)!rEhGMka^R)8r%pNC66^f$Bk8|KPyJ^Nk`t*T1@zy$Xh5#a57b3 zoo!mkw%4Y6&%j!EHy5;n?STb z)R*OGR+n8$jy4P00INs#e%tjoDyIbenp7FMcE z2!D6D;Baw8N<1WU8I-Ov4^!=#(LjHXNM+Q>&5HLqe2~wVMkbt^R*M1HgG=LgglJr* z0@Mj=Nz*N!`=!1^-1R#tRV({c{jU1b24@{casx_PL!9^*q)To+vncOr_!w* z4z4Yq4>aEv&lZ@g+{lgmbxHNQ?5AuWIy$iWgbt)X@a7nT6V!S(!uNwQ=vQaf$S90) zl6G@Z1g-5N8&d+aBV--90>Z#NUV zJJtL+uGZ^j@CiH5$of|kc=e|ehDdOSc{p^dr!YDD{p@WMU zYPNa3>%Sf>pNyT4s%)-(J$!TcI62RDN<06&O(a}Q>|9I24hu- zkh`~~or&wZ3D@`(&F(f@7MVehGV-hqJwippRR_m+9+vH6p~3B~>XkIQam@!eCP*p| zkylTQl%odj{35NhK||fKh?q4hdFsVWUvDa+l9oom`_{EPk)~(uB4X=^-ee(KRwpbc z#zlp#5~hhy9V0d_$6qd#^r6lfl!NZRcb{7_dmxKZ78oci*35=^BI)$Dxg~aPJ5#e( zkAlUYPvkRw=s=B^ZX*{9u$74whOD*4=~4mRWuS;9T#7<@Xk4<5NZW#PzVjqc5$a_ zdv6|*)bp+uc75g^i&5G>paG6!_Sp42L*}DQ;%CrCoFnF=^}Xh!_q?*g$*`FrG*W;@ zow=Qz!U3-V131S4H2z#CFpXxwfFz)U4oJiUG*du7`+&vh4Y`D9f)p^2V~1UTNPwe& z`)TxxNNO3XOml8BYsG}IZl^lTw(MJdW*0yGZp30yU|)@ccb5c`ErzBHvSuhXx>8nV z-LravQ>%g`%*YMfwDJ9?^fR??Wk<%E54g^VwuF58QTs%k1OQ`f@J$vlOje8Agq2|txjs4Q@XzGBGFgR;xw2!SKGzgF``f|WN))UW^45nhv?oLk zXGe!#Q1+Fw=M?Em`RJc~$&j9z_y>7=`BEpzT&=QA`dNoqAs5Py)!1#)C-VEd-sQhb z=uxbPf2K8OuG~P$Ji^;=H-il8aO|+(UNz|sNLHiy?j4Fe{EAfThdkToLe_CbuW9&_ z@%XcY*L|4QXsh4ej=T4C zIG-R-^ntOjmu+p7Bwbu;dyT+)VLZ1yTi;uI#F)hNl6rSGAo&kS`A>xfLVzogAUmi} z4Ht3eJ%0`EwfZ|h@6)8slh)W0zD^225IW4%8jCuDw$iTyrJ3X{3zK5VPTEK{y5I-oVcvF5) z<;yPZ>;plGic$+a0Dcl1Ch+`HxNF|FVrj(VyCUFt{_JZ1S#|RmD86wJ7z0_hPN(9H zxciB3;?%ssmM~y%=4i)&V2zJmBmGbU$vk`Pk7f3_D&3U!1Hwdtg-;27QlLlNG{hqJ z#AMh-+qd5?Ds+?cxea{?4LL0d~N7E5|rimK?YU~!OXtgpqj7^@xfG1ucv_rbM8 zTxhS`8nKsTWL7jOxVHiw0RA=HjeTi>RM`D6+Ssht*1NU1qSJFf10PTU^!73hJ0~ zULpRvx8wWRDobb*2p$qClcn(Do2{e%$+CLBYdv`2{@vN?F9^+Ub37Ru)r`icmN}ocQ`pTu^gb9Z6)LsRE&{i{}=k=~KqmAT16u7jv$+)%|WQRk?NULVF zE^X|g$`zff5>z3JzVF5{i5ll6bRuI}42k{FvKXPV#AwIg#r9-T5=VbTpm2}LqmXk- zo)-%Er$I8R=C6b?xImLGGCU$&d=J_x3-Pxs*Vhtch4YkUjchN$hTxTlH)K;Dh_x*Z zd5cya@SEw$o7!o;ZrF1DZYe-R zU1HerEZ66==Nt|BnyWYZ5>Jqfao~V@T-<8I1s~q(YBTc)HW3R6g%+mF)T2Y(D-lvD zK;ktVoivS}xXfV-c0%oswskb6nh909mpsb}A!pDj4~ppN#Vi2a(lR zY3$%!fUaYxYGL7+7(pZoYhSnuc4UVwR@Q_Yi@KlHDZ+MfSy-RbH_OBlom?Pl29AwS z3OhwS(#?ta-6Y|2abw+ot$?~hcmdXFBCf4^vC7@8X7zGmqJSgr`?1j4GBvYjX|Xr? zaFPj`XOrc`mqhYU*e-h**hs%%j8@1=p+n#nBu^v_37#<8Lj3O-Oo)oGZIBFBd;V#U zot0qJeSR?F+~4uJ%EMNrJHPKocj_IE!VWWw>M+7LzRfsHr-c)=NMTQM3)dAC=7}cny*gkq_-+e3 z3y}&j5%`7#cje@$kQBVbK||S0&15BKLZ%M*qe2mx#0*4K5BZYw-G(*WFWM2!$Ok1$ z8`5Vi?r4XoP2RlFzsR@b0X4ab5#rEN8mNG^*zXRTxz{L)Q?Gp(gyE+?HpsE1k>3#Z z9dw6DLqd1CDER<0`5m!UoDp)jM7uiiHRl^zb>@mpFxK;Ee^MC@Ry9mfQWZK;tKzIFiZF^csiWS3(|j%1 z`YKmlC^O!b>SY*A7d1;#Q}#E|N|w2Xh*YR(#p-r!4MY#0C{DJSPm>IAq)MA4>yT6} zrQl~ud#;CK-DM=_AI7``<-b}zJH4T<`M}v%2)e-tY6z+WYY^G_bGPKQol}1o1a!0l zainx1fPmsoAeRf10(dSVf!plBEHm2&W)o`i2AyY=2ah+?M@w=Ky{~u2mzQamriR)IfAjLvmFSv&-$+VX7(5UsvfzV z%uFY_#GOAM#;hF^I~_iRZR&$#TvhHW#$((kLkz07&HC>A3sK#*!}wd0*M14jHf}Nk zvidjQ7O*Z6TMzRs14#pl{Ta&oOc^k;{>EOY?^6nrVkulaK6+_8H zH{-VoDmA%~)Dw{fxQ@$KBPZQNNIn%gug6{9$3}7Mr^l?O4)_y`sTET!Is}7ZyqokH}9m=(L9eJgj%E>R4nNUbwzPS(pcf- zH=8|AB=jyR4h65FS}CheY2+^`oP5`p#$wbaV2)TX4S>zk07!217f%BqdfTA+s6+5V ztZ~Rf>=D3$ie?26IHtG~P6h{H)W1L*7XY|n01XikSOzpUK>G{TfBuE)`A$F@*#MO9 z9u4?71RzTe5UqcRFm1T80ye@@>qKU)Q5}|=?^VmGR(3qVuGi}1pV$@JEF7UvIW%Sx zn=(stAu*U^gKcHYUXGLQ&_odzOi12y(JoB$D_AZ(JI#wN+Txs#eRDX;J?qSV zwHd6CQE?=4GyZz=cdf+y*sL^OhuvnuBM~TZwktfVM2Kl*t|%b6nl?9x$=SSM;x?AI zswU^vZ3dW&$$IJxj!{u#DW|oPsKtn8CrN>&#HDymv6XJ~wsFlUQKarM9gt1%*JHy( z^2APQ(cHIck*Fd<+K{j_VRQ7^8z5#9b7Hjy9y;yP#dCwc#BSoX#vE?UaX|I;mB>?#&v`tp6HSzn?vPhWi3Jycy+`Yyk2nwUO-o(-F@s5W?S1L*Xq6#O)POFA z`%g^F{KmMBUdm|CUOe0v{|*j(pcgwHu9SHn=4q*H}4qh*CMhu{ovWQ=a z=$jB```7-cU@r)n#I3%&2mz3wrpDMSAnS~F5>2%20oUT3cQe1aHYILsEOxrQe~WDC z%F(-~sBU8{Z81D{c074|H#9x7x6=P^`z1Em#KCD#cKp69E8Bj;J2~JjU&Vu+6=JcE zm-6>K^Y!3C{)S+My^~g{i|boj@H#3A9%jmAWsgE}l9HzrK1S}fy|=G!bUs3Gl!8E{&^FU!*krxR%^E(KZ0JcfG6I)wyRshG6r%H*)-+nwmY?q**e|61u-SEOd@b&Pk2g!GTDRF$ zUJHImWN;o8)gA`&VbdSBRztm3Hlu zGdAkB6Y-#j`|NJj8GGUO9Ei1g5{I>VR+g5ZLqx(nn3GK@W}-JhZaQqCw-Acebg{p2 zH063RbJewZ|K4$tQ8SPe&WkhZ`!6Q)_og13ydAo47-iLg`=T17SVs~buSa0$YQhY`EO4Bx^FL;;fm}T9H^2=79LHA6+qMnkPEKY}2+}y64mo`hQt`^Nen0ig- z#mq5cQSbdIcS|edx~wXLFoAhNV~|-PwY}@Ju8ey@YOj_72Kl`MM(xLo)K08eYxJUy zSe+2M5l1%i)~#GaS3mS!1Xt_o@I?qB1FeH>0t*SdP^ysC>aXB<5b1V@f%NKdR;+YJ zXE0tn{oXAX&6@H}X^_c5=|@b$o9ZlfuV)j0G6!+!MB? z5KHV8!6|x_1t{yB6Rx^bJClfW8~Qhai%qI~{J^4SPpq?(!n%+gS9cM`s;H(koP#&6 zTvHg1$0SNwy@_XfzMwSh@xQ+lpfuzc#d@~}^kNe0a*88A;fya$g{y0KM6lkq6^4CQ z66B-inGOZANFC9hEnU;jH^Nr?li0O=NuR=**kM|l?&2c@X$d_gfYrgUfMN(CB}gcM>Y*h4cmiN@ z!*U@gpjSb1BY-BBkz0$Y=OoBxV-@A3@+Xyq6A8j$^ZS)p)IA~~DoBa~N}ojnz4pq8 z48+I5kYCW?i?j0uclaHOmblgG6!hbG)YmkiN&!6$j5)tysdkzp2}ZcM zQ90FfWdC|>Fi^>J(o9jXK>o~i z)GYBzCo@) zcLD!Zz{;kDqYVK|DNTRhc=2DNT^HT|T`e^2D)0}r5UG6~-f*iRI$Ek9!avnQ_FjM0 zLW)6+Z#;K*+bn1Myq`5IpPt7(Enju-UvKxHO)o|V-kl%qFMK+mx7nF1My0Bjf+;aC z1f3Ou3{cQi?g{#%TZ zioVhgy=_X0<(bL_pqI(Z7dZ~Nw3Lhr&i7Z_$2LnihC;`$SCV({P2p~6Vkw&Xjf#9O@zdS3wrWo}JrylL@1t@*?Vd_l* zN**;pTLHAciXUo#LWo`=N$B}+z!K1b|EKbYcjTYypg%AG6%gRFe-%U20MU>4Uv&^G zAm^{N$QB?C(gnzge1B1oW_PXKTRbDg7CrkAsP9va`n=tDT99(6!LLb)s*tBBPdZJ8 zUY__EH$<2nwF}*6ErdY*RKGVQf>h1L+Xm#^A%Fw7)2ZK>*^QJYzE@PYi=b zb1STWq*}}f1+Y!g2xlB8>&pmxVkky18myrh`u`)1snOiXrX1#aP5=+Xa@i@O+2U=U zIFvNq+MHY?oRu{PM%wyFw61PZ|5Ic356f}Bkq|~e-LojJ_&_%aYQVtip~F50zWN4h zCG9(XXus`E!kXe$3wuq@#hQLe(dA z7eFPHx>?2YS0zMEHB`u4U7l_nCy`i+Yh;Eeii++n5!*fz1Uz{Z$v(~DS&(X0 z6b`DW^W^#AJxoyZGIF6`vvcfqVojNJ3bS+q^!ZgKpJ!7*Hr*P|)ya&Y&~bpo0{y^^ z9_En`qCca8omIxKKs4r6bQeJ5Kt*=LkzLJ#iaxrjY;}JAaD6-U?(WPi;^XM;{%Z8q zeBT@UZ_C@N{86}ayq~6-08kn8{{WT$R0;jJ5Pc$t0T=D(kImKOy2IwZ`7;4nyj){5 z&f8~+j3!lRT#8AjXY#5~UDB$ImYc7W3xE{;*|+h{{qtaAYh>iK$%|jS#dXIfA0V@s zyZA-tI&o!!QlZA4lOOti+V6wP?;{o|ZvRC_y;EpDSWXp8{dps!%d?|XH9g$yW74zD zdr(~+%$C&%k=UOs>vbE?$!O7O7AmGqlg@p0xQ^?%=VrnF(_w^EO9iXow~Km(vFp>m zyLXY;Lb)LQutDe(k2x!2OeDiyDhF=jTzx`Q9Q<~q{RvS(vFu7pF?_Lc+CcGE<47j= zwdvOKh>l;ynvNIgdDhGPn`Gs4mxUR7Bzf>Qef(hPpb|ZoEyKF1bQET4g;M_9z7|{6 z_MRRz+;J~$^FRnK?Ae%5Jx#Ay6ZT}`X*B0<&r z&*R{{?>d)gTT3R}p1TMZOJ#jZ=Vqzzt5PBTore@oM7%0gmI zm4&;+JJ z!9*hPC{D#$bzBN`5mLaBNWn1Rj9G9nR#gOAaW?GCQ81AhJPPaYDXgF}A$SxZDeO$j z;;_yW6Wgl?Wdr*6T3BD@G}IMbL28p#SgUo4$>O^QPJPzFt(;6$rW5ZE&fR!;`jQ`b z1yQ!u&Gk4#MzNCOQI{$oa7CIyd4+exW5iZ~mF9gBgs3hi;eEiLl^l#?%15IlACHB} z$1QUTlv8Bs>O4R8>6{;~ZfEs5tcKU5TJiIRJWIg9SWuh=mvh|!_vKXQJd@<4#dA)= za)MUs5MMc)qQaHmC98Li5cjlF?isM3BaH$V!mw>7r0iF00ut3Z62HQ`2KR;^T zYsK-o?t@a_u*0{_!`m(=!t#gYa@Hi>@+I$-8B{po>-|9 zA$fD-32^;K&TCB-&l`ER&5+}Ln7DDb){bwK5C2ENKZO==w{3T%Rdr?8N__I zO(XzfauNLR5EJk+$*8rTasXoy$lDXyb=T3x747}abgT8ij8<#H@P<_^LwYD{W8n=T zd-v30?-$bNzM|Om5-8y3nd8F`bEWu}(vkmi(SToa^5F4WO-?qxZ@A?YZBj>1BT0!@jk8 z*z|lL#jH#+;(I#qNy_AqQtR35tQ(zfed8P;mP{o0y$;=S`e z72!25TW*1FgGFN^_^r;lE(1jd=o4f#w2-pGRk~=-g^za)v^IX=xyDtIj;d?CC!*)= zn5MS7xyQL40*T$ZuX(B^S_~(9tw-Qac&5c{1$!$bLXclRJss(4CK~6 zU}h?0PpkuyA z*g?P%azbeOhy;OUHjzi=E8ZCDlrm|k3=64x9=+u>R4}?)Hg>n5{T^<%F=yK`@X$@K zy$Vy_ZmChe7eRhRIQ(z)e^@cpX1+7ORG7+shM5PLhQP=dQ;j&8yaRRvenw=Saq^h0!{AK+X0^R?=R5FfvSU zQR5~wG52h=bvMMSpG+CI)dpFkJj3aTq%sR^eoHQR!+56Uq6cH?s&toy4U;POfr}fE z*88i;s2s5$bcjfq)*fLy0Y{Zo78GMNn23aTy<-KTyv}zo#Ic#Y9;3z-IRXda|0+~8 z0m}n{yV`6&(v9kC8~Eom+bsbIS{o2SSJ{z6)6KR(+G;3@CKo*TdM)%-km44+M?o5 zP%EI>k;Qxu&xe~sRc;j+&!BgTQ*Cx=iZwfp+?qh;q_T*WOjve6zI~vHi|g&Bxls zOGQ}d^kO))7-ptz*;_cyLMklp3IrsHJNQ#XPn5LbvWavyouS_W=D>Eh=JvJsIH$@}2C_N^B zbSMmkS#(rL4iYR)Efp8sho-X7x41f>-^bS^nn$Wn%-ch$9iI}J0{h=2c||`obxCCC zzWwLoTliCe>VN7w?CeaOoL$W5o!y-VDI|zN6dFsjIE)N(qJ(Un9z9wH+n2E=Q5GKg}YA<1C5%P$E|BDjrkKq`?eI4tdha9D53-$&y2(vXK|n zED0cpYMlp79uN^x=g7rCR&7EaKdv$W8)9m|ntWGwWR6b?)dH#FezzAJ72J8N%fyt2 zB&S1UI;&z7ympw?*+gA2zJ8e&9heEux-%q^t{66E?g>HkEN$f~&?oEm78EIxw&`Qd z8unPyp{@8`FLt2>=Vp_hegu-ABvx8N&Ohw)4p%K{N_igS-oHcNRPD0y=RgVYpE)<# z=<|ARD${}BebV@d-yA=0t(dYl^rq|X_8q^#{-{@*TbQH@vLTS_Q9vK2Sx{EtAOO4l zXvu9@GZvn_$SZ)W100D`M70z}c1gL3E%A=^7TNL4lmm^lrSHPTvGld6};lg7{CX+lT``9N7XB{Y)2{&T}2Z!A|L4HUk zLD413`k&sNKYF`5NK$yHwH5~!E}&Q-R<8f0z9%1{`^iAe0!?=2kYcuUnGsEStzHM_|={IB8>Kk zJQT$Dy*B&1#%gi)eC}oO*4~+$Kk1~z+0m8R_uf-t<}|WE+ZO%?aL?;?^LUQptX>D{ z5yr>IPmmooVw_*)5Ti%ndp1dI{eCd@dcsCf_WExP?$jKUBy2Ti_EB)uiLT5f0xgR% zgHuPFQz+W*d~KRCCk~|aq{fUvO;}mi9aAABj4T3V4!mGF^R35)t3hr!46Z3vqlV0_ zFg>Y}a|S|rG}+dD%vBKGJ#PocH5rn5D2ZN!{x_M;8QnoAG-;_iUP0KPNN)4ryh4Km z37hTqj?IU_HgjGmXiwaH*J}Sg0+XW~P}q^v!fbl53(`w4CU3Zy=3e9w=0AvJN($|T zeY)ugGd!X6nJgX5zuv%JTF)+t;KLYUa&%$9wJb7T_%w#Os3i8{Y*Tc_fFF}hEO|X? zTC0PnF#r?68f_eh3R+ZOb#B^`im29QPJ^yRHfOc@#Vm?$0l*cCJzQiciH)FbpWClZ zE9Nx(&Lbvi(hiuZT(XcTpBe`QtKsR8J~kaU>Iaaqfga?ze*f#R%l3$3mxKfYvislU z)k5Fe#M1RYUc+4)Ha~fqNMABVU!m{pNShkJ*>X|$Ou?B3GuR;{pol3Pv>Qn2n*kVu zvB%TZe@e#2kr-ZUA2&LV^}Kz(Pv=JDJN(|fKNc?WK7rnO-#?6;?`*HVnURw+tTkR z|MaQuy=uRAtB*zTHMQnB-FH+sE#s&L%X^o=u!O{c3J%d+$=T~_YluU#L) zok*t4zTrg=p_F4srGX5|7D+b@E$92#KMFX8l}a2+%5 zt{_hqDrb9i-e83z-JCsU;KMIN5{(3@Y^?lcS#2=LG;KWFNJ!Bc$M%t{3-FQ^TrMt@ zB)&T7HN}oCSg$C0##n4JJO!_1Is(N32vaoDnSCy5)CD4D(7!_x{#z}{`z2Gh^M;1V zNn1E>+emqBM|te%kVd}&-;T}Da5-wPvAl)AXFp!OyYo^hc9>i2cvmcDnlveM+ZLA; zGEyk&%J>i#d?Y{Nu zJE!OOn=_c*RyN7x)PVepOS;cc4@g7ETg&ICe4R`41u;nVNtss71L9b)K)ywjgKbM2p4{T1Z&!sj>YggBk0}LDUI9Q@%fM#L{ zbiU$5WjLd&4Ri$lE~~P|M10cvR^GI(^PQzXwf)*89}7r|R13*?Xww4$!TQM=WAqL(_r~ zEMGUradden>qOyO!7_;aEes+C+^P#h?^Q=>GergvP)>t~?ydND3w3P(6G}&Uk-aq}>t9>u7f`AA%9RR1j zfuTm(;7lOh8uR_5-a54l%nu{;@Dy9J8RNvV!Rew7rzw5-D~6j6h9%lqZZ8#}KZJLa zqVyUExf%1!T&c|AS-zbMc{yT2J?xCF_Rz1}0S%P9891e0nbiQG9kYzU28tX6wHo@z-6VMQW|(1>tz6j(C~`xLNnL;n%Sd1I%{(QSrv zsg#pNWzHTW7FkNyL$Dx$D2r|pm$)KfbyKPQRRMN7Bc2k zZT9p|{d&APH=HhUQ5|J)_E(Ze-nxUqfQ33UGBh_vg60P(WORk05jogLi;w;QZ7UO7 zEPwB3sX?s7!;~^%#QO8ror4!>D-v>4CLN%x3Z=l1j&$c~5McTMqWHbotIq$%hWi?x z4oJ9^|1Tg_{PWC6aytms{>l1z4Fm#0`tLDMOA~!#Lwe%{O&jHXcBC(Bvlm2dZUFg? zprhM^h%z@S3hI1F5P6=?1Y=aK>Bvw#bF!1*`up`}lJx=Dyd(aJbO`bMl~vQ4Pvbnb zm)GpMPLp=W!pw(yd3IVSI{6RDwtaJ*3NDMot7I!4JmYO~!yrL_{V| zfoAcpCBtp6uANz}K8I?w*vw0~<;X}8h64Cj1F8ol*zZH7(Ox?jhk0(k%NB^ORJWR2nAjbTinNu{+WR zZd7IDfYjv=jBsiZ>F5b`T1F`Hl3=A!e~AXm;p~D zS({QNR>{Q|1SU`(Z$TPBu^Nd+-nyl152m71n&mI`82GI{3WcTyGv4M$JMdIBZodzR z>=v%!yPvr;aK+wAM1?M~QDxDN!uQCIK(9e!Q>5vL0y$|<7h^OF)-*cxI?QU)dW+L3 zr&uCIBH3*MiLTJ#GnBS`v=|ZjJ&V@4Zz&5fM52JrX78|2?N(UeapnEmkvO_Dr;zcg zuWop(&f{WvC>m*hlLsWgB2Ql2rXQP4%7mpm4}aiZ+r~5q9qtMuLJM)yKeoY6EcjPU z7J)qr4pS9aOGz};xqGA5rxX_GZS&yAjCAGj9n)1NjLfxe!!MdtD) z+>^=7+?#msB0)>H7te)$nq1-q+-9PUF6Gu6gfc%OM%=fD@IiD?o;E&`au z-5?Olbq1$h{8BsY)5R)jXzvac&OIyh`(JC~8AVm#=p?F<9X2SDxTV%EodXS5S77p3 z{qe>nBpMQU+87Ro?u!H-RnQ+XRrhoDv)_^&6z-y`(2TBT9V z$%(FsWmr_e#X3|3se5zgfiMe+EYvhYJ2pno%KH!QYz8RM$Pp&_oIPb|kb!@mGm#xf zvY$T}R{-($qc}A0VpN(PFp<94YEp&N@S5XSSfA*hJkeG*F5_!FFj?>$PR)bJ(!VXV z<#Ne`$})jjvS&z}G_-;QC-@48;+c1463H3ACYBMo1J(dwlwC&(MAt`_^GMxQ+pB1= z10>V-If)Mt2{gB+5LQe%6Rdx0wtQ-gYj(2Db8OPQCl}x*f`Zez1IE2rUi;d*ofx7d zQ^?9=7w&gUK}-HA+Nz}CC$5@&p(s}|x@{%?m?SP;Z-vAZ*nzjY@z{5m(=sZ(DR=@> zF~}#{nqDw>dEyg+-vUa?;-DfbmfnvBgm#1An8JNf-na=5W{wcFdvf(#Q6>7Msk^pz zMhgB(0#aKQcXHq0bECO9ymW*pOdEv5#1Cz?tK9ApOU|w!!&2YDFph**h)A0F^Z9=du4DZ zrFAW{<9AbgLd!Q+3m&b~cux>jbMo|2HJ*vp<*J;yu+)8BtvOmL+?>Ftzf>iCt=FW3 zvmaP8+F`S$#m|jvrL4wWo#^WR=A=&bN$_FN6n^QkJ|@!zD?dlNV~maPI(=UvS!KzO zDCqMGo8`AAx@M!!H_frSiQ-PqyUej+KJm7W_9k!L7kjYYwX4Enu?%rY7Kx`l= zw!JEvN&)~nl>E1{L7af5&~P=XT<=tli0s^>*>}a7Zvij}y1&L`wMPV;B=7vthjl#T zpcj$?G&nP9O!5{urSJK@X2K1S_6bt;CHJu8R7O0Ll@HUSJGKJV)`o#Lu1zzrKN;Yg zJl^8Z;7We88Gfn@P6C1g8Gk9qzTM4GHTLy|O1RF(tcB>M_L~h%Hy@EY5;w5a0qFaI zYL&$lPmv-UjuO!JJg)qoKOb$)A&cUTS@>POu``nT7|5}Fh#o(=>lmvG_ggv55co9( zu*N7?!MPuaPE4j>(SQ8xhvtA8(C2?_eCd@^DP-&qhNzw!4zg9SZVs#(;b$sKs}2na zW{V@k)}@=t&>5l>_P%mUL56-UH=1Cz zn}8^uWW4Esy)5d4Q1PuBAN?w4*B5x7PHneL0I%>*Ci!i{4~Nj`-#3==>Gp6^;Q?`4 zm;b&;*P&h5 zb^l2fk?COzC5`+`sH^FV9Uk;{=9OVG#quu#rG!5WsH_Dp${z8~I%{4dG%3;=^_Ygx zh2Qa&Z}SW}yib^U5uf8z*37fxm1pt%W5d9*{1lrjIGhraX_T|jLnSf4iF!cM#2vM@ z*69n`;%_-u;I)66dZ1Xo4&Idmt`x}hpw5*20AeKq@r%qq1~J1L^7$2&*lb0*xo13z-~Xc5Y++%RPemCVb&7~d`XXkd#VL7({OVr z`b(#QLi5ud?a#nHF)WgHki?*-a07+AcQ=OT!gdmBg{tQg{sk7Nm`hCEz&uu0W~hCD z0!p6)Ibjvb`{E=8F=T}_@1P3k90t%R&`0BcWsutu8a@m>{ONa4WhD8>hi;PvTqY}U zBp&$5YXjRk*gz04hnB=>fGyWBbL!mR1YU;AoL$4Yrb;o!+OxBH(w^`nEOG4QZz+)7 zGKX?Rc^uP<3*(k?ztH17dU#R-1G4D*Nl9ZIfi)PaY)J)sI^I5CDOYb4hu*uN`j3u4 zA(PQ`;xtjzctGE@_VXx!pWj<{l>VF-qqZW%1QrQw!krjOpW=yJDl7uVO3?rh2DLI6BvA6uKeGcBWn}R}=QXlZp(uENe#E5^Q!aMNsTHJOF0K92!Lnc5 zgWys`WQn&Xe5qvT!kDWdR+zjDG3zX|p>I|?z5EhOp@V0LD;HobIXaMJ7>IDKq185D zFRrb+iyL%du~?@BJ|cB2cp9#|X|Yh@JF`1VMriGi8)7vE*$lNf+&#R5brrsmH}ZMK z853`n%(h=tr}fJbD+&rA8voiReIW0SE6+U&cXb5kp&na>iJ502y zld24lyE9FcLEBx|A4m4iP^Q71c9v+Ud>9hdGYV~&0J9|!HF#{)?P_bilSJKfbeoOVF4sr|7==hF+5j;eu2AT9colm(9AhgP{gzQ!pErDXH z-(=AF0y%Xo|Ne*ki|65VHu|r&d!l6_$IXZ+)9Mjrsk3sGswgXq-%b{>bm<{wtxy=~oveaGs!YMls=h*N&5z1N zEapT==xwv2W+IwpB2s#ugAgwQIcCjTqzche&FOo;QreF8P#+66TG7>1GQ(t6LCj7p z92dzo_^f2tOpj@_aXx6HbRhw*t{3x&VThP$@NiJ6Lcwrr=xzznh;|uv+k#<~p05EB zd5HJnJ;l2|#e1?Gg4tgn=vhrnApwD-OT3%!S;(`e{X)zA47Z`O*x!#g!`%#Od`Xv{p)bI%13=N+S!WEV!uPBsoufpaIi zOTjLbSD?8a{lRQs)Sccf4MYPP!>7vB2y-9N-m_d}3J|^Voe*|hP1@K2y{1Lg0*qLz z$-S^g%s=zUC>q0pVSxb>mp@NSeF>pl5xTB$?j!ht-Cz%ofjs9obYBJm{= zHrKv~mKquh9QAhL-&3&z@Hs>>bn=CoOH_51fzl)pCD)Cjbv9;I+M~Wx7*n zd(5zR*}8})<*itEDm|h`EEGX`=CR!xu6;{#AU@e0S>ubZp0|YefV+$yM27zSw(BRm z;s%%PYeLcqTWbjL9?`39@KKgtBm5v?23O~1?JPigKbiZbcg>C2=!!27M`hlcE(lqu zGfzzcU)_26%0PO0k~P_L5g`Nd^@KwglGoTI@|C`+XIFttUeA}-lo9A=8uf z{h~&IL|!{BcJS_sv(bd`%49Mf*EFIO=vyzBk+pSJxQ|S~cw(?1(^}iG=S-bo7SmssxO|(A)L4&@8756PJLy9Z=8_{&lxwuUGF1W{=4@B$YQEHdV+(GgUcQ zwhC%&32;zP=n{)Xhxvd{4#a-=0>(W0uZ%|QY{UGg4kbC(JjND)-J%;39N_PX@&6DqmP zbIYfun%`sn=^c#Ba5x0u8Y!u!)fy2Es(t^QJB8=5z*-GQ{EApp1|3WVcO~+Lq^xt8 z$x6htiS}%kFMi}Z&e^zdVP0KKhAq;WHX?4EXOSFOQkS(q;~|#v460*T_sBv0^AE`m zkiHHHyD0taTit3ZX)nc$XUmm8)YFaMFfV4eGkF|HZCny^fWmHF81mZpAPD%aqaY&< zu-PKBcBC;)xXN%qSBj<0rX#r!g`u|M~+=9+AIKm9oHzqI4Ov$Rqm!+EV9yj+}CgkjiA3mN*%FkA|2 z3;GO8iGdH=W|9=HKm+ov+ab;ok?J)k&d52;#WIr7?9mjunCyKnNTZS3^im(wfiY+N zJ9adw+8Xc%n&`iN>5>7ewbiQB3&}+y&Bng$ri{@0HF6Cq>w%w2k+M(~zcIE|tV&tm zC7v{b#(L%4j6C4Z>+I<;p-nv)0~vULy3p zEPu?w=KKJipR>Q4Q{}4yp(v}l28m|!7gk>Q^7bSJBQ?q=vp>z{=RO;0h)>ANf{Dbk zgP7;(N(lmQ91d^~Si?~*64c}yncWl}^b@Pw+}DbGIQ^(>+3 zmx9$&bxJQAF}avQIbSjnNzb6U(nNeq#`ENLW2Ko3g3!blr1&_rX1&&z&i-CyU=C~m zeCPQ#8@JysMTcLKe$QG}>d)4f9ge6&#rg8$-=6_E)o;pnnE#dY?wCzhDYES7sO104 zucuiZjrxsU*)&V!PGBLIPse^=Ha^QlrWH>`Q*NX_ zGUA~q6CoORA@*@$N(V$GM<5(SAvV3AR1#N^f&KeiQCL2rB2w0{US z@HV^g2@9fgzZF6f;zlXH z>%?{sawIQL`P@K7U4n|QMSO=z@kY*uqO-M9(GUW5iU(4?P>9Thf3t?0?fzT`rB#+8 z8CADMQy$d=CHZy^_YrLH-iQrrq!4~(T3jibxTNzO9q9(HqD}bwLv+q zYzy|M+w`iyK8w?jzkV)IYV&@KBZ6gD0f*@s5d_K3h7=6V zD>+1`lzH8w)MUcAdsR5t7>amF-X~^NEcTl1%%2u=fg^Z)u186g@2k_^*e-Ycddij2 zmDy(92bl~5;>o8QhrvsV=3Gi2{<|SHDLYmm0JceY1Rs3~*d))<;LOc**Yi~hZ9p-( zB`R^yuNRg*Dk48OFD&pY;iv7F!9t$Ce3E9Nz21s5-Bq&H(Y1f9|Fz=9H3C3GTukw{ z&P-6+NJ)$WA9CBcyJOa|ADi6eH)u63xkjfNn$k(Uhhh7=(ey{JLE@XhRcBFdkFt8g zC&H*g1h?7rq+|dzJ0Xp}n87fvV(B26N757#9j(M^-_U8N7Z`nY<)`l3nx95PM zkG7)i4-AHnPeq)xcgs9NX?~g^my=cQ_%E5W=^bJK9P9H;Vt~UDT!M$z1f=Q5>3}iW@u^++ukAQmf36Sc5H!VHjW8P z-`sk|$BZcE?$w_J2xi~EroodUfgr%WWKtc4rE+|SNE&;Agb$q7REk(SiSLyhD3W`o zM^FYKEx|xOHA*1oj?#nL7Ksv#7C%yH1{|$D&a#~nCp=fuLBY6_>hJ)mt03E(1Z}HV z+|J==T(5-`xXhLZ`RPB%-Z}hn@>NlTbrO(Rhi3W`CAlVv;AT<7PV?E)DlA)Ne^@hVA4@JJ{0^(pDe;J=IqLZwR|Rz8Y!w zcCd&jP*(C&7VMHHJ-wjS->>~QEYPH+twqOZF25)_HwN>dRBPnPW~S>4bFO!<}G1mE46 zK+qVeC^GX3K?;wmkK57F0;tn+5;g=`#$4~8yk+%1QJ7Ph^xxFZ7x|3d3_*iXBrh)l z;?{@&4XGhT4@0tK!&b|%<1h@PwG)HgGGXbEUu-X2(`FapQ;{TuGs)tuG6zLmGlw^j%OOIPnNhN!1q{4Czsc_uUv`m#gwsG{aY&0Y$cvU6NhLMf z0WfvgLGnr}h%cr}K&}@LuM)SuEOgnQUi7oOQI9wNPQj++3Z9&gqXcS>;h3m^(VRyl;DeL{q z&z|oy+Xj1<3#%LLdt7rm4&Eo)+0C_o>bH$8a_ z=#=6U%3B3}O(%?m$71ZviW~x-%LFHX5zWeIb>K8ZQK`aW*l_Tx#e0GdlW*AIV0r%K zQ_wn4fM;g@`%?|IP-)$|E@5fOI(f8tRxdgy1|7rU#^^t9r=ndox_p+D0!Q7rP5Ky% zK_^=q-;Zr#Qig3v4!Mxo-FZ1EV>XG~5H%=ho|*BH$VQ=9m1dTpmKn`9Cl!_uV|6HF zLl630T$IEc)!dDy&-2O1FC_l0~539US|Y0)`k4^Ncfa$Q9mDlaFSv? z_DGXQNt7Se1?1BS`r@Su-CBp6Ms4xs;R2Y{1lYuf(yg+z=1%Ltx9E@h$cBmoWY1^%nY*K+^{2SG5CZzrd z*z_rBS^a4fp#SDskW_QTX8|qZqpIZ&&fL5atjO8YmcD_H7z`nHeU;vO0;&-M6sxeF zr?)!%bxr6EY+VoR%~%?zAnrj)KL=MrZS36KI#}_l%(3W;UGS|8iii42ojUpT*Fk%x zvJ2NqJ;L4qcXeLize&LU6NpAvxv38M@p*ZN`Tq?>TQsR@N1`&J`O4*e6B9`!S#{+? z4Ta7>hS=!hVGxch&8M-XoyahgV!I7Z*l|#>*bK|4g1N13HXpxFU-D3#PMSSTt=hJ= zetYt!Pi24i^Jd3JHi{{--eu(A%ln^rm{Mhp0#jT&@l^?TeOeP7>< z?p+fwqCcENy>)Bc7}$E-7XPj5;O>~6=S}c9Rg(!qXqvZve*7MHCG!q(WVrZvcXtNO zT4i8s4Ggbqm%Ma;aN#8>O2~|BH$jOqU9%794L|al%r8Io_~#Q1YO2xyqK>iNBxOpn?ksM4}p-G94}C~RmHu2KtWqV z6IY9qc@gCGEsgB@I*!cghd}B2kt)C%VDFT+Y<>~(Bsvzpc{0)8B}}F1XY#)`psWT= zKK>M)Q(V{xx8EoejQaPSZ0+gJkYPn|9CVpY*H!zfXxS*1!ZMVUG&m1|{zRZKYCx*4!raK1HRp!-a&ic=~r&6X;Bpe7N+OB+CsS)m&^T)5N^l7;8R z-b)kbiUU_ZM-?=KjTOn`$l92qrBKziwv1}D0r zSB8=*`a%Y{4ls2lDJ2Alj+N)+r6yFkdf zFUu{jYH0O~pOO0Ph-J8M{Fg#)UZt%H1w1yL9p;8Qe%JGDEQzpJRf zbJ;i;n&|pV$s1SW@&v;)tyJ9XNF^fDGgzNx;KjVU7ziHLNwHx3EfgqKkLB|;mAOCD z2`qGkZA9oI>B$G5U^)MHz1@tLe)7H|DeT*Dx@aO>g?6h^lQs3=FL4!vAo4PZIK_~h z|0y0(`fh=T`|)SG_-X&c=k-TCVqt3dQ^m?hQU6arBa$C~-!)Quimd4Kah-hqlA8UJ zOTHIw6IX|z45@50`fUe8xbdZ6^54JjpKUsh`%GzKc9y*1;+8$fdl7pv&_ORQ=nQ&h zs~~|>-Z&p9CjX{Nba%(8|KZtcA26k9>{J6LK%ePqpL#_~;3e-$Xd`B#M$#zT@+1OX zGCR1$EqClU@n*Gvf>#F|)NgP?wXk{n)TCm9p|qos*($)4D7Rt3Yi(HdjM8R-Zm7_^ z1|6xWZ(eKqTYiDso0qAs;8!=JCbe&aa<(7Xz2LCt(a4!l*?iV)(e&OBs|#e~Nt-*| z5@QFO53shmUXy^TNR?+G_1fNlWF#^Q$wWusC044`xpmw9*WUHX+TpmiojS<>oOc;N z`u_h>Y~cUdJ12UJDiuY$3`Qj1r@~Lj3NOnacj;zJ2J3$sxzMP<5UiJta`B+#by63j zsZFbm-~71qX&{TNmbr2FZreU?%`^N0p)pPAZC@jEAFnKr-9)To6KDf&#piE;xepQ4 zjA4C{j$lpS1>p7oD2Lav>hgHN%6KEeqfLrJIkBLqD%Xf^N)I&}Nuw(ty-L`tP{3YgNWK8gkzc_6Gk2M4vqZ)IPV@St z0MQTX1uwNDLl&_5{n*8+|G;2^;SA~WX=xJ_hd%kSqXFT}Ntt_+2)&IP0Xf(SECeum zd-?`b8ZpRhtR;oz-}au?OOHZ3{0w;@K=vcBHY;2BI~3$OsiwfOP1p`pM` zfH<`tTMx|1xgj68=M)6ZMmI9YMAB^#N3bV&{T{?1Hzi&{a8!d?6m?0}YwAVZUvaoR z8LzVj(u+2Hl+aB)W;{HRqk?sgge|=@(3BK9AXSJR-bkAQPVKCwE{W<-L}NZ7I^SlY zCz{AzNdUn(fV3ruo%r!R?5N&x5VMiX+I1K{a>h7vxsdrqlryFQS@C`l)?+#UXKn=n zGll}5v74}mK>i`ATH81D$&D0!J&(0H)wqKok$IN);ag z2;z`m4CES|qg`{HIuvgDR-JFxj&IUsI$>Ryh(4mm^A#dG*Y+$*F}^nQb{B`NCCQYv zg}8nnc0019`#iK{)!qlmo6KP|A33rO$EAo#DeZ+l%bC ztM@q9U)P&}hmFDH>Z^`w=c4K=pO3k_=j8BT*b^*C zj@ur`6RxwnBV9V)G%hHSU6j~S36Tmha|nSCQ&=;<^DzFAriw{Lnc#^^MGB5lM$HV0 zrACXgEA8nN8!`h(NcB$m5h0}*B=AbhB0%X9Ua~or{*g`%&1q8O43MG&Z;6#dNaFY# z0WiBvFd(Z1U?~PA%^P-WPg%IU^(>OOGliJbB;W#Nq-0FF=cd4~e=E+X#CMyEyB1A* zf?^NQ&JaIo9Da%x2h3W4rU{0djKYWs7TPk&CM{9h54d@~hlaZH3W&T~JS~GF5?pn; z2QdjsB*pnl2G+3r(l)%2A8<#SA{v0_yuKaS{JWJBYnSVhKHd=iATCtiU^1Q>fFrDa z&67kpoOZnVxU^Ibga4Er?#_N%vCxJhW3DAMrD4uIomx}i@*ragu63yd*rJ{AzqCnQ zLr_VSoH-}*m8ud=6SbV-U{6lRy)Slae^e zU)N^!i{bO??v>uN;q`uObtb^dG9;laWOtP|Ni%hj7u{5Vx>#R8l7!57hGp74y??@? zS@+7{rqRaFRHjHi8995r7oM#%I7>U`*J%&dV;207`bfhVzZr&w+FOoP7^?lc0V!bq zV2?e$h}D|OG_B^BS8m9bo6p-^SS81$2gMDtx7$rqo0$HGb4vHy1N!VTl77qD!=lHC zPIuET1oMN;LMAknp+I;8Yk2mtvMMjjFhJsn+LTl{GU4R{glZD&m8i}CqJgua3v$%q z=siqn5`m%%KrxV4Cy`C%P`;SfB1P#X;Y@u|QhZwsU%91h=n7+#wM1VDip;!bZf+Lt*_EMLBLVqng1ECF7nLu$=iA_Moi?+YulSdk zK;RO<*hG+%K*U7AGQc%J6g0l(A}@npVtcwZj9CbC&^P>GnZV-y+d#&GU@LmJ99Kq@ zH8i|WSKQh91wIH^K-2J9F8P2FFSt~olWXbTwTRs|D?jk>rM|N!!%HV<6&rw7{W_+9 zOuRX&Ge)zG$n#^>gvD18Z_C-;2OW3IHx+)&JRNS>wfDQ=+~glcwsbE-{$zoGtR4t& zm>0Mkt{u!?*+}5CV{F;A~J|kWL^xkZhoAkS(CCBqI;Z>n^f0y~JUCTq>>XZQ5NIaGp^8Rjo=sB}j zOJq;c_FJiZUKT3(tsxwn0Qx7 z+vgd7WCK`*m3)zN_nbw3zMr+c=t2I2>stiG+MsniMlQh)YB&wX#EPs+C7d~3xa8)} zS24!Yn#sKw@?P|30DQEJZ1Dy{{R^|pq{fB+6k6SqUE^`f`jkz?!EfpUC-|0dVjcci z1;s%=h8&)KI2m|!st9)`e>|#vAmDULO(5uHGOr4tR{^_#)Fk@F4dZkU z5om{%$m^S-eh=%2UtDU^foP|&1J>gE0f}4IPKu%X4xL?-Q>#FH;%+pa0I&rhtiw&v zVaE7=lVH4QCr^8=Lfv9TgH~%=-#Q%|uQ6}bB_wwel0iydTvL$4hg5}Cf|zw-c>9aH zqYu$eADZ#085x$2TYE}twzEQNR+GjE-{jxML8s#uJfcD2P0=^Oo=M8DSM+^B_9n%8<|8B66a*`O{>dui34Opuuy=yyLbAg$ zLmwH7iLd{mJHdMM1uazu=8^8pm}2~eXQpA#R7>?9umsNL3SAU5lA$6GmDFRHK$po6 zyyN>QJNQj%*V|F>2q0JJp1$ zb+mlJB9R)S?(S1SCrR#!I=E^n30w-JGMb&}Fy0hGkzu+I>hKZAGRMJWZ2KC?rB}t; zC#$GUOd|eS?)KYXpCQFoPtuW;6&%F};J?YE37<|{3R>xfll}xt?zTR_WQF)5pkaR$ z_w`f3;vT#fR5)CCJe^yQN|>g2N|xQs^IX|8VXYp)^750ia@b)A`H&U@UZ>xdLL^)Y zT=beEqlp$!6k~%J448gBb}2q(QXHq){}9=73h^us43P-Ha)(ZM7KajgJTpTLLN}`~ z@9P2Mf)Ww?LbS#LO-A90F5D9Hf(DEzX+JObRe60hV2hDp67@CJq|J>64q|UiC>>+i zS0E4;V~AITo=PEzV~-LP{59FIpYq7G!oDcN-ou9@BAZC<)dC6cKN7OgbTp}D$(rb@ ztm{e6`@^k-CMS^Nc`&XrVd@4$8KWiWP;$3Po|9}$9=jAA6gI~^L#|Cm)kwUs?V;ag zk|;f(c~Ny45Sz0g>T7xyLttUgXc#3Y;1-FI-+_&R2yGLYjlu1JnG+o47B$bfq;-5! zCO}1MBcH5%m8NU)j_JL&K_YX?+}+v&Qxe`F<=Hkztroky7E9WQhW5-h8Y>Ptc7_xJ zIM}r@Jg4j2D6cj~Ca>W0?xbpKY{DB548e6d6|65PlkU(sdj>W$=~uKkSbJlEf%q^r z5;tfYyLn-bpV{f{EiRSLuURS8<`p^^bYYhq99Iq$h%1<*VgXa0a@u#YKiHjiPz^bF z%<6PU&`FZ2c24$t0fa6D*`!kNa6|5fo>o@{tTbXx zN#(yF;o|k>!HI=Lg2B~Y;Uul%JSdA6b)REgKk{6TQq{=Jv9vK1s}gt2Y)?sjEwNsu zQGo^`6db2_|NoDawKBG%VxY#9H8n-xhLnrPmmfD83Kf$@ns)zlA1p~Of;u1M<=BkmzlLNLpB_PWp> z2M2WR{Ggx!Cmz=6KJ&&Wmy(G(y#<{GKOatx2tDp0tk$pKh1r6P&$|P!d}pM%oun zNMnvTn+F@&2? z>jP@Z0dc`QjCJ5&L8bRlq4p-#LP#Y;?0^7z)09At4%gM1GaOs5=X(dMmkTMx{*(I- zVkdzAfQeCWnUYxa+p)dUZ6iQq^m#sBPfd+Li{~WA(&}EG|MmhETXNw&I~ah=2{eT83Uxh+9_|Q z)&R-EuvTkK01}By2FbTQtx=}9lzb-HpJF=KK#ZlgiA4<-3lb(2ghefN^qifgH_9^E zOe>syQ6pef0uxae7rKYn+(X3W_9oq?CHv-`Ddsl`^y)w^oWf&>oRo4DDb%vDNF&8O z@zzL|=UR`f6%+2DJd8MWg~-2#^+;{#MJTyaPoN~%Du6@PjzD+~3tlhi`$;fO)nC2A z@J7zWp&}($-ypb_FR#elB<@H34gI+meWqm+t7cHiwe_Slqw-Niky>y9e1V2)KdElAL3!%x*jKs9CexF5c?xB>8-Gd{Tm-e;|=xrEwc7T)( zYXu6+j+q-=r;HFV1Ki$OW7=tE*<)sH;ke zx!$j0Rm`;mz^IT=Z}=`JYuoT^dZJz?;EF|W8Tq`peI*oLNpSjWWtguv*DX0o^Hjsn z%|f03F(%5@`BpZ0+p>#~G%mWNyfH-YV~R@*%d>-VylIZXs4XboVjwtZ3dOD)C8+A& zi;m9=#Ra>PKM0CBaSBF&45%7WFK7?R-y{DKCe=-^9!->TJOO7Vk>zF&=ir|{qsy5( z+3D!79rRW*X)f5B`h_I5%~9xv{_|0&|EDVe|Hi=J!%GmC6+0+dmWV9_`c|1r<9E(u zN<_y@X}29X>9}K~EN8lF>R1A8Uit|RP_^nkODdq@LQ)`04KNNTs5_gHaO(2+nF5H<>^32`6Du6)S?+isYqM_P=jsdv@A3e;7r-Ldk z^kPW^&kn!7SY2SM3H&Qpir@Bk)dOVeY?c4xql*=D|>qk zbPtD>&Rof>sHFa`ak#dA(9}k+kM&U*>&XD{wn@b#2o;2MdK>ubI!;Y0^pL&#r4YH} zohk*{R8a`L5)w?G2YTT*O^xfK4(>(HJYn*;_M1Mj&^X*)2i?hbH^*qrE zZ^6Fb-<@Zk1BC)e>L(dz`n z?TMfflEmMCPI%42H;%WeQmT-^h!;f1);0;{nKRBbr`c-|?(E*Xx< zi#4M|#`2z=U47@{H?{W#WnX_^71wOaWogs}rOA)kI59-LqaMg$x!N(zco$?O<4cBZ;_16?jNjg>uy=cem@fY=kp>dcc_`RCZK0P>lN8c zFy|<5zAYmO-qnHUCo~C1f_4$x%eFm6RV;cuFGt+h1w-gsDrH)L^-nIwecx_OtHxsv zicmyWg@x*Kr@vqg^J)p&qS$`5anE>P^?hPCa{fK)s5y2^hq!F!XeuVN+A3f`n`VPI zi@7=?b-%vtBW+UTF&}dd-(W(D(3;KhYhV0UTc;xW%boifK&M)8*maG#qGmK5-*7Y&dG)(_ER0R4UUzEB~Pj+2Yi@~3IxX5P%QjERnXVZAh zSC{#{Fll_SG&vvIYk3=s%Pg9Jx&3VV!fhg~yyJ-U4}cPxF757o=w~tu zX&ixNa3Ovp)f#^?nB5`<8L;7a3MrZ8q$~4-6L?sW#O@J-6I7P`J&~N&Nhp7fWMkk95zue*>;GB5UfG7gJf0Kwwj;LU`3DC)4EIG$zu1gPfoHI(B@LFUBlV@Y6xh^M z7^#S-TF3d-sO?~0`B?$`M9 zuD=054_?xDb0<|nnl+M_+SbBGd-2t-;Wh*W@o^d^ewh@0KC4SZ+m6FAnI8Fn{9}H$ z`&!wJ_7T70T-oxq^=c#Q{}jd8)S}4_-oAnY6jmyH)5Ce(n(THo`d}5Ve_J8_HA>PG zs|8<8(FkzV|L#2(-6*^~>Z~))n2V)m5g=vFHHW?|4_a=&DYFR&v<^(HA26p)&CBR|LW!zKL6d*g7bUvBk65c_V2Z^SsV^a zjjgGsH8y3?E1i_gW@Bj~9y6p3|B1bl-q)F2D<1a99dkQ*SeJXhKUyTG*XKG&@S06! zEE-uf;_+(ulh>7&9IVo=n61FRKZx7Jl6IZU&{#ZZ;peLFJXmW9=XTAV=y(i=j92|C zEVBZo4);qeLldVdPH57=*o+DZTx$AbQ6L1~xbSxS3^WD6gea3X=#U)ZSp2S9Nx7~^ zZXzyvj6?J|3C}!sMtF()&(J2-e&;scOs>tXux3(M%7x=wPH8LyJlOJm+I2i|B$|1I z6Bh(dvb@0-h43|WQinm-8CWEnSu(_!G<_NAyj6)RHr5+n=B9ZH{p~$_X5eLqDnu$sVL7ew8l1xQO_z}@@f*oolH5S_m4JcaK zqo-RIkl%Kf*zA^=C&Iof-UGjgR{%Kr84#Ay6M|yo6fqxBOkdCjHyRIkBm5F%9#2dj z@QPh*0r0gR(9Ljq47MG-UJ8*&V0!@13&1GM2cV%#7$6S89fW|cLmgnhJ{EA8)E$T* zcUl<$5{Mh%J%$k$W~;V#J zQONzv0>?pZJlCz>6mt&?lqK8TX^`-4wo}w1!mryg6LPxoFU~bpeZWpwaQ7)b$xsz(^6}tShlvC`n4>5RE*D-!=e37Y^ERd$7JNhm+Qj~3NEAh(As=`trzxs_gB5QKv{b&k(rHD0~-#2 zK3)8qZGU7{^5&5SA|b{y;$`5D?MIEJlSK_Uz6>fhE;-bDdrecTV`SP`HQ|d}pOUXG zv%X>%C#9;~bjEbbs1U4${qj4aqUmygW#Jwu3J3oxpk^v=dW)5mWj(y6wHo~SVly|p zYp>W%yf~k{gk;V=gVnTGsuA$8<*uQ+1K4Uyc#WB?Qb-i~>QcHm@oHHRC7C!~f2m~J zA7|Bid9rSsw(YX2fEzJCUe6=ac_6LsoqcNKAjZz@V1(+yd6CBpi-ohKi-`Bw_$#ov z*iV(_nF0t@Vw7y<8eTcArigc)IHlp)!l_hy{?3_V<(-yY7em?RGH=&X({DzM{WY}> zOG;=XPTNJ@0q%u#`!7-x6&eD&U}+zu#;2B=zFZ}Qox4)pB921a``! z(v#&dE8R8!x5ot|(PRuV$(a@LN zk~EuE7KTuDsv<_cW5JiK!Fwu1^J0Ze?@rD9981OBWxW}V-nqyyg|>>;SCSK;fsJ4J zXp`#8qTrjIs)TV<({PS3TKW?l;v3U@2vK8u@{0}R97qvSF*Khb{Ua82*Plh(jhV>lYl4_T5mgy z{)EPKBExJ1Xmy6T2S-$K`i$~)>>)L#sZnki;tB{$ksk*F_CEM$?pWlDKry7*Fq79y zj-SqL6?X7r4+Ea)gFs};*LGCh`({_rQ=J+>Zpru25_%HB%)Loy23jz2gidh7?E?>N*n^Il zEn{@zLJG#4WA>pD#I~&7M86@YugAS9z6IEhI3D3ywNG(uFD(~uHZx@qf3%6V_tIh} zBOKwcE;DpBz)oPogBQ0oKKq>C=i}+w*!OVX%zqm$VL;+(GLPnn1Rc~fzPk4ePY>?~ zmfN;Y=-|tpgn_7;J1gFiE|)>*3yjz&c>llwO>d0pu6bSN!JT+#%6Enap3MURbCGjY zaZ)3Me>)GVISOY$J1KK`q%zuJ5UtT@;lxPR6n!KMSL|jMJwC#Hu^wu8HuX*Ey#$w& z{z{9(p373YsG;{#y68w{+9c_^qY9Z!;fn=m@YtW9D>zi6BL>;=>Epp?>A`?qkx=Sk&Hk#$ zJ2N$GdTM}y-at3cbaSaYnA?C9Cx?0JhE2*MB^ua!2I~S(nS)=2N5He2bTe$y8AHTX z#lTiI{6x}L90H&@gqLQP!Up;mgWOkz4fg3$-hkr*b)h}NL?aqO_`6{IhO*f|X%$ZK z;Q%%X;dyCkTEaVTsGszfJL^;Pdzp_ZCs~IZ{13&~Q+`0jj|2gU8OW+&v^I*p?>%~l)zRhKDVcp0F(sC0jERvdcfv>l zR357FoVlfT{kZZQ)<6Asb>-uN!k9$6%K7wRYWfV#*}Rb>e~-qkRAe7T!Ze?oDhN3K zK+N@7y4mr4moE-*tDp`13^klI;QcVAozafWdgm%OVvf4U5=n3bY9dqg}rqrK2MEW35-NW^fRZj4{# zvXKe=`)x zASO=G13*EzHX_3#2y0vW5|l}#7>8kpg5|=;-aWJDSo_4fYa? zRNxUi1=$J0ZmHa_tX_%lTc8}{f*9+FP?Mh@KR+&GF%t@CU3J2s>2b?}Y}0xSgeow! zd52E2U}x+PBdC_ECjl<}X$U>uVh~Pi!E2kwjBgFE*KQ#3nJxB-sb4({)wf9PG^`2< zp|Q<{V8oaRJ{f(Cgc8D}HRIrT)X6~%!c*GkhB&Sf1uP;4J1kRYfK2$40UyTwp!i(+ zZ39Fh^%||}0a3~xzJ%Vy7BKA5l?15Nf6!@p16=Rc}bEY2IRV4zx zK&Z5-Kgmq`V(>t?WhGh2v;4df2DMJ=frx)fnhQiZ%~2qqB7&Y5URC;>x};Eb9!o2b zKU?%(B!`^~W7C(aV&}I-8ha7q&Uy#>Od0GhhD zmfR4;1HsXH&OI&FQ;i5gUjtI}X%%Olr7#b3@usuc7}u5L_&ddfsGZ(KA_JK}){Ipf zdcIKEyX`THx=*toQj5z`CRyUfU?YSg2AGs7p@A6ow{x z%$CqIw7b(F8Dw(*mS;N$;($6N&8#ait(2(&6qixxkpu~q_fW3HT;8-s0KyHs5t51r zGs{Pc$eoNUbxnwHPTOh3XwuF`AcP%kOCg6*x)JvvL)2MIuh5svPA!0%tchd4lNw`L zmy$Mv{gR}GpXTHe>$L~P*GfgpT29-fb8LT8O@;7Hdr*HlD(DC&(TRPfZ0&(cyIT=V zErA?{D)O@e&0U$thw8kjwPzJ2IGoY3r6o z3A+Yl+1r_;k+*8=l~YN!5-qJep>br&4z){cR`uj((Xxvo!kjw(S2zpIA({;lMg??8 z#}Wt}h4E!6fZrwxgb^5?S@HxZDp5Q#&A0h_mz30wdhh_5!2QabFz4BBQxyeQa5c7> zkMm7ULk})WCrF|7Es`8oNz=VYr4Wq$54*||B{Cb#aSsegtIlaiab%ay>1rz+A^C?} zv|cOxSzOQ^m`h0M0bd(^AwW_9F35Vrk^s)A;3GqzRlu*C44w(L4aowu)7PEg4sGrTAj^W zH4G+3b%Hs zF9%j zbRz>4AmpMV3nq`~F~~&C<~HZW!6*SM1sa?gaKw60@6bdmW3lLu9*5$#VX1Pz)&8D8 zN^I*zs9JgK7T7)jPm;C|H0!Wk?8J-AL#M8FVH7I1Zktw2>M>MT?kid1Nn`pm^T}AS z=M{h{aS%jC_cVRg`<8GfR3dlm(MC|pOZ67x*vi`ADr>+Rn+8{>iR88N;-{t)j7=J( zJaA|rD4=Q*G^nLoI_@A_Q?Kq%6K_;}lWxtXPUt1uaHK*%eU6A9Pq=pUgZwB>_~UKg z-%ELM!_t#y(z?o>Lq+2mCkW)3MT1Nc&h#4~zPoEwc1L%oo>4l%rE%Cq1J)T@A-Wft za7mk{o@o@blUx~OOI=phJAM*1D-as@lsKlzu22m1)p{@=UT74fcfFg5^z_Z5(KDV? zdV*P|?U`y6s697Bb!~yy8&Z8$)sFONj?JiOEy1Y_=n$90ehQ1tzOi+Jg#D57wK)4q zJvo$vTv*GrvrN|Jf>Rn7>NfJA%6$yp8N&s@w?tgbtl#8eP8D99@m4colVT|hpwG~k zbEd$V{M3@Fg|r|h*+`{o)NFzqss$7eQrQH~BwJ1PHMZ*LP7f7CkZi&Vp9JJdWqahh z=W#V9734JZLesEsUecnis_p35Sh@x>ASUT4-&x!Pr1l$loQKr76VAUxP^x$>2ZM<7 zWf9WTH7QuT*%z#Fi*?MMLNX5T`ReyLkbLcM*!hwBYAC%t-1CGvA4aD3CV`S?2tZdy z0oHb49FFd%N9R{Y?we#myv-tGGE?7^nJx#%I>riEp7Kl+;bDD>OWnKaiz1IQQ|+Wg zaD6+CDtpwJ`eUPAbX@_dcA8C*7!N7*)U@PUy~5}gvY%B10&CDJW6YRYPGtx)B0Thc z*=-%l;}jPs$D(Uuq;JsIe1KE0A9A0$Z?k9ROYm?5fD52yv8o>?$Vd5jPM!#)&~(vD z@?P2ZbEIBIzFGDmp1Z2~Q*7LHdO?B}^}C#+r+rX9t0kiiEyut(_B=Q_thB~J!nb)z zVXpFHXTtiRKarmwdEHZ82!_7Qgioaqq01ag-R`>Q(bAvAh9A`3$^5S)V|#+qZP}#c=!a9a(+Z*@X7(mngkB%?VBcN<}iyV0iKBi$+?fbEK z%D*5wVXq9h56sWKv+_QhsX<*)N)@PU2y4~7;Bv5#Zu}kft3vjbB-}ApI_a1^rOX?$ zOrNwB*WB5@RB9;aq8OUEof;s9K&@NX*wC4Ucg&At?}UeexLc>sjF+q*o?>sm6dn9O zkUidy&eq>t{%Ap@JT}S2S2*_;|C;Tu%)^=BHXuSODW_|&K23_2#9_EUs-0q`6CQ1v zoN7&Er$puT8OaW!(bmynKn%rzN)tu^1$_F$>WJ`;b}zmYI{-`Nlhr_dJw;>9!JK(7 z0-~AeYF>3}(kBVBhq42PV%?3>Rx%n6T$4JRyyw%!Y0$UlJ{<~U)}!cdxz-B|27OS5}~%+GIPr^ zyW^009Do^g8nAD1XqTq?do7Od@di}3OvrTNYQYTi#q39JphwEutXR6Lj+e^m#BEN@ zCxvmtteL|vKloNFH~wOuH;br!YbnSnZ?t7v+)ftP>Ac?>Td&nBSW zH?9Q3&abujIKK0(n|dbavEVtA;XA}vsI;6F22aFrI`3#iJHWEVq&KK@vR=#!@4ipJ z6p@+#<^7=4-7d9qBh>85d2B|Kyez;svHN#qx`d8L;*Yc0X*Ka=45 zMcc)(`-L7-;(hYq#NG$gO+m&f221t4;LpdCCWhi}RpE{JbjoPc*_YEG!7dKt0!fhT ze<@{x>tH^T|3_KlaxuXIxlp{k0|Ee$_{|>uZx82JS+i(K(YD`UKpD%^t@yVm;Z=aD z4cucZe_r;<8#YH%4RbsEm{JC6D7LZTjpaG$F+oqba6J>2%*TCgqlS-jv-`%9qd1p zEeQrmM|AiX#@=*6Bm`~jU8Wytok~4@iM$34w`035xx5pVni>am0!DZ=$UP@HAY_l& zOU~a`1EJ9}oI&@4FR~kW%(wgnEGCYQur0MD{9Q+;Ca1TxFJ5#e15TX42#aXF;N4KU z0h_TV+4Pnhj`mPwM6;kQOC{cDi{-!CmvY?}mR=tJncA!(b+RkWf>rQ&m>$NnGDuvX ziFhsyPzCmyvk#!GiX`|kGUaVH7juWc<%`l?q8Wp-|q;%qn&is{q%<>=qZm2|zHs-QR&ddIIOLtk4wM#rcrx4PIjHCbQ zi17{b#(VVx{Lk_DFX1^`ZyWg?7XX0D_WvFahhO1&7~4`ANA&SQ>&VZdf$F+n0HQ$( zG>!;TQh|*?+L={UaY*jQZc4{>&Y}FS?ISk#EEf}vhgj9jt?S?N&Gk?i{6D{&y`h2c zrlz8WQRQ#Es2-bIrndw{@dceo#pHo7w6r)jHpqR6DwecYi=bp>byxC1{LnC%XY8ia8@y$i$dXOXHPU zm6aVaEm3pG|91cE?DEVZW10p54&Yi^ny6j(i%=~VF1g~&D;hi;Td+jdUX4=*;>IX+ zM{PGQ!Jb+ZAMh1VP6m*QH@ngkr(9|fzK9)o9SS4JcUS3*@klreWt&z$uTD`!A!GjT zxUHX^a7mF4(Ah<2ib28wac1)?l;WgyW~M&XvENE!$Ujg~%Uf%bzf5s;$gW7zUKEpF z6sMvJCh=qua|rS;o-0|Eag$}G{n1MN@FrZrUl!t3kLcE|JR=ffCISQM34H4Iczi{v z_tSl|`~13I7@gb<4GS_pmwPXZqUvJ!z?|(ctp91BuS`B*`fCc&C!ossRZi+f$Xrn* zq5?)izkt3=7#TgG$KrruYQ+`E;UG*7jhhiNd5rg?m3HbhyVk?#%8mEf(Os!@udhs< zCzi9|h_S$Pk}j%M9q27lP3CNNhyyd1NAJMAG_kF^+wTE>g0)~Yf*kaxSS9G-hpQ`-;`CwH1_ia>4I|tIP(LPIByo-r zKr}#4@t8r$LFOL8SpS&H_lGwQK&wX#_D(zq_4k+68N@Vg1K)`KEC8E#Y2!7&=e;64?rJONld|Uh>eDzl>YrY0Hj)U4FWpP zuVjoU?KC9_h#U@qj3eenQ3x^!6AqyoX{gFjA(#Qob$*%2P**%& z91XmZI-_ggk7zC=rJHAXTiw3~^3A4Bpje4hEZz&V>B*E)dZOmmAryt;S%RF=i2!v}C=(CvKZUBK6&PBC4Q(r_;W zE>da+K-d>NAg$Kjo%G2v5rgvEc`{+(-RO1ixi!>^Nx0^SSwP+IZ&~JILkm3sH+1tH z`wJ$o`-Ty}+q8f6AmAG#wF3pbpK3Z3^T*cfXE(C^C0&q$)nj0#kgykU)J?|3#MI8? z8tPr<@bK^8UVQ~U&8eUn2Ro(a8ET>`;tXvJq}G(exCc({5CNGT^qB&21FHy%YHw>Q z{uHE--JeKVBGjP7i_1{jfFTc!X`=_=-^)o2d!?G=rx+#7G4^!WgcSk<9AgMrIH->x zILRBN@rIshNdW1h3)@5Ww*lRiV7$ku3m;gh41rSMn{iCt_<}T$aS^><5L3Z-A=qz* z0`_rpcyFYGxm=>Xv&Sr>n5f({R~@p995w98~f6!q%X1@JzN-3x-RiuHZg9y#)o;YspUJcf@Ovte1S*=n3sQN zlQ^i8a{AC7t0{X>q>dcx73?Ti0!E#y(I$#l1!%Z0*#aCx3$j|h=j#S*d*Wx|bmQ9C z=qilAqbtk7O?=(KBTSq?2Rk3^gc;E^c%mlPdM)~5?c8qKv<{*P-H5nSS~|MNdV37u z47-5zTCkr2glnnYE2%+X2y!#qlnKZ~s!(!0V54a>t5$OJj;!rT&DTwo7L^9XuuE6< zAa701`_tWNvE>lil|OALgRG*yOi_bf4s5Q!qzNy zI_m~LE-#`e$#~)NOn&I$f*Ww9RZiHlJydPIdDyOdoU)`)*PE@ntEntLG3@ndbJc5% z-+*NmcGihz&?6+|T&j54S@3j{WA1i&PPXWxhD^}5p)Rhiz%hMpsl~nd?RGIN&-SVL z1ljX8^yTo>;2o*gFToJ-Il3p(3QKcINFP~i#q9I&N`4A zH^z|>c;b>vusK~fPnnhqU(xgFOr9FjxZrB{>;7e>&Mm2QhgG9W!2ZIx>Ok-8Y&Byd z#|6wR?|20Eh~l-70T)6B6rPZi-RsZfx<{mt!~LrsX~et<@7CkUohMO~M+X8H7X^!v zYJ0PzE|do)vm+*{syY7+NWG>=vimb)?!RQEc|hn<6#H94oTEMb>Da|6ZkjGIb*4l( zYZ%MGw?S=B$)OzTimKfn?0{^d@yp4v4^!zEV{h?DIm@%4Id497zndSOmq+|}3j zP3{N|mGO*nnXGtP&~GumUYYr`*y%y~QoX6UVZ@~7wrBB9qt-;K4XPv{F2KJ24^qaH z8&Dlz7tBH&sSR1S>n9jqN9UEp_sh=j-mcT9^Ej|D<08xL?|EK~siuC6ssXQCvh)cq z2MJQSA0%6`H=hCbjYhGYn(L5LXV4k~Ikai8=AkOm!Ngz(igN#8sE#EkZ4!2a++n~M zpn=ABKi1`Fvca)S>Z?<~ZRJBI&EIMm1(gg+QxyAVp0YkF2Q$4;Zt)W1rEj*4zS{%c zW|y=T&_XWLRZK+crS`+$q9h6!cO{St)g>2i(C6}Tw5U777%gQ!_6 zq4eLn+ybFOprq|>%uUent@&I$jqzw(>@YS*qicmxm$S}E1&|!|2hc=gEF#5H5$Xub z6Oz1%UA^da?Oa}8?Cv#%a-_or^zK>9+7=ek+>v}h`V!I6Lcy=PaeM)z;qhUfG&e|# zr=k=R!WM3O08GqOd(?L%B&rSu1bS66(Nz5e@T}Z1qN`??2Z2Z3G217lRCo9ovhb2{ z>X=YhA?q`Q;Eu#b1jgKn1`&yb3616Bc2zW&dftS^a;7$rBqp}YK~qN2Rg`jk^uk+M zpg?ymKG9-nYZYtEoH>_dtvu(%k88?}+;v!aejpvAmpY{g8ht*Gwoa;Pt+e+l(VKf; z)WyNZ4>@P5x-3!1ZX%->ob6@=A~f%Yw31}f&mqZaBoN_=Kxsv=TaM;$Q!9I$tj44W z_}fQXi|3t>(HvTJFrFd#YJEVgB$EVfPBL!T^kMi$h%@JzHxzE>0`1QLQM%}(QHm)LAdp*8k-usk;Owqym7Ox z7mb)puazQ69iHb|kqT#*1u-%waKz0h25K2$n|{fSy|d)x$#uq@%S=pvxp(sR1s!c$ zHbZ=E6?S6#Q#zE@lrHmW$%`KG7`EsLf#?yhf#)s*k^;_elX!Ufr^_u5Tv^sEkM#s% z=$`5!dOm--`VSjo9@it74Mo(gY5S+EKN4pH*NZLCII;8V^oFPX>u7nYh zV8hB+oD^ELFPbUEm)2Ib=X>(w<=xliU;~W*wUkBVWH`EeJ= z`!vw>k{cVo)6Mx@<*_@B*CL~6`$iMyuh|T>O2*L@ew;zob#ouBp5R6*=5t(c+Z`Ev z0GD~vlzoS{yl*WjyXcCG_utk+$3X5rM_ko|;i>07Y2MNkdhdd+m%}IMhHI(Lvt;PI z{u1r%liM;HB@{0DW}tGvT^Sw8NVB+LEy6k|*YCw`=55rnoA<^`4KYT%A_BKRKsXHD zm{CPcNK^-EW4wd_68~0ssjgX$yE8-FeJNf!8vNjfLJ<3T^l$zGo7W{4_j(edo3oI4 zk{`z@ouqaM2frqv54|UtT9{(rT=_V$?QlcZk9;8)j|mK;smTBC5Sh;r$Hd11S_Yu| zkc)o0tY)8gz7hSV0O>n%C3~GM9Kc-p!Hex=Ruh2YbDxl)|pQ1 zS93sEzVIcJYXCAh{ydNJ`jv!f2>-0xxVyW4UfwPbz#GZp^<8?E?}lCzgDKs;8Euy!lwgv`uyc9wCl`Vrh4H&VO7H?C(VWZXaEX%i=V4>qn5FB zLPOp7acS7m+Ci5_BIkIJFfC6I-Io9qb}qE%U0-|}s>KOA>zpw zh^X{ipuc>ZiVU4*#dtVHIWjyrp}ZM?l-G^MLJ^dQ@AyVw(I?`4Qi=7wg~dYL!JQ}CJI zoT9IugJ;_zxz=qru~w@~ZEE5~5VZt&uiWj~Yqo6l1@TAD#NOhtXs=9s=?Bu)hVvN9 zuCtQ{%>W>_S7ugvmXh?MwP;qI{SnVapR>3?2|!xSZ`1&atEhQ!RZTi&XpADS+NZp5 zp#Q9x2my@Z?gO@ZvTeUWaTinALHE|HG++GqMLq2lxcc%|nP%uQ5iRzO`8{Xla)I-F zR4b}Y1`MI%<@_-X+uU*z=?}A9fqjK52lpPvmu7Iy$#WZjbJT#Ito7LHCl(OCm_Z8B z5e7Wd7O)Y6UV-5k*o&w@+X4t+_PdNNTk}=oohKbHBgQA)cI#7P^ueg`1(;h&XL0AX z&f-=WU_ZySKoBgzO;c~y9m5S%4iF#`G|iGY ztFGR|a;=>PFUm7;tq!MUl;QW#_i&M+vf(vDFh;x1i%G+yKH!4m{HCFi`yX+6d(FW( zCr0SPhgIh_qqiD@EhHlZrF5yh;HK(%|NLHe(TMMaL4cBzMPM#nm$RaP)LvGQ_IG1) zIPvjr;6t9u&?Kgz=b-S=@#+)a^6T-z3qw20{yr_Sw}qS6CS2(so6hCq&mL z%!O{tsgJYQn`pTep~ZeU@>>1QOrjIx1JAx^&8e*8k@IDS9%j;t$2L_vg%b52qffYEJ_zEOaHBKV8Z6t%Z%hC! zpoTv;vXezH2dlzMp{uM;lp1xOT=Jwampl&lqO0M9IXoM}aZ}a4gD6E@D6s`1+%Qg(DGqs6 zBiF)#W@BqQ8%*Ws5dh2Ucs5W?VA-!BIRPdKng~Oo6YVvJ1|%@Ib)hPa5i6mD2Sx_PrT8`sj|t6}j6IYmR7|P>g(5`O#No7b`-!YCr0{-IR6hc9<5TkVV=;XcS2lFD z%(w;9U#h7CtE%kj^vM;6SI{&R!wTn^0BYmqguG>p6N0~986s7N$OIj5hLgIc6sv0X z5PIbTdQ;eciIsH6QS&}fSDhvRUn^fS6f6+Tr;2AcaN=)xivAy4=h!5S5_Q+HZQHgz z&)BwY+qP}nwr$(C?c97y-b(&LS9NutI(w~6pX3w2y>+LRE_r>mQRvpM;c05%n<45V zPuMl@`5f&PdLD_PAzu5Q@p^d)I_9GtM{UPK$HI}{bUDdjr0cf<8qMu7&X7bu%&4we zP4l&~ReCcC`Y-**Al3XBUkh?R%l|qO3DVRBGb=^EB zjMNd1pP*I>bBvSn9mWA(=R!2~Ee?%Qvd_BDu9ygM8Mpj9sud9X?#q%l^Hn71Htdp) zpw!keY%)h7BN{$|uB2gM^WwS!T<_ic~^AMIUf*s7|VL zgy%#KXBzF=(oy=^!MW=T41hL9LKvRLHli3xB~*wF$ zt8XJgJ!}zUz8DsV;=(;jXJXX{e+o1=_ag71()$xQVju&u_XVtlMFV{Eav=cJPNDj= zm=;9C*>#uvtjN-DI)Xq&r;@BEEs2Xh6EIo!RYC9kECzReXM-1*! zb_svg>`6Bm&&jY$XyTs_XsrTKMbg3e9Ob|_7zea88lF6;DX{CbPxF_0%(g9`=ga-+ zOawmv3~FE^0-(0hb%Nj-_VDGXjTZ7T`BxhX6IY4YdAo@eMXFzCsMnU-%TKHNd^wA* zl_r{AiX{e8JF4=@C3m?s5`k^tb&CC*I|o~-SZWI$pza>PFz$Xn3N-Z;6GMfu^0MCu z>;_#HKQV2V2q*P9bVp?Obn5%2#6~DeP}#9G#F%HnB{&l_dzJ0Roc(HKR+TA1lz;89 z5=$%j(?(apq~~-CC3?Zc*__B)dQMQKxDqlY^pSctpPkB^<)$^c6K8D{RCJC|$$RI= zKPs$)xSD=ZmcZ?I3&)({P#Ve3jQtv8{UB^z`-zpRv9GpU9*@qy_Z3XHEzp(oIkc2l;FYILWIg6uRGHS5ACSABqSe?l_mX zI!;OJea9zac%&NXIm(Z69FS&Sy3PojPc; z4C6CsoOacq!8zTF_Gn>n^cRpoXE~cXt(|DHQ6fQe20Kw#%ODQwxHJ@l%SIz3*t>p| zl(ckIW}@+E!;!lS9=(@bekJ5{(Db2MpRH!86-qnF^E#Kl($_P}J7cPnMWu{h&)7Mk zIoSY#O3GA*uFLC2y%w1WUU5kpXdSISU!*iSg>P`7Fm5>~0qg&439-)k&4=JH>|i6< zmJ}$u6Tm*%J^Nbk)?R-?@ONOxAQAbCI+Am8Hy9Pxr_!zsj6}WuVN=jp^@H!{lKbS5 z`;@TPm)`zHd4v(m;K7-K_QXU->z>Ty$eZu7k;wm2;6-Bzk1-&_L@{k9&%zE%--W-4+dkBGpE%-I9xBCBabMJColqNPbr^HkB+u+_DhTT_)3>Te{E7xzr|F#_%8B^aBr7Kr(k&LBtVIjuaz5CXVYeP8J4XLk z6uh=WW8xjmJO8JVpl)_8``(jrz(3^xmOGkA?=y9J{9M2@<-gRj(1h6$j>tuM!@7=lZ3l-R>==^sn*l|k=HhAj5e8<6iu4uIFFI;3o zj;Gn+-lw^_syoQ;^#u8)>ljvo_d7_lo>!k;H4=<>PcPLUqw-Ic*huCsaG+vmZ(hob zCB~g%eDK0WqaQhK9^sypzTQM+{9a&L?k%MUXJ_zZdPJqlGk`IjyS=6KZ0VqiG>=aI zJ(7WEW`0W<$+SczMeci7S!j~Ysm(Hc6TcFxLwc9aPwj!xWZT$j`yS2;e{s+9Cy9J0 zentCrLdS6aY6vWgbx8g@q*it7#@<-_4ohdypAj`gZMj zGYxm4%a%Lr_t?H(E`Td?h?|>`;V1VUMhuFvM~2XU%G){axv4man)SRGxnTZWBkB2& z9*!VpcT9jP9s$ZP2$^IgI8inUVRpI&F3J*i@$}urYEVJeCBaflS{gUp-b#{j)6?43!J0a1BwK_g z73i%cRL@NY2w|rv4GQ25zq1FjFX6PbFD}f_zZ}AU#f$BOf3?{(&He5|Y6SCrKt}he zdCWqSYR;;bco%7;CDayC29MW}wV8)|n#>2bdGETd`)=zXQO>jEsj_zueyE_^-}&S| z-eb(?5Gd@=+*hA9W1kk%sd@77OT$d4MOim5Ie4Y&7&4S;~!IOHvS;ryAq~Rqfxab4l>*S-b zdS3zXpK$+kPwXzcS6ca>!c`mc|GOtP4^g?ZTVg=?u_pNq6ZR$u5mNJoR1RR#?;qwO z<02smCS&hqL5$GZklhgYzT4g~XqobdpYlF?+wIAwzcqIJ*)%4C)62=3zUzU#YNJ5a zEYCzMU_ygK#W`0gdPogI?hs0slKGr?VreQL!WUAu64spg-`^xl@GFH ziy@{}8W`|?z-BA;0iDYmaK8H;x>~cPsxFTfM-Y<6=XZB}*#%N76gPDL#lefM4es@7 zh$>Fxd~Qj>?PckCC8BKeAtl7S<@L$FHRj`xwkhsk1{JG_fDvay`$+`s*pXP&Bq~n! zC^}30tw&zsB^)*eN(RzMZGUy#Alg1It&6zHZ!8Up-OmW**`tC%N(SEf4>{3tEQ*+f zzmD!1*U4U0?aa(Qw_KuPG)Xv;2Jr5WpGUH&j8E*OEMSIGDv9${yHcnviRr~I!RiT& zl(nJWDBPB3OEAs)HH;~ykKaB2WF_>y7q0Gly)Lqq`9NKHXL3R@g!5CJr7jKFm9fVnh+f zvn_Lis4@+LE6kJ6T#%Ql(Zn%sqeW?0VrDc)Hj}2qLJuoS{#0#eSnbg%kmNbQ&xKo8 zvQm|y-0IIQ#^Xqs_b_&Q=eaS`q~M85HpeV(Nj&AUbED4j+jkGZvDz8b`_0 zql!ba@~9dqso9Q8J~#6ib#@K=nctr^V#-o1lx#VKo4>O_$Ew+ph~4JsD0()5M>k7k zkA5EZ9vs#_e&^b2{X6C^5M3N<hsl%6_lz`tI?$KSdK{EnTEe`F_0yI##rP6<_OB zH_hIY_2&=wW19%q!>WinBro95rAK|?pnUHkw4pV1ga~BUZ7l}*kq#4*H_uNq9P8Ky zmHEZ6%~E)DvjXs6nF(SSlGb1{8v8n#e;TVTHs+*_SlN*6jg4dSm!yU>T@9}|X}&eP zuY$AB*xj7DCI*FxhEc!$R|nNGdHR-#)c=jRSNxa%XtC!r`XKy_~qXR^kTI(GRAm5sUN?W{pS--N?Hq zXDViu2@+&(F%VzQb-cxqftGhFWe+mAMV`zvH3@gXn|qLNDFm~pe-R>h^h%Vc254o9 z5$d59i8I40iZdh9rj0Pv-D=O)`KmJ|5K)EGQB083rVY&SQ}0wXCNiJmXiQP41m0x5 zD*ZPX)hIf~9S~C?;ipWU0F6CZ2U9G0!4;p;7r4Orf=e>ESiIkq#GF(mi5e<$kZnL# z0!#^o`?vJk!$B;;7F4vQTU12*eyBG5zKPN_JUdAG)IUo+sQ@oOJk|Pe^vL?)WNsD4 z(t(E;NlO*cR3#5wIv9l*dAV^WDof|D|5Bhyt8zoRbSg)G;rxqbi5OQ4lVVSJrA)V7|%ci3P}S)Ab*%!2+9 zV_8s17y^Cvj$QIo zC3Qslo0vid8yR_T``rMz^Onu8B>;w;4neAO&g!K$bK; zcu=1TwZHyCUl0CH^%O#Y%e}X^i=Wr~5$dfWF`qoe6Tyv}%)W8Z9tGR8Kf|7{(3a<4 z+y6beVBnT`Rsq8dsMK?nC@>Ow<*1iUNl4KHeP8}va(Ue7l|$~>tO*hyiuk2LDf zxA<_s>@FFz%E)}2uJr&|$~e=sp`tsQ(_~BtA0Qf1v%KhmBZ^KfgFkOHYftC85EMXE zcG2=KkWI~rENe$VHYKTi-1c<+BMI;u!tEuQQ_ieDUq|auBAPF$e=ckd?2#oxK;!G% z$j^t(|MhyY08N~k1miM<4rghFv=QbkfGwyq6?ry!F)q+D9)R94NXL!Hf_$Rjm{Hyh za~?`wK!z_!u@KOKA(+lkD`~%bd4_H{XTEZGTKMFe8g{W2;8jQV%L_tD4KUfGR{3ZL z{(Cdux6{ye9s2Q@a-ySUlqT|@R_}&?3Qw2VaKa zG&Em5Jcry-6SD<2m%PctM@+ug2iQsFPXo&;sJXi#-XF*F2!+&$bHUIHPj&sA1$b&4 zwIS4+A?{#$$mE7J{-261d`rMaA{yxFtwL+1+&@$tE{dQW>%K1*1*quGQVKKZi^>%t zy2#4qemOz@1(z*b!*N%>gp5{@xsGjfSc2_|rEdh_Er2>v(!KV}gh4y1kd~zh4sDbQ zYq;Ca#7r^>=;{X+Wpw>+tspi>7#_XZ;&%ZVeE^PM1(nuCZmu10A>dV$Ei|}%)Yah} zf4i`As^=Ft?K^jfgZ(ZB(jk;S;KeaOgVzVM_sK9EuJ{22eLhXV^#*_-fCz7E87P-* zK$~=dC4lT4jGWNWxQ}0M%ms?lUF7znNvR){{#`79D#CC6gQ;}C()*#m9?J}~tC33y zQ4tHEMtLK}98H?-a+-F#^kequX8fSL*3yk+13>+;va*RO|GGXeR|xjp$;ZtL+S=Mi zsuCBMwuJ_Km5GuTeOsRCrpoCh0m@kUeIQ}1K&EKQ7aHjOIp@fks!vW>sdTWBB>{k$ z2o)$YXVsa7wDg5&I8K-rVGAUBA{I|F-1(r$@c8c)@O>H|H-D^8NcSs~ho}1?_!*(` zgV9b67$rBP2xQ(_2GYP+Oo(WY_mDBfR?S!}9o=;RtH#Pn(oWXvFNsvn)^vze#}B9s zl&E@nqQGFjq>6EKm4I3tr!}U85`dG#YJQL`1P?-@j8aRLISef8QzaIx2X1$O2Lc3q zupmJO46vXa{d)@rkR&{HFR;pqW>KJQUw~Y&@9=jLggmeyUxs%I3~wA5KEQ0YT4)VX zsS<%d5OY5gombkT@A|^idtq0+yh2bpwO{p9sMA>@4Bcl6%cq1sIuo=B$DH+*I%}es z6JVfs{9LKA80Kva$OgP%7S!L$yp_7L11U=-`s-<(wr4gxfE*7R;Fl{03}G-5=qmlu ze&3OPCi_|gT!?ol78$((go9C?mkwOiT124K_;C_UnZPW&<%DO2T#taCzPGt$1ZiJk z1#x^!7%iaNWcjtqL}&$rrt_d!c?U^UCLzu-cTyvgdwM66#FzSPN}4nb#)8?wm^oU> zFwTJLTQ|u|#w2vJqO-YJ#%cbH$dW;#5kcKj{j57`zbwJ|vkMcHXp&>KeK(%xUW+UqQAODSQ8#{D({7AWa zWJn*_5m=IBrvv#pE^{dqst!dyEZj>+I5Iq?1s5lPhBorfpn0; zY(;QVZ&s!d)nUNo8vj80e!)AC!Bw35q#31LRy#7SR#a_&#=^7R8ZEZ)b>A(7||?LM)QrY4h&fS~NiqKELa4Aj)`7>&(PU@%`g)ZoEIE{KMHZ?8mU z|9>=I9`9cDAQ5x?=(2E<(5MT4Ms*ug+mFRe%U)iGbFK{9p0s}YXv?3I8trVoc)0lh z1YM*yqgL~#;uNVHpws7(Y-bw6Ixg?!sU^zFB_t4|aZVKs`2&vJiaEja9D>L7-Ea)| z87T)sh@lN|hz^e#lS~9x6%4TZV|eq8;V;Aluv|gngPKaZkwrg4u<5W_p%dBzJl_#d zi%J8e{upflFoEKfH%qQf)5=U!B*Ci?%I83t0Vk{8l|c4b{$sEGYld=4LLfmfF=Itf z4@LA{>x)DEHvVv1^8*-_SAyN-3~HIL@`U*PwJ?YL++OdtG7u zFHWtN;zdJzC0;^thXqm#a5C(HXqGT;=UQ6MVXxeVEsUB+6w+PzjyBc!jww>#gn0JZ z(I^YE6F&NKxhoee0ksI>fqaCS7~Cla6M^)ViqcEP>zSn<0hv%%#mBv zN|;9FYM~jKlSoZ26O;eBZQL#luRL|;MH+c|6$B#2y(6yXk{$rDY%#|46D)aa6QIRD z#Rug%dO`*Tlo&ksdGWAqhj$m&Y1H~{9%m(c@mi+ZYqGVzT_?Dkezk2UV3dAUJFs1_ zllmy1sZ?fOCVeg8Dm}s(=VFFEUd|u5E}4x)C0}0kAgN2I#fK4SRx2G zIPFgE34pcCRu9PyZL8kBw^-M@E1I>*jIRv#ejIC<+bIR&N8rSfMM z<74!?=S%VT^HM9e+VKvRndfZ%oxHT0W>m^d1{k@iEK`!O1>}df#7%w9AbJ=lvjXE^ zG}9nW)@K81av8S zMC*v!&kBoax9$9~xSF@?C|48jbI&w`kcnWs>r2rJqq9sxX4N&#i`q-EzSfU&_IAba z2ftts!-5N0u z&#GUTq#lSAAk_GaVgR|QU1~rnd&`epvFo^-y?bAa#M6I}vkc|~Qw4bwK+Y1jOUDrq zPr|v)J0Wm4h_b4~*CRTa7s?>-9G(kOuuE74&=UfeQc*yPh8?GFANAdc+&A14EXTKS zd-26kF+2n=z-5?DausYraG3VDV`CJq%zwzZ85y4$FGh=an0g@i83EiZzc2-`x$6zA zwZucu=j6eFV-UuGFpL^mm^IHh_0LMbW9cHP71c;1Ozowt83GRtF(~QA6_6=sa zv|BP6L{6(FJzXp#WT04&)4(LDR%Wd7QS+ZbJ<_8IiHWpXNEsns-{ZI~i%-W$T)sS# zZod1N2{swF-G)#ULL3<&LKg;yZlDjQq_BuV>3;2WT2lwa5(-1Iq(E!#mja$3nUWH! zkCa`7vnVK_QM)wt0`4o1cCcSLVmh4uPor|CRLH+W5LV)z(Faew7gmn}VvT{P9Z20f z1c{r5Fy$UGPoq|46Ae31YGy*f)+jW+6ia(4U1T^i1tBOeM^@vUAB zGL^TR(QgvWYE_AC8gz^Awhf|bOtB@Hm|4WJ&+EclAA_#2ZC>rAo}nFX-8Zr{+-v|U zR!0sgz-UWqX=?#@Uri%Si|f~e10X1(K*`ET(EaR@XIVWiiwEc?j!3{5oi{zaM751xNVDX3Kluj-`tEJwU&p9|Mey~!zhMDyfYk|gzki0&&w z!)Jj%L=(rjjX!{#Y}i?*C~1{KLZ^DGEm5oe-hc72F8ihc;Z#-T*Z6)v@9YAVB7y(y z)$jvOoxy!R$#0|L4!|)!vuOCv|86Rsew2AHZ0W4r95v2wKh8yStyKSE+bswQ71ZhC zuaOsxm2n}v$W2)CJ})l5TBpQ<$d$vdbf7N41OmQ-7}$>sH1do)opbP^s#9vJmi`XJ z;<%C}O_79f9xQ3UCZh-g$GFy(DtX?|SbKOQ#_H_pc&sZTx_Y28O`fW$-#u0%H*8e_ zfSlw?>5kC>VV$rCz+1LWEA%m{bX^2^6J_MB@tL)_yuA6VGHg#Zas5|ey_HMvQwIz4 z&2F28*`V9iQ(dL9xq?`=`05Qp?b2nsZJAIbLigxwJeMvm^B-xldD?g?awQ?>bOg2d-Mi28iHn)-z#F-PZrL$$2YWfZ|z zz=?Uzr;AWmbW%vbsWcx{tznM!HkU^44E>Dgo8FqR47~wOmPu8=n;0k`koBYxMAKui zB-&|YU531v++^c?Un@amRkXh}UqvqBbFO)+PDq&ZP_g%IoGq4oZ-yq;D{&Bg;Ee{_~^QvRxO z*Ed&>QaJ;?!rg_Ch)uV%s?EDY`&G~UgRyg~(X8j!`4HN34%%~ps9iwrIM_2le{>%h zK~y~{7=^E^-tv$@XHaLZ$-lP0{$utRspDa458Tjrvf5JJaU)|)GeydwDtKJXbE7Ww zE{GzJ|3IjM_{=?kj)jL+V!l{bJUdNPMtQt1#4o=h&++h;?iOU099!qPAvEc+t5?OI zaCU{$CJyb76?`zJ5YsVGx$Gk*p_=Z}&JIl54GY{h5y_mvDvft?2S$ggX(>lCH=A-u zcUngSwe~QKONy%i06IGRt35X#=}CmpGEX}n%i~ViNn_S?-Uol_B#Lin!7a(@RhW&- za9W{6l-7;%nH<1fsO%}l&gz5Hi`jV&V1Gl^M=1^2rEf`RShJuwbA`bUpq;g?YIbnL zg7M=CWeV_ z^4;O6otoQok6w)=*<^Y~%%JSL-uJG|rAm$fd4!PSat8Jb`LcUzH6BWSNl9{Kz{oNZ!I4cUh!`rRc-qRf)zbu%JbJn(pRXYk0V5LtxA`U*ULiRVyPNYaChR) zWF$tTnl#See#rT_<2$g=E}Dcea?gJ!lusm{X`l9q5eUT{4d`Gz9v;`Mu6HUw0qv8w zKo*!AYmN=;mDo9&RfFuEI>OB@s#QSFMk)DCmL0?XrE2(lpSqEpw_>4&nvY}ZwR?_p zgoQ3&dDjZ`>9G+y){D4QGHf*lpYwp55lPcX+(`__zP9&P$K~b6FvfBYT1iPfJoZfi9Ctf|99#&uKYE&^>S|MO~bb1bX5+QJ@d$7vtkgBktzp$%McVdJ{Ue*l@R0#I> znS#kY$D{ZW)`B=~xG3a20?p6US$UHKz4Anq*xPf5s8K69#@;sVf| zw6PX0Ne|tXg25f)j_k#5yvK(BSw_CGs(Q+dd=OQ6=$Ncbk?d<~%L&t+Zqd}_NRJUt zjWAg@C%3$No8X*SbasB2F2jVprdAo5e)^y~A>b9R{YxFo-|C^y#(u~Eeyv>^STgOr zH!%-u=e5-bXs4r)hM3NDx*6F?m8;>&tx36(IIs_dGTh*PddSV zSZFnwq|3a&2YuEJWMvCTB|ulCwV)raRce0o`;H_pOkQcs1{w$~%-!#On=F z8A0WOx?&$1ZAUIw_gA4~1-(>oh2ExNW^w^$e+AE|l+|J=S`1QHt{)6bS%ty_(#FeT zaeP1SwLOpV%c%;gF7W|a99#^KHwJ0a5XaFe+y#oC@@bDuHMR2x3u+;@QQtI78-Vq~ zHU-}A=jn(-+zVhalzS-MYh+pyy2PZH1V?_L9Ub7!!nH8Gm!XtWlkH%2>@W;Q0{Qmc zdD^uiNY4Y>y_=^5$E!uzu#qr_FukzWE{=bt0kqP)VXHKS0DvUW{l{u-7`7iPltN-+;T52kILf4 zvGzrr_R8wbFP0#(?-P2b2WRHiodeJ2`}e5b+nUXa6L+6&Rqob@i`Gl^(JB%fM+D_U zRjLaMWFi$N-;@P{M&IFoNTX_d_(DQnAaU^f$eHql>2DN7m?(jBpm@7l4t5a(@`Aj6 zr4M8twUjiZWtbf*^K|?^Vj?k6?{a;4;OJv;EabOt zEn(9H4BHF^Xxg7gIO@*c%zam%5-!`lt@?iz+KH+~5JljvP<{DO zlsGINJWJNL^q`_|hjPazJ!GM)(>>m%gP&9eJlW6uhJZI$tv(yO<}0lclshu zgY*uhQs@v}rcpxdv8pZ0u9Yrise>%1nJ=_mkTHwc8U%(nli%@*cRNjb$2;D_>N0X! zNL%rS>08VxI`V_2_q?C(ByzIv3^DJ?h*WH_B)`rmZ@e09@}nBqu0g1_WSbtmcDbTP zW`Dnv8`qaOc1ninoLSny`a%d+te4Q!^-6uwH`z4MKl@&~n>DpxEe|_xyHNXoteu<7 za$ww&*f8JHgyWZ#qZJj^pbEJ8h zQ4o-LGSn-3Elq*a>KrvDt#j8l2yBZpQvIyntcSy&S879!usO*Dwx;^oj=Bx|xq&Xt z_-1QovV$7Vc(F?C2e>5Ns1qsKt&&!wxbMPVrw*AXsqKGgs;4Ofe+7}tn4{o^&0fdBA`#il;pX_7~@a0uGyrUaD zG3V0;fM2I4E@2By&r{;Jp_@1xHNOnUeOk9B>C?Yq<}xr#8a#4&aDt}1JC6ju_XN6l ze}EmOp3%Q(Vn*L9P8=I(9}>uJ-Z<~}=gU-tefDUO!8?C53<1ew3RD+P;&@N*-vxIl zd}Hj*X7!fhr*AR~(h1^)=&vv?;||U|47YiJ9w;2vx2bvDSQs9{+=-}k!Ow#tfq0P- zpzB$=K#`PSCdi@2)zn1~pT{3b1;&2}hPgA|u8!}<0OkL|-R?~Nn#d4)}V-k$azU@<#C^3^5y2?%9 z`q;MU{ZAa>rcK^lQ%U95>uE4b@$_>f*zLc)V@Q4XKc=XJ0ViJp! zb&dX+LH330$0e%Jje*}mLCCX@{}%0GZVb+Lc?*ei*BTN%AJbdK^No)5_HB|Gi60h^F-X$YdGOlZ)oJiJ#nr#i8R;BpBC9UdiF`7# z%DN71)2wDqvEvzY3x#zo4ZX@p{ZZ`Y(xNgJxAgFWI%mS@baMP&0Nwd(UwapIf5vxN zOSkvAfSTel#G{B}z4+R_{jR>!xUeA#e|uNDc?gARWj(0MbhXb-D9`Nh(>D@~yd+Ng z<)qifpt)i@hl=OM@3X*z!K_g#&e57KsGg20eKWJmeL`=AEi0FJ2Oa~*+B>xcbTn~N3nzy0$G&_$`5xu6t)oN4-~aIEg##y4`QhXU{)dFHqBY1W)x`YW9U<+@~6F z3K{@cGI*uF%=LEFIT`|Cre5TNLRgZAv6}*RZ|nU#dVk|w14vGxCLJ&O_hdWlj&7wj zs9^)Cgjz*geH{udb?HWJrAPnkxsO$W<>u=rp#;A+;yv0lyOjDQGjWizu$y>`;z%58 z{4dU=u(?-31i4oPyqsv9FF&**2-1=Sd;kwQQ`lM~-~D>eb`s!Pjh=?8uYswA;ej3Q z?SM?wLfFuuf#8ASZIRV)>5am!@Z0iOWV5LXNY+z%Lm}CW7sLx(^@Z@4i_&R%^~Fl; zeSmFR>#Ag%;(UxH{l9!_!tQwYD*0D|R!rH>o7E6r+gfW&J6nEgC8EW;?nRId7`-Kg zIP+oAf{oDHv;2G!7ki%?wXHgy}t<}qe>-@7F zCz2K)l2%^S@LOKsFfe`ucok8>iWE`J`y>PL&)TwpY;_5KH-S{`C5}{t?Cgu*6*h;m z3`N1-c=5PzGKRb{o7^>v^`AuuyJG&vUzwIf%R2R}p{sxnsENEmk4mC|F0G5%Q8OYu z^_lBAH);&|;RH7swfA$cr)PcGBvotE;U(eD%6Q`4VSaQIW{~>A0XDE1ASpRzqy|eQ zCXnDc{&#)nBdi#-wk#ozS~hgOvbpK)PEXfXE7Ct;IV=-hS*2kVJ;kuBdqg<=EIxVm zYc+WO_o&I+#Jrb-d?72RrQ>gL&bXg!?(8;+HT|?j%r6Cz0OR&AbmWKq=6QuK#83>kk!hp;OrJ@Ys80j3Pa#5KIfm;nA-SmekVhx}BbN*AnuA47jtZnKdYl6+zZ&TnWxK#o@l>I3e-zwe+V zd~M!52&LWo87=r?2?ITEJ&EJ`D_zgA@UUMzzM>YSVqg)}(7Fgo7ui7ApJ9;mb|dle zQp;WtAnqC3plK45n(ow)^7A2$Q}4Md{MTR9k*p|KB5I6qGahZ@&eBBVBYz(jz@!8> zlo5Yqu`x_0Zx0F8t>L28m+gcxjjmWGRf`l>MG9yfnZ9u- zn2CjnR}k7$o;mnWf@h&`6z#^mOTs?${ISgKuQcwOh1pVJo<2^eb6UDxh?|IR2KNT3 z)y~Df_)caQf_W)21hU9u%aP|~J;l8lmS*cn?ec@c#|#ci<;lxp7L->x#og zl)7RkOElt>gLp$+YxJBy{r}>*1KZ412bSQ^^7!PD{*8gO-ddJh*x|=olPr=%%_|EK zH9qN1!waN0HwRuE#`Ro|9oYq)Asm!D(q@Y#RkiCk!XwzfmoLF?+@-!;fC@qmm!W?% z81wtnXc4#@5;~mV5$78#2xf)#l=;q;j(8T6{^cxGpZH{2ahhdVq2s6|f768qPmoN) z{HYO!CIXGCepGvl-VMDoY8ud*E@`CCML*H=w6qTeGjNi55;qrtJI%91s~Xa|pKm89 z6H|N7-VRy6%ZZ7Ygiq+JN9rt%n=E0baEm3$xje;Tcc~oI^ZoPkPYUp3#T-~{ERqo; zKG{#AqN#-9B+g_+dd;UU9G|3X_TG~LP0Vd>rqs0kJ_Ix6Zc$1>qG zkz|Dy6_~fc@!u+APF*rSeJ)Y9WphFc5IfDSM(8=OJ_mbwLS7=B3Y%%ioG!8X;#sY! z)mJYeN^P%AipS2E$L+G7LCwORPACWskTHKYv3{n${ zYcSnqVtpY#sGWh_>yAZQ-LtR0*ykIGpaE(>l2k+m3m^4@iN~$A!Ltm>glSVjr!Eya z+GXrfzhHQvq0bO;v`&{LGG~w|c1go{EqL>s&7EW3SZ@YwC)OpzqEdTX&8X(^Id=YqfGkE?@);8L(0=j`CD3HnxFoa=>zEV8R zzYGs2R2A}#rdXYwEp=ZB`3$BTldC@f{NxOa(oQXhfW=WPdD40>=j_lnuGu+<_U}6g z%IxfuLf55{?&1TW5`Rb2N7HSg4-Rm}?6<&!|L?25#cXNRQ5N>Ygq5_G??FlYXLAoz zGng!cFXe&MhYqFxfdNep>VYnKB)bd#XkFnVtoki!we4c``oN;Ht>3TGbE>Fw0&!0Ab*z62#&Pa@UwG1Q}jCE_Gy zPgPU$q_>w})FPEnATiOI_-crMp&yih#@~g}Y1-15s|j?S*vhCLUbcd@%4Ki@^9RTt zHo04I&9i*iDta-Y14R?Eyikz$iM<{9%SMeRT7Bxp_yrAhF`L^aSe9e8VfZ53EoFvn zPL#V6pm&GVLnL&xXlIwRxPuADf-mBKGyfCy2br?3R-FI6(X?te9vE9dpLY@v5ddJi zL1h#?%H8bUS6fmwfgH??PdWbr`=94t$&^aZ1OA^A67~NZdN$8d*ZL1;K=Fk``Wrx^ z2S#0W6!Y5D92KEfrmhG74`txAs3~!6$gu@}*yB9oh;iBwm=7c2+v|AO-ZA$3yUqFe zIo|o#y((2wpqVpA9;bR(ke;PzW=Ped9f)ctXsVxa0g{IE}(-ekN!!8e2Q! zb%DS`CEdxCCaFt+3%k?fBzM9U#KXyNhJAJ>KFEp{OLDk{l|tJ1uKw9G(gI!p?ya@W zU)~HtnzSaCx7VBkf^_HA*&H1(s~qddx<;O&iz5L(5oM5geHVp3)W$yyhWiYWzg7|? zElysnPJsR?K92Q3Xz{RyP4JXIJc5AY`aM?|(Bf*)GB-tz;j2 zE|>ZI0d@?kUd)eQaEs>XP~0sQ|Km!Ir6r}<3(8+!m`IYO>x=7CwVfW5(d8&eQdX~w z!h{~F51JySLLx$C6AD@c$VA?a2#r8ChwI+Zj^;`68md-wpzr>YPA7N%m`pc!{^;$_ z|9Oa3=5Ht=)IC>0F_*dj;Cx#`k2^#U$!9YZreR9Fo{*Ct2h)2QP)5*%mC8F}mTrhq z#~iAZdOJY!OP=kDcc1Ht#Jer2!T=W?Hvh-^$ZYkC=d(y9k2ACj_j+24x%Z^WAK+@37Zz!Gdt#8)&{SfuC1NUGK7)w>v0LeujCMKf{>2j3&B+z#y$d z?1F~b`Ir(l&Cn?!Tz#o<-ynJS9gZ}vg@Tj=aMs^qyw-AVzYf-mkur#`gz(%9E29$0 zr6Jy$V5H(6y=E+}zBxK7>SYCm78EN~+p2&4a1=X9xd7?DyTHByNWaw&$#+fgzLtS% zb_Z4cw}4{^eX?_VEFV6%$ooob00+08B^=Q50oW zn_>}>95%=-#O)NV6%Xo|jCD}0SYI+)bCXf+3#YA@cP;sxLzcFd|1`G z!oUcYGrAvX*D8{(eBT3-L)8NVX++@q@>bFPY0OwphY8F5T)~K$NNNAwhSDMmww~)p z0i6jNjcqT4-6zD2OLheKw@oTISGH&g!_e?(;09bLn>gm9x^tFInOBR%r+K=M>-H0B zUXF3HxTragm()&q%=#gh$z{2p7??xi{X0)=niDfvBJYCbDa2fFk;u~}XdWbfk-a%s z^GG7C%V+0_c~Ur}LkM>i#V`Is9J%3F<8aIevjEHX!lKxf88mCM%u1E>wqra4jvNJSANuU z+g!2^?%M|OS82P7t5yFM?IeW38}c>syQm z>VZK}!U=7@YB06YQtW$2IK~v@X71xm97sQ~z918F%`dnPET^?p;?ZqgqT;A9Zy|}@ z!qqvEWNSJgIPGv0(-1c7HU{?`;5aeDu#Ss3HX7L=Z4n=FvB>5!9j&B`3A-WKQ+6+; z%{Xs_oC$7Sm|6)e13XxYdC57U*u>C5RLO9cBGmEmSp#OMdU4_`J>u7o9ry4I0a5Zn z98e|XqkWmogM@9>UGNyUaB7F)^j&&T@^WGtxB4c$pWaR7V@l_e#uuQS8nRdQjUaWD zf*;HPnFbqpHCQ82nz|X1I@BJf8wupt$2#JlTccTP?$C!$mRLdn$|LY&z80Wt%H;f|-s1%Q|k4%QAbbo6Slz4WP-+!uZQL+#ojlMAu_U8ERJ# z{o4fmwVDnMHnJOp%C`rf{qw%^zleLMAko4wYp-qF?mlhXwr$(CZQHhOTc>T?HghJE zs+nZ|q*A%b#lGEFyWahLYprj+sg;tKCYatj>s~5I6-}Ge)r9rZ#8S+nArjTql@<~1 zwvvdbZy>Fdq(zSwn*;ha~@Kx(^|D(x>Uqzo0<{WV}eeVxNQb*^DUG^ezP_<{QRf8_e47 zi(K82Sndm~DJ&V>kXz=s-Ji4l*PpfwRYG8+^UNOw3IG6>8~_02e-MtI0j+_P&9$ah z-6B1VFD=q9p`12&G#8d2{R*IvnRctgYH%Z~QAjO?3|J7jFPCfW^+qh0V1L4%aqKmF ztdZaB?D9}pEm+arF|+qN-*#T?@>sg`J6Y63y6F=t6$ENv4f;7a(UEBfxA)my!QNBK zO^Vc=7Yf`b_??$G9}XVKp#i%m^9_u@{p)W)jg#lw-Mm6^*icrS zE%<6+tsxd~j?4|{;@zG}dbgzUL&6B*U-es6zXMYXPd{Q7(CO|MWWQvdZw)`rZkYr4?wmad2ucQZ;aE3O7(N?j%q-D^HRX>;@^=isG*3PmSA? zruBMh4O-X<#7FU*%!Vl?E7x~S%Hs8CwObZk`ybOJ?1BY~r8I$ynPf3LPp;wC77I?P z6>EUVVpU~_Ph6-><_<}3f+$f=>P0I8x%JIdOzoaldRg+MN~G~ke%`%=oe)B`w2Ki4UaJ}h&d?MvphDk8tHrxph&x%pMmFK>|KiE$$%eLxEw0-?JWxxMVxsKHY9Czu zC8HC29o$#ys!~q4;lq`W7nhb zD%=aH>UF9yzS2h9>3en_Q%g)rNA55bCNG{$l|qwHcuYrwRU`{!KkugRH^l=1T>H_N zPkH$>X+I6^(hdou=LciEHSUgAKoDsvA?cWFoQQgaGVxYR`v66z*YQoeFbhrQ>A=YL z(3YXRLdPp^itA6B!JRG>-h{*0bFLuf8t`KVXI7_s=1++vK2q7{`YCjHv zN&Br)ZZaep<>n$*q~lAV7SRqWz)YO1x3!&u{Nu)N?hO* zjvXvD(|Xr;WUNu&hMg*c55b>?V*MbnsiUo_A(e{)84l#vT&OXs=opKG%u!^g?x1Z` zO5czp*5r%AKuCGtC;rXMI8?0Q-M>rKB-vf{uVieZD#gH64f&;VW{#TaE`?W0hE!~v z3M%zc`W=gO7W-LNQ6ut4?{qkq4Qblo>B0)J(T&APk~t~`J1xQKu&j0Dy0cw}${dXzMD#>=%?{|)dkCE+zf`<+={c2b9_TCWOjyKwfjdXL=l zRt1}nLt?fdI)@I>ngsbxf$SnNuocsYyKijU(!p3QmDtYKwEv}!H(|Rd{97U0iW}-$ zhCNh~w%CFL{pB#o_&(-5zSQPizN+eUkcLvjE6{EoA3(jMJIo`P zJ0~gKWE`B64!J+JBlrVWLvCN$X=iKT!1$4yu^Vl^78C!lT3}fpXk>2KnNBgbYF10D zQR2Y}Rz+@+>3eISUQ*!1_S*nh|IQ#du*lO)U><=sA6Lh00hv0dOzw;nZ1An@9meJc zgz}#*q3!mkkqsOY*$Q?79mY)A@nhRIuTx@$jyM63Vj74q}&9f zi46 z;~GIPcwjB6uS?3aIQ9jjamUpqvWknDRl7pl4w;@7I}ZEFjGa%Bl;I_cwBqkV9%MC) zjS~vvo5_wp15&V^8I1N#M^cmoG}l$|ylrG;AsQS`c2yf)xml}&sEoIWeKxvyzrE2rJjF+a$dA8Mk*IJ)j2jPn{eXbekP#vZN>BQj{$tzF{Vd6XNFfWuHcC%qokkHjRzr`$k2aet)jo^dA#f z0ue255IhkjPNIe_5IayWBoQ9ZVJsTpYAsf8I|}bM8++))V0T{9T`i{a@dtExX^VWX{*S# ziwxH&Z^plY3LrenyGv{qLg=7sHYt=&R#JeuY4t-l(C#su$JW-N7fmGXVCi(pt1jG}#zpMMF^+tI{pq#?D zY48ffN*Y34f?w}h=T12BsglT8HkH!I&R}_oisJ-b?g08-Ja#U)WY5`f3a5RI)wK(; z$dd`M-ebNA76j${TfZ2JUPj^9hfkN=GZ%^86UnJ-o%Nm7yR``(lfEq(g?rhm>;QHO(F}+91_z`hb7`IW6)^|l#$@zE85(@p}hTNCJ%hT!i`kCtl z)_p7fzo_{oPX`~aXJz`lOK#(ieVBKDqne{jf2yOJem|4OU300JVh3W^5@CvSnk(Ps zwl^z&3dK|jA%`Jeg%Xpihvf_{pHK*M*8N3KDe&yBwIi`IXUGSmcu&T|nT%c7S}Uu} z=|m=CBdCSy?5D%vQdiJ}US2lhBP_d*x_5tQG2 zVHpP5Ez&^LMfBB<+#x2_4ynR6BT+0B2a08$B}RUD~`mU(Ulcz8*6$u|M>45Sw=VZ8d_B5s#Za? z?Z=%t3-;~Be~cXw&HRjm9#~bZ@8E*u#?=eD*`gZJsNyOz@6fCGB0K=C<|9;Ne4x$R z?RR+|TSxMT;g91;xV(4@O&WD#;Ryo`Rn0y+t8Wr#X#;49AP`J&fW%=G1eFN*?A(^ZBV5OL zj6SZ9NH-HB^-M9vKZ2@WZEd4=j&tLGG~bCMA`>S4 zL9fUYHBD!Zgn#ogQH^k09`*X;(ZV==V>zhXf|+Ro*Sla=QE>#}Au`~YOQBaZ>`}BM zK`Ax=dzroVC>qESt?NT0_)=>s8)4euc*y8z`?b{Cu7i#qg&FMLfyt0&KW^<^W(g%T zyXEponB)*)@R*BBgW=onZgS*9q{a)IoaDF)bGce6)K>n;LB$@q;k7&}C!6R*ZgeUI zfIR`?n;g+uoNqIV@%PrDO%rE5<#;?R3$y;aO3wI|+|Uo@6e~{93putR8QMZ~Hst$_ zK*QUJv)Dq5bLrxu!#+w<6}PjoQ%Bc1Kw4)Zp8~HT5&H=qF5L2W0)X8Xb#CpQxF8-^ z`WKU^3-y{sY6oyabGButK0(t~XGl?c!Pzf<{%JEXy0njNd;{m;0LG}wyXdKOAcae% zL)+x^aAG`_bXPt!$LXv+*KQE`m5?ecW7Y-Q{ubt4`2YQurYc&|1zbA!ml%g3qioG zc&_->@aHccp4Apq7*Vo5;w~q^?My(TUL@{s8u=$~;aj5Z`i<%q+$0pb74c^rmZ>(> zuS^u_n^AaHfEP4g4Dv!dv@ekTkM#)`IF^A0iwA0I7KC1|0V8WGV)>k_Sm(n9bStNL z_L2jC=LvUK(zLGao18e|<6OfeseKw-rG05zv%B!#~0X-rd zMR4umEE2Vhpt1&ksfS#E&=zCl+@pWi7+}K54l`F|>ob^zftc!&3_B>1gQ0}f?!ugU z^NMtzQ~US-&m{RF894Bnk}|yf-*J+}`FJa7uLNvc8na#FffO}9^<^16PYXF|usXY= zP32mLEA38j7!0 z>+5m(z$V@ztMkTofXOl0U_=bXyi>r5Byze=jJ z6|S+QUU{Zze4jA_%mxjR5(pqnpFy4+ zpMjyQmz)KgE+YCWo#y?!$z9U0fR;f%HNw1IEs-rT$)>P)%qN+QdO%!4jjN;vw41nN zy0Eer_h*@L6Bq2V8x=9ftjYJ%@bnPL&;42i48b2rIteb2gf2lXvPoeM)R8^gPdCKT zWh%6ufn`u55{*QyL#@||NGR_TGV7cvco1fB1shUQxq?&=Na!iOC!~waFt93R-o0>010T zRA+y9WYG&l7bAGw_AFP|zD3h-=0V19L^fG5l`R}89+j^l+usxQoc8{DhLXg>x__r zP$}iGs3vta=CXo5*yiAMrM-lb*0jm{eE(X%9~k)d0tde`9xSsYMIBx~F#I7ojeCa? zh6*)n1jw}*(t-OLEIdk*Hv|oxwu8&#mVvkMY(B;hUXH{^^~|_zL0Kgq!+E{siO-NE zG>QTZ(W90Rwwhj#DAb|Pl8&R@d7aiwpxaxVjE7RDWO5!NiCMSy{5baZ^zik3ct3PL zaEUodTGMVk{hPa!sNG;Dmv^H+lV2|D@UKw2i?d^rFA8aGYPId?v4r)^U$CvFzfC`< zBJJjfXVmu{zjZpq07|FtdGJo`>+UoCDMXdZ)F-`O*D9&8gtiI@rx;Rs;ez?h*Xfq; z&t}fYj*)yNJXeoSemh`Y^VPDSWwT>Ra22e#*L{!Lq&Rv7@MYjx*a|4b2;~(P3Z$E6 zv1BJ&#g+PSPUY#W_|?zdI<~8QzXHKj=aHgH%VDbX)?}Xe-@Y{36r(KTthvCNB<|Tt z8AThTk2=K?Pam+U2Du>Omk}#y3b#zH>KMKwFfC#24jn9jk<}x^&kTWOlQg#!+SnFH z#pQVBz>4}!*L#gDMU-ntGHI;Jdwyx-)EMA^b!qCl4r(eJoSfFj^I-Hs)v4^wPC*7& zXl!uNmNO<}Q9w5NXl&H|xrv4)S(hS{NsQ1OfBW}-y0G#dY}EVF4Wtu=%%DTQ)-C8a zB*<}-Q4w{?sgi?~c`A?@u=b3%fRIG5ryC9w&0=okMt^2aFUaDq6WTHD7KVIndu?c` z*_vImZx!*hVHGc|D`Bj*Yfdu3M#N=dmq^F0BZtf&hHxhfHC~IQ&)NkVqB$^&mk1Bb z@Hre2NG>gFk33);DCle$8r0p<0;SCqf`+`3s`e2Q4h(`L`i;QRUkJYaR3Sm92gf%10g zLHCdgTp~D8^vA`KKM1X?2)6$F{kIr@@BEVAcsC6&9!2UR5HGuEz1DGfGONtk`yWCj z5ORsiIQQM{0?hOWK#A#YG*}2D2w${*6Tf#fU5<=@(64)UJHPLS*cM5HX)s~d>-Z6V zQpa%d9{W>N9a(;QqDa9qyhfK%moWy27_N{{T88*7)qD$!xs=Y|2@J<#`h!Uo4_$@f zv+P_-pIdBVz>9#6K}a*${Bm{*|Kjqv_)8u-#A3WItC))+3Lx23T&=R}aO%;=~FN9`T?vp2LJ2DQx>%zCpw(|2>KBrTb;!5*;_Jl{v`~sIrz5Zufb?_5aR1#7SMfPJk7t$peFFnHqTFAhA&ix4G2k>3Zi(oAPGg z`FAK@xcPhSzbkwDa;p#-!`3XJU2SslF_PbY z`4mNeOfXzykEIknm{rw>=}hBH2ez`sRb~J$tDG<4M}=J6ayZIGFX||Ye&OW-?5=p` zAU+n(n`FMyd-@CTe;$D_tX1?>hyVamy#F(J;^L&oKx?#&ZRK>xeCL$D&lk?vEPKg2 zm<1ho9%WUqg=-V%2rMSnkfN?M_98C3_#ee@@av69b4LEop@YjSmMvWy%e*92U0rs4 zEnS-&JV;~f;%1XAwR*bRudYN5G`gB5!)}a8#3uRg$|jTJ%IV&UK%Jytn>(^}H}jVR z(%!^2xe-Ckaf#lQ$FKu(#?D2C3>3rkYzOkGjFV%)_XCJefe>$5ceKbhBkXa1Dv%WJW|vv;##i_Z9{JaU+-x3PD#r$^lweGQ1UREzil?$m@SrRJ()5cMJRruC zia>uP1Z^chCO^fOBFaQ7XiR`uC(13T!=S(eK7$MM%$Q6gxj@*FyI6L?4Dh1!@*!V;y%0Dq?1KH_0QK|~b0e>TVsK>IU!ANs4KmrId=3_M1&GE@*tX2F46(Wz2# zEMaQNS;uXtG4mP{u>OSs<=G2FSc_zWvOp?VkixKRK?x;{Fc7ZlAO5g4oDy5tzxDn! z7N1wQ^*G5R=YK{TAN8zmqWZ5!#$&487D#EZcI#9pN93GD)etuO^~nAA%<$AWh7*cd z%xGQ05ZJ28Jg{`ZIOkeW3WRmV>KOlQJ4ZHIeDU0x6?R+fjo_~mX_M@!hA*j$L_NiH z;|gNc_|Pu1UH{QpQp%*U4Z}{%vbTn}=Di4Hw%AMA z>H+lq=Em{;{Q5oon3>i7M$@U zr&cC=da_CGb;#G1iZ$Gy(UTK?B3{ve#?Wt!hsTs6=Pau^rTX`WgR2iN((7Szv^wm) zuVI8Ao6z!^k9p7vzxK*{z4Y!q#OZD#SK}k+1f)2gd|keU2}eM{YYKNkaKH7u-Xu5F z;oj1S>@x*N#A8vHJGP=bZ1V+&U)bEQ#!@4LM+3+xSsOd=mmkfw&7iz`H+;|RZw%_( z2qAiC;gu5d-J^*ih}}vpSPTo^h_n|y!C}6D`uo+Tzl37x-X49~5mY&FWTp+DzP^B; zBolY&NdlEctWSNP6-jU#pTe1M7)I7}A@+`g5y^q$ydU>B9h5WHuT~XG1_iK)p+b$Q zApudT3+o z=h|FBtT+_|Px?ZGl`T=Z=X%Wf0hm`tcD8qR>>+f&LE&pfv3;tB@zY`JqG?kA^ypMT z0He(j8RBH53G|@Yq8;itASKVjAYa*Rc5Q7!j#pIMfK?_6rdcJar-MtX*%NNRZlFX5hArW@;22A_#s2W2QyE}W|Jyfi@ zrkIP+51R88C`V2J3=wJZsOM$c<`slN75NAG)ua2$yUFXqTxomJu-_IcK`B4^qW3&i zu?z;B{WOM~RM3X|@b@p8t%ebVzN^k$De!`lL(*Kg8%f19=5g3;m9G<|?J;73GA0!^ z69qzm=O9FgLdqCro+$?e%>46tT}%pgVv!I5sHE@oPECIg?w*(lQWzvjXc*dgTN9|4 zlCW9{*|1`KEU7Cq{DF&(Wcoy43m1otX_&>Vce^h0Tr^1@%Q{;q3= zO9ib`wUeWkmEVU9)ICIqACp8Op+1U&N#@`>P+l1`E27oVNihIZ7v&36xVgIebJitU zhN8S8Jl&84$*=93Yp_WGxD z3+J)`u`kPquNs^jw$UL@I96NV$QBDcg4Se@-d{2|l}IaPPROS|vqlufRUFJ%lukWT z_mbF!B(S3xXqJAci4?&``#;Cai~`G#hre8z$fB?(8jYSmvj`7aS%@m=+1b#%@o*{? z7GhH;0tjI;W8u`7n>nSFl z@XC!;MR8WXd-e82(%E&P-Jw4pqZf(w>eaY)){EUlz*5z}yVG90dEuM1d7lFIJ?X@t zy7vi^zK?`yM%Igr;i^*bM%FjOjHsv1S-gV;?Ll3-)Xrg!-RwmGE+T9^2+n7WJO&{} zvfsFV!VNUF{!j}GIrlk*!NgLX!kOZRsV7;#%2!g?9cNGi8$kW-Rn?bNd+{Q@uXSni zUyave+umC5)z%Ob!O+-=vq9S@JJGN0bLrDK=`N~~juHkFu9FhE8i}FR_grUvRxb|7 z(bD>MUD~=-iyrytOe@6H#aIVwyc{v?@F$as!&ML{zQe`#!PntLga;X2J95F+5WWkE za20_}Sf_?)8(nc#M41Gk4;N#YV3d2L2>Og_7m3kw*9Kt=k{I#rTD2KPXgggm5kxEf zgy7n`gjPZ7avF;iiaFrSM+0CZW#C*+j}rqq65-7d;_U7#F*4bPljQ;mk1Lr!hnaiS z!ezqD2-F2B14$=G#w>S~{DiTvQ;w!K$L%V)9x`cuM;gW=MMflwI2FtP^Enb z0MnNQ)?X+9j9n`?^c=k1-45)`+jIN^v-yM3W@EoIsH)|h2?d@qF2?jnaLH`IJKvCY z?ielvGr%LFhE90UVGLjHjbV$UJ``va$ zUCJGVMR_zw5U^g?E2(+fBt9e>;523X#)$oNq;PcDsPb}<>e7z#qT$(j)LV{;m&B7k z6H!zpJ0?GUDp*0GLy%@xVim?YWMV!Z=-^Nvx% z?FJ%O`A!2g50NKUDw@2N;3I>AK)TCNtve2dL-rovMlPT4{`=9vYUIS^yWvH-d#N+w zQaiUYH z>ABwHq1B^49)Yo{*JrGaF$(2o1AX;D!fTWSziKoBGJnInL`)r)BdbjPt>uS5 za}QRHVz4S{amt8!NU-4AXCmwll?&y=QRsM0I1dYp!}MBHg_a30C#~A~b}K&m;-V`a zkI7g1J%RbK49;U@C&U$P!@^vL-Gs9Il&gV)_j;8;`LPb33v)htPT@R0fe1RZB)auzq+b{va@kzPXdku|nzDqJMGsGE}Ocf0k@tjD0pQ zQ==M^cVyB174E^B7y$UA3U3DIbF_PTB_g!y5c5KlkYuk4DxDsIGE>DWr}xe)$LO){5Y;^6h7${Q|4F~0 zVNfXoo1>SIQYxoTc@s9`5}LvgdDwX}wC$R1GlXYoeEwl+P4)Zv& zUHJ&(H)E%9Q7}Ac;$@54E{4^X9c0}Wd5dLDKzAv``als-UE``~VAawDrDa81 z!*0~F5XqFB93fg3 ziP4-+K*bwxnts#_BqSxW_oekouc!u`DRl{x{^tQX%b(P~)!#d3z2S~VcL%7m!R6>t zLR8)2qn^K)AHb>=qaz0z4Ky;!(?A$QX`<%LQ+FF`XHi}}IP)9V35SMQL(N-Nuf|Om zL{L*dQ|LW6iB5YhdAGdVT9>W2B@N^Jz9>l29J*x)uE1wsi{MdHl)TCwhr-Kh;@cI9O;A?u>_)P zW+;l`lCSHMJNt$9#%C%=U<29f&^~2~8}?NB0u|XJQq191XNsv1#%PCLzW*-x2(yU^ za;J;)YaU@Aho~}~(rV+Vr#+h4Umf52Qr4!^|6A$zIb>QcBEv0=EmD5$@T7+5kn>sq z?Uh99ppO#0+fPt{Jz{y7i2q&B3ISI$v$wS!Gq65fAG=NdGOA@GJIfx?> z(G?P2*gFYvOb%c+EvX>5E|NFcAtk#da!5GD#?MdOQ`gLA6N^*ktG2A*D;(8lhkpb* zO;m(T=nan~%fNtZfAc|HBQ;`ZfAr~**!aV`yR8S{bS8SU^-`~2$kE@W`YkrHyoY5< zzBXGY18cjkPhc5Yn0r%APp2s-&ebC0+?1L`xv0&RmA+Hg#5mOZ`zfp2T_v7bL$c0x z(_e~vu=f+5l@aBco87{Jg8m>hP<3AD$j2Qhl;%00ZdNo757n9}*H^o}wIdIJj;z`v z+G?i1tKbOa)a~e1QFClv-zHU!i?MLjn|-a%36d%msnyG2q_*Nx;H1Aj;Vtp@Nj#o` z%Y@n&w8qrDmXW`W`g&G_cL%RTPa|h04B+gOn*NK^luEoFK^+#N&}MDfB52&lF}uj| zFg!qMGVgYvIQz37o`3i|^P)Iw_BHQw2DnsijxRr>wTCvsv(qpgCe2|CnoCE%Ef5s9 z3aN_pID=lFUsw+uf0or1hk%aQMfl`J>6Yf> zv)6^ECe88FA>xP^gAS23OgC_} z7yli?g382n)B7qJPC&j(43<9qw0Wq1lR#Ehi3Y;XJF04M<}M3IH~(hYy>HlOr$sh@ z!OMJ!@S9%5?*4%Mm$Xv#PhB1#bZ-j&r!EUY|IfthKWXKEPrTNs*!;(`j2|45pCJiv z0Ac=C)t_+ztI@zzH%{JRz&jXo_73+s*wa&_{+G?uGw51vto#xVlq^T3coVv-> zt5c_4*QZWh73XA@EbIGYTPdB?I#~VgLW(*W5w)80s1JiA6_K8T%H1QhlLh6{iO$aZ ziH-BoIh9=n3%+FmTCm9(qDw8{I+5+Vs0&-MsfR{8m}S-rQxmM9HP;ZG&g%KF81E1K zU+V1dx!d29q_)LHRMSgTwwi%24PO^;TxX9wi6eF!1uh6d`LU`SvRq7#tEf$#_E` zrcksBKv|>FfFMM3s*&5uhG<2mpsa(q$won+{5}j#1qf9*-h=Bn0EpSh)Ykw+qU5$x z1s0__O(GD$M*ohs9Hx@{M{Kw*65U2i_h7oX_1Uc-E>S~e5ph4;p z1%rF?g;-K$oTQ?V^?UBAP=5d+`EmkX{U4~eqX22U0)fVkWYfJ-`lC7)5OSKP{r?Qz z)2{ErAYn654W4IU${8Xca%NBfqKr@gQW`|T*@ETs@7w_!ApL8nGB_*|#9%@J&}9VQ zI9HA~6zAYD%&?}H*s`l0vx@yh1iwNqu&3wdkM%bf0~5?9#)kA=0(l{AGGG1phhQ zBA?q*n*Y9e{u2=**0B|~cdToAx$@?2d0(uWW1(*o6H+1Zb$mFoH7ys{jW30_$lF_y zHORQ!R{FfLKquMNe(~ti@y774(t2rCxAmE(;7A>>y7al}I*u2A6a>Gf!B#&g?6re& z=kZjhgTds~L(bPU-^x>p->C8V#OreVdL; zxPv=RM~6y}M%7h8HK*(dO21Cp?WN^<`lNdcV6gN^c&j<0enp#451dH85~kUC3$iSw>{NA9TB5%b9IdnFNorW}k6WGlQpe!prj_{7ou{ zJtaRB81<_I$UWEY8@Mq2K7m+tp&wf%i+jNG2b|wh@HlV2n8^@@X)7bZIbk*&@ zrWQtFChZSWwJ+sAKMa-Pe|loB=CnrFnl^TutO!5VK;Q6NV8)Fl)U9bI8o21GTpbv@xPA+N zA4aCo^E!I3Yj9_IK@Z;d-i}V99_1DxQ|*fI00HVmrF^}invtt4*9 zFWwFu2`WA#JzaS^xqGp;l*8?OG2lhfcj0M4HCP~$cH!gfdY75MU+J)0O6QMhAkMWk zWod8n4f+&T+}s%2)o{sK{GabP+0yJj_09Aa0Ww|yp|_L07^Hwq->q>uRR`C%ps&Un zkFHgI+x>XiyKeG!b$zNfr&@m3=6o^X%*qf?i%1sS@CwuUhLJ5ZSv%nq{&o!EO01oK z+iEez^&ReP$#nJ=Jb0wq%cy5>#mdHx1wBSJJyy7jDT6Q4K3rcv^RD49p?A6(&hX?K z6Rw)>u~?mu)Q9=$@XZe{!8FxAIU>GA;JOPK&(eG*>~s!`()@U`oF?|4T#f{a-Rk_& z$UN|w*bXxRn!zt(x&>ODzqz3^YXdoofj!*s8@P|kh>eMf3na8Ob$e|}8u#Rj47?+Y z(Ebe=n64*k_0KbvMoCZa>-H8P2Q;wxgT-tq^K}D+i?{@$>M$sz#Bb8MCfX0JGQio` zLGi@NEqi2z&;kFZVZSNmWHJ(WM`P27x0qr>xE#;)Z0haJ!|UV4!n%YZtANT8P-yvf zhP>{ohh9_>U_nxZ{^0UKQ$wOOA~YG)L_0Ru$B1q78(?(uHSIT_;M3pb-`|U0zh^0Sbz?D@&Xtv5ym3}Y zgo-G2-)2njj|EOgbtx3FjVkRZG0h)hhGU^WfBv<$J&dH1eU07Fnhmx5_KVfhkh}Dr zjaWz zr8J;^jPy%M*J55l0cMuYU3{dfHC7(f&V`7AgmYkdeR_O>w?SO!R!RLW^0{Y@CJL97 z7C`$JG7+Tx7uXd)$b+ zeIaS2b05z>?poAI!9tZ4FAZO+1CvN-j35B=i4e=;U}UzuPIgOWg5}rO*Qmxa=S(3% zhHm7VD8-3#Yz4CQOC)(by5SBfd3G;<<*>|FC!3wMx&+C``oX#C8v&3jhy~b zZ{}k^HPds-RZ_?on}Es_xyYE4WHPkodBo5p%o98l)N*StrYx9#%w-L#$S_he{OrH@ zY=Ry^DvG+wts&++tvRiO@aJhGrd|19lvtMfQ!{Sm3fGF#zHfd&g8Rv z;W9FTr)ohpFVr=T!eTU<7ftg1o^+=5m(H?Cfnij{;p!4*Ur-P8K?0JyeG_orhBo7tG444-!JfVQpME@XLup9Ba^NeJdyc<*H2n+fsg@^f^J^ zOw_S8S{HqEcdR?w=Sd#8BZIUcv9hcR8HU|`c^glVxY&(-^FR!+;}D_&nN(Y8Xds}r zQ-1*7#6H~Cpdj*4>uGzV9y={6eJ%=^(* zQ&aD4f?K+pVcmrW)IkQ8q|`E4c)ny4>7F-BobUsj#bwoY#D<1UZ}x0fnC1oUH8%Kt zy7DC1m9669<{RP^ZNihZ6~1Bze*K<8SX1B(9GxdSduCRobw}BZ#vHuQZ>taT*&L4% zXCh{~zI-qj|DDmo&SpFRsMnLZ-~}n>eTrnzagCO|M3KfjL*iKwa^_ zG^lbE{x#1(XX?VNL(Xlmazer1-C~J4GUf zl|*8hmr_PYpc2b{ea8^6;mp#V@o&jBPT|N4sT*rQt@Es!*W^vbXyg3e8&5gRH7`rj znXM7`9zQ^9xMMKQvBj$~yPuXc2D1?en!+S&r`?L0i+ z<{j9s2OZrt;XB7hpG{(~kr0bf0BNbR=Njia!W4sDSa2N~b(}62C<*baMO(IrDprK| z8m6c?D%-O|Z~$i9=NO865AIuhVgc*N*Y?cB9u88W4GEsrg+<(UMMYkpBJ$RFgN|?R zBj`BeW}yuAI1fmJ?F2l0;i!NeL`$_NnS7ZA9hIZC>g_f;8WU8oP~YU(^?eD?`pLK8vydqx`|G?;jJ=j0g3{y2?*g zI5Q#MD?FW@xQYC$G>yzH$VjX(Q?SX@;yy1? zD}&s0jox5mY-rTO)y59y>t9Kf&ey<$H+9c_KK%boqRsF|XGbb95@o;wUKq))eI$s# zU4`ib8Q0~l@OOEGDufnKB#k$L>J+o91T|ex*n3cmi#o}rctivZMeoqGc3KzYaD~q+ z1IrSiOo~A5&;DIN8XTqVUBjxQK2(*1*Pa)rwy>^Rg*jUA&YOFwhX<;Q?KNvmMdhyy zDgfKU_}prLVgfn`&HY3G@ABaN%5MJhd3`N8wvz}q8Uu*naN=t|5=gc`niV9JLB@I4 z;J-l&h_fIIB!AJn}cA^bU_vuQFK1UzfAt?{)*%j^MYbfbC5 zaZCME>Q|sSd%kTrmTLW;BPt3ioh(1g7@bn1Y9;5aWZvDLxxGipF-@+nU! z={ZbM2`B3xptzIYVli+$P~abNeMK+7rsw#nKyEyqz6xcI1%a&TTL)|}CtLu5HkQ0$ z?0^luDP~eV|YMFEA4cIJ{<3lLL9S5p5YW2khBJFV3`}QNt zmmCko&d7Gt0TLmwpIn#Ru5y*_VoSqQJEscGUzF8;(2R-8Z3#pbVWsPpHL3!#{$lK9 zFc)RC0HdG9%tK`jO@=I|8(^TSxkHp|7E~a#RP@IKUGbt68;s-4ccKp*g`)Zcke^dX zF9>}yuzcdu4za8}C z4-L5SKvWzF?_)=o`N0qLvKyndH{~0*UQyR z-{;zdW-PB))BF0Q(}yI@V{ktVQes)Jbz5(X7K9>MjuzJVoK0JH{G1Q@a`?T^$)H|s zFty|3_>3UiDmmgp4$6@0B^MH8S)zD%Ot>Mw<`nx1qbwG5XPm^|zfD(p_1m%t9y%Xx zOw9}u!A3-9xbL9-Z=2~`CyDH`{-nLV71~U?=aLD80^p9~Bw}2nhy%Xv!}-AiXdsC& z{K{WMDscMo6Uh=ux}*iYxZk(d&{V`C(_@K^Z=QD#DRBMp3~XN^7hLREQbNE7eiSLL zQO1dPYYo5-tbteaMS?6}z-M#(ERjH%`6aljmzh3F4i~;P;sj!vxMg897H3J*G7kk4 zVIKt)QUPc-i`%jG&ixEKNx%WrPN|YmBgF~+zmw+vD{5ID(j^R7*jcfe=Rjo#YT=|O zdc36aa>g)P&!8?#r6xY;6=uHPra?vA0E>xR=^ng)NNB^U%&`Bc3`ra@jRIo<2LK=} zsfiNpQ^Kf&REo9ylhl?k%8xs;-0YR zc9R!-eS!0h3s%kfP#d@ncyXrM<^n`VOmeBe?u^M6Vdf>8g8B`b(9BwsNx+wB42@U@ zYNOsrP!|VkwcCvWa1yT{*1}TAASNs@hh1UjQ49;79mm5L4=?0wlw^=XCs?U2Hsz?p0KhN#|9qQ zOYk-!cb?cw(oXV^)9u#Qa~G5W3W4iQryQros{=lnC7D&o_y7r4X0;XBdxgZj%HCi# zMjl9-aC2mRfkhxXeYYY_QBWf)OYu%4!y(|lf71xo6_ip39vzArL+wo7zW?;0tQsIx z!6}?>uQNWL)TqzSC7hh~tkSvyBqgZPlG3gcH1c_53WvG5^__$UCm)51(lA_p8c0-f z(k?DAZ8I$V9I+1qY9L3XHD5tqYEjhjxYzCk0kc+RKrQV)Wfyl|?{a;owPp)|)hnFp zny9w^d05M3Y1@0cqRQxnLSLIzePtD-a0wN|Ig$RtM_?y11w}z``^`4@4av6Hx7tm= z&oxl*<{sq^*6ZE{cC8xS7CJ2g7GsjyYBz7rh*QA4OOu%1WogC1ifKvZx<B!rk1tFQky(W?JVG&3GMN8^8eO$wm@Q{Qzp z|4)6_MtRfrfF8lewd5ygmlD-gg#Q}2T#=#yfCex%zLhFi9*HYbD!ho@ddT-X7FT=_ zG~POI%Gi{#G;HkT#OI;OPV3d})y>>G@drfJ$}|zOF`UD-`XoQUG$_Id=}De_-0oCh z|3zP5e2GlxDNxh4Y8eXkVtVE$(VL&$f3pUe9t&O!00S2nF`gI00ABB*Lt8qb4IU^p zlAkEJ6Td0MgNQs$;t0={K1@9PnpYsrec0$_#sW?E-;MvTn&~ZODx-p22%rhZh#=)F zdYNrI#D0O|^bX(fS4bD8(3U32R{rOp-5=_RS_^;}DyxegZC`-@jjneJk2K)6Ze!cF zQ87EVZQJbFwr$()*tTukPABP;{hVi?@5eqjRaf=iRK2LN=9(jj(3j8_&-Tw(asyU= zmJt+_{uIQS6rbA;#UXB+F)FU)PO%PU6RIEbbk>UjOK#@TV|W`*!-rFq{XZ)#`MB#c z^ZX$`Wg`xLO{VNnbG0im7{x(Fta@gVjXq;SInN-0(pEc}l#;I{wFi}bv26{C^W$kN zBZ4Z;cSEA3LA}`aA44=kUVoyoApDyPK+tB5t10fC8@idvY8 zJIOjF;uY-4txi5*)c(uUV9huU4}SY-(gfnxf+x}@Jec*BPUP<&?tuo@R4>uiSm>}} z);+qXo2%YsGj3@5DI$-JDBYCGiU;B}`);|RAt_kLe-vN7Ny`gct!3CI!Wns>jDFGg_j2ZR&Xb)xT||wF4m4O+t=;wbN$g=|8D^< z9PbQ5mxTAKm#t7XQTP^K_3U4+a0w&+u4xbsfq_o3ud_}!T#Do)sWl>3yT1sR9t{$O zz%wRZxc`i62D6eLi$)lxFr(ujwq)Bz6T>5huvsYk@0&i3HM^flFU6Q}hvxl9;r^YH z`J#~^9Xd69ut-IyA7! zB0U`8Jf2d7Q;t(xY4BgBA(@D_n z{n=4C`VHwWZJ^30E~FL@m(3qUO<=|hTuM8;deM)CLH0pPOAXX#^HF)eF0PdD*Bk+~ z)h1Sh_MasK8L-bZvs_L`W;`MT_J@-{(F*|D$q%{M8(B?2%W)QPHVUS5-KhpjMM0m3g7QAYi>>!Wh59Im3K7YnwLL zu%Eou8CN5yVGa$)5_1`PHsU*)`a)B2-79tlCk&X0{o(fv&x{mc7+bJjxWuMF9X!9U z64Zu;XK!mO8PFadhtIX4CS4DYvb(DYzuTe_L_wejTDAz<-Y720L?6-ASF1<98C6Z~ zZFmMQPA+kM##(O`v&!+5aW71nN31l52kS%Hi}nU3N-ml}T@Qy^?Uor*<_JtCUqi`Z zIlcXk^*2YlqN>%5O$SEbHLyLrR6$&fZnox0sk5=HSxx;+KazSTN`eJ2{zWz<0dRxl zf%1s3nsS|HORTBl&IHBy4CV4d6bF1^IRqe#aS7y!><7uH{{dl`Yisq!GyL_Te8M^r zA7gJ=g#6U#Kx-eN5nRHh(0f7xJOJ6s$tE?F$&lOfNzIVNNz?MyG9%~uYXLwhkH!o_ z-j5`wEenL7i@YYW*N+vCOTY{Uf?FH2pOGo0_VRULb5%mBc!E_!k zr-^rH`dEsvn`_FiJhi1}M@MBhbqSXjGl`Z5c0ULC{1B1*0VsTI)(D9LTh*Wc7>&{t>%IuNM-n0l@ zbW;iljR?VB=ZQ?$)kW)h5LeD9`mu+446sL$0)zCUE}3UH9yoCHdi z>vStoh;@eB;-%n;DZ*VBUcW!Eoq)osP!KfkKT`iAQckCVaBgz+22rgYpSd`FJ{-|J z?3&KRyxm-5<@0+PKTd1~AYkM;raF1W)H(Uj-wTT(*mM2r@}9+;jcP|SKy)5rgsBkY zWO}DXwrDiL3ZuJlP1r$P2Mi{ncCBow6fC!lj`d2syofup-X?5hx^{LJ*sO=Uk`en9xv8UH%?4Y${ZAPBwy_9lWLOM5t zoq&f>XyysqU6hCJbM9kM#6meYD!PoK!~O4{Ws5Wkkkme-T*@nwBVZtDJO|!m)sJ%j z<#ZCY9RU_li;SJ+o&vSn56BZ}p$?Zma@km{&&v%HL$!$t72}h3FgrMcGVZB`1QAhXH09W_z0>vZe%M7QnK}| z^`QY3u3ZiyS`{2wDIo4C7*{i^NHhSlPz1qq9|r5)OQ z9^0z2xnXYTk(I4JRQ$`FOs_9^NdorfU_`z{(bZf-HizIqY5v_6+q19COh zA)pmWSIIJPdtAW*Q4*Hq!igIeH6DJ@zM*-$0`--r_uzNv(xP%0m@ZF!a@X(iuw)K~ zuf4Vm|DIhxQRwhJRH5tJ3M_$yis`jS^Ylw%ZoPc<$2KB)$t!f$yI^wfzf$8JxllrE z+Ui1|{wosV*O541Z=K}%)R3k)@G0y#3;7|%OlKx21pTfEYlG^nsg4vt9YjFa=Ox2R zl3xMGqHV3|G|=YA(UKUN`gv(E5p|{S!fFKg;XqiKO@iELBDrTrDX(>-g#jf;doT{< zWb%YnP=+`X1my~hz7Y;QGhxP^r^bwqf?*Tqz|5W(%~jyIl3m0^q9zDf&PCsS0WTY2 zwTq`lg!c^WAm^G0~Ryk$IbKX z*lDlJofO|UQedKDamH|S;9rjTwh#-!Oh$|0R$vz3YeyS^<3lbob=-SgN zQJt`^HCnZ=%2~8qDHypY;>na}(Io#Yfbll&$FQ|QjM-_D6_rd6rQqP6s46yIAkDTO zx(d9B5dbU5^i9@_UNsmaaa<~s<6WG?~`e;n0mPB_S~I}m>RJ;NhFmDgFlcwfU_-uIca%&ZqlV}zxI=0LG z<#2j)a^T2pE!TTbou(La_wZ85@af}Ou0dmICgC5W(Rt(t;4ZDIEV$wpTLJT&g@(-Q zU;ZwOmQ+A0+W?#Vhq|T^lAYNDW$@5Os-KPg{gZfXC+oAZ#E7iH5%-zhuBhWyZ}}3 zd)tAQMK)xJ`-+l$O7BMNF^2uTU$0@NIa!Ql!|rj1OQoZou3BEtWBSvU&U3T_VY!3? z`^k%&8zik6cD_I|?U;W#w0sWfT&$$S7oDY=H1xW;DW_(jxC!UzH8vXkN@a-XiC<3Ydptm>3k|OxG%W==kjvk^ z5%`CFL-n_vMo?RKhOf^5BmYi@}5CFEq+PW2nb|N zQ)wQo(1DEpjE`CT@Y6nzr~SvkfL9#B4?aOFDPUth0i}6Gou~fSBq#gH#AKu<)DYg< zTSix|UMBuV1M!AOqVz#-!K0o1_sUZ;IZr%VD5rMb+Ho&%N*37U^=X#Uv5112sBTTS z;$6u!(w#c})pD5X+-=SICus*NHGl4qzI8xHM_8%;o-`NGdRegj2x!lwC@4`)?{5fW zP8=-4aw?oOsXs$WT#6U$E*zeuJ0r;H3nh(E1=ZJTeq3(BrcMl}2~bn+CWO8H!E7S; z?xv$lN_=JZ7Z5PSL1cPqgLd|_4w`I4aaYI8|J;uK-prxJOBX7?+!NGKB&Tw|Cio&! z3n!gELz@&bzJJBogy8B|A)cgcPCK$lQh5TSs5RQ$ElRnr+cAr(K6tB=;LnmqLmPvu zw>(%m=RCyRcPIKS@|4G08RFqABW;`^Il^5#n}<22WTk=vr%#N zERb`mC?r1x^$WnxPY1S_$KpJJouMYAofjbP0Dc`qB9}m=wnK^efBWj_too(@J zED0bwbQ3vBNCsC0%qznMHs~Rr39&b8#T~lb;7P0tODp+fhw(WOVhjIe7q@cV1|4_r zYwM@}t#Wbh0g5DhOZ_yBy_I#m3B4^~Q(9aM(>6Z~y{6gfzwH9+-U0zUe z>S>yNb#-=Q9dcGcVR3vn@BIEYKYWlEhFHBpQIiqSsA51gd_dF8=$$JD>pmT=P;u1+ z|(ReK<2_L(TnCiXRJQ=wO_93*){*KoHid&IaC#VuvOX3$*ui; z>;1e@I{wg*;mh>17?YK8BHPW>f)NpJFM)Sg59D_ae)Rp0`yZ6xO)nv+Zoj2L{DTq# zeo(^C+y7Qd{(};X|NlUO^#2VKM*bTlB<^l*8TECDmmKnrc_k&gxvj5{Z~uL?kIm!v z`o5CpcMd8TT~EM_u=lK!4Mzn_$O?M);DO5ij;A>;H_?CmLU^)=Y0G7I9w zxl7;wmpv3GbQG`^T5xwOe509T*gAPwPFo2v_c%=CFap#9$%Dmd$R

mHw!3_gCw( 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

, __CDECL__ +PubSym@ _Int4Vector
, __CDECL__ +PubSym@ _Int5Vector
, __CDECL__ +PubSym@ _Int6Vector
, __CDECL__ +; +; Miscellaneous variables +; +PubSym@ _C0argc, , __CDECL__ +dPtrPub@ _C0argv, 0, __CDECL__ +dPtrPub@ _C0environ, 0, __CDECL__ +PubSym@ _envLng, , __CDECL__ +PubSym@ _envseg, , __CDECL__ +PubSym@ _envSize, , __CDECL__ +PubSym@ _psp, , __CDECL__ +PubSym@ _version,
, __CDECL__ +PubSym@ _brklvl,
, __CDECL__ +PubSym@ _heaptop,
, __CDECL__ + +; If stack in DS and Large data model then override location of __emu + +IFDEF _DSSTACK_ +IF LDATA +public __emu +__emu db 044h DUP (0) + db 0CCh DUP (?) +ENDIF +ENDIF + +_DATA ENDS + + +_CVTSEG SEGMENT +PubSym@ _RealCvtVector, pSF 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 z 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 literal 0 HcmV?d00001 diff --git a/16/wf3d8086/obj/wolf3d.map b/16/wf3d8086/obj/wolf3d.map new file mode 100755 index 00000000..972cba97 --- /dev/null +++ b/16/wf3d8086/obj/wolf3d.map @@ -0,0 +1,3638 @@ + + Start Stop Length Name Class + + 00000H 044F8H 044F9H _TEXT CODE + 044FAH 044FAH 00000H H_LDIV_TEXT CODE + 044FAH 04899H 003A0H WOLFHACK_TEXT CODE + 0489AH 04904H 0006BH WHACK_A_TEXT CODE + 04906H 0491CH 00017H WL_ASM_TEXT CODE + 0491DH 062DDH 019C1H WL_MAIN_TEXT CODE + 062DEH 06CD5H 009F8H WL_TEXT_TEXT CODE + 06CD6H 0B05DH 04388H WL_MENU_TEXT CODE + 0B05EH 0C637H 015DAH WL_INTER_TEXT CODE + 0C638H 0DA6CH 01435H WL_GAME_TEXT CODE + 0DA6DH 0EC13H 011A7H WL_PLAY_TEXT CODE + 0EC14H 0F7ABH 00B98H WL_DEBUG_TEXT CODE + 0F7ACH 10792H 00FE7H WL_DRAW_TEXT CODE + 10794H 10BFDH 0046AH WL_DR_A_TEXT CODE + 10BFEH 114B0H 008B3H WL_SCALE_TEXT CODE + 114B1H 12D5FH 018AFH WL_STATE_TEXT CODE + 12D60H 1402BH 012CCH WL_AGENT_TEXT CODE + 1402CH 14D6CH 00D41H WL_ACT1_TEXT CODE + 14D6DH 1710AH 0239EH WL_ACT2_TEXT CODE + 1710BH 1885CH 01752H ID_CA_TEXT CODE + 1885DH 193E0H 00B84H ID_IN_TEXT CODE + 193E1H 1A267H 00E87H ID_MM_TEXT CODE + 1A268H 1B44AH 011E3H ID_PM_TEXT CODE + 1B44BH 1CD63H 01919H ID_SD_TEXT CODE + 1CD64H 1D1D4H 00471H ID_SD_A_TEXT CODE + 1D1D5H 1DDD7H 00C03H ID_US_1_TEXT CODE + 1DDD8H 1DE1CH 00045H ID_US_A_TEXT CODE + 1DE1DH 1E98FH 00B73H ID_VL_TEXT CODE + 1E990H 1F2B9H 0092AH ID_VH_TEXT CODE + 1F2BAH 1F54DH 00294H ID_VL_A_TEXT CODE + 1F54EH 1F743H 001F6H ID_VH_A_TEXT CODE + 1F750H 21EC6H 02777H EMU_PROG CODE + 21ED0H 22497H 005C8H E87_PROG CODE + 224A0H 224A0H 00000H _FARDATA FAR_DATA + 224A0H 2449FH 02000H FAR_DATA FAR_DATA + 244A0H 245A1H 00102H FAR_DATA FAR_DATA + 245B0H 248A3H 002F4H WL_MAIN5_DATA FAR_DATA + 248B0H 24B7FH 002D0H WL_MENU5_DATA FAR_DATA + 24B80H 24CF9H 0017AH WL_MENU6_DATA FAR_DATA + 24D00H 24EF7H 001F8H WL_MENU7_DATA FAR_DATA + 24F00H 24FFBH 000FCH WL_MENU8_DATA FAR_DATA + 25000H 251CDH 001CEH WL_MENU9_DATA FAR_DATA + 251D0H 25277H 000A8H WL_MENU10_DATA FAR_DATA + 25280H 25423H 001A4H WL_MENU11_DATA FAR_DATA + 25430H 255A9H 0017AH WL_MENU12_DATA FAR_DATA + 255B0H 255D3H 00024H WL_MENU13_DATA FAR_DATA + 255E0H 34FDFH 0FA00H SignonSeg FAR_DATA + 34FE0H 3505FH 00080H ID_IN5_DATA FAR_DATA + 35060H 350DFH 00080H ID_IN6_DATA FAR_DATA + 350E0H 3515FH 00080H ID_IN7_DATA FAR_DATA + 35160H 35160H 00000H _FARBSS FAR_BSS + 35160H 356B8H 00559H _COMDEF_AA_ FAR_BSS + 356C0H 35DC7H 00708H _COMDEF_AB_ FAR_BSS + 35DD0H 36BDFH 00E10H _COMDEF_AC_ FAR_BSS + 36BE0H 36C74H 00095H _COMDEF_AD_ FAR_BSS + 36C80H 37E7FH 01200H _COMDEF_AE_ FAR_BSS + 37E80H 3907FH 01200H _COMDEF_AF_ FAR_BSS + 39080H 3B14FH 020D0H _COMDEF_AG_ FAR_BSS + 3B150H 3B44FH 00300H _COMDEF_AH_ FAR_BSS + 3B450H 3B74FH 00300H _COMDEF_AI_ FAR_BSS + 3B750H 3B750H 00000H _OVERLAY_ OVRINFO + 3B750H 3B750H 00000H _1STUB_ STUBSEG + 3B750H 3FE89H 0473AH _DATA DATA + 3FE8AH 3FE8DH 00004H _CVTSEG DATA + 3FE8EH 3FE99H 0000CH _SCNSEG DATA + 3FE9AH 3FE9AH 00000H _CONST CONST + 3FE9AH 3FEB7H 0001EH _INIT_ INITDATA + 3FEB8H 3FEB8H 00000H _INITEND_ INITDATA + 3FEB8H 3FEBDH 00006H _EXIT_ EXITDATA + 3FEBEH 3FEBEH 00000H _EXITEND_ EXITDATA + 3FEBEH 40133H 00276H _BSS BSS + 40134H 4A6FCH 0A5C9H _COMDEF_ BSS + 4A6FDH 4A6FDH 00000H _BSSEND BSSEND + 4A700H 4A77FH 00080H _STACK STACK + + +Detailed map of segments + + 0000:0000 02B3 C=CODE S=_TEXT G=(none) M=C0.ASM ACBP=28 + 0000:02B3 00DE C=CODE S=_TEXT G=(none) M=H_LDIV.ASM ACBP=28 + 0000:0391 0258 C=CODE S=_TEXT G=(none) M=FPINIT ACBP=28 + 0000:05E9 0000 C=CODE S=_TEXT G=(none) M=E87TRAP ACBP=28 + 0000:05E9 0000 C=CODE S=_TEXT G=(none) M=PROTFLAG ACBP=28 + 0000:05E9 0000 C=CODE S=_TEXT G=(none) M=DEFLT87 ACBP=28 + 0000:05E9 000D C=CODE S=_TEXT G=(none) M=ATAN ACBP=28 + 0000:05F6 0000 C=CODE S=_TEXT G=(none) M=HUGEVAL ACBP=28 + 0000:05F6 009A C=CODE S=_TEXT G=(none) M=LDTRUNC ACBP=28 + 0000:0690 0000 C=CODE S=_TEXT G=(none) M=MATHWHY ACBP=28 + 0000:0690 01B5 C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 + 0000:0845 0361 C=CODE S=_TEXT G=(none) M=SCANTOD ACBP=28 + 0000:0BA6 0209 C=CODE S=_TEXT G=(none) M=XCVT ACBP=28 + 0000:0DAF 00A6 C=CODE S=_TEXT G=(none) M=FPERR ACBP=28 + 0000:0E55 00C9 C=CODE S=_TEXT G=(none) M=_POW10 ACBP=28 + 0000:0F1E 000B C=CODE S=_TEXT G=(none) M=POW10D ACBP=28 + 0000:0F29 0026 C=CODE S=_TEXT G=(none) M=MATHERR ACBP=28 + 0000:0F4F 004D C=CODE S=_TEXT G=(none) M=SIN ACBP=28 + 0000:0F9C 0050 C=CODE S=_TEXT G=(none) M=TAN ACBP=28 + 0000:0FEC 0090 C=CODE S=_TEXT G=(none) M=_MATHERR ACBP=28 + 0000:107C 00BB C=CODE S=_TEXT G=(none) M=ATAN2 ACBP=28 + 0000:1137 002C C=CODE S=_TEXT G=(none) M=FFTOL ACBP=28 + 0000:1163 002D C=CODE S=_TEXT G=(none) M=ATEXIT ACBP=28 + 0000:1190 0000 C=CODE S=_TEXT G=(none) M=CTYPE ACBP=28 + 0000:1190 0036 C=CODE S=_TEXT G=(none) M=DOSDFREE ACBP=28 + 0000:11C6 0038 C=CODE S=_TEXT G=(none) M=DOSFATTR ACBP=28 + 0000:11FE 0032 C=CODE S=_TEXT G=(none) M=DOSGDATE ACBP=28 + 0000:1230 0023 C=CODE S=_TEXT G=(none) M=DOSWRITE ACBP=28 + 0000:1253 0093 C=CODE S=_TEXT G=(none) M=EXIT ACBP=28 + 0000:12E6 0000 C=CODE S=_TEXT G=(none) M=FILES ACBP=28 + 0000:12E6 0000 C=CODE S=_TEXT G=(none) M=FILES2 ACBP=28 + 0000:12E6 0000 C=CODE S=_TEXT G=(none) M=FMODE ACBP=28 + 0000:12E6 0000 C=CODE S=_TEXT G=(none) M=FPSTKLEN ACBP=28 + 0000:12E6 0017 C=CODE S=_TEXT G=(none) M=F_LXMUL ACBP=28 + 0000:12FD 0021 C=CODE S=_TEXT G=(none) M=F_PCMP ACBP=28 + 0000:131E 001C C=CODE S=_TEXT G=(none) M=F_SCOPY ACBP=28 + 0000:133A 0020 C=CODE S=_TEXT G=(none) M=GETVECT ACBP=28 + 0000:135A 0000 C=CODE S=_TEXT G=(none) M=HEAPLEN ACBP=28 + 0000:135A 0021 C=CODE S=_TEXT G=(none) M=H_LLSH ACBP=28 + 0000:137B 0020 C=CODE S=_TEXT G=(none) M=H_LRSH ACBP=28 + 0000:139B 0021 C=CODE S=_TEXT G=(none) M=H_LURSH ACBP=28 + 0000:13BC 0088 C=CODE S=_TEXT G=(none) M=H_PADA ACBP=28 + 0000:1444 0060 C=CODE S=_TEXT G=(none) M=H_PADD ACBP=28 + 0000:14A4 0028 C=CODE S=_TEXT G=(none) M=H_PSBP ACBP=28 + 0000:14CC 0027 C=CODE S=_TEXT G=(none) M=H_SPUSH ACBP=28 + 0000:14F3 004B C=CODE S=_TEXT G=(none) M=IOERROR ACBP=28 + 0000:153E 0011 C=CODE S=_TEXT G=(none) M=ISATTY ACBP=28 + 0000:154F 009A C=CODE S=_TEXT G=(none) M=LONGTOA ACBP=28 + 0000:15E9 0029 C=CODE S=_TEXT G=(none) M=LSEEK ACBP=28 + 0000:1612 0082 C=CODE S=_TEXT G=(none) M=MKNAME ACBP=28 + 0000:1694 0021 C=CODE S=_TEXT G=(none) M=N_PCMP ACBP=28 + 0000:16B5 002D C=CODE S=_TEXT G=(none) M=READA ACBP=28 + 0000:16E2 01AA C=CODE S=_TEXT G=(none) M=SCANTOL ACBP=28 + 0000:188C 00A5 C=CODE S=_TEXT G=(none) M=SETUPIO ACBP=28 + 0000:1931 0000 C=CODE S=_TEXT G=(none) M=SIGDATA ACBP=28 + 0000:1931 0000 C=CODE S=_TEXT G=(none) M=STKLEN ACBP=28 + 0000:1931 002C C=CODE S=_TEXT G=(none) M=TOLOWER ACBP=28 + 0000:195D 002C C=CODE S=_TEXT G=(none) M=TOUPPER ACBP=28 + 0000:1989 0016 C=CODE S=_TEXT G=(none) M=UNLINK ACBP=28 + 0000:199F 04CB C=CODE S=_TEXT G=(none) M=VPRINTER ACBP=28 + 0000:1E6A 009F C=CODE S=_TEXT G=(none) M=VRAM ACBP=28 + 0000:1F09 001A C=CODE S=_TEXT G=(none) M=XCLOSE ACBP=28 + 0000:1F23 0029 C=CODE S=_TEXT G=(none) M=_STPCPY ACBP=28 + 0000:1F4C 0025 C=CODE S=_TEXT G=(none) M=BIOSKEY ACBP=28 + 0000:1F71 006F C=CODE S=_TEXT G=(none) M=BRK ACBP=28 + 0000:1FE0 0029 C=CODE S=_TEXT G=(none) M=CLRSCR ACBP=28 + 0000:2009 0010 C=CODE S=_TEXT G=(none) M=CORELEFT ACBP=28 + 0000:2019 01A1 C=CODE S=_TEXT G=(none) M=CRTINIT ACBP=28 + 0000:21BA 001F C=CODE S=_TEXT G=(none) M=CVTFAK ACBP=28 + 0000:21D9 0421 C=CODE S=_TEXT G=(none) M=FARHEAP ACBP=28 + 0000:25FA 0140 C=CODE S=_TEXT G=(none) M=FBRK ACBP=28 + 0000:273A 0050 C=CODE S=_TEXT G=(none) M=FCORELFT ACBP=28 + 0000:278A 0049 C=CODE S=_TEXT G=(none) M=GOTOXY ACBP=28 + 0000:27D3 00A8 C=CODE S=_TEXT G=(none) M=GPTEXT ACBP=28 + 0000:287B 002E C=CODE S=_TEXT G=(none) M=HARD ACBP=28 + 0000:28A9 0126 C=CODE S=_TEXT G=(none) M=HARDERR ACBP=28 + 0000:29CF 0027 C=CODE S=_TEXT G=(none) M=IOCTL ACBP=28 + 0000:29F6 009D C=CODE S=_TEXT G=(none) M=MOVETEXT ACBP=28 + 0000:2A93 027B C=CODE S=_TEXT G=(none) M=NEARHEAP ACBP=28 + 0000:2D0E 0004 C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 + 0000:2D12 01BD C=CODE S=_TEXT G=(none) M=SCREEN ACBP=28 + 0000:2ECF 0188 C=CODE S=_TEXT G=(none) M=SCROLL ACBP=28 + 0000:3057 0119 C=CODE S=_TEXT G=(none) M=SETARGV ACBP=28 + 0000:3170 001C C=CODE S=_TEXT G=(none) M=SETBLOCK ACBP=28 + 0000:318C 005D C=CODE S=_TEXT G=(none) M=SETENVP ACBP=28 + 0000:31E9 002C C=CODE S=_TEXT G=(none) M=WHEREXY ACBP=28 + 0000:3215 007D C=CODE S=_TEXT G=(none) M=ATOL ACBP=28 + 0000:3292 0010 C=CODE S=_TEXT G=(none) M=BDOS ACBP=28 + 0000:32A2 001B C=CODE S=_TEXT G=(none) M=CHMODA ACBP=28 + 0000:32BD 0028 C=CODE S=_TEXT G=(none) M=CLOSE ACBP=28 + 0000:32E5 001E C=CODE S=_TEXT G=(none) M=CLOSEA ACBP=28 + 0000:3303 008B C=CODE S=_TEXT G=(none) M=CREAT ACBP=28 + 0000:338E 0081 C=CODE S=_TEXT G=(none) M=FCLOSE ACBP=28 + 0000:340F 0081 C=CODE S=_TEXT G=(none) M=FFLUSH ACBP=28 + 0000:3490 0060 C=CODE S=_TEXT G=(none) M=FINDFIRS ACBP=28 + 0000:34F0 0041 C=CODE S=_TEXT G=(none) M=FLENGTH ACBP=28 + 0000:3531 003A C=CODE S=_TEXT G=(none) M=FLUSHALL ACBP=28 + 0000:356B 01A0 C=CODE S=_TEXT G=(none) M=FOPEN ACBP=28 + 0000:370B 0016 C=CODE S=_TEXT G=(none) M=FPRINTF ACBP=28 + 0000:3721 018C C=CODE S=_TEXT G=(none) M=FSEEK ACBP=28 + 0000:38AD 005F C=CODE S=_TEXT G=(none) M=GETENV ACBP=28 + 0000:390C 0067 C=CODE S=_TEXT G=(none) M=LTOA1 ACBP=28 + 0000:3973 001F C=CODE S=_TEXT G=(none) M=MEMCPY ACBP=28 + 0000:3992 0022 C=CODE S=_TEXT G=(none) M=MOVEDATA ACBP=28 + 0000:39B4 0183 C=CODE S=_TEXT G=(none) M=OPEN ACBP=28 + 0000:3B37 004D C=CODE S=_TEXT G=(none) M=OPENA ACBP=28 + 0000:3B84 0017 C=CODE S=_TEXT G=(none) M=PRINTF ACBP=28 + 0000:3B9B 0309 C=CODE S=_TEXT G=(none) M=PUTC ACBP=28 + 0000:3EA4 004B C=CODE S=_TEXT G=(none) M=PUTS ACBP=28 + 0000:3EEF 00CE C=CODE S=_TEXT G=(none) M=READ ACBP=28 + 0000:3FBD 0003 C=CODE S=_TEXT G=(none) M=READU ACBP=28 + 0000:3FC0 00D8 C=CODE S=_TEXT G=(none) M=SETVBUF ACBP=28 + 0000:4098 0061 C=CODE S=_TEXT G=(none) M=SPRINTF ACBP=28 + 0000:40F9 0039 C=CODE S=_TEXT G=(none) M=STRCAT ACBP=28 + 0000:4132 001A C=CODE S=_TEXT G=(none) M=STRLEN ACBP=28 + 0000:414C 00FF C=CODE S=_TEXT G=(none) M=STRTOL ACBP=28 + 0000:424B 010E C=CODE S=_TEXT G=(none) M=WRITE ACBP=28 + 0000:4359 003A C=CODE S=_TEXT G=(none) M=WRITEA ACBP=28 + 0000:4393 0003 C=CODE S=_TEXT G=(none) M=WRITEU ACBP=28 + 0000:4396 0028 C=CODE S=_TEXT G=(none) M=XFCLOSE ACBP=28 + 0000:43BE 0023 C=CODE S=_TEXT G=(none) M=XFFLUSH ACBP=28 + 0000:43E1 0028 C=CODE S=_TEXT G=(none) M=FMEMCMP ACBP=28 + 0000:4409 0024 C=CODE S=_TEXT G=(none) M=FMEMCPY ACBP=28 + 0000:442D 0043 C=CODE S=_TEXT G=(none) M=FMEMSET ACBP=28 + 0000:4470 0029 C=CODE S=_TEXT G=(none) M=FSTRCPY ACBP=28 + 0000:4499 0041 C=CODE S=_TEXT G=(none) M=FSTRICMP ACBP=28 + 0000:44DA 001F C=CODE S=_TEXT G=(none) M=FSTRLEN ACBP=28 + 044F:000A 0000 C=CODE S=H_LDIV_TEXT G=(none) M=H_LDIV.ASM ACBP=48 + 044F:000A 03A0 C=CODE S=WOLFHACK_TEXT G=(none) M=WOLFHACK.C ACBP=28 + 0489:000A 006B C=CODE S=WHACK_A_TEXT G=(none) M=WHACK_A.ASM ACBP=48 + 0490:0006 0017 C=CODE S=WL_ASM_TEXT G=(none) M=WL_ASM.ASM ACBP=48 + 0491:000D 19C1 C=CODE S=WL_MAIN_TEXT G=(none) M=WL_MAIN.C ACBP=28 + 062D:000E 09F8 C=CODE S=WL_TEXT_TEXT G=(none) M=WL_TEXT.C ACBP=28 + 06CD:0006 4388 C=CODE S=WL_MENU_TEXT G=(none) M=WL_MENU.C ACBP=28 + 0B05:000E 15DA C=CODE S=WL_INTER_TEXT G=(none) M=WL_INTER.C ACBP=28 + 0C63:0008 1435 C=CODE S=WL_GAME_TEXT G=(none) M=WL_GAME.C ACBP=28 + 0DA6:000D 11A7 C=CODE S=WL_PLAY_TEXT G=(none) M=WL_PLAY.C ACBP=28 + 0EC1:0004 0B98 C=CODE S=WL_DEBUG_TEXT G=(none) M=WL_DEBUG.C ACBP=28 + 0F7A:000C 0FE7 C=CODE S=WL_DRAW_TEXT G=(none) M=WL_DRAW.C ACBP=28 + 1079:0004 046A C=CODE S=WL_DR_A_TEXT G=(none) M=WL_DR_A.ASM ACBP=48 + 10BF:000E 08B3 C=CODE S=WL_SCALE_TEXT G=(none) M=WL_SCALE.C ACBP=28 + 114B:0001 18AF C=CODE S=WL_STATE_TEXT G=(none) M=WL_STATE.C ACBP=28 + 12D6:0000 12CC C=CODE S=WL_AGENT_TEXT G=(none) M=WL_AGENT.C ACBP=28 + 1402:000C 0D41 C=CODE S=WL_ACT1_TEXT G=(none) M=WL_ACT1.C ACBP=28 + 14D6:000D 239E C=CODE S=WL_ACT2_TEXT G=(none) M=WL_ACT2.C ACBP=28 + 1710:000B 1752 C=CODE S=ID_CA_TEXT G=(none) M=ID_CA.C ACBP=28 + 1885:000D 0B84 C=CODE S=ID_IN_TEXT G=(none) M=ID_IN.C ACBP=28 + 193E:0001 0E87 C=CODE S=ID_MM_TEXT G=(none) M=ID_MM.C ACBP=28 + 1A26:0008 11E3 C=CODE S=ID_PM_TEXT G=(none) M=ID_PM.C ACBP=28 + 1B44:000B 1919 C=CODE S=ID_SD_TEXT G=(none) M=ID_SD.C ACBP=28 + 1CD6:0004 0471 C=CODE S=ID_SD_A_TEXT G=(none) M=ID_SD_A.ASM ACBP=48 + 1D1D:0005 0C03 C=CODE S=ID_US_1_TEXT G=(none) M=ID_US_1.C ACBP=28 + 1DDD:0008 0045 C=CODE S=ID_US_A_TEXT G=(none) M=ID_US_A.ASM ACBP=48 + 1DE1:000D 0B73 C=CODE S=ID_VL_TEXT G=(none) M=ID_VL.C ACBP=28 + 1E99:0000 092A C=CODE S=ID_VH_TEXT G=(none) M=ID_VH.C ACBP=28 + 1F2B:000A 0294 C=CODE S=ID_VL_A_TEXT G=(none) M=ID_VL_A.ASM ACBP=48 + 1F54:000E 01F6 C=CODE S=ID_VH_A_TEXT G=(none) M=ID_VH_A.ASM ACBP=48 + 1F75:0000 0000 C=CODE S=EMU_PROG G=(none) M=FPINIT ACBP=68 + 1F75:0000 2777 C=CODE S=EMU_PROG G=(none) M=EMU086 ACBP=68 + 21ED:0000 0000 C=CODE S=E87_PROG G=(none) M=FPINIT ACBP=68 + 21ED:0000 03E3 C=CODE S=E87_PROG G=(none) M=EMU087 ACBP=68 + 21ED:03F0 01D8 C=CODE S=E87_PROG G=(none) M=E87TRAP ACBP=68 + 224A:0000 0000 C=FAR_DATA S=_FARDATA G=(none) M=C0.ASM ACBP=68 + 224A:0000 2000 C=FAR_DATA S=FAR_DATA G=(none) M=WHACK_A.ASM ACBP=60 + 244A:0000 0102 C=FAR_DATA S=FAR_DATA G=(none) M=ID_US_A.ASM ACBP=60 + 245B:0000 02F4 C=FAR_DATA S=WL_MAIN5_DATA G=(none) M=WL_MAIN.C ACBP=68 + 248B:0000 02D0 C=FAR_DATA S=WL_MENU5_DATA G=(none) M=WL_MENU.C ACBP=68 + 24B8:0000 017A C=FAR_DATA S=WL_MENU6_DATA G=(none) M=WL_MENU.C ACBP=68 + 24D0:0000 01F8 C=FAR_DATA S=WL_MENU7_DATA G=(none) M=WL_MENU.C ACBP=68 + 24F0:0000 00FC C=FAR_DATA S=WL_MENU8_DATA G=(none) M=WL_MENU.C ACBP=68 + 2500:0000 01CE C=FAR_DATA S=WL_MENU9_DATA G=(none) M=WL_MENU.C ACBP=68 + 251D:0000 00A8 C=FAR_DATA S=WL_MENU10_DATA G=(none) M=WL_MENU.C ACBP=68 + 2528:0000 01A4 C=FAR_DATA S=WL_MENU11_DATA G=(none) M=WL_MENU.C ACBP=68 + 2543:0000 017A C=FAR_DATA S=WL_MENU12_DATA G=(none) M=WL_MENU.C ACBP=68 + 255B:0000 0024 C=FAR_DATA S=WL_MENU13_DATA G=(none) M=WL_MENU.C ACBP=68 + 255E:0000 FA00 C=FAR_DATA S=SignonSeg G=(none) M=SIGNON.BIN ACBP=60 + 34FE:0000 0080 C=FAR_DATA S=ID_IN5_DATA G=(none) M=ID_IN.C ACBP=68 + 3506:0000 0080 C=FAR_DATA S=ID_IN6_DATA G=(none) M=ID_IN.C ACBP=68 + 350E:0000 0080 C=FAR_DATA S=ID_IN7_DATA G=(none) M=ID_IN.C ACBP=68 + 3516:0000 0000 C=FAR_BSS S=_FARBSS G=(none) M=C0.ASM ACBP=68 + 3516:0000 0559 C=FAR_BSS S=_COMDEF_AA_ G=(none) M=WL_ACT1.C ACBP=60 + 356C:0000 0708 C=FAR_BSS S=_COMDEF_AB_ G=(none) M=WL_DRAW.C ACBP=60 + 35DD:0000 0E10 C=FAR_BSS S=_COMDEF_AC_ G=(none) M=WL_DRAW.C ACBP=60 + 36BE:0000 0095 C=FAR_BSS S=_COMDEF_AD_ G=(none) M=ID_CA.C ACBP=60 + 36C8:0000 1200 C=FAR_BSS S=_COMDEF_AE_ G=(none) M=WL_PLAY.C ACBP=60 + 37E8:0000 1200 C=FAR_BSS S=_COMDEF_AF_ G=(none) M=WL_PLAY.C ACBP=60 + 3908:0000 20D0 C=FAR_BSS S=_COMDEF_AG_ G=(none) M=ID_MM.C ACBP=60 + 3B15:0000 0300 C=FAR_BSS S=_COMDEF_AH_ G=(none) M=ID_VL.C ACBP=60 + 3B45:0000 0300 C=FAR_BSS S=_COMDEF_AI_ G=(none) M=ID_VL.C ACBP=60 + 3B75:0000 0000 C=OVRINFO S=_OVERLAY_ G=(none) M=C0.ASM ACBP=68 + 3B75:0000 0000 C=STUBSEG S=_1STUB_ G=(none) M=C0.ASM ACBP=68 + 3B75:0000 00D9 C=DATA S=_DATA G=DGROUP M=C0.ASM ACBP=68 + 3B75:00DA 0000 C=DATA S=_DATA G=DGROUP M=H_LDIV.ASM ACBP=48 + 3B75:00DA 0002 C=DATA S=_DATA G=DGROUP M=WOLFHACK.C ACBP=48 + 3B75:00DC 0000 C=DATA S=_DATA G=DGROUP M=WHACK_A.ASM ACBP=48 + 3B75:00DC 0000 C=DATA S=_DATA G=DGROUP M=WL_ASM.ASM ACBP=48 + 3B75:00DC 0254 C=DATA S=_DATA G=DGROUP M=WL_MAIN.C ACBP=48 + 3B75:0330 00A1 C=DATA S=_DATA G=DGROUP M=WL_TEXT.C ACBP=48 + 3B75:03D2 06B4 C=DATA S=_DATA G=DGROUP M=WL_MENU.C ACBP=48 + 3B75:0A86 03ED C=DATA S=_DATA G=DGROUP M=WL_INTER.C ACBP=48 + 3B75:0E74 03FC C=DATA S=_DATA G=DGROUP M=WL_GAME.C ACBP=48 + 3B75:1270 0216 C=DATA S=_DATA G=DGROUP M=WL_PLAY.C ACBP=48 + 3B75:1486 01FE C=DATA S=_DATA G=DGROUP M=WL_DEBUG.C ACBP=48 + 3B75:1684 0096 C=DATA S=_DATA G=DGROUP M=WL_DRAW.C ACBP=48 + 3B75:171A 0000 C=DATA S=_DATA G=DGROUP M=WL_DR_A.ASM ACBP=48 + 3B75:171A 00F1 C=DATA S=_DATA G=DGROUP M=WL_SCALE.C ACBP=48 + 3B75:180C 00FF C=DATA S=_DATA G=DGROUP M=WL_STATE.C ACBP=48 + 3B75:190C 0112 C=DATA S=_DATA G=DGROUP M=WL_AGENT.C ACBP=48 + 3B75:1A1E 0119 C=DATA S=_DATA G=DGROUP M=WL_ACT1.C ACBP=48 + 3B75:1B38 1412 C=DATA S=_DATA G=DGROUP M=WL_ACT2.C ACBP=48 + 3B75:2F4A 0300 C=DATA S=_DATA G=DGROUP M=GAMEPAL.BIN ACBP=48 + 3B75:324A 0109 C=DATA S=_DATA G=DGROUP M=ID_CA.C ACBP=48 + 3B75:3354 005F C=DATA S=_DATA G=DGROUP M=ID_IN.C ACBP=48 + 3B75:33B4 015B C=DATA S=_DATA G=DGROUP M=ID_MM.C ACBP=48 + 3B75:3510 0490 C=DATA S=_DATA G=DGROUP M=ID_PM.C ACBP=48 + 3B75:39A0 0265 C=DATA S=_DATA G=DGROUP M=ID_SD.C ACBP=48 + 3B75:3C06 0104 C=DATA S=_DATA G=DGROUP M=ID_SD_A.ASM ACBP=48 + 3B75:3D0A 02B9 C=DATA S=_DATA G=DGROUP M=ID_US_1.C ACBP=48 + 3B75:3FC4 0000 C=DATA S=_DATA G=DGROUP M=ID_US_A.ASM ACBP=48 + 3B75:3FC4 0097 C=DATA S=_DATA G=DGROUP M=ID_VL.C ACBP=48 + 3B75:405C 0029 C=DATA S=_DATA G=DGROUP M=ID_VH.C ACBP=48 + 3B75:4086 0002 C=DATA S=_DATA G=DGROUP M=ID_VL_A.ASM ACBP=48 + 3B75:4088 0000 C=DATA S=_DATA G=DGROUP M=ID_VH_A.ASM ACBP=48 + 3B75:4090 0002 C=DATA S=_DATA G=DGROUP M=FPINIT ACBP=68 + 3B75:40A0 0000 C=DATA S=_DATA G=DGROUP M=E87TRAP ACBP=68 + 3B75:40A0 0003 C=DATA S=_DATA G=DGROUP M=PROTFLAG ACBP=48 + 3B75:40A4 0002 C=DATA S=_DATA G=DGROUP M=DEFLT87 ACBP=48 + 3B75:40A6 0000 C=DATA S=_DATA G=DGROUP M=ATAN ACBP=48 + 3B75:40A6 0024 C=DATA S=_DATA G=DGROUP M=HUGEVAL ACBP=48 + 3B75:40CA 0000 C=DATA S=_DATA G=DGROUP M=LDTRUNC ACBP=48 + 3B75:40CA 0037 C=DATA S=_DATA G=DGROUP M=MATHWHY ACBP=48 + 3B75:4102 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 + 3B75:4102 0018 C=DATA S=_DATA G=DGROUP M=SCANTOD ACBP=48 + 3B75:411A 0000 C=DATA S=_DATA G=DGROUP M=XCVT ACBP=48 + 3B75:411A 008C C=DATA S=_DATA G=DGROUP M=FPERR ACBP=48 + 3B75:41A6 0080 C=DATA S=_DATA G=DGROUP M=_POW10 ACBP=48 + 3B75:4226 0000 C=DATA S=_DATA G=DGROUP M=POW10D ACBP=48 + 3B75:4226 0000 C=DATA S=_DATA G=DGROUP M=MATHERR ACBP=48 + 3B75:4226 000C C=DATA S=_DATA G=DGROUP M=SIN ACBP=48 + 3B75:4232 000C C=DATA S=_DATA G=DGROUP M=TAN ACBP=48 + 3B75:423E 000E C=DATA S=_DATA G=DGROUP M=_MATHERR ACBP=48 + 3B75:424C 0018 C=DATA S=_DATA G=DGROUP M=ATAN2 ACBP=48 + 3B75:4270 0110 C=DATA S=_DATA G=DGROUP M=EMUVARS ACBP=68 + 3B75:4380 0000 C=DATA S=_DATA G=DGROUP M=FFTOL ACBP=48 + 3B75:4380 0002 C=DATA S=_DATA G=DGROUP M=ATEXIT ACBP=48 + 3B75:4382 0101 C=DATA S=_DATA G=DGROUP M=CTYPE ACBP=48 + 3B75:4484 0000 C=DATA S=_DATA G=DGROUP M=DOSDFREE ACBP=48 + 3B75:4484 0000 C=DATA S=_DATA G=DGROUP M=DOSFATTR ACBP=48 + 3B75:4484 0000 C=DATA S=_DATA G=DGROUP M=DOSGDATE ACBP=48 + 3B75:4484 0000 C=DATA S=_DATA G=DGROUP M=DOSWRITE ACBP=48 + 3B75:4484 000C C=DATA S=_DATA G=DGROUP M=EXIT ACBP=48 + 3B75:4490 0140 C=DATA S=_DATA G=DGROUP M=FILES ACBP=48 + 3B75:45D0 002A C=DATA S=_DATA G=DGROUP M=FILES2 ACBP=48 + 3B75:45FA 0004 C=DATA S=_DATA G=DGROUP M=FMODE ACBP=48 + 3B75:45FE 0002 C=DATA S=_DATA G=DGROUP M=FPSTKLEN ACBP=48 + 3B75:4600 0000 C=DATA S=_DATA G=DGROUP M=F_LXMUL ACBP=48 + 3B75:4600 0000 C=DATA S=_DATA G=DGROUP M=F_PCMP ACBP=48 + 3B75:4600 0000 C=DATA S=_DATA G=DGROUP M=F_SCOPY ACBP=48 + 3B75:4600 0000 C=DATA S=_DATA G=DGROUP M=GETVECT ACBP=48 + 3B75:4600 0002 C=DATA S=_DATA G=DGROUP M=HEAPLEN ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_LLSH ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_LRSH ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_LURSH ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_PADA ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_PADD ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_PSBP ACBP=48 + 3B75:4602 0000 C=DATA S=_DATA G=DGROUP M=H_SPUSH ACBP=48 + 3B75:4602 005B C=DATA S=_DATA G=DGROUP M=IOERROR ACBP=48 + 3B75:465E 0000 C=DATA S=_DATA G=DGROUP M=ISATTY ACBP=48 + 3B75:465E 0000 C=DATA S=_DATA G=DGROUP M=LONGTOA ACBP=48 + 3B75:465E 0000 C=DATA S=_DATA G=DGROUP M=LSEEK ACBP=48 + 3B75:465E 0009 C=DATA S=_DATA G=DGROUP M=MKNAME ACBP=48 + 3B75:4668 0000 C=DATA S=_DATA G=DGROUP M=N_PCMP ACBP=48 + 3B75:4668 0000 C=DATA S=_DATA G=DGROUP M=READA ACBP=48 + 3B75:4668 0000 C=DATA S=_DATA G=DGROUP M=SCANTOL ACBP=48 + 3B75:4668 0000 C=DATA S=_DATA G=DGROUP M=SETUPIO ACBP=48 + 3B75:4668 0000 C=DATA S=_DATA G=DGROUP M=SIGDATA ACBP=48 + 3B75:4668 0002 C=DATA S=_DATA G=DGROUP M=STKLEN ACBP=48 + 3B75:466A 0000 C=DATA S=_DATA G=DGROUP M=TOLOWER ACBP=48 + 3B75:466A 0000 C=DATA S=_DATA G=DGROUP M=TOUPPER ACBP=48 + 3B75:466A 0000 C=DATA S=_DATA G=DGROUP M=UNLINK ACBP=48 + 3B75:466A 0067 C=DATA S=_DATA G=DGROUP M=VPRINTER ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=VRAM ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=XCLOSE ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=_STPCPY ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=BIOSKEY ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=BRK ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=CLRSCR ACBP=48 + 3B75:46D2 0000 C=DATA S=_DATA G=DGROUP M=CORELEFT ACBP=48 + 3B75:46D2 0018 C=DATA S=_DATA G=DGROUP M=CRTINIT ACBP=48 + 3B75:46EA 0031 C=DATA S=_DATA G=DGROUP M=CVTFAK ACBP=48 + 3B75:471C 0000 C=DATA S=_DATA G=DGROUP M=FARHEAP ACBP=48 + 3B75:471C 0002 C=DATA S=_DATA G=DGROUP M=FBRK ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=FCORELFT ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=GOTOXY ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=GPTEXT ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=HARD ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=HARDERR ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=IOCTL ACBP=48 + 3B75:471E 0000 C=DATA S=_DATA G=DGROUP M=MOVETEXT ACBP=48 + 3B75:471E 0006 C=DATA S=_DATA G=DGROUP M=NEARHEAP ACBP=48 + 3B75:4724 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 + 3B75:4724 0000 C=DATA S=_DATA G=DGROUP M=SCREEN ACBP=48 + 3B75:4724 0000 C=DATA S=_DATA G=DGROUP M=SCROLL ACBP=48 + 3B75:4724 000E C=DATA S=_DATA G=DGROUP M=SETARGV ACBP=48 + 3B75:4732 0000 C=DATA S=_DATA G=DGROUP M=SETBLOCK ACBP=48 + 3B75:4732 0002 C=DATA S=_DATA G=DGROUP M=SETENVP ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=WHEREXY ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=ATOL ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=BDOS ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=CHMODA ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=CLOSE ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=CLOSEA ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=CREAT ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FCLOSE ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FFLUSH ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FINDFIRS ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FLENGTH ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FLUSHALL ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FOPEN ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FPRINTF ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=FSEEK ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=GETENV ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=LTOA1 ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=MEMCPY ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=MOVEDATA ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=OPEN ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=OPENA ACBP=48 + 3B75:4734 0000 C=DATA S=_DATA G=DGROUP M=PRINTF ACBP=48 + 3B75:4734 0001 C=DATA S=_DATA G=DGROUP M=PUTC ACBP=48 + 3B75:4736 0000 C=DATA S=_DATA G=DGROUP M=PUTS ACBP=48 + 3B75:4736 0000 C=DATA S=_DATA G=DGROUP M=READ ACBP=48 + 3B75:4736 0000 C=DATA S=_DATA G=DGROUP M=READU ACBP=48 + 3B75:4736 0004 C=DATA S=_DATA G=DGROUP M=SETVBUF ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=SPRINTF ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=STRCAT ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=STRLEN ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=STRTOL ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=WRITE ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=WRITEA ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=WRITEU ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=XFCLOSE ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=XFFLUSH ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=FMEMCMP ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=FMEMCPY ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=FMEMSET ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=FSTRCPY ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=FSTRICMP ACBP=48 + 3B75:473A 0000 C=DATA S=_DATA G=DGROUP M=FSTRLEN ACBP=48 + 3B75:473A 0000 C=DATA S=_CVTSEG G=DGROUP M=C0.ASM ACBP=48 + 3B75:473A 0002 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 + 3B75:473C 0002 C=DATA S=_CVTSEG G=DGROUP M=CVTFAK ACBP=48 + 3B75:473E 0000 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 + 3B75:473E 0000 C=DATA S=_SCNSEG G=DGROUP M=C0.ASM ACBP=48 + 3B75:473E 0006 C=DATA S=_SCNSEG G=DGROUP M=SCANTOD ACBP=48 + 3B75:4744 0006 C=DATA S=_SCNSEG G=DGROUP M=CVTFAK ACBP=48 + 3B75:474A 0000 C=CONST S=_CONST G=DGROUP M=C0.ASM ACBP=48 + 3B75:474A 0000 C=INITDATA S=_INIT_ G=DGROUP M=C0.ASM ACBP=48 + 3B75:474A 0006 C=INITDATA S=_INIT_ G=DGROUP M=FPINIT ACBP=48 + 3B75:4750 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETUPIO ACBP=48 + 3B75:4756 0006 C=INITDATA S=_INIT_ G=DGROUP M=CRTINIT ACBP=48 + 3B75:475C 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETARGV ACBP=48 + 3B75:4762 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETENVP ACBP=48 + 3B75:4768 0000 C=INITDATA S=_INITEND_ G=DGROUP M=C0.ASM ACBP=28 + 3B75:4768 0000 C=EXITDATA S=_EXIT_ G=DGROUP M=C0.ASM ACBP=48 + 3B75:4768 0006 C=EXITDATA S=_EXIT_ G=DGROUP M=FPINIT ACBP=48 + 3B75:476E 0000 C=EXITDATA S=_EXITEND_ G=DGROUP M=C0.ASM ACBP=28 + 3B75:476E 0000 C=BSS S=_BSS G=DGROUP M=C0.ASM ACBP=48 + 3B75:476E 0000 C=BSS S=_BSS G=DGROUP M=WOLFHACK.C ACBP=48 + 3B75:476E 0002 C=BSS S=_BSS G=DGROUP M=WL_MAIN.C ACBP=48 + 3B75:4770 0000 C=BSS S=_BSS G=DGROUP M=WL_TEXT.C ACBP=48 + 3B75:4770 0002 C=BSS S=_BSS G=DGROUP M=WL_MENU.C ACBP=48 + 3B75:4772 0000 C=BSS S=_BSS G=DGROUP M=WL_INTER.C ACBP=48 + 3B75:4772 0000 C=BSS S=_BSS G=DGROUP M=WL_GAME.C ACBP=48 + 3B75:4772 0000 C=BSS S=_BSS G=DGROUP M=WL_PLAY.C ACBP=48 + 3B75:4772 000A C=BSS S=_BSS G=DGROUP M=WL_DEBUG.C ACBP=48 + 3B75:477C 0000 C=BSS S=_BSS G=DGROUP M=WL_DRAW.C ACBP=48 + 3B75:477C 0004 C=BSS S=_BSS G=DGROUP M=WL_SCALE.C ACBP=48 + 3B75:4780 0000 C=BSS S=_BSS G=DGROUP M=WL_STATE.C ACBP=48 + 3B75:4780 0000 C=BSS S=_BSS G=DGROUP M=WL_AGENT.C ACBP=48 + 3B75:4780 0000 C=BSS S=_BSS G=DGROUP M=WL_ACT1.C ACBP=48 + 3B75:4780 0000 C=BSS S=_BSS G=DGROUP M=WL_ACT2.C ACBP=48 + 3B75:4780 0000 C=BSS S=_BSS G=DGROUP M=ID_CA.C ACBP=48 + 3B75:4780 0014 C=BSS S=_BSS G=DGROUP M=ID_IN.C ACBP=48 + 3B75:4794 0000 C=BSS S=_BSS G=DGROUP M=ID_MM.C ACBP=48 + 3B75:4794 0000 C=BSS S=_BSS G=DGROUP M=ID_PM.C ACBP=48 + 3B75:4794 0180 C=BSS S=_BSS G=DGROUP M=ID_SD.C ACBP=48 + 3B75:4914 0030 C=BSS S=_BSS G=DGROUP M=ID_US_1.C ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=ID_VL.C ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=ID_VH.C ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=ATAN ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=LDTRUNC ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=REALCVT ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=SCANTOD ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=XCVT ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=_POW10 ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=SIN ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=TAN ACBP=48 + 3B75:4944 0000 C=BSS S=_BSS G=DGROUP M=ATAN2 ACBP=48 + 3B75:4944 0080 C=BSS S=_BSS G=DGROUP M=ATEXIT ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=DOSFATTR ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=DOSWRITE ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=GETVECT ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=IOERROR ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=ISATTY ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=LONGTOA ACBP=48 + 3B75:49C4 0000 C=BSS S=_BSS G=DGROUP M=LSEEK ACBP=48 + 3B75:49C4 000D C=BSS S=_BSS G=DGROUP M=MKNAME ACBP=48 + 3B75:49D2 0000 C=BSS S=_BSS G=DGROUP M=READA ACBP=48 + 3B75:49D2 0000 C=BSS S=_BSS G=DGROUP M=SCANTOL ACBP=48 + 3B75:49D2 0000 C=BSS S=_BSS G=DGROUP M=SETUPIO ACBP=48 + 3B75:49D2 0004 C=BSS S=_BSS G=DGROUP M=SIGDATA ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=UNLINK ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=VPRINTER ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=VRAM ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=BIOSKEY ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=BRK ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=CORELEFT ACBP=48 + 3B75:49D6 0000 C=BSS S=_BSS G=DGROUP M=CRTINIT ACBP=48 + 3B75:49D6 000C C=BSS S=_BSS G=DGROUP M=HARDERR ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=IOCTL ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=SETBLOCK ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=ATOL ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=BDOS ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=CHMODA ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=CLOSEA ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=CREAT ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=FINDFIRS ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=FLENGTH ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=GETENV ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=MEMCPY ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=MOVEDATA ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=OPEN ACBP=48 + 3B75:49E2 0000 C=BSS S=_BSS G=DGROUP M=OPENA ACBP=48 + 3B75:49E2 0001 C=BSS S=_BSS G=DGROUP M=PUTC ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=READ ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=STRCAT ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=STRLEN ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=WRITEA ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=FMEMCMP ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=FMEMCPY ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=FMEMSET ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=FSTRCPY ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=FSTRICMP ACBP=48 + 3B75:49E4 0000 C=BSS S=_BSS G=DGROUP M=FSTRLEN ACBP=48 + 3B75:49E4 A5C9 C=BSS S=_COMDEF_ G=DGROUP M=WOLFHACK.C ACBP=48 + 3B75:EFAD 0000 C=BSSEND S=_BSSEND G=DGROUP M=C0.ASM ACBP=28 + 4A70:0000 0080 C=STACK S=_STACK G=(none) M=C0.ASM ACBP=74 + + Address Publics by Name + + 3B75:0000 idle DATASEG@ + 0000:02AF idle DGROUP@ + 1F75:2152 e086_Entry + 1F75:26E0 e086_Shortcut + 21ED:0306 e087_Entry + 21ED:03C6 e087_Shortcut + 21ED:0430 e087_Trap + 0000:FE32 idle FIARQQ + 0000:0E32 idle FICRQQ + 0000:5C32 Abs FIDRQQ + 0000:1632 Abs FIERQQ + 0000:0632 idle FISRQQ + 0000:A23D Abs FIWRQQ + 0000:4000 idle FJARQQ + 0000:C000 idle FJCRQQ + 0000:8000 idle FJSRQQ + 0000:1137 idle FTOL@ + 0000:1137 F_FTOL@ + 0000:02B6 F_LDIV@ + 0000:02DD F_LMOD@ + 0000:02D5 idle F_LUDIV@ + 0000:02E5 idle F_LUMOD@ + 0000:135D F_LXLSH@ + 0000:12E6 F_LXMUL@ + 0000:137E F_LXRSH@ + 0000:139E F_LXURSH@ + 0000:13BF F_PADA@ + 0000:1447 F_PADD@ + 0000:12FD F_PCMP@ + 0000:1403 F_PSBA@ + 0000:14A7 F_PSBP@ + 0000:1476 idle F_PSUB@ + 0000:131E F_SCOPY@ + 0000:14D2 F_SPUSH@ + 0000:02B6 LDIV@ + 0000:02DD idle LMOD@ + 0000:02D5 idle LUDIV@ + 0000:02E5 idle LUMOD@ + 0000:135D idle LXLSH@ + 0000:12E6 idle LXMUL@ + 0000:137E idle LXRSH@ + 0000:139E idle LXURSH@ + 0000:02B3 idle N_LDIV@ + 0000:02DA idle N_LMOD@ + 0000:02D2 idle N_LUDIV@ + 0000:02E2 idle N_LUMOD@ + 0000:135A N_LXLSH@ + 0000:137B idle N_LXRSH@ + 0000:139B idle N_LXURSH@ + 0000:13BC idle N_PADA@ + 0000:1444 N_PADD@ + 0000:1694 N_PCMP@ + 0000:1400 idle N_PSBA@ + 0000:14A4 N_PSBP@ + 0000:1473 idle N_PSUB@ + 0000:14CC idle N_SPUSH@ + 0000:13BF idle PADA@ + 0000:1447 idle PADD@ + 0000:12FD idle PCMP@ + 0000:1403 idle PSBA@ + 0000:14A7 idle PSBP@ + 0000:1476 idle PSUB@ + 0000:131E idle SCOPY@ + 0000:14D2 idle SPUSH@ + 0000:0297 _abort + 3B75:EE0F _abortprogram + 3B75:55B8 _actorat + 3B75:9C41 _AdLibPresent + 3B75:3293 idle _afilename + 3B75:E8AE _aftersort + 3B75:3289 idle _aheadname + 3B75:EAB0 _alBlock + 3B75:EAAC _alLengthLeft + 3B75:EAB6 _alNoCheck + 1B44:0D39 _alOut + 3B75:EAB2 _alSound + 3B75:EAA8 _alTimeCount + 3B75:EA98 _alZeroInst + 3B75:D9C4 _angle + 3B75:A4E0 _anglefrac + 3B75:52DA _areabyplayer + 3516:0000 _areaconnect + 1079:0070 _AsmRefresh + 0000:05E9 _atan + 0000:107C _atan2 + 0000:1163 idle _atexit + 0000:3285 idle _atoi + 0000:3215 _atol + 3B75:192C idle _attackinfo + 3B75:E01B _audiohandle + 3B75:E021 _audiohuffman + 3B75:324A _audioname + 3B75:A052 _audiosegs + 3B75:E819 _audiostarts + 14D6:0761 _A_DeathScream + 14D6:12D4 idle _A_HitlerMorph + 14D6:1366 idle _A_MechaSound + 14D6:1398 idle _A_Slurpie + 14D6:000D idle _A_Smoke + 14D6:2092 idle _A_StartDeathCam + 3B75:9954 _backcolor + 062D:0690 idle _BackPage + 10BF:000E idle _BadScale + 3B75:4C52 _basedist + 0000:3292 _bdos + 3B75:E8B2 _beforesort + 0000:1F4C _bioskey + 0B05:060A idle _BJ_Breathe + 3B75:9955 _blockstarts + 3B75:E894 _bombonerror + 3B75:A41A _bonuscount + 3B75:EE13 _bordercolor + 06CD:02A6 idle _BossKey + 0000:1FC4 idle _brk + 3B75:E826 _btnstate + 3B75:EFA9 _bufferheight + 3B75:52D2 _bufferofs + 3B75:E824 _bufferseg + 3B75:EFAB _bufferwidth + 10BF:01E4 idle _BuildCompScale + 0491:0D31 idle _BuildTables + 3B75:EE0D _Button0 + 3B75:EE0B _Button1 + 3B75:A4FC _buttonheld + 3B75:1290 _buttonjoy + 3B75:1288 _buttonmouse + 3B75:1278 _buttonscan + 3B75:A4E8 _buttonstate + 062D:06BA idle _CacheLayoutGraphics + 06CD:3212 _CacheLump + 0F7A:02FE idle _CalcHeight + 0491:0E89 idle _CalcProjection + 0F7A:0A9A idle _CalcRotate + 0F7A:0DCB _CalcTics + 06CD:171A idle _CalibrateJoystick + 1710:0498 idle _CAL_CarmackExpand + 1710:0E6E idle _CAL_ExpandGrChunk + 1710:0090 idle _CAL_GetGrChunkLength + 1710:032B idle _CAL_HuffExpand + 1710:02D3 idle _CAL_OptimizeNodes + 1710:0BBC idle _CAL_SetupAudioFile + 1710:07BF idle _CAL_SetupGrFile + 1710:09F4 idle _CAL_SetupMapFile + 1710:0D3A _CA_CacheAudioChunk + 1710:0F45 _CA_CacheGrChunk + 1710:1181 _CA_CacheMap + 1710:13F0 _CA_CacheMarks + 1710:108C _CA_CacheScreen + 1710:16FC idle _CA_CannotOpen + 1710:136E idle _CA_ClearAllMarks + 1710:134D idle _CA_ClearMarks + 1710:007F idle _CA_CloseDebug + 1710:1326 _CA_DownLevel + 1710:00F0 _CA_FarRead + 1710:013C _CA_FarWrite + 3B75:9EE7 _ca_levelbit + 3B75:E821 _ca_levelnum + 1710:0DE9 _CA_LoadAllSounds + 1710:0252 idle _CA_LoadFile + 1710:005B idle _CA_OpenDebug + 1710:0188 idle _CA_ReadFile + 1710:05B6 idle _CA_RLEWCompress + 1710:0703 idle _CA_RLEWexpand + 1710:13C2 _CA_SetAllPurge + 1710:1394 idle _CA_SetGrPurge + 1710:0D11 _CA_Shutdown + 1710:0CF0 _CA_Startup + 1710:12E1 _CA_UpLevel + 1710:01FA _CA_WriteFile + 0DA6:060B _CenterWindow + 3B75:9894 _centerx + 06CD:41C8 _CheckForEpisodes + 0B05:13BD _CheckHighScore + 0490:0006 _CheckIs386 + 0DA6:0639 idle _CheckKeys + 114B:10B4 _CheckLine + 06CD:4104 idle _CheckPause + 14D6:1FF3 idle _CheckPosition + 114B:1365 idle _CheckSight + 12D6:0000 idle _CheckWeaponChange + 3B75:E017 _chunkcomplen + 3B75:E013 _chunkexplen + 3B75:D864 _ChunksInFile + 06CD:3431 idle _CleanupControlPanel + 0C63:017F _ClearMemory + 06CD:31F5 _ClearMScreen + 0DA6:0D2C idle _ClearPaletteShifts + 0B05:000E _ClearSplitVWB + 12D6:09BD idle _ClipMove + 0000:32BD _close + 1402:037E idle _CloseDoor + 0000:1FE0 _clrscr + 12D6:0BDC idle _Cmd_Fire + 12D6:0C2E idle _Cmd_Use + 3B75:0418 idle _color_hlite + 3B75:0420 idle _color_norml + 3B75:D844 _compatability + 3B75:00EE _configname + 06CD:3DA8 idle _Confirm + 1402:01C4 idle _ConnectAreas + 12D6:0034 idle _ControlMovement + 3B75:E842 _Controls + 3B75:A4FA _controlx + 3B75:A4F8 _controly + 0000:2009 _coreleft + 3B75:1694 _costable + 0EC1:00C9 idle _CountObjects + 06CD:2D24 idle _CP_ChangeView + 06CD:02F3 idle _CP_CheckQuick + 06CD:1977 idle _CP_Control + 06CD:0865 idle _CP_EndGame + 06CD:1091 idle _CP_LoadGame + 06CD:092F idle _CP_NewGame + 06CD:2F41 idle _CP_Quit + 06CD:13B7 idle _CP_SaveGame + 06CD:0C24 idle _CP_Sound + 06CD:08C1 _CP_ViewScores + 0000:331C _creat + 3B75:03F0 idle _CtlItems + 24F0:0000 idle _CtlMenu + 3B75:EE09 _CursorBad + 3B75:EE07 _CursorX + 3B75:EE05 _CursorY + 3B75:03FA idle _CusItems + 2543:0000 idle _CusMenu + 06CD:2002 idle _CustomControls + 114B:0FB1 _DamageActor + 3B75:A41C _damagecount + 3B75:E81D _debughandle + 0EC1:07BB _DebugKeys + 0EC1:0004 idle _DebugMemory + 3B75:A4DC _DebugOk + 06CD:20F8 idle _DefineJoyBtns + 06CD:213E idle _DefineKeyBtns + 06CD:2184 idle _DefineKeyMove + 06CD:20B3 idle _DefineMouseBtns + 3B75:E840 _DemoBuffer + 3B75:A2AA _demobuffer + 0491:1770 idle _DemoLoop + 3B75:335E idle _DemoMode + 3B75:1204 _demoname + 3B75:E83E _DemoOffset + 3B75:A2B4 _demoplayback + 3B75:A2B0 _demoptr + 3B75:A2B6 _demorecord + 3B75:E83C _DemoSize + 3B75:181E idle _diagonal + 0C63:0FEF idle _Died + 3B75:ECD3 _DigiLastEnd + 3B75:ECD5 _DigiLastStart + 3B75:ECD9 _DigiLeft + 3B75:D848 _DigiList + 3B75:9B89 _DigiMap + 3B75:9C39 _DigiMode + 3B75:ECED _DigiNumber + 3B75:ECD7 _DigiPage + 3B75:ED05 _DigiPlaying + 3B75:ECE9 _DigiPriority + 3B75:00DC _dirangle + 3B75:46E1 _directvideo + 3B75:1270 _dirscan + 3B75:1B38 idle _dirtable + 0491:041B idle _DiskFlopAnim + 3B75:9D4C _displayofs + 0DA6:0E7E idle _DoActor + 0491:044A idle _DoChecksum + 0491:11A6 idle _DoJukebox + 1402:07E6 idle _DoorClosing + 3B75:D85A _doornum + 3B75:86B8 _doorobjlist + 1402:0656 idle _DoorOpen + 1402:0684 idle _DoorOpening + 3B75:5326 _doorposition + 0C63:0A23 _DrawAllPlayBorder + 0C63:09F1 _DrawAllPlayBorderSides + 12D6:0542 _DrawAmmo + 06CD:2EB3 idle _DrawChangeView + 06CD:1E13 idle _DrawCtlScreen + 06CD:2BF6 idle _DrawCustJoy + 06CD:2C8A idle _DrawCustKeybd + 06CD:2CF2 idle _DrawCustKeys + 06CD:2B4F idle _DrawCustMouse + 06CD:27F7 idle _DrawCustomScreen + 12D6:01FE _DrawFace + 06CD:3A15 idle _DrawGun + 06CD:39D1 idle _DrawHalfStep + 12D6:033E _DrawHealth + 0B05:11C2 _DrawHighScores + 12D6:04B2 _DrawKeys + 12D6:03DD _DrawLevel + 12D6:03FC _DrawLives + 06CD:125D idle _DrawLoadSaveScreen + 06CD:0FFA idle _DrawLSAction + 06CD:01E9 idle _DrawMainMenu + 06CD:3B11 _DrawMenu + 06CD:4146 idle _DrawMenuGun + 06CD:1A92 idle _DrawMouseSens + 06CD:0AA0 idle _DrawNewEpisode + 06CD:0B66 idle _DrawNewGame + 06CD:0C08 idle _DrawNewGameDiff + 06CD:32AA idle _DrawOutline + 044F:027F idle _DrawPlanes + 0C63:0A56 _DrawPlayBorder + 0C63:095C idle _DrawPlayBorderSides + 0F7A:0D2B idle _DrawPlayerWeapon + 0C63:0B2E _DrawPlayScreen + 0F7A:0B17 idle _DrawScaleds + 12D6:043A _DrawScore + 06CD:0DD5 idle _DrawSoundMenu + 044F:0032 idle _DrawSpans + 06CD:417D _DrawStripes + 12D6:0497 _DrawWeapon + 06CD:3270 _DrawWindow + 114B:0C16 idle _DropItem + 3B75:A420 _dummyobj + 3B75:0E74 idle _ElevatorBackTo + 3B75:352A idle _EMMDriverName + 3B75:E8F0 _EMSAvail + 3B75:E8EE _EMSHandle + 3B75:E8D2 _EMSList + 3B75:E8EC _EMSPageFrame + 3B75:A292 _EMSPagesAvail + 3B75:E8C0 _EMSPagesUsed + 3B75:E8EA _EMSPhysicalPage + 3B75:A296 _EMSPresent + 3B75:0330 idle _endextern + 3B75:0341 _endfilename + 248B:0000 idle _endStrings + 062D:0957 _EndText + 06CD:21CA idle _EnterCtrlData + 3B75:4732 _environ + 3B75:0428 idle _EpisodeSelect + 06CD:3953 idle _EraseGun + 3B75:00C3 _errno + 0000:12AB _exit + 3B75:A04D _extension + 3B75:A50C _extravbls + 3B75:A4DE _facecount + 0000:273A _farcoreleft + 0000:2319 _farfree + 3B75:E8A8 _farheap + 0000:2423 _farmalloc + 3B75:8638 _farmapylookup + 0000:2580 idle _farrealloc + 0F7A:040E _FarScalePost + 3B75:D866 _farthest + 3B75:EE11 _fastpalette + 0000:338E _fclose + 0000:340F _fflush + 0000:34F0 _filelength + 0000:3490 _findfirst + 0000:34C3 _findnext + 35DD:0000 _finetangent + 0C63:0C31 idle _FinishDemoRecord + 0DA6:0E50 _FinishPaletteShifts + 0491:1076 idle _FinishSignon + 114B:1471 idle _FirstSighting + 0F7A:000C _FixedByFrac + 044F:000A idle _FixedMul + 0F7A:0E2E _FixOfs + 06CD:2647 idle _FixupCustom + 1E99:07DA _FizzleFade + 3B75:A2C6 _fizzlein + 0000:3531 _flushall + 3B75:9898 _focallength + 3B75:D9CE _focaltx + 3B75:D9CC _focalty + 3B75:9D4B _fontcolor + 3B75:9D49 _fontnumber + 0000:36EC _fopen + 0000:370B _fprintf + 0000:3BB4 _fputc + 0000:3CEA idle _fputchar + 3B75:A4E4 _frameon + 0000:2A93 _free + 3B75:168A _freelatch + 06CD:4099 _FreeMusic + 0000:377E _fseek + 0000:37E6 idle _ftell + 3B75:D9DA _fullscalefarcall + 3B75:A414 _funnyticount + 0C63:1229 _GameLoop + 3B75:2F4A _gamepal + 3B75:ED09 _Games + 3B75:95C0 _gamestate + 3B75:326B idle _gdictname + 12D6:05AA _GetBonus + 0000:38AD _getenv + 0DA6:0A52 _GetNewActor + 0000:27D3 _gettext + 0000:133A _getvect + 3B75:3261 idle _gfilename + 3B75:3257 idle _gheadname + 12D6:0560 idle _GiveAmmo + 12D6:041A idle _GiveExtraMan + 12D6:0595 idle _GiveKey + 12D6:045A _GivePoints + 12D6:0517 _GiveWeapon + 3B75:A2A6 _globalsoundx + 3B75:A2A2 _globalsoundy + 3B75:A510 _godmode + 3B75:E009 _gotgatgun + 0000:278A _gotoxy + 1710:000B idle _GRFILEPOS + 3B75:E01F _grhandle + 3B75:E41D _grhuffman + 36BE:0000 _grneeded + 3B75:9D4E _grsegs + 3B75:E81B _grstarts + 12D6:0EC0 idle _GunAttack + 3B75:ECFF _HackCount + 3B75:00DA idle _halfheight + 062D:00FB idle _HandleCommand + 062D:03BD idle _HandleCtrls + 06CD:344B _HandleMenu + 062D:03DF idle _HandleWord + 0000:287B _harderr + 0000:288D idle _hardresume + 0000:289B idle _hardretn + 12D6:03B6 _HealSelf + 3B75:9604 _heightnumerator + 3B75:0332 idle _helpextern + 3B75:0334 idle _helpfilename + 062D:08C9 idle _HelpScreens + 0F7A:0659 _HitHorizDoor + 0F7A:086A _HitHorizPWall + 0F7A:0536 _HitHorizWall + 0F7A:0760 _HitVertDoor + 0F7A:094B _HitVertPWall + 0F7A:0416 _HitVertWall + 3B75:5428 _horizwall + 3B75:A048 _ingame + 0DA6:0A0B _InitActorList + 1402:01FD _InitAreas + 0491:1185 idle _InitDigiMap + 1402:0225 _InitDoorList + 0491:13C2 idle _InitGame + 0DA6:0BBA _InitRedShifts + 1402:000C _InitStaticList + 1885:01EC _INL_GetJoyDelta + 3B75:DDF5 _insetupscaling + 06CD:2FD3 _IntroScreen + 1885:0B0E _IN_Ack + 1885:0AB4 _IN_CheckAck + 1885:06D7 _IN_ClearKeysDown + 1885:0659 idle _IN_Default + 1885:0151 _IN_GetJoyAbs + 1885:035A idle _IN_GetJoyButtonsDB + 06CD:40BC idle _IN_GetScanName + 1885:0B7B _IN_JoyButtons + 1885:0B64 _IN_MouseButtons + 1885:06F6 _IN_ReadControl + 1885:0A18 idle _IN_SetControlType + 1885:06C5 idle _IN_SetKeyHook + 1885:04CB _IN_SetupJoy + 1885:0699 _IN_Shutdown + 1885:0A64 _IN_StartAck + 1885:05B8 _IN_Startup + 1885:0B1F _IN_UserInput + 1885:0A47 _IN_WaitForASCII + 1885:0A29 idle _IN_WaitForKey + 0000:29CF _ioctl + 3B75:989C _IsA386 + 0000:153E _isatty + 0000:390C _itoa + 0490:000A _jabhack2 + 3B75:00FC idle _JHParmStrings + 3B75:E84A _JoyDefs + 3B75:54AE _joypadenabled + 3B75:E83A _JoyPadPresent + 3B75:9C43 _JoysPresent + 3B75:54B0 _joystickenabled + 3B75:54AA _joystickport + 3B75:54AC _joystickprogressive + 3B75:3354 idle _KbdDefs + 3B75:9C49 _Keyboard + 114B:0CB1 idle _KillActor + 3B75:A2B8 _killerobj + 12D6:0E27 idle _KnifeAttack + 3B75:A04A _LastASCII + 3B75:E007 _LastAttacker + 3B75:A2AC _lastdemoptr + 3B75:E00F _lastdoorobj + 3B75:D9D2 _lastintercept + 3B75:B516 _lastobj + 3B75:9EE0 _LastScan + 3B75:D9D6 _lastside + 3B75:8938 _laststatobj + 3B75:D9D0 _lasttilehit + 3B75:9EEA _lasttimecount + 1E99:065C _LatchDrawPic + 12D6:02AF idle _LatchNumber + 3B75:A2D0 _latchpics + 3B75:9E8C _layoutdone + 3B75:A2A0 _leftchannel + 3B75:9EBA _leftmargin + 3B75:3FCE idle _leftmasks + 3B75:ECE7 _LeftPosition + 3B75:1042 idle _lefttable + 0B05:066B _LevelCompleted + 3B75:9904 _LevelRatios + 3B75:DDE9 _linecmds + 3B75:DDE5 _linescale + 3B75:EFA5 _linewidth + 3B75:9B83 _loadedgame + 1E99:06B9 _LoadLatchMem + 0491:08D5 _LoadTheGame + 3B75:ECDD _LocalTime + 0000:15E9 _lseek + 3B75:03E6 idle _LSItems + 2528:0000 idle _LSMenu + 0000:394E _ltoa + 3B75:D842 _madenoise + 0491:19AD _main + 3B75:03D2 _MainItems + 3B75:E9BC _MainMemPages + 3B75:E8F4 _MainMemUsed + 24B8:0000 _MainMenu + 3B75:E8F2 _MainPagesAvail + 3B75:E8BE _MainPagesUsed + 3B75:EA84 _MainPresent + 0000:2B62 _malloc + 3B75:E01D _maphandle + 3B75:A398 _mapheaderseg + 3B75:A2CA _mapheight + 3B75:171A _mapmasks1 + 3B75:173A _mapmasks2 + 3B75:175A _mapmasks3 + 3B75:A29C _mapon + 3B75:D850 _maporgx + 3B75:D84E _maporgy + 0489:000A _MapRow + 3B75:A410 _mapsegs + 3B75:A2CC _mapwidth + 3B75:A45C _mapwidthtable + 3B75:DDE2 _mask1 + 3B75:DDE1 _mask2 + 3B75:DDE0 _mask3 + 3B75:DDE3 _maskword + 0000:0F29 _matherr + 3B75:DDF7 _maxscale + 3B75:D9D8 _maxscaleshl2 + 3B75:9608 _maxslope + 3B75:05F2 idle _mbarray + 0000:3973 _memcpy + 06CD:3ED3 _Message + 3B75:327F idle _mfilename + 3B75:3275 idle _mheadname + 3B75:D9C6 _midangle + 3B75:1690 idle _mindist + 3B75:9602 _minheightdiv + 3B75:49FA _mirrorofs + 3908:0000 _mmblocks + 3B75:A29A _mmerror + 3B75:E89E _mmfree + 3B75:E8A2 _mmhead + 3B75:9E78 _mminfo + 193E:0001 idle _MML_CheckForXMS + 193E:0242 idle _MML_ClearBlock + 193E:001C idle _MML_SetupXMS + 193E:008B idle _MML_ShutdownXMS + 193E:00BC _MML_UseSpace + 3B75:E896 _mmnew + 3B75:E89A _mmrover + 3B75:E8AC _mmstarted + 193E:0E7D _MM_BombOnError + 193E:0C67 idle _MM_DumpData + 193E:0780 _MM_FreePtr + 193E:04C3 _MM_GetPtr + 193E:08C8 _MM_SetLock + 193E:0847 _MM_SetPurge + 193E:0B0A idle _MM_ShowMemory + 193E:049B _MM_Shutdown + 193E:094E _MM_SortMem + 193E:02A8 _MM_Startup + 193E:0DFF _MM_TotalFree + 193E:0D98 _MM_UnusedMemory + 3B75:988C _mouseadjustment + 3B75:E836 _MouseDownCount + 3B75:54B2 _mouseenabled + 3B75:9C47 _MousePresent + 06CD:1BD1 idle _MouseSensitivity + 0000:3992 _movedata + 1402:0922 _MoveDoors + 114B:09CE _MoveObj + 3B75:0622 idle _moveorder + 1402:0B29 _MovePWalls + 0000:29F6 _movetext + 3B75:49EE _mr_count + 3B75:49E4 _mr_dest + 3B75:49F0 _mr_rowofs + 3B75:49E8 _mr_xfrac + 3B75:49EC _mr_xstep + 3B75:49E6 _mr_yfrac + 3B75:49EA _mr_ystep + 0491:111B _MS_CheckParm + 3B75:01C4 idle _MusicItems + 245B:0000 idle _MusicMenu + 3B75:9C37 _MusicMode + 3B75:E8A6 _nearheap + 3B75:85B8 _nearmapylookup + 3B75:ED01 _NeedsDigitized + 3B75:ED07 _NeedsMusic + 3B75:95BC _new + 3B75:0404 idle _NewEitems + 2500:0000 idle _NewEmenu + 0491:03CA _NewGame + 3B75:040E idle _NewItems + 062D:0362 idle _NewLine + 251D:0000 idle _NewMenu + 114B:00B0 _NewState + 0491:1642 _NewViewSize + 3B75:ECF9 _nextsoundpos + 3B75:A50E _noclip + 0B05:1513 idle _NonShareware + 3B75:989E _nospr + 3B75:01FC idle _nosprtxt + 3B75:9B81 _NoWait + 3B75:D84A _NumDigi + 3B75:9ED8 _numpages + 3B75:E88E _numUMBs + 3B75:B518 _obj + 3B75:A41E _objcount + 3B75:B514 _objfreelist + 3B75:B51A _objlist + 3B75:E011 _oldsoundmode + 0000:39DF _open + 1402:0355 _OpenDoor + 1402:05E1 _OperateDoor + 3B75:180C idle _opposite + 3B75:05FE idle _order + 3B75:3520 idle _PageFile + 3B75:3512 _PageFileName + 062D:0490 idle _PageLayout + 3B75:9EDA _pagenum + 3B45:0000 _palette1 + 3B15:0000 _palette2 + 3B75:A418 _palshifted + 062D:0021 idle _ParseNumber + 062D:0075 idle _ParsePicCommand + 062D:0093 idle _ParseTimedCommand + 0491:036B idle _Patch386 + 3B75:A04B _Paused + 3B75:ECBE _pcLastSample + 3B75:ECB6 _pcLengthLeft + 3B75:49F2 _pcos + 3B75:ECBA _pcSound + 3B75:EAB8 _pcSoundLookup + 3B75:EFA7 _pelpan + 0B05:0448 _PG13 + 3B75:9E8E _picdelay + 3B75:9EE8 _pickquick + 3B75:9E90 _picnum + 3B75:9EE5 _pictable + 0EC1:01C5 _PicturePause + 3B75:9E94 _picx + 3B75:9E92 _picy + 3B75:960C _pixelangle + 3B75:3FCA idle _pixmasks + 3B75:D9B0 _pixx + 1402:00E6 _PlaceItemType + 224A:0000 _planepics + 3B75:4AC2 _planeylookup + 0C63:0E72 _PlayDemo + 3B75:95BA _player + 3B75:E003 _playerxmove + 3B75:DFFF _playerymove + 0DA6:101B _PlayLoop + 0C63:00FB _PlaySoundLocGlobal + 3B75:95BE _playstate + 3B75:DFFD _plux + 3B75:DFFB _pluy + 3B75:E8B8 _PMFrameCount + 1A26:06F7 idle _PML_ClosePageFile + 1A26:0AFB idle _PML_GetAPageBuffer + 1A26:0731 idle _PML_GetEMSAddress + 1A26:0C08 idle _PML_GetPageFromXMS + 1A26:0866 idle _PML_GiveLRUPage + 1A26:0907 idle _PML_GiveLRUXMSPage + 1A26:0C8C idle _PML_LoadPage + 1A26:0008 idle _PML_MapEMS + 1A26:0510 idle _PML_OpenPageFile + 1A26:0979 idle _PML_PutPageInXMS + 1A26:0490 idle _PML_ReadFromFile + 1A26:0160 idle _PML_ShutdownEMS + 1A26:0469 idle _PML_ShutdownMainMem + 1A26:02A4 idle _PML_ShutdownXMS + 1A26:002B idle _PML_StartupEMS + 1A26:03EC idle _PML_StartupMainMem + 1A26:0184 idle _PML_StartupXMS + 1A26:0A28 idle _PML_TransferPageSpace + 1A26:01F7 idle _PML_XMSCopy + 3B75:E8BC _PMNumBlocks + 3B75:D85C _PMPages + 3B75:E8C6 _PMPanicMode + 3B75:E8B6 _PMSegPages + 3B75:D860 _PMSoundStart + 3B75:D862 _PMSpriteStart + 3B75:E8C8 _PMStarted + 3B75:E8C4 _PMThrashing + 1A26:02F3 _PM_CheckMainMem + 1A26:0CDE _PM_GetPage + 1A26:080D _PM_GetPageAddress + 1A26:1036 _PM_NextFrame + 1A26:0DD0 _PM_Preload + 1A26:10B0 idle _PM_Reset + 1A26:02CA _PM_SetMainMemPurge + 1A26:0DA0 _PM_SetPageLock + 1A26:11CF _PM_Shutdown + 1A26:111E _PM_Startup + 0DA6:03D3 idle _PollControls + 0DA6:0078 idle _PollJoystickButtons + 0DA6:0253 idle _PollJoystickMove + 0DA6:000D idle _PollKeyboardButtons + 0DA6:0109 idle _PollKeyboardMove + 0DA6:0034 idle _PollMouseButtons + 0DA6:0215 idle _PollMouseMove + 3B75:D856 _postsource + 3B75:D852 _postwidth + 3B75:D854 _postx + 0000:0F1E _pow10 + 0B05:110F _PreloadGraphics + 0B05:106E idle _PreloadUpdate + 06CD:2BAC idle _PrintCustJoy + 06CD:2C53 idle _PrintCustKeybd + 06CD:2CBC idle _PrintCustKeys + 06CD:2B05 idle _PrintCustMouse + 0000:3B84 _printf + 06CD:1327 idle _PrintLSEntry + 3B75:A046 _PrintX + 3B75:9B7F _PrintY + 3B75:E81F _profilehandle + 14D6:005B idle _ProjectileTryMove + 3B75:49F6 _psin + 1402:0975 _PushWall + 0000:3EA4 _puts + 0000:2827 _puttext + 3B75:52D4 _pwalldir + 3B75:53A6 _pwallpos + 3B75:5324 _pwallstate + 3B75:52D8 _pwallx + 3B75:52D6 _pwally + 3B75:9EE3 _px + 3B75:9EE1 _py + 0491:168A _Quit + 3B75:0102 idle _radtoint + 0000:3FBD _read + 06CD:3C46 idle _ReadAnyControl + 0491:000D idle _ReadConfig + 0000:2CBB idle _realloc + 0C63:0D16 _RecordDemo + 1402:0176 idle _RecursiveConnect + 37E8:0000 _redshifts + 0DA6:0AB4 idle _RemoveObj + 3B75:A29E _rightchannel + 3B75:9E9C _rightmargin + 3B75:3FD2 idle _rightmasks + 3B75:ECE5 _RightPosition + 3B75:0E80 idle _righttable + 062D:000E idle _RipToEOL + 244A:0002 idle _rndtable + 3B75:9E96 _rowon + 3B75:A4E2 _running + 3B75:9EEE _SaveGameNames + 3B75:A030 _SaveGamesAvail + 3B75:0436 idle _SaveName + 0491:0497 _SaveTheGame + 3B75:ED03 _SBProPresent + 0000:1FD0 idle _sbrk + 3B75:52CA _scale + 3B75:DDF9 _scaledirectory + 10BF:0339 idle _ScaleLine + 0F7A:0397 idle _ScalePost + 10BF:0487 _ScaleShape + 0C63:019A idle _ScanInfoPlane + 3B75:3D1A _Scores + 3B75:D846 _screenfaded + 3B75:1684 _screenloc + 3B75:9896 _screenofs + 3B75:3FC4 _screenseg + 1B44:0B88 _SDL_DigitizedDone + 1CD6:0012 _SDL_IndicatePC + 1B44:08CF idle _SDL_LoadDigiSegment + 1B44:0904 idle _SDL_PlayDigiSegment + 1B44:0511 idle _SDL_SBSetDMA + 1CD6:000A _SDL_SetDS + 1B44:0C56 idle _SDL_SetupDigi + 1CD6:001E _SDL_t0ExtremeAsmService + 1CD6:00B8 _SDL_t0FastAsmService + 1CD6:031A _SDL_t0SlowAsmService + 1B44:1525 idle _SD_Default + 1B44:18FE idle _SD_FadeOutMusic + 1B44:185F _SD_MusicOff + 1B44:1854 _SD_MusicOn + 1B44:190F idle _SD_MusicPlaying + 1B44:0AC4 idle _SD_PlayDigitized + 1B44:1618 _SD_PlaySound + 1B44:09F0 _SD_Poll + 1B44:1601 _SD_PositionSound + 1B44:0BF2 _SD_SetDigiDevice + 1B44:1184 _SD_SetMusicMode + 1B44:0A7C _SD_SetPosition + 1B44:10F4 _SD_SetSoundMode + 1B44:15EF idle _SD_SetUserHook + 1B44:1594 _SD_Shutdown + 1B44:17C9 _SD_SoundPlaying + 1B44:18AC _SD_StartMusic + 1B44:11D6 _SD_Startup + 1B44:094E _SD_StopDigitized + 1B44:1810 _SD_StopSound + 1B44:1847 _SD_WaitSoundDone + 114B:07AA _SelectChaseDir + 114B:067A _SelectDodgeDir + 14D6:1A4F idle _SelectPathDir + 114B:0904 _SelectRunDir + 0000:3170 _setblock + 044F:0176 idle _SetPlaneViewSize + 0C63:0008 idle _SetSoundLoc + 06CD:3BDF idle _SetTextColor + 06CD:330F idle _SetupControlPanel + 0C63:06A6 _SetupGameLevel + 10BF:001F _SetupScaling + 0491:0FC1 idle _SetupWalls + 0000:3FC0 _setvbuf + 0000:1349 _setvect + 0491:156F _SetViewSize + 0EC1:02EE idle _ShapeTest + 3B75:9892 _shootdelta + 06CD:41B7 idle _ShootSnd + 062D:07A6 idle _ShowArticle + 0491:15F7 _ShowViewSize + 0491:0D09 _ShutdownId + 114B:1784 _SightPlayer + 255E:0000 _signon + 0491:0FE8 idle _SignonScreen + 10BF:07A0 _SimpleScaleShape + 0000:0F4F _sin + 3B75:A512 _singlestep + 356C:0000 _sintable + 3B75:DDED _slinewidth + 3B75:DDEF _slinex + 3B75:03DC idle _SndItems + 24D0:0000 idle _SndMenu + 3B75:1298 idle _songs + 3B75:9C3D _SoundBlasterPresent + 3B75:9C3B _SoundMode + 3B75:ECEF _SoundNumber + 3B75:A2CE _SoundPositioned + 3B75:ECEB _SoundPriority + 3B75:9C3F _SoundSourcePresent + 3B75:0434 idle _SoundStatus + 3B75:ECFD _SoundTable + 3B75:4F72 _spanstart + 14D6:1EAA _SpawnBJVictory + 14D6:0500 _SpawnBoss + 14D6:04E0 _SpawnDeadGuard + 1402:025D _SpawnDoor + 14D6:1204 _SpawnFakeHitler + 14D6:0AAA _SpawnFat + 14D6:0950 _SpawnGhosts + 14D6:0A42 _SpawnGift + 14D6:0553 _SpawnGretel + 14D6:126C _SpawnHitler + 114B:0001 _SpawnNewObj + 14D6:05A6 _SpawnPatrol + 12D6:0D87 _SpawnPlayer + 14D6:09DA _SpawnSchabbs + 14D6:032D _SpawnStand + 1402:0017 _SpawnStatic + 3B75:A2BC _spearangle + 3B75:A2BA _spearflag + 3B75:A2C2 _spearx + 3B75:A2BE _speary + 3B75:A514 _spotvis + 0000:40C0 _sprintf + 3B75:EA96 _sqActive + 3B75:EA92 _sqHack + 3B75:EA8C _sqHackLen + 3B75:EA8E _sqHackPtr + 3B75:EA8A _sqHackSeqLen + 3B75:EA86 _sqHackTime + 3B75:ECCF _ssActive + 3B75:ECCD _ssControl + 3B75:ECC9 _ssData + 3B75:ECFB _ssIsTandy + 3B75:ECBF _ssLengthLeft + 3B75:ECD1 _ssNoCheck + 3B75:ECC7 _ssOff + 3B75:ECC8 _ssOn + 3B75:39A0 idle _ssPort + 3B75:ECC3 _ssSample + 3B75:ECCB _ssStatus + 0DA6:0D39 _StartBonusFlash + 06CD:400C _StartCPMusic + 0DA6:0D44 _StartDamageFlash + 0C63:0BDA idle _StartDemoRecord + 3B75:A02E _StartGame + 3B75:9890 _startgame + 3B75:1B4A idle _starthitpoints + 0DA6:0B3E _StartMusic + 3B75:1A1E idle _statinfo + 3B75:893A _statobjlist + 12D6:01A5 idle _StatusDrawPic + 3B75:DDF1 _stepbytwo + 3B75:4DE2 _stepscale + 0DA6:0B03 _StopMusic + 3B75:98B4 _str + 3B75:98A0 _str2 + 3B75:1A0C idle _strafeangle + 0000:40F9 _strcat + 0000:4132 _strlen + 0000:4176 _strtol + 3B75:191C idle _s_attack + 3B75:2EB4 idle _s_bjjump1 + 3B75:2EC4 idle _s_bjjump2 + 3B75:2ED4 idle _s_bjjump3 + 3B75:2EE4 idle _s_bjjump4 + 3B75:2E54 idle _s_bjrun1 + 3B75:2E64 idle _s_bjrun1s + 3B75:2E74 idle _s_bjrun2 + 3B75:2E84 idle _s_bjrun3 + 3B75:2E94 idle _s_bjrun3s + 3B75:2EA4 idle _s_bjrun4 + 3B75:1DDA _s_blinkychase1 + 3B75:1DEA idle _s_blinkychase2 + 3B75:1C4A idle _s_boom1 + 3B75:1C5A idle _s_boom2 + 3B75:1C6A idle _s_boom3 + 3B75:246A _s_bosschase1 + 3B75:247A idle _s_bosschase1s + 3B75:248A idle _s_bosschase2 + 3B75:249A idle _s_bosschase3 + 3B75:24AA idle _s_bosschase3s + 3B75:24BA idle _s_bosschase4 + 3B75:24CA _s_bossdie1 + 3B75:24DA idle _s_bossdie2 + 3B75:24EA idle _s_bossdie3 + 3B75:24FA idle _s_bossdie4 + 3B75:250A idle _s_bossshoot1 + 3B75:251A idle _s_bossshoot2 + 3B75:252A idle _s_bossshoot3 + 3B75:253A idle _s_bossshoot4 + 3B75:254A idle _s_bossshoot5 + 3B75:255A idle _s_bossshoot6 + 3B75:256A idle _s_bossshoot7 + 3B75:257A idle _s_bossshoot8 + 3B75:245A idle _s_bossstand + 3B75:1E3A idle _s_clydechase1 + 3B75:1E4A idle _s_clydechase2 + 3B75:2EF4 _s_deathcam + 3B75:1F0A _s_dogchase1 + 3B75:1F1A idle _s_dogchase1s + 3B75:1F2A idle _s_dogchase2 + 3B75:1F3A idle _s_dogchase3 + 3B75:1F4A idle _s_dogchase3s + 3B75:1F5A idle _s_dogchase4 + 3B75:1F9A idle _s_dogdead + 3B75:1F6A _s_dogdie1 + 3B75:1F7A idle _s_dogdie2 + 3B75:1F8A idle _s_dogdie3 + 3B75:1EBA idle _s_dogjump1 + 3B75:1ECA idle _s_dogjump2 + 3B75:1EDA idle _s_dogjump3 + 3B75:1EEA idle _s_dogjump4 + 3B75:1EFA idle _s_dogjump5 + 3B75:1E5A idle _s_dogpath1 + 3B75:1E6A idle _s_dogpath1s + 3B75:1E7A idle _s_dogpath2 + 3B75:1E8A idle _s_dogpath3 + 3B75:1E9A idle _s_dogpath3s + 3B75:1EAA idle _s_dogpath4 + 3B75:2A5C _s_fakechase1 + 3B75:2A6C idle _s_fakechase1s + 3B75:2A7C idle _s_fakechase2 + 3B75:2A8C idle _s_fakechase3 + 3B75:2A9C idle _s_fakechase3s + 3B75:2AAC idle _s_fakechase4 + 3B75:2ABC _s_fakedie1 + 3B75:2ACC idle _s_fakedie2 + 3B75:2ADC idle _s_fakedie3 + 3B75:2AEC idle _s_fakedie4 + 3B75:2AFC idle _s_fakedie5 + 3B75:2B0C idle _s_fakedie6 + 3B75:2B1C idle _s_fakeshoot1 + 3B75:2B2C idle _s_fakeshoot2 + 3B75:2B3C idle _s_fakeshoot3 + 3B75:2B4C idle _s_fakeshoot4 + 3B75:2B5C idle _s_fakeshoot5 + 3B75:2B6C idle _s_fakeshoot6 + 3B75:2B7C idle _s_fakeshoot7 + 3B75:2B8C idle _s_fakeshoot8 + 3B75:2B9C idle _s_fakeshoot9 + 3B75:2A4C idle _s_fakestand + 3B75:291C _s_fatchase1 + 3B75:292C idle _s_fatchase1s + 3B75:293C idle _s_fatchase2 + 3B75:294C idle _s_fatchase3 + 3B75:295C idle _s_fatchase3s + 3B75:296C idle _s_fatchase4 + 3B75:297C idle _s_fatdeathcam + 3B75:298C _s_fatdie1 + 3B75:299C idle _s_fatdie2 + 3B75:29AC idle _s_fatdie3 + 3B75:29BC idle _s_fatdie4 + 3B75:29CC idle _s_fatdie5 + 3B75:29DC idle _s_fatdie6 + 3B75:29EC idle _s_fatshoot1 + 3B75:29FC idle _s_fatshoot2 + 3B75:2A0C idle _s_fatshoot3 + 3B75:2A1C idle _s_fatshoot4 + 3B75:2A2C idle _s_fatshoot5 + 3B75:2A3C idle _s_fatshoot6 + 3B75:290C idle _s_fatstand + 3B75:2BAC idle _s_fire1 + 3B75:2BBC idle _s_fire2 + 3B75:281C _s_giftchase1 + 3B75:282C idle _s_giftchase1s + 3B75:283C idle _s_giftchase2 + 3B75:284C idle _s_giftchase3 + 3B75:285C idle _s_giftchase3s + 3B75:286C idle _s_giftchase4 + 3B75:287C idle _s_giftdeathcam + 3B75:288C _s_giftdie1 + 3B75:289C idle _s_giftdie2 + 3B75:28AC idle _s_giftdie3 + 3B75:28BC idle _s_giftdie4 + 3B75:28CC idle _s_giftdie5 + 3B75:28DC idle _s_giftdie6 + 3B75:28EC idle _s_giftshoot1 + 3B75:28FC idle _s_giftshoot2 + 3B75:280C idle _s_giftstand + 3B75:1D3A _s_grdchase1 + 3B75:1D4A idle _s_grdchase1s + 3B75:1D5A idle _s_grdchase2 + 3B75:1D6A idle _s_grdchase3 + 3B75:1D7A idle _s_grdchase3s + 3B75:1D8A idle _s_grdchase4 + 3B75:1D9A _s_grddie1 + 3B75:1DAA idle _s_grddie2 + 3B75:1DBA idle _s_grddie3 + 3B75:1DCA idle _s_grddie4 + 3B75:1CEA _s_grdpain + 3B75:1CFA _s_grdpain1 + 3B75:1C8A idle _s_grdpath1 + 3B75:1C9A idle _s_grdpath1s + 3B75:1CAA idle _s_grdpath2 + 3B75:1CBA idle _s_grdpath3 + 3B75:1CCA idle _s_grdpath3s + 3B75:1CDA idle _s_grdpath4 + 3B75:1D0A idle _s_grdshoot1 + 3B75:1D1A idle _s_grdshoot2 + 3B75:1D2A idle _s_grdshoot3 + 3B75:1C7A idle _s_grdstand + 3B75:259A _s_gretelchase1 + 3B75:25AA idle _s_gretelchase1s + 3B75:25BA idle _s_gretelchase2 + 3B75:25CA idle _s_gretelchase3 + 3B75:25DA idle _s_gretelchase3s + 3B75:25EA idle _s_gretelchase4 + 3B75:25FA _s_greteldie1 + 3B75:260A idle _s_greteldie2 + 3B75:261A idle _s_greteldie3 + 3B75:262A idle _s_greteldie4 + 3B75:263A idle _s_gretelshoot1 + 3B75:264A idle _s_gretelshoot2 + 3B75:265A idle _s_gretelshoot3 + 3B75:266A idle _s_gretelshoot4 + 3B75:267A idle _s_gretelshoot5 + 3B75:268A idle _s_gretelshoot6 + 3B75:269A idle _s_gretelshoot7 + 3B75:26AA idle _s_gretelshoot8 + 3B75:258A idle _s_gretelstand + 3B75:2CDC _s_hitlerchase1 + 3B75:2CEC idle _s_hitlerchase1s + 3B75:2CFC idle _s_hitlerchase2 + 3B75:2D0C idle _s_hitlerchase3 + 3B75:2D1C idle _s_hitlerchase3s + 3B75:2D2C idle _s_hitlerchase4 + 3B75:2D3C idle _s_hitlerdeathcam + 3B75:2D4C _s_hitlerdie1 + 3B75:2DDC idle _s_hitlerdie10 + 3B75:2D5C idle _s_hitlerdie2 + 3B75:2D6C idle _s_hitlerdie3 + 3B75:2D7C idle _s_hitlerdie4 + 3B75:2D8C idle _s_hitlerdie5 + 3B75:2D9C idle _s_hitlerdie6 + 3B75:2DAC idle _s_hitlerdie7 + 3B75:2DBC idle _s_hitlerdie8 + 3B75:2DCC idle _s_hitlerdie9 + 3B75:2DEC idle _s_hitlershoot1 + 3B75:2DFC idle _s_hitlershoot2 + 3B75:2E0C idle _s_hitlershoot3 + 3B75:2E1C idle _s_hitlershoot4 + 3B75:2E2C idle _s_hitlershoot5 + 3B75:2E3C idle _s_hitlershoot6 + 3B75:1DFA idle _s_inkychase1 + 3B75:1E0A idle _s_inkychase2 + 3B75:2BDC _s_mechachase1 + 3B75:2BEC idle _s_mechachase1s + 3B75:2BFC idle _s_mechachase2 + 3B75:2C0C idle _s_mechachase3 + 3B75:2C1C idle _s_mechachase3s + 3B75:2C2C idle _s_mechachase4 + 3B75:2C3C _s_mechadie1 + 3B75:2C4C idle _s_mechadie2 + 3B75:2C5C idle _s_mechadie3 + 3B75:2C6C idle _s_mechadie4 + 3B75:2C7C idle _s_mechashoot1 + 3B75:2C8C idle _s_mechashoot2 + 3B75:2C9C idle _s_mechashoot3 + 3B75:2CAC idle _s_mechashoot4 + 3B75:2CBC idle _s_mechashoot5 + 3B75:2CCC idle _s_mechashoot6 + 3B75:2BCC idle _s_mechastand + 3B75:21EA _s_mutchase1 + 3B75:21FA idle _s_mutchase1s + 3B75:220A idle _s_mutchase2 + 3B75:221A idle _s_mutchase3 + 3B75:222A idle _s_mutchase3s + 3B75:223A idle _s_mutchase4 + 3B75:224A _s_mutdie1 + 3B75:225A idle _s_mutdie2 + 3B75:226A idle _s_mutdie3 + 3B75:227A idle _s_mutdie4 + 3B75:228A idle _s_mutdie5 + 3B75:218A _s_mutpain + 3B75:219A _s_mutpain1 + 3B75:212A idle _s_mutpath1 + 3B75:213A idle _s_mutpath1s + 3B75:214A idle _s_mutpath2 + 3B75:215A idle _s_mutpath3 + 3B75:216A idle _s_mutpath3s + 3B75:217A idle _s_mutpath4 + 3B75:21AA idle _s_mutshoot1 + 3B75:21BA idle _s_mutshoot2 + 3B75:21CA idle _s_mutshoot3 + 3B75:21DA idle _s_mutshoot4 + 3B75:211A idle _s_mutstand + 3B75:27CC idle _s_needle1 + 3B75:27DC idle _s_needle2 + 3B75:27EC idle _s_needle3 + 3B75:27FC idle _s_needle4 + 3B75:206A _s_ofcchase1 + 3B75:207A idle _s_ofcchase1s + 3B75:208A idle _s_ofcchase2 + 3B75:209A idle _s_ofcchase3 + 3B75:20AA idle _s_ofcchase3s + 3B75:20BA idle _s_ofcchase4 + 3B75:20CA _s_ofcdie1 + 3B75:20DA idle _s_ofcdie2 + 3B75:20EA idle _s_ofcdie3 + 3B75:20FA idle _s_ofcdie4 + 3B75:210A idle _s_ofcdie5 + 3B75:201A _s_ofcpain + 3B75:202A _s_ofcpain1 + 3B75:1FBA idle _s_ofcpath1 + 3B75:1FCA idle _s_ofcpath1s + 3B75:1FDA idle _s_ofcpath2 + 3B75:1FEA idle _s_ofcpath3 + 3B75:1FFA idle _s_ofcpath3s + 3B75:200A idle _s_ofcpath4 + 3B75:203A idle _s_ofcshoot1 + 3B75:204A idle _s_ofcshoot2 + 3B75:205A idle _s_ofcshoot3 + 3B75:1FAA idle _s_ofcstand + 3B75:1E1A idle _s_pinkychase1 + 3B75:1E2A idle _s_pinkychase2 + 3B75:190C idle _s_player + 3B75:1BFA idle _s_rocket + 3B75:26DC _s_schabbchase1 + 3B75:26EC idle _s_schabbchase1s + 3B75:26FC idle _s_schabbchase2 + 3B75:270C idle _s_schabbchase3 + 3B75:271C idle _s_schabbchase3s + 3B75:272C idle _s_schabbchase4 + 3B75:273C idle _s_schabbdeathcam + 3B75:274C _s_schabbdie1 + 3B75:275C idle _s_schabbdie2 + 3B75:276C idle _s_schabbdie3 + 3B75:277C idle _s_schabbdie4 + 3B75:278C idle _s_schabbdie5 + 3B75:279C idle _s_schabbdie6 + 3B75:27AC idle _s_schabbshoot1 + 3B75:27BC idle _s_schabbshoot2 + 3B75:26CC idle _s_schabbstand + 3B75:1C0A idle _s_smoke1 + 3B75:1C1A idle _s_smoke2 + 3B75:1C2A idle _s_smoke3 + 3B75:1C3A idle _s_smoke4 + 3B75:23BA _s_sschase1 + 3B75:23CA idle _s_sschase1s + 3B75:23DA idle _s_sschase2 + 3B75:23EA idle _s_sschase3 + 3B75:23FA idle _s_sschase3s + 3B75:240A idle _s_sschase4 + 3B75:241A _s_ssdie1 + 3B75:242A idle _s_ssdie2 + 3B75:243A idle _s_ssdie3 + 3B75:244A idle _s_ssdie4 + 3B75:230A _s_sspain + 3B75:231A _s_sspain1 + 3B75:22AA idle _s_sspath1 + 3B75:22BA idle _s_sspath1s + 3B75:22CA idle _s_sspath2 + 3B75:22DA idle _s_sspath3 + 3B75:22EA idle _s_sspath3s + 3B75:22FA idle _s_sspath4 + 3B75:232A idle _s_ssshoot1 + 3B75:233A idle _s_ssshoot2 + 3B75:234A idle _s_ssshoot3 + 3B75:235A idle _s_ssshoot4 + 3B75:236A idle _s_ssshoot5 + 3B75:237A idle _s_ssshoot6 + 3B75:238A idle _s_ssshoot7 + 3B75:239A idle _s_ssshoot8 + 3B75:23AA idle _s_ssshoot9 + 3B75:229A idle _s_ssstand + 3B75:ECE1 _t0OldService + 12D6:035C _TakeDamage + 0000:0F9C _tan + 3B75:9B87 _tedlevel + 3B75:9B85 _tedlevelnum + 3B75:9E98 _text + 0F7A:0F3F _ThreeDRefresh + 12D6:0AF4 idle _Thrust + 3B75:E00B _thrustspeed + 06CD:3AD3 idle _TicDelay + 3B75:A2C8 _tics + 3B75:168C _tileglobal + 3B75:D9B2 _tilehit + 3B75:75B8 _tilemap + 3B75:9EDC _TimeCount + 062D:00B8 idle _TimedPicCommand + 3B75:ECF1 _TimerCount + 3B75:ECF5 _TimerDivisor + 3B75:ECDB _TimerRate + 3B75:E822 _tinf + 0000:1931 _tolower + 0000:195D _toupper + 06CD:1232 idle _TrackWhichGame + 0F7A:004A idle _TransformActor + 0F7A:018C idle _TransformTile + 12D6:0825 idle _TryMove + 114B:00C8 _TryWalk + 12D6:10B7 idle _T_Attack + 14D6:1DCC idle _T_Bite + 14D6:1FE8 idle _T_BJDone + 14D6:1F9B idle _T_BJJump + 14D6:1EFE idle _T_BJRun + 14D6:1FC6 idle _T_BJYell + 14D6:15B9 idle _T_Chase + 14D6:18E6 idle _T_DogChase + 14D6:14CA idle _T_Fake + 14D6:13A9 idle _T_FakeFire + 14D6:1074 idle _T_Fat + 14D6:1836 idle _T_Ghosts + 14D6:0EE4 idle _T_Gift + 14D6:0C33 idle _T_GiftThrow + 14D6:1A9B idle _T_Path + 12D6:124A idle _T_Player + 14D6:00FE idle _T_Projectile + 14D6:0D54 idle _T_Schabb + 14D6:0B12 idle _T_SchabbThrow + 14D6:1BD1 idle _T_Shoot + 14D6:15A9 idle _T_Stand + 0000:3934 _ultoa + 3B75:E87A _UMBbase + 06CD:3231 _UnCacheLump + 0000:1989 _unlink + 3B75:54B4 _update + 12D6:0268 idle _UpdateFace + 0DA6:0D50 idle _UpdatePaletteShifts + 3B75:9B77 _updateptr + 0C63:014C _UpdateSoundLoc + 3B75:3D16 idle _USL_DrawString + 1D1D:0005 idle _USL_HardError + 3B75:3D12 _USL_MeasureString + 1D1D:03E6 idle _USL_PrintInCenter + 1D1D:06A2 idle _US_CenterWindow + 1D1D:0225 _US_CheckParm + 1D1D:0555 _US_ClearWindow + 06CD:0006 _US_ControlPanel + 1D1D:04EA _US_CPrint + 1D1D:048A idle _US_CPrintLine + 1D1D:0582 _US_DrawWindow + 1DDD:000A _US_InitRndT + 1D1D:07BB _US_LineInput + 1D1D:02EE _US_Print + 1D1D:0446 _US_PrintCentered + 1D1D:03BD idle _US_PrintSigned + 1D1D:0394 _US_PrintUnsigned + 1D1D:06F3 idle _US_RestoreWindow + 1DDD:0032 _US_RndT + 1D1D:06C6 idle _US_SaveWindow + 1D1D:02CF idle _US_SetPrintRoutines + 1D1D:0213 _US_Shutdown + 1D1D:013D _US_Startup + 3B75:9B5D _uwidthtable + 3B75:53A8 _vertwall + 3B75:1698 idle _vgaCeiling + 0F7A:0A2C idle _VGAClearScreen + 1F54:000E _VH_UpdateScreen + 0B05:003B _Victory + 12D6:0FF7 idle _VictorySpin + 12D6:0AE4 idle _VictoryTile + 3B75:DDDE _viewangle + 3B75:503A _viewcos + 3B75:52CE _viewheight + 3B75:503E _viewsin + 3B75:54A8 _viewsize + 3B75:D9CA _viewtx + 3B75:D9C8 _viewty + 3B75:D84C _viewtype + 3B75:52D0 _viewwidth + 3B75:5046 _viewx + 3B75:5042 _viewy + 3B75:988E _virtualreality + 3B75:D86C _vislist + 3B75:D86A _visptr + 3B75:D868 _visstep + 1DE1:0682 _VL_Bar + 1DE1:00A4 idle _VL_ClearVideo + 1DE1:04D5 _VL_ColorBorder + 1DE1:00CE idle _VL_DePlaneVGA + 1DE1:0AA5 idle _VL_DrawLatch8String + 1DE1:0975 idle _VL_DrawTile8String + 1DE1:038C _VL_FadeIn + 1DE1:025F _VL_FadeOut + 1DE1:01AA idle _VL_FillPalette + 1DE1:01EA idle _VL_GetColor + 1DE1:023E idle _VL_GetPalette + 1DE1:0539 _VL_Hlin + 1DE1:090B _VL_LatchToScreen + 1DE1:087B idle _VL_MaskedToScreen + 1DE1:0789 _VL_MemToLatch + 1DE1:07DE _VL_MemToScreen + 1E99:0236 _VL_MungePic + 1DE1:04E9 _VL_Plot + 1F2B:00B2 _VL_ScreenToScreen + 1DE1:01CF idle _VL_SetColor + 1F2B:0021 idle _VL_SetCRTC + 1DE1:0126 idle _VL_SetLineWidth + 1DE1:0215 _VL_SetPalette + 1F2B:0045 _VL_SetScreen + 1DE1:015B idle _VL_SetSplitScreen + 1DE1:009A idle _VL_SetTextMode + 1DE1:0075 _VL_SetVGAPlaneMode + 1DE1:006B _VL_Shutdown + 1DE1:0B56 idle _VL_SizeTile8String + 1DE1:000D _VL_Startup + 1DE1:0471 _VL_TestPaletteSet + 1F2B:0132 _VL_VideoID + 1DE1:0618 _VL_Vlin + 1F2B:000A _VL_WaitVBL + 0000:40DD idle _vsprintf + 1E99:0583 _VWB_Bar + 1E99:04DB _VWB_DrawPic + 1E99:054A _VWB_DrawPropString + 1E99:044C _VWB_DrawTile8 + 1E99:0494 idle _VWB_DrawTile8M + 1E99:05EA _VWB_Hlin + 1E99:05BF _VWB_Plot + 1E99:061E _VWB_Vlin + 1E99:02FA idle _VWL_MeasureString + 1E99:0117 idle _VW_DrawColorPropString + 1E99:0000 idle _VW_DrawPropString + 1E99:037E _VW_MarkUpdateBlock + 1E99:035C idle _VW_MeasureMPropString + 1E99:033A _VW_MeasurePropString + 1E99:0652 _VW_UpdateScreen + 06CD:3C14 idle _WaitKeyUp + 3B75:504A _wallheight + 0F7A:0E51 idle _WallRefresh + 3B75:1710 idle _weaponscale + 0000:31F3 idle _wherex + 0000:3202 idle _wherey + 36C8:0000 _whiteshifts + 3B75:A044 _WindowH + 3B75:9B79 _WindowW + 3B75:9B7D _WindowX + 3B75:9B7B _WindowY + 3B75:177A idle _wordmasks + 3B75:DDF3 _work + 0000:4393 _write + 0B05:04FF _Write + 0491:023E idle _WriteConfig + 3B75:D9A4 _xintercept + 3B75:D9B6 _xinttile + 3B75:E890 _XMSaddr + 3B75:E8D0 _XMSAvail + 3B75:E8CA _XMSDriver + 3B75:E8CE _XMSHandle + 3B75:A294 _XMSPagesAvail + 3B75:E8C2 _XMSPagesUsed + 3B75:A298 _XMSPresent + 3B75:3510 idle _XMSProtectPage + 3B75:D9C2 _xpartial + 3B75:D9BC _xpartialdown + 3B75:D9BE _xpartialup + 3B75:D99C _xstep + 3B75:D9AE _xtile + 3B75:D9AA _xtilestep + 3B75:D9A0 _yintercept + 3B75:D9B4 _yinttile + 3B75:EE15 _ylookup + 3B75:D9C0 _ypartial + 3B75:D9B8 _ypartialdown + 3B75:D9BA _ypartialup + 3B75:D998 _ystep + 3B75:D9AC _ytile + 3B75:D9A8 _ytilestep + 3B75:4090 __8087 + 0000:1000 idle __AHINCR + 0000:000C idle __AHSHIFT + 3B75:4724 __argc + 3B75:4726 __argv + 3B75:4380 __atexitcnt + 3B75:4944 __atexittbl + 0000:2670 __brk + 3B75:00D1 __brklvl + 3B75:00B3 __C0argc + 3B75:00B5 __C0argv + 0000:20DC idle __c0crtinit + 3B75:00B7 __C0environ + 0000:12CC idle __cexit + 0000:018A __checknull + 0000:32A2 __chmod + 0000:0177 __cleanup + 0000:32E5 __close + 0000:20F9 idle __crtinit + 3B75:4382 __ctype + 0000:0000 Abs __cvtfak + 0000:12DA idle __c_exit + 3B75:40A4 __default87 + 3B75:4602 __doserrno + 0000:152C __DOSERROR + 3B75:4604 idle __dosErrorToSV + 0000:11FE idle __dos_getdate + 0000:1190 __dos_getdiskfree + 0000:11C6 __dos_getfileattr + 0000:1217 __dos_gettime + 0000:11E3 idle __dos_setfileattr + 0000:1230 __dos_write + 3B75:4270 __emu + 3B75:00B9 __envLng + 3B75:00BB __envseg + 3B75:00BD __envSize + 0000:12BA __exit + 3B75:4484 __exitbuf + 3B75:4488 __exitfopen + 3B75:448C __exitopen + 3B75:471E idle __first + 0000:8087 idle __floatconvert + 0000:43E1 __fmemcmp + 0000:4409 __fmemcpy + 0000:4451 __fmemset + 3B75:45FA __fmode + 0000:0DAF __fperror + 3B75:45FE __fpstklen + 0000:05E5 __fpuint + 0000:3B9B idle __fputc + 0000:3CFC __FPUTN + 0000:442D idle __fsetmem + 0000:4470 __fstrcpy + 0000:4499 __fstricmp + 0000:44DA __fstrlen + 0000:36C1 idle __GETFP + 0000:2929 idle __harderr + 0000:2955 __hardresume + 0000:2970 __hardretn + 3B75:00CD __heapbase + 3B75:4600 __heaplen + 3B75:00D5 __heaptop + 3B75:40AA __huge_dble + 3B75:40A6 idle __huge_flt + 3B75:40B2 idle __huge_ldble + 3B75:40BC idle __indefinite + 3B75:00A3 idle __Int0Vector + 3B75:00A7 idle __Int4Vector + 3B75:00AB idle __Int5Vector + 3B75:00AF idle __Int6Vector + 0000:14F3 __IOERROR + 3B75:4720 idle __last + 3B75:40A1 __LDT + 0000:05F6 __LDTRUNC + 0000:154F __LONGTOA + 0000:0FEC __matherr + 3B75:40CA __mathwhy + 0000:1612 __MKNAME + 0000:02B1 idle __MMODEL + 3B75:45D0 __nfile + 3B75:45FC __notUmask + 0000:3B37 __open + 3B75:45D2 __openfd + 0000:3625 idle __OPENFP + 3B75:00C1 __osmajor + 3B75:00C2 idle __osminor + 3B75:00C1 idle __osversion + 0000:0E55 __POW10 + 3B75:40A0 __protected + 3B75:00BF __psp + 0000:16B5 __read + 0000:2D0E __REALCVT + 3B75:473A __RealCvtVector + 0000:020B __restorezero + 3B75:4722 idle __rover + 0000:26AF __sbrk + 3B75:473E idle __ScanTodVector + 0000:170D __scantol + 0000:2E3E __SCREENIO + 0000:2EF1 __SCROLL + 0000:0000 idle __setargv__ + 0000:0000 idle __setenvp__ + 0000:188C __setupio + 3B75:00C5 idle __StartTime + 3B75:4668 __stklen + 0000:1F23 __stpcpy + 3B75:4490 __streams + 0000:01B5 __terminate + 3B75:40C0 idle __tiny_ldble + 0000:1651 idle __TMPNAM + 0000:0000 idle __turboCrt + 0000:0000 Abs __turboCvt + 0000:8087 Abs __turboFloat + 0000:15CC __UTOA + 0000:2E7A __VALIDATEXY + 3B75:00C1 __version + 3B75:46D2 __video + 0000:2051 __VideoInt + 0000:19B7 __VPRINTER + 0000:1E6A __VPTR + 0000:1E8F __VRAM + 0000:31E9 __wherexy + 0000:4359 __write + 0000:1F09 __xclose + 0000:0BA6 __XCVT + 0000:4396 __xfclose + 0000:43BE __xfflush + 0000:1F71 ___brk + 3B75:00CB ___brklvl + 0000:21D9 idle ___first + 0000:04FE idle ___fpreset + 0000:28FD ___harderr + 3B75:00C9 idle ___heapbase + 0000:21DB idle ___last + 0000:3EEF ___read + 0000:21DD idle ___rover + 0000:1F93 ___sbrk + 3B75:49D2 ___SignalPtr + 0000:424B ___write + + Address Publics by Value + + 0000:0000 Abs __turboCvt + 0000:0000 idle __turboCrt + 0000:0000 Abs __cvtfak + 0000:0000 idle __setargv__ + 0000:0000 idle __setenvp__ + 0000:000C idle __AHSHIFT + 0000:0177 __cleanup + 0000:018A __checknull + 0000:01B5 __terminate + 0000:020B __restorezero + 0000:0297 _abort + 0000:02AF idle DGROUP@ + 0000:02B1 idle __MMODEL + 0000:02B3 idle N_LDIV@ + 0000:02B6 LDIV@ + 0000:02B6 F_LDIV@ + 0000:02D2 idle N_LUDIV@ + 0000:02D5 idle F_LUDIV@ + 0000:02D5 idle LUDIV@ + 0000:02DA idle N_LMOD@ + 0000:02DD F_LMOD@ + 0000:02DD idle LMOD@ + 0000:02E2 idle N_LUMOD@ + 0000:02E5 idle LUMOD@ + 0000:02E5 idle F_LUMOD@ + 0000:04FE idle ___fpreset + 0000:05E5 __fpuint + 0000:05E9 _atan + 0000:05F6 __LDTRUNC + 0000:0632 idle FISRQQ + 0000:0BA6 __XCVT + 0000:0DAF __fperror + 0000:0E32 idle FICRQQ + 0000:0E55 __POW10 + 0000:0F1E _pow10 + 0000:0F29 _matherr + 0000:0F4F _sin + 0000:0F9C _tan + 0000:0FEC __matherr + 0000:1000 idle __AHINCR + 0000:107C _atan2 + 0000:1137 F_FTOL@ + 0000:1137 idle FTOL@ + 0000:1163 idle _atexit + 0000:1190 __dos_getdiskfree + 0000:11C6 __dos_getfileattr + 0000:11E3 idle __dos_setfileattr + 0000:11FE idle __dos_getdate + 0000:1217 __dos_gettime + 0000:1230 __dos_write + 0000:12AB _exit + 0000:12BA __exit + 0000:12CC idle __cexit + 0000:12DA idle __c_exit + 0000:12E6 F_LXMUL@ + 0000:12E6 idle LXMUL@ + 0000:12FD F_PCMP@ + 0000:12FD idle PCMP@ + 0000:131E F_SCOPY@ + 0000:131E idle SCOPY@ + 0000:133A _getvect + 0000:1349 _setvect + 0000:135A N_LXLSH@ + 0000:135D F_LXLSH@ + 0000:135D idle LXLSH@ + 0000:137B idle N_LXRSH@ + 0000:137E F_LXRSH@ + 0000:137E idle LXRSH@ + 0000:139B idle N_LXURSH@ + 0000:139E F_LXURSH@ + 0000:139E idle LXURSH@ + 0000:13BC idle N_PADA@ + 0000:13BF F_PADA@ + 0000:13BF idle PADA@ + 0000:1400 idle N_PSBA@ + 0000:1403 F_PSBA@ + 0000:1403 idle PSBA@ + 0000:1444 N_PADD@ + 0000:1447 F_PADD@ + 0000:1447 idle PADD@ + 0000:1473 idle N_PSUB@ + 0000:1476 idle F_PSUB@ + 0000:1476 idle PSUB@ + 0000:14A4 N_PSBP@ + 0000:14A7 F_PSBP@ + 0000:14A7 idle PSBP@ + 0000:14CC idle N_SPUSH@ + 0000:14D2 F_SPUSH@ + 0000:14D2 idle SPUSH@ + 0000:14F3 __IOERROR + 0000:152C __DOSERROR + 0000:153E _isatty + 0000:154F __LONGTOA + 0000:15CC __UTOA + 0000:15E9 _lseek + 0000:1612 __MKNAME + 0000:1632 Abs FIERQQ + 0000:1651 idle __TMPNAM + 0000:1694 N_PCMP@ + 0000:16B5 __read + 0000:170D __scantol + 0000:188C __setupio + 0000:1931 _tolower + 0000:195D _toupper + 0000:1989 _unlink + 0000:19B7 __VPRINTER + 0000:1E6A __VPTR + 0000:1E8F __VRAM + 0000:1F09 __xclose + 0000:1F23 __stpcpy + 0000:1F4C _bioskey + 0000:1F71 ___brk + 0000:1F93 ___sbrk + 0000:1FC4 idle _brk + 0000:1FD0 idle _sbrk + 0000:1FE0 _clrscr + 0000:2009 _coreleft + 0000:2051 __VideoInt + 0000:20DC idle __c0crtinit + 0000:20F9 idle __crtinit + 0000:21D9 idle ___first + 0000:21DB idle ___last + 0000:21DD idle ___rover + 0000:2319 _farfree + 0000:2423 _farmalloc + 0000:2580 idle _farrealloc + 0000:2670 __brk + 0000:26AF __sbrk + 0000:273A _farcoreleft + 0000:278A _gotoxy + 0000:27D3 _gettext + 0000:2827 _puttext + 0000:287B _harderr + 0000:288D idle _hardresume + 0000:289B idle _hardretn + 0000:28FD ___harderr + 0000:2929 idle __harderr + 0000:2955 __hardresume + 0000:2970 __hardretn + 0000:29CF _ioctl + 0000:29F6 _movetext + 0000:2A93 _free + 0000:2B62 _malloc + 0000:2CBB idle _realloc + 0000:2D0E __REALCVT + 0000:2E3E __SCREENIO + 0000:2E7A __VALIDATEXY + 0000:2EF1 __SCROLL + 0000:3170 _setblock + 0000:31E9 __wherexy + 0000:31F3 idle _wherex + 0000:3202 idle _wherey + 0000:3215 _atol + 0000:3285 idle _atoi + 0000:3292 _bdos + 0000:32A2 __chmod + 0000:32BD _close + 0000:32E5 __close + 0000:331C _creat + 0000:338E _fclose + 0000:340F _fflush + 0000:3490 _findfirst + 0000:34C3 _findnext + 0000:34F0 _filelength + 0000:3531 _flushall + 0000:3625 idle __OPENFP + 0000:36C1 idle __GETFP + 0000:36EC _fopen + 0000:370B _fprintf + 0000:377E _fseek + 0000:37E6 idle _ftell + 0000:38AD _getenv + 0000:390C _itoa + 0000:3934 _ultoa + 0000:394E _ltoa + 0000:3973 _memcpy + 0000:3992 _movedata + 0000:39DF _open + 0000:3B37 __open + 0000:3B84 _printf + 0000:3B9B idle __fputc + 0000:3BB4 _fputc + 0000:3CEA idle _fputchar + 0000:3CFC __FPUTN + 0000:3EA4 _puts + 0000:3EEF ___read + 0000:3FBD _read + 0000:3FC0 _setvbuf + 0000:4000 idle FJARQQ + 0000:40C0 _sprintf + 0000:40DD idle _vsprintf + 0000:40F9 _strcat + 0000:4132 _strlen + 0000:4176 _strtol + 0000:424B ___write + 0000:4359 __write + 0000:4393 _write + 0000:4396 __xfclose + 0000:43BE __xfflush + 0000:43E1 __fmemcmp + 0000:4409 __fmemcpy + 0000:442D idle __fsetmem + 0000:4451 __fmemset + 0000:4470 __fstrcpy + 0000:4499 __fstricmp + 0000:44DA __fstrlen + 0000:5C32 Abs FIDRQQ + 0000:8000 idle FJSRQQ + 0000:8087 Abs __turboFloat + 0000:8087 idle __floatconvert + 0000:A23D Abs FIWRQQ + 0000:C000 idle FJCRQQ + 0000:FE32 idle FIARQQ + 044F:000A idle _FixedMul + 044F:0032 idle _DrawSpans + 044F:0176 idle _SetPlaneViewSize + 044F:027F idle _DrawPlanes + 0489:000A _MapRow + 0490:0006 _CheckIs386 + 0490:000A _jabhack2 + 0491:000D idle _ReadConfig + 0491:023E idle _WriteConfig + 0491:036B idle _Patch386 + 0491:03CA _NewGame + 0491:041B idle _DiskFlopAnim + 0491:044A idle _DoChecksum + 0491:0497 _SaveTheGame + 0491:08D5 _LoadTheGame + 0491:0D09 _ShutdownId + 0491:0D31 idle _BuildTables + 0491:0E89 idle _CalcProjection + 0491:0FC1 idle _SetupWalls + 0491:0FE8 idle _SignonScreen + 0491:1076 idle _FinishSignon + 0491:111B _MS_CheckParm + 0491:1185 idle _InitDigiMap + 0491:11A6 idle _DoJukebox + 0491:13C2 idle _InitGame + 0491:156F _SetViewSize + 0491:15F7 _ShowViewSize + 0491:1642 _NewViewSize + 0491:168A _Quit + 0491:1770 idle _DemoLoop + 0491:19AD _main + 062D:000E idle _RipToEOL + 062D:0021 idle _ParseNumber + 062D:0075 idle _ParsePicCommand + 062D:0093 idle _ParseTimedCommand + 062D:00B8 idle _TimedPicCommand + 062D:00FB idle _HandleCommand + 062D:0362 idle _NewLine + 062D:03BD idle _HandleCtrls + 062D:03DF idle _HandleWord + 062D:0490 idle _PageLayout + 062D:0690 idle _BackPage + 062D:06BA idle _CacheLayoutGraphics + 062D:07A6 idle _ShowArticle + 062D:08C9 idle _HelpScreens + 062D:0957 _EndText + 06CD:0006 _US_ControlPanel + 06CD:01E9 idle _DrawMainMenu + 06CD:02A6 idle _BossKey + 06CD:02F3 idle _CP_CheckQuick + 06CD:0865 idle _CP_EndGame + 06CD:08C1 _CP_ViewScores + 06CD:092F idle _CP_NewGame + 06CD:0AA0 idle _DrawNewEpisode + 06CD:0B66 idle _DrawNewGame + 06CD:0C08 idle _DrawNewGameDiff + 06CD:0C24 idle _CP_Sound + 06CD:0DD5 idle _DrawSoundMenu + 06CD:0FFA idle _DrawLSAction + 06CD:1091 idle _CP_LoadGame + 06CD:1232 idle _TrackWhichGame + 06CD:125D idle _DrawLoadSaveScreen + 06CD:1327 idle _PrintLSEntry + 06CD:13B7 idle _CP_SaveGame + 06CD:171A idle _CalibrateJoystick + 06CD:1977 idle _CP_Control + 06CD:1A92 idle _DrawMouseSens + 06CD:1BD1 idle _MouseSensitivity + 06CD:1E13 idle _DrawCtlScreen + 06CD:2002 idle _CustomControls + 06CD:20B3 idle _DefineMouseBtns + 06CD:20F8 idle _DefineJoyBtns + 06CD:213E idle _DefineKeyBtns + 06CD:2184 idle _DefineKeyMove + 06CD:21CA idle _EnterCtrlData + 06CD:2647 idle _FixupCustom + 06CD:27F7 idle _DrawCustomScreen + 06CD:2B05 idle _PrintCustMouse + 06CD:2B4F idle _DrawCustMouse + 06CD:2BAC idle _PrintCustJoy + 06CD:2BF6 idle _DrawCustJoy + 06CD:2C53 idle _PrintCustKeybd + 06CD:2C8A idle _DrawCustKeybd + 06CD:2CBC idle _PrintCustKeys + 06CD:2CF2 idle _DrawCustKeys + 06CD:2D24 idle _CP_ChangeView + 06CD:2EB3 idle _DrawChangeView + 06CD:2F41 idle _CP_Quit + 06CD:2FD3 _IntroScreen + 06CD:31F5 _ClearMScreen + 06CD:3212 _CacheLump + 06CD:3231 _UnCacheLump + 06CD:3270 _DrawWindow + 06CD:32AA idle _DrawOutline + 06CD:330F idle _SetupControlPanel + 06CD:3431 idle _CleanupControlPanel + 06CD:344B _HandleMenu + 06CD:3953 idle _EraseGun + 06CD:39D1 idle _DrawHalfStep + 06CD:3A15 idle _DrawGun + 06CD:3AD3 idle _TicDelay + 06CD:3B11 _DrawMenu + 06CD:3BDF idle _SetTextColor + 06CD:3C14 idle _WaitKeyUp + 06CD:3C46 idle _ReadAnyControl + 06CD:3DA8 idle _Confirm + 06CD:3ED3 _Message + 06CD:400C _StartCPMusic + 06CD:4099 _FreeMusic + 06CD:40BC idle _IN_GetScanName + 06CD:4104 idle _CheckPause + 06CD:4146 idle _DrawMenuGun + 06CD:417D _DrawStripes + 06CD:41B7 idle _ShootSnd + 06CD:41C8 _CheckForEpisodes + 0B05:000E _ClearSplitVWB + 0B05:003B _Victory + 0B05:0448 _PG13 + 0B05:04FF _Write + 0B05:060A idle _BJ_Breathe + 0B05:066B _LevelCompleted + 0B05:106E idle _PreloadUpdate + 0B05:110F _PreloadGraphics + 0B05:11C2 _DrawHighScores + 0B05:13BD _CheckHighScore + 0B05:1513 idle _NonShareware + 0C63:0008 idle _SetSoundLoc + 0C63:00FB _PlaySoundLocGlobal + 0C63:014C _UpdateSoundLoc + 0C63:017F _ClearMemory + 0C63:019A idle _ScanInfoPlane + 0C63:06A6 _SetupGameLevel + 0C63:095C idle _DrawPlayBorderSides + 0C63:09F1 _DrawAllPlayBorderSides + 0C63:0A23 _DrawAllPlayBorder + 0C63:0A56 _DrawPlayBorder + 0C63:0B2E _DrawPlayScreen + 0C63:0BDA idle _StartDemoRecord + 0C63:0C31 idle _FinishDemoRecord + 0C63:0D16 _RecordDemo + 0C63:0E72 _PlayDemo + 0C63:0FEF idle _Died + 0C63:1229 _GameLoop + 0DA6:000D idle _PollKeyboardButtons + 0DA6:0034 idle _PollMouseButtons + 0DA6:0078 idle _PollJoystickButtons + 0DA6:0109 idle _PollKeyboardMove + 0DA6:0215 idle _PollMouseMove + 0DA6:0253 idle _PollJoystickMove + 0DA6:03D3 idle _PollControls + 0DA6:060B _CenterWindow + 0DA6:0639 idle _CheckKeys + 0DA6:0A0B _InitActorList + 0DA6:0A52 _GetNewActor + 0DA6:0AB4 idle _RemoveObj + 0DA6:0B03 _StopMusic + 0DA6:0B3E _StartMusic + 0DA6:0BBA _InitRedShifts + 0DA6:0D2C idle _ClearPaletteShifts + 0DA6:0D39 _StartBonusFlash + 0DA6:0D44 _StartDamageFlash + 0DA6:0D50 idle _UpdatePaletteShifts + 0DA6:0E50 _FinishPaletteShifts + 0DA6:0E7E idle _DoActor + 0DA6:101B _PlayLoop + 0EC1:0004 idle _DebugMemory + 0EC1:00C9 idle _CountObjects + 0EC1:01C5 _PicturePause + 0EC1:02EE idle _ShapeTest + 0EC1:07BB _DebugKeys + 0F7A:000C _FixedByFrac + 0F7A:004A idle _TransformActor + 0F7A:018C idle _TransformTile + 0F7A:02FE idle _CalcHeight + 0F7A:0397 idle _ScalePost + 0F7A:040E _FarScalePost + 0F7A:0416 _HitVertWall + 0F7A:0536 _HitHorizWall + 0F7A:0659 _HitHorizDoor + 0F7A:0760 _HitVertDoor + 0F7A:086A _HitHorizPWall + 0F7A:094B _HitVertPWall + 0F7A:0A2C idle _VGAClearScreen + 0F7A:0A9A idle _CalcRotate + 0F7A:0B17 idle _DrawScaleds + 0F7A:0D2B idle _DrawPlayerWeapon + 0F7A:0DCB _CalcTics + 0F7A:0E2E _FixOfs + 0F7A:0E51 idle _WallRefresh + 0F7A:0F3F _ThreeDRefresh + 1079:0070 _AsmRefresh + 10BF:000E idle _BadScale + 10BF:001F _SetupScaling + 10BF:01E4 idle _BuildCompScale + 10BF:0339 idle _ScaleLine + 10BF:0487 _ScaleShape + 10BF:07A0 _SimpleScaleShape + 114B:0001 _SpawnNewObj + 114B:00B0 _NewState + 114B:00C8 _TryWalk + 114B:067A _SelectDodgeDir + 114B:07AA _SelectChaseDir + 114B:0904 _SelectRunDir + 114B:09CE _MoveObj + 114B:0C16 idle _DropItem + 114B:0CB1 idle _KillActor + 114B:0FB1 _DamageActor + 114B:10B4 _CheckLine + 114B:1365 idle _CheckSight + 114B:1471 idle _FirstSighting + 114B:1784 _SightPlayer + 12D6:0000 idle _CheckWeaponChange + 12D6:0034 idle _ControlMovement + 12D6:01A5 idle _StatusDrawPic + 12D6:01FE _DrawFace + 12D6:0268 idle _UpdateFace + 12D6:02AF idle _LatchNumber + 12D6:033E _DrawHealth + 12D6:035C _TakeDamage + 12D6:03B6 _HealSelf + 12D6:03DD _DrawLevel + 12D6:03FC _DrawLives + 12D6:041A idle _GiveExtraMan + 12D6:043A _DrawScore + 12D6:045A _GivePoints + 12D6:0497 _DrawWeapon + 12D6:04B2 _DrawKeys + 12D6:0517 _GiveWeapon + 12D6:0542 _DrawAmmo + 12D6:0560 idle _GiveAmmo + 12D6:0595 idle _GiveKey + 12D6:05AA _GetBonus + 12D6:0825 idle _TryMove + 12D6:09BD idle _ClipMove + 12D6:0AE4 idle _VictoryTile + 12D6:0AF4 idle _Thrust + 12D6:0BDC idle _Cmd_Fire + 12D6:0C2E idle _Cmd_Use + 12D6:0D87 _SpawnPlayer + 12D6:0E27 idle _KnifeAttack + 12D6:0EC0 idle _GunAttack + 12D6:0FF7 idle _VictorySpin + 12D6:10B7 idle _T_Attack + 12D6:124A idle _T_Player + 1402:000C _InitStaticList + 1402:0017 _SpawnStatic + 1402:00E6 _PlaceItemType + 1402:0176 idle _RecursiveConnect + 1402:01C4 idle _ConnectAreas + 1402:01FD _InitAreas + 1402:0225 _InitDoorList + 1402:025D _SpawnDoor + 1402:0355 _OpenDoor + 1402:037E idle _CloseDoor + 1402:05E1 _OperateDoor + 1402:0656 idle _DoorOpen + 1402:0684 idle _DoorOpening + 1402:07E6 idle _DoorClosing + 1402:0922 _MoveDoors + 1402:0975 _PushWall + 1402:0B29 _MovePWalls + 14D6:000D idle _A_Smoke + 14D6:005B idle _ProjectileTryMove + 14D6:00FE idle _T_Projectile + 14D6:032D _SpawnStand + 14D6:04E0 _SpawnDeadGuard + 14D6:0500 _SpawnBoss + 14D6:0553 _SpawnGretel + 14D6:05A6 _SpawnPatrol + 14D6:0761 _A_DeathScream + 14D6:0950 _SpawnGhosts + 14D6:09DA _SpawnSchabbs + 14D6:0A42 _SpawnGift + 14D6:0AAA _SpawnFat + 14D6:0B12 idle _T_SchabbThrow + 14D6:0C33 idle _T_GiftThrow + 14D6:0D54 idle _T_Schabb + 14D6:0EE4 idle _T_Gift + 14D6:1074 idle _T_Fat + 14D6:1204 _SpawnFakeHitler + 14D6:126C _SpawnHitler + 14D6:12D4 idle _A_HitlerMorph + 14D6:1366 idle _A_MechaSound + 14D6:1398 idle _A_Slurpie + 14D6:13A9 idle _T_FakeFire + 14D6:14CA idle _T_Fake + 14D6:15A9 idle _T_Stand + 14D6:15B9 idle _T_Chase + 14D6:1836 idle _T_Ghosts + 14D6:18E6 idle _T_DogChase + 14D6:1A4F idle _SelectPathDir + 14D6:1A9B idle _T_Path + 14D6:1BD1 idle _T_Shoot + 14D6:1DCC idle _T_Bite + 14D6:1EAA _SpawnBJVictory + 14D6:1EFE idle _T_BJRun + 14D6:1F9B idle _T_BJJump + 14D6:1FC6 idle _T_BJYell + 14D6:1FE8 idle _T_BJDone + 14D6:1FF3 idle _CheckPosition + 14D6:2092 idle _A_StartDeathCam + 1710:000B idle _GRFILEPOS + 1710:005B idle _CA_OpenDebug + 1710:007F idle _CA_CloseDebug + 1710:0090 idle _CAL_GetGrChunkLength + 1710:00F0 _CA_FarRead + 1710:013C _CA_FarWrite + 1710:0188 idle _CA_ReadFile + 1710:01FA _CA_WriteFile + 1710:0252 idle _CA_LoadFile + 1710:02D3 idle _CAL_OptimizeNodes + 1710:032B idle _CAL_HuffExpand + 1710:0498 idle _CAL_CarmackExpand + 1710:05B6 idle _CA_RLEWCompress + 1710:0703 idle _CA_RLEWexpand + 1710:07BF idle _CAL_SetupGrFile + 1710:09F4 idle _CAL_SetupMapFile + 1710:0BBC idle _CAL_SetupAudioFile + 1710:0CF0 _CA_Startup + 1710:0D11 _CA_Shutdown + 1710:0D3A _CA_CacheAudioChunk + 1710:0DE9 _CA_LoadAllSounds + 1710:0E6E idle _CAL_ExpandGrChunk + 1710:0F45 _CA_CacheGrChunk + 1710:108C _CA_CacheScreen + 1710:1181 _CA_CacheMap + 1710:12E1 _CA_UpLevel + 1710:1326 _CA_DownLevel + 1710:134D idle _CA_ClearMarks + 1710:136E idle _CA_ClearAllMarks + 1710:1394 idle _CA_SetGrPurge + 1710:13C2 _CA_SetAllPurge + 1710:13F0 _CA_CacheMarks + 1710:16FC idle _CA_CannotOpen + 1885:0151 _IN_GetJoyAbs + 1885:01EC _INL_GetJoyDelta + 1885:035A idle _IN_GetJoyButtonsDB + 1885:04CB _IN_SetupJoy + 1885:05B8 _IN_Startup + 1885:0659 idle _IN_Default + 1885:0699 _IN_Shutdown + 1885:06C5 idle _IN_SetKeyHook + 1885:06D7 _IN_ClearKeysDown + 1885:06F6 _IN_ReadControl + 1885:0A18 idle _IN_SetControlType + 1885:0A29 idle _IN_WaitForKey + 1885:0A47 _IN_WaitForASCII + 1885:0A64 _IN_StartAck + 1885:0AB4 _IN_CheckAck + 1885:0B0E _IN_Ack + 1885:0B1F _IN_UserInput + 1885:0B64 _IN_MouseButtons + 1885:0B7B _IN_JoyButtons + 193E:0001 idle _MML_CheckForXMS + 193E:001C idle _MML_SetupXMS + 193E:008B idle _MML_ShutdownXMS + 193E:00BC _MML_UseSpace + 193E:0242 idle _MML_ClearBlock + 193E:02A8 _MM_Startup + 193E:049B _MM_Shutdown + 193E:04C3 _MM_GetPtr + 193E:0780 _MM_FreePtr + 193E:0847 _MM_SetPurge + 193E:08C8 _MM_SetLock + 193E:094E _MM_SortMem + 193E:0B0A idle _MM_ShowMemory + 193E:0C67 idle _MM_DumpData + 193E:0D98 _MM_UnusedMemory + 193E:0DFF _MM_TotalFree + 193E:0E7D _MM_BombOnError + 1A26:0008 idle _PML_MapEMS + 1A26:002B idle _PML_StartupEMS + 1A26:0160 idle _PML_ShutdownEMS + 1A26:0184 idle _PML_StartupXMS + 1A26:01F7 idle _PML_XMSCopy + 1A26:02A4 idle _PML_ShutdownXMS + 1A26:02CA _PM_SetMainMemPurge + 1A26:02F3 _PM_CheckMainMem + 1A26:03EC idle _PML_StartupMainMem + 1A26:0469 idle _PML_ShutdownMainMem + 1A26:0490 idle _PML_ReadFromFile + 1A26:0510 idle _PML_OpenPageFile + 1A26:06F7 idle _PML_ClosePageFile + 1A26:0731 idle _PML_GetEMSAddress + 1A26:080D _PM_GetPageAddress + 1A26:0866 idle _PML_GiveLRUPage + 1A26:0907 idle _PML_GiveLRUXMSPage + 1A26:0979 idle _PML_PutPageInXMS + 1A26:0A28 idle _PML_TransferPageSpace + 1A26:0AFB idle _PML_GetAPageBuffer + 1A26:0C08 idle _PML_GetPageFromXMS + 1A26:0C8C idle _PML_LoadPage + 1A26:0CDE _PM_GetPage + 1A26:0DA0 _PM_SetPageLock + 1A26:0DD0 _PM_Preload + 1A26:1036 _PM_NextFrame + 1A26:10B0 idle _PM_Reset + 1A26:111E _PM_Startup + 1A26:11CF _PM_Shutdown + 1B44:0511 idle _SDL_SBSetDMA + 1B44:08CF idle _SDL_LoadDigiSegment + 1B44:0904 idle _SDL_PlayDigiSegment + 1B44:094E _SD_StopDigitized + 1B44:09F0 _SD_Poll + 1B44:0A7C _SD_SetPosition + 1B44:0AC4 idle _SD_PlayDigitized + 1B44:0B88 _SDL_DigitizedDone + 1B44:0BF2 _SD_SetDigiDevice + 1B44:0C56 idle _SDL_SetupDigi + 1B44:0D39 _alOut + 1B44:10F4 _SD_SetSoundMode + 1B44:1184 _SD_SetMusicMode + 1B44:11D6 _SD_Startup + 1B44:1525 idle _SD_Default + 1B44:1594 _SD_Shutdown + 1B44:15EF idle _SD_SetUserHook + 1B44:1601 _SD_PositionSound + 1B44:1618 _SD_PlaySound + 1B44:17C9 _SD_SoundPlaying + 1B44:1810 _SD_StopSound + 1B44:1847 _SD_WaitSoundDone + 1B44:1854 _SD_MusicOn + 1B44:185F _SD_MusicOff + 1B44:18AC _SD_StartMusic + 1B44:18FE idle _SD_FadeOutMusic + 1B44:190F idle _SD_MusicPlaying + 1CD6:000A _SDL_SetDS + 1CD6:0012 _SDL_IndicatePC + 1CD6:001E _SDL_t0ExtremeAsmService + 1CD6:00B8 _SDL_t0FastAsmService + 1CD6:031A _SDL_t0SlowAsmService + 1D1D:0005 idle _USL_HardError + 1D1D:013D _US_Startup + 1D1D:0213 _US_Shutdown + 1D1D:0225 _US_CheckParm + 1D1D:02CF idle _US_SetPrintRoutines + 1D1D:02EE _US_Print + 1D1D:0394 _US_PrintUnsigned + 1D1D:03BD idle _US_PrintSigned + 1D1D:03E6 idle _USL_PrintInCenter + 1D1D:0446 _US_PrintCentered + 1D1D:048A idle _US_CPrintLine + 1D1D:04EA _US_CPrint + 1D1D:0555 _US_ClearWindow + 1D1D:0582 _US_DrawWindow + 1D1D:06A2 idle _US_CenterWindow + 1D1D:06C6 idle _US_SaveWindow + 1D1D:06F3 idle _US_RestoreWindow + 1D1D:07BB _US_LineInput + 1DDD:000A _US_InitRndT + 1DDD:0032 _US_RndT + 1DE1:000D _VL_Startup + 1DE1:006B _VL_Shutdown + 1DE1:0075 _VL_SetVGAPlaneMode + 1DE1:009A idle _VL_SetTextMode + 1DE1:00A4 idle _VL_ClearVideo + 1DE1:00CE idle _VL_DePlaneVGA + 1DE1:0126 idle _VL_SetLineWidth + 1DE1:015B idle _VL_SetSplitScreen + 1DE1:01AA idle _VL_FillPalette + 1DE1:01CF idle _VL_SetColor + 1DE1:01EA idle _VL_GetColor + 1DE1:0215 _VL_SetPalette + 1DE1:023E idle _VL_GetPalette + 1DE1:025F _VL_FadeOut + 1DE1:038C _VL_FadeIn + 1DE1:0471 _VL_TestPaletteSet + 1DE1:04D5 _VL_ColorBorder + 1DE1:04E9 _VL_Plot + 1DE1:0539 _VL_Hlin + 1DE1:0618 _VL_Vlin + 1DE1:0682 _VL_Bar + 1DE1:0789 _VL_MemToLatch + 1DE1:07DE _VL_MemToScreen + 1DE1:087B idle _VL_MaskedToScreen + 1DE1:090B _VL_LatchToScreen + 1DE1:0975 idle _VL_DrawTile8String + 1DE1:0AA5 idle _VL_DrawLatch8String + 1DE1:0B56 idle _VL_SizeTile8String + 1E99:0000 idle _VW_DrawPropString + 1E99:0117 idle _VW_DrawColorPropString + 1E99:0236 _VL_MungePic + 1E99:02FA idle _VWL_MeasureString + 1E99:033A _VW_MeasurePropString + 1E99:035C idle _VW_MeasureMPropString + 1E99:037E _VW_MarkUpdateBlock + 1E99:044C _VWB_DrawTile8 + 1E99:0494 idle _VWB_DrawTile8M + 1E99:04DB _VWB_DrawPic + 1E99:054A _VWB_DrawPropString + 1E99:0583 _VWB_Bar + 1E99:05BF _VWB_Plot + 1E99:05EA _VWB_Hlin + 1E99:061E _VWB_Vlin + 1E99:0652 _VW_UpdateScreen + 1E99:065C _LatchDrawPic + 1E99:06B9 _LoadLatchMem + 1E99:07DA _FizzleFade + 1F2B:000A _VL_WaitVBL + 1F2B:0021 idle _VL_SetCRTC + 1F2B:0045 _VL_SetScreen + 1F2B:00B2 _VL_ScreenToScreen + 1F2B:0132 _VL_VideoID + 1F54:000E _VH_UpdateScreen + 1F75:2152 e086_Entry + 1F75:26E0 e086_Shortcut + 21ED:0306 e087_Entry + 21ED:03C6 e087_Shortcut + 21ED:0430 e087_Trap + 224A:0000 _planepics + 244A:0002 idle _rndtable + 245B:0000 idle _MusicMenu + 248B:0000 idle _endStrings + 24B8:0000 _MainMenu + 24D0:0000 idle _SndMenu + 24F0:0000 idle _CtlMenu + 2500:0000 idle _NewEmenu + 251D:0000 idle _NewMenu + 2528:0000 idle _LSMenu + 2543:0000 idle _CusMenu + 255E:0000 _signon + 3516:0000 _areaconnect + 356C:0000 _sintable + 35DD:0000 _finetangent + 36BE:0000 _grneeded + 36C8:0000 _whiteshifts + 37E8:0000 _redshifts + 3908:0000 _mmblocks + 3B15:0000 _palette2 + 3B45:0000 _palette1 + 3B75:0000 idle DATASEG@ + 3B75:00A3 idle __Int0Vector + 3B75:00A7 idle __Int4Vector + 3B75:00AB idle __Int5Vector + 3B75:00AF idle __Int6Vector + 3B75:00B3 __C0argc + 3B75:00B5 __C0argv + 3B75:00B7 __C0environ + 3B75:00B9 __envLng + 3B75:00BB __envseg + 3B75:00BD __envSize + 3B75:00BF __psp + 3B75:00C1 idle __osversion + 3B75:00C1 __osmajor + 3B75:00C1 __version + 3B75:00C2 idle __osminor + 3B75:00C3 _errno + 3B75:00C5 idle __StartTime + 3B75:00C9 idle ___heapbase + 3B75:00CB ___brklvl + 3B75:00CD __heapbase + 3B75:00D1 __brklvl + 3B75:00D5 __heaptop + 3B75:00DA idle _halfheight + 3B75:00DC _dirangle + 3B75:00EE _configname + 3B75:00FC idle _JHParmStrings + 3B75:0102 idle _radtoint + 3B75:01C4 idle _MusicItems + 3B75:01FC idle _nosprtxt + 3B75:0330 idle _endextern + 3B75:0332 idle _helpextern + 3B75:0334 idle _helpfilename + 3B75:0341 _endfilename + 3B75:03D2 _MainItems + 3B75:03DC idle _SndItems + 3B75:03E6 idle _LSItems + 3B75:03F0 idle _CtlItems + 3B75:03FA idle _CusItems + 3B75:0404 idle _NewEitems + 3B75:040E idle _NewItems + 3B75:0418 idle _color_hlite + 3B75:0420 idle _color_norml + 3B75:0428 idle _EpisodeSelect + 3B75:0434 idle _SoundStatus + 3B75:0436 idle _SaveName + 3B75:05F2 idle _mbarray + 3B75:05FE idle _order + 3B75:0622 idle _moveorder + 3B75:0E74 idle _ElevatorBackTo + 3B75:0E80 idle _righttable + 3B75:1042 idle _lefttable + 3B75:1204 _demoname + 3B75:1270 _dirscan + 3B75:1278 _buttonscan + 3B75:1288 _buttonmouse + 3B75:1290 _buttonjoy + 3B75:1298 idle _songs + 3B75:1684 _screenloc + 3B75:168A _freelatch + 3B75:168C _tileglobal + 3B75:1690 idle _mindist + 3B75:1694 _costable + 3B75:1698 idle _vgaCeiling + 3B75:1710 idle _weaponscale + 3B75:171A _mapmasks1 + 3B75:173A _mapmasks2 + 3B75:175A _mapmasks3 + 3B75:177A idle _wordmasks + 3B75:180C idle _opposite + 3B75:181E idle _diagonal + 3B75:190C idle _s_player + 3B75:191C idle _s_attack + 3B75:192C idle _attackinfo + 3B75:1A0C idle _strafeangle + 3B75:1A1E idle _statinfo + 3B75:1B38 idle _dirtable + 3B75:1B4A idle _starthitpoints + 3B75:1BFA idle _s_rocket + 3B75:1C0A idle _s_smoke1 + 3B75:1C1A idle _s_smoke2 + 3B75:1C2A idle _s_smoke3 + 3B75:1C3A idle _s_smoke4 + 3B75:1C4A idle _s_boom1 + 3B75:1C5A idle _s_boom2 + 3B75:1C6A idle _s_boom3 + 3B75:1C7A idle _s_grdstand + 3B75:1C8A idle _s_grdpath1 + 3B75:1C9A idle _s_grdpath1s + 3B75:1CAA idle _s_grdpath2 + 3B75:1CBA idle _s_grdpath3 + 3B75:1CCA idle _s_grdpath3s + 3B75:1CDA idle _s_grdpath4 + 3B75:1CEA _s_grdpain + 3B75:1CFA _s_grdpain1 + 3B75:1D0A idle _s_grdshoot1 + 3B75:1D1A idle _s_grdshoot2 + 3B75:1D2A idle _s_grdshoot3 + 3B75:1D3A _s_grdchase1 + 3B75:1D4A idle _s_grdchase1s + 3B75:1D5A idle _s_grdchase2 + 3B75:1D6A idle _s_grdchase3 + 3B75:1D7A idle _s_grdchase3s + 3B75:1D8A idle _s_grdchase4 + 3B75:1D9A _s_grddie1 + 3B75:1DAA idle _s_grddie2 + 3B75:1DBA idle _s_grddie3 + 3B75:1DCA idle _s_grddie4 + 3B75:1DDA _s_blinkychase1 + 3B75:1DEA idle _s_blinkychase2 + 3B75:1DFA idle _s_inkychase1 + 3B75:1E0A idle _s_inkychase2 + 3B75:1E1A idle _s_pinkychase1 + 3B75:1E2A idle _s_pinkychase2 + 3B75:1E3A idle _s_clydechase1 + 3B75:1E4A idle _s_clydechase2 + 3B75:1E5A idle _s_dogpath1 + 3B75:1E6A idle _s_dogpath1s + 3B75:1E7A idle _s_dogpath2 + 3B75:1E8A idle _s_dogpath3 + 3B75:1E9A idle _s_dogpath3s + 3B75:1EAA idle _s_dogpath4 + 3B75:1EBA idle _s_dogjump1 + 3B75:1ECA idle _s_dogjump2 + 3B75:1EDA idle _s_dogjump3 + 3B75:1EEA idle _s_dogjump4 + 3B75:1EFA idle _s_dogjump5 + 3B75:1F0A _s_dogchase1 + 3B75:1F1A idle _s_dogchase1s + 3B75:1F2A idle _s_dogchase2 + 3B75:1F3A idle _s_dogchase3 + 3B75:1F4A idle _s_dogchase3s + 3B75:1F5A idle _s_dogchase4 + 3B75:1F6A _s_dogdie1 + 3B75:1F7A idle _s_dogdie2 + 3B75:1F8A idle _s_dogdie3 + 3B75:1F9A idle _s_dogdead + 3B75:1FAA idle _s_ofcstand + 3B75:1FBA idle _s_ofcpath1 + 3B75:1FCA idle _s_ofcpath1s + 3B75:1FDA idle _s_ofcpath2 + 3B75:1FEA idle _s_ofcpath3 + 3B75:1FFA idle _s_ofcpath3s + 3B75:200A idle _s_ofcpath4 + 3B75:201A _s_ofcpain + 3B75:202A _s_ofcpain1 + 3B75:203A idle _s_ofcshoot1 + 3B75:204A idle _s_ofcshoot2 + 3B75:205A idle _s_ofcshoot3 + 3B75:206A _s_ofcchase1 + 3B75:207A idle _s_ofcchase1s + 3B75:208A idle _s_ofcchase2 + 3B75:209A idle _s_ofcchase3 + 3B75:20AA idle _s_ofcchase3s + 3B75:20BA idle _s_ofcchase4 + 3B75:20CA _s_ofcdie1 + 3B75:20DA idle _s_ofcdie2 + 3B75:20EA idle _s_ofcdie3 + 3B75:20FA idle _s_ofcdie4 + 3B75:210A idle _s_ofcdie5 + 3B75:211A idle _s_mutstand + 3B75:212A idle _s_mutpath1 + 3B75:213A idle _s_mutpath1s + 3B75:214A idle _s_mutpath2 + 3B75:215A idle _s_mutpath3 + 3B75:216A idle _s_mutpath3s + 3B75:217A idle _s_mutpath4 + 3B75:218A _s_mutpain + 3B75:219A _s_mutpain1 + 3B75:21AA idle _s_mutshoot1 + 3B75:21BA idle _s_mutshoot2 + 3B75:21CA idle _s_mutshoot3 + 3B75:21DA idle _s_mutshoot4 + 3B75:21EA _s_mutchase1 + 3B75:21FA idle _s_mutchase1s + 3B75:220A idle _s_mutchase2 + 3B75:221A idle _s_mutchase3 + 3B75:222A idle _s_mutchase3s + 3B75:223A idle _s_mutchase4 + 3B75:224A _s_mutdie1 + 3B75:225A idle _s_mutdie2 + 3B75:226A idle _s_mutdie3 + 3B75:227A idle _s_mutdie4 + 3B75:228A idle _s_mutdie5 + 3B75:229A idle _s_ssstand + 3B75:22AA idle _s_sspath1 + 3B75:22BA idle _s_sspath1s + 3B75:22CA idle _s_sspath2 + 3B75:22DA idle _s_sspath3 + 3B75:22EA idle _s_sspath3s + 3B75:22FA idle _s_sspath4 + 3B75:230A _s_sspain + 3B75:231A _s_sspain1 + 3B75:232A idle _s_ssshoot1 + 3B75:233A idle _s_ssshoot2 + 3B75:234A idle _s_ssshoot3 + 3B75:235A idle _s_ssshoot4 + 3B75:236A idle _s_ssshoot5 + 3B75:237A idle _s_ssshoot6 + 3B75:238A idle _s_ssshoot7 + 3B75:239A idle _s_ssshoot8 + 3B75:23AA idle _s_ssshoot9 + 3B75:23BA _s_sschase1 + 3B75:23CA idle _s_sschase1s + 3B75:23DA idle _s_sschase2 + 3B75:23EA idle _s_sschase3 + 3B75:23FA idle _s_sschase3s + 3B75:240A idle _s_sschase4 + 3B75:241A _s_ssdie1 + 3B75:242A idle _s_ssdie2 + 3B75:243A idle _s_ssdie3 + 3B75:244A idle _s_ssdie4 + 3B75:245A idle _s_bossstand + 3B75:246A _s_bosschase1 + 3B75:247A idle _s_bosschase1s + 3B75:248A idle _s_bosschase2 + 3B75:249A idle _s_bosschase3 + 3B75:24AA idle _s_bosschase3s + 3B75:24BA idle _s_bosschase4 + 3B75:24CA _s_bossdie1 + 3B75:24DA idle _s_bossdie2 + 3B75:24EA idle _s_bossdie3 + 3B75:24FA idle _s_bossdie4 + 3B75:250A idle _s_bossshoot1 + 3B75:251A idle _s_bossshoot2 + 3B75:252A idle _s_bossshoot3 + 3B75:253A idle _s_bossshoot4 + 3B75:254A idle _s_bossshoot5 + 3B75:255A idle _s_bossshoot6 + 3B75:256A idle _s_bossshoot7 + 3B75:257A idle _s_bossshoot8 + 3B75:258A idle _s_gretelstand + 3B75:259A _s_gretelchase1 + 3B75:25AA idle _s_gretelchase1s + 3B75:25BA idle _s_gretelchase2 + 3B75:25CA idle _s_gretelchase3 + 3B75:25DA idle _s_gretelchase3s + 3B75:25EA idle _s_gretelchase4 + 3B75:25FA _s_greteldie1 + 3B75:260A idle _s_greteldie2 + 3B75:261A idle _s_greteldie3 + 3B75:262A idle _s_greteldie4 + 3B75:263A idle _s_gretelshoot1 + 3B75:264A idle _s_gretelshoot2 + 3B75:265A idle _s_gretelshoot3 + 3B75:266A idle _s_gretelshoot4 + 3B75:267A idle _s_gretelshoot5 + 3B75:268A idle _s_gretelshoot6 + 3B75:269A idle _s_gretelshoot7 + 3B75:26AA idle _s_gretelshoot8 + 3B75:26CC idle _s_schabbstand + 3B75:26DC _s_schabbchase1 + 3B75:26EC idle _s_schabbchase1s + 3B75:26FC idle _s_schabbchase2 + 3B75:270C idle _s_schabbchase3 + 3B75:271C idle _s_schabbchase3s + 3B75:272C idle _s_schabbchase4 + 3B75:273C idle _s_schabbdeathcam + 3B75:274C _s_schabbdie1 + 3B75:275C idle _s_schabbdie2 + 3B75:276C idle _s_schabbdie3 + 3B75:277C idle _s_schabbdie4 + 3B75:278C idle _s_schabbdie5 + 3B75:279C idle _s_schabbdie6 + 3B75:27AC idle _s_schabbshoot1 + 3B75:27BC idle _s_schabbshoot2 + 3B75:27CC idle _s_needle1 + 3B75:27DC idle _s_needle2 + 3B75:27EC idle _s_needle3 + 3B75:27FC idle _s_needle4 + 3B75:280C idle _s_giftstand + 3B75:281C _s_giftchase1 + 3B75:282C idle _s_giftchase1s + 3B75:283C idle _s_giftchase2 + 3B75:284C idle _s_giftchase3 + 3B75:285C idle _s_giftchase3s + 3B75:286C idle _s_giftchase4 + 3B75:287C idle _s_giftdeathcam + 3B75:288C _s_giftdie1 + 3B75:289C idle _s_giftdie2 + 3B75:28AC idle _s_giftdie3 + 3B75:28BC idle _s_giftdie4 + 3B75:28CC idle _s_giftdie5 + 3B75:28DC idle _s_giftdie6 + 3B75:28EC idle _s_giftshoot1 + 3B75:28FC idle _s_giftshoot2 + 3B75:290C idle _s_fatstand + 3B75:291C _s_fatchase1 + 3B75:292C idle _s_fatchase1s + 3B75:293C idle _s_fatchase2 + 3B75:294C idle _s_fatchase3 + 3B75:295C idle _s_fatchase3s + 3B75:296C idle _s_fatchase4 + 3B75:297C idle _s_fatdeathcam + 3B75:298C _s_fatdie1 + 3B75:299C idle _s_fatdie2 + 3B75:29AC idle _s_fatdie3 + 3B75:29BC idle _s_fatdie4 + 3B75:29CC idle _s_fatdie5 + 3B75:29DC idle _s_fatdie6 + 3B75:29EC idle _s_fatshoot1 + 3B75:29FC idle _s_fatshoot2 + 3B75:2A0C idle _s_fatshoot3 + 3B75:2A1C idle _s_fatshoot4 + 3B75:2A2C idle _s_fatshoot5 + 3B75:2A3C idle _s_fatshoot6 + 3B75:2A4C idle _s_fakestand + 3B75:2A5C _s_fakechase1 + 3B75:2A6C idle _s_fakechase1s + 3B75:2A7C idle _s_fakechase2 + 3B75:2A8C idle _s_fakechase3 + 3B75:2A9C idle _s_fakechase3s + 3B75:2AAC idle _s_fakechase4 + 3B75:2ABC _s_fakedie1 + 3B75:2ACC idle _s_fakedie2 + 3B75:2ADC idle _s_fakedie3 + 3B75:2AEC idle _s_fakedie4 + 3B75:2AFC idle _s_fakedie5 + 3B75:2B0C idle _s_fakedie6 + 3B75:2B1C idle _s_fakeshoot1 + 3B75:2B2C idle _s_fakeshoot2 + 3B75:2B3C idle _s_fakeshoot3 + 3B75:2B4C idle _s_fakeshoot4 + 3B75:2B5C idle _s_fakeshoot5 + 3B75:2B6C idle _s_fakeshoot6 + 3B75:2B7C idle _s_fakeshoot7 + 3B75:2B8C idle _s_fakeshoot8 + 3B75:2B9C idle _s_fakeshoot9 + 3B75:2BAC idle _s_fire1 + 3B75:2BBC idle _s_fire2 + 3B75:2BCC idle _s_mechastand + 3B75:2BDC _s_mechachase1 + 3B75:2BEC idle _s_mechachase1s + 3B75:2BFC idle _s_mechachase2 + 3B75:2C0C idle _s_mechachase3 + 3B75:2C1C idle _s_mechachase3s + 3B75:2C2C idle _s_mechachase4 + 3B75:2C3C _s_mechadie1 + 3B75:2C4C idle _s_mechadie2 + 3B75:2C5C idle _s_mechadie3 + 3B75:2C6C idle _s_mechadie4 + 3B75:2C7C idle _s_mechashoot1 + 3B75:2C8C idle _s_mechashoot2 + 3B75:2C9C idle _s_mechashoot3 + 3B75:2CAC idle _s_mechashoot4 + 3B75:2CBC idle _s_mechashoot5 + 3B75:2CCC idle _s_mechashoot6 + 3B75:2CDC _s_hitlerchase1 + 3B75:2CEC idle _s_hitlerchase1s + 3B75:2CFC idle _s_hitlerchase2 + 3B75:2D0C idle _s_hitlerchase3 + 3B75:2D1C idle _s_hitlerchase3s + 3B75:2D2C idle _s_hitlerchase4 + 3B75:2D3C idle _s_hitlerdeathcam + 3B75:2D4C _s_hitlerdie1 + 3B75:2D5C idle _s_hitlerdie2 + 3B75:2D6C idle _s_hitlerdie3 + 3B75:2D7C idle _s_hitlerdie4 + 3B75:2D8C idle _s_hitlerdie5 + 3B75:2D9C idle _s_hitlerdie6 + 3B75:2DAC idle _s_hitlerdie7 + 3B75:2DBC idle _s_hitlerdie8 + 3B75:2DCC idle _s_hitlerdie9 + 3B75:2DDC idle _s_hitlerdie10 + 3B75:2DEC idle _s_hitlershoot1 + 3B75:2DFC idle _s_hitlershoot2 + 3B75:2E0C idle _s_hitlershoot3 + 3B75:2E1C idle _s_hitlershoot4 + 3B75:2E2C idle _s_hitlershoot5 + 3B75:2E3C idle _s_hitlershoot6 + 3B75:2E54 idle _s_bjrun1 + 3B75:2E64 idle _s_bjrun1s + 3B75:2E74 idle _s_bjrun2 + 3B75:2E84 idle _s_bjrun3 + 3B75:2E94 idle _s_bjrun3s + 3B75:2EA4 idle _s_bjrun4 + 3B75:2EB4 idle _s_bjjump1 + 3B75:2EC4 idle _s_bjjump2 + 3B75:2ED4 idle _s_bjjump3 + 3B75:2EE4 idle _s_bjjump4 + 3B75:2EF4 _s_deathcam + 3B75:2F4A _gamepal + 3B75:324A _audioname + 3B75:3257 idle _gheadname + 3B75:3261 idle _gfilename + 3B75:326B idle _gdictname + 3B75:3275 idle _mheadname + 3B75:327F idle _mfilename + 3B75:3289 idle _aheadname + 3B75:3293 idle _afilename + 3B75:3354 idle _KbdDefs + 3B75:335E idle _DemoMode + 3B75:3510 idle _XMSProtectPage + 3B75:3512 _PageFileName + 3B75:3520 idle _PageFile + 3B75:352A idle _EMMDriverName + 3B75:39A0 idle _ssPort + 3B75:3D12 _USL_MeasureString + 3B75:3D16 idle _USL_DrawString + 3B75:3D1A _Scores + 3B75:3FC4 _screenseg + 3B75:3FCA idle _pixmasks + 3B75:3FCE idle _leftmasks + 3B75:3FD2 idle _rightmasks + 3B75:4090 __8087 + 3B75:40A0 __protected + 3B75:40A1 __LDT + 3B75:40A4 __default87 + 3B75:40A6 idle __huge_flt + 3B75:40AA __huge_dble + 3B75:40B2 idle __huge_ldble + 3B75:40BC idle __indefinite + 3B75:40C0 idle __tiny_ldble + 3B75:40CA __mathwhy + 3B75:4270 __emu + 3B75:4380 __atexitcnt + 3B75:4382 __ctype + 3B75:4484 __exitbuf + 3B75:4488 __exitfopen + 3B75:448C __exitopen + 3B75:4490 __streams + 3B75:45D0 __nfile + 3B75:45D2 __openfd + 3B75:45FA __fmode + 3B75:45FC __notUmask + 3B75:45FE __fpstklen + 3B75:4600 __heaplen + 3B75:4602 __doserrno + 3B75:4604 idle __dosErrorToSV + 3B75:4668 __stklen + 3B75:46D2 __video + 3B75:46E1 _directvideo + 3B75:471E idle __first + 3B75:4720 idle __last + 3B75:4722 idle __rover + 3B75:4724 __argc + 3B75:4726 __argv + 3B75:4732 _environ + 3B75:473A __RealCvtVector + 3B75:473E idle __ScanTodVector + 3B75:4944 __atexittbl + 3B75:49D2 ___SignalPtr + 3B75:49E4 _mr_dest + 3B75:49E6 _mr_yfrac + 3B75:49E8 _mr_xfrac + 3B75:49EA _mr_ystep + 3B75:49EC _mr_xstep + 3B75:49EE _mr_count + 3B75:49F0 _mr_rowofs + 3B75:49F2 _pcos + 3B75:49F6 _psin + 3B75:49FA _mirrorofs + 3B75:4AC2 _planeylookup + 3B75:4C52 _basedist + 3B75:4DE2 _stepscale + 3B75:4F72 _spanstart + 3B75:503A _viewcos + 3B75:503E _viewsin + 3B75:5042 _viewy + 3B75:5046 _viewx + 3B75:504A _wallheight + 3B75:52CA _scale + 3B75:52CE _viewheight + 3B75:52D0 _viewwidth + 3B75:52D2 _bufferofs + 3B75:52D4 _pwalldir + 3B75:52D6 _pwally + 3B75:52D8 _pwallx + 3B75:52DA _areabyplayer + 3B75:5324 _pwallstate + 3B75:5326 _doorposition + 3B75:53A6 _pwallpos + 3B75:53A8 _vertwall + 3B75:5428 _horizwall + 3B75:54A8 _viewsize + 3B75:54AA _joystickport + 3B75:54AC _joystickprogressive + 3B75:54AE _joypadenabled + 3B75:54B0 _joystickenabled + 3B75:54B2 _mouseenabled + 3B75:54B4 _update + 3B75:55B8 _actorat + 3B75:75B8 _tilemap + 3B75:85B8 _nearmapylookup + 3B75:8638 _farmapylookup + 3B75:86B8 _doorobjlist + 3B75:8938 _laststatobj + 3B75:893A _statobjlist + 3B75:95BA _player + 3B75:95BC _new + 3B75:95BE _playstate + 3B75:95C0 _gamestate + 3B75:9602 _minheightdiv + 3B75:9604 _heightnumerator + 3B75:9608 _maxslope + 3B75:960C _pixelangle + 3B75:988C _mouseadjustment + 3B75:988E _virtualreality + 3B75:9890 _startgame + 3B75:9892 _shootdelta + 3B75:9894 _centerx + 3B75:9896 _screenofs + 3B75:9898 _focallength + 3B75:989C _IsA386 + 3B75:989E _nospr + 3B75:98A0 _str2 + 3B75:98B4 _str + 3B75:9904 _LevelRatios + 3B75:9954 _backcolor + 3B75:9955 _blockstarts + 3B75:9B5D _uwidthtable + 3B75:9B77 _updateptr + 3B75:9B79 _WindowW + 3B75:9B7B _WindowY + 3B75:9B7D _WindowX + 3B75:9B7F _PrintY + 3B75:9B81 _NoWait + 3B75:9B83 _loadedgame + 3B75:9B85 _tedlevelnum + 3B75:9B87 _tedlevel + 3B75:9B89 _DigiMap + 3B75:9C37 _MusicMode + 3B75:9C39 _DigiMode + 3B75:9C3B _SoundMode + 3B75:9C3D _SoundBlasterPresent + 3B75:9C3F _SoundSourcePresent + 3B75:9C41 _AdLibPresent + 3B75:9C43 _JoysPresent + 3B75:9C47 _MousePresent + 3B75:9C49 _Keyboard + 3B75:9D49 _fontnumber + 3B75:9D4B _fontcolor + 3B75:9D4C _displayofs + 3B75:9D4E _grsegs + 3B75:9E78 _mminfo + 3B75:9E8C _layoutdone + 3B75:9E8E _picdelay + 3B75:9E90 _picnum + 3B75:9E92 _picy + 3B75:9E94 _picx + 3B75:9E96 _rowon + 3B75:9E98 _text + 3B75:9E9C _rightmargin + 3B75:9EBA _leftmargin + 3B75:9ED8 _numpages + 3B75:9EDA _pagenum + 3B75:9EDC _TimeCount + 3B75:9EE0 _LastScan + 3B75:9EE1 _py + 3B75:9EE3 _px + 3B75:9EE5 _pictable + 3B75:9EE7 _ca_levelbit + 3B75:9EE8 _pickquick + 3B75:9EEA _lasttimecount + 3B75:9EEE _SaveGameNames + 3B75:A02E _StartGame + 3B75:A030 _SaveGamesAvail + 3B75:A044 _WindowH + 3B75:A046 _PrintX + 3B75:A048 _ingame + 3B75:A04A _LastASCII + 3B75:A04B _Paused + 3B75:A04D _extension + 3B75:A052 _audiosegs + 3B75:A292 _EMSPagesAvail + 3B75:A294 _XMSPagesAvail + 3B75:A296 _EMSPresent + 3B75:A298 _XMSPresent + 3B75:A29A _mmerror + 3B75:A29C _mapon + 3B75:A29E _rightchannel + 3B75:A2A0 _leftchannel + 3B75:A2A2 _globalsoundy + 3B75:A2A6 _globalsoundx + 3B75:A2AA _demobuffer + 3B75:A2AC _lastdemoptr + 3B75:A2B0 _demoptr + 3B75:A2B4 _demoplayback + 3B75:A2B6 _demorecord + 3B75:A2B8 _killerobj + 3B75:A2BA _spearflag + 3B75:A2BC _spearangle + 3B75:A2BE _speary + 3B75:A2C2 _spearx + 3B75:A2C6 _fizzlein + 3B75:A2C8 _tics + 3B75:A2CA _mapheight + 3B75:A2CC _mapwidth + 3B75:A2CE _SoundPositioned + 3B75:A2D0 _latchpics + 3B75:A398 _mapheaderseg + 3B75:A410 _mapsegs + 3B75:A414 _funnyticount + 3B75:A418 _palshifted + 3B75:A41A _bonuscount + 3B75:A41C _damagecount + 3B75:A41E _objcount + 3B75:A420 _dummyobj + 3B75:A45C _mapwidthtable + 3B75:A4DC _DebugOk + 3B75:A4DE _facecount + 3B75:A4E0 _anglefrac + 3B75:A4E2 _running + 3B75:A4E4 _frameon + 3B75:A4E8 _buttonstate + 3B75:A4F8 _controly + 3B75:A4FA _controlx + 3B75:A4FC _buttonheld + 3B75:A50C _extravbls + 3B75:A50E _noclip + 3B75:A510 _godmode + 3B75:A512 _singlestep + 3B75:A514 _spotvis + 3B75:B514 _objfreelist + 3B75:B516 _lastobj + 3B75:B518 _obj + 3B75:B51A _objlist + 3B75:D842 _madenoise + 3B75:D844 _compatability + 3B75:D846 _screenfaded + 3B75:D848 _DigiList + 3B75:D84A _NumDigi + 3B75:D84C _viewtype + 3B75:D84E _maporgy + 3B75:D850 _maporgx + 3B75:D852 _postwidth + 3B75:D854 _postx + 3B75:D856 _postsource + 3B75:D85A _doornum + 3B75:D85C _PMPages + 3B75:D860 _PMSoundStart + 3B75:D862 _PMSpriteStart + 3B75:D864 _ChunksInFile + 3B75:D866 _farthest + 3B75:D868 _visstep + 3B75:D86A _visptr + 3B75:D86C _vislist + 3B75:D998 _ystep + 3B75:D99C _xstep + 3B75:D9A0 _yintercept + 3B75:D9A4 _xintercept + 3B75:D9A8 _ytilestep + 3B75:D9AA _xtilestep + 3B75:D9AC _ytile + 3B75:D9AE _xtile + 3B75:D9B0 _pixx + 3B75:D9B2 _tilehit + 3B75:D9B4 _yinttile + 3B75:D9B6 _xinttile + 3B75:D9B8 _ypartialdown + 3B75:D9BA _ypartialup + 3B75:D9BC _xpartialdown + 3B75:D9BE _xpartialup + 3B75:D9C0 _ypartial + 3B75:D9C2 _xpartial + 3B75:D9C4 _angle + 3B75:D9C6 _midangle + 3B75:D9C8 _viewty + 3B75:D9CA _viewtx + 3B75:D9CC _focalty + 3B75:D9CE _focaltx + 3B75:D9D0 _lasttilehit + 3B75:D9D2 _lastintercept + 3B75:D9D6 _lastside + 3B75:D9D8 _maxscaleshl2 + 3B75:D9DA _fullscalefarcall + 3B75:DDDE _viewangle + 3B75:DDE0 _mask3 + 3B75:DDE1 _mask2 + 3B75:DDE2 _mask1 + 3B75:DDE3 _maskword + 3B75:DDE5 _linescale + 3B75:DDE9 _linecmds + 3B75:DDED _slinewidth + 3B75:DDEF _slinex + 3B75:DDF1 _stepbytwo + 3B75:DDF3 _work + 3B75:DDF5 _insetupscaling + 3B75:DDF7 _maxscale + 3B75:DDF9 _scaledirectory + 3B75:DFFB _pluy + 3B75:DFFD _plux + 3B75:DFFF _playerymove + 3B75:E003 _playerxmove + 3B75:E007 _LastAttacker + 3B75:E009 _gotgatgun + 3B75:E00B _thrustspeed + 3B75:E00F _lastdoorobj + 3B75:E011 _oldsoundmode + 3B75:E013 _chunkexplen + 3B75:E017 _chunkcomplen + 3B75:E01B _audiohandle + 3B75:E01D _maphandle + 3B75:E01F _grhandle + 3B75:E021 _audiohuffman + 3B75:E41D _grhuffman + 3B75:E819 _audiostarts + 3B75:E81B _grstarts + 3B75:E81D _debughandle + 3B75:E81F _profilehandle + 3B75:E821 _ca_levelnum + 3B75:E822 _tinf + 3B75:E824 _bufferseg + 3B75:E826 _btnstate + 3B75:E836 _MouseDownCount + 3B75:E83A _JoyPadPresent + 3B75:E83C _DemoSize + 3B75:E83E _DemoOffset + 3B75:E840 _DemoBuffer + 3B75:E842 _Controls + 3B75:E84A _JoyDefs + 3B75:E87A _UMBbase + 3B75:E88E _numUMBs + 3B75:E890 _XMSaddr + 3B75:E894 _bombonerror + 3B75:E896 _mmnew + 3B75:E89A _mmrover + 3B75:E89E _mmfree + 3B75:E8A2 _mmhead + 3B75:E8A6 _nearheap + 3B75:E8A8 _farheap + 3B75:E8AC _mmstarted + 3B75:E8AE _aftersort + 3B75:E8B2 _beforesort + 3B75:E8B6 _PMSegPages + 3B75:E8B8 _PMFrameCount + 3B75:E8BC _PMNumBlocks + 3B75:E8BE _MainPagesUsed + 3B75:E8C0 _EMSPagesUsed + 3B75:E8C2 _XMSPagesUsed + 3B75:E8C4 _PMThrashing + 3B75:E8C6 _PMPanicMode + 3B75:E8C8 _PMStarted + 3B75:E8CA _XMSDriver + 3B75:E8CE _XMSHandle + 3B75:E8D0 _XMSAvail + 3B75:E8D2 _EMSList + 3B75:E8EA _EMSPhysicalPage + 3B75:E8EC _EMSPageFrame + 3B75:E8EE _EMSHandle + 3B75:E8F0 _EMSAvail + 3B75:E8F2 _MainPagesAvail + 3B75:E8F4 _MainMemUsed + 3B75:E9BC _MainMemPages + 3B75:EA84 _MainPresent + 3B75:EA86 _sqHackTime + 3B75:EA8A _sqHackSeqLen + 3B75:EA8C _sqHackLen + 3B75:EA8E _sqHackPtr + 3B75:EA92 _sqHack + 3B75:EA96 _sqActive + 3B75:EA98 _alZeroInst + 3B75:EAA8 _alTimeCount + 3B75:EAAC _alLengthLeft + 3B75:EAB0 _alBlock + 3B75:EAB2 _alSound + 3B75:EAB6 _alNoCheck + 3B75:EAB8 _pcSoundLookup + 3B75:ECB6 _pcLengthLeft + 3B75:ECBA _pcSound + 3B75:ECBE _pcLastSample + 3B75:ECBF _ssLengthLeft + 3B75:ECC3 _ssSample + 3B75:ECC7 _ssOff + 3B75:ECC8 _ssOn + 3B75:ECC9 _ssData + 3B75:ECCB _ssStatus + 3B75:ECCD _ssControl + 3B75:ECCF _ssActive + 3B75:ECD1 _ssNoCheck + 3B75:ECD3 _DigiLastEnd + 3B75:ECD5 _DigiLastStart + 3B75:ECD7 _DigiPage + 3B75:ECD9 _DigiLeft + 3B75:ECDB _TimerRate + 3B75:ECDD _LocalTime + 3B75:ECE1 _t0OldService + 3B75:ECE5 _RightPosition + 3B75:ECE7 _LeftPosition + 3B75:ECE9 _DigiPriority + 3B75:ECEB _SoundPriority + 3B75:ECED _DigiNumber + 3B75:ECEF _SoundNumber + 3B75:ECF1 _TimerCount + 3B75:ECF5 _TimerDivisor + 3B75:ECF9 _nextsoundpos + 3B75:ECFB _ssIsTandy + 3B75:ECFD _SoundTable + 3B75:ECFF _HackCount + 3B75:ED01 _NeedsDigitized + 3B75:ED03 _SBProPresent + 3B75:ED05 _DigiPlaying + 3B75:ED07 _NeedsMusic + 3B75:ED09 _Games + 3B75:EE05 _CursorY + 3B75:EE07 _CursorX + 3B75:EE09 _CursorBad + 3B75:EE0B _Button1 + 3B75:EE0D _Button0 + 3B75:EE0F _abortprogram + 3B75:EE11 _fastpalette + 3B75:EE13 _bordercolor + 3B75:EE15 _ylookup + 3B75:EFA5 _linewidth + 3B75:EFA7 _pelpan + 3B75:EFA9 _bufferheight + 3B75:EFAB _bufferwidth + +Program entry point at 0000:0000 + diff --git a/16/wf3d8086/oldscale.c b/16/wf3d8086/oldscale.c new file mode 100755 index 00000000..694b1c0f --- /dev/null +++ b/16/wf3d8086/oldscale.c @@ -0,0 +1,738 @@ +// WL_SCALE.C + +#include "WL_DEF.H" +#pragma hdrstop + +#define OP_RETF 0xcb + +/* +============================================================================= + + GLOBALS + +============================================================================= +*/ + +t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +long fullscalefarcall[MAXSCALEHEIGHT+1]; + +int maxscale,maxscaleshl2; + +/* +============================================================================= + + LOCALS + +============================================================================= +*/ + +t_compscale _seg *work; +unsigned BuildCompScale (int height, memptr *finalspot); + +int stepbytwo; + +//=========================================================================== + +/* +============== += += BadScale += +============== +*/ + +void far BadScale (void) +{ + Quit ("BadScale called!"); +} + + +/* +========================== += += SetupScaling += +========================== +*/ + +void SetupScaling (int maxscaleheight) +{ + int i,x,y; + byte far *dest; + + maxscaleheight/=2; // one scaler every two pixels + + maxscale = maxscaleheight-1; + maxscaleshl2 = maxscale<<2; + +// +// free up old scalers +// + for (i=1;i=stepbytwo) + i += 2; + } + memset (scaledirectory,0,sizeof(scaledirectory)); + + MM_SortMem (); + +// +// build the compiled scalers +// + stepbytwo = viewheight/2; // save space by double stepping + MM_GetPtr (&(memptr)work,20000); + if (mmerror) + return; + + for (i=1;i<=maxscaleheight;i++) + { + BuildCompScale (i*2,&(memptr)scaledirectory[i]); + if (mmerror) + { + MM_FreePtr (&(memptr)work); + return; + } + if (i>=stepbytwo) + i+= 2; + } + MM_FreePtr (&(memptr)work); + +// +// compact memory and lock down scalers +// + MM_SortMem (); + for (i=1;i<=maxscaleheight;i++) + { + MM_SetLock (&(memptr)scaledirectory[i],true); + fullscalefarcall[i] = (unsigned)scaledirectory[i]; + fullscalefarcall[i] <<=16; + fullscalefarcall[i] += scaledirectory[i]->codeofs[0]; + if (i>=stepbytwo) + { + scaledirectory[i+1] = scaledirectory[i]; + fullscalefarcall[i+1] = fullscalefarcall[i]; + scaledirectory[i+2] = scaledirectory[i]; + fullscalefarcall[i+2] = fullscalefarcall[i]; + i+=2; + } + } + scaledirectory[0] = scaledirectory[1]; + fullscalefarcall[0] = fullscalefarcall[1]; + +// +// check for oversize wall drawing +// + for (i=maxscaleheight;icode[0]; + toppix = (viewheight-height)/2; + fix = 0; + + for (src=0;src<=64;src++) + { + startpix = fix>>16; + fix += step; + endpix = fix>>16; + + if (endpix>startpix) + work->width[src] = endpix-startpix; + else + work->width[src] = 0; + +// +// mark the start of the code +// + work->codeofs[src] = FP_OFF(code); + +// +// compile some code if the source pixel generates any screen pixels +// + startpix+=toppix; + endpix+=toppix; + + if (startpix == endpix || endpix < 0 || startpix >= viewheight || src == 64) + continue; + + // + // mov al,[si+src] + // + *code++ = 0x8a; + *code++ = 0x44; + *code++ = src; + + for (;startpix= viewheight) + break; // off the bottom of the view area + if (startpix < 0) + continue; // not into the view area + + // + // mov [es:di+heightofs],al + // + *code++ = 0x26; + *code++ = 0x88; + *code++ = 0x85; + *((unsigned far *)code)++ = startpix*SCREENBWIDE; + } + + } + +// +// retf +// + *code++ = 0xcb; + + totalsize = FP_OFF(code); + MM_GetPtr (finalspot,totalsize); + if (mmerror) + return 0; + _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); + + return totalsize; +} + + +/* +======================= += += ScaleLine += += linescale should have the high word set to the segment of the scaler += +======================= +*/ + +extern int slinex,slinewidth; +extern unsigned far *linecmds; +extern long linescale; +extern unsigned maskword; + +byte mask1,mask2,mask3; + + +void near ScaleLine (void) +{ +asm mov cx,WORD PTR [linescale+2] +asm mov es,cx // segment of scaler + +asm mov bp,WORD PTR [linecmds] +asm mov dx,SC_INDEX+1 // to set SC_MAPMASK + +asm mov bx,[slinex] +asm mov di,bx +asm shr di,1 // X in bytes +asm shr di,1 +asm add di,[bufferofs] +asm and bx,3 +asm shl bx,3 +asm add bx,[slinewidth] // bx = (pixel*8+pixwidth) +asm mov al,BYTE [mapmasks3-1+bx] // -1 because pixwidth of 1 is first +asm mov ds,WORD PTR [linecmds+2] +asm or al,al +asm jz notthreebyte // scale across three bytes +asm jmp threebyte +notthreebyte: +asm mov al,BYTE PTR ss:[mapmasks2-1+bx] // -1 because pixwidth of 1 is first +asm or al,al +asm jnz twobyte // scale across two bytes + +// +// one byte scaling +// +asm mov al,BYTE PTR ss:[mapmasks1-1+bx] // -1 because pixwidth of 1 is first +asm out dx,al // set map mask register + +scalesingle: + +asm mov bx,[ds:bp] // table location of rtl to patch +asm or bx,bx +asm jz linedone // 0 signals end of segment list +asm mov bx,[es:bx] +asm mov dl,[es:bx] // save old value +asm mov BYTE PTR es:[bx],OP_RETF // patch a RETF in +asm mov si,[ds:bp+4] // table location of entry spot +asm mov ax,[es:si] +asm mov WORD PTR ss:[linescale],ax // call here to start scaling +asm mov si,[ds:bp+2] // corrected top of shape for this segment +asm add bp,6 // next segment list + +asm mov ax,SCREENSEG +asm mov es,ax +asm call ss:[linescale] // scale the segment of pixels + +asm mov es,cx // segment of scaler +asm mov BYTE PTR es:[bx],dl // unpatch the RETF +asm jmp scalesingle // do the next segment + + +// +// done +// +linedone: +asm mov ax,ss +asm mov ds,ax +return; + +// +// two byte scaling +// +twobyte: +asm mov ss:[mask2],al +asm mov al,BYTE PTR ss:[mapmasks1-1+bx] // -1 because pixwidth of 1 is first +asm mov ss:[mask1],al + +scaledouble: + +asm mov bx,[ds:bp] // table location of rtl to patch +asm or bx,bx +asm jz linedone // 0 signals end of segment list +asm mov bx,[es:bx] +asm mov cl,[es:bx] // save old value +asm mov BYTE PTR es:[bx],OP_RETF // patch a RETF in +asm mov si,[ds:bp+4] // table location of entry spot +asm mov ax,[es:si] +asm mov WORD PTR ss:[linescale],ax // call here to start scaling +asm mov si,[ds:bp+2] // corrected top of shape for this segment +asm add bp,6 // next segment list + +asm mov ax,SCREENSEG +asm mov es,ax +asm mov al,ss:[mask1] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm inc di +asm mov al,ss:[mask2] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm dec di + +asm mov es,WORD PTR ss:[linescale+2] // segment of scaler +asm mov BYTE PTR es:[bx],cl // unpatch the RETF +asm jmp scaledouble // do the next segment + + +// +// three byte scaling +// +threebyte: +asm mov ss:[mask3],al +asm mov al,BYTE PTR ss:[mapmasks2-1+bx] // -1 because pixwidth of 1 is first +asm mov ss:[mask2],al +asm mov al,BYTE PTR ss:[mapmasks1-1+bx] // -1 because pixwidth of 1 is first +asm mov ss:[mask1],al + +scaletriple: + +asm mov bx,[ds:bp] // table location of rtl to patch +asm or bx,bx +asm jz linedone // 0 signals end of segment list +asm mov bx,[es:bx] +asm mov cl,[es:bx] // save old value +asm mov BYTE PTR es:[bx],OP_RETF // patch a RETF in +asm mov si,[ds:bp+4] // table location of entry spot +asm mov ax,[es:si] +asm mov WORD PTR ss:[linescale],ax // call here to start scaling +asm mov si,[ds:bp+2] // corrected top of shape for this segment +asm add bp,6 // next segment list + +asm mov ax,SCREENSEG +asm mov es,ax +asm mov al,ss:[mask1] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm inc di +asm mov al,ss:[mask2] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm inc di +asm mov al,ss:[mask3] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm dec di +asm dec di + +asm mov es,WORD PTR ss:[linescale+2] // segment of scaler +asm mov BYTE PTR es:[bx],cl // unpatch the RETF +asm jmp scaletriple // do the next segment + + +} + + +/* +======================= += += ScaleShape += += Draws a compiled shape at [scale] pixels high += += each vertical line of the shape has a pointer to segment data: += end of segment pixel*2 (0 terminates line) used to patch rtl in scaler += top of virtual line with segment in proper place += start of segment pixel*2, used to jsl into compiled scaler += += += Setup for call += -------------- += GC_MODE read mode 1, write mode 2 += GC_COLORDONTCARE set to 0, so all reads from video memory return 0xff += GC_INDEX pointing at GC_BITMASK += +======================= +*/ + +static long longtemp; + +void ScaleShape (int xcenter, int shapenum, unsigned height) +{ + t_compshape _seg *shape; + t_compscale _seg *comptable; + unsigned scale,srcx,stopx,tempx; + int t; + unsigned far *cmdptr; + boolean leftvis,rightvis; + + + shape = PM_GetSpritePage (shapenum); + + scale = height>>3; // low three bits are fractional + if (!scale || scale>maxscale) + return; // too close or far away + comptable = scaledirectory[scale]; + + *(((unsigned *)&linescale)+1)=(unsigned)comptable; // seg of far call + *(((unsigned *)&linecmds)+1)=(unsigned)shape; // seg of shape + +// +// scale to the left (from pixel 31 to shape->leftpix) +// + srcx = 32; + slinex = xcenter; + stopx = shape->leftpix; + cmdptr = &shape->dataofs[31-stopx]; + + while ( --srcx >=stopx && slinex>0) + { + (unsigned)linecmds = *cmdptr--; + if ( !(slinewidth = comptable->width[srcx]) ) + continue; + + if (slinewidth == 1) + { + slinex--; + if (slinex= height) + continue; // obscured by closer wall + ScaleLine (); + } + continue; + } + + // + // handle multi pixel lines + // + if (slinex>viewwidth) + { + slinex -= slinewidth; + slinewidth = viewwidth-slinex; + if (slinewidth<1) + continue; // still off the right side + } + else + { + if (slinewidth>slinex) + slinewidth = slinex; + slinex -= slinewidth; + } + + + leftvis = (wallheight[slinex] < height); + rightvis = (wallheight[slinex+slinewidth-1] < height); + + if (leftvis) + { + if (rightvis) + ScaleLine (); + else + { + while (wallheight[slinex+slinewidth-1] >= height) + slinewidth--; + ScaleLine (); + } + } + else + { + if (!rightvis) + continue; // totally obscured + + while (wallheight[slinex] >= height) + { + slinex++; + slinewidth--; + } + ScaleLine (); + break; // the rest of the shape is gone + } + } + + +// +// scale to the right +// + slinex = xcenter; + stopx = shape->rightpix; + if (shape->leftpix<31) + { + srcx = 31; + cmdptr = &shape->dataofs[32-shape->leftpix]; + } + else + { + srcx = shape->leftpix-1; + cmdptr = &shape->dataofs[0]; + } + slinewidth = 0; + + while ( ++srcx <= stopx && (slinex+=slinewidth)width[srcx]) ) + continue; + + if (slinewidth == 1) + { + if (slinex>=0 && wallheight[slinex] < height) + { + ScaleLine (); + } + continue; + } + + // + // handle multi pixel lines + // + if (slinex<0) + { + if (slinewidth <= -slinex) + continue; // still off the left edge + + slinewidth += slinex; + slinex = 0; + } + else + { + if (slinex + slinewidth > viewwidth) + slinewidth = viewwidth-slinex; + } + + + leftvis = (wallheight[slinex] < height); + rightvis = (wallheight[slinex+slinewidth-1] < height); + + if (leftvis) + { + if (rightvis) + { + ScaleLine (); + } + else + { + while (wallheight[slinex+slinewidth-1] >= height) + slinewidth--; + ScaleLine (); + break; // the rest of the shape is gone + } + } + else + { + if (rightvis) + { + while (wallheight[slinex] >= height) + { + slinex++; + slinewidth--; + } + ScaleLine (); + } + else + continue; // totally obscured + } + } +} + + + +/* +======================= += += SimpleScaleShape += += NO CLIPPING, height in pixels += += Draws a compiled shape at [scale] pixels high += += each vertical line of the shape has a pointer to segment data: += end of segment pixel*2 (0 terminates line) used to patch rtl in scaler += top of virtual line with segment in proper place += start of segment pixel*2, used to jsl into compiled scaler += += += Setup for call += -------------- += GC_MODE read mode 1, write mode 2 += GC_COLORDONTCARE set to 0, so all reads from video memory return 0xff += GC_INDEX pointing at GC_BITMASK += +======================= +*/ + +void SimpleScaleShape (int xcenter, int shapenum, unsigned height) +{ + t_compshape _seg *shape; + t_compscale _seg *comptable; + unsigned scale,srcx,stopx,tempx; + int t; + unsigned far *cmdptr; + boolean leftvis,rightvis; + + + shape = PM_GetSpritePage (shapenum); + + scale = height>>1; + comptable = scaledirectory[scale]; + + *(((unsigned *)&linescale)+1)=(unsigned)comptable; // seg of far call + *(((unsigned *)&linecmds)+1)=(unsigned)shape; // seg of shape + +// +// scale to the left (from pixel 31 to shape->leftpix) +// + srcx = 32; + slinex = xcenter; + stopx = shape->leftpix; + cmdptr = &shape->dataofs[31-stopx]; + + while ( --srcx >=stopx ) + { + (unsigned)linecmds = *cmdptr--; + if ( !(slinewidth = comptable->width[srcx]) ) + continue; + + slinex -= slinewidth; + ScaleLine (); + } + + +// +// scale to the right +// + slinex = xcenter; + stopx = shape->rightpix; + if (shape->leftpix<31) + { + srcx = 31; + cmdptr = &shape->dataofs[32-shape->leftpix]; + } + else + { + srcx = shape->leftpix-1; + cmdptr = &shape->dataofs[0]; + } + slinewidth = 0; + + while ( ++srcx <= stopx ) + { + (unsigned)linecmds = *cmdptr++; + if ( !(slinewidth = comptable->width[srcx]) ) + continue; + + ScaleLine (); + slinex+=slinewidth; + } +} + + + + +// +// bit mask tables for drawing scaled strips up to eight pixels wide +// +// down here so the STUPID inline assembler doesn't get confused! +// + + +byte mapmasks1[4][8] = { +{1 ,3 ,7 ,15,15,15,15,15}, +{2 ,6 ,14,14,14,14,14,14}, +{4 ,12,12,12,12,12,12,12}, +{8 ,8 ,8 ,8 ,8 ,8 ,8 ,8} }; + +byte mapmasks2[4][8] = { +{0 ,0 ,0 ,0 ,1 ,3 ,7 ,15}, +{0 ,0 ,0 ,1 ,3 ,7 ,15,15}, +{0 ,0 ,1 ,3 ,7 ,15,15,15}, +{0 ,1 ,3 ,7 ,15,15,15,15} }; + +byte mapmasks3[4][8] = { +{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0}, +{0 ,0 ,0 ,0 ,0 ,0 ,0 ,1}, +{0 ,0 ,0 ,0 ,0 ,0 ,1 ,3}, +{0 ,0 ,0 ,0 ,0 ,1 ,3 ,7} }; + + +unsigned wordmasks[8][8] = { +{0x0080,0x00c0,0x00e0,0x00f0,0x00f8,0x00fc,0x00fe,0x00ff}, +{0x0040,0x0060,0x0070,0x0078,0x007c,0x007e,0x007f,0x807f}, +{0x0020,0x0030,0x0038,0x003c,0x003e,0x003f,0x803f,0xc03f}, +{0x0010,0x0018,0x001c,0x001e,0x001f,0x801f,0xc01f,0xe01f}, +{0x0008,0x000c,0x000e,0x000f,0x800f,0xc00f,0xe00f,0xf00f}, +{0x0004,0x0006,0x0007,0x8007,0xc007,0xe007,0xf007,0xf807}, +{0x0002,0x0003,0x8003,0xc003,0xe003,0xf003,0xf803,0xfc03}, +{0x0001,0x8001,0xc001,0xe001,0xf001,0xf801,0xfc01,0xfe01} }; + +int slinex,slinewidth; +unsigned far *linecmds; +long linescale; +unsigned maskword; + diff --git a/16/wf3d8086/piclist.h b/16/wf3d8086/piclist.h new file mode 100755 index 00000000..0b42d37b --- /dev/null +++ b/16/wf3d8086/piclist.h @@ -0,0 +1,36 @@ +////////////////////////////////////// +// +// Graphics .H file for .WL1 +// IGRAB-ed on Sat May 02 02:32:49 1992 +// +////////////////////////////////////// + +typedef enum { + // Lump Start + H_BJPIC=3, + H_CASTLEPIC, // 4 + H_KEYBOARDPIC, // 5 + H_JOYPIC, // 6 + H_MOUSEPIC, // 7 + H_BOTHPIC, // 8 + H_GAMEPADPIC, // 9 + H_HEALPIC, // 10 + H_TREASUREPIC, // 11 + H_GUNPIC, // 12 + H_KEYPIC, // 13 + H_BLAZEPIC, // 14 + H_WEAPON1234PIC, // 15 + H_WOLFLOGOPIC, // 16 + H_VISAPIC, // 17 + H_MCPIC, // 18 + H_IDLOGOPIC, // 19 + H_FAXPIC, // 20 + H_GALACTIXPIC, // 21 + H_FGODMOMPIC, // 22 + H_AUSTRALIAPIC, // 23 + H_CANADAPIC, // 24 + H_UKPIC, // 25 + H_TOPWINDOWPIC, // 26 + H_LEFTWINDOWPIC, // 27 + H_RIGHTWINDOWPIC, // 28 + H_BOTTOMINFOPIC, // 29 diff --git a/16/wf3d8086/readme.uso b/16/wf3d8086/readme.uso new file mode 100755 index 00000000..6287a54f --- /dev/null +++ b/16/wf3d8086/readme.uso @@ -0,0 +1,39 @@ +Wolfenstein Makefile and Compile-Time Patch, Version 1.00 +--------------------------------------------------------- + +Aha! Finally, I got it to build... + +Anyway, if you have Borland C++ 3 or later, download the original source +files, and extract this on top of them. You can then run the compiler +from the command line and get a working build. + + C:\WOLFDEV>make -f makefile.wl6 + +Or rename makefile.wl6 to makefile, being sure to edit the filename in the +makefile itself (used to generate wolf3d.cfg when the makefile is altered) +and then compile by typing simply "MAKE". Yeah! + +For best results, get a copy of UPX from http://upx.sourceforge.net/ and +compress it thus: + + C:\WOLFDEV\OBJ>upx --best --8086 wolf3d.exe + +The result will be a binary that works properly and is only 94K - hey, you +out-did id themselves! + +Hey, what else can you expect from a compiler jockey specializing in +Borland products for DOS-16? :) + +Steve "Usotsuki" Nickolas + +2003.0501 + +P.S.: For best results, change "steve" in the above address to "sysdev". +Both e-mail addresses work, but since I get a LOT (about 50 per day) of +junk mail at the above address, I have to filter it by hand, and I might +miss your message if I think the sender line or subject line looks like +a spammer. The other e-mail gets no spam, and I would like to keep it +that way! But if you have serious questions or comments, please e-mail +me there. + +-uso. diff --git a/16/wf3d8086/readme/license.doc b/16/wf3d8086/readme/license.doc new file mode 100755 index 00000000..e58e54ad --- /dev/null +++ b/16/wf3d8086/readme/license.doc @@ -0,0 +1,129 @@ + LIMITED USE SOFTWARE LICENSE AGREEMENT + + This Limited Use Software License Agreement (the "Agreement") +is a legal agreement between you, the end-user, and Id Software, Inc. +("ID"). By continuing the downloading of this Wolfenstein 3D +(the "Trademark") software material, which includes source code +(the "Source Code"), artwork data, music and software tools +(collectively, the "Software"), you are agreeing to be bound by the +terms of this Agreement. If you do not agree to the terms of this +Agreement, promptly destroy the Software you may have downloaded. + +ID SOFTWARE LICENSE + + Grant of License. ID grants to you the right to use one (1) +copy of the Software on a single computer. You have no ownership or +proprietary rights in or to the Software, or the Trademark. For purposes +of this section, "use" means loading the Software into RAM, as well as +installation on a hard disk or other storage device. The Software, +together with any archive copy thereof, shall be destroyed when no longer +used in accordance with this Agreement, or when the right to use the +Software is terminated. You agree that the Software will not be shipped, +transferred or exported into any country in violation of the U.S. +Export Administration Act (or any other law governing such matters) and +that you will not utilize, in any other manner, the Software in violation +of any applicable law. + + Permitted Uses. For educational purposes only, you, the end-user, +may use portions of the Source Code, such as particular routines, to +develop your own software, but may not duplicate the Source Code, except +as noted in paragraph 4. The limited right referenced in the preceding +sentence is hereinafter referred to as "Educational Use." By so exercising +the Educational Use right you shall not obtain any ownership, copyright, +proprietary or other interest in or to the Source Code, or any portion of +the Source Code. You may dispose of your own software in your sole +discretion. With the exception of the Educational Use right, you may not +otherwise use the Software, or an portion of the Software, which includes +the Source Code, for commercial gain. + + Prohibited Uses: Under no circumstances shall you, the end-user, +be permitted, allowed or authorized to commercially exploit the Software. +Neither you nor anyone at your direction shall do any of the following acts +with regard to the Software, or any portion thereof: + + Rent; + + Sell; + + Lease; + + Offer on a pay-per-play basis; + + Distribute for money or any other consideration; or + + In any other manner and through any medium whatsoever commercially +exploit or use for any commercial purpose. + +Notwithstanding the foregoing prohibitions, you may commercially exploit the +software you develop by exercising the Educational Use right, referenced in +paragraph 2. hereinabove. + + Copyright. The Software and all copyrights related thereto +(including all characters and other images generated by the Software +or depicted in the Software) are owned by ID and is protected by +United States copyright laws and international treaty provisions. +Id shall retain exclusive ownership and copyright in and to the Software +and all portions of the Software and you shall have no ownership or other +proprietary interest in such materials. You must treat the Software like +any other copyrighted material, except that you may either (a) make one +copy of the Software solely for back-up or archival purposes, or (b) +transfer the Software to a single hard disk provided you keep the original +solely for back-up or archival purposes. You may not otherwise reproduce, +copy or disclose to others, in whole or in any part, the Software. You +may not copy the written materials accompanying the Software. You agree +to use your best efforts to see that any user of the Software licensed +hereunder complies with this Agreement. + + NO WARRANTIES. ID DISCLAIMS ALL WARRANTIES, BOTH EXPRESS IMPLIED, +INCLUDING BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS FOR A PARTICULAR PURPOSE WITH RESPECT TO THE SOFTWARE. THIS LIMITED +WARRANTY GIVES YOU SPECIFIC LEGAL RIGHTS. YOU MAY HAVE OTHER RIGHTS WHICH +VARY FROM JURISDICTION TO JURISDICTION. ID DOES NOT WARRANT THAT THE +OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, ERROR FREE OR MEET YOUR +SPECIFIC REQUIREMENTS. THE WARRANTY SET FORTH ABOVE IS IN LIEU OF ALL OTHER +EXPRESS WARRANTIES WHETHER ORAL OR WRITTEN. THE AGENTS, EMPLOYEES, +DISTRIBUTORS, AND DEALERS OF ID ARE NOT AUTHORIZED TO MAKE MODIFICATIONS TO +THIS WARRANTY, OR ADDITIONAL WARRANTIES ON BEHALF OF ID. + + Exclusive Remedies. The Software is being offered to you free of any +charge. You agree that you have no remedy against ID, its affiliates, +contractors, suppliers, and agents for loss or damage caused by any defect +or failure in the Software regardless of the form of action, whether in +contract, tort, includinegligence, strict liability or otherwise, with +regard to the Software. This Agreement shall be construed in accordance +with and governed by the laws of the State of Texas. Copyright and other +proprietary matters will be governed by United States laws and international +treaties. IN ANY CASE, ID SHALL NOT BE LIABLE FOR LOSS OF DATA, LOSS OF +PROFITS, LOST SAVINGS, SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT OR OTHER +SIMILAR DAMAGES ARISING FROM BREACH OF WARRANTY, BREACH OF CONTRACT, +NEGLIGENCE, OR OTHER LEGAL THEORY EVEN IF ID OR ITS AGENT HAS BEEN ADVISED +OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. +Some jurisdictions do not allow the exclusion or limitation of incidental or +consequential damages, so the above limitation or exclusion may not apply to +you. + + General Provisions. Neither this Agreement nor any part or portion +hereof shall be assigned, sublicensed or otherwise transferred by you. +Should any provision of this Agreement be held to be void, invalid, +unenforceable or illegal by a court, the validity and enforceability of the +other provisions shall not be affected thereby. If any provision is +determined to be unenforceable, you agree to a modification of such +provision to provide for enforcement of the provision's intent, to the +extent permitted by applicable law. Failure of a party to enforce any +provision of this Agreement shall not constitute or be construed as a +waiver of such provision or of the right to enforce such provision. If +you fail to comply with any terms of this Agreement, YOUR LICENSE IS +AUTOMATICALLY TERMINATED and you agree to the issuance of an injunction +against you in favor of Id. You agree that Id shall not have to post +bond or other security to obtain an injunction against you to prohibit +you from violating Id's rights. + + YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, THAT YOU +UNDERSTAND THIS AGREEMENT, AND UNDERSTAND THAT BY CONTINUING THE +DOWNLOADING OF THE SOFTWARE, YOU AGREE TO BE BOUND BY THIS AGREEMENT'S +TERMS AND CONDITIONS. YOU FURTHER AGREE THAT, EXCEPT FOR WRITTEN SEPARATE +AGREEMENTS BETWEEN ID AND YOU, THIS AGREEMENT IS A COMPLETE AND EXCLUSIVE +STATEMENT OF THE RIGHTS AND LIABILITIES OF THE PARTIES. THIS AGREEMENT +SUPERSEDES ALL PRIOR ORAL AGREEMENTS, PROPOSALS OR UNDERSTANDINGS, AND +ANY OTHER COMMUNICATIONS BETWEEN ID AND YOU RELATING TO THE SUBJECT MATTER +OF THIS AGREEMENT diff --git a/16/wf3d8086/readme/readme.txt b/16/wf3d8086/readme/readme.txt new file mode 100755 index 00000000..b31d9cc6 --- /dev/null +++ b/16/wf3d8086/readme/readme.txt @@ -0,0 +1,8 @@ +NOTES: +------ + +This version will compile under BORLAND C++ 3.0/3.1 and compiled perfectly +before it was uploaded. + +Please do not send your questions to id Software. + diff --git a/16/wf3d8086/readme/release.txt b/16/wf3d8086/readme/release.txt new file mode 100755 index 00000000..d90bfeb9 --- /dev/null +++ b/16/wf3d8086/readme/release.txt @@ -0,0 +1,53 @@ +We are releasing this code for the entertainment of the +user community. We don't guarentee that anything even +builds in here. Projects just seem to rot when you leave +them alone for long periods of time. + +This is all the source we have relating to the original +PC wolfenstein 3D project. We haven't looked at this +stuff in years, and I would probably be horribly embarassed +to dig through my old code, so please don't ask any questions +about it. The original project was built in borland c++ 3.0. +I think some minor changes were required for later versions. + +You will need the data from a released version of wolf or spear +to use the exe built from this code. You can just use a +shareware version if you are really cheap. + + +Some coding comments in retrospect: + +The ray casting refresh architecture is still reasonably +appropriate for the game. A BSP based texture mapper could +go faster, but ray casting was a lot simpler to do at the time. + +The dynamically compiled scaling routines are now a Bad Thing. +On uncached machines (the original target) they are the fastest +possible way to scale walls, but on modern processors you just +wind up thrashing the code cash and wrecking performance. +A simple looping texture mapper would be faster on 486+ machines. + +The whole page manager caching scheme is unecessarily complex. + +Way too many #ifdefs in the code! + + +Some project ideas with this code: + +Add new monsters or weapons. + +Add taller walls and vertical motion. This should only be +done if the texture mapper is rewritten. + +Convert to a 32 bit compiler. This would be a fair amount +of work, but I would hate to even mess with crusty old 16 +bit code. The code would get a LOT smaller. + +Make a multi-player game that runs on DOOM sersetup / ipxsetup drivers. + + +Have fun... + +John Carmack +Technical Director +Id Software diff --git a/16/wf3d8086/rules.asi b/16/wf3d8086/rules.asi new file mode 100755 index 00000000..eba71112 --- /dev/null +++ b/16/wf3d8086/rules.asi @@ -0,0 +1,692 @@ +;[]-----------------------------------------------------------------[] +;| RULES.ASI -- Rules & Structures for assembler | +;| | +;| Turbo C++ Run Time Library | +;| | +;| Copyright (c) 1987, 1991 by Borland International Inc. | +;| All Rights Reserved. | +;[]-----------------------------------------------------------------[] + +;*** First we begin with a few of the major constants of C. + +false equ 0 ; Beware ! For incoming parameters, non-false = true. +true equ 1 ; For results, we generate the proper numbers. + +lesser equ -1 ; Incoming, lesser < 0 +equal equ 0 +greater equ 1 ; Incoming, greater > 0 + + PAGE +;[]------------------------------------------------------------[] +;| | +;| Conditional Assembly Directives | +;| | +;[]------------------------------------------------------------[] + +;memory model aliases, for the convenience of building the library + +IFDEF __s__ +__SMALL__ equ 1 +ENDIF + +IFDEF __c__ +__COMPACT__ equ 1 +ENDIF + +IFDEF __m__ +__MEDIUM__ equ 1 +ENDIF + +IFDEF __l__ +__LARGE__ equ 1 +ENDIF + +IFDEF __h__ +__HUGE__ equ 1 +ENDIF + +IFNDEF __TINY__ + IFNDEF __SMALL__ + IFNDEF __MEDIUM__ + IFNDEF __COMPACT__ + IFNDEF __LARGE__ + IFNDEF __HUGE__ + %OUT You must supply a model symbol. + .ERR + ENDIF + ENDIF + ENDIF + ENDIF + ENDIF +ENDIF + +;bit masks to extract default pointer types from MMODEL (at run-time) +FCODE equ 8000h +FDATA equ 4000h + +IFDEF __TINY__ ; Small Code - Small Data + LPROG equ false + LDATA equ false + MMODEL equ 0 + _DSSTACK_ equ <> +ENDIF + +IFDEF __SMALL__ ; Small Code - Small Data + LPROG equ false + LDATA equ false + MMODEL equ 1 + _DSSTACK_ equ <> +ENDIF + +IFDEF __MEDIUM__ ; Large Code - Small Data + LPROG equ true + LDATA equ false + MMODEL equ FCODE+2 + _DSSTACK_ equ <> +ENDIF + +IFDEF __COMPACT__ ; Small Code - Large Data + LPROG equ false + LDATA equ true + MMODEL equ FDATA+3 +ENDIF + +IFDEF __LARGE__ ; Large Code - Large Data + LPROG equ true + LDATA equ true + MMODEL equ FCODE+FDATA+4 +ENDIF + +IFDEF __HUGE__ ; Large Code - Large Data + LPROG equ true + LDATA equ true + MMODEL equ FCODE+FDATA+5 +ENDIF + +IF LPROG + DIST equ FAR +ELSE + DIST equ NEAR +ENDIF + + PAGE +;[]------------------------------------------------------------[] +;| | +;| Segment Declarations Macros | +;| | +;[]------------------------------------------------------------[] + +Code_Seg@ MACRO ;; Open a Code Segment +IFDEF __WINDOWS__ +_TEXT SEGMENT WORD PUBLIC 'CODE' +ELSE +_TEXT SEGMENT BYTE PUBLIC 'CODE' +ENDIF + ASSUME CS:_TEXT + ENDM + +Code_EndS@ MACRO ;; Close a Code Segment +_TEXT ENDS + ENDM + +Data_Seg@ MACRO ;; Open a Data Segment (initialized) +_DATA SEGMENT WORD PUBLIC 'DATA' + ENDM + +Data_EndS@ MACRO ;; Close a Data Segment (initialized) +_DATA ENDS + ENDM + +IFNDEF __HUGE__ + BSS_Seg@ MACRO ;; Open a Data Segment (un-initialized) + _BSS SEGMENT WORD PUBLIC 'BSS' + ENDM + + BSS_EndS@ MACRO ;; Close a Data Segment (un-initialized) + _BSS ENDS + ENDM +ENDIF + +FarData_Seg@ MACRO ;; Open a FAR Data Segment +_FARDATA SEGMENT PARA PUBLIC 'FAR_DATA' + ENDM + +FarData_EndS@ MACRO ;; Close a FAR Data Segment +_FARDATA ENDS + ENDM + +FarBSS_Seg@ MACRO ;; Open a FAR BSS Segment +_FARBSS SEGMENT PARA PUBLIC 'FAR_BSS' + ENDM + +FarBSS_EndS@ MACRO ;; Close a FAR BSS Segment +_FARBSS ENDS + ENDM + +Const_Seg@ MACRO ;; Open a CONST Segment +_CONST SEGMENT WORD PUBLIC 'CONST' + ENDM + +Const_EndS@ MACRO ;; Close a CONST Segment +_CONST ENDS + ENDM + +Init_Seg@ MACRO ;; Open a INIT Segment +_INIT_ SEGMENT WORD PUBLIC 'INITDATA' + ENDM + +Init_EndS@ MACRO ;; Close a INIT Segment +_INIT_ ENDS + ENDM + +Exit_Seg@ MACRO ;; Open a EXIT Segment +_EXIT_ SEGMENT WORD PUBLIC 'EXITDATA' + ENDM + +Exit_EndS@ MACRO ;; Close a EXIT Segment +_EXIT_ ENDS + ENDM + +CVT_Seg@ MACRO +_CVTSEG SEGMENT WORD PUBLIC 'DATA' + ENDM + +CVT_EndS@ MACRO +_CVTSEG ENDS + ENDM + +SCN_Seg@ MACRO +_SCNSEG SEGMENT WORD PUBLIC 'DATA' + ENDM + +SCN_EndS@ MACRO +_SCNSEG ENDS + ENDM + +Header@ MACRO +Code_Seg@ +Code_EndS@ +Data_Seg@ +Data_EndS@ +BSS_Seg@ +BSS_EndS@ + ASSUME CS:_TEXT, DS:DGROUP + ENDM + +;[]------------------------------------------------------------[] +;| | +;| Segment Definitions | +;| | +;[]------------------------------------------------------------[] + +IFDEF __C0__ + +IFDEF __WINDOWS__ +_TEXT SEGMENT WORD PUBLIC 'CODE' + ENDS +ELSE +_TEXT SEGMENT BYTE PUBLIC 'CODE' + ENDS +ENDIF + +_FARDATA SEGMENT PARA PUBLIC 'FAR_DATA' + ENDS + +_FARBSS SEGMENT PARA PUBLIC 'FAR_BSS' + ENDS + +IFNDEF __WINDOWS__ + IFNDEF __TINY__ + _OVERLAY_ SEGMENT PARA PUBLIC 'OVRINFO' + ENDS + _1STUB_ SEGMENT PARA PUBLIC 'STUBSEG' + ENDS + ENDIF +ENDIF + +IFDEF __WINDOWS__ +NULL SEGMENT PARA PUBLIC 'BEGDATA' + ENDS +ENDIF + +_DATA SEGMENT PARA PUBLIC 'DATA' + ENDS + ENDS + +_CONST SEGMENT WORD PUBLIC 'CONST' + ENDS + +IFDEF __WINDOWS__ +_FPSEG SEGMENT WORD PUBLIC 'DATA' + ENDS +ENDIF + +_CVTSEG SEGMENT WORD PUBLIC 'DATA' + ENDS + +_SCNSEG SEGMENT WORD PUBLIC 'DATA' + ENDS + +_INIT_ SEGMENT WORD PUBLIC 'INITDATA' +InitStart label byte + ENDS +_INITEND_ SEGMENT BYTE PUBLIC 'INITDATA' +InitEnd label byte + ENDS + +_EXIT_ SEGMENT WORD PUBLIC 'EXITDATA' +ExitStart label byte + ENDS +_EXITEND_ SEGMENT BYTE PUBLIC 'EXITDATA' +ExitEnd label byte + ENDS + +IFNDEF __HUGE__ +_BSS SEGMENT WORD PUBLIC 'BSS' +BeginBSS label byte + ENDS +_BSSEND SEGMENT BYTE PUBLIC 'BSSEND' +EndBSS label byte + ENDS +ENDIF + + +IFDEF __WINDOWS__ + + IFDEF __HUGE__ + DGROUP GROUP NULL,_DATA,_CONST,_FPSEG,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_ + ELSE + DGROUP GROUP NULL,_DATA,_CONST,_FPSEG,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_,_BSS,_BSSEND + ENDIF + +ELSE + +IFNDEF __NOFLOAT__ + IF LDATA + IFDEF __HUGE__ + DGROUP GROUP _DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_ + ELSE + DGROUP GROUP _DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_,_BSS,_BSSEND + ENDIF + ELSE + IFDEF __TINY__ + DGROUP GROUP _TEXT,_DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_,_BSS,_BSSEND + ELSE + DGROUP GROUP _DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_,_BSS,_BSSEND + ENDIF + ENDIF +ELSE + IF LDATA + IFDEF __HUGE__ + DGROUP GROUP _DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_ + ELSE + DGROUP GROUP _DATA,_CONST,_CVTSEG,_SCNSEG,_BSS,_BSSEND + ENDIF + ELSE + IFDEF __TINY__ + DGROUP GROUP _TEXT,_DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_,_BSS,_BSSEND + ELSE + DGROUP GROUP _DATA,_CONST,_CVTSEG,_SCNSEG,_INIT_,_INITEND_,_EXIT_,_EXITEND_,_BSS,_BSSEND + ENDIF + ENDIF +ENDIF ; __NOFLOAT__ + +ENDIF ; __WINDOWS__ + +ELSE + +Code_Seg@ +Code_EndS@ +Data_Seg@ +Data_EndS@ +DGROUP GROUP _DATA + +ENDIF ; __C0__ + + PAGE +;[]------------------------------------------------------------[] +;| | +;| Old Segment Declarations Macros | +;| | +;[]------------------------------------------------------------[] + + +CSeg@ MACRO ;; Open a Code Segment +IFDEF __WINDOWS__ +_TEXT SEGMENT WORD PUBLIC 'CODE' +ELSE +_TEXT SEGMENT BYTE PUBLIC 'CODE' +ENDIF + ASSUME CS:_TEXT + ENDM + +CSegEnd@ MACRO ;; Close a Code Segment +_TEXT ENDS + ENDM + +DSeg@ MACRO ;; Open a Data Segment (initialized) +_DATA SEGMENT WORD PUBLIC 'DATA' + ENDM + +DSegEnd@ MACRO ;; Close a Data Segment (initialized) +_DATA ENDS + ENDM + +IFDEF __BSS__ + IFNDEF __HUGE__ + BSeg@ MACRO ;; Open a Data Segment (un-initialized) + _BSS SEGMENT WORD PUBLIC 'BSS' + ENDM + + BSegEnd@ MACRO ;; Close a Data Segment (un-initialized) + _BSS ENDS + ENDM + ENDIF +ENDIF + +Header@ MACRO +IFDEF __WINDOWS__ +_TEXT SEGMENT WORD PUBLIC 'CODE' +ELSE +_TEXT SEGMENT BYTE PUBLIC 'CODE' +ENDIF +_TEXT ENDS +_DATA SEGMENT WORD PUBLIC 'DATA' +_DATA ENDS +IFDEF __BSS__ + IFNDEF __HUGE__ + _BSS SEGMENT WORD PUBLIC 'BSS' + _BSS ENDS + ENDIF +ENDIF + + ASSUME CS:_TEXT, DS:DGROUP + ENDM + + PAGE +;[]------------------------------------------------------------[] +;| | +;| C Naming Convention Macros | +;| | +;[]------------------------------------------------------------[] + +UNDERSCORE EQU 1 + +ExtSym@ MACRO Sym, sType, sName + IFNB + IFIDN , <__PASCAL__> +NAMING = 0 + ELSE +NAMING = UNDERSCORE + ENDIF + ENDIF + IF NAMING + EXTRN _&Sym : sType +Sym&@ equ _&Sym + ELSE + EXTRN Sym : sType +Sym&@ equ Sym + ENDIF + ENDM + +PubSym@ MACRO Sym, Definition, sName + IFNB + IFIDN , <__PASCAL__> +NAMING = 0 + ELSE +NAMING = UNDERSCORE + ENDIF + ENDIF + IF NAMING + PUBLIC _&Sym +_&Sym Definition +Sym&@ equ _&Sym + ELSE + PUBLIC Sym +Sym Definition +Sym&@ equ Sym + ENDIF + ENDM + +Static@ MACRO Sym, Definition, sName + IFNB + IFIDN , <__PASCAL__> +NAMING = 0 + ELSE +NAMING = UNDERSCORE + ENDIF + ENDIF + IF NAMING +_&Sym Definition +Sym&@ equ _&Sym + ELSE +Sym Definition +Sym&@ equ Sym + ENDIF + ENDM + + PAGE +;[]------------------------------------------------------------[] +;| | +;| Macros which are Data Size Dependent | +;| | +;[]------------------------------------------------------------[] + +IF LDATA +DPTR_ equ DWORD PTR +dPtrSize equ 4 +LES_ equ LES +ES_ equ ES: +SS_ equ SS: +LDS_ equ LDS + +pushDS_ MACRO + PUSH DS + ENDM + +popDS_ MACRO + POP DS + ENDM + +PushPtr MACRO dPtrOff, dPtrSeg + PUSH dPtrSeg + PUSH dPtrOff + ENDM + + +dPtr@ MACRO Sym, VALUE, sName ;; Static Data pointer +Static@ Sym,
, sName + ENDM + +dPtrPub@ MACRO Sym, VALUE, sName ;; Global Data Pointer +PubSym@ Sym,
, sName + ENDM + +dPtrExt@ MACRO Sym, sName ;; External Data Pointer +ExtSym@ Sym, DWORD, sName + ENDM +ELSE +DPTR_ equ WORD PTR +dPtrSize equ 2 +LES_ equ MOV +ES_ equ DS: +SS_ equ DS: +LDS_ equ MOV + +pushDS_ MACRO + ENDM + +popDS_ MACRO + ENDM + +PushPtr MACRO dPtrOff, dPtrSeg + PUSH dPtrOff + ENDM + +dPtr@ MACRO Sym, VALUE, sName ;; Static Data pointer +Static@ Sym, , sName + ENDM + +dPtrPub@ MACRO Sym, VALUE, sName ;; Global Data Pointer +PubSym@ Sym, , sName + ENDM + +dPtrExt@ MACRO Sym, sName ;; External Data Pointer +ExtSym@ Sym, WORD, sName + ENDM +ENDIF + PAGE +;[]------------------------------------------------------------[] +;| | +;| Macros which are Code Size Dependent | +;| | +;[]------------------------------------------------------------[] + +IF LPROG +CPTR_ equ DWORD PTR +cPtrSize equ 4 + +Proc@ MACRO Sym, sName ;; Open a Static function +Static@ Sym, , sName + ENDM + +PubProc@ MACRO Sym, sName ;; Open a Public function +PubSym@ Sym, , sName + ENDM + +ExtProc@ MACRO Sym, sName ;; External Function +ExtSym@ Sym, FAR, sName + ENDM + +cPtr@ MACRO Sym, VALUE, sName ;; Static Function pointer +Static@ Sym,
, sName + ENDM + +cPtrPub@ MACRO Sym, VALUE, sName;; Global Function Pointer +PubSym@ Sym,
, sName + ENDM + +cPtrExt@ MACRO Sym, sName ;; External Function Pointer +ExtSym@ Sym, DWORD, sName + ENDM +ELSE +CPTR_ equ WORD PTR +cPtrSize equ 2 + +Proc@ MACRO Sym, sName ;; Open a Static function +Static@ Sym, , sName + ENDM + +PubProc@ MACRO Sym, sName ;; Open a Public function +PubSym@ Sym, , sName + ENDM + +ExtProc@ MACRO Sym, sName ;; External Function +ExtSym@ Sym, NEAR, sName + ENDM + +cPtr@ MACRO Sym, VALUE, sName ;; Static Function pointer +Static@ Sym, , sName + ENDM + +cPtrPub@ MACRO Sym, VALUE, sName ;; Global Function Pointer +PubSym@ Sym, , sName + ENDM + +cPtrExt@ MACRO Sym, sName ;; External Function Pointer +ExtSym@ Sym, WORD, sName + ENDM +ENDIF + +EndProc@ MACRO Sym, sName ;; Close a function +Static@ Sym, ENDP, sName + ENDM + + PAGE +;[]------------------------------------------------------------[] +;| | +;| Miscellaneous Definitions | +;| | +;[]------------------------------------------------------------[] + +;*** Set up some macros for procedure parameters and export/import + +nearCall STRUC +nearBP dw ? +nearIP dw ? +nearParam dw ? +nearCall ENDS + +farCall STRUC +farBP dw ? +farCSIP dd ? +aParam dw ? +farCall ENDS + +;*** Next, we define some convenient structures to access the parts +; of larger objects. + +_twoBytes STRUC +BY0 db ? +BY1 db ? +_twoBytes ENDS + +_fourWords STRUC +W0 dw ? +W1 dw ? +W2 dw ? +W3 dw ? +_fourWords ENDS + +_twoDwords STRUC +DD0 dd ? +DD1 dd ? +_twoDwords ENDS + +_aFloat STRUC +double dq ? +_aFloat ENDS + +; How to invoke MSDOS. + +MSDOS@ MACRO + int 21h + ENDM + PAGE + +; The next section concerns the use of registers. SI and DI are used +; for register variables, and must be conserved. + +; Registers AX, BX, CX, DX will not be preserved across function calls. + +; Firstly, the registers to be conserved through function calls, including +; the setup of local variables. + +link@ MACRO _si,_di,_ES,locals + push bp + mov bp, sp + IFNB + lea sp, locals + ENDIF + IFNB <_si> + push si + ENDIF + IFNB <_di> + push di + ENDIF +ENDM + +unLink@ MACRO _si,_di,_ES,locals + IFNB <_di> + pop di + ENDIF + IFNB <_si> + pop si + ENDIF + IFNB + mov sp, bp + ENDIF + pop bp +ENDM + +.LIST diff --git a/16/wf3d8086/sdmver.h b/16/wf3d8086/sdmver.h new file mode 100755 index 00000000..e5f48728 --- /dev/null +++ b/16/wf3d8086/sdmver.h @@ -0,0 +1,8 @@ +#define SPEAR +#define SPEARDEMO +#define ARTSEXTERN +#define DEMOSEXTERN +#define CARMACIZED +//#define MYPROFILE +//#define DEBCHECK +//#define UPLOAD diff --git a/16/wf3d8086/sharemsg.h b/16/wf3d8086/sharemsg.h new file mode 100755 index 00000000..39c27974 --- /dev/null +++ b/16/wf3d8086/sharemsg.h @@ -0,0 +1,9 @@ +"This game is shareware.\n" +"Share it with everyone.\n" +"Thanks.\n\n" +" Id Software\n" + +"This game is NOT shareware.\n" +"Please do not distribute it.\n" +"Thanks.\n\n" +" Id Software\n" diff --git a/16/wf3d8086/sodver.h b/16/wf3d8086/sodver.h new file mode 100755 index 00000000..b964b80b --- /dev/null +++ b/16/wf3d8086/sodver.h @@ -0,0 +1,7 @@ +#define SPEAR +#define ARTSEXTERN +#define DEMOSEXTERN +#define CARMACIZED +//#define MYPROFILE +//#define DEBCHECK +//#define UPLOAD diff --git a/16/wf3d8086/spanish.h b/16/wf3d8086/spanish.h new file mode 100755 index 00000000..361ca499 --- /dev/null +++ b/16/wf3d8086/spanish.h @@ -0,0 +1,112 @@ +#define QUITSUR "Estas seguro que quieres\n"\ + "parar este gran juego?" + +#define CURGAME "Ahora estas en\n"\ + "un juego. Si continuas\n"\ + "borras el juego viejo. O.K.?" + +#define GAMESVD "Ya hay un juego\n"\ + "guardado en esta posicion.\n"\ + "sobre-escribir?" + +#define ENDGAMESTR "Estas seguro que quieres\n"\ + "terminar el juego que\n"\ + "estas jugando? (S o N):" + +#define STR_NG "Juego nuevo" +#define STR_SD "Sonido" +#define STR_CL "Control" +#define STR_LG "Cargar juego" +#define STR_SG "Guardar juego" +#define STR_CV "Cambiar vista" +#define STR_VS "Ver anotacion" +#define STR_EG "Abandonar" +#define STR_BD "Regresar al demo" +#define STR_QT "Parar" + +#define STR_LOADING "Cargando" +#define STR_SAVING "Guardando" + +#define STR_GAME "Regresar, jugar" +#define STR_DEMO "Regresar al Demo" +#define STR_LGC "Cargar juego llamado\n\"" +#define STR_EMPTY "vacio" +#define STR_CALIB "Calibrar" +#define STR_JOYST "Joystick" +#define STR_MOVEJOY "Mover joystick a\n"\ + "arriba izq y\n"\ + "oprimir boton 0\n" +#define STR_MOVEJOY2 "Mover joystick a\n"\ + "abajo derecha y\n"\ + "oprimir boton 1\n" +#define STR_ESCEXIT "ESC para salir" +#define STR_NONE "Ninguno" +#define STR_PC "P.C. bocina" +#define STR_ALSB "AdLib/Sound Blaster" +#define STR_DISNEY "Disney Sound Source" +#define STR_SB "Sound Blaster" + +#define STR_MOUSEEN "Raton activado" +#define STR_JOYEN "Joystick activado" +#define STR_PORT2 "Use joystick puerto 2" +#define STR_GAMEPAD "Gravis Gamepad Activada" +#define STR_SENS "Raton Sensibilidad" +#define STR_CUSTOM "Modificar controles" +#define STR_DADDY "Papi puedo jugar?" +#define STR_HURTME "No me hieras." +#define STR_BRINGEM "­Echamelos!" +#define STR_DEATH "La muerte encarnada" + +#define STR_MOUSEADJ "Raton ajustar sensibilidad" +#define STR_SLOW "Lento" +#define STR_FAST "Rapido" + +#define STR_CRUN "Corre" +#define STR_COPEN "Abre" +#define STR_CFIRE "Fuego" +#define STR_CSTRAFE "Ametrallar" + +#define STR_LEFT "Izquierda" +#define STR_RIGHT "Derecha" +#define STR_FRWD "Adelante" +#define STR_BKWD "Atras" +#define STR_THINK "Pensando" + +#define STR_SIZE1 "Use flechas para ajustar" +#define STR_SIZE2 "Enter para aceptar" +#define STR_SIZE3 "Esc para cancelar" + +#define STR_YOUWIN "Tu ganas" + +#define STR_TOTALTIME "Tiempo total" + +#define STR_RATKILL "Muertes %" +#define STR_RATSECRET "Secreto %" +#define STR_RATTREASURE "Tesoros %" + +#define STR_BONUS "Bono" +#define STR_TIME "Tiempo" +#define STR_PAR "Par" + +#define STR_RAT2KILL "Muertes %" // ratio = promedio +#define STR_RAT2SECRET "Secreto %" +#define STR_RAT2TREASURE "Tesoros %" + +#define STR_DEFEATED "Derrotado!" + +#define STR_CHEATER1 "Ahora tienes 100% salud" +#define STR_CHEATER2 "99 balas y dos llaves" +#define STR_CHEATER3 "Notar que has basicamente" +#define STR_CHEATER4 "eliminado tus chances de" +#define STR_CHEATER5 "obtener puntos altos" + +#define STR_NOSPACE1 "No hay suficiente espacio" +#define STR_NOSPACE2 "en tu disco para guardar juego" + +#define STR_SAVECHT1 "Tu archivo para guardar juego es" +#define STR_SAVECHT2 "diremos,\"corrupto\"." +#define STR_SAVECHT3 "Pero te dire, sigue y" +#define STR_SAVECHT4 "de todos modos juega" + +#define STR_SEEAGAIN "Veamos eso de nuevo" + diff --git a/16/wf3d8086/spanver.h b/16/wf3d8086/spanver.h new file mode 100755 index 00000000..b0f3f62b --- /dev/null +++ b/16/wf3d8086/spanver.h @@ -0,0 +1,8 @@ +//#define SPEAR +#define SPANISH +#define ARTSEXTERN +#define DEMOSEXTERN +//#define MYPROFILE +//#define DEBCHECK +#define CARMACIZED +//#define UPLOAD diff --git a/16/wf3d8086/sv.exe b/16/wf3d8086/sv.exe new file mode 100755 index 0000000000000000000000000000000000000000..72d3ff022660dc7c8740c9a819fd7559621977cf GIT binary patch literal 6746 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 literal 0 HcmV?d00001 diff --git a/16/wf3d8086/version.h b/16/wf3d8086/version.h new file mode 100755 index 00000000..05abb0e5 --- /dev/null +++ b/16/wf3d8086/version.h @@ -0,0 +1,10 @@ +//#define SPEAR +//#define JAPAN +#define GOODTIMES +#define ARTSEXTERN +#define DEMOSEXTERN +//#define MYPROFILE +//#define DEBCHECK +#define CARMACIZED +//#define UPLOAD + \ No newline at end of file diff --git a/16/wf3d8086/whack_a.asm b/16/wf3d8086/whack_a.asm new file mode 100755 index 00000000..45fd0980 --- /dev/null +++ b/16/wf3d8086/whack_a.asm @@ -0,0 +1,112 @@ +; WOLFHACK.ASM + +.386C +IDEAL +MODEL MEDIUM,C + + +;============================================================================ + +DATASEG + +EXTRN mr_rowofs:WORD +EXTRN mr_count:WORD +EXTRN mr_xstep:WORD +EXTRN mr_ystep:WORD +EXTRN mr_xfrac:WORD +EXTRN mr_yfrac:WORD +EXTRN mr_dest:WORD + +FARDATA + +planepics db 8192 dup(?) ; // 4k of ceiling, 4k of floor +PUBLIC planepics + + +;============================================================================ + +CODESEG + +;============================ +; +; MapRow +; +; +;============================ + +PROC MapRow +PUBLIC MapRow + push esi + push edi + push ebp + push ds + + mov bp,[mr_rowofs] + mov cx,[mr_count] + mov dx,[mr_ystep] + ;begin 8086 hack + ;shl edx,16 + push cx + mov cl,16 + shl edx,cl + pop cx + ;end 8086 hack + mov dx,[mr_xstep] + mov si,[mr_yfrac] + ;begin 8086 hack + ;shl esi,16 + push cx + mov cl,16 + shl esi,cl + pop cx + ;end 8086 hack + mov si,[mr_xfrac] + mov di,[mr_dest] + mov ax,SEG planepics + mov ds,ax + mov ax,0a000h + mov es,ax + mov ax,1111111111110b + +; eax color lookup +; ebx scratch offset and pixel values +; ecx loop counter +; edx packed x / y step values +; esi packed x / y fractional values +; edi write pointer +; ebp toprow to bottomrow delta +; es: screenseg +; ds: pictures + +; mov al,[esi] +; mov al,[eax] +; mov [edi],al + +; mov ax,[_variable+ebx+2] + + +pixelloop: + shld ebx,esi,22 ; shift y units in + shld ebx,esi,7 ; shift x units in and one extra bit + and bx,63*65*2 ; mask off extra top bits and 0 low bit + add esi,edx ; position += step + mov al,[bx] + mov al,[eax] + mov [es:di],al ; write ceiling pixel + mov al,[bx+1] + mov al,[eax] + mov [es:di+bp],al ; write floor pixel + inc di + loop pixelloop + + pop ds + pop ebp + pop edi + pop esi + + retf + +ENDP + +END + diff --git a/16/wf3d8086/wl_act1.c b/16/wf3d8086/wl_act1.c new file mode 100755 index 00000000..10d84e4e --- /dev/null +++ b/16/wf3d8086/wl_act1.c @@ -0,0 +1,900 @@ +// WL_ACT1.C + +#include "WL_DEF.H" +#pragma hdrstop + +/* +============================================================================= + + STATICS + +============================================================================= +*/ + + +statobj_t statobjlist[MAXSTATS],*laststatobj; + + +struct +{ + int picnum; + stat_t type; +} statinfo[] = +{ +{SPR_STAT_0}, // puddle spr1v +{SPR_STAT_1,block}, // Green Barrel " +{SPR_STAT_2,block}, // Table/chairs " +{SPR_STAT_3,block}, // Floor lamp " +{SPR_STAT_4}, // Chandelier " +{SPR_STAT_5,block}, // Hanged man " +{SPR_STAT_6,bo_alpo}, // Bad food " +{SPR_STAT_7,block}, // Red pillar " +// +// NEW PAGE +// +{SPR_STAT_8,block}, // Tree spr2v +{SPR_STAT_9}, // Skeleton flat " +{SPR_STAT_10,block}, // Sink " (SOD:gibs) +{SPR_STAT_11,block}, // Potted plant " +{SPR_STAT_12,block}, // Urn " +{SPR_STAT_13,block}, // Bare table " +{SPR_STAT_14}, // Ceiling light " +#ifndef SPEAR +{SPR_STAT_15}, // Kitchen stuff " +#else +{SPR_STAT_15,block}, // Gibs! +#endif +// +// NEW PAGE +// +{SPR_STAT_16,block}, // suit of armor spr3v +{SPR_STAT_17,block}, // Hanging cage " +{SPR_STAT_18,block}, // SkeletoninCage " +{SPR_STAT_19}, // Skeleton relax " +{SPR_STAT_20,bo_key1}, // Key 1 " +{SPR_STAT_21,bo_key2}, // Key 2 " +{SPR_STAT_22,block}, // stuff (SOD:gibs) +{SPR_STAT_23}, // stuff +// +// NEW PAGE +// +{SPR_STAT_24,bo_food}, // Good food spr4v +{SPR_STAT_25,bo_firstaid}, // First aid " +{SPR_STAT_26,bo_clip}, // Clip " +{SPR_STAT_27,bo_machinegun}, // Machine gun " +{SPR_STAT_28,bo_chaingun}, // Gatling gun " +{SPR_STAT_29,bo_cross}, // Cross " +{SPR_STAT_30,bo_chalice}, // Chalice " +{SPR_STAT_31,bo_bible}, // Bible " +// +// NEW PAGE +// +{SPR_STAT_32,bo_crown}, // crown spr5v +{SPR_STAT_33,bo_fullheal}, // one up " +{SPR_STAT_34,bo_gibs}, // gibs " +{SPR_STAT_35,block}, // barrel " +{SPR_STAT_36,block}, // well " +{SPR_STAT_37,block}, // Empty well " +{SPR_STAT_38,bo_gibs}, // Gibs 2 " +{SPR_STAT_39,block}, // flag " +// +// NEW PAGE +// +#ifndef SPEAR +{SPR_STAT_40,block}, // Call Apogee spr7v +#else +{SPR_STAT_40}, // Red light +#endif +// +// NEW PAGE +// +{SPR_STAT_41}, // junk " +{SPR_STAT_42}, // junk " +{SPR_STAT_43}, // junk " +#ifndef SPEAR +{SPR_STAT_44}, // pots " +#else +{SPR_STAT_44,block}, // Gibs! +#endif +{SPR_STAT_45,block}, // stove " (SOD:gibs) +{SPR_STAT_46,block}, // spears " (SOD:gibs) +{SPR_STAT_47}, // vines " +// +// NEW PAGE +// +#ifdef SPEAR +{SPR_STAT_48,block}, // marble pillar +{SPR_STAT_49,bo_25clip}, // bonus 25 clip +{SPR_STAT_50,block}, // truck +{SPR_STAT_51,bo_spear}, // SPEAR OF DESTINY! +#endif + +{SPR_STAT_26,bo_clip2}, // Clip " +{-1} // terminator +}; + +/* +=============== += += InitStaticList += +=============== +*/ + +void InitStaticList (void) +{ + laststatobj = &statobjlist[0]; +} + + + +/* +=============== += += SpawnStatic += +=============== +*/ + +void SpawnStatic (int tilex, int tiley, int type) +{ + laststatobj->shapenum = statinfo[type].picnum; + laststatobj->tilex = tilex; + laststatobj->tiley = tiley; + laststatobj->visspot = &spotvis[tilex][tiley]; + + switch (statinfo[type].type) + { + case block: + (unsigned)actorat[tilex][tiley] = 1; // consider it a blocking tile + case dressing: + laststatobj->flags = 0; + break; + + case bo_cross: + case bo_chalice: + case bo_bible: + case bo_crown: + case bo_fullheal: + if (!loadedgame) + gamestate.treasuretotal++; + + case bo_firstaid: + case bo_key1: + case bo_key2: + case bo_key3: + case bo_key4: + case bo_clip: + case bo_25clip: + case bo_machinegun: + case bo_chaingun: + case bo_food: + case bo_alpo: + case bo_gibs: + case bo_spear: + laststatobj->flags = FL_BONUS; + laststatobj->itemnumber = statinfo[type].type; + break; + } + + laststatobj++; + + if (laststatobj == &statobjlist[MAXSTATS]) + Quit ("Too many static objects!\n"); +} + + +/* +=============== += += PlaceItemType += += Called during game play to drop actors' items. It finds the proper += item number based on the item type (bo_???). If there are no free item += spots, nothing is done. += +=============== +*/ + +void PlaceItemType (int itemtype, int tilex, int tiley) +{ + int type; + statobj_t *spot; + +// +// find the item number +// + for (type=0 ; ; type++) + { + if (statinfo[type].picnum == -1) // end of list + Quit ("PlaceItemType: couldn't find type!"); + if (statinfo[type].type == itemtype) + break; + } + +// +// find a spot in statobjlist to put it in +// + for (spot=&statobjlist[0] ; ; spot++) + { + if (spot==laststatobj) + { + if (spot == &statobjlist[MAXSTATS]) + return; // no free spots + laststatobj++; // space at end + break; + } + + if (spot->shapenum == -1) // -1 is a free spot + break; + } +// +// place it +// + spot->shapenum = statinfo[type].picnum; + spot->tilex = tilex; + spot->tiley = tiley; + spot->visspot = &spotvis[tilex][tiley]; + spot->flags = FL_BONUS; + spot->itemnumber = statinfo[type].type; +} + + + +/* +============================================================================= + + DOORS + +doorobjlist[] holds most of the information for the doors + +doorposition[] holds the amount the door is open, ranging from 0 to 0xffff + this is directly accessed by AsmRefresh during rendering + +The number of doors is limited to 64 because a spot in tilemap holds the + door number in the low 6 bits, with the high bit meaning a door center + and bit 6 meaning a door side tile + +Open doors conect two areas, so sounds will travel between them and sight + will be checked when the player is in a connected area. + +Areaconnect is incremented/decremented by each door. If >0 they connect + +Every time a door opens or closes the areabyplayer matrix gets recalculated. + An area is true if it connects with the player's current spor. + +============================================================================= +*/ + +#define DOORWIDTH 0x7800 +#define OPENTICS 300 + +doorobj_t doorobjlist[MAXDOORS],*lastdoorobj; +int doornum; + +unsigned doorposition[MAXDOORS]; // leading edge of door 0=closed + // 0xffff = fully open + +byte far areaconnect[NUMAREAS][NUMAREAS]; + +boolean areabyplayer[NUMAREAS]; + + +/* +============== += += ConnectAreas += += Scans outward from playerarea, marking all connected areas += +============== +*/ + +void RecursiveConnect (int areanumber) +{ + int i; + + for (i=0;iareanumber] = true; + RecursiveConnect (player->areanumber); +} + + +void InitAreas (void) +{ + memset (areabyplayer,0,sizeof(areabyplayer)); + areabyplayer[player->areanumber] = true; +} + + + +/* +=============== += += InitDoorList += +=============== +*/ + +void InitDoorList (void) +{ + memset (areabyplayer,0,sizeof(areabyplayer)); + _fmemset (areaconnect,0,sizeof(areaconnect)); + + lastdoorobj = &doorobjlist[0]; + doornum = 0; +} + + +/* +=============== += += SpawnDoor += +=============== +*/ + +void SpawnDoor (int tilex, int tiley, boolean vertical, int lock) +{ + int areanumber; + unsigned far *map; + + if (doornum==64) + Quit ("64+ doors on level!"); + + doorposition[doornum] = 0; // doors start out fully closed + lastdoorobj->tilex = tilex; + lastdoorobj->tiley = tiley; + lastdoorobj->vertical = vertical; + lastdoorobj->lock = lock; + lastdoorobj->action = dr_closed; + + (unsigned)actorat[tilex][tiley] = doornum | 0x80; // consider it a solid wall + +// +// make the door tile a special tile, and mark the adjacent tiles +// for door sides +// + tilemap[tilex][tiley] = doornum | 0x80; + map = mapsegs[0] + farmapylookup[tiley]+tilex; + if (vertical) + { + *map = *(map-1); // set area number + tilemap[tilex][tiley-1] |= 0x40; + tilemap[tilex][tiley+1] |= 0x40; + } + else + { + *map = *(map-mapwidth); // set area number + tilemap[tilex-1][tiley] |= 0x40; + tilemap[tilex+1][tiley] |= 0x40; + } + + doornum++; + lastdoorobj++; +} + +//=========================================================================== + +/* +===================== += += OpenDoor += +===================== +*/ + +void OpenDoor (int door) +{ + if (doorobjlist[door].action == dr_open) + doorobjlist[door].ticcount = 0; // reset open time + else + doorobjlist[door].action = dr_opening; // start it opening +} + + +/* +===================== += += CloseDoor += +===================== +*/ + +void CloseDoor (int door) +{ + int tilex,tiley,area; + objtype *check; + +// +// don't close on anything solid +// + tilex = doorobjlist[door].tilex; + tiley = doorobjlist[door].tiley; + + if (actorat[tilex][tiley]) + return; + + if (player->tilex == tilex && player->tiley == tiley) + return; + + if (doorobjlist[door].vertical) + { + if ( player->tiley == tiley ) + { + if ( ((player->x+MINDIST) >>TILESHIFT) == tilex ) + return; + if ( ((player->x-MINDIST) >>TILESHIFT) == tilex ) + return; + } + check = actorat[tilex-1][tiley]; + if (check && ((check->x+MINDIST) >> TILESHIFT) == tilex ) + return; + check = actorat[tilex+1][tiley]; + if (check && ((check->x-MINDIST) >> TILESHIFT) == tilex ) + return; + } + else if (!doorobjlist[door].vertical) + { + if (player->tilex == tilex) + { + if ( ((player->y+MINDIST) >>TILESHIFT) == tiley ) + return; + if ( ((player->y-MINDIST) >>TILESHIFT) == tiley ) + return; + } + check = actorat[tilex][tiley-1]; + if (check && ((check->y+MINDIST) >> TILESHIFT) == tiley ) + return; + check = actorat[tilex][tiley+1]; + if (check && ((check->y-MINDIST) >> TILESHIFT) == tiley ) + return; + } + + +// +// play door sound if in a connected area +// + area = *(mapsegs[0] + farmapylookup[doorobjlist[door].tiley] + +doorobjlist[door].tilex)-AREATILE; + if (areabyplayer[area]) + { + PlaySoundLocTile(CLOSEDOORSND,doorobjlist[door].tilex,doorobjlist[door].tiley); // JAB + } + + doorobjlist[door].action = dr_closing; +// +// make the door space solid +// + (unsigned)actorat[tilex][tiley] + = door | 0x80; +} + + + +/* +===================== += += OperateDoor += += The player wants to change the door's direction += +===================== +*/ + +void OperateDoor (int door) +{ + int lock; + + lock = doorobjlist[door].lock; + if (lock >= dr_lock1 && lock <= dr_lock4) + { + if ( ! (gamestate.keys & (1 << (lock-dr_lock1) ) ) ) + { + SD_PlaySound (NOWAYSND); // locked + return; + } + } + + switch (doorobjlist[door].action) + { + case dr_closed: + case dr_closing: + OpenDoor (door); + break; + case dr_open: + case dr_opening: + CloseDoor (door); + break; + } +} + + +//=========================================================================== + +/* +=============== += += DoorOpen += += Close the door after three seconds += +=============== +*/ + +void DoorOpen (int door) +{ + if ( (doorobjlist[door].ticcount += tics) >= OPENTICS) + CloseDoor (door); +} + + + +/* +=============== += += DoorOpening += +=============== +*/ + +void DoorOpening (int door) +{ + int area1,area2; + unsigned far *map; + long position; + + position = doorposition[door]; + if (!position) + { + // + // door is just starting to open, so connect the areas + // + map = mapsegs[0] + farmapylookup[doorobjlist[door].tiley] + +doorobjlist[door].tilex; + + if (doorobjlist[door].vertical) + { + area1 = *(map+1); + area2 = *(map-1); + } + else + { + area1 = *(map-mapwidth); + area2 = *(map+mapwidth); + } + area1 -= AREATILE; + area2 -= AREATILE; + areaconnect[area1][area2]++; + areaconnect[area2][area1]++; + ConnectAreas (); + if (areabyplayer[area1]) + { + PlaySoundLocTile(OPENDOORSND,doorobjlist[door].tilex,doorobjlist[door].tiley); // JAB + } + } + +// +// slide the door by an adaptive amount +// + position += tics<<10; + if (position >= 0xffff) + { + // + // door is all the way open + // + position = 0xffff; + doorobjlist[door].ticcount = 0; + doorobjlist[door].action = dr_open; + actorat[doorobjlist[door].tilex][doorobjlist[door].tiley] = 0; + } + + doorposition[door] = position; +} + + +/* +=============== += += DoorClosing += +=============== +*/ + +void DoorClosing (int door) +{ + int area1,area2,move; + unsigned far *map; + long position; + int tilex,tiley; + + tilex = doorobjlist[door].tilex; + tiley = doorobjlist[door].tiley; + + if ( ((unsigned)actorat[tilex][tiley] != (door | 0x80)) + || (player->tilex == tilex && player->tiley == tiley) ) + { // something got inside the door + OpenDoor (door); + return; + }; + + position = doorposition[door]; + +// +// slide the door by an adaptive amount +// + position -= tics<<10; + if (position <= 0) + { + // + // door is closed all the way, so disconnect the areas + // + position = 0; + + doorobjlist[door].action = dr_closed; + + map = mapsegs[0] + farmapylookup[doorobjlist[door].tiley] + +doorobjlist[door].tilex; + + if (doorobjlist[door].vertical) + { + area1 = *(map+1); + area2 = *(map-1); + } + else + { + area1 = *(map-mapwidth); + area2 = *(map+mapwidth); + } + area1 -= AREATILE; + area2 -= AREATILE; + areaconnect[area1][area2]--; + areaconnect[area2][area1]--; + + ConnectAreas (); + } + + doorposition[door] = position; +} + + + + +/* +===================== += += MoveDoors += += Called from PlayLoop += +===================== +*/ + +void MoveDoors (void) +{ + int door; + + if (gamestate.victoryflag) // don't move door during victory sequence + return; + + for (door = 0 ; door < doornum ; door++) + switch (doorobjlist[door].action) + { + case dr_open: + DoorOpen (door); + break; + + case dr_opening: + DoorOpening(door); + break; + + case dr_closing: + DoorClosing(door); + break; + } +} + + +/* +============================================================================= + + PUSHABLE WALLS + +============================================================================= +*/ + +unsigned pwallstate; +unsigned pwallpos; // amount a pushable wall has been moved (0-63) +unsigned pwallx,pwally; +int pwalldir; + +/* +=============== += += PushWall += +=============== +*/ + +void PushWall (int checkx, int checky, int dir) +{ + int oldtile; + + if (pwallstate) + return; + + + oldtile = tilemap[checkx][checky]; + if (!oldtile) + return; + + switch (dir) + { + case di_north: + if (actorat[checkx][checky-1]) + { + SD_PlaySound (NOWAYSND); + return; + } + (unsigned)actorat[checkx][checky-1] = + tilemap[checkx][checky-1] = oldtile; + break; + + case di_east: + if (actorat[checkx+1][checky]) + { + SD_PlaySound (NOWAYSND); + return; + } + (unsigned)actorat[checkx+1][checky] = + tilemap[checkx+1][checky] = oldtile; + break; + + case di_south: + if (actorat[checkx][checky+1]) + { + SD_PlaySound (NOWAYSND); + return; + } + (unsigned)actorat[checkx][checky+1] = + tilemap[checkx][checky+1] = oldtile; + break; + + case di_west: + if (actorat[checkx-1][checky]) + { + SD_PlaySound (NOWAYSND); + return; + } + (unsigned)actorat[checkx-1][checky] = + tilemap[checkx-1][checky] = oldtile; + break; + } + + gamestate.secretcount++; + pwallx = checkx; + pwally = checky; + pwalldir = dir; + pwallstate = 1; + pwallpos = 0; + tilemap[pwallx][pwally] |= 0xc0; + *(mapsegs[1]+farmapylookup[pwally]+pwallx) = 0; // remove P tile info + + SD_PlaySound (PUSHWALLSND); +} + + + +/* +================= += += MovePWalls += +================= +*/ + +void MovePWalls (void) +{ + int oldblock,oldtile; + + if (!pwallstate) + return; + + oldblock = pwallstate/128; + + pwallstate += tics; + + if (pwallstate/128 != oldblock) + { + // block crossed into a new block + oldtile = tilemap[pwallx][pwally] & 63; + + // + // the tile can now be walked into + // + tilemap[pwallx][pwally] = 0; + (unsigned)actorat[pwallx][pwally] = 0; + *(mapsegs[0]+farmapylookup[pwally]+pwallx) = player->areanumber+AREATILE; + + // + // see if it should be pushed farther + // + if (pwallstate>256) + { + // + // the block has been pushed two tiles + // + pwallstate = 0; + return; + } + else + { + switch (pwalldir) + { + case di_north: + pwally--; + if (actorat[pwallx][pwally-1]) + { + pwallstate = 0; + return; + } + (unsigned)actorat[pwallx][pwally-1] = + tilemap[pwallx][pwally-1] = oldtile; + break; + + case di_east: + pwallx++; + if (actorat[pwallx+1][pwally]) + { + pwallstate = 0; + return; + } + (unsigned)actorat[pwallx+1][pwally] = + tilemap[pwallx+1][pwally] = oldtile; + break; + + case di_south: + pwally++; + if (actorat[pwallx][pwally+1]) + { + pwallstate = 0; + return; + } + (unsigned)actorat[pwallx][pwally+1] = + tilemap[pwallx][pwally+1] = oldtile; + break; + + case di_west: + pwallx--; + if (actorat[pwallx-1][pwally]) + { + pwallstate = 0; + return; + } + (unsigned)actorat[pwallx-1][pwally] = + tilemap[pwallx-1][pwally] = oldtile; + break; + } + + tilemap[pwallx][pwally] = oldtile | 0xc0; + } + } + + + pwallpos = (pwallstate/2)&63; + +} + diff --git a/16/wf3d8086/wl_act2.c b/16/wf3d8086/wl_act2.c new file mode 100755 index 00000000..d9d99a0b --- /dev/null +++ b/16/wf3d8086/wl_act2.c @@ -0,0 +1,3872 @@ +// WL_ACT2.C + +#include "WL_DEF.H" +#pragma hdrstop + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + +#define PROJECTILESIZE 0xc000l + +#define BJRUNSPEED 2048 +#define BJJUMPSPEED 680 + + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + + + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + +dirtype dirtable[9] = {northwest,north,northeast,west,nodir,east, + southwest,south,southeast}; + +int starthitpoints[4][NUMENEMIES] = + // + // BABY MODE + // + { + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + 850, // Hans + 850, // Schabbs + 200, // fake hitler + 800, // mecha hitler + 45, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 850, // Gretel + 850, // Gift + 850, // Fat + 5, // en_spectre, + 1450, // en_angel, + 850, // en_trans, + 1050, // en_uber, + 950, // en_will, + 1250 // en_death + }, + // + // DON'T HURT ME MODE + // + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + 950, // Hans + 950, // Schabbs + 300, // fake hitler + 950, // mecha hitler + 55, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 950, // Gretel + 950, // Gift + 950, // Fat + 10, // en_spectre, + 1550, // en_angel, + 950, // en_trans, + 1150, // en_uber, + 1050, // en_will, + 1350 // en_death + }, + // + // BRING 'EM ON MODE + // + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + + 1050, // Hans + 1550, // Schabbs + 400, // fake hitler + 1050, // mecha hitler + + 55, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 1050, // Gretel + 1050, // Gift + 1050, // Fat + 15, // en_spectre, + 1650, // en_angel, + 1050, // en_trans, + 1250, // en_uber, + 1150, // en_will, + 1450 // en_death + }, + // + // DEATH INCARNATE MODE + // + {25, // guards + 50, // officer + 100, // SS + 1, // dogs + + 1200, // Hans + 2400, // Schabbs + 500, // fake hitler + 1200, // mecha hitler + + 65, // mutants + 25, // ghosts + 25, // ghosts + 25, // ghosts + 25, // ghosts + + 1200, // Gretel + 1200, // Gift + 1200, // Fat + 25, // en_spectre, + 2000, // en_angel, + 1200, // en_trans, + 1400, // en_uber, + 1300, // en_will, + 1600 // en_death + }} + ; + +void A_StartDeathCam (objtype *ob); + + +void T_Path (objtype *ob); +void T_Shoot (objtype *ob); +void T_Bite (objtype *ob); +void T_DogChase (objtype *ob); +void T_Chase (objtype *ob); +void T_Projectile (objtype *ob); +void T_Stand (objtype *ob); + +void A_DeathScream (objtype *ob); + +extern statetype s_rocket; +extern statetype s_smoke1; +extern statetype s_smoke2; +extern statetype s_smoke3; +extern statetype s_smoke4; +extern statetype s_boom2; +extern statetype s_boom3; + +void A_Smoke (objtype *ob); + +statetype s_rocket = {true,SPR_ROCKET_1,3,T_Projectile,A_Smoke,&s_rocket}; +statetype s_smoke1 = {false,SPR_SMOKE_1,3,NULL,NULL,&s_smoke2}; +statetype s_smoke2 = {false,SPR_SMOKE_2,3,NULL,NULL,&s_smoke3}; +statetype s_smoke3 = {false,SPR_SMOKE_3,3,NULL,NULL,&s_smoke4}; +statetype s_smoke4 = {false,SPR_SMOKE_4,3,NULL,NULL,NULL}; + +statetype s_boom1 = {false,SPR_BOOM_1,6,NULL,NULL,&s_boom2}; +statetype s_boom2 = {false,SPR_BOOM_2,6,NULL,NULL,&s_boom3}; +statetype s_boom3 = {false,SPR_BOOM_3,6,NULL,NULL,NULL}; + +#ifdef SPEAR + +extern statetype s_hrocket; +extern statetype s_hsmoke1; +extern statetype s_hsmoke2; +extern statetype s_hsmoke3; +extern statetype s_hsmoke4; +extern statetype s_hboom2; +extern statetype s_hboom3; + +void A_Smoke (objtype *ob); + +statetype s_hrocket = {true,SPR_HROCKET_1,3,T_Projectile,A_Smoke,&s_hrocket}; +statetype s_hsmoke1 = {false,SPR_HSMOKE_1,3,NULL,NULL,&s_hsmoke2}; +statetype s_hsmoke2 = {false,SPR_HSMOKE_2,3,NULL,NULL,&s_hsmoke3}; +statetype s_hsmoke3 = {false,SPR_HSMOKE_3,3,NULL,NULL,&s_hsmoke4}; +statetype s_hsmoke4 = {false,SPR_HSMOKE_4,3,NULL,NULL,NULL}; + +statetype s_hboom1 = {false,SPR_HBOOM_1,6,NULL,NULL,&s_hboom2}; +statetype s_hboom2 = {false,SPR_HBOOM_2,6,NULL,NULL,&s_hboom3}; +statetype s_hboom3 = {false,SPR_HBOOM_3,6,NULL,NULL,NULL}; + +#endif + +void T_Schabb (objtype *ob); +void T_SchabbThrow (objtype *ob); +void T_Fake (objtype *ob); +void T_FakeFire (objtype *ob); +void T_Ghosts (objtype *ob); + +void A_Slurpie (objtype *ob); +void A_HitlerMorph (objtype *ob); +void A_MechaSound (objtype *ob); + +/* +================= += += A_Smoke += +================= +*/ + +void A_Smoke (objtype *ob) +{ + GetNewActor (); +#ifdef SPEAR + if (ob->obclass == hrocketobj) + new->state = &s_hsmoke1; + else +#endif + new->state = &s_smoke1; + new->ticcount = 6; + + new->tilex = ob->tilex; + new->tiley = ob->tiley; + new->x = ob->x; + new->y = ob->y; + new->obclass = inertobj; + new->active = true; + + new->flags = FL_NEVERMARK; +} + + +/* +=================== += += ProjectileTryMove += += returns true if move ok +=================== +*/ + +#define PROJSIZE 0x2000 + +boolean ProjectileTryMove (objtype *ob) +{ + int xl,yl,xh,yh,x,y; + objtype *check; + long deltax,deltay; + + xl = (ob->x-PROJSIZE) >>TILESHIFT; + yl = (ob->y-PROJSIZE) >>TILESHIFT; + + xh = (ob->x+PROJSIZE) >>TILESHIFT; + yh = (ob->y+PROJSIZE) >>TILESHIFT; + +// +// check for solid walls +// + for (y=yl;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + check = actorat[x][y]; + if (check && checkspeed*tics; + + deltax = FixedByFrac(speed,costable[ob->angle]); + deltay = -FixedByFrac(speed,sintable[ob->angle]); + + if (deltax>0x10000l) + deltax = 0x10000l; + if (deltay>0x10000l) + deltay = 0x10000l; + + ob->x += deltax; + ob->y += deltay; + + deltax = LABS(ob->x - player->x); + deltay = LABS(ob->y - player->y); + + if (!ProjectileTryMove (ob)) + { + if (ob->obclass == rocketobj) + { + PlaySoundLocActor(MISSILEHITSND,ob); + ob->state = &s_boom1; + } +#ifdef SPEAR + else if (ob->obclass == hrocketobj) + { + PlaySoundLocActor(MISSILEHITSND,ob); + ob->state = &s_hboom1; + } +#endif + else + ob->state = NULL; // mark for removal + + return; + } + + if (deltax < PROJECTILESIZE && deltay < PROJECTILESIZE) + { // hit the player + switch (ob->obclass) + { + case needleobj: + damage = (US_RndT() >>3) + 20; + break; + case rocketobj: + case hrocketobj: + case sparkobj: + damage = (US_RndT() >>3) + 30; + break; + case fireobj: + damage = (US_RndT() >>3); + break; + } + + TakeDamage (damage,ob); + ob->state = NULL; // mark for removal + return; + } + + ob->tilex = ob->x >> TILESHIFT; + ob->tiley = ob->y >> TILESHIFT; + +} + + + + +/* +============================================================================= + + GUARD + +============================================================================= +*/ + +// +// guards +// + +extern statetype s_grdstand; + +extern statetype s_grdpath1; +extern statetype s_grdpath1s; +extern statetype s_grdpath2; +extern statetype s_grdpath3; +extern statetype s_grdpath3s; +extern statetype s_grdpath4; + +extern statetype s_grdpain; +extern statetype s_grdpain1; + +extern statetype s_grdgiveup; + +extern statetype s_grdshoot1; +extern statetype s_grdshoot2; +extern statetype s_grdshoot3; +extern statetype s_grdshoot4; + +extern statetype s_grdchase1; +extern statetype s_grdchase1s; +extern statetype s_grdchase2; +extern statetype s_grdchase3; +extern statetype s_grdchase3s; +extern statetype s_grdchase4; + +extern statetype s_grddie1; +extern statetype s_grddie1d; +extern statetype s_grddie2; +extern statetype s_grddie3; +extern statetype s_grddie4; + +statetype s_grdstand = {true,SPR_GRD_S_1,0,T_Stand,NULL,&s_grdstand}; + +statetype s_grdpath1 = {true,SPR_GRD_W1_1,20,T_Path,NULL,&s_grdpath1s}; +statetype s_grdpath1s = {true,SPR_GRD_W1_1,5,NULL,NULL,&s_grdpath2}; +statetype s_grdpath2 = {true,SPR_GRD_W2_1,15,T_Path,NULL,&s_grdpath3}; +statetype s_grdpath3 = {true,SPR_GRD_W3_1,20,T_Path,NULL,&s_grdpath3s}; +statetype s_grdpath3s = {true,SPR_GRD_W3_1,5,NULL,NULL,&s_grdpath4}; +statetype s_grdpath4 = {true,SPR_GRD_W4_1,15,T_Path,NULL,&s_grdpath1}; + +statetype s_grdpain = {2,SPR_GRD_PAIN_1,10,NULL,NULL,&s_grdchase1}; +statetype s_grdpain1 = {2,SPR_GRD_PAIN_2,10,NULL,NULL,&s_grdchase1}; + +statetype s_grdshoot1 = {false,SPR_GRD_SHOOT1,20,NULL,NULL,&s_grdshoot2}; +statetype s_grdshoot2 = {false,SPR_GRD_SHOOT2,20,NULL,T_Shoot,&s_grdshoot3}; +statetype s_grdshoot3 = {false,SPR_GRD_SHOOT3,20,NULL,NULL,&s_grdchase1}; + +statetype s_grdchase1 = {true,SPR_GRD_W1_1,10,T_Chase,NULL,&s_grdchase1s}; +statetype s_grdchase1s = {true,SPR_GRD_W1_1,3,NULL,NULL,&s_grdchase2}; +statetype s_grdchase2 = {true,SPR_GRD_W2_1,8,T_Chase,NULL,&s_grdchase3}; +statetype s_grdchase3 = {true,SPR_GRD_W3_1,10,T_Chase,NULL,&s_grdchase3s}; +statetype s_grdchase3s = {true,SPR_GRD_W3_1,3,NULL,NULL,&s_grdchase4}; +statetype s_grdchase4 = {true,SPR_GRD_W4_1,8,T_Chase,NULL,&s_grdchase1}; + +statetype s_grddie1 = {false,SPR_GRD_DIE_1,15,NULL,A_DeathScream,&s_grddie2}; +statetype s_grddie2 = {false,SPR_GRD_DIE_2,15,NULL,NULL,&s_grddie3}; +statetype s_grddie3 = {false,SPR_GRD_DIE_3,15,NULL,NULL,&s_grddie4}; +statetype s_grddie4 = {false,SPR_GRD_DEAD,0,NULL,NULL,&s_grddie4}; + + +#ifndef SPEAR +// +// ghosts +// +extern statetype s_blinkychase1; +extern statetype s_blinkychase2; +extern statetype s_inkychase1; +extern statetype s_inkychase2; +extern statetype s_pinkychase1; +extern statetype s_pinkychase2; +extern statetype s_clydechase1; +extern statetype s_clydechase2; + +statetype s_blinkychase1 = {false,SPR_BLINKY_W1,10,T_Ghosts,NULL,&s_blinkychase2}; +statetype s_blinkychase2 = {false,SPR_BLINKY_W2,10,T_Ghosts,NULL,&s_blinkychase1}; + +statetype s_inkychase1 = {false,SPR_INKY_W1,10,T_Ghosts,NULL,&s_inkychase2}; +statetype s_inkychase2 = {false,SPR_INKY_W2,10,T_Ghosts,NULL,&s_inkychase1}; + +statetype s_pinkychase1 = {false,SPR_PINKY_W1,10,T_Ghosts,NULL,&s_pinkychase2}; +statetype s_pinkychase2 = {false,SPR_PINKY_W2,10,T_Ghosts,NULL,&s_pinkychase1}; + +statetype s_clydechase1 = {false,SPR_CLYDE_W1,10,T_Ghosts,NULL,&s_clydechase2}; +statetype s_clydechase2 = {false,SPR_CLYDE_W2,10,T_Ghosts,NULL,&s_clydechase1}; +#endif + +// +// dogs +// + +extern statetype s_dogpath1; +extern statetype s_dogpath1s; +extern statetype s_dogpath2; +extern statetype s_dogpath3; +extern statetype s_dogpath3s; +extern statetype s_dogpath4; + +extern statetype s_dogjump1; +extern statetype s_dogjump2; +extern statetype s_dogjump3; +extern statetype s_dogjump4; +extern statetype s_dogjump5; + +extern statetype s_dogchase1; +extern statetype s_dogchase1s; +extern statetype s_dogchase2; +extern statetype s_dogchase3; +extern statetype s_dogchase3s; +extern statetype s_dogchase4; + +extern statetype s_dogdie1; +extern statetype s_dogdie1d; +extern statetype s_dogdie2; +extern statetype s_dogdie3; +extern statetype s_dogdead; + +statetype s_dogpath1 = {true,SPR_DOG_W1_1,20,T_Path,NULL,&s_dogpath1s}; +statetype s_dogpath1s = {true,SPR_DOG_W1_1,5,NULL,NULL,&s_dogpath2}; +statetype s_dogpath2 = {true,SPR_DOG_W2_1,15,T_Path,NULL,&s_dogpath3}; +statetype s_dogpath3 = {true,SPR_DOG_W3_1,20,T_Path,NULL,&s_dogpath3s}; +statetype s_dogpath3s = {true,SPR_DOG_W3_1,5,NULL,NULL,&s_dogpath4}; +statetype s_dogpath4 = {true,SPR_DOG_W4_1,15,T_Path,NULL,&s_dogpath1}; + +statetype s_dogjump1 = {false,SPR_DOG_JUMP1,10,NULL,NULL,&s_dogjump2}; +statetype s_dogjump2 = {false,SPR_DOG_JUMP2,10,NULL,T_Bite,&s_dogjump3}; +statetype s_dogjump3 = {false,SPR_DOG_JUMP3,10,NULL,NULL,&s_dogjump4}; +statetype s_dogjump4 = {false,SPR_DOG_JUMP1,10,NULL,NULL,&s_dogjump5}; +statetype s_dogjump5 = {false,SPR_DOG_W1_1,10,NULL,NULL,&s_dogchase1}; + +statetype s_dogchase1 = {true,SPR_DOG_W1_1,10,T_DogChase,NULL,&s_dogchase1s}; +statetype s_dogchase1s = {true,SPR_DOG_W1_1,3,NULL,NULL,&s_dogchase2}; +statetype s_dogchase2 = {true,SPR_DOG_W2_1,8,T_DogChase,NULL,&s_dogchase3}; +statetype s_dogchase3 = {true,SPR_DOG_W3_1,10,T_DogChase,NULL,&s_dogchase3s}; +statetype s_dogchase3s = {true,SPR_DOG_W3_1,3,NULL,NULL,&s_dogchase4}; +statetype s_dogchase4 = {true,SPR_DOG_W4_1,8,T_DogChase,NULL,&s_dogchase1}; + +statetype s_dogdie1 = {false,SPR_DOG_DIE_1,15,NULL,A_DeathScream,&s_dogdie2}; +statetype s_dogdie2 = {false,SPR_DOG_DIE_2,15,NULL,NULL,&s_dogdie3}; +statetype s_dogdie3 = {false,SPR_DOG_DIE_3,15,NULL,NULL,&s_dogdead}; +statetype s_dogdead = {false,SPR_DOG_DEAD,15,NULL,NULL,&s_dogdead}; + + +// +// officers +// + +extern statetype s_ofcstand; + +extern statetype s_ofcpath1; +extern statetype s_ofcpath1s; +extern statetype s_ofcpath2; +extern statetype s_ofcpath3; +extern statetype s_ofcpath3s; +extern statetype s_ofcpath4; + +extern statetype s_ofcpain; +extern statetype s_ofcpain1; + +extern statetype s_ofcgiveup; + +extern statetype s_ofcshoot1; +extern statetype s_ofcshoot2; +extern statetype s_ofcshoot3; +extern statetype s_ofcshoot4; + +extern statetype s_ofcchase1; +extern statetype s_ofcchase1s; +extern statetype s_ofcchase2; +extern statetype s_ofcchase3; +extern statetype s_ofcchase3s; +extern statetype s_ofcchase4; + +extern statetype s_ofcdie1; +extern statetype s_ofcdie2; +extern statetype s_ofcdie3; +extern statetype s_ofcdie4; +extern statetype s_ofcdie5; + +statetype s_ofcstand = {true,SPR_OFC_S_1,0,T_Stand,NULL,&s_ofcstand}; + +statetype s_ofcpath1 = {true,SPR_OFC_W1_1,20,T_Path,NULL,&s_ofcpath1s}; +statetype s_ofcpath1s = {true,SPR_OFC_W1_1,5,NULL,NULL,&s_ofcpath2}; +statetype s_ofcpath2 = {true,SPR_OFC_W2_1,15,T_Path,NULL,&s_ofcpath3}; +statetype s_ofcpath3 = {true,SPR_OFC_W3_1,20,T_Path,NULL,&s_ofcpath3s}; +statetype s_ofcpath3s = {true,SPR_OFC_W3_1,5,NULL,NULL,&s_ofcpath4}; +statetype s_ofcpath4 = {true,SPR_OFC_W4_1,15,T_Path,NULL,&s_ofcpath1}; + +statetype s_ofcpain = {2,SPR_OFC_PAIN_1,10,NULL,NULL,&s_ofcchase1}; +statetype s_ofcpain1 = {2,SPR_OFC_PAIN_2,10,NULL,NULL,&s_ofcchase1}; + +statetype s_ofcshoot1 = {false,SPR_OFC_SHOOT1,6,NULL,NULL,&s_ofcshoot2}; +statetype s_ofcshoot2 = {false,SPR_OFC_SHOOT2,20,NULL,T_Shoot,&s_ofcshoot3}; +statetype s_ofcshoot3 = {false,SPR_OFC_SHOOT3,10,NULL,NULL,&s_ofcchase1}; + +statetype s_ofcchase1 = {true,SPR_OFC_W1_1,10,T_Chase,NULL,&s_ofcchase1s}; +statetype s_ofcchase1s = {true,SPR_OFC_W1_1,3,NULL,NULL,&s_ofcchase2}; +statetype s_ofcchase2 = {true,SPR_OFC_W2_1,8,T_Chase,NULL,&s_ofcchase3}; +statetype s_ofcchase3 = {true,SPR_OFC_W3_1,10,T_Chase,NULL,&s_ofcchase3s}; +statetype s_ofcchase3s = {true,SPR_OFC_W3_1,3,NULL,NULL,&s_ofcchase4}; +statetype s_ofcchase4 = {true,SPR_OFC_W4_1,8,T_Chase,NULL,&s_ofcchase1}; + +statetype s_ofcdie1 = {false,SPR_OFC_DIE_1,11,NULL,A_DeathScream,&s_ofcdie2}; +statetype s_ofcdie2 = {false,SPR_OFC_DIE_2,11,NULL,NULL,&s_ofcdie3}; +statetype s_ofcdie3 = {false,SPR_OFC_DIE_3,11,NULL,NULL,&s_ofcdie4}; +statetype s_ofcdie4 = {false,SPR_OFC_DIE_4,11,NULL,NULL,&s_ofcdie5}; +statetype s_ofcdie5 = {false,SPR_OFC_DEAD,0,NULL,NULL,&s_ofcdie5}; + + +// +// mutant +// + +extern statetype s_mutstand; + +extern statetype s_mutpath1; +extern statetype s_mutpath1s; +extern statetype s_mutpath2; +extern statetype s_mutpath3; +extern statetype s_mutpath3s; +extern statetype s_mutpath4; + +extern statetype s_mutpain; +extern statetype s_mutpain1; + +extern statetype s_mutgiveup; + +extern statetype s_mutshoot1; +extern statetype s_mutshoot2; +extern statetype s_mutshoot3; +extern statetype s_mutshoot4; + +extern statetype s_mutchase1; +extern statetype s_mutchase1s; +extern statetype s_mutchase2; +extern statetype s_mutchase3; +extern statetype s_mutchase3s; +extern statetype s_mutchase4; + +extern statetype s_mutdie1; +extern statetype s_mutdie2; +extern statetype s_mutdie3; +extern statetype s_mutdie4; +extern statetype s_mutdie5; + +statetype s_mutstand = {true,SPR_MUT_S_1,0,T_Stand,NULL,&s_mutstand}; + +statetype s_mutpath1 = {true,SPR_MUT_W1_1,20,T_Path,NULL,&s_mutpath1s}; +statetype s_mutpath1s = {true,SPR_MUT_W1_1,5,NULL,NULL,&s_mutpath2}; +statetype s_mutpath2 = {true,SPR_MUT_W2_1,15,T_Path,NULL,&s_mutpath3}; +statetype s_mutpath3 = {true,SPR_MUT_W3_1,20,T_Path,NULL,&s_mutpath3s}; +statetype s_mutpath3s = {true,SPR_MUT_W3_1,5,NULL,NULL,&s_mutpath4}; +statetype s_mutpath4 = {true,SPR_MUT_W4_1,15,T_Path,NULL,&s_mutpath1}; + +statetype s_mutpain = {2,SPR_MUT_PAIN_1,10,NULL,NULL,&s_mutchase1}; +statetype s_mutpain1 = {2,SPR_MUT_PAIN_2,10,NULL,NULL,&s_mutchase1}; + +statetype s_mutshoot1 = {false,SPR_MUT_SHOOT1,6,NULL,T_Shoot,&s_mutshoot2}; +statetype s_mutshoot2 = {false,SPR_MUT_SHOOT2,20,NULL,NULL,&s_mutshoot3}; +statetype s_mutshoot3 = {false,SPR_MUT_SHOOT3,10,NULL,T_Shoot,&s_mutshoot4}; +statetype s_mutshoot4 = {false,SPR_MUT_SHOOT4,20,NULL,NULL,&s_mutchase1}; + +statetype s_mutchase1 = {true,SPR_MUT_W1_1,10,T_Chase,NULL,&s_mutchase1s}; +statetype s_mutchase1s = {true,SPR_MUT_W1_1,3,NULL,NULL,&s_mutchase2}; +statetype s_mutchase2 = {true,SPR_MUT_W2_1,8,T_Chase,NULL,&s_mutchase3}; +statetype s_mutchase3 = {true,SPR_MUT_W3_1,10,T_Chase,NULL,&s_mutchase3s}; +statetype s_mutchase3s = {true,SPR_MUT_W3_1,3,NULL,NULL,&s_mutchase4}; +statetype s_mutchase4 = {true,SPR_MUT_W4_1,8,T_Chase,NULL,&s_mutchase1}; + +statetype s_mutdie1 = {false,SPR_MUT_DIE_1,7,NULL,A_DeathScream,&s_mutdie2}; +statetype s_mutdie2 = {false,SPR_MUT_DIE_2,7,NULL,NULL,&s_mutdie3}; +statetype s_mutdie3 = {false,SPR_MUT_DIE_3,7,NULL,NULL,&s_mutdie4}; +statetype s_mutdie4 = {false,SPR_MUT_DIE_4,7,NULL,NULL,&s_mutdie5}; +statetype s_mutdie5 = {false,SPR_MUT_DEAD,0,NULL,NULL,&s_mutdie5}; + + +// +// SS +// + +extern statetype s_ssstand; + +extern statetype s_sspath1; +extern statetype s_sspath1s; +extern statetype s_sspath2; +extern statetype s_sspath3; +extern statetype s_sspath3s; +extern statetype s_sspath4; + +extern statetype s_sspain; +extern statetype s_sspain1; + +extern statetype s_ssshoot1; +extern statetype s_ssshoot2; +extern statetype s_ssshoot3; +extern statetype s_ssshoot4; +extern statetype s_ssshoot5; +extern statetype s_ssshoot6; +extern statetype s_ssshoot7; +extern statetype s_ssshoot8; +extern statetype s_ssshoot9; + +extern statetype s_sschase1; +extern statetype s_sschase1s; +extern statetype s_sschase2; +extern statetype s_sschase3; +extern statetype s_sschase3s; +extern statetype s_sschase4; + +extern statetype s_ssdie1; +extern statetype s_ssdie2; +extern statetype s_ssdie3; +extern statetype s_ssdie4; + +statetype s_ssstand = {true,SPR_SS_S_1,0,T_Stand,NULL,&s_ssstand}; + +statetype s_sspath1 = {true,SPR_SS_W1_1,20,T_Path,NULL,&s_sspath1s}; +statetype s_sspath1s = {true,SPR_SS_W1_1,5,NULL,NULL,&s_sspath2}; +statetype s_sspath2 = {true,SPR_SS_W2_1,15,T_Path,NULL,&s_sspath3}; +statetype s_sspath3 = {true,SPR_SS_W3_1,20,T_Path,NULL,&s_sspath3s}; +statetype s_sspath3s = {true,SPR_SS_W3_1,5,NULL,NULL,&s_sspath4}; +statetype s_sspath4 = {true,SPR_SS_W4_1,15,T_Path,NULL,&s_sspath1}; + +statetype s_sspain = {2,SPR_SS_PAIN_1,10,NULL,NULL,&s_sschase1}; +statetype s_sspain1 = {2,SPR_SS_PAIN_2,10,NULL,NULL,&s_sschase1}; + +statetype s_ssshoot1 = {false,SPR_SS_SHOOT1,20,NULL,NULL,&s_ssshoot2}; +statetype s_ssshoot2 = {false,SPR_SS_SHOOT2,20,NULL,T_Shoot,&s_ssshoot3}; +statetype s_ssshoot3 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_ssshoot4}; +statetype s_ssshoot4 = {false,SPR_SS_SHOOT2,10,NULL,T_Shoot,&s_ssshoot5}; +statetype s_ssshoot5 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_ssshoot6}; +statetype s_ssshoot6 = {false,SPR_SS_SHOOT2,10,NULL,T_Shoot,&s_ssshoot7}; +statetype s_ssshoot7 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_ssshoot8}; +statetype s_ssshoot8 = {false,SPR_SS_SHOOT2,10,NULL,T_Shoot,&s_ssshoot9}; +statetype s_ssshoot9 = {false,SPR_SS_SHOOT3,10,NULL,NULL,&s_sschase1}; + +statetype s_sschase1 = {true,SPR_SS_W1_1,10,T_Chase,NULL,&s_sschase1s}; +statetype s_sschase1s = {true,SPR_SS_W1_1,3,NULL,NULL,&s_sschase2}; +statetype s_sschase2 = {true,SPR_SS_W2_1,8,T_Chase,NULL,&s_sschase3}; +statetype s_sschase3 = {true,SPR_SS_W3_1,10,T_Chase,NULL,&s_sschase3s}; +statetype s_sschase3s = {true,SPR_SS_W3_1,3,NULL,NULL,&s_sschase4}; +statetype s_sschase4 = {true,SPR_SS_W4_1,8,T_Chase,NULL,&s_sschase1}; + +statetype s_ssdie1 = {false,SPR_SS_DIE_1,15,NULL,A_DeathScream,&s_ssdie2}; +statetype s_ssdie2 = {false,SPR_SS_DIE_2,15,NULL,NULL,&s_ssdie3}; +statetype s_ssdie3 = {false,SPR_SS_DIE_3,15,NULL,NULL,&s_ssdie4}; +statetype s_ssdie4 = {false,SPR_SS_DEAD,0,NULL,NULL,&s_ssdie4}; + + +#ifndef SPEAR +// +// hans +// +extern statetype s_bossstand; + +extern statetype s_bosschase1; +extern statetype s_bosschase1s; +extern statetype s_bosschase2; +extern statetype s_bosschase3; +extern statetype s_bosschase3s; +extern statetype s_bosschase4; + +extern statetype s_bossdie1; +extern statetype s_bossdie2; +extern statetype s_bossdie3; +extern statetype s_bossdie4; + +extern statetype s_bossshoot1; +extern statetype s_bossshoot2; +extern statetype s_bossshoot3; +extern statetype s_bossshoot4; +extern statetype s_bossshoot5; +extern statetype s_bossshoot6; +extern statetype s_bossshoot7; +extern statetype s_bossshoot8; + + +statetype s_bossstand = {false,SPR_BOSS_W1,0,T_Stand,NULL,&s_bossstand}; + +statetype s_bosschase1 = {false,SPR_BOSS_W1,10,T_Chase,NULL,&s_bosschase1s}; +statetype s_bosschase1s = {false,SPR_BOSS_W1,3,NULL,NULL,&s_bosschase2}; +statetype s_bosschase2 = {false,SPR_BOSS_W2,8,T_Chase,NULL,&s_bosschase3}; +statetype s_bosschase3 = {false,SPR_BOSS_W3,10,T_Chase,NULL,&s_bosschase3s}; +statetype s_bosschase3s = {false,SPR_BOSS_W3,3,NULL,NULL,&s_bosschase4}; +statetype s_bosschase4 = {false,SPR_BOSS_W4,8,T_Chase,NULL,&s_bosschase1}; + +statetype s_bossdie1 = {false,SPR_BOSS_DIE1,15,NULL,A_DeathScream,&s_bossdie2}; +statetype s_bossdie2 = {false,SPR_BOSS_DIE2,15,NULL,NULL,&s_bossdie3}; +statetype s_bossdie3 = {false,SPR_BOSS_DIE3,15,NULL,NULL,&s_bossdie4}; +statetype s_bossdie4 = {false,SPR_BOSS_DEAD,0,NULL,NULL,&s_bossdie4}; + +statetype s_bossshoot1 = {false,SPR_BOSS_SHOOT1,30,NULL,NULL,&s_bossshoot2}; +statetype s_bossshoot2 = {false,SPR_BOSS_SHOOT2,10,NULL,T_Shoot,&s_bossshoot3}; +statetype s_bossshoot3 = {false,SPR_BOSS_SHOOT3,10,NULL,T_Shoot,&s_bossshoot4}; +statetype s_bossshoot4 = {false,SPR_BOSS_SHOOT2,10,NULL,T_Shoot,&s_bossshoot5}; +statetype s_bossshoot5 = {false,SPR_BOSS_SHOOT3,10,NULL,T_Shoot,&s_bossshoot6}; +statetype s_bossshoot6 = {false,SPR_BOSS_SHOOT2,10,NULL,T_Shoot,&s_bossshoot7}; +statetype s_bossshoot7 = {false,SPR_BOSS_SHOOT3,10,NULL,T_Shoot,&s_bossshoot8}; +statetype s_bossshoot8 = {false,SPR_BOSS_SHOOT1,10,NULL,NULL,&s_bosschase1}; + + +// +// gretel +// +extern statetype s_gretelstand; + +extern statetype s_gretelchase1; +extern statetype s_gretelchase1s; +extern statetype s_gretelchase2; +extern statetype s_gretelchase3; +extern statetype s_gretelchase3s; +extern statetype s_gretelchase4; + +extern statetype s_greteldie1; +extern statetype s_greteldie2; +extern statetype s_greteldie3; +extern statetype s_greteldie4; + +extern statetype s_gretelshoot1; +extern statetype s_gretelshoot2; +extern statetype s_gretelshoot3; +extern statetype s_gretelshoot4; +extern statetype s_gretelshoot5; +extern statetype s_gretelshoot6; +extern statetype s_gretelshoot7; +extern statetype s_gretelshoot8; + + +statetype s_gretelstand = {false,SPR_GRETEL_W1,0,T_Stand,NULL,&s_gretelstand}; + +statetype s_gretelchase1 = {false,SPR_GRETEL_W1,10,T_Chase,NULL,&s_gretelchase1s}; +statetype s_gretelchase1s = {false,SPR_GRETEL_W1,3,NULL,NULL,&s_gretelchase2}; +statetype s_gretelchase2 = {false,SPR_GRETEL_W2,8,T_Chase,NULL,&s_gretelchase3}; +statetype s_gretelchase3 = {false,SPR_GRETEL_W3,10,T_Chase,NULL,&s_gretelchase3s}; +statetype s_gretelchase3s = {false,SPR_GRETEL_W3,3,NULL,NULL,&s_gretelchase4}; +statetype s_gretelchase4 = {false,SPR_GRETEL_W4,8,T_Chase,NULL,&s_gretelchase1}; + +statetype s_greteldie1 = {false,SPR_GRETEL_DIE1,15,NULL,A_DeathScream,&s_greteldie2}; +statetype s_greteldie2 = {false,SPR_GRETEL_DIE2,15,NULL,NULL,&s_greteldie3}; +statetype s_greteldie3 = {false,SPR_GRETEL_DIE3,15,NULL,NULL,&s_greteldie4}; +statetype s_greteldie4 = {false,SPR_GRETEL_DEAD,0,NULL,NULL,&s_greteldie4}; + +statetype s_gretelshoot1 = {false,SPR_GRETEL_SHOOT1,30,NULL,NULL,&s_gretelshoot2}; +statetype s_gretelshoot2 = {false,SPR_GRETEL_SHOOT2,10,NULL,T_Shoot,&s_gretelshoot3}; +statetype s_gretelshoot3 = {false,SPR_GRETEL_SHOOT3,10,NULL,T_Shoot,&s_gretelshoot4}; +statetype s_gretelshoot4 = {false,SPR_GRETEL_SHOOT2,10,NULL,T_Shoot,&s_gretelshoot5}; +statetype s_gretelshoot5 = {false,SPR_GRETEL_SHOOT3,10,NULL,T_Shoot,&s_gretelshoot6}; +statetype s_gretelshoot6 = {false,SPR_GRETEL_SHOOT2,10,NULL,T_Shoot,&s_gretelshoot7}; +statetype s_gretelshoot7 = {false,SPR_GRETEL_SHOOT3,10,NULL,T_Shoot,&s_gretelshoot8}; +statetype s_gretelshoot8 = {false,SPR_GRETEL_SHOOT1,10,NULL,NULL,&s_gretelchase1}; +#endif + + +/* +=============== += += SpawnStand += +=============== +*/ + +void SpawnStand (enemy_t which, int tilex, int tiley, int dir) +{ + unsigned far *map,tile; + + switch (which) + { + case en_guard: + SpawnNewObj (tilex,tiley,&s_grdstand); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_officer: + SpawnNewObj (tilex,tiley,&s_ofcstand); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_mutant: + SpawnNewObj (tilex,tiley,&s_mutstand); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_ss: + SpawnNewObj (tilex,tiley,&s_ssstand); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + } + + + map = mapsegs[0]+farmapylookup[tiley]+tilex; + if (*map == AMBUSHTILE) + { + tilemap[tilex][tiley] = 0; + + if (*(map+1) >= AREATILE) + tile = *(map+1); + if (*(map-mapwidth) >= AREATILE) + tile = *(map-mapwidth); + if (*(map+mapwidth) >= AREATILE) + tile = *(map+mapwidth); + if ( *(map-1) >= AREATILE) + tile = *(map-1); + + *map = tile; + new->areanumber = tile-AREATILE; + + new->flags |= FL_AMBUSH; + } + + new->obclass = guardobj+which; + new->hitpoints = starthitpoints[gamestate.difficulty][which]; + new->dir = dir*2; + new->flags |= FL_SHOOTABLE; +} + + + +/* +=============== += += SpawnDeadGuard += +=============== +*/ + +void SpawnDeadGuard (int tilex, int tiley) +{ + SpawnNewObj (tilex,tiley,&s_grddie4); + new->obclass = inertobj; +} + + + +#ifndef SPEAR +/* +=============== += += SpawnBoss += +=============== +*/ + +void SpawnBoss (int tilex, int tiley) +{ + unsigned far *map,tile; + + SpawnNewObj (tilex,tiley,&s_bossstand); + new->speed = SPDPATROL; + + new->obclass = bossobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_boss]; + new->dir = south; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + +/* +=============== += += SpawnGretel += +=============== +*/ + +void SpawnGretel (int tilex, int tiley) +{ + unsigned far *map,tile; + + SpawnNewObj (tilex,tiley,&s_gretelstand); + new->speed = SPDPATROL; + + new->obclass = gretelobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_gretel]; + new->dir = north; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} +#endif + +/* +=============== += += SpawnPatrol += +=============== +*/ + +void SpawnPatrol (enemy_t which, int tilex, int tiley, int dir) +{ + switch (which) + { + case en_guard: + SpawnNewObj (tilex,tiley,&s_grdpath1); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_officer: + SpawnNewObj (tilex,tiley,&s_ofcpath1); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_ss: + SpawnNewObj (tilex,tiley,&s_sspath1); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_mutant: + SpawnNewObj (tilex,tiley,&s_mutpath1); + new->speed = SPDPATROL; + if (!loadedgame) + gamestate.killtotal++; + break; + + case en_dog: + SpawnNewObj (tilex,tiley,&s_dogpath1); + new->speed = SPDDOG; + if (!loadedgame) + gamestate.killtotal++; + break; + } + + new->obclass = guardobj+which; + new->dir = dir*2; + new->hitpoints = starthitpoints[gamestate.difficulty][which]; + new->distance = tileglobal; + new->flags |= FL_SHOOTABLE; + new->active = true; + + actorat[new->tilex][new->tiley] = NULL; // don't use original spot + + switch (dir) + { + case 0: + new->tilex++; + break; + case 1: + new->tiley--; + break; + case 2: + new->tilex--; + break; + case 3: + new->tiley++; + break; + } + + actorat[new->tilex][new->tiley] = new; +} + + + +/* +================== += += A_DeathScream += +================== +*/ + +void A_DeathScream (objtype *ob) +{ +#ifndef UPLOAD +#ifndef SPEAR + if (mapon==9 && !US_RndT()) +#else + if ((mapon==18 || mapon==19) && !US_RndT()) +#endif + { + switch(ob->obclass) + { + case mutantobj: + case guardobj: + case officerobj: + case ssobj: + case dogobj: + PlaySoundLocActor(DEATHSCREAM6SND,ob); + return; + } + } +#endif + + switch (ob->obclass) + { + case mutantobj: + PlaySoundLocActor(AHHHGSND,ob); + break; + + case guardobj: + { + int sounds[9]={ DEATHSCREAM1SND, + DEATHSCREAM2SND, + DEATHSCREAM3SND, + DEATHSCREAM4SND, + DEATHSCREAM5SND, + DEATHSCREAM7SND, + DEATHSCREAM8SND, + DEATHSCREAM9SND + }; + + #ifndef UPLOAD + PlaySoundLocActor(sounds[US_RndT()%8],ob); + #else + PlaySoundLocActor(sounds[US_RndT()%2],ob); + #endif + } + break; + case officerobj: + PlaySoundLocActor(NEINSOVASSND,ob); + break; + case ssobj: + PlaySoundLocActor(LEBENSND,ob); // JAB + break; + case dogobj: + PlaySoundLocActor(DOGDEATHSND,ob); // JAB + break; +#ifndef SPEAR + case bossobj: + SD_PlaySound(MUTTISND); // JAB + break; + case schabbobj: + SD_PlaySound(MEINGOTTSND); + break; + case fakeobj: + SD_PlaySound(HITLERHASND); + break; + case mechahitlerobj: + SD_PlaySound(SCHEISTSND); + break; + case realhitlerobj: + SD_PlaySound(EVASND); + break; + case gretelobj: + SD_PlaySound(MEINSND); + break; + case giftobj: + SD_PlaySound(DONNERSND); + break; + case fatobj: + SD_PlaySound(ROSESND); + break; +#else + case spectreobj: + SD_PlaySound(GHOSTFADESND); + break; + case angelobj: + SD_PlaySound(ANGELDEATHSND); + break; + case transobj: + SD_PlaySound(TRANSDEATHSND); + break; + case uberobj: + SD_PlaySound(UBERDEATHSND); + break; + case willobj: + SD_PlaySound(WILHELMDEATHSND); + break; + case deathobj: + SD_PlaySound(KNIGHTDEATHSND); + break; +#endif + } +} + + +/* +============================================================================= + + SPEAR ACTORS + +============================================================================= +*/ + +#ifdef SPEAR + +void T_Launch (objtype *ob); +void T_Will (objtype *ob); + +extern statetype s_angelshoot1; +extern statetype s_deathshoot1; +extern statetype s_spark1; + +// +// trans +// +extern statetype s_transstand; + +extern statetype s_transchase1; +extern statetype s_transchase1s; +extern statetype s_transchase2; +extern statetype s_transchase3; +extern statetype s_transchase3s; +extern statetype s_transchase4; + +extern statetype s_transdie0; +extern statetype s_transdie01; +extern statetype s_transdie1; +extern statetype s_transdie2; +extern statetype s_transdie3; +extern statetype s_transdie4; + +extern statetype s_transshoot1; +extern statetype s_transshoot2; +extern statetype s_transshoot3; +extern statetype s_transshoot4; +extern statetype s_transshoot5; +extern statetype s_transshoot6; +extern statetype s_transshoot7; +extern statetype s_transshoot8; + + +statetype s_transstand = {false,SPR_TRANS_W1,0,T_Stand,NULL,&s_transstand}; + +statetype s_transchase1 = {false,SPR_TRANS_W1,10,T_Chase,NULL,&s_transchase1s}; +statetype s_transchase1s = {false,SPR_TRANS_W1,3,NULL,NULL,&s_transchase2}; +statetype s_transchase2 = {false,SPR_TRANS_W2,8,T_Chase,NULL,&s_transchase3}; +statetype s_transchase3 = {false,SPR_TRANS_W3,10,T_Chase,NULL,&s_transchase3s}; +statetype s_transchase3s = {false,SPR_TRANS_W3,3,NULL,NULL,&s_transchase4}; +statetype s_transchase4 = {false,SPR_TRANS_W4,8,T_Chase,NULL,&s_transchase1}; + +statetype s_transdie0 = {false,SPR_TRANS_W1,1,NULL,A_DeathScream,&s_transdie01}; +statetype s_transdie01 = {false,SPR_TRANS_W1,1,NULL,NULL,&s_transdie1}; +statetype s_transdie1 = {false,SPR_TRANS_DIE1,15,NULL,NULL,&s_transdie2}; +statetype s_transdie2 = {false,SPR_TRANS_DIE2,15,NULL,NULL,&s_transdie3}; +statetype s_transdie3 = {false,SPR_TRANS_DIE3,15,NULL,NULL,&s_transdie4}; +statetype s_transdie4 = {false,SPR_TRANS_DEAD,0,NULL,NULL,&s_transdie4}; + +statetype s_transshoot1 = {false,SPR_TRANS_SHOOT1,30,NULL,NULL,&s_transshoot2}; +statetype s_transshoot2 = {false,SPR_TRANS_SHOOT2,10,NULL,T_Shoot,&s_transshoot3}; +statetype s_transshoot3 = {false,SPR_TRANS_SHOOT3,10,NULL,T_Shoot,&s_transshoot4}; +statetype s_transshoot4 = {false,SPR_TRANS_SHOOT2,10,NULL,T_Shoot,&s_transshoot5}; +statetype s_transshoot5 = {false,SPR_TRANS_SHOOT3,10,NULL,T_Shoot,&s_transshoot6}; +statetype s_transshoot6 = {false,SPR_TRANS_SHOOT2,10,NULL,T_Shoot,&s_transshoot7}; +statetype s_transshoot7 = {false,SPR_TRANS_SHOOT3,10,NULL,T_Shoot,&s_transshoot8}; +statetype s_transshoot8 = {false,SPR_TRANS_SHOOT1,10,NULL,NULL,&s_transchase1}; + + +/* +=============== += += SpawnTrans += +=============== +*/ + +void SpawnTrans (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (SoundBlasterPresent && DigiMode != sds_Off) + s_transdie01.tictime = 105; + + SpawnNewObj (tilex,tiley,&s_transstand); + new->obclass = transobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_trans]; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +// +// uber +// +void T_UShoot (objtype *ob); + +extern statetype s_uberstand; + +extern statetype s_uberchase1; +extern statetype s_uberchase1s; +extern statetype s_uberchase2; +extern statetype s_uberchase3; +extern statetype s_uberchase3s; +extern statetype s_uberchase4; + +extern statetype s_uberdie0; +extern statetype s_uberdie01; +extern statetype s_uberdie1; +extern statetype s_uberdie2; +extern statetype s_uberdie3; +extern statetype s_uberdie4; +extern statetype s_uberdie5; + +extern statetype s_ubershoot1; +extern statetype s_ubershoot2; +extern statetype s_ubershoot3; +extern statetype s_ubershoot4; +extern statetype s_ubershoot5; +extern statetype s_ubershoot6; +extern statetype s_ubershoot7; + + +statetype s_uberstand = {false,SPR_UBER_W1,0,T_Stand,NULL,&s_uberstand}; + +statetype s_uberchase1 = {false,SPR_UBER_W1,10,T_Chase,NULL,&s_uberchase1s}; +statetype s_uberchase1s = {false,SPR_UBER_W1,3,NULL,NULL,&s_uberchase2}; +statetype s_uberchase2 = {false,SPR_UBER_W2,8,T_Chase,NULL,&s_uberchase3}; +statetype s_uberchase3 = {false,SPR_UBER_W3,10,T_Chase,NULL,&s_uberchase3s}; +statetype s_uberchase3s = {false,SPR_UBER_W3,3,NULL,NULL,&s_uberchase4}; +statetype s_uberchase4 = {false,SPR_UBER_W4,8,T_Chase,NULL,&s_uberchase1}; + +statetype s_uberdie0 = {false,SPR_UBER_W1,1,NULL,A_DeathScream,&s_uberdie01}; +statetype s_uberdie01 = {false,SPR_UBER_W1,1,NULL,NULL,&s_uberdie1}; +statetype s_uberdie1 = {false,SPR_UBER_DIE1,15,NULL,NULL,&s_uberdie2}; +statetype s_uberdie2 = {false,SPR_UBER_DIE2,15,NULL,NULL,&s_uberdie3}; +statetype s_uberdie3 = {false,SPR_UBER_DIE3,15,NULL,NULL,&s_uberdie4}; +statetype s_uberdie4 = {false,SPR_UBER_DIE4,15,NULL,NULL,&s_uberdie5}; +statetype s_uberdie5 = {false,SPR_UBER_DEAD,0,NULL,NULL,&s_uberdie5}; + +statetype s_ubershoot1 = {false,SPR_UBER_SHOOT1,30,NULL,NULL,&s_ubershoot2}; +statetype s_ubershoot2 = {false,SPR_UBER_SHOOT2,12,NULL,T_UShoot,&s_ubershoot3}; +statetype s_ubershoot3 = {false,SPR_UBER_SHOOT3,12,NULL,T_UShoot,&s_ubershoot4}; +statetype s_ubershoot4 = {false,SPR_UBER_SHOOT4,12,NULL,T_UShoot,&s_ubershoot5}; +statetype s_ubershoot5 = {false,SPR_UBER_SHOOT3,12,NULL,T_UShoot,&s_ubershoot6}; +statetype s_ubershoot6 = {false,SPR_UBER_SHOOT2,12,NULL,T_UShoot,&s_ubershoot7}; +statetype s_ubershoot7 = {false,SPR_UBER_SHOOT1,12,NULL,NULL,&s_uberchase1}; + + +/* +=============== += += SpawnUber += +=============== +*/ + +void SpawnUber (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (SoundBlasterPresent && DigiMode != sds_Off) + s_uberdie01.tictime = 70; + + SpawnNewObj (tilex,tiley,&s_uberstand); + new->obclass = uberobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_uber]; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +=============== += += T_UShoot += +=============== +*/ + +void T_UShoot (objtype *ob) +{ + int dx,dy,dist; + + T_Shoot (ob); + + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx : dy; + if (dist <= 1) + TakeDamage (10,ob); +} + + +// +// will +// +extern statetype s_willstand; + +extern statetype s_willchase1; +extern statetype s_willchase1s; +extern statetype s_willchase2; +extern statetype s_willchase3; +extern statetype s_willchase3s; +extern statetype s_willchase4; + +extern statetype s_willdie1; +extern statetype s_willdie2; +extern statetype s_willdie3; +extern statetype s_willdie4; +extern statetype s_willdie5; +extern statetype s_willdie6; + +extern statetype s_willshoot1; +extern statetype s_willshoot2; +extern statetype s_willshoot3; +extern statetype s_willshoot4; +extern statetype s_willshoot5; +extern statetype s_willshoot6; + + +statetype s_willstand = {false,SPR_WILL_W1,0,T_Stand,NULL,&s_willstand}; + +statetype s_willchase1 = {false,SPR_WILL_W1,10,T_Will,NULL,&s_willchase1s}; +statetype s_willchase1s = {false,SPR_WILL_W1,3,NULL,NULL,&s_willchase2}; +statetype s_willchase2 = {false,SPR_WILL_W2,8,T_Will,NULL,&s_willchase3}; +statetype s_willchase3 = {false,SPR_WILL_W3,10,T_Will,NULL,&s_willchase3s}; +statetype s_willchase3s = {false,SPR_WILL_W3,3,NULL,NULL,&s_willchase4}; +statetype s_willchase4 = {false,SPR_WILL_W4,8,T_Will,NULL,&s_willchase1}; + +statetype s_willdeathcam = {false,SPR_WILL_W1,1,NULL,NULL,&s_willdie1}; + +statetype s_willdie1 = {false,SPR_WILL_W1,1,NULL,A_DeathScream,&s_willdie2}; +statetype s_willdie2 = {false,SPR_WILL_W1,10,NULL,NULL,&s_willdie3}; +statetype s_willdie3 = {false,SPR_WILL_DIE1,10,NULL,NULL,&s_willdie4}; +statetype s_willdie4 = {false,SPR_WILL_DIE2,10,NULL,NULL,&s_willdie5}; +statetype s_willdie5 = {false,SPR_WILL_DIE3,10,NULL,NULL,&s_willdie6}; +statetype s_willdie6 = {false,SPR_WILL_DEAD,20,NULL,NULL,&s_willdie6}; + +statetype s_willshoot1 = {false,SPR_WILL_SHOOT1,30,NULL,NULL,&s_willshoot2}; +statetype s_willshoot2 = {false,SPR_WILL_SHOOT2,10,NULL,T_Launch,&s_willshoot3}; +statetype s_willshoot3 = {false,SPR_WILL_SHOOT3,10,NULL,T_Shoot,&s_willshoot4}; +statetype s_willshoot4 = {false,SPR_WILL_SHOOT4,10,NULL,T_Shoot,&s_willshoot5}; +statetype s_willshoot5 = {false,SPR_WILL_SHOOT3,10,NULL,T_Shoot,&s_willshoot6}; +statetype s_willshoot6 = {false,SPR_WILL_SHOOT4,10,NULL,T_Shoot,&s_willchase1}; + + +/* +=============== += += SpawnWill += +=============== +*/ + +void SpawnWill (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (SoundBlasterPresent && DigiMode != sds_Off) + s_willdie2.tictime = 70; + + SpawnNewObj (tilex,tiley,&s_willstand); + new->obclass = willobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_will]; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +================ += += T_Will += +================ +*/ + +void T_Will (objtype *ob) +{ + long move; + int dx,dy,dist; + boolean dodge; + + dodge = false; + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx : dy; + + if (CheckLine(ob)) // got a shot at player? + { + if ( US_RndT() < (tics<<3) ) + { + // + // go into attack frame + // + if (ob->obclass == willobj) + NewState (ob,&s_willshoot1); + else if (ob->obclass == angelobj) + NewState (ob,&s_angelshoot1); + else + NewState (ob,&s_deathshoot1); + return; + } + dodge = true; + } + + if (ob->dir == nodir) + { + if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (ob->distance < 0) + { + // + // waiting for a door to open + // + OpenDoor (-ob->distance-1); + if (doorobjlist[-ob->distance-1].action != dr_open) + return; + ob->distance = TILEGLOBAL; // go ahead, the door is now opoen + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + if (dist <4) + SelectRunDir (ob); + else if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + + +// +// death +// +extern statetype s_deathstand; + +extern statetype s_deathchase1; +extern statetype s_deathchase1s; +extern statetype s_deathchase2; +extern statetype s_deathchase3; +extern statetype s_deathchase3s; +extern statetype s_deathchase4; + +extern statetype s_deathdie1; +extern statetype s_deathdie2; +extern statetype s_deathdie3; +extern statetype s_deathdie4; +extern statetype s_deathdie5; +extern statetype s_deathdie6; +extern statetype s_deathdie7; +extern statetype s_deathdie8; +extern statetype s_deathdie9; + +extern statetype s_deathshoot1; +extern statetype s_deathshoot2; +extern statetype s_deathshoot3; +extern statetype s_deathshoot4; +extern statetype s_deathshoot5; + + +statetype s_deathstand = {false,SPR_DEATH_W1,0,T_Stand,NULL,&s_deathstand}; + +statetype s_deathchase1 = {false,SPR_DEATH_W1,10,T_Will,NULL,&s_deathchase1s}; +statetype s_deathchase1s = {false,SPR_DEATH_W1,3,NULL,NULL,&s_deathchase2}; +statetype s_deathchase2 = {false,SPR_DEATH_W2,8,T_Will,NULL,&s_deathchase3}; +statetype s_deathchase3 = {false,SPR_DEATH_W3,10,T_Will,NULL,&s_deathchase3s}; +statetype s_deathchase3s = {false,SPR_DEATH_W3,3,NULL,NULL,&s_deathchase4}; +statetype s_deathchase4 = {false,SPR_DEATH_W4,8,T_Will,NULL,&s_deathchase1}; + +statetype s_deathdeathcam = {false,SPR_DEATH_W1,1,NULL,NULL,&s_deathdie1}; + +statetype s_deathdie1 = {false,SPR_DEATH_W1,1,NULL,A_DeathScream,&s_deathdie2}; +statetype s_deathdie2 = {false,SPR_DEATH_W1,10,NULL,NULL,&s_deathdie3}; +statetype s_deathdie3 = {false,SPR_DEATH_DIE1,10,NULL,NULL,&s_deathdie4}; +statetype s_deathdie4 = {false,SPR_DEATH_DIE2,10,NULL,NULL,&s_deathdie5}; +statetype s_deathdie5 = {false,SPR_DEATH_DIE3,10,NULL,NULL,&s_deathdie6}; +statetype s_deathdie6 = {false,SPR_DEATH_DIE4,10,NULL,NULL,&s_deathdie7}; +statetype s_deathdie7 = {false,SPR_DEATH_DIE5,10,NULL,NULL,&s_deathdie8}; +statetype s_deathdie8 = {false,SPR_DEATH_DIE6,10,NULL,NULL,&s_deathdie9}; +statetype s_deathdie9 = {false,SPR_DEATH_DEAD,0,NULL,NULL,&s_deathdie9}; + +statetype s_deathshoot1 = {false,SPR_DEATH_SHOOT1,30,NULL,NULL,&s_deathshoot2}; +statetype s_deathshoot2 = {false,SPR_DEATH_SHOOT2,10,NULL,T_Launch,&s_deathshoot3}; +statetype s_deathshoot3 = {false,SPR_DEATH_SHOOT4,10,NULL,T_Shoot,&s_deathshoot4}; +statetype s_deathshoot4 = {false,SPR_DEATH_SHOOT3,10,NULL,T_Launch,&s_deathshoot5}; +statetype s_deathshoot5 = {false,SPR_DEATH_SHOOT4,10,NULL,T_Shoot,&s_deathchase1}; + + +/* +=============== += += SpawnDeath += +=============== +*/ + +void SpawnDeath (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (SoundBlasterPresent && DigiMode != sds_Off) + s_deathdie2.tictime = 105; + + SpawnNewObj (tilex,tiley,&s_deathstand); + new->obclass = deathobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_death]; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + +/* +=============== += += T_Launch += +=============== +*/ + +void T_Launch (objtype *ob) +{ + long deltax,deltay; + float angle; + int iangle; + + deltax = player->x - ob->x; + deltay = ob->y - player->y; + angle = atan2 (deltay,deltax); + if (angle<0) + angle = M_PI*2+angle; + iangle = angle/(M_PI*2)*ANGLES; + if (ob->obclass == deathobj) + { + T_Shoot (ob); + if (ob->state == &s_deathshoot2) + { + iangle-=4; + if (iangle<0) + iangle+=ANGLES; + } + else + { + iangle+=4; + if (iangle>=ANGLES) + iangle-=ANGLES; + } + } + + GetNewActor (); + new->state = &s_rocket; + new->ticcount = 1; + + new->tilex = ob->tilex; + new->tiley = ob->tiley; + new->x = ob->x; + new->y = ob->y; + new->obclass = rocketobj; + switch(ob->obclass) + { + case deathobj: + new->state = &s_hrocket; + new->obclass = hrocketobj; + PlaySoundLocActor (KNIGHTMISSILESND,new); + break; + case angelobj: + new->state = &s_spark1; + new->obclass = sparkobj; + PlaySoundLocActor (ANGELFIRESND,new); + break; + default: + PlaySoundLocActor (MISSILEFIRESND,new); + } + + new->dir = nodir; + new->angle = iangle; + new->speed = 0x2000l; + new->flags = FL_NONMARK; + new->active = true; +} + + + +// +// angel +// +void A_Relaunch (objtype *ob); +void A_Victory (objtype *ob); +void A_StartAttack (objtype *ob); +void A_Breathing (objtype *ob); + +extern statetype s_angelstand; + +extern statetype s_angelchase1; +extern statetype s_angelchase1s; +extern statetype s_angelchase2; +extern statetype s_angelchase3; +extern statetype s_angelchase3s; +extern statetype s_angelchase4; + +extern statetype s_angeldie1; +extern statetype s_angeldie11; +extern statetype s_angeldie2; +extern statetype s_angeldie3; +extern statetype s_angeldie4; +extern statetype s_angeldie5; +extern statetype s_angeldie6; +extern statetype s_angeldie7; +extern statetype s_angeldie8; +extern statetype s_angeldie9; + +extern statetype s_angelshoot1; +extern statetype s_angelshoot2; +extern statetype s_angelshoot3; +extern statetype s_angelshoot4; +extern statetype s_angelshoot5; +extern statetype s_angelshoot6; + +extern statetype s_angeltired; +extern statetype s_angeltired2; +extern statetype s_angeltired3; +extern statetype s_angeltired4; +extern statetype s_angeltired5; +extern statetype s_angeltired6; +extern statetype s_angeltired7; + +extern statetype s_spark1; +extern statetype s_spark2; +extern statetype s_spark3; +extern statetype s_spark4; + + +statetype s_angelstand = {false,SPR_ANGEL_W1,0,T_Stand,NULL,&s_angelstand}; + +statetype s_angelchase1 = {false,SPR_ANGEL_W1,10,T_Will,NULL,&s_angelchase1s}; +statetype s_angelchase1s = {false,SPR_ANGEL_W1,3,NULL,NULL,&s_angelchase2}; +statetype s_angelchase2 = {false,SPR_ANGEL_W2,8,T_Will,NULL,&s_angelchase3}; +statetype s_angelchase3 = {false,SPR_ANGEL_W3,10,T_Will,NULL,&s_angelchase3s}; +statetype s_angelchase3s = {false,SPR_ANGEL_W3,3,NULL,NULL,&s_angelchase4}; +statetype s_angelchase4 = {false,SPR_ANGEL_W4,8,T_Will,NULL,&s_angelchase1}; + +statetype s_angeldie1 = {false,SPR_ANGEL_W1,1,NULL,A_DeathScream,&s_angeldie11}; +statetype s_angeldie11 = {false,SPR_ANGEL_W1,1,NULL,NULL,&s_angeldie2}; +statetype s_angeldie2 = {false,SPR_ANGEL_DIE1,10,NULL,A_Slurpie,&s_angeldie3}; +statetype s_angeldie3 = {false,SPR_ANGEL_DIE2,10,NULL,NULL,&s_angeldie4}; +statetype s_angeldie4 = {false,SPR_ANGEL_DIE3,10,NULL,NULL,&s_angeldie5}; +statetype s_angeldie5 = {false,SPR_ANGEL_DIE4,10,NULL,NULL,&s_angeldie6}; +statetype s_angeldie6 = {false,SPR_ANGEL_DIE5,10,NULL,NULL,&s_angeldie7}; +statetype s_angeldie7 = {false,SPR_ANGEL_DIE6,10,NULL,NULL,&s_angeldie8}; +statetype s_angeldie8 = {false,SPR_ANGEL_DIE7,10,NULL,NULL,&s_angeldie9}; +statetype s_angeldie9 = {false,SPR_ANGEL_DEAD,130,NULL,A_Victory,&s_angeldie9}; + +statetype s_angelshoot1 = {false,SPR_ANGEL_SHOOT1,10,NULL,A_StartAttack,&s_angelshoot2}; +statetype s_angelshoot2 = {false,SPR_ANGEL_SHOOT2,20,NULL,T_Launch,&s_angelshoot3}; +statetype s_angelshoot3 = {false,SPR_ANGEL_SHOOT1,10,NULL,A_Relaunch,&s_angelshoot2}; + +statetype s_angeltired = {false,SPR_ANGEL_TIRED1,40,NULL,A_Breathing,&s_angeltired2}; +statetype s_angeltired2 = {false,SPR_ANGEL_TIRED2,40,NULL,NULL,&s_angeltired3}; +statetype s_angeltired3 = {false,SPR_ANGEL_TIRED1,40,NULL,A_Breathing,&s_angeltired4}; +statetype s_angeltired4 = {false,SPR_ANGEL_TIRED2,40,NULL,NULL,&s_angeltired5}; +statetype s_angeltired5 = {false,SPR_ANGEL_TIRED1,40,NULL,A_Breathing,&s_angeltired6}; +statetype s_angeltired6 = {false,SPR_ANGEL_TIRED2,40,NULL,NULL,&s_angeltired7}; +statetype s_angeltired7 = {false,SPR_ANGEL_TIRED1,40,NULL,A_Breathing,&s_angelchase1}; + +statetype s_spark1 = {false,SPR_SPARK1,6,T_Projectile,NULL,&s_spark2}; +statetype s_spark2 = {false,SPR_SPARK2,6,T_Projectile,NULL,&s_spark3}; +statetype s_spark3 = {false,SPR_SPARK3,6,T_Projectile,NULL,&s_spark4}; +statetype s_spark4 = {false,SPR_SPARK4,6,T_Projectile,NULL,&s_spark1}; + + +#pragma argsused +void A_Slurpie (objtype *ob) +{ + SD_PlaySound(SLURPIESND); +} + +#pragma argsused +void A_Breathing (objtype *ob) +{ + SD_PlaySound(ANGELTIREDSND); +} + +/* +=============== += += SpawnAngel += +=============== +*/ + +void SpawnAngel (int tilex, int tiley) +{ + unsigned far *map,tile; + + + if (SoundBlasterPresent && DigiMode != sds_Off) + s_angeldie11.tictime = 105; + + SpawnNewObj (tilex,tiley,&s_angelstand); + new->obclass = angelobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_angel]; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +================= += += A_Victory += +================= +*/ + +#pragma argsused +void A_Victory (objtype *ob) +{ + playstate = ex_victorious; +} + + +/* +================= += += A_StartAttack += +================= +*/ + +void A_StartAttack (objtype *ob) +{ + ob->temp1 = 0; +} + + +/* +================= += += A_Relaunch += +================= +*/ + +void A_Relaunch (objtype *ob) +{ + if (++ob->temp1 == 3) + { + NewState (ob,&s_angeltired); + return; + } + + if (US_RndT()&1) + { + NewState (ob,&s_angelchase1); + return; + } +} + + + + +// +// spectre +// +void T_SpectreWait (objtype *ob); +void A_Dormant (objtype *ob); + +extern statetype s_spectrewait1; +extern statetype s_spectrewait2; +extern statetype s_spectrewait3; +extern statetype s_spectrewait4; + +extern statetype s_spectrechase1; +extern statetype s_spectrechase2; +extern statetype s_spectrechase3; +extern statetype s_spectrechase4; + +extern statetype s_spectredie1; +extern statetype s_spectredie2; +extern statetype s_spectredie3; +extern statetype s_spectredie4; + +extern statetype s_spectrewake; + +statetype s_spectrewait1 = {false,SPR_SPECTRE_W1,10,T_Stand,NULL,&s_spectrewait2}; +statetype s_spectrewait2 = {false,SPR_SPECTRE_W2,10,T_Stand,NULL,&s_spectrewait3}; +statetype s_spectrewait3 = {false,SPR_SPECTRE_W3,10,T_Stand,NULL,&s_spectrewait4}; +statetype s_spectrewait4 = {false,SPR_SPECTRE_W4,10,T_Stand,NULL,&s_spectrewait1}; + +statetype s_spectrechase1 = {false,SPR_SPECTRE_W1,10,T_Ghosts,NULL,&s_spectrechase2}; +statetype s_spectrechase2 = {false,SPR_SPECTRE_W2,10,T_Ghosts,NULL,&s_spectrechase3}; +statetype s_spectrechase3 = {false,SPR_SPECTRE_W3,10,T_Ghosts,NULL,&s_spectrechase4}; +statetype s_spectrechase4 = {false,SPR_SPECTRE_W4,10,T_Ghosts,NULL,&s_spectrechase1}; + +statetype s_spectredie1 = {false,SPR_SPECTRE_F1,10,NULL,NULL,&s_spectredie2}; +statetype s_spectredie2 = {false,SPR_SPECTRE_F2,10,NULL,NULL,&s_spectredie3}; +statetype s_spectredie3 = {false,SPR_SPECTRE_F3,10,NULL,NULL,&s_spectredie4}; +statetype s_spectredie4 = {false,SPR_SPECTRE_F4,300,NULL,NULL,&s_spectrewake}; +statetype s_spectrewake = {false,SPR_SPECTRE_F4,10,NULL,A_Dormant,&s_spectrewake}; + +/* +=============== += += SpawnSpectre += +=============== +*/ + +void SpawnSpectre (int tilex, int tiley) +{ + unsigned far *map,tile; + + SpawnNewObj (tilex,tiley,&s_spectrewait1); + new->obclass = spectreobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_spectre]; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; // |FL_NEVERMARK|FL_NONMARK; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +=============== += += A_Dormant += +=============== +*/ + +void A_Dormant (objtype *ob) +{ + long deltax,deltay; + int xl,xh,yl,yh; + int x,y; + unsigned tile; + + deltax = ob->x - player->x; + if (deltax < -MINACTORDIST || deltax > MINACTORDIST) + goto moveok; + deltay = ob->y - player->y; + if (deltay < -MINACTORDIST || deltay > MINACTORDIST) + goto moveok; + + return; +moveok: + + xl = (ob->x-MINDIST) >> TILESHIFT; + xh = (ob->x+MINDIST) >> TILESHIFT; + yl = (ob->y-MINDIST) >> TILESHIFT; + yh = (ob->y+MINDIST) >> TILESHIFT; + + for (y=yl ; y<=yh ; y++) + for (x=xl ; x<=xh ; x++) + { + tile = actorat[x][y]; + if (!tile) + continue; + if (tile<256) + return; + if (((objtype *)tile)->flags&FL_SHOOTABLE) + return; + } + + ob->flags |= FL_AMBUSH | FL_SHOOTABLE; + ob->flags &= ~FL_ATTACKMODE; + ob->dir = nodir; + NewState (ob,&s_spectrewait1); +} + + +#endif + +/* +============================================================================= + + SCHABBS / GIFT / FAT + +============================================================================= +*/ + +#ifndef SPEAR +/* +=============== += += SpawnGhosts += +=============== +*/ + +void SpawnGhosts (int which, int tilex, int tiley) +{ + unsigned far *map,tile; + + switch(which) + { + case en_blinky: + SpawnNewObj (tilex,tiley,&s_blinkychase1); + break; + case en_clyde: + SpawnNewObj (tilex,tiley,&s_clydechase1); + break; + case en_pinky: + SpawnNewObj (tilex,tiley,&s_pinkychase1); + break; + case en_inky: + SpawnNewObj (tilex,tiley,&s_inkychase1); + break; + } + + new->obclass = ghostobj; + new->speed = SPDDOG; + + new->dir = east; + new->flags |= FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + + +void T_Gift (objtype *ob); +void T_GiftThrow (objtype *ob); + +void T_Fat (objtype *ob); +void T_FatThrow (objtype *ob); + +// +// schabb +// +extern statetype s_schabbstand; + +extern statetype s_schabbchase1; +extern statetype s_schabbchase1s; +extern statetype s_schabbchase2; +extern statetype s_schabbchase3; +extern statetype s_schabbchase3s; +extern statetype s_schabbchase4; + +extern statetype s_schabbdie1; +extern statetype s_schabbdie2; +extern statetype s_schabbdie3; +extern statetype s_schabbdie4; +extern statetype s_schabbdie5; +extern statetype s_schabbdie6; + +extern statetype s_schabbshoot1; +extern statetype s_schabbshoot2; + +extern statetype s_needle1; +extern statetype s_needle2; +extern statetype s_needle3; +extern statetype s_needle4; + +extern statetype s_schabbdeathcam; + + +statetype s_schabbstand = {false,SPR_SCHABB_W1,0,T_Stand,NULL,&s_schabbstand}; + +statetype s_schabbchase1 = {false,SPR_SCHABB_W1,10,T_Schabb,NULL,&s_schabbchase1s}; +statetype s_schabbchase1s = {false,SPR_SCHABB_W1,3,NULL,NULL,&s_schabbchase2}; +statetype s_schabbchase2 = {false,SPR_SCHABB_W2,8,T_Schabb,NULL,&s_schabbchase3}; +statetype s_schabbchase3 = {false,SPR_SCHABB_W3,10,T_Schabb,NULL,&s_schabbchase3s}; +statetype s_schabbchase3s = {false,SPR_SCHABB_W3,3,NULL,NULL,&s_schabbchase4}; +statetype s_schabbchase4 = {false,SPR_SCHABB_W4,8,T_Schabb,NULL,&s_schabbchase1}; + +statetype s_schabbdeathcam = {false,SPR_SCHABB_W1,1,NULL,NULL,&s_schabbdie1}; + +statetype s_schabbdie1 = {false,SPR_SCHABB_W1,10,NULL,A_DeathScream,&s_schabbdie2}; +statetype s_schabbdie2 = {false,SPR_SCHABB_W1,10,NULL,NULL,&s_schabbdie3}; +statetype s_schabbdie3 = {false,SPR_SCHABB_DIE1,10,NULL,NULL,&s_schabbdie4}; +statetype s_schabbdie4 = {false,SPR_SCHABB_DIE2,10,NULL,NULL,&s_schabbdie5}; +statetype s_schabbdie5 = {false,SPR_SCHABB_DIE3,10,NULL,NULL,&s_schabbdie6}; +statetype s_schabbdie6 = {false,SPR_SCHABB_DEAD,20,NULL,A_StartDeathCam,&s_schabbdie6}; + +statetype s_schabbshoot1 = {false,SPR_SCHABB_SHOOT1,30,NULL,NULL,&s_schabbshoot2}; +statetype s_schabbshoot2 = {false,SPR_SCHABB_SHOOT2,10,NULL,T_SchabbThrow,&s_schabbchase1}; + +statetype s_needle1 = {false,SPR_HYPO1,6,T_Projectile,NULL,&s_needle2}; +statetype s_needle2 = {false,SPR_HYPO2,6,T_Projectile,NULL,&s_needle3}; +statetype s_needle3 = {false,SPR_HYPO3,6,T_Projectile,NULL,&s_needle4}; +statetype s_needle4 = {false,SPR_HYPO4,6,T_Projectile,NULL,&s_needle1}; + + +// +// gift +// +extern statetype s_giftstand; + +extern statetype s_giftchase1; +extern statetype s_giftchase1s; +extern statetype s_giftchase2; +extern statetype s_giftchase3; +extern statetype s_giftchase3s; +extern statetype s_giftchase4; + +extern statetype s_giftdie1; +extern statetype s_giftdie2; +extern statetype s_giftdie3; +extern statetype s_giftdie4; +extern statetype s_giftdie5; +extern statetype s_giftdie6; + +extern statetype s_giftshoot1; +extern statetype s_giftshoot2; + +extern statetype s_needle1; +extern statetype s_needle2; +extern statetype s_needle3; +extern statetype s_needle4; + +extern statetype s_giftdeathcam; + +extern statetype s_boom1; +extern statetype s_boom2; +extern statetype s_boom3; + + +statetype s_giftstand = {false,SPR_GIFT_W1,0,T_Stand,NULL,&s_giftstand}; + +statetype s_giftchase1 = {false,SPR_GIFT_W1,10,T_Gift,NULL,&s_giftchase1s}; +statetype s_giftchase1s = {false,SPR_GIFT_W1,3,NULL,NULL,&s_giftchase2}; +statetype s_giftchase2 = {false,SPR_GIFT_W2,8,T_Gift,NULL,&s_giftchase3}; +statetype s_giftchase3 = {false,SPR_GIFT_W3,10,T_Gift,NULL,&s_giftchase3s}; +statetype s_giftchase3s = {false,SPR_GIFT_W3,3,NULL,NULL,&s_giftchase4}; +statetype s_giftchase4 = {false,SPR_GIFT_W4,8,T_Gift,NULL,&s_giftchase1}; + +statetype s_giftdeathcam = {false,SPR_GIFT_W1,1,NULL,NULL,&s_giftdie1}; + +statetype s_giftdie1 = {false,SPR_GIFT_W1,1,NULL,A_DeathScream,&s_giftdie2}; +statetype s_giftdie2 = {false,SPR_GIFT_W1,10,NULL,NULL,&s_giftdie3}; +statetype s_giftdie3 = {false,SPR_GIFT_DIE1,10,NULL,NULL,&s_giftdie4}; +statetype s_giftdie4 = {false,SPR_GIFT_DIE2,10,NULL,NULL,&s_giftdie5}; +statetype s_giftdie5 = {false,SPR_GIFT_DIE3,10,NULL,NULL,&s_giftdie6}; +statetype s_giftdie6 = {false,SPR_GIFT_DEAD,20,NULL,A_StartDeathCam,&s_giftdie6}; + +statetype s_giftshoot1 = {false,SPR_GIFT_SHOOT1,30,NULL,NULL,&s_giftshoot2}; +statetype s_giftshoot2 = {false,SPR_GIFT_SHOOT2,10,NULL,T_GiftThrow,&s_giftchase1}; + + +// +// fat +// +extern statetype s_fatstand; + +extern statetype s_fatchase1; +extern statetype s_fatchase1s; +extern statetype s_fatchase2; +extern statetype s_fatchase3; +extern statetype s_fatchase3s; +extern statetype s_fatchase4; + +extern statetype s_fatdie1; +extern statetype s_fatdie2; +extern statetype s_fatdie3; +extern statetype s_fatdie4; +extern statetype s_fatdie5; +extern statetype s_fatdie6; + +extern statetype s_fatshoot1; +extern statetype s_fatshoot2; +extern statetype s_fatshoot3; +extern statetype s_fatshoot4; +extern statetype s_fatshoot5; +extern statetype s_fatshoot6; + +extern statetype s_needle1; +extern statetype s_needle2; +extern statetype s_needle3; +extern statetype s_needle4; + +extern statetype s_fatdeathcam; + + +statetype s_fatstand = {false,SPR_FAT_W1,0,T_Stand,NULL,&s_fatstand}; + +statetype s_fatchase1 = {false,SPR_FAT_W1,10,T_Fat,NULL,&s_fatchase1s}; +statetype s_fatchase1s = {false,SPR_FAT_W1,3,NULL,NULL,&s_fatchase2}; +statetype s_fatchase2 = {false,SPR_FAT_W2,8,T_Fat,NULL,&s_fatchase3}; +statetype s_fatchase3 = {false,SPR_FAT_W3,10,T_Fat,NULL,&s_fatchase3s}; +statetype s_fatchase3s = {false,SPR_FAT_W3,3,NULL,NULL,&s_fatchase4}; +statetype s_fatchase4 = {false,SPR_FAT_W4,8,T_Fat,NULL,&s_fatchase1}; + +statetype s_fatdeathcam = {false,SPR_FAT_W1,1,NULL,NULL,&s_fatdie1}; + +statetype s_fatdie1 = {false,SPR_FAT_W1,1,NULL,A_DeathScream,&s_fatdie2}; +statetype s_fatdie2 = {false,SPR_FAT_W1,10,NULL,NULL,&s_fatdie3}; +statetype s_fatdie3 = {false,SPR_FAT_DIE1,10,NULL,NULL,&s_fatdie4}; +statetype s_fatdie4 = {false,SPR_FAT_DIE2,10,NULL,NULL,&s_fatdie5}; +statetype s_fatdie5 = {false,SPR_FAT_DIE3,10,NULL,NULL,&s_fatdie6}; +statetype s_fatdie6 = {false,SPR_FAT_DEAD,20,NULL,A_StartDeathCam,&s_fatdie6}; + +statetype s_fatshoot1 = {false,SPR_FAT_SHOOT1,30,NULL,NULL,&s_fatshoot2}; +statetype s_fatshoot2 = {false,SPR_FAT_SHOOT2,10,NULL,T_GiftThrow,&s_fatshoot3}; +statetype s_fatshoot3 = {false,SPR_FAT_SHOOT3,10,NULL,T_Shoot,&s_fatshoot4}; +statetype s_fatshoot4 = {false,SPR_FAT_SHOOT4,10,NULL,T_Shoot,&s_fatshoot5}; +statetype s_fatshoot5 = {false,SPR_FAT_SHOOT3,10,NULL,T_Shoot,&s_fatshoot6}; +statetype s_fatshoot6 = {false,SPR_FAT_SHOOT4,10,NULL,T_Shoot,&s_fatchase1}; + + +/* +=============== += += SpawnSchabbs += +=============== +*/ + +void SpawnSchabbs (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (DigiMode != sds_Off) + s_schabbdie2.tictime = 140; + else + s_schabbdie2.tictime = 5; + + SpawnNewObj (tilex,tiley,&s_schabbstand); + new->speed = SPDPATROL; + + new->obclass = schabbobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_schabbs]; + new->dir = south; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +=============== += += SpawnGift += +=============== +*/ + +void SpawnGift (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (DigiMode != sds_Off) + s_giftdie2.tictime = 140; + else + s_giftdie2.tictime = 5; + + SpawnNewObj (tilex,tiley,&s_giftstand); + new->speed = SPDPATROL; + + new->obclass = giftobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_gift]; + new->dir = north; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +=============== += += SpawnFat += +=============== +*/ + +void SpawnFat (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (DigiMode != sds_Off) + s_fatdie2.tictime = 140; + else + s_fatdie2.tictime = 5; + + SpawnNewObj (tilex,tiley,&s_fatstand); + new->speed = SPDPATROL; + + new->obclass = fatobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_fat]; + new->dir = south; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +================= += += T_SchabbThrow += +================= +*/ + +void T_SchabbThrow (objtype *ob) +{ + long deltax,deltay; + float angle; + int iangle; + + deltax = player->x - ob->x; + deltay = ob->y - player->y; + angle = atan2 (deltay,deltax); + if (angle<0) + angle = M_PI*2+angle; + iangle = angle/(M_PI*2)*ANGLES; + + GetNewActor (); + new->state = &s_needle1; + new->ticcount = 1; + + new->tilex = ob->tilex; + new->tiley = ob->tiley; + new->x = ob->x; + new->y = ob->y; + new->obclass = needleobj; + new->dir = nodir; + new->angle = iangle; + new->speed = 0x2000l; + + new->flags = FL_NONMARK; + new->active = true; + + PlaySoundLocActor (SCHABBSTHROWSND,new); +} + +/* +================= += += T_GiftThrow += +================= +*/ + +void T_GiftThrow (objtype *ob) +{ + long deltax,deltay; + float angle; + int iangle; + + deltax = player->x - ob->x; + deltay = ob->y - player->y; + angle = atan2 (deltay,deltax); + if (angle<0) + angle = M_PI*2+angle; + iangle = angle/(M_PI*2)*ANGLES; + + GetNewActor (); + new->state = &s_rocket; + new->ticcount = 1; + + new->tilex = ob->tilex; + new->tiley = ob->tiley; + new->x = ob->x; + new->y = ob->y; + new->obclass = rocketobj; + new->dir = nodir; + new->angle = iangle; + new->speed = 0x2000l; + new->flags = FL_NONMARK; + new->active = true; + + PlaySoundLocActor (MISSILEFIRESND,new); +} + + + +/* +================= += += T_Schabb += +================= +*/ + +void T_Schabb (objtype *ob) +{ + long move; + int dx,dy,dist; + boolean dodge; + + dodge = false; + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx : dy; + + if (CheckLine(ob)) // got a shot at player? + { + + if ( US_RndT() < (tics<<3) ) + { + // + // go into attack frame + // + NewState (ob,&s_schabbshoot1); + return; + } + dodge = true; + } + + if (ob->dir == nodir) + { + if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (ob->distance < 0) + { + // + // waiting for a door to open + // + OpenDoor (-ob->distance-1); + if (doorobjlist[-ob->distance-1].action != dr_open) + return; + ob->distance = TILEGLOBAL; // go ahead, the door is now opoen + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + if (dist <4) + SelectRunDir (ob); + else if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + + + + +/* +================= += += T_Gift += +================= +*/ + +void T_Gift (objtype *ob) +{ + long move; + int dx,dy,dist; + boolean dodge; + + dodge = false; + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx : dy; + + if (CheckLine(ob)) // got a shot at player? + { + + if ( US_RndT() < (tics<<3) ) + { + // + // go into attack frame + // + NewState (ob,&s_giftshoot1); + return; + } + dodge = true; + } + + if (ob->dir == nodir) + { + if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (ob->distance < 0) + { + // + // waiting for a door to open + // + OpenDoor (-ob->distance-1); + if (doorobjlist[-ob->distance-1].action != dr_open) + return; + ob->distance = TILEGLOBAL; // go ahead, the door is now opoen + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + if (dist <4) + SelectRunDir (ob); + else if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + + + + +/* +================= += += T_Fat += +================= +*/ + +void T_Fat (objtype *ob) +{ + long move; + int dx,dy,dist; + boolean dodge; + + dodge = false; + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx : dy; + + if (CheckLine(ob)) // got a shot at player? + { + + if ( US_RndT() < (tics<<3) ) + { + // + // go into attack frame + // + NewState (ob,&s_fatshoot1); + return; + } + dodge = true; + } + + if (ob->dir == nodir) + { + if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (ob->distance < 0) + { + // + // waiting for a door to open + // + OpenDoor (-ob->distance-1); + if (doorobjlist[-ob->distance-1].action != dr_open) + return; + ob->distance = TILEGLOBAL; // go ahead, the door is now opoen + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + if (dist <4) + SelectRunDir (ob); + else if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + + + +/* +============================================================================= + + HITLERS + +============================================================================= +*/ + + +// +// fake +// +extern statetype s_fakestand; + +extern statetype s_fakechase1; +extern statetype s_fakechase1s; +extern statetype s_fakechase2; +extern statetype s_fakechase3; +extern statetype s_fakechase3s; +extern statetype s_fakechase4; + +extern statetype s_fakedie1; +extern statetype s_fakedie2; +extern statetype s_fakedie3; +extern statetype s_fakedie4; +extern statetype s_fakedie5; +extern statetype s_fakedie6; + +extern statetype s_fakeshoot1; +extern statetype s_fakeshoot2; +extern statetype s_fakeshoot3; +extern statetype s_fakeshoot4; +extern statetype s_fakeshoot5; +extern statetype s_fakeshoot6; +extern statetype s_fakeshoot7; +extern statetype s_fakeshoot8; +extern statetype s_fakeshoot9; + +extern statetype s_fire1; +extern statetype s_fire2; + +statetype s_fakestand = {false,SPR_FAKE_W1,0,T_Stand,NULL,&s_fakestand}; + +statetype s_fakechase1 = {false,SPR_FAKE_W1,10,T_Fake,NULL,&s_fakechase1s}; +statetype s_fakechase1s = {false,SPR_FAKE_W1,3,NULL,NULL,&s_fakechase2}; +statetype s_fakechase2 = {false,SPR_FAKE_W2,8,T_Fake,NULL,&s_fakechase3}; +statetype s_fakechase3 = {false,SPR_FAKE_W3,10,T_Fake,NULL,&s_fakechase3s}; +statetype s_fakechase3s = {false,SPR_FAKE_W3,3,NULL,NULL,&s_fakechase4}; +statetype s_fakechase4 = {false,SPR_FAKE_W4,8,T_Fake,NULL,&s_fakechase1}; + +statetype s_fakedie1 = {false,SPR_FAKE_DIE1,10,NULL,A_DeathScream,&s_fakedie2}; +statetype s_fakedie2 = {false,SPR_FAKE_DIE2,10,NULL,NULL,&s_fakedie3}; +statetype s_fakedie3 = {false,SPR_FAKE_DIE3,10,NULL,NULL,&s_fakedie4}; +statetype s_fakedie4 = {false,SPR_FAKE_DIE4,10,NULL,NULL,&s_fakedie5}; +statetype s_fakedie5 = {false,SPR_FAKE_DIE5,10,NULL,NULL,&s_fakedie6}; +statetype s_fakedie6 = {false,SPR_FAKE_DEAD,0,NULL,NULL,&s_fakedie6}; + +statetype s_fakeshoot1 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot2}; +statetype s_fakeshoot2 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot3}; +statetype s_fakeshoot3 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot4}; +statetype s_fakeshoot4 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot5}; +statetype s_fakeshoot5 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot6}; +statetype s_fakeshoot6 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot7}; +statetype s_fakeshoot7 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot8}; +statetype s_fakeshoot8 = {false,SPR_FAKE_SHOOT,8,NULL,T_FakeFire,&s_fakeshoot9}; +statetype s_fakeshoot9 = {false,SPR_FAKE_SHOOT,8,NULL,NULL,&s_fakechase1}; + +statetype s_fire1 = {false,SPR_FIRE1,6,NULL,T_Projectile,&s_fire2}; +statetype s_fire2 = {false,SPR_FIRE2,6,NULL,T_Projectile,&s_fire1}; + +// +// hitler +// +extern statetype s_mechachase1; +extern statetype s_mechachase1s; +extern statetype s_mechachase2; +extern statetype s_mechachase3; +extern statetype s_mechachase3s; +extern statetype s_mechachase4; + +extern statetype s_mechadie1; +extern statetype s_mechadie2; +extern statetype s_mechadie3; +extern statetype s_mechadie4; + +extern statetype s_mechashoot1; +extern statetype s_mechashoot2; +extern statetype s_mechashoot3; +extern statetype s_mechashoot4; +extern statetype s_mechashoot5; +extern statetype s_mechashoot6; + + +extern statetype s_hitlerchase1; +extern statetype s_hitlerchase1s; +extern statetype s_hitlerchase2; +extern statetype s_hitlerchase3; +extern statetype s_hitlerchase3s; +extern statetype s_hitlerchase4; + +extern statetype s_hitlerdie1; +extern statetype s_hitlerdie2; +extern statetype s_hitlerdie3; +extern statetype s_hitlerdie4; +extern statetype s_hitlerdie5; +extern statetype s_hitlerdie6; +extern statetype s_hitlerdie7; +extern statetype s_hitlerdie8; +extern statetype s_hitlerdie9; +extern statetype s_hitlerdie10; + +extern statetype s_hitlershoot1; +extern statetype s_hitlershoot2; +extern statetype s_hitlershoot3; +extern statetype s_hitlershoot4; +extern statetype s_hitlershoot5; +extern statetype s_hitlershoot6; + +extern statetype s_hitlerdeathcam; + +statetype s_mechastand = {false,SPR_MECHA_W1,0,T_Stand,NULL,&s_mechastand}; + +statetype s_mechachase1 = {false,SPR_MECHA_W1,10,T_Chase,A_MechaSound,&s_mechachase1s}; +statetype s_mechachase1s = {false,SPR_MECHA_W1,6,NULL,NULL,&s_mechachase2}; +statetype s_mechachase2 = {false,SPR_MECHA_W2,8,T_Chase,NULL,&s_mechachase3}; +statetype s_mechachase3 = {false,SPR_MECHA_W3,10,T_Chase,A_MechaSound,&s_mechachase3s}; +statetype s_mechachase3s = {false,SPR_MECHA_W3,6,NULL,NULL,&s_mechachase4}; +statetype s_mechachase4 = {false,SPR_MECHA_W4,8,T_Chase,NULL,&s_mechachase1}; + +statetype s_mechadie1 = {false,SPR_MECHA_DIE1,10,NULL,A_DeathScream,&s_mechadie2}; +statetype s_mechadie2 = {false,SPR_MECHA_DIE2,10,NULL,NULL,&s_mechadie3}; +statetype s_mechadie3 = {false,SPR_MECHA_DIE3,10,NULL,A_HitlerMorph,&s_mechadie4}; +statetype s_mechadie4 = {false,SPR_MECHA_DEAD,0,NULL,NULL,&s_mechadie4}; + +statetype s_mechashoot1 = {false,SPR_MECHA_SHOOT1,30,NULL,NULL,&s_mechashoot2}; +statetype s_mechashoot2 = {false,SPR_MECHA_SHOOT2,10,NULL,T_Shoot,&s_mechashoot3}; +statetype s_mechashoot3 = {false,SPR_MECHA_SHOOT3,10,NULL,T_Shoot,&s_mechashoot4}; +statetype s_mechashoot4 = {false,SPR_MECHA_SHOOT2,10,NULL,T_Shoot,&s_mechashoot5}; +statetype s_mechashoot5 = {false,SPR_MECHA_SHOOT3,10,NULL,T_Shoot,&s_mechashoot6}; +statetype s_mechashoot6 = {false,SPR_MECHA_SHOOT2,10,NULL,T_Shoot,&s_mechachase1}; + + +statetype s_hitlerchase1 = {false,SPR_HITLER_W1,6,T_Chase,NULL,&s_hitlerchase1s}; +statetype s_hitlerchase1s = {false,SPR_HITLER_W1,4,NULL,NULL,&s_hitlerchase2}; +statetype s_hitlerchase2 = {false,SPR_HITLER_W2,2,T_Chase,NULL,&s_hitlerchase3}; +statetype s_hitlerchase3 = {false,SPR_HITLER_W3,6,T_Chase,NULL,&s_hitlerchase3s}; +statetype s_hitlerchase3s = {false,SPR_HITLER_W3,4,NULL,NULL,&s_hitlerchase4}; +statetype s_hitlerchase4 = {false,SPR_HITLER_W4,2,T_Chase,NULL,&s_hitlerchase1}; + +statetype s_hitlerdeathcam = {false,SPR_HITLER_W1,10,NULL,NULL,&s_hitlerdie1}; + +statetype s_hitlerdie1 = {false,SPR_HITLER_W1,1,NULL,A_DeathScream,&s_hitlerdie2}; +statetype s_hitlerdie2 = {false,SPR_HITLER_W1,10,NULL,NULL,&s_hitlerdie3}; +statetype s_hitlerdie3 = {false,SPR_HITLER_DIE1,10,NULL,A_Slurpie,&s_hitlerdie4}; +statetype s_hitlerdie4 = {false,SPR_HITLER_DIE2,10,NULL,NULL,&s_hitlerdie5}; +statetype s_hitlerdie5 = {false,SPR_HITLER_DIE3,10,NULL,NULL,&s_hitlerdie6}; +statetype s_hitlerdie6 = {false,SPR_HITLER_DIE4,10,NULL,NULL,&s_hitlerdie7}; +statetype s_hitlerdie7 = {false,SPR_HITLER_DIE5,10,NULL,NULL,&s_hitlerdie8}; +statetype s_hitlerdie8 = {false,SPR_HITLER_DIE6,10,NULL,NULL,&s_hitlerdie9}; +statetype s_hitlerdie9 = {false,SPR_HITLER_DIE7,10,NULL,NULL,&s_hitlerdie10}; +statetype s_hitlerdie10 = {false,SPR_HITLER_DEAD,20,NULL,A_StartDeathCam,&s_hitlerdie10}; + +statetype s_hitlershoot1 = {false,SPR_HITLER_SHOOT1,30,NULL,NULL,&s_hitlershoot2}; +statetype s_hitlershoot2 = {false,SPR_HITLER_SHOOT2,10,NULL,T_Shoot,&s_hitlershoot3}; +statetype s_hitlershoot3 = {false,SPR_HITLER_SHOOT3,10,NULL,T_Shoot,&s_hitlershoot4}; +statetype s_hitlershoot4 = {false,SPR_HITLER_SHOOT2,10,NULL,T_Shoot,&s_hitlershoot5}; +statetype s_hitlershoot5 = {false,SPR_HITLER_SHOOT3,10,NULL,T_Shoot,&s_hitlershoot6}; +statetype s_hitlershoot6 = {false,SPR_HITLER_SHOOT2,10,NULL,T_Shoot,&s_hitlerchase1}; + + + +/* +=============== += += SpawnFakeHitler += +=============== +*/ + +void SpawnFakeHitler (int tilex, int tiley) +{ + unsigned far *map,tile; + + + if (DigiMode != sds_Off) + s_hitlerdie2.tictime = 140; + else + s_hitlerdie2.tictime = 5; + + SpawnNewObj (tilex,tiley,&s_fakestand); + new->speed = SPDPATROL; + + new->obclass = fakeobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_fake]; + new->dir = north; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +=============== += += SpawnHitler += +=============== +*/ + +void SpawnHitler (int tilex, int tiley) +{ + unsigned far *map,tile; + + if (DigiMode != sds_Off) + s_hitlerdie2.tictime = 140; + else + s_hitlerdie2.tictime = 5; + + + SpawnNewObj (tilex,tiley,&s_mechastand); + new->speed = SPDPATROL; + + new->obclass = mechahitlerobj; + new->hitpoints = starthitpoints[gamestate.difficulty][en_hitler]; + new->dir = south; + new->flags |= FL_SHOOTABLE|FL_AMBUSH; + if (!loadedgame) + gamestate.killtotal++; +} + + +/* +=============== += += A_HitlerMorph += +=============== +*/ + +void A_HitlerMorph (objtype *ob) +{ + unsigned far *map,tile,hitpoints[4]={500,700,800,900}; + + + SpawnNewObj (ob->tilex,ob->tiley,&s_hitlerchase1); + new->speed = SPDPATROL*5; + + new->x = ob->x; + new->y = ob->y; + + new->distance = ob->distance; + new->dir = ob->dir; + new->flags = ob->flags | FL_SHOOTABLE; + + new->obclass = realhitlerobj; + new->hitpoints = hitpoints[gamestate.difficulty]; +} + + +//////////////////////////////////////////////////////// +// +// A_MechaSound +// A_Slurpie +// +//////////////////////////////////////////////////////// +void A_MechaSound (objtype *ob) +{ + if (areabyplayer[ob->areanumber]) + PlaySoundLocActor (MECHSTEPSND,ob); +} + + +#pragma argsused +void A_Slurpie (objtype *ob) +{ + SD_PlaySound(SLURPIESND); +} + +/* +================= += += T_FakeFire += +================= +*/ + +void T_FakeFire (objtype *ob) +{ + long deltax,deltay; + float angle; + int iangle; + + deltax = player->x - ob->x; + deltay = ob->y - player->y; + angle = atan2 (deltay,deltax); + if (angle<0) + angle = M_PI*2+angle; + iangle = angle/(M_PI*2)*ANGLES; + + GetNewActor (); + new->state = &s_fire1; + new->ticcount = 1; + + new->tilex = ob->tilex; + new->tiley = ob->tiley; + new->x = ob->x; + new->y = ob->y; + new->dir = nodir; + new->angle = iangle; + new->obclass = fireobj; + new->speed = 0x1200l; + new->flags = FL_NEVERMARK; + new->active = true; + + PlaySoundLocActor (FLAMETHROWERSND,new); +} + + + +/* +================= += += T_Fake += +================= +*/ + +void T_Fake (objtype *ob) +{ + long move; + int dx,dy,dist; + boolean dodge; + + if (CheckLine(ob)) // got a shot at player? + { + if ( US_RndT() < (tics<<1) ) + { + // + // go into attack frame + // + NewState (ob,&s_fakeshoot1); + return; + } + } + + if (ob->dir == nodir) + { + SelectDodgeDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + SelectDodgeDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + +#endif +/* +============================================================================ + + STAND + +============================================================================ +*/ + + +/* +=============== += += T_Stand += +=============== +*/ + +void T_Stand (objtype *ob) +{ + SightPlayer (ob); +} + + +/* +============================================================================ + + CHASE + +============================================================================ +*/ + +/* +================= += += T_Chase += +================= +*/ + +void T_Chase (objtype *ob) +{ + long move; + int dx,dy,dist,chance; + boolean dodge; + + if (gamestate.victoryflag) + return; + + dodge = false; + if (CheckLine(ob)) // got a shot at player? + { + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx : dy; + if (!dist || (dist==1 && ob->distance<0x4000) ) + chance = 300; + else + chance = (tics<<4)/dist; + + if ( US_RndT()obclass) + { + case guardobj: + NewState (ob,&s_grdshoot1); + break; + case officerobj: + NewState (ob,&s_ofcshoot1); + break; + case mutantobj: + NewState (ob,&s_mutshoot1); + break; + case ssobj: + NewState (ob,&s_ssshoot1); + break; +#ifndef SPEAR + case bossobj: + NewState (ob,&s_bossshoot1); + break; + case gretelobj: + NewState (ob,&s_gretelshoot1); + break; + case mechahitlerobj: + NewState (ob,&s_mechashoot1); + break; + case realhitlerobj: + NewState (ob,&s_hitlershoot1); + break; +#else + case angelobj: + NewState (ob,&s_angelshoot1); + break; + case transobj: + NewState (ob,&s_transshoot1); + break; + case uberobj: + NewState (ob,&s_ubershoot1); + break; + case willobj: + NewState (ob,&s_willshoot1); + break; + case deathobj: + NewState (ob,&s_deathshoot1); + break; +#endif + } + return; + } + dodge = true; + } + + if (ob->dir == nodir) + { + if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (ob->distance < 0) + { + // + // waiting for a door to open + // + OpenDoor (-ob->distance-1); + if (doorobjlist[-ob->distance-1].action != dr_open) + return; + ob->distance = TILEGLOBAL; // go ahead, the door is now opoen + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + if (dodge) + SelectDodgeDir (ob); + else + SelectChaseDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + + +/* +================= += += T_Ghosts += +================= +*/ + +void T_Ghosts (objtype *ob) +{ + long move; + + + if (ob->dir == nodir) + { + SelectChaseDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + SelectChaseDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + +/* +================= += += T_DogChase += +================= +*/ + +void T_DogChase (objtype *ob) +{ + long move; + int dist,chance; + long dx,dy; + + + if (ob->dir == nodir) + { + SelectDodgeDir (ob); + if (ob->dir == nodir) + return; // object is blocked in + } + + move = ob->speed*tics; + + while (move) + { + // + // check for byte range + // + dx = player->x - ob->x; + if (dx<0) + dx = -dx; + dx -= move; + if (dx <= MINACTORDIST) + { + dy = player->y - ob->y; + if (dy<0) + dy = -dy; + dy -= move; + if (dy <= MINACTORDIST) + { + NewState (ob,&s_dogjump1); + return; + } + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + // + // reached goal tile, so select another one + // + + // + // fix position to account for round off during moving + // + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + SelectDodgeDir (ob); + + if (ob->dir == nodir) + return; // object is blocked in + } + +} + + + +/* +============================================================================ + + PATH + +============================================================================ +*/ + + +/* +=============== += += SelectPathDir += +=============== +*/ + +void SelectPathDir (objtype *ob) +{ + unsigned spot; + + spot = MAPSPOT(ob->tilex,ob->tiley,1)-ICONARROWS; + + if (spot<8) + { + // new direction + ob->dir = spot; + } + + ob->distance = TILEGLOBAL; + + if (!TryWalk (ob)) + ob->dir = nodir; +} + + +/* +=============== += += T_Path += +=============== +*/ + +void T_Path (objtype *ob) +{ + long move; + long deltax,deltay,size; + + if (SightPlayer (ob)) + return; + + if (ob->dir == nodir) + { + SelectPathDir (ob); + if (ob->dir == nodir) + return; // all movement is blocked + } + + + move = ob->speed*tics; + + while (move) + { + if (ob->distance < 0) + { + // + // waiting for a door to open + // + OpenDoor (-ob->distance-1); + if (doorobjlist[-ob->distance-1].action != dr_open) + return; + ob->distance = TILEGLOBAL; // go ahead, the door is now opoen + } + + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + if (ob->tilex>MAPSIZE || ob->tiley>MAPSIZE) + { + sprintf (str,"T_Path hit a wall at %u,%u, dir %u" + ,ob->tilex,ob->tiley,ob->dir); + Quit (str); + } + + + + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + SelectPathDir (ob); + + if (ob->dir == nodir) + return; // all movement is blocked + } +} + + +/* +============================================================================= + + FIGHT + +============================================================================= +*/ + + +/* +=============== += += T_Shoot += += Try to damage the player, based on skill level and player's speed += +=============== +*/ + +void T_Shoot (objtype *ob) +{ + int dx,dy,dist; + int hitchance,damage; + + hitchance = 128; + + if (!areabyplayer[ob->areanumber]) + return; + + if (!CheckLine (ob)) // player is behind a wall + return; + + dx = abs(ob->tilex - player->tilex); + dy = abs(ob->tiley - player->tiley); + dist = dx>dy ? dx:dy; + + if (ob->obclass == ssobj || ob->obclass == bossobj) + dist = dist*2/3; // ss are better shots + + if (thrustspeed >= RUNSPEED) + { + if (ob->flags&FL_VISABLE) + hitchance = 160-dist*16; // player can see to dodge + else + hitchance = 160-dist*8; + } + else + { + if (ob->flags&FL_VISABLE) + hitchance = 256-dist*16; // player can see to dodge + else + hitchance = 256-dist*8; + } + +// see if the shot was a hit + + if (US_RndT()>2; + else if (dist<4) + damage = US_RndT()>>3; + else + damage = US_RndT()>>4; + + TakeDamage (damage,ob); + } + + switch(ob->obclass) + { + case ssobj: + PlaySoundLocActor(SSFIRESND,ob); + break; +#ifndef SPEAR + case giftobj: + case fatobj: + PlaySoundLocActor(MISSILEFIRESND,ob); + break; + case mechahitlerobj: + case realhitlerobj: + case bossobj: + PlaySoundLocActor(BOSSFIRESND,ob); + break; + case schabbobj: + PlaySoundLocActor(SCHABBSTHROWSND,ob); + break; + case fakeobj: + PlaySoundLocActor(FLAMETHROWERSND,ob); + break; +#endif + default: + PlaySoundLocActor(NAZIFIRESND,ob); + } + +} + + +/* +=============== += += T_Bite += +=============== +*/ + +void T_Bite (objtype *ob) +{ + long dx,dy; + int hitchance,damage; + + + PlaySoundLocActor(DOGATTACKSND,ob); // JAB + + dx = player->x - ob->x; + if (dx<0) + dx = -dx; + dx -= TILEGLOBAL; + if (dx <= MINACTORDIST) + { + dy = player->y - ob->y; + if (dy<0) + dy = -dy; + dy -= TILEGLOBAL; + if (dy <= MINACTORDIST) + { + if (US_RndT()<180) + { + TakeDamage (US_RndT()>>4,ob); + return; + } + } + } + + return; +} + + +#ifndef SPEAR +/* +============================================================================ + + BJ VICTORY + +============================================================================ +*/ + + +// +// BJ victory +// + +void T_BJRun (objtype *ob); +void T_BJJump (objtype *ob); +void T_BJDone (objtype *ob); +void T_BJYell (objtype *ob); + +void T_DeathCam (objtype *ob); + +extern statetype s_bjrun1; +extern statetype s_bjrun1s; +extern statetype s_bjrun2; +extern statetype s_bjrun3; +extern statetype s_bjrun3s; +extern statetype s_bjrun4; + +extern statetype s_bjjump1; +extern statetype s_bjjump2; +extern statetype s_bjjump3; +extern statetype s_bjjump4; + + +statetype s_bjrun1 = {false,SPR_BJ_W1,12,T_BJRun,NULL,&s_bjrun1s}; +statetype s_bjrun1s = {false,SPR_BJ_W1,3, NULL,NULL,&s_bjrun2}; +statetype s_bjrun2 = {false,SPR_BJ_W2,8,T_BJRun,NULL,&s_bjrun3}; +statetype s_bjrun3 = {false,SPR_BJ_W3,12,T_BJRun,NULL,&s_bjrun3s}; +statetype s_bjrun3s = {false,SPR_BJ_W3,3, NULL,NULL,&s_bjrun4}; +statetype s_bjrun4 = {false,SPR_BJ_W4,8,T_BJRun,NULL,&s_bjrun1}; + + +statetype s_bjjump1 = {false,SPR_BJ_JUMP1,14,T_BJJump,NULL,&s_bjjump2}; +statetype s_bjjump2 = {false,SPR_BJ_JUMP2,14,T_BJJump,T_BJYell,&s_bjjump3}; +statetype s_bjjump3 = {false,SPR_BJ_JUMP3,14,T_BJJump,NULL,&s_bjjump4}; +statetype s_bjjump4 = {false,SPR_BJ_JUMP4,300,NULL,T_BJDone,&s_bjjump4}; + + +statetype s_deathcam = {false,0,0,NULL,NULL,NULL}; + + +/* +=============== += += SpawnBJVictory += +=============== +*/ + +void SpawnBJVictory (void) +{ + unsigned far *map,tile; + + SpawnNewObj (player->tilex,player->tiley+1,&s_bjrun1); + new->x = player->x; + new->y = player->y; + new->obclass = bjobj; + new->dir = north; + new->temp1 = 6; // tiles to run forward +} + + + +/* +=============== += += T_BJRun += +=============== +*/ + +void T_BJRun (objtype *ob) +{ + long move; + + move = BJRUNSPEED*tics; + + while (move) + { + if (move < ob->distance) + { + MoveObj (ob,move); + break; + } + + + ob->x = ((long)ob->tilex<y = ((long)ob->tiley<distance; + + SelectPathDir (ob); + + if ( !(--ob->temp1) ) + { + NewState (ob,&s_bjjump1); + return; + } + } +} + + +/* +=============== += += T_BJJump += +=============== +*/ + +void T_BJJump (objtype *ob) +{ + long move; + + move = BJJUMPSPEED*tics; + MoveObj (ob,move); +} + + +/* +=============== += += T_BJYell += +=============== +*/ + +void T_BJYell (objtype *ob) +{ + PlaySoundLocActor(YEAHSND,ob); // JAB +} + + +/* +=============== += += T_BJDone += +=============== +*/ + +#pragma argsused +void T_BJDone (objtype *ob) +{ + playstate = ex_victorious; // exit castle tile +} + + + +//=========================================================================== + + +/* +=============== += += CheckPosition += +=============== +*/ + +boolean CheckPosition (objtype *ob) +{ + int x,y,xl,yl,xh,yh; + objtype *check; + + xl = (ob->x-PLAYERSIZE) >>TILESHIFT; + yl = (ob->y-PLAYERSIZE) >>TILESHIFT; + + xh = (ob->x+PLAYERSIZE) >>TILESHIFT; + yh = (ob->y+PLAYERSIZE) >>TILESHIFT; + + // + // check for solid walls + // + for (y=yl;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + check = actorat[x][y]; + if (check && checkx = gamestate.killx; + player->y = gamestate.killy; + + dx = ob->x - player->x; + dy = player->y - ob->y; + + fangle = atan2(dy,dx); // returns -pi to pi + if (fangle<0) + fangle = M_PI*2+fangle; + + player->angle = fangle/(M_PI*2)*ANGLES; + +// +// try to position as close as possible without being in a wall +// + dist = 0x14000l; + do + { + xmove = FixedByFrac(dist,costable[player->angle]); + ymove = -FixedByFrac(dist,sintable[player->angle]); + + player->x = ob->x - xmove; + player->y = ob->y - ymove; + dist += 0x1000; + + } while (!CheckPosition (player)); + plux = player->x >> UNSIGNEDSHIFT; // scale to fit in unsigned + pluy = player->y >> UNSIGNEDSHIFT; + player->tilex = player->x >> TILESHIFT; // scale to tile values + player->tiley = player->y >> TILESHIFT; + +// +// go back to the game +// + temp = bufferofs; + for (i=0;i<3;i++) + { + bufferofs = screenloc[i]; + DrawPlayBorder (); + } + bufferofs = temp; + + fizzlein = true; + switch (ob->obclass) + { +#ifndef SPEAR + case schabbobj: + NewState (ob,&s_schabbdeathcam); + break; + case realhitlerobj: + NewState (ob,&s_hitlerdeathcam); + break; + case giftobj: + NewState (ob,&s_giftdeathcam); + break; + case fatobj: + NewState (ob,&s_fatdeathcam); + break; +#endif + } + +} + +#endif diff --git a/16/wf3d8086/wl_agent.c b/16/wf3d8086/wl_agent.c new file mode 100755 index 00000000..631478d0 --- /dev/null +++ b/16/wf3d8086/wl_agent.c @@ -0,0 +1,1421 @@ +// WL_AGENT.C + +#include "WL_DEF.H" +#pragma hdrstop + + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + +#define MAXMOUSETURN 10 + + +#define MOVESCALE 150l +#define BACKMOVESCALE 100l +#define ANGLESCALE 20 + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + + + +// +// player state info +// +boolean running; +long thrustspeed; + +unsigned plux,pluy; // player coordinates scaled to unsigned + +int anglefrac; +int gotgatgun; // JR + +objtype *LastAttacker; + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + +void T_Player (objtype *ob); +void T_Attack (objtype *ob); + +statetype s_player = {false,0,0,T_Player,NULL,NULL}; +statetype s_attack = {false,0,0,T_Attack,NULL,NULL}; + + +long playerxmove,playerymove; + +struct atkinf +{ + char tics,attack,frame; // attack is 1 for gun, 2 for knife +} attackinfo[4][14] = + +{ +{ {6,0,1},{6,2,2},{6,0,3},{6,-1,4} }, +{ {6,0,1},{6,1,2},{6,0,3},{6,-1,4} }, +{ {6,0,1},{6,1,2},{6,3,3},{6,-1,4} }, +{ {6,0,1},{6,1,2},{6,4,3},{6,-1,4} }, +}; + + +int strafeangle[9] = {0,90,180,270,45,135,225,315,0}; + +void DrawWeapon (void); +void GiveWeapon (int weapon); +void GiveAmmo (int ammo); + +//=========================================================================== + +//---------- + +void Attack (void); +void Use (void); +void Search (objtype *ob); +void SelectWeapon (void); +void SelectItem (void); + +//---------- + +boolean TryMove (objtype *ob); +void T_Player (objtype *ob); + +void ClipMove (objtype *ob, long xmove, long ymove); + +/* +============================================================================= + + CONTROL STUFF + +============================================================================= +*/ + +/* +====================== += += CheckWeaponChange += += Keys 1-4 change weapons += +====================== +*/ + +void CheckWeaponChange (void) +{ + int i,buttons; + + if (!gamestate.ammo) // must use knife with no ammo + return; + + for (i=wp_knife ; i<=gamestate.bestweapon ; i++) + if (buttonstate[bt_readyknife+i-wp_knife]) + { + gamestate.weapon = gamestate.chosenweapon = i; + DrawWeapon (); + return; + } +} + + +/* +======================= += += ControlMovement += += Takes controlx,controly, and buttonstate[bt_strafe] += += Changes the player's angle and position += += There is an angle hack because when going 70 fps, the roundoff becomes += significant += +======================= +*/ + +void ControlMovement (objtype *ob) +{ + long oldx,oldy; + int angle,maxxmove; + int angleunits; + long speed; + + thrustspeed = 0; + + oldx = player->x; + oldy = player->y; + +// +// side to side move +// + if (buttonstate[bt_strafe]) + { + // + // strafing + // + // + if (controlx > 0) + { + angle = ob->angle - ANGLES/4; + if (angle < 0) + angle += ANGLES; + Thrust (angle,controlx*MOVESCALE); // move to left + } + else if (controlx < 0) + { + angle = ob->angle + ANGLES/4; + if (angle >= ANGLES) + angle -= ANGLES; + Thrust (angle,-controlx*MOVESCALE); // move to right + } + } + else + { + // + // not strafing + // + anglefrac += controlx; + angleunits = anglefrac/ANGLESCALE; + anglefrac -= angleunits*ANGLESCALE; + ob->angle -= angleunits; + + if (ob->angle >= ANGLES) + ob->angle -= ANGLES; + if (ob->angle < 0) + ob->angle += ANGLES; + + } + +// +// forward/backwards move +// + if (controly < 0) + { + Thrust (ob->angle,-controly*MOVESCALE); // move forwards + } + else if (controly > 0) + { + angle = ob->angle + ANGLES/2; + if (angle >= ANGLES) + angle -= ANGLES; + Thrust (angle,controly*BACKMOVESCALE); // move backwards + } + + if (gamestate.victoryflag) // watching the BJ actor + return; + +// +// calculate total move +// + playerxmove = player->x - oldx; + playerymove = player->y - oldy; +} + +/* +============================================================================= + + STATUS WINDOW STUFF + +============================================================================= +*/ + + +/* +================== += += StatusDrawPic += +================== +*/ + +void StatusDrawPic (unsigned x, unsigned y, unsigned picnum) +{ + unsigned temp; + + temp = bufferofs; + bufferofs = 0; + + bufferofs = PAGE1START+(200-STATUSLINES)*SCREENWIDTH; + LatchDrawPic (x,y,picnum); + bufferofs = PAGE2START+(200-STATUSLINES)*SCREENWIDTH; + LatchDrawPic (x,y,picnum); + bufferofs = PAGE3START+(200-STATUSLINES)*SCREENWIDTH; + LatchDrawPic (x,y,picnum); + + bufferofs = temp; +} + + +/* +================== += += DrawFace += +================== +*/ + +void DrawFace (void) +{ + if (gamestate.health) + { + #ifdef SPEAR + if (godmode) + StatusDrawPic (17,4,GODMODEFACE1PIC+gamestate.faceframe); + else + #endif + StatusDrawPic (17,4,FACE1APIC+3*((100-gamestate.health)/16)+gamestate.faceframe); + } + else + { +#ifndef SPEAR + if (LastAttacker->obclass == needleobj) + StatusDrawPic (17,4,MUTANTBJPIC); + else +#endif + StatusDrawPic (17,4,FACE8APIC); + } +} + + +/* +=============== += += UpdateFace += += Calls draw face if time to change += +=============== +*/ + +#define FACETICS 70 + +int facecount; + +void UpdateFace (void) +{ + + if (SD_SoundPlaying() == GETGATLINGSND) + return; + + facecount += tics; + if (facecount > US_RndT()) + { + gamestate.faceframe = (US_RndT()>>6); + if (gamestate.faceframe==3) + gamestate.faceframe = 1; + + facecount = 0; + DrawFace (); + } +} + + + +/* +=============== += += LatchNumber += += right justifies and pads with blanks += +=============== +*/ + +void LatchNumber (int x, int y, int width, long number) +{ + unsigned length,c; + char str[20]; + + ltoa (number,str,10); + + length = strlen (str); + + while (length>=2; + + if (!godmode) + gamestate.health -= points; + + if (gamestate.health<=0) + { + gamestate.health = 0; + playstate = ex_died; + killerobj = attacker; + } + + StartDamageFlash (points); + + gotgatgun=0; + + DrawHealth (); + DrawFace (); + + // + // MAKE BJ'S EYES BUG IF MAJOR DAMAGE! + // + #ifdef SPEAR + if (points > 30 && gamestate.health!=0 && !godmode) + { + StatusDrawPic (17,4,BJOUCHPIC); + facecount = 0; + } + #endif + +} + + +/* +=============== += += HealSelf += +=============== +*/ + +void HealSelf (int points) +{ + gamestate.health += points; + if (gamestate.health>100) + gamestate.health = 100; + + DrawHealth (); + gotgatgun = 0; // JR + DrawFace (); +} + + +//=========================================================================== + + +/* +=============== += += DrawLevel += +=============== +*/ + +void DrawLevel (void) +{ +#ifdef SPEAR + if (gamestate.mapon == 20) + LatchNumber (2,16,2,18); + else +#endif + LatchNumber (2,16,2,gamestate.mapon+1); +} + +//=========================================================================== + + +/* +=============== += += DrawLives += +=============== +*/ + +void DrawLives (void) +{ + LatchNumber (14,16,1,gamestate.lives); +} + + +/* +=============== += += GiveExtraMan += +=============== +*/ + +void GiveExtraMan (void) +{ + if (gamestate.lives<9) + gamestate.lives++; + DrawLives (); + SD_PlaySound (BONUS1UPSND); +} + +//=========================================================================== + +/* +=============== += += DrawScore += +=============== +*/ + +void DrawScore (void) +{ + LatchNumber (6,16,6,gamestate.score); +} + +/* +=============== += += GivePoints += +=============== +*/ + +void GivePoints (long points) +{ + gamestate.score += points; + while (gamestate.score >= gamestate.nextextra) + { + gamestate.nextextra += EXTRAPOINTS; + GiveExtraMan (); + } + DrawScore (); +} + +//=========================================================================== + +/* +================== += += DrawWeapon += +================== +*/ + +void DrawWeapon (void) +{ + StatusDrawPic (32,8,KNIFEPIC+gamestate.weapon); +} + + +/* +================== += += DrawKeys += +================== +*/ + +void DrawKeys (void) +{ + if (gamestate.keys & 1) + StatusDrawPic (30,4,GOLDKEYPIC); + else + StatusDrawPic (30,4,NOKEYPIC); + + if (gamestate.keys & 2) + StatusDrawPic (30,20,SILVERKEYPIC); + else + StatusDrawPic (30,20,NOKEYPIC); +} + + + +/* +================== += += GiveWeapon += +================== +*/ + +void GiveWeapon (int weapon) +{ + GiveAmmo (6); + + if (gamestate.bestweapon 99) + gamestate.ammo = 99; + DrawAmmo (); +} + +//=========================================================================== + +/* +================== += += GiveKey += +================== +*/ + +void GiveKey (int key) +{ + gamestate.keys |= (1<itemnumber) + { + case bo_firstaid: + if (gamestate.health == 100) + return; + + SD_PlaySound (HEALTH2SND); + HealSelf (25); + break; + + case bo_key1: + case bo_key2: + case bo_key3: + case bo_key4: + GiveKey (check->itemnumber - bo_key1); + SD_PlaySound (GETKEYSND); + break; + + case bo_cross: + SD_PlaySound (BONUS1SND); + GivePoints (100); + gamestate.treasurecount++; + break; + case bo_chalice: + SD_PlaySound (BONUS2SND); + GivePoints (500); + gamestate.treasurecount++; + break; + case bo_bible: + SD_PlaySound (BONUS3SND); + GivePoints (1000); + gamestate.treasurecount++; + break; + case bo_crown: + SD_PlaySound (BONUS4SND); + GivePoints (5000); + gamestate.treasurecount++; + break; + + case bo_clip: + if (gamestate.ammo == 99) + return; + + SD_PlaySound (GETAMMOSND); + GiveAmmo (8); + break; + case bo_clip2: + if (gamestate.ammo == 99) + return; + + SD_PlaySound (GETAMMOSND); + GiveAmmo (4); + break; + +#ifdef SPEAR + case bo_25clip: + if (gamestate.ammo == 99) + return; + + SD_PlaySound (GETAMMOBOXSND); + GiveAmmo (25); + break; +#endif + + case bo_machinegun: + SD_PlaySound (GETMACHINESND); + GiveWeapon (wp_machinegun); + break; + case bo_chaingun: + SD_PlaySound (GETGATLINGSND); + GiveWeapon (wp_chaingun); + + StatusDrawPic (17,4,GOTGATLINGPIC); + facecount = 0; + gotgatgun = 1; + break; + + case bo_fullheal: + SD_PlaySound (BONUS1UPSND); + HealSelf (99); + GiveAmmo (25); + GiveExtraMan (); + gamestate.treasurecount++; + break; + + case bo_food: + if (gamestate.health == 100) + return; + + SD_PlaySound (HEALTH1SND); + HealSelf (10); + break; + + case bo_alpo: + if (gamestate.health == 100) + return; + + SD_PlaySound (HEALTH1SND); + HealSelf (4); + break; + + case bo_gibs: + if (gamestate.health >10) + return; + + SD_PlaySound (SLURPIESND); + HealSelf (1); + break; + + case bo_spear: + spearflag = true; + spearx = player->x; + speary = player->y; + spearangle = player->angle; + playstate = ex_completed; + } + + StartBonusFlash (); + check->shapenum = -1; // remove from list +} + + +/* +=================== += += TryMove += += returns true if move ok += debug: use pointers to optimize +=================== +*/ + +boolean TryMove (objtype *ob) +{ + int xl,yl,xh,yh,x,y; + objtype *check; + long deltax,deltay; + + xl = (ob->x-PLAYERSIZE) >>TILESHIFT; + yl = (ob->y-PLAYERSIZE) >>TILESHIFT; + + xh = (ob->x+PLAYERSIZE) >>TILESHIFT; + yh = (ob->y+PLAYERSIZE) >>TILESHIFT; + +// +// check for solid walls +// + for (y=yl;y<=yh;y++) + for (x=xl;x<=xh;x++) + { + check = actorat[x][y]; + if (check && check0) + yl--; + if (yh0) + xl--; + if (xh objlist + && (check->flags & FL_SHOOTABLE) ) + { + deltax = ob->x - check->x; + if (deltax < -MINACTORDIST || deltax > MINACTORDIST) + continue; + deltay = ob->y - check->y; + if (deltay < -MINACTORDIST || deltay > MINACTORDIST) + continue; + + return false; + } + } + + return true; +} + + +/* +=================== += += ClipMove += +=================== +*/ + +void ClipMove (objtype *ob, long xmove, long ymove) +{ + long basex,basey; + + basex = ob->x; + basey = ob->y; + + ob->x = basex+xmove; + ob->y = basey+ymove; + if (TryMove (ob)) + return; + + if (noclip && ob->x > 2*TILEGLOBAL && ob->y > 2*TILEGLOBAL && + ob->x < (((long)(mapwidth-1))<y < (((long)(mapheight-1))<x = basex+xmove; + ob->y = basey; + if (TryMove (ob)) + return; + + ob->x = basex; + ob->y = basey+ymove; + if (TryMove (ob)) + return; + + ob->x = basex; + ob->y = basey; +} + +//========================================================================== + +/* +=================== += += VictoryTile += +=================== +*/ + +void VictoryTile (void) +{ +#ifndef SPEAR + SpawnBJVictory (); +#endif + + gamestate.victoryflag = true; +} + + +/* +=================== += += Thrust += +=================== +*/ + +void Thrust (int angle, long speed) +{ + long xmove,ymove; + long slowmax; + unsigned offset; + + + // + // ZERO FUNNY COUNTER IF MOVED! + // + #ifdef SPEAR + if (speed) + funnyticount = 0; + #endif + + thrustspeed += speed; +// +// moving bounds speed +// + if (speed >= MINDIST*2) + speed = MINDIST*2-1; + + xmove = FixedByFrac(speed,costable[angle]); + ymove = -FixedByFrac(speed,sintable[angle]); + + ClipMove(player,xmove,ymove); + + player->tilex = player->x >> TILESHIFT; // scale to tile values + player->tiley = player->y >> TILESHIFT; + + offset = farmapylookup[player->tiley]+player->tilex; + player->areanumber = *(mapsegs[0] + offset) -AREATILE; + + if (*(mapsegs[1] + offset) == EXITTILE) + VictoryTile (); +} + + +/* +============================================================================= + + ACTIONS + +============================================================================= +*/ + + +/* +=============== += += Cmd_Fire += +=============== +*/ + +void Cmd_Fire (void) +{ + buttonheld[bt_attack] = true; + + gamestate.weaponframe = 0; + + player->state = &s_attack; + + gamestate.attackframe = 0; + gamestate.attackcount = + attackinfo[gamestate.weapon][gamestate.attackframe].tics; + gamestate.weaponframe = + attackinfo[gamestate.weapon][gamestate.attackframe].frame; +} + +//=========================================================================== + +/* +=============== += += Cmd_Use += +=============== +*/ + +void Cmd_Use (void) +{ + objtype *check; + int checkx,checky,doornum,dir; + boolean elevatorok; + + +// +// find which cardinal direction the player is facing +// + if (player->angle < ANGLES/8 || player->angle > 7*ANGLES/8) + { + checkx = player->tilex + 1; + checky = player->tiley; + dir = di_east; + elevatorok = true; + } + else if (player->angle < 3*ANGLES/8) + { + checkx = player->tilex; + checky = player->tiley-1; + dir = di_north; + elevatorok = false; + } + else if (player->angle < 5*ANGLES/8) + { + checkx = player->tilex - 1; + checky = player->tiley; + dir = di_west; + elevatorok = true; + } + else + { + checkx = player->tilex; + checky = player->tiley + 1; + dir = di_south; + elevatorok = false; + } + + doornum = tilemap[checkx][checky]; + if (*(mapsegs[1]+farmapylookup[checky]+checkx) == PUSHABLETILE) + { + // + // pushable wall + // + + PushWall (checkx,checky,dir); + return; + } + if (!buttonheld[bt_use] && doornum == ELEVATORTILE && elevatorok) + { + // + // use elevator + // + buttonheld[bt_use] = true; + + tilemap[checkx][checky]++; // flip switch + if (*(mapsegs[0]+farmapylookup[player->tiley]+player->tilex) == ALTELEVATORTILE) + playstate = ex_secretlevel; + else + playstate = ex_completed; + SD_PlaySound (LEVELDONESND); + SD_WaitSoundDone(); + } + else if (!buttonheld[bt_use] && doornum & 0x80) + { + buttonheld[bt_use] = true; + OperateDoor (doornum & ~0x80); + } + else + SD_PlaySound (DONOTHINGSND); + +} + +/* +============================================================================= + + PLAYER CONTROL + +============================================================================= +*/ + + + +/* +=============== += += SpawnPlayer += +=============== +*/ + +void SpawnPlayer (int tilex, int tiley, int dir) +{ + player->obclass = playerobj; + player->active = true; + player->tilex = tilex; + player->tiley = tiley; + player->areanumber = + *(mapsegs[0] + farmapylookup[player->tiley]+player->tilex); + player->x = ((long)tilex<y = ((long)tiley<state = &s_player; + player->angle = (1-dir)*90; + if (player->angle<0) + player->angle += ANGLES; + player->flags = FL_NEVERMARK; + Thrust (0,0); // set some variables + + InitAreas (); +} + + +//=========================================================================== + +/* +=============== += += T_KnifeAttack += += Update player hands, and try to do damage when the proper frame is reached += +=============== +*/ + +void KnifeAttack (objtype *ob) +{ + objtype *check,*closest; + long dist; + + SD_PlaySound (ATKKNIFESND); +// actually fire + dist = 0x7fffffff; + closest = NULL; + for (check=ob->next ; check ; check=check->next) + if ( (check->flags & FL_SHOOTABLE) + && (check->flags & FL_VISABLE) + && abs (check->viewx-centerx) < shootdelta + ) + { + if (check->transx < dist) + { + dist = check->transx; + closest = check; + } + } + + if (!closest || dist> 0x18000l) + { + // missed + + return; + } + +// hit something + DamageActor (closest,US_RndT() >> 4); +} + + + +void GunAttack (objtype *ob) +{ + objtype *check,*closest,*oldclosest; + int damage; + int dx,dy,dist; + long viewdist; + + switch (gamestate.weapon) + { + case wp_pistol: + SD_PlaySound (ATKPISTOLSND); + break; + case wp_machinegun: + SD_PlaySound (ATKMACHINEGUNSND); + break; + case wp_chaingun: + SD_PlaySound (ATKGATLINGSND); + break; + } + + madenoise = true; + +// +// find potential targets +// + viewdist = 0x7fffffffl; + closest = NULL; + + while (1) + { + oldclosest = closest; + + for (check=ob->next ; check ; check=check->next) + if ( (check->flags & FL_SHOOTABLE) + && (check->flags & FL_VISABLE) + && abs (check->viewx-centerx) < shootdelta + ) + { + if (check->transx < viewdist) + { + viewdist = check->transx; + closest = check; + } + } + + if (closest == oldclosest) + return; // no more targets, all missed + + // + // trace a line from player to enemey + // + if (CheckLine(closest)) + break; + + } + +// +// hit something +// + dx = abs(closest->tilex - player->tilex); + dy = abs(closest->tiley - player->tiley); + dist = dx>dy ? dx:dy; + + if (dist<2) + damage = US_RndT() / 4; + else if (dist<4) + damage = US_RndT() / 6; + else + { + if ( (US_RndT() / 12) < dist) // missed + return; + damage = US_RndT() / 6; + } + + DamageActor (closest,damage); +} + +//=========================================================================== + +/* +=============== += += VictorySpin += +=============== +*/ + +void VictorySpin (void) +{ + long desty; + + if (player->angle > 270) + { + player->angle -= tics * 3; + if (player->angle < 270) + player->angle = 270; + } + else if (player->angle < 270) + { + player->angle += tics * 3; + if (player->angle > 270) + player->angle = 270; + } + + desty = (((long)player->tiley-5)<y > desty) + { + player->y -= tics*4096; + if (player->y < desty) + player->y = desty; + } +} + + +//=========================================================================== + +/* +=============== += += T_Attack += +=============== +*/ + +void T_Attack (objtype *ob) +{ + struct atkinf *cur; + + UpdateFace (); + + if (gamestate.victoryflag) // watching the BJ actor + { + VictorySpin (); + return; + } + + if ( buttonstate[bt_use] && !buttonheld[bt_use] ) + buttonstate[bt_use] = false; + + if ( buttonstate[bt_attack] && !buttonheld[bt_attack]) + buttonstate[bt_attack] = false; + + ControlMovement (ob); + if (gamestate.victoryflag) // watching the BJ actor + return; + + plux = player->x >> UNSIGNEDSHIFT; // scale to fit in unsigned + pluy = player->y >> UNSIGNEDSHIFT; + player->tilex = player->x >> TILESHIFT; // scale to tile values + player->tiley = player->y >> TILESHIFT; + +// +// change frame and fire +// + gamestate.attackcount -= tics; + while (gamestate.attackcount <= 0) + { + cur = &attackinfo[gamestate.weapon][gamestate.attackframe]; + switch (cur->attack) + { + case -1: + ob->state = &s_player; + if (!gamestate.ammo) + { + gamestate.weapon = wp_knife; + DrawWeapon (); + } + else + { + if (gamestate.weapon != gamestate.chosenweapon) + { + gamestate.weapon = gamestate.chosenweapon; + DrawWeapon (); + } + }; + gamestate.attackframe = gamestate.weaponframe = 0; + return; + + case 4: + if (!gamestate.ammo) + break; + if (buttonstate[bt_attack]) + gamestate.attackframe -= 2; + case 1: + if (!gamestate.ammo) + { // can only happen with chain gun + gamestate.attackframe++; + break; + } + GunAttack (ob); + gamestate.ammo--; + DrawAmmo (); + break; + + case 2: + KnifeAttack (ob); + break; + + case 3: + if (gamestate.ammo && buttonstate[bt_attack]) + gamestate.attackframe -= 2; + break; + } + + gamestate.attackcount += cur->tics; + gamestate.attackframe++; + gamestate.weaponframe = + attackinfo[gamestate.weapon][gamestate.attackframe].frame; + } + +} + + + +//=========================================================================== + +/* +=============== += += T_Player += +=============== +*/ + +void T_Player (objtype *ob) +{ + if (gamestate.victoryflag) // watching the BJ actor + { + VictorySpin (); + return; + } + + UpdateFace (); + CheckWeaponChange (); + + if ( buttonstate[bt_use] ) + Cmd_Use (); + + if ( buttonstate[bt_attack] && !buttonheld[bt_attack]) + Cmd_Fire (); + + ControlMovement (ob); + if (gamestate.victoryflag) // watching the BJ actor + return; + + + plux = player->x >> UNSIGNEDSHIFT; // scale to fit in unsigned + pluy = player->y >> UNSIGNEDSHIFT; + player->tilex = player->x >> TILESHIFT; // scale to tile values + player->tiley = player->y >> TILESHIFT; +} + + diff --git a/16/wf3d8086/wl_asm.asm b/16/wf3d8086/wl_asm.asm new file mode 100755 index 00000000..cca5d690 --- /dev/null +++ b/16/wf3d8086/wl_asm.asm @@ -0,0 +1,69 @@ +; JABHACK.ASM + +.386C +IDEAL +MODEL MEDIUM + +EXTRN LDIV@:far + +;============================================================================ + +DATASEG + +;============================================================================ + +CODESEG + +; Hacked up Juan Jimenez's code a bit to just return 386/not 386 +PROC _CheckIs386 +PUBLIC _CheckIs386 + +;hack to never look for a 386, for benchmark comparisons of same code on all CPUs +; pushf ; Save flag registers, we use them here +; xor ax,ax ; Clear AX and... +; push ax ; ...push it onto the stack +; popf ; Pop 0 into flag registers (all bits to 0), +; pushf ; attempting to set bits 12-15 of flags to 0's +; pop ax ; Recover the save flags +; and ax,08000h ; If bits 12-15 of flags are set to +; cmp ax,08000h ; zero then it's 8088/86 or 80188/186 +; jz not386 +; +; mov ax,07000h ; Try to set flag bits 12-14 to 1's +; push ax ; Push the test value onto the stack +; popf ; Pop it into the flag register +; pushf ; Push it back onto the stack +; pop ax ; Pop it into AX for check +; and ax,07000h ; if bits 12-14 are cleared then +; jz not386 ; the chip is an 80286 +; +; mov ax,1 ; We now assume it's a 80386 or better +; popf +; retf +;end benchmark hack + +not386: + xor ax,ax + popf + retf + + ENDP + + +PROC _jabhack2 +PUBLIC _jabhack2 + + push es + + mov ax,seg LDIV@ + mov es,ax + mov ax,9090h ;Two NOP's + mov [WORD FAR es:LDIV@],ax ;Patch over XOR AX,AX + mov [WORD FAR es:LDIV@+2],ax ;and over JMP SHORT COMMON + + pop es + retf + + ENDP + + END diff --git a/16/wf3d8086/wl_debug.c b/16/wf3d8086/wl_debug.c new file mode 100755 index 00000000..dd4674b1 --- /dev/null +++ b/16/wf3d8086/wl_debug.c @@ -0,0 +1,722 @@ +// WL_DEBUG.C + +#include "WL_DEF.H" +#pragma hdrstop +#include + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + +#define VIEWTILEX (viewwidth/16) +#define VIEWTILEY (viewheight/16) + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + + +int DebugKeys (void); + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + +int maporgx; +int maporgy; +enum {mapview,tilemapview,actoratview,visview} viewtype; + +void ViewMap (void); + +//=========================================================================== + +/* +================== += += DebugMemory += +================== +*/ + +void DebugMemory (void) +{ + int i; + char scratch[80],str[10]; + long mem; + spritetype _seg *block; + + CenterWindow (16,7); + + US_CPrint ("Memory Usage"); + US_CPrint ("------------"); + US_Print ("Total :"); + US_PrintUnsigned (mminfo.mainmem/1024); + US_Print ("k\nFree :"); + US_PrintUnsigned (MM_UnusedMemory()/1024); + US_Print ("k\nWith purge:"); + US_PrintUnsigned (MM_TotalFree()/1024); + US_Print ("k\n"); + VW_UpdateScreen(); + IN_Ack (); +} + +//=========================================================================== + +/* +================== += += CountObjects += +================== +*/ + +void CountObjects (void) +{ + int i,total,count,active,inactive,doors; + objtype *obj; + + CenterWindow (16,7); + active = inactive = count = doors = 0; + + US_Print ("Total statics :"); + total = laststatobj-&statobjlist[0]; + US_PrintUnsigned (total); + + US_Print ("\nIn use statics:"); + for (i=0;inext;obj;obj=obj->next) + { + if (obj->active) + active++; + else + inactive++; + } + + US_Print ("\nTotal actors :"); + US_PrintUnsigned (active+inactive); + + US_Print ("\nActive actors :"); + US_PrintUnsigned (active); + + VW_UpdateScreen(); + IN_Ack (); +} + +//=========================================================================== + +/* +================ += += PicturePause += +================ +*/ + +void PicturePause (void) +{ + int i; + byte p; + unsigned x; + byte far *dest,far *src; + memptr buffer; + + VW_ColorBorder (15); + FinishPaletteShifts (); + + LastScan = 0; + while (!LastScan) + ; + if (LastScan != sc_Enter) + { + VW_ColorBorder (0); + return; + } + + VW_ColorBorder (1); + VW_SetScreen (0,0); +// +// vga stuff... +// + + ClearMemory (); + CA_SetAllPurge(); + MM_GetPtr (&buffer,64000); + for (p=0;p<4;p++) + { + src = MK_FP(0xa000,displayofs); + dest = (byte far *)buffer+p; + VGAREADMAP(p); + for (x=0;x<16000;x++,dest+=4) + *dest = *src++; + } + + +#if 0 + for (p=0;p<4;p++) + { + src = MK_FP(0xa000,0); + dest = (byte far *)buffer+51200+p; + VGAREADMAP(p); + for (x=0;x<3200;x++,dest+=4) + *dest = *src++; + } +#endif + + asm mov ax,0x13 + asm int 0x10 + + dest = MK_FP(0xa000,0); + _fmemcpy (dest,buffer,64000); + + VL_SetPalette (&gamepal); + + + IN_Shutdown (); + + VW_WaitVBL(70); + bioskey(0); + VW_WaitVBL(70); + Quit (NULL); +} + + +//=========================================================================== + + +/* +================ += += ShapeTest += +================ +*/ + +#pragma warn -pia +void ShapeTest (void) +{ +extern word NumDigi; +extern word _seg *DigiList; +static char buf[10]; + + boolean done; + ScanCode scan; + int i,j,k,x; + longword l; + memptr addr; + PageListStruct far *page; + + CenterWindow(20,16); + VW_UpdateScreen(); + for (i = 0,done = false;!done;) + { + US_ClearWindow(); +// sound = -1; + + page = &PMPages[i]; + US_Print(" Page #"); + US_PrintUnsigned(i); + if (i < PMSpriteStart) + US_Print(" (Wall)"); + else if (i < PMSoundStart) + US_Print(" (Sprite)"); + else if (i == ChunksInFile - 1) + US_Print(" (Sound Info)"); + else + US_Print(" (Sound)"); + + US_Print("\n XMS: "); + if (page->xmsPage != -1) + US_PrintUnsigned(page->xmsPage); + else + US_Print("No"); + + US_Print("\n Main: "); + if (page->mainPage != -1) + US_PrintUnsigned(page->mainPage); + else if (page->emsPage != -1) + { + US_Print("EMS "); + US_PrintUnsigned(page->emsPage); + } + else + US_Print("No"); + + US_Print("\n Last hit: "); + US_PrintUnsigned(page->lastHit); + + US_Print("\n Address: "); + addr = PM_GetPageAddress(i); + sprintf(buf,"0x%04x",(word)addr); + US_Print(buf); + + if (addr) + { + if (i < PMSpriteStart) + { + // + // draw the wall + // + bufferofs += 32*SCREENWIDTH; + postx = 128; + postwidth = 1; + postsource = ((long)((unsigned)addr))<<16; + for (x=0;x<64;x++,postx++,postsource+=64) + { + wallheight[postx] = 256; + FarScalePost (); + } + bufferofs -= 32*SCREENWIDTH; + } + else if (i < PMSoundStart) + { + // + // draw the sprite + // + bufferofs += 32*SCREENWIDTH; + SimpleScaleShape (160, i-PMSpriteStart, 64); + bufferofs -= 32*SCREENWIDTH; + } + else if (i == ChunksInFile - 1) + { + US_Print("\n\n Number of sounds: "); + US_PrintUnsigned(NumDigi); + for (l = j = k = 0;j < NumDigi;j++) + { + l += DigiList[(j * 2) + 1]; + k += (DigiList[(j * 2) + 1] + (PMPageSize - 1)) / PMPageSize; + } + US_Print("\n Total bytes: "); + US_PrintUnsigned(l); + US_Print("\n Total pages: "); + US_PrintUnsigned(k); + } + else + { + byte far *dp = (byte far *)MK_FP(addr,0); + for (j = 0;j < NumDigi;j++) + { + k = (DigiList[(j * 2) + 1] + (PMPageSize - 1)) / PMPageSize; + if + ( + (i >= PMSoundStart + DigiList[j * 2]) + && (i < PMSoundStart + DigiList[j * 2] + k) + ) + break; + } + if (j < NumDigi) + { +// sound = j; + US_Print("\n Sound #"); + US_PrintUnsigned(j); + US_Print("\n Segment #"); + US_PrintUnsigned(i - PMSoundStart - DigiList[j * 2]); + } + for (j = 0;j < page->length;j += 32) + { + byte v = dp[j]; + int v2 = (unsigned)v; + v2 -= 128; + v2 /= 4; + if (v2 < 0) + VWB_Vlin(WindowY + WindowH - 32 + v2, + WindowY + WindowH - 32, + WindowX + 8 + (j / 32),BLACK); + else + VWB_Vlin(WindowY + WindowH - 32, + WindowY + WindowH - 32 + v2, + WindowX + 8 + (j / 32),BLACK); + } + } + } + + VW_UpdateScreen(); + + while (!(scan = LastScan)) + SD_Poll(); + + IN_ClearKey(scan); + switch (scan) + { + case sc_LeftArrow: + if (i) + i--; + break; + case sc_RightArrow: + if (++i >= ChunksInFile) + i--; + break; + case sc_W: // Walls + i = 0; + break; + case sc_S: // Sprites + i = PMSpriteStart; + break; + case sc_D: // Digitized + i = PMSoundStart; + break; + case sc_I: // Digitized info + i = ChunksInFile - 1; + break; + case sc_L: // Load all pages + for (j = 0;j < ChunksInFile;j++) + PM_GetPage(j); + break; + case sc_P: +// if (sound != -1) +// SD_PlayDigitized(sound); + break; + case sc_Escape: + done = true; + break; + case sc_Enter: + PM_GetPage(i); + break; + } + } + SD_StopDigitized(); +} +#pragma warn +pia + + + +//=========================================================================== + + +/* +================ += += DebugKeys += +================ +*/ + +int DebugKeys (void) +{ + boolean esc; + int level,i; + + if (Keyboard[sc_B]) // B = border color + { + CenterWindow(24,3); + PrintY+=6; + US_Print(" Border color (0-15):"); + VW_UpdateScreen(); + esc = !US_LineInput (px,py,str,NULL,true,2,0); + if (!esc) + { + level = atoi (str); + if (level>=0 && level<=15) + VW_ColorBorder (level); + } + return 1; + } + + if (Keyboard[sc_C]) // C = count objects + { + CountObjects(); + return 1; + } + + if (Keyboard[sc_E]) // E = quit level + { + if (tedlevel) + Quit (NULL); + playstate = ex_completed; +// gamestate.mapon++; + } + + if (Keyboard[sc_F]) // F = facing spot + { + CenterWindow (14,4); + US_Print ("X:"); + US_PrintUnsigned (player->x); + US_Print ("\nY:"); + US_PrintUnsigned (player->y); + US_Print ("\nA:"); + US_PrintUnsigned (player->angle); + VW_UpdateScreen(); + IN_Ack(); + return 1; + } + + if (Keyboard[sc_G]) // G = god mode + { + CenterWindow (12,2); + if (godmode) + US_PrintCentered ("God mode OFF"); + else + US_PrintCentered ("God mode ON"); + VW_UpdateScreen(); + IN_Ack(); + godmode ^= 1; + return 1; + } + if (Keyboard[sc_H]) // H = hurt self + { + IN_ClearKeysDown (); + TakeDamage (16,NULL); + } + else if (Keyboard[sc_I]) // I = item cheat + { + CenterWindow (12,3); + US_PrintCentered ("Free items!"); + VW_UpdateScreen(); + GivePoints (100000); + HealSelf (99); + if (gamestate.bestweapon 99) + gamestate.ammo = 99; + DrawAmmo (); + IN_Ack (); + return 1; + } + else if (Keyboard[sc_M]) // M = memory info + { + DebugMemory(); + return 1; + } +#ifdef SPEAR + else if (Keyboard[sc_N]) // N = no clip + { + noclip^=1; + CenterWindow (18,3); + if (noclip) + US_PrintCentered ("No clipping ON"); + else + US_PrintCentered ("No clipping OFF"); + VW_UpdateScreen(); + IN_Ack (); + return 1; + } +#endif +#if 0 + else if (Keyboard[sc_O]) // O = overhead + { + ViewMap(); + return 1; + } +#endif + else if (Keyboard[sc_P]) // P = pause with no screen disruptioon + { + PicturePause (); + return 1; + } + else if (Keyboard[sc_Q]) // Q = fast quit + Quit (NULL); + else if (Keyboard[sc_S]) // S = slow motion + { + singlestep^=1; + CenterWindow (18,3); + if (singlestep) + US_PrintCentered ("Slow motion ON"); + else + US_PrintCentered ("Slow motion OFF"); + VW_UpdateScreen(); + IN_Ack (); + return 1; + } + else if (Keyboard[sc_T]) // T = shape test + { + ShapeTest (); + return 1; + } + else if (Keyboard[sc_V]) // V = extra VBLs + { + CenterWindow(30,3); + PrintY+=6; + US_Print(" Add how many extra VBLs(0-8):"); + VW_UpdateScreen(); + esc = !US_LineInput (px,py,str,NULL,true,2,0); + if (!esc) + { + level = atoi (str); + if (level>=0 && level<=8) + extravbls = level; + } + return 1; + } + else if (Keyboard[sc_W]) // W = warp to level + { + CenterWindow(26,3); + PrintY+=6; +#ifndef SPEAR + US_Print(" Warp to which level(1-10):"); +#else + US_Print(" Warp to which level(1-21):"); +#endif + VW_UpdateScreen(); + esc = !US_LineInput (px,py,str,NULL,true,2,0); + if (!esc) + { + level = atoi (str); +#ifndef SPEAR + if (level>0 && level<11) +#else + if (level>0 && level<22) +#endif + { + gamestate.mapon = level-1; + playstate = ex_warped; + } + } + return 1; + } + else if (Keyboard[sc_X]) // X = item cheat + { + CenterWindow (12,3); + US_PrintCentered ("Extra stuff!"); + VW_UpdateScreen(); + // DEBUG: put stuff here + IN_Ack (); + return 1; + } + + return 0; +} + + +#if 0 +/* +=================== += += OverheadRefresh += +=================== +*/ + +void OverheadRefresh (void) +{ + unsigned x,y,endx,endy,sx,sy; + unsigned tile; + + + endx = maporgx+VIEWTILEX; + endy = maporgy+VIEWTILEY; + + for (y=maporgy;y>12)); + LatchDrawChar(sx+8,sy,NUMBERCHARS+((tile&0x0f00)>>8)); + LatchDrawChar(sx,sy+8,NUMBERCHARS+((tile&0x00f0)>>4)); + LatchDrawChar(sx+8,sy+8,NUMBERCHARS+(tile&0x000f)); + } + } + +} +#endif + +#if 0 +/* +=================== += += ViewMap += +=================== +*/ + +void ViewMap (void) +{ + boolean button0held; + + viewtype = actoratview; +// button0held = false; + + + maporgx = player->tilex - VIEWTILEX/2; + if (maporgx<0) + maporgx = 0; + if (maporgx>MAPSIZE-VIEWTILEX) + maporgx=MAPSIZE-VIEWTILEX; + maporgy = player->tiley - VIEWTILEY/2; + if (maporgy<0) + maporgy = 0; + if (maporgy>MAPSIZE-VIEWTILEY) + maporgy=MAPSIZE-VIEWTILEY; + + do + { +// +// let user pan around +// + PollControls (); + if (controlx < 0 && maporgx>0) + maporgx--; + if (controlx > 0 && maporgx0) + maporgy--; + if (controly > 0 && maporgyvisview) + viewtype = mapview; + } + if (!c.button0) + button0held = false; +#endif + + OverheadRefresh (); + + } while (!Keyboard[sc_Escape]); + + IN_ClearKeysDown (); +} +#endif + diff --git a/16/wf3d8086/wl_def.h b/16/wf3d8086/wl_def.h new file mode 100755 index 00000000..d1bc0802 --- /dev/null +++ b/16/wf3d8086/wl_def.h @@ -0,0 +1,1276 @@ +//#define BETA +#define YEAR 1992 +#define MONTH 9 +#define DAY 30 + +#include "ID_HEADS.H" +#include +#include + +#include "WL_MENU.H" + +#ifdef SPANISH +#include "SPANISH.H" +#else +#include "FOREIGN.H" +#endif + +#ifdef SPEAR +#include "F_SPEAR.H" +#endif + +/* +============================================================================= + + MACROS + +============================================================================= +*/ + + +#define COLORBORDER(color) asm{mov dx,STATUS_REGISTER_1;in al,dx;\ + mov dx,ATR_INDEX;mov al,ATR_OVERSCAN;out dx,al;mov al,color;out dx,al;\ + mov al,32;out dx,al}; + +#define MAPSPOT(x,y,plane) (*(mapsegs[plane]+farmapylookup[y]+x)) + +#define SIGN(x) ((x)>0?1:-1) +#define ABS(x) ((int)(x)>0?(x):-(x)) +#define LABS(x) ((long)(x)>0?(x):-(x)) + +/* +============================================================================= + + GLOBAL CONSTANTS + +============================================================================= +*/ + +#define MAXACTORS 150 // max number of nazis, etc / map +#define MAXSTATS 400 // max number of lamps, bonus, etc +#define MAXDOORS 64 // max number of sliding doors +#define MAXWALLTILES 64 // max number of wall tiles + +// +// tile constants +// + +#define ICONARROWS 90 +#define PUSHABLETILE 98 +#define EXITTILE 99 // at end of castle +#define AREATILE 107 // first of NUMAREAS floor tiles +#define NUMAREAS 37 +#define ELEVATORTILE 21 +#define AMBUSHTILE 106 +#define ALTELEVATORTILE 107 + +#define NUMBERCHARS 9 + + +//---------------- + +#define EXTRAPOINTS 40000 + +#define PLAYERSPEED 3000 +#define RUNSPEED 6000 + +#define SCREENSEG 0xa000 + +#define SCREENBWIDE 80 + +#define HEIGHTRATIO 0.50 // also defined in id_mm.c + +#define BORDERCOLOR 3 +#define FLASHCOLOR 5 +#define FLASHTICS 4 + + +#define PLAYERSIZE MINDIST // player radius +#define MINACTORDIST 0x10000l // minimum dist from player center + // to any actor center + +#define NUMLATCHPICS 100 + + +#define PI 3.141592657 + +#define GLOBAL1 (1l<<16) +#define TILEGLOBAL GLOBAL1 +#define PIXGLOBAL (GLOBAL1/64) +#define TILESHIFT 16l +#define UNSIGNEDSHIFT 8 + +#define ANGLES 360 // must be divisable by 4 +#define ANGLEQUAD (ANGLES/4) +#define FINEANGLES 3600 +#define ANG90 (FINEANGLES/4) +#define ANG180 (ANG90*2) +#define ANG270 (ANG90*3) +#define ANG360 (ANG90*4) +#define VANG90 (ANGLES/4) +#define VANG180 (VANG90*2) +#define VANG270 (VANG90*3) +#define VANG360 (VANG90*4) + +#define MINDIST (0x5800l) + + +#define MAXSCALEHEIGHT 256 // largest scale on largest view + +#define MAXVIEWWIDTH 320 + +#define MAPSIZE 64 // maps are 64*64 max +#define NORTH 0 +#define EAST 1 +#define SOUTH 2 +#define WEST 3 + + +#define STATUSLINES 40 + +#define SCREENSIZE (SCREENBWIDE*208) +#define PAGE1START 0 +#define PAGE2START (SCREENSIZE) +#define PAGE3START (SCREENSIZE*2u) +#define FREESTART (SCREENSIZE*3u) + + +#define PIXRADIUS 512 + +#define STARTAMMO 8 + + +// object flag values + +#define FL_SHOOTABLE 1 +#define FL_BONUS 2 +#define FL_NEVERMARK 4 +#define FL_VISABLE 8 +#define FL_ATTACKMODE 16 +#define FL_FIRSTATTACK 32 +#define FL_AMBUSH 64 +#define FL_NONMARK 128 + + +// +// sprite constants +// + +enum { + SPR_DEMO, + SPR_DEATHCAM, +// +// static sprites +// + SPR_STAT_0,SPR_STAT_1,SPR_STAT_2,SPR_STAT_3, + SPR_STAT_4,SPR_STAT_5,SPR_STAT_6,SPR_STAT_7, + + SPR_STAT_8,SPR_STAT_9,SPR_STAT_10,SPR_STAT_11, + SPR_STAT_12,SPR_STAT_13,SPR_STAT_14,SPR_STAT_15, + + SPR_STAT_16,SPR_STAT_17,SPR_STAT_18,SPR_STAT_19, + SPR_STAT_20,SPR_STAT_21,SPR_STAT_22,SPR_STAT_23, + + SPR_STAT_24,SPR_STAT_25,SPR_STAT_26,SPR_STAT_27, + SPR_STAT_28,SPR_STAT_29,SPR_STAT_30,SPR_STAT_31, + + SPR_STAT_32,SPR_STAT_33,SPR_STAT_34,SPR_STAT_35, + SPR_STAT_36,SPR_STAT_37,SPR_STAT_38,SPR_STAT_39, + + SPR_STAT_40,SPR_STAT_41,SPR_STAT_42,SPR_STAT_43, + SPR_STAT_44,SPR_STAT_45,SPR_STAT_46,SPR_STAT_47, + +#ifdef SPEAR + SPR_STAT_48,SPR_STAT_49,SPR_STAT_50,SPR_STAT_51, +#endif + +// +// guard +// + SPR_GRD_S_1,SPR_GRD_S_2,SPR_GRD_S_3,SPR_GRD_S_4, + SPR_GRD_S_5,SPR_GRD_S_6,SPR_GRD_S_7,SPR_GRD_S_8, + + SPR_GRD_W1_1,SPR_GRD_W1_2,SPR_GRD_W1_3,SPR_GRD_W1_4, + SPR_GRD_W1_5,SPR_GRD_W1_6,SPR_GRD_W1_7,SPR_GRD_W1_8, + + SPR_GRD_W2_1,SPR_GRD_W2_2,SPR_GRD_W2_3,SPR_GRD_W2_4, + SPR_GRD_W2_5,SPR_GRD_W2_6,SPR_GRD_W2_7,SPR_GRD_W2_8, + + SPR_GRD_W3_1,SPR_GRD_W3_2,SPR_GRD_W3_3,SPR_GRD_W3_4, + SPR_GRD_W3_5,SPR_GRD_W3_6,SPR_GRD_W3_7,SPR_GRD_W3_8, + + SPR_GRD_W4_1,SPR_GRD_W4_2,SPR_GRD_W4_3,SPR_GRD_W4_4, + SPR_GRD_W4_5,SPR_GRD_W4_6,SPR_GRD_W4_7,SPR_GRD_W4_8, + + SPR_GRD_PAIN_1,SPR_GRD_DIE_1,SPR_GRD_DIE_2,SPR_GRD_DIE_3, + SPR_GRD_PAIN_2,SPR_GRD_DEAD, + + SPR_GRD_SHOOT1,SPR_GRD_SHOOT2,SPR_GRD_SHOOT3, + +// +// dogs +// + SPR_DOG_W1_1,SPR_DOG_W1_2,SPR_DOG_W1_3,SPR_DOG_W1_4, + SPR_DOG_W1_5,SPR_DOG_W1_6,SPR_DOG_W1_7,SPR_DOG_W1_8, + + SPR_DOG_W2_1,SPR_DOG_W2_2,SPR_DOG_W2_3,SPR_DOG_W2_4, + SPR_DOG_W2_5,SPR_DOG_W2_6,SPR_DOG_W2_7,SPR_DOG_W2_8, + + SPR_DOG_W3_1,SPR_DOG_W3_2,SPR_DOG_W3_3,SPR_DOG_W3_4, + SPR_DOG_W3_5,SPR_DOG_W3_6,SPR_DOG_W3_7,SPR_DOG_W3_8, + + SPR_DOG_W4_1,SPR_DOG_W4_2,SPR_DOG_W4_3,SPR_DOG_W4_4, + SPR_DOG_W4_5,SPR_DOG_W4_6,SPR_DOG_W4_7,SPR_DOG_W4_8, + + SPR_DOG_DIE_1,SPR_DOG_DIE_2,SPR_DOG_DIE_3,SPR_DOG_DEAD, + SPR_DOG_JUMP1,SPR_DOG_JUMP2,SPR_DOG_JUMP3, + + + +// +// ss +// + SPR_SS_S_1,SPR_SS_S_2,SPR_SS_S_3,SPR_SS_S_4, + SPR_SS_S_5,SPR_SS_S_6,SPR_SS_S_7,SPR_SS_S_8, + + SPR_SS_W1_1,SPR_SS_W1_2,SPR_SS_W1_3,SPR_SS_W1_4, + SPR_SS_W1_5,SPR_SS_W1_6,SPR_SS_W1_7,SPR_SS_W1_8, + + SPR_SS_W2_1,SPR_SS_W2_2,SPR_SS_W2_3,SPR_SS_W2_4, + SPR_SS_W2_5,SPR_SS_W2_6,SPR_SS_W2_7,SPR_SS_W2_8, + + SPR_SS_W3_1,SPR_SS_W3_2,SPR_SS_W3_3,SPR_SS_W3_4, + SPR_SS_W3_5,SPR_SS_W3_6,SPR_SS_W3_7,SPR_SS_W3_8, + + SPR_SS_W4_1,SPR_SS_W4_2,SPR_SS_W4_3,SPR_SS_W4_4, + SPR_SS_W4_5,SPR_SS_W4_6,SPR_SS_W4_7,SPR_SS_W4_8, + + SPR_SS_PAIN_1,SPR_SS_DIE_1,SPR_SS_DIE_2,SPR_SS_DIE_3, + SPR_SS_PAIN_2,SPR_SS_DEAD, + + SPR_SS_SHOOT1,SPR_SS_SHOOT2,SPR_SS_SHOOT3, + +// +// mutant +// + SPR_MUT_S_1,SPR_MUT_S_2,SPR_MUT_S_3,SPR_MUT_S_4, + SPR_MUT_S_5,SPR_MUT_S_6,SPR_MUT_S_7,SPR_MUT_S_8, + + SPR_MUT_W1_1,SPR_MUT_W1_2,SPR_MUT_W1_3,SPR_MUT_W1_4, + SPR_MUT_W1_5,SPR_MUT_W1_6,SPR_MUT_W1_7,SPR_MUT_W1_8, + + SPR_MUT_W2_1,SPR_MUT_W2_2,SPR_MUT_W2_3,SPR_MUT_W2_4, + SPR_MUT_W2_5,SPR_MUT_W2_6,SPR_MUT_W2_7,SPR_MUT_W2_8, + + SPR_MUT_W3_1,SPR_MUT_W3_2,SPR_MUT_W3_3,SPR_MUT_W3_4, + SPR_MUT_W3_5,SPR_MUT_W3_6,SPR_MUT_W3_7,SPR_MUT_W3_8, + + SPR_MUT_W4_1,SPR_MUT_W4_2,SPR_MUT_W4_3,SPR_MUT_W4_4, + SPR_MUT_W4_5,SPR_MUT_W4_6,SPR_MUT_W4_7,SPR_MUT_W4_8, + + SPR_MUT_PAIN_1,SPR_MUT_DIE_1,SPR_MUT_DIE_2,SPR_MUT_DIE_3, + SPR_MUT_PAIN_2,SPR_MUT_DIE_4,SPR_MUT_DEAD, + + SPR_MUT_SHOOT1,SPR_MUT_SHOOT2,SPR_MUT_SHOOT3,SPR_MUT_SHOOT4, + +// +// officer +// + SPR_OFC_S_1,SPR_OFC_S_2,SPR_OFC_S_3,SPR_OFC_S_4, + SPR_OFC_S_5,SPR_OFC_S_6,SPR_OFC_S_7,SPR_OFC_S_8, + + SPR_OFC_W1_1,SPR_OFC_W1_2,SPR_OFC_W1_3,SPR_OFC_W1_4, + SPR_OFC_W1_5,SPR_OFC_W1_6,SPR_OFC_W1_7,SPR_OFC_W1_8, + + SPR_OFC_W2_1,SPR_OFC_W2_2,SPR_OFC_W2_3,SPR_OFC_W2_4, + SPR_OFC_W2_5,SPR_OFC_W2_6,SPR_OFC_W2_7,SPR_OFC_W2_8, + + SPR_OFC_W3_1,SPR_OFC_W3_2,SPR_OFC_W3_3,SPR_OFC_W3_4, + SPR_OFC_W3_5,SPR_OFC_W3_6,SPR_OFC_W3_7,SPR_OFC_W3_8, + + SPR_OFC_W4_1,SPR_OFC_W4_2,SPR_OFC_W4_3,SPR_OFC_W4_4, + SPR_OFC_W4_5,SPR_OFC_W4_6,SPR_OFC_W4_7,SPR_OFC_W4_8, + + SPR_OFC_PAIN_1,SPR_OFC_DIE_1,SPR_OFC_DIE_2,SPR_OFC_DIE_3, + SPR_OFC_PAIN_2,SPR_OFC_DIE_4,SPR_OFC_DEAD, + + SPR_OFC_SHOOT1,SPR_OFC_SHOOT2,SPR_OFC_SHOOT3, + +#ifndef SPEAR +// +// ghosts +// + SPR_BLINKY_W1,SPR_BLINKY_W2,SPR_PINKY_W1,SPR_PINKY_W2, + SPR_CLYDE_W1,SPR_CLYDE_W2,SPR_INKY_W1,SPR_INKY_W2, + +// +// hans +// + SPR_BOSS_W1,SPR_BOSS_W2,SPR_BOSS_W3,SPR_BOSS_W4, + SPR_BOSS_SHOOT1,SPR_BOSS_SHOOT2,SPR_BOSS_SHOOT3,SPR_BOSS_DEAD, + + SPR_BOSS_DIE1,SPR_BOSS_DIE2,SPR_BOSS_DIE3, + +// +// schabbs +// + SPR_SCHABB_W1,SPR_SCHABB_W2,SPR_SCHABB_W3,SPR_SCHABB_W4, + SPR_SCHABB_SHOOT1,SPR_SCHABB_SHOOT2, + + SPR_SCHABB_DIE1,SPR_SCHABB_DIE2,SPR_SCHABB_DIE3,SPR_SCHABB_DEAD, + SPR_HYPO1,SPR_HYPO2,SPR_HYPO3,SPR_HYPO4, + +// +// fake +// + SPR_FAKE_W1,SPR_FAKE_W2,SPR_FAKE_W3,SPR_FAKE_W4, + SPR_FAKE_SHOOT,SPR_FIRE1,SPR_FIRE2, + + SPR_FAKE_DIE1,SPR_FAKE_DIE2,SPR_FAKE_DIE3,SPR_FAKE_DIE4, + SPR_FAKE_DIE5,SPR_FAKE_DEAD, + +// +// hitler +// + SPR_MECHA_W1,SPR_MECHA_W2,SPR_MECHA_W3,SPR_MECHA_W4, + SPR_MECHA_SHOOT1,SPR_MECHA_SHOOT2,SPR_MECHA_SHOOT3,SPR_MECHA_DEAD, + + SPR_MECHA_DIE1,SPR_MECHA_DIE2,SPR_MECHA_DIE3, + + SPR_HITLER_W1,SPR_HITLER_W2,SPR_HITLER_W3,SPR_HITLER_W4, + SPR_HITLER_SHOOT1,SPR_HITLER_SHOOT2,SPR_HITLER_SHOOT3,SPR_HITLER_DEAD, + + SPR_HITLER_DIE1,SPR_HITLER_DIE2,SPR_HITLER_DIE3,SPR_HITLER_DIE4, + SPR_HITLER_DIE5,SPR_HITLER_DIE6,SPR_HITLER_DIE7, + +// +// giftmacher +// + SPR_GIFT_W1,SPR_GIFT_W2,SPR_GIFT_W3,SPR_GIFT_W4, + SPR_GIFT_SHOOT1,SPR_GIFT_SHOOT2, + + SPR_GIFT_DIE1,SPR_GIFT_DIE2,SPR_GIFT_DIE3,SPR_GIFT_DEAD, +#endif +// +// Rocket, smoke and small explosion +// + SPR_ROCKET_1,SPR_ROCKET_2,SPR_ROCKET_3,SPR_ROCKET_4, + SPR_ROCKET_5,SPR_ROCKET_6,SPR_ROCKET_7,SPR_ROCKET_8, + + SPR_SMOKE_1,SPR_SMOKE_2,SPR_SMOKE_3,SPR_SMOKE_4, + SPR_BOOM_1,SPR_BOOM_2,SPR_BOOM_3, + +// +// Angel of Death's DeathSparks(tm) +// +#ifdef SPEAR + SPR_HROCKET_1,SPR_HROCKET_2,SPR_HROCKET_3,SPR_HROCKET_4, + SPR_HROCKET_5,SPR_HROCKET_6,SPR_HROCKET_7,SPR_HROCKET_8, + + SPR_HSMOKE_1,SPR_HSMOKE_2,SPR_HSMOKE_3,SPR_HSMOKE_4, + SPR_HBOOM_1,SPR_HBOOM_2,SPR_HBOOM_3, + + SPR_SPARK1,SPR_SPARK2,SPR_SPARK3,SPR_SPARK4, +#endif + +#ifndef SPEAR +// +// gretel +// + SPR_GRETEL_W1,SPR_GRETEL_W2,SPR_GRETEL_W3,SPR_GRETEL_W4, + SPR_GRETEL_SHOOT1,SPR_GRETEL_SHOOT2,SPR_GRETEL_SHOOT3,SPR_GRETEL_DEAD, + + SPR_GRETEL_DIE1,SPR_GRETEL_DIE2,SPR_GRETEL_DIE3, + +// +// fat face +// + SPR_FAT_W1,SPR_FAT_W2,SPR_FAT_W3,SPR_FAT_W4, + SPR_FAT_SHOOT1,SPR_FAT_SHOOT2,SPR_FAT_SHOOT3,SPR_FAT_SHOOT4, + + SPR_FAT_DIE1,SPR_FAT_DIE2,SPR_FAT_DIE3,SPR_FAT_DEAD, + +// +// bj +// + SPR_BJ_W1,SPR_BJ_W2,SPR_BJ_W3,SPR_BJ_W4, + SPR_BJ_JUMP1,SPR_BJ_JUMP2,SPR_BJ_JUMP3,SPR_BJ_JUMP4, +#else +// +// THESE ARE FOR 'SPEAR OF DESTINY' +// + +// +// Trans Grosse +// + SPR_TRANS_W1,SPR_TRANS_W2,SPR_TRANS_W3,SPR_TRANS_W4, + SPR_TRANS_SHOOT1,SPR_TRANS_SHOOT2,SPR_TRANS_SHOOT3,SPR_TRANS_DEAD, + + SPR_TRANS_DIE1,SPR_TRANS_DIE2,SPR_TRANS_DIE3, + +// +// Wilhelm +// + SPR_WILL_W1,SPR_WILL_W2,SPR_WILL_W3,SPR_WILL_W4, + SPR_WILL_SHOOT1,SPR_WILL_SHOOT2,SPR_WILL_SHOOT3,SPR_WILL_SHOOT4, + + SPR_WILL_DIE1,SPR_WILL_DIE2,SPR_WILL_DIE3,SPR_WILL_DEAD, + +// +// UberMutant +// + SPR_UBER_W1,SPR_UBER_W2,SPR_UBER_W3,SPR_UBER_W4, + SPR_UBER_SHOOT1,SPR_UBER_SHOOT2,SPR_UBER_SHOOT3,SPR_UBER_SHOOT4, + + SPR_UBER_DIE1,SPR_UBER_DIE2,SPR_UBER_DIE3,SPR_UBER_DIE4, + SPR_UBER_DEAD, + +// +// Death Knight +// + SPR_DEATH_W1,SPR_DEATH_W2,SPR_DEATH_W3,SPR_DEATH_W4, + SPR_DEATH_SHOOT1,SPR_DEATH_SHOOT2,SPR_DEATH_SHOOT3,SPR_DEATH_SHOOT4, + + SPR_DEATH_DIE1,SPR_DEATH_DIE2,SPR_DEATH_DIE3,SPR_DEATH_DIE4, + SPR_DEATH_DIE5,SPR_DEATH_DIE6,SPR_DEATH_DEAD, + +// +// Ghost +// + SPR_SPECTRE_W1,SPR_SPECTRE_W2,SPR_SPECTRE_W3,SPR_SPECTRE_W4, + SPR_SPECTRE_F1,SPR_SPECTRE_F2,SPR_SPECTRE_F3,SPR_SPECTRE_F4, + +// +// Angel of Death +// + SPR_ANGEL_W1,SPR_ANGEL_W2,SPR_ANGEL_W3,SPR_ANGEL_W4, + SPR_ANGEL_SHOOT1,SPR_ANGEL_SHOOT2,SPR_ANGEL_TIRED1,SPR_ANGEL_TIRED2, + + SPR_ANGEL_DIE1,SPR_ANGEL_DIE2,SPR_ANGEL_DIE3,SPR_ANGEL_DIE4, + SPR_ANGEL_DIE5,SPR_ANGEL_DIE6,SPR_ANGEL_DIE7,SPR_ANGEL_DEAD, + +#endif + +// +// player attack frames +// + SPR_KNIFEREADY,SPR_KNIFEATK1,SPR_KNIFEATK2,SPR_KNIFEATK3, + SPR_KNIFEATK4, + + SPR_PISTOLREADY,SPR_PISTOLATK1,SPR_PISTOLATK2,SPR_PISTOLATK3, + SPR_PISTOLATK4, + + SPR_MACHINEGUNREADY,SPR_MACHINEGUNATK1,SPR_MACHINEGUNATK2,MACHINEGUNATK3, + SPR_MACHINEGUNATK4, + + SPR_CHAINREADY,SPR_CHAINATK1,SPR_CHAINATK2,SPR_CHAINATK3, + SPR_CHAINATK4, + + }; + + +/* +============================================================================= + + GLOBAL TYPES + +============================================================================= +*/ + +typedef long fixed; + +typedef enum { + di_north, + di_east, + di_south, + di_west +} controldir_t; + +typedef enum { + dr_normal, + dr_lock1, + dr_lock2, + dr_lock3, + dr_lock4, + dr_elevator +} door_t; + +typedef enum { + ac_badobject = -1, + ac_no, + ac_yes, + ac_allways +} activetype; + +typedef enum { + nothing, + playerobj, + inertobj, + guardobj, + officerobj, + ssobj, + dogobj, + bossobj, + schabbobj, + fakeobj, + mechahitlerobj, + mutantobj, + needleobj, + fireobj, + bjobj, + ghostobj, + realhitlerobj, + gretelobj, + giftobj, + fatobj, + rocketobj, + + spectreobj, + angelobj, + transobj, + uberobj, + willobj, + deathobj, + hrocketobj, + sparkobj +} classtype; + +typedef enum { + dressing, + block, + bo_gibs, + bo_alpo, + bo_firstaid, + bo_key1, + bo_key2, + bo_key3, + bo_key4, + bo_cross, + bo_chalice, + bo_bible, + bo_crown, + bo_clip, + bo_clip2, + bo_machinegun, + bo_chaingun, + bo_food, + bo_fullheal, + bo_25clip, + bo_spear +} stat_t; + +typedef enum { + east, + northeast, + north, + northwest, + west, + southwest, + south, + southeast, + nodir +} dirtype; + + +#define NUMENEMIES 22 +typedef enum { + en_guard, + en_officer, + en_ss, + en_dog, + en_boss, + en_schabbs, + en_fake, + en_hitler, + en_mutant, + en_blinky, + en_clyde, + en_pinky, + en_inky, + en_gretel, + en_gift, + en_fat, + en_spectre, + en_angel, + en_trans, + en_uber, + en_will, + en_death +} enemy_t; + + +typedef struct statestruct +{ + boolean rotate; + int shapenum; // a shapenum of -1 means get from ob->temp1 + int tictime; + void (*think) (),(*action) (); + struct statestruct *next; +} statetype; + + +//--------------------- +// +// trivial actor structure +// +//--------------------- + +typedef struct statstruct +{ + byte tilex,tiley; + byte *visspot; + int shapenum; // if shapenum == -1 the obj has been removed + byte flags; + byte itemnumber; +} statobj_t; + + +//--------------------- +// +// door actor structure +// +//--------------------- + +typedef struct doorstruct +{ + byte tilex,tiley; + boolean vertical; + byte lock; + enum {dr_open,dr_closed,dr_opening,dr_closing} action; + int ticcount; +} doorobj_t; + + +//-------------------- +// +// thinking actor structure +// +//-------------------- + +typedef struct objstruct +{ + activetype active; + int ticcount; + classtype obclass; + statetype *state; + + byte flags; // FL_SHOOTABLE, etc + + long distance; // if negative, wait for that door to open + dirtype dir; + + fixed x,y; + unsigned tilex,tiley; + byte areanumber; + + int viewx; + unsigned viewheight; + fixed transx,transy; // in global coord + + int angle; + int hitpoints; + long speed; + + int temp1,temp2,temp3; + struct objstruct *next,*prev; +} objtype; + + +#define NUMBUTTONS 8 +enum { + bt_nobutton=-1, + bt_attack=0, + bt_strafe, + bt_run, + bt_use, + bt_readyknife, + bt_readypistol, + bt_readymachinegun, + bt_readychaingun +}; + + +#define NUMWEAPONS 5 +typedef enum { + wp_knife, + wp_pistol, + wp_machinegun, + wp_chaingun +} weapontype; + + +typedef enum { + gd_baby, + gd_easy, + gd_medium, + gd_hard +}; + +//--------------- +// +// gamestate structure +// +//--------------- + +typedef struct +{ + int difficulty; + int mapon; + long oldscore,score,nextextra; + int lives; + int health; + int ammo; + int keys; + weapontype bestweapon,weapon,chosenweapon; + + int faceframe; + int attackframe,attackcount,weaponframe; + + int episode,secretcount,treasurecount,killcount, + secrettotal,treasuretotal,killtotal; + long TimeCount; + long killx,killy; + boolean victoryflag; // set during victory animations +} gametype; + + +typedef enum { + ex_stillplaying, + ex_completed, + ex_died, + ex_warped, + ex_resetgame, + ex_loadedgame, + ex_victorious, + ex_abort, + ex_demodone, + ex_secretlevel +} exit_t; + + +/* +============================================================================= + + WL_MAIN DEFINITIONS + +============================================================================= +*/ + +extern boolean MS_CheckParm (char far *string); + +extern char str[80],str2[20]; +extern int tedlevelnum; +extern boolean tedlevel; +extern boolean nospr; +extern boolean IsA386; + +extern byte far *scalermemory; + +extern fixed focallength; +extern unsigned viewangles; +extern unsigned screenofs; +extern int viewwidth; +extern int viewheight; +extern int centerx; +extern int shootdelta; + +extern int dirangle[9]; + +extern boolean startgame,loadedgame,virtualreality; +extern int mouseadjustment; +// +// math tables +// +extern int pixelangle[MAXVIEWWIDTH]; +extern long far finetangent[FINEANGLES/4]; +extern fixed far sintable[],far *costable; + +// +// derived constants +// +extern fixed scale,maxslope; +extern long heightnumerator; +extern int minheightdiv; + +extern char configname[13]; + + + +void HelpScreens (void); +void OrderingInfo (void); +void TEDDeath(void); +void Quit (char *error); +void CalcProjection (long focal); +boolean SetViewSize (unsigned width, unsigned height); +void NewGame (int difficulty,int episode); +void NewViewSize (int width); +boolean LoadTheGame(int file,int x,int y); +boolean SaveTheGame(int file,int x,int y); +void ShowViewSize (int width); +void ShutdownId (void); + + +/* +============================================================================= + + WL_GAME DEFINITIONS + +============================================================================= +*/ + + +extern boolean ingame,fizzlein; +extern unsigned latchpics[NUMLATCHPICS]; +extern gametype gamestate; +extern int doornum; + +extern char demoname[13]; + +extern long spearx,speary; +extern unsigned spearangle; +extern boolean spearflag; + + +void DrawPlayBorder (void); +void ScanInfoPlane (void); +void SetupGameLevel (void); +void NormalScreen (void); +void DrawPlayScreen (void); +void FizzleOut (void); +void GameLoop (void); +void ClearMemory (void); +void PlayDemo (int demonumber); +void RecordDemo (void); +void DrawAllPlayBorder (void); +void DrawHighScores(void); +void DrawAllPlayBorderSides (void); + + +// JAB +#define PlaySoundLocTile(s,tx,ty) PlaySoundLocGlobal(s,(((long)(tx) << TILESHIFT) + (1L << (TILESHIFT - 1))),(((long)ty << TILESHIFT) + (1L << (TILESHIFT - 1)))) +#define PlaySoundLocActor(s,ob) PlaySoundLocGlobal(s,(ob)->x,(ob)->y) +void PlaySoundLocGlobal(word s,fixed gx,fixed gy); +void UpdateSoundLoc(void); + + +/* +============================================================================= + + WL_PLAY DEFINITIONS + +============================================================================= +*/ + +#ifdef SPEAR +extern long funnyticount; // FOR FUNNY BJ FACE +#endif + +extern exit_t playstate; + +extern boolean madenoise; + +extern objtype objlist[MAXACTORS],*new,*obj,*player,*lastobj, + *objfreelist,*killerobj; +extern statobj_t statobjlist[MAXSTATS],*laststatobj; +extern doorobj_t doorobjlist[MAXDOORS],*lastdoorobj; + +extern unsigned farmapylookup[MAPSIZE]; +extern byte *nearmapylookup[MAPSIZE]; + +extern byte tilemap[MAPSIZE][MAPSIZE]; // wall values only +extern byte spotvis[MAPSIZE][MAPSIZE]; +extern objtype *actorat[MAPSIZE][MAPSIZE]; + +#define UPDATESIZE (UPDATEWIDE*UPDATEHIGH) +extern byte update[UPDATESIZE]; + +extern boolean singlestep,godmode,noclip; +extern int extravbls; + +// +// control info +// +extern boolean mouseenabled,joystickenabled,joypadenabled,joystickprogressive; +extern int joystickport; +extern int dirscan[4]; +extern int buttonscan[NUMBUTTONS]; +extern int buttonmouse[4]; +extern int buttonjoy[4]; + +extern boolean buttonheld[NUMBUTTONS]; + +extern int viewsize; + +// +// curent user input +// +extern int controlx,controly; // range from -100 to 100 +extern boolean buttonstate[NUMBUTTONS]; + +extern boolean demorecord,demoplayback; +extern char far *demoptr, far *lastdemoptr; +extern memptr demobuffer; + + + +void InitRedShifts (void); +void FinishPaletteShifts (void); + +void CenterWindow(word w,word h); +void InitActorList (void); +void GetNewActor (void); +void RemoveObj (objtype *gone); +void PollControls (void); +void StopMusic(void); +void StartMusic(void); +void PlayLoop (void); +void StartDamageFlash (int damage); +void StartBonusFlash (void); + +/* +============================================================================= + + WL_INTER + +============================================================================= +*/ + +void IntroScreen (void); +void PreloadGraphics(void); +void LevelCompleted (void); +void CheckHighScore (long score,word other); +void Victory (void); +void ClearSplitVWB (void); + + +/* +============================================================================= + + WL_DEBUG + +============================================================================= +*/ + +int DebugKeys (void); +void PicturePause (void); + + +/* +============================================================================= + + WL_DRAW DEFINITIONS + +============================================================================= +*/ + +extern unsigned screenloc[3]; +extern unsigned freelatch; + +extern long lasttimecount; +extern long frameon; +extern boolean fizzlein; + +extern unsigned wallheight[MAXVIEWWIDTH]; + +extern fixed tileglobal; +extern fixed focallength; +extern fixed mindist; + +// +// math tables +// +extern int pixelangle[MAXVIEWWIDTH]; +extern long far finetangent[FINEANGLES/4]; +extern fixed far sintable[],far *costable; + +// +// derived constants +// +extern fixed scale; +extern long heightnumerator,mindist; + +// +// refresh variables +// +extern fixed viewx,viewy; // the focal point +extern int viewangle; +extern fixed viewsin,viewcos; + +extern long postsource; +extern unsigned postx; +extern unsigned postwidth; + + +extern int horizwall[],vertwall[]; + +extern unsigned pwallpos; + + +fixed FixedByFrac (fixed a, fixed b); +void TransformActor (objtype *ob); +void BuildTables (void); +void ClearScreen (void); +int CalcRotate (objtype *ob); +void DrawScaleds (void); +void CalcTics (void); +void FixOfs (void); +void ThreeDRefresh (void); +void FarScalePost (void); + +/* +============================================================================= + + WL_STATE DEFINITIONS + +============================================================================= +*/ +#define TURNTICS 10 +#define SPDPATROL 512 +#define SPDDOG 1500 + + +extern dirtype opposite[9]; +extern dirtype diagonal[9][9]; + + +void InitHitRect (objtype *ob, unsigned radius); +void SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state); +void NewState (objtype *ob, statetype *state); + +boolean TryWalk (objtype *ob); +void SelectChaseDir (objtype *ob); +void SelectDodgeDir (objtype *ob); +void SelectRunDir (objtype *ob); +void MoveObj (objtype *ob, long move); +boolean SightPlayer (objtype *ob); + +void KillActor (objtype *ob); +void DamageActor (objtype *ob, unsigned damage); + +boolean CheckLine (objtype *ob); +boolean CheckSight (objtype *ob); + + +/* +============================================================================= + + WL_SCALE DEFINITIONS + +============================================================================= +*/ + + +#define COMPSCALECODESTART (65*4) // offset to start of code in comp scaler + +typedef struct +{ + unsigned codeofs[65]; + unsigned width[65]; + byte code[]; +} t_compscale; + +typedef struct +{ + unsigned leftpix,rightpix; + unsigned dataofs[64]; +// table data after dataofs[rightpix-leftpix+1] +} t_compshape; + + +extern t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +extern long fullscalefarcall[MAXSCALEHEIGHT+1]; + +extern byte bitmasks1[8][8]; +extern byte bitmasks2[8][8]; +extern unsigned wordmasks[8][8]; + +extern byte mapmasks1[4][8]; +extern byte mapmasks2[4][8]; +extern byte mapmasks3[4][8]; + +extern int maxscale,maxscaleshl2; + +extern boolean insetupscaling; + +void SetupScaling (int maxscaleheight); +void ScaleShape (int xcenter, int shapenum, unsigned height); +void SimpleScaleShape (int xcenter, int shapenum, unsigned height); + +/* +============================================================================= + + WL_AGENT DEFINITIONS + +============================================================================= +*/ + +// +// player state info +// +extern boolean running; +extern long thrustspeed; +extern unsigned plux,pluy; // player coordinates scaled to unsigned + +extern int anglefrac; +extern int facecount; + +void SpawnPlayer (int tilex, int tiley, int dir); +void DrawFace (void); +void DrawHealth (void); +void TakeDamage (int points,objtype *attacker); +void HealSelf (int points); +void DrawLevel (void); +void DrawLives (void); +void GiveExtraMan (void); +void DrawScore (void); +void GivePoints (long points); +void DrawWeapon (void); +void DrawKeys (void); +void GiveWeapon (int weapon); +void DrawAmmo (void); +void GiveAmmo (int ammo); +void GiveKey (int key); +void GetBonus (statobj_t *check); + +void Thrust (int angle, long speed); + +/* +============================================================================= + + WL_ACT1 DEFINITIONS + +============================================================================= +*/ + +extern doorobj_t doorobjlist[MAXDOORS],*lastdoorobj; +extern int doornum; + +extern unsigned doorposition[MAXDOORS],pwallstate; + +extern byte far areaconnect[NUMAREAS][NUMAREAS]; + +extern boolean areabyplayer[NUMAREAS]; + +extern unsigned pwallstate; +extern unsigned pwallpos; // amount a pushable wall has been moved (0-63) +extern unsigned pwallx,pwally; +extern int pwalldir; + + +void InitDoorList (void); +void InitStaticList (void); +void SpawnStatic (int tilex, int tiley, int type); +void SpawnDoor (int tilex, int tiley, boolean vertical, int lock); +void MoveDoors (void); +void MovePWalls (void); +void OpenDoor (int door); +void PlaceItemType (int itemtype, int tilex, int tiley); +void PushWall (int checkx, int checky, int dir); +void OperateDoor (int door); +void InitAreas (void); + +/* +============================================================================= + + WL_ACT2 DEFINITIONS + +============================================================================= +*/ + +#define s_nakedbody s_static10 + +extern statetype s_grddie1; +extern statetype s_dogdie1; +extern statetype s_ofcdie1; +extern statetype s_mutdie1; +extern statetype s_ssdie1; +extern statetype s_bossdie1; +extern statetype s_schabbdie1; +extern statetype s_fakedie1; +extern statetype s_mechadie1; +extern statetype s_hitlerdie1; +extern statetype s_greteldie1; +extern statetype s_giftdie1; +extern statetype s_fatdie1; + +extern statetype s_spectredie1; +extern statetype s_angeldie1; +extern statetype s_transdie0; +extern statetype s_uberdie0; +extern statetype s_willdie1; +extern statetype s_deathdie1; + + +extern statetype s_grdchase1; +extern statetype s_dogchase1; +extern statetype s_ofcchase1; +extern statetype s_sschase1; +extern statetype s_mutchase1; +extern statetype s_bosschase1; +extern statetype s_schabbchase1; +extern statetype s_fakechase1; +extern statetype s_mechachase1; +extern statetype s_gretelchase1; +extern statetype s_giftchase1; +extern statetype s_fatchase1; + +extern statetype s_spectrechase1; +extern statetype s_angelchase1; +extern statetype s_transchase1; +extern statetype s_uberchase1; +extern statetype s_willchase1; +extern statetype s_deathchase1; + +extern statetype s_blinkychase1; +extern statetype s_hitlerchase1; + +extern statetype s_grdpain; +extern statetype s_grdpain1; +extern statetype s_ofcpain; +extern statetype s_ofcpain1; +extern statetype s_sspain; +extern statetype s_sspain1; +extern statetype s_mutpain; +extern statetype s_mutpain1; + +extern statetype s_deathcam; + +extern statetype s_schabbdeathcam2; +extern statetype s_hitlerdeathcam2; +extern statetype s_giftdeathcam2; +extern statetype s_fatdeathcam2; + +void SpawnStand (enemy_t which, int tilex, int tiley, int dir); +void SpawnPatrol (enemy_t which, int tilex, int tiley, int dir); +void KillActor (objtype *ob); + +void US_ControlPanel(byte); + +void SpawnDeadGuard (int tilex, int tiley); +void SpawnBoss (int tilex, int tiley); +void SpawnGretel (int tilex, int tiley); +void SpawnTrans (int tilex, int tiley); +void SpawnUber (int tilex, int tiley); +void SpawnWill (int tilex, int tiley); +void SpawnDeath (int tilex, int tiley); +void SpawnAngel (int tilex, int tiley); +void SpawnSpectre (int tilex, int tiley); +void SpawnGhosts (int which, int tilex, int tiley); +void SpawnSchabbs (int tilex, int tiley); +void SpawnGift (int tilex, int tiley); +void SpawnFat (int tilex, int tiley); +void SpawnFakeHitler (int tilex, int tiley); +void SpawnHitler (int tilex, int tiley); + +/* +============================================================================= + + WL_TEXT DEFINITIONS + +============================================================================= +*/ + +extern char helpfilename[],endfilename[]; + +extern void HelpScreens(void); +extern void EndText(void); diff --git a/16/wf3d8086/wl_dr_a.asm b/16/wf3d8086/wl_dr_a.asm new file mode 100755 index 00000000..aec139a1 --- /dev/null +++ b/16/wf3d8086/wl_dr_a.asm @@ -0,0 +1,795 @@ + IDEAL + MODEL MEDIUM,C + P286 + +SCREENSEG = 0a000h + +FINEANGLES = 3600 +DEG90 = 900 +DEG180 = 1800 +DEG270 = 2700 +DEG360 = 3600 + +OP_JLE = 07eh +OP_JGE = 07dh + +EXTRN finetangent:DWORD ; far array, starts at offset 0 + +EXTRN HitHorizWall:FAR +EXTRN HitVertWall:FAR +EXTRN HitHorizDoor:FAR +EXTRN HitVertDoor:FAR +EXTRN HitHorizPWall:FAR +EXTRN HitVertPWall:FAR + + +DATASEG + +EXTRN viewwidth:WORD + +EXTRN tilemap:BYTE +EXTRN spotvis:BYTE +EXTRN pixelangle:WORD + + +EXTRN midangle:WORD +EXTRN angle:WORD + +EXTRN focaltx:WORD +EXTRN focalty:WORD +EXTRN viewtx:WORD +EXTRN viewty:WORD +EXTRN viewx:DWORD +EXTRN viewy:DWORD + +EXTRN xpartialup:WORD +EXTRN ypartialup:WORD +EXTRN xpartialdown:WORD +EXTRN ypartialdown:WORD + +EXTRN tilehit:WORD +EXTRN pixx:WORD +EXTRN wallheight:WORD ; array of VIEWWIDTH entries + +EXTRN xtile:WORD +EXTRN ytile:WORD +EXTRN xtilestep:WORD +EXTRN ytilestep:WORD +EXTRN xintercept:DWORD +EXTRN yintercept:DWORD +EXTRN xstep:DWORD +EXTRN ystep:DWORD + +EXTRN doorposition:WORD ; table of door position values + + +EXTRN pwallpos:WORD ; amound a pushable wall has been moved + +CODESEG + +;------------------- +; +; xpartialbyystep +; +; multiplies long [ystep] (possibly negative), by word [xpartial] (in BX) +; +; returns dx:ax +; trashes bx,cx,di +; +;------------------- + +PROC xpartialbyystep NEAR +; +; setup +; + mov ax,[WORD ystep] + mov cx,[WORD ystep+2] + or cx,cx ; is ystep negatice? + jns @@multpos +; +; multiply negative cx:ax by bx +; + neg cx + neg ax + sbb cx,0 + + mul bx ; fraction*fraction + mov di,dx ; di is low word of result + mov ax,cx ; + mul bx ; units*fraction + add ax,di + adc dx,0 + + neg dx + neg ax + sbb dx,0 + ret +; +; multiply positive cx:ax by bx +; +EVEN +@@multpos: + mul bx ; fraction*fraction + mov di,dx ; di is low word of result + mov ax,cx ; + mul bx ; units*fraction + add ax,di + adc dx,0 + + ret + +ENDP + + + +;------------------- +; +; ypartialbyxstep +; +; multiplies long [xstep] (possibly negative), by word [ypartial] (in BP) +; +; returns dx:ax +; trashes cx,di,bp +; +;------------------- + +PROC ypartialbyxstep NEAR +; +; setup +; + mov ax,[WORD xstep] + mov cx,[WORD xstep+2] + or cx,cx ; is ystep negatice? + jns @@multpos +; +; multiply negative cx:ax by bx +; + neg cx + neg ax + sbb cx,0 + + mul bp ; fraction*fraction + mov di,dx ; di is low word of result + mov ax,cx ; + mul bp ; units*fraction + add ax,di + adc dx,0 + + neg dx + neg ax + sbb dx,0 + ret +; +; multiply positive cx:ax by bx +; +EVEN +@@multpos: + mul bp ; fraction*fraction + mov di,dx ; di is low word of result + mov ax,cx ; + mul bp ; units*fraction + add ax,di + adc dx,0 + ret + +ENDP + + +;============================ +; +; AsmRefresh +; +; +;============================ + +PROC AsmRefresh +PUBLIC AsmRefresh + + push si + push di + push bp + + mov [pixx],0 +;--------------------------------------------------------------------------- +; +; Setup to trace a ray through pixx view pixel +; +; CX : angle of the ray through pixx +; ES : points to segment of finetangent array for this block of code +; +; Upon entrance to initialize block +; +; BX : xpartial +; BP : ypartial +; +;--------------------------------------------------------------------------- + EVEN +pixxloop: + mov ax,SEG finetangent + mov es,ax + mov cx,[midangle] ; center of view area + mov bx,[pixx] + shl bx,1 + add cx,[pixelangle+bx] ; delta for this pixel + cmp cx,0 + jge not0 +;---------- +; +; -90 - -1 degree arc +; +;---------- + add cx,FINEANGLES ; -90 is the same as 270 + jmp entry360 + +not0: + cmp cx,DEG90 + jge not90 +;---------- +; +; 0-89 degree arc +; +;---------- +entry90: + mov [xtilestep],1 ; xtilestep = 1 + mov [ytilestep],-1 ; ytilestep = -1 + mov [BYTE cs:horizop],OP_JGE ; patch a jge in + mov [BYTE cs:vertop],OP_JLE ; patch a jle in + mov bx,DEG90-1 + sub bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx] + mov dx,[es:bx+2] + mov [WORD xstep],ax + mov [WORD xstep+2],dx ; xstep = finetangent[DEG90-1-angle] + mov bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx] + mov dx,[es:bx+2] + neg dx + neg ax + sbb dx,0 + mov [WORD ystep],ax + mov [WORD ystep+2],dx ; ystep = -finetangent[angle] + + mov bx,[xpartialup] ; xpartial = xpartialup + mov bp,[ypartialdown] ; ypartial = ypartialdown + jmp initvars + +not90: + cmp cx,DEG180 + jge not180 +;---------- +; +; 90-179 degree arc +; +;---------- + mov ax,-1 + mov [xtilestep],ax ; xtilestep = -1 + mov [ytilestep],ax ; ytilestep = -1 + mov [BYTE cs:horizop],OP_JLE ; patch a jle in + mov [BYTE cs:vertop],OP_JLE ; patch a jle in + + mov bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx-DEG90*4] + mov dx,[es:bx+2-DEG90*4] + neg dx + neg ax + sbb dx,0 + mov [WORD xstep],ax + mov [WORD xstep+2],dx ; xstep = -finetangent[angle-DEG90] + mov bx,DEG180-1 + sub bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx] + mov dx,[es:bx+2] + neg dx + neg ax + sbb dx,0 + mov [WORD ystep],ax + mov [WORD ystep+2],dx ; ystep = -finetangent[DEG180-1-angle] + + mov bx,[xpartialdown] ; xpartial = xpartialdown + mov bp,[ypartialdown] ; ypartial = ypartialdown + jmp initvars + +not180: + cmp cx,DEG270 + jge not270 +;---------- +; +; 180-269 degree arc +; +;---------- + mov [xtilestep],-1 ; xtilestep = -1 + mov [ytilestep],1 ; ytilestep = 1 + mov [BYTE cs:horizop],OP_JLE ; patch a jle in + mov [BYTE cs:vertop],OP_JGE ; patch a jge in + + mov bx,DEG270-1 + sub bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx] + mov dx,[es:bx+2] + neg dx + neg ax + sbb dx,0 + mov [WORD xstep],ax + mov [WORD xstep+2],dx ; xstep = -finetangent[DEG270-1-angle] + mov bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx-DEG180*4] + mov dx,[es:bx+2-DEG180*4] + mov [WORD ystep],ax + mov [WORD ystep+2],dx ; ystep = finetangent[angle-DEG180] + + mov bx,[xpartialdown] ; xpartial = xpartialdown + mov bp,[ypartialup] ; ypartial = ypartialup + jmp initvars + + +not270: + cmp cx,DEG360 + jge not360 +;---------- +; +; 270-359 degree arc +; +;---------- +entry360: + mov ax,1 + mov [xtilestep],ax ; xtilestep = 1 + mov [ytilestep],ax ; ytilestep = 1 + mov [BYTE cs:horizop],OP_JGE ; patch a jge in + mov [BYTE cs:vertop],OP_JGE ; patch a jge in + + mov bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx-DEG270*4] + mov dx,[es:bx+2-DEG270*4] + mov [WORD xstep],ax + mov [WORD xstep+2],dx ; xstep = finetangent[angle-DEG270] + mov bx,DEG360-1 + sub bx,cx + ;begin 8086 hack + ;shl bx,2 + shl bx,1 + shl bx,1 + ;end 8086 hack + mov ax,[es:bx] + mov dx,[es:bx+2] + mov [WORD ystep],ax + mov [WORD ystep+2],dx ; ystep = finetangent[DEG360-1-angle] + + mov bx,[xpartialup] ; xpartial = xpartialup + mov bp,[ypartialup] ; ypartial = ypartialup + jmp initvars + + +not360: +;---------- +; +; 360-449 degree arc +; +;---------- + sub cx,FINEANGLES ; -449 is the same as 89 + jmp entry90 + +;--------------------------------------------------------------------------- +; +; initialise variables for intersection testing +; +;--------------------------------------------------------------------------- +initvars: + call NEAR xpartialbyystep ; xpartial is in BX + add ax,[WORD viewy] + adc dx,[WORD viewy+2] + mov [WORD yintercept],ax + mov [WORD yintercept+2],dx + + mov si,[focaltx] + add si,[xtilestep] + mov [xtile],si ; xtile = focaltx+xtilestep + ;begin 8086 hack + ;shl si,6 + push cx + mov cl,6 + shl si,cl + pop cx + ;end 8086 hack + add si,dx ; xspot = (xtile<<6) + yinttile + + + call NEAR ypartialbyxstep ; ypartial is in BP + add ax,[WORD viewx] + adc dx,[WORD viewx+2] + mov [WORD xintercept],ax + mov cx,dx + + mov bx,[focalty] + add bx,[ytilestep] + mov bp,bx ; ytile = focalty+ytilestep + mov di,dx + ;begin 8086 hack + ;shl di,6 + push cx + mov cl,6 + shl di,cl + pop cx + ;end 8086 hack + add di,bx ; yspot = (xinttile<<6) + ytile + + mov bx,[xtile] + mov dx,[WORD yintercept+2] + mov ax,SCREENSEG + mov es,ax ; faster than mov es,[screenseg] + + +;--------------------------------------------------------------------------- +; +; trace along this angle until we hit a wall +; +; CORE LOOP! +; +; All variables are killed when a wall is hit +; +; AX : scratch +; BX : xtile +; CX : high word of xintercept +; DX : high word of yintercept +; SI : xspot (yinttile<<6)+xtile (index into tilemap and spotvis) +; DI : yspot (xinttile<<6)+ytile (index into tilemap and spotvis) +; BP : ytile +; ES : screenseg +; +;--------------------------------------------------------------------------- + +;----------- +; +; check intersections with vertical walls +; +;----------- + + EVEN +vertcheck: + cmp dx,bp +vertop: ; 0x7e = jle (ytilestep==-1) + jle horizentry ; 0x7d = jge (ytilestep==1) +vertentry: + test [BYTE tilemap+si],0ffh ; tilehit = *((byte *)tilemap+xspot); + jnz hitvert +passvert: + mov [BYTE spotvis+si],1 ; *((byte *)spotvis+xspot) = true; + add bx,[xtilestep] ; xtile+=xtilestep + mov ax,[WORD ystep] + add [WORD yintercept],ax ; yintercept += ystep + adc dx,[WORD ystep+2] + mov si,bx + ;begin 8086 hack + ;shl si,6 + push cx + mov cl,6 + shl si,cl + pop cx + ;end 8086 hack + add si,dx ; xspot = (xtile<<6)+yinttile + jmp vertcheck + + EVEN +hitvert: + mov al,[BYTE tilemap+si] ; tilehit = *((byte *)tilemap+xspot); + mov [BYTE tilehit],al + or al,al ; set flags + jns notvertdoor + jmp vertdoor +notvertdoor: + mov [WORD xintercept],0 + mov [WORD xintercept+2],bx + mov [xtile],bx + mov [WORD yintercept+2],dx + mov [ytile],dx + call FAR HitVertWall + jmp nextpix + + +;----------- +; +; check intersections with horizontal walls +; +;----------- + EVEN +horizcheck: + cmp cx,bx +horizop: ; 0x7e = jle (xtilestep==-1) + jle vertentry ; 0x7d = jge (xtilestep==1) +horizentry: + test [BYTE tilemap+di],0ffh ; tilehit = *((byte *)tilemap+yspot); + jnz hithoriz +passhoriz: + mov [BYTE spotvis+di],1 ; *((byte *)spotvis+yspot) = true; + add bp,[ytilestep] ; ytile+=ytilestep + mov ax,[WORD xstep] + add [WORD xintercept],ax ; xintercept += xstep + adc cx,[WORD xstep+2] + mov di,cx + ;begin 8086 hack + ;shl di,6 + push cx + mov cl,6 + shl di,cl + pop cx + ;end 8086 hack + add di,bp ; yspot = (xinttile<<6)+ytile + jmp horizcheck + + EVEN +hithoriz: + mov al,[BYTE tilemap+di] ; tilehit = *((byte *)tilemap+yspot); + mov [BYTE tilehit],al + or al,al ; set flags + js horizdoor + mov [WORD xintercept+2],cx + mov [xtile],cx + mov [WORD yintercept],0 + mov [WORD yintercept+2],bp + mov [ytile],bp + call FAR HitHorizWall + jmp nextpix + +;--------------------------------------------------------------------------- +; +; next pixel over +; +;--------------------------------------------------------------------------- + +nextpix: + mov ax,[pixx] + inc ax + mov [pixx],ax + cmp ax,[viewwidth] + jge done + jmp pixxloop +done: + pop bp + pop di + pop si + retf + +;=========================================================================== + +;============= +; +; hit a special horizontal wall, so find which coordinate a door would be +; intersected at, and check to see if the door is open past that point +; +;============= +horizdoor: + mov [xtile],bx ; save off live register variables + mov [WORD yintercept+2],dx + + test al,040h ; both high bits set == pushable wall + jnz horizpushwall + + mov bx,ax + and bx,7fh ; strip high bit + shl bx,1 ; index into word width door table + + mov ax,[WORD xstep] + mov dx,[WORD xstep+2] + sar dx,1 + rcr ax,1 ; half a step gets to door position + + add ax,[WORD xintercept] ; add half step to current intercept pos + adc dx,cx ; CX hold high word of xintercept + + cmp cx,dx ; is it still in the same tile? + je hithmid +; +; midpoint is outside tile, so it hit the side of the wall before a door +; +continuehoriz: + mov bx,[xtile] ; reload register variables + mov dx,[WORD yintercept+2] + jmp passhoriz ; continue tracing +; +; the trace hit the door plane at pixel position AX, see if the door is +; closed that much +; +hithmid: + cmp ax,[doorposition+bx] ; position of leading edge of door + jb continuehoriz +; +; draw the door +; + mov [WORD xintercept],ax ; save pixel intercept position + mov [WORD xintercept+2],cx + + mov [WORD yintercept],8000h ; intercept in middle of tile + mov [WORD yintercept+2],bp + + call FAR HitHorizDoor + jmp nextpix + +;============ +; +; hit a sliding horizontal wall +; +;============ + +horizpushwall: + mov ax,[WORD xstep+2] ; multiply xstep by pwallmove (0-63) + mul [pwallpos] + mov bx,ax + mov ax,[WORD xstep] + mul [pwallpos] + add dx,bx + + sar dx,1 ; then divide by 64 to accomplish a + rcr ax,1 ; fixed point multiplication + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + + add ax,[WORD xintercept] ; add partial step to current intercept + adc dx,cx ; CX hold high word of xintercept + + cmp cx,dx ; is it still in the same tile? + jne continuehoriz ; no, it hit the side + +; +; draw the pushable wall at the new height +; + mov [WORD xintercept],ax ; save pixel intercept position + mov [WORD xintercept+2],dx + + mov [WORD yintercept+2],bp + mov [WORD yintercept],0 + + call FAR HitHorizPWall + jmp nextpix + + + +;=========================================================================== + +;============= +; +; hit a special vertical wall, so find which coordinate a door would be +; intersected at, and check to see if the door is open past that point +; +;============= +vertdoor: + mov [xtile],bx ; save off live register variables + mov [WORD yintercept+2],dx + + test al,040h ; both high bits set == pushable wall + jnz vertpushwall + + mov bx,ax + and bx,7fh ; strip high bit + shl bx,1 ; index into word width doorposition + + mov ax,[WORD ystep] + mov dx,[WORD ystep+2] + sar dx,1 + rcr ax,1 ; half a step gets to door position + + add ax,[WORD yintercept] ; add half step to current intercept pos + adc dx,[WORD yintercept+2] + + cmp [WORD yintercept+2],dx ; is it still in the same tile? + je hitvmid +; +; midpoint is outside tile, so it hit the side of the wall before a door +; +continuevert: + mov bx,[xtile] ; reload register variables + mov dx,[WORD yintercept+2] + jmp passvert ; continue tracing +; +; the trace hit the door plane at pixel position AX, see if the door is +; closed that much +; +hitvmid: + cmp ax,[doorposition+bx] ; position of leading edge of door + jb continuevert +; +; draw the door +; + mov [WORD yintercept],ax ; save pixel intercept position + mov [WORD xintercept],8000h ; intercept in middle of tile + mov ax,[xtile] + mov [WORD xintercept+2],ax + + call FAR HitVertDoor + jmp nextpix + +;============ +; +; hit a sliding vertical wall +; +;============ + +vertpushwall: + mov ax,[WORD ystep+2] ; multiply ystep by pwallmove (0-63) + mul [pwallpos] + mov bx,ax + mov ax,[WORD ystep] + mul [pwallpos] + add dx,bx + + sar dx,1 ; then divide by 64 to accomplish a + rcr ax,1 ; fixed point multiplication + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + sar dx,1 + rcr ax,1 + + add ax,[WORD yintercept] ; add partial step to current intercept + adc dx,[WORD yintercept+2] + + cmp [WORD yintercept+2],dx ; is it still in the same tile? + jne continuevert ; no, it hit the side + +; +; draw the pushable wall at the new height +; + mov [WORD yintercept],ax ; save pixel intercept position + mov [WORD yintercept+2],dx + + mov bx,[xtile] + mov [WORD xintercept+2],bx + mov [WORD xintercept],0 + + call FAR HitVertPWall + jmp nextpix + + + +ENDP + + +END + + diff --git a/16/wf3d8086/wl_draw.c b/16/wf3d8086/wl_draw.c new file mode 100755 index 00000000..3c32e39e --- /dev/null +++ b/16/wf3d8086/wl_draw.c @@ -0,0 +1,1419 @@ +// WL_DRAW.C + +#include "WL_DEF.H" +#include +#pragma hdrstop + +//#define DEBUGWALLS +//#define DEBUGTICS + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + +// the door is the last picture before the sprites +#define DOORWALL (PMSpriteStart-8) + +#define ACTORSIZE 0x4000 + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + + +#ifdef DEBUGWALLS +unsigned screenloc[3]= {0,0,0}; +#else +unsigned screenloc[3]= {PAGE1START,PAGE2START,PAGE3START}; +#endif +unsigned freelatch = FREESTART; + +long lasttimecount; +long frameon; + +unsigned wallheight[MAXVIEWWIDTH]; + +fixed tileglobal = TILEGLOBAL; +fixed mindist = MINDIST; + + +// +// math tables +// +int pixelangle[MAXVIEWWIDTH]; +long far finetangent[FINEANGLES/4]; +fixed far sintable[ANGLES+ANGLES/4],far *costable = sintable+(ANGLES/4); + +// +// refresh variables +// +fixed viewx,viewy; // the focal point +int viewangle; +fixed viewsin,viewcos; + + + +fixed FixedByFrac (fixed a, fixed b); +void TransformActor (objtype *ob); +void BuildTables (void); +void ClearScreen (void); +int CalcRotate (objtype *ob); +void DrawScaleds (void); +void CalcTics (void); +void FixOfs (void); +void ThreeDRefresh (void); + + + +// +// wall optimization variables +// +int lastside; // true for vertical +long lastintercept; +int lasttilehit; + + +// +// ray tracing variables +// +int focaltx,focalty,viewtx,viewty; + +int midangle,angle; +unsigned xpartial,ypartial; +unsigned xpartialup,xpartialdown,ypartialup,ypartialdown; +unsigned xinttile,yinttile; + +unsigned tilehit; +unsigned pixx; + +int xtile,ytile; +int xtilestep,ytilestep; +long xintercept,yintercept; +long xstep,ystep; + +int horizwall[MAXWALLTILES],vertwall[MAXWALLTILES]; + + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + +void AsmRefresh (void); // in WL_DR_A.ASM + +/* +============================================================================ + + 3 - D DEFINITIONS + +============================================================================ +*/ + + +//========================================================================== + + +/* +======================== += += FixedByFrac += += multiply a 16/16 bit, 2's complement fixed point number by a 16 bit += fraction, passed as a signed magnitude 32 bit number += +======================== +*/ + +#pragma warn -rvl // I stick the return value in with ASMs + +fixed FixedByFrac (fixed a, fixed b) +{ +// +// setup +// +asm mov si,[WORD PTR b+2] // sign of result = sign of fraction + +asm mov ax,[WORD PTR a] +asm mov cx,[WORD PTR a+2] + +asm or cx,cx +asm jns aok: // negative? +asm neg cx +asm neg ax +asm sbb cx,0 +asm xor si,0x8000 // toggle sign of result +aok: + +// +// multiply cx:ax by bx +// +asm mov bx,[WORD PTR b] +asm mul bx // fraction*fraction +asm mov di,dx // di is low word of result +asm mov ax,cx // +asm mul bx // units*fraction +asm add ax,di +asm adc dx,0 + +// +// put result dx:ax in 2's complement +// +asm test si,0x8000 // is the result negative? +asm jz ansok: +asm neg dx +asm neg ax +asm sbb dx,0 + +ansok:; + +} + +#pragma warn +rvl + +//========================================================================== + +/* +======================== += += TransformActor += += Takes paramaters: += gx,gy : globalx/globaly of point += += globals: += viewx,viewy : point of view += viewcos,viewsin : sin/cos of viewangle += scale : conversion from global value to screen value += += sets: += screenx,transx,transy,screenheight: projected edge location and size += +======================== +*/ + + +// +// transform actor +// +void TransformActor (objtype *ob) +{ + int ratio; + fixed gx,gy,gxt,gyt,nx,ny; + long temp; + +// +// translate point to view centered coordinates +// + gx = ob->x-viewx; + gy = ob->y-viewy; + +// +// calculate newx +// + gxt = FixedByFrac(gx,viewcos); + gyt = FixedByFrac(gy,viewsin); + nx = gxt-gyt-ACTORSIZE; // fudge the shape forward a bit, because + // the midpoint could put parts of the shape + // into an adjacent wall + +// +// calculate newy +// + gxt = FixedByFrac(gx,viewsin); + gyt = FixedByFrac(gy,viewcos); + ny = gyt+gxt; + +// +// calculate perspective ratio +// + ob->transx = nx; + ob->transy = ny; + + if (nxviewheight = 0; + return; + } + + ob->viewx = centerx + ny*scale/nx; // DEBUG: use assembly divide + +// +// calculate height (heightnumerator/(nx>>8)) +// + asm mov ax,[WORD PTR heightnumerator] + asm mov dx,[WORD PTR heightnumerator+2] + asm idiv [WORD PTR nx+1] // nx>>8 + asm mov [WORD PTR temp],ax + asm mov [WORD PTR temp+2],dx + + ob->viewheight = temp; +} + +//========================================================================== + +/* +======================== += += TransformTile += += Takes paramaters: += tx,ty : tile the object is centered in += += globals: += viewx,viewy : point of view += viewcos,viewsin : sin/cos of viewangle += scale : conversion from global value to screen value += += sets: += screenx,transx,transy,screenheight: projected edge location and size += += Returns true if the tile is withing getting distance += +======================== +*/ + +boolean TransformTile (int tx, int ty, int *dispx, int *dispheight) +{ + int ratio; + fixed gx,gy,gxt,gyt,nx,ny; + long temp; + +// +// translate point to view centered coordinates +// + gx = ((long)tx<>8)) +// + asm mov ax,[WORD PTR heightnumerator] + asm mov dx,[WORD PTR heightnumerator+2] + asm idiv [WORD PTR nx+1] // nx>>8 + asm mov [WORD PTR temp],ax + asm mov [WORD PTR temp+2],dx + + *dispheight = temp; + +// +// see if it should be grabbed +// + if (nx-TILEGLOBAL/2 && ny>8)) + // + if (nx>8 +} + + +//========================================================================== + +/* +=================== += += ScalePost += +=================== +*/ + +long postsource; +unsigned postx; +unsigned postwidth; + +void near ScalePost (void) // VGA version +{ + asm mov ax,SCREENSEG + asm mov es,ax + + asm mov bx,[postx] + asm shl bx,1 + asm mov bp,WORD PTR [wallheight+bx] // fractional height (low 3 bits frac) + asm and bp,0xfff8 // bp = heightscaler*4 + asm shr bp,1 + asm cmp bp,[maxscaleshl2] + asm jle heightok + asm mov bp,[maxscaleshl2] +heightok: + asm add bp,OFFSET fullscalefarcall + // + // scale a byte wide strip of wall + // + asm mov bx,[postx] + asm mov di,bx + asm shr di,1 // X in bytes + asm shr di,1 + asm add di,[bufferofs] + + asm and bx,3 + /* begin 8086 hack + asm shl bx,3 + */ + asm push cx + asm mov cl,3 + asm shl bx,cl + asm pop cx + /* end 8086 hack */ + asm add bx,[postwidth] + + asm mov al,BYTE PTR [mapmasks1-1+bx] // -1 because no widths of 0 + asm mov dx,SC_INDEX+1 + asm out dx,al // set bit mask register + asm lds si,DWORD PTR [postsource] + asm call DWORD PTR [bp] // scale the line of pixels + + asm mov al,BYTE PTR [ss:mapmasks2-1+bx] // -1 because no widths of 0 + asm or al,al + asm jz nomore + + // + // draw a second byte for vertical strips that cross two bytes + // + asm inc di + asm out dx,al // set bit mask register + asm call DWORD PTR [bp] // scale the line of pixels + + asm mov al,BYTE PTR [ss:mapmasks3-1+bx] // -1 because no widths of 0 + asm or al,al + asm jz nomore + // + // draw a third byte for vertical strips that cross three bytes + // + asm inc di + asm out dx,al // set bit mask register + asm call DWORD PTR [bp] // scale the line of pixels + + +nomore: + asm mov ax,ss + asm mov ds,ax +} + +void FarScalePost (void) // just so other files can call +{ + ScalePost (); +} + + +/* +==================== += += HitVertWall += += tilehit bit 7 is 0, because it's not a door tile += if bit 6 is 1 and the adjacent tile is a door tile, use door side pic += +==================== +*/ + +void HitVertWall (void) +{ + int wallpic; + unsigned texture; + + texture = (yintercept>>4)&0xfc0; + if (xtilestep == -1) + { + texture = 0xfc0-texture; + xintercept += TILEGLOBAL; + } + wallheight[pixx] = CalcHeight(); + + if (lastside==1 && lastintercept == xtile && lasttilehit == tilehit) + { + // in the same wall type as last time, so check for optimized draw + if (texture == (unsigned)postsource) + { + // wide scale + postwidth++; + wallheight[pixx] = wallheight[pixx-1]; + return; + } + else + { + ScalePost (); + (unsigned)postsource = texture; + postwidth = 1; + postx = pixx; + } + } + else + { + // new wall + if (lastside != -1) // if not the first scaled post + ScalePost (); + + lastside = true; + lastintercept = xtile; + + lasttilehit = tilehit; + postx = pixx; + postwidth = 1; + + if (tilehit & 0x40) + { // check for adjacent doors + ytile = yintercept>>TILESHIFT; + if ( tilemap[xtile-xtilestep][ytile]&0x80 ) + wallpic = DOORWALL+3; + else + wallpic = vertwall[tilehit & ~0x40]; + } + else + wallpic = vertwall[tilehit]; + + *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); + (unsigned)postsource = texture; + + } +} + + +/* +==================== += += HitHorizWall += += tilehit bit 7 is 0, because it's not a door tile += if bit 6 is 1 and the adjacent tile is a door tile, use door side pic += +==================== +*/ + +void HitHorizWall (void) +{ + int wallpic; + unsigned texture; + + texture = (xintercept>>4)&0xfc0; + if (ytilestep == -1) + yintercept += TILEGLOBAL; + else + texture = 0xfc0-texture; + wallheight[pixx] = CalcHeight(); + + if (lastside==0 && lastintercept == ytile && lasttilehit == tilehit) + { + // in the same wall type as last time, so check for optimized draw + if (texture == (unsigned)postsource) + { + // wide scale + postwidth++; + wallheight[pixx] = wallheight[pixx-1]; + return; + } + else + { + ScalePost (); + (unsigned)postsource = texture; + postwidth = 1; + postx = pixx; + } + } + else + { + // new wall + if (lastside != -1) // if not the first scaled post + ScalePost (); + + lastside = 0; + lastintercept = ytile; + + lasttilehit = tilehit; + postx = pixx; + postwidth = 1; + + if (tilehit & 0x40) + { // check for adjacent doors + xtile = xintercept>>TILESHIFT; + if ( tilemap[xtile][ytile-ytilestep]&0x80 ) + wallpic = DOORWALL+2; + else + wallpic = horizwall[tilehit & ~0x40]; + } + else + wallpic = horizwall[tilehit]; + + *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); + (unsigned)postsource = texture; + } + +} + +//========================================================================== + +/* +==================== += += HitHorizDoor += +==================== +*/ + +void HitHorizDoor (void) +{ + unsigned texture,doorpage,doornum; + + doornum = tilehit&0x7f; + texture = ( (xintercept-doorposition[doornum]) >> 4) &0xfc0; + + wallheight[pixx] = CalcHeight(); + + if (lasttilehit == tilehit) + { + // in the same door as last time, so check for optimized draw + if (texture == (unsigned)postsource) + { + // wide scale + postwidth++; + wallheight[pixx] = wallheight[pixx-1]; + return; + } + else + { + ScalePost (); + (unsigned)postsource = texture; + postwidth = 1; + postx = pixx; + } + } + else + { + if (lastside != -1) // if not the first scaled post + ScalePost (); // draw last post + // first pixel in this door + lastside = 2; + lasttilehit = tilehit; + postx = pixx; + postwidth = 1; + + switch (doorobjlist[doornum].lock) + { + case dr_normal: + doorpage = DOORWALL; + break; + case dr_lock1: + case dr_lock2: + case dr_lock3: + case dr_lock4: + doorpage = DOORWALL+6; + break; + case dr_elevator: + doorpage = DOORWALL+4; + break; + } + + *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(doorpage); + (unsigned)postsource = texture; + } +} + +//========================================================================== + +/* +==================== += += HitVertDoor += +==================== +*/ + +void HitVertDoor (void) +{ + unsigned texture,doorpage,doornum; + + doornum = tilehit&0x7f; + texture = ( (yintercept-doorposition[doornum]) >> 4) &0xfc0; + + wallheight[pixx] = CalcHeight(); + + if (lasttilehit == tilehit) + { + // in the same door as last time, so check for optimized draw + if (texture == (unsigned)postsource) + { + // wide scale + postwidth++; + wallheight[pixx] = wallheight[pixx-1]; + return; + } + else + { + ScalePost (); + (unsigned)postsource = texture; + postwidth = 1; + postx = pixx; + } + } + else + { + if (lastside != -1) // if not the first scaled post + ScalePost (); // draw last post + // first pixel in this door + lastside = 2; + lasttilehit = tilehit; + postx = pixx; + postwidth = 1; + + switch (doorobjlist[doornum].lock) + { + case dr_normal: + doorpage = DOORWALL; + break; + case dr_lock1: + case dr_lock2: + case dr_lock3: + case dr_lock4: + doorpage = DOORWALL+6; + break; + case dr_elevator: + doorpage = DOORWALL+4; + break; + } + + *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(doorpage+1); + (unsigned)postsource = texture; + } +} + +//========================================================================== + + +/* +==================== += += HitHorizPWall += += A pushable wall in action has been hit += +==================== +*/ + +void HitHorizPWall (void) +{ + int wallpic; + unsigned texture,offset; + + texture = (xintercept>>4)&0xfc0; + offset = pwallpos<<10; + if (ytilestep == -1) + yintercept += TILEGLOBAL-offset; + else + { + texture = 0xfc0-texture; + yintercept += offset; + } + + wallheight[pixx] = CalcHeight(); + + if (lasttilehit == tilehit) + { + // in the same wall type as last time, so check for optimized draw + if (texture == (unsigned)postsource) + { + // wide scale + postwidth++; + wallheight[pixx] = wallheight[pixx-1]; + return; + } + else + { + ScalePost (); + (unsigned)postsource = texture; + postwidth = 1; + postx = pixx; + } + } + else + { + // new wall + if (lastside != -1) // if not the first scaled post + ScalePost (); + + lasttilehit = tilehit; + postx = pixx; + postwidth = 1; + + wallpic = horizwall[tilehit&63]; + + *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); + (unsigned)postsource = texture; + } + +} + + +/* +==================== += += HitVertPWall += += A pushable wall in action has been hit += +==================== +*/ + +void HitVertPWall (void) +{ + int wallpic; + unsigned texture,offset; + + texture = (yintercept>>4)&0xfc0; + offset = pwallpos<<10; + if (xtilestep == -1) + { + xintercept += TILEGLOBAL-offset; + texture = 0xfc0-texture; + } + else + xintercept += offset; + + wallheight[pixx] = CalcHeight(); + + if (lasttilehit == tilehit) + { + // in the same wall type as last time, so check for optimized draw + if (texture == (unsigned)postsource) + { + // wide scale + postwidth++; + wallheight[pixx] = wallheight[pixx-1]; + return; + } + else + { + ScalePost (); + (unsigned)postsource = texture; + postwidth = 1; + postx = pixx; + } + } + else + { + // new wall + if (lastside != -1) // if not the first scaled post + ScalePost (); + + lasttilehit = tilehit; + postx = pixx; + postwidth = 1; + + wallpic = vertwall[tilehit&63]; + + *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); + (unsigned)postsource = texture; + } + +} + +//========================================================================== + +//========================================================================== + +#if 0 +/* +===================== += += ClearScreen += +===================== +*/ + +void ClearScreen (void) +{ + unsigned floor=egaFloor[gamestate.episode*10+mapon], + ceiling=egaCeiling[gamestate.episode*10+mapon]; + + // + // clear the screen + // +asm mov dx,GC_INDEX +asm mov ax,GC_MODE + 256*2 // read mode 0, write mode 2 +asm out dx,ax +asm mov ax,GC_BITMASK + 255*256 +asm out dx,ax + +asm mov dx,40 +asm mov ax,[viewwidth] +asm shr ax,1 +asm shr ax,1 +asm shr ax,1 +asm sub dx,ax // dx = 40-viewwidth/8 + +asm mov bx,[viewwidth] +asm shr bx,1 // bl = viewwidth/16 +asm shr bx,1 +asm shr bx,1 +asm shr bx,1 +asm mov bh,BYTE PTR [viewheight] +asm shr bh,1 // half height + +asm mov ax,[ceiling] +asm mov es,[screenseg] +asm mov di,[bufferofs] + +toploop: +asm mov cl,bl +asm rep stosw +asm add di,dx +asm dec bh +asm jnz toploop + +asm mov bh,BYTE PTR [viewheight] +asm shr bh,1 // half height +asm mov ax,[floor] + +bottomloop: +asm mov cl,bl +asm rep stosw +asm add di,dx +asm dec bh +asm jnz bottomloop + + +asm mov dx,GC_INDEX +asm mov ax,GC_MODE + 256*10 // read mode 1, write mode 2 +asm out dx,ax +asm mov al,GC_BITMASK +asm out dx,al + +} +#endif +//========================================================================== + +unsigned vgaCeiling[]= +{ +#ifndef SPEAR + 0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x1d1d,0xbfbf, + 0x4e4e,0x4e4e,0x4e4e,0x1d1d,0x8d8d,0x4e4e,0x1d1d,0x2d2d,0x1d1d,0x8d8d, + 0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x1d1d,0x2d2d,0xdddd,0x1d1d,0x1d1d,0x9898, + + 0x1d1d,0x9d9d,0x2d2d,0xdddd,0xdddd,0x9d9d,0x2d2d,0x4d4d,0x1d1d,0xdddd, + 0x7d7d,0x1d1d,0x2d2d,0x2d2d,0xdddd,0xd7d7,0x1d1d,0x1d1d,0x1d1d,0x2d2d, + 0x1d1d,0x1d1d,0x1d1d,0x1d1d,0xdddd,0xdddd,0x7d7d,0xdddd,0xdddd,0xdddd +#else + 0x6f6f,0x4f4f,0x1d1d,0xdede,0xdfdf,0x2e2e,0x7f7f,0x9e9e,0xaeae,0x7f7f, + 0x1d1d,0xdede,0xdfdf,0xdede,0xdfdf,0xdede,0xe1e1,0xdcdc,0x2e2e,0x1d1d,0xdcdc +#endif +}; + +/* +===================== += += VGAClearScreen += +===================== +*/ + +void VGAClearScreen (void) +{ + unsigned ceiling=vgaCeiling[gamestate.episode*10+mapon]; + + // + // clear the screen + // +asm mov dx,SC_INDEX +asm mov ax,SC_MAPMASK+15*256 // write through all planes +asm out dx,ax + +asm mov dx,80 +asm mov ax,[viewwidth] +asm shr ax,1 +asm shr ax,1 +asm sub dx,ax // dx = 40-viewwidth/2 + +asm mov bx,[viewwidth] +asm shr bx,1 // bl = viewwidth/8 +asm shr bx,1 +asm shr bx,1 +asm mov bh,BYTE PTR [viewheight] +asm shr bh,1 // half height + +asm mov es,[screenseg] +asm mov di,[bufferofs] +asm mov ax,[ceiling] + +toploop: +asm mov cl,bl +asm rep stosw +asm add di,dx +asm dec bh +asm jnz toploop + +asm mov bh,BYTE PTR [viewheight] +asm shr bh,1 // half height +asm mov ax,0x1919 + +bottomloop: +asm mov cl,bl +asm rep stosw +asm add di,dx +asm dec bh +asm jnz bottomloop +} + +//========================================================================== + +/* +===================== += += CalcRotate += +===================== +*/ + +int CalcRotate (objtype *ob) +{ + int angle,viewangle; + + // this isn't exactly correct, as it should vary by a trig value, + // but it is close enough with only eight rotations + + viewangle = player->angle + (centerx - ob->viewx)/8; + + if (ob->obclass == rocketobj || ob->obclass == hrocketobj) + angle = (viewangle-180)- ob->angle; + else + angle = (viewangle-180)- dirangle[ob->dir]; + + angle+=ANGLES/16; + while (angle>=ANGLES) + angle-=ANGLES; + while (angle<0) + angle+=ANGLES; + + if (ob->state->rotate == 2) // 2 rotation pain frame + return 4*(angle/(ANGLES/2)); // seperated by 3 (art layout...) + + return angle/(ANGLES/8); +} + + +/* +===================== += += DrawScaleds += += Draws all objects that are visable += +===================== +*/ + +#define MAXVISABLE 50 + +typedef struct +{ + int viewx, + viewheight, + shapenum; +} visobj_t; + +visobj_t vislist[MAXVISABLE],*visptr,*visstep,*farthest; + +void DrawScaleds (void) +{ + int i,j,least,numvisable,height; + memptr shape; + byte *tilespot,*visspot; + int shapenum; + unsigned spotloc; + + statobj_t *statptr; + objtype *obj; + + visptr = &vislist[0]; + +// +// place static objects +// + for (statptr = &statobjlist[0] ; statptr !=laststatobj ; statptr++) + { + if ((visptr->shapenum = statptr->shapenum) == -1) + continue; // object has been deleted + + if (!*statptr->visspot) + continue; // not visable + + if (TransformTile (statptr->tilex,statptr->tiley + ,&visptr->viewx,&visptr->viewheight) && statptr->flags & FL_BONUS) + { + GetBonus (statptr); + continue; + } + + if (!visptr->viewheight) + continue; // to close to the object + + if (visptr < &vislist[MAXVISABLE-1]) // don't let it overflow + visptr++; + } + +// +// place active objects +// + for (obj = player->next;obj;obj=obj->next) + { + if (!(visptr->shapenum = obj->state->shapenum)) + continue; // no shape + + spotloc = (obj->tilex<<6)+obj->tiley; // optimize: keep in struct? + visspot = &spotvis[0][0]+spotloc; + tilespot = &tilemap[0][0]+spotloc; + + // + // could be in any of the nine surrounding tiles + // + if (*visspot + || ( *(visspot-1) && !*(tilespot-1) ) + || ( *(visspot+1) && !*(tilespot+1) ) + || ( *(visspot-65) && !*(tilespot-65) ) + || ( *(visspot-64) && !*(tilespot-64) ) + || ( *(visspot-63) && !*(tilespot-63) ) + || ( *(visspot+65) && !*(tilespot+65) ) + || ( *(visspot+64) && !*(tilespot+64) ) + || ( *(visspot+63) && !*(tilespot+63) ) ) + { + obj->active = true; + TransformActor (obj); + if (!obj->viewheight) + continue; // too close or far away + + visptr->viewx = obj->viewx; + visptr->viewheight = obj->viewheight; + if (visptr->shapenum == -1) + visptr->shapenum = obj->temp1; // special shape + + if (obj->state->rotate) + visptr->shapenum += CalcRotate (obj); + + if (visptr < &vislist[MAXVISABLE-1]) // don't let it overflow + visptr++; + obj->flags |= FL_VISABLE; + } + else + obj->flags &= ~FL_VISABLE; + } + +// +// draw from back to front +// + numvisable = visptr-&vislist[0]; + + if (!numvisable) + return; // no visable objects + + for (i = 0; iviewheight; + if (height < least) + { + least = height; + farthest = visstep; + } + } + // + // draw farthest + // + ScaleShape(farthest->viewx,farthest->shapenum,farthest->viewheight); + + farthest->viewheight = 32000; + } + +} + +//========================================================================== + +/* +============== += += DrawPlayerWeapon += += Draw the player's hands += +============== +*/ + +int weaponscale[NUMWEAPONS] = {SPR_KNIFEREADY,SPR_PISTOLREADY + ,SPR_MACHINEGUNREADY,SPR_CHAINREADY}; + +void DrawPlayerWeapon (void) +{ + int shapenum; + +#ifndef SPEAR + if (gamestate.victoryflag) + { + if (player->state == &s_deathcam && (TimeCount&32) ) + SimpleScaleShape(viewwidth/2,SPR_DEATHCAM,viewheight+1); + return; + } +#endif + + if (gamestate.weapon != -1) + { + shapenum = weaponscale[gamestate.weapon]+gamestate.weaponframe; + SimpleScaleShape(viewwidth/2,shapenum,viewheight+1); + } + + if (demorecord || demoplayback) + SimpleScaleShape(viewwidth/2,SPR_DEMO,viewheight+1); +} + + +//========================================================================== + + +/* +===================== += += CalcTics += +===================== +*/ + +void CalcTics (void) +{ + long newtime,oldtimecount; + +// +// calculate tics since last refresh for adaptive timing +// + if (lasttimecount > TimeCount) + TimeCount = lasttimecount; // if the game was paused a LONG time + + do + { + newtime = TimeCount; + tics = newtime-lasttimecount; + } while (!tics); // make sure at least one tic passes + + lasttimecount = newtime; + +#ifdef FILEPROFILE + strcpy (scratch,"\tTics:"); + itoa (tics,str,10); + strcat (scratch,str); + strcat (scratch,"\n"); + write (profilehandle,scratch,strlen(scratch)); +#endif + + if (tics>MAXTICS) + { + TimeCount -= (tics-MAXTICS); + tics = MAXTICS; + } +} + + +//========================================================================== + + +/* +======================== += += FixOfs += +======================== +*/ + +void FixOfs (void) +{ + VW_ScreenToScreen (displayofs,bufferofs,viewwidth/8,viewheight); +} + + +//========================================================================== + + +/* +==================== += += WallRefresh += +==================== +*/ + +void WallRefresh (void) +{ +// +// set up variables for this view +// + viewangle = player->angle; + midangle = viewangle*(FINEANGLES/ANGLES); + viewsin = sintable[viewangle]; + viewcos = costable[viewangle]; + viewx = player->x - FixedByFrac(focallength,viewcos); + viewy = player->y + FixedByFrac(focallength,viewsin); + + focaltx = viewx>>TILESHIFT; + focalty = viewy>>TILESHIFT; + + viewtx = player->x >> TILESHIFT; + viewty = player->y >> TILESHIFT; + + xpartialdown = viewx&(TILEGLOBAL-1); + xpartialup = TILEGLOBAL-xpartialdown; + ypartialdown = viewy&(TILEGLOBAL-1); + ypartialup = TILEGLOBAL-ypartialdown; + + lastside = -1; // the first pixel is on a new wall + AsmRefresh (); + ScalePost (); // no more optimization on last post +} + +//========================================================================== + +/* +======================== += += ThreeDRefresh += +======================== +*/ + +void ThreeDRefresh (void) +{ + int tracedir; + +// this wouldn't need to be done except for my debugger/video wierdness + outportb (SC_INDEX,SC_MAPMASK); + +// +// clear out the traced array +// +asm mov ax,ds +asm mov es,ax +asm mov di,OFFSET spotvis +asm xor ax,ax +asm mov cx,2048 // 64*64 / 2 +asm rep stosw + + bufferofs += screenofs; + +// +// follow the walls from there to the right, drawwing as we go +// + VGAClearScreen (); + + WallRefresh (); + +// +// draw all the scaled images +// + DrawScaleds(); // draw scaled stuff + DrawPlayerWeapon (); // draw player's hands + +// +// show screen and time last cycle +// + if (fizzlein) + { + FizzleFade(bufferofs,displayofs+screenofs,viewwidth,viewheight,20,false); + fizzlein = false; + + lasttimecount = TimeCount = 0; // don't make a big tic count + + } + + bufferofs -= screenofs; + displayofs = bufferofs; + + asm cli + asm mov cx,[displayofs] + asm mov dx,3d4h // CRTC address register + asm mov al,0ch // start address high register + asm out dx,al + asm inc dx + asm mov al,ch + asm out dx,al // set the high byte + asm sti + + bufferofs += SCREENSIZE; + if (bufferofs > PAGE3START) + bufferofs = PAGE1START; + + frameon++; + PM_NextFrame(); +} + + +//=========================================================================== + diff --git a/16/wf3d8086/wl_game.c b/16/wf3d8086/wl_game.c new file mode 100755 index 00000000..9f63d9fe --- /dev/null +++ b/16/wf3d8086/wl_game.c @@ -0,0 +1,1484 @@ +// WL_GAME.C + +#include "WL_DEF.H" +#pragma hdrstop + +#ifdef MYPROFILE +#include +#endif + + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + +boolean ingame,fizzlein; +unsigned latchpics[NUMLATCHPICS]; +gametype gamestate; + +long spearx,speary; +unsigned spearangle; +boolean spearflag; + +// +// ELEVATOR BACK MAPS - REMEMBER (-1)!! +// +int ElevatorBackTo[]={1,1,7,3,5,3}; + +void ScanInfoPlane (void); +void SetupGameLevel (void); +void DrawPlayScreen (void); +void LoadLatchMem (void); +void GameLoop (void); + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + + +//=========================================================================== +//=========================================================================== + + +/* +========================== += += SetSoundLoc - Given the location of an object (in terms of global += coordinates, held in globalsoundx and globalsoundy), munges the values += for an approximate distance from the left and right ear, and puts += those values into leftchannel and rightchannel. += += JAB += +========================== +*/ + + fixed globalsoundx,globalsoundy; + int leftchannel,rightchannel; +#define ATABLEMAX 15 +byte righttable[ATABLEMAX][ATABLEMAX * 2] = { +{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 6, 0, 0, 0, 0, 0, 1, 3, 5, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 6, 4, 0, 0, 0, 0, 0, 2, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 6, 4, 1, 0, 0, 0, 1, 2, 4, 6, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 6, 5, 4, 2, 1, 0, 1, 2, 3, 5, 7, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 5, 4, 3, 2, 2, 3, 3, 5, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 4, 4, 4, 4, 5, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 5, 5, 5, 6, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8} +}; +byte lefttable[ATABLEMAX][ATABLEMAX * 2] = { +{ 8, 8, 8, 8, 8, 8, 8, 8, 5, 3, 1, 0, 0, 0, 0, 0, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 2, 0, 0, 0, 0, 0, 4, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 6, 4, 2, 1, 0, 0, 0, 1, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 7, 5, 3, 2, 1, 0, 1, 2, 4, 5, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 6, 5, 3, 3, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 5, 4, 4, 4, 4, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 6, 6, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, +{ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8} +}; + +void +SetSoundLoc(fixed gx,fixed gy) +{ + fixed xt,yt; + int x,y; + +// +// translate point to view centered coordinates +// + gx -= viewx; + gy -= viewy; + +// +// calculate newx +// + xt = FixedByFrac(gx,viewcos); + yt = FixedByFrac(gy,viewsin); + x = (xt - yt) >> TILESHIFT; + +// +// calculate newy +// + xt = FixedByFrac(gx,viewsin); + yt = FixedByFrac(gy,viewcos); + y = (yt + xt) >> TILESHIFT; + + if (y >= ATABLEMAX) + y = ATABLEMAX - 1; + else if (y <= -ATABLEMAX) + y = -ATABLEMAX; + if (x < 0) + x = -x; + if (x >= ATABLEMAX) + x = ATABLEMAX - 1; + leftchannel = lefttable[x][y + ATABLEMAX]; + rightchannel = righttable[x][y + ATABLEMAX]; + +#if 0 + CenterWindow(8,1); + US_PrintSigned(leftchannel); + US_Print(","); + US_PrintSigned(rightchannel); + VW_UpdateScreen(); +#endif +} + +/* +========================== += += SetSoundLocGlobal - Sets up globalsoundx & globalsoundy and then calls += UpdateSoundLoc() to transform that into relative channel volumes. Those += values are then passed to the Sound Manager so that they'll be used for += the next sound played (if possible). += += JAB += +========================== +*/ +void PlaySoundLocGlobal(word s,fixed gx,fixed gy) +{ + SetSoundLoc(gx,gy); + SD_PositionSound(leftchannel,rightchannel); + if (SD_PlaySound(s)) + { + globalsoundx = gx; + globalsoundy = gy; + } +} + +void UpdateSoundLoc(void) +{ + if (SoundPositioned) + { + SetSoundLoc(globalsoundx,globalsoundy); + SD_SetPosition(leftchannel,rightchannel); + } +} + +/* +** JAB End +*/ + + +/* +========================== += += ClearMemory += +========================== +*/ + +void ClearMemory (void) +{ + PM_UnlockMainMem(); + SD_StopDigitized(); + MM_SortMem (); +} + + +/* +========================== += += ScanInfoPlane += += Spawn all actors and mark down special places += +========================== +*/ + +void ScanInfoPlane (void) +{ + unsigned x,y,i,j; + int tile; + unsigned far *start; + + start = mapsegs[1]; + for (y=0;ywidth; + mapheight = mapheaderseg[mapon]->height; + + if (mapwidth != 64 || mapheight != 64) + Quit ("Map not 64*64!"); + + +// +// copy the wall data to a data segment array +// + memset (tilemap,0,sizeof(tilemap)); + memset (actorat,0,sizeof(actorat)); + map = mapsegs[0]; + for (y=0;y= 90 && tile <= 101) + { + // door + switch (tile) + { + case 90: + case 92: + case 94: + case 96: + case 98: + case 100: + SpawnDoor (x,y,1,(tile-90)/2); + break; + case 91: + case 93: + case 95: + case 97: + case 99: + case 101: + SpawnDoor (x,y,0,(tile-91)/2); + break; + } + } + } + +// +// spawn actors +// + ScanInfoPlane (); + +// +// take out the ambush markers +// + map = mapsegs[0]; + for (y=0;y= AREATILE) + tile = *map; + if (*(map-1-mapwidth) >= AREATILE) + tile = *(map-1-mapwidth); + if (*(map-1+mapwidth) >= AREATILE) + tile = *(map-1+mapwidth); + if ( *(map-2) >= AREATILE) + tile = *(map-2); + + *(map-1) = tile; + } + } + + + +// +// have the caching manager load and purge stuff to make sure all marks +// are in memory +// + CA_LoadAllSounds (); + +} + + +//========================================================================== + + +/* +=================== += += DrawPlayBorderSides += += To fix window overwrites += +=================== +*/ + +void DrawPlayBorderSides (void) +{ + int xl,yl; + + xl = 160-viewwidth/2; + yl = (200-STATUSLINES-viewheight)/2; + + VWB_Bar (0,0,xl-1,200-STATUSLINES,127); + VWB_Bar (xl+viewwidth+1,0,xl-2,200-STATUSLINES,127); + + VWB_Vlin (yl-1,yl+viewheight,xl-1,0); + VWB_Vlin (yl-1,yl+viewheight,xl+viewwidth,125); +} + + +/* +=================== += += DrawAllPlayBorderSides += +=================== +*/ + +void DrawAllPlayBorderSides (void) +{ + unsigned i,temp; + + temp = bufferofs; + for (i=0;i<3;i++) + { + bufferofs = screenloc[i]; + DrawPlayBorderSides (); + } + bufferofs = temp; +} + +/* +=================== += += DrawPlayBorder += +=================== +*/ +void DrawAllPlayBorder (void) +{ + unsigned i,temp; + + temp = bufferofs; + for (i=0;i<3;i++) + { + bufferofs = screenloc[i]; + DrawPlayBorder (); + } + bufferofs = temp; +} + +/* +=================== += += DrawPlayBorder += +=================== +*/ + +void DrawPlayBorder (void) +{ + int xl,yl; + + VWB_Bar (0,0,320,200-STATUSLINES,127); + + xl = 160-viewwidth/2; + yl = (200-STATUSLINES-viewheight)/2; + VWB_Bar (xl,yl,viewwidth,viewheight,0); + + VWB_Hlin (xl-1,xl+viewwidth,yl-1,0); + VWB_Hlin (xl-1,xl+viewwidth,yl+viewheight,125); + VWB_Vlin (yl-1,yl+viewheight,xl-1,0); + VWB_Vlin (yl-1,yl+viewheight,xl+viewwidth,125); + VWB_Plot (xl-1,yl+viewheight,124); +} + + + +/* +=================== += += DrawPlayScreen += +=================== +*/ + +void DrawPlayScreen (void) +{ + int i,j,p,m; + unsigned temp; + + VW_FadeOut (); + + temp = bufferofs; + + CA_CacheGrChunk (STATUSBARPIC); + + for (i=0;i<3;i++) + { + bufferofs = screenloc[i]; + DrawPlayBorder (); + VWB_DrawPic (0,200-STATUSLINES,STATUSBARPIC); + } + + bufferofs = temp; + + UNCACHEGRCHUNK (STATUSBARPIC); + + DrawFace (); + DrawHealth (); + DrawLives (); + DrawLevel (); + DrawAmmo (); + DrawKeys (); + DrawWeapon (); + DrawScore (); +} + + + +//========================================================================== + +/* +================== += += StartDemoRecord += +================== +*/ + +#define MAXDEMOSIZE 8192 + +void StartDemoRecord (int levelnumber) +{ + MM_GetPtr (&demobuffer,MAXDEMOSIZE); + MM_SetLock (&demobuffer,true); + demoptr = (char far *)demobuffer; + lastdemoptr = demoptr+MAXDEMOSIZE; + + *demoptr = levelnumber; + demoptr += 4; // leave space for length + demorecord = true; +} + + +/* +================== += += FinishDemoRecord += +================== +*/ + +char demoname[13] = "DEMO?."; + +void FinishDemoRecord (void) +{ + long length,level; + + demorecord = false; + + length = demoptr - (char far *)demobuffer; + + demoptr = ((char far *)demobuffer)+1; + *(unsigned far *)demoptr = length; + + CenterWindow(24,3); + PrintY+=6; + US_Print(" Demo number (0-9):"); + VW_UpdateScreen(); + + if (US_LineInput (px,py,str,NULL,true,2,0)) + { + level = atoi (str); + if (level>=0 && level<=9) + { + demoname[4] = '0'+level; + CA_WriteFile (demoname,(void far *)demobuffer,length); + } + } + + + MM_FreePtr (&demobuffer); +} + +//========================================================================== + +/* +================== += += RecordDemo += += Fades the screen out, then starts a demo. Exits with the screen faded += +================== +*/ + +void RecordDemo (void) +{ + int level,esc; + + CenterWindow(26,3); + PrintY+=6; + CA_CacheGrChunk(STARTFONT); + fontnumber=0; + US_Print(" Demo which level(1-10):"); + VW_UpdateScreen(); + VW_FadeIn (); + esc = !US_LineInput (px,py,str,NULL,true,2,0); + if (esc) + return; + + level = atoi (str); + level--; + + SETFONTCOLOR(0,15); + VW_FadeOut (); + +#ifndef SPEAR + NewGame (gd_hard,level/10); + gamestate.mapon = level%10; +#else + NewGame (gd_hard,0); + gamestate.mapon = level; +#endif + + StartDemoRecord (level); + + DrawPlayScreen (); + VW_FadeIn (); + + startgame = false; + demorecord = true; + + SetupGameLevel (); + StartMusic (); + PM_CheckMainMem (); + fizzlein = true; + + PlayLoop (); + + demoplayback = false; + + StopMusic (); + VW_FadeOut (); + ClearMemory (); + + FinishDemoRecord (); +} + +//========================================================================== + +/* +================== += += PlayDemo += += Fades the screen out, then starts a demo. Exits with the screen faded += +================== +*/ + +void PlayDemo (int demonumber) +{ + int length; + +#ifdef DEMOSEXTERN +// debug: load chunk +#ifndef SPEARDEMO + int dems[4]={T_DEMO0,T_DEMO1,T_DEMO2,T_DEMO3}; +#else + int dems[1]={T_DEMO0}; +#endif + + CA_CacheGrChunk(dems[demonumber]); + demoptr = grsegs[dems[demonumber]]; + MM_SetLock (&grsegs[dems[demonumber]],true); +#else + demoname[4] = '0'+demonumber; + CA_LoadFile (demoname,&demobuffer); + MM_SetLock (&demobuffer,true); + demoptr = (char far *)demobuffer; +#endif + + NewGame (1,0); + gamestate.mapon = *demoptr++; + gamestate.difficulty = gd_hard; + length = *((unsigned far *)demoptr)++; + demoptr++; + lastdemoptr = demoptr-4+length; + + VW_FadeOut (); + + SETFONTCOLOR(0,15); + DrawPlayScreen (); + VW_FadeIn (); + + startgame = false; + demoplayback = true; + + SetupGameLevel (); + StartMusic (); + PM_CheckMainMem (); + fizzlein = true; + + PlayLoop (); + +#ifdef DEMOSEXTERN + UNCACHEGRCHUNK(dems[demonumber]); +#else + MM_FreePtr (&demobuffer); +#endif + + demoplayback = false; + + StopMusic (); + VW_FadeOut (); + ClearMemory (); +} + +//========================================================================== + +/* +================== += += Died += +================== +*/ + +#define DEATHROTATE 2 + +void Died (void) +{ + float fangle; + long dx,dy; + int iangle,curangle,clockwise,counter,change; + + gamestate.weapon = -1; // take away weapon + SD_PlaySound (PLAYERDEATHSND); +// +// swing around to face attacker +// + dx = killerobj->x - player->x; + dy = player->y - killerobj->y; + + fangle = atan2(dy,dx); // returns -pi to pi + if (fangle<0) + fangle = M_PI*2+fangle; + + iangle = fangle/(M_PI*2)*ANGLES; + + if (player->angle > iangle) + { + counter = player->angle - iangle; + clockwise = ANGLES-player->angle + iangle; + } + else + { + clockwise = iangle - player->angle; + counter = player->angle + ANGLES-iangle; + } + + curangle = player->angle; + + if (clockwiseiangle) + curangle -= ANGLES; + do + { + change = tics*DEATHROTATE; + if (curangle + change > iangle) + change = iangle-curangle; + + curangle += change; + player->angle += change; + if (player->angle >= ANGLES) + player->angle -= ANGLES; + + ThreeDRefresh (); + CalcTics (); + } while (curangle != iangle); + } + else + { + // + // rotate counterclockwise + // + if (curangleangle += change; + if (player->angle < 0) + player->angle += ANGLES; + + ThreeDRefresh (); + CalcTics (); + } while (curangle != iangle); + } + +// +// fade to red +// + FinishPaletteShifts (); + + bufferofs += screenofs; + VW_Bar (0,0,viewwidth,viewheight,4); + IN_ClearKeysDown (); + FizzleFade(bufferofs,displayofs+screenofs,viewwidth,viewheight,70,false); + bufferofs -= screenofs; + IN_UserInput(100); + SD_WaitSoundDone (); + + if (tedlevel == false) // SO'S YA DON'T GET KILLED WHILE LAUNCHING! + gamestate.lives--; + + if (gamestate.lives > -1) + { + gamestate.health = 100; + gamestate.weapon = gamestate.bestweapon + = gamestate.chosenweapon = wp_pistol; + gamestate.ammo = STARTAMMO; + gamestate.keys = 0; + gamestate.attackframe = gamestate.attackcount = + gamestate.weaponframe = 0; + + DrawKeys (); + DrawWeapon (); + DrawAmmo (); + DrawHealth (); + DrawFace (); + DrawLives (); + } + +} + +//========================================================================== + +/* +=================== += += GameLoop += +=================== +*/ + +void GameLoop (void) +{ + int i,xl,yl,xh,yh; + char num[20]; + boolean died; +#ifdef MYPROFILE + clock_t start,end; +#endif + +restartgame: + ClearMemory (); + SETFONTCOLOR(0,15); + DrawPlayScreen (); + died = false; +restart: + do + { + if (!loadedgame) + gamestate.score = gamestate.oldscore; + DrawScore(); + + startgame = false; + if (loadedgame) + loadedgame = false; + else + SetupGameLevel (); + +#ifdef SPEAR + if (gamestate.mapon == 20) // give them the key allways + { + gamestate.keys |= 1; + DrawKeys (); + } +#endif + + ingame = true; + StartMusic (); + PM_CheckMainMem (); + if (!died) + PreloadGraphics (); + else + died = false; + + fizzlein = true; + DrawLevel (); + +startplayloop: + PlayLoop (); + +#ifdef SPEAR + if (spearflag) + { + SD_StopSound(); + SD_PlaySound(GETSPEARSND); + if (DigiMode != sds_Off) + { + long lasttimecount = TimeCount; + + while(TimeCount < lasttimecount+150) + //while(DigiPlaying!=false) + SD_Poll(); + } + else + SD_WaitSoundDone(); + + ClearMemory (); + gamestate.oldscore = gamestate.score; + gamestate.mapon = 20; + SetupGameLevel (); + StartMusic (); + PM_CheckMainMem (); + player->x = spearx; + player->y = speary; + player->angle = spearangle; + spearflag = false; + Thrust (0,0); + goto startplayloop; + } +#endif + + StopMusic (); + ingame = false; + + if (demorecord && playstate != ex_warped) + FinishDemoRecord (); + + if (startgame || loadedgame) + goto restartgame; + + switch (playstate) + { + case ex_completed: + case ex_secretlevel: + gamestate.keys = 0; + DrawKeys (); + VW_FadeOut (); + + ClearMemory (); + + LevelCompleted (); // do the intermission +#ifdef SPEARDEMO + if (gamestate.mapon == 1) + { + died = true; // don't "get psyched!" + + VW_FadeOut (); + + ClearMemory (); + + CheckHighScore (gamestate.score,gamestate.mapon+1); + + #pragma warn -sus + #ifndef JAPAN + _fstrcpy(MainMenu[viewscores].string,STR_VS); + #endif + MainMenu[viewscores].routine = CP_ViewScores; + #pragma warn +sus + + return; + } +#endif + +#ifdef JAPDEMO + if (gamestate.mapon == 3) + { + died = true; // don't "get psyched!" + + VW_FadeOut (); + + ClearMemory (); + + CheckHighScore (gamestate.score,gamestate.mapon+1); + + #pragma warn -sus + #ifndef JAPAN + _fstrcpy(MainMenu[viewscores].string,STR_VS); + #endif + MainMenu[viewscores].routine = CP_ViewScores; + #pragma warn +sus + + return; + } +#endif + + gamestate.oldscore = gamestate.score; + +#ifndef SPEAR + // + // COMING BACK FROM SECRET LEVEL + // + if (gamestate.mapon == 9) + gamestate.mapon = ElevatorBackTo[gamestate.episode]; // back from secret + else + // + // GOING TO SECRET LEVEL + // + if (playstate == ex_secretlevel) + gamestate.mapon = 9; +#else + +#define FROMSECRET1 3 +#define FROMSECRET2 11 + + // + // GOING TO SECRET LEVEL + // + if (playstate == ex_secretlevel) + switch(gamestate.mapon) + { + case FROMSECRET1: gamestate.mapon = 18; break; + case FROMSECRET2: gamestate.mapon = 19; break; + } + else + // + // COMING BACK FROM SECRET LEVEL + // + if (gamestate.mapon == 18 || gamestate.mapon == 19) + switch(gamestate.mapon) + { + case 18: gamestate.mapon = FROMSECRET1+1; break; + case 19: gamestate.mapon = FROMSECRET2+1; break; + } +#endif + else + // + // GOING TO NEXT LEVEL + // + gamestate.mapon++; + + + break; + + case ex_died: + Died (); + died = true; // don't "get psyched!" + + if (gamestate.lives > -1) + break; // more lives left + + VW_FadeOut (); + + ClearMemory (); + + CheckHighScore (gamestate.score,gamestate.mapon+1); + + #pragma warn -sus + #ifndef JAPAN + _fstrcpy(MainMenu[viewscores].string,STR_VS); + #endif + MainMenu[viewscores].routine = CP_ViewScores; + #pragma warn +sus + + return; + + case ex_victorious: + +#ifndef SPEAR + VW_FadeOut (); +#else + VL_FadeOut (0,255,0,17,17,300); +#endif + ClearMemory (); + + Victory (); + + ClearMemory (); + + CheckHighScore (gamestate.score,gamestate.mapon+1); + + #pragma warn -sus + #ifndef JAPAN + _fstrcpy(MainMenu[viewscores].string,STR_VS); + #endif + MainMenu[viewscores].routine = CP_ViewScores; + #pragma warn +sus + + return; + + default: + ClearMemory (); + break; + } + + } while (1); + +} + diff --git a/16/wf3d8086/wl_inter.c b/16/wf3d8086/wl_inter.c new file mode 100755 index 00000000..c74cc9e6 --- /dev/null +++ b/16/wf3d8086/wl_inter.c @@ -0,0 +1,1718 @@ +// WL_INTER.C + +#include "WL_DEF.H" +#pragma hdrstop + + +//========================================================================== + +/* +================== += += CLearSplitVWB += +================== +*/ + +void ClearSplitVWB (void) +{ + memset (update,0,sizeof(update)); + WindowX = 0; + WindowY = 0; + WindowW = 320; + WindowH = 160; +} + + +//========================================================================== + +#ifdef SPEAR +#ifndef SPEARDEMO +//////////////////////////////////////////////////////// +// +// End of Spear of Destiny +// +//////////////////////////////////////////////////////// + +void EndScreen (int palette, int screen) +{ + CA_CacheScreen (screen); + VW_UpdateScreen (); + CA_CacheGrChunk (palette); + VL_FadeIn(0,255,grsegs[palette],30); + UNCACHEGRCHUNK (palette); + IN_ClearKeysDown (); + IN_Ack (); + VW_FadeOut (); +} + + +void EndSpear(void) +{ + EndScreen (END1PALETTE, ENDSCREEN11PIC); + + CA_CacheScreen (ENDSCREEN3PIC); + VW_UpdateScreen (); + CA_CacheGrChunk (END3PALETTE); + VL_FadeIn(0,255,grsegs[END3PALETTE],30); + UNCACHEGRCHUNK (END3PALETTE); + fontnumber = 0; + fontcolor = 0xd0; + WindowX = 0; + WindowW = 320; + PrintX = 0; + PrintY = 180; + US_CPrint (STR_ENDGAME1"\n"); + US_CPrint (STR_ENDGAME2); + VW_UpdateScreen (); + IN_StartAck (); + TimeCount = 0; + while (!IN_CheckAck () && TimeCount < 700); + + PrintX = 0; + PrintY = 180; + VWB_Bar(0,180,320,20,0); + US_CPrint (STR_ENDGAME3"\n"); + US_CPrint (STR_ENDGAME4); + VW_UpdateScreen (); + IN_StartAck (); + TimeCount = 0; + while (!IN_CheckAck () && TimeCount < 700); + + VW_FadeOut (); + + EndScreen (END4PALETTE, ENDSCREEN4PIC); + EndScreen (END5PALETTE, ENDSCREEN5PIC); + EndScreen (END6PALETTE, ENDSCREEN6PIC); + EndScreen (END7PALETTE, ENDSCREEN7PIC); + EndScreen (END8PALETTE, ENDSCREEN8PIC); + EndScreen (END9PALETTE, ENDSCREEN9PIC); + + EndScreen (END2PALETTE, ENDSCREEN12PIC); + + MainMenu[savegame].active = 0; +} +#endif +#endif + +//========================================================================== + +/* +================== += += Victory += +================== +*/ + +void Victory (void) +{ +#ifndef SPEARDEMO + long sec; + int i,min,kr,sr,tr,x; + char tempstr[8]; + +#define RATIOX 6 +#define RATIOY 14 +#define TIMEX 14 +#define TIMEY 8 + + +#ifdef SPEAR + StartCPMusic (XTHEEND_MUS); + + CA_CacheGrChunk(BJCOLLAPSE1PIC); + CA_CacheGrChunk(BJCOLLAPSE2PIC); + CA_CacheGrChunk(BJCOLLAPSE3PIC); + CA_CacheGrChunk(BJCOLLAPSE4PIC); + + VWB_Bar(0,0,320,200,VIEWCOLOR); + VWB_DrawPic (124,44,BJCOLLAPSE1PIC); + VW_UpdateScreen (); + VW_FadeIn (); + VW_WaitVBL(2*70); + VWB_DrawPic (124,44,BJCOLLAPSE2PIC); + VW_UpdateScreen (); + VW_WaitVBL(105); + VWB_DrawPic (124,44,BJCOLLAPSE3PIC); + VW_UpdateScreen (); + VW_WaitVBL(105); + VWB_DrawPic (124,44,BJCOLLAPSE4PIC); + VW_UpdateScreen (); + VW_WaitVBL(3*70); + + UNCACHEGRCHUNK(BJCOLLAPSE1PIC); + UNCACHEGRCHUNK(BJCOLLAPSE2PIC); + UNCACHEGRCHUNK(BJCOLLAPSE3PIC); + UNCACHEGRCHUNK(BJCOLLAPSE4PIC); + VL_FadeOut (0,255,0,17,17,5); +#endif + + StartCPMusic (URAHERO_MUS); + ClearSplitVWB (); + CacheLump(LEVELEND_LUMP_START,LEVELEND_LUMP_END); + CA_CacheGrChunk(STARTFONT); + +#ifndef SPEAR + CA_CacheGrChunk(C_TIMECODEPIC); +#endif + + + VWB_Bar (0,0,320,200-STATUSLINES,127); +#ifdef JAPAN +#ifndef JAPDEMO + CA_CacheGrChunk(C_ENDRATIOSPIC); + VWB_DrawPic(0,0,C_ENDRATIOSPIC); + UNCACHEGRCHUNK(C_ENDRATIOSPIC); +#endif +#else + Write(18,2,STR_YOUWIN); + + Write(TIMEX,TIMEY-2,STR_TOTALTIME); + + Write(12,RATIOY-2,"averages"); + + #ifdef SPANISH + Write(RATIOX+2, RATIOY, STR_RATKILL); + Write(RATIOX+2, RATIOY+2, STR_RATSECRET); + Write(RATIOX+2, RATIOY+4,STR_RATTREASURE); + #else + Write(RATIOX+8,RATIOY, STR_RATKILL); + Write(RATIOX+4,RATIOY+2, STR_RATSECRET); + Write(RATIOX, RATIOY+4,STR_RATTREASURE); + #endif + +#endif + +#ifndef JAPDEMO + VWB_DrawPic (8,4,L_BJWINSPIC); +#endif + + +#ifndef SPEAR + for (kr = sr = tr = sec = i = 0;i < 8;i++) +#else + for (kr = sr = tr = sec = i = 0;i < 20;i++) +#endif + { + sec += LevelRatios[i].time; + kr += LevelRatios[i].kill; + sr += LevelRatios[i].secret; + tr += LevelRatios[i].treasure; + } + +#ifndef SPEAR + kr /= 8; + sr /= 8; + tr /= 8; +#else + kr /= 14; + sr /= 14; + tr /= 14; +#endif + + min = sec/60; + sec %= 60; + + if (min > 99) + min = sec = 99; + + i = TIMEX*8+1; + VWB_DrawPic(i,TIMEY*8,L_NUM0PIC+(min/10)); + i += 2*8; + VWB_DrawPic(i,TIMEY*8,L_NUM0PIC+(min%10)); + i += 2*8; + Write(i/8,TIMEY,":"); + i += 1*8; + VWB_DrawPic(i,TIMEY*8,L_NUM0PIC+(sec/10)); + i += 2*8; + VWB_DrawPic(i,TIMEY*8,L_NUM0PIC+(sec%10)); + VW_UpdateScreen (); + + itoa(kr,tempstr,10); + x=RATIOX+24-strlen(tempstr)*2; + Write(x,RATIOY,tempstr); + + itoa(sr,tempstr,10); + x=RATIOX+24-strlen(tempstr)*2; + Write(x,RATIOY+2,tempstr); + + itoa(tr,tempstr,10); + x=RATIOX+24-strlen(tempstr)*2; + Write(x,RATIOY+4,tempstr); + + +#ifndef SPANISH +#ifndef UPLOAD +#ifndef SPEAR + // + // TOTAL TIME VERIFICATION CODE + // + if (gamestate.difficulty>=gd_medium) + { + VWB_DrawPic (30*8,TIMEY*8,C_TIMECODEPIC); + fontnumber = 0; + fontcolor = READHCOLOR; + PrintX = 30*8-3; + PrintY = TIMEY*8+8; + PrintX+=4; + tempstr[0] = (((min/10)^(min%10))^0xa)+'A'; + tempstr[1] = (((sec/10)^(sec%10))^0xa)+'A'; + tempstr[2] = (tempstr[0]^tempstr[1])+'A'; + tempstr[3] = 0; + US_Print(tempstr); + } +#endif +#endif +#endif + + + fontnumber = 1; + + VW_UpdateScreen (); + VW_FadeIn (); + + IN_Ack(); + + #ifndef SPEAR + if (Keyboard[sc_P] && MS_CheckParm("goobers")) + PicturePause(); + #endif + + VW_FadeOut (); + +#ifndef SPEAR + UNCACHEGRCHUNK(C_TIMECODEPIC); +#endif + UnCacheLump(LEVELEND_LUMP_START,LEVELEND_LUMP_END); + +#ifndef SPEAR + EndText(); +#else + EndSpear(); +#endif + +#endif // SPEARDEMO +} + + +//========================================================================== + +#ifndef JAPAN +/* +================== += += PG13 += +================== +*/ + +void PG13 (void) +{ + VW_FadeOut(); + VWB_Bar(0,0,320,200,0x82); // background + + CA_CacheGrChunk (PG13PIC); + VWB_DrawPic (216,110,PG13PIC); + VW_UpdateScreen (); + + UNCACHEGRCHUNK (PG13PIC); + + VW_FadeIn(); + IN_UserInput(TickBase*7); + + VW_FadeOut (); +} +#endif + + +//========================================================================== + +void Write(int x,int y,char *string) +{ + int alpha[]={L_NUM0PIC,L_NUM1PIC,L_NUM2PIC,L_NUM3PIC,L_NUM4PIC,L_NUM5PIC, + L_NUM6PIC,L_NUM7PIC,L_NUM8PIC,L_NUM9PIC,L_COLONPIC,0,0,0,0,0,0,L_APIC,L_BPIC, + L_CPIC,L_DPIC,L_EPIC,L_FPIC,L_GPIC,L_HPIC,L_IPIC,L_JPIC,L_KPIC, + L_LPIC,L_MPIC,L_NPIC,L_OPIC,L_PPIC,L_QPIC,L_RPIC,L_SPIC,L_TPIC, + L_UPIC,L_VPIC,L_WPIC,L_XPIC,L_YPIC,L_ZPIC}; + + int i,ox,nx,ny; + char ch; + + + ox=nx=x*8; + ny=y*8; + for (i=0;i='a') + ch-=('a'-'A'); + ch-='0'; + + switch(string[i]) + { + case '!': + VWB_DrawPic(nx,ny,L_EXPOINTPIC); + nx+=8; + continue; + + case '\'': + VWB_DrawPic(nx,ny,L_APOSTROPHEPIC); + nx+=8; + continue; + + case ' ': break; + case 0x3a: // ':' + + VWB_DrawPic(nx,ny,L_COLONPIC); + nx+=8; + continue; + + case '%': + VWB_DrawPic(nx,ny,L_PERCENTPIC); + break; + + default: + VWB_DrawPic(nx,ny,alpha[ch]); + } + nx+=16; + } +} + + +// +// Breathe Mr. BJ!!! +// +void BJ_Breathe(void) +{ + static int which=0,max=10; + int pics[2]={L_GUYPIC,L_GUY2PIC}; + + + if (TimeCount>max) + { + which^=1; + VWB_DrawPic(0,16,pics[which]); + VW_UpdateScreen(); + TimeCount=0; + max=35; + } +} + + + +/* +================== += += LevelCompleted += += Entered with the screen faded out += Still in split screen mode with the status bar += += Exit with the screen faded out += +================== +*/ + +#ifndef SPEAR +LRstruct LevelRatios[8]; +#else +LRstruct LevelRatios[20]; +#endif + +void LevelCompleted (void) +{ + #define VBLWAIT 30 + #define PAR_AMOUNT 500 + #define PERCENT100AMT 10000 + typedef struct { + float time; + char timestr[6]; + } times; + + int x,i,min,sec,ratio,kr,sr,tr; + unsigned temp; + char tempstr[10]; + long bonus,timeleft=0; + times parTimes[]= + { +#ifndef SPEAR + // + // Episode One Par Times + // + {1.5, "01:30"}, + {2, "02:00"}, + {2, "02:00"}, + {3.5, "03:30"}, + {3, "03:00"}, + {3, "03:00"}, + {2.5, "02:30"}, + {2.5, "02:30"}, + {0, "??:??"}, // Boss level + {0, "??:??"}, // Secret level + + // + // Episode Two Par Times + // + {1.5, "01:30"}, + {3.5, "03:30"}, + {3, "03:00"}, + {2, "02:00"}, + {4, "04:00"}, + {6, "06:00"}, + {1, "01:00"}, + {3, "03:00"}, + {0, "??:??"}, + {0, "??:??"}, + + // + // Episode Three Par Times + // + {1.5, "01:30"}, + {1.5, "01:30"}, + {2.5, "02:30"}, + {2.5, "02:30"}, + {3.5, "03:30"}, + {2.5, "02:30"}, + {2, "02:00"}, + {6, "06:00"}, + {0, "??:??"}, + {0, "??:??"}, + + // + // Episode Four Par Times + // + {2, "02:00"}, + {2, "02:00"}, + {1.5, "01:30"}, + {1, "01:00"}, + {4.5, "04:30"}, + {3.5, "03:30"}, + {2, "02:00"}, + {4.5, "04:30"}, + {0, "??:??"}, + {0, "??:??"}, + + // + // Episode Five Par Times + // + {2.5, "02:30"}, + {1.5, "01:30"}, + {2.5, "02:30"}, + {2.5, "02:30"}, + {4, "04:00"}, + {3, "03:00"}, + {4.5, "04:30"}, + {3.5, "03:30"}, + {0, "??:??"}, + {0, "??:??"}, + + // + // Episode Six Par Times + // + {6.5, "06:30"}, + {4, "04:00"}, + {4.5, "04:30"}, + {6, "06:00"}, + {5, "05:00"}, + {5.5, "05:30"}, + {5.5, "05:30"}, + {8.5, "08:30"}, + {0, "??:??"}, + {0, "??:??"} +#else + // + // SPEAR OF DESTINY TIMES + // + {1.5, "01:30"}, + {3.5, "03:30"}, + {2.75, "02:45"}, + {3.5, "03:30"}, + {0, "??:??"}, // Boss 1 + {4.5, "04:30"}, + {3.25, "03:15"}, + {2.75, "02:45"}, + {4.75, "04:45"}, + {0, "??:??"}, // Boss 2 + {6.5, "06:30"}, + {4.5, "04:30"}, + {2.75, "02:45"}, + {4.5, "04:30"}, + {6, "06:00"}, + {0, "??:??"}, // Boss 3 + {6, "06:00"}, + {0, "??:??"}, // Boss 4 + {0, "??:??"}, // Secret level 1 + {0, "??:??"}, // Secret level 2 +#endif + }; + + + + CacheLump(LEVELEND_LUMP_START,LEVELEND_LUMP_END); + ClearSplitVWB (); // set up for double buffering in split screen + VWB_Bar (0,0,320,200-STATUSLINES,127); + StartCPMusic(ENDLEVEL_MUS); + +// +// do the intermission +// + IN_ClearKeysDown(); + IN_StartAck(); + +#ifdef JAPAN + CA_CacheGrChunk(C_INTERMISSIONPIC); + VWB_DrawPic(0,0,C_INTERMISSIONPIC); + UNCACHEGRCHUNK(C_INTERMISSIONPIC); +#endif + VWB_DrawPic(0,16,L_GUYPIC); + +#ifndef SPEAR + if (mapon<8) +#else + if (mapon != 4 && + mapon != 9 && + mapon != 15 && + mapon < 17) +#endif + { +#ifndef JAPAN + #ifdef SPANISH + Write(14,2,"piso\ncompletado"); + #else + Write(14,2,"floor\ncompleted"); + #endif + + Write(14,7,STR_BONUS" 0"); + Write(16,10,STR_TIME); + Write(16,12,STR_PAR); + + #ifdef SPANISH + Write(11,14, STR_RAT2KILL); + Write(11,16, STR_RAT2SECRET); + Write(11,18,STR_RAT2TREASURE); + #else + Write(9,14, STR_RAT2KILL); + Write(5,16, STR_RAT2SECRET); + Write(1,18,STR_RAT2TREASURE); + #endif + + Write(26,2,itoa(gamestate.mapon+1,tempstr,10)); +#endif + + #ifdef SPANISH + Write(30,12,parTimes[gamestate.episode*10+mapon].timestr); + #else + Write(26,12,parTimes[gamestate.episode*10+mapon].timestr); + #endif + + // + // PRINT TIME + // + sec=gamestate.TimeCount/70; + + if (sec > 99*60) // 99 minutes max + sec = 99*60; + + if (gamestate.TimeCountname); + + // + // level + // + ultoa(s->completed,buffer,10); +#ifndef SPEAR + for (str = buffer;*str;str++) + *str = *str + (129 - '0'); // Used fixed-width numbers (129...) + USL_MeasureString(buffer,&w,&h); + PrintX = (22 * 8)-w; +#else + USL_MeasureString(buffer,&w,&h); + PrintX = 194 - w; +#endif + +#ifndef UPLOAD +#ifndef SPEAR + PrintX -= 6; + itoa(s->episode+1,buffer1,10); + US_Print("E"); + US_Print(buffer1); + US_Print("/L"); +#endif +#endif + +#ifdef SPEAR + if (s->completed == 21) + VWB_DrawPic (PrintX+8,PrintY-1,C_WONSPEARPIC); + else +#endif + US_Print(buffer); + + // + // score + // + ultoa(s->score,buffer,10); +#ifndef SPEAR + for (str = buffer;*str;str++) + *str = *str + (129 - '0'); // Used fixed-width numbers (129...) + USL_MeasureString(buffer,&w,&h); + PrintX = (34 * 8) - 8 - w; +#else + USL_MeasureString(buffer,&w,&h); + PrintX = 292 - w; +#endif + US_Print(buffer); + + #if 0 +#ifndef UPLOAD +#ifndef SPEAR + // + // verification # + // + if (!i) + { + temp=(((s->score >> 28)& 0xf)^ + ((s->score >> 24)& 0xf))+'A'; + temp1=(((s->score >> 20)& 0xf)^ + ((s->score >> 16)& 0xf))+'A'; + temp2=(((s->score >> 12)& 0xf)^ + ((s->score >> 8)& 0xf))+'A'; + temp3=(((s->score >> 4)& 0xf)^ + ((s->score >> 0)& 0xf))+'A'; + + SETFONTCOLOR(0x49,0x29); + PrintX = 35*8; + buffer[0]=temp; + buffer[1]=temp1; + buffer[2]=temp2; + buffer[3]=temp3; + buffer[4]=0; + US_Print(buffer); + SETFONTCOLOR(15,0x29); + } +#endif +#endif + #endif + } + + VW_UpdateScreen (); + +#ifdef SPEAR + UnCacheLump (HIGHSCORES_LUMP_START,HIGHSCORES_LUMP_END); + fontnumber = 0; +#endif +} + +//=========================================================================== + + +/* +======================= += += CheckHighScore += +======================= +*/ + +void CheckHighScore (long score,word other) +{ + word i,j; + int n; + HighScore myscore; + + strcpy(myscore.name,""); + myscore.score = score; + myscore.episode = gamestate.episode; + myscore.completed = other; + + for (i = 0,n = -1;i < MaxScores;i++) + { + if + ( + (myscore.score > Scores[i].score) + || ( + (myscore.score == Scores[i].score) + && (myscore.completed > Scores[i].completed) + ) + ) + { + for (j = MaxScores;--j > i;) + Scores[j] = Scores[j - 1]; + Scores[i] = myscore; + n = i; + break; + } + } + +#ifdef SPEAR + StartCPMusic (XAWARD_MUS); +#else + StartCPMusic (ROSTER_MUS); +#endif + DrawHighScores (); + + VW_FadeIn (); + + if (n != -1) + { + // + // got a high score + // + PrintY = 76 + (16 * n); +#ifndef SPEAR + PrintX = 4*8; + backcolor = BORDCOLOR; + fontcolor = 15; + US_LineInput(PrintX,PrintY,Scores[n].name,nil,true,MaxHighName,100); +#else + PrintX = 16; + fontnumber = 1; + VWB_Bar (PrintX-2,PrintY-2,145,15,0x9c); + VW_UpdateScreen (); + backcolor = 0x9c; + fontcolor = 15; + US_LineInput(PrintX,PrintY,Scores[n].name,nil,true,MaxHighName,130); +#endif + } + else + { + IN_ClearKeysDown (); + IN_UserInput(500); + } + +} + + +#ifndef UPLOAD +#ifndef SPEAR +#ifndef JAPAN +//////////////////////////////////////////////////////// +// +// NON-SHAREWARE NOTICE +// +//////////////////////////////////////////////////////// +void NonShareware(void) +{ + VW_FadeOut(); + + ClearMScreen(); + DrawStripes(10); + + CA_CacheGrChunk(STARTFONT+1); + fontnumber = 1; + + SETFONTCOLOR(READHCOLOR,BKGDCOLOR); + PrintX=110; + PrintY=15; + + #ifdef SPANISH + US_Print("Atencion"); + #else + US_Print("Attention"); + #endif + + SETFONTCOLOR(HIGHLIGHT,BKGDCOLOR); + WindowX=PrintX=40; + PrintY=60; + #ifdef SPANISH + US_Print("Este juego NO es gratis y\n"); + US_Print("NO es Shareware; favor de\n"); + US_Print("no distribuirlo.\n\n"); + #else + US_Print("This game is NOT shareware.\n"); + US_Print("Please do not distribute it.\n"); + US_Print("Thanks.\n\n"); + #endif + US_Print(" Id Software\n"); + + VW_UpdateScreen (); + VW_FadeIn(); + IN_Ack(); +} +#endif +#endif +#endif + +#ifdef SPEAR +#ifndef SPEARDEMO +//////////////////////////////////////////////////////// +// +// COPY PROTECTION FOR FormGen +// +//////////////////////////////////////////////////////// +char far CopyProFailedStrs[][100] = { + STR_COPY1, + STR_COPY2, + + STR_COPY3, + STR_COPY4, + + STR_COPY5, + STR_COPY6, + + STR_COPY7, + STR_COPY8, + + STR_COPY9, + "", + + STR_COPY10, + STR_COPY11, + + STR_COPY12, + "", + + STR_COPY13, + "", + + STR_COPY14, + "" + }, + + far BackDoorStrs[5][16] = { + "a spoon?", + "bite me!", + "joshua", + "pelt", +#ifdef BETA + "beta" +#else + "snoops" +#endif + }, + + far GoodBoyStrs[10][40] = { + "...is the CORRECT ANSWER!", + "", + + "Consider yourself bitten, sir.", + "", + + "Greetings Professor Falken, would you", + "like to play Spear of Destiny?", + + "Do you have any gold spray paint?", + "", + +#ifdef BETA + "Beta testing approved.", +#else + "I wish I had a 21\" monitor...", +#endif + "" + }, + + far bossstrs[4][24] = { + "DEATH KNIGHT", + "BARNACLE WILHELM", + "UBERMUTANTUBER MUTANT", + "TRANS GROSSE" + }, + + far WordStr[5][20] = { + "New Game", + "Sound...F4", + "Control...F6", + "Change View...F5", + "Quit...F10"}, + + far WordCorrect[5][2] = {"3","4","4","5","5"}, + + far MemberStr[10][40] = { + STR_COPY15, + "", + + STR_COPY16, + "", + + STR_COPY17, + STR_COPY18, + + STR_COPY19, + STR_COPY20, + + STR_COPY21, + STR_COPY22}, + + far MemberCorrect[5][24] = { + "adrian carmack", + "john carmackjohn romero", + "tom hall", + "jay wilbur", + "kevin cloud"}, + + far DosMessages[9][80] = { + STR_NOPE1, + STR_NOPE2, + STR_NOPE3, + STR_NOPE4, + STR_NOPE5, + STR_NOPE6, + STR_NOPE7, + STR_NOPE8, + STR_NOPE9}, + + far MiscTitle[4][20] = { + "BLOOD TEST", + "STRAIGHT-LACED", + "QUITE SHAPELY", + "I AM WHAT I AMMO" + }, + + far MiscStr[12][40] = { + STR_MISC1, + STR_MISC2, + "", + + STR_MISC3, + STR_MISC4, + "", + + STR_MISC5, + STR_MISC6, + "", + + STR_MISC7, + STR_MISC8, + STR_MISC9 + }, + + far MiscCorrect[4][5] = {"ss","8",STR_STAR,"45"}; + + +int BackDoor(char *s) +{ + int i; + + + strlwr(s); + + for (i=0;i<5;i++) + if (!_fstrcmp(s,BackDoorStrs[i])) + { + SETFONTCOLOR(14,15); + fontnumber = 0; + PrintY = 175; + VWB_DrawPic (0,20*8,COPYPROTBOXPIC); + US_CPrint(GoodBoyStrs[i*2]); + US_CPrint(GoodBoyStrs[i*2+1]); + VW_UpdateScreen(); + return 1; + } + + return 0; +} + + +void CopyProtection(void) +{ +#define TYPEBOX_Y 177 +#define TYPEBOX_BKGD 0x9c +#define PRINTCOLOR HIGHLIGHT + + int i,match,whichboss,bossnum,try,whichline,enemypicked[4]={0,0,0,0}, + bosses[4] = { BOSSPIC1PIC,BOSSPIC2PIC,BOSSPIC3PIC,BOSSPIC4PIC }, + whichone,whichpicked[4]={0,0,0,0},quiztype,whichmem, + memberpicked[5]={0,0,0,0,0},wordpicked[5]={0,0,0,0,0},whichword; + + char inputbuffer[20], + message[80]; + + enum + { + debriefing, + checkmanual, + staffquiz, + miscquiz, + + totaltypes + }; + + + + try = 0; + VW_FadeOut(); + CA_CacheGrChunk(C_BACKDROPPIC); + CacheLump(COPYPROT_LUMP_START,COPYPROT_LUMP_END); + CA_CacheGrChunk(STARTFONT+1); + CA_LoadAllSounds(); + StartCPMusic(COPYPRO_MUS); + US_InitRndT(true); + + while (try<3) + { + fontnumber = 1; + SETFONTCOLOR(PRINTCOLOR-2,15); + VWB_DrawPic (0,0,C_BACKDROPPIC); + VWB_DrawPic (0,0,COPYPROTTOPPIC); + VWB_DrawPic (0,20*8,COPYPROTBOXPIC); + WindowX = WindowY = 0; + WindowW = 320; + WindowH = 200; + PrintY = 65; + + quiztype = US_RndT()%totaltypes; + switch(quiztype) + { + // + // BOSSES QUIZ + // + case debriefing: + PrintX = 0; + US_Print(STR_DEBRIEF); + SETFONTCOLOR(PRINTCOLOR,15); + + while (enemypicked[whichboss = US_RndT()&3]); + enemypicked[whichboss] = 1; + bossnum = bosses[whichboss]; + VWB_DrawPic(128,60,bossnum); + fontnumber = 0; + PrintY = 130; + US_CPrint(STR_ENEMY1"\n"); + US_CPrint(STR_ENEMY2"\n\n"); + + VW_UpdateScreen(); + VW_FadeIn(); + + PrintX = 100; + fontcolor = 15; + backcolor = TYPEBOX_BKGD; + inputbuffer[0] = 0; + PrintY = TYPEBOX_Y; + fontnumber = 1; + US_LineInput(PrintX,PrintY,inputbuffer,nil,true,20,100); + + match = 0; + for (i=0;i<_fstrlen(bossstrs[whichboss]);i++) + if (!_fstrnicmp(inputbuffer,bossstrs[whichboss]+i,strlen(inputbuffer)) && + strlen(inputbuffer)>3) + match = 1; + + match += BackDoor(inputbuffer); + break; + + // + // MANUAL CHECK + // + case checkmanual: + while (wordpicked[whichword = US_RndT()%5]); + wordpicked[whichword] = 1; + US_CPrint(STR_CHECKMAN); + SETFONTCOLOR(PRINTCOLOR,15); + PrintY += 25; + US_CPrint(STR_MAN1); + US_CPrint(STR_MAN2); + _fstrcpy(message,STR_MAN3" \""); + _fstrcat(message,WordStr[whichword]); + _fstrcat(message,"\" "STR_MAN4); + US_CPrint(message); + VW_UpdateScreen(); + VW_FadeIn(); + + PrintX = 146; + fontcolor = 15; + backcolor = TYPEBOX_BKGD; + inputbuffer[0] = 0; + PrintY = TYPEBOX_Y; + US_LineInput(PrintX,PrintY,inputbuffer,nil,true,6,100); + + strlwr(inputbuffer); + match = 1-(_fstrcmp(inputbuffer,WordCorrect[whichword])!=0); + match += BackDoor(inputbuffer); + break; + + // + // STAFF QUIZ + // + case staffquiz: + while (memberpicked[whichmem = US_RndT()%5]); + memberpicked[whichmem] = 1; + US_CPrint(STR_ID1); + SETFONTCOLOR(PRINTCOLOR,15); + PrintY += 25; + US_CPrint(MemberStr[whichmem*2]); + US_CPrint(MemberStr[whichmem*2+1]); + VW_UpdateScreen(); + VW_FadeIn(); + + PrintX = 100; + fontcolor = 15; + backcolor = TYPEBOX_BKGD; + inputbuffer[0] = 0; + PrintY = TYPEBOX_Y; + US_LineInput(PrintX,PrintY,inputbuffer,nil,true,20,120); + + strlwr(inputbuffer); + match = 0; + for (i=0;i<_fstrlen(MemberCorrect[whichmem]);i++) + if (!_fstrnicmp(inputbuffer,MemberCorrect[whichmem]+i,strlen(inputbuffer)) && + strlen(inputbuffer)>2) + match = 1; + match += BackDoor(inputbuffer); + break; + + // + // MISCELLANEOUS QUESTIONS + // + case miscquiz: + while (whichpicked[whichone = US_RndT()&3]); + whichpicked[whichone] = 1; + US_CPrint(MiscTitle[whichone]); + SETFONTCOLOR(PRINTCOLOR,15); + PrintY += 25; + US_CPrint(MiscStr[whichone*3]); + US_CPrint(MiscStr[whichone*3+1]); + US_CPrint(MiscStr[whichone*3+2]); + VW_UpdateScreen(); + VW_FadeIn(); + + PrintX = 146; + fontcolor = 15; + backcolor = TYPEBOX_BKGD; + inputbuffer[0] = 0; + PrintY = TYPEBOX_Y; + US_LineInput(PrintX,PrintY,inputbuffer,nil,true,6,100); + + strlwr(inputbuffer); + match = 1-(_fstrcmp(inputbuffer,MiscCorrect[whichone])!=0); + match += BackDoor(inputbuffer); + break; + } + + // + // IF NO MATCH, WE'VE GOT A (MINOR) PROBLEM! + // + + if (!match) + { + whichline = 2*(US_RndT()%9); + SETFONTCOLOR(14,15); + fontnumber = 0; + PrintY = 175; + VWB_DrawPic (0,20*8,COPYPROTBOXPIC); + US_CPrint(CopyProFailedStrs[whichline]); + US_CPrint(CopyProFailedStrs[whichline+1]); + + VW_UpdateScreen(); + SD_PlaySound(NOWAYSND); + IN_UserInput(TickBase*3); + VW_FadeOut(); + try++; + } + else + { + int start; + + + SD_PlaySound(BONUS1UPSND); + SD_WaitSoundDone(); + UNCACHEGRCHUNK (STARTFONT+1); + UNCACHEGRCHUNK (C_BACKDROPPIC); + UnCacheLump (COPYPROT_LUMP_START,COPYPROT_LUMP_END); + + switch(SoundMode) + { + case sdm_Off: return; + case sdm_PC: start = STARTPCSOUNDS; break; + case sdm_AdLib: start = STARTADLIBSOUNDS; + } + + for (i=0;i +#include "WL_DEF.H" +#pragma hdrstop + + +/* +============================================================================= + + WOLFENSTEIN 3-D + + An Id Software production + + by John Carmack + +============================================================================= +*/ + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + + +#define FOCALLENGTH (0x5700l) // in global coordinates +#define VIEWGLOBAL 0x10000 // globals visable flush to wall + +#define VIEWWIDTH 256 // size of view window +#define VIEWHEIGHT 144 + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + +char str[80],str2[20]; +int tedlevelnum; +boolean tedlevel; +boolean nospr; +boolean IsA386; +int dirangle[9] = {0,ANGLES/8,2*ANGLES/8,3*ANGLES/8,4*ANGLES/8, + 5*ANGLES/8,6*ANGLES/8,7*ANGLES/8,ANGLES}; + +// +// proejection variables +// +fixed focallength; +unsigned screenofs; +int viewwidth; +int viewheight; +int centerx; +int shootdelta; // pixels away from centerx a target can be +fixed scale,maxslope; +long heightnumerator; +int minheightdiv; + + +void Quit (char *error); + +boolean startgame,loadedgame,virtualreality; +int mouseadjustment; + +char configname[13]="CONFIG."; + + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + +/* +==================== += += ReadConfig += +==================== +*/ + +void ReadConfig(void) +{ + int file; + SDMode sd; + SMMode sm; + SDSMode sds; + + + if ( (file = open(configname,O_BINARY | O_RDONLY)) != -1) + { + // + // valid config file + // + read(file,Scores,sizeof(HighScore) * MaxScores); + + read(file,&sd,sizeof(sd)); + read(file,&sm,sizeof(sm)); + read(file,&sds,sizeof(sds)); + + read(file,&mouseenabled,sizeof(mouseenabled)); + read(file,&joystickenabled,sizeof(joystickenabled)); + read(file,&joypadenabled,sizeof(joypadenabled)); + read(file,&joystickprogressive,sizeof(joystickprogressive)); + read(file,&joystickport,sizeof(joystickport)); + + read(file,&dirscan,sizeof(dirscan)); + read(file,&buttonscan,sizeof(buttonscan)); + read(file,&buttonmouse,sizeof(buttonmouse)); + read(file,&buttonjoy,sizeof(buttonjoy)); + + read(file,&viewsize,sizeof(viewsize)); + read(file,&mouseadjustment,sizeof(mouseadjustment)); + + close(file); + + if (sd == sdm_AdLib && !AdLibPresent && !SoundBlasterPresent) + { + sd = sdm_PC; + sd = smm_Off; + } + + if ((sds == sds_SoundBlaster && !SoundBlasterPresent) || + (sds == sds_SoundSource && !SoundSourcePresent)) + sds = sds_Off; + + if (!MousePresent) + mouseenabled = false; + if (!JoysPresent[joystickport]) + joystickenabled = false; + + MainMenu[6].active=1; + MainItems.curpos=0; + } + else + { + // + // no config file, so select by hardware + // + if (SoundBlasterPresent || AdLibPresent) + { + sd = sdm_AdLib; + sm = smm_AdLib; + } + else + { + sd = sdm_PC; + sm = smm_Off; + } + + if (SoundBlasterPresent) + sds = sds_SoundBlaster; + else if (SoundSourcePresent) + sds = sds_SoundSource; + else + sds = sds_Off; + + if (MousePresent) + mouseenabled = true; + + joystickenabled = false; + joypadenabled = false; + joystickport = 0; + joystickprogressive = false; + + viewsize = 15; + mouseadjustment=5; + } + + SD_SetMusicMode (sm); + SD_SetSoundMode (sd); + SD_SetDigiDevice (sds); + +} + + +/* +==================== += += WriteConfig += +==================== +*/ + +void WriteConfig(void) +{ + int file; + + file = open(configname,O_CREAT | O_BINARY | O_WRONLY, + S_IREAD | S_IWRITE | S_IFREG); + + if (file != -1) + { + write(file,Scores,sizeof(HighScore) * MaxScores); + + write(file,&SoundMode,sizeof(SoundMode)); + write(file,&MusicMode,sizeof(MusicMode)); + write(file,&DigiMode,sizeof(DigiMode)); + + write(file,&mouseenabled,sizeof(mouseenabled)); + write(file,&joystickenabled,sizeof(joystickenabled)); + write(file,&joypadenabled,sizeof(joypadenabled)); + write(file,&joystickprogressive,sizeof(joystickprogressive)); + write(file,&joystickport,sizeof(joystickport)); + + write(file,&dirscan,sizeof(dirscan)); + write(file,&buttonscan,sizeof(buttonscan)); + write(file,&buttonmouse,sizeof(buttonmouse)); + write(file,&buttonjoy,sizeof(buttonjoy)); + + write(file,&viewsize,sizeof(viewsize)); + write(file,&mouseadjustment,sizeof(mouseadjustment)); + + close(file); + } +} + + +//=========================================================================== + + +/* +======================== += += Patch386 += += Patch ldiv to use 32 bit instructions += +======================== +*/ + +char *JHParmStrings[] = {"no386",nil}; +void Patch386 (void) +{ +extern void far jabhack2(void); +extern int far CheckIs386(void); + + int i; + + for (i = 1;i < _argc;i++) + if (US_CheckParm(_argv[i],JHParmStrings) == 0) + { + IsA386 = false; + return; + } + + if (CheckIs386()) + { + IsA386 = true; + jabhack2(); + } + else + IsA386 = false; +} + +//=========================================================================== + +/* +===================== += += NewGame += += Set up new game to start from the beginning += +===================== +*/ + +void NewGame (int difficulty,int episode) +{ + memset (&gamestate,0,sizeof(gamestate)); + gamestate.difficulty = difficulty; + gamestate.weapon = gamestate.bestweapon + = gamestate.chosenweapon = wp_pistol; + gamestate.health = 100; + gamestate.ammo = STARTAMMO; + gamestate.lives = 3; + gamestate.nextextra = EXTRAPOINTS; + gamestate.episode=episode; + + startgame = true; +} + +//=========================================================================== + +void DiskFlopAnim(int x,int y) +{ + static char which=0; + if (!x && !y) + return; + VWB_DrawPic(x,y,C_DISKLOADING1PIC+which); + VW_UpdateScreen(); + which^=1; +} + + +long DoChecksum(byte far *source,unsigned size,long checksum) +{ + unsigned i; + + for (i=0;inext) + size += sizeof(*ob); + size += sizeof(nullobj); + + size += sizeof(gamestate) + + sizeof(LRstruct)*8 + + sizeof(tilemap) + + sizeof(actorat) + + sizeof(laststatobj) + + sizeof(statobjlist) + + sizeof(doorposition) + + sizeof(pwallstate) + + sizeof(pwallx) + + sizeof(pwally) + + sizeof(pwalldir) + + sizeof(pwallpos); + + if (avail < size) + { + Message(STR_NOSPACE1"\n" + STR_NOSPACE2); + return false; + } + + checksum = 0; + + + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)&gamestate,sizeof(gamestate)); + checksum = DoChecksum((byte far *)&gamestate,sizeof(gamestate),checksum); + + DiskFlopAnim(x,y); +#ifdef SPEAR + CA_FarWrite (file,(void far *)&LevelRatios[0],sizeof(LRstruct)*20); + checksum = DoChecksum((byte far *)&LevelRatios[0],sizeof(LRstruct)*20,checksum); +#else + CA_FarWrite (file,(void far *)&LevelRatios[0],sizeof(LRstruct)*8); + checksum = DoChecksum((byte far *)&LevelRatios[0],sizeof(LRstruct)*8,checksum); +#endif + + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)tilemap,sizeof(tilemap)); + checksum = DoChecksum((byte far *)tilemap,sizeof(tilemap),checksum); + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)actorat,sizeof(actorat)); + checksum = DoChecksum((byte far *)actorat,sizeof(actorat),checksum); + + CA_FarWrite (file,(void far *)areaconnect,sizeof(areaconnect)); + CA_FarWrite (file,(void far *)areabyplayer,sizeof(areabyplayer)); + + for (ob = player ; ob ; ob=ob->next) + { + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)ob,sizeof(*ob)); + } + nullobj.active = ac_badobject; // end of file marker + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)&nullobj,sizeof(nullobj)); + + + + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)&laststatobj,sizeof(laststatobj)); + checksum = DoChecksum((byte far *)&laststatobj,sizeof(laststatobj),checksum); + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)statobjlist,sizeof(statobjlist)); + checksum = DoChecksum((byte far *)statobjlist,sizeof(statobjlist),checksum); + + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)doorposition,sizeof(doorposition)); + checksum = DoChecksum((byte far *)doorposition,sizeof(doorposition),checksum); + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)doorobjlist,sizeof(doorobjlist)); + checksum = DoChecksum((byte far *)doorobjlist,sizeof(doorobjlist),checksum); + + DiskFlopAnim(x,y); + CA_FarWrite (file,(void far *)&pwallstate,sizeof(pwallstate)); + checksum = DoChecksum((byte far *)&pwallstate,sizeof(pwallstate),checksum); + CA_FarWrite (file,(void far *)&pwallx,sizeof(pwallx)); + checksum = DoChecksum((byte far *)&pwallx,sizeof(pwallx),checksum); + CA_FarWrite (file,(void far *)&pwally,sizeof(pwally)); + checksum = DoChecksum((byte far *)&pwally,sizeof(pwally),checksum); + CA_FarWrite (file,(void far *)&pwalldir,sizeof(pwalldir)); + checksum = DoChecksum((byte far *)&pwalldir,sizeof(pwalldir),checksum); + CA_FarWrite (file,(void far *)&pwallpos,sizeof(pwallpos)); + checksum = DoChecksum((byte far *)&pwallpos,sizeof(pwallpos),checksum); + + // + // WRITE OUT CHECKSUM + // + CA_FarWrite (file,(void far *)&checksum,sizeof(checksum)); + + return(true); +} + +//=========================================================================== + +/* +================== += += LoadTheGame += +================== +*/ + +boolean LoadTheGame(int file,int x,int y) +{ + long checksum,oldchecksum; + objtype *ob,nullobj; + + + checksum = 0; + + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)&gamestate,sizeof(gamestate)); + checksum = DoChecksum((byte far *)&gamestate,sizeof(gamestate),checksum); + + DiskFlopAnim(x,y); +#ifdef SPEAR + CA_FarRead (file,(void far *)&LevelRatios[0],sizeof(LRstruct)*20); + checksum = DoChecksum((byte far *)&LevelRatios[0],sizeof(LRstruct)*20,checksum); +#else + CA_FarRead (file,(void far *)&LevelRatios[0],sizeof(LRstruct)*8); + checksum = DoChecksum((byte far *)&LevelRatios[0],sizeof(LRstruct)*8,checksum); +#endif + + DiskFlopAnim(x,y); + SetupGameLevel (); + + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)tilemap,sizeof(tilemap)); + checksum = DoChecksum((byte far *)tilemap,sizeof(tilemap),checksum); + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)actorat,sizeof(actorat)); + checksum = DoChecksum((byte far *)actorat,sizeof(actorat),checksum); + + CA_FarRead (file,(void far *)areaconnect,sizeof(areaconnect)); + CA_FarRead (file,(void far *)areabyplayer,sizeof(areabyplayer)); + + + + InitActorList (); + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)player,sizeof(*player)); + + while (1) + { + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)&nullobj,sizeof(nullobj)); + if (nullobj.active == ac_badobject) + break; + GetNewActor (); + // don't copy over the links + memcpy (new,&nullobj,sizeof(nullobj)-4); + } + + + + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)&laststatobj,sizeof(laststatobj)); + checksum = DoChecksum((byte far *)&laststatobj,sizeof(laststatobj),checksum); + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)statobjlist,sizeof(statobjlist)); + checksum = DoChecksum((byte far *)statobjlist,sizeof(statobjlist),checksum); + + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)doorposition,sizeof(doorposition)); + checksum = DoChecksum((byte far *)doorposition,sizeof(doorposition),checksum); + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)doorobjlist,sizeof(doorobjlist)); + checksum = DoChecksum((byte far *)doorobjlist,sizeof(doorobjlist),checksum); + + DiskFlopAnim(x,y); + CA_FarRead (file,(void far *)&pwallstate,sizeof(pwallstate)); + checksum = DoChecksum((byte far *)&pwallstate,sizeof(pwallstate),checksum); + CA_FarRead (file,(void far *)&pwallx,sizeof(pwallx)); + checksum = DoChecksum((byte far *)&pwallx,sizeof(pwallx),checksum); + CA_FarRead (file,(void far *)&pwally,sizeof(pwally)); + checksum = DoChecksum((byte far *)&pwally,sizeof(pwally),checksum); + CA_FarRead (file,(void far *)&pwalldir,sizeof(pwalldir)); + checksum = DoChecksum((byte far *)&pwalldir,sizeof(pwalldir),checksum); + CA_FarRead (file,(void far *)&pwallpos,sizeof(pwallpos)); + checksum = DoChecksum((byte far *)&pwallpos,sizeof(pwallpos),checksum); + + CA_FarRead (file,(void far *)&oldchecksum,sizeof(oldchecksum)); + + if (oldchecksum != checksum) + { + Message(STR_SAVECHT1"\n" + STR_SAVECHT2"\n" + STR_SAVECHT3"\n" + STR_SAVECHT4); + + IN_ClearKeysDown(); + IN_Ack(); + + gamestate.score = 0; + gamestate.lives = 1; + gamestate.weapon = + gamestate.chosenweapon = + gamestate.bestweapon = wp_pistol; + gamestate.ammo = 8; + } + + return true; +} + +//=========================================================================== + +/* +========================== += += ShutdownId += += Shuts down all ID_?? managers += +========================== +*/ + +void ShutdownId (void) +{ + US_Shutdown (); + SD_Shutdown (); + PM_Shutdown (); + IN_Shutdown (); + VW_Shutdown (); + CA_Shutdown (); + MM_Shutdown (); +} + + +//=========================================================================== + +/* +================== += += BuildTables += += Calculates: += += scale projection constant += sintable/costable overlapping fractional tables += +================== +*/ + +const float radtoint = (float)FINEANGLES/2/PI; + +void BuildTables (void) +{ + int i; + float angle,anglestep; + double tang; + fixed value; + + +// +// calculate fine tangents +// + + for (i=0;i>2 +// + heightnumerator = (TILEGLOBAL*scale)>>6; + minheightdiv = heightnumerator/0x7fff +1; + +// +// calculate the angle offset from view angle of each pixel's ray +// + + for (i=0;i>= 8; +} + + + +//=========================================================================== + +/* +=================== += += SetupWalls += += Map tile values to scaled pics += +=================== +*/ + +void SetupWalls (void) +{ + int i; + + for (i=1;i=0) + { + if (lastsong >= 0) + MusicMenu[start+lastsong].active = 1; + + StartCPMusic(songs[start + which]); + MusicMenu[start+which].active = 2; + DrawMenu (&MusicItems,&MusicMenu[start]); + VW_UpdateScreen(); + lastsong = which; + } + } while(which>=0); + + MenuFadeOut(); + IN_ClearKeysDown(); +#ifdef SPEAR + UnCacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); +#else + UnCacheLump (CONTROLS_LUMP_START,CONTROLS_LUMP_END); +#endif +} +#endif + + +/* +========================== += += InitGame += += Load a few things right away += +========================== +*/ + +void InitGame (void) +{ + int i,x,y; + unsigned *blockstart; + + if (MS_CheckParm ("virtual")) + virtualreality = true; + else + virtualreality = false; + + MM_Startup (); // so the signon screen can be freed + + SignonScreen (); + + VW_Startup (); + IN_Startup (); + PM_Startup (); + PM_UnlockMainMem (); + SD_Startup (); + CA_Startup (); + US_Startup (); + + +#ifndef SPEAR + if (mminfo.mainmem < 235000L) +#else + if (mminfo.mainmem < 257000L && !MS_CheckParm("debugmode")) +#endif + { + memptr screen; + + CA_CacheGrChunk (ERRORSCREEN); + screen = grsegs[ERRORSCREEN]; + ShutdownId(); + movedata ((unsigned)screen,7+7*160,0xb800,0,17*160); + gotoxy (1,23); + exit(1); + } + + +// +// build some tables +// + InitDigiMap (); + + for (i=0;i YEAR || + (d.month >= MONTH && d.day >= DAY)) + { + printf("Sorry, BETA-TESTING is over. Thanks for you help.\n"); + exit(1); + } +#endif + + CheckForEpisodes(); + + Patch386 (); + + InitGame (); + + DemoLoop(); + + Quit("Demo loop exited???"); +} + diff --git a/16/wf3d8086/wl_menu.c b/16/wf3d8086/wl_menu.c new file mode 100755 index 00000000..7d1521cb --- /dev/null +++ b/16/wf3d8086/wl_menu.c @@ -0,0 +1,3986 @@ +//////////////////////////////////////////////////////////////////// +// +// WL_MENU.C +// by John Romero (C) 1992 Id Software, Inc. +// +//////////////////////////////////////////////////////////////////// +#include "wl_def.h" +#pragma hdrstop + +// +// PRIVATE PROTOTYPES +// +void CP_ReadThis(void); + +#ifdef SPEAR +#define STARTITEM newgame + +#else +#ifdef GOODTIMES +#define STARTITEM newgame + +#else +#define STARTITEM readthis +#endif +#endif + +char far endStrings[9][80]= +{ +#ifndef SPEAR + {"Dost thou wish to\nleave with such hasty\nabandon?"}, + {"Chickening out...\nalready?"}, + {"Press N for more carnage.\nPress Y to be a weenie."}, + {"So, you think you can\nquit this easily, huh?"}, + {"Press N to save the world.\nPress Y to abandon it in\nits hour of need."}, + {"Press N if you are brave.\nPress Y to cower in shame."}, + {"Heroes, press N.\nWimps, press Y."}, + {"You are at an intersection.\nA sign says, 'Press Y to quit.'\n>"}, + {"For guns and glory, press N.\nFor work and worry, press Y."} +#else + ENDSTR1, + ENDSTR2, + ENDSTR3, + ENDSTR4, + ENDSTR5, + ENDSTR6, + ENDSTR7, + ENDSTR8, + ENDSTR9 +#endif +}; + +CP_iteminfo + MainItems={MENU_X,MENU_Y,10,STARTITEM,24}, + SndItems={SM_X,SM_Y1,12,0,52}, + LSItems={LSM_X,LSM_Y,10,0,24}, + CtlItems={CTL_X,CTL_Y,6,-1,56}, + CusItems={8,CST_Y+13*2,9,-1,0}, + NewEitems={NE_X,NE_Y,11,0,88}, + NewItems={NM_X,NM_Y,4,2,24}; + +#pragma warn -sus +CP_itemtype far +MainMenu[]= +{ +#ifdef JAPAN + {1,"",CP_NewGame}, + {1,"",CP_Sound}, + {1,"",CP_Control}, + {1,"",CP_LoadGame}, + {0,"",CP_SaveGame}, + {1,"",CP_ChangeView}, + {2,"",CP_ReadThis}, + {1,"",CP_ViewScores}, + {1,"",0}, + {1,"",0} +#else + + {1,STR_NG,CP_NewGame}, + {1,STR_SD,CP_Sound}, + {1,STR_CL,CP_Control}, + {1,STR_LG,CP_LoadGame}, + {0,STR_SG,CP_SaveGame}, + {1,STR_CV,CP_ChangeView}, + +#ifndef GOODTIMES +#ifndef SPEAR + + #ifdef SPANISH + {2,"Ve esto!",CP_ReadThis}, + #else + {2,"Read This!",CP_ReadThis}, + #endif + +#endif +#endif + + {1,STR_VS,CP_ViewScores}, + {1,STR_BD,0}, + {1,STR_QT,0} +#endif +}, + +far SndMenu[]= +{ +#ifdef JAPAN + {1,"",0}, + {1,"",0}, + {1,"",0}, + {0,"",0}, + {0,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {0,"",0}, + {0,"",0}, + {1,"",0}, + {1,"",0}, +#else + {1,STR_NONE,0}, + {1,STR_PC,0}, + {1,STR_ALSB,0}, + {0,"",0}, + {0,"",0}, + {1,STR_NONE,0}, + {1,STR_DISNEY,0}, + {1,STR_SB,0}, + {0,"",0}, + {0,"",0}, + {1,STR_NONE,0}, + {1,STR_ALSB,0} +#endif +}, + +far CtlMenu[]= +{ +#ifdef JAPAN + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",MouseSensitivity}, + {1,"",CustomControls} +#else + {0,STR_MOUSEEN,0}, + {0,STR_JOYEN,0}, + {0,STR_PORT2,0}, + {0,STR_GAMEPAD,0}, + {0,STR_SENS,MouseSensitivity}, + {1,STR_CUSTOM,CustomControls} +#endif +}, + +#pragma warn +sus + +#ifndef SPEAR +far NewEmenu[]= +{ +#ifdef JAPAN +#ifdef JAPDEMO + {1,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, + {0,"",0}, +#else + {1,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0} +#endif +#else + #ifdef SPANISH + {1,"Episodio 1\n" + "Fuga desde Wolfenstein",0}, + {0,"",0}, + {3,"Episodio 2\n" + "Operacion Eisenfaust",0}, + {0,"",0}, + {3,"Episodio 3\n" + "Muere, Fuhrer, Muere!",0}, + {0,"",0}, + {3,"Episodio 4\n" + "Un Negro Secreto",0}, + {0,"",0}, + {3,"Episodio 5\n" + "Huellas del Loco",0}, + {0,"",0}, + {3,"Episodio 6\n" + "Confrontacion",0} + #else + {1,"Episode 1\n" + "Escape from Wolfenstein",0}, + {0,"",0}, + {3,"Episode 2\n" + "Operation: Eisenfaust",0}, + {0,"",0}, + {3,"Episode 3\n" + "Die, Fuhrer, Die!",0}, + {0,"",0}, + {3,"Episode 4\n" + "A Dark Secret",0}, + {0,"",0}, + {3,"Episode 5\n" + "Trail of the Madman",0}, + {0,"",0}, + {3,"Episode 6\n" + "Confrontation",0} + #endif +#endif +}, +#endif + + +far NewMenu[]= +{ +#ifdef JAPAN + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0} +#else + {1,STR_DADDY,0}, + {1,STR_HURTME,0}, + {1,STR_BRINGEM,0}, + {1,STR_DEATH,0} +#endif +}, + +far LSMenu[]= +{ + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0}, + {1,"",0} +}, + +far CusMenu[]= +{ + {1,"",0}, + {0,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0}, + {0,"",0}, + {1,"",0}, + {0,"",0}, + {1,"",0} +} +; + + +int color_hlite[]={ + DEACTIVE, + HIGHLIGHT, + READHCOLOR, + 0x67 + }, + + color_norml[]={ + DEACTIVE, + TEXTCOLOR, + READCOLOR, + 0x6b + }; + +int EpisodeSelect[6]={1}; + + +int SaveGamesAvail[10],StartGame,SoundStatus=1,pickquick; +char SaveGameNames[10][32],SaveName[13]="SAVEGAM?."; + + +//////////////////////////////////////////////////////////////////// +// +// INPUT MANAGER SCANCODE TABLES +// +//////////////////////////////////////////////////////////////////// +static byte + *ScanNames[] = // Scan code names with single chars + { + "?","?","1","2","3","4","5","6","7","8","9","0","-","+","?","?", + "Q","W","E","R","T","Y","U","I","O","P","[","]","|","?","A","S", + "D","F","G","H","J","K","L",";","\"","?","?","?","Z","X","C","V", + "B","N","M",",",".","/","?","?","?","?","?","?","?","?","?","?", + "?","?","?","?","?","?","?","?","\xf","?","-","\x15","5","\x11","+","?", + "\x13","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?", + "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?", + "?","?","?","?","?","?","?","?","?","?","?","?","?","?","?","?" + }, // DEBUG - consolidate these + far ExtScanCodes[] = // Scan codes with >1 char names + { + 1,0xe,0xf,0x1d,0x2a,0x39,0x3a,0x3b,0x3c,0x3d,0x3e, + 0x3f,0x40,0x41,0x42,0x43,0x44,0x57,0x59,0x46,0x1c,0x36, + 0x37,0x38,0x47,0x49,0x4f,0x51,0x52,0x53,0x45,0x48, + 0x50,0x4b,0x4d,0x00 + }, + *ExtScanNames[] = // Names corresponding to ExtScanCodes + { + "Esc","BkSp","Tab","Ctrl","LShft","Space","CapsLk","F1","F2","F3","F4", + "F5","F6","F7","F8","F9","F10","F11","F12","ScrlLk","Enter","RShft", + "PrtSc","Alt","Home","PgUp","End","PgDn","Ins","Del","NumLk","Up", + "Down","Left","Right","" + }; + + +//////////////////////////////////////////////////////////////////// +// +// Wolfenstein Control Panel! Ta Da! +// +//////////////////////////////////////////////////////////////////// +void US_ControlPanel(byte scancode) +{ + int which,i,start; + + + if (ingame) + if (CP_CheckQuick(scancode)) + return; + + StartCPMusic(MENUSONG); + SetupControlPanel(); + + // + // F-KEYS FROM WITHIN GAME + // + switch(scancode) + { + case sc_F1: + #ifdef SPEAR + BossKey(); + #else + #ifdef GOODTIMES + BossKey(); + #else + HelpScreens(); + #endif + #endif + goto finishup; + + case sc_F2: + CP_SaveGame(0); + goto finishup; + + case sc_F3: + CP_LoadGame(0); + goto finishup; + + case sc_F4: + CP_Sound(); + goto finishup; + + case sc_F5: + CP_ChangeView(); + goto finishup; + + case sc_F6: + CP_Control(); + goto finishup; + + finishup: + CleanupControlPanel(); + #ifdef SPEAR + UnCacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + #endif + return; + } + +#ifdef SPEAR + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif + + DrawMainMenu(); + MenuFadeIn(); + StartGame=0; + + // + // MAIN MENU LOOP + // + do + { + which=HandleMenu(&MainItems,&MainMenu[0],NULL); + + #ifdef SPEAR + #ifndef SPEARDEMO + // + // EASTER EGG FOR SPEAR OF DESTINY! + // + if (Keyboard[sc_I] && Keyboard[sc_D]) + { + VW_FadeOut(); + StartCPMusic (XJAZNAZI_MUS); + UnCacheLump(OPTIONS_LUMP_START,OPTIONS_LUMP_END); + UnCacheLump(BACKDROP_LUMP_START,BACKDROP_LUMP_END); + MM_SortMem (); + ClearMemory (); + + + CA_CacheGrChunk (IDGUYS1PIC); + VWB_DrawPic(0,0,IDGUYS1PIC); + UNCACHEGRCHUNK(IDGUYS1PIC); + + CA_CacheGrChunk (IDGUYS2PIC); + VWB_DrawPic(0,80,IDGUYS2PIC); + UNCACHEGRCHUNK(IDGUYS2PIC); + + VW_UpdateScreen(); + + CA_CacheGrChunk (IDGUYSPALETTE); + VL_FadeIn(0,255,grsegs[IDGUYSPALETTE],30); + UNCACHEGRCHUNK(IDGUYSPALETTE); + + while (Keyboard[sc_I] || Keyboard[sc_D]); + IN_ClearKeysDown(); + IN_Ack(); + + VW_FadeOut(); + + CacheLump(BACKDROP_LUMP_START,BACKDROP_LUMP_END); + CacheLump(OPTIONS_LUMP_START,OPTIONS_LUMP_END); + DrawMainMenu(); + StartCPMusic (MENUSONG); + MenuFadeIn(); + } + #endif + #endif + + switch(which) + { + case viewscores: + if (MainMenu[viewscores].routine == NULL) + if (CP_EndGame()) + StartGame=1; + + DrawMainMenu(); + MenuFadeIn(); + break; + + case backtodemo: + #ifdef SPEAR + if (!ingame) + { + // + // DEALLOCATE ALL SOUNDS! + // + switch (SoundMode) + { + case sdm_PC: + start = STARTPCSOUNDS; + break; + case sdm_AdLib: + start = STARTADLIBSOUNDS; + break; + } + + if (SoundMode != sdm_Off) + for (i=0;i"); + while (!Keyboard[sc_Escape]) + IN_ClearKeysDown(); + + SD_MusicOn(); + VL_SetVGAPlaneMode (); + VL_TestPaletteSet (); + VL_SetPalette (&gamepal); + LoadLatchMem(); +} +#endif +#endif + +//////////////////////////////////////////////////////////////////// +// +// CHECK QUICK-KEYS & QUIT (WHILE IN A GAME) +// +//////////////////////////////////////////////////////////////////// +int CP_CheckQuick(unsigned scancode) +{ + switch(scancode) + { + // + // END GAME + // + case sc_F7: + CA_CacheGrChunk(STARTFONT+1); + + WindowH=160; + #ifdef JAPAN + if (GetYorN(7,8,C_JAPQUITPIC)) + #else + if (Confirm(ENDGAMESTR)) + #endif + { + playstate = ex_died; + pickquick = gamestate.lives = 0; + } + + DrawAllPlayBorder(); + WindowH=200; + fontnumber=0; + MainMenu[savegame].active = 0; + return 1; + + // + // QUICKSAVE + // + case sc_F8: + if (SaveGamesAvail[LSItems.curpos] && pickquick) + { + CA_CacheGrChunk(STARTFONT+1); + fontnumber = 1; + Message(STR_SAVING"..."); + CP_SaveGame(1); + fontnumber=0; + } + else + { + #ifndef SPEAR + CA_CacheGrChunk(STARTFONT+1); + CA_CacheGrChunk(C_CURSOR1PIC); + CA_CacheGrChunk(C_CURSOR2PIC); + CA_CacheGrChunk(C_DISKLOADING1PIC); + CA_CacheGrChunk(C_DISKLOADING2PIC); + CA_CacheGrChunk(C_SAVEGAMEPIC); + CA_CacheGrChunk(C_MOUSELBACKPIC); + #else + CacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); + CA_CacheGrChunk(C_CURSOR1PIC); + #endif + + VW_FadeOut (); + + StartCPMusic(MENUSONG); + pickquick=CP_SaveGame(0); + + SETFONTCOLOR(0,15); + IN_ClearKeysDown(); + DrawPlayScreen (); + + if (!startgame && !loadedgame) + { + VW_FadeIn (); + StartMusic (); + } + + if (loadedgame) + playstate = ex_abort; + lasttimecount = TimeCount; + + if (MousePresent) + Mouse(MDelta); // Clear accumulated mouse movement + + PM_CheckMainMem (); + + #ifndef SPEAR + UNCACHEGRCHUNK(C_CURSOR1PIC); + UNCACHEGRCHUNK(C_CURSOR2PIC); + UNCACHEGRCHUNK(C_DISKLOADING1PIC); + UNCACHEGRCHUNK(C_DISKLOADING2PIC); + UNCACHEGRCHUNK(C_SAVEGAMEPIC); + UNCACHEGRCHUNK(C_MOUSELBACKPIC); + #else + UnCacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); + #endif + } + return 1; + + // + // QUICKLOAD + // + case sc_F9: + if (SaveGamesAvail[LSItems.curpos] && pickquick) + { + char string[100]=STR_LGC; + + + CA_CacheGrChunk(STARTFONT+1); + fontnumber = 1; + + strcat(string,SaveGameNames[LSItems.curpos]); + strcat(string,"\"?"); + + if (Confirm(string)) + CP_LoadGame(1); + + DrawAllPlayBorder(); + fontnumber=0; + } + else + { + #ifndef SPEAR + CA_CacheGrChunk(STARTFONT+1); + CA_CacheGrChunk(C_CURSOR1PIC); + CA_CacheGrChunk(C_CURSOR2PIC); + CA_CacheGrChunk(C_DISKLOADING1PIC); + CA_CacheGrChunk(C_DISKLOADING2PIC); + CA_CacheGrChunk(C_LOADGAMEPIC); + CA_CacheGrChunk(C_MOUSELBACKPIC); + #else + CA_CacheGrChunk(C_CURSOR1PIC); + CacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); + #endif + + VW_FadeOut (); + + StartCPMusic(MENUSONG); + pickquick=CP_LoadGame(0); + + SETFONTCOLOR(0,15); + IN_ClearKeysDown(); + DrawPlayScreen (); + + if (!startgame && !loadedgame) + { + VW_FadeIn (); + StartMusic (); + } + + if (loadedgame) + playstate = ex_abort; + + lasttimecount = TimeCount; + + if (MousePresent) + Mouse(MDelta); // Clear accumulated mouse movement + PM_CheckMainMem (); + + #ifndef SPEAR + UNCACHEGRCHUNK(C_CURSOR1PIC); + UNCACHEGRCHUNK(C_CURSOR2PIC); + UNCACHEGRCHUNK(C_DISKLOADING1PIC); + UNCACHEGRCHUNK(C_DISKLOADING2PIC); + UNCACHEGRCHUNK(C_LOADGAMEPIC); + UNCACHEGRCHUNK(C_MOUSELBACKPIC); + #else + UnCacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); + #endif + } + return 1; + + // + // QUIT + // + case sc_F10: + CA_CacheGrChunk(STARTFONT+1); + + WindowX=WindowY=0; + WindowW=320; + WindowH=160; + #ifdef JAPAN + if (GetYorN(7,8,C_QUITMSGPIC)) + #else + #ifdef SPANISH + if (Confirm(ENDGAMESTR)) + #else + if (Confirm(endStrings[US_RndT()&0x7+(US_RndT()&1)])) + #endif + #endif + { + int i; + + + VW_UpdateScreen(); + SD_MusicOff(); + SD_StopSound(); + MenuFadeOut(); + + // + // SHUT-UP THE ADLIB + // + for (i=1;i<=0xf5;i++) + alOut(i,0); + Quit(NULL); + } + + DrawAllPlayBorder(); + WindowH=200; + fontnumber=0; + return 1; + } + + return 0; +} + + +//////////////////////////////////////////////////////////////////// +// +// END THE CURRENT GAME +// +//////////////////////////////////////////////////////////////////// +int CP_EndGame(void) +{ +#ifdef JAPAN + if (!GetYorN(7,8,C_JAPQUITPIC)) +#else + if (!Confirm(ENDGAMESTR)) +#endif + return 0; + + pickquick = gamestate.lives = 0; + playstate = ex_died; + + #pragma warn -sus + MainMenu[savegame].active = 0; + MainMenu[viewscores].routine=CP_ViewScores; + #ifndef JAPAN + _fstrcpy(MainMenu[viewscores].string,STR_VS); + #endif + #pragma warn +sus + + return 1; +} + + +//////////////////////////////////////////////////////////////////// +// +// VIEW THE HIGH SCORES +// +//////////////////////////////////////////////////////////////////// +void CP_ViewScores(void) +{ + fontnumber=0; + +#ifdef SPEAR + UnCacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + StartCPMusic (XAWARD_MUS); +#else + StartCPMusic (ROSTER_MUS); +#endif + + DrawHighScores (); + VW_UpdateScreen (); + MenuFadeIn(); + fontnumber=1; + + IN_Ack(); + + StartCPMusic(MENUSONG); + MenuFadeOut(); + +#ifdef SPEAR + CacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif +} + + +//////////////////////////////////////////////////////////////////// +// +// START A NEW GAME +// +//////////////////////////////////////////////////////////////////// +void CP_NewGame(void) +{ + int which,episode; + +#ifdef SPEAR + UnCacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif + + +#ifndef SPEAR +firstpart: + + DrawNewEpisode(); + do + { + which=HandleMenu(&NewEitems,&NewEmenu[0],NULL); + switch(which) + { + case -1: + MenuFadeOut(); + return; + + default: + if (!EpisodeSelect[which/2]) + { + SD_PlaySound (NOWAYSND); + Message("Please select \"Read This!\"\n" + "from the Options menu to\n" + "find out how to order this\n" + "episode from Apogee."); + IN_ClearKeysDown(); + IN_Ack(); + DrawNewEpisode(); + which = 0; + } + else + { + episode = which/2; + which = 1; + } + break; + } + + } while (!which); + + ShootSnd(); + + // + // ALREADY IN A GAME? + // + if (ingame) + #ifdef JAPAN + if (!GetYorN(7,8,C_JAPNEWGAMEPIC)) + #else + if (!Confirm(CURGAME)) + #endif + { + MenuFadeOut(); + return; + } + + MenuFadeOut(); + +#else + episode = 0; + + // + // ALREADY IN A GAME? + // + CacheLump (NEWGAME_LUMP_START,NEWGAME_LUMP_END); + DrawNewGame(); + if (ingame) + if (!Confirm(CURGAME)) + { + MenuFadeOut(); + UnCacheLump (NEWGAME_LUMP_START,NEWGAME_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + return; + } + +#endif + + DrawNewGame(); + which=HandleMenu(&NewItems,&NewMenu[0],DrawNewGameDiff); + if (which<0) + { + MenuFadeOut(); + #ifndef SPEAR + goto firstpart; + #else + UnCacheLump (NEWGAME_LUMP_START,NEWGAME_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + return; + #endif + } + + ShootSnd(); + NewGame(which,episode); + StartGame=1; + MenuFadeOut(); + + // + // CHANGE "READ THIS!" TO NORMAL COLOR + // + #ifndef SPEAR + #ifndef GOODTIMES + MainMenu[readthis].active=1; + #endif + #endif + + pickquick = 0; + +#ifdef SPEAR + UnCacheLump (NEWGAME_LUMP_START,NEWGAME_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif +} + + +#ifndef SPEAR +///////////////////// +// +// DRAW NEW EPISODE MENU +// +void DrawNewEpisode(void) +{ + int i; + +#ifdef JAPAN + CA_CacheScreen(S_EPISODEPIC); +#else + ClearMScreen(); + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + + DrawWindow(NE_X-4,NE_Y-4,NE_W+8,NE_H+8,BKGDCOLOR); + SETFONTCOLOR(READHCOLOR,BKGDCOLOR); + PrintY=2; + WindowX=0; + #ifdef SPANISH + US_CPrint("Cual episodio jugar?"); + #else + US_CPrint("Which episode to play?"); + #endif +#endif + + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + DrawMenu(&NewEitems,&NewEmenu[0]); + + for (i=0;i<6;i++) + VWB_DrawPic(NE_X+32,NE_Y+i*26,C_EPISODE1PIC+i); + + VW_UpdateScreen(); + MenuFadeIn(); + WaitKeyUp(); +} +#endif + +///////////////////// +// +// DRAW NEW GAME MENU +// +void DrawNewGame(void) +{ +#ifdef JAPAN + CA_CacheScreen(S_SKILLPIC); +#else + ClearMScreen(); + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + + SETFONTCOLOR(READHCOLOR,BKGDCOLOR); + PrintX=NM_X+20; + PrintY=NM_Y-32; + +#ifndef SPEAR + #ifdef SPANISH + US_Print("Eres macho?"); + #else + US_Print("How tough are you?"); + #endif +#else + VWB_DrawPic (PrintX,PrintY,C_HOWTOUGHPIC); +#endif + + DrawWindow(NM_X-5,NM_Y-10,NM_W,NM_H,BKGDCOLOR); +#endif + + DrawMenu(&NewItems,&NewMenu[0]); + DrawNewGameDiff(NewItems.curpos); + VW_UpdateScreen(); + MenuFadeIn(); + WaitKeyUp(); +} + + +//////////////////////// +// +// DRAW NEW GAME GRAPHIC +// +void DrawNewGameDiff(int w) +{ + VWB_DrawPic(NM_X+185,NM_Y+7,w+C_BABYMODEPIC); +} + + +//////////////////////////////////////////////////////////////////// +// +// HANDLE SOUND MENU +// +//////////////////////////////////////////////////////////////////// +void CP_Sound(void) +{ + int which,i; + + +#ifdef SPEAR + UnCacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + CacheLump (SOUND_LUMP_START,SOUND_LUMP_END); +#endif + + DrawSoundMenu(); + MenuFadeIn(); + WaitKeyUp(); + + do + { + which=HandleMenu(&SndItems,&SndMenu[0],NULL); + // + // HANDLE MENU CHOICES + // + switch(which) + { + // + // SOUND EFFECTS + // + case 0: + if (SoundMode!=sdm_Off) + { + SD_WaitSoundDone(); + SD_SetSoundMode(sdm_Off); + DrawSoundMenu(); + } + break; + case 1: + if (SoundMode!=sdm_PC) + { + SD_WaitSoundDone(); + SD_SetSoundMode(sdm_PC); + CA_LoadAllSounds(); + DrawSoundMenu(); + ShootSnd(); + } + break; + case 2: + if (SoundMode!=sdm_AdLib) + { + SD_WaitSoundDone(); + SD_SetSoundMode(sdm_AdLib); + CA_LoadAllSounds(); + DrawSoundMenu(); + ShootSnd(); + } + break; + + // + // DIGITIZED SOUND + // + case 5: + if (DigiMode!=sds_Off) + { + SD_SetDigiDevice(sds_Off); + DrawSoundMenu(); + } + break; + case 6: + if (DigiMode!=sds_SoundSource) + { + SD_SetDigiDevice(sds_SoundSource); + DrawSoundMenu(); + ShootSnd(); + } + break; + case 7: + if (DigiMode!=sds_SoundBlaster) + { + SD_SetDigiDevice(sds_SoundBlaster); + DrawSoundMenu(); + ShootSnd(); + } + break; + + // + // MUSIC + // + case 10: + if (MusicMode!=smm_Off) + { + SD_SetMusicMode(smm_Off); + DrawSoundMenu(); + ShootSnd(); + } + break; + case 11: + if (MusicMode!=smm_AdLib) + { + SD_SetMusicMode(smm_AdLib); + DrawSoundMenu(); + ShootSnd(); + StartCPMusic(MENUSONG); + } + break; + } + } while(which>=0); + + MenuFadeOut(); + +#ifdef SPEAR + UnCacheLump (SOUND_LUMP_START,SOUND_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif +} + + +////////////////////// +// +// DRAW THE SOUND MENU +// +void DrawSoundMenu(void) +{ + int i,on; + + +#ifdef JAPAN + CA_CacheScreen(S_SOUNDPIC); +#else + // + // DRAW SOUND MENU + // + ClearMScreen(); + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + + DrawWindow(SM_X-8,SM_Y1-3,SM_W,SM_H1,BKGDCOLOR); + DrawWindow(SM_X-8,SM_Y2-3,SM_W,SM_H2,BKGDCOLOR); + DrawWindow(SM_X-8,SM_Y3-3,SM_W,SM_H3,BKGDCOLOR); +#endif + + // + // IF NO ADLIB, NON-CHOOSENESS! + // + if (!AdLibPresent && !SoundBlasterPresent) + { + SndMenu[2].active=SndMenu[10].active=SndMenu[11].active=0; + } + + if (!SoundSourcePresent) + SndMenu[6].active=0; + + if (!SoundBlasterPresent) + SndMenu[7].active=0; + + if (!SoundSourcePresent && !SoundBlasterPresent) + SndMenu[5].active=0; + + DrawMenu(&SndItems,&SndMenu[0]); +#ifndef JAPAN + VWB_DrawPic(100,SM_Y1-20,C_FXTITLEPIC); + VWB_DrawPic(100,SM_Y2-20,C_DIGITITLEPIC); + VWB_DrawPic(100,SM_Y3-20,C_MUSICTITLEPIC); +#endif + + for (i=0;i=0 && SaveGamesAvail[which]) + { + ShootSnd(); + name[7]=which+'0'; + + handle=open(name,O_BINARY); + lseek(handle,32,SEEK_SET); + + DrawLSAction(0); + loadedgame=true; + + LoadTheGame(handle,LSA_X+8,LSA_Y+5); + close(handle); + + StartGame=1; + ShootSnd(); + // + // CHANGE "READ THIS!" TO NORMAL COLOR + // + + #ifndef SPEAR + #ifndef GOODTIMES + MainMenu[readthis].active=1; + #endif + #endif + + exit=1; + break; + } + + } while(which>=0); + + MenuFadeOut(); + +#ifdef SPEAR + UnCacheLump (LOADSAVE_LUMP_START,LOADSAVE_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif + + return exit; +} + + +/////////////////////////////////// +// +// HIGHLIGHT CURRENT SELECTED ENTRY +// +void TrackWhichGame(int w) +{ + static int lastgameon=0; + + PrintLSEntry(lastgameon,TEXTCOLOR); + PrintLSEntry(w,HIGHLIGHT); + + lastgameon=w; +} + + +//////////////////////////// +// +// DRAW THE LOAD/SAVE SCREEN +// +void DrawLoadSaveScreen(int loadsave) +{ + #define DISKX 100 + #define DISKY 0 + + int i; + + + ClearMScreen(); + fontnumber=1; + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + DrawWindow(LSM_X-10,LSM_Y-5,LSM_W,LSM_H,BKGDCOLOR); + DrawStripes(10); + + if (!loadsave) + VWB_DrawPic(60,0,C_LOADGAMEPIC); + else + VWB_DrawPic(60,0,C_SAVEGAMEPIC); + + for (i=0;i<10;i++) + PrintLSEntry(i,TEXTCOLOR); + + DrawMenu(&LSItems,&LSMenu[0]); + VW_UpdateScreen(); + MenuFadeIn(); + WaitKeyUp(); +} + + +/////////////////////////////////////////// +// +// PRINT LOAD/SAVE GAME ENTRY W/BOX OUTLINE +// +void PrintLSEntry(int w,int color) +{ + SETFONTCOLOR(color,BKGDCOLOR); + DrawOutline(LSM_X+LSItems.indent,LSM_Y+w*13,LSM_W-LSItems.indent-15,11,color,color); + PrintX=LSM_X+LSItems.indent+2; + PrintY=LSM_Y+w*13+1; + fontnumber=0; + + if (SaveGamesAvail[w]) + US_Print(SaveGameNames[w]); + else + US_Print(" - "STR_EMPTY" -"); + + fontnumber=1; +} + + +//////////////////////////////////////////////////////////////////// +// +// SAVE CURRENT GAME +// +//////////////////////////////////////////////////////////////////// +int CP_SaveGame(int quick) +{ + int handle,which,exit=0; + unsigned nwritten; + char name[13],input[32]; + + + strcpy(name,SaveName); + + // + // QUICKSAVE? + // + if (quick) + { + which=LSItems.curpos; + + if (SaveGamesAvail[which]) + { + name[7]=which+'0'; + unlink(name); + handle=creat(name,S_IREAD|S_IWRITE); + + strcpy(input,&SaveGameNames[which][0]); + + _dos_write(handle,(void far *)input,32,&nwritten); + lseek(handle,32,SEEK_SET); + SaveTheGame(handle,0,0); + close(handle); + + return 1; + } + } + + +#ifdef SPEAR + UnCacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + CacheLump (LOADSAVE_LUMP_START,LOADSAVE_LUMP_END); +#endif + + DrawLoadSaveScreen(1); + + do + { + which=HandleMenu(&LSItems,&LSMenu[0],TrackWhichGame); + if (which>=0) + { + // + // OVERWRITE EXISTING SAVEGAME? + // + if (SaveGamesAvail[which]) + #ifdef JAPAN + if (!GetYorN(7,8,C_JAPSAVEOVERPIC)) + #else + if (!Confirm(GAMESVD)) + #endif + { + DrawLoadSaveScreen(1); + continue; + } + else + { + DrawLoadSaveScreen(1); + PrintLSEntry(which,HIGHLIGHT); + VW_UpdateScreen(); + } + + ShootSnd(); + + strcpy(input,&SaveGameNames[which][0]); + name[7]=which+'0'; + + fontnumber=0; + if (!SaveGamesAvail[which]) + VWB_Bar(LSM_X+LSItems.indent+1,LSM_Y+which*13+1,LSM_W-LSItems.indent-16,10,BKGDCOLOR); + VW_UpdateScreen(); + + if (US_LineInput(LSM_X+LSItems.indent+2,LSM_Y+which*13+1,input,input,true,31,LSM_W-LSItems.indent-30)) + { + SaveGamesAvail[which]=1; + strcpy(&SaveGameNames[which][0],input); + + unlink(name); + handle=creat(name,S_IREAD|S_IWRITE); + _dos_write(handle,(void far *)input,32,&nwritten); + lseek(handle,32,SEEK_SET); + + DrawLSAction(1); + SaveTheGame(handle,LSA_X+8,LSA_Y+5); + + close(handle); + + ShootSnd(); + exit=1; + } + else + { + VWB_Bar(LSM_X+LSItems.indent+1,LSM_Y+which*13+1,LSM_W-LSItems.indent-16,10,BKGDCOLOR); + PrintLSEntry(which,HIGHLIGHT); + VW_UpdateScreen(); + SD_PlaySound(ESCPRESSEDSND); + continue; + } + + fontnumber=1; + break; + } + + } while(which>=0); + + MenuFadeOut(); + +#ifdef SPEAR + UnCacheLump (LOADSAVE_LUMP_START,LOADSAVE_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif + + return exit; +} + + +//////////////////////////////////////////////////////////////////// +// +// CALIBRATE JOYSTICK +// +//////////////////////////////////////////////////////////////////// +int CalibrateJoystick(void) +{ + #define CALX 85 + #define CALY 40 + #define CALW 158 + #define CALH 140 + + unsigned xmin,ymin,xmax,ymax,jb; + + + + #ifdef JAPAN + VWB_DrawPic(CALX,CALY,C_JOY0PIC); + #else + DrawWindow(CALX-5,CALY-5,CALW,CALH,TEXTCOLOR); + DrawOutline(CALX-5,CALY-5,CALW,CALH,0,HIGHLIGHT); + SETFONTCOLOR(0,TEXTCOLOR); + + WindowX = PrintX = CALX; + WindowW = CALW; + WindowH = CALH; + WindowY = PrintY = CALY; + US_Print(" "STR_CALIB"\n "STR_JOYST"\n"); + VWB_DrawPic(CALX+40,CALY+30,C_JOY1PIC); + PrintY = CALY+80; + US_Print(STR_MOVEJOY); + SETFONTCOLOR(BKGDCOLOR,TEXTCOLOR); + US_Print(" "STR_ESCEXIT); + #endif + VW_UpdateScreen(); + + do + { + jb=IN_JoyButtons(); + if (Keyboard[sc_Escape]) + return 0; + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + PicturePause(); + #endif + + } while(!(jb&1)); + + SD_PlaySound(SHOOTSND); + IN_GetJoyAbs(joystickport,&xmin,&ymin); + + + #ifdef JAPAN + VWB_DrawPic(CALX,CALY,C_JOY1PIC); + #else + DrawWindow(CALX-5,CALY-5,CALW,CALH,TEXTCOLOR); + DrawOutline(CALX-5,CALY-5,CALW,CALH,0,HIGHLIGHT); + SETFONTCOLOR(0,TEXTCOLOR); + + PrintX = CALX; + PrintY = CALY; + US_Print(" "STR_CALIB"\n "STR_JOYST"\n"); + VWB_DrawPic(CALX+40,CALY+30,C_JOY2PIC); + PrintY = CALY+80; + US_Print(STR_MOVEJOY2); + SETFONTCOLOR(BKGDCOLOR,TEXTCOLOR); + US_Print(" "STR_ESCEXIT); + #endif + VW_UpdateScreen(); + + do + { + jb=IN_JoyButtons(); + if (Keyboard[sc_Escape]) + return 0; + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + PicturePause(); + #endif + } while(!(jb&2)); + + IN_GetJoyAbs(joystickport,&xmax,&ymax); + SD_PlaySound(SHOOTSND); + + while (IN_JoyButtons()); + + // + // ASSIGN ACTUAL VALUES HERE + // + if ((xmin != xmax) && (ymin != ymax)) + IN_SetupJoy(joystickport,xmin,xmax,ymin,ymax); + else + return 0; + + return 1; +} + + +//////////////////////////////////////////////////////////////////// +// +// DEFINE CONTROLS +// +//////////////////////////////////////////////////////////////////// +void CP_Control(void) +{ + #define CTL_SPC 70 + enum {MOUSEENABLE,JOYENABLE,USEPORT2,PADENABLE,MOUSESENS,CUSTOMIZE}; + int i,which; + + +#ifdef SPEAR + UnCacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); + CacheLump (CONTROL_LUMP_START,CONTROL_LUMP_END); +#endif + + DrawCtlScreen(); + MenuFadeIn(); + WaitKeyUp(); + + do + { + which=HandleMenu(&CtlItems,&CtlMenu[0],NULL); + switch(which) + { + case MOUSEENABLE: + mouseenabled^=1; + _CX=_DX=CENTER; + Mouse(4); + DrawCtlScreen(); + CusItems.curpos=-1; + ShootSnd(); + break; + + case JOYENABLE: + joystickenabled^=1; + if (joystickenabled) + if (!CalibrateJoystick()) + joystickenabled = 0; + DrawCtlScreen(); + CusItems.curpos=-1; + ShootSnd(); + break; + + case USEPORT2: + joystickport^=1; + DrawCtlScreen(); + ShootSnd(); + break; + + case PADENABLE: + joypadenabled^=1; + DrawCtlScreen(); + ShootSnd(); + break; + + case MOUSESENS: + case CUSTOMIZE: + DrawCtlScreen(); + MenuFadeIn(); + WaitKeyUp(); + break; + } + } while(which>=0); + + MenuFadeOut(); + +#ifdef SPEAR + UnCacheLump (CONTROL_LUMP_START,CONTROL_LUMP_END); + CacheLump (OPTIONS_LUMP_START,OPTIONS_LUMP_END); +#endif +} + + +//////////////////////////////// +// +// DRAW MOUSE SENSITIVITY SCREEN +// +void DrawMouseSens(void) +{ +#ifdef JAPAN + CA_CacheScreen(S_MOUSESENSPIC); +#else + ClearMScreen(); + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + #ifdef SPANISH + DrawWindow(10,80,300,43,BKGDCOLOR); + #else + DrawWindow(10,80,300,30,BKGDCOLOR); + #endif + + WindowX=0; + WindowW=320; + PrintY=82; + SETFONTCOLOR(READCOLOR,BKGDCOLOR); + US_CPrint(STR_MOUSEADJ); + + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + #ifdef SPANISH + PrintX=14; + PrintY=95+13; + US_Print(STR_SLOW); + PrintX=252; + US_Print(STR_FAST); + #else + PrintX=14; + PrintY=95; + US_Print(STR_SLOW); + PrintX=269; + US_Print(STR_FAST); + #endif +#endif + + VWB_Bar(60,97,200,10,TEXTCOLOR); + DrawOutline(60,97,200,10,0,HIGHLIGHT); + DrawOutline(60+20*mouseadjustment,97,20,10,0,READCOLOR); + VWB_Bar(61+20*mouseadjustment,98,19,9,READHCOLOR); + + VW_UpdateScreen(); + MenuFadeIn(); +} + + +/////////////////////////// +// +// ADJUST MOUSE SENSITIVITY +// +void MouseSensitivity(void) +{ + ControlInfo ci; + int exit=0,oldMA; + + + oldMA=mouseadjustment; + DrawMouseSens(); + do + { + ReadAnyControl(&ci); + switch(ci.dir) + { + case dir_North: + case dir_West: + if (mouseadjustment) + { + mouseadjustment--; + VWB_Bar(60,97,200,10,TEXTCOLOR); + DrawOutline(60,97,200,10,0,HIGHLIGHT); + DrawOutline(60+20*mouseadjustment,97,20,10,0,READCOLOR); + VWB_Bar(61+20*mouseadjustment,98,19,9,READHCOLOR); + VW_UpdateScreen(); + SD_PlaySound(MOVEGUN1SND); + while(Keyboard[sc_LeftArrow]); + WaitKeyUp(); + } + break; + + case dir_South: + case dir_East: + if (mouseadjustment<9) + { + mouseadjustment++; + VWB_Bar(60,97,200,10,TEXTCOLOR); + DrawOutline(60,97,200,10,0,HIGHLIGHT); + DrawOutline(60+20*mouseadjustment,97,20,10,0,READCOLOR); + VWB_Bar(61+20*mouseadjustment,98,19,9,READHCOLOR); + VW_UpdateScreen(); + SD_PlaySound(MOVEGUN1SND); + while(Keyboard[sc_RightArrow]); + WaitKeyUp(); + } + break; + } + + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + #else + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("debugmode")) + #endif + PicturePause(); + + if (ci.button0 || Keyboard[sc_Space] || Keyboard[sc_Enter]) + exit=1; + else + if (ci.button1 || Keyboard[sc_Escape]) + exit=2; + + } while(!exit); + + if (exit==2) + { + mouseadjustment=oldMA; + SD_PlaySound(ESCPRESSEDSND); + } + else + SD_PlaySound(SHOOTSND); + + WaitKeyUp(); + MenuFadeOut(); +} + + +/////////////////////////// +// +// DRAW CONTROL MENU SCREEN +// +void DrawCtlScreen(void) +{ + int i,x,y; + + +#ifdef JAPAN + CA_CacheScreen(S_CONTROLPIC); +#else + ClearMScreen(); + DrawStripes(10); + VWB_DrawPic(80,0,C_CONTROLPIC); + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + DrawWindow(CTL_X-8,CTL_Y-5,CTL_W,CTL_H,BKGDCOLOR); +#endif + WindowX=0; + WindowW=320; + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + + if (JoysPresent[0]) + CtlMenu[1].active= + CtlMenu[2].active= + CtlMenu[3].active=1; + + CtlMenu[2].active=CtlMenu[3].active=joystickenabled; + + if (MousePresent) + { + CtlMenu[4].active= + CtlMenu[0].active=1; + } + + CtlMenu[4].active=mouseenabled; + + + DrawMenu(&CtlItems,&CtlMenu[0]); + + + x=CTL_X+CtlItems.indent-24; + y=CTL_Y+3; + if (mouseenabled) + VWB_DrawPic(x,y,C_SELECTEDPIC); + else + VWB_DrawPic(x,y,C_NOTSELECTEDPIC); + + y=CTL_Y+16; + if (joystickenabled) + VWB_DrawPic(x,y,C_SELECTEDPIC); + else + VWB_DrawPic(x,y,C_NOTSELECTEDPIC); + + y=CTL_Y+29; + if (joystickport) + VWB_DrawPic(x,y,C_SELECTEDPIC); + else + VWB_DrawPic(x,y,C_NOTSELECTEDPIC); + + y=CTL_Y+42; + if (joypadenabled) + VWB_DrawPic(x,y,C_SELECTEDPIC); + else + VWB_DrawPic(x,y,C_NOTSELECTEDPIC); + + // + // PICK FIRST AVAILABLE SPOT + // + if (CtlItems.curpos<0 || !CtlMenu[CtlItems.curpos].active) + for (i=0;i<6;i++) + if (CtlMenu[i].active) + { + CtlItems.curpos=i; + break; + } + + DrawMenuGun(&CtlItems); + VW_UpdateScreen(); +} + + +//////////////////////////////////////////////////////////////////// +// +// CUSTOMIZE CONTROLS +// +//////////////////////////////////////////////////////////////////// +enum {FIRE,STRAFE,RUN,OPEN}; +char mbarray[4][3]={"b0","b1","b2","b3"}, + order[4]={RUN,OPEN,FIRE,STRAFE}; + + +void CustomControls(void) +{ + int which; + + + DrawCustomScreen(); + do + { + which=HandleMenu(&CusItems,&CusMenu[0],FixupCustom); + switch(which) + { + case 0: + DefineMouseBtns(); + DrawCustMouse(1); + break; + case 3: + DefineJoyBtns(); + DrawCustJoy(0); + break; + case 6: + DefineKeyBtns(); + DrawCustKeybd(0); + break; + case 8: + DefineKeyMove(); + DrawCustKeys(0); + } + } while(which>=0); + + + + MenuFadeOut(); +} + + +//////////////////////// +// +// DEFINE THE MOUSE BUTTONS +// +void DefineMouseBtns(void) +{ + CustomCtrls mouseallowed={0,1,1,1}; + EnterCtrlData(2,&mouseallowed,DrawCustMouse,PrintCustMouse,MOUSE); +} + + +//////////////////////// +// +// DEFINE THE JOYSTICK BUTTONS +// +void DefineJoyBtns(void) +{ + CustomCtrls joyallowed={1,1,1,1}; + EnterCtrlData(5,&joyallowed,DrawCustJoy,PrintCustJoy,JOYSTICK); +} + + +//////////////////////// +// +// DEFINE THE KEYBOARD BUTTONS +// +void DefineKeyBtns(void) +{ + CustomCtrls keyallowed={1,1,1,1}; + EnterCtrlData(8,&keyallowed,DrawCustKeybd,PrintCustKeybd,KEYBOARDBTNS); +} + + +//////////////////////// +// +// DEFINE THE KEYBOARD BUTTONS +// +void DefineKeyMove(void) +{ + CustomCtrls keyallowed={1,1,1,1}; + EnterCtrlData(10,&keyallowed,DrawCustKeys,PrintCustKeys,KEYBOARDMOVE); +} + + +//////////////////////// +// +// ENTER CONTROL DATA FOR ANY TYPE OF CONTROL +// +enum {FWRD,RIGHT,BKWD,LEFT}; +int moveorder[4]={LEFT,RIGHT,FWRD,BKWD}; + +void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*PrintRtn)(int),int type) +{ + int j,exit,tick,redraw,which,x,picked; + ControlInfo ci; + + + ShootSnd(); + PrintY=CST_Y+13*index; + IN_ClearKeysDown(); + exit=0; + redraw=1; + // + // FIND FIRST SPOT IN ALLOWED ARRAY + // + for (j=0;j<4;j++) + if (cust->allowed[j]) + { + which=j; + break; + } + + do + { + if (redraw) + { + x=CST_START+CST_SPC*which; + DrawWindow(5,PrintY-1,310,13,BKGDCOLOR); + + DrawRtn(1); + DrawWindow(x-2,PrintY,CST_SPC,11,TEXTCOLOR); + DrawOutline(x-2,PrintY,CST_SPC,11,0,HIGHLIGHT); + SETFONTCOLOR(0,TEXTCOLOR); + PrintRtn(which); + PrintX=x; + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + VW_UpdateScreen(); + WaitKeyUp(); + redraw=0; + } + + ReadAnyControl(&ci); + + if (type==MOUSE || type==JOYSTICK) + if (IN_KeyDown(sc_Enter)||IN_KeyDown(sc_Control)||IN_KeyDown(sc_Alt)) + { + IN_ClearKeysDown(); + ci.button0=ci.button1=false; + } + + // + // CHANGE BUTTON VALUE? + // + if ((ci.button0|ci.button1|ci.button2|ci.button3)|| + ((type==KEYBOARDBTNS||type==KEYBOARDMOVE) && LastScan==sc_Enter)) + { + tick=TimeCount=picked=0; + SETFONTCOLOR(0,TEXTCOLOR); + + do + { + int button,result=0; + + + if (type==KEYBOARDBTNS||type==KEYBOARDMOVE) + IN_ClearKeysDown(); + + // + // FLASH CURSOR + // + if (TimeCount>10) + { + switch(tick) + { + case 0: + VWB_Bar(x,PrintY+1,CST_SPC-2,10,TEXTCOLOR); + break; + case 1: + PrintX=x; + US_Print("?"); + SD_PlaySound(HITWALLSND); + } + tick^=1; + TimeCount=0; + VW_UpdateScreen(); + } + + // + // WHICH TYPE OF INPUT DO WE PROCESS? + // + switch(type) + { + case MOUSE: + Mouse(3); + button=_BX; + switch(button) + { + case 1: result=1; break; + case 2: result=2; break; + case 4: result=3; break; + } + + if (result) + { + int z; + + + for (z=0;z<4;z++) + if (order[which]==buttonmouse[z]) + { + buttonmouse[z]=bt_nobutton; + break; + } + + buttonmouse[result-1]=order[which]; + picked=1; + SD_PlaySound(SHOOTDOORSND); + } + break; + + case JOYSTICK: + if (ci.button0) result=1; + else + if (ci.button1) result=2; + else + if (ci.button2) result=3; + else + if (ci.button3) result=4; + + if (result) + { + int z; + + + for (z=0;z<4;z++) + if (order[which]==buttonjoy[z]) + { + buttonjoy[z]=bt_nobutton; + break; + } + + buttonjoy[result-1]=order[which]; + picked=1; + SD_PlaySound(SHOOTDOORSND); + } + break; + + case KEYBOARDBTNS: + if (LastScan) + { + buttonscan[order[which]]=LastScan; + picked=1; + ShootSnd(); + IN_ClearKeysDown(); + } + break; + + case KEYBOARDMOVE: + if (LastScan) + { + dirscan[moveorder[which]]=LastScan; + picked=1; + ShootSnd(); + IN_ClearKeysDown(); + } + break; + } + + // + // EXIT INPUT? + // + if (IN_KeyDown(sc_Escape)) + { + picked=1; + continue; + } + + } while(!picked); + + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + redraw=1; + WaitKeyUp(); + continue; + } + + if (ci.button1 || IN_KeyDown(sc_Escape)) + exit=1; + + // + // MOVE TO ANOTHER SPOT? + // + switch(ci.dir) + { + case dir_West: + do + { + which--; + if (which<0) + which=3; + } while(!cust->allowed[which]); + redraw=1; + SD_PlaySound(MOVEGUN1SND); + while(ReadAnyControl(&ci),ci.dir!=dir_None); + IN_ClearKeysDown(); + break; + + case dir_East: + do + { + which++; + if (which>3) + which=0; + } while(!cust->allowed[which]); + redraw=1; + SD_PlaySound(MOVEGUN1SND); + while(ReadAnyControl(&ci),ci.dir!=dir_None); + IN_ClearKeysDown(); + break; + case dir_North: + case dir_South: + exit=1; + } + } while(!exit); + + SD_PlaySound(ESCPRESSEDSND); + WaitKeyUp(); + DrawWindow(5,PrintY-1,310,13,BKGDCOLOR); +} + + +//////////////////////// +// +// FIXUP GUN CURSOR OVERDRAW SHIT +// +void FixupCustom(int w) +{ + static int lastwhich=-1; + int y=CST_Y+26+w*13; + + + VWB_Hlin(7,32,y-1,DEACTIVE); + VWB_Hlin(7,32,y+12,BORD2COLOR); +#ifndef SPEAR + VWB_Hlin(7,32,y-2,BORDCOLOR); + VWB_Hlin(7,32,y+13,BORDCOLOR); +#else + VWB_Hlin(7,32,y-2,BORD2COLOR); + VWB_Hlin(7,32,y+13,BORD2COLOR); +#endif + + switch(w) + { + case 0: DrawCustMouse(1); break; + case 3: DrawCustJoy(1); break; + case 6: DrawCustKeybd(1); break; + case 8: DrawCustKeys(1); + } + + + if (lastwhich>=0) + { + y=CST_Y+26+lastwhich*13; + VWB_Hlin(7,32,y-1,DEACTIVE); + VWB_Hlin(7,32,y+12,BORD2COLOR); +#ifndef SPEAR + VWB_Hlin(7,32,y-2,BORDCOLOR); + VWB_Hlin(7,32,y+13,BORDCOLOR); +#else + VWB_Hlin(7,32,y-2,BORD2COLOR); + VWB_Hlin(7,32,y+13,BORD2COLOR); +#endif + + if (lastwhich!=w) + switch(lastwhich) + { + case 0: DrawCustMouse(0); break; + case 3: DrawCustJoy(0); break; + case 6: DrawCustKeybd(0); break; + case 8: DrawCustKeys(0); + } + } + + lastwhich=w; +} + + +//////////////////////// +// +// DRAW CUSTOMIZE SCREEN +// +void DrawCustomScreen(void) +{ + int i; + + +#ifdef JAPAN + CA_CacheScreen(S_CUSTOMPIC); + fontnumber=1; + + PrintX=CST_START; + PrintY = CST_Y+26; + DrawCustMouse(0); + + PrintX=CST_START; + US_Print("\n\n\n"); + DrawCustJoy(0); + + PrintX=CST_START; + US_Print("\n\n\n"); + DrawCustKeybd(0); + + PrintX=CST_START; + US_Print("\n\n\n"); + DrawCustKeys(0); +#else + ClearMScreen(); + WindowX=0; + WindowW=320; + VWB_DrawPic(112,184,C_MOUSELBACKPIC); + DrawStripes(10); + VWB_DrawPic(80,0,C_CUSTOMIZEPIC); + + // + // MOUSE + // + SETFONTCOLOR(READCOLOR,BKGDCOLOR); + WindowX=0; + WindowW=320; + +#ifndef SPEAR + PrintY=CST_Y; + US_CPrint("Mouse\n"); +#else + PrintY = CST_Y+13; + VWB_DrawPic (128,48,C_MOUSEPIC); +#endif + + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + #ifdef SPANISH + PrintX=CST_START-16; + US_Print(STR_CRUN); + PrintX=CST_START-16+CST_SPC*1; + US_Print(STR_COPEN); + PrintX=CST_START-16+CST_SPC*2; + US_Print(STR_CFIRE); + PrintX=CST_START-16+CST_SPC*3; + US_Print(STR_CSTRAFE"\n"); + #else + PrintX=CST_START; + US_Print(STR_CRUN); + PrintX=CST_START+CST_SPC*1; + US_Print(STR_COPEN); + PrintX=CST_START+CST_SPC*2; + US_Print(STR_CFIRE); + PrintX=CST_START+CST_SPC*3; + US_Print(STR_CSTRAFE"\n"); + #endif + + DrawWindow(5,PrintY-1,310,13,BKGDCOLOR); + DrawCustMouse(0); + US_Print("\n"); + + + // + // JOYSTICK/PAD + // +#ifndef SPEAR + SETFONTCOLOR(READCOLOR,BKGDCOLOR); + US_CPrint("Joystick/Gravis GamePad\n"); +#else + PrintY += 13; + VWB_DrawPic (40,88,C_JOYSTICKPIC); +#endif + +#ifdef SPEAR + VWB_DrawPic (112,120,C_KEYBOARDPIC); +#endif + + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + #ifdef SPANISH + PrintX=CST_START-16; + US_Print(STR_CRUN); + PrintX=CST_START-16+CST_SPC*1; + US_Print(STR_COPEN); + PrintX=CST_START-16+CST_SPC*2; + US_Print(STR_CFIRE); + PrintX=CST_START-16+CST_SPC*3; + US_Print(STR_CSTRAFE"\n"); + #else + PrintX=CST_START; + US_Print(STR_CRUN); + PrintX=CST_START+CST_SPC*1; + US_Print(STR_COPEN); + PrintX=CST_START+CST_SPC*2; + US_Print(STR_CFIRE); + PrintX=CST_START+CST_SPC*3; + US_Print(STR_CSTRAFE"\n"); + #endif + DrawWindow(5,PrintY-1,310,13,BKGDCOLOR); + DrawCustJoy(0); + US_Print("\n"); + + + // + // KEYBOARD + // +#ifndef SPEAR + SETFONTCOLOR(READCOLOR,BKGDCOLOR); + US_CPrint("Keyboard\n"); +#else + PrintY += 13; +#endif + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + #ifdef SPANISH + PrintX=CST_START-16; + US_Print(STR_CRUN); + PrintX=CST_START-16+CST_SPC*1; + US_Print(STR_COPEN); + PrintX=CST_START-16+CST_SPC*2; + US_Print(STR_CFIRE); + PrintX=CST_START-16+CST_SPC*3; + US_Print(STR_CSTRAFE"\n"); + #else + PrintX=CST_START; + US_Print(STR_CRUN); + PrintX=CST_START+CST_SPC*1; + US_Print(STR_COPEN); + PrintX=CST_START+CST_SPC*2; + US_Print(STR_CFIRE); + PrintX=CST_START+CST_SPC*3; + US_Print(STR_CSTRAFE"\n"); + #endif + DrawWindow(5,PrintY-1,310,13,BKGDCOLOR); + DrawCustKeybd(0); + US_Print("\n"); + + + // + // KEYBOARD MOVE KEYS + // + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + #ifdef SPANISH + PrintX=4; + US_Print(STR_LEFT); + US_Print("/"); + US_Print(STR_RIGHT); + US_Print("/"); + US_Print(STR_FRWD); + US_Print("/"); + US_Print(STR_BKWD"\n"); + #else + PrintX=CST_START; + US_Print(STR_LEFT); + PrintX=CST_START+CST_SPC*1; + US_Print(STR_RIGHT); + PrintX=CST_START+CST_SPC*2; + US_Print(STR_FRWD); + PrintX=CST_START+CST_SPC*3; + US_Print(STR_BKWD"\n"); + #endif + DrawWindow(5,PrintY-1,310,13,BKGDCOLOR); + DrawCustKeys(0); +#endif + // + // PICK STARTING POINT IN MENU + // + if (CusItems.curpos<0) + for (i=0;i19) + newview=19; + ShowViewSize(newview); + VW_UpdateScreen(); + SD_PlaySound(HITWALLSND); + TicDelay(10); + break; + } + + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + #else + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("debugmode")) + #endif + PicturePause(); + + if (ci.button0 || Keyboard[sc_Enter]) + exit=1; + else + if (ci.button1 || Keyboard[sc_Escape]) + { + viewwidth=oldview*16; + SD_PlaySound(ESCPRESSEDSND); + MenuFadeOut(); + return; + } + + } while(!exit); + + + if (oldview!=newview) + { + SD_PlaySound (SHOOTSND); + Message(STR_THINK"..."); + NewViewSize(newview); + } + + ShootSnd(); + MenuFadeOut(); +} + + +///////////////////////////// +// +// DRAW THE CHANGEVIEW SCREEN +// +void DrawChangeView(int view) +{ +#ifdef JAPAN + CA_CacheScreen(S_CHANGEPIC); + + ShowViewSize(view); +#else + VWB_Bar(0,160,320,40,VIEWCOLOR); + ShowViewSize(view); + + PrintY=161; + WindowX=0; + WindowY=320; + SETFONTCOLOR(HIGHLIGHT,BKGDCOLOR); + + US_CPrint(STR_SIZE1"\n"); + US_CPrint(STR_SIZE2"\n"); + US_CPrint(STR_SIZE3); +#endif + VW_UpdateScreen(); + + MenuFadeIn(); +} + + +//////////////////////////////////////////////////////////////////// +// +// QUIT THIS INFERNAL GAME! +// +//////////////////////////////////////////////////////////////////// +void CP_Quit(void) +{ + int i; + + + #ifdef JAPAN + if (GetYorN(7,11,C_QUITMSGPIC)) + #else + + #ifdef SPANISH + if (Confirm(ENDGAMESTR)) + #else + if (Confirm(endStrings[US_RndT()&0x7+(US_RndT()&1)])) + #endif + + #endif + { + VW_UpdateScreen(); + SD_MusicOff(); + SD_StopSound(); + MenuFadeOut(); + // + // SHUT-UP THE ADLIB + // + for (i=1;i<=0xf5;i++) + alOut(i,0); + Quit(NULL); + } + + DrawMainMenu(); +} + + +//////////////////////////////////////////////////////////////////// +// +// HANDLE INTRO SCREEN (SYSTEM CONFIG) +// +//////////////////////////////////////////////////////////////////// +void IntroScreen(void) +{ +#ifdef SPEAR + +#define MAINCOLOR 0x4f +#define EMSCOLOR 0x4f +#define XMSCOLOR 0x4f + +#else + +#define MAINCOLOR 0x6c +#define EMSCOLOR 0x6c +#define XMSCOLOR 0x6c + +#endif +#define FILLCOLOR 14 + + long memory,emshere,xmshere; + int i,num,ems[10]={100,200,300,400,500,600,700,800,900,1000}, + xms[10]={100,200,300,400,500,600,700,800,900,1000}, + main[10]={32,64,96,128,160,192,224,256,288,320}; + + + // + // DRAW MAIN MEMORY + // + memory=(1023l+mminfo.nearheap+mminfo.farheap)/1024l; + for (i=0;i<10;i++) + if (memory>=main[i]) + VWB_Bar(49,163-8*i,6,5,MAINCOLOR-i); + + + // + // DRAW EMS MEMORY + // + if (EMSPresent) + { + emshere=4l*EMSPagesAvail; + for (i=0;i<10;i++) + if (emshere>=ems[i]) + VWB_Bar(89,163-8*i,6,5,EMSCOLOR-i); + } + + // + // DRAW XMS MEMORY + // + if (XMSPresent) + { + xmshere=4l*XMSPagesAvail; + for (i=0;i<10;i++) + if (xmshere>=xms[i]) + VWB_Bar(129,163-8*i,6,5,XMSCOLOR-i); + } + + // + // FILL BOXES + // + if (MousePresent) + VWB_Bar(164,82,12,2,FILLCOLOR); + + if (JoysPresent[0] || JoysPresent[1]) + VWB_Bar(164,105,12,2,FILLCOLOR); + + if (AdLibPresent && !SoundBlasterPresent) + VWB_Bar(164,128,12,2,FILLCOLOR); + + if (SoundBlasterPresent) + VWB_Bar(164,151,12,2,FILLCOLOR); + + if (SoundSourcePresent) + VWB_Bar(164,174,12,2,FILLCOLOR); +} + + +//////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// +// +// SUPPORT ROUTINES +// +//////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////// +// +// Clear Menu screens to dark red +// +//////////////////////////////////////////////////////////////////// +void ClearMScreen(void) +{ +#ifndef SPEAR + VWB_Bar(0,0,320,200,BORDCOLOR); +#else + VWB_DrawPic(0,0,C_BACKDROPPIC); +#endif +} + + +//////////////////////////////////////////////////////////////////// +// +// Un/Cache a LUMP of graphics +// +//////////////////////////////////////////////////////////////////// +void CacheLump(int lumpstart,int lumpend) +{ + int i; + + for (i=lumpstart;i<=lumpend;i++) + CA_CacheGrChunk(i); +} + + +void UnCacheLump(int lumpstart,int lumpend) +{ + int i; + + for (i=lumpstart;i<=lumpend;i++) + if (grsegs[i]) + UNCACHEGRCHUNK(i); +} + + +//////////////////////////////////////////////////////////////////// +// +// Draw a window for a menu +// +//////////////////////////////////////////////////////////////////// +void DrawWindow(int x,int y,int w,int h,int wcolor) +{ + VWB_Bar(x,y,w,h,wcolor); + DrawOutline(x,y,w,h,BORD2COLOR,DEACTIVE); +} + + +void DrawOutline(int x,int y,int w,int h,int color1,int color2) +{ + VWB_Hlin(x,x+w,y,color2); + VWB_Vlin(y,y+h,x,color2); + VWB_Hlin(x,x+w,y+h,color1); + VWB_Vlin(y,y+h,x+w,color1); +} + + +//////////////////////////////////////////////////////////////////// +// +// Setup Control Panel stuff - graphics, etc. +// +//////////////////////////////////////////////////////////////////// +void SetupControlPanel(void) +{ + struct ffblk f; + char name[13]; + int which,i; + + + // + // CACHE GRAPHICS & SOUNDS + // + CA_CacheGrChunk(STARTFONT+1); +#ifndef SPEAR + CacheLump(CONTROLS_LUMP_START,CONTROLS_LUMP_END); +#else + CacheLump(BACKDROP_LUMP_START,BACKDROP_LUMP_END); +#endif + + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + fontnumber=1; + WindowH=200; + + if (!ingame) + CA_LoadAllSounds(); + else + MainMenu[savegame].active=1; + + // + // SEE WHICH SAVE GAME FILES ARE AVAILABLE & READ STRING IN + // + strcpy(name,SaveName); + if (!findfirst(name,&f,0)) + do + { + which=f.ff_name[7]-'0'; + if (which<10) + { + int handle; + char temp[32]; + + SaveGamesAvail[which]=1; + handle=open(f.ff_name,O_BINARY); + read(handle,temp,32); + close(handle); + strcpy(&SaveGameNames[which][0],temp); + } + } while(!findnext(&f)); + + // + // CENTER MOUSE + // + _CX=_DX=CENTER; + Mouse(4); +} + + +//////////////////////////////////////////////////////////////////// +// +// Clean up all the Control Panel stuff +// +//////////////////////////////////////////////////////////////////// +void CleanupControlPanel(void) +{ +#ifndef SPEAR + UnCacheLump(CONTROLS_LUMP_START,CONTROLS_LUMP_END); +#else + UnCacheLump (BACKDROP_LUMP_START,BACKDROP_LUMP_END); +#endif + + fontnumber = 0; +} + + +//////////////////////////////////////////////////////////////////// +// +// Handle moving gun around a menu +// +//////////////////////////////////////////////////////////////////// +int HandleMenu(CP_iteminfo *item_i,CP_itemtype far *items,void (*routine)(int w)) +{ + char key; + static int redrawitem=1,lastitem=-1; + int i,x,y,basey,exit,which,shape,timer; + ControlInfo ci; + + + which=item_i->curpos; + x=item_i->x&-8; + basey=item_i->y-2; + y=basey+which*13; + + VWB_DrawPic(x,y,C_CURSOR1PIC); + SetTextColor(items+which,1); + if (redrawitem) + { + PrintX=item_i->x+item_i->indent; + PrintY=item_i->y+which*13; + US_Print((items+which)->string); + } + // + // CALL CUSTOM ROUTINE IF IT IS NEEDED + // + if (routine) + routine(which); + VW_UpdateScreen(); + + shape=C_CURSOR1PIC; + timer=8; + exit=0; + TimeCount=0; + IN_ClearKeysDown(); + + + do + { + // + // CHANGE GUN SHAPE + // + if (TimeCount>timer) + { + TimeCount=0; + if (shape==C_CURSOR1PIC) + { + shape=C_CURSOR2PIC; + timer=8; + } + else + { + shape=C_CURSOR1PIC; + timer=70; + } + VWB_DrawPic(x,y,shape); + if (routine) + routine(which); + VW_UpdateScreen(); + } + + CheckPause(); + + // + // SEE IF ANY KEYS ARE PRESSED FOR INITIAL CHAR FINDING + // + key=LastASCII; + if (key) + { + int ok=0; + + // + // CHECK FOR SCREEN CAPTURE + // + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + #else + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("debugmode")) + #endif + PicturePause(); + + + if (key>='a') + key-='a'-'A'; + + for (i=which+1;iamount;i++) + if ((items+i)->active && (items+i)->string[0]==key) + { + EraseGun(item_i,items,x,y,which); + which=i; + DrawGun(item_i,items,x,&y,which,basey,routine); + ok=1; + IN_ClearKeysDown(); + break; + } + + // + // DIDN'T FIND A MATCH FIRST TIME THRU. CHECK AGAIN. + // + if (!ok) + { + for (i=0;iactive && (items+i)->string[0]==key) + { + EraseGun(item_i,items,x,y,which); + which=i; + DrawGun(item_i,items,x,&y,which,basey,routine); + IN_ClearKeysDown(); + break; + } + } + } + + // + // GET INPUT + // + ReadAnyControl(&ci); + switch(ci.dir) + { + //////////////////////////////////////////////// + // + // MOVE UP + // + case dir_North: + + EraseGun(item_i,items,x,y,which); + + // + // ANIMATE HALF-STEP + // + if (which && (items+which-1)->active) + { + y-=6; + DrawHalfStep(x,y); + } + + // + // MOVE TO NEXT AVAILABLE SPOT + // + do + { + if (!which) + which=item_i->amount-1; + else + which--; + } while(!(items+which)->active); + + DrawGun(item_i,items,x,&y,which,basey,routine); + // + // WAIT FOR BUTTON-UP OR DELAY NEXT MOVE + // + TicDelay(20); + break; + + //////////////////////////////////////////////// + // + // MOVE DOWN + // + case dir_South: + + EraseGun(item_i,items,x,y,which); + // + // ANIMATE HALF-STEP + // + if (which!=item_i->amount-1 && (items+which+1)->active) + { + y+=6; + DrawHalfStep(x,y); + } + + do + { + if (which==item_i->amount-1) + which=0; + else + which++; + } while(!(items+which)->active); + + DrawGun(item_i,items,x,&y,which,basey,routine); + + // + // WAIT FOR BUTTON-UP OR DELAY NEXT MOVE + // + TicDelay(20); + break; + } + + if (ci.button0 || + Keyboard[sc_Space] || + Keyboard[sc_Enter]) + exit=1; + + if (ci.button1 || + Keyboard[sc_Escape]) + exit=2; + + } while(!exit); + + + IN_ClearKeysDown(); + + // + // ERASE EVERYTHING + // + if (lastitem!=which) + { + VWB_Bar(x-1,y,25,16,BKGDCOLOR); + PrintX=item_i->x+item_i->indent; + PrintY=item_i->y+which*13; + US_Print((items+which)->string); + redrawitem=1; + } + else + redrawitem=0; + + if (routine) + routine(which); + VW_UpdateScreen(); + + item_i->curpos=which; + + lastitem=which; + switch(exit) + { + case 1: + // + // CALL THE ROUTINE + // + if ((items+which)->routine!=NULL) + { + ShootSnd(); + MenuFadeOut(); + (items+which)->routine(0); + } + return which; + + case 2: + SD_PlaySound(ESCPRESSEDSND); + return -1; + } + + return 0; // JUST TO SHUT UP THE ERROR MESSAGES! +} + + +// +// ERASE GUN & DE-HIGHLIGHT STRING +// +void EraseGun(CP_iteminfo *item_i,CP_itemtype far *items,int x,int y,int which) +{ + VWB_Bar(x-1,y,25,16,BKGDCOLOR); + SetTextColor(items+which,0); + + PrintX=item_i->x+item_i->indent; + PrintY=item_i->y+which*13; + US_Print((items+which)->string); + VW_UpdateScreen(); +} + + +// +// DRAW HALF STEP OF GUN TO NEXT POSITION +// +void DrawHalfStep(int x,int y) +{ + VWB_DrawPic(x,y,C_CURSOR1PIC); + VW_UpdateScreen(); + SD_PlaySound(MOVEGUN1SND); + TimeCount=0; + while(TimeCount<8); +} + + +// +// DRAW GUN AT NEW POSITION +// +void DrawGun(CP_iteminfo *item_i,CP_itemtype far *items,int x,int *y,int which,int basey,void (*routine)(int w)) +{ + VWB_Bar(x-1,*y,25,16,BKGDCOLOR); + *y=basey+which*13; + VWB_DrawPic(x,*y,C_CURSOR1PIC); + SetTextColor(items+which,1); + + PrintX=item_i->x+item_i->indent; + PrintY=item_i->y+which*13; + US_Print((items+which)->string); + + // + // CALL CUSTOM ROUTINE IF IT IS NEEDED + // + if (routine) + routine(which); + VW_UpdateScreen(); + SD_PlaySound(MOVEGUN2SND); +} + +//////////////////////////////////////////////////////////////////// +// +// DELAY FOR AN AMOUNT OF TICS OR UNTIL CONTROLS ARE INACTIVE +// +//////////////////////////////////////////////////////////////////// +void TicDelay(int count) +{ + ControlInfo ci; + + + TimeCount=0; + do + { + ReadAnyControl(&ci); + } while(TimeCountcurpos; + + + WindowX=PrintX=item_i->x+item_i->indent; + WindowY=PrintY=item_i->y; + WindowW=320; + WindowH=200; + + for (i=0;iamount;i++) + { + SetTextColor(items+i,which==i); + + PrintY=item_i->y+i*13; + if ((items+i)->active) + US_Print((items+i)->string); + else + { + SETFONTCOLOR(DEACTIVE,BKGDCOLOR); + US_Print((items+i)->string); + SETFONTCOLOR(TEXTCOLOR,BKGDCOLOR); + } + + US_Print("\n"); + } +} + + +//////////////////////////////////////////////////////////////////// +// +// SET TEXT COLOR (HIGHLIGHT OR NO) +// +//////////////////////////////////////////////////////////////////// +void SetTextColor(CP_itemtype far *items,int hlight) +{ + if (hlight) + {SETFONTCOLOR(color_hlite[items->active],BKGDCOLOR);} + else + {SETFONTCOLOR(color_norml[items->active],BKGDCOLOR);} +} + + +//////////////////////////////////////////////////////////////////// +// +// WAIT FOR CTRLKEY-UP OR BUTTON-UP +// +//////////////////////////////////////////////////////////////////// +void WaitKeyUp(void) +{ + ControlInfo ci; + while(ReadAnyControl(&ci), ci.button0| + ci.button1| + ci.button2| + ci.button3| + Keyboard[sc_Space]| + Keyboard[sc_Enter]| + Keyboard[sc_Escape]); +} + + +//////////////////////////////////////////////////////////////////// +// +// READ KEYBOARD, JOYSTICK AND MOUSE FOR INPUT +// +//////////////////////////////////////////////////////////////////// +void ReadAnyControl(ControlInfo *ci) +{ + int mouseactive=0; + + + IN_ReadControl(0,ci); + + if (mouseenabled) + { + int mousey,mousex; + + + // READ MOUSE MOTION COUNTERS + // RETURN DIRECTION + // HOME MOUSE + // CHECK MOUSE BUTTONS + + Mouse(3); + mousex=_CX; + mousey=_DX; + + if (mouseydir=dir_North; + _CX=_DX=CENTER; + Mouse(4); + mouseactive=1; + } + else + if (mousey>CENTER+SENSITIVE) + { + ci->dir=dir_South; + _CX=_DX=CENTER; + Mouse(4); + mouseactive=1; + } + + if (mousexdir=dir_West; + _CX=_DX=CENTER; + Mouse(4); + mouseactive=1; + } + else + if (mousex>CENTER+SENSITIVE) + { + ci->dir=dir_East; + _CX=_DX=CENTER; + Mouse(4); + mouseactive=1; + } + + if (IN_MouseButtons()) + { + ci->button0=IN_MouseButtons()&1; + ci->button1=IN_MouseButtons()&2; + ci->button2=IN_MouseButtons()&4; + ci->button3=false; + mouseactive=1; + } + } + + if (joystickenabled && !mouseactive) + { + int jx,jy,jb; + + + INL_GetJoyDelta(joystickport,&jx,&jy); + if (jy<-SENSITIVE) + ci->dir=dir_North; + else + if (jy>SENSITIVE) + ci->dir=dir_South; + + if (jx<-SENSITIVE) + ci->dir=dir_West; + else + if (jx>SENSITIVE) + ci->dir=dir_East; + + jb=IN_JoyButtons(); + if (jb) + { + ci->button0=jb&1; + ci->button1=jb&2; + if (joypadenabled) + { + ci->button2=jb&4; + ci->button3=jb&8; + } + else + ci->button2=ci->button3=false; + } + } +} + + +//////////////////////////////////////////////////////////////////// +// +// DRAW DIALOG AND CONFIRM YES OR NO TO QUESTION +// +//////////////////////////////////////////////////////////////////// +int Confirm(char far *string) +{ + int xit=0,i,x,y,tick=0,time,whichsnd[2]={ESCPRESSEDSND,SHOOTSND}; + + + Message(string); + IN_ClearKeysDown(); + + // + // BLINK CURSOR + // + x=PrintX; + y=PrintY; + TimeCount=0; + + do + { + if (TimeCount>=10) + { + switch(tick) + { + case 0: + VWB_Bar(x,y,8,13,TEXTCOLOR); + break; + case 1: + PrintX=x; + PrintY=y; + US_Print("_"); + } + VW_UpdateScreen(); + tick^=1; + TimeCount=0; + } + + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + PicturePause(); + #endif + + #ifdef SPANISH + } while(!Keyboard[sc_S] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); + #else + } while(!Keyboard[sc_Y] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); + #endif + + #ifdef SPANISH + if (Keyboard[sc_S]) + { + xit=1; + ShootSnd(); + } + + while(Keyboard[sc_S] || Keyboard[sc_N] || Keyboard[sc_Escape]); + + #else + + if (Keyboard[sc_Y]) + { + xit=1; + ShootSnd(); + } + + while(Keyboard[sc_Y] || Keyboard[sc_N] || Keyboard[sc_Escape]); + #endif + + IN_ClearKeysDown(); + SD_PlaySound(whichsnd[xit]); + return xit; +} + +#ifdef JAPAN +//////////////////////////////////////////////////////////////////// +// +// DRAW MESSAGE & GET Y OR N +// +//////////////////////////////////////////////////////////////////// +int GetYorN(int x,int y,int pic) +{ + int xit=0,whichsnd[2]={ESCPRESSEDSND,SHOOTSND}; + + + CA_CacheGrChunk(pic); + VWB_DrawPic(x * 8,y * 8,pic); + UNCACHEGRCHUNK(pic); + VW_UpdateScreen(); + IN_ClearKeysDown(); + + do + { + #ifndef SPEAR + if (Keyboard[sc_Tab] && Keyboard[sc_P] && MS_CheckParm("goobers")) + PicturePause(); + #endif + + #ifdef SPANISH + } while(!Keyboard[sc_S] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); + #else + } while(!Keyboard[sc_Y] && !Keyboard[sc_N] && !Keyboard[sc_Escape]); + #endif + + #ifdef SPANISH + if (Keyboard[sc_S]) + { + xit=1; + ShootSnd(); + } + + while(Keyboard[sc_S] || Keyboard[sc_N] || Keyboard[sc_Escape]); + + #else + + if (Keyboard[sc_Y]) + { + xit=1; + ShootSnd(); + } + + while(Keyboard[sc_Y] || Keyboard[sc_N] || Keyboard[sc_Escape]); + #endif + + IN_ClearKeysDown(); + SD_PlaySound(whichsnd[xit]); + return xit; +} +#endif + + +//////////////////////////////////////////////////////////////////// +// +// PRINT A MESSAGE IN A WINDOW +// +//////////////////////////////////////////////////////////////////// +void Message(char far *string) +{ + int h=0,w=0,mw=0,i,x,y,time; + fontstruct _seg *font; + + + CA_CacheGrChunk (STARTFONT+1); + fontnumber=1; + font=grsegs[STARTFONT+fontnumber]; + h=font->height; + for (i=0;i<_fstrlen(string);i++) + if (string[i]=='\n') + { + if (w>mw) + mw=w; + w=0; + h+=font->height; + } + else + w+=font->width[string[i]]; + + if (w+10>mw) + mw=w+10; + + PrintY=(WindowH/2)-h/2; + PrintX=WindowX=160-mw/2; + + DrawWindow(WindowX-5,PrintY-5,mw+10,h+10,TEXTCOLOR); + DrawOutline(WindowX-5,PrintY-5,mw+10,h+10,0,HIGHLIGHT); + SETFONTCOLOR(0,TEXTCOLOR); + US_Print(string); + VW_UpdateScreen(); +} + + +//////////////////////////////////////////////////////////////////// +// +// THIS MAY BE FIXED A LITTLE LATER... +// +//////////////////////////////////////////////////////////////////// +static int lastmusic; + +void StartCPMusic(int song) +{ + musicnames chunk; + + if (audiosegs[STARTMUSIC + lastmusic]) // JDC + MM_FreePtr ((memptr *)&audiosegs[STARTMUSIC + lastmusic]); + lastmusic = song; + + SD_MusicOff(); + chunk = song; + + MM_BombOnError (false); + CA_CacheAudioChunk(STARTMUSIC + chunk); + MM_BombOnError (true); + if (mmerror) + mmerror = false; + else + { + MM_SetLock(&((memptr)audiosegs[STARTMUSIC + chunk]),true); + SD_StartMusic((MusicGroup far *)audiosegs[STARTMUSIC + chunk]); + } +} + +void FreeMusic (void) +{ + if (audiosegs[STARTMUSIC + lastmusic]) // JDC + MM_FreePtr ((memptr *)&audiosegs[STARTMUSIC + lastmusic]); +} + + +/////////////////////////////////////////////////////////////////////////// +// +// IN_GetScanName() - Returns a string containing the name of the +// specified scan code +// +/////////////////////////////////////////////////////////////////////////// +byte * +IN_GetScanName(ScanCode scan) +{ + byte **p; + ScanCode far *s; + + for (s = ExtScanCodes,p = ExtScanNames;*s;p++,s++) + if (*s == scan) + return(*p); + + return(ScanNames[scan]); +} + + +/////////////////////////////////////////////////////////////////////////// +// +// CHECK FOR PAUSE KEY (FOR MUSIC ONLY) +// +/////////////////////////////////////////////////////////////////////////// +void CheckPause(void) +{ + if (Paused) + { + switch(SoundStatus) + { + case 0: SD_MusicOn(); break; + case 1: SD_MusicOff(); break; + } + + SoundStatus^=1; + VW_WaitVBL(3); + IN_ClearKeysDown(); + Paused=false; + } +} + + +/////////////////////////////////////////////////////////////////////////// +// +// DRAW GUN CURSOR AT CORRECT POSITION IN MENU +// +/////////////////////////////////////////////////////////////////////////// +void DrawMenuGun(CP_iteminfo *iteminfo) +{ + int x,y; + + + x=iteminfo->x; + y=iteminfo->y+iteminfo->curpos*13-2; + VWB_DrawPic(x,y,C_CURSOR1PIC); +} + + +/////////////////////////////////////////////////////////////////////////// +// +// DRAW SCREEN TITLE STRIPES +// +/////////////////////////////////////////////////////////////////////////// +void DrawStripes(int y) +{ +#ifndef SPEAR + VWB_Bar(0,y,320,24,0); + VWB_Hlin(0,319,y+22,STRIPE); +#else + VWB_Bar(0,y,320,22,0); + VWB_Hlin(0,319,y+23,0); +#endif +} + +void ShootSnd(void) +{ + SD_PlaySound(SHOOTSND); +} + + +/////////////////////////////////////////////////////////////////////////// +// +// CHECK FOR EPISODES +// +/////////////////////////////////////////////////////////////////////////// +void CheckForEpisodes(void) +{ + struct ffblk f; + +// +// JAPANESE VERSION +// +#ifdef JAPAN +#ifdef JAPDEMO + if (!findfirst("*.WJ1",&f,FA_ARCH)) + { + strcpy(extension,"WJ1"); +#else + if (!findfirst("*.WJ6",&f,FA_ARCH)) + { + strcpy(extension,"WJ6"); +#endif + strcat(configname,extension); + strcat(SaveName,extension); + strcat(PageFileName,extension); + strcat(audioname,extension); + strcat(demoname,extension); + EpisodeSelect[1] = + EpisodeSelect[2] = + EpisodeSelect[3] = + EpisodeSelect[4] = + EpisodeSelect[5] = 1; + } + else + Quit("NO JAPANESE WOLFENSTEIN 3-D DATA FILES to be found!"); +#else + +// +// ENGLISH +// +#ifndef UPLOAD +#ifndef SPEAR + if (!findfirst("*.WL6",&f,FA_ARCH)) + { + strcpy(extension,"WL6"); + NewEmenu[2].active = + NewEmenu[4].active = + NewEmenu[6].active = + NewEmenu[8].active = + NewEmenu[10].active = + EpisodeSelect[1] = + EpisodeSelect[2] = + EpisodeSelect[3] = + EpisodeSelect[4] = + EpisodeSelect[5] = 1; + } + else + if (!findfirst("*.WL3",&f,FA_ARCH)) + { + strcpy(extension,"WL3"); + NewEmenu[2].active = + NewEmenu[4].active = + EpisodeSelect[1] = + EpisodeSelect[2] = 1; + } + else +#endif +#endif + + + +#ifdef SPEAR +#ifndef SPEARDEMO + if (!findfirst("*.SOD",&f,FA_ARCH)) + { + strcpy(extension,"SOD"); + } + else + Quit("NO SPEAR OF DESTINY DATA FILES TO BE FOUND!"); +#else + if (!findfirst("*.SDM",&f,FA_ARCH)) + { + strcpy(extension,"SDM"); + } + else + Quit("NO SPEAR OF DESTINY DEMO DATA FILES TO BE FOUND!"); +#endif + +#else + if (!findfirst("*.WL1",&f,FA_ARCH)) + { + strcpy(extension,"WL1"); + } + else + Quit("NO WOLFENSTEIN 3-D DATA FILES to be found!"); +#endif + + strcat(configname,extension); + strcat(SaveName,extension); + strcat(PageFileName,extension); + strcat(audioname,extension); + strcat(demoname,extension); +#ifndef SPEAR +#ifndef GOODTIMES + strcat(helpfilename,extension); +#endif + strcat(endfilename,extension); +#endif +#endif +} diff --git a/16/wf3d8086/wl_menu.h b/16/wf3d8086/wl_menu.h new file mode 100755 index 00000000..dc03400c --- /dev/null +++ b/16/wf3d8086/wl_menu.h @@ -0,0 +1,234 @@ +// +// WL_MENU.H +// +#ifdef SPEAR + +#define BORDCOLOR 0x99 +#define BORD2COLOR 0x93 +#define DEACTIVE 0x9b +#define BKGDCOLOR 0x9d +//#define STRIPE 0x9c + +#define MenuFadeOut() VL_FadeOut(0,255,0,0,51,10) + +#else + +#define BORDCOLOR 0x29 +#define BORD2COLOR 0x23 +#define DEACTIVE 0x2b +#define BKGDCOLOR 0x2d +#define STRIPE 0x2c + +#define MenuFadeOut() VL_FadeOut(0,255,43,0,0,10) + +#endif + +#define READCOLOR 0x4a +#define READHCOLOR 0x47 +#define VIEWCOLOR 0x7f +#define TEXTCOLOR 0x17 +#define HIGHLIGHT 0x13 +#define MenuFadeIn() VL_FadeIn(0,255,&gamepal,10) + + +#define MENUSONG WONDERIN_MUS + +#ifndef SPEAR +#define INTROSONG NAZI_NOR_MUS +#else +#define INTROSONG XTOWER2_MUS +#endif + +#define SENSITIVE 60 +#define CENTER SENSITIVE*2 + +#define MENU_X 76 +#define MENU_Y 55 +#define MENU_W 178 +#ifndef SPEAR +#define MENU_H 13*10+6 +#else +#define MENU_H 13*9+6 +#endif + +#define SM_X 48 +#define SM_W 250 + +#define SM_Y1 20 +#define SM_H1 4*13-7 +#define SM_Y2 SM_Y1+5*13 +#define SM_H2 4*13-7 +#define SM_Y3 SM_Y2+5*13 +#define SM_H3 3*13-7 + +#define CTL_X 24 +#define CTL_Y 70 +#define CTL_W 284 +#define CTL_H 13*7-7 + +#define LSM_X 85 +#define LSM_Y 55 +#define LSM_W 175 +#define LSM_H 10*13+10 + +#define NM_X 50 +#define NM_Y 100 +#define NM_W 225 +#define NM_H 13*4+15 + +#define NE_X 10 +#define NE_Y 23 +#define NE_W 320-NE_X*2 +#define NE_H 200-NE_Y*2 + +#define CST_X 20 +#define CST_Y 48 +#define CST_START 60 +#define CST_SPC 60 + + +// +// TYPEDEFS +// +typedef struct { + int x,y,amount,curpos,indent; + } CP_iteminfo; + +typedef struct { + int active; + char string[36]; + void (* routine)(int temp1); + } CP_itemtype; + +typedef struct { + int allowed[4]; + } CustomCtrls; + +extern CP_itemtype far MainMenu[],far NewEMenu[]; +extern CP_iteminfo MainItems; + +// +// FUNCTION PROTOTYPES +// +void SetupControlPanel(void); +void CleanupControlPanel(void); + +void DrawMenu(CP_iteminfo *item_i,CP_itemtype far *items); +int HandleMenu(CP_iteminfo *item_i, + CP_itemtype far *items, + void (*routine)(int w)); +void ClearMScreen(void); +void DrawWindow(int x,int y,int w,int h,int wcolor); +void DrawOutline(int x,int y,int w,int h,int color1,int color2); +void WaitKeyUp(void); +void ReadAnyControl(ControlInfo *ci); +void TicDelay(int count); +void CacheLump(int lumpstart,int lumpend); +void UnCacheLump(int lumpstart,int lumpend); +void StartCPMusic(int song); +int Confirm(char far *string); +void Message(char far *string); +void CheckPause(void); +void ShootSnd(void); +void CheckSecretMissions(void); +void BossKey(void); + +void DrawGun(CP_iteminfo *item_i,CP_itemtype far *items,int x,int *y,int which,int basey,void (*routine)(int w)); +void DrawHalfStep(int x,int y); +void EraseGun(CP_iteminfo *item_i,CP_itemtype far *items,int x,int y,int which); +void SetTextColor(CP_itemtype far *items,int hlight); +void DrawMenuGun(CP_iteminfo *iteminfo); +void DrawStripes(int y); + +void DefineMouseBtns(void); +void DefineJoyBtns(void); +void DefineKeyBtns(void); +void DefineKeyMove(void); +void EnterCtrlData(int index,CustomCtrls *cust,void (*DrawRtn)(int),void (*PrintRtn)(int),int type); + +void DrawMainMenu(void); +void DrawSoundMenu(void); +void DrawLoadSaveScreen(int loadsave); +void DrawNewEpisode(void); +void DrawNewGame(void); +void DrawChangeView(int view); +void DrawMouseSens(void); +void DrawCtlScreen(void); +void DrawCustomScreen(void); +void DrawLSAction(int which); +void DrawCustMouse(int hilight); +void DrawCustJoy(int hilight); +void DrawCustKeybd(int hilight); +void DrawCustKeys(int hilight); +void PrintCustMouse(int i); +void PrintCustJoy(int i); +void PrintCustKeybd(int i); +void PrintCustKeys(int i); + +void PrintLSEntry(int w,int color); +void TrackWhichGame(int w); +void DrawNewGameDiff(int w); +void FixupCustom(int w); + +void CP_NewGame(void); +void CP_Sound(void); +int CP_LoadGame(int quick); +int CP_SaveGame(int quick); +void CP_Control(void); +void CP_ChangeView(void); +void CP_ExitOptions(void); +void CP_Quit(void); +void CP_ViewScores(void); +int CP_EndGame(void); +int CP_CheckQuick(unsigned scancode); +void CustomControls(void); +void MouseSensitivity(void); + +void CheckForEpisodes(void); + +// +// VARIABLES +// +extern int SaveGamesAvail[10],StartGame,SoundStatus; +extern char SaveGameNames[10][32],SaveName[13]; + +enum {MOUSE,JOYSTICK,KEYBOARDBTNS,KEYBOARDMOVE}; // FOR INPUT TYPES + +#ifndef USO_FIX1 +extern +#endif +enum +{ + newgame, + soundmenu, + control, + loadgame, + savegame, + changeview, + +#ifndef GOODTIMES +#ifndef SPEAR + readthis, +#endif +#endif + + viewscores, + backtodemo, + quit +} menuitems; + +// +// WL_INTER +// +typedef struct { + int kill,secret,treasure; + long time; + } LRstruct; + +extern LRstruct LevelRatios[]; + +void Write (int x,int y,char *string); +void NonShareware(void); +int GetYorN(int x,int y,int pic); + + diff --git a/16/wf3d8086/wl_play.c b/16/wf3d8086/wl_play.c new file mode 100755 index 00000000..447c8937 --- /dev/null +++ b/16/wf3d8086/wl_play.c @@ -0,0 +1,1473 @@ +// WL_PLAY.C + +#include "WL_DEF.H" +#pragma hdrstop + + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + +#define sc_Question 0x35 + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + +boolean madenoise; // true when shooting or screaming + +exit_t playstate; + +int DebugOk; + +objtype objlist[MAXACTORS],*new,*obj,*player,*lastobj, + *objfreelist,*killerobj; + +unsigned farmapylookup[MAPSIZE]; +byte *nearmapylookup[MAPSIZE]; + +boolean singlestep,godmode,noclip; +int extravbls; + +byte tilemap[MAPSIZE][MAPSIZE]; // wall values only +byte spotvis[MAPSIZE][MAPSIZE]; +objtype *actorat[MAPSIZE][MAPSIZE]; + +// +// replacing refresh manager +// +unsigned mapwidth,mapheight,tics; +boolean compatability; +byte *updateptr; +unsigned mapwidthtable[64]; +unsigned uwidthtable[UPDATEHIGH]; +unsigned blockstarts[UPDATEWIDE*UPDATEHIGH]; +//uso: replace: byte update[UPDATESIZE]; +//uso: is needed? byte update[UPDATEHIGH][UPDATEWIDE]; + +// +// control info +// +boolean mouseenabled,joystickenabled,joypadenabled,joystickprogressive; +int joystickport; +int dirscan[4] = {sc_UpArrow,sc_RightArrow,sc_DownArrow,sc_LeftArrow}; +int buttonscan[NUMBUTTONS] = + {sc_Control,sc_Alt,sc_RShift,sc_Space,sc_1,sc_2,sc_3,sc_4}; +int buttonmouse[4]={bt_attack,bt_strafe,bt_use,bt_nobutton}; +int buttonjoy[4]={bt_attack,bt_strafe,bt_use,bt_run}; + +int viewsize; + +boolean buttonheld[NUMBUTTONS]; + +boolean demorecord,demoplayback; +char far *demoptr, far *lastdemoptr; +memptr demobuffer; + +// +// curent user input +// +int controlx,controly; // range from -100 to 100 per tic +boolean buttonstate[NUMBUTTONS]; + + + +//=========================================================================== + + +void CenterWindow(word w,word h); +void InitObjList (void); +void RemoveObj (objtype *gone); +void PollControls (void); +void StopMusic(void); +void StartMusic(void); +void PlayLoop (void); + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + +objtype dummyobj; + +// +// LIST OF SONGS FOR EACH VERSION +// +int songs[]= +{ +#ifndef SPEAR + // + // Episode One + // + GETTHEM_MUS, + SEARCHN_MUS, + POW_MUS, + SUSPENSE_MUS, + GETTHEM_MUS, + SEARCHN_MUS, + POW_MUS, + SUSPENSE_MUS, + + WARMARCH_MUS, // Boss level + CORNER_MUS, // Secret level + + // + // Episode Two + // + NAZI_OMI_MUS, + PREGNANT_MUS, + GOINGAFT_MUS, + HEADACHE_MUS, + NAZI_OMI_MUS, + PREGNANT_MUS, + HEADACHE_MUS, + GOINGAFT_MUS, + + WARMARCH_MUS, // Boss level + DUNGEON_MUS, // Secret level + + // + // Episode Three + // + INTROCW3_MUS, + NAZI_RAP_MUS, + TWELFTH_MUS, + ZEROHOUR_MUS, + INTROCW3_MUS, + NAZI_RAP_MUS, + TWELFTH_MUS, + ZEROHOUR_MUS, + + ULTIMATE_MUS, // Boss level + PACMAN_MUS, // Secret level + + // + // Episode Four + // + GETTHEM_MUS, + SEARCHN_MUS, + POW_MUS, + SUSPENSE_MUS, + GETTHEM_MUS, + SEARCHN_MUS, + POW_MUS, + SUSPENSE_MUS, + + WARMARCH_MUS, // Boss level + CORNER_MUS, // Secret level + + // + // Episode Five + // + NAZI_OMI_MUS, + PREGNANT_MUS, + GOINGAFT_MUS, + HEADACHE_MUS, + NAZI_OMI_MUS, + PREGNANT_MUS, + HEADACHE_MUS, + GOINGAFT_MUS, + + WARMARCH_MUS, // Boss level + DUNGEON_MUS, // Secret level + + // + // Episode Six + // + INTROCW3_MUS, + NAZI_RAP_MUS, + TWELFTH_MUS, + ZEROHOUR_MUS, + INTROCW3_MUS, + NAZI_RAP_MUS, + TWELFTH_MUS, + ZEROHOUR_MUS, + + ULTIMATE_MUS, // Boss level + FUNKYOU_MUS // Secret level +#else + + ////////////////////////////////////////////////////////////// + // + // SPEAR OF DESTINY TRACKS + // + ////////////////////////////////////////////////////////////// + XTIPTOE_MUS, + XFUNKIE_MUS, + XDEATH_MUS, + XGETYOU_MUS, // DON'T KNOW + ULTIMATE_MUS, // Trans Gr”sse + + DUNGEON_MUS, + GOINGAFT_MUS, + POW_MUS, + TWELFTH_MUS, + ULTIMATE_MUS, // Barnacle Wilhelm BOSS + + NAZI_OMI_MUS, + GETTHEM_MUS, + SUSPENSE_MUS, + SEARCHN_MUS, + ZEROHOUR_MUS, + ULTIMATE_MUS, // Super Mutant BOSS + + XPUTIT_MUS, + ULTIMATE_MUS, // Death Knight BOSS + + XJAZNAZI_MUS, // Secret level + XFUNKIE_MUS, // Secret level (DON'T KNOW) + + XEVIL_MUS // Angel of Death BOSS + +#endif +}; + + +/* +============================================================================= + + USER CONTROL + +============================================================================= +*/ + + +#define BASEMOVE 35 +#define RUNMOVE 70 +#define BASETURN 35 +#define RUNTURN 70 + +#define JOYSCALE 2 + +/* +=================== += += PollKeyboardButtons += +=================== +*/ + +void PollKeyboardButtons (void) +{ + int i; + + for (i=0;i 64) + controlx += (joyx-64)*JOYSCALE*tics; + else if (joyx < -64) + controlx -= (-joyx-64)*JOYSCALE*tics; + if (joyy > 64) + controlx += (joyy-64)*JOYSCALE*tics; + else if (joyy < -64) + controly -= (-joyy-64)*JOYSCALE*tics; + } + else if (buttonstate[bt_run]) + { + if (joyx > 64) + controlx += RUNMOVE*tics; + else if (joyx < -64) + controlx -= RUNMOVE*tics; + if (joyy > 64) + controly += RUNMOVE*tics; + else if (joyy < -64) + controly -= RUNMOVE*tics; + } + else + { + if (joyx > 64) + controlx += BASEMOVE*tics; + else if (joyx < -64) + controlx -= BASEMOVE*tics; + if (joyy > 64) + controly += BASEMOVE*tics; + else if (joyy < -64) + controly -= BASEMOVE*tics; + } +} + + +/* +=================== += += PollControls += += Gets user or demo input, call once each frame += += controlx set between -100 and 100 per tic += controly += buttonheld[] the state of the buttons LAST frame += buttonstate[] the state of the buttons THIS frame += +=================== +*/ + +void PollControls (void) +{ + int max,min,i; + byte buttonbits; + +// +// get timing info for last frame +// + if (demoplayback) + { + while (TimeCount>= 1; + } + + controlx = *demoptr++; + controly = *demoptr++; + + if (demoptr == lastdemoptr) + playstate = ex_completed; // demo is done + + controlx *= (int)tics; + controly *= (int)tics; + + return; + } + + +// +// get button states +// + PollKeyboardButtons (); + + if (mouseenabled) + PollMouseButtons (); + + if (joystickenabled) + PollJoystickButtons (); + +// +// get movements +// + PollKeyboardMove (); + + if (mouseenabled) + PollMouseMove (); + + if (joystickenabled) + PollJoystickMove (); + +// +// bound movement to a maximum +// + max = 100*tics; + min = -max; + if (controlx > max) + controlx = max; + else if (controlx < min) + controlx = min; + + if (controly > max) + controly = max; + else if (controly < min) + controly = min; + + if (demorecord) + { + // + // save info out to demo buffer + // + controlx /= (int)tics; + controly /= (int)tics; + + buttonbits = 0; + + for (i=NUMBUTTONS-1;i>=0;i--) + { + buttonbits <<= 1; + if (buttonstate[i]) + buttonbits |= 1; + } + + *demoptr++ = buttonbits; + *demoptr++ = controlx; + *demoptr++ = controly; + + if (demoptr >= lastdemoptr) + Quit ("Demo buffer overflowed!"); + + controlx *= (int)tics; + controly *= (int)tics; + } +} + + + +//========================================================================== + + + +/////////////////////////////////////////////////////////////////////////// +// +// CenterWindow() - Generates a window of a given width & height in the +// middle of the screen +// +/////////////////////////////////////////////////////////////////////////// + +#define MAXX 320 +#define MAXY 160 + +void CenterWindow(word w,word h) +{ + FixOfs (); + US_DrawWindow(((MAXX / 8) - w) / 2,((MAXY / 8) - h) / 2,w,h); +} + +//=========================================================================== + + +/* +===================== += += CheckKeys += +===================== +*/ + +void CheckKeys (void) +{ + int i; + byte scan; + unsigned temp; + + + if (screenfaded || demoplayback) // don't do anything with a faded screen + return; + + scan = LastScan; + + + #ifdef SPEAR + // + // SECRET CHEAT CODE: TAB-G-F10 + // + if (Keyboard[sc_Tab] && + Keyboard[sc_G] && + Keyboard[sc_F10]) + { + WindowH = 160; + if (godmode) + { + Message ("God mode OFF"); + SD_PlaySound (NOBONUSSND); + } + else + { + Message ("God mode ON"); + SD_PlaySound (ENDBONUS2SND); + } + + IN_Ack(); + godmode ^= 1; + DrawAllPlayBorderSides (); + IN_ClearKeysDown(); + return; + } + #endif + + + // + // SECRET CHEAT CODE: 'MLI' + // + if (Keyboard[sc_M] && + Keyboard[sc_L] && + Keyboard[sc_I]) + { + gamestate.health = 100; + gamestate.ammo = 99; + gamestate.keys = 3; + gamestate.score = 0; + gamestate.TimeCount += 42000L; + GiveWeapon (wp_chaingun); + + DrawWeapon(); + DrawHealth(); + DrawKeys(); + DrawAmmo(); + DrawScore(); + + ClearMemory (); + CA_CacheGrChunk (STARTFONT+1); + ClearSplitVWB (); + VW_ScreenToScreen (displayofs,bufferofs,80,160); + + Message(STR_CHEATER1"\n" + STR_CHEATER2"\n\n" + STR_CHEATER3"\n" + STR_CHEATER4"\n" + STR_CHEATER5); + + UNCACHEGRCHUNK(STARTFONT+1); + PM_CheckMainMem (); + IN_ClearKeysDown(); + IN_Ack(); + + DrawAllPlayBorder (); + } + + // + // OPEN UP DEBUG KEYS + // +#ifndef SPEAR + if (Keyboard[sc_BackSpace] && + Keyboard[sc_LShift] && + Keyboard[sc_Alt] && + MS_CheckParm("goobers")) +#else + if (Keyboard[sc_BackSpace] && + Keyboard[sc_LShift] && + Keyboard[sc_Alt] && + MS_CheckParm("debugmode")) +#endif + { + ClearMemory (); + CA_CacheGrChunk (STARTFONT+1); + ClearSplitVWB (); + VW_ScreenToScreen (displayofs,bufferofs,80,160); + + Message("Debugging keys are\nnow available!"); + UNCACHEGRCHUNK(STARTFONT+1); + PM_CheckMainMem (); + IN_ClearKeysDown(); + IN_Ack(); + + DrawAllPlayBorderSides (); + DebugOk=1; + } + + // + // TRYING THE KEEN CHEAT CODE! + // + if (Keyboard[sc_B] && + Keyboard[sc_A] && + Keyboard[sc_T]) + { + ClearMemory (); + CA_CacheGrChunk (STARTFONT+1); + ClearSplitVWB (); + VW_ScreenToScreen (displayofs,bufferofs,80,160); + + Message("Commander Keen is also\n" + "available from Apogee, but\n" + "then, you already know\n" + "that - right, Cheatmeister?!"); + + UNCACHEGRCHUNK(STARTFONT+1); + PM_CheckMainMem (); + IN_ClearKeysDown(); + IN_Ack(); + + DrawAllPlayBorder (); + } + +// +// pause key weirdness can't be checked as a scan code +// + if (Paused) + { + bufferofs = displayofs; + LatchDrawPic (20-4,80-2*8,PAUSEDPIC); + SD_MusicOff(); + IN_Ack(); + IN_ClearKeysDown (); + SD_MusicOn(); + Paused = false; + if (MousePresent) + Mouse(MDelta); // Clear accumulated mouse movement + return; + } + + +// +// F1-F7/ESC to enter control panel +// + if ( +#ifndef DEBCHECK + scan == sc_F10 || +#endif + scan == sc_F9 || + scan == sc_F7 || + scan == sc_F8) // pop up quit dialog + { + ClearMemory (); + ClearSplitVWB (); + VW_ScreenToScreen (displayofs,bufferofs,80,160); + US_ControlPanel(scan); + + DrawAllPlayBorderSides (); + + if (scan == sc_F9) + StartMusic (); + + PM_CheckMainMem (); + SETFONTCOLOR(0,15); + IN_ClearKeysDown(); + return; + } + + if ( (scan >= sc_F1 && scan <= sc_F9) || scan == sc_Escape) + { + StopMusic (); + ClearMemory (); + VW_FadeOut (); + + US_ControlPanel(scan); + + SETFONTCOLOR(0,15); + IN_ClearKeysDown(); + DrawPlayScreen (); + if (!startgame && !loadedgame) + { + VW_FadeIn (); + StartMusic (); + } + if (loadedgame) + playstate = ex_abort; + lasttimecount = TimeCount; + if (MousePresent) + Mouse(MDelta); // Clear accumulated mouse movement + PM_CheckMainMem (); + return; + } + +// +// TAB-? debug keys +// + if (Keyboard[sc_Tab] && DebugOk) + { + CA_CacheGrChunk (STARTFONT); + fontnumber=0; + SETFONTCOLOR(0,15); + DebugKeys(); + if (MousePresent) + Mouse(MDelta); // Clear accumulated mouse movement + lasttimecount = TimeCount; + return; + } + +} + + +//=========================================================================== + +/* +############################################################################# + + The objlist data structure + +############################################################################# + +objlist containt structures for every actor currently playing. The structure +is accessed as a linked list starting at *player, ending when ob->next == +NULL. GetNewObj inserts a new object at the end of the list, meaning that +if an actor spawn another actor, the new one WILL get to think and react the +same frame. RemoveObj unlinks the given object and returns it to the free +list, but does not damage the objects ->next pointer, so if the current object +removes itself, a linked list following loop can still safely get to the +next element. + + + +############################################################################# +*/ + + +/* +========================= += += InitActorList += += Call to clear out the actor object lists returning them all to the free += list. Allocates a special spot for the player. += +========================= +*/ + +int objcount; + +void InitActorList (void) +{ + int i; + +// +// init the actor lists +// + for (i=0;iprev; + memset (new,0,sizeof(*new)); + + if (lastobj) + lastobj->next = new; + new->prev = lastobj; // new->next is allready NULL from memset + + new->active = false; + lastobj = new; + + objcount++; +} + +//=========================================================================== + +/* +========================= += += RemoveObj += += Add the given object back into the free list, and unlink it from it's += neighbors += +========================= +*/ + +void RemoveObj (objtype *gone) +{ + objtype **spotat; + + if (gone == player) + Quit ("RemoveObj: Tried to remove the player!"); + + gone->state = NULL; + +// +// fix the next object's back link +// + if (gone == lastobj) + lastobj = (objtype *)gone->prev; + else + gone->next->prev = gone->prev; + +// +// fix the previous object's forward link +// + gone->prev->next = gone->next; + +// +// add it back in to the free list +// + gone->prev = objfreelist; + objfreelist = gone; + + objcount--; +} + +/* +============================================================================= + + MUSIC STUFF + +============================================================================= +*/ + + +/* +================= += += StopMusic += +================= +*/ + +void StopMusic(void) +{ + int i; + + SD_MusicOff(); + for (i = 0;i < LASTMUSIC;i++) + if (audiosegs[STARTMUSIC + i]) + { + MM_SetPurge(&((memptr)audiosegs[STARTMUSIC + i]),3); + MM_SetLock(&((memptr)audiosegs[STARTMUSIC + i]),false); + } +} + +//========================================================================== + + +/* +================= += += StartMusic += +================= +*/ + +void StartMusic(void) +{ + musicnames chunk; + + SD_MusicOff(); + chunk = songs[gamestate.mapon+gamestate.episode*10]; + +// if ((chunk == -1) || (MusicMode != smm_AdLib)) +//DEBUG control panel return; + + MM_BombOnError (false); + CA_CacheAudioChunk(STARTMUSIC + chunk); + MM_BombOnError (true); + if (mmerror) + mmerror = false; + else + { + MM_SetLock(&((memptr)audiosegs[STARTMUSIC + chunk]),true); + SD_StartMusic((MusicGroup far *)audiosegs[STARTMUSIC + chunk]); + } +} + + +/* +============================================================================= + + PALETTE SHIFTING STUFF + +============================================================================= +*/ + +#define NUMREDSHIFTS 6 +#define REDSTEPS 8 + +#define NUMWHITESHIFTS 3 +#define WHITESTEPS 20 +#define WHITETICS 6 + + +byte far redshifts[NUMREDSHIFTS][768]; +byte far whiteshifts[NUMREDSHIFTS][768]; + +int damagecount,bonuscount; +boolean palshifted; + +extern byte far gamepal; + +/* +===================== += += InitRedShifts += +===================== +*/ + +void InitRedShifts (void) +{ + byte far *workptr, far *baseptr; + int i,j,delta; + + +// +// fade through intermediate frames +// + for (i=1;i<=NUMREDSHIFTS;i++) + { + workptr = (byte far *)&redshifts[i-1][0]; + baseptr = &gamepal; + + for (j=0;j<=255;j++) + { + delta = 64-*baseptr; + *workptr++ = *baseptr++ + delta * i / REDSTEPS; + delta = -*baseptr; + *workptr++ = *baseptr++ + delta * i / REDSTEPS; + delta = -*baseptr; + *workptr++ = *baseptr++ + delta * i / REDSTEPS; + } + } + + for (i=1;i<=NUMWHITESHIFTS;i++) + { + workptr = (byte far *)&whiteshifts[i-1][0]; + baseptr = &gamepal; + + for (j=0;j<=255;j++) + { + delta = 64-*baseptr; + *workptr++ = *baseptr++ + delta * i / WHITESTEPS; + delta = 62-*baseptr; + *workptr++ = *baseptr++ + delta * i / WHITESTEPS; + delta = 0-*baseptr; + *workptr++ = *baseptr++ + delta * i / WHITESTEPS; + } + } +} + + +/* +===================== += += ClearPaletteShifts += +===================== +*/ + +void ClearPaletteShifts (void) +{ + bonuscount = damagecount = 0; +} + + +/* +===================== += += StartBonusFlash += +===================== +*/ + +void StartBonusFlash (void) +{ + bonuscount = NUMWHITESHIFTS*WHITETICS; // white shift palette +} + + +/* +===================== += += StartDamageFlash += +===================== +*/ + +void StartDamageFlash (int damage) +{ + damagecount += damage; +} + + +/* +===================== += += UpdatePaletteShifts += +===================== +*/ + +void UpdatePaletteShifts (void) +{ + int red,white; + + if (bonuscount) + { + white = bonuscount/WHITETICS +1; + if (white>NUMWHITESHIFTS) + white = NUMWHITESHIFTS; + bonuscount -= tics; + if (bonuscount < 0) + bonuscount = 0; + } + else + white = 0; + + + if (damagecount) + { + red = damagecount/10 +1; + if (red>NUMREDSHIFTS) + red = NUMREDSHIFTS; + + damagecount -= tics; + if (damagecount < 0) + damagecount = 0; + } + else + red = 0; + + if (red) + { + VW_WaitVBL(1); + VL_SetPalette (redshifts[red-1]); + palshifted = true; + } + else if (white) + { + VW_WaitVBL(1); + VL_SetPalette (whiteshifts[white-1]); + palshifted = true; + } + else if (palshifted) + { + VW_WaitVBL(1); + VL_SetPalette (&gamepal); // back to normal + palshifted = false; + } +} + + +/* +===================== += += FinishPaletteShifts += += Resets palette to normal if needed += +===================== +*/ + +void FinishPaletteShifts (void) +{ + if (palshifted) + { + palshifted = 0; + VW_WaitVBL(1); + VL_SetPalette (&gamepal); + } +} + + +/* +============================================================================= + + CORE PLAYLOOP + +============================================================================= +*/ + + +/* +===================== += += DoActor += +===================== +*/ + +void DoActor (objtype *ob) +{ + void (*think)(objtype *); + + if (!ob->active && !areabyplayer[ob->areanumber]) + return; + + if (!(ob->flags&(FL_NONMARK|FL_NEVERMARK)) ) + actorat[ob->tilex][ob->tiley] = NULL; + +// +// non transitional object +// + + if (!ob->ticcount) + { + think = ob->state->think; + if (think) + { + think (ob); + if (!ob->state) + { + RemoveObj (ob); + return; + } + } + + if (ob->flags&FL_NEVERMARK) + return; + + if ( (ob->flags&FL_NONMARK) && actorat[ob->tilex][ob->tiley]) + return; + + actorat[ob->tilex][ob->tiley] = ob; + return; + } + +// +// transitional object +// + ob->ticcount-=tics; + while ( ob->ticcount <= 0) + { + think = ob->state->action; // end of state action + if (think) + { + think (ob); + if (!ob->state) + { + RemoveObj (ob); + return; + } + } + + ob->state = ob->state->next; + + if (!ob->state) + { + RemoveObj (ob); + return; + } + + if (!ob->state->tictime) + { + ob->ticcount = 0; + goto think; + } + + ob->ticcount += ob->state->tictime; + } + +think: + // + // think + // + think = ob->state->think; + if (think) + { + think (ob); + if (!ob->state) + { + RemoveObj (ob); + return; + } + } + + if (ob->flags&FL_NEVERMARK) + return; + + if ( (ob->flags&FL_NONMARK) && actorat[ob->tilex][ob->tiley]) + return; + + actorat[ob->tilex][ob->tiley] = ob; +} + +//========================================================================== + + +/* +=================== += += PlayLoop += +=================== +*/ +long funnyticount; + + +void PlayLoop (void) +{ + int give; + int helmetangle; + + playstate = TimeCount = lasttimecount = 0; + frameon = 0; + running = false; + anglefrac = 0; + facecount = 0; + funnyticount = 0; + memset (buttonstate,0,sizeof(buttonstate)); + ClearPaletteShifts (); + + if (MousePresent) + Mouse(MDelta); // Clear accumulated mouse movement + + if (demoplayback) + IN_StartAck (); + + do + { + if (virtualreality) + { + helmetangle = peek (0x40,0xf0); + player->angle += helmetangle; + if (player->angle >= ANGLES) + player->angle -= ANGLES; + } + + + PollControls(); + +// +// actor thinking +// + madenoise = false; + + MoveDoors (); + MovePWalls (); + + for (obj = player;obj;obj = obj->next) + DoActor (obj); + + UpdatePaletteShifts (); + + ThreeDRefresh (); + + // + // MAKE FUNNY FACE IF BJ DOESN'T MOVE FOR AWHILE + // + #ifdef SPEAR + funnyticount += tics; + if (funnyticount > 30l*70) + { + funnyticount = 0; + StatusDrawPic (17,4,BJWAITING1PIC+(US_RndT()&1)); + facecount = 0; + } + #endif + + gamestate.TimeCount+=tics; + + SD_Poll (); + UpdateSoundLoc(); // JAB + + if (screenfaded) + VW_FadeIn (); + + CheckKeys(); + +// +// debug aids +// + if (singlestep) + { + VW_WaitVBL(14); + lasttimecount = TimeCount; + } + if (extravbls) + VW_WaitVBL(extravbls); + + if (demoplayback) + { + if (IN_CheckAck ()) + { + IN_ClearKeysDown (); + playstate = ex_abort; + } + } + + + if (virtualreality) + { + player->angle -= helmetangle; + if (player->angle < 0) + player->angle += ANGLES; + } + + }while (!playstate && !startgame); + + if (playstate != ex_died) + FinishPaletteShifts (); +} + diff --git a/16/wf3d8086/wl_scale.c b/16/wf3d8086/wl_scale.c new file mode 100755 index 00000000..9c1e102f --- /dev/null +++ b/16/wf3d8086/wl_scale.c @@ -0,0 +1,741 @@ +// WL_SCALE.C + +#include "WL_DEF.H" +#pragma hdrstop + +#define OP_RETF 0xcb + +/* +============================================================================= + + GLOBALS + +============================================================================= +*/ + +t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1]; +long fullscalefarcall[MAXSCALEHEIGHT+1]; + +int maxscale,maxscaleshl2; + +boolean insetupscaling; + +/* +============================================================================= + + LOCALS + +============================================================================= +*/ + +t_compscale _seg *work; +unsigned BuildCompScale (int height, memptr *finalspot); + +int stepbytwo; + +//=========================================================================== + +/* +============== += += BadScale += +============== +*/ + +void far BadScale (void) +{ + Quit ("BadScale called!"); +} + + +/* +========================== += += SetupScaling += +========================== +*/ + +void SetupScaling (int maxscaleheight) +{ + int i,x,y; + byte far *dest; + + insetupscaling = true; + + maxscaleheight/=2; // one scaler every two pixels + + maxscale = maxscaleheight-1; + maxscaleshl2 = maxscale<<2; + +// +// free up old scalers +// + for (i=1;i=stepbytwo) + i += 2; + } + memset (scaledirectory,0,sizeof(scaledirectory)); + + MM_SortMem (); + +// +// build the compiled scalers +// + stepbytwo = viewheight/2; // save space by double stepping + MM_GetPtr (&(memptr)work,20000); + + for (i=1;i<=maxscaleheight;i++) + { + BuildCompScale (i*2,&(memptr)scaledirectory[i]); + if (i>=stepbytwo) + i+= 2; + } + MM_FreePtr (&(memptr)work); + +// +// compact memory and lock down scalers +// + MM_SortMem (); + for (i=1;i<=maxscaleheight;i++) + { + MM_SetLock (&(memptr)scaledirectory[i],true); + fullscalefarcall[i] = (unsigned)scaledirectory[i]; + fullscalefarcall[i] <<=16; + fullscalefarcall[i] += scaledirectory[i]->codeofs[0]; + if (i>=stepbytwo) + { + scaledirectory[i+1] = scaledirectory[i]; + fullscalefarcall[i+1] = fullscalefarcall[i]; + scaledirectory[i+2] = scaledirectory[i]; + fullscalefarcall[i+2] = fullscalefarcall[i]; + i+=2; + } + } + scaledirectory[0] = scaledirectory[1]; + fullscalefarcall[0] = fullscalefarcall[1]; + +// +// check for oversize wall drawing +// + for (i=maxscaleheight;icode[0]; + toppix = (viewheight-height)/2; + fix = 0; + + for (src=0;src<=64;src++) + { + startpix = fix>>16; + fix += step; + endpix = fix>>16; + + if (endpix>startpix) + work->width[src] = endpix-startpix; + else + work->width[src] = 0; + +// +// mark the start of the code +// + work->codeofs[src] = FP_OFF(code); + +// +// compile some code if the source pixel generates any screen pixels +// + startpix+=toppix; + endpix+=toppix; + + if (startpix == endpix || endpix < 0 || startpix >= viewheight || src == 64) + continue; + + // + // mov al,[si+src] + // + *code++ = 0x8a; + *code++ = 0x44; + *code++ = src; + + for (;startpix= viewheight) + break; // off the bottom of the view area + if (startpix < 0) + continue; // not into the view area + + // + // mov [es:di+heightofs],al + // + *code++ = 0x26; + *code++ = 0x88; + *code++ = 0x85; + *((unsigned far *)code)++ = startpix*SCREENBWIDE; + } + + } + +// +// retf +// + *code++ = 0xcb; + + totalsize = FP_OFF(code); + MM_GetPtr (finalspot,totalsize); + _fmemcpy ((byte _seg *)(*finalspot),(byte _seg *)work,totalsize); + + return totalsize; +} + + +/* +======================= += += ScaleLine += += linescale should have the high word set to the segment of the scaler += +======================= +*/ + +extern int slinex,slinewidth; +extern unsigned far *linecmds; +extern long linescale; +extern unsigned maskword; + +byte mask1,mask2,mask3; + + +void near ScaleLine (void) +{ +asm mov cx,WORD PTR [linescale+2] +asm mov es,cx // segment of scaler + +asm mov bp,WORD PTR [linecmds] +asm mov dx,SC_INDEX+1 // to set SC_MAPMASK + +asm mov bx,[slinex] +asm mov di,bx +asm shr di,1 // X in bytes +asm shr di,1 +asm add di,[bufferofs] +asm and bx,3 +/* begin 8086 hack +asm shl bx,3 +*/ +asm push cx +asm mov cl,3 +asm shl bx,cl +asm pop cx +/* end 8086 hack */ +asm add bx,[slinewidth] // bx = (pixel*8+pixwidth) +asm mov al,BYTE [mapmasks3-1+bx] // -1 because pixwidth of 1 is first +asm mov ds,WORD PTR [linecmds+2] +asm or al,al +asm jz notthreebyte // scale across three bytes +asm jmp threebyte +notthreebyte: +asm mov al,BYTE PTR ss:[mapmasks2-1+bx] // -1 because pixwidth of 1 is first +asm or al,al +asm jnz twobyte // scale across two bytes + +// +// one byte scaling +// +asm mov al,BYTE PTR ss:[mapmasks1-1+bx] // -1 because pixwidth of 1 is first +asm out dx,al // set map mask register + +scalesingle: + +asm mov bx,[ds:bp] // table location of rtl to patch +asm or bx,bx +asm jz linedone // 0 signals end of segment list +asm mov bx,[es:bx] +asm mov dl,[es:bx] // save old value +asm mov BYTE PTR es:[bx],OP_RETF // patch a RETF in +asm mov si,[ds:bp+4] // table location of entry spot +asm mov ax,[es:si] +asm mov WORD PTR ss:[linescale],ax // call here to start scaling +asm mov si,[ds:bp+2] // corrected top of shape for this segment +asm add bp,6 // next segment list + +asm mov ax,SCREENSEG +asm mov es,ax +asm call ss:[linescale] // scale the segment of pixels + +asm mov es,cx // segment of scaler +asm mov BYTE PTR es:[bx],dl // unpatch the RETF +asm jmp scalesingle // do the next segment + + +// +// done +// +linedone: +asm mov ax,ss +asm mov ds,ax +return; + +// +// two byte scaling +// +twobyte: +asm mov ss:[mask2],al +asm mov al,BYTE PTR ss:[mapmasks1-1+bx] // -1 because pixwidth of 1 is first +asm mov ss:[mask1],al + +scaledouble: + +asm mov bx,[ds:bp] // table location of rtl to patch +asm or bx,bx +asm jz linedone // 0 signals end of segment list +asm mov bx,[es:bx] +asm mov cl,[es:bx] // save old value +asm mov BYTE PTR es:[bx],OP_RETF // patch a RETF in +asm mov si,[ds:bp+4] // table location of entry spot +asm mov ax,[es:si] +asm mov WORD PTR ss:[linescale],ax // call here to start scaling +asm mov si,[ds:bp+2] // corrected top of shape for this segment +asm add bp,6 // next segment list + +asm mov ax,SCREENSEG +asm mov es,ax +asm mov al,ss:[mask1] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm inc di +asm mov al,ss:[mask2] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm dec di + +asm mov es,WORD PTR ss:[linescale+2] // segment of scaler +asm mov BYTE PTR es:[bx],cl // unpatch the RETF +asm jmp scaledouble // do the next segment + + +// +// three byte scaling +// +threebyte: +asm mov ss:[mask3],al +asm mov al,BYTE PTR ss:[mapmasks2-1+bx] // -1 because pixwidth of 1 is first +asm mov ss:[mask2],al +asm mov al,BYTE PTR ss:[mapmasks1-1+bx] // -1 because pixwidth of 1 is first +asm mov ss:[mask1],al + +scaletriple: + +asm mov bx,[ds:bp] // table location of rtl to patch +asm or bx,bx +asm jz linedone // 0 signals end of segment list +asm mov bx,[es:bx] +asm mov cl,[es:bx] // save old value +asm mov BYTE PTR es:[bx],OP_RETF // patch a RETF in +asm mov si,[ds:bp+4] // table location of entry spot +asm mov ax,[es:si] +asm mov WORD PTR ss:[linescale],ax // call here to start scaling +asm mov si,[ds:bp+2] // corrected top of shape for this segment +asm add bp,6 // next segment list + +asm mov ax,SCREENSEG +asm mov es,ax +asm mov al,ss:[mask1] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm inc di +asm mov al,ss:[mask2] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm inc di +asm mov al,ss:[mask3] +asm out dx,al // set map mask register +asm call ss:[linescale] // scale the segment of pixels +asm dec di +asm dec di + +asm mov es,WORD PTR ss:[linescale+2] // segment of scaler +asm mov BYTE PTR es:[bx],cl // unpatch the RETF +asm jmp scaletriple // do the next segment + + +} + + +/* +======================= += += ScaleShape += += Draws a compiled shape at [scale] pixels high += += each vertical line of the shape has a pointer to segment data: += end of segment pixel*2 (0 terminates line) used to patch rtl in scaler += top of virtual line with segment in proper place += start of segment pixel*2, used to jsl into compiled scaler += += += Setup for call += -------------- += GC_MODE read mode 1, write mode 2 += GC_COLORDONTCARE set to 0, so all reads from video memory return 0xff += GC_INDEX pointing at GC_BITMASK += +======================= +*/ + +static long longtemp; + +void ScaleShape (int xcenter, int shapenum, unsigned height) +{ + t_compshape _seg *shape; + t_compscale _seg *comptable; + unsigned scale,srcx,stopx,tempx; + int t; + unsigned far *cmdptr; + boolean leftvis,rightvis; + + + shape = PM_GetSpritePage (shapenum); + + scale = height>>3; // low three bits are fractional + if (!scale || scale>maxscale) + return; // too close or far away + comptable = scaledirectory[scale]; + + *(((unsigned *)&linescale)+1)=(unsigned)comptable; // seg of far call + *(((unsigned *)&linecmds)+1)=(unsigned)shape; // seg of shape + +// +// scale to the left (from pixel 31 to shape->leftpix) +// + srcx = 32; + slinex = xcenter; + stopx = shape->leftpix; + cmdptr = &shape->dataofs[31-stopx]; + + while ( --srcx >=stopx && slinex>0) + { + (unsigned)linecmds = *cmdptr--; + if ( !(slinewidth = comptable->width[srcx]) ) + continue; + + if (slinewidth == 1) + { + slinex--; + if (slinex= height) + continue; // obscured by closer wall + ScaleLine (); + } + continue; + } + + // + // handle multi pixel lines + // + if (slinex>viewwidth) + { + slinex -= slinewidth; + slinewidth = viewwidth-slinex; + if (slinewidth<1) + continue; // still off the right side + } + else + { + if (slinewidth>slinex) + slinewidth = slinex; + slinex -= slinewidth; + } + + + leftvis = (wallheight[slinex] < height); + rightvis = (wallheight[slinex+slinewidth-1] < height); + + if (leftvis) + { + if (rightvis) + ScaleLine (); + else + { + while (wallheight[slinex+slinewidth-1] >= height) + slinewidth--; + ScaleLine (); + } + } + else + { + if (!rightvis) + continue; // totally obscured + + while (wallheight[slinex] >= height) + { + slinex++; + slinewidth--; + } + ScaleLine (); + break; // the rest of the shape is gone + } + } + + +// +// scale to the right +// + slinex = xcenter; + stopx = shape->rightpix; + if (shape->leftpix<31) + { + srcx = 31; + cmdptr = &shape->dataofs[32-shape->leftpix]; + } + else + { + srcx = shape->leftpix-1; + cmdptr = &shape->dataofs[0]; + } + slinewidth = 0; + + while ( ++srcx <= stopx && (slinex+=slinewidth)width[srcx]) ) + continue; + + if (slinewidth == 1) + { + if (slinex>=0 && wallheight[slinex] < height) + { + ScaleLine (); + } + continue; + } + + // + // handle multi pixel lines + // + if (slinex<0) + { + if (slinewidth <= -slinex) + continue; // still off the left edge + + slinewidth += slinex; + slinex = 0; + } + else + { + if (slinex + slinewidth > viewwidth) + slinewidth = viewwidth-slinex; + } + + + leftvis = (wallheight[slinex] < height); + rightvis = (wallheight[slinex+slinewidth-1] < height); + + if (leftvis) + { + if (rightvis) + { + ScaleLine (); + } + else + { + while (wallheight[slinex+slinewidth-1] >= height) + slinewidth--; + ScaleLine (); + break; // the rest of the shape is gone + } + } + else + { + if (rightvis) + { + while (wallheight[slinex] >= height) + { + slinex++; + slinewidth--; + } + ScaleLine (); + } + else + continue; // totally obscured + } + } +} + + + +/* +======================= += += SimpleScaleShape += += NO CLIPPING, height in pixels += += Draws a compiled shape at [scale] pixels high += += each vertical line of the shape has a pointer to segment data: += end of segment pixel*2 (0 terminates line) used to patch rtl in scaler += top of virtual line with segment in proper place += start of segment pixel*2, used to jsl into compiled scaler += += += Setup for call += -------------- += GC_MODE read mode 1, write mode 2 += GC_COLORDONTCARE set to 0, so all reads from video memory return 0xff += GC_INDEX pointing at GC_BITMASK += +======================= +*/ + +void SimpleScaleShape (int xcenter, int shapenum, unsigned height) +{ + t_compshape _seg *shape; + t_compscale _seg *comptable; + unsigned scale,srcx,stopx,tempx; + int t; + unsigned far *cmdptr; + boolean leftvis,rightvis; + + + shape = PM_GetSpritePage (shapenum); + + scale = height>>1; + comptable = scaledirectory[scale]; + + *(((unsigned *)&linescale)+1)=(unsigned)comptable; // seg of far call + *(((unsigned *)&linecmds)+1)=(unsigned)shape; // seg of shape + +// +// scale to the left (from pixel 31 to shape->leftpix) +// + srcx = 32; + slinex = xcenter; + stopx = shape->leftpix; + cmdptr = &shape->dataofs[31-stopx]; + + while ( --srcx >=stopx ) + { + (unsigned)linecmds = *cmdptr--; + if ( !(slinewidth = comptable->width[srcx]) ) + continue; + + slinex -= slinewidth; + ScaleLine (); + } + + +// +// scale to the right +// + slinex = xcenter; + stopx = shape->rightpix; + if (shape->leftpix<31) + { + srcx = 31; + cmdptr = &shape->dataofs[32-shape->leftpix]; + } + else + { + srcx = shape->leftpix-1; + cmdptr = &shape->dataofs[0]; + } + slinewidth = 0; + + while ( ++srcx <= stopx ) + { + (unsigned)linecmds = *cmdptr++; + if ( !(slinewidth = comptable->width[srcx]) ) + continue; + + ScaleLine (); + slinex+=slinewidth; + } +} + + + + +// +// bit mask tables for drawing scaled strips up to eight pixels wide +// +// down here so the STUPID inline assembler doesn't get confused! +// + + +byte mapmasks1[4][8] = { +{1 ,3 ,7 ,15,15,15,15,15}, +{2 ,6 ,14,14,14,14,14,14}, +{4 ,12,12,12,12,12,12,12}, +{8 ,8 ,8 ,8 ,8 ,8 ,8 ,8} }; + +byte mapmasks2[4][8] = { +{0 ,0 ,0 ,0 ,1 ,3 ,7 ,15}, +{0 ,0 ,0 ,1 ,3 ,7 ,15,15}, +{0 ,0 ,1 ,3 ,7 ,15,15,15}, +{0 ,1 ,3 ,7 ,15,15,15,15} }; + +byte mapmasks3[4][8] = { +{0 ,0 ,0 ,0 ,0 ,0 ,0 ,0}, +{0 ,0 ,0 ,0 ,0 ,0 ,0 ,1}, +{0 ,0 ,0 ,0 ,0 ,0 ,1 ,3}, +{0 ,0 ,0 ,0 ,0 ,1 ,3 ,7} }; + + +unsigned wordmasks[8][8] = { +{0x0080,0x00c0,0x00e0,0x00f0,0x00f8,0x00fc,0x00fe,0x00ff}, +{0x0040,0x0060,0x0070,0x0078,0x007c,0x007e,0x007f,0x807f}, +{0x0020,0x0030,0x0038,0x003c,0x003e,0x003f,0x803f,0xc03f}, +{0x0010,0x0018,0x001c,0x001e,0x001f,0x801f,0xc01f,0xe01f}, +{0x0008,0x000c,0x000e,0x000f,0x800f,0xc00f,0xe00f,0xf00f}, +{0x0004,0x0006,0x0007,0x8007,0xc007,0xe007,0xf007,0xf807}, +{0x0002,0x0003,0x8003,0xc003,0xe003,0xf003,0xf803,0xfc03}, +{0x0001,0x8001,0xc001,0xe001,0xf001,0xf801,0xfc01,0xfe01} }; + +int slinex,slinewidth; +unsigned far *linecmds; +long linescale; +unsigned maskword; + diff --git a/16/wf3d8086/wl_state.c b/16/wf3d8086/wl_state.c new file mode 100755 index 00000000..ad534ba9 --- /dev/null +++ b/16/wf3d8086/wl_state.c @@ -0,0 +1,1480 @@ +// WL_STATE.C + +#include "WL_DEF.H" +#pragma hdrstop + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + + +/* +============================================================================= + + GLOBAL VARIABLES + +============================================================================= +*/ + + +dirtype opposite[9] = + {west,southwest,south,southeast,east,northeast,north,northwest,nodir}; + +dirtype diagonal[9][9] = +{ +/* east */ {nodir,nodir,northeast,nodir,nodir,nodir,southeast,nodir,nodir}, + {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, +/* north */ {northeast,nodir,nodir,nodir,northwest,nodir,nodir,nodir,nodir}, + {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, +/* west */ {nodir,nodir,northwest,nodir,nodir,nodir,southwest,nodir,nodir}, + {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, +/* south */ {southeast,nodir,nodir,nodir,southwest,nodir,nodir,nodir,nodir}, + {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir}, + {nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir,nodir} +}; + + + +void SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state); +void NewState (objtype *ob, statetype *state); + +boolean TryWalk (objtype *ob); +void MoveObj (objtype *ob, long move); + +void KillActor (objtype *ob); +void DamageActor (objtype *ob, unsigned damage); + +boolean CheckLine (objtype *ob); +void FirstSighting (objtype *ob); +boolean CheckSight (objtype *ob); + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + + + +//=========================================================================== + + +/* +=================== += += SpawnNewObj += += Spaws a new actor at the given TILE coordinates, with the given state, and += the given size in GLOBAL units. += += new = a pointer to an initialized new actor += +=================== +*/ + +void SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state) +{ + GetNewActor (); + new->state = state; + if (state->tictime) + new->ticcount = US_RndT () % state->tictime; + else + new->ticcount = 0; + + new->tilex = tilex; + new->tiley = tiley; + new->x = ((long)tilex<y = ((long)tiley<dir = nodir; + + actorat[tilex][tiley] = new; + new->areanumber = + *(mapsegs[0] + farmapylookup[new->tiley]+new->tilex) - AREATILE; +} + + + +/* +=================== += += NewState += += Changes ob to a new state, setting ticcount to the max for that state += +=================== +*/ + +void NewState (objtype *ob, statetype *state) +{ + ob->state = state; + ob->ticcount = state->tictime; +} + + + +/* +============================================================================= + + ENEMY TILE WORLD MOVEMENT CODE + +============================================================================= +*/ + + +/* +================================== += += TryWalk += += Attempts to move ob in its current (ob->dir) direction. += += If blocked by either a wall or an actor returns FALSE += += If move is either clear or blocked only by a door, returns TRUE and sets += += ob->tilex = new destination += ob->tiley += ob->areanumber = the floor tile number (0-(NUMAREAS-1)) of destination += ob->distance = TILEGLOBAl, or -doornumber if a door is blocking the way += += If a door is in the way, an OpenDoor call is made to start it opening. += The actor code should wait until += doorobjlist[-ob->distance].action = dr_open, meaning the door has been += fully opened += +================================== +*/ + +#define CHECKDIAG(x,y) \ +{ \ + temp=(unsigned)actorat[x][y]; \ + if (temp) \ + { \ + if (temp<256) \ + return false; \ + if (((objtype *)temp)->flags&FL_SHOOTABLE) \ + return false; \ + } \ +} + +#define CHECKSIDE(x,y) \ +{ \ + temp=(unsigned)actorat[x][y]; \ + if (temp) \ + { \ + if (temp<128) \ + return false; \ + if (temp<256) \ + doornum = temp&63; \ + else if (((objtype *)temp)->flags&FL_SHOOTABLE)\ + return false; \ + } \ +} + + +boolean TryWalk (objtype *ob) +{ + int doornum; + unsigned temp; + + doornum = -1; + + if (ob->obclass == inertobj) + { + switch (ob->dir) + { + case north: + ob->tiley--; + break; + + case northeast: + ob->tilex++; + ob->tiley--; + break; + + case east: + ob->tilex++; + break; + + case southeast: + ob->tilex++; + ob->tiley++; + break; + + case south: + ob->tiley++; + break; + + case southwest: + ob->tilex--; + ob->tiley++; + break; + + case west: + ob->tilex--; + break; + + case northwest: + ob->tilex--; + ob->tiley--; + break; + } + } + else + switch (ob->dir) + { + case north: + if (ob->obclass == dogobj || ob->obclass == fakeobj) + { + CHECKDIAG(ob->tilex,ob->tiley-1); + } + else + { + CHECKSIDE(ob->tilex,ob->tiley-1); + } + ob->tiley--; + break; + + case northeast: + CHECKDIAG(ob->tilex+1,ob->tiley-1); + CHECKDIAG(ob->tilex+1,ob->tiley); + CHECKDIAG(ob->tilex,ob->tiley-1); + ob->tilex++; + ob->tiley--; + break; + + case east: + if (ob->obclass == dogobj || ob->obclass == fakeobj) + { + CHECKDIAG(ob->tilex+1,ob->tiley); + } + else + { + CHECKSIDE(ob->tilex+1,ob->tiley); + } + ob->tilex++; + break; + + case southeast: + CHECKDIAG(ob->tilex+1,ob->tiley+1); + CHECKDIAG(ob->tilex+1,ob->tiley); + CHECKDIAG(ob->tilex,ob->tiley+1); + ob->tilex++; + ob->tiley++; + break; + + case south: + if (ob->obclass == dogobj || ob->obclass == fakeobj) + { + CHECKDIAG(ob->tilex,ob->tiley+1); + } + else + { + CHECKSIDE(ob->tilex,ob->tiley+1); + } + ob->tiley++; + break; + + case southwest: + CHECKDIAG(ob->tilex-1,ob->tiley+1); + CHECKDIAG(ob->tilex-1,ob->tiley); + CHECKDIAG(ob->tilex,ob->tiley+1); + ob->tilex--; + ob->tiley++; + break; + + case west: + if (ob->obclass == dogobj || ob->obclass == fakeobj) + { + CHECKDIAG(ob->tilex-1,ob->tiley); + } + else + { + CHECKSIDE(ob->tilex-1,ob->tiley); + } + ob->tilex--; + break; + + case northwest: + CHECKDIAG(ob->tilex-1,ob->tiley-1); + CHECKDIAG(ob->tilex-1,ob->tiley); + CHECKDIAG(ob->tilex,ob->tiley-1); + ob->tilex--; + ob->tiley--; + break; + + case nodir: + return false; + + default: + Quit ("Walk: Bad dir"); + } + + if (doornum != -1) + { + OpenDoor (doornum); + ob->distance = -doornum-1; + return true; + } + + + ob->areanumber = + *(mapsegs[0] + farmapylookup[ob->tiley]+ob->tilex) - AREATILE; + + ob->distance = TILEGLOBAL; + return true; +} + + + +/* +================================== += += SelectDodgeDir += += Attempts to choose and initiate a movement for ob that sends it towards += the player while dodging += += If there is no possible move (ob is totally surrounded) += += ob->dir = nodir += += Otherwise += += ob->dir = new direction to follow += ob->distance = TILEGLOBAL or -doornumber += ob->tilex = new destination += ob->tiley += ob->areanumber = the floor tile number (0-(NUMAREAS-1)) of destination += +================================== +*/ + +void SelectDodgeDir (objtype *ob) +{ + int deltax,deltay,i; + unsigned absdx,absdy; + dirtype dirtry[5]; + dirtype turnaround,tdir; + + if (ob->flags & FL_FIRSTATTACK) + { + // + // turning around is only ok the very first time after noticing the + // player + // + turnaround = nodir; + ob->flags &= ~FL_FIRSTATTACK; + } + else + turnaround=opposite[ob->dir]; + + deltax = player->tilex - ob->tilex; + deltay = player->tiley - ob->tiley; + +// +// arange 5 direction choices in order of preference +// the four cardinal directions plus the diagonal straight towards +// the player +// + + if (deltax>0) + { + dirtry[1]= east; + dirtry[3]= west; + } + else + { + dirtry[1]= west; + dirtry[3]= east; + } + + if (deltay>0) + { + dirtry[2]= south; + dirtry[4]= north; + } + else + { + dirtry[2]= north; + dirtry[4]= south; + } + +// +// randomize a bit for dodging +// + absdx = abs(deltax); + absdy = abs(deltay); + + if (absdx > absdy) + { + tdir = dirtry[1]; + dirtry[1] = dirtry[2]; + dirtry[2] = tdir; + tdir = dirtry[3]; + dirtry[3] = dirtry[4]; + dirtry[4] = tdir; + } + + if (US_RndT() < 128) + { + tdir = dirtry[1]; + dirtry[1] = dirtry[2]; + dirtry[2] = tdir; + tdir = dirtry[3]; + dirtry[3] = dirtry[4]; + dirtry[4] = tdir; + } + + dirtry[0] = diagonal [ dirtry[1] ] [ dirtry[2] ]; + +// +// try the directions util one works +// + for (i=0;i<5;i++) + { + if ( dirtry[i] == nodir || dirtry[i] == turnaround) + continue; + + ob->dir = dirtry[i]; + if (TryWalk(ob)) + return; + } + +// +// turn around only as a last resort +// + if (turnaround != nodir) + { + ob->dir = turnaround; + + if (TryWalk(ob)) + return; + } + + ob->dir = nodir; +} + + +/* +============================ += += SelectChaseDir += += As SelectDodgeDir, but doesn't try to dodge += +============================ +*/ + +void SelectChaseDir (objtype *ob) +{ + int deltax,deltay,i; + dirtype d[3]; + dirtype tdir, olddir, turnaround; + + + olddir=ob->dir; + turnaround=opposite[olddir]; + + deltax=player->tilex - ob->tilex; + deltay=player->tiley - ob->tiley; + + d[1]=nodir; + d[2]=nodir; + + if (deltax>0) + d[1]= east; + else if (deltax<0) + d[1]= west; + if (deltay>0) + d[2]=south; + else if (deltay<0) + d[2]=north; + + if (abs(deltay)>abs(deltax)) + { + tdir=d[1]; + d[1]=d[2]; + d[2]=tdir; + } + + if (d[1]==turnaround) + d[1]=nodir; + if (d[2]==turnaround) + d[2]=nodir; + + + if (d[1]!=nodir) + { + ob->dir=d[1]; + if (TryWalk(ob)) + return; /*either moved forward or attacked*/ + } + + if (d[2]!=nodir) + { + ob->dir=d[2]; + if (TryWalk(ob)) + return; + } + +/* there is no direct path to the player, so pick another direction */ + + if (olddir!=nodir) + { + ob->dir=olddir; + if (TryWalk(ob)) + return; + } + + if (US_RndT()>128) /*randomly determine direction of search*/ + { + for (tdir=north;tdir<=west;tdir++) + { + if (tdir!=turnaround) + { + ob->dir=tdir; + if ( TryWalk(ob) ) + return; + } + } + } + else + { + for (tdir=west;tdir>=north;tdir--) + { + if (tdir!=turnaround) + { + ob->dir=tdir; + if ( TryWalk(ob) ) + return; + } + } + } + + if (turnaround != nodir) + { + ob->dir=turnaround; + if (ob->dir != nodir) + { + if ( TryWalk(ob) ) + return; + } + } + + ob->dir = nodir; // can't move +} + + +/* +============================ += += SelectRunDir += += Run Away from player += +============================ +*/ + +void SelectRunDir (objtype *ob) +{ + int deltax,deltay,i; + dirtype d[3]; + dirtype tdir, olddir, turnaround; + + + deltax=player->tilex - ob->tilex; + deltay=player->tiley - ob->tiley; + + if (deltax<0) + d[1]= east; + else + d[1]= west; + if (deltay<0) + d[2]=south; + else + d[2]=north; + + if (abs(deltay)>abs(deltax)) + { + tdir=d[1]; + d[1]=d[2]; + d[2]=tdir; + } + + ob->dir=d[1]; + if (TryWalk(ob)) + return; /*either moved forward or attacked*/ + + ob->dir=d[2]; + if (TryWalk(ob)) + return; + +/* there is no direct path to the player, so pick another direction */ + + if (US_RndT()>128) /*randomly determine direction of search*/ + { + for (tdir=north;tdir<=west;tdir++) + { + ob->dir=tdir; + if ( TryWalk(ob) ) + return; + } + } + else + { + for (tdir=west;tdir>=north;tdir--) + { + ob->dir=tdir; + if ( TryWalk(ob) ) + return; + } + } + + ob->dir = nodir; // can't move +} + + +/* +================= += += MoveObj += += Moves ob be move global units in ob->dir direction += Actors are not allowed to move inside the player += Does NOT check to see if the move is tile map valid += += ob->x = adjusted for new position += ob->y += +================= +*/ + +void MoveObj (objtype *ob, long move) +{ + long deltax,deltay; + + switch (ob->dir) + { + case north: + ob->y -= move; + break; + case northeast: + ob->x += move; + ob->y -= move; + break; + case east: + ob->x += move; + break; + case southeast: + ob->x += move; + ob->y += move; + break; + case south: + ob->y += move; + break; + case southwest: + ob->x -= move; + ob->y += move; + break; + case west: + ob->x -= move; + break; + case northwest: + ob->x -= move; + ob->y -= move; + break; + + case nodir: + return; + + default: + Quit ("MoveObj: bad dir!"); + } + +// +// check to make sure it's not on top of player +// + if (areabyplayer[ob->areanumber]) + { + deltax = ob->x - player->x; + if (deltax < -MINACTORDIST || deltax > MINACTORDIST) + goto moveok; + deltay = ob->y - player->y; + if (deltay < -MINACTORDIST || deltay > MINACTORDIST) + goto moveok; + + if (ob->obclass == ghostobj || ob->obclass == spectreobj) + TakeDamage (tics*2,ob); + + // + // back up + // + switch (ob->dir) + { + case north: + ob->y += move; + break; + case northeast: + ob->x -= move; + ob->y += move; + break; + case east: + ob->x -= move; + break; + case southeast: + ob->x -= move; + ob->y -= move; + break; + case south: + ob->y -= move; + break; + case southwest: + ob->x += move; + ob->y -= move; + break; + case west: + ob->x += move; + break; + case northwest: + ob->x += move; + ob->y += move; + break; + + case nodir: + return; + } + return; + } +moveok: + ob->distance -=move; +} + +/* +============================================================================= + + STUFF + +============================================================================= +*/ + +/* +=============== += += DropItem += += Tries to drop a bonus item somewhere in the tiles surrounding the += given tilex/tiley += +=============== +*/ + +void DropItem (stat_t itemtype, int tilex, int tiley) +{ + int x,y,xl,xh,yl,yh; + +// +// find a free spot to put it in +// + if (!actorat[tilex][tiley]) + { + PlaceItemType (itemtype, tilex,tiley); + return; + } + + xl = tilex-1; + xh = tilex+1; + yl = tiley-1; + yh = tiley+1; + + for (x=xl ; x<= xh ; x++) + for (y=yl ; y<= yh ; y++) + if (!actorat[x][y]) + { + PlaceItemType (itemtype, x,y); + return; + } +} + + + +/* +=============== += += KillActor += +=============== +*/ + +void KillActor (objtype *ob) +{ + int tilex,tiley; + + tilex = ob->tilex = ob->x >> TILESHIFT; // drop item on center + tiley = ob->tiley = ob->y >> TILESHIFT; + + switch (ob->obclass) + { + case guardobj: + GivePoints (100); + NewState (ob,&s_grddie1); + PlaceItemType (bo_clip2,tilex,tiley); + break; + + case officerobj: + GivePoints (400); + NewState (ob,&s_ofcdie1); + PlaceItemType (bo_clip2,tilex,tiley); + break; + + case mutantobj: + GivePoints (700); + NewState (ob,&s_mutdie1); + PlaceItemType (bo_clip2,tilex,tiley); + break; + + case ssobj: + GivePoints (500); + NewState (ob,&s_ssdie1); + if (gamestate.bestweapon < wp_machinegun) + PlaceItemType (bo_machinegun,tilex,tiley); + else + PlaceItemType (bo_clip2,tilex,tiley); + break; + + case dogobj: + GivePoints (200); + NewState (ob,&s_dogdie1); + break; + +#ifndef SPEAR + case bossobj: + GivePoints (5000); + NewState (ob,&s_bossdie1); + PlaceItemType (bo_key1,tilex,tiley); + break; + + case gretelobj: + GivePoints (5000); + NewState (ob,&s_greteldie1); + PlaceItemType (bo_key1,tilex,tiley); + break; + + case giftobj: + GivePoints (5000); + gamestate.killx = player->x; + gamestate.killy = player->y; + NewState (ob,&s_giftdie1); + break; + + case fatobj: + GivePoints (5000); + gamestate.killx = player->x; + gamestate.killy = player->y; + NewState (ob,&s_fatdie1); + break; + + case schabbobj: + GivePoints (5000); + gamestate.killx = player->x; + gamestate.killy = player->y; + NewState (ob,&s_schabbdie1); + A_DeathScream(ob); + break; + case fakeobj: + GivePoints (2000); + NewState (ob,&s_fakedie1); + break; + + case mechahitlerobj: + GivePoints (5000); + NewState (ob,&s_mechadie1); + break; + case realhitlerobj: + GivePoints (5000); + gamestate.killx = player->x; + gamestate.killy = player->y; + NewState (ob,&s_hitlerdie1); + A_DeathScream(ob); + break; +#else + case spectreobj: + GivePoints (200); + NewState (ob,&s_spectredie1); + break; + + case angelobj: + GivePoints (5000); + NewState (ob,&s_angeldie1); + break; + + case transobj: + GivePoints (5000); + NewState (ob,&s_transdie0); + PlaceItemType (bo_key1,tilex,tiley); + break; + + case uberobj: + GivePoints (5000); + NewState (ob,&s_uberdie0); + PlaceItemType (bo_key1,tilex,tiley); + break; + + case willobj: + GivePoints (5000); + NewState (ob,&s_willdie1); + PlaceItemType (bo_key1,tilex,tiley); + break; + + case deathobj: + GivePoints (5000); + NewState (ob,&s_deathdie1); + PlaceItemType (bo_key1,tilex,tiley); + break; +#endif + } + + gamestate.killcount++; + ob->flags &= ~FL_SHOOTABLE; + actorat[ob->tilex][ob->tiley] = NULL; + ob->flags |= FL_NONMARK; +} + + + +/* +=================== += += DamageActor += += Called when the player succesfully hits an enemy. += += Does damage points to enemy ob, either putting it into a stun frame or += killing it. += +=================== +*/ + +void DamageActor (objtype *ob, unsigned damage) +{ + madenoise = true; + +// +// do double damage if shooting a non attack mode actor +// + if ( !(ob->flags & FL_ATTACKMODE) ) + damage <<= 1; + + ob->hitpoints -= damage; + + if (ob->hitpoints<=0) + KillActor (ob); + else + { + if (! (ob->flags & FL_ATTACKMODE) ) + FirstSighting (ob); // put into combat mode + + switch (ob->obclass) // dogs only have one hit point + { + case guardobj: + if (ob->hitpoints&1) + NewState (ob,&s_grdpain); + else + NewState (ob,&s_grdpain1); + break; + + case officerobj: + if (ob->hitpoints&1) + NewState (ob,&s_ofcpain); + else + NewState (ob,&s_ofcpain1); + break; + + case mutantobj: + if (ob->hitpoints&1) + NewState (ob,&s_mutpain); + else + NewState (ob,&s_mutpain1); + break; + + case ssobj: + if (ob->hitpoints&1) + NewState (ob,&s_sspain); + else + NewState (ob,&s_sspain1); + + break; + + } + } +} + +/* +============================================================================= + + CHECKSIGHT + +============================================================================= +*/ + + +/* +===================== += += CheckLine += += Returns true if a straight line between the player and ob is unobstructed += +===================== +*/ + +boolean CheckLine (objtype *ob) +{ + int x1,y1,xt1,yt1,x2,y2,xt2,yt2; + int x,y; + int xdist,ydist,xstep,ystep; + int temp; + int partial,delta; + long ltemp; + int xfrac,yfrac,deltafrac; + unsigned value,intercept; + + x1 = ob->x >> UNSIGNEDSHIFT; // 1/256 tile precision + y1 = ob->y >> UNSIGNEDSHIFT; + xt1 = x1 >> 8; + yt1 = y1 >> 8; + + x2 = plux; + y2 = pluy; + xt2 = player->tilex; + yt2 = player->tiley; + + + xdist = abs(xt2-xt1); + + if (xdist > 0) + { + if (xt2 > xt1) + { + partial = 256-(x1&0xff); + xstep = 1; + } + else + { + partial = x1&0xff; + xstep = -1; + } + + deltafrac = abs(x2-x1); + delta = y2-y1; + ltemp = ((long)delta<<8)/deltafrac; + if (ltemp > 0x7fffl) + ystep = 0x7fff; + else if (ltemp < -0x7fffl) + ystep = -0x7fff; + else + ystep = ltemp; + yfrac = y1 + (((long)ystep*partial) >>8); + + x = xt1+xstep; + xt2 += xstep; + do + { + y = yfrac>>8; + yfrac += ystep; + + value = (unsigned)tilemap[x][y]; + x += xstep; + + if (!value) + continue; + + if (value<128 || value>256) + return false; + + // + // see if the door is open enough + // + value &= ~0x80; + intercept = yfrac-ystep/2; + + if (intercept>doorposition[value]) + return false; + + } while (x != xt2); + } + + ydist = abs(yt2-yt1); + + if (ydist > 0) + { + if (yt2 > yt1) + { + partial = 256-(y1&0xff); + ystep = 1; + } + else + { + partial = y1&0xff; + ystep = -1; + } + + deltafrac = abs(y2-y1); + delta = x2-x1; + ltemp = ((long)delta<<8)/deltafrac; + if (ltemp > 0x7fffl) + xstep = 0x7fff; + else if (ltemp < -0x7fffl) + xstep = -0x7fff; + else + xstep = ltemp; + xfrac = x1 + (((long)xstep*partial) >>8); + + y = yt1 + ystep; + yt2 += ystep; + do + { + x = xfrac>>8; + xfrac += xstep; + + value = (unsigned)tilemap[x][y]; + y += ystep; + + if (!value) + continue; + + if (value<128 || value>256) + return false; + + // + // see if the door is open enough + // + value &= ~0x80; + intercept = xfrac-xstep/2; + + if (intercept>doorposition[value]) + return false; + } while (y != yt2); + } + + return true; +} + + + +/* +================ += += CheckSight += += Checks a straight line between player and current object += += If the sight is ok, check alertness and angle to see if they notice += += returns true if the player has been spoted += +================ +*/ + +#define MINSIGHT 0x18000l + +boolean CheckSight (objtype *ob) +{ + long deltax,deltay; + +// +// don't bother tracing a line if the area isn't connected to the player's +// + if (!areabyplayer[ob->areanumber]) + return false; + +// +// if the player is real close, sight is automatic +// + deltax = player->x - ob->x; + deltay = player->y - ob->y; + + if (deltax > -MINSIGHT && deltax < MINSIGHT + && deltay > -MINSIGHT && deltay < MINSIGHT) + return true; + +// +// see if they are looking in the right direction +// + switch (ob->dir) + { + case north: + if (deltay > 0) + return false; + break; + + case east: + if (deltax < 0) + return false; + break; + + case south: + if (deltay < 0) + return false; + break; + + case west: + if (deltax > 0) + return false; + break; + } + +// +// trace a line to check for blocking tiles (corners) +// + return CheckLine (ob); + +} + + + +/* +=============== += += FirstSighting += += Puts an actor into attack mode and possibly reverses the direction += if the player is behind it += +=============== +*/ + +void FirstSighting (objtype *ob) +{ +// +// react to the player +// + switch (ob->obclass) + { + case guardobj: + PlaySoundLocActor(HALTSND,ob); + NewState (ob,&s_grdchase1); + ob->speed *= 3; // go faster when chasing player + break; + + case officerobj: + PlaySoundLocActor(SPIONSND,ob); + NewState (ob,&s_ofcchase1); + ob->speed *= 5; // go faster when chasing player + break; + + case mutantobj: + NewState (ob,&s_mutchase1); + ob->speed *= 3; // go faster when chasing player + break; + + case ssobj: + PlaySoundLocActor(SCHUTZADSND,ob); + NewState (ob,&s_sschase1); + ob->speed *= 4; // go faster when chasing player + break; + + case dogobj: + PlaySoundLocActor(DOGBARKSND,ob); + NewState (ob,&s_dogchase1); + ob->speed *= 2; // go faster when chasing player + break; + +#ifndef SPEAR + case bossobj: + SD_PlaySound(GUTENTAGSND); + NewState (ob,&s_bosschase1); + ob->speed = SPDPATROL*3; // go faster when chasing player + break; + + case gretelobj: + SD_PlaySound(KEINSND); + NewState (ob,&s_gretelchase1); + ob->speed *= 3; // go faster when chasing player + break; + + case giftobj: + SD_PlaySound(EINESND); + NewState (ob,&s_giftchase1); + ob->speed *= 3; // go faster when chasing player + break; + + case fatobj: + SD_PlaySound(ERLAUBENSND); + NewState (ob,&s_fatchase1); + ob->speed *= 3; // go faster when chasing player + break; + + case schabbobj: + SD_PlaySound(SCHABBSHASND); + NewState (ob,&s_schabbchase1); + ob->speed *= 3; // go faster when chasing player + break; + + case fakeobj: + SD_PlaySound(TOT_HUNDSND); + NewState (ob,&s_fakechase1); + ob->speed *= 3; // go faster when chasing player + break; + + case mechahitlerobj: + SD_PlaySound(DIESND); + NewState (ob,&s_mechachase1); + ob->speed *= 3; // go faster when chasing player + break; + + case realhitlerobj: + SD_PlaySound(DIESND); + NewState (ob,&s_hitlerchase1); + ob->speed *= 5; // go faster when chasing player + break; + + case ghostobj: + NewState (ob,&s_blinkychase1); + ob->speed *= 2; // go faster when chasing player + break; +#else + + case spectreobj: + SD_PlaySound(GHOSTSIGHTSND); + NewState (ob,&s_spectrechase1); + ob->speed = 800; // go faster when chasing player + break; + + case angelobj: + SD_PlaySound(ANGELSIGHTSND); + NewState (ob,&s_angelchase1); + ob->speed = 1536; // go faster when chasing player + break; + + case transobj: + SD_PlaySound(TRANSSIGHTSND); + NewState (ob,&s_transchase1); + ob->speed = 1536; // go faster when chasing player + break; + + case uberobj: + NewState (ob,&s_uberchase1); + ob->speed = 3000; // go faster when chasing player + break; + + case willobj: + SD_PlaySound(WILHELMSIGHTSND); + NewState (ob,&s_willchase1); + ob->speed = 2048; // go faster when chasing player + break; + + case deathobj: + SD_PlaySound(KNIGHTSIGHTSND); + NewState (ob,&s_deathchase1); + ob->speed = 2048; // go faster when chasing player + break; + +#endif + } + + if (ob->distance < 0) + ob->distance = 0; // ignore the door opening command + + ob->flags |= FL_ATTACKMODE|FL_FIRSTATTACK; +} + + + +/* +=============== += += SightPlayer += += Called by actors that ARE NOT chasing the player. If the player += is detected (by sight, noise, or proximity), the actor is put into += it's combat frame and true is returned. += += Incorporates a random reaction delay += +=============== +*/ + +boolean SightPlayer (objtype *ob) +{ + if (ob->flags & FL_ATTACKMODE) + Quit ("An actor in ATTACKMODE called SightPlayer!"); + + if (ob->temp2) + { + // + // count down reaction time + // + ob->temp2 -= tics; + if (ob->temp2 > 0) + return false; + ob->temp2 = 0; // time to react + } + else + { + if (!areabyplayer[ob->areanumber]) + return false; + + if (ob->flags & FL_AMBUSH) + { + if (!CheckSight (ob)) + return false; + ob->flags &= ~FL_AMBUSH; + } + else + { + if (!madenoise && !CheckSight (ob)) + return false; + } + + + switch (ob->obclass) + { + case guardobj: + ob->temp2 = 1+US_RndT()/4; + break; + case officerobj: + ob->temp2 = 2; + break; + case mutantobj: + ob->temp2 = 1+US_RndT()/6; + break; + case ssobj: + ob->temp2 = 1+US_RndT()/6; + break; + case dogobj: + ob->temp2 = 1+US_RndT()/8; + break; + + case bossobj: + case schabbobj: + case fakeobj: + case mechahitlerobj: + case realhitlerobj: + case gretelobj: + case giftobj: + case fatobj: + case spectreobj: + case angelobj: + case transobj: + case uberobj: + case willobj: + case deathobj: + ob->temp2 = 1; + break; + } + return false; + } + + FirstSighting (ob); + + return true; +} + + diff --git a/16/wf3d8086/wl_text.c b/16/wf3d8086/wl_text.c new file mode 100755 index 00000000..1df86b83 --- /dev/null +++ b/16/wf3d8086/wl_text.c @@ -0,0 +1,859 @@ +// WL_TEXT.C + +#include "WL_DEF.H" +#pragma hdrstop + +/* +============================================================================= + +TEXT FORMATTING COMMANDS +------------------------ +^C Change text color +^E[enter] End of layout (all pages) +^G,,[enter] Draw a graphic and push margins +^P[enter] start new page, must be the first chars in a layout +^L,[ENTER] Locate to a specific spot, x in pixels, y in lines + +============================================================================= +*/ + +/* +============================================================================= + + LOCAL CONSTANTS + +============================================================================= +*/ + +#define BACKCOLOR 0x11 + + +#define WORDLIMIT 80 +#define FONTHEIGHT 10 +#define TOPMARGIN 16 +#define BOTTOMMARGIN 32 +#define LEFTMARGIN 16 +#define RIGHTMARGIN 16 +#define PICMARGIN 8 +#define TEXTROWS ((200-TOPMARGIN-BOTTOMMARGIN)/FONTHEIGHT) +#define SPACEWIDTH 7 +#define SCREENPIXWIDTH 320 +#define SCREENMID (SCREENPIXWIDTH/2) + +/* +============================================================================= + + LOCAL VARIABLES + +============================================================================= +*/ + +int pagenum,numpages; + +unsigned leftmargin[TEXTROWS],rightmargin[TEXTROWS]; +char far *text; +unsigned rowon; + +int picx,picy,picnum,picdelay; +boolean layoutdone; + +//=========================================================================== + +#ifndef JAPAN +/* +===================== += += RipToEOL += +===================== +*/ + +void RipToEOL (void) +{ + while (*text++ != '\n') // scan to end of line + ; +} + + +/* +===================== += += ParseNumber += +===================== +*/ + +int ParseNumber (void) +{ + char ch; + char num[80],*numptr; + +// +// scan until a number is found +// + ch = *text; + while (ch < '0' || ch >'9') + ch = *++text; + +// +// copy the number out +// + numptr = num; + do + { + *numptr++ = ch; + ch = *++text; + } while (ch >= '0' && ch <= '9'); + *numptr = 0; + + return atoi (num); +} + + + +/* +===================== += += ParsePicCommand += += Call with text pointing just after a ^P += Upon exit text points to the start of next line += +===================== +*/ + +void ParsePicCommand (void) +{ + picy=ParseNumber(); + picx=ParseNumber(); + picnum=ParseNumber(); + RipToEOL (); +} + + +void ParseTimedCommand (void) +{ + picy=ParseNumber(); + picx=ParseNumber(); + picnum=ParseNumber(); + picdelay=ParseNumber(); + RipToEOL (); +} + + +/* +===================== += += TimedPicCommand += += Call with text pointing just after a ^P += Upon exit text points to the start of next line += +===================== +*/ + +void TimedPicCommand (void) +{ + ParseTimedCommand (); + +// +// update the screen, and wait for time delay +// + VW_UpdateScreen (); + +// +// wait for time +// + TimeCount = 0; + while (TimeCount < picdelay) + ; + +// +// draw pic +// + VWB_DrawPic (picx&~7,picy,picnum); +} + + +/* +===================== += += HandleCommand += +===================== +*/ + +void HandleCommand (void) +{ + int i,margin,top,bottom; + int picwidth,picheight,picmid; + + switch (toupper(*++text)) + { + case 'B': + picy=ParseNumber(); + picx=ParseNumber(); + picwidth=ParseNumber(); + picheight=ParseNumber(); + VWB_Bar(picx,picy,picwidth,picheight,BACKCOLOR); + RipToEOL(); + break; + case ';': // comment + RipToEOL(); + break; + case 'P': // ^P is start of next page, ^E is end of file + case 'E': + layoutdone = true; + text--; // back up to the '^' + break; + + case 'C': // ^c changes text color + i = toupper(*++text); + if (i>='0' && i<='9') + fontcolor = i-'0'; + else if (i>='A' && i<='F') + fontcolor = i-'A'+10; + + fontcolor *= 16; + i = toupper(*++text); + if (i>='0' && i<='9') + fontcolor += i-'0'; + else if (i>='A' && i<='F') + fontcolor += i-'A'+10; + text++; + break; + + case '>': + px = 160; + text++; + break; + + case 'L': + py=ParseNumber(); + rowon = (py-TOPMARGIN)/FONTHEIGHT; + py = TOPMARGIN+rowon*FONTHEIGHT; + px=ParseNumber(); + while (*text++ != '\n') // scan to end of line + ; + break; + + case 'T': // ^Tyyy,xxx,ppp,ttt waits ttt tics, then draws pic + TimedPicCommand (); + break; + + case 'G': // ^Gyyy,xxx,ppp draws graphic + ParsePicCommand (); + VWB_DrawPic (picx&~7,picy,picnum); + picwidth = pictable[picnum-STARTPICS].width; + picheight = pictable[picnum-STARTPICS].height; + // + // adjust margins + // + picmid = picx + picwidth/2; + if (picmid > SCREENMID) + margin = picx-PICMARGIN; // new right margin + else + margin = picx+picwidth+PICMARGIN; // new left margin + + top = (picy-TOPMARGIN)/FONTHEIGHT; + if (top<0) + top = 0; + bottom = (picy+picheight-TOPMARGIN)/FONTHEIGHT; + if (bottom>=TEXTROWS) + bottom = TEXTROWS-1; + + for (i=top;i<=bottom;i++) + if (picmid > SCREENMID) + rightmargin[i] = margin; + else + leftmargin[i] = margin; + + // + // adjust this line if needed + // + if (px < leftmargin[rowon]) + px = leftmargin[rowon]; + break; + } +} + + +/* +===================== += += NewLine += +===================== +*/ + +void NewLine (void) +{ + char ch; + + if (++rowon == TEXTROWS) + { + // + // overflowed the page, so skip until next page break + // + layoutdone = true; + do + { + if (*text == '^') + { + ch = toupper(*(text+1)); + if (ch == 'E' || ch == 'P') + { + layoutdone = true; + return; + } + } + text++; + + } while (1); + + } + px = leftmargin[rowon]; + py+= FONTHEIGHT; +} + + + +/* +===================== += += HandleCtrls += +===================== +*/ + +void HandleCtrls (void) +{ + char ch; + + ch = *text++; // get the character and advance + + if (ch == '\n') + { + NewLine (); + return; + } + +} + + +/* +===================== += += HandleWord += +===================== +*/ + +void HandleWord (void) +{ + char word[WORDLIMIT]; + int i,wordindex; + unsigned wwidth,wheight,newpos; + + + // + // copy the next word into [word] + // + word[0] = *text++; + wordindex = 1; + while (*text>32) + { + word[wordindex] = *text++; + if (++wordindex == WORDLIMIT) + Quit ("PageLayout: Word limit exceeded"); + } + word[wordindex] = 0; // stick a null at end for C + + // + // see if it fits on this line + // + VW_MeasurePropString (word,&wwidth,&wheight); + + while (px+wwidth > rightmargin[rowon]) + { + NewLine (); + if (layoutdone) + return; // overflowed page + } + + // + // print it + // + newpos = px+wwidth; + VWB_DrawPropString (word); + px = newpos; + + // + // suck up any extra spaces + // + while (*text == ' ') + { + px += SPACEWIDTH; + text++; + } +} + +/* +===================== += += PageLayout += += Clears the screen, draws the pics on the page, and word wraps the text. += Returns a pointer to the terminating command += +===================== +*/ + +void PageLayout (boolean shownumber) +{ + int i,oldfontcolor; + char ch; + + oldfontcolor = fontcolor; + + fontcolor = 0; + +// +// clear the screen +// + VWB_Bar (0,0,320,200,BACKCOLOR); + VWB_DrawPic (0,0,H_TOPWINDOWPIC); + VWB_DrawPic (0,8,H_LEFTWINDOWPIC); + VWB_DrawPic (312,8,H_RIGHTWINDOWPIC); + VWB_DrawPic (8,176,H_BOTTOMINFOPIC); + + + for (i=0;i1) + { + #ifndef JAPAN + BackPage (); + BackPage (); + #else + pagenum--; + #endif + newpage = true; + } + break; + + case sc_Enter: + case sc_DownArrow: + case sc_PgDn: + case sc_RightArrow: // the text allready points at next page + if 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 RJBoVVZ_B|wEhH)P{{RI5maYH* literal 0 HcmV?d00001 diff --git a/16/wf3d8086/wolf.obr b/16/wf3d8086/wolf.obr new file mode 100755 index 0000000000000000000000000000000000000000..d51eda791f38af94fa3c32e2693aa06180bfceeb GIT binary patch literal 467 zcmZ=N$}cZYEm8OzGjwq-kxRFVDb7eN&r6Rf&Mz%WPK_xj&PdJ4i7ANBP0Y;GOJ+EO0@AG*&S2L7 zRj3HGRu_nkpcv!;D0e^@( TgOrg7Kq2~os0?m-Xg)6E|yI*Cl$t-(U5wyHC%Y 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 Jn#5m${ukqkHp~D3 literal 0 HcmV?d00001 diff --git a/16/wf3d8086/wolfgtv.h b/16/wf3d8086/wolfgtv.h new file mode 100755 index 00000000..05abb0e5 --- /dev/null +++ b/16/wf3d8086/wolfgtv.h @@ -0,0 +1,10 @@ +//#define SPEAR +//#define JAPAN +#define GOODTIMES +#define ARTSEXTERN +#define DEMOSEXTERN +//#define MYPROFILE +//#define DEBCHECK +#define CARMACIZED +//#define UPLOAD + \ No newline at end of file diff --git a/16/wf3d8086/wolfhack.c b/16/wf3d8086/wolfhack.c new file mode 100755 index 00000000..343d3b9f --- /dev/null +++ b/16/wf3d8086/wolfhack.c @@ -0,0 +1,186 @@ +// WOLFHACK.C + +#include "WL_DEF.H" + +#define MAXVIEWHEIGHT 200 + +int spanstart[MAXVIEWHEIGHT/2]; + +fixed stepscale[MAXVIEWHEIGHT/2]; +fixed basedist[MAXVIEWHEIGHT/2]; + +extern char far planepics[8192]; // 4k of ceiling, 4k of floor + +int halfheight = 0; + +byte far *planeylookup[MAXVIEWHEIGHT/2]; +unsigned mirrorofs[MAXVIEWHEIGHT/2]; + +fixed psin, pcos; + +fixed FixedMul (fixed a, fixed b) +{ + return (a>>8)*(b>>8); +} + + +int mr_rowofs; +int mr_count; +int mr_xstep; +int mr_ystep; +int mr_xfrac; +int mr_yfrac; +int mr_dest; + + +/* +============== += += DrawSpans += += Height ranges from 0 (infinity) to viewheight/2 (nearest) +============== +*/ + +void DrawSpans (int x1, int x2, int height) +{ + fixed length; + int ofs; + int prestep; + fixed startxfrac, startyfrac; + + int x, startx, count, plane, startplane; + byte far *toprow, far *dest; + + toprow = planeylookup[height]+bufferofs; + mr_rowofs = mirrorofs[height]; + + mr_xstep = (psin<<1)/height; + mr_ystep = (pcos<<1)/height; + + length = basedist[height]; + startxfrac = (viewx + FixedMul(length,pcos)); + startyfrac = (viewy - FixedMul(length,psin)); + +// draw two spans simultaniously + + plane = startplane = x1&3; + prestep = viewwidth/2 - x1; + do + { + outportb (SC_INDEX+1,1<>2)*prestep; + mr_yfrac = startyfrac - (mr_ystep>>2)*prestep; + + startx = x1>>2; + mr_dest = (unsigned)toprow + startx; + mr_count = ((x2-plane)>>2) - startx + 1; + x1++; + prestep--; + if (mr_count) + MapRow (); + plane = (plane+1)&3; + } while (plane != startplane); + +} + + + + +/* +=================== += += SetPlaneViewSize += +=================== +*/ + +void SetPlaneViewSize (void) +{ + int x,y; + byte far *dest, far *src; + + halfheight = viewheight>>1; + + + for (y=0 ; y0) + basedist[y] = GLOBAL1/2*scale/y; + } + + src = PM_GetPage(0); + dest = planepics; + for (x=0 ; x<4096 ; x++) + { + *dest = *src++; + dest += 2; + } + src = PM_GetPage(1); + dest = planepics+1; + for (x=0 ; x<4096 ; x++) + { + *dest = *src++; + dest += 2; + } + +} + + +/* +=================== += += DrawPlanes += +=================== +*/ + +void DrawPlanes (void) +{ + int height, lastheight; + int x; + + if (viewheight>>1 != halfheight) + SetPlaneViewSize (); // screen size has changed + + + psin = viewsin; + if (psin < 0) + psin = -(psin&0xffff); + pcos = viewcos; + if (pcos < 0) + pcos = -(pcos&0xffff); + +// +// loop over all columns +// + lastheight = halfheight; + + for (x=0 ; x>3; + if (height < lastheight) + { // more starts + do + { + spanstart[--lastheight] = x; + } while (lastheight > height); + } + else if (height > lastheight) + { // draw spans + if (height > halfheight) + height = halfheight; + for ( ; lastheight < height ; lastheight++) + DrawSpans (spanstart[lastheight], x-1, lastheight); + } + } + + height = halfheight; + for ( ; lastheight < height ; lastheight++) + DrawSpans (spanstart[lastheight], x-1, lastheight); +} + diff --git a/16/wf3d8086/wolfjver.h b/16/wf3d8086/wolfjver.h new file mode 100755 index 00000000..c5510ba7 --- /dev/null +++ b/16/wf3d8086/wolfjver.h @@ -0,0 +1,8 @@ +//#define SPEAR +#define JAPAN +#define ARTSEXTERN +#define DEMOSEXTERN +//#define MYPROFILE +//#define DEBCHECK +#define CARMACIZED +//#define UPLOAD diff --git a/16/wf3d8086/wolfver.h b/16/wf3d8086/wolfver.h new file mode 100755 index 00000000..1208b35d --- /dev/null +++ b/16/wf3d8086/wolfver.h @@ -0,0 +1,7 @@ +//#define SPEAR +#define ARTSEXTERN +#define DEMOSEXTERN +//#define MYPROFILE +//#define DEBCHECK +#define CARMACIZED +//#define UPLOAD -- 2.39.2
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Ƈ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℘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

-dy;T|nGXuj6x5w;&qSuZdWPd)*r0A52y0BG~0UUlZ*>^{YBk z)#lgS2T$;Gq;JP*!gHZr0ST#dQ zlHT+3BiV|huer{ga zm81HHG^q=7ZiY_rFd{;-CZxyieAK6@d`-nJvSd1NJ@l z2uM*BvciNqxa{z~#kX9ME%N3jJATr`u1$eosq{uS2A*dS5#w5Zs&ef4HJ~cc6%Z>w zl|D&*@H$v^5NZ%KphrKBK5BgkdN_>fS|@KX&0}SBisB1YbDL&x_GTzDJXuS7MJVSp zWr^~j43#{0S(7+Pazy_Vo_9$~`-he!MGm?-uL%we%2IX(c8;NO*|+R1u*YDK>HMj~ z0*x%`17mJ7;`U&Cv}~{pC5u@RUfB$Xg}B6xtpdg#WpT=iJ>9fRW2|y8Su>H?EkyGl zWVK=>vAg~OvKN64T}lr_U}o4DF=Kx;b_SG%n>c24^M2&#er2#kxx8RmV^E{ih!9<< zrm=f5#qc>AIv!rAfc>!X`wR0V5#l5$S9P*IpatM@eyl$DH9r(TZ~|S>6$La~ z=+qHkFZgcxQ-&CTF4-eH>*g~bgl=&+$fI$@BO<97+ve=>OmMwX)m{R9>B)JIZc5%; z#Ilg{sVict<&I$v_>q}$(zAb}YP{aKY}PvT$QZAnPFoOn0hnuf{yc-5=^t9OLCh5r zQD-@q3}=tS3lxpH1`ZqH6AVpOwh*Figb4Pe9Wr8^LdEF#+YwQ?VT}g^KvD|m!W#ML zAKKzVNJk3X>h&}?HgaC$gF*1=^aTfj%@+?o(^}~Wbvejlt*dJ1GvW{h1H1Z^?HZyIJ5`Mnfy-Yv`~$){rih2^H01hoOAkK{jVTPej~2X|*QK zDo*6aL{r=zfMX_uTrea@l_o~%Ze6(+waTP8{JRqVT~$ie$X4-A)0uI_>7578JlmFu zpx}&)kB;*ow7}g*^C=+rn58d$3z=Q1ZG9GI^)uhDE*EX&Q)AEd30|8qPi8L**czti zHgZXHO9UC0+Q>UV#H83W4pI+Q;xe01CHb1i@*vco05f}`sG>5^<(GV(@laJ6BJw9>RilK1 zv4WcH3)yFi^*i9Sk<#C-el>|;J5DvncP8TgH^q0eaB!YDr$$a`yN{K z8kOjxioPv{srL8_Zppz$W3=6!#!Pe49qMSyecFG8U7I%&{=MEBYCIN>OmSRz>|AT~ ztZyB=HwQ27(GEA%gw6g=P&Stno`TJuoRq_L+5XG{Ih5vKsTD5dr3_9EF~{{KI}TNQ zzL3T4Z@r%0r0!BfZ}Et!=r~*}8Pl{RqqduRk%e(q3ceNGO;|{?Azd*|j*UbeVMhmU zM+c(j!$?~H{17!$1$L1YJXF`{nRN3BPS?$fndUzUYi2H1M(KfNL*hV(j1ZsLo%XMyrPOs6^RmOMx`-)WsewCa7Ik?vu*YRh z(1MrVi`#@=dbd&sLLmf!_m-`R_z(35 z4p*-qgtZGmp7W@_PV*Ef5wLdX$N6=r!Nm}65oq~w;R8w#ZjlM{XOSQ!v}Oum&@u{h zuyc`Rd>wZI_zt}ceJXFke4MV8z@qyQOSGcaCBV-xrEgqlqUH~De`3J76x5CQ0|QKcV*EMM_(usS#+1gyjoBGdBr0m|PkNqt{Uske;(iiG zrov-Yj_Y9cmUq0T?vWQFI_)MUJNIQ36gTQM>2wx%U-W_%s^x1az&t?8H6hq4iQ1Am z_~nV##&x$xb(x5~#+MH>AbvY-jA=0CKr-)G0KzN8R`D!jn`4s391XA<5ncXWFL9=@AfZ9BRJU?`u6MFRMi-eEtafp7w(cql@Cas%OV zEcr(@QOnqkN7(lMG8Q@;db(ZxpA+J>C^XasZ+*o-tmbhUB^_mP0?QF4|42!SD(;z$ zg(bzMwY8_V5xB$j5dL6BeRBvU2>x8J2`POU!V{Y9b?CwU`3d7cm>fj`>Gx?83kx1X zBy&$n8U@Xnv2%Ffeck zN-PY!hZMp~=%T;1h!BTNW)G|#+=n3FE}_ZK5DB7Gf;}m&GcV~WfH46WecYxGb&qi! zMr|zj4%?$&CT1q4_m-!2jk;`G;UakAe1dQ_MN6KF?68xi2$*rC_?tpg=wbnAQkbkfWx+oBJX}o##$QEOJ4sg|;&WYd+GpXLQ1x@* z|BgigybJVzzf%6E#mZ?U(V^}OVCv*D0U`^=>a;Tc&x)jg_=Y_p3r;|)X+p+NMM{fubxpg$J}VqSL;@2UhVo*SbCq(KLc_FNh6YErd5L?De3FLU;Adi^r)M@>V94NBlW(DfK@Fb6O^QCD6^^RfW zY4w6CA4v2kYV*j|^70?BnH44omCOCmCUWOg-(fbWlIKK#H*^e|N(U@#Me?B{L?Nlr zI0fg={|(D5q9Sh^JCSpHmh?=@c>-;!{kYk4nOHNLh$DCewGQS%}3_ zB0dEnNyt&*o^cd2(Wn)i>rHqkl_My1ZiId;iJ2R*#OxG&SV%oHVAb%--pYT@%UW_@ zSCB6BTqHgzI0IeR!k2_wBFQL*&NE!taSGsyy(LD0gUOi#{#~H_3Y^<0+soB0a--Xy`~zF0)arrYOj0$yRSbUo5K5e{5_vwYOxn ztnB3PZ)jo_SC`IjKx`;&ihEjRo(*cUMz69i3R}bAmRlDaHCaDdSfk6Vx-5ck;B|n)H^sx^fk|Ml*3NaHo-5JaZlofAkYWFCH? z!8PNMWuo4lr=Eo3oO}TF9)2M99#oWGRhONQPRTtpoy6=|bV#|WPg?j+aeRt9CgQPt zPxi5GmzJWzden4YnYu8=t-^C@T{eEz@UBX2#=Eqtp2cfrH4a}9rC#4iE7lTHFKMR8 zw6z{t(b%j5Sb=@6VU2^Vz*miJgnyey8>UueYZS9&tXprV*>pw*uNkUaX}O|VcZNDQ zKI?Z|zc%=^6 zt)Z$GSpEFH2^=>d>qB1ptD3#Zt&H$TIyOQZL$8R{yS)El+u#o;TvGrVyqPnt@dtGq zV@)cr$^p^d+@F2C{>PhS4S_EbS3%#Hs)o4(lGhej2%nA84$>wOMp#U^v-PGiry6C% zks_QWjh;A6>UyIv)bk99aE<`M291V89@dTebQ8{&I?NcLNtdH~>;JF`v|_-Ur{sp< zF`!p@hcGTn_Ho$`IEE%M#8q4NN$XjoX`}90ERH{YH+DJ3*;&I?rH`f82Cv$k?AukNcfxNxAIaX--1*zn(FBc-+ssR+*j@WsZXxdE?>LU)_~SK)d%`p6`$7Bu+T1o5Vv-W8&tyz zH6+Kb2KD{su-0zX`OI(QH*@Uu6gY#R?UcZQL6g2KggBQD~6r(qF#ngsJYnJLx_j) z_B-Zu6H)L518quUregDBSJWA4^F&iuM21uOWAyiN9D>{iF(^=`8Dq?g!_-VdQ*5Q- zBqvVw16hQuX>?)JC(`%%98v%_J(S!u$6+7G9(MDde=!*_!xoPw3YN4;CMQ-01@9eu zJ;j30-6U9VDUqr@$py`}$>yh8G(=uj!mhiTh?iPqc=y(SV?S6U{_VmuEVU~A`*b1n z9Kz76NjsWER`U8bQxH`Ah4^3PsK|fHQB!j3v77(s0GI!%M=|~%kN_tWH>dxJwM&Bp z5UczR`K8gV%?5%3qlXWgBLoKJ@PPW)f{dLtG$avY!}>zXaOyVgA@rv^0vtrRAc834 zteZFk421Bn2nr#80oy!ccj)>$`XUP9_O@rvyXnsF$#hTi?GQwes_6sq__vthz30{+ zzm)hlTCV0-O_%jDl+DBJ>}x8+&EEqEzg*O*j_E$KPCj+@-`cvSP2rYO8(cj-GA*KY zbSdXftAz7T4VRk&w@v|022GY#?7p5M&WXm`gzi)Dq+}!NQQ#cJc zeD%ESf>ilNqoIE@exFJy+D=-a&M&{TJoGq)He8IYqkorK<8Z=?TO8O>cAS6Dr{NKX z6FC%rZycKcqc?E_lhKg*eWg3uQa8Uo^x1jT{Rho*+64dmj&8>vla~{(Zt2jDW5km_ z|F8T?^95{SuwEJRb!8-YwJ^W_$c~nW8AA$lOWepayW6L&*Y>ymYhp^aUO6QC6fZX{ z#8cG56L58UwmF7@bvAyo)-s_J2AoSqmcIxAh-{ejGxI`53EOe`cR+kWd_3AP-71@xMS7s zFhTwg0DC}$zdlV~fAT#pa&4~w)ly-)R8-|Z77?QPlv$dba#UT~7w<}H5IWgrOGRgj zOi4T`QHiv1%W`HOQ(2sYLV3K&XsMS>uMv z;q~!g(n_+vM_5`{YLoVt#wA-iM>*{U&`OfKgqw!zsXRVl=YMil@@=qBg&5cWTn#OHqoyA z!`&7;gEV!smfMv#>SKg7QP4`Ipp=xF;won=7bur1w<@!K8e;s(y~-9L1v{^of zFrU<{Wfx18qIndRHsW`#>e-_54U6dK)lXKn`nW!+pk-fEK2s!hHFaIJOWji)Ru5Ne z>Tzn>7vpiOlbBY>*cdo*@dPRDu0@K%wJB?s9*c3)ZVeL(pFdOm!|kru@<*&sr-MeT zT%52fPQfZ$Ha8WY{w&Ub3j8}$!WXEi^>G&xN=nXDe^!50gMo0MA zZqme+LLPr|m-Y%@78^jtIx>dct(H#qN2<7E9_7>=!*({1f1;1$*7SJQDplwsoy|48 z#>K%e>f^?=7Nx#Rdr^B!`%Obo3+@$61`i4v!MWgZK{t4Q@M?cqqPZu7l)F?Yn;UqQ zIo$VM8T`;qlP@$;vTIJ&m^52;X+OA7g9uWi2+JTo@H${MQGCC`+$jG@dK9aBNPoIM zc9TjHaAok5;1@wfZ`U`|WBLkx7kxKQXp)~Co$OF??j4N?dJd`pnZK-?!w7h0kA3>z#-qsiOx@T3 zEpJ=1R)wtnYz^ZKM!gbaT)m%-8{o)0n$eiIz1xTHa|&pCfG?{J(S~T)*R&xVe;?+= zU)VN`wKLYiSUYOGC(`Y8Y>gIQr!HwV=y}iTZ|bZi`+O5t%V$dkXT~uvEcS*Zetw5$1-V5oAeYrCgQAe6ZE1@@h`qj z>lfdK8*|VmsLtzDnwn#G;W*|uM+>6zPVC+s)AK>7o*Vu>z6IaoKeKlWlz9sSxqN)e zEUd~J_B767XCgEObdsPiROztR1zY%uCpQ34f(=3`rJkHhK z6&E0?U&hF;IB-6UAR#q#vW7V>`R-oHCG5oXZs?GryT8QrZa9Dy4GiRSmhI3rgFRT$ z9zxOPjO~GybAuA_QD7QhGUhnKLdMvfTm&t2KGjd9~j4)sa8!J-!ju9UPNuo^k8^lO-OP>e#$IY z=@nqw6&bk0)qr9Minruym2O`*79OQ7R zI$|YJ4FQXHX{ONT_UhXlA5gF_K?(E5_x=(XlVsccs0-O>z9 z@Y9>cYKY1{ngx0mS_oZ@dwhvifkkHbW7b!?AF%h*ffMV$6>1OZc!@O(3k^*S4@aiPBMKQPZG%FW_kiM*p~IKXWIJ|H1Rxn=?k|&6rQ>m}zvticCUZ&{~9^(3A){3^ zGp0_Tk&zqz46#$4PTJmomZtN8hone{Xq!G`PUc*iL(EkAI!1s_B+Q~zM`>WDi&APqEGg)-WzHs1(rK~>(EO{Bs}<0q*De(b zP}fpLL4fPr2R-osA&p*EFfzt<^rmg3Dm<8Ou{xo+dmxtEqC!FQpan+?nujk6l;pj& zxLev^npA4aulFfXlJ-{mGXMaE9x=uJeb}e1{-sbEfUW+y$m7Y#V__)T`d~yZh&<*; z9=Vanq*kL{p|D%OCc?=43V^4R?E>aCxU^)_%sU(!3P8jy{hC6pfoRc@32S0|*!oj# zah{tD?mdOad*sReLe$nJhF)<bL_`|r{StcLLbDy(~ZZ8 ze?JBq52#&$SQVY{sNbfhK$wv=g`12O9fEToiEUUYk{U=S{q5SO!cgZ0a-$90 zpVa;kI3?mrD_Q~&P#6n+;?m?#^MB;G*Vefo1mLxkXGY|*)~SF=*hBV^iXfz4Jm!)- zjc6iiBEN1?jr$6ys8O15v~gi%C|S$x1fafDq`@s=73+N^|>C z(!urX@{5GO(T;}y5W{y2pEGP?SjVu+j;H%ywxh#eX2%%+vv$<|PjbUUb`;z1vXcB+ zEX^Rve+rCmKRDh$xY0 zAkhG#vxpLi`V#daau9Xrz`F7q9v9 zPCH>Lr>*IXD<1)Eia)2@wwgP|rP=DUjt3G7noU<%&Wi>mTPTYd2RautI~I{eY%o9x zqJJ z+k=fuzF1PRbkEYw<4BiOadh=HlaIZ~o-)XgRHRt1!m$^5;Ol^KH~cT({6(*cr|xZQ zqBt%1LTj4ljB5iRYR|Jr|D0zz+3k(4l$aF)xXREnE3%sIsT|}gqQz&mBvsJFm9_hD z%KghuTxu7mH5TMIrn?kwC2q89IK@^>K9^P`7wwt9C9y(MfCyJ&d;w;#9Sx9_of`MuUa zKc$;U(^kSKc7{1Gq}ifHudpS_EWZHkTjWSJZr|X z<_eOAv*88oV1U)%-=8!Nq8>zDiDLPUx;4-jv}0_|K`Y6}mCUz~VJE|O()+6H80TBZ z;yVO2&ym?fEV&sTCvD#hUK%047jJJ0V__o|Lqy{orJ@UtCG98EMN068=Ptp5^I^Y8y6rtpVi=p5EWN`zV-3)M*{ z3U|u#Z=m`oE3x{3b$0dl7JBK>(Y<fNj>Qv&B$>&fDs}sqAog8$fE>*u-=Xri5#`7&p zyREZ4A5&jX4MEiwE3s;`HNf)@<(R71tW)@GW3O6nb*g&U>grj-cK6%yR8KyGi}o%r z`#8@OhV#hOlfcl2J9W4Edg83pwiwoF50}0K0^lJihRa7^m43SJgh67G; zUwM&ZY>s2fXooY$L06))GH26&AUOD5=?s{elSB7lb3y07!KlafKP}@wG`sw(EOt={mVFnC?+aMV-VFcVxR#|W@%p$AVFbx*MOjtzP0=NV2 zfji+|k_zef0Nf9Y=~on2y5(!}Ft=!YH{h+Y_iJ{X367>iqAJbna|a2wo+H82gg!)>?&vT-Nm;w~t{-S8-W z0?YAJco{!~H}G>rJBShAgH6;!H?bdjiUZJJ z1Yn3b2*br;xJ>*ESBs-CPW%cJMFZR*8X;FS!M&mdmWbbBxd;N)Nqk)hTq`7Q77F@> zid%(-p9vkm7AAfpV(>>1i-$!g{6%y{kSAjoX~!P&44feQ;Y2wAr^|COQ=W%&B^?Xp z5G;{N_^2F;kIQ6SCNIX7G6mm|WAIIRHLjJ{;AS}vx61KYEw3ZG1#9K)xJPE;4{|mJ zWDfo&=O8NC*h$I7?#evusoaf2lm$3cnU5(-A&yt>!|Rm$ahkFOZ&yk%M=8d+%0swN zS&sKAE3jB8!$*{r_@weGzNxIjjmm5IvGO|BDQ{wINL3eu#-`1rAd;;Usl4-l|q%u3Cfh)$N$C*5ZBYPApP);p6IVd|Lekm#Lp(srnhd ztbT#3)UR-jx);}~`*DMM0Jo_D+^Zf$Lpy{$wZnLZb_DxtKV!0X6mQjj!Az|Y^Ry;h zplRY>%@Fr%v7$(e6D3+Fu}bSqbh>z5>nq;Y`iYHNg4n7J5VhJs@wIlYXwVWxi*}v> zeX!8r#A5vl@t8hYJf%M%O7#cD8~S4Lj$S0z>&3#ayTx98si@N*5v z{G>l8n)T;JNM9kOQ6}PzSA@e@Df$_&iA3Wqaij5$m~Ol)W*X%p%cu}@j7l-z*d`Vj zRbrX3U6dNNVwLf+c+=P^)*1ovfpJt+8pnj+09j?A++hg$r6J`(BSwPRNp>>3$=;@2 zUSM{Y7n!HZk>+V~lFXnJX>C84v^QIDe`7>gq&%Plyl5fSzul+A2Y9%E6j0n zjX7R!HLsOB%?Wakd7a#APL$u7ljMGLvOH|wAdi`jVgca%15ir?1QY`R00;m&7D++* zZVz)U4+8+#o(BLI0001YW;0|sFgP|ZZ(?dMcW-QFGh{AhcxCL^iJR18902gy*_qjE zW_Na*_H4Rs8#Z^UWff~x>z0H>t#aSCV-<-|NSmZw9oQ(8gq&TD9P4f1A)K)zO?`NfXh`)T42}l=U*Q9 zk1LH!{23TLE>ue!qI{ipTxb)kIg@FD<3gk9Mi+`XBrquy4NMI^o8A;!$j#Jq8vW=& z7YYfpGuRaRg7;X-VrDaiaa_m=97tE%a$8zcXg?|_BErvsrqE{IXBCe#hugTCix^BD zy=X^zro0(Vq3H~ynDvpS&@v`7oZ~r?HhdN~C&TE*C!wa$TRcJ^da^l3ZZ2a#e$4io z@m$WaRI&%Tr14Q!Q)nims3pRyYMa4u4kQq73jLDT6#9wnETM_>Ihp+k@>Q-La6EnJ zN+}_B#l&(qGr5|p7(pc!bfPUKB*`It2<;{tk8$lqC&kw5sE&Ai96+{+j)U<5-so;qr&rkpIcsP7}*=Q$o>4qYhZ zuk@D44!&ePZ?TG}n7~QYP{jAamdICp%6iuF4lnU6k1&s07*8XYat5bx4DAT8GOZ=@ zG_x7Y1sqLV5~TBSpe6DIbD7GHjF!lEY~?+c^9=WLJ!3eJAsovQ96$xd#Mm7%4`1^F zPx1h_F_|IM(u;0%q>ya>3b#bIF_uHvj}8W(>%(3 z+`^$8M0>JXm)8$%qWI(5*`BX1UgB{s<2+8}82WMq)%4^*_Mr>KgxL{q ziQLLWMsgG%7CCFY&J)bx7NUGs=pJA>6KP~H{pdzp-f!I!xu3h~%!>*47WdG^1TLWq zMZ8{Se_6r;defPFwwLM$S91!r%r9w)%wQrz>Bat(lSex1id!Nd@Fq_(k16a+8)BsK zLA#d73KnuVB~WMB+T{- z`%N>qGoE^SQN}C#=nHpq9al4kdXA?*z356uN{JER!*2GRyJ+NWYT1k5D?Lkjg%^2> z8BE~@zTMl|WFI=P;Q;gT5_fP4C(@P(+xK@SSj{8`a4en3;hX)O7apLI<4LkTXRueo#x~L9Sph33eW6zqy`bmRA|i&Ai^r_X-a&knZg0=~>T4-e5Hi97-!* z?cq#tA;&P_FypJ836^ph!>Oh_N!A|P5*a}^{yfC@B44nc)422SmdI#Mr6-wu-bZaL zVg^@m2nSM5J6`MU{-lYkIgMlKO%L`a#Gh*HoVKj?jJvw?S6!4l?kA2XQ1NQTgx9(1OJ7@1M) z%?amx&Ii27EnLcQ&fqv|sb)_)@MCs3XDux}&O_YG9h^*0_M#&Je$A4H%{;)pTt+Ut zGs8K*u$_0A#aL?iEl)4`gb#U}6)fT*$_O(*H=J`J`|(RmulSI+S;;aMa}T#u&ruvk zCrZg9gID!rA#<3?WUgfl!x_xp#Cft+IOi_Tq#uW{4;^VuOF=m2X|ClWPNfgs*^?r2 ziSS3h9CDhW3{pd<2eL}BBA=|@9Fi?ZG6sqyv#Bd(nvpw`6^f+eTs>UrY{-n zOskL1povM0rVDMjH&7qFmVxwQbA~*u=UB4&DN-NZ!h>qLgNZaSoP*hwQy=}7_h?}a zt9g-USjr;qXC`Agoqp^=E!jy2sOt(&S{Rl&k|;H6_+rSBiV~~q2?mAjn#WOt4eCD!09ZAxfEPhK{nfo#C^8(9Q%>B&Z28M7v zM^H+Pp8_j$KjCFou#AN~z`ac2S{k{6vpI$1>B-)-qkwNRR_1Qv9iCtwlh_tnnY)G8 zxtqi3L?Kx$4jaoI+{j+EVOMBn?u%T*<($bt`q7=Pl#)qP&dS_dxSmnevJY`G`6YX0 z?i(!S4sPWtPUIMlq&po+=j|-@vY30A%5_}D#SEY?`%}pt6cXg?Onb;Dyv_?OW8Q^1jd^9+jd??|8uNNF zF0(POj_rAkdAHMpOLE1rDrR0rkYGk(L)BG*G4W@DW8%5#W8zn`f<$Oc{5--Q{9$&}1+{3k;PBBX|yyus|4uQJ-JlbW{@*A`3@^8qh z%b%WEmtUV(m%lHq_$9Y4e+x?(NiQmh@<*&L|1(zb7 zUH&?nn9S1ry8K5O&Jfne>+)Y`W|4dp@@rvT{+GPUlg!|HhI0}J(vft2Y+aZC9*=T2 zV;RC>bl}fKUH+#mXAY+p*X8%+VA?S^Jyq~VFja6X6S$b~(ozNMd6l75@J1k2a63O| zqzV>uE9Y|ne?(FR8+e6zjA9@Mks!>+VPivLa#95+(T8ucoFmXDqc{?kZ2=ZNKF!4cpDzT6W3?z%+gQ>(;K4c`r z(^83JsiK&oKq`@unM!<`kxD$k6^xCf5+|`Ie}z+tcc~}N51~|IMNTTQj4`~Ool2a; z-&x|B&h=bLoWIPyjrFYIDIQ=N<2jRRlKh&NN-XA9E@e1JvJahDlbcGsz$2VPdv?cC zi4CmfNoI39{n;2zCDw5lU76P^m6%F8O$FX#YreJfCO6WXBmsVoo0sK0!61&|5Pm62 zCBCJZ!StkrT(%a9V-<_Ihe?d2o#MYi1SNXDlv}B zsO9g{RN@mBFo^@$S&~Y$P|U7k|1*Visbgb1J>+^0Vny3jVh%I7nXi+n#QjX<9Qv^r zF*dYGCEn*1mhvDscCyzDhliQN z{_Ps73P`nWs9M4_CNPW>Ih_6JNC821Bpa$W(abb1XBdZ5&ZagERjXLSG$s%sNU)R7 zJ2q6k#}ei-ki+Rn0XsUVho_jpFivEDI+AK{e&#Wa%Na-kJKC9_RV-m7!#JD+yLcuL zVsm*z)dw^)gBuvh2nG^i#~$ir74w+JNJcP_TDntCsLb>$jE9)X zx%A~gib)V+>t15`fHf>*CO0vfa~VWmdN4gbUNn+(7(_o_4#ta?GM($VfTQS1lx=D8 zqK|ooxeOqa<$-w7LMG9`aJps0i^}*h5-<9O7M^A%B8mo!O8VFB-)OYP5JV20Reu9$BRDWTDnutiACxw zj2GR)D9#|l(AMJQ?Lh}JLKBPErB5t=gBN)}FtPXvZlj2a854`Y4^J#!ZQKHy7|jn^ z6N`UNuP%9&8QesSox$poZ~2hf9FfQ6$$1>ZVSEy*E_t5CbSKEloa&OtxsnOl z)g^SZ-MgCwXCKyYctAA_oOYEd>1J%y`S5;iowL#9WF23!b{BNHm>9> zj;044$>R4=dFe*p;3?*DHK);wR{WY%Uit#F*q&_+6Y0Z;S>>gFWcnKjrcdUqwiUEzeR?49Ip1&0*S`9^Q>RGSP3wFV)VKHh+mLe8E@4FtKc%kBFC~5;~ z!HUraJUG-M)S7g$MQRfuA?v&ZO1;0&pMD0i`)1zEyf^b^=FNMh|9}4f{Qvp?^Z(~R z_}Ri4Qtioa5lv~H6d{#Bf_5>g?c3anYUr)Vu5Cf~)UT26IoVSgF4NObt$teV64iCh zr=q$oEb^}N$LWj`PELDa_-yFKKKzF8`3-BI3*lX7`qh=ZE9OfI^Nh{x`hR8TOYRV}lOFDr|s7oCc0thW!-^ zVNxXhyJf;Ivd^yl9A?*zp5Kb}J+-c;bBjGGYrB7(sO=Jd3}v`dYw5R$t+y04zp-Ec zdH6tsZQ0J{N##ZSvQ|Wv=2j^9Wo<}XdWKWBx`jZVl+sh0t`oF7mqTko(>X0Nj5;cJ z^VjGc5WNBb6{bXhE+hR{%bJj9u044>vTHh!%EiVzb5X6U=Bv#ZhF2OBliS)e#i` z1!4w+OD>;P$Euo-0h6DKeBWYHVYul$2Sa&Mnl*qu2l>B3S|`f%q}a8aVc}jvPAUq# z0>G=tDUSlL0q_QL(ox_o0NzGUw6Nxr+P*Cx$vi3Z-C6**CvQg3);cL@z7lK7q4`>@ zNkj83-0ZB1oLj_F>AOXuNfN#mzBBA%PtfsaOYG6n9$L5bI+;l6&b&@mLF*jX$%Jm3 zn-+TwU$gUsJ|M)#l4w?;lhzUn@ok+{46g=vQ*LxY+|620%#2cNwQmtVzvLtlwwpQu zA%ZW_T$r&#Oua-HUMDd0y2sZAt*Ujx&ULMO6V`m9M9>XxCu;DUKq8IbB)Y_0EDQ_d z0;3Yl@q$Go7!%YxI89xhx{F;8&wjR|t}fUiL)`HgcV|36eZd}EAF_QOuig=bdxQP9 zUStbWg1>nID$bBH0^R{{m-j30*M`Z`*>!al%DOtkfl@_Xo&LbQ$=t#3FAKT}!~#}m z7ryq2K{tiixM|6-l6bzs1Hld;BJ1ilWps%m`d1&m(vxGK^ znjPsM*Y-M3&umtstq+mlF2~g@Cu|*5?%)9@mpKDFiD|&D{ei5ZeLaLvUfhEKT@ z)%}&UXZDE%dr|*TYA?N=>>Wt$(QYT7+%@n_Bf(}zT;iGiLmhM-)aSj+>T;Wt&|pN+ z)a6!vfA$eo<7boHF}PEbzMbw20=U)55fRs8^>%GtZdSFnJb%6xoX9q;Y=LR_+kg~x zFk>{?!A$&=(!qq=p%wWlg-ZhLMJa&g<^y&>2Uu>t^Yn$yDzx1^=1IvN3^|uA+-?qg zQk=v>&HODrV6-WLY|`_s=z)P8GKo_;Io!DeIz49$Wx)jV5rWqyc-8hl|6;D48N)o} zJ(SHjMtCxB855YXtQ5L5Kg0F7@WUD$qS(Mu!S^fzAux%She%kb)a^%kQfzKmqJuCB zKzJ(fE~ao~I|j7H7Gv&n|;^@*O$ed--7>B$`Epxx+rBvM!oDA<;SU}lYLk8jH^ z;%4!cQW~dNY3QvuC@KI*FhjMAljRzEDzCJK7FAvjj(vnPE%i0XP;6XdT0;RBZbs;J*hN$gE4g4}YD1p* zGjNf{u%WelmcCW^nCxjxJJ7I_Ov8@3_a}&Q~dji-R7aY$h~E-VPD{(V8kHZD z^CMZVdc4I)1`iOe4V&J*CV<}$YG`dYfHL9y0?*DD^c*VLLEZ7yzSLa3dY zkhL@8@E(J25F+Xq1dmY}f@SxdVfA@(K0^G~h$Jz;Naae&OqHlz>j`oFWAyP=p!Bs0(MAk0P5CVZVz` zgAjstYuH{M(M#FOSt|Ql?%dzmV9G#=5oQecoH5e_njg0~t@NnJ9^C@77$nE4q{2DY zz6=Q#MJ9GpX@?IS0CrX$+!e3{1xr}nzg`Yg5w91F5uugr;H^O!tA?k!MiKhu}TPU%dY)M39tG<&Q_ZV*R2_0$|d(?U&*n>Cnm#Nii z2?kj@E|Q+5J9ujdMe~7Rg}wO~*>QqZBUnc5$BFA_6vFzg%QkXX{T8(zhGL{h2wnQq$gbb)3gSl-wY>Fg~D=Lh%JH=XZbf;$HSyGggL3k7@N z0RIC;WSj?i|66bNV&RrR$ z1BWz*3)KDhfSZRshVl{6i3}B|yCxepmX9=32==~yPUBe2AC$2v5DIJkBM}G1I0m|g zPdq}Nme!#1tz?ysZTQXYxs3ne2=0h{EV`0xSELoRFPEJbvm6!dB|n)qUAqDaZaqWm zKQ32vDAG{D;CMJ136ubf8W*P!+G6Qeg<|zejX7esgrDzPp{BoB!CsT$%IGp(=t$33l-x__kTXI${3XME8*NesW&4!!lM< zBI?DHXS$rpd2#}gJ<=IYAlTLkRzW`3FSS-h|2d@#J8#yRaBgjZ1s;dOkz z|0M)lBA|W#C!vLx_#*{6VZ^(~yT_Ax-^+PkU+kw$?m1o4p2rd54N>4s%_n)#P&d z5FZfly8KwYkKs&^vyq`q&eVL9Q;tm7n~`l>!k-9BiV0Knh9Cs6ypcol(*G!L=^=UY zX?fs0$KnJ=L$zZs-z_joJF`bEanW>7dd`xA1lXW$)_4@d(Sjx3bCv?oBQO;W9so<< zjinApN?;|^gzvoIE+6MYW_2#hpLU41b+&CvTZClgwg|<^olxbG&J?uSjX=&AcIRpR zGy;=!;s}hx4~=+-u)=JrcYs}yGa!{+Y6}gNo$XorGcH>L%#l1h+mk5<%nh9qYo1z5wr-CC$^8 zjG1vGqcJ%xpqDIa$}N!@Q>t)9?8$L35^t2^alPv?SOe9Jgqs2r5X@s!YTB0Z1q--n z6?&|oS3LZbPC4A+!k0z6IWFw;$0o|GI(;*`!g*mB|=yCq^z zvKLbJ^JoEz@ItsPn6_k7LAnd%!DU69U{TtS$Z&~J*sdg}IvZusDHxT|PsO^@$U{!u zbc!dXx{#_)s%B;O^9ajK$71MMTz#IbnkA|)CSx7ird+`Svf{U!LEL;ip2n_-3GFA= zbWSlV)dB8!F+tMs1=A`^&lax0ra+t@OgXVn(%x4Hjr;e*L)vG2%arB3rBo9=h9L~v+G z{!nla+4@Lui2TaZd7;AxH%>lsr(?Tgs9P){J00IFJObHx5!r73601 zj`i`uok6c$hHPFW7Lq+>R8<>FaD4wZ)wMg_1zL*TBH8WO4k})zvnzD=V&d;*e4xiN z_Rh%A|CNj=V|UPNbIUN}sib>qa6d5qKpb@VVrB-mKOy((-BaU?1No2X{rc|TF%%2q zj(xCJgIzz7JNYk>(9!*4*D$#YuE_M=bB7(|M=_5HBjT*!ceY4crN4tF7^riz z+z86u>D>S`ntdNgLi;qvi3$Y^IKifcJemsMWS%6tz?&35IGI+~0^A6i`4Nb{3081H=s+Jxq=8d!@;DqqL@t!ksWr?@-k%UCX7( zrhErX2S+j7hvB3^h;ox}cjWQu(8sw6LXrGv+X|4T?t}~qP+Q`64*!BFNOA) z9u)eguyjxB65PdGf>FnPs1nFo_WKHKPUQ8=Jo)5*9C-R|FD&)MV5J_G< z31ietd&?Asg=6m{k+^I;R^ik594jHHvJpHcWJqGdhYqUuTpv58D!1AS0x}sl1n1QF zdoG6gzvT=*E? zm)S5bM(8Ttrb21bi3n4W-c*PPHoE5$;DvZ|sEd{+owzi4?!_2i_B7uMhxlHI@ewn8 z&qev_F<;d8%(QI+`!p=jTt{0IoLBIz1;xf;K)wKp6f__k{57p|igrLcjJ7EcsAo24 zb7)Pcquoa!N81+(4-7!#fdQ)Sq@>)F8t^Qth95!rM7R&T>97eNdl3?u;$}%oca6Ro z^sZRz&Z?FdMU2DTsjDu$h~D_Xjgo#0KTXBaRaAlIa$u9i1jwxWHhy%Yq`0)?GB+K@ zO}Kmz;J2K{7gUMa3)$II0xS3VUYA6_zmK$+kGu{YKLTmS4!d#GZj4kL55k411gGc# zC@p(EeYdbv=;6f$eCUd@IgV#IRAr1H8O(IQzeIXpDXQLA z!8hSuKhf9D97NUTP)1j^c_KDTG2wj`zAyu94DonTk-eM-r4kS;&k~LV&`NEzw!lgy zLK4>4tO3NuXSK^=2NdVPh}1=TNTIH)8PgV%#fVyiv2^UHJNjx0L+i2Ya zhsiAIjDiBYg#zgd5Sx%C92EtV6~4zN8<#dDD=zgtIEh8Wj1VXg+GyOOAK&mf2sC&r z3Bl`s7J)DjIb-5v1xzk|ca~iaH=6#onf~Y?+^j4i2a{NK-#^0)AncQ5GmVNb+-PZ8brA&d39wy2&HE~nv2k!R1wkrN0Z*lq zMke3#gy>9QR3&1MhQeFjWu5IC4eR)vC7f)9-fJc8=1~l>Y6o)=+&Sq2UA5e19Yt2v z)Nqn<)aMEdLG1FDF{d04nIlKs9LKs4AHJ2Fg{dp$(Ys7>9v{AgmGj}%+-z8d+?6YB zw~P|&aVJ8gaWv+Z@gm*0z;|aD?yxHZfXan!zcI~seb~W-d{>19^C(R7B>gA)KAnTg zUcxG~7eLz9a|+$-zJlC=Y?N7Vh+IH429I1)(w zmxRHBhitDtWP4FDWqGFwox%*0%s!o69`i9pQIW1gj*veY!h8fYZ(Qix5yF?oW4v|P zw4U^B3n^^Yy@-uwFj8Rl#dc{WdV21Lxm|NN%|-KO&09I|qIt#hTITZeEc33Kw{G69 zc{RtLdh7+qes-Kni+|pj`|eywS=s=Rm}bkYkhhBA%lTyd)a7^pQ2Lntp?uojozU z^W)MGJjy~Zg$92X=O2c6BP8_9K!W?V(BSvs`O`Nm=8p(u$b#KRgNu?E=aeuQDjl`N z4grFdhMWmKQc8(1l4}B>7@+jIaPJ{>kWjlsQ+T?|v5xj6vquCNTE@Q?O}8WTr4NbDTXf;W*5-&7Y)BH$TL<_7E5yR{oD1ng|2<@}vw>Uwv@RGgin+exa! z@}^x{?_R78R#b+*dez;Lx85E8(;YmyGjG4ygX`U$B=6M%Jkm(B!miti1xN%)+BCEo zWb^#$O}evdF$SD>D>*PItf`!Seyk%`y+QY@Q%GHh1CzW|4}Z6OWzkpi%A$=j6B<(J zj}ORzI!#|$v{^2f2ISzBRcImVi8`7~b#$|y@Vo)p+BBIxDjT!e!=5oL9v_r>dr(|+ zke0W{qZ;}nj>78U`?N2%)ZQEtP`cw*=B3u24Ju)=57@%k%YhWgm&h~HQ zxb(G*N=5Q`zx?Z8rz>yxaq=*j}Dq2lQy;Nk8 z(7Ddq+t!_KhXd(y5Y34Pa}d-8#NOIfWCd8;fWfFG22=wPXWZ&RPpqh2AUN+HxKRhS zNfK%Eh@=(IqE`IC#J)!MHI`;HR z$lpA8SG;?{iTD^EwE>`{%yQtpEqOx6kpY1^z|no7QaIt~&;?l<-? zn7afM^F)joIltObc_u__%_pqt2Us2f zHaC~@pveHYVja*bP(&Z6WfHu=Hks+BhLaQBBYMco{I&ie=Mdj8kX8YHe9eC3(amj} z=U|A&X*6FV-u}>tdaSNZSK}#dsv6d{{lSIiZr-IHouVEG7~q3uq`R<$mVH|oz~AkK z0hijKV+K%%LVav{Tesv{NWppXwD&|p6EGKcK8YbuXzi+O>uMdSY#S)mah-p>Vh?d6 z&`#XQcHp0#PqI)$le@LcM%)aLJqEOXJ|=>tDJCQ~@e(hNNU)mzX&r5g)8C6nij*?! zMaH7!XS^&0cIq7Ao|5tC>G+!u>t#m+a@5c`8BTPfd==*`@ ze?@4I6@?w%Zde&R7+OHbAKZd7v*7;sGCwDa_5fIIpXSp#QJZD$MiEt9`jQZWNTnHu zaD7gwXFXv7Nm*3gBMk-A1>&AB&8EM8YtAvk80uo3>q%W_dNQ4ZbFA(sr5j!r)kl7| zN_|W+R#}|P9If1?xyxvNb)u7@6uBVTv zr>4hZc1nYrWulVqCP(DDq&sp!3ifq!1U9yA3<`Sb$ZzyaM|hnsxcX(p5=9-sWL)1w z*2~e-P+0EzQf@vtidSia+>lo;eIYkzM+18FcYclEGCEF(n=BMoNP^{dn*>R+ z+xuwjw&FOdO>hD|D1}%QP%qwH>&Gdxv+ciWVxh3k%zYz;ucxarzd-a^nqW#Mq0rMR}R4n=mKzvP1H%*kE+IYuy|@a99< zaS8NDCn5gMXOHxE9>yd7hyMf<58Py6Hv@Kn!&>%*-7{>$LR2_L;L#kds_Jv|)GcC{ zMd#TZ!#xQYIEJgY)z}UsbQ@I{hm$8Z9tOjy0q(`*rYYeh%*k-_fS@y+JT!>5nW5}8 zFex=Dd}h9d_SDy%d%=?Pr`t{PG~n#0ih@-hqenOa6*>-B%CuXPSXe>-$*lijK{^K# zjgT^1&_(JsBDVOUeBIn^L75_OS$k_~yts!3-1w!QDyCO_A>F97q_FcX#M|Uv=A>UK zP3%?I>6kVXG$tTfcd_jyEmFsJ*7^;?m40=d)e28bPFdxoHy&D_*%x4I7d_7r(ZmLq z*HhpN+SK{XHn6hN$2lI4FL)?z7Iur4prn))__P9V8QOB_R`qN`eL_2$@KV~nv}}eiYj@C1mrBZcl5)PNESHpKF{XHC_>?80 zvP6pU=~Ou&*;<>8G?X2l(&suzqm?QDef*XPjwIrhe>bcy8M9Qs4OoN4nY zfi|Cp2p%LpnT|wy9CJ=+99FNA>m&pW+kt23!olnRdFgfe3Z21`N zj&wV`ea*+yKDNlAT*a>2tue5&Wk-Fz=3%$4a=uX9JM#dn#13VtFkji9enP)dk5AD} z;0l7}abPDevI?FE2_B6-Lvw3z6?NMpL#fD^qtUw7LA)O~WH;M@qB+#tb*%ImI*n<$ z;P~Q{W?$%1TmLHUsy`pH)Qie}hN{Cg)Th!9xyS0K>qdkcRQ4^5w!-M8TF=9y!!_yy+Jwz^|u|${;BSAU^R%To>z!61;^BMbhDX471c{b zgr;!UU?N`W8#&_^C_K)Dg75l2oi$t@6m}Dw5_oXdOPz!r2a4hi6&BEusZYg_e|@osyj? z*^!c^aEnVqV;hOePHYAwPWWGm|8?LmZ?EJXT&J%Zi@cwG$88tt3~FBt6KL^hJ(Eh04|sZr^w>Eqjy5GPa&kpTA$5^cJD1mzT3J_V$MG@5^xjt+7fdPMRzpZMcyB zC{53|FR0o11j>!tzP^3O?VD(f_MW01LYlK0mX7TK)qoZK=FptOHhL12x zcPEi|rlXQx_6|Y+b9RhRv3sE{YtxI>Q0^Mu?^5;#od*ksNd-?JNi}D)SqtRNAn!$GL~(6(+QP;bXRnm z%rai1?+_CHvp6V)|2#S*R--li=bYvemSmfm_?A^j1~n~@jscCOkopos_dH;YP3}tr z+5p)2?HNnW3=y=hY3aGt+tLv%#L%L$k;mijNH%qxg577NN33@r0Grz(UL6dkG z_|PG3zwzWzEhJ?n2FZ?ju!op2WOf=kmL1=kR5~gUYBckPgWry8^cKgV^ODuzFA)zD z9{xfe6Jy1Z!$b}lahkR&0w<@nYSQ%5E}qi7X?I=Svj9dor-11unm<;Z)msY!yv@Se z&dusw@v-P;)icTi8>*=pLF6{}ySkpG2d|y8%oVyKvJ7F4g2-I5EQ>`P&m$~hwIER~ zux|-a8-lh^ch`lNiDYR`v|8j@t?yF^QpT$V@Kr70kByL?YEh3Y%f`jPizpC++JA_F z-u8W6yc!2~Zw62kWM`_wqFo6ljNtEu;9==Z3=C`1N#ihP=2SaFr!wN1w{lwTP^z8U zZ0%TDEm>`qbY$l7exuQEa`$Bp3;=IWFbA}VfU2}J1h@7WRJd7Ra?JWdX<^4yz5zPU z#Om{ff3)u2j;ZHPUthT3vFS#RY@s@P+rB6gP|o^yVB0p+^6j+D$95?FsB{BX{4f;C z3G*;mK=|N^Uy?3h&z51-xa-kSCuv;Q6*SO(8(76tyG;Z zry@OWxWP`F%g5|q@8@KTX1gUO!+S{BObjX-$>p)C*&I2L;&(<3@n|zy0`je(Z~^R zg!sMP%|G%ECOHA{%wtzS*J*FsgUPAIY``l9Qm3U0ijoz6qwx;e=~o{#bPO-~jZ_dg zIcH1ODf8jrWZ|px((dAJWHv{^cO?lOMNfA!m_xKlHFQ(>BxlItqur-rEZ9GE)5&|a zK(xGmWZY)VX44C^WVCVEY9hKNaZtdy;!pLrgBphu? z(YXNqEowv3Z@7G0Xc((AXKrW+!r1xL?Vp4;`LG%$d82|Pvd0;+(bz*8Tp#97LBnbAzLN{E{rHhy3EFE^uUPEbo%EyNyb#?KwAgXJIZ4>LMa%nZ#cR0$wtc)RF*O- zIEhjrY>GD72^dcsid}{|%=9z_?kZeZ0m;0uW({U)e8l39iZ`$%0N-E}9ern_hjfJ; zX%#R6mW=qyqp0!48lcw_yqR5gH2!SZ60-Aau6Hv6SbFGCgg9j(=+sdurM|s+I6?Nh z4uP&^gMb*EgCwJ0+mh%Rfp-D=7zO?ovu2Q!evhy#?E294iXL;In>X>?PTSTCn0XQh;H?!2-l|ateqaV{;(eZ_qXxn;|kni_~2yzIq>nQC}#hwGg=Bn;mdba0lSDcQ0$ZUQk= z@vt%zu3sH~)w4BIh^1!-VBPamWP@nNFKGvwA0MhgdDXHC-A2!M>ebGbcH@4w;$x-o zyrCLr(8(S-@L&GmvOi=LDhAy@vee=54`g^N0mfY<#1I9NzKpl8I71*7Zh4#@flf5Qhx{2yU z#M#3-@reXyX$QkEb?CAqYJU(xf;$1s6>4eM@HG}d>SwaB=iqR?#o&v@VR5yj z*fbX#Xg(VVQeUJSL~swF^{zibf*}D8yj!ZB!|mk%nfd&ye=u`Ynwj9G!@E-2623d; zX~*ieWmAmJK%2PG#Fh3AqPa6Nga}Lj;v&Q})}}H7?9mS1dw_SW=>f2n0G2Y%5A&AH z+Rg9n6S#>jKuHAnnNiD9-nemVPGj$^^brsPNsQ?<3m4Fsxd=rbob^g@8=Ty2`1#A> z7ulC6m2(BskdrAbgeqZceh2l$0r+*1JrwpZcV;`ob@qq zL2b_s?b19$Bho@_Sy)ehrPa{!j99%L^&o#e=lwGzX!mI|I7njC!Cn3Z22j;TEQL|K zc_(A4zWC1v3@tQ#j6T7Fm=kn`5bJdc%cT{%zPw3dC;Sxz8Bg?)kZVP1RaM9lmrnFq z2r7r>m7y_vMe44qkQA57(1`m!ICl&~oulb&*Sjo$)G(nP4#b z6>f;IQG;@p-ZVch-NvoSTdUqZg~y$zvaLDx6EwJkE1s+L$mxQJ5BV?DsmyR0g{2ZG zSVAJY92tuxoox_#vD$H<^1&#iWvQUkdhEooprmwJD;hc13g_ zt^xC!<(35fYBuwpcf52*NQYYGKNEc@eM%&HpiG1(YSOpwJ!#Gs86RKaZcB3DyA!>q zE-@9hNT=x{Gzaa?WUgrU1?i7su-~&UFwe%5hQuB*N5;8YDav=;c9Tvw7Wb|g3&Vje9tm)Z z;e1Ap_QDU%%T#Ed#F7&rS9-_mH|e~<=xK&rJVJZ2x|$9RuosS8kU@3N8Pg%ptvzlMph@j%13v~&OGw>o$> zJ}z37|34#;`39htHvy=8r0y(0!G-?`AcnO`Wf%Q$`;_#T3_G8SR_TbpMbFS@|1!OJ zUFN{GZhpT-`k=`P>(jJK+cq1?e{<^t0Q@6J7~Pgk#F>?}ebRI6fIQ!5dCoWlh}~dQ zrp;iN`k{^mHHetU4ouJl4xMq*Jgr@A1E7l#mjO0`pQOPu_WZz`H(&HZQS=a)@zY)k z{!#uxgH*n*Svabo{ObmL`KD$oDoo2`!7at8MVY`XcC+jViMS!0dmUDiDQkGy@o>vz zLj1KxB0l|ESO4%2dBiN~pOW6yPP&zUyL0>dr_l$xPqXH4sKp1cO5kV2anL$e(>_u| zdr*G$H)U5I)J7G?Up8SADTWp`-cdUik9wn6jbOcksg)ay zY6okB>C)~Hk$XJyh^&rH8fRg>6M_Dk36{Db4zOZ?oBufR4kk+5O)8zIT4# z``-7y{WcQ!h>l?o-lgvnywbZIA<;dllp&-Hj!N0>(aBcL6rc6Z)HXzF>5xY)9rOrZ zd*4;851p3_qTMZ+KRKv72zTnrxLO)VmSK;!*@CL9WxEvFE*7SKawM`12P=of&M9W7 z=mSCbV5G~t6x-H;P06Wy8!HD_nl|^eeQfTJ?D3!i@xA@nj!o?fI{G}3-5%|Eh(7mv z#ILu2+4kT>f0qY>d#ZbIOB}YsXuqeTGEm;{!9pwL6G#O2;B;2npvyhrU#2mGe%cY) z=-m{LcEg@oLfwM}`gVB2<0|bY^X`gtlgp=ev0I#94AL50uzm)8i>i8vzFpJ? zW#8))Sce5eyRHl_*l{He0VcCP6&+uABcFNSER=4-(0TP-RWpMNyfYE0qQO1f3YXC# z&P~gzU4os3^g}^0ocB1KyTDtS5Xj*fli5Lj$>xu$q$nYqY33gH0}vv(ge!m9#VHyEyCZF3*>==BEz1N z%_)0n&=L1Uhdq%CfN;JL9Rk825QcPw^BKZmCc=;>I_MG6?v$@WVg_}jh5F;2HwQ9P zyzou)mfu~;c}10M5@YTyynmK!Z{0xbTvu{_iL1PuKtaY;?AX+kcmJ%Q8=jc+j`SfX z=417Udak|in-R!Ev=$w_xAx}%y!x?@rAn!lMj^-P5E$rjiY{sBaSdJTsyV(nv*%pn z6i)+3+55pWyFFLEIdRUG9oLDDJ!ns__Sk!!SlZ_i%XfK{8Iu=nS4iukwMz1sIfc*v z>7W;D!%jSz2OF(-G!nS{HddI}jk#jSx5v!6Y0k}as;LL&^3QpN5TG_S6-VFYilYi= z)kcf=DW-Zs>BqqTcpf3tqh~h+*_0Zme=naRZlJi5U zyl5GL3R+%tC6>|!fFao3P%|8#qx1)(tL5W0<9>+%#_^=Q%|s?W)xh* z3I+--3)k1#^<{Q_m0ed<6;jK7IFCTQN{=A|C>jf4D-BId-6o{L3G7y9Z=X`%0DE#n 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�kw3lh^{dz6lTbRy=vO@fZ_Nm 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 literal 0 HcmV?d00001 diff --git a/16/wf3d8086/audiosdm.h b/16/wf3d8086/audiosdm.h new file mode 100755 index 00000000..11546466 --- /dev/null +++ b/16/wf3d8086/audiosdm.h @@ -0,0 +1,142 @@ +///////////////////////////////////////////////// +// +// MUSE Header for .SDM +// Created Thu Aug 27 07:12:39 1992 +// +///////////////////////////////////////////////// + +#define NUMSOUNDS 81 +#define NUMSNDCHUNKS 267 + +// +// Sound names & indexes +// +typedef enum { + HITWALLSND, // 0 + MISSILEHITSND, // 1 + SELECTITEMSND, // 2 + GHOSTSIGHTSND, // 3 + MOVEGUN2SND, // 4 + MOVEGUN1SND, // 5 + NOWAYSND, // 6 + NAZIHITPLAYERSND, // 7 + MISSILEFIRESND, // 8 + PLAYERDEATHSND, // 9 + DOGDEATHSND, // 10 + ATKGATLINGSND, // 11 + GETKEYSND, // 12 + NOITEMSND, // 13 + WALK1SND, // 14 + WALK2SND, // 15 + TAKEDAMAGESND, // 16 + GAMEOVERSND, // 17 + OPENDOORSND, // 18 + CLOSEDOORSND, // 19 + DONOTHINGSND, // 20 + HALTSND, // 21 + DEATHSCREAM2SND, // 22 + ATKKNIFESND, // 23 + ATKPISTOLSND, // 24 + DEATHSCREAM3SND, // 25 + ATKMACHINEGUNSND, // 26 + HITENEMYSND, // 27 + SHOOTDOORSND, // 28 + DEATHSCREAM1SND, // 29 + GETMACHINESND, // 30 + GETAMMOSND, // 31 + SHOOTSND, // 32 + HEALTH1SND, // 33 + HEALTH2SND, // 34 + BONUS1SND, // 35 + BONUS2SND, // 36 + BONUS3SND, // 37 + GETGATLINGSND, // 38 + ESCPRESSEDSND, // 39 + LEVELDONESND, // 40 + DOGBARKSND, // 41 + ENDBONUS1SND, // 42 + ENDBONUS2SND, // 43 + BONUS1UPSND, // 44 + BONUS4SND, // 45 + PUSHWALLSND, // 46 + NOBONUSSND, // 47 + PERCENT100SND, // 48 + BOSSACTIVESND, // 49 + DEATHSCREAM4SND, // 50 + SCHUTZADSND, // 51 + AHHHGSND, // 52 + DEATHSCREAM5SND, // 53 + DEATHSCREAM7SND, // 54 + DEATHSCREAM8SND, // 55 + LEBENSND, // 56 + DEATHSCREAM6SND, // 57 + NAZIFIRESND, // 58 + BOSSFIRESND, // 59 + SSFIRESND, // 60 + SLURPIESND, // 61 + GHOSTFADESND, // 62 + DEATHSCREAM9SND, // 63 + GETAMMOBOXSND, // 64 + ANGELSIGHTSND, // 65 + SPIONSND, // 66 + NEINSOVASSND, // 67 + DOGATTACKSND, // 68 + ANGELFIRESND, // 69 + TRANSSIGHTSND, // 70 + TRANSDEATHSND, // 71 + WILHELMSIGHTSND, // 72 + WILHELMDEATHSND, // 73 + UBERDEATHSND, // 74 + KNIGHTSIGHTSND, // 75 + KNIGHTDEATHSND, // 76 + ANGELDEATHSND, // 77 + KNIGHTMISSILESND, // 78 + GETSPEARSND, // 79 + ANGELTIREDSND, // 80 + LASTSOUND + } soundnames; + +// +// Base offsets +// +#define STARTPCSOUNDS 0 +#define STARTADLIBSOUNDS 81 +#define STARTDIGISOUNDS 162 +#define STARTMUSIC 243 + +// +// Music names & indexes +// +typedef enum { + XFUNKIE_MUS, // 0 + DUNGEON_MUS, // 1 + XDEATH_MUS, // 2 + GETTHEM_MUS, // 3 + XTIPTOE_MUS, // 4 + GOINGAFT_MUS, // 5 + URAHERO_MUS, // 6 + XTHEEND_MUS, // 7 + NAZI_OMI_MUS, // 8 + POW_MUS, // 9 + TWELFTH_MUS, // 10 + SEARCHN_MUS, // 11 + SUSPENSE_MUS, // 12 + ZEROHOUR_MUS, // 13 + WONDERIN_MUS, // 14 + ULTIMATE_MUS, // 15 + ENDLEVEL_MUS, // 16 + XEVIL_MUS, // 17 + XJAZNAZI_MUS, // 18 + COPYPRO_MUS, // 19 + XAWARD_MUS, // 20 + XPUTIT_MUS, // 21 + XGETYOU_MUS, // 22 + XTOWER2_MUS, // 23 + LASTMUSIC + } musicnames; + +///////////////////////////////////////////////// +// +// Thanks for playing with MUSE! +// +///////////////////////////////////////////////// diff --git a/16/wf3d8086/audiosod.h b/16/wf3d8086/audiosod.h new file mode 100755 index 00000000..543e2c13 --- /dev/null +++ b/16/wf3d8086/audiosod.h @@ -0,0 +1,142 @@ +///////////////////////////////////////////////// +// +// MUSE Header for .SOD +// Created Thu Aug 13 09:25:58 1992 +// +///////////////////////////////////////////////// + +#define NUMSOUNDS 81 +#define NUMSNDCHUNKS 267 + +// +// Sound names & indexes +// +typedef enum { + HITWALLSND, // 0 + MISSILEHITSND, // 1 + SELECTITEMSND, // 2 + GHOSTSIGHTSND, // 3 + MOVEGUN2SND, // 4 + MOVEGUN1SND, // 5 + NOWAYSND, // 6 + NAZIHITPLAYERSND, // 7 + MISSILEFIRESND, // 8 + PLAYERDEATHSND, // 9 + DOGDEATHSND, // 10 + ATKGATLINGSND, // 11 + GETKEYSND, // 12 + NOITEMSND, // 13 + WALK1SND, // 14 + WALK2SND, // 15 + TAKEDAMAGESND, // 16 + GAMEOVERSND, // 17 + OPENDOORSND, // 18 + CLOSEDOORSND, // 19 + DONOTHINGSND, // 20 + HALTSND, // 21 + DEATHSCREAM2SND, // 22 + ATKKNIFESND, // 23 + ATKPISTOLSND, // 24 + DEATHSCREAM3SND, // 25 + ATKMACHINEGUNSND, // 26 + HITENEMYSND, // 27 + SHOOTDOORSND, // 28 + DEATHSCREAM1SND, // 29 + GETMACHINESND, // 30 + GETAMMOSND, // 31 + SHOOTSND, // 32 + HEALTH1SND, // 33 + HEALTH2SND, // 34 + BONUS1SND, // 35 + BONUS2SND, // 36 + BONUS3SND, // 37 + GETGATLINGSND, // 38 + ESCPRESSEDSND, // 39 + LEVELDONESND, // 40 + DOGBARKSND, // 41 + ENDBONUS1SND, // 42 + ENDBONUS2SND, // 43 + BONUS1UPSND, // 44 + BONUS4SND, // 45 + PUSHWALLSND, // 46 + NOBONUSSND, // 47 + PERCENT100SND, // 48 + BOSSACTIVESND, // 49 + DEATHSCREAM4SND, // 50 + SCHUTZADSND, // 51 + AHHHGSND, // 52 + DEATHSCREAM5SND, // 53 + DEATHSCREAM7SND, // 54 + DEATHSCREAM8SND, // 55 + LEBENSND, // 56 + DEATHSCREAM6SND, // 57 + NAZIFIRESND, // 58 + BOSSFIRESND, // 59 + SSFIRESND, // 60 + SLURPIESND, // 61 + GHOSTFADESND, // 62 + DEATHSCREAM9SND, // 63 + GETAMMOBOXSND, // 64 + ANGELSIGHTSND, // 65 + SPIONSND, // 66 + NEINSOVASSND, // 67 + DOGATTACKSND, // 68 + ANGELFIRESND, // 69 + TRANSSIGHTSND, // 70 + TRANSDEATHSND, // 71 + WILHELMSIGHTSND, // 72 + WILHELMDEATHSND, // 73 + UBERDEATHSND, // 74 + KNIGHTSIGHTSND, // 75 + KNIGHTDEATHSND, // 76 + ANGELDEATHSND, // 77 + KNIGHTMISSILESND, // 78 + GETSPEARSND, // 79 + ANGELTIREDSND, // 80 + LASTSOUND + } soundnames; + +// +// Base offsets +// +#define STARTPCSOUNDS 0 +#define STARTADLIBSOUNDS 81 +#define STARTDIGISOUNDS 162 +#define STARTMUSIC 243 + +// +// Music names & indexes +// +typedef enum { + XFUNKIE_MUS, // 0 + DUNGEON_MUS, // 1 + XDEATH_MUS, // 2 + GETTHEM_MUS, // 3 + XTIPTOE_MUS, // 4 + GOINGAFT_MUS, // 5 + URAHERO_MUS, // 6 + XTHEEND_MUS, // 7 + NAZI_OMI_MUS, // 8 + POW_MUS, // 9 + TWELFTH_MUS, // 10 + SEARCHN_MUS, // 11 + SUSPENSE_MUS, // 12 + ZEROHOUR_MUS, // 13 + WONDERIN_MUS, // 14 + ULTIMATE_MUS, // 15 + ENDLEVEL_MUS, // 16 + XEVIL_MUS, // 17 + XJAZNAZI_MUS, // 18 + COPYPRO_MUS, // 19 + XAWARD_MUS, // 20 + XPUTIT_MUS, // 21 + XGETYOU_MUS, // 22 + XTOWER2_MUS, // 23 + LASTMUSIC + } musicnames; + +///////////////////////////////////////////////// +// +// Thanks for playing with MUSE! +// +///////////////////////////////////////////////// diff --git a/16/wf3d8086/audiowl1.h b/16/wf3d8086/audiowl1.h new file mode 100755 index 00000000..7ce44c09 --- /dev/null +++ b/16/wf3d8086/audiowl1.h @@ -0,0 +1,133 @@ +///////////////////////////////////////////////// +// +// MUSE Header for .WL1 +// Created Tue Apr 28 23:57:08 1992 +// +///////////////////////////////////////////////// + +#define NUMSOUNDS 69 +#define NUMSNDCHUNKS 234 + +// +// Sound names & indexes +// +typedef enum { + HITWALLSND, // 0 + SELECTWPNSND, // 1 + SELECTITEMSND, // 2 + HEARTBEATSND, // 3 + MOVEGUN2SND, // 4 + MOVEGUN1SND, // 5 + NOWAYSND, // 6 + NAZIHITPLAYERSND, // 7 + NAZIMISSSND, // 8 + PLAYERDEATHSND, // 9 + DOGDEATHSND, // 10 + ATKGATLINGSND, // 11 + GETKEYSND, // 12 + NOITEMSND, // 13 + WALK1SND, // 14 + WALK2SND, // 15 + TAKEDAMAGESND, // 16 + GAMEOVERSND, // 17 + OPENDOORSND, // 18 + CLOSEDOORSND, // 19 + DONOTHINGSND, // 20 + HALTSND, // 21 + DEATHSCREAM2SND, // 22 + ATKKNIFESND, // 23 + ATKPISTOLSND, // 24 + DEATHSCREAM3SND, // 25 + ATKMACHINEGUNSND, // 26 + HITENEMYSND, // 27 + SHOOTDOORSND, // 28 + DEATHSCREAM1SND, // 29 + GETMACHINESND, // 30 + GETAMMOSND, // 31 + SHOOTSND, // 32 + HEALTH1SND, // 33 + HEALTH2SND, // 34 + BONUS1SND, // 35 + BONUS2SND, // 36 + BONUS3SND, // 37 + GETGATLINGSND, // 38 + ESCPRESSEDSND, // 39 + LEVELDONESND, // 40 + DOGBARKSND, // 41 + ENDBONUS1SND, // 42 + ENDBONUS2SND, // 43 + BONUS1UPSND, // 44 + BONUS4SND, // 45 + PUSHWALLSND, // 46 + NOBONUSSND, // 47 + PERCENT100SND, // 48 + BOSSACTIVESND, // 49 + BOSSDIESSND, // 50 + SCHUTZADSND, // 51 + AHHHGSND, // 52 + DIESND, // 53 + EVASND, // 54 + GUTENTAGSND, // 55 + LEBENSND, // 56 + MUTTISND, // 57 + NAZIFIRESND, // 58 + BOSSFIRESND, // 59 + SSFIRESND, // 60 + SLURPIESND, // 61 + TOT_HUNDSND, // 62 + MEINGOTTSND, // 63 + SCHABBSHASND, // 64 + HILTERHASND, // 65 + SPIONSND, // 66 + NEINSOVASSND, // 67 + DOGATTACKSND, // 68 + LASTSOUND + } soundnames; + +// +// Base offsets +// +#define STARTPCSOUNDS 0 +#define STARTADLIBSOUNDS 69 +#define STARTDIGISOUNDS 138 +#define STARTMUSIC 207 + +// +// Music names & indexes +// +typedef enum { + CORNER_MUS, // 0 + DUNGEON_MUS, // 1 + GETOUT_MUS, // 2 + GETTHEM_MUS, // 3 + HEADACHE_MUS, // 4 + HITLWLTZ_MUS, // 5 + INTROCW3_MUS, // 6 + NAZI_NOR_MUS, // 7 + NAZI_OMI_MUS, // 8 + POW_MUS, // 9 + SALUTE_MUS, // 10 + SEARCHN_MUS, // 11 + SUSPENSE_MUS, // 12 + VICTORS_MUS, // 13 + WONDERIN_MUS, // 14 + FUNKYOU_MUS, // 15 + ENDLEVEL_MUS, // 16 + GOINGAFT_MUS, // 17 + PREGNANT_MUS, // 18 + ULTIMATE_MUS, // 19 + NAZI_RAP_MUS, // 20 + ZEROHOUR_MUS, // 21 + TWELFTH_MUS, // 22 + ROSTER_MUS, // 23 + URAHERO_MUS, // 24 + VICMARCH_MUS, // 25 + WARMRCH1_MUS, // 26 + LASTMUSIC + } musicnames; + +///////////////////////////////////////////////// +// +// Thanks for playing with MUSE! +// +///////////////////////////////////////////////// diff --git a/16/wf3d8086/audiowl6.h b/16/wf3d8086/audiowl6.h new file mode 100755 index 00000000..3cb747be --- /dev/null +++ b/16/wf3d8086/audiowl6.h @@ -0,0 +1,151 @@ +///////////////////////////////////////////////// +// +// MUSE Header for .WL6 +// Created Tue Jul 14 15:04:53 1992 +// +///////////////////////////////////////////////// + +#define NUMSOUNDS 87 +#define NUMSNDCHUNKS 288 + +// +// Sound names & indexes +// +typedef enum { + HITWALLSND, // 0 + SELECTWPNSND, // 1 + SELECTITEMSND, // 2 + HEARTBEATSND, // 3 + MOVEGUN2SND, // 4 + MOVEGUN1SND, // 5 + NOWAYSND, // 6 + NAZIHITPLAYERSND, // 7 + SCHABBSTHROWSND, // 8 + PLAYERDEATHSND, // 9 + DOGDEATHSND, // 10 + ATKGATLINGSND, // 11 + GETKEYSND, // 12 + NOITEMSND, // 13 + WALK1SND, // 14 + WALK2SND, // 15 + TAKEDAMAGESND, // 16 + GAMEOVERSND, // 17 + OPENDOORSND, // 18 + CLOSEDOORSND, // 19 + DONOTHINGSND, // 20 + HALTSND, // 21 + DEATHSCREAM2SND, // 22 + ATKKNIFESND, // 23 + ATKPISTOLSND, // 24 + DEATHSCREAM3SND, // 25 + ATKMACHINEGUNSND, // 26 + HITENEMYSND, // 27 + SHOOTDOORSND, // 28 + DEATHSCREAM1SND, // 29 + GETMACHINESND, // 30 + GETAMMOSND, // 31 + SHOOTSND, // 32 + HEALTH1SND, // 33 + HEALTH2SND, // 34 + BONUS1SND, // 35 + BONUS2SND, // 36 + BONUS3SND, // 37 + GETGATLINGSND, // 38 + ESCPRESSEDSND, // 39 + LEVELDONESND, // 40 + DOGBARKSND, // 41 + ENDBONUS1SND, // 42 + ENDBONUS2SND, // 43 + BONUS1UPSND, // 44 + BONUS4SND, // 45 + PUSHWALLSND, // 46 + NOBONUSSND, // 47 + PERCENT100SND, // 48 + BOSSACTIVESND, // 49 + MUTTISND, // 50 + SCHUTZADSND, // 51 + AHHHGSND, // 52 + DIESND, // 53 + EVASND, // 54 + GUTENTAGSND, // 55 + LEBENSND, // 56 + SCHEISTSND, // 57 + NAZIFIRESND, // 58 + BOSSFIRESND, // 59 + SSFIRESND, // 60 + SLURPIESND, // 61 + TOT_HUNDSND, // 62 + MEINGOTTSND, // 63 + SCHABBSHASND, // 64 + HITLERHASND, // 65 + SPIONSND, // 66 + NEINSOVASSND, // 67 + DOGATTACKSND, // 68 + FLAMETHROWERSND, // 69 + MECHSTEPSND, // 70 + GOOBSSND, // 71 + YEAHSND, // 72 + DEATHSCREAM4SND, // 73 + DEATHSCREAM5SND, // 74 + DEATHSCREAM6SND, // 75 + DEATHSCREAM7SND, // 76 + DEATHSCREAM8SND, // 77 + DEATHSCREAM9SND, // 78 + DONNERSND, // 79 + EINESND, // 80 + ERLAUBENSND, // 81 + KEINSND, // 82 + MEINSND, // 83 + ROSESND, // 84 + MISSILEFIRESND, // 85 + MISSILEHITSND, // 86 + LASTSOUND + } soundnames; + +// +// Base offsets +// +#define STARTPCSOUNDS 0 +#define STARTADLIBSOUNDS 87 +#define STARTDIGISOUNDS 174 +#define STARTMUSIC 261 + +// +// Music names & indexes +// +typedef enum { + CORNER_MUS, // 0 + DUNGEON_MUS, // 1 + WARMARCH_MUS, // 2 + GETTHEM_MUS, // 3 + HEADACHE_MUS, // 4 + HITLWLTZ_MUS, // 5 + INTROCW3_MUS, // 6 + NAZI_NOR_MUS, // 7 + NAZI_OMI_MUS, // 8 + POW_MUS, // 9 + SALUTE_MUS, // 10 + SEARCHN_MUS, // 11 + SUSPENSE_MUS, // 12 + VICTORS_MUS, // 13 + WONDERIN_MUS, // 14 + FUNKYOU_MUS, // 15 + ENDLEVEL_MUS, // 16 + GOINGAFT_MUS, // 17 + PREGNANT_MUS, // 18 + ULTIMATE_MUS, // 19 + NAZI_RAP_MUS, // 20 + ZEROHOUR_MUS, // 21 + TWELFTH_MUS, // 22 + ROSTER_MUS, // 23 + URAHERO_MUS, // 24 + VICMARCH_MUS, // 25 + PACMAN_MUS, // 26 + LASTMUSIC + } musicnames; + +///////////////////////////////////////////////// +// +// Thanks for playing with MUSE! +// +///////////////////////////////////////////////// diff --git a/16/wf3d8086/budiosod.h b/16/wf3d8086/budiosod.h new file mode 100755 index 00000000..543e2c13 --- /dev/null +++ b/16/wf3d8086/budiosod.h @@ -0,0 +1,142 @@ +///////////////////////////////////////////////// +// +// MUSE Header for .SOD +// Created Thu Aug 13 09:25:58 1992 +// +///////////////////////////////////////////////// + +#define NUMSOUNDS 81 +#define NUMSNDCHUNKS 267 + +// +// Sound names & indexes +// +typedef enum { + HITWALLSND, // 0 + MISSILEHITSND, // 1 + SELECTITEMSND, // 2 + GHOSTSIGHTSND, // 3 + MOVEGUN2SND, // 4 + MOVEGUN1SND, // 5 + NOWAYSND, // 6 + NAZIHITPLAYERSND, // 7 + MISSILEFIRESND, // 8 + PLAYERDEATHSND, // 9 + DOGDEATHSND, // 10 + ATKGATLINGSND, // 11 + GETKEYSND, // 12 + NOITEMSND, // 13 + WALK1SND, // 14 + WALK2SND, // 15 + TAKEDAMAGESND, // 16 + GAMEOVERSND, // 17 + OPENDOORSND, // 18 + CLOSEDOORSND, // 19 + DONOTHINGSND, // 20 + HALTSND, // 21 + DEATHSCREAM2SND, // 22 + ATKKNIFESND, // 23 + ATKPISTOLSND, // 24 + DEATHSCREAM3SND, // 25 + ATKMACHINEGUNSND, // 26 + HITENEMYSND, // 27 + SHOOTDOORSND, // 28 + DEATHSCREAM1SND, // 29 + GETMACHINESND, // 30 + GETAMMOSND, // 31 + SHOOTSND, // 32 + HEALTH1SND, // 33 + HEALTH2SND, // 34 + BONUS1SND, // 35 + BONUS2SND, // 36 + BONUS3SND, // 37 + GETGATLINGSND, // 38 + ESCPRESSEDSND, // 39 + LEVELDONESND, // 40 + DOGBARKSND, // 41 + ENDBONUS1SND, // 42 + ENDBONUS2SND, // 43 + BONUS1UPSND, // 44 + BONUS4SND, // 45 + PUSHWALLSND, // 46 + NOBONUSSND, // 47 + PERCENT100SND, // 48 + BOSSACTIVESND, // 49 + DEATHSCREAM4SND, // 50 + SCHUTZADSND, // 51 + AHHHGSND, // 52 + DEATHSCREAM5SND, // 53 + DEATHSCREAM7SND, // 54 + DEATHSCREAM8SND, // 55 + LEBENSND, // 56 + DEATHSCREAM6SND, // 57 + NAZIFIRESND, // 58 + BOSSFIRESND, // 59 + SSFIRESND, // 60 + SLURPIESND, // 61 + GHOSTFADESND, // 62 + DEATHSCREAM9SND, // 63 + GETAMMOBOXSND, // 64 + ANGELSIGHTSND, // 65 + SPIONSND, // 66 + NEINSOVASSND, // 67 + DOGATTACKSND, // 68 + ANGELFIRESND, // 69 + TRANSSIGHTSND, // 70 + TRANSDEATHSND, // 71 + WILHELMSIGHTSND, // 72 + WILHELMDEATHSND, // 73 + UBERDEATHSND, // 74 + KNIGHTSIGHTSND, // 75 + KNIGHTDEATHSND, // 76 + ANGELDEATHSND, // 77 + KNIGHTMISSILESND, // 78 + GETSPEARSND, // 79 + ANGELTIREDSND, // 80 + LASTSOUND + } soundnames; + +// +// Base offsets +// +#define STARTPCSOUNDS 0 +#define STARTADLIBSOUNDS 81 +#define STARTDIGISOUNDS 162 +#define STARTMUSIC 243 + +// +// Music names & indexes +// +typedef enum { + XFUNKIE_MUS, // 0 + DUNGEON_MUS, // 1 + XDEATH_MUS, // 2 + GETTHEM_MUS, // 3 + XTIPTOE_MUS, // 4 + GOINGAFT_MUS, // 5 + URAHERO_MUS, // 6 + XTHEEND_MUS, // 7 + NAZI_OMI_MUS, // 8 + POW_MUS, // 9 + TWELFTH_MUS, // 10 + SEARCHN_MUS, // 11 + SUSPENSE_MUS, // 12 + ZEROHOUR_MUS, // 13 + WONDERIN_MUS, // 14 + ULTIMATE_MUS, // 15 + ENDLEVEL_MUS, // 16 + XEVIL_MUS, // 17 + XJAZNAZI_MUS, // 18 + COPYPRO_MUS, // 19 + XAWARD_MUS, // 20 + XPUTIT_MUS, // 21 + XGETYOU_MUS, // 22 + XTOWER2_MUS, // 23 + LASTMUSIC + } musicnames; + +///////////////////////////////////////////////// +// +// Thanks for playing with MUSE! +// +///////////////////////////////////////////////// diff --git a/16/wf3d8086/budiowl6.h b/16/wf3d8086/budiowl6.h new file mode 100755 index 00000000..9cd66cac --- /dev/null +++ b/16/wf3d8086/budiowl6.h @@ -0,0 +1,151 @@ +///////////////////////////////////////////////// +// +// MUSE Header for .WL6 +// Created Sat May 30 18:41:31 1992 +// +///////////////////////////////////////////////// + +#define NUMSOUNDS 87 +#define NUMSNDCHUNKS 288 + +// +// Sound names & indexes +// +typedef enum { + HITWALLSND, // 0 + SELECTWPNSND, // 1 + SELECTITEMSND, // 2 + HEARTBEATSND, // 3 + MOVEGUN2SND, // 4 + MOVEGUN1SND, // 5 + NOWAYSND, // 6 + NAZIHITPLAYERSND, // 7 + SCHABBSTHROWSND, // 8 + PLAYERDEATHSND, // 9 + DOGDEATHSND, // 10 + ATKGATLINGSND, // 11 + GETKEYSND, // 12 + NOITEMSND, // 13 + WALK1SND, // 14 + WALK2SND, // 15 + TAKEDAMAGESND, // 16 + GAMEOVERSND, // 17 + OPENDOORSND, // 18 + CLOSEDOORSND, // 19 + DONOTHINGSND, // 20 + HALTSND, // 21 + DEATHSCREAM2SND, // 22 + ATKKNIFESND, // 23 + ATKPISTOLSND, // 24 + DEATHSCREAM3SND, // 25 + ATKMACHINEGUNSND, // 26 + HITENEMYSND, // 27 + SHOOTDOORSND, // 28 + DEATHSCREAM1SND, // 29 + GETMACHINESND, // 30 + GETAMMOSND, // 31 + SHOOTSND, // 32 + HEALTH1SND, // 33 + HEALTH2SND, // 34 + BONUS1SND, // 35 + BONUS2SND, // 36 + BONUS3SND, // 37 + GETGATLINGSND, // 38 + ESCPRESSEDSND, // 39 + LEVELDONESND, // 40 + DOGBARKSND, // 41 + ENDBONUS1SND, // 42 + ENDBONUS2SND, // 43 + BONUS1UPSND, // 44 + BONUS4SND, // 45 + PUSHWALLSND, // 46 + NOBONUSSND, // 47 + PERCENT100SND, // 48 + BOSSACTIVESND, // 49 + MUTTISND, // 50 + SCHUTZADSND, // 51 + AHHHGSND, // 52 + DIESND, // 53 + EVASND, // 54 + GUTENTAGSND, // 55 + LEBENSND, // 56 + SCHEISTSND, // 57 + NAZIFIRESND, // 58 + BOSSFIRESND, // 59 + SSFIRESND, // 60 + SLURPIESND, // 61 + TOT_HUNDSND, // 62 + MEINGOTTSND, // 63 + SCHABBSHASND, // 64 + HITLERHASND, // 65 + SPIONSND, // 66 + NEINSOVASSND, // 67 + DOGATTACKSND, // 68 + FLAMETHROWERSND, // 69 + MECHSTEPSND, // 70 + GOOBSSND, // 71 + YEAHSND, // 72 + DEATHSCREAM4SND, // 73 + DEATHSCREAM5SND, // 74 + DEATHSCREAM6SND, // 75 + DEATHSCREAM7SND, // 76 + DEATHSCREAM8SND, // 77 + DEATHSCREAM9SND, // 78 + DONNERSND, // 79 + EINESND, // 80 + ERLAUBENSND, // 81 + KEINSND, // 82 + MEINSND, // 83 + ROSESND, // 84 + MISSILEFIRESND, // 85 + MISSILEHITSND, // 86 + LASTSOUND + } soundnames; + +// +// Base offsets +// +#define STARTPCSOUNDS 0 +#define STARTADLIBSOUNDS 87 +#define STARTDIGISOUNDS 174 +#define STARTMUSIC 261 + +// +// Music names & indexes +// +typedef enum { + CORNER_MUS, // 0 + DUNGEON_MUS, // 1 + WARMARCH_MUS, // 2 + GETTHEM_MUS, // 3 + HEADACHE_MUS, // 4 + HITLWLTZ_MUS, // 5 + INTROCW3_MUS, // 6 + NAZI_NOR_MUS, // 7 + NAZI_OMI_MUS, // 8 + POW_MUS, // 9 + SALUTE_MUS, // 10 + SEARCHN_MUS, // 11 + SUSPENSE_MUS, // 12 + VICTORS_MUS, // 13 + WONDERIN_MUS, // 14 + FUNKYOU_MUS, // 15 + ENDLEVEL_MUS, // 16 + GOINGAFT_MUS, // 17 + PREGNANT_MUS, // 18 + ULTIMATE_MUS, // 19 + NAZI_RAP_MUS, // 20 + ZEROHOUR_MUS, // 21 + TWELFTH_MUS, // 22 + ROSTER_MUS, // 23 + URAHERO_MUS, // 24 + VICMARCH_MUS, // 25 + PACMAN_MUS, // 26 + LASTMUSIC + } musicnames; + +///////////////////////////////////////////////// +// +// Thanks for playing with MUSE! +// +///////////////////////////////////////////////// diff --git a/16/wf3d8086/c0.asm b/16/wf3d8086/c0.asm new file mode 100755 index 00000000..f93f9213 --- /dev/null +++ b/16/wf3d8086/c0.asm @@ -0,0 +1,843 @@ + NAME c0 + PAGE 60,132 + LOCALS +;[]------------------------------------------------------------[] +;| C0.ASM -- Start Up Code | +;| | +;| Turbo C++ Run Time Library | +;| | +;| Copyright (c) 1987, 1991 by Borland International Inc. | +;| All Rights Reserved. | +;[]------------------------------------------------------------[] + + __C0__ = 1 +INCLUDE RULES.ASI + +; Segment and Group declarations + +_TEXT SEGMENT BYTE PUBLIC 'CODE' + ENDS +_FARDATA SEGMENT PARA PUBLIC 'FAR_DATA' + ENDS +_FARBSS SEGMENT PARA PUBLIC 'FAR_BSS' + ENDS +IFNDEF __TINY__ +_OVERLAY_ SEGMENT PARA PUBLIC 'OVRINFO' + ENDS +_1STUB_ SEGMENT PARA PUBLIC 'STUBSEG' + ENDS +ENDIF +_DATA SEGMENT PARA PUBLIC 'DATA' + ENDS +_INIT_ SEGMENT WORD PUBLIC 'INITDATA' +InitStart label byte + ENDS +_INITEND_ SEGMENT BYTE PUBLIC 'INITDATA' +InitEnd label byte + ENDS +_EXIT_ SEGMENT WORD PUBLIC 'EXITDATA' +ExitStart label byte + ENDS +_EXITEND_ SEGMENT BYTE PUBLIC 'EXITDATA' +ExitEnd label byte + ENDS +_CVTSEG SEGMENT WORD PUBLIC 'DATA' + ENDS +_SCNSEG SEGMENT WORD PUBLIC 'DATA' + ENDS +IFNDEF __HUGE__ + _BSS SEGMENT WORD PUBLIC 'BSS' + ENDS + _BSSEND SEGMENT BYTE PUBLIC 'BSSEND' + ENDS +ENDIF +IFNDEF __TINY__ + _STACK SEGMENT STACK 'STACK' + ENDS +ENDIF + + ASSUME CS:_TEXT, DS:DGROUP + +; External References + +extrn _main:DIST +extrn _exit:DIST +extrn __exit:DIST +extrn __nfile:word +extrn __setupio:near ;required! +extrn __stklen:word +IF LDATA EQ false +extrn __heaplen:word +ENDIF + + SUBTTL Start Up Code + PAGE +;/* */ +;/*-----------------------------------------------------*/ +;/* */ +;/* Start Up Code */ +;/* ------------- */ +;/* */ +;/*-----------------------------------------------------*/ +;/* */ +PSPHigh equ 00002h +PSPEnv equ 0002ch +PSPCmd equ 00080h + + public __AHINCR +__AHINCR equ 1000h + public __AHSHIFT +__AHSHIFT equ 12 + +IFDEF __NOFLOAT__ +MINSTACK equ 128 ; minimal stack size in words +ELSE +MINSTACK equ 256 ; minimal stack size in words +ENDIF +; +; At the start, DS and ES both point to the segment prefix. +; SS points to the stack segment except in TINY model where +; SS is equal to CS +; +_TEXT SEGMENT +IFDEF __TINY__ + ORG 100h +ENDIF +STARTX PROC NEAR +; Save general information, such as : +; DGROUP segment address +; DOS version number +; Program Segment Prefix address +; Environment address +; Top of far heap + +IFDEF __TINY__ + mov dx, cs ; DX = GROUP Segment address +ELSE + mov dx, DGROUP ; DX = GROUP Segment address +ENDIF +IFNDEF __BOSS__ + mov cs:DGROUP@@, dx ; __BOSS__ +ENDIF + mov ah, 30h + int 21h ; get DOS version number + mov bp, ds:[PSPHigh]; BP = Highest Memory Segment Addr + mov bx, ds:[PSPEnv] ; BX = Environment Segment address + mov ds, dx + mov _version@, ax ; Keep major and minor version number + mov _psp@, es ; Keep Program Segment Prefix address + mov _envseg@, bx ; Keep Environment Segment address + mov word ptr _heaptop@ + 2, bp +; +; Save several vectors and install default divide by zero handler. +; + call SaveVectors + +;=================== +; +; IDsoft - Check to make sure that we're running on a 286 or better + + pushf ; Save original flags + xor ax,ax ; Clear AX + push ax + popf ; Try to pop the 0 + pushf + pop ax ; Get results of popping 0 into flags + popf ; Restore original flags + or ax,ax + ;begin 8086 hack + ;jns @@Have286 ; If no sign bit, have a 286 + jmp @@Have286 + + mov cx, lgth_no286MSG + mov dx, offset DGROUP: no286MSG + jmp MsgExit3 + +@@Have286: +; IDsoft - End of modifications (there's also a code segment string) +; +;=================== + +IFDEF __BOSS__ +; Determine if in real mode + mov ax,0FB42h ; find out if DPMI loader is here + mov bx,1 ; get info function + int 2fh ; + + push ax ; + mov ax, cs ; now, save DGROUP + add ax, cx ; + mov es, ax ; + mov dx, ds ; + mov es:DGROUP@@, dx ; + mov es:CSalias@@, ax ; + pop ax ; + +; cmp ax,0001h ; if not "TRUE" +; JNE InRealMode + +; 8 is the value of the alias selector +; in this system + MOV _protected@, cx + MOV _hugeincval@, cx + clc + mov ax, cx + xor cx, cx + or ax, ax + je @@gotshift +@@shiftcnt: + rcr ax,1 + jc @@gotshift + inc cx + jmp @@shiftcnt +@@gotshift: + mov _shiftcount@,cx + +; used by emulator +; PUSH DS +; MOV AX, 0E502H ; prot kernel function, get LDT alias +; INT 21H +; POP DS +; MOV _LDT@, AX + +; cmp _protected@,0001h ; if not "TRUE" +; JNE InRealMode + + .286P +IFE LDATA + mov dx, ds ; +; LSL AX, DX ; +; DEC AX ; + MOV AX, 0FFFEh ; + MOV SP, AX ; + MOV SS, DX ; +ENDIF + .8086 +; JMP BossSkip + +InRealMode label near + +ENDIF + +; Count the number of environment variables and compute the size. +; Each variable is ended by a 0 and a zero-length variable stops +; the environment. The environment can NOT be greater than 32k. + + les di, dword ptr _envLng@ + mov ax, di + mov bx, ax + mov cx, 07FFFh ; Environment cannot be > 32 Kbytes + cld +@@EnvLoop: + repnz scasb + jcxz InitFailed ; Bad environment !!! +IFDEF __BOSS__ + jmp InitOK +InitFailed: jmp near ptr _abort +InitOK: +ENDIF + + inc bx ; BX = Nb environment variables + cmp es:[di], al + jne @@EnvLoop ; Next variable ... + or ch, 10000000b + neg cx + mov _envLng@, cx ; Save Environment size + mov cx, dPtrSize / 2 + shl bx, cl + add bx, dPtrSize * 4 + and bx, not ((dPtrSize * 4) - 1) + mov _envSize@, bx ; Save Environment Variables Nb. + +IFNDEF __BOSS__ + +; Determine the amount of memory that we need to keep + +IFDEF _DSSTACK_ + mov dx, ds +ELSE + mov dx, ss +ENDIF + sub bp, dx ; BP = remaining size in paragraphs +IF LDATA + mov di, seg __stklen + mov es, di + mov di, es:__stklen ; DI = Requested stack size +ELSE + mov di, __stklen ; DI = Requested stack size +ENDIF +; +; Make sure that the requested stack size is at least MINSTACK words. +; + cmp di, 2*MINSTACK ; requested stack big enough ? + jae AskedStackOK + mov di, 2*MINSTACK ; no --> use minimal value +IF LDATA + mov es:__stklen, di ; override requested stack size +ELSE + mov __stklen, di ; override requested stack size +ENDIF + +AskedStackOK label near +IFDEF _DSSTACK_ + add di, offset DGROUP: edata@ + jb InitFailed ; DATA segment can NOT be > 64 Kbytes +ENDIF +IF LDATA EQ false + add di, __heaplen + jb InitFailed ; DATA segment can NOT be > 64 Kbytes +ENDIF + mov cl, 4 + shr di, cl ; $$$ Do not destroy CL $$$ + inc di ; DI = DS size in paragraphs + cmp bp, di +IF LDATA EQ false + jb InitFailed ; Not enough memory + cmp __stklen, 0 + je ExpandDS ; Expand DS up to 64 Kb + cmp __heaplen, 0 + jne ExcessOfMemory ; Much more available than needed +ExpandDS label near + mov di, 1000h + cmp bp, di + ja ExcessOfMemory ; Enough to run the program + mov di, bp + jmp short ExcessOfMemory ; Enough to run the program +ELSE + jnb ExcessOfMemory ; Much more available than needed +ENDIF + +; All initialization errors arrive here + +InitFailed label near + jmp near ptr _abort + +; Return to DOS the amount of memory in excess +; Set far heap base and pointer + +ExcessOfMemory label near + mov bx, di + add bx, dx + mov word ptr _heapbase@ + 2, bx + mov word ptr _brklvl@ + 2, bx + mov ax, _psp@ + sub bx, ax ; BX = Number of paragraphs to keep + mov es, ax ; ES = Program Segment Prefix address + mov ah, 04Ah + push di ; preserve DI + int 021h ; this call clobbers SI,DI,BP !!!!!! + pop di ; restore DI + + shl di, cl ; $$$ CX is still equal to 4 $$$ + + cli ; req'd for pre-1983 88/86s + mov ss, dx ; Set the program stack + mov sp, di + sti + +IFNDEF _DSSTACK_ + mov ax, seg __stklen + mov es, ax + mov es:__stklen, di ; If separate stack segment, save size +ENDIF + +ENDIF ; __BOSS__ + +IFNDEF __HUGE__ + +; Reset uninitialized data area + + xor ax, ax + mov es, cs:DGROUP@@ + mov di, offset DGROUP: bdata@ + mov cx, offset DGROUP: edata@ + sub cx, di + cld + rep stosb +ENDIF + +; If default number of file handles have changed then tell DOS + cmp __nfile, 20 + jbe @@NoChange + + cmp _osmajor@, 3 ; Check for >= DOS 3.3 + jb @@NoChange + ja @@DoChange + cmp _osminor@, 1Eh + jb @@NoChange +@@DoChange: + mov ax, 5801h ; Set last fit allocation + mov bx, 2 + int 21h + jc @@BadInit + + mov ah, 67h ; Expand handle table + mov bx, __nfile + int 21h + jc @@BadInit + + mov ah, 48h ; Allocate 16 bytes to find new + mov bx, 1 ; top of memory address + int 21h + jc @@BadInit + inc ax ; Adjust address to point after block + mov word ptr _heaptop@ + 2, ax + + dec ax ; Change back and release block + mov es, ax + mov ah, 49h + int 21h + jc @@BadInit + + mov ax, 5801h ; Set first fit allocation + mov bx, 0 + int 21h + jnc @@NoChange + +@@BadInit: jmp near ptr _abort + +@@NoChange: + +; Prepare main arguments + + mov ah, 0 + int 1ah ; get current BIOS time in ticks + mov word ptr _StartTime@,dx ; save it for clock() fn + mov word ptr _StartTime@+2,cx + or al,al ; was midnight flag set? + jz @@NotMidnight + mov ax,40h ; set BIOS midnight flag + mov es,ax ; at 40:70 + mov bx,70h + mov byte ptr es:[bx],1 + +@@NotMidnight: + xor bp,bp ; set BP to 0 for overlay mgr + + mov es, cs:DGROUP@@ + mov si,offset DGROUP:InitStart ;si = start of table + mov di,offset DGROUP:InitEnd ;di = end of table + call StartExit + +; ExitCode = main(argc,argv,envp); + +IF LDATA + push word ptr __C0environ+2 + push word ptr __C0environ + push word ptr __C0argv+2 + push word ptr __C0argv +ELSE + push word ptr __C0environ + push word ptr __C0argv +ENDIF + push __C0argc + call _main + +; Flush and close streams and files + + push ax + call _exit + +;--------------------------------------------------------------------------- +; _cleanup() call all #pragma exit cleanup routines. +; _checknull() check for null pointer zapping copyright message +; _terminate(int) exit program with error code +; +; These functions are called by exit(), _exit(), _cexit(), +; and _c_exit(). +;--------------------------------------------------------------------------- + +; Call cleanup routines + +__cleanup PROC DIST + PUBLIC __cleanup + + mov es, cs:DGROUP@@ + push si + push di + mov si,offset DGROUP:ExitStart + mov di,offset DGROUP:ExitEnd + call StartExit + pop di + pop si + ret +__cleanup ENDP + +; Check for null pointers before exit + +__checknull PROC DIST + PUBLIC __checknull + +IF LDATA EQ false + IFNDEF __TINY__ + push si + push di + mov es, cs:DGROUP@@ + xor ax, ax + mov si, ax + mov cx, lgth_CopyRight +ComputeChecksum label near + add al, es:[si] + adc ah, 0 + inc si + loop ComputeChecksum + sub ax, CheckSum + jz @@SumOk + mov cx, lgth_NullCheck + mov dx, offset DGROUP: NullCheck + call ErrorDisplay +@@SumOK: pop di + pop si + ENDIF +ENDIF + ret +__checknull ENDP + +; Exit to DOS + +__terminate PROC DIST + PUBLIC __terminate + mov bp,sp + mov ah,4Ch + mov al,[bp+cPtrSize] + int 21h ; Exit to DOS +__terminate ENDP + +STARTX ENDP + + SUBTTL Vector save/restore & default Zero divide routines + PAGE +;[]------------------------------------------------------------[] +;| | +;| Interrupt Save/Restore routines and default divide by zero | +;| handler. | +;| | +;[]------------------------------------------------------------[] + +ZeroDivision PROC FAR + mov cx, lgth_ZeroDivMSG + mov dx, offset DGROUP: ZeroDivMSG + jmp MsgExit3 +ZeroDivision ENDP + +;-------------------------------------------------------------------------- +; savevectors() +; +; Save vectors for 0, 4, 5 & 6 interrupts. This is for extended +; signal()/raise() support as the signal functions can steal these +; vectors during runtime. +;-------------------------------------------------------------------------- +SaveVectors PROC NEAR + push ds +; Save INT 0 + mov ax, 3500h + int 021h + mov word ptr _Int0Vector@, bx + mov word ptr _Int0Vector@+2, es +; Save INT 4 + mov ax, 3504h + int 021h + mov word ptr _Int4Vector@, bx + mov word ptr _Int4Vector@+2, es +; Save INT 5 + mov ax, 3505h + int 021h + mov word ptr _Int5Vector@, bx + mov word ptr _Int5Vector@+2, es +; Save INT 6 + mov ax, 3506h + int 021h + mov word ptr _Int6Vector@, bx + mov word ptr _Int6Vector@+2, es +; +; Install default divide by zero handler. +; + mov ax, 2500h + mov dx, cs + mov ds, dx + mov dx, offset ZeroDivision + int 21h + + pop ds + ret +SaveVectors ENDP + +;-------------------------------------------------------------------------- +; _restorezero() puts back all the vectors that SaveVectors took. +; +;NOTE : TSRs must BE AWARE that signal() functions which take these +; vectors will be deactivated if the keep() function is executed. +; If a TSR wants to use the signal functions when it is active it +; will have to save/restore these vectors itself when activated and +; deactivated. +;-------------------------------------------------------------------------- +__restorezero PROC DIST + PUBLIC __restorezero +IFDEF __HUGE__ + push ds + mov ds, cs: DGROUP@@ +ENDIF + push ds + mov ax, 2500h + lds dx, _Int0Vector@ + int 21h + pop ds + + push ds + mov ax, 2504h + lds dx, _Int4Vector@ + int 21h + pop ds + + push ds + mov ax, 2505h + lds dx, _Int5Vector@ + int 21h + pop ds + +IFNDEF __HUGE__ + push ds +ENDIF + mov ax, 2506h + lds dx, _Int6Vector@ + int 21h + pop ds + + ret + ENDP + +;------------------------------------------------------------------ +; Loop through a startup/exit (SE) table, +; calling functions in order of priority. +; ES:SI is assumed to point to the beginning of the SE table +; ES:DI is assumed to point to the end of the SE table +; First 64 priorities are reserved by Borland +;------------------------------------------------------------------ +PNEAR EQU 0 +PFAR EQU 1 +NOTUSED EQU 0ffh + +SE STRUC +calltype db ? ; 0=near,1=far,ff=not used +priority db ? ; 0=highest,ff=lowest +addrlow dw ? +addrhigh dw ? +SE ENDS + +StartExit proc near +@@Start: cmp si,offset DGROUP:InitStart ; startup or exit? + je @@StartLow ; it's startup + xor ah,ah ; start with high priority + jmp short @@SaveEnd +@@StartLow: mov ah,0ffh ;start with lowest priority +@@SaveEnd: mov dx,di ;set sentinel to end of table + mov bx,si ;bx = start of table + +@@TopOfTable: cmp bx,di ;and the end of the table? + je @@EndOfTable ;yes, exit the loop + cmp es:[bx.calltype],NOTUSED;check the call type + je @@Next + cmp si,offset DGROUP:InitStart ; startup or exit? + je @@CompareHigh ; it's startup + cmp ah,es:[bx.priority] ; it's exit + jmp short @@CheckPrior ; if priority too low, skip +@@CompareHigh: cmp es:[bx.priority],ah ;check the priority +@@CheckPrior: ja @@Next ;too high? skip + mov ah,es:[bx.priority] ;keep priority + mov dx,bx ;keep index in dx +@@Next: add bx,SIZE SE ;bx = next item in table + jmp @@TopOfTable + +@@EndOfTable: cmp dx,di ;did we exhaust the table? + je @@Done ;yes, quit + mov bx,dx ;bx = highest priority item + cmp es:[bx.calltype],PNEAR ;is it near or far? + mov es:[bx.calltype],NOTUSED;wipe the call type + push es ;save es + je @@NearCall + +@@FarCall: call DWORD PTR es:[bx.addrlow] + pop es ;restore es + jmp short @@Start + +@@NearCall: call WORD PTR es:[bx.addrlow] + pop es ;restore es + jmp short @@Start + +@@Done: ret + endp + +;------------------------------------------------------------------ + +ErrorDisplay PROC NEAR + mov ah, 040h + mov bx, 2 + int 021h + ret +ErrorDisplay ENDP + +_abort PROC DIST + PUBLIC _abort + mov cx, lgth_abortMSG + mov dx, offset DGROUP: abortMSG +MsgExit3 label near + mov ds, cs: DGROUP@@ + call ErrorDisplay +CallExit3 label near + mov ax, 3 + push ax + call __exit ; _exit(3); + ENDP + +; The DGROUP@ variable is used to reload DS with DGROUP + +PubSym@ DGROUP@, , __PASCAL__ + +IFDEF __BOSS__ +PubSym@ CSalias@,, __PASCAL__ +ENDIF + + +; __MMODEL is used to determine the memory model or the default +; pointer types at run time. + + public __MMODEL +__MMODEL dw MMODEL + +_TEXT ENDS + + SUBTTL Start Up Data Area + PAGE +;[]------------------------------------------------------------[] +;| Start Up Data Area | +;| | +;| WARNING Do not move any variables in the data | +;| segment unless you're absolutely sure | +;| that it does not matter. | +;[]------------------------------------------------------------[] + +_DATA SEGMENT + +; Magic symbol used by the debug info to locate the data segment + public DATASEG@ +DATASEG@ label byte + +; The CopyRight string must NOT be moved or changed without +; changing the null pointer check logic + +CopyRight db 4 dup(0) + db 'Borland C++ - Copyright 1991 Borland Intl.',0 +lgth_CopyRight equ $ - CopyRight + +IF LDATA EQ false +IFNDEF __TINY__ +CheckSum equ 00D5Ch +NullCheck db 'Null pointer assignment', 13, 10 +lgth_NullCheck equ $ - NullCheck +ENDIF +ENDIF + +ZeroDivMSG db 'Divide error', 13, 10 +lgth_ZeroDivMSG equ $ - ZeroDivMSG + +abortMSG db 'Abnormal program termination', 13, 10 +lgth_abortMSG equ $ - abortMSG + +; JAB - Added string for no 286 +no286MSG db 'Sorry, this program requires a 286 or better.', 13, 10 +lgth_no286MSG equ $ - no286MSG +; JAB - End of modifications + +; +; Interrupt vector save areas +; +; Interrupt vectors 0,4,5 & 6 are saved at startup and then restored +; when the program terminates. The signal/raise functions might +; steal these vectors during execution. +; +; Note: These vectors save area must not be altered +; without changing the save/restore logic. +; +PubSym@ _Int0Vector