<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">


<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 10">
<meta name=Originator content="Microsoft Word 10">
<link rel=File-List href="cid:filelist.xml@01C41C8B.6A91ABE0">
<title>XML Event Logging</title>
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PersonName"/>
<!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;
        mso-font-charset:0;
        mso-generic-font-family:swiss;
        mso-font-pitch:variable;
        mso-font-signature:1627421319 -2147483648 8 0 66047 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-style-parent:"";
        margin:0in;
        margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;
        text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;
        text-underline:single;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        mso-pagination:widow-orphan;
        font-size:12.0pt;
        font-family:"Times New Roman";
        mso-fareast-font-family:"Times New Roman";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        mso-style-noshow:yes;
        mso-ansi-font-size:10.0pt;
        mso-bidi-font-size:10.0pt;
        font-family:Arial;
        mso-ascii-font-family:Arial;
        mso-hansi-font-family:Arial;
        mso-bidi-font-family:Arial;
        color:navy;}
span.SpellE
        {mso-style-name:"";
        mso-spl-e:yes;}
span.GramE
        {mso-style-name:"";
        mso-gram-e:yes;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;
        mso-header-margin:.5in;
        mso-footer-margin:.5in;
        mso-paper-source:0;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:201555483;
        mso-list-type:hybrid;
        mso-list-template-ids:1913042482 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:1583568878;
        mso-list-type:hybrid;
        mso-list-template-ids:1018598446 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l2
        {mso-list-id:1826895256;
        mso-list-type:hybrid;
        mso-list-template-ids:-1863180450 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l2:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */ 
 table.MsoNormalTable
        {mso-style-name:"Table Normal";
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-parent:"";
        mso-padding-alt:0in 5.4pt 0in 5.4pt;
        mso-para-margin:0in;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:"Times New Roman";}
</style>
<![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hello Andy!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Well, since you asked. . .<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>This is my combined &#8220;grocery list&#8221; of
bugs/features for XML logging for both BF1942 and BFV; some of these comments
are specific to one engine or the other, some apply to both.<span
style='mso-spacerun:yes'>&nbsp; </span>If you&#8217;re not involved with the
BF1942 code, I&#8217;d be grateful if you could pass this along to whoever is&#8212;both
so that the problems in BF1942 logging can be fixed, and so that the BF1942 and
BFV log formats can continue to be compatible with one another.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Let me make one overall comment:<span
style='mso-spacerun:yes'>&nbsp; </span>please try not to break anything!<span
style='mso-spacerun:yes'>&nbsp; </span>There are several parser programs already
in use by the community, and more on the way; when BFV came out there were surprisingly
few changes needed (at least in my parser) to deal with the differences from
BF1942, but one of them, the change to the <span class=SpellE>bf<span
class=GramE>:log</span></span> tag, was ugly, needless, and not the correct
usage of XML., and made extra work for us that are trying to make player stats
work for BFV (my comments on it are the final thing in item in the lists below).<span
style='mso-spacerun:yes'>&nbsp; </span>Every one of the bug fixes / new
features listed below can be handled without needing require anyone to recode
anything in their parsers, unless they want to take advantage of new <span
class=GramE>functionality.</span> . . except fixing the <span class=SpellE>bf:log</span>
tag, even the act of fixing which would break most or all of the parsers
again!<span style='mso-spacerun:yes'>&nbsp; </span>So, my suggestion: please
consider the effect of any changes you want to make on the existing
parser/stats systems that people have already written!<span
style='mso-spacerun:yes'>&nbsp; </span>Your comment about &#8220;reworking&#8221;
some of the events particularly scares me&#8212;except for the bugs listed
below, the existing events are fine!<span style='mso-spacerun:yes'>&nbsp;
</span>8086 machine code is butt-ugly, but somehow it&#8217;s managed to evolve
to higher levels of functionality without killing everything that depended on its
original design!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>So here are my lists:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><u><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Bugs:<o:p></o:p></span></font></u></p>

<ol style='mso-margin-top-alt:0in' start=1 type=1>
 <li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
     Windows BFV server logs nothing but chat events, which is completely
     useless, even for recording chat, since you can&#8217;t tell which player
     is mapped to which player ID.<span style='mso-spacerun:yes'>&nbsp;
     </span>The Windows server needs to be &#8220;fixed&#8221; the same way the
     Linux BFV server was.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>In
     BF1942, radio messages sometimes (but not always) are shown as coming from
     wrong <span class=SpellE>player_id</span>.<span
     style='mso-spacerun:yes'>&nbsp; </span>Haven&#8217;t verified yet if this
     also happens in BFV.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>There
     are two different formats for the <span class=SpellE>destroyVehicle</span>
     event in BF1942 (haven&#8217;t checked to see if this applies to BFV);
     this doesn&#8217;t seem harmful, but is likely a bug.<span
     style='mso-spacerun:yes'>&nbsp; </span>One looks like this:<o:p></o:p></span></font></li>
</ol>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>&lt;<span class=SpellE>bf<span
class=GramE>:event</span></span> name=&quot;<span class=SpellE><font
color=blue><span style='color:blue'>destroyVehicle</span></font></span>&quot; timestamp=&quot;29.1746&quot;&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>&lt;<span class=SpellE>bf<span
class=GramE>:param</span></span> type=&quot;<span class=SpellE>int</span>&quot;
name=&quot;<span class=SpellE><font color=red><span style='color:red'>player_id</span></font></span>&quot;&gt;<font
color=green><span style='color:green'>232</span></font>&lt;/<span class=SpellE>bf:param</span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>&lt;<span class=SpellE>bf<span
class=GramE>:param</span></span> type=&quot;vec3&quot; name=&quot;<span
class=SpellE><font color=red><span style='color:red'>player_location</span></font></span>&quot;&gt;889.061/16.7/926.883&lt;/<span
class=SpellE>bf:param</span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>&lt;<span class=SpellE>bf<span
class=GramE>:param</span></span> type=&quot;string&quot; name=&quot;<font
color=red><span style='color:red'>vehicle</span></font>&quot;&gt;</span></font><font
size=2><span style='font-size:10.0pt'> </span></font><span class=SpellE><font
size=2 color=green face=Arial><span style='font-size:10.0pt;font-family:Arial;
color:green'>DesertPatrolVehicle</span></font></span><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>&lt;/<span class=SpellE>bf:param</span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>&lt;<span class=SpellE>bf<span
class=GramE>:param</span></span> type=&quot;vec3&quot; name=&quot;<span
class=SpellE><font color=red><span style='color:red'>vehicle_pos</span></font></span>&quot;&gt;922.932/40.9293/1134.55&lt;/<span
class=SpellE>bf:param</span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>&lt;/<span class=SpellE>bf<span
class=GramE>:event</span></span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in'><span class=GramE><font size=2
face=Arial><span style='font-size:10.0pt;font-family:Arial'>and</span></font></span><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'> the other
looks like this:<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>&lt;<span class=SpellE>bf<span
class=GramE>:event</span></span> name=&quot;<span class=SpellE><font
color=blue><span style='color:blue'>destroyVehicle</span></font></span>&quot; timestamp=&quot;29.1746&quot;&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>&lt;<span class=SpellE>bf<span
class=GramE>:param</span></span> type=&quot;string&quot; name=&quot;<font
color=red><span style='color:red'>vehicle</span></font>&quot;&gt;<span
class=SpellE><font color=green><span style='color:green'>IraqSoldier</span></font></span>&lt;/<span
class=SpellE>bf:param</span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><span
style='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>&lt;<span class=SpellE>bf<span
class=GramE>:param</span></span> type=&quot;vec3&quot; name=&quot;<span
class=SpellE><font color=red><span style='color:red'>vehicle_pos</span></font></span>&quot;&gt;922.932/40.9293/1134.55&lt;/<span
class=SpellE>bf:param</span>&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:1.0in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>&lt;/<span class=SpellE>bf<span
class=GramE>:event</span></span>&gt;<o:p></o:p></span></font></p>

<ol style='mso-margin-top-alt:0in' start=4 type=1>
 <li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>In
     Objective Mode games, <span class=SpellE>scoreEvents</span> for achieving
     an objective, or <span class=SpellE>TKing</span> an objective, are <u>not</u>
     generated, but are counted in score (5 score points).<span
     style='mso-spacerun:yes'>&nbsp; </span>This applies to both the BF1942
     engine (which at least has &#8220;placeholders&#8221; for counts of these
     objectives in the <span class=SpellE>roundstats</span> structure (although
     they aren&#8217;t populated), and the BFV engine, which doesn&#8217;t even
     list them in <span class=SpellE>roundstats</span>.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>In
     BF1942 the game mode is always logged wrong; it&#8217;s always shown as
     &#8220;GPM_CQ&#8221;, even when the mode is Co-op, for example.<span
     style='mso-spacerun:yes'>&nbsp; </span>(This is fixed in the Linux BFV
     server).<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo1;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Victory
     type is always logged as &#8220;4&#8221; in BF1942, despite the real
     victory type (it is fixed in the Linux BFV server).<o:p></o:p></span></font></li>
</ol>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><u><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Improvements Desired (both BF1942 and BFV):<o:p></o:p></span></font></u></p>

<ol style='mso-margin-top-alt:0in' start=1 type=1>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>No
     event is generated when the game is paused or <span class=SpellE>unpaused</span>&#8212;both
     pause and <span class=SpellE>unpause</span> should generate log events.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Console
     messages (<span class=SpellE>game.sayall</span>) are not logged, but
     should <span class=GramE>be,</span> just as the chat and radio messages
     are logged.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>No IP
     addresses are currently given in the logs&#8217; player data.<span
     style='mso-spacerun:yes'>&nbsp; </span>Having the CD Key hash is nice, and
     useful, too, but I&#8217;d really like the IP address, also&#8212;otherwise
     you have to go try to find it by matching up against the <span
     class=SpellE>PunkBuster</span> logs.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>There
     is currently no logging of vote activities (such as map change or kick
     player).<span style='mso-spacerun:yes'>&nbsp; </span>That would be useful
     in tracking down abusive players&#8212;please add it.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Log
     file time and date information isn&#8217;t recorded in the file
     anywhere&#8212;you can only get it from the name of the file.<span
     style='mso-spacerun:yes'>&nbsp; </span>The current system is workable, but
     it means you can never rename your log file, and sometimes that&#8217;s
     desirable.<span style='mso-spacerun:yes'>&nbsp; </span>It would be much
     better to also record the time and date that the log was started as an
     attribute in the <span class=SpellE>bf<span class=GramE>:log</span></span>
     tag.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>When a
     game ends, there isn&#8217;t any indication of <u>why</u> it
     ended&#8212;time limit reached?<span style='mso-spacerun:yes'>&nbsp;
     </span>Score limit?<span style='mso-spacerun:yes'>&nbsp; </span>Manual map
     change?<span style='mso-spacerun:yes'>&nbsp; </span>Map vote?<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l2 level1 lfo3;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>There
     is no way to tell when a log file is being written by a server, so users
     of log data need to either always leave the latest file in a directory
     untouched, for fear it is being written, or they need to use <span
     class=SpellE>rcon</span> to do a direct server query to ask the server
     which log file is being written.<span style='mso-spacerun:yes'>&nbsp;
     </span>Suggestion: rather than getting into complicated semaphores or
     locking protocols, when the log file is created, the server should name the
     file something that can&#8217;t be confused the name of completed log file
     (example: instead of &#8220;ev_14567-20040218_1939.zxml&#8221;, name it &#8220;temp_14567-20040218_1939.zxml&#8221;.<span
     style='mso-spacerun:yes'>&nbsp; </span>When the game completes and the
     server closes the log file, rename it to <span class=GramE>it&#8217;s</span>
     normal log file name (&#8220;<span class=SpellE>ev</span>_. . .&#8221;).<span
     style='mso-spacerun:yes'>&nbsp; </span>Besides being easy to do, it has three
     advantages: (1) parsers can tell when a log file is ready to be scanned,
     unlike the present system; (2) when the server crashes and leaves the log
     in an improper XML state, that file never gets renamed, and never has to
     be dealt with by a parser; (3) programs that are using the log file to
     carry-out real-time control over the server (for example, to automatically
     ban players who are using &#8220;inappropriate&#8221; language) can easily
     tell which file they should be monitoring.<o:p></o:p></span></font></li>
</ol>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><u><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Odd things, but not necessarily bugs:<o:p></o:p></span></font></u></p>

<ol style='mso-margin-top-alt:0in' start=1 type=1>
 <li class=MsoNormal style='mso-list:l1 level1 lfo2;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Vehicle
     destruction is logged, but vehicle spawning is not; that&#8217;s not
     really a problem, but it might be nice to have the extra data.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l1 level1 lfo2;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>Healing
     at a medical locker isn&#8217;t logged (but then, neither is getting
     damaged, so maybe it doesn&#8217;t matter).<span
     style='mso-spacerun:yes'>&nbsp; </span>Same thing for vehicle repair by
     repair pad.<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l1 level1 lfo2;tab-stops:list .5in'><font
     size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
     &lt;<span class=SpellE>bf:log</span>&gt; tag is a dog&#8217;s breakfast;
     it&#8217;s perfectly valid XML, but not the right way to do things, and
     the way it&#8217;s currently implemented makes needless work for parser
     programmers.<span style='mso-spacerun:yes'>&nbsp; </span>It&#8217;s got a
     version number and specifies a namespace that includes a second version
     number, and specifies two contradictory local identifiers for the
     namespace, depending on the engine used&#8212;ugh.<span
     style='mso-spacerun:yes'>&nbsp; </span>When you look at the logs,
     it&#8217;s clear that there is no need for multiple namespaces, as both
     BF1942 and BFV use the same XML tags.<span style='mso-spacerun:yes'>&nbsp;
     </span>Further, there are no qualified names used in the logs, so there is
     no need for the two different local identifiers used (&#8220;bf&#8221; and
     &#8220;<span class=SpellE>bfv</span>&#8221;).<span
     style='mso-spacerun:yes'>&nbsp; </span>A much cleaner way to do things
     would be to add an attribute that specifies the engine being run, and to
     use the version attribute to refer to the log format version for that
     engine, and the version number in the namespace name to refer to the
     version of the (seldom changing) namespace, thus:<o:p></o:p></span></font></li>
</ol>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face="Courier New"><span
style='font-size:10.0pt;font-family:"Courier New"'>&lt;<span class=SpellE>bf<span
class=GramE>:log</span></span> version=&#8221;1.1&#8221; engine=&#8221;<span
class=SpellE>bfv</span>&#8221; <span class=SpellE>xmlns</span>=&quot;http://www.dice.se/xmlns/bf/1.0&quot;&gt;<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'>Note that making this change to <span
class=SpellE>bf<span class=GramE>:log</span></span> will once again break all
the parsers already in existence. . . for that reason I think a good case can
be made for just leaving it the way it is; however, if there&#8217;s a chance
there will be more versions, engines, or namespaces in the future, I think it
would be worth it to &#8220;bite the bullet&#8221;, make the change now, and
just get it over with.<o:p></o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face=Arial><span
style='font-size:10.0pt;font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Hope that&#8217;s helpful!<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Best regards,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>--Forrest (<span class=SpellE>aka</span> Woodrow)<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><span style='mso-spacerun:yes'>&nbsp; </span></span></font><st1:PersonName><font
 size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>thiessen@cyberscapearena.com</span></font></st1:PersonName><font
size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=2 face=Tahoma><span
style='font-size:10.0pt;font-family:Tahoma'>-----Original Message-----<br>
<b><span style='font-weight:bold'>From:</span></b> Andy Berdan
[mailto:andy.berdan@dicecanada.com<span class=GramE>] <br>
<b><span style='font-weight:bold'>Sent</span></b></span><b><span
style='font-weight:bold'>:</span></b> Wednesday, April 07, 2004 8:51 AM<br>
<b><span style='font-weight:bold'>To:</span></b> bf1942@icculus.org<br>
<b><span style='font-weight:bold'>Subject:</span></b> [bf1942] XML Event
Logging</span></font></p>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>-----BEGIN PGP SIGNED MESSAGE-----</span></font> <br>
<font size=2><span style='font-size:10.0pt'>Hash: SHA1</span></font> <o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>For those who don't know already, I've taken over the
dedicated server duties from Peter (dpc).</span></font> <o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>I've begun work on updating the XML Event Logging, and
I've started to rework some of the events, since BFV is a bit different than
'42.&nbsp; :)</span></font><o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>It occurred to me that I probably wouldn't think of
everything, and since the admin population in the studio approaches zero, I'd
post a request for events.&nbsp; So, what's missing?</span></font><o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>Note that I will take all requests as just that...
requests.&nbsp; Some ideas may be difficult and/or impossible to put in place
in the time I have alloted.</span></font><o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>Cheers,</span></font> <br>
<font size=2><span style='font-size:10.0pt'>&nbsp; Andy.</span></font> <o:p></o:p></p>

<p class=MsoNormal style='margin-left:.5in'><font size=3 face="Times New Roman"><span
style='font-size:12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>For reference, here's the list of events from 1942:</span></font>
<o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>beginMedPack</span></font> <br>
<font size=2><span style='font-size:10.0pt'>beginRepair</span></font> <br>
<font size=2><span style='font-size:10.0pt'>changePlayerName</span></font> <br>
<font size=2><span style='font-size:10.0pt'>chat</span></font> <br>
<font size=2><span style='font-size:10.0pt'>connectPlayer</span></font> <br>
<font size=2><span style='font-size:10.0pt'>createPlayer</span></font> <br>
<font size=2><span style='font-size:10.0pt'>destroyPlayer</span></font> <br>
<font size=2><span style='font-size:10.0pt'>destroyVehicle</span></font> <br>
<font size=2><span style='font-size:10.0pt'>disconnectPlayer</span></font> <br>
<font size=2><span style='font-size:10.0pt'>endMedPack</span></font> <br>
<font size=2><span style='font-size:10.0pt'>endRepair</span></font> <br>
<font size=2><span style='font-size:10.0pt'>enterVehicle</span></font> <br>
<font size=2><span style='font-size:10.0pt'>exitVehicle</span></font> <br>
<font size=2><span style='font-size:10.0pt'>pickupFlag</span></font> <br>
<font size=2><span style='font-size:10.0pt'>pickupKit</span></font> <br>
<font size=2><span style='font-size:10.0pt'>playerKeyHash</span></font> <br>
<font size=2><span style='font-size:10.0pt'>radioMessage</span></font> <br>
<font size=2><span style='font-size:10.0pt'>reSpawnEvent</span></font> <br>
<font size=2><span style='font-size:10.0pt'>restartMap</span></font> <br>
<font size=2><span style='font-size:10.0pt'>roundInit</span></font> <br>
<font size=2><span style='font-size:10.0pt'>scoreEvent (FlagCapture, Attack,
Defence, Kill, Death, DeathNoMsg, TK, Spawned)</span></font> <br>
<font size=2><span style='font-size:10.0pt'>setTeam</span></font> <br>
<font size=2><span style='font-size:10.0pt'>spawnEvent</span></font> <br>
<font size=2><span style='font-size:10.0pt'>-----BEGIN PGP SIGNATURE-----</span></font>
<br>
<font size=2><span style='font-size:10.0pt'>Version: GnuPG v1.2.4 (MingW32)</span></font>
<o:p></o:p></p>

<p style='margin-left:.5in'><font size=2 face="Times New Roman"><span
style='font-size:10.0pt'>iD8DBQFAdBU58G0w7PWWOXwRAhoFAJ94f/AELB4ia8b6h72s7WmUOCH6xwCfSQ03</span></font>
<br>
<font size=2><span style='font-size:10.0pt'>0/peuilSZro8qFGOBM6LJ60=</span></font>
<br>
<font size=2><span style='font-size:10.0pt'>=NbNV</span></font> <br>
<font size=2><span style='font-size:10.0pt'>-----END PGP SIGNATURE-----</span></font>
<o:p></o:p></p>

</div>

</body>

</html>