SOLID_LADDERQ1 -> SOLID_CORPSE. if you needed ladder, use 20 instead.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@529 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
29b9f70e42
commit
5c566ea7e2
3 changed files with 18 additions and 4 deletions
|
@ -655,7 +655,7 @@ typedef struct
|
|||
#define SOLID_SLIDEBOX 3 // touch on edge, but not an onground
|
||||
#define SOLID_BSP 4 // bsp clip, touch on edge, block
|
||||
#define SOLID_PHASEH2 5
|
||||
#define SOLID_LADDERQ1 5
|
||||
#define SOLID_CORPSE 5
|
||||
#define SOLID_LADDER 20 //dmw. touch on edge, not blocking. Touching players have different physics. Otherwise a SOLID_TRIGGER
|
||||
|
||||
// edict->deadflag values
|
||||
|
|
|
@ -3377,7 +3377,7 @@ vec3_t offset;
|
|||
|
||||
if (check->v.owner == pl)
|
||||
continue; // player's own missile
|
||||
if ((progstype != PROG_H2 && check->v.solid == SOLID_LADDERQ1) || check->v.solid == SOLID_LADDER)
|
||||
if (check->v.solid == SOLID_LADDER)
|
||||
{
|
||||
for (i=0 ; i<3 ; i++)
|
||||
if (check->v.absmin[i] > pmove_maxs[i]
|
||||
|
|
|
@ -631,7 +631,7 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
|
|||
|
||||
// link it in
|
||||
|
||||
if (ent->v.solid == SOLID_TRIGGER || (progstype != PROG_H2 && ent->v.solid == SOLID_LADDERQ1) || ent->v.solid == SOLID_LADDER)
|
||||
if (ent->v.solid == SOLID_TRIGGER || ent->v.solid == SOLID_LADDER)
|
||||
InsertLinkBefore (&ent->area, &node->trigger_edicts);
|
||||
else
|
||||
InsertLinkBefore (&ent->area, &node->solid_edicts);
|
||||
|
@ -1455,6 +1455,13 @@ void SV_ClipMoveToEntities ( moveclip_t *clip )
|
|||
if (clip->type & MOVE_NOMONSTERS && touch->v.solid != SOLID_BSP)
|
||||
continue;
|
||||
|
||||
// don't clip corpse against character
|
||||
if (clip->passedict->v.solid == SOLID_CORPSE && (touch->v.solid == SOLID_SLIDEBOX || touch->v.solid == SOLID_CORPSE))
|
||||
continue;
|
||||
// don't clip character against corpse
|
||||
if (clip->passedict->v.solid == SOLID_SLIDEBOX && touch->v.solid == SOLID_CORPSE)
|
||||
continue;
|
||||
|
||||
if (!((int)clip->passedict->v.dimension_hit & (int)touch->v.dimension_solid))
|
||||
continue;
|
||||
|
||||
|
@ -1586,12 +1593,19 @@ void SV_ClipToLinks ( areanode_t *node, moveclip_t *clip )
|
|||
continue;
|
||||
if (touch == clip->passedict)
|
||||
continue;
|
||||
if (touch->v.solid == SOLID_TRIGGER || (progstype != PROG_H2 && touch->v.solid == SOLID_LADDERQ1) || touch->v.solid == SOLID_LADDER)
|
||||
if (touch->v.solid == SOLID_TRIGGER || touch->v.solid == SOLID_LADDER)
|
||||
SV_Error ("Trigger in clipping list");
|
||||
|
||||
if (clip->type & MOVE_NOMONSTERS && touch->v.solid != SOLID_BSP)
|
||||
continue;
|
||||
|
||||
// don't clip corpse against character
|
||||
if (clip->passedict->v.solid == SOLID_CORPSE && (touch->v.solid == SOLID_SLIDEBOX || touch->v.solid == SOLID_CORPSE))
|
||||
continue;
|
||||
// don't clip character against corpse
|
||||
if (clip->passedict->v.solid == SOLID_SLIDEBOX && touch->v.solid == SOLID_CORPSE)
|
||||
continue;
|
||||
|
||||
if (clip->boxmins[0] > touch->v.absmax[0]
|
||||
|| clip->boxmins[1] > touch->v.absmax[1]
|
||||
|| clip->boxmins[2] > touch->v.absmax[2]
|
||||
|
|
Loading…
Reference in a new issue