Files
assaultcube-/source/doxygen/html/tools_8h.html
T
driAn 44ef9c1cf8 added doxygen source code docs
git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@3951 e016b1c5-ed68-44aa-a2f7-31cac88cffde
2008-12-08 21:10:24 +00:00

2143 lines
89 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>AssaultCube: R:/projects/actioncube/_svn/trunk/ac/source/src/tools.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>File&nbsp;Members</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>R:/projects/actioncube/_svn/trunk/ac/source/src/tools.h File Reference</h1>
<p>
<div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dynsection">
<p><center><img src="tools_8h__dep__incl.png" border="0" usemap="#R:/projects/actioncube/_svn/trunk/ac/source/src/tools.hdep_map" alt=""></center>
</div>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structs__sprintf__f.html">s_sprintf_f</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdatabuf.html">databuf&lt; T &gt;</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvector.html">vector&lt; T &gt;</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhashtable.html">hashtable&lt; K, T &gt;</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhashtable_1_1chain.html">hashtable&lt; K, T &gt;::chain</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structhashtable_1_1chainchunk.html">hashtable&lt; K, T &gt;::chainchunk</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structringbuf.html">ringbuf&lt; T, SIZE &gt;</a></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#f1203d524805edd46c48f1e27fc19999">DEBUG</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;{}</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#45e64cf1151f3ae5904043810b89dcfb">DEBUGVAR</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;{}</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#ad4e5b6078e35a063d909d9a2db2e5e0">ASSERT</a>(c)&nbsp;&nbsp;&nbsp;if(c) {}</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#a606b446b94f73be5401369438725769">clamp</a>(a, b, c)&nbsp;&nbsp;&nbsp;(max(b, min(a, c)))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#666178eee2354e0b6183b0988a82bc32">rnd</a>(max)&nbsp;&nbsp;&nbsp;(rand()%(max))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#7bac122252dd49212e8033e85efb59bd">detrnd</a>(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, x)&nbsp;&nbsp;&nbsp;((int)(((((<a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>)(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>))*1103515245+12345)&gt;&gt;16)%(x)))</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#924e78b07cbeffdb731ec834567fad5a">loop</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>, m)&nbsp;&nbsp;&nbsp;for(int <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a> = 0; <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&lt;int(m); <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>++)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#e86a7ebe4513cb3245acb86078150247">loopi</a>(m)&nbsp;&nbsp;&nbsp;loop(i,m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#3870d0a4528587db40ab88be180eb289">loopj</a>(m)&nbsp;&nbsp;&nbsp;loop(j,m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#e658a5cf461d310c08bf8fc96205b4b3">loopk</a>(m)&nbsp;&nbsp;&nbsp;loop(k,m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#bb35e8b766acb244d2579d57c05e1aeb">loopl</a>(m)&nbsp;&nbsp;&nbsp;loop(l,m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#89e9b604726c2ff81dd701c03c8f07fe">DELETEP</a>(p)&nbsp;&nbsp;&nbsp;if(p) { delete p; p = 0; }</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#36fd8ce424f12b281ed79e7c7cf4b82f">DELETEA</a>(p)&nbsp;&nbsp;&nbsp;if(p) { delete[] p; p = 0; }</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#598a3330b3c21701223ee0ca14316eca">PI</a>&nbsp;&nbsp;&nbsp;(3.1415927f)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#2750dfdda752269a036f487a4a34b849">PI2</a>&nbsp;&nbsp;&nbsp;(2*PI)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#514396dd60fa0621c83072091fb2a0cd">SQRT2</a>&nbsp;&nbsp;&nbsp;(1.4142136f)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#e42978afd835c3a1f70d409a1b5f5a39">SQRT3</a>&nbsp;&nbsp;&nbsp;(1.7320508f)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#b812f1e2f95156906fcaca00bc6f490e">RAD</a>&nbsp;&nbsp;&nbsp;(PI / 180.0f)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#238347d7669f8f1e9c83bfe63a2730c4">__cdecl</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#1b75ef7f799a84b01d28530d06c53daf">_vsnprintf</a>&nbsp;&nbsp;&nbsp;vsnprintf</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#c59ea474143fdc7612186159610678d2">PATHDIV</a>&nbsp;&nbsp;&nbsp;'/'</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#c2b5bbcbb689999973ede0a7c270a694">_MAXDEFSTR</a>&nbsp;&nbsp;&nbsp;260</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#043bee92b2c9fe014f997d4c6eb8bc5b">s_sprintf</a>(d)&nbsp;&nbsp;&nbsp;<a class="el" href="structs__sprintf__f.html">s_sprintf_f</a>((char *)d)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#59dd1976882f68c06595ab3513c3ee47">s_sprintfd</a>(d)&nbsp;&nbsp;&nbsp;<a class="el" href="tools_8h.html#7b9504fa7cfc476750a9b4b0f8ed6972">string</a> d; s_sprintf(d)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#fe1943678a318004debb3690351908a7">s_sprintfdlv</a>(d, last, fmt)&nbsp;&nbsp;&nbsp;<a class="el" href="tools_8h.html#7b9504fa7cfc476750a9b4b0f8ed6972">string</a> d; { va_list ap; va_start(ap, last); formatstring(d, fmt, ap); va_end(ap); }</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#893c5d316b5bf36278589ef6456c7b38">s_sprintfdv</a>(d, fmt)&nbsp;&nbsp;&nbsp;s_sprintfdlv(d,fmt,fmt)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#15b6b312e99c349770f84133a13e03a3">loopv</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;if(false) {} else for(int i = 0; i&lt;(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length(); i++)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#bd0a7efb9c9fe2fa8aeaeb1e4dfae5b9">loopvj</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;if(false) {} else for(int j = 0; j&lt;(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length(); j++)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#398cc5808497f0113d02d2335f783863">loopvk</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;if(false) {} else for(int k = 0; k&lt;(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length(); k++)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#dea5486d176888e73fb2ffe29e8b2cdb">loopvrev</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;if(false) {} else for(int i = (<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length()-1; i&gt;=0; i--)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#03827e57a3577c8fc0a2827d692df2d6">loopvjrev</a>(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)&nbsp;&nbsp;&nbsp;if(false) {} else for(int j = (<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length()-1; i&gt;=0; i--)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#fa3f46f516bee2a8033ce1de62519b1e">HTFIND</a>(success, fail)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#d4f2446bdebec7a6955526d657c9e9da">itoa</a>(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, i)&nbsp;&nbsp;&nbsp;sprintf(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, &quot;%d&quot;, i)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#1f148649b3ba86d59fa25888d9991116">ftoa</a>(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, <a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>)&nbsp;&nbsp;&nbsp;sprintf(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, (<a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>) == int(<a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>) ? &quot;%.1f&quot; : &quot;%.7g&quot;, f)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#d3550ac1841b08a8ac6ee693826926bd">enumeratekt</a>(ht, k, e, <a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>, <a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>, b)&nbsp;&nbsp;&nbsp;loopi((ht).size) for(<a class="el" href="structhashtable.html">hashtable</a>&lt;k,<a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>&gt;::chain *enumc = (ht).table[i]; enumc;) { <a class="el" href="structhashtable.html">hashtable</a>&lt;k,<a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>&gt;::const_key &amp;e = enumc-&gt;key; <a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a> &amp;<a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a> = enumc-&gt;data; enumc = enumc-&gt;next; b; }</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#6abd31148e196acd0caa3279ed75f49c">enumerate</a>(ht, <a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>, e, b)&nbsp;&nbsp;&nbsp;loopi((ht).size) for((ht).enumc = (ht).table[i]; (ht).enumc;) { <a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a> &amp;e = (ht).enumc-&gt;data; (ht).enumc = (ht).enumc-&gt;next; b; }</td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#65f85814a8290f9797005d3b28e7e5fc">uchar</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#b95f123a6c9bcfee6a343170ef8c5f69">ushort</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#7b9504fa7cfc476750a9b4b0f8ed6972">string</a> [_MAXDEFSTR]</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structdatabuf.html">databuf</a>&lt; char &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#0bbe613f42ae428d354c0ca95324f239">charbuf</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structdatabuf.html">databuf</a>&lt; <a class="el" href="tools_8h.html#65f85814a8290f9797005d3b28e7e5fc">uchar</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#3523e52f56486d52e182e506d4dc3f80">ucharbuf</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structvector.html">vector</a>&lt; char * &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#73df50f51f4e74910cd7a617f1ccd775">cvector</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structvector.html">vector</a>&lt; int &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#ad8e9d2890d2ba3b17c9ed66843a2347">ivector</a></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="structvector.html">vector</a>&lt; <a class="el" href="tools_8h.html#b95f123a6c9bcfee6a343170ef8c5f69">ushort</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#bc65abbab0bd1a2263996f3659de6902">usvector</a></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="tools_8h.html#f065005381391da934b3f9d7d41dedb8">swap</a> (T &amp;a, T &amp;b)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="tools_8h.html#c3e002abe462d6f38382b30c24027357">max</a> (T a, T b)</td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template&lt;class T &gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">static T&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="tools_8h.html#8fe7ba335a6cc12207810c798365ac85">min</a> (T a, T b)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#6cc12a98be3ff0088a823b638aa42b51">round</a> (float x)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#52cc6ae98f74ae4dc91685a77e7457c2">formatstring</a> (char *d, const char *fmt, va_list <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#b95eafa806ccc8a494be3e92188f111a">s_strncpy</a> (char *d, const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, size_t m)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#27d68624a81428653155ea9c0e6e0a65">s_strcpy</a> (char *d, const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#0cb56bfd45a5c0d44872c4e7fc151712">s_strcat</a> (char *d, const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#963bd16ff4497dc99ebd97a2513ec69d">hthash</a> (const char *key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#2bd8c87b803e0092c6b3d74ebe5d0ed2">htcmp</a> (const char *x, const char *y)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#d69df4c94209adc77432aa9f6e29efe4">hthash</a> (int key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#367b7bbd306f1c03db30db08794f0274">htcmp</a> (int x, int y)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#886cdd6f90aad9c58196d715a0c9e7c8">hthash</a> (<a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> key)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#dee2eff581fabae0d7d4443658b2a4d1">htcmp</a> (<a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> x, <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> y)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#14249f995b3fa2f5cba696945f5d46e1">newstring</a> (size_t l)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#56c93b56fafbf376f53c5a375f4d89f5">newstring</a> (const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, size_t l)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#f7652bb4059e96e685f0c5d24c3896c2">newstring</a> (const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#52231c8ec32cfdd19b32da88d0c3f06e">newstringbuf</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#82608fdd246e8a9d263034d18644828a">newstringbuf</a> (const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#24d305bbb81130b31f3dac5cf4d94fb5">path</a> (char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#1648d219856b9a91e824b0014c972c24">path</a> (const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, bool copy)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#bcae6b01c5781ee77d5a40b4606b7280">behindpath</a> (const char *<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#08ffcd7eadad86ab702d750e535c4cad">parentdir</a> (const char *directory)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#ecf572462aea03f9bd3214b35b35bcfd">fileexists</a> (const char *path, const char *mode)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#ed299a0b7944880d7c3e07a8c88bf2a6">createdir</a> (const char *path)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#b993442b367f45738bee4a12198bbee0">sethomedir</a> (const char *dir)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#fba80b88be9834307bdb3a46b2786af1">addpackagedir</a> (const char *dir)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#84bd90ebe1218403ba00c72bf37f949d">findfile</a> (const char *filename, const char *mode)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#2a6438c3095ffd3d54b44a8bcf6de4b2">getfilesize</a> (const char *filename)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">FILE *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#f0cf0ecdf7866164279f3e12f30f488f">openfile</a> (const char *filename, const char *mode)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">gzFile&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#da563230f3da681bd1af33fe71751915">opengzfile</a> (const char *filename, const char *mode)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#ff9fe5efd1613cefd9a06d6e3660c696">loadfile</a> (const char *fn, int *size, const char *mode=NULL)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#7c968cc3db40a5efcab37816e2f6ec06">listdir</a> (const char *dir, const char *ext, <a class="el" href="structvector.html">vector</a>&lt; char * &gt; &amp;files)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#4af27b63135b15739954464eb1042847">listfiles</a> (const char *dir, const char *ext, <a class="el" href="structvector.html">vector</a>&lt; char * &gt; &amp;files)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#60b00cfd0b3f8ca822b9b05a3c2b6a32">delfile</a> (const char *path)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#a630500a89a9c2553ae519d05394af2e">cmpb</a> (void *b, int n, enet_uint32 c)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#a585c269381eb4aa95e56edbfa9b4664">cmpf</a> (char *fn, enet_uint32 c)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#a7f1f470c11182bb991e7c152bff438b">endianswap</a> (void *, int, int)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="tools_8h.html#5b558a8aaf8c51c100e23e6b16645f25">isbigendian</a> ()</td></tr>
</table>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="238347d7669f8f1e9c83bfe63a2730c4"></a><!-- doxytag: member="tools.h::__cdecl" ref="238347d7669f8f1e9c83bfe63a2730c4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __cdecl </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="c2b5bbcbb689999973ede0a7c270a694"></a><!-- doxytag: member="tools.h::_MAXDEFSTR" ref="c2b5bbcbb689999973ede0a7c270a694" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _MAXDEFSTR&nbsp;&nbsp;&nbsp;260 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="1b75ef7f799a84b01d28530d06c53daf"></a><!-- doxytag: member="tools.h::_vsnprintf" ref="1b75ef7f799a84b01d28530d06c53daf" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define _vsnprintf&nbsp;&nbsp;&nbsp;vsnprintf </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="ad4e5b6078e35a063d909d9a2db2e5e0"></a><!-- doxytag: member="tools.h::ASSERT" ref="ad4e5b6078e35a063d909d9a2db2e5e0" args="(c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ASSERT </td>
<td>(</td>
<td class="paramtype">c&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(c) {}</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="a606b446b94f73be5401369438725769"></a><!-- doxytag: member="tools.h::clamp" ref="a606b446b94f73be5401369438725769" args="(a, b, c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define clamp </td>
<td>(</td>
<td class="paramtype">a, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">b, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">c&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(max(b, min(a, c)))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="f1203d524805edd46c48f1e27fc19999"></a><!-- doxytag: member="tools.h::DEBUG" ref="f1203d524805edd46c48f1e27fc19999" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUG </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;{}</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="45e64cf1151f3ae5904043810b89dcfb"></a><!-- doxytag: member="tools.h::DEBUGVAR" ref="45e64cf1151f3ae5904043810b89dcfb" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DEBUGVAR </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;{}</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="36fd8ce424f12b281ed79e7c7cf4b82f"></a><!-- doxytag: member="tools.h::DELETEA" ref="36fd8ce424f12b281ed79e7c7cf4b82f" args="(p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DELETEA </td>
<td>(</td>
<td class="paramtype">p&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(p) { delete[] p; p = 0; }</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="89e9b604726c2ff81dd701c03c8f07fe"></a><!-- doxytag: member="tools.h::DELETEP" ref="89e9b604726c2ff81dd701c03c8f07fe" args="(p)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define DELETEP </td>
<td>(</td>
<td class="paramtype">p&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(p) { delete p; p = 0; }</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="7bac122252dd49212e8033e85efb59bd"></a><!-- doxytag: member="tools.h::detrnd" ref="7bac122252dd49212e8033e85efb59bd" args="(s, x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define detrnd </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">x&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;((int)(((((<a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>)(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>))*1103515245+12345)&gt;&gt;16)%(x)))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="6abd31148e196acd0caa3279ed75f49c"></a><!-- doxytag: member="tools.h::enumerate" ref="6abd31148e196acd0caa3279ed75f49c" args="(ht, t, e, b)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define enumerate </td>
<td>(</td>
<td class="paramtype">ht, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">e, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">b&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;loopi((ht).size) for((ht).enumc = (ht).table[i]; (ht).enumc;) { <a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a> &amp;e = (ht).enumc-&gt;data; (ht).enumc = (ht).enumc-&gt;next; b; }</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="d3550ac1841b08a8ac6ee693826926bd"></a><!-- doxytag: member="tools.h::enumeratekt" ref="d3550ac1841b08a8ac6ee693826926bd" args="(ht, k, e, t, f, b)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define enumeratekt </td>
<td>(</td>
<td class="paramtype">ht, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">k, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">e, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">b&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;loopi((ht).size) for(<a class="el" href="structhashtable.html">hashtable</a>&lt;k,<a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>&gt;::chain *enumc = (ht).table[i]; enumc;) { <a class="el" href="structhashtable.html">hashtable</a>&lt;k,<a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a>&gt;::const_key &amp;e = enumc-&gt;key; <a class="el" href="worldrender_8cpp.html#24dda485d4eff94669fd19a03626927b">t</a> &amp;<a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a> = enumc-&gt;data; enumc = enumc-&gt;next; b; }</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="1f148649b3ba86d59fa25888d9991116"></a><!-- doxytag: member="tools.h::ftoa" ref="1f148649b3ba86d59fa25888d9991116" args="(s, f)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ftoa </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;sprintf(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, (<a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>) == int(<a class="el" href="command_8cpp.html#766bc8d811abf199aac445586c898441">f</a>) ? &quot;%.1f&quot; : &quot;%.7g&quot;, f)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="fa3f46f516bee2a8033ce1de62519b1e"></a><!-- doxytag: member="tools.h::HTFIND" ref="fa3f46f516bee2a8033ce1de62519b1e" args="(success, fail)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define HTFIND </td>
<td>(</td>
<td class="paramtype">success, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fail&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Value:</b><div class="fragment"><pre class="fragment"><a class="code" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> h = <a class="code" href="command_8cpp.html#7430fc68a583eedb63e316de40f13aa6">hthash</a>(key)&amp;(size-1); \
<span class="keywordflow">for</span>(chain *c = table[h]; <a class="code" href="worldio_8cpp.html#68e560df5fb8de20aa7b61bfb601d909">c</a>; <a class="code" href="worldio_8cpp.html#68e560df5fb8de20aa7b61bfb601d909">c</a> = <a class="code" href="worldio_8cpp.html#68e560df5fb8de20aa7b61bfb601d909">c</a>-&gt;next) \
{ \
<span class="keywordflow">if</span>(<a class="code" href="command_8cpp.html#91840d9e2e49b066aa04826c8e1365d9">htcmp</a>(key, <a class="code" href="worldio_8cpp.html#68e560df5fb8de20aa7b61bfb601d909">c</a>-&gt;key)) <span class="keywordflow">return</span> (success); \
} \
<span class="keywordflow">return</span> (fail);
</pre></div>
</div>
</div><p>
<a class="anchor" name="d4f2446bdebec7a6955526d657c9e9da"></a><!-- doxytag: member="tools.h::itoa" ref="d4f2446bdebec7a6955526d657c9e9da" args="(s, i)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define itoa </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">i&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;sprintf(<a class="el" href="worldrender_8cpp.html#8feeb8812290964a8e453e58dae6f3c3">s</a>, &quot;%d&quot;, i)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="924e78b07cbeffdb731ec834567fad5a"></a><!-- doxytag: member="tools.h::loop" ref="924e78b07cbeffdb731ec834567fad5a" args="(v, m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loop </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">m&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;for(int <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a> = 0; <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&lt;int(m); <a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>++)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="e86a7ebe4513cb3245acb86078150247"></a><!-- doxytag: member="tools.h::loopi" ref="e86a7ebe4513cb3245acb86078150247" args="(m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopi </td>
<td>(</td>
<td class="paramtype">m&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;loop(i,m)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="3870d0a4528587db40ab88be180eb289"></a><!-- doxytag: member="tools.h::loopj" ref="3870d0a4528587db40ab88be180eb289" args="(m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopj </td>
<td>(</td>
<td class="paramtype">m&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;loop(j,m)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="e658a5cf461d310c08bf8fc96205b4b3"></a><!-- doxytag: member="tools.h::loopk" ref="e658a5cf461d310c08bf8fc96205b4b3" args="(m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopk </td>
<td>(</td>
<td class="paramtype">m&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;loop(k,m)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="bb35e8b766acb244d2579d57c05e1aeb"></a><!-- doxytag: member="tools.h::loopl" ref="bb35e8b766acb244d2579d57c05e1aeb" args="(m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopl </td>
<td>(</td>
<td class="paramtype">m&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;loop(l,m)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="15b6b312e99c349770f84133a13e03a3"></a><!-- doxytag: member="tools.h::loopv" ref="15b6b312e99c349770f84133a13e03a3" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopv </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(false) {} else for(int i = 0; i&lt;(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length(); i++)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="bd0a7efb9c9fe2fa8aeaeb1e4dfae5b9"></a><!-- doxytag: member="tools.h::loopvj" ref="bd0a7efb9c9fe2fa8aeaeb1e4dfae5b9" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopvj </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(false) {} else for(int j = 0; j&lt;(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length(); j++)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="03827e57a3577c8fc0a2827d692df2d6"></a><!-- doxytag: member="tools.h::loopvjrev" ref="03827e57a3577c8fc0a2827d692df2d6" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopvjrev </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(false) {} else for(int j = (<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length()-1; i&gt;=0; i--)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="398cc5808497f0113d02d2335f783863"></a><!-- doxytag: member="tools.h::loopvk" ref="398cc5808497f0113d02d2335f783863" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopvk </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(false) {} else for(int k = 0; k&lt;(<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length(); k++)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="dea5486d176888e73fb2ffe29e8b2cdb"></a><!-- doxytag: member="tools.h::loopvrev" ref="dea5486d176888e73fb2ffe29e8b2cdb" args="(v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define loopvrev </td>
<td>(</td>
<td class="paramtype"><a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;if(false) {} else for(int i = (<a class="el" href="worldrender_8cpp.html#ad6f72c6f88c7d9ce219ce318298da20">v</a>).length()-1; i&gt;=0; i--)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="070d2ce7b6bb7e5c05602aa8c308d0c4"></a><!-- doxytag: member="tools.h::NULL" ref="070d2ce7b6bb7e5c05602aa8c308d0c4" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define NULL&nbsp;&nbsp;&nbsp;0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="c59ea474143fdc7612186159610678d2"></a><!-- doxytag: member="tools.h::PATHDIV" ref="c59ea474143fdc7612186159610678d2" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PATHDIV&nbsp;&nbsp;&nbsp;'/' </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="598a3330b3c21701223ee0ca14316eca"></a><!-- doxytag: member="tools.h::PI" ref="598a3330b3c21701223ee0ca14316eca" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PI&nbsp;&nbsp;&nbsp;(3.1415927f) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="2750dfdda752269a036f487a4a34b849"></a><!-- doxytag: member="tools.h::PI2" ref="2750dfdda752269a036f487a4a34b849" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PI2&nbsp;&nbsp;&nbsp;(2*PI) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="b812f1e2f95156906fcaca00bc6f490e"></a><!-- doxytag: member="tools.h::RAD" ref="b812f1e2f95156906fcaca00bc6f490e" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define RAD&nbsp;&nbsp;&nbsp;(PI / 180.0f) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="666178eee2354e0b6183b0988a82bc32"></a><!-- doxytag: member="tools.h::rnd" ref="666178eee2354e0b6183b0988a82bc32" args="(max)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define rnd </td>
<td>(</td>
<td class="paramtype">max&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;(rand()%(max))</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="043bee92b2c9fe014f997d4c6eb8bc5b"></a><!-- doxytag: member="tools.h::s_sprintf" ref="043bee92b2c9fe014f997d4c6eb8bc5b" args="(d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define s_sprintf </td>
<td>(</td>
<td class="paramtype">d&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;<a class="el" href="structs__sprintf__f.html">s_sprintf_f</a>((char *)d)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="59dd1976882f68c06595ab3513c3ee47"></a><!-- doxytag: member="tools.h::s_sprintfd" ref="59dd1976882f68c06595ab3513c3ee47" args="(d)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define s_sprintfd </td>
<td>(</td>
<td class="paramtype">d&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;<a class="el" href="tools_8h.html#7b9504fa7cfc476750a9b4b0f8ed6972">string</a> d; s_sprintf(d)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="fe1943678a318004debb3690351908a7"></a><!-- doxytag: member="tools.h::s_sprintfdlv" ref="fe1943678a318004debb3690351908a7" args="(d, last, fmt)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define s_sprintfdlv </td>
<td>(</td>
<td class="paramtype">d, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">last, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmt&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;<a class="el" href="tools_8h.html#7b9504fa7cfc476750a9b4b0f8ed6972">string</a> d; { va_list ap; va_start(ap, last); formatstring(d, fmt, ap); va_end(ap); }</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="893c5d316b5bf36278589ef6456c7b38"></a><!-- doxytag: member="tools.h::s_sprintfdv" ref="893c5d316b5bf36278589ef6456c7b38" args="(d, fmt)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define s_sprintfdv </td>
<td>(</td>
<td class="paramtype">d, <tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">fmt&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td>&nbsp;&nbsp;&nbsp;s_sprintfdlv(d,fmt,fmt)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="514396dd60fa0621c83072091fb2a0cd"></a><!-- doxytag: member="tools.h::SQRT2" ref="514396dd60fa0621c83072091fb2a0cd" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SQRT2&nbsp;&nbsp;&nbsp;(1.4142136f) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="e42978afd835c3a1f70d409a1b5f5a39"></a><!-- doxytag: member="tools.h::SQRT3" ref="e42978afd835c3a1f70d409a1b5f5a39" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SQRT3&nbsp;&nbsp;&nbsp;(1.7320508f) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="0bbe613f42ae428d354c0ca95324f239"></a><!-- doxytag: member="tools.h::charbuf" ref="0bbe613f42ae428d354c0ca95324f239" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structdatabuf.html">databuf</a>&lt;char&gt; <a class="el" href="structdatabuf.html">charbuf</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="73df50f51f4e74910cd7a617f1ccd775"></a><!-- doxytag: member="tools.h::cvector" ref="73df50f51f4e74910cd7a617f1ccd775" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structvector.html">vector</a>&lt;char *&gt; <a class="el" href="structvector.html">cvector</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="ad8e9d2890d2ba3b17c9ed66843a2347"></a><!-- doxytag: member="tools.h::ivector" ref="ad8e9d2890d2ba3b17c9ed66843a2347" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structvector.html">vector</a>&lt;int&gt; <a class="el" href="structvector.html">ivector</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="7b9504fa7cfc476750a9b4b0f8ed6972"></a><!-- doxytag: member="tools.h::string" ref="7b9504fa7cfc476750a9b4b0f8ed6972" args="[_MAXDEFSTR]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef char <a class="el" href="tools_8h.html#7b9504fa7cfc476750a9b4b0f8ed6972">string</a>[_MAXDEFSTR] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="65f85814a8290f9797005d3b28e7e5fc"></a><!-- doxytag: member="tools.h::uchar" ref="65f85814a8290f9797005d3b28e7e5fc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned char <a class="el" href="tools_8h.html#65f85814a8290f9797005d3b28e7e5fc">uchar</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="3523e52f56486d52e182e506d4dc3f80"></a><!-- doxytag: member="tools.h::ucharbuf" ref="3523e52f56486d52e182e506d4dc3f80" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structdatabuf.html">databuf</a>&lt;<a class="el" href="tools_8h.html#65f85814a8290f9797005d3b28e7e5fc">uchar</a>&gt; <a class="el" href="structdatabuf.html">ucharbuf</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="91ad9478d81a7aaf2593e8d9c3d06a14"></a><!-- doxytag: member="tools.h::uint" ref="91ad9478d81a7aaf2593e8d9c3d06a14" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned int <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="b95f123a6c9bcfee6a343170ef8c5f69"></a><!-- doxytag: member="tools.h::ushort" ref="b95f123a6c9bcfee6a343170ef8c5f69" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned short <a class="el" href="tools_8h.html#b95f123a6c9bcfee6a343170ef8c5f69">ushort</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="bc65abbab0bd1a2263996f3659de6902"></a><!-- doxytag: member="tools.h::usvector" ref="bc65abbab0bd1a2263996f3659de6902" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="structvector.html">vector</a>&lt;<a class="el" href="tools_8h.html#b95f123a6c9bcfee6a343170ef8c5f69">ushort</a>&gt; <a class="el" href="structvector.html">usvector</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="fba80b88be9834307bdb3a46b2786af1"></a><!-- doxytag: member="tools.h::addpackagedir" ref="fba80b88be9834307bdb3a46b2786af1" args="(const char *dir)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void addpackagedir </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>dir</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="bcae6b01c5781ee77d5a40b4606b7280"></a><!-- doxytag: member="tools.h::behindpath" ref="bcae6b01c5781ee77d5a40b4606b7280" args="(const char *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* behindpath </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="a630500a89a9c2553ae519d05394af2e"></a><!-- doxytag: member="tools.h::cmpb" ref="a630500a89a9c2553ae519d05394af2e" args="(void *b, int n, enet_uint32 c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmpb </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname"> <em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>n</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_uint32&nbsp;</td>
<td class="paramname"> <em>c</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="a585c269381eb4aa95e56edbfa9b4664"></a><!-- doxytag: member="tools.h::cmpf" ref="a585c269381eb4aa95e56edbfa9b4664" args="(char *fn, enet_uint32 c)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool cmpf </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>fn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">enet_uint32&nbsp;</td>
<td class="paramname"> <em>c</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="ed299a0b7944880d7c3e07a8c88bf2a6"></a><!-- doxytag: member="tools.h::createdir" ref="ed299a0b7944880d7c3e07a8c88bf2a6" args="(const char *path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool createdir </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>path</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="60b00cfd0b3f8ca822b9b05a3c2b6a32"></a><!-- doxytag: member="tools.h::delfile" ref="60b00cfd0b3f8ca822b9b05a3c2b6a32" args="(const char *path)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool delfile </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>path</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="a7f1f470c11182bb991e7c152bff438b"></a><!-- doxytag: member="tools.h::endianswap" ref="a7f1f470c11182bb991e7c152bff438b" args="(void *, int, int)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void endianswap </td>
<td>(</td>
<td class="paramtype">void *&nbsp;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="ecf572462aea03f9bd3214b35b35bcfd"></a><!-- doxytag: member="tools.h::fileexists" ref="ecf572462aea03f9bd3214b35b35bcfd" args="(const char *path, const char *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool fileexists </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="84bd90ebe1218403ba00c72bf37f949d"></a><!-- doxytag: member="tools.h::findfile" ref="84bd90ebe1218403ba00c72bf37f949d" args="(const char *filename, const char *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* findfile </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="52cc6ae98f74ae4dc91685a77e7457c2"></a><!-- doxytag: member="tools.h::formatstring" ref="52cc6ae98f74ae4dc91685a77e7457c2" args="(char *d, const char *fmt, va_list v)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void formatstring </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">va_list&nbsp;</td>
<td class="paramname"> <em>v</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="2a6438c3095ffd3d54b44a8bcf6de4b2"></a><!-- doxytag: member="tools.h::getfilesize" ref="2a6438c3095ffd3d54b44a8bcf6de4b2" args="(const char *filename)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int getfilesize </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>filename</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="dee2eff581fabae0d7d4443658b2a4d1"></a><!-- doxytag: member="tools.h::htcmp" ref="dee2eff581fabae0d7d4443658b2a4d1" args="(uint x, uint y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static bool htcmp </td>
<td>(</td>
<td class="paramtype"><a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
<td class="paramname"> <em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
<td class="paramname"> <em>y</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="367b7bbd306f1c03db30db08794f0274"></a><!-- doxytag: member="tools.h::htcmp" ref="367b7bbd306f1c03db30db08794f0274" args="(int x, int y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static bool htcmp </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>y</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="2bd8c87b803e0092c6b3d74ebe5d0ed2"></a><!-- doxytag: member="tools.h::htcmp" ref="2bd8c87b803e0092c6b3d74ebe5d0ed2" args="(const char *x, const char *y)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static bool htcmp </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>x</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>y</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="886cdd6f90aad9c58196d715a0c9e7c8"></a><!-- doxytag: member="tools.h::hthash" ref="886cdd6f90aad9c58196d715a0c9e7c8" args="(uint key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> hthash </td>
<td>(</td>
<td class="paramtype"><a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a>&nbsp;</td>
<td class="paramname"> <em>key</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="d69df4c94209adc77432aa9f6e29efe4"></a><!-- doxytag: member="tools.h::hthash" ref="d69df4c94209adc77432aa9f6e29efe4" args="(int key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> hthash </td>
<td>(</td>
<td class="paramtype">int&nbsp;</td>
<td class="paramname"> <em>key</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="963bd16ff4497dc99ebd97a2513ec69d"></a><!-- doxytag: member="tools.h::hthash" ref="963bd16ff4497dc99ebd97a2513ec69d" args="(const char *key)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="tools_8h.html#91ad9478d81a7aaf2593e8d9c3d06a14">uint</a> hthash </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>key</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="5b558a8aaf8c51c100e23e6b16645f25"></a><!-- doxytag: member="tools.h::isbigendian" ref="5b558a8aaf8c51c100e23e6b16645f25" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool isbigendian </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="7c968cc3db40a5efcab37816e2f6ec06"></a><!-- doxytag: member="tools.h::listdir" ref="7c968cc3db40a5efcab37816e2f6ec06" args="(const char *dir, const char *ext, vector&lt; char * &gt; &amp;files)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool listdir </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>ext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structvector.html">vector</a>&lt; char * &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>files</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="4af27b63135b15739954464eb1042847"></a><!-- doxytag: member="tools.h::listfiles" ref="4af27b63135b15739954464eb1042847" args="(const char *dir, const char *ext, vector&lt; char * &gt; &amp;files)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int listfiles </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>dir</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>ext</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structvector.html">vector</a>&lt; char * &gt; &amp;&nbsp;</td>
<td class="paramname"> <em>files</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="ff9fe5efd1613cefd9a06d6e3660c696"></a><!-- doxytag: member="tools.h::loadfile" ref="ff9fe5efd1613cefd9a06d6e3660c696" args="(const char *fn, int *size, const char *mode=NULL)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* loadfile </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>fn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int *&nbsp;</td>
<td class="paramname"> <em>size</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>mode</em> = <code>NULL</code></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="c3e002abe462d6f38382b30c24027357"></a><!-- doxytag: member="tools.h::max" ref="c3e002abe462d6f38382b30c24027357" args="(T a, T b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">static T max </td>
<td>(</td>
<td class="paramtype">T&nbsp;</td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&nbsp;</td>
<td class="paramname"> <em>b</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="8fe7ba335a6cc12207810c798365ac85"></a><!-- doxytag: member="tools.h::min" ref="8fe7ba335a6cc12207810c798365ac85" args="(T a, T b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">static T min </td>
<td>(</td>
<td class="paramtype">T&nbsp;</td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T&nbsp;</td>
<td class="paramname"> <em>b</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="f7652bb4059e96e685f0c5d24c3896c2"></a><!-- doxytag: member="tools.h::newstring" ref="f7652bb4059e96e685f0c5d24c3896c2" args="(const char *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* newstring </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="56c93b56fafbf376f53c5a375f4d89f5"></a><!-- doxytag: member="tools.h::newstring" ref="56c93b56fafbf376f53c5a375f4d89f5" args="(const char *s, size_t l)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* newstring </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>l</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="14249f995b3fa2f5cba696945f5d46e1"></a><!-- doxytag: member="tools.h::newstring" ref="14249f995b3fa2f5cba696945f5d46e1" args="(size_t l)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* newstring </td>
<td>(</td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>l</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="82608fdd246e8a9d263034d18644828a"></a><!-- doxytag: member="tools.h::newstringbuf" ref="82608fdd246e8a9d263034d18644828a" args="(const char *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* newstringbuf </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="52231c8ec32cfdd19b32da88d0c3f06e"></a><!-- doxytag: member="tools.h::newstringbuf" ref="52231c8ec32cfdd19b32da88d0c3f06e" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* newstringbuf </td>
<td>(</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="f0cf0ecdf7866164279f3e12f30f488f"></a><!-- doxytag: member="tools.h::openfile" ref="f0cf0ecdf7866164279f3e12f30f488f" args="(const char *filename, const char *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FILE* openfile </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="da563230f3da681bd1af33fe71751915"></a><!-- doxytag: member="tools.h::opengzfile" ref="da563230f3da681bd1af33fe71751915" args="(const char *filename, const char *mode)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">gzFile opengzfile </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>filename</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="08ffcd7eadad86ab702d750e535c4cad"></a><!-- doxytag: member="tools.h::parentdir" ref="08ffcd7eadad86ab702d750e535c4cad" args="(const char *directory)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* parentdir </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>directory</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="1648d219856b9a91e824b0014c972c24"></a><!-- doxytag: member="tools.h::path" ref="1648d219856b9a91e824b0014c972c24" args="(const char *s, bool copy)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* path </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&nbsp;</td>
<td class="paramname"> <em>copy</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="24d305bbb81130b31f3dac5cf4d94fb5"></a><!-- doxytag: member="tools.h::path" ref="24d305bbb81130b31f3dac5cf4d94fb5" args="(char *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* path </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>s</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="6cc12a98be3ff0088a823b638aa42b51"></a><!-- doxytag: member="tools.h::round" ref="6cc12a98be3ff0088a823b638aa42b51" args="(float x)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static float round </td>
<td>(</td>
<td class="paramtype">float&nbsp;</td>
<td class="paramname"> <em>x</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="0cb56bfd45a5c0d44872c4e7fc151712"></a><!-- doxytag: member="tools.h::s_strcat" ref="0cb56bfd45a5c0d44872c4e7fc151712" args="(char *d, const char *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* s_strcat </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="27d68624a81428653155ea9c0e6e0a65"></a><!-- doxytag: member="tools.h::s_strcpy" ref="27d68624a81428653155ea9c0e6e0a65" args="(char *d, const char *s)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* s_strcpy </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="b95eafa806ccc8a494be3e92188f111a"></a><!-- doxytag: member="tools.h::s_strncpy" ref="b95eafa806ccc8a494be3e92188f111a" args="(char *d, const char *s, size_t m)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">char* s_strncpy </td>
<td>(</td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>d</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>m</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="b993442b367f45738bee4a12198bbee0"></a><!-- doxytag: member="tools.h::sethomedir" ref="b993442b367f45738bee4a12198bbee0" args="(const char *dir)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void sethomedir </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>dir</em> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="f065005381391da934b3f9d7d41dedb8"></a><!-- doxytag: member="tools.h::swap" ref="f065005381391da934b3f9d7d41dedb8" args="(T &amp;a, T &amp;b)" -->
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
<table class="memname">
<tr>
<td class="memname">static void swap </td>
<td>(</td>
<td class="paramtype">T &amp;&nbsp;</td>
<td class="paramname"> <em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">T &amp;&nbsp;</td>
<td class="paramname"> <em>b</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Mon Dec 8 21:41:33 2008 for AssaultCube by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
</body>
</html>