Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions src/game/client/c_baseplayer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -645,12 +645,6 @@ void C_BasePlayer::SetObserverMode ( int iNewMode )
{
// On a change of viewing mode or target, we may want to reset both head and torso to point at the new target.
g_ClientVirtualReality.AlignTorsoAndViewToWeapon();
#ifdef NEO
if (iNewMode != OBS_MODE_DEATHCAM)
{
vieweffects->ClearAllFades();
}
#endif
}
}
}
Expand Down
22 changes: 18 additions & 4 deletions src/game/client/neo/c_neo_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1263,7 +1263,7 @@ void C_NEO_Player::PostThink(void)
SetObserverMode(OBS_MODE_DEATHCAM);
// Fade out 8s to blackout + 2s full blackout
ScreenFade_t sfade{
.duration = static_cast<unsigned short>(static_cast<float>(1<<SCREENFADE_FRACBITS) * 8.0f),
.duration = static_cast<unsigned short>(static_cast<float>(1<<SCREENFADE_FRACBITS) * (DEATH_ANIMATION_TIME - 2.0f)),
.holdTime = static_cast<unsigned short>(static_cast<float>(1<<SCREENFADE_FRACBITS) * 2.0f),
.fadeFlags = FFADE_OUT|FFADE_PURGE,
.r = 0,
Expand All @@ -1283,10 +1283,10 @@ void C_NEO_Player::PostThink(void)
}
}

if (IsLocalPlayer() && GetObserverMode() == OBS_MODE_DEATHCAM && gpGlobals->curtime >= (GetDeathTime() + 10.0f))
auto observerMode = GetObserverMode();
if (IsLocalPlayer() && observerMode == OBS_MODE_DEATHCAM && gpGlobals->curtime >= (GetDeathTime() + DEATH_ANIMATION_TIME))
{
// Deathcam -> None so you view your own body for a bit before proper spec
m_iObserverMode = OBS_MODE_NONE;
SetObserverMode(OBS_MODE_IN_EYE);
g_ClientVirtualReality.AlignTorsoAndViewToWeapon();

// Fade in 2s from blackout
Expand All @@ -1301,6 +1301,20 @@ void C_NEO_Player::PostThink(void)
};
vieweffects->Fade(sfade);
}

if (observerMode == OBS_MODE_CHASE || observerMode == OBS_MODE_IN_EYE)
{
auto target = GetObserverTarget();
if (!IsValidObserverTarget(target))
{
auto nextTarget = FindNextObserverTarget(false);
if (nextTarget && nextTarget != target)
{
SetObserverTarget(nextTarget);
}
}
}

return;
}
else
Expand Down
20 changes: 5 additions & 15 deletions src/game/server/neo/neo_player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1401,21 +1401,13 @@ void CNEO_Player::PostThink(void)
}

auto observerMode = GetObserverMode();
if (observerMode == OBS_MODE_CHASE || observerMode == OBS_MODE_IN_EYE)
{
auto target = GetObserverTarget();
if (!IsValidObserverTarget(target))
{
auto nextTarget = FindNextObserverTarget(false);
if (nextTarget && nextTarget != target)
{
SetObserverTarget(nextTarget);
}
}
if ((observerMode == OBS_MODE_DEATHCAM || observerMode == OBS_MODE_NONE) && gpGlobals->curtime >= (GetDeathTime() + DEATH_ANIMATION_TIME))
{
SetObserverMode(OBS_MODE_IN_EYE);
}

if ((observerMode == OBS_MODE_DEATHCAM || observerMode == OBS_MODE_NONE) && gpGlobals->curtime >= (GetDeathTime() + DEATH_ANIMATION_TIME))
{ // We switch observer mode to none to view own body in third person so assume should still be changing observer targets
if (observerMode == OBS_MODE_CHASE || observerMode == OBS_MODE_IN_EYE)
{
auto target = GetObserverTarget();
if (!IsValidObserverTarget(target))
{
Expand All @@ -1425,10 +1417,8 @@ void CNEO_Player::PostThink(void)
SetObserverTarget(nextTarget);
}
}
SetObserverMode(OBS_MODE_IN_EYE);
}


return;
}
else
Expand Down
2 changes: 1 addition & 1 deletion src/game/shared/baseplayer_shared.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
#define UPDATE_PLAYER_RADAR 2

#ifdef NEO
#define DEATH_ANIMATION_TIME 12.0f
#define DEATH_ANIMATION_TIME 10.0f
#else
#define DEATH_ANIMATION_TIME 3.0f
#endif
Expand Down