cl_dll/c_baseplayer.cpp
353637383940
#include "toolframework/itoolframework.h"
#include "toolframework_client.h"
#include "view_scene.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
35363738394041
#include "toolframework/itoolframework.h"
#include "toolframework_client.h"
#include "view_scene.h"
#include "baseviewport.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
51525354555657
extern ConVar mp_forcecamera; // in gamevars_shared.h
#define FLASHLIGHT_DISTANCE 1000
#define MAX_VGUI_INPUT_MODE_SPEED 30
#define MAX_VGUI_INPUT_MODE_SPEED_SQ (MAX_VGUI_INPUT_MODE_SPEED*MAX_VGUI_INPUT_MODE_SPEED)
52535455565758
extern ConVar mp_forcecamera; // in gamevars_shared.h
//#define FLASHLIGHT_DISTANCE 1000 // Moved to header file -> Defrag
#define MAX_VGUI_INPUT_MODE_SPEED 30
#define MAX_VGUI_INPUT_MODE_SPEED_SQ (MAX_VGUI_INPUT_MODE_SPEED*MAX_VGUI_INPUT_MODE_SPEED)
178179180181182183184185
RecvPropFloat ( RECVINFO(m_vecViewOffset[1]) ),
RecvPropFloat ( RECVINFO(m_vecViewOffset[2]) ),
RecvPropFloat ( RECVINFO(m_flFriction) ),
RecvPropArray3 ( RECVINFO_ARRAY(m_iAmmo), RecvPropInt( RECVINFO(m_iAmmo[0])) ),
RecvPropInt ( RECVINFO(m_fOnTarget) ),
179180181182183184
RecvPropFloat ( RECVINFO(m_vecViewOffset[1]) ),
RecvPropFloat ( RECVINFO(m_vecViewOffset[2]) ),
RecvPropFloat ( RECVINFO(m_flFriction) ),
RecvPropInt ( RECVINFO(m_fOnTarget) ),
226227228229230231232233234235236237
RecvPropEHandle( RECVINFO(m_hUseEntity) ),
RecvPropInt (RECVINFO(m_iHealth)),
RecvPropInt (RECVINFO(m_lifeState)),
RecvPropFloat (RECVINFO(m_flMaxspeed)),
RecvPropInt (RECVINFO(m_fFlags)),
RecvPropInt (RECVINFO(m_iObserverMode) ),
RecvPropEHandle (RECVINFO(m_hObserverTarget), RecvProxy_ObserverTarget ),
RecvPropArray ( RecvPropEHandle( RECVINFO( m_hViewModel[0] ) ), m_hViewModel ),
225226227228229230231232233234235236237238239240241242
RecvPropEHandle( RECVINFO(m_hUseEntity) ),
RecvPropInt (RECVINFO(m_iHealth)),
// Added by Mulchman
RecvPropInt (RECVINFO(m_iMaxHealth)),
RecvPropInt (RECVINFO(m_iArmor)),
RecvPropInt (RECVINFO(m_iMaxArmor)),
// Added by Mulchman
RecvPropInt (RECVINFO(m_lifeState)),
RecvPropFloat (RECVINFO(m_flMaxspeed)),
RecvPropInt (RECVINFO(m_fFlags)),
RecvPropArray3 ( RECVINFO_ARRAY(m_iAmmo), RecvPropInt( RECVINFO(m_iAmmo[0])) ),
RecvPropInt (RECVINFO(m_iObserverMode) ),
RecvPropEHandle (RECVINFO(m_hObserverTarget), RecvProxy_ObserverTarget ),
RecvPropArray ( RecvPropEHandle( RECVINFO( m_hViewModel[0] ) ), m_hViewModel ),
289290291292293294
DEFINE_PRED_FIELD( m_hVehicle, FIELD_EHANDLE, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD_TOL( m_flMaxspeed, FIELD_FLOAT, FTYPEDESC_INSENDTABLE, 0.5f ),
DEFINE_PRED_FIELD( m_iHealth, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_fOnTarget, FIELD_BOOLEAN, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_nNextThinkTick, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_lifeState, FIELD_CHARACTER, FTYPEDESC_INSENDTABLE ),
294295296297298299300301302303304
DEFINE_PRED_FIELD( m_hVehicle, FIELD_EHANDLE, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD_TOL( m_flMaxspeed, FIELD_FLOAT, FTYPEDESC_INSENDTABLE, 0.5f ),
DEFINE_PRED_FIELD( m_iHealth, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
// Added by Mulch for testing
DEFINE_PRED_FIELD( m_iMaxHealth, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_iArmor, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_iMaxArmor, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
// Added by Mulch for testing
DEFINE_PRED_FIELD( m_fOnTarget, FIELD_BOOLEAN, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_nNextThinkTick, FIELD_INTEGER, FTYPEDESC_INSENDTABLE ),
DEFINE_PRED_FIELD( m_lifeState, FIELD_CHARACTER, FTYPEDESC_INSENDTABLE ),
299300301302303304305
DEFINE_FIELD( m_nButtons, FIELD_INTEGER ),
DEFINE_FIELD( m_flWaterJumpTime, FIELD_FLOAT ),
DEFINE_FIELD( m_nImpulse, FIELD_INTEGER ),
DEFINE_FIELD( m_flStepSoundTime, FIELD_FLOAT ),
DEFINE_FIELD( m_flSwimSoundTime, FIELD_FLOAT ),
DEFINE_FIELD( m_vecLadderNormal, FIELD_VECTOR ),
DEFINE_FIELD( m_flPhysics, FIELD_INTEGER ),
309310311312313314315
DEFINE_FIELD( m_nButtons, FIELD_INTEGER ),
DEFINE_FIELD( m_flWaterJumpTime, FIELD_FLOAT ),
DEFINE_FIELD( m_nImpulse, FIELD_INTEGER ),
// DEFINE_FIELD( m_flStepSoundTime, FIELD_FLOAT ), |-- Mirv: Removed to fix footsteps
DEFINE_FIELD( m_flSwimSoundTime, FIELD_FLOAT ),
DEFINE_FIELD( m_vecLadderNormal, FIELD_VECTOR ),
DEFINE_FIELD( m_flPhysics, FIELD_INTEGER ),
446447448449450451
ResetToneMapping(1.0);
}
}
}
int C_BasePlayer::GetObserverMode() const
456457458459460461462463464465466467468
ResetToneMapping(1.0);
}
}
//AfterShock: update spectator name when you change target
IViewPortPanel *spectator = gViewPortInterface->FindPanelByName( PANEL_SPECGUI );
if ( spectator && spectator->IsVisible() )
{
spectator->Update();
}
}
int C_BasePlayer::GetObserverMode() const
595596597598599600601
// Only care about this for local player
if ( IsLocalPlayer() )
{
default_fov.SetValue( m_iDefaultFOV );
//Update our FOV, including any zooms going on
int iDefaultFOV = default_fov.GetInt();
612613614615616617618619
// Only care about this for local player
if ( IsLocalPlayer() )
{
//0001369: fixes default_fov command to work again
// default_fov.SetValue( m_iDefaultFOV );
//Update our FOV, including any zooms going on
int iDefaultFOV = default_fov.GetInt();
113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162
// QAngle tmpangles;
Vector forward, viewpoint;
// GetRenderOrigin() returns ragdoll pos if player is ragdolled
Vector origin = target->GetRenderOrigin();
C_BasePlayer *player = ToBasePlayer( target );
if ( player && player->IsAlive() )
{
if( player->GetFlags() & FL_DUCKING )
{
VectorAdd( origin, VEC_DUCK_VIEW, origin );
}
else
{
VectorAdd( origin, VEC_VIEW, origin );
}
}
else
{
// assume it's the players ragdoll
VectorAdd( origin, VEC_DEAD_VIEWHEIGHT, origin );
}
QAngle viewangles;
if ( GetObserverMode() == OBS_MODE_IN_EYE )
{
viewangles = eyeAngles;
}
11481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185
// QAngle tmpangles;
Vector forward, viewpoint, origin;
if (target->IsPlayer())
{
// GetRenderOrigin() returns ragdoll pos if player is ragdolled
origin = target->GetRenderOrigin();
C_BasePlayer *player = ToBasePlayer( target );
if ( player && player->IsAlive() )
{
if( player->GetFlags() & FL_DUCKING )
{
VectorAdd( origin, VEC_DUCK_VIEW, origin );
}
else
{
VectorAdd( origin, VEC_VIEW, origin );
}
}
else
{
// assume it's the players ragdoll
VectorAdd( origin, VEC_DEAD_VIEWHEIGHT, origin );
}
}
else
origin = target->WorldSpaceCenter();
QAngle viewangles;
if ( GetObserverMode() == OBS_MODE_IN_EYE && target->IsPlayer() )
{
viewangles = eyeAngles;
}
1685168616871688168916901691
ctx->cmd.forwardmove = 0;
ctx->cmd.sidemove = 0;
ctx->cmd.upmove = 0;
ctx->cmd.buttons = 0;
ctx->cmd.impulse = 0;
//VectorCopy ( pl.v_angle, ctx->cmd.viewangles );
}
17081709171017111712171317141715
ctx->cmd.forwardmove = 0;
ctx->cmd.sidemove = 0;
ctx->cmd.upmove = 0;
// Jiggles: Don't block the USE key b/c we need it for squeek's training map (but still block everything else)
ctx->cmd.buttons &= IN_USE;
ctx->cmd.impulse = 0;
//VectorCopy ( pl.v_angle, ctx->cmd.viewangles );
}
1952195319541955195619571958
}
else
{
return 75;
}
}
1976197719781979198019811982
}
else
{
return 20; // |-- Mirv: BUG #0000040: Sniper Rifle & Radio Tag zoom sensitivity is not consistent with other HL2 stuff
}
}