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:
Joseph Carter 2000-04-20 02:55:02 +00:00
parent 8cef444f8d
commit 8a65ae8ca9
3 changed files with 26 additions and 19 deletions

View file

@ -531,6 +531,8 @@ extern cvar_t *fs_basepath;
void void
Host_Init (quakeparms_t *parms) Host_Init (quakeparms_t *parms)
{ {
QFile *globalcfg;
COM_InitArgv (parms->argc, parms->argv); COM_InitArgv (parms->argc, parms->argv);
#if 0 #if 0
@ -556,6 +558,11 @@ Host_Init (quakeparms_t *parms)
SCR_InitCvars (); SCR_InitCvars ();
VID_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 // FIXME: stuff only +set here, shouldn't stuff all commands --KB
Cmd_StuffCmds_f (); Cmd_StuffCmds_f ();
Cbuf_Execute_Sets (); Cbuf_Execute_Sets ();
@ -581,6 +588,12 @@ Host_Init (quakeparms_t *parms)
Con_Init (); Con_Init ();
M_Init (); M_Init ();
if (globalcfg != NULL)
{
Cbuf_InsertText ((char *)globalcfg);
Qclose (globalcfg);
}
#ifdef UQUAKE #ifdef UQUAKE
PR_Init (); PR_Init ();
#endif #endif

View file

@ -395,25 +395,21 @@ void SV_LinkEdict (edict_t *ent, qboolean touch_triggers)
return; return;
// set the abs box // 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 #ifdef QUAKE2
if (ent->v.solid == SOLID_BSP && if (ent->v.solid == SOLID_BSP &&
(ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) ) (ent->v.angles[0] || ent->v.angles[1] || ent->v.angles[2]) )
{ // expand for rotation {
// expand for rotation
float max, v; float max, v;
int i; int i;
max = 0; max = 0;
for (i=0 ; i<3 ; i++) for (i=0 ; i<3 ; i++)
{ {
v =fabs( ent->v.mins[i]); v = fabs (ent->v.mins[i]);
if (v > max) if (v > max)
max = v; max = v;
v =fabs( ent->v.maxs[i]); v =fabs (ent->v.maxs[i]);
if (v > max) if (v > max)
max = v; 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.mins, ent->v.absmin);
VectorAdd (ent->v.origin, ent->v.maxs, ent->v.absmax); 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 // to make items easier to pick up and allow them to be grabbed off

View file

@ -623,18 +623,16 @@ VectorCopy (ent->v.origin, oldorg);
PR_ExecuteProgram (ent->v.think); PR_ExecuteProgram (ent->v.think);
if (ent->free) if (ent->free)
return; return;
VectorSubtract (ent->v.origin, oldorg, 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);
}
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) switch ( (int)ent->v.movetype)
{ {
case MOVETYPE_WALK:
case MOVETYPE_PUSH: case MOVETYPE_PUSH:
SV_Physics_Pusher (ent); SV_Physics_Pusher (ent);
break; break;