mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-01-01 02:06:32 +00:00
dbf8647d59
Added top & right borders to RawDr. Improved spacing in some debug and compiler reporting. Fixed RawPutChar and EdLite tab width. Fixed Ui missing '0x' prefix syntax highlighter bug. Added 32BitPaint demo.
1106 lines
105 KiB
HTML
Executable file
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.08">
|
|
<style type="text/css">
|
|
body {background-color:#000000;}
|
|
.cE0{color:#ffffff;background-color:#fce94f;}
|
|
.cE1{color:#3465a4;background-color:#fce94f;}
|
|
.cEA{color:#82bc49;background-color:#fce94f;}
|
|
.cEE{color:#fce94f;background-color:#fce94f;}
|
|
.cF0{color:#ffffff;background-color:#000000;}
|
|
.cF1{color:#3465a4;background-color:#000000;}
|
|
.cF2{color:#4e9a06;background-color:#000000;}
|
|
.cF3{color:#06989a;background-color:#000000;}
|
|
.cF4{color:#a24444;background-color:#000000;}
|
|
.cF5{color:#75507b;background-color:#000000;}
|
|
.cF6{color:#ce982f;background-color:#000000;}
|
|
.cF7{color:#bcc0b9;background-color:#000000;}
|
|
.cF8{color:#555753;background-color:#000000;}
|
|
.cF9{color:#729fcf;background-color:#000000;}
|
|
.cFA{color:#82bc49;background-color:#000000;}
|
|
.cFB{color:#34e2e2;background-color:#000000;}
|
|
.cFC{color:#ac3535;background-color:#000000;}
|
|
.cFD{color:#ad7fa8;background-color:#000000;}
|
|
.cFE{color:#fce94f;background-color:#000000;}
|
|
.cFF{color:#000000;background-color:#000000;}
|
|
</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>"ZealOS/Titanium"</span><span class=cF0>,</span><span class=cF6>"I64 best_score=0;\n"</span><span class=cF0>);
|
|
<a name="l2"></a></span><span class=cF5>RegExe</span><span class=cF0>(</span><span class=cF6>"ZealOS/Titanium"</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><1>/* 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><2>/* Graphics Not Rendered in HTML */</span><span class=cE0>
|
|
<a name="l61"></a>
|
|
<a name="l62"></a> </span><span class=cEA><3>/* 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><4>/* 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><5>/* 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><6>/* 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><5></span><span class=cE0>, </span><span class=cEA><4></span><span class=cE0>, </span><span class=cEA><5></span><span class=cE0>, </span><span class=cEA><6></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><7>/* 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><8>/* 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><9>/* 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><8></span><span class=cE0>, </span><span class=cEA><7></span><span class=cE0>, </span><span class=cEA><8></span><span class=cE0>, </span><span class=cEA><9></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><10>/* 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><11>/* 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><12>/* 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><10></span><span class=cE0>, </span><span class=cEA><11></span><span class=cE0>, </span><span class=cEA><10></span><span class=cE0>, </span><span class=cEA><12></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><13>/* 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><14>/* 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><15>/* 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><14></span><span class=cE0>, </span><span class=cEA><13></span><span class=cE0>, </span><span class=cEA><14></span><span class=cE0>, </span><span class=cEA><15></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><16>/* 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><17>/* 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><18>/* 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><19>/* 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><17></span><span class=cE0>, </span><span class=cEA><16></span><span class=cE0>, </span><span class=cEA><17></span><span class=cE0>, </span><span class=cEA><18></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><20>/* 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><21>/* 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><22>/* 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><23>/* 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><20></span><span class=cF0>, </span><span class=cFA><21></span><span class=cF0>, </span><span class=cFA><22></span><span class=cF0>, </span><span class=cFA><23></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->t0)/(tmpe->tf-tmpe->t0);
|
|
<a name="l219"></a>
|
|
<a name="l220"></a> </span><span class=cF5>Seed</span><span class=cF0>(tmpe->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->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 < 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 & </span><span class=cFE>2</span><span class=cF0>)
|
|
<a name="l232"></a> </span><span class=cF1>switch</span><span class=cF0> (tmpe->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 & </span><span class=cFE>1</span><span class=cF0>)
|
|
<a name="l236"></a> dc->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->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 & </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 & </span><span class=cFE>4</span><span class=cF0>)
|
|
<a name="l245"></a> dc->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->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->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 & </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 & </span><span class=cFE>4</span><span class=cF0>)
|
|
<a name="l257"></a> dc->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->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->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 & </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 & </span><span class=cFE>4</span><span class=cF0>)
|
|
<a name="l269"></a> dc->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->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->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 & </span><span class=cFE>1</span><span class=cF0>)
|
|
<a name="l278"></a> dc->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->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->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->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->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>->num * U_NUM / </span><span class=cFB>mp_count</span><span class=cF0>, hi = (</span><span class=cF5>Gs</span><span class=cF0>->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>->num; i < 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 = &e[i];
|
|
<a name="l300"></a> yy = (tmpe->y - scroll_y) & (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> <= yy <= task->pix_bottom + </span><span class=cFE>32</span><span class=cF0> && !tmpe->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> > tmpe->tf)
|
|
<a name="l305"></a> tmpe->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 < hi; i++)
|
|
<a name="l309"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l310"></a> tmpu = &u[i];
|
|
<a name="l311"></a> yy = (tmpu->y - scroll_y) & (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> <= yy <= task->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->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->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->tank)
|
|
<a name="l321"></a> </span><span class=cF5>Sprite3Mat4x4B</span><span class=cF0>(dc, tmpu->x, yy, </span><span class=cF3>GR_Z_ALL</span><span class=cF0>, </span><span class=cFA><19></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->best_dd < </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->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->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->friendly)
|
|
<a name="l335"></a> {
|
|
<a name="l336"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu->CIA && </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->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 & </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> & </span><span class=cFE>3</span><span class=cF0>]);
|
|
<a name="l348"></a> </span><span class=cF5>Sprite3Mat4x4B</span><span class=cF0>(dc, tmpu->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->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>(&mp_not_done_flags, </span><span class=cF5>Gs</span><span class=cF0>->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 < </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 & </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0> << </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 & </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0> << </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->color = </span><span class=cF3>ROPF_DITHER</span><span class=cF0> | </span><span class=cF3>BROWN</span><span class=cF0> << </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->width, dc->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 < 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) & (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> <= yy <= task->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->thick = </span><span class=cFE>3</span><span class=cF0>;
|
|
<a name="l390"></a> dc->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> & </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> & </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->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 < B_NUM; i++, tmpb++)
|
|
<a name="l396"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb->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->missile)
|
|
<a name="l399"></a> </span><span class=cF5>Sprite3ZB</span><span class=cF0>(dc, tmpb->x >> </span><span class=cFE>32</span><span class=cF0>, tmpb->y >> </span><span class=cFE>32</span><span class=cF0>, </span><span class=cFE>0</span><span class=cF0>, </span><span class=cFA><2></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->dx, tmpb->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->x >> </span><span class=cFE>32</span><span class=cF0>, tmpb->y >> </span><span class=cFE>32</span><span class=cF0>,
|
|
<a name="l402"></a> </span><span class=cF7>(</span><span class=cF0>tmpb->x + tmpb->dy * B_LEN</span><span class=cF7>)</span><span class=cF0> >> </span><span class=cFE>32</span><span class=cF0>,
|
|
<a name="l403"></a> </span><span class=cF7>(</span><span class=cF0>tmpb->y + tmpb->dx * B_LEN</span><span class=cF7>)</span><span class=cF0> >> </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> << </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 < </span><span class=cFB>mp_count</span><span class=cF0>; i++)
|
|
<a name="l409"></a> </span><span class=cF5>JobQueue</span><span class=cF0>(&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->depth_buf);
|
|
<a name="l413"></a> dc->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 < </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>&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, &xx, &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><3></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><1></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->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 && </span><span class=cF5>Blink</span><span class=cF0>)
|
|
<a name="l428"></a> </span><span class=cF5>GrPrint</span><span class=cF0>(dc, task->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->pix_height / </span><span class=cFE>2</span><span class=cF0>, </span><span class=cF6>"Game Over"</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->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>"Enemy:%d Friends:%d Friendly Fire:%d Time:%6.2f Bullets:%d"</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>"Total Score:%,d High Score:%,d"</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 < 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> &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->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->x, tmpu->y</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l466"></a> {
|
|
<a name="l467"></a> tmpe->t0 = </span><span class=cF5>tS</span><span class=cF0>;
|
|
<a name="l468"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu->tank)
|
|
<a name="l469"></a> </span><span class=cF7>{</span><span class=cF0>
|
|
<a name="l470"></a> tmpe->type = ET_TANK;
|
|
<a name="l471"></a> tmpe->tf = tmpe->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->type = ET_MAN;
|
|
<a name="l476"></a> tmpe->tf = tmpe->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->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 && !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->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->t0 = </span><span class=cF5>tS</span><span class=cF0>;
|
|
<a name="l512"></a> tmpe->type = ET_MISSILE;
|
|
<a name="l513"></a> tmpe->tf = tmpe->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 < 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->dead)
|
|
<a name="l518"></a> {
|
|
<a name="l519"></a> x2 = tmpu->x;
|
|
<a name="l520"></a> y2 = (tmpu->y - scroll_y) & (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> < </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 < 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) & (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><</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->t0 = </span><span class=cF5>tS</span><span class=cF0>;
|
|
<a name="l534"></a> tmpe->type = ET_BUILDING;
|
|
<a name="l535"></a> tmpe->tf = tmpe->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->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 < B_NUM; i++, tmpb++)
|
|
<a name="l550"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb->dead && !tmpb->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->x >> </span><span class=cFE>32</span><span class=cF0>, tmpb->y >> </span><span class=cFE>32</span><span class=cF0>,
|
|
<a name="l552"></a> </span><span class=cF7>(</span><span class=cF0>tmpb->x + tmpb->dx * B_LEN</span><span class=cF7>)</span><span class=cF0> >> </span><span class=cFE>32</span><span class=cF0>,
|
|
<a name="l553"></a> </span><span class=cF7>(</span><span class=cF0>tmpb->y + tmpb->dy * B_LEN</span><span class=cF7>)</span><span class=cF0> >> </span><span class=cFE>32</span><span class=cF0>);
|
|
<a name="l554"></a>
|
|
<a name="l555"></a> dc2->color = </span><span class=cF3>ROP_COLLISION</span><span class=cF0>;
|
|
<a name="l556"></a> dc2->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 < 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->dead)
|
|
<a name="l560"></a> {
|
|
<a name="l561"></a> x = tmpu->x;
|
|
<a name="l562"></a> y = (tmpu->y - scroll_y) & (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> <= x < </span><span class=cF3>GR_WIDTH</span><span class=cF0> && </span><span class=cFE>0</span><span class=cF0> <= y < </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->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->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 < B_NUM; i++, tmpb++)
|
|
<a name="l575"></a> </span><span class=cF1>if</span><span class=cF0> (!tmpb->dead && tmpb->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->x >> </span><span class=cFE>32</span><span class=cF0>;
|
|
<a name="l578"></a> y = tmpb->y >> </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 < U_NUM; i++, tmpu++)
|
|
<a name="l580"></a> {
|
|
<a name="l581"></a> </span><span class=cF1>if</span><span class=cF0> (tmpu->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->dead &&
|
|
<a name="l586"></a> </span><span class=cF5>AbsI64</span><span class=cF7>(</span><span class=cF0>x - tmpu->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->y - scroll_y) & (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>) + n1</span><span class=cF7>)</span><span class=cF0> < n1 << </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->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->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 < 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) & (MAP_HEIGHT - </span><span class=cFE>1</span><span class=cF0>)</span><span class=cF7>)</span><span class=cF0> < </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->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>->pix_width >> </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>->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 < 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>->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 < 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 < 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 < 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 < U_FRIENDLY_NUM)
|
|
<a name="l638"></a> {
|
|
<a name="l639"></a> tmpu->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 & </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>->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 & </span><span class=cFE>63</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l646"></a> tmpu->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->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->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 & </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>->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 & </span><span class=cFE>15</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l659"></a> tmpu->tank = </span><span class=cF3>TRUE</span><span class=cF0>;
|
|
<a name="l660"></a> }
|
|
<a name="l661"></a> tmpu->dead = </span><span class=cF3>FALSE</span><span class=cF0>;
|
|
<a name="l662"></a> tmpu->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->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->best_dd = </span><span class=cF3>I64_MAX</span><span class=cF0>;
|
|
<a name="l665"></a> tmpu->theta = </span><span class=cF3>pi</span><span class=cF0> / </span><span class=cFE>2</span><span class=cF0>;
|
|
<a name="l666"></a> tmpu->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 < 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 < 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 < 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 = &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->x = j << </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->y = j << </span><span class=cFE>32</span><span class=cF0>;
|
|
<a name="l700"></a>
|
|
<a name="l701"></a> tmpb->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->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->dx2, tmpb->dy2);
|
|
<a name="l704"></a> tmpb->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->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->dead = </span><span class=cF3>FALSE</span><span class=cF0>;
|
|
<a name="l708"></a> tmpb->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>&missile_bmp, ++m</span><span class=cF7>)</span><span class=cF0> || </span><span class=cF5>Btr</span><span class=cF7>(</span><span class=cF0>&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 < 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 = &b[i];
|
|
<a name="l733"></a>
|
|
<a name="l734"></a> MissilePos(m, theta, &tmpb->x, &tmpb->y);
|
|
<a name="l735"></a> tmpb->x <<= </span><span class=cFE>32</span><span class=cF0>;
|
|
<a name="l736"></a> tmpb->y <<= </span><span class=cFE>32</span><span class=cF0>;
|
|
<a name="l737"></a>
|
|
<a name="l738"></a> tmpb->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->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->dx2, tmpb->dy2);
|
|
<a name="l741"></a> tmpb->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->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->dead = </span><span class=cF3>FALSE</span><span class=cF0>;
|
|
<a name="l744"></a> tmpb->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 < 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 < 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 < 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 < 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 < 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 < 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 < 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 < 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 && u[i].y - u[j].y < </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 < 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 < HACK_DIST * HACK_DIST && !</span><span class=cF7>(</span><span class=cF5>RandU16</span><span class=cF0> & </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l837"></a> ManDie(&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 < 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 < 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&& u[i].y - u[j].y < </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 < 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 < HACK_DIST * HACK_DIST && !</span><span class=cF7>(</span><span class=cF5>RandU16</span><span class=cF0> & </span><span class=cFE>1</span><span class=cF7>)</span><span class=cF0>)
|
|
<a name="l860"></a> ManDie(&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://tomawezome.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>"File {"</span><span class=cF0>
|
|
<a name="l874"></a> </span><span class=cF6>" Abort(,CH_SHIFT_ESC);"</span><span class=cF0>
|
|
<a name="l875"></a> </span><span class=cF6>" Exit(,CH_ESC);"</span><span class=cF0>
|
|
<a name="l876"></a> </span><span class=cF6>"}"</span><span class=cF0>
|
|
<a name="l877"></a> </span><span class=cF6>"Play {"</span><span class=cF0>
|
|
<a name="l878"></a> </span><span class=cF6>" Restart(,'\n');"</span><span class=cF0>
|
|
<a name="l879"></a> </span><span class=cF6>" Fire(,CH_SPACE);"</span><span class=cF0>
|
|
<a name="l880"></a> </span><span class=cF6>" Left(,,SC_CURSOR_LEFT);"</span><span class=cF0>
|
|
<a name="l881"></a> </span><span class=cF6>" Right(,,SC_CURSOR_RIGHT);"</span><span class=cF0>
|
|
<a name="l882"></a> </span><span class=cF6>" LeftMissile(,,SC_CURSOR_LEFT|SCF_CTRL);"</span><span class=cF0>
|
|
<a name="l883"></a> </span><span class=cF6>" RightMissile(,,SC_CURSOR_RIGHT|SCF_CTRL);"</span><span class=cF0>
|
|
<a name="l884"></a> </span><span class=cF6>"}"</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>"\nScoring:\n"</span><span class=cF0>
|
|
<a name="l893"></a> </span><span class=cF6>"\tEnemy Killed\t\t+3\n"</span><span class=cF0>
|
|
<a name="l894"></a> </span><span class=cF6>"\tEnemy by Friendly\t+5\n"</span><span class=cF0>
|
|
<a name="l895"></a> </span><span class=cF6>"\tFriendly Fire\t\t-100\n"</span><span class=cF0>
|
|
<a name="l896"></a> </span><span class=cF6>"\tBullets Fired\t\t-1\n"</span><span class=cF0>
|
|
<a name="l897"></a> </span><span class=cF6>"\tGame Time\t\t-10 per second\n"</span><span class=cF0>
|
|
<a name="l898"></a> </span><span class=cF6>"\tSurviving Friendlies\t+250\n\n"</span><span class=cF0>
|
|
<a name="l899"></a> </span><span class=cF6>"Sweep side-to-side while shooting, "</span><span class=cF0>
|
|
<a name="l900"></a> </span><span class=cF6>"holding down $GREEN$<SPACE>$FG$.\n\n"</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>->draw_it = &</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>&ch, &sc, </span><span class=cFE>1</span><span class=cF0> << </span><span class=cF3>MESSAGE_KEY_DOWN</span><span class=cF0> + </span><span class=cFE>1</span><span class=cF0> << </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 & </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 & </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 < 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 < </span><span class=cFE>0</span><span class=cF0> || b[i].x < </span><span class=cFE>0</span><span class=cF0> || b[i].x >> </span><span class=cFE>32</span><span class=cF0> >= </span><span class=cF5>Fs</span><span class=cF0>->pix_width || b[i].y >> </span><span class=cFE>32</span><span class=cF0> >= </span><span class=cF5>Fs</span><span class=cF0>->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 >= </span><span class=cF5>Fs</span><span class=cF0>->pix_width)
|
|
<a name="l986"></a> x -= </span><span class=cF5>Fs</span><span class=cF0>->pix_width;
|
|
<a name="l987"></a> </span><span class=cF1>while</span><span class=cF0> (x < </span><span class=cFE>0</span><span class=cF0>)
|
|
<a name="l988"></a> x += </span><span class=cF5>Fs</span><span class=cF0>->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 & </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 >> </span><span class=cFE>3</span><span class=cF0> & </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 < </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 >> </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 >> </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 && </span><span class=cF5>tS</span><span class=cF0> > 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>&ch</span><span class=cF7>)</span><span class=cF0> && friendly_left || </span><span class=cF5>tS</span><span class=cF0> - tf < </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 > 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> << </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>"ZealOS/Titanium"</span><span class=cF0>, </span><span class=cF6>"I64 best_score=%d;\n"</span><span class=cF0>, best_score);
|
|
<a name="l1073"></a>}
|
|
</span></pre></body>
|
|
</html>
|