Update of /cvsroot/netrek/client/netrekxp/src
In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv11815/src
Modified Files:
socket.c
Log Message:
SP_LTD, update to latest packet protocol.
Index: socket.c
===================================================================
RCS file: /cvsroot/netrek/client/netrekxp/src/socket.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- socket.c 3 Jun 2009 03:27:59 -0000 1.68
+++ socket.c 4 Jun 2009 02:02:29 -0000 1.69
@@ -26,6 +26,7 @@
#include "struct.h"
#include "data.h"
#include "packets.h"
+#include "ltd_stats.h"
#include "wtext.h"
#include "playerlist.h"
#include "map.h"
@@ -2846,24 +2847,102 @@
}
#define dump_stat(STAT) { \
- LineToConsole(" %8u\n", (unsigned int) ltd->STAT); \
+ LineToConsole(" %8u\n", (unsigned int) ltd.STAT); \
}
#define dump_max(STAT) { \
- LineToConsole(" %8u\n", (unsigned int) ltd->STAT); \
+ LineToConsole(" %8u\n", (unsigned int) ltd.STAT); \
}
void
handleLtd (struct ltd_spacket *packet)
{
- struct ltd_stats *ltd;
+ struct ltd_stats ltd;
+
if (packet->version != LTD_VERSION) return;
- if (packet->endian != 'l') return;
- ltd = &packet->ltd;
+ ltd.kills.total = ntohl(packet->kt);
+ ltd.kills.max = (double)(ntohl(packet->kmax)) / 100.0;
+ ltd.kills.first = ntohl(packet->k1);
+ ltd.kills.first_potential = ntohl(packet->k1p);
+ ltd.kills.first_converted = ntohl(packet->k1c);
+ ltd.kills.second = ntohl(packet->k2);
+ ltd.kills.second_potential = ntohl(packet->k2p);
+ ltd.kills.second_converted = ntohl(packet->k2c);
+ ltd.kills.phasered = ntohl(packet->kbp);
+ ltd.kills.torped = ntohl(packet->kbt);
+ ltd.kills.plasmaed = ntohl(packet->kbs);
+ ltd.deaths.total = ntohl(packet->dt);
+ ltd.deaths.potential = ntohl(packet->dpc);
+ ltd.deaths.converted = ntohl(packet->dcc);
+ ltd.deaths.dooshed = ntohl(packet->ddc);
+ ltd.deaths.phasered = ntohl(packet->dbp);
+ ltd.deaths.torped = ntohl(packet->dbt);
+ ltd.deaths.plasmaed = ntohl(packet->dbs);
+ ltd.deaths.acc = ntohl(packet->acc);
+ ltd.planets.taken = ntohl(packet->ptt);
+ ltd.planets.destroyed = ntohl(packet->pdt);
+ ltd.bomb.planets = ntohl(packet->bpt);
+ ltd.bomb.planets_8 = ntohl(packet->bp8);
+ ltd.bomb.planets_core = ntohl(packet->bpc);
+ ltd.bomb.armies = ntohl(packet->bat);
+ ltd.bomb.armies_8 = ntohl(packet->ba8);
+ ltd.bomb.armies_core = ntohl(packet->bac);
+ ltd.ogged.armies = ntohl(packet->oat);
+ ltd.ogged.dooshed = ntohl(packet->odc);
+ ltd.ogged.converted = ntohl(packet->occ);
+ ltd.ogged.potential = ntohl(packet->opc);
+ ltd.ogged.bigger_ship = ntohl(packet->ogc);
+ ltd.ogged.same_ship = ntohl(packet->oec);
+ ltd.ogged.smaller_ship = ntohl(packet->olc);
+ ltd.ogged.sb_armies = ntohl(packet->osba);
+ ltd.ogged.friendly = ntohl(packet->ofc);
+ ltd.ogged.friendly_armies = ntohl(packet->ofa);
+ ltd.armies.total = ntohl(packet->at);
+ ltd.armies.attack = ntohl(packet->aa);
+ ltd.armies.reinforce = ntohl(packet->ar);
+ ltd.armies.ferries = ntohl(packet->af);
+ ltd.armies.killed = ntohl(packet->ak);
+ ltd.carries.total = ntohl(packet->ct);
+ ltd.carries.partial = ntohl(packet->cp);
+ ltd.carries.completed = ntohl(packet->cc);
+ ltd.carries.attack = ntohl(packet->ca);
+ ltd.carries.reinforce = ntohl(packet->cr);
+ ltd.carries.ferries = ntohl(packet->cf);
+ ltd.ticks.total = ntohl(packet->tt);
+ ltd.ticks.yellow = ntohl(packet->tyel);
+ ltd.ticks.red = ntohl(packet->tred);
+ ltd.ticks.zone[0] = ntohl(packet->tz0);
+ ltd.ticks.zone[1] = ntohl(packet->tz1);
+ ltd.ticks.zone[2] = ntohl(packet->tz2);
+ ltd.ticks.zone[3] = ntohl(packet->tz3);
+ ltd.ticks.zone[4] = ntohl(packet->tz4);
+ ltd.ticks.zone[5] = ntohl(packet->tz5);
+ ltd.ticks.zone[6] = ntohl(packet->tz6);
+ ltd.ticks.zone[7] = ntohl(packet->tz7);
+ ltd.ticks.potential = ntohl(packet->tpc);
+ ltd.ticks.carrier = ntohl(packet->tcc);
+ ltd.ticks.repair = ntohl(packet->tr);
+ ltd.damage_repaired = ntohl(packet->dr);
+ ltd.weapons.phaser.fired = ntohl(packet->wpf);
+ ltd.weapons.phaser.hit = ntohl(packet->wph);
+ ltd.weapons.phaser.damage.inflicted = ntohl(packet->wpdi);
+ ltd.weapons.phaser.damage.taken = ntohl(packet->wpdt);
+ ltd.weapons.torps.fired = ntohl(packet->wtf);
+ ltd.weapons.torps.hit = ntohl(packet->wth);
+ ltd.weapons.torps.detted = ntohl(packet->wtd);
+ ltd.weapons.torps.selfdetted = ntohl(packet->wts);
+ ltd.weapons.torps.wall = ntohl(packet->wtw);
+ ltd.weapons.torps.damage.inflicted = ntohl(packet->wtdi);
+ ltd.weapons.torps.damage.taken = ntohl(packet->wtdt);
+ ltd.weapons.plasma.fired = ntohl(packet->wsf);
+ ltd.weapons.plasma.hit = ntohl(packet->wsh);
+ ltd.weapons.plasma.phasered = ntohl(packet->wsp);
+ ltd.weapons.plasma.wall = ntohl(packet->wsw);
+ ltd.weapons.plasma.damage.inflicted = ntohl(packet->wsdi);
+ ltd.weapons.plasma.damage.taken = ntohl(packet->wsdt);
LineToConsole("SP_LTD test output begins\n");
- LineToConsole("SP_LTD: ltd_stats size is %d\n", sizeof(struct ltd_stats));
dump_prefix("kt", "kills total"); dump_stat(kills.total);
dump_prefix("kmax", "kills max"); dump_max(kills.max);
dump_prefix("k1", "kills first"); dump_stat(kills.first);
@@ -5429,29 +5508,171 @@
break;
case SP_LTD :
LineToConsole("\nS->C SP_LTD\t");
- if (log_packets > 1)
+ if (log_packets > 2)
{
- LineToConsole(" version='%c', endian='%c', pad='%c',\n",
- ((struct ltd_spacket *) packet)->version,
- ((struct ltd_spacket *) packet)->endian,
- ((struct ltd_spacket *) packet)->pad );
- switch (((struct ltd_spacket *) packet)->version)
- {
- case LTD_VERSION:
- {
- struct ltd_stats *ltd = &(((struct ltd_spacket *)packet)->ltd);
- unsigned char *ptr = (unsigned char *) ltd;
- int i;
-
- for (i = 0; i < sizeof(struct ltd_stats); i++)
- {
- if (i%20 == 0)
- LineToConsole("\n");
- LineToConsole(" %02x ", ptr[i]);
- }
- }
- LineToConsole("\n");
- }
+ struct ltd_spacket *lp = (struct ltd_spacket *) packet;
+ LineToConsole("version='%c', "
+ "kt=%d, "
+ "kmax=%d/100, "
+ "k1=%d, "
+ "k1p=%d, "
+ "k1c=%d, "
+ "k2=%d, "
+ "k2p=%d, "
+ "k2c=%d, "
+ "kbp=%d, "
+ "kbt=%d, "
+ "kbs=%d, "
+ "dt=%d, "
+ "dpc=%d, "
+ "dcc=%d, "
+ "ddc=%d, "
+ "dbp=%d, "
+ "dbt=%d, "
+ "dbs=%d, "
+ "acc=%d, "
+ "ptt=%d, "
+ "pdt=%d, "
+ "bpt=%d, "
+ "bp8=%d, "
+ "bpc=%d, "
+ "bat=%d, "
+ "ba8=%d, "
+ "bac=%d, "
+ "oat=%d, "
+ "odc=%d, "
+ "occ=%d, "
+ "opc=%d, "
+ "ogc=%d, "
+ "oec=%d, "
+ "olc=%d, "
+ "osba=%d, "
+ "ofc=%d, "
+ "ofa=%d, "
+ "at=%d, "
+ "aa=%d, "
+ "ar=%d, "
+ "af=%d, "
+ "ak=%d, "
+ "ct=%d, "
+ "cp=%d, "
+ "cc=%d, "
+ "ca=%d, "
+ "cr=%d, "
+ "cf=%d, "
+ "tt=%d, "
+ "tyel=%d, "
+ "tred=%d, "
+ "tz0=%d, "
+ "tz1=%d, "
+ "tz2=%d, "
+ "tz3=%d, "
+ "tz4=%d, "
+ "tz5=%d, "
+ "tz6=%d, "
+ "tz7=%d, "
+ "tpc=%d, "
+ "tcc=%d, "
+ "tr=%d, "
+ "dr=%d, "
+ "wpf=%d, "
+ "wph=%d, "
+ "wpdi=%d, "
+ "wpdt=%d, "
+ "wtf=%d, "
+ "wth=%d, "
+ "wtd=%d, "
+ "wts=%d, "
+ "wtw=%d, "
+ "wtdi=%d, "
+ "wtdt=%d, "
+ "wsf=%d, "
+ "wsh=%d, "
+ "wsp=%d, "
+ "wsw=%d, "
+ "wsdi=%d, "
+ "wsdt=%d, \n",
+ lp->version,
+ ntohl(lp->kt),
+ ntohl(lp->kmax),
+ ntohl(lp->k1),
+ ntohl(lp->k1p),
+ ntohl(lp->k1c),
+ ntohl(lp->k2),
+ ntohl(lp->k2p),
+ ntohl(lp->k2c),
+ ntohl(lp->kbp),
+ ntohl(lp->kbt),
+ ntohl(lp->kbs),
+ ntohl(lp->dt),
+ ntohl(lp->dpc),
+ ntohl(lp->dcc),
+ ntohl(lp->ddc),
+ ntohl(lp->dbp),
+ ntohl(lp->dbt),
+ ntohl(lp->dbs),
+ ntohl(lp->acc),
+ ntohl(lp->ptt),
+ ntohl(lp->pdt),
+ ntohl(lp->bpt),
+ ntohl(lp->bp8),
+ ntohl(lp->bpc),
+ ntohl(lp->bat),
+ ntohl(lp->ba8),
+ ntohl(lp->bac),
+ ntohl(lp->oat),
+ ntohl(lp->odc),
+ ntohl(lp->occ),
+ ntohl(lp->opc),
+ ntohl(lp->ogc),
+ ntohl(lp->oec),
+ ntohl(lp->olc),
+ ntohl(lp->osba),
+ ntohl(lp->ofc),
+ ntohl(lp->ofa),
+ ntohl(lp->at),
+ ntohl(lp->aa),
+ ntohl(lp->ar),
+ ntohl(lp->af),
+ ntohl(lp->ak),
+ ntohl(lp->ct),
+ ntohl(lp->cp),
+ ntohl(lp->cc),
+ ntohl(lp->ca),
+ ntohl(lp->cr),
+ ntohl(lp->cf),
+ ntohl(lp->tt),
+ ntohl(lp->tyel),
+ ntohl(lp->tred),
+ ntohl(lp->tz0),
+ ntohl(lp->tz1),
+ ntohl(lp->tz2),
+ ntohl(lp->tz3),
+ ntohl(lp->tz4),
+ ntohl(lp->tz5),
+ ntohl(lp->tz6),
+ ntohl(lp->tz7),
+ ntohl(lp->tpc),
+ ntohl(lp->tcc),
+ ntohl(lp->tr),
+ ntohl(lp->dr),
+ ntohl(lp->wpf),
+ ntohl(lp->wph),
+ ntohl(lp->wpdi),
+ ntohl(lp->wpdt),
+ ntohl(lp->wtf),
+ ntohl(lp->wth),
+ ntohl(lp->wtd),
+ ntohl(lp->wts),
+ ntohl(lp->wtw),
+ ntohl(lp->wtdi),
+ ntohl(lp->wtdt),
+ ntohl(lp->wsf),
+ ntohl(lp->wsh),
+ ntohl(lp->wsp),
+ ntohl(lp->wsw),
+ ntohl(lp->wsdi),
+ ntohl(lp->wsdt) );
}
break;
#ifdef SHORT_PACKETS