mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-11-22 03:41:27 +00:00
If we treat MOVETYPE_WALK as MOVETYPE_PUSH the catapult in df42 seems to
behave itself a little more often. I can find no explanation why and it seems like it should possibly do nothing, but it SEEMS to help. Thanks for the suggestion Tim.
This commit is contained in:
parent
8cef444f8d
commit
8a65ae8ca9
3 changed files with 26 additions and 19 deletions
|
@ -531,6 +531,8 @@ extern cvar_t *fs_basepath;
|
|||
void
|
||||
Host_Init (quakeparms_t *parms)
|
||||
{
|
||||
QFile *globalcfg;
|
||||
|
||||
COM_InitArgv (parms->argc, parms->argv);
|
||||
|
||||
#if 0
|
||||
|
@ -556,6 +558,11 @@ Host_Init (quakeparms_t *parms)
|
|||
SCR_InitCvars ();
|
||||
VID_InitCvars ();
|
||||
|
||||
if ((globalcfg = Qopen ("/etc/quakeforge.conf", "r")) != NULL)
|
||||
{
|
||||
Cbuf_InsertText ((char *)globalcfg);
|
||||
}
|
||||
|
||||
// FIXME: stuff only +set here, shouldn't stuff all commands --KB
|
||||
Cmd_StuffCmds_f ();
|
||||
Cbuf_Execute_Sets ();
|
||||
|
@ -581,6 +588,12 @@ Host_Init (quakeparms_t *parms)
|
|||
Con_Init ();
|
||||
M_Init ();
|
||||
|
||||
if (globalcfg != NULL)
|
||||
{
|
||||
Cbuf_InsertText ((char *)globalcfg);
|
||||
Qclose (globalcfg);
|
||||
}
|
||||
|
||||
#ifdef UQUAKE
|
||||
PR_Init ();
|
||||
#endif
|
||||
|
|
|
@ -395,25 +395,21 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
|
|||
return;
|
||||
|
||||
// set the abs box
|
||||
#ifdef QUAKEWORLD
|
||||
VectorAdd (ent->v.origin, ent->v.mins, ent->v.absmin);
|
||||
VectorAdd (ent->v.origin, ent->v.maxs, ent->v.absmax);
|
||||
#else
|
||||
|
||||
#ifdef QUAKE2
|
||||
if (ent->v.solid == SOLID_BSP &&
|
||||
(ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) )
|
||||
{ // expand for rotation
|
||||
{
|
||||
// expand for rotation
|
||||
float max, v;
|
||||
int i;
|
||||
|
||||
max = 0;
|
||||
for (i=0 ; i<3 ; i++)
|
||||
{
|
||||
v =fabs( ent->v.mins[i]);
|
||||
v = fabs (ent->v.mins[i]);
|
||||
if (v > max)
|
||||
max = v;
|
||||
v =fabs( ent->v.maxs[i]);
|
||||
v =fabs (ent->v.maxs[i]);
|
||||
if (v > max)
|
||||
max = v;
|
||||
}
|
||||
|
@ -429,7 +425,6 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
|
|||
VectorAdd (ent->v.origin, ent->v.mins, ent->v.absmin);
|
||||
VectorAdd (ent->v.origin, ent->v.maxs, ent->v.absmax);
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// to make items easier to pick up and allow them to be grabbed off
|
||||
|
|
|
@ -623,18 +623,16 @@ VectorCopy (ent->v.origin, oldorg);
|
|||
PR_ExecuteProgram (ent->v.think);
|
||||
if (ent->free)
|
||||
return;
|
||||
VectorSubtract (ent->v.origin, oldorg, move);
|
||||
|
||||
l = Length(move);
|
||||
if (l > 1.0/64)
|
||||
{
|
||||
// Con_Printf ("**** snap: %f\n", Length (l));
|
||||
VectorCopy (oldorg, ent->v.origin);
|
||||
SV_Push (ent, move);
|
||||
}
|
||||
VectorSubtract (ent->v.origin, oldorg, move);
|
||||
|
||||
l = Length(move);
|
||||
if (l > 1.0/64)
|
||||
{
|
||||
//Con_Printf ("**** snap: %f\n", Length (l));
|
||||
VectorCopy (oldorg, ent->v.origin);
|
||||
SV_Push (ent, move);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -856,6 +854,7 @@ void SV_RunEntity (edict_t *ent)
|
|||
|
||||
switch ( (int)ent->v.movetype)
|
||||
{
|
||||
case MOVETYPE_WALK:
|
||||
case MOVETYPE_PUSH:
|
||||
SV_Physics_Pusher (ent);
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue