X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=world.c;h=b178bad212bed4025cc0b2ffd4d02a02c7703a89;hb=ac5533c5e5a5ad2e2edfae17c596faf29692aa06;hp=07a614d66c05d39c308ab0a7bbfe01ec06a5b235;hpb=8a77a745ddb6d1a6e48eeab798e3e0d9338f09c5;p=xonotic%2Fdarkplaces.git diff --git a/world.c b/world.c index 07a614d6..b178bad2 100644 --- a/world.c +++ b/world.c @@ -29,11 +29,8 @@ line of sight checks trace->inopen and trace->inwater, but bullets don't */ -cvar_t sv_areagrid_mingridsize = {CVAR_NOTIFY, "sv_areagrid_mingridsize", "64", "minimum areagrid cell size, smaller values work better for lots of small objects, higher values for large objects"}; - void World_Init(void) { - Cvar_RegisterVariable(&sv_areagrid_mingridsize); Collision_Init(); } @@ -130,7 +127,7 @@ void World_UnlinkEdict(prvm_edict_t *ent) } } -int World_EntitiesInBox(world_t *world, vec3_t mins, vec3_t maxs, int maxlist, prvm_edict_t **list) +int World_EntitiesInBox(world_t *world, const vec3_t mins, const vec3_t maxs, int maxlist, prvm_edict_t **list) { int numlist; link_t *grid; @@ -218,23 +215,23 @@ void World_LinkEdict_AreaGrid(world_t *world, prvm_edict_t *ent) return; } - igridmins[0] = (int) floor((ent->priv.server->areamins[0] + sv.world.areagrid_bias[0]) * sv.world.areagrid_scale[0]); - igridmins[1] = (int) floor((ent->priv.server->areamins[1] + sv.world.areagrid_bias[1]) * sv.world.areagrid_scale[1]); - //igridmins[2] = (int) floor((ent->priv.server->areamins[2] + sv.world.areagrid_bias[2]) * sv.world.areagrid_scale[2]); - igridmaxs[0] = (int) floor((ent->priv.server->areamaxs[0] + sv.world.areagrid_bias[0]) * sv.world.areagrid_scale[0]) + 1; - igridmaxs[1] = (int) floor((ent->priv.server->areamaxs[1] + sv.world.areagrid_bias[1]) * sv.world.areagrid_scale[1]) + 1; - //igridmaxs[2] = (int) floor((ent->priv.server->areamaxs[2] + sv.world.areagrid_bias[2]) * sv.world.areagrid_scale[2]) + 1; + igridmins[0] = (int) floor((ent->priv.server->areamins[0] + world->areagrid_bias[0]) * world->areagrid_scale[0]); + igridmins[1] = (int) floor((ent->priv.server->areamins[1] + world->areagrid_bias[1]) * world->areagrid_scale[1]); + //igridmins[2] = (int) floor((ent->priv.server->areamins[2] + world->areagrid_bias[2]) * world->areagrid_scale[2]); + igridmaxs[0] = (int) floor((ent->priv.server->areamaxs[0] + world->areagrid_bias[0]) * world->areagrid_scale[0]) + 1; + igridmaxs[1] = (int) floor((ent->priv.server->areamaxs[1] + world->areagrid_bias[1]) * world->areagrid_scale[1]) + 1; + //igridmaxs[2] = (int) floor((ent->priv.server->areamaxs[2] + world->areagrid_bias[2]) * world->areagrid_scale[2]) + 1; if (igridmins[0] < 0 || igridmaxs[0] > AREA_GRID || igridmins[1] < 0 || igridmaxs[1] > AREA_GRID || ((igridmaxs[0] - igridmins[0]) * (igridmaxs[1] - igridmins[1])) > ENTITYGRIDAREAS) { // wow, something outside the grid, store it as such - World_InsertLinkBefore (&ent->priv.server->areagrid[0], &sv.world.areagrid_outside, entitynumber); + World_InsertLinkBefore (&ent->priv.server->areagrid[0], &world->areagrid_outside, entitynumber); return; } gridnum = 0; for (igrid[1] = igridmins[1];igrid[1] < igridmaxs[1];igrid[1]++) { - grid = sv.world.areagrid + igrid[1] * AREA_GRID + igridmins[0]; + grid = world->areagrid + igrid[1] * AREA_GRID + igridmins[0]; for (igrid[0] = igridmins[0];igrid[0] < igridmaxs[0];igrid[0]++, grid++, gridnum++) World_InsertLinkBefore (&ent->priv.server->areagrid[gridnum], grid, entitynumber); }