<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.vega-strike.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Development%3ANetwork%3APacket_format</id>
		<title>Development:Network:Packet format - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.vega-strike.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Development%3ANetwork%3APacket_format"/>
		<link rel="alternate" type="text/html" href="https://wiki.vega-strike.org/mediawiki/index.php?title=Development:Network:Packet_format&amp;action=history"/>
		<updated>2026-05-13T18:06:39Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.2</generator>

	<entry>
		<id>https://wiki.vega-strike.org/mediawiki/index.php?title=Development:Network:Packet_format&amp;diff=10803&amp;oldid=prev</id>
		<title>Nachtwolf: Fixed up [UN]FIREREUQEST and TARGET to latest changes</title>
		<link rel="alternate" type="text/html" href="https://wiki.vega-strike.org/mediawiki/index.php?title=Development:Network:Packet_format&amp;diff=10803&amp;oldid=prev"/>
				<updated>2006-07-04T08:09:47Z</updated>
		
		<summary type="html">&lt;p&gt;Fixed up [UN]FIREREUQEST and TARGET to latest changes&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 08:09, 4 July 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l141&quot; &gt;Line 141:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 141:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_FIREREQUEST (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_FIREREQUEST (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: Unit::&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fire???&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: Unit::&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Fire -&amp;gt; NetClient::fireRequest&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial target_serial;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial target_serial;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** int &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mount_num&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** char mis; // Is this a missile?&amp;#160; (Note: Missile FIREREQUESTS must be sent separately.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;char mis;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** int &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;num_mount&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Array[num_mount]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*** int mount_to_fire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This seems to be sent *constantly* while firing!&amp;#160; A waste of bandwidth and console buffer.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This seems to be sent *constantly* while firing!&amp;#160; A waste of bandwidth and console buffer.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_UNFIREREQUEST (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_UNFIREREQUEST (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: Unit::&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;unfire???&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: Unit::&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;UnFire -&amp;gt; NetClient::unfireRequest&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial target_serial;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial target_serial;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** int &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mount_num&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** int &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;num_mount&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** Array[num_mount]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*** int mount_to_unfire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Not being sent very well.&amp;#160; Firing has a tendency currently to get stuck.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Not being sent very well.&amp;#160; Firing has a tendency currently to get stuck.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l170&quot; &gt;Line 170:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 174:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_SCAN (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_SCAN (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;NetClient::scanRequest&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Handler function:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Data:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** ObjSerial target_serial;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** ushort zone;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== CMD_TARGET (C to S) ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Function sent: firekeyboard.cpp -&amp;gt; NetClient::targetRequest&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial target_serial;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial target_serial;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;** ushort zone;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;UNIMPLENTED???&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_STARTNETCOMM, CMD_STOPNETCOMM, CMD_SOUNDAMPLE, CMD_TXTMESSAGE (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_STARTNETCOMM, CMD_STOPNETCOMM, CMD_SOUNDAMPLE, CMD_TXTMESSAGE (C to S) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Fixme}} netcomm&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Fixme}} netcomm&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l288&quot; &gt;Line 288:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 296:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_FIREREQUEST (S to C) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_FIREREQUEST (S to C) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;NetServer::BroadcastFire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: netclient.cpp:574 (case)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: netclient.cpp:574 (case)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;int mount_num&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ObjSerial unSerial = p1.getSerial()&lt;/ins&gt;; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;// Not sure how Packet and NetBuffer are different?&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial mis;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** ObjSerial mis;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ObjSerial unSerial = p1.getSerial()&lt;/del&gt;; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;// Not sure how Packet and NetBuffer are different?&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;int num_mount&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** Array[num_mount]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*** int mount_to_fire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_UNFIREREQUEST (S to C) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_UNFIREREQUEST (S to C) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;NetServer::BroadcastUnfire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: netclient.cpp:618 (case)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: netclient.cpp:618 (case)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** int &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mount_num&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** ObjSerial unSerial = p1.getSerial();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ObjSerial unSerial;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** int &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;num_mount&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Array[num_mount]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;*** int mount_to_unfire&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_SCAN (S to C) ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CMD_SCAN (S to C) ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Function sent: &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Handler function: Cockpit::ReceivedTargetInfo();&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Data:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;** No data.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== CMD_TARGET (S to C) ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* Function sent: NetServer::BroadcastTarget&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: Cockpit::ReceivedTargetInfo();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Handler function: Cockpit::ReceivedTargetInfo();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Data:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Nachtwolf</name></author>	</entry>

	<entry>
		<id>https://wiki.vega-strike.org/mediawiki/index.php?title=Development:Network:Packet_format&amp;diff=10763&amp;oldid=prev</id>
		<title>Nachtwolf: Added first revision of implemented networking packet format.</title>
		<link rel="alternate" type="text/html" href="https://wiki.vega-strike.org/mediawiki/index.php?title=Development:Network:Packet_format&amp;diff=10763&amp;oldid=prev"/>
				<updated>2006-06-22T07:59:38Z</updated>
		
		<summary type="html">&lt;p&gt;Added first revision of implemented networking packet format.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Packet format =&lt;br /&gt;
== acctserver.cpp ==&lt;br /&gt;
&lt;br /&gt;
=== CMD_LOGIN: C-&amp;gt;S, CMD_LOGIN (S to A) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** char flags; // Don't seem to be used.&lt;br /&gt;
** string callsign; // The username should be restricted to a reasonable subset of ASCII&lt;br /&gt;
** string passwd; // Not encrypted -- Should be encrypted with a token (or timestamp).&lt;br /&gt;
&lt;br /&gt;
=== LOGIN_NEW (A to S) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** No Data&lt;br /&gt;
&lt;br /&gt;
Sent the first time someone logs into an account -- asks for faction, ship, etc.&lt;br /&gt;
&lt;br /&gt;
=== LOGIN_ACCEPT (A to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** No Data&lt;br /&gt;
&lt;br /&gt;
=== LOGIN_ALREADY, LOGIN_UNAVAIL (A to S), LOGIN_ERROR (A to S) ===&lt;br /&gt;
* Function sent: CMD_NEWSUBSCRIBE, CMD_LOGIN&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** No Data&lt;br /&gt;
&lt;br /&gt;
=== CMD_LOGOUT (C to S) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: references logoutList...&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== CMD_LOGOUT (S to A) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** string callsign;&lt;br /&gt;
** string passwd; // Why send the password to logout?&lt;br /&gt;
&lt;br /&gt;
=== CMD_NEWCHAR (S to A) ===&lt;br /&gt;
UNIMPLEMENTED!!!&lt;br /&gt;
&lt;br /&gt;
// Should receive the result of the creation of a new char/ship&lt;br /&gt;
&lt;br /&gt;
=== CMD_NEWSUBSCRIBE (S to A) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** string callsign;&lt;br /&gt;
** string passwd;&lt;br /&gt;
&lt;br /&gt;
Subscribes an account.&lt;br /&gt;
&lt;br /&gt;
=== (Cmd)0 (A to S) ===&lt;br /&gt;
* Function sent: CMD_NEWLOGIN&lt;br /&gt;
* Handler function: The input checking that the server most certainly uses.&lt;br /&gt;
&lt;br /&gt;
Unable to open account file?&lt;br /&gt;
&lt;br /&gt;
=== CMD_RESYNCACCOUNTS (S to A) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial nbclients; // Number of clients?&lt;br /&gt;
** Array [nbclients]&lt;br /&gt;
***  short sertmp;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Calls setConnected(true) on all included Client serials.&lt;br /&gt;
&lt;br /&gt;
=== CMD_SAVEACCOUNTS (S to A) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: AccountServer::writeSave(data, dataLen);&lt;br /&gt;
* Data:&lt;br /&gt;
** SaveString savestr;&lt;br /&gt;
** XmlString xmlstr; // Actually, the CSV ship data.&lt;br /&gt;
&lt;br /&gt;
 FileUtil::WriteSaveFiles(savestr, xmlstr, callsign);&lt;br /&gt;
&lt;br /&gt;
CltSerial serial;&lt;br /&gt;
vector&amp;lt;string&amp;gt; saves = FileUtil::GetSaveFromBuffer( netbuf );&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== LOGIN_DATA (C to A) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: AccountServer::sendServerData(sock, elem);&lt;br /&gt;
* Data:&lt;br /&gt;
** string callsign;&lt;br /&gt;
** string passwd;&lt;br /&gt;
&lt;br /&gt;
Responds with IP address to connect to.&lt;br /&gt;
&lt;br /&gt;
== netserver.cpp ==&lt;br /&gt;
&lt;br /&gt;
=== CMD_ADDCLIENT (C to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function: NetServer::addClient(clt);&lt;br /&gt;
* Data:&lt;br /&gt;
** CltSerial ser;&lt;br /&gt;
&lt;br /&gt;
=== CMD_POSUPDATE (C to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function: NetServer::posUpdate(clt);&lt;br /&gt;
* Data:&lt;br /&gt;
** CltSerial ser;&lt;br /&gt;
&lt;br /&gt;
Client tells server its actual position.  Server accepts client's position with no validation.&lt;br /&gt;
&lt;br /&gt;
=== CMD_LETSGO (C to S) ===&lt;br /&gt;
UNIMPLENTED!&lt;br /&gt;
&lt;br /&gt;
=== CMD_PING (C to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function: &lt;br /&gt;
* Data:&lt;br /&gt;
&lt;br /&gt;
 // Nothing to do here, just receiving the packet is enough&lt;br /&gt;
&lt;br /&gt;
Source code comments are usually right.&lt;br /&gt;
&lt;br /&gt;
=== CMD_SERVERTIME (C to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function: serverTimeInitUDP(clt, netbuf);&lt;br /&gt;
* Data:&lt;br /&gt;
=== CMD_ACK (C to S) ===&lt;br /&gt;
// Commented out.&lt;br /&gt;
&lt;br /&gt;
=== CMD_ASKFILE (C to S) ===&lt;br /&gt;
UNIMPLENTED!&lt;br /&gt;
&lt;br /&gt;
=== CMD_DOWNLOAD (C to S) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: _downloadManagerServer-&amp;gt;addCmdDownload( clt-&amp;gt;tcp_sock, netbuf );&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== CMD_FIREREQUEST (C to S) ===&lt;br /&gt;
* Function sent: Unit::fire???&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial target_serial;&lt;br /&gt;
** int mount_num;&lt;br /&gt;
** char mis;&lt;br /&gt;
&lt;br /&gt;
This seems to be sent *constantly* while firing!  A waste of bandwidth and console buffer.&lt;br /&gt;
&lt;br /&gt;
=== CMD_UNFIREREQUEST (C to S) ===&lt;br /&gt;
* Function sent: Unit::unfire???&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial target_serial;&lt;br /&gt;
** int mount_num;&lt;br /&gt;
&lt;br /&gt;
Not being sent very well.  Firing has a tendency currently to get stuck.&lt;br /&gt;
&lt;br /&gt;
=== CMD_JUMP (C to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function: &lt;br /&gt;
* Data:&lt;br /&gt;
** string newsystem;&lt;br /&gt;
** ObjSerial jumpserial;&lt;br /&gt;
** ushort zonenum;&lt;br /&gt;
&lt;br /&gt;
No idea how this is supposed to work... transfer to another server?&lt;br /&gt;
&lt;br /&gt;
=== CMD_SCAN (C to S) ===&lt;br /&gt;
* Function sent: &lt;br /&gt;
* Handler function: &lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial target_serial;&lt;br /&gt;
** ushort zone;&lt;br /&gt;
 &lt;br /&gt;
UNIMPLENTED???&lt;br /&gt;
 &lt;br /&gt;
=== CMD_STARTNETCOMM, CMD_STOPNETCOMM, CMD_SOUNDAMPLE, CMD_TXTMESSAGE (C to S) ===&lt;br /&gt;
{{Fixme}} netcomm&lt;br /&gt;
&lt;br /&gt;
=== CMD_DOCK (C to S) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial utdwserial; // Unit to dock with.&lt;br /&gt;
** ushort zonenum;&lt;br /&gt;
&lt;br /&gt;
=== CMD_UNDOCK (C to S) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial utdwserial; // Unit to dock with.&lt;br /&gt;
** ushort zonenum;&lt;br /&gt;
&lt;br /&gt;
== netclient.cpp ==&lt;br /&gt;
&lt;br /&gt;
=== LOGIN_ACCEPT (S to C) ===&lt;br /&gt;
* Function sent: Account server forwarded through netserver?????&lt;br /&gt;
* Handler function: NetClient::loginAccept(packet);&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== CMD_ASKFILE (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function:&lt;br /&gt;
&lt;br /&gt;
* Data:&lt;br /&gt;
** string filename;&lt;br /&gt;
** string file;&lt;br /&gt;
&lt;br /&gt;
=== CMD_DOWNLOAD (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: _downloadManagerClient-&amp;gt;processCmdDownload( clt_tcp_sock, netbuf );&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== LOGIN_ERROR,LOGIN_UNAVAIL (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: NetClient::disconnect();&lt;br /&gt;
* Data:&lt;br /&gt;
** No data.&lt;br /&gt;
&lt;br /&gt;
=== CMD_CREATECHAR (S to C) ===&lt;br /&gt;
 // Commented out.&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: NetClient::createChar();&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== CMD_LOCATIONS (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: NetClient::receiveLocations(Packet);&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
 // Should receive possible starting locations list&lt;br /&gt;
&lt;br /&gt;
I assume this means that the client can choose where to start within a system?&lt;br /&gt;
&lt;br /&gt;
IMO, the in-system starting point may just as well be determined randomly in the server.&lt;br /&gt;
&lt;br /&gt;
=== CMD_SNAPSHOT (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: NetClient::receivePositions(numUnits, timestamp, netbuffer);&lt;br /&gt;
* Data:&lt;br /&gt;
** uint numUnits;&lt;br /&gt;
** uint timestamp;&lt;br /&gt;
** double deltatime; // NETFIXME: Uses netbuf.getFloat???&lt;br /&gt;
&lt;br /&gt;
This is the packet that updates a client on *every* position!&lt;br /&gt;
&lt;br /&gt;
Perhaps the server should optimize based on the distance from the client?&lt;br /&gt;
&lt;br /&gt;
=== CMD_ENTERCLIENT (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: NetClient::AddClientObject(NetBuffer, ObjSerial);&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== CMD_EXITCLIENT (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: NetClient::removeClient(Packet);&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
=== CMD_ADDEDYOU (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: this-&amp;gt;game_unit.GetUnit()-&amp;gt;curr_physical_state = netbuf.getTransformation();&lt;br /&gt;
* Data:&lt;br /&gt;
** Transformation curr_physical_state;&lt;br /&gt;
&lt;br /&gt;
=== CMD_DISCONNECT (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: VSExit(1);&lt;br /&gt;
* Data:&lt;br /&gt;
** No data.&lt;br /&gt;
&lt;br /&gt;
In my opinion, this could have a slightly more graceful exit.&lt;br /&gt;
&lt;br /&gt;
It doesn't even seem to close the socket...&lt;br /&gt;
&lt;br /&gt;
As the code says, /*** TO REDO IN A CLEAN WAY ***/&lt;br /&gt;
&lt;br /&gt;
=== CMD_ACK (S to C) ===&lt;br /&gt;
// Commented out.&lt;br /&gt;
&lt;br /&gt;
=== CMD_FIREREQUEST (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:574 (case)&lt;br /&gt;
* Data:&lt;br /&gt;
** int mount_num;&lt;br /&gt;
** ObjSerial mis;&lt;br /&gt;
** ObjSerial unSerial = p1.getSerial(); // Not sure how Packet and NetBuffer are different?&lt;br /&gt;
&lt;br /&gt;
=== CMD_UNFIREREQUEST (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:618 (case)&lt;br /&gt;
* Data:&lt;br /&gt;
** int mount_num;&lt;br /&gt;
** ObjSerial unSerial;&lt;br /&gt;
&lt;br /&gt;
=== CMD_SCAN (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: Cockpit::ReceivedTargetInfo();&lt;br /&gt;
* Data:&lt;br /&gt;
** No data.&lt;br /&gt;
&lt;br /&gt;
=== CMD_SNAPDAMAGE (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: ALL 85 lines in netclient.cpp:673-759&lt;br /&gt;
* Data:&lt;br /&gt;
** int nbupdates = packet_serial;&lt;br /&gt;
** ObjSerial serial;&lt;br /&gt;
** Array[nbupdates]&lt;br /&gt;
***  short damages [mask];&lt;br /&gt;
***  ObjSerial serial;&lt;br /&gt;
***  More data based on mask:&lt;br /&gt;
****  See netclient.cpp:673 for more detail.&lt;br /&gt;
&lt;br /&gt;
=== CMD_DAMAGE (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: Unit::ApplyNetDamage(pnt, normal, amt, ppercentage, spercentage, col);&lt;br /&gt;
* Data:&lt;br /&gt;
** float amt;&lt;br /&gt;
** float ppercentage;&lt;br /&gt;
** float spercentage;&lt;br /&gt;
** Vector pnt;&lt;br /&gt;
** Vector normal;&lt;br /&gt;
** GFXColor col; // Unused.&lt;br /&gt;
** ObjSerial target;&lt;br /&gt;
** Shield sh;&lt;br /&gt;
** Armor ar;&lt;br /&gt;
 &lt;br /&gt;
Seems to be in an #ifdef NET_SHIELD_SYSTEM_1&lt;br /&gt;
&lt;br /&gt;
=== CMD_DAMAGE1 (S to C) ===&lt;br /&gt;
// Commented out.&lt;br /&gt;
&lt;br /&gt;
=== CMD_KILL (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:800 (case), Unit::Destroy()&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial clt = p1.getSerial();&lt;br /&gt;
&lt;br /&gt;
=== CMD_JUMP (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:830&lt;br /&gt;
* Data:&lt;br /&gt;
** string newsystem;&lt;br /&gt;
** ObjSerial unserial;&lt;br /&gt;
** ObjSerial jumpserial;&lt;br /&gt;
** ushort zoneid;&lt;br /&gt;
&lt;br /&gt;
=== CMD_STARTNETCOMM, CMD_STOPNETCOMM, CMD_SOUNDSAMPLE, CMD_SECSNDSAMPLE, CMD_TXTMESSAGE, CMD_SECMESSAGE (S to C) ===&lt;br /&gt;
{{Fixme}} Netcomm stuff...&lt;br /&gt;
&lt;br /&gt;
=== CMD_DOCK (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:960&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial utdw_serial;&lt;br /&gt;
** int dockport;&lt;br /&gt;
** p1.getSerial();&lt;br /&gt;
 &lt;br /&gt;
=== CMD_UNDOCK (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:970&lt;br /&gt;
* Data:&lt;br /&gt;
** ObjSerial utdw_serial;&lt;br /&gt;
** p1.getSerial();&lt;br /&gt;
&lt;br /&gt;
=== CMD_POSUPDATE (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:970&lt;br /&gt;
* Data:&lt;br /&gt;
** QVector serverpos;&lt;br /&gt;
&lt;br /&gt;
 // If a client receives that it means the server want to force the client position to be updated&lt;br /&gt;
 // with server data&lt;br /&gt;
Forces your position to be updated.&lt;br /&gt;
&lt;br /&gt;
Normally, since SNAPSHOTs are old, they is ignored on CMD_SNAPSHOT.&lt;br /&gt;
I assume, that after this, the client will relay its position, velocity, etc. back to the server to be broadcast?&lt;br /&gt;
&lt;br /&gt;
The server '''should''' never have to manually update a client's position.&lt;br /&gt;
&lt;br /&gt;
=== CMD_CREATE{UNIT|NEBULA|PLANET|ASTER|MISSILE} (S to C) ===&lt;br /&gt;
* Function sent:&lt;br /&gt;
* Handler function: netclient.cpp:1000-1125&lt;br /&gt;
* Data:&lt;br /&gt;
** {{Fixme}} WRITEME&lt;br /&gt;
&lt;br /&gt;
Loads a lot of stuff from the packet, and then calls&lt;br /&gt;
UnitFactory::create{Unit|...} (...);&lt;br /&gt;
&lt;br /&gt;
=== CMD_SERVERTIME (S to C) ===&lt;br /&gt;
// No action... apparently receiving this is enough.&lt;br /&gt;
&lt;br /&gt;
How is this different from CMD_PING?&lt;/div&gt;</summary>
		<author><name>Nachtwolf</name></author>	</entry>

	</feed>