mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-15 05:06:57 +00:00
1
This commit is contained in:
@@ -0,0 +1,108 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef CAM_THIRDPERSON_H
|
||||
#define CAM_THIRDPERSON_H
|
||||
|
||||
#if defined( _WIN32 )
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifdef CLIENT_DLL
|
||||
#include "c_baseplayer.h"
|
||||
#else
|
||||
#include "baseplayer.h"
|
||||
#endif
|
||||
|
||||
#define DIST_FORWARD 0
|
||||
#define DIST_RIGHT 1
|
||||
#define DIST_UP 2
|
||||
|
||||
//-------------------------------------------------- Constants
|
||||
|
||||
#define CAM_MIN_DIST 30.0
|
||||
#define CAM_ANGLE_MOVE .5
|
||||
#define MAX_ANGLE_DIFF 10.0
|
||||
#define PITCH_MAX 90.0
|
||||
#define PITCH_MIN 0
|
||||
#define YAW_MAX 135.0
|
||||
#define YAW_MIN -135.0
|
||||
#define DIST 2
|
||||
#define CAM_HULL_OFFSET 14.0 // the size of the bounding hull used for collision checking
|
||||
|
||||
#define CAMERA_UP_OFFSET 25.0f
|
||||
#define CAMERA_OFFSET_LERP_TIME 0.5f
|
||||
#define CAMERA_UP_OFFSET_LERP_TIME 0.25f
|
||||
|
||||
class CThirdPersonManager
|
||||
{
|
||||
public:
|
||||
|
||||
CThirdPersonManager();
|
||||
void SetCameraOffsetAngles( const Vector& vecOffset ) { m_vecCameraOffset = vecOffset; }
|
||||
const Vector& GetCameraOffsetAngles( void ) const { return m_vecCameraOffset; }
|
||||
|
||||
void SetDesiredCameraOffset( const Vector& vecOffset ) { m_vecDesiredCameraOffset = vecOffset; }
|
||||
const Vector& GetDesiredCameraOffset( void ) const { return m_vecDesiredCameraOffset; }
|
||||
|
||||
Vector GetFinalCameraOffset( void );
|
||||
|
||||
void SetCameraOrigin( const Vector& vecOffset ) { m_vecCameraOrigin = vecOffset; }
|
||||
const Vector& GetCameraOrigin( void ) const { return m_vecCameraOrigin; }
|
||||
|
||||
void Update( void );
|
||||
|
||||
void PositionCamera( CBasePlayer *pPlayer, const QAngle& angles );
|
||||
|
||||
void UseCameraOffsets( bool bUse ) { m_bUseCameraOffsets = bUse; }
|
||||
bool UsingCameraOffsets( void ) { return m_bUseCameraOffsets; }
|
||||
|
||||
const QAngle& GetCameraViewAngles( void ) const { return m_ViewAngles; }
|
||||
|
||||
Vector GetDistanceFraction( void );
|
||||
|
||||
bool WantToUseGameThirdPerson( void );
|
||||
|
||||
void SetOverridingThirdPerson( bool bOverride ) { m_bOverrideThirdPerson = bOverride; }
|
||||
bool IsOverridingThirdPerson( void ) { return m_bOverrideThirdPerson; }
|
||||
|
||||
void Init( void );
|
||||
|
||||
void SetForcedThirdPerson( bool bForced ) { m_bForced = bForced; }
|
||||
bool GetForcedThirdPerson() const { return m_bForced; }
|
||||
|
||||
private:
|
||||
|
||||
// What is the current camera offset from the view origin?
|
||||
Vector m_vecCameraOffset;
|
||||
// Distances from the center
|
||||
Vector m_vecDesiredCameraOffset;
|
||||
|
||||
Vector m_vecCameraOrigin;
|
||||
|
||||
bool m_bUseCameraOffsets;
|
||||
|
||||
QAngle m_ViewAngles;
|
||||
|
||||
float m_flFraction;
|
||||
float m_flUpFraction;
|
||||
|
||||
float m_flTargetFraction;
|
||||
float m_flTargetUpFraction;
|
||||
|
||||
bool m_bOverrideThirdPerson;
|
||||
|
||||
bool m_bForced;
|
||||
|
||||
float m_flUpOffset;
|
||||
|
||||
float m_flLerpTime;
|
||||
float m_flUpLerpTime;
|
||||
};
|
||||
|
||||
extern CThirdPersonManager g_ThirdPersonManager;
|
||||
|
||||
#endif // CAM_THIRDPERSON_H
|
||||
Reference in New Issue
Block a user