summaryrefslogtreecommitdiff
path: root/src/game/g_buildable.c
diff options
context:
space:
mode:
authorM. Kristall <mkpdev@gmail.com>2009-10-03 11:46:59 +0000
committerTim Angus <tim@ngus.net>2013-01-03 00:15:20 +0000
commit13abb1e0d756f560eaf8c3dc8174fec01c263b9b (patch)
treea4dec2862d926b0aa1ba00387ff7ac5f8a2b3f72 /src/game/g_buildable.c
parente18c96ca9043acf36d77ae7fc40d6161639c708d (diff)
* (bug 3629) OB1/buffer overflow (Azrael07)
* (bug 3290) Revert r966 and use a less hacky fix
Diffstat (limited to 'src/game/g_buildable.c')
-rw-r--r--src/game/g_buildable.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/game/g_buildable.c b/src/game/g_buildable.c
index c4b1f120..46630229 100644
--- a/src/game/g_buildable.c
+++ b/src/game/g_buildable.c
@@ -1224,7 +1224,11 @@ qboolean AHovel_Blocked( gentity_t *hovel, gentity_t *player, qboolean provideEx
//compute a place up in the air to start the real trace
trap_Trace( &tr, origin, mins, maxs, start, player->s.number, MASK_PLAYERSOLID );
- VectorMA( origin, HOVEL_TRACE_DEPTH, normal, start );
+
+ if( tr.startsolid )
+ return qtrue;
+
+ VectorMA( origin, ( HOVEL_TRACE_DEPTH * tr.fraction ) - 1.0f, normal, start );
VectorMA( origin, -HOVEL_TRACE_DEPTH, normal, end );
trap_Trace( &tr, start, mins, maxs, end, player->s.number, MASK_PLAYERSOLID );