diff --git a/engine/client/cl_ents.c b/engine/client/cl_ents.c index 64fad97ef..5623d453d 100644 --- a/engine/client/cl_ents.c +++ b/engine/client/cl_ents.c @@ -865,6 +865,7 @@ void CLFTE_ParseEntities(void) qboolean isvalid = false; qboolean removeflag; int inputframe = cls.netchan.incoming_sequence; + int i; // int i; // for (i = cl.validsequence+1; i < cls.netchan.incoming_sequence; i++) @@ -880,7 +881,6 @@ void CLFTE_ParseEntities(void) #ifdef NQPROT else if (cls.protocol == CP_NETQUAKE) { - int i; cls.netchan.incoming_sequence++; cl.last_servermessage = realtime; if (cls.fteprotocolextensions2 & PEXT2_PREDINFO) @@ -925,6 +925,16 @@ void CLFTE_ParseEntities(void) cl.inframes[newpacket].receivedtime = realtime; cl.inframes[newpacket].frameid = cls.netchan.incoming_sequence; + for (i = 0; i < cl.splitclients; i++) + { + cl.inframes[newpacket&UPDATE_MASK].packet_entities.punchangle[i][0] = cl.playerview[i].statsf[STAT_PUNCHANGLE_X]; + cl.inframes[newpacket&UPDATE_MASK].packet_entities.punchangle[i][1] = cl.playerview[i].statsf[STAT_PUNCHANGLE_Y]; + cl.inframes[newpacket&UPDATE_MASK].packet_entities.punchangle[i][2] = cl.playerview[i].statsf[STAT_PUNCHANGLE_Z]; + cl.inframes[newpacket&UPDATE_MASK].packet_entities.punchorigin[i][0] = cl.playerview[i].statsf[STAT_PUNCHVECTOR_X]; + cl.inframes[newpacket&UPDATE_MASK].packet_entities.punchorigin[i][1] = cl.playerview[i].statsf[STAT_PUNCHVECTOR_Y]; + cl.inframes[newpacket&UPDATE_MASK].packet_entities.punchorigin[i][2] = cl.playerview[i].statsf[STAT_PUNCHVECTOR_Z]; + } + if (!cl.validsequence || cls.netchan.incoming_sequence-cl.validsequence >= UPDATE_BACKUP-1 || oldp == newp) { @@ -3614,7 +3624,7 @@ qboolean CL_MayLerp(void) void CL_TransitionEntities (void) { packet_entities_t *packnew, *packold; - int newf, newff, oldf; + int newf, newff, oldf, i; qboolean nolerp; float servertime, frac; @@ -3655,6 +3665,12 @@ void CL_TransitionEntities (void) CL_TransitionPacketEntities(newff, packnew, packold, frac, servertime); + for (i = 0; i < cl.splitclients; i++) + { + VectorInterpolate(packold->punchangle[i], frac, packnew->punchangle[i], cl.playerview[i].punchangle_sv); + VectorInterpolate(packold->punchorigin[i], frac, packnew->punchorigin[i], cl.playerview[i].punchorigin); + } + /*and transition players too*/ { diff --git a/engine/client/wad.c b/engine/client/wad.c index 1cc8f580a..8c608b4de 100644 --- a/engine/client/wad.c +++ b/engine/client/wad.c @@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. void *wadmutex; -#ifndef PACKAGE_WAD +#ifndef PACKAGE_TEXWAD void Wads_Flush (void){} qboolean Wad_NextDownload (void){return true;} void *W_SafeGetLumpName (const char *name, size_t *size) {return NULL;} @@ -800,7 +800,7 @@ void Mod_ParseInfoFromEntityLump(model_t *wmodel) //actually, this should be in char token[4096]; char key[128]; const char *data = Mod_GetEntitiesString(wmodel); -#ifdef PACKAGE_WAD +#ifdef PACKAGE_TEXWAD mapskys_t *msky; wads[0] = '\0'; @@ -837,7 +837,7 @@ void Mod_ParseInfoFromEntityLump(model_t *wmodel) //actually, this should be in break; // error if (!strcmp("wad", key)) // for HalfLife maps { -#ifdef PACKAGE_WAD +#ifdef PACKAGE_TEXWAD Q_strncatz(wads, ";", sizeof(wads)); //cache it for later (so that we don't play with any temp memory yet) Q_strncatz(wads, token, sizeof(wads)); //cache it for later (so that we don't play with any temp memory yet) #endif @@ -919,7 +919,7 @@ void Mod_ParseInfoFromEntityLump(model_t *wmodel) //actually, this should be in COM_FileBase (wmodel->name, token, sizeof(token)); -#ifdef PACKAGE_WAD +#ifdef PACKAGE_TEXWAD //map-specific sky override feature for (msky = mapskies; msky; msky = msky->next) { diff --git a/engine/gl/gl_heightmap.c b/engine/gl/gl_heightmap.c index 89e0fdc11..fd8c1baf5 100644 --- a/engine/gl/gl_heightmap.c +++ b/engine/gl/gl_heightmap.c @@ -5624,7 +5624,11 @@ void Terr_Brush_Draw(heightmap_t *hm, batch_t **batches, entity_t *e) { if (!bt->shader) { +#ifdef PACKAGE_TEXWAD miptex_t *tx = W_GetMipTex(bt->shadername); +#else + const miptex_t *tx = NULL; +#endif if (!Q_strcasecmp(bt->shadername, "clip")) bt->shader = R_RegisterShader(bt->shadername, SUF_LIGHTMAP, "{\nsurfaceparm nodraw\n}");