From 45483d9d4f318baa8b1edc04d26231c655fddfd7 Mon Sep 17 00:00:00 2001 From: havoc Date: Sun, 26 Sep 2004 12:14:37 +0000 Subject: [PATCH] removed some very stale dead code git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4539 d7cf8633-e32d-0410-b094-e92efae38249 --- sv_main.c | 486 ------------------------------------------------------ 1 file changed, 486 deletions(-) diff --git a/sv_main.c b/sv_main.c index 591884d8..c79ee24d 100644 --- a/sv_main.c +++ b/sv_main.c @@ -418,340 +418,6 @@ crosses a waterline. int sv_writeentitiestoclient_pvsbytes; qbyte sv_writeentitiestoclient_pvs[MAX_MAP_LEAFS/8]; -/* -============= -SV_WriteEntitiesToClient - -============= -*/ -/* -void SV_WriteEntitiesToClient_QUAKE (client_t *client, edict_t *clent, sizebuf_t *msg) -{ - int e, clentnum, bits, alpha, glowcolor, glowsize, scale, effects, lightsize; - int culled_pvs, culled_trace, visibleentities, totalentities; - qbyte *pvs; - vec3_t origin, angles, entmins, entmaxs, testorigin, testeye; - float nextfullupdate, alphaf; - edict_t *ent; - eval_t *val; - entity_state_t *baseline; // LordHavoc: delta or startup baseline - model_t *model; - - Mod_CheckLoaded(sv.worldmodel); - -// find the client's PVS - VectorAdd (clent->v->origin, clent->v->view_ofs, testeye); - fatbytes = 0; - if (sv.worldmodel && sv.worldmodel->brush.FatPVS) - fatbytes = sv.worldmodel->brush.FatPVS(sv.worldmodel, testeye, 8, sv_writeentitiestoclient_pvs, sizeof(sv_writeentitiestoclient_pvs)); - - culled_pvs = 0; - culled_trace = 0; - visibleentities = 0; - totalentities = 0; - - clentnum = EDICT_TO_PROG(clent); // LordHavoc: for comparison purposes - // send all entities that touch the pvs - ent = NEXT_EDICT(sv.edicts); - for (e = 1;e < sv.num_edicts;e++, ent = NEXT_EDICT(ent)) - { - bits = 0; - - // prevent delta compression against this frame (unless actually sent, which will restore this later) - nextfullupdate = client->nextfullupdate[e]; - client->nextfullupdate[e] = -1; - - if (ent != clent) // LordHavoc: always send player - { - if ((val = GETEDICTFIELDVALUE(ent, eval_viewmodelforclient)) && val->edict) - { - if (val->edict != clentnum) - { - // don't show to anyone else - continue; - } - else - bits |= U_VIEWMODEL; // show relative to the view - } - else - { - // LordHavoc: never draw something told not to display to this client - if ((val = GETEDICTFIELDVALUE(ent, eval_nodrawtoclient)) && val->edict == clentnum) - continue; - if ((val = GETEDICTFIELDVALUE(ent, eval_drawonlytoclient)) && val->edict && val->edict != clentnum) - continue; - } - } - - glowsize = 0; - - if ((val = GETEDICTFIELDVALUE(ent, eval_glow_size))) - glowsize = (int) val->_float >> 2; - if (glowsize > 255) glowsize = 255; - if (glowsize < 0) glowsize = 0; - - if ((val = GETEDICTFIELDVALUE(ent, eval_glow_trail))) - if (val->_float != 0) - bits |= U_GLOWTRAIL; - - if (ent->v->modelindex >= 0 && ent->v->modelindex < MAX_MODELS && *PR_GetString(ent->v->model)) - { - model = sv.models[(int)ent->v->modelindex]; - Mod_CheckLoaded(model); - } - else - { - model = NULL; - if (ent != clent) // LordHavoc: always send player - if (glowsize == 0 && (bits & U_GLOWTRAIL) == 0) // no effects - continue; - } - - VectorCopy(ent->v->angles, angles); - VectorCopy(ent->v->origin, origin); - - // ent has survived every check so far, check if it is visible - if (ent != clent && ((bits & U_VIEWMODEL) == 0)) - { - // use the predicted origin - entmins[0] = origin[0] - 1.0f; - entmins[1] = origin[1] - 1.0f; - entmins[2] = origin[2] - 1.0f; - entmaxs[0] = origin[0] + 1.0f; - entmaxs[1] = origin[1] + 1.0f; - entmaxs[2] = origin[2] + 1.0f; - // using the model's bounding box to ensure things are visible regardless of their physics box - if (model) - { - if (ent->v->angles[0] || ent->v->angles[2]) // pitch and roll - { - VectorAdd(entmins, model->rotatedmins, entmins); - VectorAdd(entmaxs, model->rotatedmaxs, entmaxs); - } - else if (ent->v->angles[1]) - { - VectorAdd(entmins, model->yawmins, entmins); - VectorAdd(entmaxs, model->yawmaxs, entmaxs); - } - else - { - VectorAdd(entmins, model->normalmins, entmins); - VectorAdd(entmaxs, model->normalmaxs, entmaxs); - } - } - - totalentities++; - - // if not touching a visible leaf - if (sv_cullentities_pvs.integer && fatbytes && sv.worldmodel && sv.worldmodel->brush.BoxTouchingPVS && !sv.worldmodel->brush.BoxTouchingPVS(sv.worldmodel, sv_writeentitiestoclient_pvs, entmins, entmaxs)) - { - culled_pvs++; - continue; - } - - // don't try to cull embedded brush models with this, they're sometimes huge (spanning several rooms) - if (sv_cullentities_trace.integer && (model == NULL || model->name[0] != '*')) - { - // LordHavoc: test random offsets, to maximize chance of detection - testorigin[0] = lhrandom(entmins[0], entmaxs[0]); - testorigin[1] = lhrandom(entmins[1], entmaxs[1]); - testorigin[2] = lhrandom(entmins[2], entmaxs[2]); - - sv.worldmodel->TraceBox(sv.worldmodel, 0, &trace, testeye, testeye, testorigin, testorigin, SUPERCONTENTS_SOLID); - if (trace.fraction == 1) - client->visibletime[e] = realtime + 1; - else - { - //test nearest point on bbox - testorigin[0] = bound(entmins[0], testeye[0], entmaxs[0]); - testorigin[1] = bound(entmins[1], testeye[1], entmaxs[1]); - testorigin[2] = bound(entmins[2], testeye[2], entmaxs[2]); - - sv.worldmodel->TraceBox(sv.worldmodel, 0, &trace, testeye, testeye, testorigin, testorigin, SUPERCONTENTS_SOLID); - if (trace.fraction == 1) - client->visibletime[e] = realtime + 1; - else if (realtime > client->visibletime[e]) - { - culled_trace++; - continue; - } - } - } - visibleentities++; - } - - alphaf = 255.0f; - scale = 16; - glowcolor = 254; - effects = ent->v->effects; - - if ((val = GETEDICTFIELDVALUE(ent, eval_alpha))) - if (val->_float != 0) - alphaf = val->_float * 255.0f; - - // HalfLife support - if ((val = GETEDICTFIELDVALUE(ent, eval_renderamt))) - if (val->_float != 0) - alphaf = val->_float; - - if (alphaf == 0.0f) - alphaf = 255.0f; - alpha = bound(0, alphaf, 255); - - if ((val = GETEDICTFIELDVALUE(ent, eval_scale))) - if ((scale = (int) (val->_float * 16.0)) == 0) scale = 16; - if (scale < 0) scale = 0; - if (scale > 255) scale = 255; - - if ((val = GETEDICTFIELDVALUE(ent, eval_glow_color))) - if (val->_float != 0) - glowcolor = (int) val->_float; - - if ((val = GETEDICTFIELDVALUE(ent, eval_fullbright))) - if (val->_float != 0) - effects |= EF_FULLBRIGHT; - - if (ent != clent) - { - if (glowsize == 0 && (bits & U_GLOWTRAIL) == 0) // no effects - { - if (model) // model - { - // don't send if flagged for NODRAW and there are no effects - if (model->flags == 0 && ((effects & EF_NODRAW) || scale <= 0 || alpha <= 0)) - continue; - } - else // no model and no effects - continue; - } - } - - if (msg->maxsize - msg->cursize < 32) // LordHavoc: increased check from 16 to 32 - { - Con_Print("packet overflow\n"); - // mark the rest of the entities so they can't be delta compressed against this frame - for (;e < sv.num_edicts;e++) - { - client->nextfullupdate[e] = -1; - client->visibletime[e] = -1; - } - return; - } - - if ((val = GETEDICTFIELDVALUE(ent, eval_exteriormodeltoclient)) && val->edict == clentnum) - bits = bits | U_EXTERIORMODEL; - -// send an update - baseline = &ent->e->baseline; - - if (((int)ent->v->effects & EF_DELTA) && sv_deltacompress.integer) - { - // every half second a full update is forced - if (realtime < client->nextfullupdate[e]) - { - bits |= U_DELTA; - baseline = &ent->e->deltabaseline; - } - else - nextfullupdate = realtime + 0.5f; - } - else - nextfullupdate = realtime + 0.5f; - - // restore nextfullupdate since this is being sent for real - client->nextfullupdate[e] = nextfullupdate; - - if (e >= 256) - bits |= U_LONGENTITY; - - if (ent->v->movetype == MOVETYPE_STEP) - bits |= U_STEP; - - // LordHavoc: old stuff, but rewritten to have more exact tolerances - if (origin[0] != baseline->origin[0]) bits |= U_ORIGIN1; - if (origin[1] != baseline->origin[1]) bits |= U_ORIGIN2; - if (origin[2] != baseline->origin[2]) bits |= U_ORIGIN3; - if (((int)(angles[0]*(256.0/360.0)) & 255) != ((int)(baseline->angles[0]*(256.0/360.0)) & 255)) bits |= U_ANGLE1; - if (((int)(angles[1]*(256.0/360.0)) & 255) != ((int)(baseline->angles[1]*(256.0/360.0)) & 255)) bits |= U_ANGLE2; - if (((int)(angles[2]*(256.0/360.0)) & 255) != ((int)(baseline->angles[2]*(256.0/360.0)) & 255)) bits |= U_ANGLE3; - if (baseline->colormap != (qbyte) ent->v->colormap) bits |= U_COLORMAP; - if (baseline->skin != (qbyte) ent->v->skin) bits |= U_SKIN; - if ((baseline->frame & 0x00FF) != ((int) ent->v->frame & 0x00FF)) bits |= U_FRAME; - if ((baseline->effects & 0x00FF) != ((int) ent->v->effects & 0x00FF)) bits |= U_EFFECTS; - if ((baseline->modelindex & 0x00FF) != ((int) ent->v->modelindex & 0x00FF)) bits |= U_MODEL; - - // LordHavoc: new stuff - if (baseline->alpha != alpha) bits |= U_ALPHA; - if (baseline->scale != scale) bits |= U_SCALE; - if (((int) baseline->effects & 0xFF00) != ((int) ent->v->effects & 0xFF00)) bits |= U_EFFECTS2; - if (baseline->glowsize != glowsize) bits |= U_GLOWSIZE; - if (baseline->glowcolor != glowcolor) bits |= U_GLOWCOLOR; - if (((int) baseline->frame & 0xFF00) != ((int) ent->v->frame & 0xFF00)) bits |= U_FRAME2; - if (((int) baseline->frame & 0xFF00) != ((int) ent->v->modelindex & 0xFF00)) bits |= U_MODEL2; - - // update delta baseline - VectorCopy(ent->v->origin, ent->e->deltabaseline.origin); - VectorCopy(ent->v->angles, ent->e->deltabaseline.angles); - ent->e->deltabaseline.colormap = ent->v->colormap; - ent->e->deltabaseline.skin = ent->v->skin; - ent->e->deltabaseline.frame = ent->v->frame; - ent->e->deltabaseline.effects = ent->v->effects; - ent->e->deltabaseline.modelindex = ent->v->modelindex; - ent->e->deltabaseline.alpha = alpha; - ent->e->deltabaseline.scale = scale; - ent->e->deltabaseline.glowsize = glowsize; - ent->e->deltabaseline.glowcolor = glowcolor; - - // write the message - if (bits >= 16777216) - bits |= U_EXTEND2; - if (bits >= 65536) - bits |= U_EXTEND1; - if (bits >= 256) - bits |= U_MOREBITS; - bits |= U_SIGNAL; - - MSG_WriteByte (msg, bits); - if (bits & U_MOREBITS) - MSG_WriteByte (msg, bits>>8); - // LordHavoc: extend bytes have to be written here due to delta compression - if (bits & U_EXTEND1) - MSG_WriteByte (msg, bits>>16); - if (bits & U_EXTEND2) - MSG_WriteByte (msg, bits>>24); - - // LordHavoc: old stuff - if (bits & U_LONGENTITY) - MSG_WriteShort (msg,e); - else - MSG_WriteByte (msg,e); - if (bits & U_MODEL) MSG_WriteByte(msg, ent->v->modelindex); - if (bits & U_FRAME) MSG_WriteByte(msg, ent->v->frame); - if (bits & U_COLORMAP) MSG_WriteByte(msg, ent->v->colormap); - if (bits & U_SKIN) MSG_WriteByte(msg, ent->v->skin); - if (bits & U_EFFECTS) MSG_WriteByte(msg, ent->v->effects); - if (bits & U_ORIGIN1) MSG_WriteCoord(msg, origin[0], sv.protocol); - if (bits & U_ANGLE1) MSG_WriteAngle(msg, angles[0], sv.protocol); - if (bits & U_ORIGIN2) MSG_WriteCoord(msg, origin[1], sv.protocol); - if (bits & U_ANGLE2) MSG_WriteAngle(msg, angles[1], sv.protocol); - if (bits & U_ORIGIN3) MSG_WriteCoord(msg, origin[2], sv.protocol); - if (bits & U_ANGLE3) MSG_WriteAngle(msg, angles[2], sv.protocol); - - // LordHavoc: new stuff - if (bits & U_ALPHA) MSG_WriteByte(msg, alpha); - if (bits & U_SCALE) MSG_WriteByte(msg, scale); - if (bits & U_EFFECTS2) MSG_WriteByte(msg, (int)ent->v->effects >> 8); - if (bits & U_GLOWSIZE) MSG_WriteByte(msg, glowsize); - if (bits & U_GLOWCOLOR) MSG_WriteByte(msg, glowcolor); - if (bits & U_FRAME2) MSG_WriteByte(msg, (int)ent->v->frame >> 8); - if (bits & U_MODEL2) MSG_WriteByte(msg, (int)ent->v->modelindex >> 8); - } - - if (sv_cullentities_stats.integer) - Con_Printf("client \"%s\" entities: %d total, %d visible, %d culled by: %d pvs %d trace\n", client->name, totalentities, visibleentities, culled_pvs + culled_trace, culled_pvs, culled_trace); -} -*/ - static int numsendentities; static entity_state_t sendentities[MAX_EDICTS]; static entity_state_t *sendentitiesindex[MAX_EDICTS]; @@ -1053,158 +719,6 @@ void SV_MarkWriteEntityStateToClient(entity_state_t *s) entity_state_t sendstates[MAX_EDICTS]; -/* -// entityframe4 protocol -void SV_WriteEntitiesToClient_EF4(client_t *client, edict_t *clent, sizebuf_t *msg) -{ - int i; - vec3_t testorigin; - entity_state_t *s; - entityframe4_database_t *d; - int n, startnumber; - entity_state_t *e, inactiveentitystate; - sizebuf_t buf; - qbyte data[128]; - - // if there isn't enough space to accomplish anything, skip it - if (msg->cursize + 24 > msg->maxsize) - return; - - // prepare the buffer - memset(&buf, 0, sizeof(buf)); - buf.data = data; - buf.maxsize = sizeof(data); - - d = client->entitydatabase4; - - for (i = 0;i < MAX_ENTITY_HISTORY;i++) - if (!d->commit[i].numentities) - break; - // if commit buffer full, just don't bother writing an update this frame - if (i == MAX_ENTITY_HISTORY) - return; - d->currentcommit = d->commit + i; - - // this state's number gets played around with later - inactiveentitystate = defaultstate; - - sv_writeentitiestoclient_client = client; - - sv_writeentitiestoclient_culled_pvs = 0; - sv_writeentitiestoclient_culled_trace = 0; - sv_writeentitiestoclient_visibleentities = 0; - sv_writeentitiestoclient_totalentities = 0; - - Mod_CheckLoaded(sv.worldmodel); - -// find the client's PVS - // the real place being tested from - VectorAdd(clent->v->origin, clent->v->view_ofs, sv_writeentitiestoclient_testeye); - sv_writeentitiestoclient_pvsbytes = 0; - if (sv.worldmodel && sv.worldmodel->brush.FatPVS) - sv_writeentitiestoclient_pvsbytes = sv.worldmodel->brush.FatPVS(sv.worldmodel, sv_writeentitiestoclient_testeye, 8, sv_writeentitiestoclient_pvs, sizeof(sv_writeentitiestoclient_pvs)); - - sv_writeentitiestoclient_clentnum = EDICT_TO_PROG(clent); // LordHavoc: for comparison purposes - - sententitiesmark++; - - // the place being reported (to consider the fact the client still - // applies the view_ofs[2], so we have to only send the fractional part - // of view_ofs[2], undoing what the client will redo) - VectorCopy(sv_writeentitiestoclient_testeye, testorigin); - i = (int) clent->v->view_ofs[2] & 255; - if (i >= 128) - i -= 256; - testorigin[2] -= (float) i; - - for (i = 0;i < numsendentities;i++) - SV_MarkWriteEntityStateToClient(sendentities + i); - - d->currentcommit->numentities = 0; - d->currentcommit->framenum = ++d->latestframenumber; - MSG_WriteByte(msg, svc_entities); - MSG_WriteLong(msg, d->referenceframenum); - MSG_WriteLong(msg, d->currentcommit->framenum); - if (developer_networkentities.integer >= 1) - { - Con_Printf("send svc_entities num:%i ref:%i (database: ref:%i commits:", d->currentcommit->framenum, d->referenceframenum, d->referenceframenum); - for (i = 0;i < MAX_ENTITY_HISTORY;i++) - if (d->commit[i].numentities) - Con_Printf(" %i", d->commit[i].framenum); - Con_Print(")\n"); - } - if (d->currententitynumber >= sv.max_edicts) - startnumber = 1; - else - startnumber = bound(1, d->currententitynumber, sv.max_edicts - 1); - MSG_WriteShort(msg, startnumber); - // reset currententitynumber so if the loop does not break it we will - // start at beginning next frame (if it does break, it will set it) - d->currententitynumber = 1; - for (i = 0, n = startnumber;n < sv.max_edicts;n++) - { - // find the old state to delta from - e = EntityFrame4_GetReferenceEntity(d, n); - // prepare the buffer - SZ_Clear(&buf); - // make the message - if (sententities[n] == sententitiesmark) - { - // entity exists, build an update (if empty there is no change) - // find the state in the list - for (;i < numsendentities && sendentities[i].number < n;i++); - s = sendentities + i; - if (s->number != n) - Sys_Error("SV_WriteEntitiesToClient: s->number != n\n"); - // build the update - if (s->exteriormodelforclient && s->exteriormodelforclient == sv_writeentitiestoclient_clentnum) - { - s->flags |= RENDER_EXTERIORMODEL; - EntityState_WriteUpdate(s, &buf, e); - s->flags &= ~RENDER_EXTERIORMODEL; - } - else - EntityState_WriteUpdate(s, &buf, e); - } - else - { - s = &inactiveentitystate; - s->number = n; - if (e->active) - { - // entity used to exist but doesn't anymore, send remove - MSG_WriteShort(&buf, n | 0x8000); - } - } - // if the commit is full, we're done this frame - if (msg->cursize + buf.cursize > msg->maxsize - 4) - { - // next frame we will continue where we left off - break; - } - // add the entity to the commit - EntityFrame4_AddCommitEntity(d, s); - // if the message is empty, skip out now - if (buf.cursize) - { - // write the message to the packet - SZ_Write(msg, buf.data, buf.cursize); - } - } - d->currententitynumber = n; - - // remove world message (invalid, and thus a good terminator) - MSG_WriteShort(msg, 0x8000); - // write the number of the end entity - MSG_WriteShort(msg, d->currententitynumber); - // just to be sure - d->currentcommit = NULL; - - if (sv_cullentities_stats.integer) - Con_Printf("client \"%s\" entities: %d total, %d visible, %d culled by: %d pvs %d trace\n", client->name, sv_writeentitiestoclient_totalentities, sv_writeentitiestoclient_visibleentities, sv_writeentitiestoclient_culled_pvs + sv_writeentitiestoclient_culled_trace, sv_writeentitiestoclient_culled_pvs, sv_writeentitiestoclient_culled_trace); -} -*/ - void SV_WriteEntitiesToClient(client_t *client, edict_t *clent, sizebuf_t *msg) { int i, numsendstates; -- 2.39.2