SOLID_BSP fix (I hope)

This commit is contained in:
Joseph Carter 2000-05-20 05:35:20 +00:00
parent b2a8652d33
commit f52c47388d
3 changed files with 9 additions and 5 deletions

View file

@ -3,8 +3,7 @@
Definitions for portable (?) unsigned int Definitions for portable (?) unsigned int
Copyright (C) 1999,2000 contributors of the QuakeForge project Copyright (C) 2000 Jeff Teunissen <d2deek@pmail.net>
Please see the file "AUTHORS" for a list of contributors
Author: Jeff Teunissen <d2deek@pmail.net> Author: Jeff Teunissen <d2deek@pmail.net>
Date: 01 Jan 2000 Date: 01 Jan 2000

View file

@ -472,6 +472,7 @@ qboolean SV_Push (edict_t *pusher, vec3_t move)
int num_moved; int num_moved;
edict_t *moved_edict[MAX_EDICTS]; edict_t *moved_edict[MAX_EDICTS];
vec3_t moved_from[MAX_EDICTS]; vec3_t moved_from[MAX_EDICTS];
float solid_save; // for Lord Havoc's SOLID_BSP fix --KB
for (i=0 ; i<3 ; i++) for (i=0 ; i<3 ; i++)
{ {
@ -498,9 +499,12 @@ qboolean SV_Push (edict_t *pusher, vec3_t move)
|| check->v.movetype == MOVETYPE_NOCLIP) || check->v.movetype == MOVETYPE_NOCLIP)
continue; continue;
// Don't assume SOLID_BSP ! --KB
solid_save = pusher->v.solid;
pusher->v.solid = SOLID_NOT; pusher->v.solid = SOLID_NOT;
block = SV_TestEntityPosition (check); block = SV_TestEntityPosition (check);
pusher->v.solid = SOLID_BSP; // pusher->v.solid = SOLID_BSP;
pusher->v.solid = solid_save;
if (block) if (block)
continue; continue;

View file

@ -146,14 +146,15 @@ hull_t *SV_HullForEntity (edict_t *ent, vec3_t mins, vec3_t maxs, vec3_t offset)
// decide which clipping hull to use, based on the size // decide which clipping hull to use, based on the size
if (ent->v.solid == SOLID_BSP) if (ent->v.solid == SOLID_BSP)
{ // explicit hulls in the BSP model {
// explicit hulls in the BSP model
if (ent->v.movetype != MOVETYPE_PUSH) if (ent->v.movetype != MOVETYPE_PUSH)
SV_Error ("SOLID_BSP without MOVETYPE_PUSH"); SV_Error ("SOLID_BSP without MOVETYPE_PUSH");
model = sv.models[ (int)ent->v.modelindex ]; model = sv.models[ (int)ent->v.modelindex ];
if (!model || model->type != mod_brush) if (!model || model->type != mod_brush)
SV_Error ("MOVETYPE_PUSH with a non bsp model"); SV_Error ("SOLID_BSP with a non bsp model");
VectorSubtract (maxs, mins, size); VectorSubtract (maxs, mins, size);
if (size[0] < 3) if (size[0] < 3)