I've had a chance to look more closely at Trent's changes to genspkt.c.
The reason why the original version had two copies of the updatePlayerStats
is because when LTD_STATS are defined, all of the p_stats.st_* variables
are no longer part of the player stat struct.  So you can't just set
their values using the ltd_* functions (which logically is a bad thing
to do anyway, since sending stats to the client shouldn't change the
stat structure content itself).

The only way to fix this is to assign all the stats to temporary variables
with #ifdef's around them for LTD_STATS, then using those variables to
construct the stat packets...or to update the stat packet itself outside
of the if conditionals.  Or break them back into two functions.

I'll get around to fixing this when I fiddle with the INL robot again
to add Dan/Kevin's snapshot scoring.  Until then, league servers using
the latest CVS snapshot will need to downgrade to genspkt.c 1.21.
The release version (2.9pl7) is not affected.

> +#ifdef LTD_STATS
> +    me->p_stats.st_tkills	= ltd_kills(me, LTD_TOTAL);
> +    me->p_stats.st_tlosses	= ltd_deaths(me, LTD_TOTAL);
> +    me->p_stats.st_tarmsbomb	= ltd_armies_bombed(me, LTD_TOTAL);
> +    me->p_stats.st_tticks	= ltd_ticks(me, LTD_TOTAL);
> +    me->p_stats.st_tplanets	= ltd_planets_taken(me, LTD_TOTAL);
> +    me->p_stats.st_sbkills	= ltd_kills(me, LTD_SB);
> +    me->p_stats.st_sblosses	= ltd_deaths(me, LTD_SB);
> +    me->p_stats.st_sbticks	= ltd_ticks(me, LTD_SB);
> +    me->p_stats.st_maxkills	= ltd_kills_max(pl, LTD_TOTAL)
> +    me->p_stats.st_sbmaxkills	= ltd_kills_max(pl, LTD_SB)
> +    me->p_stats.st_kills	= 0;
> +    me->p_stats.st_losses	= 0;
> +    me->p_stats.st_armsbomb	= 0;
> +    me->p_stats.st_planets	= 0;
> +#endif /* LTD_STATS */

-- 
Dave Ahn | ahn at vec.wfubmc.edu | Wake Forest University Baptist Medical Center

When you were born, you cried and the world rejoiced.  Try to live your life
so that when you die, you will rejoice and the world will cry.  -1/2 jj^2