I even hacked the ORIGINAL StartDeathCam() to look like this
void CBasePlayer::StartDeathCam( void )
{
edict_t *pSpot, *pNewSpot;
int iRand;
if ( pev->view_ofs == g_vecZero )
{
// don't accept subsequent attempts to StartDeathCam()
return;
}
pSpot = FIND_ENTITY_BY_CLASSNAME( NULL, "info_intermission");
if ( !FNullEnt( pSpot ) )
{
// at least one intermission spot in the world.
/* iRand = RANDOM_LONG( 0, 3 );
while ( iRand > 0 )
{
pNewSpot = FIND_ENTITY_BY_CLASSNAME( pSpot,
"info_intermission");
if ( pNewSpot )
{
pSpot = pNewSpot;
}
iRand--;
}
*/
CopyToBodyQue( pev );
UTIL_LogPrintf("Found \"info_intermission\" pSpot\n");
StartObserver( pSpot->v.origin, pSpot->v.v_angle );
}
/* else
{
// no intermission spot. Push them up in the air,
looking down at their corpse
TraceResult tr;
CopyToBodyQue( pev );
UTIL_TraceLine( pev->origin, pev->origin + Vector( 0, 0,
128 ), ignore_monsters, edict(), &tr );
StartObserver( tr.vecEndPos, UTIL_VecToAngles(
tr.vecEndPos - pev->origin ) );
return;
}
*/
}
And still no go, I see the log message and the player's dead view is
still that of the commented out else above!
-Ron
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of Yacketta,
Ronald
Sent: Tuesday, January 01, 2002 3:22 AM
To: [EMAIL PROTECTED]
Subject: [hlcoders] StartDeathCam()
Folks,
What's wrong with this picture?
//=========================================================
// StartDeathCam - find an intermission spot and send the
// player off into observer mode
//=========================================================
void CBasePlayer::StartDeathCam( void )
{
CBaseEntity *pSpot = NULL;
int iRand;
if ( pev->view_ofs == g_vecZero )
{
// don't accept subsequent attempts to StartDeathCam()
return;
}
pSpot = UTIL_FindEntityByClassname( pSpot, "info_intermission");
if ( !FNullEnt( pSpot ) )
{
// at least one intermission spot in the world.
/* iRand = RANDOM_LONG( 0, 3 );
while ( iRand > 0 )
{
pNewSpot = UTIL_FindEntityByClassname( pSpot,
"info_intermission");
if ( pNewSpot )
{
pSpot = pNewSpot;
}
iRand--;
}
*/
CopyToBodyQue( pev );
UTIL_LogPrintf("Found \"info_intermission\" pSpot\n");
StartObserver( pSpot->pev->origin, pSpot->pev->v_angle
);
}
/* else
{
// no intermission spot. Push them up in the air,
looking down at their corpse
TraceResult tr;
CopyToBodyQue( pev );
UTIL_TraceLine( pev->origin, pev->origin + Vector( 0, 0,
128 ), ignore_monsters, edict(), &tr );
StartObserver( tr.vecEndPos, UTIL_VecToAngles(
tr.vecEndPos - pev->origin ) );
return;
}
*/
}
The player is NEVER sent to the "info"intermission", Yes I have several
in the map... I even get the log entry "Found "info_intermission" pSpot"
in my log files.
The players view is that of the else above, but as you can see I have
that commented out..
Regards,
Ron
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives,
please visit: http://list.valvesoftware.com/mailman/listinfo/hlcoders
_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders