X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=cl_main.c;h=2fd7720dbc583d8a4ae09f3c3ef7e14cd51fade4;hb=01547eb038afe0bd7925c88844a37a150fe25b28;hp=b78ec29b01c309e1e6a36ad0b59292ef312c8ffe;hpb=7977ef74dc79b00067952417dd4252ed3ebcbadb;p=xonotic%2Fdarkplaces.git diff --git a/cl_main.c b/cl_main.c index b78ec29b..2fd7720d 100644 --- a/cl_main.c +++ b/cl_main.c @@ -239,7 +239,7 @@ void CL_ExpandCSQCEntities(int num) oldmaxentities = cl.max_csqcentities; oldentities = cl.csqcentities; cl.max_csqcentities = (num & ~255) + 256; - cl.csqcentities = Mem_Alloc(cls.levelmempool, cl.max_csqcentities * sizeof(entity_t)); + cl.csqcentities = (entity_t *)Mem_Alloc(cls.levelmempool, cl.max_csqcentities * sizeof(entity_t)); memcpy(cl.csqcentities, oldentities, oldmaxentities * sizeof(entity_t)); Mem_Free(oldentities); for (i = oldmaxentities;i < cl.max_csqcentities;i++) @@ -664,7 +664,7 @@ void CL_UpdateLights(void) l = (i-1) % cl.lightstyle[j].length; k = cl.lightstyle[j].map[k] - 'a'; l = cl.lightstyle[j].map[l] - 'a'; - r_refdef.lightstylevalue[j] = ((k*frac)+(l*(1-frac)))*22; + r_refdef.lightstylevalue[j] = (unsigned short)(((k*frac)+(l*(1-frac)))*22); } } @@ -1028,7 +1028,7 @@ void CL_LinkNetworkEntity(entity_t *e) tempmatrix.m[1][3] = trace.endpos[1]; tempmatrix.m[2][3] = trace.endpos[2]; CL_AllocDlight(NULL, &tempmatrix, 100, e->persistent.muzzleflash, e->persistent.muzzleflash, e->persistent.muzzleflash, 0, 0, 0, -1, true, 0, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE); - e->persistent.muzzleflash -= cl.frametime * 10; + e->persistent.muzzleflash -= (cl.time - cl.oldtime) * 10; } // LordHavoc: if the model has no flags, don't check each if (e->render.model && e->render.model->flags && (!e->state_current.tagentity && !(e->render.flags & RENDER_VIEWMODEL))) @@ -1093,8 +1093,7 @@ void CL_LinkNetworkEntity(entity_t *e) if (len > 0) len = 1.0f / len; VectorScale(vel, len, vel); - len = VectorDistance(origin, e->persistent.trail_origin); - CL_ParticleEffect(trailtype, len, e->persistent.trail_origin, origin, vel, vel, e, e->state_current.glowcolor); + CL_ParticleEffect(trailtype, 1, e->persistent.trail_origin, origin, vel, vel, e, e->state_current.glowcolor); } VectorCopy(origin, e->persistent.trail_origin); // tenebrae's sprites are all additive mode (weird) @@ -1287,7 +1286,7 @@ static void CL_RelinkEffects(void) if (e->active) { frame = (cl.time - e->starttime) * e->framerate + e->startframe; - intframe = frame; + intframe = (int)frame; if (intframe < 0 || intframe >= e->endframe) { memset(e, 0, sizeof(*e)); @@ -1488,6 +1487,7 @@ void CL_LerpPlayer(float frac) void CSQC_RelinkAllEntities (int drawmask) { + cl.num_brushmodel_entities = 0; CL_RelinkNetworkEntities(drawmask); if(drawmask & ENTMASK_ENGINE) { @@ -1526,7 +1526,6 @@ int CL_ReadFromServer(void) r_refdef.extraupdate = !r_speeds.integer; r_refdef.numentities = 0; r_refdef.viewentitymatrix = identitymatrix; - cl.num_brushmodel_entities = 0; if (cls.state == ca_connected && cls.signon == SIGNONS) { @@ -1541,6 +1540,7 @@ int CL_ReadFromServer(void) CL_ClientMovement_Replay(); if(!csqc_loaded) //[515]: csqc { + cl.num_brushmodel_entities = 0; CL_RelinkNetworkEntities(65535); // move particles @@ -1562,6 +1562,9 @@ int CL_ReadFromServer(void) // update view blend V_CalcViewBlend(); + + // update the r_refdef time again because cl.time may have changed + r_refdef.time = cl.time; } return 0;