reduce compact pos packet size by two more bit
This commit is contained in:
@@ -459,9 +459,8 @@ void c2sinfo(playerent *d) // send update to the server
|
||||
dz >= -8 && dz <= 7)
|
||||
{ // compact POS packet
|
||||
bitbuf<packetbuf> b(q);
|
||||
putint(q, SV_POSC);
|
||||
putint(q, SV_POSC + usefactor - 7);
|
||||
b.putbits(5, cn);
|
||||
b.putbits(2, usefactor - 7);
|
||||
b.putbits(usefactor + 4, x);
|
||||
b.putbits(usefactor + 4, y);
|
||||
b.putbits(YAWBITS, ya);
|
||||
|
||||
@@ -115,14 +115,17 @@ void parsepositions(ucharbuf &p)
|
||||
{
|
||||
case SV_POS: // position of another client
|
||||
case SV_POSC:
|
||||
case SV_POSC2:
|
||||
case SV_POSC3:
|
||||
case SV_POSC4:
|
||||
{
|
||||
int cn, f, yaw, pitch, z;
|
||||
vec o, vel;
|
||||
if(type == SV_POSC)
|
||||
if(type != SV_POS)
|
||||
{
|
||||
bitbuf<ucharbuf> q(p);
|
||||
cn = q.getbits(5);
|
||||
int usefactor = q.getbits(2) + 7;
|
||||
int usefactor = type - SV_POSC + 7;
|
||||
o.x = q.getbits(usefactor + 4) / DMF;
|
||||
o.y = q.getbits(usefactor + 4) / DMF;
|
||||
yaw = q.getbits(YAWBITS);
|
||||
|
||||
@@ -580,7 +580,7 @@ float decodeyaw(int r)
|
||||
|
||||
static const int msgsizes[] = // size inclusive message token, 0 for variable or not-checked sizes
|
||||
{
|
||||
SV_SERVINFO, 1, SV_SERVINFO_RESPONSE, 0, SV_SERVINFO_CONTD, 0, SV_WELCOME, 2, SV_INITCLIENT, 0, SV_POS, 0, SV_POSC, 0, SV_POSN, 0,
|
||||
SV_SERVINFO, 1, SV_SERVINFO_RESPONSE, 0, SV_SERVINFO_CONTD, 0, SV_WELCOME, 2, SV_INITCLIENT, 0, SV_POS, 0, SV_POSC, 0, SV_POSC2, 0, SV_POSC3, 0, SV_POSC4, 0, SV_POSN, 0,
|
||||
SV_TEXT, 0, SV_TEAMTEXT, 0, SV_TEXTME, 0, SV_TEAMTEXTME, 0, SV_TEXTPRIVATE, 0,
|
||||
SV_SOUND, 2, SV_VOICECOM, 2, SV_VOICECOMTEAM, 2, SV_CDIS, 2,
|
||||
SV_SHOOT, 0, SV_EXPLODE, 0, SV_SUICIDE, 1, SV_AKIMBO, 2, SV_RELOAD, 3, SV_AUTHT, 0, SV_AUTHREQ, 0, SV_AUTHTRY, 0, SV_AUTHANS, 0, SV_AUTHCHAL, 0,
|
||||
|
||||
@@ -26,7 +26,7 @@ extern bool modprotocol;
|
||||
// network messages codes, c2s, c2c, s2c
|
||||
enum
|
||||
{
|
||||
SV_SERVINFO = 0, SV_SERVINFO_RESPONSE, SV_SERVINFO_CONTD, SV_WELCOME, SV_INITCLIENT, SV_POS, SV_POSC, SV_POSN, SV_TEXT, SV_TEAMTEXT, SV_TEXTME, SV_TEAMTEXTME, SV_TEXTPRIVATE,
|
||||
SV_SERVINFO = 0, SV_SERVINFO_RESPONSE, SV_SERVINFO_CONTD, SV_WELCOME, SV_INITCLIENT, SV_POS, SV_POSC, SV_POSC2, SV_POSC3, SV_POSC4, SV_POSN, SV_TEXT, SV_TEAMTEXT, SV_TEXTME, SV_TEAMTEXTME, SV_TEXTPRIVATE,
|
||||
SV_SOUND, SV_VOICECOM, SV_VOICECOMTEAM, SV_CDIS,
|
||||
SV_SHOOT, SV_EXPLODE, SV_SUICIDE, SV_AKIMBO, SV_RELOAD, SV_AUTHT, SV_AUTHREQ, SV_AUTHTRY, SV_AUTHANS, SV_AUTHCHAL,
|
||||
SV_GIBDIED, SV_DIED, SV_GIBDAMAGE, SV_DAMAGE, SV_HITPUSH, SV_SHOTFX, SV_THROWNADE,
|
||||
|
||||
@@ -3377,7 +3377,7 @@ void process(ENetPacket *packet, int sender, int chan)
|
||||
type = checktype(getint(p), cl);
|
||||
|
||||
#ifdef _DEBUG
|
||||
if(type!=SV_POS && type!=SV_POSC && type!=SV_CLIENTPING && type!=SV_PING && type!=SV_CLIENT)
|
||||
if(type!=SV_POS && type!=SV_POSC && type!=SV_POSC2 && type!=SV_POSC3 && type!=SV_POSC4 && type!=SV_CLIENTPING && type!=SV_PING && type!=SV_CLIENT)
|
||||
{
|
||||
DEBUGVAR(cl->name);
|
||||
if(type >= 0) { DEBUGVAR(messagenames[type]); }
|
||||
@@ -3847,6 +3847,9 @@ void process(ENetPacket *packet, int sender, int chan)
|
||||
}
|
||||
|
||||
case SV_POSC:
|
||||
case SV_POSC2:
|
||||
case SV_POSC3:
|
||||
case SV_POSC4:
|
||||
{
|
||||
bitbuf<ucharbuf> q(p);
|
||||
int cn = q.getbits(5);
|
||||
@@ -3858,7 +3861,7 @@ void process(ENetPacket *packet, int sender, int chan)
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
int usefactor = q.getbits(2) + 7;
|
||||
int usefactor = type - SV_POSC + 7;
|
||||
int xt = q.getbits(usefactor + 4);
|
||||
int yt = q.getbits(usefactor + 4);
|
||||
cl->yaw = (int)decodeyaw(q.getbits(YAWBITS));
|
||||
|
||||
+1
-1
@@ -455,7 +455,7 @@ const char *modeinfologfilename = NULL;
|
||||
|
||||
const char *messagenames[SV_NUM] =
|
||||
{
|
||||
"SV_SERVINFO", "SV_SERVINFO_RESPONSE", "SV_SERVINFO_CONTD", "SV_WELCOME", "SV_INITCLIENT", "SV_POS", "SV_POSC", "SV_POSN",
|
||||
"SV_SERVINFO", "SV_SERVINFO_RESPONSE", "SV_SERVINFO_CONTD", "SV_WELCOME", "SV_INITCLIENT", "SV_POS", "SV_POSC", "SV_POSC2", "SV_POSC3", "SV_POSC4", "SV_POSN",
|
||||
"SV_TEXT", "SV_TEAMTEXT", "SV_TEXTME", "SV_TEAMTEXTME", "SV_TEXTPRIVATE",
|
||||
"SV_SOUND", "SV_VOICECOM", "SV_VOICECOMTEAM", "SV_CDIS",
|
||||
"SV_SHOOT", "SV_EXPLODE", "SV_SUICIDE", "SV_AKIMBO", "SV_RELOAD", "SV_AUTHT", "SV_AUTHREQ", "SV_AUTHTRY", "SV_AUTHANS", "SV_AUTHCHAL",
|
||||
|
||||
Reference in New Issue
Block a user