about summary refs log tree commit diff
path: root/docs/output/files2
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-05 21:37:33 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-05 21:37:33 +0000
commit0fceb1cf1ab9887040f08f0abf646ef318a65ae3 (patch)
treef5891363037885b576336f9a44189a7dc9695256 /docs/output/files2
parent61bfe2d70cae6be8c4086a210a5451135ccca9ea (diff)
downloadzcatch-0fceb1cf1ab9887040f08f0abf646ef318a65ae3.tar.gz
zcatch-0fceb1cf1ab9887040f08f0abf646ef318a65ae3.zip
added documentation
Diffstat (limited to 'docs/output/files2')
-rw-r--r--docs/output/files2/docs/client_time-txt.html39
-rw-r--r--docs/output/files2/docs/prediction-txt.html51
-rw-r--r--docs/output/files2/docs/server_op-txt.html69
-rw-r--r--docs/output/files2/docs/snapshots-txt.html63
-rw-r--r--docs/output/files2/e_if_client-h.html127
-rw-r--r--docs/output/files2/e_if_gfx-h.html139
-rw-r--r--docs/output/files2/e_if_inp-h.html73
-rw-r--r--docs/output/files2/e_if_modc-h.html69
-rw-r--r--docs/output/files2/e_if_mods-h.html71
-rw-r--r--docs/output/files2/e_if_msg-h.html59
-rw-r--r--docs/output/files2/e_if_other-h.html89
-rw-r--r--docs/output/files2/e_if_server-h.html59
-rw-r--r--docs/output/files2/e_if_snd-h.html53
-rw-r--r--docs/output/files2/e_system-h.html183
14 files changed, 1144 insertions, 0 deletions
diff --git a/docs/output/files2/docs/client_time-txt.html b/docs/output/files2/docs/client_time-txt.html
new file mode 100644
index 00000000..ff97b67e
--- /dev/null
+++ b/docs/output/files2/docs/client_time-txt.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Time on the client</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Time_on_the_client"></a>Time on the client</h1><div class=CBody><p>tick, intratick predtick, predintratick</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="../e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile id=MSelected>Time on the client</div></div><div class=MEntry><div class=MFile><a href="prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([1, 3, 6, 2], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/docs/prediction-txt.html b/docs/output/files2/docs/prediction-txt.html
new file mode 100644
index 00000000..893064fa
--- /dev/null
+++ b/docs/output/files2/docs/prediction-txt.html
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Prediction</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Prediction"></a>Prediction</h1><div class=CBody><p>The engine calls <a href="../e_if_modc-h.html#modc_predict" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">modc_predict</a> when reprediction is required.&nbsp; This happens usally when new data has arrived from the server.&nbsp; <a href="../e_if_modc-h.html#modc_predict" class=LFunction id=link2 onMouseOver="ShowTip(event, 'tt1', 'link2')" onMouseOut="HideTip('tt1')">modc_predict</a> should to prediction from the current snapshot and current snapshot tick (<a href="../e_if_client-h.html#client_tick" class=LFunction id=link3 onMouseOver="ShowTip(event, 'tt2', 'link3')" onMouseOut="HideTip('tt2')">client_tick</a> + 1) upto and including the tick returned by <a href="../e_if_client-h.html#client_predtick" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt3', 'link4')" onMouseOut="HideTip('tt3')">client_predtick</a>.</p><p>Predicted input sent to the server can be retrived by calling <a href="../e_if_client-h.html#client_get_input" class=LFunction id=link5 onMouseOver="ShowTip(event, 'tt4', 'link5')" onMouseOut="HideTip('tt4')">client_get_input</a> with the corresponding tick that you want the input for.&nbsp; Here is a simple example of how it might look.</p><blockquote><pre>void modc_predict()
+{
+  int tick;
+  prediction_reset();
+
+  for(tick = client_tick()+1; tick &lt;= client_predtick(); tick++)
+  {
+      MY_INPUT *input = (MY_INPUT *)client_get_input();
+      if(input)
+          prediction_apply_input(input);
+      prediction_tick();
+  }
+}</pre></blockquote></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="../e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile id=MSelected>Prediction</div></div><div class=MEntry><div class=MFile><a href="snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([1, 3, 6, 2], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_predict()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_tick()</td></tr></table></blockquote>Returns the tick of the current snapshot.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_predtick()</td></tr></table></blockquote>Returns the current predicted tick.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int *client_get_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>tick</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/docs/server_op-txt.html b/docs/output/files2/docs/server_op-txt.html
new file mode 100644
index 00000000..aa25fe67
--- /dev/null
+++ b/docs/output/files2/docs/server_op-txt.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Server Operation</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Server_Operation"></a>Server Operation</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Server_Operation" >Server Operation</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Init" >Init</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Running" >Running</a></td><td class=SDescription>Here is an graph over how the server operates on each refresh.</td></tr><tr class="SSection"><td class=SEntry><a href="#Reinit" >Reinit</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Shutdown" >Shutdown</a></td><td class=SDescription></td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Init"></a>Init</h2><div class=CBody></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Running"></a>Running</h2><div class=CBody><p>Here is an graph over how the server operates on each refresh.</p><blockquote><pre>load map
+init mod
+
+while running
+    if map change then
+        load new map
+        shutdown mod &lt;mods_shutdown&gt;
+        reset clients to init state
+        init mod &lt;mods_init&gt;
+    end if
+
+    if new tick then
+        call &lt;mods_tick&gt;
+        for each client do
+            create snapshot &lt;mods_snap&gt;
+            send snapshot
+        end for
+    end
+
+    process new network messages
+end while
+
+unload map</pre></blockquote></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Reinit"></a>Reinit</h2><div class=CBody></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Shutdown"></a>Shutdown</h2><div class=CBody></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="../e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile id=MSelected>Server Operation</div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([1, 3, 6, 2], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/docs/snapshots-txt.html b/docs/output/files2/docs/snapshots-txt.html
new file mode 100644
index 00000000..9654118a
--- /dev/null
+++ b/docs/output/files2/docs/snapshots-txt.html
@@ -0,0 +1,63 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Snapshots</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Snapshots"></a>Snapshots</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Snapshots" >Snapshots</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Overview" >Overview</a></td><td class=SDescription></td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Definitions" >Definitions</a></td><td class=SDescription></td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Structure" >Structure</a></td><td class=SDescription>A snapshot contains a series of items. </td></tr><tr class="SSection"><td class=SEntry><a href="#Server_Side" >Server Side</a></td><td class=SDescription></td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Creating" >Creating</a></td><td class=SDescription>Items can be added when <a href="../e_if_mods-h.html#mods_snap" class=LFunction id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mods_snap</a> is called using the <a href="../e_if_other-h.html#snap_new_item" class=LFunction id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">snap_new_item</a> function to insert an item to the snapshot. </td></tr><tr class="SSection"><td class=SEntry><a href="#Client_Side" >Client Side</a></td><td class=SDescription></td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Inspection" >Inspection</a></td><td class=SDescription><a href="../e_if_modc-h.html#modc_newsnapshot" class=LFunction id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">modc_newsnapshot</a> is called when a new snapshot has arrived for processing. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Rendering" >Rendering</a></td><td class=SDescription>DOCTODO</td></tr><tr class="SSection"><td class=SEntry><a href="#In_depth" >In depth</a></td><td class=SDescription></td></tr><tr class="SGeneric SIndent1 SMarked"><td class=SEntry><a href="#Compression" >Compression</a></td><td class=SDescription>After a snapshot have been created, compression is applyed to reduce the bandwidth. </td></tr><tr class="SGeneric SIndent1"><td class=SEntry><a href="#Interval" >Interval</a></td><td class=SDescription>The interval for how often a client recives a snapshot changes during the course of the connection. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Overview"></a>Overview</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGeneric"><td class=SEntry><a href="#Definitions" >Definitions</a></td><td class=SDescription></td></tr><tr class="SGeneric SMarked"><td class=SEntry><a href="#Structure" >Structure</a></td><td class=SDescription>A snapshot contains a series of items. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Definitions"></a>Definitions</h3><div class=CBody><ul><li><b>Snapshot</b>.&nbsp; A is a serialized game state from which a client can render the game from.&nbsp; They are sent from the server at a regular interval and is created specificly for each client in order to reduce bandwidth.</li><li><b>Delta Snapshot</b>.&nbsp; A set of data that can be applied to a snapshot in order to create a new snapshot with the updated game state.</li></ul></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Structure"></a>Structure</h3><div class=CBody><p>A snapshot contains a series of items.&nbsp; Each item have a type, id and data.</p><ul><li><b>Type</b>.&nbsp; Type of item.&nbsp; Could be projectile or character for example.</li><li><b>Id</b>.&nbsp; A unique id so the client can identify the item between two snapshots.</li><li><b>Data</b>.&nbsp; A series of 32-bit integers that contains the per item type specific data.</li></ul></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Server_Side"></a>Server Side</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGeneric"><td class=SEntry><a href="#Creating" >Creating</a></td><td class=SDescription>Items can be added when <a href="../e_if_mods-h.html#mods_snap" class=LFunction id=link4 onMouseOver="ShowTip(event, 'tt1', 'link4')" onMouseOut="HideTip('tt1')">mods_snap</a> is called using the <a href="../e_if_other-h.html#snap_new_item" class=LFunction id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">snap_new_item</a> function to insert an item to the snapshot. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Creating"></a>Creating</h3><div class=CBody><p>Items can be added when <a href="../e_if_mods-h.html#mods_snap" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">mods_snap</a> is called using the <a href="../e_if_other-h.html#snap_new_item" class=LFunction id=link7 onMouseOver="ShowTip(event, 'tt2', 'link7')" onMouseOut="HideTip('tt2')">snap_new_item</a> function to insert an item to the snapshot.&nbsp; The server can not inspect the snapshot that is in progress of being created.</p></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Client_Side"></a>Client Side</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGeneric"><td class=SEntry><a href="#Inspection" >Inspection</a></td><td class=SDescription><a href="../e_if_modc-h.html#modc_newsnapshot" class=LFunction id=link8 onMouseOver="ShowTip(event, 'tt3', 'link8')" onMouseOut="HideTip('tt3')">modc_newsnapshot</a> is called when a new snapshot has arrived for processing. </td></tr><tr class="SGeneric SMarked"><td class=SEntry><a href="#Rendering" >Rendering</a></td><td class=SDescription>DOCTODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Inspection"></a>Inspection</h3><div class=CBody><p><a href="../e_if_modc-h.html#modc_newsnapshot" class=LFunction id=link9 onMouseOver="ShowTip(event, 'tt3', 'link9')" onMouseOut="HideTip('tt3')">modc_newsnapshot</a> is called when a new snapshot has arrived for processing.&nbsp; <a href="../e_if_other-h.html#snap_num_items" class=LFunction id=link10 onMouseOver="ShowTip(event, 'tt4', 'link10')" onMouseOut="HideTip('tt4')">snap_num_items</a>, <a href="../e_if_other-h.html#snap_get_item" class=LFunction id=link11 onMouseOver="ShowTip(event, 'tt5', 'link11')" onMouseOut="HideTip('tt5')">snap_get_item</a> and <a href="../e_if_other-h.html#snap_find_item" class=LFunction id=link12 onMouseOver="ShowTip(event, 'tt6', 'link12')" onMouseOut="HideTip('tt6')">snap_find_item</a> can be used to inspect the current and previous snapshot.&nbsp; This can be done anywhere while the client is running and not just in the <a href="../e_if_modc-h.html#modc_newsnapshot" class=LFunction id=link13 onMouseOver="ShowTip(event, 'tt3', 'link13')" onMouseOut="HideTip('tt3')">modc_newsnapshot</a> function.&nbsp; The client can also call <a href="../e_if_other-h.html#snap_invalidate_item" class=LFunction id=link14 onMouseOver="ShowTip(event, 'tt7', 'link14')" onMouseOut="HideTip('tt7')">snap_invalidate_item</a> if an item contains improper information that could harm the operation of the client.&nbsp; This should however be done in <a href="../e_if_modc-h.html#modc_newsnapshot" class=LFunction id=link15 onMouseOver="ShowTip(event, 'tt3', 'link15')" onMouseOut="HideTip('tt3')">modc_newsnapshot</a> to assure that no bad data propagates into the rest of the client.</p></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Rendering"></a>Rendering</h3><div class=CBody><p>DOCTODO</p></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="In_depth"></a>In depth</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGeneric"><td class=SEntry><a href="#Compression" >Compression</a></td><td class=SDescription>After a snapshot have been created, compression is applyed to reduce the bandwidth. </td></tr><tr class="SGeneric SMarked"><td class=SEntry><a href="#Interval" >Interval</a></td><td class=SDescription>The interval for how often a client recives a snapshot changes during the course of the connection. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Compression"></a>Compression</h3><div class=CBody><p>After a snapshot have been created, compression is applyed to reduce the bandwidth.&nbsp; There are several steps taken inorder to reduce the size of the size of the snapshot.</p><ul><li><b>Delta</b>.&nbsp; The server looks in a clients backlog of snapshots to find a previous acked snapshot.&nbsp; It then compares the two snapshots and creates a delta snapshot containing the changes from the previous acked snapshot to the new one.</li><li><b>Variable Integers</b>.&nbsp; The delta snapshot which is only consisting of 32-bit integers is then encoded into variable integers similar to UTF-8.&nbsp; Each byte has a bit that tells the decoder that it needs one more byte to decode the 32-bit integer.&nbsp; The first byte also contains a bit for telling the sign of the integer.</li></ul><blockquote><pre>ESDDDDDD EDDDDDDD EDDDDDDD EDDDDDDD</pre></blockquote><blockquote><pre>E = extend
+S = sign
+D = data bit</pre></blockquote><ul><li><b>Huffman</b>.&nbsp; The last step is to compress the buffer with a huffman encoder.&nbsp; It uses a static tree that is weighted towards 0 because it&rsquo;s where most of the data will be because of the delta compression.</li></ul></div></div></div>
+
+<div class="CGeneric"><div class=CTopic><h3 class=CTitle><a name="Interval"></a>Interval</h3><div class=CBody><p>The interval for how often a client recives a snapshot changes during the course of the connection.&nbsp; There are three different snapshot rates.</p><ul><li><b>Init</b>.&nbsp; 5 snapshots per second.&nbsp; Used when a client is connecting and used until the client has acknowlaged a snapshot.&nbsp; This mechanism is used because the first snapshot because no delta compression can be done.</li><li><b>Full</b>.&nbsp; Snapshot for every tick or every even tick depending on server configuration.&nbsp; This is used during normal gameplay and everything is running smooth.</li><li><b>Recovery</b>.&nbsp; 1 snapshot each second.&nbsp; A client enters recovery rate when it havn&rsquo;t acknowlaged a snapshot over 1 second.&nbsp; This is to let the client to beable to recover if it has a slow connection.</li></ul></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="../e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="../e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile id=MSelected>Snapshots</div></div><div class=MEntry><div class=MFile><a href="server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="../e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([1, 3, 6, 2], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_snap(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called to create the snapshot for a client.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_new_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new item that should be sent.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_newsnapshot()</td></tr></table></blockquote>Called when the client progressed to a new snapshot.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snap_num_items(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check the number of items in a snapshot.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_get_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>index,</td></tr><tr><td></td><td class=PType nowrap>SNAP_ITEM&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets an item from a snapshot.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_find_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Searches a snapshot for an item.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_invalidate_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Marks an item as invalid byt setting type and id to 0xffffffff.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_client-h.html b/docs/output/files2/e_if_client-h.html
new file mode 100644
index 00000000..dae39f94
--- /dev/null
+++ b/docs/output/files2/e_if_client-h.html
@@ -0,0 +1,127 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Client Interface</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Client_Interface"></a>Client Interface</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Client_Interface" >Client Interface</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent2 SMarked"><td class=SEntry><a href="#Client_States" >Client States</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent2"><td class=SEntry><a href="#Image_Formats" >Image Formats</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent2 SMarked"><td class=SEntry><a href="#Texture_Loading_Flags" >Texture Loading Flags</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent2"><td class=SEntry><a href="#Server_Browser_Sorting" >Server Browser Sorting</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Structures" >Structures</a></td><td class=SDescription></td></tr><tr class="SClass"><td class=SEntry><a href="#SERVER_INFO_PLAYER" >SERVER_INFO_PLAYER</a></td><td class=SDescription></td></tr><tr class="SClass"><td class=SEntry><a href="#SERVER_INFO" >SERVER_INFO</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Time" >Time</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_tick" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">client_tick</a></td><td class=SDescription>Returns the tick of the current snapshot.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_intratick" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">client_intratick</a></td><td class=SDescription>Returns the current intratick.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_predtick" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">client_predtick</a></td><td class=SDescription>Returns the current predicted tick.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_predintratick" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">client_predintratick</a></td><td class=SDescription>Returns the current preticted intra tick.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_ticktime" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">client_ticktime</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_tickspeed" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">client_tickspeed</a></td><td class=SDescription>Returns how many ticks per second the client is doing.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_frametime" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">client_frametime</a></td><td class=SDescription>Returns how long time the last frame took to process.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_localtime" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">client_localtime</a></td><td class=SDescription>Returns the clients local time.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Server_Browser" >Server Browser</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_serverbrowse_refresh" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">client_serverbrowse_refresh</a></td><td class=SDescription>Issues a refresh of the server browser.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_serverbrowse_sorted_get" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">client_serverbrowse_sorted_get</a></td><td class=SDescription>Returns server info from the sorted list.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_serverbrowse_sorted_num" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">client_serverbrowse_sorted_num</a></td><td class=SDescription>Returns how many servers there are in the sorted list.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_serverbrowse_get" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">client_serverbrowse_get</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_serverbrowse_num" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">client_serverbrowse_num</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_serverbrowse_num_requests" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">client_serverbrowse_num_requests</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_serverbrowse_update" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">client_serverbrowse_update</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_serverbrowse_lan" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">client_serverbrowse_lan</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Actions" >Actions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_connect" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">client_connect</a></td><td class=SDescription>Connects to a server at the specified address.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_disconnect" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">client_disconnect</a></td><td class=SDescription>Disconnects from the current server.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_quit" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">client_quit</a></td><td class=SDescription>Tells to client to shutdown.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_rcon" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">client_rcon</a></td><td class=SDescription>Sends a command to the server to execute on it&rsquo;s console.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_rcon_auth" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">client_rcon_auth</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_rcon_authed" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">client_rcon_authed</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Other" >Other</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_get_input" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">client_get_input</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_direct_input" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">client_direct_input</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_error_string" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">client_error_string</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_connection_problems" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">client_connection_problems</a></td><td class=SDescription>Returns 1 if the client is connection problems.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_state" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">client_state</a></td><td class=SDescription>Returns the state of the client.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_mapdownload_amount" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">client_mapdownload_amount</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_mapdownload_totalsize" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">client_mapdownload_totalsize</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#client_save_line" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">client_save_line</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Constants"></a>Constants</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Constants" >Constants</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1 SMarked"><td class=SEntry><a href="#Client_States" >Client States</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1"><td class=SEntry><a href="#Image_Formats" >Image Formats</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1 SMarked"><td class=SEntry><a href="#Texture_Loading_Flags" >Texture Loading Flags</a></td><td class=SDescription></td></tr><tr class="SConstant SIndent1"><td class=SEntry><a href="#Server_Browser_Sorting" >Server Browser Sorting</a></td><td class=SDescription></td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Constants"></a>Constants</h3></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Client_States"></a>Client States</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry><a name="CLIENTSTATE_OFFLINE"></a>CLIENTSTATE_OFFLINE</td><td class=CDLDescription>The client is offline.</td></tr><tr><td class=CDLEntry><a name="CLIENTSTATE_CONNECTING"></a>CLIENTSTATE_CONNECTING</td><td class=CDLDescription>The client is trying to connect to a server.</td></tr><tr><td class=CDLEntry><a name="CLIENTSTATE_LOADING"></a>CLIENTSTATE_LOADING</td><td class=CDLDescription>The client has connected to a server and is loading resources.</td></tr><tr><td class=CDLEntry><a name="CLIENTSTATE_ONLINE"></a>CLIENTSTATE_ONLINE</td><td class=CDLDescription>The client is connected to a server and running the game.</td></tr><tr><td class=CDLEntry><a name="CLIENTSTATE_QUITING"></a>CLIENTSTATE_QUITING</td><td class=CDLDescription>The client is quiting.</td></tr></table></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Image_Formats"></a>Image Formats</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry><a name="IMG_AUTO"></a>IMG_AUTO</td><td class=CDLDescription>Lets the engine choose the format.</td></tr><tr><td class=CDLEntry><a name="IMG_RGB"></a>IMG_RGB</td><td class=CDLDescription>8-Bit uncompressed RGB</td></tr><tr><td class=CDLEntry><a name="IMG_RGBA"></a>IMG_RGBA</td><td class=CDLDescription>8-Bit uncompressed RGBA</td></tr><tr><td class=CDLEntry><a name="IMG_ALPHA"></a>IMG_ALPHA</td><td class=CDLDescription>8-Bit uncompressed alpha</td></tr></table></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Texture_Loading_Flags"></a>Texture Loading Flags</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry><a name="TEXLOAD_NORESAMPLE"></a>TEXLOAD_NORESAMPLE</td><td class=CDLDescription>Prevents the texture from any resampling</td></tr></table></div></div></div>
+
+<div class="CConstant"><div class=CTopic><h3 class=CTitle><a name="Server_Browser_Sorting"></a>Server Browser Sorting</h3><div class=CBody><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry><a name="BROWSESORT_NAME"></a>BROWSESORT_NAME</td><td class=CDLDescription>Sort by name.</td></tr><tr><td class=CDLEntry><a name="BROWSESORT_PING"></a>BROWSESORT_PING</td><td class=CDLDescription>Sort by ping.</td></tr><tr><td class=CDLEntry><a name="BROWSESORT_MAP"></a>BROWSESORT_MAP</td><td class=CDLDescription>Sort by map</td></tr><tr><td class=CDLEntry><a name="BROWSESORT_GAMETYPE"></a>BROWSESORT_GAMETYPE</td><td class=CDLDescription>Sort by game type.&nbsp; DM, TDM etc.</td></tr><tr><td class=CDLEntry><a name="BROWSESORT_PROGRESSION"></a>BROWSESORT_PROGRESSION</td><td class=CDLDescription>Sort by progression.</td></tr><tr><td class=CDLEntry><a name="BROWSESORT_NUMPLAYERS"></a>BROWSESORT_NUMPLAYERS</td><td class=CDLDescription>Sort after how many players there are on the server.</td></tr></table></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Structures"></a>Structures</h2><div class=CBody></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="SERVER_INFO_PLAYER"></a>SERVER_INFO_PLAYER</h2><div class=CBody></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="SERVER_INFO"></a>SERVER_INFO</h2><div class=CBody></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Functions"></a>Functions</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Time" >Time</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_tick" id=link31 onMouseOver="ShowTip(event, 'tt1', 'link31')" onMouseOut="HideTip('tt1')">client_tick</a></td><td class=SDescription>Returns the tick of the current snapshot.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_intratick" id=link32 onMouseOver="ShowTip(event, 'tt2', 'link32')" onMouseOut="HideTip('tt2')">client_intratick</a></td><td class=SDescription>Returns the current intratick.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_predtick" id=link33 onMouseOver="ShowTip(event, 'tt3', 'link33')" onMouseOut="HideTip('tt3')">client_predtick</a></td><td class=SDescription>Returns the current predicted tick.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_predintratick" id=link34 onMouseOver="ShowTip(event, 'tt4', 'link34')" onMouseOut="HideTip('tt4')">client_predintratick</a></td><td class=SDescription>Returns the current preticted intra tick.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_ticktime" id=link35 onMouseOver="ShowTip(event, 'tt5', 'link35')" onMouseOut="HideTip('tt5')">client_ticktime</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_tickspeed" id=link36 onMouseOver="ShowTip(event, 'tt6', 'link36')" onMouseOut="HideTip('tt6')">client_tickspeed</a></td><td class=SDescription>Returns how many ticks per second the client is doing.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_frametime" id=link37 onMouseOver="ShowTip(event, 'tt7', 'link37')" onMouseOut="HideTip('tt7')">client_frametime</a></td><td class=SDescription>Returns how long time the last frame took to process.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_localtime" id=link38 onMouseOver="ShowTip(event, 'tt8', 'link38')" onMouseOut="HideTip('tt8')">client_localtime</a></td><td class=SDescription>Returns the clients local time.</td></tr><tr class="SGroup"><td class=SEntry><a href="#Server_Browser" >Server Browser</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_serverbrowse_refresh" id=link39 onMouseOver="ShowTip(event, 'tt9', 'link39')" onMouseOut="HideTip('tt9')">client_serverbrowse_refresh</a></td><td class=SDescription>Issues a refresh of the server browser.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_serverbrowse_sorted_get" id=link40 onMouseOver="ShowTip(event, 'tt10', 'link40')" onMouseOut="HideTip('tt10')">client_serverbrowse_sorted_get</a></td><td class=SDescription>Returns server info from the sorted list.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_serverbrowse_sorted_num" id=link41 onMouseOver="ShowTip(event, 'tt11', 'link41')" onMouseOut="HideTip('tt11')">client_serverbrowse_sorted_num</a></td><td class=SDescription>Returns how many servers there are in the sorted list.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_serverbrowse_get" id=link42 onMouseOver="ShowTip(event, 'tt12', 'link42')" onMouseOut="HideTip('tt12')">client_serverbrowse_get</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_serverbrowse_num" id=link43 onMouseOver="ShowTip(event, 'tt13', 'link43')" onMouseOut="HideTip('tt13')">client_serverbrowse_num</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_serverbrowse_num_requests" id=link44 onMouseOver="ShowTip(event, 'tt14', 'link44')" onMouseOut="HideTip('tt14')">client_serverbrowse_num_requests</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_serverbrowse_update" id=link45 onMouseOver="ShowTip(event, 'tt15', 'link45')" onMouseOut="HideTip('tt15')">client_serverbrowse_update</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_serverbrowse_lan" id=link46 onMouseOver="ShowTip(event, 'tt16', 'link46')" onMouseOut="HideTip('tt16')">client_serverbrowse_lan</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup"><td class=SEntry><a href="#Actions" >Actions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_connect" id=link47 onMouseOver="ShowTip(event, 'tt17', 'link47')" onMouseOut="HideTip('tt17')">client_connect</a></td><td class=SDescription>Connects to a server at the specified address.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_disconnect" id=link48 onMouseOver="ShowTip(event, 'tt18', 'link48')" onMouseOut="HideTip('tt18')">client_disconnect</a></td><td class=SDescription>Disconnects from the current server.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_quit" id=link49 onMouseOver="ShowTip(event, 'tt19', 'link49')" onMouseOut="HideTip('tt19')">client_quit</a></td><td class=SDescription>Tells to client to shutdown.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_rcon" id=link50 onMouseOver="ShowTip(event, 'tt20', 'link50')" onMouseOut="HideTip('tt20')">client_rcon</a></td><td class=SDescription>Sends a command to the server to execute on it&rsquo;s console.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_rcon_auth" id=link51 onMouseOver="ShowTip(event, 'tt21', 'link51')" onMouseOut="HideTip('tt21')">client_rcon_auth</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_rcon_authed" id=link52 onMouseOver="ShowTip(event, 'tt22', 'link52')" onMouseOut="HideTip('tt22')">client_rcon_authed</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup"><td class=SEntry><a href="#Other" >Other</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_get_input" id=link53 onMouseOver="ShowTip(event, 'tt23', 'link53')" onMouseOut="HideTip('tt23')">client_get_input</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_direct_input" id=link54 onMouseOver="ShowTip(event, 'tt24', 'link54')" onMouseOut="HideTip('tt24')">client_direct_input</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_error_string" id=link55 onMouseOver="ShowTip(event, 'tt25', 'link55')" onMouseOut="HideTip('tt25')">client_error_string</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_connection_problems" id=link56 onMouseOver="ShowTip(event, 'tt26', 'link56')" onMouseOut="HideTip('tt26')">client_connection_problems</a></td><td class=SDescription>Returns 1 if the client is connection problems.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_state" id=link57 onMouseOver="ShowTip(event, 'tt27', 'link57')" onMouseOut="HideTip('tt27')">client_state</a></td><td class=SDescription>Returns the state of the client.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_mapdownload_amount" id=link58 onMouseOver="ShowTip(event, 'tt28', 'link58')" onMouseOut="HideTip('tt28')">client_mapdownload_amount</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_mapdownload_totalsize" id=link59 onMouseOver="ShowTip(event, 'tt29', 'link59')" onMouseOut="HideTip('tt29')">client_mapdownload_totalsize</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#client_save_line" id=link60 onMouseOver="ShowTip(event, 'tt30', 'link60')" onMouseOut="HideTip('tt30')">client_save_line</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Time"></a>Time</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_tick"></a>client_tick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_tick()</td></tr></table></blockquote><p>Returns the tick of the current snapshot.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_intratick"></a>client_intratick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_intratick()</td></tr></table></blockquote><p>Returns the current intratick.</p><h4 class=CHeading>Remarks</h4><p>The intratick is how far gone the time is from the previous snapshot to the current.&nbsp; 0.0 means that it on the previous snapshot.&nbsp; 0.5 means that it&rsquo;s halfway to the current, and 1.0 means that it is on the current snapshot.&nbsp; It can go beyond 1.0 which means that the client has started to extrapolate due to lack of data from the server.</p><h4 class=CHeading>See Also</h4><p><a href="#client_tick" class=LFunction id=link61 onMouseOver="ShowTip(event, 'tt1', 'link61')" onMouseOut="HideTip('tt1')">client_tick</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_predtick"></a>client_predtick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_predtick()</td></tr></table></blockquote><p>Returns the current predicted tick.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_predintratick"></a>client_predintratick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_predintratick()</td></tr></table></blockquote><p>Returns the current preticted intra tick.</p><h4 class=CHeading>Remarks</h4><p>This is the same as <a href="#client_intratick" class=LFunction id=link62 onMouseOver="ShowTip(event, 'tt2', 'link62')" onMouseOut="HideTip('tt2')">client_intratick</a> but for the current predicted tick and previous predicted tick.</p><h4 class=CHeading>See Also</h4><p><a href="#client_intratick" class=LFunction id=link63 onMouseOver="ShowTip(event, 'tt2', 'link63')" onMouseOut="HideTip('tt2')">client_intratick</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_ticktime"></a>client_ticktime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_ticktime()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_tickspeed"></a>client_tickspeed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_tickspeed()</td></tr></table></blockquote><p>Returns how many ticks per second the client is doing.</p><h4 class=CHeading>Remarks</h4><p>This will be the same as the server tick speed.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_frametime"></a>client_frametime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_frametime()</td></tr></table></blockquote><p>Returns how long time the last frame took to process.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_localtime"></a>client_localtime</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_localtime()</td></tr></table></blockquote><p>Returns the clients local time.</p><h4 class=CHeading>Remarks</h4><p>The local time is set to 0 when the client starts and when it connects to a server.&nbsp; Can be used for client side effects.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Server_Browser"></a>Server Browser</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_refresh"></a>client_serverbrowse_refresh</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_serverbrowse_refresh(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>lan</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Issues a refresh of the server browser.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>lan</td><td class=CDLDescription>Tells the function if it should do a LAN listing or an Internet listing.</td></tr></table><h4 class=CHeading>Remarks</h4><p>This will cause a broadcast on the local network if the lan argument is set.&nbsp; Otherwise it call ask all the master servers for their servers lists.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_sorted_get"></a>client_serverbrowse_sorted_get</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>SERVER_INFO *client_serverbrowse_sorted_get(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Returns server info from the sorted list.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Zero based index into the sorted list.</td></tr></table><h4 class=CHeading>See Also</h4><p><a href="#client_serverbrowse_sorted_num" class=LFunction id=link64 onMouseOver="ShowTip(event, 'tt11', 'link64')" onMouseOut="HideTip('tt11')">client_serverbrowse_sorted_num</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_sorted_num"></a>client_serverbrowse_sorted_num</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_sorted_num()</td></tr></table></blockquote><p>Returns how many servers there are in the sorted list.</p><h4 class=CHeading>See Also</h4><p><a href="#client_serverbrowse_sorted_get" class=LFunction id=link65 onMouseOver="ShowTip(event, 'tt10', 'link65')" onMouseOut="HideTip('tt10')">client_serverbrowse_sorted_get</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_get"></a>client_serverbrowse_get</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>SERVER_INFO *client_serverbrowse_get(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_num"></a>client_serverbrowse_num</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_num()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_num_requests"></a>client_serverbrowse_num_requests</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_num_requests()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_update"></a>client_serverbrowse_update</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void client_serverbrowse_update()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_serverbrowse_lan"></a>client_serverbrowse_lan</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_lan()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Actions"></a>Actions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_connect"></a>client_connect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_connect(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>address</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Connects to a server at the specified address.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>address</td><td class=CDLDescription>Address of the server to connect to.</td></tr></table><h4 class=CHeading>See Also</h4><p><a href="#client_disconnect" class=LFunction id=link66 onMouseOver="ShowTip(event, 'tt18', 'link66')" onMouseOut="HideTip('tt18')">client_disconnect</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_disconnect"></a>client_disconnect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void client_disconnect()</td></tr></table></blockquote><p>Disconnects from the current server.</p><h4 class=CHeading>Remarks</h4><p>Does nothing if not connected to a server.</p><h4 class=CHeading>See Also</h4><p>&lt;client_connect, client_quit&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_quit"></a>client_quit</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void client_quit()</td></tr></table></blockquote><p>Tells to client to shutdown.</p><h4 class=CHeading>See Also</h4><p><a href="#client_disconnect" class=LFunction id=link67 onMouseOver="ShowTip(event, 'tt18', 'link67')" onMouseOut="HideTip('tt18')">client_disconnect</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_rcon"></a>client_rcon</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_rcon(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>cmd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sends a command to the server to execute on it&rsquo;s console.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cmd</td><td class=CDLDescription>The command to send.</td></tr></table><h4 class=CHeading>Remarks</h4><p>The client must have the correct rcon password to connect.</p><h4 class=CHeading>See Also</h4><p>&lt;client_rcon_auth, client_rcon_authed&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_rcon_auth"></a>client_rcon_auth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_rcon_auth(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>password</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;client_rcon, client_rcon_authed&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_rcon_authed"></a>client_rcon_authed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_rcon_authed()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;client_rcon, client_rcon_auth&gt;</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Other"></a>Other</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_get_input"></a>client_get_input</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int *client_get_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>tick</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_direct_input"></a>client_direct_input</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_direct_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>input,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_error_string"></a>client_error_string</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *client_error_string()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_connection_problems"></a>client_connection_problems</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_connection_problems()</td></tr></table></blockquote><p>Returns 1 if the client is connection problems.</p><h4 class=CHeading>Remarks</h4><p>Connections problems usually means that the client havn&rsquo;t recvived any data from the server in a while.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_state"></a>client_state</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_state()</td></tr></table></blockquote><p>Returns the state of the client.</p><h4 class=CHeading>See Also</h4><p><a href="#Client_States" class=LConstant >Client States</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_mapdownload_amount"></a>client_mapdownload_amount</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_mapdownload_amount()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_mapdownload_totalsize"></a>client_mapdownload_totalsize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_mapdownload_totalsize()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_save_line"></a>client_save_line</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_save_line(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>line</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile id=MSelected>Client Interface</div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([2, 3, 6, 1], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_tick()</td></tr></table></blockquote>Returns the tick of the current snapshot.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_intratick()</td></tr></table></blockquote>Returns the current intratick.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_predtick()</td></tr></table></blockquote>Returns the current predicted tick.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_predintratick()</td></tr></table></blockquote>Returns the current preticted intra tick.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_ticktime()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_tickspeed()</td></tr></table></blockquote>Returns how many ticks per second the client is doing.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_frametime()</td></tr></table></blockquote>Returns how long time the last frame took to process.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float client_localtime()</td></tr></table></blockquote>Returns the clients local time.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_serverbrowse_refresh(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>lan</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Issues a refresh of the server browser.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>SERVER_INFO *client_serverbrowse_sorted_get(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Returns server info from the sorted list.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_sorted_num()</td></tr></table></blockquote>Returns how many servers there are in the sorted list.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>SERVER_INFO *client_serverbrowse_get(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_num()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_num_requests()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void client_serverbrowse_update()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_serverbrowse_lan()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_connect(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>address</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Connects to a server at the specified address.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void client_disconnect()</td></tr></table></blockquote>Disconnects from the current server.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void client_quit()</td></tr></table></blockquote>Tells to client to shutdown.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_rcon(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>cmd</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sends a command to the server to execute on it&rsquo;s console.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_rcon_auth(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>name,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>password</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_rcon_authed()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int *client_get_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>tick</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_direct_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>input,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *client_error_string()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_connection_problems()</td></tr></table></blockquote>Returns 1 if the client is connection problems.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_state()</td></tr></table></blockquote>Returns the state of the client.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_mapdownload_amount()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_mapdownload_totalsize()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void client_save_line(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>line</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_gfx-h.html b/docs/output/files2/e_if_gfx-h.html
new file mode 100644
index 00000000..70842f57
--- /dev/null
+++ b/docs/output/files2/e_if_gfx-h.html
@@ -0,0 +1,139 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Graphics</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Graphics"></a>Graphics</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Graphics" >Graphics</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Structures" >Structures</a></td><td class=SDescription></td></tr><tr class="SClass"><td class=SEntry><a href="#IMAGE_INFO" >IMAGE_INFO</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#IMAGE_INFO.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#IMAGE_INFO.width" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">width</a></td><td class=SDescription>Contains the width of the image</td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#IMAGE_INFO.height" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">height</a></td><td class=SDescription>Contains the height of the image</td></tr><tr class="SVariable SIndent2 SMarked"><td class=SEntry><a href="#IMAGE_INFO.format" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">format</a></td><td class=SDescription>Contains the format of the image. </td></tr><tr class="SVariable SIndent2"><td class=SEntry><a href="#IMAGE_INFO.data" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">data</a></td><td class=SDescription>Pointer to the image data.</td></tr><tr class="SClass"><td class=SEntry><a href="#VIDEO_MODE" >VIDEO_MODE</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Quads" >Quads</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_quads_begin" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a></td><td class=SDescription>Begins a quad drawing session.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_quads_end" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">gfx_quads_end</a></td><td class=SDescription>Ends a quad session.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_quads_setrotation" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">gfx_quads_setrotation</a></td><td class=SDescription>Sets the rotation to use when drawing a quad.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_quads_setsubset" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">gfx_quads_setsubset</a></td><td class=SDescription>Sets the uv coordinates to use.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_quads_setsubset_free" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">gfx_quads_setsubset_free</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_quads_drawTL" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">gfx_quads_drawTL</a></td><td class=SDescription>Draws a quad by specifying the top-left point.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_quads_draw" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">gfx_quads_draw</a></td><td class=SDescription>Draws a quad by specifying the center point.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_quads_draw_freeform" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">gfx_quads_draw_freeform</a></td><td class=SDescription>Draws a quad by specifying the corner points.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_quads_text" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">gfx_quads_text</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Lines" >Lines</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_lines_begin" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">gfx_lines_begin</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_lines_draw" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">gfx_lines_draw</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_lines_end" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">gfx_lines_end</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Text" >Text</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_text" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">gfx_text</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_text_width" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">gfx_text_width</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_text_color" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">gfx_text_color</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_text_set_default_font" id=link20 onMouseOver="ShowTip(event, 'tt20', 'link20')" onMouseOut="HideTip('tt20')">gfx_text_set_default_font</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Other" >Other</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_get_video_modes" id=link21 onMouseOver="ShowTip(event, 'tt21', 'link21')" onMouseOut="HideTip('tt21')">gfx_get_video_modes</a></td><td class=SDescription>Fetches a list of all the available video modes.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_load_png" id=link22 onMouseOver="ShowTip(event, 'tt22', 'link22')" onMouseOut="HideTip('tt22')">gfx_load_png</a></td><td class=SDescription>Loads a PNG image from disk.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_load_texture" id=link23 onMouseOver="ShowTip(event, 'tt23', 'link23')" onMouseOut="HideTip('tt23')">gfx_load_texture</a></td><td class=SDescription>Loads a texture from a file. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_load_texture_raw" id=link24 onMouseOver="ShowTip(event, 'tt24', 'link24')" onMouseOut="HideTip('tt24')">gfx_load_texture_raw</a></td><td class=SDescription>Loads a texture from memory.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_texture_set" id=link25 onMouseOver="ShowTip(event, 'tt25', 'link25')" onMouseOut="HideTip('tt25')">gfx_texture_set</a></td><td class=SDescription>Sets the active texture.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_unload_texture" id=link26 onMouseOver="ShowTip(event, 'tt26', 'link26')" onMouseOut="HideTip('tt26')">gfx_unload_texture</a></td><td class=SDescription>Unloads a texture.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_clear" id=link27 onMouseOver="ShowTip(event, 'tt27', 'link27')" onMouseOut="HideTip('tt27')">gfx_clear</a></td><td class=SDescription>Clears the screen with the specified color.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_screenaspect" id=link28 onMouseOver="ShowTip(event, 'tt28', 'link28')" onMouseOut="HideTip('tt28')">gfx_screenaspect</a></td><td class=SDescription>Returns the aspect ratio between width and height.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_screenwidth" id=link29 onMouseOver="ShowTip(event, 'tt29', 'link29')" onMouseOut="HideTip('tt29')">gfx_screenwidth</a></td><td class=SDescription>Returns the screen width.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_screenheight" id=link30 onMouseOver="ShowTip(event, 'tt30', 'link30')" onMouseOut="HideTip('tt30')">gfx_screenheight</a></td><td class=SDescription>Returns the screen height.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_mapscreen" id=link31 onMouseOver="ShowTip(event, 'tt31', 'link31')" onMouseOut="HideTip('tt31')">gfx_mapscreen</a></td><td class=SDescription>Specifies the coordinate system for the screen.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_blend_normal" id=link32 onMouseOver="ShowTip(event, 'tt32', 'link32')" onMouseOut="HideTip('tt32')">gfx_blend_normal</a></td><td class=SDescription>Set the active blending mode to normal (src, 1-src).</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_blend_additive" id=link33 onMouseOver="ShowTip(event, 'tt33', 'link33')" onMouseOut="HideTip('tt33')">gfx_blend_additive</a></td><td class=SDescription>Set the active blending mode to additive (src, one).</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_blend_none" id=link34 onMouseOver="ShowTip(event, 'tt34', 'link34')" onMouseOut="HideTip('tt34')">gfx_blend_none</a></td><td class=SDescription>Disables blending</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_setcolorvertex" id=link35 onMouseOver="ShowTip(event, 'tt35', 'link35')" onMouseOut="HideTip('tt35')">gfx_setcolorvertex</a></td><td class=SDescription>Sets the color of a vertex.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_setcolor" id=link36 onMouseOver="ShowTip(event, 'tt36', 'link36')" onMouseOut="HideTip('tt36')">gfx_setcolor</a></td><td class=SDescription>Sets the color of all the vertices.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_getscreen" id=link37 onMouseOver="ShowTip(event, 'tt37', 'link37')" onMouseOut="HideTip('tt37')">gfx_getscreen</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_memory_usage" id=link38 onMouseOver="ShowTip(event, 'tt38', 'link38')" onMouseOut="HideTip('tt38')">gfx_memory_usage</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_screenshot" id=link39 onMouseOver="ShowTip(event, 'tt39', 'link39')" onMouseOut="HideTip('tt39')">gfx_screenshot</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#gfx_clip_enable" id=link40 onMouseOver="ShowTip(event, 'tt40', 'link40')" onMouseOut="HideTip('tt40')">gfx_clip_enable</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#gfx_clip_disable" id=link41 onMouseOver="ShowTip(event, 'tt41', 'link41')" onMouseOut="HideTip('tt41')">gfx_clip_disable</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Structures"></a>Structures</h2><div class=CBody></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="IMAGE_INFO"></a>IMAGE_INFO</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#IMAGE_INFO.Variables" >Variables</a></td><td class=SDescription></td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#IMAGE_INFO.width" id=link42 onMouseOver="ShowTip(event, 'tt1', 'link42')" onMouseOut="HideTip('tt1')">width</a></td><td class=SDescription>Contains the width of the image</td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#IMAGE_INFO.height" id=link43 onMouseOver="ShowTip(event, 'tt2', 'link43')" onMouseOut="HideTip('tt2')">height</a></td><td class=SDescription>Contains the height of the image</td></tr><tr class="SVariable SIndent1 SMarked"><td class=SEntry><a href="#IMAGE_INFO.format" id=link44 onMouseOver="ShowTip(event, 'tt3', 'link44')" onMouseOut="HideTip('tt3')">format</a></td><td class=SDescription>Contains the format of the image. </td></tr><tr class="SVariable SIndent1"><td class=SEntry><a href="#IMAGE_INFO.data" id=link45 onMouseOver="ShowTip(event, 'tt4', 'link45')" onMouseOut="HideTip('tt4')">data</a></td><td class=SDescription>Pointer to the image data.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="IMAGE_INFO.Variables"></a>Variables</h3></div></div>
+
+<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="IMAGE_INFO.width"></a>width</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int width</td></tr></table></blockquote><p>Contains the width of the image</p></div></div></div>
+
+<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="IMAGE_INFO.height"></a>height</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int height</td></tr></table></blockquote><p>Contains the height of the image</p></div></div></div>
+
+<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="IMAGE_INFO.format"></a>format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int format</td></tr></table></blockquote><p>Contains the format of the image.&nbsp; See <a href="e_if_client-h.html#Image_Formats" class=LConstant >Image Formats</a> for more information.</p></div></div></div>
+
+<div class="CVariable"><div class=CTopic><h3 class=CTitle><a name="IMAGE_INFO.data"></a>data</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void *data</td></tr></table></blockquote><p>Pointer to the image data.</p></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="VIDEO_MODE"></a>VIDEO_MODE</h2><div class=CBody></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Functions"></a>Functions</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Quads" >Quads</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_quads_begin" id=link46 onMouseOver="ShowTip(event, 'tt5', 'link46')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a></td><td class=SDescription>Begins a quad drawing session.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_quads_end" id=link47 onMouseOver="ShowTip(event, 'tt6', 'link47')" onMouseOut="HideTip('tt6')">gfx_quads_end</a></td><td class=SDescription>Ends a quad session.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_quads_setrotation" id=link48 onMouseOver="ShowTip(event, 'tt7', 'link48')" onMouseOut="HideTip('tt7')">gfx_quads_setrotation</a></td><td class=SDescription>Sets the rotation to use when drawing a quad.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_quads_setsubset" id=link49 onMouseOver="ShowTip(event, 'tt8', 'link49')" onMouseOut="HideTip('tt8')">gfx_quads_setsubset</a></td><td class=SDescription>Sets the uv coordinates to use.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_quads_setsubset_free" id=link50 onMouseOver="ShowTip(event, 'tt9', 'link50')" onMouseOut="HideTip('tt9')">gfx_quads_setsubset_free</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_quads_drawTL" id=link51 onMouseOver="ShowTip(event, 'tt10', 'link51')" onMouseOut="HideTip('tt10')">gfx_quads_drawTL</a></td><td class=SDescription>Draws a quad by specifying the top-left point.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_quads_draw" id=link52 onMouseOver="ShowTip(event, 'tt11', 'link52')" onMouseOut="HideTip('tt11')">gfx_quads_draw</a></td><td class=SDescription>Draws a quad by specifying the center point.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_quads_draw_freeform" id=link53 onMouseOver="ShowTip(event, 'tt12', 'link53')" onMouseOut="HideTip('tt12')">gfx_quads_draw_freeform</a></td><td class=SDescription>Draws a quad by specifying the corner points.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_quads_text" id=link54 onMouseOver="ShowTip(event, 'tt13', 'link54')" onMouseOut="HideTip('tt13')">gfx_quads_text</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup"><td class=SEntry><a href="#Lines" >Lines</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_lines_begin" id=link55 onMouseOver="ShowTip(event, 'tt14', 'link55')" onMouseOut="HideTip('tt14')">gfx_lines_begin</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_lines_draw" id=link56 onMouseOver="ShowTip(event, 'tt15', 'link56')" onMouseOut="HideTip('tt15')">gfx_lines_draw</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_lines_end" id=link57 onMouseOver="ShowTip(event, 'tt16', 'link57')" onMouseOut="HideTip('tt16')">gfx_lines_end</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup"><td class=SEntry><a href="#Text" >Text</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_text" id=link58 onMouseOver="ShowTip(event, 'tt17', 'link58')" onMouseOut="HideTip('tt17')">gfx_text</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_text_width" id=link59 onMouseOver="ShowTip(event, 'tt18', 'link59')" onMouseOut="HideTip('tt18')">gfx_text_width</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_text_color" id=link60 onMouseOver="ShowTip(event, 'tt19', 'link60')" onMouseOut="HideTip('tt19')">gfx_text_color</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_text_set_default_font" id=link61 onMouseOver="ShowTip(event, 'tt20', 'link61')" onMouseOut="HideTip('tt20')">gfx_text_set_default_font</a></td><td class=SDescription>TODO</td></tr><tr class="SGroup"><td class=SEntry><a href="#Other" >Other</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_get_video_modes" id=link62 onMouseOver="ShowTip(event, 'tt21', 'link62')" onMouseOut="HideTip('tt21')">gfx_get_video_modes</a></td><td class=SDescription>Fetches a list of all the available video modes.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_load_png" id=link63 onMouseOver="ShowTip(event, 'tt22', 'link63')" onMouseOut="HideTip('tt22')">gfx_load_png</a></td><td class=SDescription>Loads a PNG image from disk.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_load_texture" id=link64 onMouseOver="ShowTip(event, 'tt23', 'link64')" onMouseOut="HideTip('tt23')">gfx_load_texture</a></td><td class=SDescription>Loads a texture from a file. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_load_texture_raw" id=link65 onMouseOver="ShowTip(event, 'tt24', 'link65')" onMouseOut="HideTip('tt24')">gfx_load_texture_raw</a></td><td class=SDescription>Loads a texture from memory.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_texture_set" id=link66 onMouseOver="ShowTip(event, 'tt25', 'link66')" onMouseOut="HideTip('tt25')">gfx_texture_set</a></td><td class=SDescription>Sets the active texture.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_unload_texture" id=link67 onMouseOver="ShowTip(event, 'tt26', 'link67')" onMouseOut="HideTip('tt26')">gfx_unload_texture</a></td><td class=SDescription>Unloads a texture.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_clear" id=link68 onMouseOver="ShowTip(event, 'tt27', 'link68')" onMouseOut="HideTip('tt27')">gfx_clear</a></td><td class=SDescription>Clears the screen with the specified color.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_screenaspect" id=link69 onMouseOver="ShowTip(event, 'tt28', 'link69')" onMouseOut="HideTip('tt28')">gfx_screenaspect</a></td><td class=SDescription>Returns the aspect ratio between width and height.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_screenwidth" id=link70 onMouseOver="ShowTip(event, 'tt29', 'link70')" onMouseOut="HideTip('tt29')">gfx_screenwidth</a></td><td class=SDescription>Returns the screen width.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_screenheight" id=link71 onMouseOver="ShowTip(event, 'tt30', 'link71')" onMouseOut="HideTip('tt30')">gfx_screenheight</a></td><td class=SDescription>Returns the screen height.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_mapscreen" id=link72 onMouseOver="ShowTip(event, 'tt31', 'link72')" onMouseOut="HideTip('tt31')">gfx_mapscreen</a></td><td class=SDescription>Specifies the coordinate system for the screen.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_blend_normal" id=link73 onMouseOver="ShowTip(event, 'tt32', 'link73')" onMouseOut="HideTip('tt32')">gfx_blend_normal</a></td><td class=SDescription>Set the active blending mode to normal (src, 1-src).</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_blend_additive" id=link74 onMouseOver="ShowTip(event, 'tt33', 'link74')" onMouseOut="HideTip('tt33')">gfx_blend_additive</a></td><td class=SDescription>Set the active blending mode to additive (src, one).</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_blend_none" id=link75 onMouseOver="ShowTip(event, 'tt34', 'link75')" onMouseOut="HideTip('tt34')">gfx_blend_none</a></td><td class=SDescription>Disables blending</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_setcolorvertex" id=link76 onMouseOver="ShowTip(event, 'tt35', 'link76')" onMouseOut="HideTip('tt35')">gfx_setcolorvertex</a></td><td class=SDescription>Sets the color of a vertex.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_setcolor" id=link77 onMouseOver="ShowTip(event, 'tt36', 'link77')" onMouseOut="HideTip('tt36')">gfx_setcolor</a></td><td class=SDescription>Sets the color of all the vertices.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_getscreen" id=link78 onMouseOver="ShowTip(event, 'tt37', 'link78')" onMouseOut="HideTip('tt37')">gfx_getscreen</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_memory_usage" id=link79 onMouseOver="ShowTip(event, 'tt38', 'link79')" onMouseOut="HideTip('tt38')">gfx_memory_usage</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_screenshot" id=link80 onMouseOver="ShowTip(event, 'tt39', 'link80')" onMouseOut="HideTip('tt39')">gfx_screenshot</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#gfx_clip_enable" id=link81 onMouseOver="ShowTip(event, 'tt40', 'link81')" onMouseOut="HideTip('tt40')">gfx_clip_enable</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#gfx_clip_disable" id=link82 onMouseOver="ShowTip(event, 'tt41', 'link82')" onMouseOut="HideTip('tt41')">gfx_clip_disable</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Quads"></a>Quads</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_begin"></a>gfx_quads_begin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_quads_begin()</td></tr></table></blockquote><p>Begins a quad drawing session.</p><h4 class=CHeading>Remarks</h4><p>This functions resets the rotation, color and subset.&nbsp; End the session by using <a href="#gfx_quads_end" class=LFunction id=link83 onMouseOver="ShowTip(event, 'tt6', 'link83')" onMouseOut="HideTip('tt6')">gfx_quads_end</a>.&nbsp; You can&rsquo;t change texture or blending mode during a session.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_quads_end" class=LFunction id=link84 onMouseOver="ShowTip(event, 'tt6', 'link84')" onMouseOut="HideTip('tt6')">gfx_quads_end</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_end"></a>gfx_quads_end</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_quads_end()</td></tr></table></blockquote><p>Ends a quad session.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_quads_begin" class=LFunction id=link85 onMouseOver="ShowTip(event, 'tt5', 'link85')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_setrotation"></a>gfx_quads_setrotation</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_setrotation(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>angle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the rotation to use when drawing a quad.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>angle</td><td class=CDLDescription>Angle in radians.</td></tr></table><h4 class=CHeading>Remarks</h4><p>The angle is reset when <a href="#gfx_quads_begin" class=LFunction id=link86 onMouseOver="ShowTip(event, 'tt5', 'link86')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a> is called.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_setsubset"></a>gfx_quads_setsubset</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_setsubset(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_u,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_v,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_u,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_v</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the uv coordinates to use.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tl_u</td><td class=CDLDescription>Top-left U value.</td></tr><tr><td class=CDLEntry>tl_v</td><td class=CDLDescription>Top-left V value.</td></tr><tr><td class=CDLEntry>br_u</td><td class=CDLDescription>Bottom-right U value.</td></tr><tr><td class=CDLEntry>br_v</td><td class=CDLDescription>Bottom-right V value.</td></tr></table><h4 class=CHeading>Remarks</h4><p>O,0 is top-left of the texture and 1,1 is bottom-right.&nbsp; The color is reset when <a href="#gfx_quads_begin" class=LFunction id=link87 onMouseOver="ShowTip(event, 'tt5', 'link87')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a> is called.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_setsubset_free"></a>gfx_quads_setsubset_free</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_setsubset_free(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x3,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_drawTL"></a>gfx_quads_drawTL</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_drawTL(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>width,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>height</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws a quad by specifying the top-left point.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>X coordinate of the top-left corner.</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Y coordinate of the top-left corner.</td></tr><tr><td class=CDLEntry>width</td><td class=CDLDescription>Width of the quad.</td></tr><tr><td class=CDLEntry>height</td><td class=CDLDescription>Height of the quad.</td></tr></table><h4 class=CHeading>Remarks</h4><p>Rotation still occurs from the center of the quad.&nbsp; You must call <a href="#gfx_quads_begin" class=LFunction id=link88 onMouseOver="ShowTip(event, 'tt5', 'link88')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a> before calling this function.</p><h4 class=CHeading>See Also</h4><p>&lt;gfx_quads_draw, gfx_quads_draw_freeform&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_draw"></a>gfx_quads_draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_draw(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws a quad by specifying the center point.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>X coordinate of the center.</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Y coordinate of the center.</td></tr><tr><td class=CDLEntry>width</td><td class=CDLDescription>Width of the quad.</td></tr><tr><td class=CDLEntry>height</td><td class=CDLDescription>Height of the quad.</td></tr></table><h4 class=CHeading>Remarks</h4><p>You must call <a href="#gfx_quads_begin" class=LFunction id=link89 onMouseOver="ShowTip(event, 'tt5', 'link89')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a> before calling this function.</p><h4 class=CHeading>See Also</h4><p>&lt;gfx_quads_drawTL, gfx_quads_draw_freeform&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_draw_freeform"></a>gfx_quads_draw_freeform</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_draw_freeform(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x3,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Draws a quad by specifying the corner points.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x0, y0</td><td class=CDLDescription>Coordinates of the upper left corner.</td></tr><tr><td class=CDLEntry>x1, y1</td><td class=CDLDescription>Coordinates of the upper right corner.</td></tr><tr><td class=CDLEntry>x2, y2</td><td class=CDLDescription>Coordinates of the lower left corner.&nbsp; // TODO: DOUBLE CHECK!!!</td></tr><tr><td class=CDLEntry>x3, y3</td><td class=CDLDescription>Coordinates of the lower right corner.&nbsp; // TODO: DOUBLE CHECK!!!</td></tr></table><h4 class=CHeading>See Also</h4><p>&lt;gfx_quads_draw, gfx_quads_drawTL&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_quads_text"></a>gfx_quads_text</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_text(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Lines"></a>Lines</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_lines_begin"></a>gfx_lines_begin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_lines_begin()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_lines_draw"></a>gfx_lines_draw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_lines_draw(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y1</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_lines_end"></a>gfx_lines_end</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_lines_end()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Text"></a>Text</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_text"></a>gfx_text</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_text(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>font,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>text,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>max_width</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><p>returns the number of lines written See Also: &lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_text_width"></a>gfx_text_width</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>float gfx_text_width(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>font,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>text,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>length</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_text_color"></a>gfx_text_color</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_text_color(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_text_set_default_font"></a>gfx_text_set_default_font</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_text_set_default_font(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>font</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Other"></a>Other</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_get_video_modes"></a>gfx_get_video_modes</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_get_video_modes(</td><td class=PType nowrap>VIDEO_MODE&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>list,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>maxcount</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fetches a list of all the available video modes.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>list</td><td class=CDLDescription>An array to recive the modes.&nbsp; Must be able to contain maxcount number of modes.</td></tr><tr><td class=CDLEntry>maxcount</td><td class=CDLDescription>The maximum number of modes to fetch.</td></tr></table><h4 class=CHeading>Returns</h4><p>The number of video modes that was fetched.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_load_png"></a>gfx_load_png</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_load_png(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>IMAGE_INFO&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>img,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Loads a PNG image from disk.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>img</td><td class=CDLDescription>Pointer to an structure to be filled out with the image information.</td></tr><tr><td class=CDLEntry>filename</td><td class=CDLDescription>Filename of the image to load.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns non-zero on success and zero on error.</p><h4 class=CHeading>Remarks</h4><p>The caller are responsible for cleaning up the allocated memory in the IMAGE_INFO structure.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_load_texture" class=LFunction id=link90 onMouseOver="ShowTip(event, 'tt23', 'link90')" onMouseOut="HideTip('tt23')">gfx_load_texture</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_load_texture"></a>gfx_load_texture</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_load_texture(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>store_format,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Loads a texture from a file.&nbsp; TGA and PNG supported.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filename</td><td class=CDLDescription>Null terminated string to the file to load.</td></tr><tr><td class=CDLEntry>store_format</td><td class=CDLDescription>What format to store on gfx card as.</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>controls how the texture is uploaded</td></tr></table><h4 class=CHeading>Returns</h4><p>An ID to the texture.&nbsp; -1 on failure.</p><h4 class=CHeading>See Also</h4><p>&lt;gfx_unload_texture, gfx_load_png&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_load_texture_raw"></a>gfx_load_texture_raw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_load_texture_raw(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>h,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>format,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>store_format,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Loads a texture from memory.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>w</td><td class=CDLDescription>Width of the texture.</td></tr><tr><td class=CDLEntry>h</td><td class=CDLDescription>Height of the texture.</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Pointer to the pixel data.</td></tr><tr><td class=CDLEntry>format</td><td class=CDLDescription>Format of the pixel data.</td></tr><tr><td class=CDLEntry>store_format</td><td class=CDLDescription>The format to store the texture on the graphics card.</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>controls how the texture is uploaded</td></tr></table><h4 class=CHeading>Returns</h4><p>An ID to the texture.&nbsp; -1 on failure.</p><h4 class=CHeading>Remarks</h4><p>The pixel data should be in RGBA format with 8 bit per component.&nbsp; So the total size of the data should be w*h*4.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_unload_texture" class=LFunction id=link91 onMouseOver="ShowTip(event, 'tt26', 'link91')" onMouseOut="HideTip('tt26')">gfx_unload_texture</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_texture_set"></a>gfx_texture_set</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_texture_set(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the active texture.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>ID to the texture to set.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_unload_texture"></a>gfx_unload_texture</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_unload_texture(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Unloads a texture.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>ID to the texture to unload.</td></tr></table><h4 class=CHeading>See Also</h4><p>&lt;gfx_load_texture_tga&gt;, <a href="#gfx_load_texture_raw" class=LFunction id=link92 onMouseOver="ShowTip(event, 'tt24', 'link92')" onMouseOut="HideTip('tt24')">gfx_load_texture_raw</a></p><h4 class=CHeading>Remarks</h4><p>NOT IMPLEMENTED</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_clear"></a>gfx_clear</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_clear(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Clears the screen with the specified color.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>r</td><td class=CDLDescription>Red component.</td></tr><tr><td class=CDLEntry>g</td><td class=CDLDescription>Green component.</td></tr><tr><td class=CDLEntry>b</td><td class=CDLDescription>Red component.</td></tr></table><h4 class=CHeading>Remarks</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>The value of the components are given in 0.0</td><td class=CDLDescription>1.0 ranges.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_screenaspect"></a>gfx_screenaspect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float gfx_screenaspect()</td></tr></table></blockquote><p>Returns the aspect ratio between width and height.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_screenwidth" class=LFunction id=link93 onMouseOver="ShowTip(event, 'tt29', 'link93')" onMouseOut="HideTip('tt29')">gfx_screenwidth</a>, <a href="#gfx_screenheight" class=LFunction id=link94 onMouseOver="ShowTip(event, 'tt30', 'link94')" onMouseOut="HideTip('tt30')">gfx_screenheight</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_screenwidth"></a>gfx_screenwidth</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int gfx_screenwidth()</td></tr></table></blockquote><p>Returns the screen width.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_screenheight" class=LFunction id=link95 onMouseOver="ShowTip(event, 'tt30', 'link95')" onMouseOut="HideTip('tt30')">gfx_screenheight</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_screenheight"></a>gfx_screenheight</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int gfx_screenheight()</td></tr></table></blockquote><p>Returns the screen height.</p><h4 class=CHeading>See Also</h4><p><a href="#gfx_screenwidth" class=LFunction id=link96 onMouseOver="ShowTip(event, 'tt29', 'link96')" onMouseOut="HideTip('tt29')">gfx_screenwidth</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_mapscreen"></a>gfx_mapscreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_mapscreen(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Specifies the coordinate system for the screen.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>tl_x</td><td class=CDLDescription>Top-left X</td></tr><tr><td class=CDLEntry>tl_y</td><td class=CDLDescription>Top-left Y</td></tr><tr><td class=CDLEntry>br_x</td><td class=CDLDescription>Bottom-right X</td></tr><tr><td class=CDLEntry>br_y</td><td class=CDLDescription>Bottom-right y</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_blend_normal"></a>gfx_blend_normal</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_blend_normal()</td></tr></table></blockquote><p>Set the active blending mode to normal (src, 1-src).</p><h4 class=CHeading>Remarks</h4><p>This must be used before calling <a href="#gfx_quads_begin" class=LFunction id=link97 onMouseOver="ShowTip(event, 'tt5', 'link97')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a>.&nbsp; This is equal to glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA).</p><h4 class=CHeading>See Also</h4><p>&lt;gfx_blend_additive,gfx_blend_none&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_blend_additive"></a>gfx_blend_additive</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_blend_additive()</td></tr></table></blockquote><p>Set the active blending mode to additive (src, one).</p><h4 class=CHeading>Remarks</h4><p>This must be used before calling <a href="#gfx_quads_begin" class=LFunction id=link98 onMouseOver="ShowTip(event, 'tt5', 'link98')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a>.&nbsp; This is equal to glBlendFunc(GL_SRC_ALPHA, GL_ONE).</p><h4 class=CHeading>See Also</h4><p>&lt;gfx_blend_normal,gfx_blend_none&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_blend_none"></a>gfx_blend_none</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_blend_none()</td></tr></table></blockquote><p>Disables blending</p><h4 class=CHeading>Remarks</h4><p>This must be used before calling <a href="#gfx_quads_begin" class=LFunction id=link99 onMouseOver="ShowTip(event, 'tt5', 'link99')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a>.</p><h4 class=CHeading>See Also</h4><p>&lt;gfx_blend_normal,gfx_blend_additive&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_setcolorvertex"></a>gfx_setcolorvertex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_setcolorvertex(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>i,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the color of a vertex.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>i</td><td class=CDLDescription>Index to the vertex.</td></tr><tr><td class=CDLEntry>r</td><td class=CDLDescription>Red value.</td></tr><tr><td class=CDLEntry>g</td><td class=CDLDescription>Green value.</td></tr><tr><td class=CDLEntry>b</td><td class=CDLDescription>Blue value.</td></tr><tr><td class=CDLEntry>a</td><td class=CDLDescription>Alpha value.</td></tr></table><h4 class=CHeading>Remarks</h4><p>The color values are from 0.0 to 1.0.&nbsp; The color is reset when <a href="#gfx_quads_begin" class=LFunction id=link100 onMouseOver="ShowTip(event, 'tt5', 'link100')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a> is called.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_setcolor"></a>gfx_setcolor</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_setcolor(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the color of all the vertices.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>r</td><td class=CDLDescription>Red value.</td></tr><tr><td class=CDLEntry>g</td><td class=CDLDescription>Green value.</td></tr><tr><td class=CDLEntry>b</td><td class=CDLDescription>Blue value.</td></tr><tr><td class=CDLEntry>a</td><td class=CDLDescription>Alpha value.</td></tr></table><h4 class=CHeading>Remarks</h4><p>The color values are from 0.0 to 1.0.&nbsp; The color is reset when <a href="#gfx_quads_begin" class=LFunction id=link101 onMouseOver="ShowTip(event, 'tt5', 'link101')" onMouseOut="HideTip('tt5')">gfx_quads_begin</a> is called.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_getscreen"></a>gfx_getscreen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_getscreen(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>tl_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>tl_y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>br_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>br_y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_memory_usage"></a>gfx_memory_usage</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int gfx_memory_usage()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_screenshot"></a>gfx_screenshot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_screenshot()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_clip_enable"></a>gfx_clip_enable</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_clip_enable(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="gfx_clip_disable"></a>gfx_clip_disable</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_clip_disable()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile id=MSelected>Graphics</div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([2, 3, 6, 1], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int width</td></tr></table></blockquote>Contains the width of the image</div></div><div class=CToolTip id="tt2"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int height</td></tr></table></blockquote>Contains the height of the image</div></div><div class=CToolTip id="tt3"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int format</td></tr></table></blockquote>Contains the format of the image. </div></div><div class=CToolTip id="tt4"><div class=CVariable><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void *data</td></tr></table></blockquote>Pointer to the image data.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_quads_begin()</td></tr></table></blockquote>Begins a quad drawing session.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_quads_end()</td></tr></table></blockquote>Ends a quad session.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_setrotation(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>angle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the rotation to use when drawing a quad.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_setsubset(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_u,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_v,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_u,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_v</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the uv coordinates to use.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_setsubset_free(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x3,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_drawTL(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>width,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>height</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws a quad by specifying the top-left point.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_draw(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws a quad by specifying the center point.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_draw_freeform(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y2,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x3,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y3</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Draws a quad by specifying the corner points.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_quads_text(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>text</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_lines_begin()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_lines_draw(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y0,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x1,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y1</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_lines_end()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_text(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>font,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>text,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>max_width</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>float gfx_text_width(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>font,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>text,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>length</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_text_color(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_text_set_default_font(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>font</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_get_video_modes(</td><td class=PType nowrap>VIDEO_MODE&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>list,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>maxcount</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fetches a list of all the available video modes.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_load_png(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>IMAGE_INFO&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>img,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads a PNG image from disk.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_load_texture(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>store_format,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads a texture from a file. </div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_load_texture_raw(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>h,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>format,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>store_format,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads a texture from memory.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_texture_set(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the active texture.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int gfx_unload_texture(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Unloads a texture.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_clear(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Clears the screen with the specified color.</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>float gfx_screenaspect()</td></tr></table></blockquote>Returns the aspect ratio between width and height.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int gfx_screenwidth()</td></tr></table></blockquote>Returns the screen width.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int gfx_screenheight()</td></tr></table></blockquote>Returns the screen height.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_mapscreen(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>tl_y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>br_y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Specifies the coordinate system for the screen.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_blend_normal()</td></tr></table></blockquote>Set the active blending mode to normal (src, 1-src).</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_blend_additive()</td></tr></table></blockquote>Set the active blending mode to additive (src, one).</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_blend_none()</td></tr></table></blockquote>Disables blending</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_setcolorvertex(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>i,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the color of a vertex.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_setcolor(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>r,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>g,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the color of all the vertices.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_getscreen(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>tl_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>tl_y,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>br_x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>br_y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int gfx_memory_usage()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_screenshot()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void gfx_clip_enable(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>y,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>w,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>h</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void gfx_clip_disable()</td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_inp-h.html b/docs/output/files2/e_if_inp-h.html
new file mode 100644
index 00000000..91ac5b99
--- /dev/null
+++ b/docs/output/files2/e_if_inp-h.html
@@ -0,0 +1,73 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Input</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Input"></a>Input</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Input" >Input</a></td><td class=SDescription></td></tr><tr class="SClass"><td class=SEntry><a href="#INPUT_EVENT" >INPUT_EVENT</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#INPUT_EVENT.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_mouse_relative" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">inp_mouse_relative</a></td><td class=SDescription>Fetches the mouse movements.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_mouse_scroll" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">inp_mouse_scroll</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_pressed" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">inp_key_pressed</a></td><td class=SDescription>Checks if a key is pressed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_key_was_pressed" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">inp_key_was_pressed</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_down" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">inp_key_down</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_num_events" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">inp_num_events</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_get_event" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">inp_get_event</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_clear_events" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">inp_clear_events</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_mouse_doubleclick" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">inp_mouse_doubleclick</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_key_presses" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">inp_key_presses</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_releases" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">inp_key_releases</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_key_state" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">inp_key_state</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_name" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">inp_key_name</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#INPUT_EVENT.inp_key_code" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">inp_key_code</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_clear_key_states" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">inp_clear_key_states</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="INPUT_EVENT"></a>INPUT_EVENT</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#INPUT_EVENT.Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_mouse_relative" id=link16 onMouseOver="ShowTip(event, 'tt1', 'link16')" onMouseOut="HideTip('tt1')">inp_mouse_relative</a></td><td class=SDescription>Fetches the mouse movements.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_mouse_scroll" id=link17 onMouseOver="ShowTip(event, 'tt2', 'link17')" onMouseOut="HideTip('tt2')">inp_mouse_scroll</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_pressed" id=link18 onMouseOver="ShowTip(event, 'tt3', 'link18')" onMouseOut="HideTip('tt3')">inp_key_pressed</a></td><td class=SDescription>Checks if a key is pressed.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_key_was_pressed" id=link19 onMouseOver="ShowTip(event, 'tt4', 'link19')" onMouseOut="HideTip('tt4')">inp_key_was_pressed</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_down" id=link20 onMouseOver="ShowTip(event, 'tt5', 'link20')" onMouseOut="HideTip('tt5')">inp_key_down</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_num_events" id=link21 onMouseOver="ShowTip(event, 'tt6', 'link21')" onMouseOut="HideTip('tt6')">inp_num_events</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_get_event" id=link22 onMouseOver="ShowTip(event, 'tt7', 'link22')" onMouseOut="HideTip('tt7')">inp_get_event</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_clear_events" id=link23 onMouseOver="ShowTip(event, 'tt8', 'link23')" onMouseOut="HideTip('tt8')">inp_clear_events</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_mouse_doubleclick" id=link24 onMouseOver="ShowTip(event, 'tt9', 'link24')" onMouseOut="HideTip('tt9')">inp_mouse_doubleclick</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_key_presses" id=link25 onMouseOver="ShowTip(event, 'tt10', 'link25')" onMouseOut="HideTip('tt10')">inp_key_presses</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_releases" id=link26 onMouseOver="ShowTip(event, 'tt11', 'link26')" onMouseOut="HideTip('tt11')">inp_key_releases</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_key_state" id=link27 onMouseOver="ShowTip(event, 'tt12', 'link27')" onMouseOut="HideTip('tt12')">inp_key_state</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_key_name" id=link28 onMouseOver="ShowTip(event, 'tt13', 'link28')" onMouseOut="HideTip('tt13')">inp_key_name</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#INPUT_EVENT.inp_key_code" id=link29 onMouseOver="ShowTip(event, 'tt14', 'link29')" onMouseOut="HideTip('tt14')">inp_key_code</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#INPUT_EVENT.inp_clear_key_states" id=link30 onMouseOver="ShowTip(event, 'tt15', 'link30')" onMouseOut="HideTip('tt15')">inp_clear_key_states</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_mouse_relative"></a>inp_mouse_relative</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void inp_mouse_relative(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fetches the mouse movements.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>Pointer to the variable that should get the X movement.</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>Pointer to the variable that should get the Y movement.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_mouse_scroll"></a>inp_mouse_scroll</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int inp_mouse_scroll()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_pressed"></a>inp_key_pressed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_pressed(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Checks if a key is pressed.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>key</td><td class=CDLDescription>Index to the key to check</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 1 if the button is pressed, otherwise 0.</p><h4 class=CHeading>Remarks</h4><p>Check keys.h for the keys.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_was_pressed"></a>inp_key_was_pressed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_was_pressed(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_down"></a>inp_key_down</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_down(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_num_events"></a>inp_num_events</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int inp_num_events()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_get_event"></a>inp_get_event</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>INPUT_EVENT inp_get_event(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_clear_events"></a>inp_clear_events</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void inp_clear_events()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_mouse_doubleclick"></a>inp_mouse_doubleclick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int inp_mouse_doubleclick()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_presses"></a>inp_key_presses</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_presses(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_releases"></a>inp_key_releases</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_releases(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_state"></a>inp_key_state</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_state(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_name"></a>inp_key_name</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const char *inp_key_name(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>k</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_key_code"></a>inp_key_code</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_code(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>key_name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="INPUT_EVENT.inp_clear_key_states"></a>inp_clear_key_states</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void inp_clear_key_states()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile id=MSelected>Input</div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([2, 3, 6, 1], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void inp_mouse_relative(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fetches the mouse movements.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int inp_mouse_scroll()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_pressed(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Checks if a key is pressed.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_was_pressed(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_down(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int inp_num_events()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>INPUT_EVENT inp_get_event(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void inp_clear_events()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int inp_mouse_doubleclick()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_presses(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_releases(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_state(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>key</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const char *inp_key_name(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>k</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int inp_key_code(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>key_name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void inp_clear_key_states()</td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_modc-h.html b/docs/output/files2/e_if_modc-h.html
new file mode 100644
index 00000000..f75e3aee
--- /dev/null
+++ b/docs/output/files2/e_if_modc-h.html
@@ -0,0 +1,69 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Client Hooks</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Client_Hooks"></a>Client Hooks</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Client_Hooks" >Client Hooks</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_console_init" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">modc_console_init</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_rcon_line" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">modc_rcon_line</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_save_config" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">modc_save_config</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_init" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">modc_init</a></td><td class=SDescription>Called when the client starts.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_newsnapshot" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">modc_newsnapshot</a></td><td class=SDescription>Called when the client progressed to a new snapshot.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_entergame" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">modc_entergame</a></td><td class=SDescription>Called when the client has successfully connect to a server and loaded a map.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_shutdown" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">modc_shutdown</a></td><td class=SDescription>Called when the client closes down.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_render" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">modc_render</a></td><td class=SDescription>Called every frame to let the game render it self.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_statechange" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">modc_statechange</a></td><td class=SDescription>Called every time client changes state.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_connected" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">modc_connected</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_message" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">modc_message</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_predict" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">modc_predict</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#modc_snap_input" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">modc_snap_input</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#modc_net_version" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">modc_net_version</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_console_init"></a>modc_console_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_console_init()</td></tr></table></blockquote><p>TODO</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_rcon_line"></a>modc_rcon_line</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void modc_rcon_line(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>line</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_save_config"></a>modc_save_config</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_save_config()</td></tr></table></blockquote><p>TODO</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_init"></a>modc_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_init()</td></tr></table></blockquote><p>Called when the client starts.</p><h4 class=CHeading>Remarks</h4><p>The game should load resources that are used during the entire time of the game.&nbsp; No map is loaded.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_newsnapshot"></a>modc_newsnapshot</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_newsnapshot()</td></tr></table></blockquote><p>Called when the client progressed to a new snapshot.</p><h4 class=CHeading>Remarks</h4><p>The client can check for items in the snapshot and perform one time events like playing sounds, spawning client side effects etc.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_entergame"></a>modc_entergame</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_entergame()</td></tr></table></blockquote><p>Called when the client has successfully connect to a server and loaded a map.</p><h4 class=CHeading>Remarks</h4><p>The client can check for items in the map and load them.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_shutdown"></a>modc_shutdown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_shutdown()</td></tr></table></blockquote><p>Called when the client closes down.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_render"></a>modc_render</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_render()</td></tr></table></blockquote><p>Called every frame to let the game render it self.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_statechange"></a>modc_statechange</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void modc_statechange(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>new_state,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>old_state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called every time client changes state.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_connected"></a>modc_connected</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_connected()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_message"></a>modc_message</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void modc_message(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>msg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_predict"></a>modc_predict</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_predict()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_snap_input"></a>modc_snap_input</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int modc_snap_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="modc_net_version"></a>modc_net_version</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *modc_net_version()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile id=MSelected>Client Hooks</div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([2, 3, 6, 1], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_console_init()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void modc_rcon_line(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>line</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_save_config()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_init()</td></tr></table></blockquote>Called when the client starts.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_newsnapshot()</td></tr></table></blockquote>Called when the client progressed to a new snapshot.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_entergame()</td></tr></table></blockquote>Called when the client has successfully connect to a server and loaded a map.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_shutdown()</td></tr></table></blockquote>Called when the client closes down.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_render()</td></tr></table></blockquote>Called every frame to let the game render it self.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void modc_statechange(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>new_state,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>old_state</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called every time client changes state.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_connected()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void modc_message(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>msg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void modc_predict()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int modc_snap_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *modc_net_version()</td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_mods-h.html b/docs/output/files2/e_if_mods-h.html
new file mode 100644
index 00000000..3929a2d8
--- /dev/null
+++ b/docs/output/files2/e_if_mods-h.html
@@ -0,0 +1,71 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Server Hooks</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Server_Hooks"></a>Server Hooks</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Server_Hooks" >Server Hooks</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_console_init" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">mods_console_init</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_init" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">mods_init</a></td><td class=SDescription>Called when the server is started.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_shutdown" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">mods_shutdown</a></td><td class=SDescription>Called when the server quits.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_client_enter" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mods_client_enter</a></td><td class=SDescription>Called when a client has joined the game.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_client_drop" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">mods_client_drop</a></td><td class=SDescription>Called when a client drops from the server.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_client_direct_input" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">mods_client_direct_input</a></td><td class=SDescription>Called when the server recives new input from a client.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_client_predicted_input" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">mods_client_predicted_input</a></td><td class=SDescription>Called when the server applys the predicted input on the client.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_tick" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">mods_tick</a></td><td class=SDescription>Called with a regular interval to progress the gameplay.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_presnap" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">mods_presnap</a></td><td class=SDescription>Called before the server starts to construct snapshots for the clients.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_snap" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">mods_snap</a></td><td class=SDescription>Called to create the snapshot for a client.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_postsnap" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">mods_postsnap</a></td><td class=SDescription>Called after the server is done sending the snapshots.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_connected" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">mods_connected</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_net_version" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">mods_net_version</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mods_version" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">mods_version</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mods_message" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">mods_message</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_console_init"></a>mods_console_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_console_init()</td></tr></table></blockquote><p>TODO</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_init"></a>mods_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_init()</td></tr></table></blockquote><p>Called when the server is started.</p><h4 class=CHeading>Remarks</h4><p>It&rsquo;s called after the map is loaded so all map items are available.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_shutdown"></a>mods_shutdown</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_shutdown()</td></tr></table></blockquote><p>Called when the server quits.</p><h4 class=CHeading>Remarks</h4><p>Should be used to clean up all resources used.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_client_enter"></a>mods_client_enter</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_enter(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when a client has joined the game.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Client ID.&nbsp; Is 0 - MAX_CLIENTS.</td></tr></table><h4 class=CHeading>Remarks</h4><p>It&rsquo;s called when the client is finished loading and should enter gameplay.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_client_drop"></a>mods_client_drop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_drop(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when a client drops from the server.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Client ID.&nbsp; Is 0 - MAX_CLIENTS</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_client_direct_input"></a>mods_client_direct_input</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_direct_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>input</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the server recives new input from a client.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Client ID.&nbsp; Is 0 - MAX_CLIENTS.</td></tr><tr><td class=CDLEntry>input</td><td class=CDLDescription>Pointer to the input data.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the data.&nbsp; (NOT IMPLEMENTED YET)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_client_predicted_input"></a>mods_client_predicted_input</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_predicted_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>input</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called when the server applys the predicted input on the client.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Client ID.&nbsp; Is 0 - MAX_CLIENTS.</td></tr><tr><td class=CDLEntry>input</td><td class=CDLDescription>Pointer to the input data.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the data.&nbsp; (NOT IMPLEMENTED YET)</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_tick"></a>mods_tick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_tick()</td></tr></table></blockquote><p>Called with a regular interval to progress the gameplay.</p><h4 class=CHeading>Remarks</h4><p>The SERVER_TICK_SPEED tells the number of ticks per second.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_presnap"></a>mods_presnap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_presnap()</td></tr></table></blockquote><p>Called before the server starts to construct snapshots for the clients.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_snap"></a>mods_snap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_snap(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Called to create the snapshot for a client.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Client ID.&nbsp; Is 0 - MAX_CLIENTS.</td></tr></table><h4 class=CHeading>Remarks</h4><p>The game should make a series of calls to <a href="e_if_other-h.html#snap_new_item" class=LFunction id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">snap_new_item</a> to construct the snapshot for the client.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_postsnap"></a>mods_postsnap</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_postsnap()</td></tr></table></blockquote><p>Called after the server is done sending the snapshots.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_connected"></a>mods_connected</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_connected(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_net_version"></a>mods_net_version</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *mods_net_version()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_version"></a>mods_version</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *mods_version()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mods_message"></a>mods_message</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_message(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>msg,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile id=MSelected>Server Hooks</div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([4, 5, 6], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_console_init()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_init()</td></tr></table></blockquote>Called when the server is started.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_shutdown()</td></tr></table></blockquote>Called when the server quits.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_enter(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when a client has joined the game.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_drop(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when a client drops from the server.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_direct_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>input</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the server recives new input from a client.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_client_predicted_input(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>input</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called when the server applys the predicted input on the client.</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_tick()</td></tr></table></blockquote>Called with a regular interval to progress the gameplay.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_presnap()</td></tr></table></blockquote>Called before the server starts to construct snapshots for the clients.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_snap(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Called to create the snapshot for a client.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void mods_postsnap()</td></tr></table></blockquote>Called after the server is done sending the snapshots.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_connected(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *mods_net_version()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *mods_version()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mods_message(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>msg,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_new_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new item that should be sent.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_msg-h.html b/docs/output/files2/e_if_msg-h.html
new file mode 100644
index 00000000..f46cc24e
--- /dev/null
+++ b/docs/output/files2/e_if_msg-h.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Messaging</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Messaging"></a>Messaging</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Messaging" >Messaging</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#msg_pack_start" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">msg_pack_start</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#msg_pack_int" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">msg_pack_int</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#msg_pack_string" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">msg_pack_string</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#msg_pack_raw" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">msg_pack_raw</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#msg_pack_end" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">msg_pack_end</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#msg_unpack_int" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">msg_unpack_int</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#msg_unpack_string" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">msg_unpack_string</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#msg_unpack_raw" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">msg_unpack_raw</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#msg_unpack_error" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">msg_unpack_error</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_pack_start"></a>msg_pack_start</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_start(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>msg,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_pack_int"></a>msg_pack_int</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_int(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_pack_string"></a>msg_pack_string</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_string(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>p,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>limit</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_pack_raw"></a>msg_pack_raw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_raw(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_pack_end"></a>msg_pack_end</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void msg_pack_end()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_unpack_int"></a>msg_unpack_int</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int msg_unpack_int()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_unpack_string"></a>msg_unpack_string</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *msg_unpack_string()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_unpack_raw"></a>msg_unpack_raw</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const unsigned char *msg_unpack_raw(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="msg_unpack_error"></a>msg_unpack_error</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int msg_unpack_error()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile id=MSelected>Messaging</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([6, 3, 5], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_start(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>msg,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_int(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>i</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_string(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>p,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>limit</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void msg_pack_raw(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void msg_pack_end()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int msg_unpack_int()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>const char *msg_unpack_string()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const unsigned char *msg_unpack_raw(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int msg_unpack_error()</td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_other-h.html b/docs/output/files2/e_if_other-h.html
new file mode 100644
index 00000000..23d4a2c0
--- /dev/null
+++ b/docs/output/files2/e_if_other-h.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Engine Interface</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Engine_Interface"></a>Engine Interface</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Engine_Interface" >Engine Interface</a></td><td class=SDescription></td></tr><tr class="SClass"><td class=SEntry><a href="#SNAP_ITEM" >SNAP_ITEM</a></td><td class=SDescription></td></tr><tr class="SClass"><td class=SEntry><a href="#CLIENT_INFO" >CLIENT_INFO</a></td><td class=SDescription></td></tr><tr class="SSection"><td class=SEntry><a href="#Map" >Map</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#map_is_loaded" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">map_is_loaded</a></td><td class=SDescription>Checks if a map is loaded.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#map_num_items" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">map_num_items</a></td><td class=SDescription>Checks the number of items in the loaded map.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#map_find_item" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">map_find_item</a></td><td class=SDescription>Searches the map for an item.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#map_get_item" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">map_get_item</a></td><td class=SDescription>Gets an item from the loaded map from index.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#map_get_type" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">map_get_type</a></td><td class=SDescription>Gets the index range of an item type.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#map_get_data" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">map_get_data</a></td><td class=SDescription>Fetches a pointer to a raw data chunk in the map.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#map_get_data_swapped" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">map_get_data_swapped</a></td><td class=SDescription>TODO</td></tr><tr class="SSection"><td class=SEntry><a href="#Network(Server)" >Network (Server)</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snap_new_item" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">snap_new_item</a></td><td class=SDescription>Creates a new item that should be sent.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snap_num_items" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">snap_num_items</a></td><td class=SDescription>Check the number of items in a snapshot.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snap_get_item" id=link10 onMouseOver="ShowTip(event, 'tt10', 'link10')" onMouseOut="HideTip('tt10')">snap_get_item</a></td><td class=SDescription>Gets an item from a snapshot.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snap_find_item" id=link11 onMouseOver="ShowTip(event, 'tt11', 'link11')" onMouseOut="HideTip('tt11')">snap_find_item</a></td><td class=SDescription>Searches a snapshot for an item.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snap_invalidate_item" id=link12 onMouseOver="ShowTip(event, 'tt12', 'link12')" onMouseOut="HideTip('tt12')">snap_invalidate_item</a></td><td class=SDescription>Marks an item as invalid byt setting type and id to 0xffffffff.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snap_input" id=link13 onMouseOver="ShowTip(event, 'tt13', 'link13')" onMouseOut="HideTip('tt13')">snap_input</a></td><td class=SDescription>Sets the input data to send to the server.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snap_set_staticsize" id=link14 onMouseOver="ShowTip(event, 'tt14', 'link14')" onMouseOut="HideTip('tt14')">snap_set_staticsize</a></td><td class=SDescription>Tells the engine how big a specific item always will be. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#server_send_msg" id=link15 onMouseOver="ShowTip(event, 'tt15', 'link15')" onMouseOut="HideTip('tt15')">server_send_msg</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#client_send_msg" id=link16 onMouseOver="ShowTip(event, 'tt16', 'link16')" onMouseOut="HideTip('tt16')">client_send_msg</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snap_new_id" id=link17 onMouseOver="ShowTip(event, 'tt17', 'link17')" onMouseOut="HideTip('tt17')">snap_new_id</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snap_free_id" id=link18 onMouseOver="ShowTip(event, 'tt18', 'link18')" onMouseOut="HideTip('tt18')">snap_free_id</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#map_unload_data" id=link19 onMouseOver="ShowTip(event, 'tt19', 'link19')" onMouseOut="HideTip('tt19')">map_unload_data</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="SNAP_ITEM"></a>SNAP_ITEM</h2><div class=CBody></div></div></div>
+
+<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="CLIENT_INFO"></a>CLIENT_INFO</h2><div class=CBody></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Map"></a>Map</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#map_is_loaded" id=link20 onMouseOver="ShowTip(event, 'tt1', 'link20')" onMouseOut="HideTip('tt1')">map_is_loaded</a></td><td class=SDescription>Checks if a map is loaded.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#map_num_items" id=link21 onMouseOver="ShowTip(event, 'tt2', 'link21')" onMouseOut="HideTip('tt2')">map_num_items</a></td><td class=SDescription>Checks the number of items in the loaded map.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#map_find_item" id=link22 onMouseOver="ShowTip(event, 'tt3', 'link22')" onMouseOut="HideTip('tt3')">map_find_item</a></td><td class=SDescription>Searches the map for an item.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#map_get_item" id=link23 onMouseOver="ShowTip(event, 'tt4', 'link23')" onMouseOut="HideTip('tt4')">map_get_item</a></td><td class=SDescription>Gets an item from the loaded map from index.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#map_get_type" id=link24 onMouseOver="ShowTip(event, 'tt5', 'link24')" onMouseOut="HideTip('tt5')">map_get_type</a></td><td class=SDescription>Gets the index range of an item type.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#map_get_data" id=link25 onMouseOver="ShowTip(event, 'tt6', 'link25')" onMouseOut="HideTip('tt6')">map_get_data</a></td><td class=SDescription>Fetches a pointer to a raw data chunk in the map.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#map_get_data_swapped" id=link26 onMouseOver="ShowTip(event, 'tt7', 'link26')" onMouseOut="HideTip('tt7')">map_get_data_swapped</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_is_loaded"></a>map_is_loaded</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int map_is_loaded()</td></tr></table></blockquote><p>Checks if a map is loaded.</p><h4 class=CHeading>Returns</h4><p>Returns 1 if the button is pressed, otherwise 0.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_num_items"></a>map_num_items</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int map_num_items()</td></tr></table></blockquote><p>Checks the number of items in the loaded map.</p><h4 class=CHeading>Returns</h4><p>Returns the number of items.&nbsp; 0 if no map is loaded.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_find_item"></a>map_find_item</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_find_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Searches the map for an item.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>Item type.</td></tr><tr><td class=CDLEntry>id</td><td class=CDLDescription>Item ID.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a pointer to the item if it exists, otherwise it returns NULL.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_get_item"></a>map_get_item</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_get_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>index,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets an item from the loaded map from index.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Item index.</td></tr><tr><td class=CDLEntry>type</td><td class=CDLDescription>Pointer that recives the item type (can be NULL).</td></tr><tr><td class=CDLEntry>id</td><td class=CDLDescription>Pointer that recives the item id (can be NULL).</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a pointer to the item if it exists, otherwise it returns NULL.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_get_type"></a>map_get_type</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void map_get_type(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>start,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>num</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the index range of an item type.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>Item type to search for.</td></tr><tr><td class=CDLEntry>start</td><td class=CDLDescription>Pointer that recives the starting index.</td></tr><tr><td class=CDLEntry>num</td><td class=CDLDescription>Pointer that recives the number of items.</td></tr></table><h4 class=CHeading>Returns</h4><p>If the item type is not in the map, start and num will be set to 0.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_get_data"></a>map_get_data</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_get_data(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fetches a pointer to a raw data chunk in the map.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Index to the data to fetch.</td></tr></table><h4 class=CHeading>Returns</h4><p>A pointer to the raw data, otherwise 0.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_get_data_swapped"></a>map_get_data_swapped</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_get_data_swapped(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CSection"><div class=CTopic><h2 class=CTitle><a name="Network(Server)"></a>Network (Server)</h2><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#snap_new_item" id=link27 onMouseOver="ShowTip(event, 'tt8', 'link27')" onMouseOut="HideTip('tt8')">snap_new_item</a></td><td class=SDescription>Creates a new item that should be sent.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#snap_num_items" id=link28 onMouseOver="ShowTip(event, 'tt9', 'link28')" onMouseOut="HideTip('tt9')">snap_num_items</a></td><td class=SDescription>Check the number of items in a snapshot.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#snap_get_item" id=link29 onMouseOver="ShowTip(event, 'tt10', 'link29')" onMouseOut="HideTip('tt10')">snap_get_item</a></td><td class=SDescription>Gets an item from a snapshot.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#snap_find_item" id=link30 onMouseOver="ShowTip(event, 'tt11', 'link30')" onMouseOut="HideTip('tt11')">snap_find_item</a></td><td class=SDescription>Searches a snapshot for an item.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#snap_invalidate_item" id=link31 onMouseOver="ShowTip(event, 'tt12', 'link31')" onMouseOut="HideTip('tt12')">snap_invalidate_item</a></td><td class=SDescription>Marks an item as invalid byt setting type and id to 0xffffffff.</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#snap_input" id=link32 onMouseOver="ShowTip(event, 'tt13', 'link32')" onMouseOut="HideTip('tt13')">snap_input</a></td><td class=SDescription>Sets the input data to send to the server.</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#snap_set_staticsize" id=link33 onMouseOver="ShowTip(event, 'tt14', 'link33')" onMouseOut="HideTip('tt14')">snap_set_staticsize</a></td><td class=SDescription>Tells the engine how big a specific item always will be. </td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#server_send_msg" id=link34 onMouseOver="ShowTip(event, 'tt15', 'link34')" onMouseOut="HideTip('tt15')">server_send_msg</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#client_send_msg" id=link35 onMouseOver="ShowTip(event, 'tt16', 'link35')" onMouseOut="HideTip('tt16')">client_send_msg</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#snap_new_id" id=link36 onMouseOver="ShowTip(event, 'tt17', 'link36')" onMouseOut="HideTip('tt17')">snap_new_id</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1 SMarked"><td class=SEntry><a href="#snap_free_id" id=link37 onMouseOver="ShowTip(event, 'tt18', 'link37')" onMouseOut="HideTip('tt18')">snap_free_id</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent1"><td class=SEntry><a href="#map_unload_data" id=link38 onMouseOver="ShowTip(event, 'tt19', 'link38')" onMouseOut="HideTip('tt19')">map_unload_data</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_new_item"></a>snap_new_item</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_new_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new item that should be sent.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>Type of the item.</td></tr><tr><td class=CDLEntry>id</td><td class=CDLDescription>ID of the item.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the item.</td></tr></table><h4 class=CHeading>Returns</h4><p>A pointer to the item data, otherwise 0.</p><h4 class=CHeading>Remarks</h4><p>The item data should only consist pf 4 byte integers as they are subject to byte swapping.&nbsp; This means that the size argument should be dividable by 4.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_num_items"></a>snap_num_items</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snap_num_items(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Check the number of items in a snapshot.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>snapid</td><td class=CDLDescription>Snapshot ID to the data to fetch.</td></tr></table><ul><li>SNAP_PREV for previous snapshot.</li><li>SNAP_CUR for current snapshot.</li></ul><h4 class=CHeading>Returns</h4><p>The number of items in the snapshot.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_get_item"></a>snap_get_item</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_get_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>index,</td></tr><tr><td></td><td class=PType nowrap>SNAP_ITEM&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets an item from a snapshot.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>snapid</td><td class=CDLDescription>Snapshot ID to the data to fetch.</td></tr></table><ul><li>SNAP_PREV for previous snapshot.</li><li>SNAP_CUR for current snapshot.</li></ul><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Index of the item.</td></tr><tr><td class=CDLEntry>item</td><td class=CDLDescription>Pointer that recives the item info.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a pointer to the item if it exists, otherwise NULL.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_find_item"></a>snap_find_item</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_find_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Searches a snapshot for an item.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>snapid</td><td class=CDLDescription>Snapshot ID to the data to fetch.</td></tr></table><ul><li>SNAP_PREV for previous snapshot.</li><li>SNAP_CUR for current snapshot.</li></ul><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>Type of the item.</td></tr><tr><td class=CDLEntry>id</td><td class=CDLDescription>ID of the item.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a pointer to the item if it exists, otherwise NULL.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_invalidate_item"></a>snap_invalidate_item</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_invalidate_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Marks an item as invalid byt setting type and id to 0xffffffff.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>snapid</td><td class=CDLDescription>Snapshot ID to the data to fetch.</td></tr></table><ul><li>SNAP_PREV for previous snapshot.</li><li>SNAP_CUR for current snapshot.</li></ul><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>index</td><td class=CDLDescription>Index of the item.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_input"></a>snap_input</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_input(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the input data to send to the server.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>data</td><td class=CDLDescription>Pointer to the data.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the data.</td></tr></table><h4 class=CHeading>Remarks</h4><p>The data should only consist of 4 bytes integer as they are subject to byte swapping.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_set_staticsize"></a>snap_set_staticsize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_set_staticsize(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Tells the engine how big a specific item always will be.&nbsp; This helps the engine to compress snapshots better.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>type</td><td class=CDLDescription>Item type</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the data.</td></tr></table><h4 class=CHeading>Remarks</h4><p>Size must be in a multiple of 4.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_send_msg"></a>server_send_msg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int server_send_msg(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="client_send_msg"></a>client_send_msg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_send_msg()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_new_id"></a>snap_new_id</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int snap_new_id()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snap_free_id"></a>snap_free_id</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_free_id(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="map_unload_data"></a>map_unload_data</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void map_unload_data(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile id=MSelected>Engine Interface</div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([2, 3, 6, 1], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int map_is_loaded()</td></tr></table></blockquote>Checks if a map is loaded.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int map_num_items()</td></tr></table></blockquote>Checks the number of items in the loaded map.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_find_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Searches the map for an item.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_get_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>index,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets an item from the loaded map from index.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void map_get_type(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>start,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>num</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the index range of an item type.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_get_data(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fetches a pointer to a raw data chunk in the map.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *map_get_data_swapped(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_new_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new item that should be sent.</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snap_num_items(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Check the number of items in a snapshot.</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_get_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>index,</td></tr><tr><td></td><td class=PType nowrap>SNAP_ITEM&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>item</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets an item from a snapshot.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *snap_find_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Searches a snapshot for an item.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_invalidate_item(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>snapid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Marks an item as invalid byt setting type and id to 0xffffffff.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_input(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the input data to send to the server.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_set_staticsize(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Tells the engine how big a specific item always will be. </div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int server_send_msg(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int client_send_msg()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int snap_new_id()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snap_free_id(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void map_unload_data(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>index</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_server-h.html b/docs/output/files2/e_if_server-h.html
new file mode 100644
index 00000000..b4fa723b
--- /dev/null
+++ b/docs/output/files2/e_if_server-h.html
@@ -0,0 +1,59 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Server Interface</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Server_Interface"></a>Server Interface</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Server_Interface" >Server Interface</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#server_getclientinfo" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">server_getclientinfo</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#server_clientname" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">server_clientname</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#server_latestinput" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">server_latestinput</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#server_setclientname" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">server_setclientname</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#server_setclientscore" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">server_setclientscore</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#server_setbrowseinfo" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">server_setbrowseinfo</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#server_kick" id=link7 onMouseOver="ShowTip(event, 'tt7', 'link7')" onMouseOut="HideTip('tt7')">server_kick</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#server_tick" id=link8 onMouseOver="ShowTip(event, 'tt8', 'link8')" onMouseOut="HideTip('tt8')">server_tick</a></td><td class=SDescription>TODO</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#server_tickspeed" id=link9 onMouseOver="ShowTip(event, 'tt9', 'link9')" onMouseOut="HideTip('tt9')">server_tickspeed</a></td><td class=SDescription>TODO</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_getclientinfo"></a>server_getclientinfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int server_getclientinfo(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PType nowrap>CLIENT_INFO&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>info</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_clientname"></a>server_clientname</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const char *server_clientname(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_latestinput"></a>server_latestinput</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int *server_latestinput(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_setclientname"></a>server_setclientname</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_setclientname(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_setclientscore"></a>server_setclientscore</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_setclientscore(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>score</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_setbrowseinfo"></a>server_setbrowseinfo</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_setbrowseinfo(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>game_type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>progression</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_kick"></a>server_kick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_kick(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>reason</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_tick"></a>server_tick</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int server_tick()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="server_tickspeed"></a>server_tickspeed</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int server_tickspeed()</td></tr></table></blockquote><p>TODO</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>arg1</td><td class=CDLDescription>desc</td></tr></table><h4 class=CHeading>Returns</h4><h4 class=CHeading>See Also</h4><p>&lt;other_func&gt;</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile id=MSelected>Server Interface</div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([4, 5, 6], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int server_getclientinfo(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PType nowrap>CLIENT_INFO&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>info</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const char *server_clientname(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int *server_latestinput(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_setclientname(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>name</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_setclientscore(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>score</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_setbrowseinfo(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>game_type,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>progression</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void server_kick(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>client_id,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>reason</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int server_tick()</td></tr></table></blockquote>TODO</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int server_tickspeed()</td></tr></table></blockquote>TODO</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_if_snd-h.html b/docs/output/files2/e_if_snd-h.html
new file mode 100644
index 00000000..5cc729f7
--- /dev/null
+++ b/docs/output/files2/e_if_snd-h.html
@@ -0,0 +1,53 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>Sound</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="Sound"></a>Sound</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#Sound" >Sound</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Functions" >Functions</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snd_set_channel" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">snd_set_channel</a></td><td class=SDescription>Sets the parameters for a sound channel.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snd_load_wv" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">snd_load_wv</a></td><td class=SDescription>Loads a wavpack compressed sound.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snd_play_at" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">snd_play_at</a></td><td class=SDescription>Plays a sound at a specified postition.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snd_play" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">snd_play</a></td><td class=SDescription>Plays a sound.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#snd_stop" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">snd_stop</a></td><td class=SDescription>Stops a currenly playing sound.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#snd_set_listener_pos" id=link6 onMouseOver="ShowTip(event, 'tt6', 'link6')" onMouseOut="HideTip('tt6')">snd_set_listener_pos</a></td><td class=SDescription>Sets the listener posititon.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Functions"></a>Functions</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snd_set_channel"></a>snd_set_channel</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snd_set_channel(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>vol,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>pan</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the parameters for a sound channel.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Channel ID</td></tr><tr><td class=CDLEntry>vol</td><td class=CDLDescription>Volume for the channel.&nbsp; 0.0 to 1.0.</td></tr><tr><td class=CDLEntry>pan</td><td class=CDLDescription>Panning for the channel.&nbsp; -1.0 is all left.&nbsp; 0.0 is equal distribution.&nbsp; 1.0 is all right.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snd_load_wv"></a>snd_load_wv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snd_load_wv(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Loads a wavpack compressed sound.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filename</td><td class=CDLDescription>Filename of the file to load</td></tr></table><h4 class=CHeading>Returns</h4><p>The id of the loaded sound.&nbsp; -1 on failure.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snd_play_at"></a>snd_play_at</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snd_play_at(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>sid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>flags,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Plays a sound at a specified postition.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>cid</td><td class=CDLDescription>Channel id of the channel to use.</td></tr><tr><td class=CDLEntry>sid</td><td class=CDLDescription>Sound id of the sound to play.</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>TODO</td></tr><tr><td class=CDLEntry>x</td><td class=CDLDescription>TODO</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>TODO</td></tr></table><h4 class=CHeading>Returns</h4><p>An id to the voice.&nbsp; -1 on failure.</p><h4 class=CHeading>See Also</h4><p>&lt;snd_play, snd_stop&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snd_play"></a>snd_play</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snd_play(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>sid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Plays a sound.</p><h4 class=CHeading>Arguments</h4><p>Arguments: cid - Channel id of the channel to use. sid - Sound id of the sound to play. flags - TODO</p><h4 class=CHeading>Returns</h4><p>An id to the voice.&nbsp; -1 on failure.</p><h4 class=CHeading>See Also</h4><p>&lt;snd_play_at, snd_stop&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snd_stop"></a>snd_stop</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snd_stop(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Stops a currenly playing sound.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>id</td><td class=CDLDescription>The ID of the voice to stop.</td></tr></table><h4 class=CHeading>See Also</h4><p>&lt;snd_play, snd_play_at&gt;</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="snd_set_listener_pos"></a>snd_set_listener_pos</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snd_set_listener_pos(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets the listener posititon.</p><h4 class=CHeading>Arguments</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>x</td><td class=CDLDescription>TODO</td></tr><tr><td class=CDLEntry>y</td><td class=CDLDescription>TODO</td></tr></table></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile><a href="e_system-h.html">OS Abstraction</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile id=MSelected>Sound</div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([2, 3, 6, 1], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snd_set_channel(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>vol,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>pan</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the parameters for a sound channel.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snd_load_wv(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Loads a wavpack compressed sound.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snd_play_at(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>sid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>flags,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Plays a sound at a specified postition.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int snd_play(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>cid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>sid,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Plays a sound.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snd_stop(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>id</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Stops a currenly playing sound.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void snd_set_listener_pos(</td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>x,</td></tr><tr><td></td><td class=PType nowrap>float&nbsp;</td><td class=PParameter nowrap>y</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets the listener posititon.</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file
diff --git a/docs/output/files2/e_system-h.html b/docs/output/files2/e_system-h.html
new file mode 100644
index 00000000..9333e410
--- /dev/null
+++ b/docs/output/files2/e_system-h.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+
+<html><head><title>OS Abstraction</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
+if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
+
+<!--  Generated by Natural Docs, version 1.4 -->
+<!--  http://www.naturaldocs.org  -->
+
+<!-- saved from url=(0026)http://www.naturaldocs.org -->
+
+
+
+
+<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="OS_Abstraction"></a>OS Abstraction</h1><div class=CBody><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#OS_Abstraction" >OS Abstraction</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Debug" >Debug</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#dbg_assert" id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">dbg_assert</a></td><td class=SDescription>Breaks into the debugger based on a test.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#dbg_break" id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">dbg_break</a></td><td class=SDescription>Breaks into the debugger.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#dbg_msg" id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">dbg_msg</a></td><td class=SDescription>Prints a debug message.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Memory" >Memory</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mem_alloc" id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">mem_alloc</a></td><td class=SDescription>Allocates memory.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mem_free" id=link5 onMouseOver="ShowTip(event, 'tt5', 'link5')" onMouseOut="HideTip('tt5')">mem_free</a></td><td class=SDescription>Frees a block allocated through <a href="#mem_alloc" class=LFunction id=link6 onMouseOver="ShowTip(event, 'tt4', 'link6')" onMouseOut="HideTip('tt4')">mem_alloc</a>.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mem_copy" id=link7 onMouseOver="ShowTip(event, 'tt6', 'link7')" onMouseOut="HideTip('tt6')">mem_copy</a></td><td class=SDescription>Copies a a memory block.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mem_move" id=link8 onMouseOver="ShowTip(event, 'tt7', 'link8')" onMouseOut="HideTip('tt7')">mem_move</a></td><td class=SDescription>Copies a a memory block</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#mem_zero" id=link9 onMouseOver="ShowTip(event, 'tt8', 'link9')" onMouseOut="HideTip('tt8')">mem_zero</a></td><td class=SDescription>Sets a complete memory block to 0</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#mem_comp" id=link10 onMouseOver="ShowTip(event, 'tt9', 'link10')" onMouseOut="HideTip('tt9')">mem_comp</a></td><td class=SDescription>Compares two blocks of memory</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#File_IO" >File IO</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#io_open" id=link11 onMouseOver="ShowTip(event, 'tt10', 'link11')" onMouseOut="HideTip('tt10')">io_open</a></td><td class=SDescription>Opens a file.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#io_read" id=link12 onMouseOver="ShowTip(event, 'tt11', 'link12')" onMouseOut="HideTip('tt11')">io_read</a></td><td class=SDescription>Reads data into a buffer from a file.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#io_skip" id=link13 onMouseOver="ShowTip(event, 'tt12', 'link13')" onMouseOut="HideTip('tt12')">io_skip</a></td><td class=SDescription>Skips data in a file.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#io_write" id=link14 onMouseOver="ShowTip(event, 'tt13', 'link14')" onMouseOut="HideTip('tt13')">io_write</a></td><td class=SDescription>Writes data from a buffer to file.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#io_seek" id=link15 onMouseOver="ShowTip(event, 'tt14', 'link15')" onMouseOut="HideTip('tt14')">io_seek</a></td><td class=SDescription>Seeks to a specified offset in the file.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#io_tell" id=link16 onMouseOver="ShowTip(event, 'tt15', 'link16')" onMouseOut="HideTip('tt15')">io_tell</a></td><td class=SDescription>Gets the current position in the file.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#io_length" id=link17 onMouseOver="ShowTip(event, 'tt16', 'link17')" onMouseOut="HideTip('tt16')">io_length</a></td><td class=SDescription>Gets the total length of the file. </td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#io_close" id=link18 onMouseOver="ShowTip(event, 'tt17', 'link18')" onMouseOut="HideTip('tt17')">io_close</a></td><td class=SDescription>Closes a file.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#io_flush" id=link19 onMouseOver="ShowTip(event, 'tt18', 'link19')" onMouseOut="HideTip('tt18')">io_flush</a></td><td class=SDescription>Empties all buffers and writes all pending data.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#io_stdin" id=link20 onMouseOver="ShowTip(event, 'tt19', 'link20')" onMouseOut="HideTip('tt19')">io_stdin</a></td><td class=SDescription>Returns an &lt;IOHANDLE&gt; to the standard input.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#io_stdout" id=link21 onMouseOver="ShowTip(event, 'tt20', 'link21')" onMouseOut="HideTip('tt20')">io_stdout</a></td><td class=SDescription>Returns an &lt;IOHANDLE&gt; to the standard output.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#io_stderr" id=link22 onMouseOver="ShowTip(event, 'tt21', 'link22')" onMouseOut="HideTip('tt21')">io_stderr</a></td><td class=SDescription>Returns an &lt;IOHANDLE&gt; to the standard error.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Threads" >Threads</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#thread_sleep" id=link23 onMouseOver="ShowTip(event, 'tt22', 'link23')" onMouseOut="HideTip('tt22')">thread_sleep</a></td><td class=SDescription>Suspends the current thread for a given period.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#thread_create" id=link24 onMouseOver="ShowTip(event, 'tt23', 'link24')" onMouseOut="HideTip('tt23')">thread_create</a></td><td class=SDescription>Creates a new thread.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#thread_wait" id=link25 onMouseOver="ShowTip(event, 'tt24', 'link25')" onMouseOut="HideTip('tt24')">thread_wait</a></td><td class=SDescription>Waits for a thread to be done or destroyed.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#thread_destoy" >thread_destoy</a></td><td class=SDescription>Destroys a thread.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#thread_yeild" >thread_yeild</a></td><td class=SDescription>Yeild the current threads execution slice.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Locks" >Locks</a></td><td class=SDescription></td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Timer" >Timer</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#time_get" id=link26 onMouseOver="ShowTip(event, 'tt25', 'link26')" onMouseOut="HideTip('tt25')">time_get</a></td><td class=SDescription>Fetches a sample from a high resolution timer.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#time_freq" id=link27 onMouseOver="ShowTip(event, 'tt26', 'link27')" onMouseOut="HideTip('tt26')">time_freq</a></td><td class=SDescription>Returns the frequency of the high resolution timer.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#time_timestamp" id=link28 onMouseOver="ShowTip(event, 'tt27', 'link28')" onMouseOut="HideTip('tt27')">time_timestamp</a></td><td class=SDescription>Retrives the current time as a UNIX timestamp</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Network_General" >Network General</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_init" id=link29 onMouseOver="ShowTip(event, 'tt28', 'link29')" onMouseOut="HideTip('tt28')">net_init</a></td><td class=SDescription>Initiates network functionallity.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_host_lookup" id=link30 onMouseOver="ShowTip(event, 'tt29', 'link30')" onMouseOut="HideTip('tt29')">net_host_lookup</a></td><td class=SDescription>Does a hostname lookup by name and fills out the passed NETADDR struct with the recieved details.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_addr_comp" id=link31 onMouseOver="ShowTip(event, 'tt30', 'link31')" onMouseOut="HideTip('tt30')">net_addr_comp</a></td><td class=SDescription>Compares two network addresses.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_addr_str" id=link32 onMouseOver="ShowTip(event, 'tt31', 'link32')" onMouseOut="HideTip('tt31')">net_addr_str</a></td><td class=SDescription>Turns a network address into a representive string.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Network_UDP" >Network UDP</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_udp_create" id=link33 onMouseOver="ShowTip(event, 'tt32', 'link33')" onMouseOut="HideTip('tt32')">net_udp_create</a></td><td class=SDescription>Creates a UDP socket and binds it to a port.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_udp_send" id=link34 onMouseOver="ShowTip(event, 'tt33', 'link34')" onMouseOut="HideTip('tt33')">net_udp_send</a></td><td class=SDescription>Sends a packet over an UDP socket.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_udp_recv" id=link35 onMouseOver="ShowTip(event, 'tt34', 'link35')" onMouseOut="HideTip('tt34')">net_udp_recv</a></td><td class=SDescription>Recives a packet over an UDP socket.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_udp_close" id=link36 onMouseOver="ShowTip(event, 'tt35', 'link36')" onMouseOut="HideTip('tt35')">net_udp_close</a></td><td class=SDescription>Closes an UDP socket.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Network_TCP" >Network TCP</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_tcp_create" id=link37 onMouseOver="ShowTip(event, 'tt36', 'link37')" onMouseOut="HideTip('tt36')">net_tcp_create</a></td><td class=SDescription>Creates a TCP socket.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_tcp_listen" id=link38 onMouseOver="ShowTip(event, 'tt37', 'link38')" onMouseOut="HideTip('tt37')">net_tcp_listen</a></td><td class=SDescription>Makes the socket start listening for new connections.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_tcp_accept" id=link39 onMouseOver="ShowTip(event, 'tt38', 'link39')" onMouseOut="HideTip('tt38')">net_tcp_accept</a></td><td class=SDescription>Polls a listning socket for a new connection.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_tcp_connect" id=link40 onMouseOver="ShowTip(event, 'tt39', 'link40')" onMouseOut="HideTip('tt39')">net_tcp_connect</a></td><td class=SDescription>Connects one socket to another.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_tcp_send" id=link41 onMouseOver="ShowTip(event, 'tt40', 'link41')" onMouseOut="HideTip('tt40')">net_tcp_send</a></td><td class=SDescription>Sends data to a TCP stream.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_tcp_recv" id=link42 onMouseOver="ShowTip(event, 'tt41', 'link42')" onMouseOut="HideTip('tt41')">net_tcp_recv</a></td><td class=SDescription>Recvives data from a TCP stream.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_tcp_close" id=link43 onMouseOver="ShowTip(event, 'tt42', 'link43')" onMouseOut="HideTip('tt42')">net_tcp_close</a></td><td class=SDescription>Closes a TCP socket.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Strings" >Strings</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#str_append" id=link44 onMouseOver="ShowTip(event, 'tt43', 'link44')" onMouseOut="HideTip('tt43')">str_append</a></td><td class=SDescription>Appends a string to another.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#str_copy" id=link45 onMouseOver="ShowTip(event, 'tt44', 'link45')" onMouseOut="HideTip('tt44')">str_copy</a></td><td class=SDescription>Copies a string to another.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#str_format" id=link46 onMouseOver="ShowTip(event, 'tt45', 'link46')" onMouseOut="HideTip('tt45')">str_format</a></td><td class=SDescription>Performs printf formating into a buffer.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#str_sanitize_strong" id=link47 onMouseOver="ShowTip(event, 'tt46', 'link47')" onMouseOut="HideTip('tt46')">str_sanitize_strong</a></td><td class=SDescription>Replaces all characters below 32 and above 127 with whitespace.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#str_sanitize" id=link48 onMouseOver="ShowTip(event, 'tt47', 'link48')" onMouseOut="HideTip('tt47')">str_sanitize</a></td><td class=SDescription>Replaces all characters below 32 and above 127 with whitespace with exception to \r, \n and \r.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#str_comp_nocase" id=link49 onMouseOver="ShowTip(event, 'tt48', 'link49')" onMouseOut="HideTip('tt48')">str_comp_nocase</a></td><td class=SDescription>Compares to strings case insensitive.</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#str_find_nocase" id=link50 onMouseOver="ShowTip(event, 'tt49', 'link50')" onMouseOut="HideTip('tt49')">str_find_nocase</a></td><td class=SDescription>Finds a string inside another string case insensitive.</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#str_hex" id=link51 onMouseOver="ShowTip(event, 'tt50', 'link51')" onMouseOut="HideTip('tt50')">str_hex</a></td><td class=SDescription>Takes a datablock and generates a hexstring of it.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Filesystem" >Filesystem</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#fs_listdir" id=link52 onMouseOver="ShowTip(event, 'tt51', 'link52')" onMouseOut="HideTip('tt51')">fs_listdir</a></td><td class=SDescription>Lists the files in a directory</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#fs_makedir" id=link53 onMouseOver="ShowTip(event, 'tt52', 'link53')" onMouseOut="HideTip('tt52')">fs_makedir</a></td><td class=SDescription>Creates a directory</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#fs_storage_path" id=link54 onMouseOver="ShowTip(event, 'tt53', 'link54')" onMouseOut="HideTip('tt53')">fs_storage_path</a></td><td class=SDescription>Fetches per user configuration directory.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Undocumented" >Undocumented</a></td><td class=SDescription></td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_tcp_connect_non_blocking" id=link55 onMouseOver="ShowTip(event, 'tt54', 'link55')" onMouseOut="HideTip('tt54')">net_tcp_connect_non_blocking</a></td><td class=SDescription>DOCTODO: serp</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_tcp_set_non_blocking" id=link56 onMouseOver="ShowTip(event, 'tt55', 'link56')" onMouseOut="HideTip('tt55')">net_tcp_set_non_blocking</a></td><td class=SDescription>DOCTODO: serp</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_tcp_set_non_blocking" >net_tcp_set_non_blocking</a></td><td class=SDescription>DOCTODO: serp</td></tr><tr class="SFunction SIndent2"><td class=SEntry><a href="#net_errno" id=link57 onMouseOver="ShowTip(event, 'tt56', 'link57')" onMouseOut="HideTip('tt56')">net_errno</a></td><td class=SDescription>DOCTODO: serp</td></tr><tr class="SFunction SIndent2 SMarked"><td class=SEntry><a href="#net_would_block" id=link58 onMouseOver="ShowTip(event, 'tt57', 'link58')" onMouseOut="HideTip('tt57')">net_would_block</a></td><td class=SDescription>DOCTODO: serp</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Debug"></a>Debug</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="dbg_assert"></a>dbg_assert</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void dbg_assert(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>test,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>msg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Breaks into the debugger based on a test.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>test</td><td class=CDLDescription>Result of the test.</td></tr><tr><td class=CDLEntry>msg</td><td class=CDLDescription>Message that should be printed if the test fails.</td></tr></table><h4 class=CHeading>Remarks</h4><p>Does nothing in release version of the library.</p><h4 class=CHeading>See Also</h4><p><a href="#dbg_break" class=LFunction id=link59 onMouseOver="ShowTip(event, 'tt2', 'link59')" onMouseOut="HideTip('tt2')">dbg_break</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="dbg_break"></a>dbg_break</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void dbg_break()</td></tr></table></blockquote><p>Breaks into the debugger.</p><h4 class=CHeading>Remarks</h4><p>Does nothing in release version of the library.</p><h4 class=CHeading>See Also</h4><p><a href="#dbg_assert" class=LFunction id=link60 onMouseOver="ShowTip(event, 'tt1', 'link60')" onMouseOut="HideTip('tt1')">dbg_assert</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="dbg_msg"></a>dbg_msg</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void dbg_msg(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>sys,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>fmt,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>...</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Prints a debug message.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sys</td><td class=CDLDescription>A string that describes what system the message belongs to</td></tr><tr><td class=CDLEntry>fmt</td><td class=CDLDescription>A printf styled format string.</td></tr></table><h4 class=CHeading>Remarks</h4><p>Does nothing in relase version of the library.</p><h4 class=CHeading>See Also</h4><p><a href="#dbg_assert" class=LFunction id=link61 onMouseOver="ShowTip(event, 'tt1', 'link61')" onMouseOut="HideTip('tt1')">dbg_assert</a></p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Memory"></a>Memory</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mem_alloc"></a>mem_alloc</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *mem_alloc_debug(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>line,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>alignment</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Allocates memory.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the needed block.</td></tr><tr><td class=CDLEntry>alignment</td><td class=CDLDescription>Alignment for the block.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a pointer to the newly allocated block.&nbsp; Returns a null pointer if the memory couldn&rsquo;t be allocated.</p><h4 class=CHeading>Remarks</h4><ul><li>Passing 0 to size will allocated the smallest amount possible and return a unique pointer.</li></ul><h4 class=CHeading>See Also</h4><p><a href="#mem_free" class=LFunction id=link62 onMouseOver="ShowTip(event, 'tt5', 'link62')" onMouseOut="HideTip('tt5')">mem_free</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mem_free"></a>mem_free</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_free(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>block</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Frees a block allocated through <a href="#mem_alloc" class=LFunction id=link63 onMouseOver="ShowTip(event, 'tt4', 'link63')" onMouseOut="HideTip('tt4')">mem_alloc</a>.</p><h4 class=CHeading>Remarks</h4><ul><li>In the debug version of the library the function will assert if a non-valid block is passed, like a null pointer or a block that isn&rsquo;t allocated.</li></ul><h4 class=CHeading>See Also</h4><p><a href="#mem_alloc" class=LFunction id=link64 onMouseOver="ShowTip(event, 'tt4', 'link64')" onMouseOut="HideTip('tt4')">mem_alloc</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mem_copy"></a>mem_copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_copy(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dest,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Copies a a memory block.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dest</td><td class=CDLDescription>Destination.</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Source to copy.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the block to copy.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>This functions DOES NOT handles cases where source and destination is overlapping.</li></ul><h4 class=CHeading>See Also</h4><p><a href="#mem_move" class=LFunction id=link65 onMouseOver="ShowTip(event, 'tt7', 'link65')" onMouseOut="HideTip('tt7')">mem_move</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mem_move"></a>mem_move</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_move(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dest,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Copies a a memory block</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dest</td><td class=CDLDescription>Destination</td></tr><tr><td class=CDLEntry>source</td><td class=CDLDescription>Source to copy</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the block to copy</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>This functions handles cases where source and destination is overlapping</li></ul><h4 class=CHeading>See Also</h4><p><a href="#mem_copy" class=LFunction id=link66 onMouseOver="ShowTip(event, 'tt6', 'link66')" onMouseOut="HideTip('tt6')">mem_copy</a></p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mem_zero"></a>mem_zero</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_zero(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>block,</td></tr><tr><td></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sets a complete memory block to 0</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>block</td><td class=CDLDescription>Pointer to the block to zero out</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the block</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="mem_comp"></a>mem_comp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int mem_comp(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Compares two blocks of memory</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>a</td><td class=CDLDescription>First block of data</td></tr><tr><td class=CDLEntry>b</td><td class=CDLDescription>Second block of data</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the data to compare</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>&lt;0</td><td class=CDLDescription>Block a is lesser then block b</td></tr><tr><td class=CDLEntry>0</td><td class=CDLDescription>Block a is equal to block b</td></tr></table><blockquote><pre>0 - Block a is greater then block b</pre></blockquote></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="File_IO"></a>File IO</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_open"></a>io_open</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>IOHANDLE io_open(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Opens a file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>filename</td><td class=CDLDescription>File to open.</td></tr><tr><td class=CDLEntry>flags</td><td class=CDLDescription>A set of flags.&nbsp; IOFLAG_READ, IOFLAG_WRITE, IOFLAG_RANDOM.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a handle to the file on success and 0 on failure.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_read"></a>io_read</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unsigned io_read(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>buffer,</td></tr><tr><td></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Reads data into a buffer from a file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file to read data from.</td></tr><tr><td class=CDLEntry>buffer</td><td class=CDLDescription>Pointer to the buffer that will recive the data.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Number of bytes to read from the file.</td></tr></table><h4 class=CHeading>Returns</h4><p>Number of bytes read.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_skip"></a>io_skip</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unsigned io_skip(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Skips data in a file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Number of bytes to skip.</td></tr></table><h4 class=CHeading>Returns</h4><p>Number of bytes skipped.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_write"></a>io_write</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unsigned io_write(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>buffer,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Writes data from a buffer to file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr><tr><td class=CDLEntry>buffer</td><td class=CDLDescription>Pointer to the data that should be written.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Number of bytes to write.</td></tr></table><h4 class=CHeading>Returns</h4><p>Number of bytes written.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_seek"></a>io_seek</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int io_seek(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>offset,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Seeks to a specified offset in the file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr><tr><td class=CDLEntry>offset</td><td class=CDLDescription>Offset from pos to stop.</td></tr><tr><td class=CDLEntry>origin</td><td class=CDLDescription>Position to start searching from.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_tell"></a>io_tell</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>long int io_tell(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the current position in the file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns the current position.&nbsp; -1L if an error occured.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_length"></a>io_length</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>long int io_length(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Gets the total length of the file.&nbsp; Resetting cursor to the beginning</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns the total size.&nbsp; -1L if an error occured.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_close"></a>io_close</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int io_close(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Closes a file.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_flush"></a>io_flush</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int io_flush(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Empties all buffers and writes all pending data.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>io</td><td class=CDLDescription>Handle to the file.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_stdin"></a>io_stdin</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>IOHANDLE io_stdin()</td></tr></table></blockquote><p>Returns an &lt;IOHANDLE&gt; to the standard input.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_stdout"></a>io_stdout</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>IOHANDLE io_stdout()</td></tr></table></blockquote><p>Returns an &lt;IOHANDLE&gt; to the standard output.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="io_stderr"></a>io_stderr</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>IOHANDLE io_stderr()</td></tr></table></blockquote><p>Returns an &lt;IOHANDLE&gt; to the standard error.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Threads"></a>Threads</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="thread_sleep"></a>thread_sleep</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void thread_sleep(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>milliseconds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Suspends the current thread for a given period.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>milliseconds</td><td class=CDLDescription>Number of milliseconds to sleep.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="thread_create"></a>thread_create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *thread_create(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>(*threadfunc)(void *),</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>user</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a new thread.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>threadfunc</td><td class=CDLDescription>Entry point for the new thread.</td></tr><tr><td class=CDLEntry>user</td><td class=CDLDescription>Pointer to pass to the thread.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="thread_wait"></a>thread_wait</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void thread_wait(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>thread</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Waits for a thread to be done or destroyed.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>thread</td><td class=CDLDescription>Thread to wait for.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="thread_destoy"></a>thread_destoy</h3><div class=CBody><p>Destroys a thread.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>thread</td><td class=CDLDescription>Thread to destroy.</td></tr></table></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="thread_yeild"></a>thread_yeild</h3><div class=CBody><p>Yeild the current threads execution slice.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Locks"></a>Locks</h3></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Timer"></a>Timer</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="time_get"></a>time_get</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int64 time_get()</td></tr></table></blockquote><p>Fetches a sample from a high resolution timer.</p><h4 class=CHeading>Returns</h4><p>Current value of the timer.</p><h4 class=CHeading>Remarks</h4><p>To know how fast the timer is ticking, see <a href="#time_freq" class=LFunction id=link67 onMouseOver="ShowTip(event, 'tt26', 'link67')" onMouseOut="HideTip('tt26')">time_freq</a>.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="time_freq"></a>time_freq</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int64 time_freq()</td></tr></table></blockquote><p>Returns the frequency of the high resolution timer.</p><h4 class=CHeading>Returns</h4><p>Returns the frequency of the high resolution timer.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="time_timestamp"></a>time_timestamp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>unsigned time_timestamp()</td></tr></table></blockquote><p>Retrives the current time as a UNIX timestamp</p><h4 class=CHeading>Returns</h4><p>The time as a UNIX timestamp</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Network_General"></a>Network General</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_init"></a>net_init</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int net_init()</td></tr></table></blockquote><p>Initiates network functionallity.</p><h4 class=CHeading>Returns</h4><p>Returns 0 on success,</p><h4 class=CHeading>Remarks</h4><p>You must call this function before using any other network functions.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_host_lookup"></a>net_host_lookup</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_host_lookup(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>hostname,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>types</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Does a hostname lookup by name and fills out the passed NETADDR struct with the recieved details.</p><h4 class=CHeading>Returns</h4><p>0 on success.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_addr_comp"></a>net_addr_comp</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_addr_comp(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Compares two network addresses.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>a</td><td class=CDLDescription>Address to compare</td></tr><tr><td class=CDLEntry>b</td><td class=CDLDescription>Address to compare to.</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>&lt;0</td><td class=CDLDescription>Address a is lesser then address b</td></tr><tr><td class=CDLEntry>0</td><td class=CDLDescription>Address a is equal to address b</td></tr></table><blockquote><pre>0 - Address a is greater then address b</pre></blockquote></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_addr_str"></a>net_addr_str</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_addr_str(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>string,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>max_length</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Turns a network address into a representive string.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>addr</td><td class=CDLDescription>Address to turn into a string.</td></tr><tr><td class=CDLEntry>string</td><td class=CDLDescription>Buffer to fill with the string.</td></tr><tr><td class=CDLEntry>max_length</td><td class=CDLDescription>Maximum size of the string.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>The string will always be zero terminated</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Network_UDP"></a>Network UDP</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_udp_create"></a>net_udp_create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>NETSOCKET net_udp_create(</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameter nowrap>bindaddr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a UDP socket and binds it to a port.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bindaddr</td><td class=CDLDescription>Address to bind the socket to.</td></tr></table><h4 class=CHeading>Returns</h4><p>On success it returns an handle to the socket.&nbsp; On failure it returns NETSOCKET_INVALID.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_udp_send"></a>net_udp_send</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_udp_send(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sends a packet over an UDP socket.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to use.</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription>Where to send the packet.</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Pointer to the packet data to send.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the packet.</td></tr></table><h4 class=CHeading>Returns</h4><p>On success it returns the number of bytes sent.&nbsp; Returns -1 on error.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_udp_recv"></a>net_udp_recv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_udp_recv(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>maxsize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Recives a packet over an UDP socket.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to use.</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription>Pointer to an NETADDR that will recive the address.</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Pointer to a buffer that will recive the data.</td></tr><tr><td class=CDLEntry>maxsize</td><td class=CDLDescription>Maximum size to recive.</td></tr></table><h4 class=CHeading>Returns</h4><p>On success it returns the number of bytes recived.&nbsp; Returns -1 on error.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_udp_close"></a>net_udp_close</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_udp_close(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Closes an UDP socket.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to close.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.&nbsp; -1 on error.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Network_TCP"></a>Network TCP</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_create"></a>net_tcp_create</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>NETSOCKET net_tcp_create(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a TCP socket.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>bindaddr</td><td class=CDLDescription>Address to bind the socket to.</td></tr></table><h4 class=CHeading>Returns</h4><p>On success it returns an handle to the socket.&nbsp; On failure it returns NETSOCKET_INVALID.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_listen"></a>net_tcp_listen</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_listen(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>backlog</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Makes the socket start listening for new connections.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to start listen to.</td></tr><tr><td class=CDLEntry>backlog</td><td class=CDLDescription>Size of the queue of incomming connections to keep.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_accept"></a>net_tcp_accept</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_accept(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>new_sock,</td></tr><tr><td></td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Polls a listning socket for a new connection.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Listning socket to poll.</td></tr><tr><td class=CDLEntry>new_sock</td><td class=CDLDescription>Pointer to a socket to fill in with the new socket.</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription>Pointer to an address that will be filled in the remote address (optional, can be NULL).</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns a non-negative integer on success.&nbsp; Negative integer on failure.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_connect"></a>net_tcp_connect</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_connect(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Connects one socket to another.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to connect.</td></tr><tr><td class=CDLEntry>addr</td><td class=CDLDescription>Address to connect to.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_send"></a>net_tcp_send</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_send(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Sends data to a TCP stream.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to send data to.</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Pointer to the data to send.</td></tr><tr><td class=CDLEntry>size</td><td class=CDLDescription>Size of the data to send.</td></tr></table><h4 class=CHeading>Returns</h4><p>Number of bytes sent.&nbsp; Negative value on failure.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_recv"></a>net_tcp_recv</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_recv(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>maxsize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Recvives data from a TCP stream.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to recvive data from.</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Pointer to a buffer to write the data to</td></tr><tr><td class=CDLEntry>max_size</td><td class=CDLDescription>Maximum of data to write to the buffer.</td></tr></table><h4 class=CHeading>Returns</h4><p>Number of bytes recvived.&nbsp; Negative value on failure.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_close"></a>net_tcp_close</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_close(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Closes a TCP socket.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>sock</td><td class=CDLDescription>Socket to close.</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.&nbsp; Negative value on failure.</p></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Strings"></a>Strings</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_append"></a>str_append</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_append(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dst,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>src,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>dst_size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Appends a string to another.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dst</td><td class=CDLDescription>Pointer to a buffer that contains a string.</td></tr><tr><td class=CDLEntry>src</td><td class=CDLDescription>String to append.</td></tr><tr><td class=CDLEntry>dst_size</td><td class=CDLDescription>Size of the buffer of the dst string.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>The strings are treated as zero-termineted strings.</li><li>Garantees that dst string will contain zero-termination.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_copy"></a>str_copy</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_copy(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dst,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>src,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>dst_size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Copies a string to another.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dst</td><td class=CDLDescription>Pointer to a buffer that shall recive the string.</td></tr><tr><td class=CDLEntry>src</td><td class=CDLDescription>String to be copied.</td></tr><tr><td class=CDLEntry>dst_size</td><td class=CDLDescription>Size of the buffer dst.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>The strings are treated as zero-termineted strings.</li><li>Garantees that dst string will contain zero-termination.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_format"></a>str_format</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_format(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>buffer,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>buffer_size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>format,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>...</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Performs printf formating into a buffer.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>buffer</td><td class=CDLDescription>Pointer to the buffer to recive the formated string.</td></tr><tr><td class=CDLEntry>buffer_size</td><td class=CDLDescription>Size of the buffer.</td></tr><tr><td class=CDLEntry>format</td><td class=CDLDescription>printf formating string.</td></tr><tr><td class=CDLEntry>...</td><td class=CDLDescription>Parameters for the formating.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>See the C manual for syntax for the printf formating string.</li><li>The strings are treated as zero-termineted strings.</li><li>Garantees that dst string will contain zero-termination.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_sanitize_strong"></a>str_sanitize_strong</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_sanitize_strong(</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Replaces all characters below 32 and above 127 with whitespace.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>String to sanitize.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>The strings are treated as zero-termineted strings.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_sanitize"></a>str_sanitize</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_sanitize(</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Replaces all characters below 32 and above 127 with whitespace with exception to \r, \n and \r.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>str</td><td class=CDLDescription>String to sanitize.</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>The strings are treated as zero-termineted strings.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_comp_nocase"></a>str_comp_nocase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int str_comp_nocase(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Compares to strings case insensitive.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>a</td><td class=CDLDescription>String to compare.</td></tr><tr><td class=CDLEntry>b</td><td class=CDLDescription>String to compare.</td></tr></table><h4 class=CHeading>Returns</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>&lt;0</td><td class=CDLDescription>String a is lesser then string b</td></tr><tr><td class=CDLEntry>0</td><td class=CDLDescription>String a is equal to string b</td></tr></table><blockquote><pre>0 - String a is greater then string b</pre></blockquote><h4 class=CHeading>Remarks</h4><ul><li>Only garanted to work with a-z/A-Z.</li><li>The strings are treated as zero-termineted strings.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_find_nocase"></a>str_find_nocase</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const char *str_find_nocase(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>haystack,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>needle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Finds a string inside another string case insensitive.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>haystack</td><td class=CDLDescription>String to search in</td></tr><tr><td class=CDLEntry>needle</td><td class=CDLDescription>String to search for</td></tr></table><h4 class=CHeading>Returns</h4><p>A pointer into haystack where the needle was found.&nbsp; Returns NULL of needle could not be found.</p><h4 class=CHeading>Remarks</h4><ul><li>Only garanted to work with a-z/A-Z.</li><li>The strings are treated as zero-termineted strings.</li></ul></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="str_hex"></a>str_hex</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_hex(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dst,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>dst_size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>data_size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Takes a datablock and generates a hexstring of it.</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dst</td><td class=CDLDescription>Buffer to fill with hex data</td></tr><tr><td class=CDLEntry>dst_size</td><td class=CDLDescription>size of the buffer</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Data to turn into hex</td></tr><tr><td class=CDLEntry>data</td><td class=CDLDescription>Size of the data</td></tr></table><h4 class=CHeading>Remarks</h4><ul><li>The desination buffer will be zero-terminated</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Filesystem"></a>Filesystem</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="fs_listdir"></a>fs_listdir</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>typedef void (</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>fs_listdir_callback</td><td class=PAfterParameters nowrap>)(const char *name, int is_dir, void *user)</td></tr></table></td></tr></table></blockquote><p>Lists the files in a directory</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>dir</td><td class=CDLDescription>Directory to list</td></tr><tr><td class=CDLEntry>cb</td><td class=CDLDescription>Callback function to call for each entry</td></tr><tr><td class=CDLEntry>user</td><td class=CDLDescription>Pointer to give to the callback</td></tr></table><h4 class=CHeading>Returns</h4><p>Always returns 0.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="fs_makedir"></a>fs_makedir</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int fs_makedir(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Creates a directory</p><h4 class=CHeading>Parameters</h4><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry>path</td><td class=CDLDescription>Directory to create</td></tr></table><h4 class=CHeading>Returns</h4><p>Returns 0 on success.&nbsp; Negative value on failure.</p><h4 class=CHeading>Remarks</h4><p>Does not create several directories if needed.&nbsp; &ldquo;a/b/c&rdquo; will result in a failure if b or a does not exist.</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="fs_storage_path"></a>fs_storage_path</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int fs_storage_path(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>appname,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>path,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>max</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>Fetches per user configuration directory.</p><h4 class=CHeading>Returns</h4><p>Returns 0 on success.&nbsp; Negative value on failure.</p><h4 class=CHeading>Remarks</h4><ul><li>Returns ~/.appname on UNIX based systems</li><li>Returns ~/Library/Applications Support/appname on Mac OS X</li><li>Returns %APPDATA%/Appname on Windows based systems</li></ul></div></div></div>
+
+<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Undocumented"></a>Undocumented</h3></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_connect_non_blocking"></a>net_tcp_connect_non_blocking</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_connect_non_blocking(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>DOCTODO: serp</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_set_non_blocking"></a>net_tcp_set_non_blocking</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_set_non_blocking(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote><p>DOCTODO: serp</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_tcp_set_non_blocking"></a>net_tcp_set_non_blocking</h3><div class=CBody><p>DOCTODO: serp</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_errno"></a>net_errno</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int net_errno()</td></tr></table></blockquote><p>DOCTODO: serp</p></div></div></div>
+
+<div class="CFunction"><div class=CTopic><h3 class=CTitle><a name="net_would_block"></a>net_would_block</h3><div class=CBody><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int net_would_block()</td></tr></table></blockquote><p>DOCTODO: serp</p></div></div></div>
+
+</div><!--Content-->
+
+
+<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
+
+
+<div id=Menu><div class=MEntry><div class=MFile id=MSelected>OS Abstraction</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent6')">Engine</a><div class=MGroupContent id=MGroupContent6><div class=MEntry><div class=MFile><a href="e_if_msg-h.html">Messaging</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Client</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Overview</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="docs/client_time-txt.html">Time on the client</a></div></div><div class=MEntry><div class=MFile><a href="docs/prediction-txt.html">Prediction</a></div></div><div class=MEntry><div class=MFile><a href="docs/snapshots-txt.html">Snapshots</a></div></div><div class=MEntry><div class=MFile><a href="docs/server_op-txt.html">Server Operation</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Reference</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="e_if_modc-h.html">Client Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_client-h.html">Client Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_other-h.html">Engine Interface</a></div></div><div class=MEntry><div class=MFile><a href="e_if_gfx-h.html">Graphics</a></div></div><div class=MEntry><div class=MFile><a href="e_if_inp-h.html">Input</a></div></div><div class=MEntry><div class=MFile><a href="e_if_snd-h.html">Sound</a></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Server</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Reference</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="e_if_mods-h.html">Server Hooks</a></div></div><div class=MEntry><div class=MFile><a href="e_if_server-h.html">Server Interface</a></div></div></div></div></div></div></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent7')">Game</a><div class=MGroupContent id=MGroupContent7><div class=MEntry><div class=MFile><a href="../files/server/gs_common-hpp.html">Entity</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent8')">Index</a><div class=MGroupContent id=MGroupContent8><div class=MEntry><div class=MIndex><a href="../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../index/Variables.html">Variables</a></div></div></div></div></div><script type="text/javascript"><!--
+var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
+--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Functions">Functions</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
+HideAllBut([6, 7, 8], 9);// --></script></div><!--Menu-->
+
+
+
+<!--START_ND_TOOLTIPS-->
+<div class=CToolTip id="tt1"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void dbg_assert(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>test,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>msg</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Breaks into the debugger based on a test.</div></div><div class=CToolTip id="tt2"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>void dbg_break()</td></tr></table></blockquote>Breaks into the debugger.</div></div><div class=CToolTip id="tt3"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void dbg_msg(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>sys,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>fmt,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>...</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Prints a debug message.</div></div><div class=CToolTip id="tt4"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *mem_alloc_debug(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>line,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>alignment</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Allocates memory.</div></div><div class=CToolTip id="tt5"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_free(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>block</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Frees a block allocated through mem_alloc.</div></div><div class=CToolTip id="tt6"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_copy(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dest,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Copies a a memory block.</div></div><div class=CToolTip id="tt7"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_move(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dest,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>source,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Copies a a memory block</div></div><div class=CToolTip id="tt8"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void mem_zero(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>block,</td></tr><tr><td></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sets a complete memory block to 0</div></div><div class=CToolTip id="tt9"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int mem_comp(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>b,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Compares two blocks of memory</div></div><div class=CToolTip id="tt10"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>IOHANDLE io_open(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>filename,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>flags</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Opens a file.</div></div><div class=CToolTip id="tt11"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unsigned io_read(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>buffer,</td></tr><tr><td></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Reads data into a buffer from a file.</div></div><div class=CToolTip id="tt12"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unsigned io_skip(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Skips data in a file.</div></div><div class=CToolTip id="tt13"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>unsigned io_write(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>buffer,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>unsigned&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Writes data from a buffer to file.</div></div><div class=CToolTip id="tt14"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int io_seek(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>offset,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>origin</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Seeks to a specified offset in the file.</div></div><div class=CToolTip id="tt15"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>long int io_tell(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the current position in the file.</div></div><div class=CToolTip id="tt16"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>long int io_length(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Gets the total length of the file. </div></div><div class=CToolTip id="tt17"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int io_close(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Closes a file.</div></div><div class=CToolTip id="tt18"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int io_flush(</td><td class=PType nowrap>IOHANDLE&nbsp;</td><td class=PParameter nowrap>io</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Empties all buffers and writes all pending data.</div></div><div class=CToolTip id="tt19"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>IOHANDLE io_stdin()</td></tr></table></blockquote>Returns an IOHANDLE to the standard input.</div></div><div class=CToolTip id="tt20"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>IOHANDLE io_stdout()</td></tr></table></blockquote>Returns an IOHANDLE to the standard output.</div></div><div class=CToolTip id="tt21"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>IOHANDLE io_stderr()</td></tr></table></blockquote>Returns an IOHANDLE to the standard error.</div></div><div class=CToolTip id="tt22"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void thread_sleep(</td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>milliseconds</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Suspends the current thread for a given period.</div></div><div class=CToolTip id="tt23"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void *thread_create(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>(*threadfunc)(void *),</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>user</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a new thread.</div></div><div class=CToolTip id="tt24"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void thread_wait(</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>thread</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Waits for a thread to be done or destroyed.</div></div><div class=CToolTip id="tt25"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int64 time_get()</td></tr></table></blockquote>Fetches a sample from a high resolution timer.</div></div><div class=CToolTip id="tt26"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int64 time_freq()</td></tr></table></blockquote>Returns the frequency of the high resolution timer.</div></div><div class=CToolTip id="tt27"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>unsigned time_timestamp()</td></tr></table></blockquote>Retrives the current time as a UNIX timestamp</div></div><div class=CToolTip id="tt28"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int net_init()</td></tr></table></blockquote>Initiates network functionallity.</div></div><div class=CToolTip id="tt29"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_host_lookup(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>hostname,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>types</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Does a hostname lookup by name and fills out the passed NETADDR struct with the recieved details.</div></div><div class=CToolTip id="tt30"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_addr_comp(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Compares two network addresses.</div></div><div class=CToolTip id="tt31"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_addr_str(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>string,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>max_length</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Turns a network address into a representive string.</div></div><div class=CToolTip id="tt32"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>NETSOCKET net_udp_create(</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameter nowrap>bindaddr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a UDP socket and binds it to a port.</div></div><div class=CToolTip id="tt33"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_udp_send(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sends a packet over an UDP socket.</div></div><div class=CToolTip id="tt34"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_udp_recv(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>maxsize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Recives a packet over an UDP socket.</div></div><div class=CToolTip id="tt35"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_udp_close(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Closes an UDP socket.</div></div><div class=CToolTip id="tt36"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>NETSOCKET net_tcp_create(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a TCP socket.</div></div><div class=CToolTip id="tt37"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_listen(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameter nowrap>backlog</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Makes the socket start listening for new connections.</div></div><div class=CToolTip id="tt38"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_accept(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>new_sock,</td></tr><tr><td></td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Polls a listning socket for a new connection.</div></div><div class=CToolTip id="tt39"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_connect(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>addr</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Connects one socket to another.</div></div><div class=CToolTip id="tt40"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_send(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Sends data to a TCP stream.</div></div><div class=CToolTip id="tt41"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_recv(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>maxsize</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Recvives data from a TCP stream.</div></div><div class=CToolTip id="tt42"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_close(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Closes a TCP socket.</div></div><div class=CToolTip id="tt43"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_append(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dst,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>src,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>dst_size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Appends a string to another.</div></div><div class=CToolTip id="tt44"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_copy(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dst,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>src,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>dst_size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Copies a string to another.</div></div><div class=CToolTip id="tt45"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_format(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>buffer,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>buffer_size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>format,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>...</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Performs printf formating into a buffer.</div></div><div class=CToolTip id="tt46"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_sanitize_strong(</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Replaces all characters below 32 and above 127 with whitespace.</div></div><div class=CToolTip id="tt47"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_sanitize(</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>str</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Replaces all characters below 32 and above 127 with whitespace with exception to \r, \n and \r.</div></div><div class=CToolTip id="tt48"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int str_comp_nocase(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>b</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Compares to strings case insensitive.</div></div><div class=CToolTip id="tt49"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>const char *str_find_nocase(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>haystack,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>needle</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Finds a string inside another string case insensitive.</div></div><div class=CToolTip id="tt50"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>void str_hex(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>dst,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>dst_size,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>void&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>data,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>data_size</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Takes a datablock and generates a hexstring of it.</div></div><div class=CToolTip id="tt51"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>typedef void (</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>fs_listdir_callback</td><td class=PAfterParameters nowrap>)(const char *name, int is_dir, void *user)</td></tr></table></td></tr></table></blockquote>Lists the files in a directory</div></div><div class=CToolTip id="tt52"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int fs_makedir(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>path</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Creates a directory</div></div><div class=CToolTip id="tt53"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int fs_storage_path(</td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>appname,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>char&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>path,</td></tr><tr><td></td><td class=PTypePrefix nowrap></td><td class=PType nowrap>int&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>max</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>Fetches per user configuration directory.</div></div><div class=CToolTip id="tt54"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_connect_non_blocking(</td><td class=PTypePrefix nowrap></td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameterPrefix nowrap></td><td class=PParameter nowrap>sock,</td></tr><tr><td></td><td class=PTypePrefix nowrap>const&nbsp;</td><td class=PType nowrap>NETADDR&nbsp;</td><td class=PParameterPrefix nowrap>*</td><td class=PParameter nowrap>a</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>DOCTODO: serp</div></div><div class=CToolTip id="tt55"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td><table border=0 cellspacing=0 cellpadding=0><tr><td class=PBeforeParameters nowrap>int net_tcp_set_non_blocking(</td><td class=PType nowrap>NETSOCKET&nbsp;</td><td class=PParameter nowrap>sock</td><td class=PAfterParameters nowrap>)</td></tr></table></td></tr></table></blockquote>DOCTODO: serp</div></div><div class=CToolTip id="tt56"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int net_errno()</td></tr></table></blockquote>DOCTODO: serp</div></div><div class=CToolTip id="tt57"><div class=CFunction><blockquote><table border=0 cellspacing=0 cellpadding=0 class=Prototype><tr><td>int net_would_block()</td></tr></table></blockquote>DOCTODO: serp</div></div><!--END_ND_TOOLTIPS-->
+
+
+
+
+<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
+
+
+<script language=JavaScript><!--
+if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
\ No newline at end of file