|| ent->v->absmin[2] > touch->v->absmax[2]
|| ent->v->absmax[2] < touch->v->absmin[2])
continue;
+ // LordHavoc: id bug that won't be fixed: triggers do not ignore their owner like solid objects do
if (touch == ent)
continue;
if (!touch->v->touch || touch->v->solid != SOLID_TRIGGER)
void SV_LinkEdict_AreaGrid(edict_t *ent)
{
areagrid_t *grid;
- int igrid[3], igridmins[3], igridmaxs[3], gridnum;
+ int igrid[3], igridmins[3], igridmaxs[3], gridnum, entitynumber = NUM_FOR_EDICT(ent);
+
+ if (entitynumber <= 0 || entitynumber >= sv.max_edicts || EDICT_NUM(entitynumber) != ent)
+ Host_Error("SV_LinkEdict_AreaGrid: invalid edict %p (sv.edicts is %p, edict compared to sv.edicts is %i)\n", ent, sv.edicts, entitynumber);
igridmins[0] = (int) ((ent->v->absmin[0] + sv_areagrid_bias[0]) * sv_areagrid_scale[0]);
igridmins[1] = (int) ((ent->v->absmin[1] + sv_areagrid_bias[1]) * sv_areagrid_scale[1]);
model = sv.models[(int) ent->v->modelindex];
if (model != NULL)
{
+ Mod_CheckLoaded(model);
if (model->type != mod_brush)
Host_Error("SOLID_BSP with non-BSP model\n");
{
int i;
trace_t trace;
- model_t *model;
-
- i = ent->v->modelindex;
- if ((unsigned int) i >= MAX_MODELS)
- Host_Error("SV_ClipMoveToEntity: invalid modelindex\n");
- model = sv.models[i];
- if (i != 0 && model == NULL)
- Host_Error("SV_ClipMoveToEntity: invalid modelindex\n");
+ model_t *model = NULL;
if ((int) ent->v->solid == SOLID_BSP)
{
+ i = ent->v->modelindex;
+ if ((unsigned int) i >= MAX_MODELS)
+ Host_Error("SV_ClipMoveToEntity: invalid modelindex\n");
+ model = sv.models[i];
+ if (i != 0 && model == NULL)
+ Host_Error("SV_ClipMoveToEntity: invalid modelindex\n");
+
Mod_CheckLoaded(model);
if (model->type != mod_brush)
{