#include "libcurl.h"
#include "utf8lib.h"
#include "menu.h"
+#include "cl_video.h"
const char *svc_strings[128] =
{
cvar_t cl_worldnamenoextension = {CVAR_READONLY, "cl_worldnamenoextension", "", "name of current worldmodel without extension"};
cvar_t cl_worldbasename = {CVAR_READONLY, "cl_worldbasename", "", "name of current worldmodel without maps/ prefix or extension"};
-cvar_t demo_nehahra = {0, "demo_nehahra", "0", "reads all quake demos as nehahra movie protocol"};
cvar_t developer_networkentities = {0, "developer_networkentities", "0", "prints received entities, value is 0-4 (higher for more info)"};
cvar_t cl_gameplayfix_soundsmovewithentities = {0, "cl_gameplayfix_soundsmovewithentities", "1", "causes sounds made by lifts, players, projectiles, and any other entities, to move with the entity, so for example a rocket noise follows the rocket rather than staying at the starting position"};
cvar_t cl_sound_wizardhit = {0, "cl_sound_wizardhit", "wizard/hit.wav", "sound to play during TE_WIZSPIKE (empty cvar disables sound)"};
if (field_mask & SND_LARGEENTITY)
{
ent = (unsigned short) MSG_ReadShort ();
- channel = MSG_ReadByte ();
+ channel = MSG_ReadChar ();
}
else
{
sound_num = MSG_ReadByte ();
}
+ channel = CHAN_NET2ENGINE(channel);
+
MSG_ReadVector(pos, cls.protocol);
if (sound_num >= MAX_SOUNDS)
protocolversion_t protocol;
int nummodels, numsounds;
+ // if we start loading a level and a video is still playing, stop it
+ CL_VideoStop();
+
Con_DPrint("Serverinfo packet received.\n");
+ Collision_Cache_Reset(true);
// if server is active, we already began a loading plaque
if (!sv.active)
return;
}
// hack for unmarked Nehahra movie demos which had a custom protocol
- if (protocol == PROTOCOL_QUAKEDP && cls.demoplayback && demo_nehahra.integer)
+ if (protocol == PROTOCOL_QUAKEDP && cls.demoplayback && gamemode == GAME_NEHAHRA)
protocol = PROTOCOL_NEHAHRAMOVIE;
cls.protocol = protocol;
Con_DPrintf("Server protocol is %s\n", Protocol_NameForEnum(cls.protocol));
}
extern cvar_t slowmo;
+extern cvar_t cl_lerpexcess;
extern void CSQC_UpdateNetworkTimes(double newtime, double oldtime);
static void CL_NetworkTimeReceived(double newtime)
{
if (cl.mtime[0] > cl.mtime[1])
World_Physics_Frame(&cl.world, cl.mtime[0] - cl.mtime[1], cl.movevars_gravity);
+
+ // only lerp entities that also get an update in this frame, when lerp excess is used
+ if(cl_lerpexcess.value > 0)
+ {
+ int i;
+ for (i = 1;i < cl.num_entities;i++)
+ {
+ if (cl.entities_active[i])
+ {
+ entity_t *ent = cl.entities + i;
+ ent->persistent.lerpdeltatime = 0;
+ }
+ }
+ }
}
#define SHOWNET(x) if(cl_shownet.integer==2)Con_Printf("%3i:%s(%i)\n", msg_readcount-1, x, cmd);
if (protocol == PROTOCOL_UNKNOWN)
Host_Error("CL_ParseServerMessage: Server is unrecognized protocol number (%i)", i);
// hack for unmarked Nehahra movie demos which had a custom protocol
- if (protocol == PROTOCOL_QUAKEDP && cls.demoplayback && demo_nehahra.integer)
+ if (protocol == PROTOCOL_QUAKEDP && cls.demoplayback && gamemode == GAME_NEHAHRA)
protocol = PROTOCOL_NEHAHRAMOVIE;
cls.protocol = protocol;
break;
Cvar_RegisterVariable(&cl_worldnamenoextension);
Cvar_RegisterVariable(&cl_worldbasename);
- // LordHavoc: added demo_nehahra cvar
- Cvar_RegisterVariable (&demo_nehahra);
- if (gamemode == GAME_NEHAHRA)
- Cvar_SetValue("demo_nehahra", 1);
Cvar_RegisterVariable(&developer_networkentities);
Cvar_RegisterVariable(&cl_gameplayfix_soundsmovewithentities);