This commit is contained in:
FluorescentCIAAfricanAmerican
2020-04-22 12:56:21 -04:00
commit 3bf9df6b27
15370 changed files with 5489726 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Helper methods + classes for choreo
//
//===========================================================================//
#ifndef CHOREOUTILS_H
#define CHOREOUTILS_H
#if defined( _WIN32 )
#pragma once
#endif
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class CChoreoScene;
class CChoreoEvent;
class CStudioHdr;
//-----------------------------------------------------------------------------
// Finds sound files associated with events
//-----------------------------------------------------------------------------
const char *GetSoundForEvent( CChoreoEvent *pEvent, CStudioHdr *pStudioHdr );
//-----------------------------------------------------------------------------
// Fixes up the duration of a choreo scene based on wav files + animations
// Returns true if a change needed to be made
//-----------------------------------------------------------------------------
bool AutoAddGestureKeys( CChoreoEvent *e, CStudioHdr *pStudioHdr, float *pPoseParameters, bool bCheckOnly );
bool UpdateGestureLength( CChoreoEvent *e, CStudioHdr *pStudioHdr, float *pPoseParameters, bool bCheckOnly );
bool UpdateSequenceLength( CChoreoEvent *e, CStudioHdr *pStudioHdr, float *pPoseParameters, bool bCheckOnly, bool bVerbose );
#endif // CHOREOUTILS_H

97
public/tier3/mdlutils.h Normal file
View File

@@ -0,0 +1,97 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//===========================================================================//
#ifndef MDLUTILS_H
#define MDLUTILS_H
#if defined( _WIN32 )
#pragma once
#endif
#include "datacache/imdlcache.h"
#include "mathlib/vector.h"
#include "Color.h"
#include "studio.h"
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
struct matrix3x4_t;
struct MDLSquenceLayer_t
{
int m_nSequenceIndex;
float m_flWeight;
bool m_bNoLoop;
float m_flCycleBeganAt;
};
//-----------------------------------------------------------------------------
// Class containing simplistic MDL state for use in rendering
//-----------------------------------------------------------------------------
class CMDL
{
public:
CMDL();
~CMDL();
void SetMDL( MDLHandle_t h );
MDLHandle_t GetMDL() const;
// Simple version of drawing; sets up bones for you
void Draw( const matrix3x4_t& rootToWorld );
// NOTE: This version of draw assumes you've filled in the bone to world
// matrix yourself by calling IStudioRender::LockBoneMatrices. The pointer
// returned by that method needs to be passed into here
void Draw( const matrix3x4_t& rootToWorld, const matrix3x4_t *pBoneToWorld );
void SetUpBones( const matrix3x4_t& shapeToWorld, int nMaxBoneCount, matrix3x4_t *pOutputMatrices, const float *pPoseParameters = NULL, MDLSquenceLayer_t *pSequenceLayers = NULL, int nNumSequenceLayers = 0 );
void SetupBonesWithBoneMerge( const CStudioHdr *pMergeHdr, matrix3x4_t *pMergeBoneToWorld,
const CStudioHdr *pFollow, const matrix3x4_t *pFollowBoneToWorld, const matrix3x4_t &matModelToWorld );
studiohdr_t *GetStudioHdr();
private:
void UnreferenceMDL();
public:
MDLHandle_t m_MDLHandle;
Color m_Color;
int m_nSkin;
int m_nBody;
int m_nSequence;
int m_nLOD;
float m_flPlaybackRate;
float m_flTime;
float m_pFlexControls[ MAXSTUDIOFLEXCTRL * 4 ];
Vector m_vecViewTarget;
bool m_bWorldSpaceViewTarget;
void *m_pProxyData;
};
//-----------------------------------------------------------------------------
// Returns the bounding box for the model
//-----------------------------------------------------------------------------
void GetMDLBoundingBox( Vector *pMins, Vector *pMaxs, MDLHandle_t h, int nSequence );
//-----------------------------------------------------------------------------
// Returns the radius of the model as measured from the origin
//-----------------------------------------------------------------------------
float GetMDLRadius( MDLHandle_t h, int nSequence );
//-----------------------------------------------------------------------------
// Returns a more accurate bounding sphere
//-----------------------------------------------------------------------------
void GetMDLBoundingSphere( Vector *pVecCenter, float *pRadius, MDLHandle_t h, int nSequence );
#endif // MDLUTILS_H

View File

@@ -0,0 +1,18 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================
#ifndef SCENETOKENPROCESSOR_H
#define SCENETOKENPROCESSOR_H
#ifdef _WIN32
#pragma once
#endif
class ISceneTokenProcessor;
ISceneTokenProcessor *GetTokenProcessor();
void SetTokenProcessorBuffer( const char *buf );
#endif // SCENETOKENPROCESSOR_H

114
public/tier3/tier3.h Normal file
View File

@@ -0,0 +1,114 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//===========================================================================//
#ifndef TIER3_H
#define TIER3_H
#if defined( _WIN32 )
#pragma once
#endif
#include "tier2/tier2.h"
//-----------------------------------------------------------------------------
// Forward declarations
//-----------------------------------------------------------------------------
class IStudioRender;
class IMatSystemSurface;
class IDataCache;
class IMDLCache;
class IVideoServices;
class IDmeMakefileUtils;
class IPhysicsCollision;
class ISoundEmitterSystemBase;
class IVTex;
namespace vgui
{
class ISurface;
class IVGui;
class IInput;
class IPanel;
class ILocalize;
class ISchemeManager;
class ISystem;
}
//-----------------------------------------------------------------------------
// These tier3 libraries must be set by any users of this library.
// They can be set by calling ConnectTier3Libraries.
// It is hoped that setting this, and using this library will be the common mechanism for
// allowing link libraries to access tier3 library interfaces
//-----------------------------------------------------------------------------
extern IStudioRender *g_pStudioRender;
extern IStudioRender *studiorender;
extern IMatSystemSurface *g_pMatSystemSurface;
extern vgui::ISurface *g_pVGuiSurface;
extern vgui::IInput *g_pVGuiInput;
extern vgui::IVGui *g_pVGui;
extern vgui::IPanel *g_pVGuiPanel;
extern vgui::ILocalize *g_pVGuiLocalize;
extern vgui::ISchemeManager *g_pVGuiSchemeManager;
extern vgui::ISystem *g_pVGuiSystem;
extern IDataCache *g_pDataCache; // FIXME: Should IDataCache be in tier2?
extern IMDLCache *g_pMDLCache;
extern IMDLCache *mdlcache;
extern IVideoServices *g_pVideo;
extern IDmeMakefileUtils *g_pDmeMakefileUtils;
extern IPhysicsCollision *g_pPhysicsCollision;
extern ISoundEmitterSystemBase *g_pSoundEmitterSystem;
extern IVTex *g_pVTex;
//-----------------------------------------------------------------------------
// Call this to connect to/disconnect from all tier 3 libraries.
// It's up to the caller to check the globals it cares about to see if ones are missing
//-----------------------------------------------------------------------------
void ConnectTier3Libraries( CreateInterfaceFn *pFactoryList, int nFactoryCount );
void DisconnectTier3Libraries();
//-----------------------------------------------------------------------------
// Helper empty implementation of an IAppSystem for tier2 libraries
//-----------------------------------------------------------------------------
template< class IInterface, int ConVarFlag = 0 >
class CTier3AppSystem : public CTier2AppSystem< IInterface, ConVarFlag >
{
typedef CTier2AppSystem< IInterface, ConVarFlag > BaseClass;
public:
CTier3AppSystem( bool bIsPrimaryAppSystem = true ) : BaseClass( bIsPrimaryAppSystem )
{
}
virtual bool Connect( CreateInterfaceFn factory )
{
if ( !BaseClass::Connect( factory ) )
return false;
if ( BaseClass::IsPrimaryAppSystem() )
{
ConnectTier3Libraries( &factory, 1 );
}
return true;
}
virtual void Disconnect()
{
if ( BaseClass::IsPrimaryAppSystem() )
{
DisconnectTier3Libraries();
}
BaseClass::Disconnect();
}
};
#endif // TIER3_H

55
public/tier3/tier3dm.h Normal file
View File

@@ -0,0 +1,55 @@
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: A higher level link library for general use in the game and tools.
//
//===========================================================================//
#ifndef TIER3DM_H
#define TIER3DM_H
#if defined( _WIN32 )
#pragma once
#endif
#include "tier3/tier3.h"
#include "tier2/tier2dm.h"
//-----------------------------------------------------------------------------
// Helper empty implementation of an IAppSystem for tier2 libraries
//-----------------------------------------------------------------------------
template< class IInterface, int ConVarFlag = 0 >
class CTier3DmAppSystem : public CTier2DmAppSystem< IInterface, ConVarFlag >
{
typedef CTier2DmAppSystem< IInterface, ConVarFlag > BaseClass;
public:
CTier3DmAppSystem( bool bIsPrimaryAppSystem = true ) : BaseClass( bIsPrimaryAppSystem )
{
}
virtual bool Connect( CreateInterfaceFn factory )
{
if ( !BaseClass::Connect( factory ) )
return false;
if ( IsPrimaryAppSystem() )
{
ConnectTier3Libraries( &factory, 1 );
}
return true;
}
virtual void Disconnect()
{
if ( IsPrimaryAppSystem() )
{
DisconnectTier3Libraries();
}
BaseClass::Disconnect();
}
};
#endif // TIER3DM_H