From be7b866e4ff102d65ed8c33f5fa907a144acd032 Mon Sep 17 00:00:00 2001
From: Monster Iestyn <iestynjealous@ntlworld.com>
Date: Sat, 16 Apr 2016 18:40:14 +0100
Subject: [PATCH] resynch_pak changes

* add skidtime, which we forgot before 2.1 release apparently
* change tics from INT16 to INT32
* change eflags from UINT8 to UINT16
* change actionspd/mindash/maxdash from INT32 to fixed_t
---
 src/d_clisrv.c | 18 ++++++++++--------
 src/d_clisrv.h | 11 ++++++-----
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/d_clisrv.c b/src/d_clisrv.c
index d20c0e5eaf..7852a0a224 100644
--- a/src/d_clisrv.c
+++ b/src/d_clisrv.c
@@ -517,9 +517,9 @@ static inline void resynch_write_player(resynch_pak *rsp, const size_t i)
 	rsp->thokitem = (UINT32)LONG(players[i].thokitem); //mobjtype_t
 	rsp->spinitem = (UINT32)LONG(players[i].spinitem); //mobjtype_t
 	rsp->revitem = (UINT32)LONG(players[i].revitem); //mobjtype_t
-	rsp->actionspd = LONG(players[i].actionspd);
-	rsp->mindash = LONG(players[i].mindash);
-	rsp->maxdash = LONG(players[i].maxdash);
+	rsp->actionspd = (fixed_t)LONG(players[i].actionspd);
+	rsp->mindash = (fixed_t)LONG(players[i].mindash);
+	rsp->maxdash = (fixed_t)LONG(players[i].maxdash);
 	rsp->jumpfactor = (fixed_t)LONG(players[i].jumpfactor);
 
 	rsp->speed = (fixed_t)LONG(players[i].speed);
@@ -531,6 +531,7 @@ static inline void resynch_write_player(resynch_pak *rsp, const size_t i)
 	rsp->deadtimer = players[i].deadtimer;
 	rsp->exiting = (tic_t)LONG(players[i].exiting);
 	rsp->homing = players[i].homing;
+	rsp->skidtime = (tic_t)LONG(players[i].skidtime);
 	rsp->cmomx = (fixed_t)LONG(players[i].cmomx);
 	rsp->cmomy = (fixed_t)LONG(players[i].cmomy);
 	rsp->rmomx = (fixed_t)LONG(players[i].rmomx);
@@ -590,7 +591,7 @@ static inline void resynch_write_player(resynch_pak *rsp, const size_t i)
 
 	rsp->tics = LONG(players[i].mo->tics);
 	rsp->statenum = (statenum_t)LONG(players[i].mo->state-states); // :(
-	rsp->eflags = (UINT32)LONG(players[i].mo->eflags);
+	rsp->eflags = (UINT16)SHORT(players[i].mo->eflags);
 	rsp->flags = LONG(players[i].mo->flags);
 	rsp->flags2 = LONG(players[i].mo->flags2);
 
@@ -642,9 +643,9 @@ static void resynch_read_player(resynch_pak *rsp)
 	players[i].thokitem = (UINT32)LONG(rsp->thokitem); //mobjtype_t
 	players[i].spinitem = (UINT32)LONG(rsp->spinitem); //mobjtype_t
 	players[i].revitem = (UINT32)LONG(rsp->revitem); //mobjtype_t
-	players[i].actionspd = LONG(rsp->actionspd);
-	players[i].mindash = LONG(rsp->mindash);
-	players[i].maxdash = LONG(rsp->maxdash);
+	players[i].actionspd = (fixed_t)LONG(rsp->actionspd);
+	players[i].mindash = (fixed_t)LONG(rsp->mindash);
+	players[i].maxdash = (fixed_t)LONG(rsp->maxdash);
 	players[i].jumpfactor = (fixed_t)LONG(rsp->jumpfactor);
 
 	players[i].speed = (fixed_t)LONG(rsp->speed);
@@ -656,6 +657,7 @@ static void resynch_read_player(resynch_pak *rsp)
 	players[i].deadtimer = rsp->deadtimer;
 	players[i].exiting = (tic_t)LONG(rsp->exiting);
 	players[i].homing = rsp->homing;
+	players[i].skidtime = (tic_t)LONG(rsp->skidtime);
 	players[i].cmomx = (fixed_t)LONG(rsp->cmomx);
 	players[i].cmomy = (fixed_t)LONG(rsp->cmomy);
 	players[i].rmomx = (fixed_t)LONG(rsp->rmomx);
@@ -713,7 +715,7 @@ static void resynch_read_player(resynch_pak *rsp)
 	//At this point, the player should have a body, whether they were respawned or not.
 	P_UnsetThingPosition(players[i].mo);
 	players[i].mo->angle = (angle_t)LONG(rsp->angle);
-	players[i].mo->eflags = (UINT32)LONG(rsp->eflags);
+	players[i].mo->eflags = (UINT16)SHORT(rsp->eflags);
 	players[i].mo->flags = LONG(rsp->flags);
 	players[i].mo->flags2 = LONG(rsp->flags2);
 	players[i].mo->friction = LONG(rsp->friction);
diff --git a/src/d_clisrv.h b/src/d_clisrv.h
index 6bc06f13a5..246447ed6c 100644
--- a/src/d_clisrv.h
+++ b/src/d_clisrv.h
@@ -177,9 +177,9 @@ typedef struct
 	UINT32 thokitem; //mobjtype_t
 	UINT32 spinitem; //mobjtype_t
 	UINT32 revitem; //mobjtype_t
-	INT32 actionspd;
-	INT32 mindash;
-	INT32 maxdash;
+	fixed_t actionspd;
+	fixed_t mindash;
+	fixed_t maxdash;
 	fixed_t jumpfactor;
 
 	fixed_t speed;
@@ -191,6 +191,7 @@ typedef struct
 	INT32 deadtimer;
 	tic_t exiting;
 	UINT8 homing;
+	tic_t skidtime;
 	fixed_t cmomx;
 	fixed_t cmomy;
 	fixed_t rmomx;
@@ -241,11 +242,11 @@ typedef struct
 	fixed_t friction;
 	fixed_t movefactor;
 
-	INT16 tics;
+	INT32 tics;
 	statenum_t statenum;
 	UINT32 flags;
 	UINT32 flags2;
-	UINT8 eflags;
+	UINT16 eflags;
 
 	fixed_t radius;
 	fixed_t height;
-- 
GitLab