ZealOS/docs/Apps/Titanium/Titanium.CC.html
TomAwezome 1b75d91002 Fix Mount AHCI Port selection.
Add arg to SATARep to specify drive types to show.
Add checks in AHCIPortInit to verify port signatures, add helper method to get signatures from port.
2021-08-02 16:40:05 -04:00

1106 lines
105 KiB
HTML
Executable file

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=US-ASCII">
<meta name="generator" content="ZealOS V0.13">
<style type="text/css">
body {background-color:#fef1f0;}
.cE0{color:#000000;background-color:#c7ab00;}
.cE1{color:#0148a4;background-color:#c7ab00;}
.cEA{color:#82bc49;background-color:#c7ab00;}
.cEE{color:#c7ab00;background-color:#c7ab00;}
.cF0{color:#000000;background-color:#fef1f0;}
.cF1{color:#0148a4;background-color:#fef1f0;}
.cF2{color:#3b7901;background-color:#fef1f0;}
.cF3{color:#057c7e;background-color:#fef1f0;}
.cF4{color:#bb2020;background-color:#fef1f0;}
.cF5{color:#9e42ae;background-color:#fef1f0;}
.cF6{color:#b57901;background-color:#fef1f0;}
.cF7{color:#b2b6af;background-color:#fef1f0;}
.cF8{color:#555753;background-color:#fef1f0;}
.cF9{color:#678fbb;background-color:#fef1f0;}
.cFA{color:#82bc49;background-color:#fef1f0;}
.cFB{color:#0097a2;background-color:#fef1f0;}
.cFC{color:#e26a6a;background-color:#fef1f0;}
.cFD{color:#c671bc;background-color:#fef1f0;}
.cFE{color:#c7ab00;background-color:#fef1f0;}
.cFF{color:#fef1f0;background-color:#fef1f0;}
</style>
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5>RegDefault</span><span class=cF0>(</span><span class=cF6>&quot;ZealOS/Titanium&quot;</span><span class=cF0>,</span><span class=cF6>&quot;I64 best_score=0;\n&quot;</span><span class=cF0>);
<a name="l2"></a></span><span class=cF5>RegExe</span><span class=cF0>(</span><span class=cF6>&quot;ZealOS/Titanium&quot;</span><span class=cF0>);
<a name="l3"></a>
<a name="l4"></a>#</span><span class=cF1>define</span><span class=cF0> MAP_HEIGHT </span><span class=cFE>4096</span><span class=cF0>
<a name="l5"></a>
<a name="l6"></a>#</span><span class=cF1>define</span><span class=cF0> B_LEN </span><span class=cFE>10</span><span class=cF0>
<a name="l7"></a>#</span><span class=cF1>define</span><span class=cF0> B_SPEED </span><span class=cFE>5</span><span class=cF0>
<a name="l8"></a>#</span><span class=cF1>define</span><span class=cF0> B_NUM </span><span class=cFE>128</span><span class=cF0>
<a name="l9"></a></span><span class=cF1>class</span><span class=cF0> Bullet
<a name="l10"></a>{
<a name="l11"></a> </span><span class=cF9>I64</span><span class=cF0> x, y, dx, dy, dx2, dy2;
<a name="l12"></a> </span><span class=cF1>Bool</span><span class=cF0> dead, missile, pad[</span><span class=cFE>6</span><span class=cF0>];
<a name="l13"></a>
<a name="l14"></a>} b[B_NUM];
<a name="l15"></a></span><span class=cF9>I64</span><span class=cF0> bullets_fired, missile_bmp;
<a name="l16"></a>
<a name="l17"></a></span><span class=cF9>I64</span><span class=cF0> x, y, dx, dy, finish_line;
<a name="l18"></a></span><span class=cF1>F64</span><span class=cF0> theta, t0, tf, sound_timeout;
<a name="l19"></a>
<a name="l20"></a>#</span><span class=cF1>define</span><span class=cF0> PHASES_GROUPS </span><span class=cFE>8</span><span class=cF0>
<a name="l21"></a>#</span><span class=cF1>define</span><span class=cF0> HACK_DIST </span><span class=cFE>5</span><span class=cF0>
<a name="l22"></a>
<a name="l23"></a>#</span><span class=cF1>define</span><span class=cF0> U_ENEMY_NUM (PHASES_GROUPS * </span><span class=cFE>64</span><span class=cF0>)
<a name="l24"></a>#</span><span class=cF1>define</span><span class=cF0> U_FRIENDLY_NUM (PHASES_GROUPS * </span><span class=cFE>16</span><span class=cF0>)
<a name="l25"></a>#</span><span class=cF1>define</span><span class=cF0> U_NUM (U_FRIENDLY_NUM + U_ENEMY_NUM)
<a name="l26"></a></span><span class=cF1>class</span><span class=cF0> Unit
<a name="l27"></a>{
<a name="l28"></a> </span><span class=cF9>I64</span><span class=cF0> x, y, best_dd;
<a name="l29"></a> </span><span class=cF1>F64</span><span class=cF0> theta, phase;
<a name="l30"></a> </span><span class=cF1>Bool</span><span class=cF0> friendly, dead, tank, CIA, pad[</span><span class=cFE>4</span><span class=cF0>];
<a name="l31"></a>
<a name="l32"></a>} u[U_NUM];
<a name="l33"></a>
<a name="l34"></a>#</span><span class=cF1>define</span><span class=cF0> ET_MAN </span><span class=cFE>0</span><span class=cF0>
<a name="l35"></a>#</span><span class=cF1>define</span><span class=cF0> ET_TANK </span><span class=cFE>1</span><span class=cF0>
<a name="l36"></a>#</span><span class=cF1>define</span><span class=cF0> ET_MISSILE </span><span class=cFE>2</span><span class=cF0>
<a name="l37"></a>#</span><span class=cF1>define</span><span class=cF0> ET_BUILDING </span><span class=cFE>3</span><span class=cF0>
<a name="l38"></a>#</span><span class=cF1>define</span><span class=cF0> E_NUM </span><span class=cFE>512</span><span class=cF0>
<a name="l39"></a></span><span class=cF1>class</span><span class=cF0> Explosion
<a name="l40"></a>{
<a name="l41"></a> </span><span class=cF9>I64</span><span class=cF0> x, y, num, type;
<a name="l42"></a> </span><span class=cF1>F64</span><span class=cF0> t0, tf;
<a name="l43"></a> </span><span class=cF1>Bool</span><span class=cF0> dead, pad[</span><span class=cFE>7</span><span class=cF0>];
<a name="l44"></a>
<a name="l45"></a>} e[E_NUM];
<a name="l46"></a>
<a name="l47"></a></span><span class=cF9>I64</span><span class=cF0> total_score, friendly_fire, enemy_by_friendly, friendly_left, enemy_left, main_loop_pass;
<a name="l48"></a></span><span class=cF1>Bool</span><span class=cF0> game_over;
<a name="l49"></a></span><span class=cE0>
<a name="l50"></a>
<a name="l51"></a>
<a name="l52"></a>
<a name="l53"></a>
<a name="l54"></a> </span><span class=cEA>&lt;1&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l55"></a>
<a name="l56"></a>
<a name="l57"></a>
<a name="l58"></a>
<a name="l59"></a>
<a name="l60"></a> </span><span class=cEA>&lt;2&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l61"></a>
<a name="l62"></a> </span><span class=cEA>&lt;3&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l63"></a>
<a name="l64"></a>
<a name="l65"></a>
<a name="l66"></a>
<a name="l67"></a> </span><span class=cEA>&lt;4&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l68"></a>
<a name="l69"></a>
<a name="l70"></a>
<a name="l71"></a> </span><span class=cEA>&lt;5&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l72"></a>
<a name="l73"></a>
<a name="l74"></a>
<a name="l75"></a> </span><span class=cEA>&lt;6&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l76"></a>
<a name="l77"></a>
<a name="l78"></a>
<a name="l79"></a></span><span class=cE1>U8</span><span class=cE0> *friendly_imgs[</span><span class=cEE>4</span><span class=cE0>] = {</span><span class=cEA>&lt;5&gt;</span><span class=cE0>, </span><span class=cEA>&lt;4&gt;</span><span class=cE0>, </span><span class=cEA>&lt;5&gt;</span><span class=cE0>, </span><span class=cEA>&lt;6&gt;</span><span class=cE0>};
<a name="l80"></a>
<a name="l81"></a>
<a name="l82"></a>
<a name="l83"></a>
<a name="l84"></a> </span><span class=cEA>&lt;7&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l85"></a>
<a name="l86"></a>
<a name="l87"></a>
<a name="l88"></a> </span><span class=cEA>&lt;8&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l89"></a>
<a name="l90"></a>
<a name="l91"></a> </span><span class=cEA>&lt;9&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l92"></a>
<a name="l93"></a>
<a name="l94"></a>
<a name="l95"></a></span><span class=cE1>U8</span><span class=cE0> *CIA_neeger_imgs[</span><span class=cEE>4</span><span class=cE0>] = {</span><span class=cEA>&lt;8&gt;</span><span class=cE0>, </span><span class=cEA>&lt;7&gt;</span><span class=cE0>, </span><span class=cEA>&lt;8&gt;</span><span class=cE0>, </span><span class=cEA>&lt;9&gt;</span><span class=cE0>};
<a name="l96"></a>
<a name="l97"></a>
<a name="l98"></a>
<a name="l99"></a>
<a name="l100"></a> </span><span class=cEA>&lt;10&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l101"></a>
<a name="l102"></a>
<a name="l103"></a>
<a name="l104"></a>
<a name="l105"></a> </span><span class=cEA>&lt;11&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l106"></a>
<a name="l107"></a>
<a name="l108"></a>
<a name="l109"></a>
<a name="l110"></a> </span><span class=cEA>&lt;12&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l111"></a>
<a name="l112"></a>
<a name="l113"></a>
<a name="l114"></a>
<a name="l115"></a></span><span class=cE1>U8</span><span class=cE0> *friendly_hacking_imgs[</span><span class=cEE>4</span><span class=cE0>] = {</span><span class=cEA>&lt;10&gt;</span><span class=cE0>, </span><span class=cEA>&lt;11&gt;</span><span class=cE0>, </span><span class=cEA>&lt;10&gt;</span><span class=cE0>, </span><span class=cEA>&lt;12&gt;</span><span class=cE0>};
<a name="l116"></a>
<a name="l117"></a>
<a name="l118"></a>
<a name="l119"></a>
<a name="l120"></a> </span><span class=cEA>&lt;13&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l121"></a>
<a name="l122"></a>
<a name="l123"></a>
<a name="l124"></a> </span><span class=cEA>&lt;14&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l125"></a>
<a name="l126"></a>
<a name="l127"></a>
<a name="l128"></a> </span><span class=cEA>&lt;15&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l129"></a>
<a name="l130"></a>
<a name="l131"></a>
<a name="l132"></a></span><span class=cE1>U8</span><span class=cE0> *enemy_imgs[</span><span class=cEE>4</span><span class=cE0>] = {</span><span class=cEA>&lt;14&gt;</span><span class=cE0>, </span><span class=cEA>&lt;13&gt;</span><span class=cE0>, </span><span class=cEA>&lt;14&gt;</span><span class=cE0>, </span><span class=cEA>&lt;15&gt;</span><span class=cE0>};
<a name="l133"></a>
<a name="l134"></a>
<a name="l135"></a>
<a name="l136"></a>
<a name="l137"></a> </span><span class=cEA>&lt;16&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l138"></a>
<a name="l139"></a>
<a name="l140"></a>
<a name="l141"></a>
<a name="l142"></a> </span><span class=cEA>&lt;17&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l143"></a>
<a name="l144"></a>
<a name="l145"></a>
<a name="l146"></a>
<a name="l147"></a> </span><span class=cEA>&lt;18&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l148"></a>
<a name="l149"></a>
<a name="l150"></a>
<a name="l151"></a>
<a name="l152"></a>
<a name="l153"></a>
<a name="l154"></a>
<a name="l155"></a>
<a name="l156"></a>
<a name="l157"></a>
<a name="l158"></a>
<a name="l159"></a> </span><span class=cEA>&lt;19&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l160"></a>
<a name="l161"></a>
<a name="l162"></a>
<a name="l163"></a>
<a name="l164"></a>
<a name="l165"></a>
<a name="l166"></a>
<a name="l167"></a>
<a name="l168"></a>
<a name="l169"></a></span><span class=cE1>U8</span><span class=cE0> *enemy_hacking_imgs[</span><span class=cEE>4</span><span class=cE0>] = {</span><span class=cEA>&lt;17&gt;</span><span class=cE0>, </span><span class=cEA>&lt;16&gt;</span><span class=cE0>, </span><span class=cEA>&lt;17&gt;</span><span class=cE0>, </span><span class=cEA>&lt;18&gt;</span><span class=cE0>};
<a name="l170"></a>
<a name="l171"></a>
<a name="l172"></a>
<a name="l173"></a>
<a name="l174"></a>
<a name="l175"></a>
<a name="l176"></a>
<a name="l177"></a> </span><span class=cEA>&lt;20&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l178"></a>
<a name="l179"></a>
<a name="l180"></a>
<a name="l181"></a>
<a name="l182"></a> </span><span class=cEA>&lt;21&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l183"></a>
<a name="l184"></a>
<a name="l185"></a>
<a name="l186"></a>
<a name="l187"></a>
<a name="l188"></a>
<a name="l189"></a>
<a name="l190"></a>
<a name="l191"></a> </span><span class=cEA>&lt;22&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l192"></a>
<a name="l193"></a>
<a name="l194"></a>
<a name="l195"></a>
<a name="l196"></a> </span><span class=cEA>&lt;23&gt;/* Graphics Not Rendered in HTML */</span><span class=cE0>
<a name="l197"></a>
<a name="l198"></a>
<a name="l199"></a>
<a name="l200"></a>
<a name="l201"></a></span><span class=cF0>
<a name="l202"></a>#</span><span class=cF1>define</span><span class=cF0> LS_APTS_NUM </span><span class=cFE>20</span><span class=cF0>
<a name="l203"></a>#</span><span class=cF1>define</span><span class=cF0> LS_MOUNTAINS_NUM </span><span class=cFE>3</span><span class=cF0>
<a name="l204"></a>#</span><span class=cF1>define</span><span class=cF0> LS_NUM </span><span class=cFE>128</span><span class=cF0>
<a name="l205"></a></span><span class=cF1>class</span><span class=cF0> LandScapeItem
<a name="l206"></a>{
<a name="l207"></a> </span><span class=cF9>I64</span><span class=cF0> x, y;
<a name="l208"></a> </span><span class=cF1>U8</span><span class=cF0> *img;
<a name="l209"></a>
<a name="l210"></a>} ls[LS_NUM];
<a name="l211"></a>
<a name="l212"></a>#</span><span class=cF1>define</span><span class=cF0> LS_TYPES </span><span class=cFE>4</span><span class=cF0>
<a name="l213"></a></span><span class=cF1>U8</span><span class=cF0> *landscape_imgs[LS_TYPES] = {</span><span class=cFA>&lt;20&gt;</span><span class=cF0>, </span><span class=cFA>&lt;21&gt;</span><span class=cF0>, </span><span class=cFA>&lt;22&gt;</span><span class=cF0>, </span><span class=cFA>&lt;23&gt;</span><span class=cF0>};
<a name="l214"></a>
<a name="l215"></a></span><span class=cF1>U0</span><span class=cF0> ExplosionDraw(</span><span class=cF9>CDC</span><span class=cF0> *dc, Explosion *tmpe, </span><span class=cF9>I64</span><span class=cF0> y)
<a name="l216"></a>{
<a name="l217"></a> </span><span class=cF9>I64</span><span class=cF0> i, n1, n2, n3, n4, n5;
<a name="l218"></a> </span><span class=cF1>F64</span><span class=cF0> t=(</span><span class=cF5>tS</span><span class=cF0>-tmpe-&gt;t0)/(tmpe-&gt;tf-tmpe-&gt;t0);
<a name="l219"></a>
<a name="l220"></a> </span><span class=cF5>Seed</span><span class=cF0>(tmpe-&gt;num + </span><span class=cFE>1</span><span class=cF0>);
<a name="l221"></a>
<a name="l222"></a> </span><span class=cF1>switch</span><span class=cF0> (tmpe-&gt;type)
<a name="l223"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l224"></a> </span><span class=cF1>case</span><span class=cF0> ET_MAN: n1 = </span><span class=cFE>8</span><span class=cF0>; n2 = </span><span class=cFE>0</span><span class=cF0>; n3 = </span><span class=cFE>0</span><span class=cF0>; n4 = </span><span class=cFE>18</span><span class=cF0>; n5 = </span><span class=cFE>28</span><span class=cF0>; </span><span class=cF1>break</span><span class=cF0>;
<a name="l225"></a> </span><span class=cF1>case</span><span class=cF0> ET_TANK: n1 = </span><span class=cFE>64</span><span class=cF0>; n2 = </span><span class=cFE>14</span><span class=cF0>; n3 = </span><span class=cFE>24</span><span class=cF0>; n4 = </span><span class=cFE>60</span><span class=cF0>; n5 = </span><span class=cFE>90</span><span class=cF0>; </span><span class=cF1>break</span><span class=cF0>;
<a name="l226"></a> </span><span class=cF1>case</span><span class=cF0> ET_MISSILE: n1 = </span><span class=cFE>128</span><span class=cF0>; n2 = </span><span class=cFE>30</span><span class=cF0>; n3 = </span><span class=cFE>60</span><span class=cF0>; n4 = </span><span class=cFE>100</span><span class=cF0>; n5 = </span><span class=cFE>200</span><span class=cF0>; </span><span class=cF1>break</span><span class=cF0>;
<a name="l227"></a> </span><span class=cF1>case</span><span class=cF0> ET_BUILDING: n1 = </span><span class=cFE>128</span><span class=cF0>; n2 = </span><span class=cFE>80</span><span class=cF0>; n3 = </span><span class=cFE>80</span><span class=cF0>; n4 = </span><span class=cFE>200</span><span class=cF0>; n5 = </span><span class=cFE>300</span><span class=cF0>; </span><span class=cF1>break</span><span class=cF0>;
<a name="l228"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l229"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; n1; i++)
<a name="l230"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l231"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>2</span><span class=cF0>)
<a name="l232"></a> </span><span class=cF1>switch</span><span class=cF0> (tmpe-&gt;type)
<a name="l233"></a> {
<a name="l234"></a> </span><span class=cF1>case</span><span class=cF0> ET_MAN:
<a name="l235"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>1</span><span class=cF0>)
<a name="l236"></a> dc-&gt;color = </span><span class=cF3>WHITE</span><span class=cF0>;
<a name="l237"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l238"></a> dc-&gt;color = </span><span class=cF3>LTGRAY</span><span class=cF0>;
<a name="l239"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l240"></a>
<a name="l241"></a> </span><span class=cF1>case</span><span class=cF0> ET_MISSILE:
<a name="l242"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>1</span><span class=cF0>)
<a name="l243"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l244"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>4</span><span class=cF0>)
<a name="l245"></a> dc-&gt;color = </span><span class=cF3>RED</span><span class=cF0>;
<a name="l246"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l247"></a> dc-&gt;color = </span><span class=cF3>DKGRAY</span><span class=cF0>;
<a name="l248"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l249"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l250"></a> dc-&gt;color=</span><span class=cF3>YELLOW</span><span class=cF0>;
<a name="l251"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l252"></a>
<a name="l253"></a> </span><span class=cF1>case</span><span class=cF0> ET_TANK:
<a name="l254"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>1</span><span class=cF0>)
<a name="l255"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l256"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>4</span><span class=cF0>)
<a name="l257"></a> dc-&gt;color = </span><span class=cF3>RED</span><span class=cF0>;
<a name="l258"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l259"></a> dc-&gt;color = </span><span class=cF3>DKGRAY</span><span class=cF0>;
<a name="l260"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l261"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l262"></a> dc-&gt;color = </span><span class=cF3>LTRED</span><span class=cF0>;
<a name="l263"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l264"></a>
<a name="l265"></a> </span><span class=cF1>case</span><span class=cF0> ET_BUILDING:
<a name="l266"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>1</span><span class=cF0>)
<a name="l267"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l268"></a> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>4</span><span class=cF0>)
<a name="l269"></a> dc-&gt;color = </span><span class=cF3>BLACK</span><span class=cF0>;
<a name="l270"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l271"></a> dc-&gt;color = </span><span class=cF3>DKGRAY</span><span class=cF0>;
<a name="l272"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l273"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l274"></a> dc-&gt;color = </span><span class=cF3>LTGRAY</span><span class=cF0>;
<a name="l275"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l276"></a> }
<a name="l277"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (i &amp; </span><span class=cFE>1</span><span class=cF0>)
<a name="l278"></a> dc-&gt;color = </span><span class=cF3>WHITE</span><span class=cF0>;
<a name="l279"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l280"></a> dc-&gt;color = </span><span class=cF3>LTGRAY</span><span class=cF0>;
<a name="l281"></a> </span><span class=cF5>GrLine</span><span class=cF0>(dc, tmpe-&gt;x + n2 * </span><span class=cF7>(</span><span class=cF5>Rand</span><span class=cF0> - .</span><span class=cFE>5</span><span class=cF7>)</span><span class=cF0>, y + n3 / </span><span class=cFE>2</span><span class=cF0> * </span><span class=cF5>Rand</span><span class=cF0>, tmpe-&gt;x + n4 * t * </span><span class=cF7>(</span><span class=cF5>Rand</span><span class=cF0> - .</span><span class=cFE>5</span><span class=cF7>)</span><span class=cF0>, y - n5 / </span><span class=cFE>2</span><span class=cF0> * t * </span><span class=cF5>Rand</span><span class=cF0>);
<a name="l282"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l283"></a>}
<a name="l284"></a>
<a name="l285"></a></span><span class=cF9>I64</span><span class=cF0> mp_not_done_flags;
<a name="l286"></a></span><span class=cF1>U0</span><span class=cF0> MPMenDraw(</span><span class=cF9>CDC</span><span class=cF0> *dc2)
<a name="l287"></a>{
<a name="l288"></a> </span><span class=cF9>CTask</span><span class=cF0> *task = dc2-&gt;win_task;
<a name="l289"></a> </span><span class=cF9>CDC</span><span class=cF0> *dc = </span><span class=cF5>DCAlias</span><span class=cF0>(dc2, task);
<a name="l290"></a> </span><span class=cF9>I64</span><span class=cF0> i, r[</span><span class=cFE>16</span><span class=cF0>], lo = </span><span class=cF5>Gs</span><span class=cF0>-&gt;num * U_NUM / </span><span class=cFB>mp_count</span><span class=cF0>, hi = (</span><span class=cF5>Gs</span><span class=cF0>-&gt;num + </span><span class=cFE>1</span><span class=cF0>) * U_NUM / </span><span class=cFB>mp_count</span><span class=cF0>,
<a name="l291"></a> yy, phase, scroll_y = MAP_HEIGHT - </span><span class=cFE>100</span><span class=cF0> - </span><span class=cFE>100</span><span class=cF0> * (</span><span class=cF5>tS</span><span class=cF0> - t0);
<a name="l292"></a> Unit *tmpu;
<a name="l293"></a> Explosion *tmpe;
<a name="l294"></a> </span><span class=cF1>U8</span><span class=cF0> *tmps, **_tmps;
<a name="l295"></a> </span><span class=cF1>F64</span><span class=cF0> tt, ts = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l296"></a>
<a name="l297"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cF5>Gs</span><span class=cF0>-&gt;num; i &lt; E_NUM; i += </span><span class=cFB>mp_count</span><span class=cF0>)
<a name="l298"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l299"></a> tmpe = &amp;e[i];
<a name="l300"></a> yy = (tmpe-&gt;y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>);
<a name="l301"></a> </span><span class=cF1>if</span><span class=cF0> (-</span><span class=cFE>32</span><span class=cF0> &lt;= yy &lt;= task-&gt;pix_bottom + </span><span class=cFE>32</span><span class=cF0> &amp;&amp; !tmpe-&gt;dead)
<a name="l302"></a> {
<a name="l303"></a> ExplosionDraw(dc, tmpe, yy);
<a name="l304"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>tS</span><span class=cF0> &gt; tmpe-&gt;tf)
<a name="l305"></a> tmpe-&gt;dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l306"></a> }
<a name="l307"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l308"></a> </span><span class=cF1>for</span><span class=cF0> (i = lo; i &lt; hi; i++)
<a name="l309"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l310"></a> tmpu = &amp;u[i];
<a name="l311"></a> yy = (tmpu-&gt;y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>);
<a name="l312"></a> </span><span class=cF1>if</span><span class=cF0> (-</span><span class=cFE>32</span><span class=cF0> &lt;= yy &lt;= task-&gt;pix_bottom + </span><span class=cFE>32</span><span class=cF0>)
<a name="l313"></a> {
<a name="l314"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpu-&gt;dead)
<a name="l315"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l316"></a> </span><span class=cF5>Mat4x4IdentEqu</span><span class=cF0>(r);
<a name="l317"></a> </span><span class=cF5>Mat4x4RotY</span><span class=cF0>(r, tmpu-&gt;theta);
<a name="l318"></a> </span><span class=cF5>Mat4x4RotX</span><span class=cF0>(r, </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>6</span><span class=cF0>);
<a name="l319"></a> </span><span class=cF5>Mat4x4Scale</span><span class=cF0>(r, </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>3</span><span class=cF0>);
<a name="l320"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;tank)
<a name="l321"></a> </span><span class=cF5>Sprite3Mat4x4B</span><span class=cF0>(dc, tmpu-&gt;x, yy, </span><span class=cF3>GR_Z_ALL</span><span class=cF0>, </span><span class=cFA>&lt;19&gt;</span><span class=cF0>, r);
<a name="l322"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l323"></a> {
<a name="l324"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;best_dd &lt; </span><span class=cF7>(</span><span class=cFE>2</span><span class=cF0> * HACK_DIST</span><span class=cF7>)</span><span class=cF0> * </span><span class=cF7>(</span><span class=cFE>2</span><span class=cF0> * HACK_DIST</span><span class=cF7>)</span><span class=cF0>)
<a name="l325"></a> </span><span class=cF7>{</span><span class=cF2>//It's neat so times 2</span><span class=cF0>
<a name="l326"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;friendly)
<a name="l327"></a> _tmps = friendly_hacking_imgs;
<a name="l328"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l329"></a> _tmps = enemy_hacking_imgs;
<a name="l330"></a> tt = </span><span class=cFE>4</span><span class=cF0> * </span><span class=cF5>Wrap</span><span class=cF0>(tmpu-&gt;phase + </span><span class=cFE>20</span><span class=cF0> * ts, </span><span class=cFE>0</span><span class=cF0>) / (</span><span class=cFE>2</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0>);
<a name="l331"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l332"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l333"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l334"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;friendly)
<a name="l335"></a> {
<a name="l336"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;CIA &amp;&amp; </span><span class=cF5>Blink</span><span class=cF0>)
<a name="l337"></a> _tmps = CIA_neeger_imgs;
<a name="l338"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l339"></a> _tmps = friendly_imgs;
<a name="l340"></a> }
<a name="l341"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l342"></a> _tmps = enemy_imgs;
<a name="l343"></a> tt = </span><span class=cFE>4</span><span class=cF0> * </span><span class=cF5>Wrap</span><span class=cF0>(tmpu-&gt;phase + </span><span class=cFE>5</span><span class=cF0> * ts, </span><span class=cFE>0</span><span class=cF0>) / (</span><span class=cFE>2</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0>);
<a name="l344"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l345"></a> phase = tt;
<a name="l346"></a> tt %= </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
<a name="l347"></a> tmps = </span><span class=cF5>SpriteInterpolate</span><span class=cF0>(tt, _tmps[phase &amp; </span><span class=cFE>3</span><span class=cF0>], _tmps[</span><span class=cF7>(</span><span class=cF0>phase + </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0> &amp; </span><span class=cFE>3</span><span class=cF0>]);
<a name="l348"></a> </span><span class=cF5>Sprite3Mat4x4B</span><span class=cF0>(dc, tmpu-&gt;x, yy, </span><span class=cF3>GR_Z_ALL</span><span class=cF0>, tmps, r);
<a name="l349"></a> </span><span class=cF5>Free</span><span class=cF0>(tmps);
<a name="l350"></a> }
<a name="l351"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l352"></a> }
<a name="l353"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l354"></a>
<a name="l355"></a> dc-&gt;depth_buf = </span><span class=cF3>NULL</span><span class=cF0>;
<a name="l356"></a> </span><span class=cF5>DCDel</span><span class=cF0>(dc);
<a name="l357"></a> </span><span class=cF5>LBtr</span><span class=cF0>(&amp;mp_not_done_flags, </span><span class=cF5>Gs</span><span class=cF0>-&gt;num);
<a name="l358"></a> </span><span class=cF5>Seed</span><span class=cF0>; </span><span class=cF2>//Return Executive task to timer-based.</span><span class=cF0>
<a name="l359"></a>}
<a name="l360"></a>
<a name="l361"></a></span><span class=cF1>U0</span><span class=cF0> MissilePos(</span><span class=cF9>I64</span><span class=cF0> m, </span><span class=cF1>F64</span><span class=cF0> theta, </span><span class=cF9>I64</span><span class=cF0> *_x, </span><span class=cF9>I64</span><span class=cF0> *_y)
<a name="l362"></a>{
<a name="l363"></a> </span><span class=cF9>I64</span><span class=cF0> n;
<a name="l364"></a>
<a name="l365"></a> </span><span class=cF1>if</span><span class=cF0> (m &lt; </span><span class=cFE>2</span><span class=cF0>)
<a name="l366"></a> n = -</span><span class=cFE>1</span><span class=cF0>;
<a name="l367"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l368"></a> n = </span><span class=cFE>1</span><span class=cF0>;
<a name="l369"></a> *_x = x + </span><span class=cFE>3</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Cos</span><span class=cF0>(theta) - (</span><span class=cFE>15</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> - </span><span class=cF7>(</span><span class=cF0>m &amp; </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0> &lt;&lt; </span><span class=cFE>3</span><span class=cF0>) * </span><span class=cF5>Cos</span><span class=cF0>(theta - n * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>);
<a name="l370"></a> *_y = y + </span><span class=cFE>3</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Sin</span><span class=cF0>(theta) - (</span><span class=cFE>15</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> - </span><span class=cF7>(</span><span class=cF0>m &amp; </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0> &lt;&lt; </span><span class=cFE>3</span><span class=cF0>) * </span><span class=cF5>Sin</span><span class=cF0>(theta - n * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>);
<a name="l371"></a>}
<a name="l372"></a>
<a name="l373"></a></span><span class=cF1>U0</span><span class=cF0> </span><span class=cF5>DrawIt</span><span class=cF0>(</span><span class=cF9>CTask</span><span class=cF0> *task, </span><span class=cF9>CDC</span><span class=cF0> *dc)
<a name="l374"></a>{
<a name="l375"></a> </span><span class=cF9>I64</span><span class=cF0> i, m, xx, yy, scroll_y = MAP_HEIGHT - </span><span class=cFE>100</span><span class=cF0> - </span><span class=cFE>100</span><span class=cF0> * (</span><span class=cF5>tS</span><span class=cF0> - t0);
<a name="l376"></a> </span><span class=cF1>F64</span><span class=cF0> tt, ts = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l377"></a> Bullet *tmpb;
<a name="l378"></a>
<a name="l379"></a> dc-&gt;color = </span><span class=cF3>ROPF_DITHER</span><span class=cF0> | </span><span class=cF3>BROWN</span><span class=cF0> &lt;&lt; </span><span class=cFE>16</span><span class=cF0> | </span><span class=cF3>YELLOW</span><span class=cF0>;
<a name="l380"></a> </span><span class=cF5>GrRect3</span><span class=cF0>(dc, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, dc-&gt;width, dc-&gt;height);
<a name="l381"></a>
<a name="l382"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; LS_NUM; i++)
<a name="l383"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l384"></a> yy = (ls[i].y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>);
<a name="l385"></a> </span><span class=cF1>if</span><span class=cF0> (-</span><span class=cFE>32</span><span class=cF0> &lt;= yy &lt;= task-&gt;pix_bottom + </span><span class=cFE>32</span><span class=cF0>)
<a name="l386"></a> </span><span class=cF5>Sprite3</span><span class=cF0>(dc, ls[i].x, yy, </span><span class=cFE>0</span><span class=cF0>, ls[i].img);
<a name="l387"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l388"></a>
<a name="l389"></a> dc-&gt;thick = </span><span class=cFE>3</span><span class=cF0>;
<a name="l390"></a> dc-&gt;color = </span><span class=cF3>BROWN</span><span class=cF0>;
<a name="l391"></a> </span><span class=cF5>GrLine3</span><span class=cF0>(dc, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cF7>(</span><span class=cF0>finish_line - scroll_y</span><span class=cF7>)</span><span class=cF0> &amp; </span><span class=cF7>(</span><span class=cF0>MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cF3>GR_WIDTH</span><span class=cF0>,
<a name="l392"></a> </span><span class=cF7>(</span><span class=cF0>finish_line - scroll_y</span><span class=cF7>)</span><span class=cF0> &amp; </span><span class=cF7>(</span><span class=cF0>MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>);
<a name="l393"></a>
<a name="l394"></a> dc-&gt;color = </span><span class=cF3>LTGRAY</span><span class=cF0>;
<a name="l395"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpb = b; i &lt; B_NUM; i++, tmpb++)
<a name="l396"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb-&gt;dead)
<a name="l397"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l398"></a> </span><span class=cF1>if</span><span class=cF0> (tmpb-&gt;missile)
<a name="l399"></a> </span><span class=cF5>Sprite3ZB</span><span class=cF0>(dc, tmpb-&gt;x &gt;&gt; </span><span class=cFE>32</span><span class=cF0>, tmpb-&gt;y &gt;&gt; </span><span class=cFE>32</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFA>&lt;2&gt;</span><span class=cF0>, </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0> + </span><span class=cF5>Arg</span><span class=cF7>(</span><span class=cF0>tmpb-&gt;dx, tmpb-&gt;dy</span><span class=cF7>)</span><span class=cF0>);
<a name="l400"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l401"></a> </span><span class=cF5>GrLine</span><span class=cF0>(dc, tmpb-&gt;x &gt;&gt; </span><span class=cFE>32</span><span class=cF0>, tmpb-&gt;y &gt;&gt; </span><span class=cFE>32</span><span class=cF0>,
<a name="l402"></a> </span><span class=cF7>(</span><span class=cF0>tmpb-&gt;x + tmpb-&gt;dy * B_LEN</span><span class=cF7>)</span><span class=cF0> &gt;&gt; </span><span class=cFE>32</span><span class=cF0>,
<a name="l403"></a> </span><span class=cF7>(</span><span class=cF0>tmpb-&gt;y + tmpb-&gt;dx * B_LEN</span><span class=cF7>)</span><span class=cF0> &gt;&gt; </span><span class=cFE>32</span><span class=cF0>);
<a name="l404"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l405"></a>
<a name="l406"></a> </span><span class=cF5>DCDepthBufAlloc</span><span class=cF0>(dc);
<a name="l407"></a> mp_not_done_flags = </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cFB>mp_count</span><span class=cF0> - </span><span class=cFE>1</span><span class=cF0>;
<a name="l408"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; </span><span class=cFB>mp_count</span><span class=cF0>; i++)
<a name="l409"></a> </span><span class=cF5>JobQueue</span><span class=cF0>(&amp;MPMenDraw, dc, i);
<a name="l410"></a> </span><span class=cF1>while</span><span class=cF0> (mp_not_done_flags)
<a name="l411"></a> </span><span class=cF5>Yield</span><span class=cF0>;
<a name="l412"></a> </span><span class=cF5>Free</span><span class=cF0>(dc-&gt;depth_buf);
<a name="l413"></a> dc-&gt;depth_buf = </span><span class=cF3>NULL</span><span class=cF0>;
<a name="l414"></a>
<a name="l415"></a> </span><span class=cF1>for</span><span class=cF0> (m = </span><span class=cFE>0</span><span class=cF0>; m &lt; </span><span class=cFE>4</span><span class=cF0>; m++)
<a name="l416"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cF0>&amp;missile_bmp, m</span><span class=cF7>)</span><span class=cF0>)
<a name="l417"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l418"></a> MissilePos(m, theta, &amp;xx, &amp;yy);
<a name="l419"></a> </span><span class=cF5>Sprite3ZB</span><span class=cF0>(dc, xx, yy, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFA>&lt;3&gt;</span><span class=cF0>, theta);
<a name="l420"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l421"></a> </span><span class=cF5>Sprite3ZB</span><span class=cF0>(dc, x, y, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFA>&lt;1&gt;</span><span class=cF0>, theta);
<a name="l422"></a>
<a name="l423"></a> </span><span class=cF1>if</span><span class=cF0> (tf)
<a name="l424"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l425"></a> tt = tf;
<a name="l426"></a> dc-&gt;color = </span><span class=cF3>RED</span><span class=cF0>;
<a name="l427"></a> </span><span class=cF1>if</span><span class=cF0> (game_over &amp;&amp; </span><span class=cF5>Blink</span><span class=cF0>)
<a name="l428"></a> </span><span class=cF5>GrPrint</span><span class=cF0>(dc, task-&gt;pix_width / </span><span class=cFE>2</span><span class=cF0> - </span><span class=cFE>9</span><span class=cF0> * </span><span class=cF3>FONT_WIDTH</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>, task-&gt;pix_height / </span><span class=cFE>2</span><span class=cF0>, </span><span class=cF6>&quot;Game Over&quot;</span><span class=cF0>);
<a name="l429"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l430"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l431"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l432"></a> tt = ts;
<a name="l433"></a> </span><span class=cF1>if</span><span class=cF0> (!enemy_left || !friendly_left)
<a name="l434"></a> game_over = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l435"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l436"></a> dc-&gt;color = </span><span class=cF3>BLACK</span><span class=cF0>;
<a name="l437"></a> </span><span class=cF5>GrPrint</span><span class=cF0>(dc, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cF6>&quot;Enemy:%d Friends:%d Friendly Fire:%d Time:%6.2f Bullets:%d&quot;</span><span class=cF0>,
<a name="l438"></a> enemy_left, friendly_left, friendly_fire, tt-t0, bullets_fired);
<a name="l439"></a> </span><span class=cF5>GrPrint</span><span class=cF0>(dc, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFE>8</span><span class=cF0>, </span><span class=cF6>&quot;Total Score:%,d High Score:%,d&quot;</span><span class=cF0>, total_score, best_score);
<a name="l440"></a>}
<a name="l441"></a>
<a name="l442"></a>Explosion *ExplosionNew(</span><span class=cF9>I64</span><span class=cF0> x, </span><span class=cF9>I64</span><span class=cF0> y)
<a name="l443"></a>{
<a name="l444"></a> </span><span class=cF9>I64</span><span class=cF0> i;
<a name="l445"></a>
<a name="l446"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; E_NUM; i++)
<a name="l447"></a> </span><span class=cF1>if</span><span class=cF0> (e[i].dead)
<a name="l448"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l449"></a> e[i].x = x;
<a name="l450"></a> e[i].y = y;
<a name="l451"></a> e[i].dead = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l452"></a> </span><span class=cF1>return</span><span class=cF0> &amp;e[i];
<a name="l453"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l454"></a>
<a name="l455"></a> </span><span class=cF1>return</span><span class=cF0> </span><span class=cF3>NULL</span><span class=cF0>;
<a name="l456"></a>}
<a name="l457"></a>
<a name="l458"></a></span><span class=cF1>U0</span><span class=cF0> ManDie(Unit *tmpu, </span><span class=cF1>Bool</span><span class=cF0> by_human)
<a name="l459"></a>{
<a name="l460"></a> Explosion *tmpe;
<a name="l461"></a>
<a name="l462"></a> tmpu-&gt;dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l463"></a> </span><span class=cF1>if</span><span class=cF0> (by_human)
<a name="l464"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l465"></a> </span><span class=cF1>if</span><span class=cF0> (tmpe = ExplosionNew</span><span class=cF7>(</span><span class=cF0>tmpu-&gt;x, tmpu-&gt;y</span><span class=cF7>)</span><span class=cF0>)
<a name="l466"></a> {
<a name="l467"></a> tmpe-&gt;t0 = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l468"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;tank)
<a name="l469"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l470"></a> tmpe-&gt;type = ET_TANK;
<a name="l471"></a> tmpe-&gt;tf = tmpe-&gt;t0 + </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>40</span><span class=cF0>;
<a name="l472"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l473"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l474"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l475"></a> tmpe-&gt;type = ET_MAN;
<a name="l476"></a> tmpe-&gt;tf = tmpe-&gt;t0 + </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>20</span><span class=cF0>;
<a name="l477"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l478"></a> }
<a name="l479"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l480"></a>
<a name="l481"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;friendly)
<a name="l482"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l483"></a> friendly_left--;
<a name="l484"></a> </span><span class=cF1>if</span><span class=cF0> (by_human)
<a name="l485"></a> friendly_fire++;
<a name="l486"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l487"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l488"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l489"></a> enemy_left--;
<a name="l490"></a> </span><span class=cF1>if</span><span class=cF0> (!by_human)
<a name="l491"></a> enemy_by_friendly++;
<a name="l492"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l493"></a> </span><span class=cF1>if</span><span class=cF0> (by_human &amp;&amp; !sound_timeout)
<a name="l494"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l495"></a> sound_timeout = </span><span class=cF5>tS</span><span class=cF0> + </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>01</span><span class=cF0>;
<a name="l496"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;friendly)
<a name="l497"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>46</span><span class=cF0>);
<a name="l498"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l499"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>22</span><span class=cF0>);
<a name="l500"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l501"></a>}
<a name="l502"></a>
<a name="l503"></a></span><span class=cF1>U0</span><span class=cF0> ExplosionDo(</span><span class=cF9>I64</span><span class=cF0> x, </span><span class=cF9>I64</span><span class=cF0> y, </span><span class=cF9>I64</span><span class=cF0> scroll_y)
<a name="l504"></a>{
<a name="l505"></a> </span><span class=cF9>I64</span><span class=cF0> i, x2, y2;
<a name="l506"></a> Explosion *tmpe;
<a name="l507"></a> Unit *tmpu;
<a name="l508"></a>
<a name="l509"></a> </span><span class=cF1>if</span><span class=cF0> (tmpe = ExplosionNew</span><span class=cF7>(</span><span class=cF0>x, y + scroll_y</span><span class=cF7>)</span><span class=cF0>)
<a name="l510"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l511"></a> tmpe-&gt;t0 = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l512"></a> tmpe-&gt;type = ET_MISSILE;
<a name="l513"></a> tmpe-&gt;tf = tmpe-&gt;t0 + </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
<a name="l514"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l515"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpu = u; i &lt; U_NUM; i++, tmpu++)
<a name="l516"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l517"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpu-&gt;dead)
<a name="l518"></a> {
<a name="l519"></a> x2 = tmpu-&gt;x;
<a name="l520"></a> y2 = (tmpu-&gt;y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>);
<a name="l521"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>SqrI64</span><span class=cF7>(</span><span class=cF0>x - x2</span><span class=cF7>)</span><span class=cF0> + </span><span class=cF5>SqrI64</span><span class=cF7>(</span><span class=cF0>y - y2</span><span class=cF7>)</span><span class=cF0> &lt; </span><span class=cFE>100</span><span class=cF0> * </span><span class=cFE>100</span><span class=cF0>)
<a name="l522"></a> ManDie(tmpu, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l523"></a> }
<a name="l524"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l525"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; LS_APTS_NUM; i++)
<a name="l526"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l527"></a> x2 = ls[i].x;
<a name="l528"></a> y2 = (ls[i].y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>);
<a name="l529"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>SqrI64</span><span class=cF7>(</span><span class=cF0>x-x2</span><span class=cF7>)</span><span class=cF0>+</span><span class=cF5>SqrI64</span><span class=cF7>(</span><span class=cF0>y-y2</span><span class=cF7>)</span><span class=cF0>&lt;</span><span class=cFE>100</span><span class=cF0>*</span><span class=cFE>100</span><span class=cF0>)
<a name="l530"></a> {
<a name="l531"></a> </span><span class=cF1>if</span><span class=cF0> (tmpe = ExplosionNew</span><span class=cF7>(</span><span class=cF0>x2, y2 + scroll_y</span><span class=cF7>)</span><span class=cF0>)
<a name="l532"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l533"></a> tmpe-&gt;t0 = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l534"></a> tmpe-&gt;type = ET_BUILDING;
<a name="l535"></a> tmpe-&gt;tf = tmpe-&gt;t0 + </span><span class=cFE>2</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
<a name="l536"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l537"></a> }
<a name="l538"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l539"></a>}
<a name="l540"></a>
<a name="l541"></a></span><span class=cF1>U0</span><span class=cF0> CheckCollisions()
<a name="l542"></a>{
<a name="l543"></a> </span><span class=cF9>I64</span><span class=cF0> i, n1, x, y, scroll_y = MAP_HEIGHT - </span><span class=cFE>100</span><span class=cF0> - </span><span class=cFE>100</span><span class=cF0> * (</span><span class=cF5>tS</span><span class=cF0> - t0);
<a name="l544"></a> Unit *tmpu;
<a name="l545"></a> Bullet *tmpb;
<a name="l546"></a> </span><span class=cF9>CDC</span><span class=cF0> *dc2 = </span><span class=cF5>DCNew</span><span class=cF0>(</span><span class=cF3>GR_WIDTH</span><span class=cF0>, </span><span class=cF3>GR_HEIGHT</span><span class=cF0>);
<a name="l547"></a>
<a name="l548"></a> dc2-&gt;color = </span><span class=cF3>LTRED</span><span class=cF0>;
<a name="l549"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpb = b; i &lt; B_NUM; i++, tmpb++)
<a name="l550"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb-&gt;dead &amp;&amp; !tmpb-&gt;missile) </span><span class=cF2>//Bullets not missiles</span><span class=cF0>
<a name="l551"></a> </span><span class=cF5>GrLine</span><span class=cF0>(dc2, tmpb-&gt;x &gt;&gt; </span><span class=cFE>32</span><span class=cF0>, tmpb-&gt;y &gt;&gt; </span><span class=cFE>32</span><span class=cF0>,
<a name="l552"></a> </span><span class=cF7>(</span><span class=cF0>tmpb-&gt;x + tmpb-&gt;dx * B_LEN</span><span class=cF7>)</span><span class=cF0> &gt;&gt; </span><span class=cFE>32</span><span class=cF0>,
<a name="l553"></a> </span><span class=cF7>(</span><span class=cF0>tmpb-&gt;y + tmpb-&gt;dy * B_LEN</span><span class=cF7>)</span><span class=cF0> &gt;&gt; </span><span class=cFE>32</span><span class=cF0>);
<a name="l554"></a>
<a name="l555"></a> dc2-&gt;color = </span><span class=cF3>ROP_COLLISION</span><span class=cF0>;
<a name="l556"></a> dc2-&gt;bkcolor = </span><span class=cF3>BLACK</span><span class=cF0>;
<a name="l557"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpu = u; i &lt; U_NUM; i++, tmpu++)
<a name="l558"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l559"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpu-&gt;dead)
<a name="l560"></a> {
<a name="l561"></a> x = tmpu-&gt;x;
<a name="l562"></a> y = (tmpu-&gt;y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>);
<a name="l563"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>0</span><span class=cF0> &lt;= x &lt; </span><span class=cF3>GR_WIDTH</span><span class=cF0> &amp;&amp; </span><span class=cFE>0</span><span class=cF0> &lt;= y &lt; </span><span class=cF3>GR_HEIGHT</span><span class=cF0>)
<a name="l564"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l565"></a> dc2-&gt;collision_count = </span><span class=cFE>0</span><span class=cF0>;
<a name="l566"></a> </span><span class=cF5>GrRect</span><span class=cF0>(dc2, x - </span><span class=cFE>3</span><span class=cF0>, y - </span><span class=cFE>9</span><span class=cF0>, </span><span class=cFE>6</span><span class=cF0>, </span><span class=cFE>8</span><span class=cF0>);
<a name="l567"></a> </span><span class=cF1>if</span><span class=cF0> (dc2-&gt;collision_count)
<a name="l568"></a> ManDie(tmpu, </span><span class=cF3>TRUE</span><span class=cF0>);
<a name="l569"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l570"></a> }
<a name="l571"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l572"></a> </span><span class=cF5>DCDel</span><span class=cF0>(dc2);
<a name="l573"></a>
<a name="l574"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpb = b; i &lt; B_NUM; i++, tmpb++)
<a name="l575"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb-&gt;dead &amp;&amp; tmpb-&gt;missile)
<a name="l576"></a> </span><span class=cF7>{</span><span class=cF0> </span><span class=cF2>//Missiles not bullets</span><span class=cF0>
<a name="l577"></a> x = tmpb-&gt;x &gt;&gt; </span><span class=cFE>32</span><span class=cF0>;
<a name="l578"></a> y = tmpb-&gt;y &gt;&gt; </span><span class=cFE>32</span><span class=cF0>;
<a name="l579"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpu = u; i &lt; U_NUM; i++, tmpu++)
<a name="l580"></a> {
<a name="l581"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu-&gt;tank)
<a name="l582"></a> n1 = </span><span class=cFE>16</span><span class=cF0>;
<a name="l583"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l584"></a> n1 = </span><span class=cFE>6</span><span class=cF0>;
<a name="l585"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpu-&gt;dead &amp;&amp;
<a name="l586"></a> </span><span class=cF5>AbsI64</span><span class=cF7>(</span><span class=cF0>x - tmpu-&gt;x - n1</span><span class=cF7>)</span><span class=cF0> + </span><span class=cF5>AbsI64</span><span class=cF7>(</span><span class=cF0>y - (tmpu-&gt;y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>) + n1</span><span class=cF7>)</span><span class=cF0> &lt; n1 &lt;&lt; </span><span class=cFE>1</span><span class=cF0>)
<a name="l587"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l588"></a> tmpb-&gt;dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l589"></a> ExplosionDo(x, y, scroll_y);
<a name="l590"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l591"></a> }
<a name="l592"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb-&gt;dead)
<a name="l593"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; LS_APTS_NUM; i++)
<a name="l594"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cFE>2</span><span class=cF0> * </span><span class=cF5>SqrI64</span><span class=cF7>(</span><span class=cF0>x - ls[i].x</span><span class=cF7>)</span><span class=cF0> + </span><span class=cFE>3</span><span class=cF0> * </span><span class=cF5>SqrI64</span><span class=cF7>(</span><span class=cF0>y + </span><span class=cFE>35</span><span class=cF0> - (ls[i].y - scroll_y) &amp; (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>)</span><span class=cF7>)</span><span class=cF0> &lt; </span><span class=cFE>2</span><span class=cF0> * </span><span class=cFE>60</span><span class=cF0> * </span><span class=cFE>60</span><span class=cF0>)
<a name="l595"></a> {
<a name="l596"></a> tmpb-&gt;dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l597"></a> ExplosionDo(x, y, scroll_y);
<a name="l598"></a> }
<a name="l599"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l600"></a>}
<a name="l601"></a>
<a name="l602"></a></span><span class=cF1>U0</span><span class=cF0> Init()
<a name="l603"></a>{
<a name="l604"></a> </span><span class=cF9>I64</span><span class=cF0> i, xx, yy, scroll_y = MAP_HEIGHT - </span><span class=cFE>100</span><span class=cF0>;
<a name="l605"></a> Unit *tmpu;
<a name="l606"></a>
<a name="l607"></a> sound_timeout = </span><span class=cFE>0</span><span class=cF0>;
<a name="l608"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l609"></a>
<a name="l610"></a> total_score = </span><span class=cFE>0</span><span class=cF0>;
<a name="l611"></a> game_over = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l612"></a> main_loop_pass = </span><span class=cFE>0</span><span class=cF0>;
<a name="l613"></a>
<a name="l614"></a> x = </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width &gt;&gt; </span><span class=cFE>1</span><span class=cF0>;
<a name="l615"></a> y = </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>9</span><span class=cF0> * </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_height;
<a name="l616"></a> finish_line = scroll_y + y;
<a name="l617"></a> dx = </span><span class=cFE>0</span><span class=cF0>;
<a name="l618"></a> dy = </span><span class=cFE>0</span><span class=cF0>;
<a name="l619"></a> theta = -</span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>;
<a name="l620"></a>
<a name="l621"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; LS_NUM; i++)
<a name="l622"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l623"></a> ls[i].x = (</span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width - </span><span class=cFE>100</span><span class=cF0>) * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>U32_MAX</span><span class=cF0> + </span><span class=cFE>50</span><span class=cF0>;
<a name="l624"></a> ls[i].y = (MAP_HEIGHT - </span><span class=cFE>100</span><span class=cF0>) * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>U32_MAX</span><span class=cF0> + </span><span class=cFE>50</span><span class=cF0>;
<a name="l625"></a> ls[i].img = landscape_imgs[</span><span class=cF5>RandU16</span><span class=cF0> % (LS_TYPES - </span><span class=cFE>2</span><span class=cF0>)];
<a name="l626"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l627"></a>
<a name="l628"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; LS_APTS_NUM; i++)
<a name="l629"></a> ls[i].img = landscape_imgs[LS_TYPES - </span><span class=cFE>1</span><span class=cF0>]; </span><span class=cF2>//Apartment</span><span class=cF0>
<a name="l630"></a>
<a name="l631"></a> </span><span class=cF1>for</span><span class=cF0> (; i &lt; LS_APTS_NUM + LS_MOUNTAINS_NUM; i++)
<a name="l632"></a> ls[i].img = landscape_imgs[LS_TYPES - </span><span class=cFE>2</span><span class=cF0>]; </span><span class=cF2>//mountain</span><span class=cF0>
<a name="l633"></a>
<a name="l634"></a> </span><span class=cF5>MemSet</span><span class=cF0>(u, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cF1>sizeof</span><span class=cF7>(</span><span class=cF0>u</span><span class=cF7>)</span><span class=cF0>);
<a name="l635"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>, tmpu = u; i &lt; U_NUM; i++, tmpu++)
<a name="l636"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l637"></a> </span><span class=cF1>if</span><span class=cF0> (i &lt; U_FRIENDLY_NUM)
<a name="l638"></a> {
<a name="l639"></a> tmpu-&gt;friendly = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l640"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF0>i &amp; </span><span class=cFE>7</span><span class=cF7>)</span><span class=cF0>)
<a name="l641"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l642"></a> xx = (</span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width - </span><span class=cFE>200</span><span class=cF0>) * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>U32_MAX</span><span class=cF0>;
<a name="l643"></a> yy = (MAP_HEIGHT - </span><span class=cFE>200</span><span class=cF0>) * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>U32_MAX</span><span class=cF0>;
<a name="l644"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l645"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF0>i &amp; </span><span class=cFE>63</span><span class=cF7>)</span><span class=cF0>)
<a name="l646"></a> tmpu-&gt;CIA = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l647"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l648"></a> tmpu-&gt;CIA = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l649"></a> }
<a name="l650"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l651"></a> {
<a name="l652"></a> tmpu-&gt;friendly = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l653"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF0>i &amp; </span><span class=cFE>31</span><span class=cF7>)</span><span class=cF0>)
<a name="l654"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l655"></a> xx = (</span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width - </span><span class=cFE>200</span><span class=cF0>) * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>U32_MAX</span><span class=cF0>;
<a name="l656"></a> yy = (MAP_HEIGHT - </span><span class=cFE>200</span><span class=cF0>) * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>U32_MAX</span><span class=cF0>;
<a name="l657"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l658"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF7>(</span><span class=cF0>i &amp; </span><span class=cFE>15</span><span class=cF7>)</span><span class=cF0>)
<a name="l659"></a> tmpu-&gt;tank = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l660"></a> }
<a name="l661"></a> tmpu-&gt;dead = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l662"></a> tmpu-&gt;x = xx + </span><span class=cFE>64</span><span class=cF0> * </span><span class=cF5>RandI32</span><span class=cF0> / </span><span class=cF3>I32_MAX</span><span class=cF0> + </span><span class=cFE>100</span><span class=cF0>;
<a name="l663"></a> tmpu-&gt;y = yy + </span><span class=cFE>64</span><span class=cF0> * </span><span class=cF5>RandU32</span><span class=cF0> / </span><span class=cF3>I32_MAX</span><span class=cF0> - </span><span class=cFE>64</span><span class=cF0> + </span><span class=cFE>100</span><span class=cF0>;
<a name="l664"></a> tmpu-&gt;best_dd = </span><span class=cF3>I64_MAX</span><span class=cF0>;
<a name="l665"></a> tmpu-&gt;theta = </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>;
<a name="l666"></a> tmpu-&gt;phase = </span><span class=cFE>2</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> * </span><span class=cF5>Rand</span><span class=cF0>;
<a name="l667"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l668"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; B_NUM; i++)
<a name="l669"></a> b[i].dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l670"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; E_NUM; i++)
<a name="l671"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l672"></a> e[i].dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l673"></a> e[i].num = i;
<a name="l674"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l675"></a> friendly_left = U_FRIENDLY_NUM;
<a name="l676"></a> enemy_left = U_ENEMY_NUM;
<a name="l677"></a> enemy_by_friendly = </span><span class=cFE>0</span><span class=cF0>;
<a name="l678"></a> bullets_fired =</span><span class=cFE>0</span><span class=cF0>;
<a name="l679"></a> missile_bmp = </span><span class=cFE>15</span><span class=cF0>;
<a name="l680"></a> friendly_fire = </span><span class=cFE>0</span><span class=cF0>;
<a name="l681"></a> t0 = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l682"></a> tf = </span><span class=cFE>0</span><span class=cF0>;
<a name="l683"></a>}
<a name="l684"></a>
<a name="l685"></a></span><span class=cF1>U0</span><span class=cF0> FireBullet()
<a name="l686"></a>{
<a name="l687"></a> </span><span class=cF9>I64</span><span class=cF0> i, j;
<a name="l688"></a> </span><span class=cF1>F64</span><span class=cF0> a;
<a name="l689"></a> Bullet *tmpb;
<a name="l690"></a>
<a name="l691"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; B_NUM - </span><span class=cFE>1</span><span class=cF0>; i++)
<a name="l692"></a> </span><span class=cF1>if</span><span class=cF0> (b[i].dead)
<a name="l693"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l694"></a> tmpb = &amp;b[i];
<a name="l695"></a>
<a name="l696"></a> j = x + </span><span class=cFE>28</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Cos</span><span class=cF0>(theta);
<a name="l697"></a> tmpb-&gt;x = j &lt;&lt; </span><span class=cFE>32</span><span class=cF0>;
<a name="l698"></a> j = y + </span><span class=cFE>28</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF5>Sin</span><span class=cF0>(theta);
<a name="l699"></a> tmpb-&gt;y = j &lt;&lt; </span><span class=cFE>32</span><span class=cF0>;
<a name="l700"></a>
<a name="l701"></a> tmpb-&gt;dx2 = (B_SPEED * </span><span class=cF5>Cos</span><span class=cF7>(</span><span class=cF0>theta</span><span class=cF7>)</span><span class=cF0> + dx) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l702"></a> tmpb-&gt;dy2 = B_SPEED * </span><span class=cF5>Sin</span><span class=cF0>(theta) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l703"></a> a = </span><span class=cF5>Arg</span><span class=cF0>(tmpb-&gt;dx2, tmpb-&gt;dy2);
<a name="l704"></a> tmpb-&gt;dx = </span><span class=cF5>Sin</span><span class=cF0>(a) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l705"></a> tmpb-&gt;dy = </span><span class=cF5>Cos</span><span class=cF0>(a) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l706"></a> bullets_fired++;
<a name="l707"></a> tmpb-&gt;dead = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l708"></a> tmpb-&gt;missile = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l709"></a> </span><span class=cF1>if</span><span class=cF0> (!sound_timeout)
<a name="l710"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l711"></a> sound_timeout = </span><span class=cF5>tS</span><span class=cF0> + </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>0005</span><span class=cF0>;
<a name="l712"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>74</span><span class=cF0>);
<a name="l713"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l714"></a>}
<a name="l715"></a>
<a name="l716"></a></span><span class=cF1>Bool</span><span class=cF0> FireMissile(</span><span class=cF9>I64</span><span class=cF0> n)
<a name="l717"></a>{
<a name="l718"></a> </span><span class=cF9>I64</span><span class=cF0> i, m;
<a name="l719"></a> </span><span class=cF1>F64</span><span class=cF0> a;
<a name="l720"></a> Bullet *tmpb;
<a name="l721"></a> </span><span class=cF1>Bool</span><span class=cF0> res = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l722"></a>
<a name="l723"></a> m = n;
<a name="l724"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Btr</span><span class=cF7>(</span><span class=cF0>&amp;missile_bmp, ++m</span><span class=cF7>)</span><span class=cF0> || </span><span class=cF5>Btr</span><span class=cF7>(</span><span class=cF0>&amp;missile_bmp, ++m</span><span class=cF7>)</span><span class=cF0>)
<a name="l725"></a> res = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l726"></a>
<a name="l727"></a> </span><span class=cF1>if</span><span class=cF0> (res)
<a name="l728"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l729"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; B_NUM - </span><span class=cFE>1</span><span class=cF0>; i++)
<a name="l730"></a> </span><span class=cF1>if</span><span class=cF0> (b[i].dead)
<a name="l731"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l732"></a> tmpb = &amp;b[i];
<a name="l733"></a>
<a name="l734"></a> MissilePos(m, theta, &amp;tmpb-&gt;x, &amp;tmpb-&gt;y);
<a name="l735"></a> tmpb-&gt;x &lt;&lt;= </span><span class=cFE>32</span><span class=cF0>;
<a name="l736"></a> tmpb-&gt;y &lt;&lt;= </span><span class=cFE>32</span><span class=cF0>;
<a name="l737"></a>
<a name="l738"></a> tmpb-&gt;dx2 = (B_SPEED * </span><span class=cF5>Cos</span><span class=cF7>(</span><span class=cF0>theta</span><span class=cF7>)</span><span class=cF0> + dx) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l739"></a> tmpb-&gt;dy2 = B_SPEED * </span><span class=cF5>Sin</span><span class=cF0>(theta) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l740"></a> a=</span><span class=cF5>Arg</span><span class=cF0>(tmpb-&gt;dx2, tmpb-&gt;dy2);
<a name="l741"></a> tmpb-&gt;dx = </span><span class=cF5>Sin</span><span class=cF0>(a) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l742"></a> tmpb-&gt;dy = </span><span class=cF5>Cos</span><span class=cF0>(a) * </span><span class=cFE>0x100000000</span><span class=cF0>;
<a name="l743"></a> tmpb-&gt;dead = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l744"></a> tmpb-&gt;missile = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l745"></a> </span><span class=cF1>if</span><span class=cF0> (!sound_timeout)
<a name="l746"></a> {
<a name="l747"></a> sound_timeout = </span><span class=cF5>tS</span><span class=cF0> + </span><span class=cFE>0</span><span class=cF0>.</span><span class=cFE>0005</span><span class=cF0>;
<a name="l748"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>74</span><span class=cF0>);
<a name="l749"></a> }
<a name="l750"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l751"></a>}
<a name="l752"></a>
<a name="l753"></a></span><span class=cF1>U0</span><span class=cF0> MenMove(</span><span class=cF9>I64</span><span class=cF0> phase_group)
<a name="l754"></a>{
<a name="l755"></a> </span><span class=cF9>I64</span><span class=cF0> i, j, dd, best, best_dd;
<a name="l756"></a>
<a name="l757"></a> </span><span class=cF1>for</span><span class=cF0> (i = phase_group; i &lt; U_FRIENDLY_NUM; i += PHASES_GROUPS)
<a name="l758"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l759"></a> </span><span class=cF1>if</span><span class=cF0> (!u[i].dead)
<a name="l760"></a> {
<a name="l761"></a> best = U_FRIENDLY_NUM;
<a name="l762"></a> best_dd = </span><span class=cF3>I64_MAX</span><span class=cF0>;
<a name="l763"></a> </span><span class=cF1>for</span><span class=cF0> (j = U_FRIENDLY_NUM; j &lt; U_NUM; j++)
<a name="l764"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l765"></a> </span><span class=cF1>if</span><span class=cF0> (!u[j].dead)
<a name="l766"></a> {
<a name="l767"></a> dd = </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].x - u[j].x) + </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].y - u[j].y);
<a name="l768"></a> </span><span class=cF1>if</span><span class=cF0> (dd &lt; best_dd)
<a name="l769"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l770"></a> best_dd = dd;
<a name="l771"></a> best = j;
<a name="l772"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l773"></a> }
<a name="l774"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l775"></a> u[i].best_dd = best_dd;
<a name="l776"></a> </span><span class=cF1>if</span><span class=cF0> (best_dd != </span><span class=cF3>I64_MAX</span><span class=cF0>)
<a name="l777"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l778"></a> u[i].x += </span><span class=cFE>4</span><span class=cF0> * </span><span class=cF5>SignI64</span><span class=cF0>(u[best].x - u[i].x);
<a name="l779"></a> u[i].y += </span><span class=cFE>4</span><span class=cF0> * </span><span class=cF5>SignI64</span><span class=cF0>(u[best].y - u[i].y);
<a name="l780"></a> u[i].theta = </span><span class=cF5>Arg</span><span class=cF0>(u[best].x - u[i].x, u[best].y - u[i].y);
<a name="l781"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l782"></a> }
<a name="l783"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l784"></a> </span><span class=cF1>for</span><span class=cF0> (i = U_FRIENDLY_NUM + phase_group; i &lt; U_NUM; i += PHASES_GROUPS)
<a name="l785"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l786"></a> </span><span class=cF1>if</span><span class=cF0> (!u[i].dead)
<a name="l787"></a> {
<a name="l788"></a> best = </span><span class=cFE>0</span><span class=cF0>;
<a name="l789"></a> best_dd = </span><span class=cF3>I64_MAX</span><span class=cF0>;
<a name="l790"></a> </span><span class=cF1>for</span><span class=cF0> (j = </span><span class=cFE>0</span><span class=cF0>; j &lt; U_FRIENDLY_NUM; j++)
<a name="l791"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l792"></a> </span><span class=cF1>if</span><span class=cF0> (!u[j].dead)
<a name="l793"></a> {
<a name="l794"></a> dd = </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].x - u[j].x) + </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].y - u[j].y);
<a name="l795"></a> </span><span class=cF1>if</span><span class=cF0> (dd &lt; best_dd)
<a name="l796"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l797"></a> best_dd = dd;
<a name="l798"></a> best = j;
<a name="l799"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l800"></a> }
<a name="l801"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l802"></a> u[i].best_dd = best_dd;
<a name="l803"></a> </span><span class=cF1>if</span><span class=cF0> (best_dd != </span><span class=cF3>I64_MAX</span><span class=cF0>)
<a name="l804"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l805"></a> u[i].x += </span><span class=cFE>4</span><span class=cF0> * </span><span class=cF5>SignI64</span><span class=cF0>(u[best].x - u[i].x);
<a name="l806"></a> u[i].y += </span><span class=cFE>4</span><span class=cF0> * </span><span class=cF5>SignI64</span><span class=cF0>(u[best].y - u[i].y);
<a name="l807"></a> u[i].theta = </span><span class=cF5>Arg</span><span class=cF0>(u[best].x - u[i].x, u[best].y - u[i].y);
<a name="l808"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l809"></a> }
<a name="l810"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l811"></a>}
<a name="l812"></a>
<a name="l813"></a></span><span class=cF1>U0</span><span class=cF0> MenFight(</span><span class=cF9>I64</span><span class=cF0> phase_group)
<a name="l814"></a>{
<a name="l815"></a> </span><span class=cF9>I64</span><span class=cF0> i, j, dd, best, best_dd;
<a name="l816"></a>
<a name="l817"></a> </span><span class=cF1>for</span><span class=cF0> (i = phase_group; i &lt; U_FRIENDLY_NUM; i += PHASES_GROUPS)
<a name="l818"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l819"></a> </span><span class=cF1>if</span><span class=cF0> (!u[i].dead)
<a name="l820"></a> {
<a name="l821"></a> best = U_FRIENDLY_NUM;
<a name="l822"></a> best_dd = </span><span class=cF3>I64_MAX</span><span class=cF0>;
<a name="l823"></a> </span><span class=cF1>for</span><span class=cF0> (j = U_FRIENDLY_NUM; j &lt; U_NUM; j++)
<a name="l824"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l825"></a> </span><span class=cF1>if</span><span class=cF0> (!u[j].dead &amp;&amp; u[i].y - u[j].y &lt; </span><span class=cFE>8</span><span class=cF0>)
<a name="l826"></a> {
<a name="l827"></a> dd = </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].x - u[j].x) + </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].y - u[j].y);
<a name="l828"></a> </span><span class=cF1>if</span><span class=cF0> (dd &lt; best_dd)
<a name="l829"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l830"></a> best_dd = dd;
<a name="l831"></a> best = j;
<a name="l832"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l833"></a> }
<a name="l834"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l835"></a> u[i].best_dd = best_dd;
<a name="l836"></a> </span><span class=cF1>if</span><span class=cF0> (best_dd &lt; HACK_DIST * HACK_DIST &amp;&amp; !</span><span class=cF7>(</span><span class=cF5>RandU16</span><span class=cF0> &amp; </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0>)
<a name="l837"></a> ManDie(&amp;u[best], </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l838"></a> }
<a name="l839"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l840"></a> </span><span class=cF1>for</span><span class=cF0> (i = U_FRIENDLY_NUM + phase_group; i &lt; U_NUM; i += PHASES_GROUPS)
<a name="l841"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l842"></a> </span><span class=cF1>if</span><span class=cF0> (!u[i].dead)
<a name="l843"></a> {
<a name="l844"></a> best = </span><span class=cFE>0</span><span class=cF0>;
<a name="l845"></a> best_dd = </span><span class=cF3>I64_MAX</span><span class=cF0>;
<a name="l846"></a> </span><span class=cF1>for</span><span class=cF0> (j = </span><span class=cFE>0</span><span class=cF0>; j &lt; U_FRIENDLY_NUM; j++)
<a name="l847"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l848"></a> </span><span class=cF1>if</span><span class=cF0> (!u[j].dead&amp;&amp; u[i].y - u[j].y &lt; </span><span class=cFE>8</span><span class=cF0>)
<a name="l849"></a> {
<a name="l850"></a> dd = </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].x - u[j].x) + </span><span class=cF5>SqrI64</span><span class=cF0>(u[i].y - u[j].y);
<a name="l851"></a> </span><span class=cF1>if</span><span class=cF0> (dd &lt; best_dd)
<a name="l852"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l853"></a> best_dd = dd;
<a name="l854"></a> best = j;
<a name="l855"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l856"></a> }
<a name="l857"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l858"></a> u[i].best_dd = best_dd;
<a name="l859"></a> </span><span class=cF1>if</span><span class=cF0> (best_dd &lt; HACK_DIST * HACK_DIST &amp;&amp; !</span><span class=cF7>(</span><span class=cF5>RandU16</span><span class=cF0> &amp; </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0>)
<a name="l860"></a> ManDie(&amp;u[best], </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l861"></a> }
<a name="l862"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l863"></a>}
<a name="l864"></a>
<a name="l865"></a></span><span class=cF1>U0</span><span class=cF0> Titanium()
<a name="l866"></a>{
<a name="l867"></a> </span><span class=cF9>I64</span><span class=cF0> i, message_code, ch, sc;
<a name="l868"></a> </span><span class=cF1>Bool</span><span class=cF0> gun_on;
<a name="l869"></a>
<a name="l870"></a> </span><span class=cF9>I64</span><span class=cF0> next_update_jiffy;
<a name="l871"></a> </span><span class=cF5>SettingsPush</span><span class=cF0>; </span><span class=cF2>//See </span><a href="https://zeal-operating-system.github.io/ZealOS/System/TaskSettings.CC.html#l3"><span class=cF4>SettingsPush</span></a><span class=cF0>
<a name="l872"></a>
<a name="l873"></a> </span><span class=cF5>MenuPush</span><span class=cF0>( </span><span class=cF6>&quot;File {&quot;</span><span class=cF0>
<a name="l874"></a> </span><span class=cF6>&quot; Abort(,CH_SHIFT_ESC);&quot;</span><span class=cF0>
<a name="l875"></a> </span><span class=cF6>&quot; Exit(,CH_ESC);&quot;</span><span class=cF0>
<a name="l876"></a> </span><span class=cF6>&quot;}&quot;</span><span class=cF0>
<a name="l877"></a> </span><span class=cF6>&quot;Play {&quot;</span><span class=cF0>
<a name="l878"></a> </span><span class=cF6>&quot; Restart(,'\n');&quot;</span><span class=cF0>
<a name="l879"></a> </span><span class=cF6>&quot; Fire(,CH_SPACE);&quot;</span><span class=cF0>
<a name="l880"></a> </span><span class=cF6>&quot; Left(,,SC_CURSOR_LEFT);&quot;</span><span class=cF0>
<a name="l881"></a> </span><span class=cF6>&quot; Right(,,SC_CURSOR_RIGHT);&quot;</span><span class=cF0>
<a name="l882"></a> </span><span class=cF6>&quot; LeftMissile(,,SC_CURSOR_LEFT|SCF_CTRL);&quot;</span><span class=cF0>
<a name="l883"></a> </span><span class=cF6>&quot; RightMissile(,,SC_CURSOR_RIGHT|SCF_CTRL);&quot;</span><span class=cF0>
<a name="l884"></a> </span><span class=cF6>&quot;}&quot;</span><span class=cF0>
<a name="l885"></a> );
<a name="l886"></a> </span><span class=cF5>AutoComplete</span><span class=cF0>;
<a name="l887"></a> </span><span class=cF5>WinBorder</span><span class=cF0>;
<a name="l888"></a> </span><span class=cF5>WinMax</span><span class=cF0>;
<a name="l889"></a> </span><span class=cF5>DocCursor</span><span class=cF0>;
<a name="l890"></a> </span><span class=cF5>DocClear</span><span class=cF0>;
<a name="l891"></a>
<a name="l892"></a> </span><span class=cF6>&quot;\nScoring:\n&quot;</span><span class=cF0>
<a name="l893"></a> </span><span class=cF6>&quot;\tEnemy Killed\t\t+3\n&quot;</span><span class=cF0>
<a name="l894"></a> </span><span class=cF6>&quot;\tEnemy by Friendly\t+5\n&quot;</span><span class=cF0>
<a name="l895"></a> </span><span class=cF6>&quot;\tFriendly Fire\t\t-100\n&quot;</span><span class=cF0>
<a name="l896"></a> </span><span class=cF6>&quot;\tBullets Fired\t\t-1\n&quot;</span><span class=cF0>
<a name="l897"></a> </span><span class=cF6>&quot;\tGame Time\t\t-10 per second\n&quot;</span><span class=cF0>
<a name="l898"></a> </span><span class=cF6>&quot;\tSurviving Friendlies\t+250\n\n&quot;</span><span class=cF0>
<a name="l899"></a> </span><span class=cF6>&quot;Sweep side-to-side while shooting, &quot;</span><span class=cF0>
<a name="l900"></a> </span><span class=cF6>&quot;holding down $GREEN$&lt;SPACE&gt;$FG$.\n\n&quot;</span><span class=cF0>;
<a name="l901"></a> </span><span class=cF5>PressAKey</span><span class=cF0>;
<a name="l902"></a>
<a name="l903"></a> Init;
<a name="l904"></a> </span><span class=cF5>DocClear</span><span class=cF0>;
<a name="l905"></a> </span><span class=cF5>Fs</span><span class=cF0>-&gt;draw_it = &amp;</span><span class=cF5>DrawIt</span><span class=cF0>;
<a name="l906"></a>
<a name="l907"></a> gun_on = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l908"></a>
<a name="l909"></a> </span><span class=cF1>try</span><span class=cF0>
<a name="l910"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l911"></a> </span><span class=cF1>while</span><span class=cF0> (</span><span class=cF3>TRUE</span><span class=cF0>)
<a name="l912"></a> {
<a name="l913"></a> next_update_jiffy = </span><span class=cFB>counts</span><span class=cF0>.jiffies + </span><span class=cF3>JIFFY_FREQ</span><span class=cF0> / </span><span class=cFE>100</span><span class=cF0>;
<a name="l914"></a> </span><span class=cF1>while</span><span class=cF0> (message_code = </span><span class=cF5>MessageScan</span><span class=cF7>(</span><span class=cF0>&amp;ch, &amp;sc, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>MESSAGE_KEY_DOWN</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>MESSAGE_KEY_UP</span><span class=cF7>)</span><span class=cF0>)
<a name="l915"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l916"></a> </span><span class=cF1>switch</span><span class=cF0> (message_code)
<a name="l917"></a> {
<a name="l918"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MESSAGE_KEY_DOWN</span><span class=cF0>:
<a name="l919"></a> </span><span class=cF1>switch</span><span class=cF0> (ch)
<a name="l920"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l921"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>:
<a name="l922"></a> </span><span class=cF1>switch</span><span class=cF0> (sc.u8[</span><span class=cFE>0</span><span class=cF0>])
<a name="l923"></a> {
<a name="l924"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SC_CURSOR_RIGHT</span><span class=cF0>:
<a name="l925"></a> </span><span class=cF1>if</span><span class=cF0> (sc &amp; </span><span class=cF3>SCF_CTRL</span><span class=cF0>)
<a name="l926"></a> FireMissile(</span><span class=cFE>1</span><span class=cF0>);
<a name="l927"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l928"></a>
<a name="l929"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>SC_CURSOR_LEFT</span><span class=cF0>:
<a name="l930"></a> </span><span class=cF1>if</span><span class=cF0> (sc &amp; </span><span class=cF3>SCF_CTRL</span><span class=cF0>)
<a name="l931"></a> FireMissile(-</span><span class=cFE>1</span><span class=cF0>);
<a name="l932"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l933"></a> }
<a name="l934"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l935"></a>
<a name="l936"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>CH_SHIFT_ESC</span><span class=cF0>:
<a name="l937"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>CH_ESC</span><span class=cF0>:
<a name="l938"></a> </span><span class=cF1>goto</span><span class=cF0> to_done;
<a name="l939"></a>
<a name="l940"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF6>'\n'</span><span class=cF0>:
<a name="l941"></a> Init;
<a name="l942"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l943"></a>
<a name="l944"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>CH_SPACE</span><span class=cF0>:
<a name="l945"></a> gun_on = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l946"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l947"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l948"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l949"></a>
<a name="l950"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cF3>MESSAGE_KEY_UP</span><span class=cF0>:
<a name="l951"></a> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF3>CH_SPACE</span><span class=cF0>)
<a name="l952"></a> gun_on = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l953"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (sc.u8[</span><span class=cFE>0</span><span class=cF0>] == </span><span class=cF3>SC_CURSOR_RIGHT</span><span class=cF0> || sc.u8[</span><span class=cFE>0</span><span class=cF0>] == </span><span class=cF3>SC_CURSOR_LEFT</span><span class=cF0>)
<a name="l954"></a> theta = -</span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>;
<a name="l955"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l956"></a> }
<a name="l957"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l958"></a>
<a name="l959"></a> </span><span class=cF1>for</span><span class=cF0> (i = </span><span class=cFE>0</span><span class=cF0>; i &lt; B_NUM; i++)
<a name="l960"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l961"></a> </span><span class=cF1>if</span><span class=cF0> (!b[i].dead)
<a name="l962"></a> {
<a name="l963"></a> b[i].x += b[i].dx2;
<a name="l964"></a> b[i].y += b[i].dy2;
<a name="l965"></a> </span><span class=cF1>if</span><span class=cF0> (b[i].y &lt; </span><span class=cFE>0</span><span class=cF0> || b[i].x &lt; </span><span class=cFE>0</span><span class=cF0> || b[i].x &gt;&gt; </span><span class=cFE>32</span><span class=cF0> &gt;= </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width || b[i].y &gt;&gt; </span><span class=cFE>32</span><span class=cF0> &gt;= </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_height)
<a name="l966"></a> b[i].dead = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l967"></a> }
<a name="l968"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l969"></a>
<a name="l970"></a> dx = </span><span class=cFE>0</span><span class=cF0>;
<a name="l971"></a> </span><span class=cF1>if</span><span class=cF0> (!</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>kbd</span><span class=cF0>.down_bitmap, </span><span class=cF3>SC_CTRL</span><span class=cF7>)</span><span class=cF0>)
<a name="l972"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l973"></a> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>kbd</span><span class=cF0>.down_bitmap, </span><span class=cF3>SC_CURSOR_LEFT</span><span class=cF7>)</span><span class=cF0>)
<a name="l974"></a> {
<a name="l975"></a> theta = -</span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0> - </span><span class=cFE>15</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>180</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
<a name="l976"></a> dx = -</span><span class=cFE>2</span><span class=cF0>;
<a name="l977"></a> }
<a name="l978"></a> </span><span class=cF1>else</span><span class=cF0> </span><span class=cF1>if</span><span class=cF0> (</span><span class=cF5>Bt</span><span class=cF7>(</span><span class=cFB>kbd</span><span class=cF0>.down_bitmap, </span><span class=cF3>SC_CURSOR_RIGHT</span><span class=cF7>)</span><span class=cF0>)
<a name="l979"></a> {
<a name="l980"></a> theta = -</span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0> + </span><span class=cFE>15</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0> * </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>180</span><span class=cF0>.</span><span class=cFE>0</span><span class=cF0>;
<a name="l981"></a> dx = </span><span class=cFE>2</span><span class=cF0>;
<a name="l982"></a> }
<a name="l983"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l984"></a> x += dx;
<a name="l985"></a> </span><span class=cF1>while</span><span class=cF0> (x &gt;= </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width)
<a name="l986"></a> x -= </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width;
<a name="l987"></a> </span><span class=cF1>while</span><span class=cF0> (x &lt; </span><span class=cFE>0</span><span class=cF0>)
<a name="l988"></a> x += </span><span class=cF5>Fs</span><span class=cF0>-&gt;pix_width;
<a name="l989"></a>
<a name="l990"></a> </span><span class=cF2>//It takes too much CPU do do all these all the time.</span><span class=cF0>
<a name="l991"></a> </span><span class=cF1>switch</span><span class=cF0> [main_loop_pass &amp; </span><span class=cFE>7</span><span class=cF0>]
<a name="l992"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l993"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>:
<a name="l994"></a> </span><span class=cF1>switch</span><span class=cF0> [main_loop_pass &gt;&gt; </span><span class=cFE>3</span><span class=cF0> &amp; </span><span class=cFE>7</span><span class=cF0>]
<a name="l995"></a> {
<a name="l996"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>0</span><span class=cF0>:
<a name="l997"></a> </span><span class=cF1>if</span><span class=cF0> (--y &lt; </span><span class=cFE>20</span><span class=cF0>)
<a name="l998"></a> game_over = </span><span class=cF3>TRUE</span><span class=cF0>;
<a name="l999"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>:
<a name="l1000"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>4</span><span class=cF0>:
<a name="l1001"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>6</span><span class=cF0>:
<a name="l1002"></a> MenFight(main_loop_pass &gt;&gt; </span><span class=cFE>4</span><span class=cF0> % PHASES_GROUPS);
<a name="l1003"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l1004"></a>
<a name="l1005"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>1</span><span class=cF0>:
<a name="l1006"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>3</span><span class=cF0>:
<a name="l1007"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>:
<a name="l1008"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>7</span><span class=cF0>:
<a name="l1009"></a> MenMove (main_loop_pass &gt;&gt; </span><span class=cFE>4</span><span class=cF0> % PHASES_GROUPS);
<a name="l1010"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l1011"></a> }
<a name="l1012"></a>
<a name="l1013"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>4</span><span class=cF0>:
<a name="l1014"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l1015"></a>
<a name="l1016"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>:
<a name="l1017"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>6</span><span class=cF0>:
<a name="l1018"></a> </span><span class=cF1>if</span><span class=cF0> (gun_on)
<a name="l1019"></a> FireBullet;
<a name="l1020"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l1021"></a>
<a name="l1022"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>1</span><span class=cF0>:
<a name="l1023"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>3</span><span class=cF0>:
<a name="l1024"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>5</span><span class=cF0>:
<a name="l1025"></a> </span><span class=cF1>case</span><span class=cF0> </span><span class=cFE>7</span><span class=cF0>:
<a name="l1026"></a> CheckCollisions;
<a name="l1027"></a> </span><span class=cF1>break</span><span class=cF0>;
<a name="l1028"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l1029"></a> main_loop_pass++;
<a name="l1030"></a>
<a name="l1031"></a> </span><span class=cF1>if</span><span class=cF0> (sound_timeout &amp;&amp; </span><span class=cF5>tS</span><span class=cF0> &gt; sound_timeout)
<a name="l1032"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l1033"></a> sound_timeout = </span><span class=cFE>0</span><span class=cF0>;
<a name="l1034"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l1035"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l1036"></a> </span><span class=cF5>SleepUntil</span><span class=cF0>(next_update_jiffy);
<a name="l1037"></a>
<a name="l1038"></a> total_score = </span><span class=cFE>3</span><span class=cF0> * (U_ENEMY_NUM - enemy_left) +
<a name="l1039"></a> </span><span class=cFE>5</span><span class=cF0> * enemy_by_friendly - </span><span class=cFE>100</span><span class=cF0> * friendly_fire - </span><span class=cFE>10</span><span class=cF0> * (</span><span class=cF5>tS</span><span class=cF0> - t0) - bullets_fired;
<a name="l1040"></a> </span><span class=cF1>if</span><span class=cF0> (game_over)
<a name="l1041"></a> </span><span class=cF7>{</span><span class=cF0>
<a name="l1042"></a> tf = </span><span class=cF5>tS</span><span class=cF0>;
<a name="l1043"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>750</span><span class=cF0>);
<a name="l1044"></a> </span><span class=cF5>FlushMessages</span><span class=cF0>;
<a name="l1045"></a> </span><span class=cF1>while</span><span class=cF0> (!</span><span class=cF5>KeyScan</span><span class=cF7>(</span><span class=cF0>&amp;ch</span><span class=cF7>)</span><span class=cF0> &amp;&amp; friendly_left || </span><span class=cF5>tS</span><span class=cF0> - tf &lt; </span><span class=cFE>1</span><span class=cF0>.</span><span class=cFE>5</span><span class=cF0>)
<a name="l1046"></a> {
<a name="l1047"></a> total_score += </span><span class=cFE>250</span><span class=cF0>;
<a name="l1048"></a> </span><span class=cF5>Sound</span><span class=cF0>(</span><span class=cFE>86</span><span class=cF0>);
<a name="l1049"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>150</span><span class=cF0>);
<a name="l1050"></a> </span><span class=cF5>Sound</span><span class=cF0>;
<a name="l1051"></a> </span><span class=cF5>Sleep</span><span class=cF0>(</span><span class=cFE>50</span><span class=cF0>);
<a name="l1052"></a> friendly_left--;
<a name="l1053"></a> }
<a name="l1054"></a> total_score += </span><span class=cFE>250</span><span class=cF0> * friendly_left;
<a name="l1055"></a> </span><span class=cF1>if</span><span class=cF0> (total_score &gt; best_score)
<a name="l1056"></a> best_score = total_score;
<a name="l1057"></a> </span><span class=cF1>if</span><span class=cF0> (!ch)
<a name="l1058"></a> ch = </span><span class=cF5>CharGet</span><span class=cF0>(, </span><span class=cF3>FALSE</span><span class=cF0>);
<a name="l1059"></a> </span><span class=cF1>if</span><span class=cF0> (ch == </span><span class=cF3>CH_ESC</span><span class=cF0> || ch == </span><span class=cF3>CH_SHIFT_ESC</span><span class=cF0>)
<a name="l1060"></a> </span><span class=cF1>goto</span><span class=cF0> to_done;
<a name="l1061"></a> gun_on = </span><span class=cF3>FALSE</span><span class=cF0>;
<a name="l1062"></a> Init;
<a name="l1063"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l1064"></a> }
<a name="l1065"></a>to_done:
<a name="l1066"></a> </span><span class=cF5>MessageGet</span><span class=cF0>(,, </span><span class=cFE>1</span><span class=cF0> &lt;&lt; </span><span class=cF3>MESSAGE_KEY_UP</span><span class=cF0>);
<a name="l1067"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l1068"></a> </span><span class=cF1>catch</span><span class=cF0>
<a name="l1069"></a> </span><span class=cF5>PutExcept</span><span class=cF0>;
<a name="l1070"></a> </span><span class=cF5>SettingsPop</span><span class=cF0>;
<a name="l1071"></a> </span><span class=cF5>MenuPop</span><span class=cF0>;
<a name="l1072"></a> </span><span class=cF5>RegWrite</span><span class=cF0>(</span><span class=cF6>&quot;ZealOS/Titanium&quot;</span><span class=cF0>, </span><span class=cF6>&quot;I64 best_score=%d;\n&quot;</span><span class=cF0>, best_score);
<a name="l1073"></a>}
</span></pre></body>
</html>