Netrek-dev,
I’ve seen some clients which visually display that a tractor beam or pressor beam is active. I’m trying to add this feature to my MacOS client.
Which SP packet from the server tells me that a pressor or tractor is active?
I’ve included the packets.h summary and some “suspects” below.
I also suspect that you are only “aware” of tractor/pressor beams if they act on your ship, or you act on another ship.
I’m familiar with the CP_TRACTOR and CP_PRESSOR packets to request a tractor/pressor. I’m looking for the SP packets from the server which tell you that a pressor/tractor is active.
The “tractor” field in the flags_spacket looked possible, but I didn’t see anything other than a 0 in that field while trying out some tractor/pressor beams.
I did capture a SP_YOU packet with non-zero numbers in the tractor field, but don’t know how to interpret the number 69:
"Received SP_YOU 12 1 hostile 14 war 0 armies 0 tractor 69 flags 46145536 damage 81 shieldStrength 130 fuel 12996 engineTemp 64 weaponsTemp 0 whyDead 2 whodead 3"
Darrell
struct flags_spacket
{
char type; /* SP_FLAGS */
char pnum; /* whose flags are they? */
char tractor;
char pad2;
unsigned flags;
};
struct you_spacket
{
char type; /* SP_YOU */
char pnum; /* Guy needs to know this...
*
*/
char hostile;
char swar;
char armies;
char tractor;
char pad2;
char pad3;
unsigned flags;
LONG damage;
LONG shield;
LONG fuel;
unsigned short etemp;
unsigned short wtemp;
unsigned short whydead;
unsigned short whodead;
};
/* packets sent from xtrek server to remote client */
#define SP_MESSAGE 1
#define SP_PLAYER_INFO 2 /* general player info not elsewhere */
#define SP_KILLS 3 /* # kills a player has */
#define SP_PLAYER 4 /* x,y for player */
#define SP_TORP_INFO 5 /* torp status */
#define SP_TORP 6 /* torp location */
#define SP_PHASER 7 /* phaser status and direction */
#define SP_PLASMA_INFO 8 /* player login information */
#define SP_PLASMA 9 /* like SP_TORP */
#define SP_WARNING 10 /* like SP_MESG */
#define SP_MOTD 11 /* line from .motd screen */
#define SP_YOU 12 /* info on you? */
#define SP_QUEUE 13 /* estimated loc in queue? */
#define SP_STATUS 14 /* galaxy status numbers */
#define SP_PLANET 15 /* planet armies & facilities */
#define SP_PICKOK 16 /* your team & ship was accepted */
#define SP_LOGIN 17 /* login response */
#define SP_FLAGS 18 /* give flags for a player */
#define SP_MASK 19 /* tournament mode mask */
#define SP_PSTATUS 20 /* give status for a player */
#define SP_BADVERSION 21 /* invalid version number */
#define SP_HOSTILE 22 /* hostility settings for a player */
#define SP_STATS 23 /* a player's statistics */
#define SP_PL_LOGIN 24 /* new player logs in */
#define SP_RESERVED 25 /* for future use */
#define SP_PLANET_LOC 26 /* planet name, x, y */
/* NOTE: not implemented */
#define SP_SCAN 27 /* ATM: results of player scan */
#define SP_UDP_REPLY 28 /* notify client of UDP status */
#define SP_SEQUENCE 29 /* sequence # packet */
#define SP_SC_SEQUENCE 30 /* this trans is semi-critical info */
#define SP_RSA_KEY 31 /* handles binary verification */
#define SP_MOTD_PIC 32 /* motd bitmap pictures (paradise) */
#define SP_SHIP_CAP 39 /* Handles server ship mods */
#define SP_S_REPLY 40 /* reply to send-short request */
#define SP_S_MESSAGE 41 /* var. Message Packet */
#define SP_S_WARNING 42 /* Warnings with 4 Bytes */
#define SP_S_YOU 43 /* hostile,armies,whydead,etc .. */
#define SP_S_YOU_SS 44 /* your ship status */
#define SP_S_PLAYER 45 /* variable length player packet */
#define SP_PING 46 /* ping packet */
#define SP_S_TORP 47 /* variable length torp packet */
#define SP_S_TORP_INFO 48 /* SP_S_TORP with TorpInfo */
#define SP_S_8_TORP 49 /* optimized SP_S_TORP */
#define SP_S_PLANET 50 /* see SP_PLANET */
/* S_P2 */
#define SP_S_SEQUENCE 56 /* SP_SEQUENCE for compressed packets */
#define SP_S_PHASER 57 /* see struct */
#define SP_S_KILLS 58 /* # of kills player have */
#define SP_S_STATS 59 /* see SP_STATS */
/* variable length packets */
#define VPLAYER_SIZE 4
#define SHORTVERSION 11 /* other number blocks, like UDP Version */
#define OLDSHORTVERSION 10 /* S_P2 */
/* #ifdef FEATURE */
#define SP_FEATURE 60
/* #endif */
#define SP_BITMAP 61