mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-06-18 08:42:10 +03:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
8737f191f3
16
.gitattributes
vendored
16
.gitattributes
vendored
@ -1,11 +1,23 @@
|
|||||||
creategameprojects text
|
creategameprojects text
|
||||||
createallprojects text
|
createallprojects text
|
||||||
|
xcode_ccache_wrapper text
|
||||||
vpc text
|
vpc text
|
||||||
*.sh text
|
|
||||||
|
|
||||||
vpc_linux binary
|
vpc_linux binary
|
||||||
vpc_osx binary
|
vpc_osx binary
|
||||||
|
|
||||||
|
*.sh text
|
||||||
|
*.c text
|
||||||
|
*.h text
|
||||||
|
*.H text
|
||||||
|
*.cpp text
|
||||||
|
*.vpc text
|
||||||
|
*.vgc text
|
||||||
|
*.nut text
|
||||||
|
*.awk text
|
||||||
|
*.pl text
|
||||||
|
*.py text
|
||||||
|
*.xcconfig text
|
||||||
|
|
||||||
*.exe binary
|
*.exe binary
|
||||||
protoc binary
|
protoc binary
|
||||||
ccache binary
|
ccache binary
|
||||||
|
@ -1,121 +1,121 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef IGAMEUI_H
|
#ifndef IGAMEUI_H
|
||||||
#define IGAMEUI_H
|
#define IGAMEUI_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "vgui/IPanel.h"
|
#include "vgui/IPanel.h"
|
||||||
|
|
||||||
#if !defined( _X360 )
|
#if !defined( _X360 )
|
||||||
#include "xbox/xboxstubs.h"
|
#include "xbox/xboxstubs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// reasons why the user can't connect to a game server
|
// reasons why the user can't connect to a game server
|
||||||
enum ESteamLoginFailure
|
enum ESteamLoginFailure
|
||||||
{
|
{
|
||||||
STEAMLOGINFAILURE_NONE,
|
STEAMLOGINFAILURE_NONE,
|
||||||
STEAMLOGINFAILURE_BADTICKET,
|
STEAMLOGINFAILURE_BADTICKET,
|
||||||
STEAMLOGINFAILURE_NOSTEAMLOGIN,
|
STEAMLOGINFAILURE_NOSTEAMLOGIN,
|
||||||
STEAMLOGINFAILURE_VACBANNED,
|
STEAMLOGINFAILURE_VACBANNED,
|
||||||
STEAMLOGINFAILURE_LOGGED_IN_ELSEWHERE
|
STEAMLOGINFAILURE_LOGGED_IN_ELSEWHERE
|
||||||
};
|
};
|
||||||
|
|
||||||
enum ESystemNotify
|
enum ESystemNotify
|
||||||
{
|
{
|
||||||
SYSTEMNOTIFY_STORAGEDEVICES_CHANGED,
|
SYSTEMNOTIFY_STORAGEDEVICES_CHANGED,
|
||||||
SYSTEMNOTIFY_USER_SIGNEDIN,
|
SYSTEMNOTIFY_USER_SIGNEDIN,
|
||||||
SYSTEMNOTIFY_USER_SIGNEDOUT,
|
SYSTEMNOTIFY_USER_SIGNEDOUT,
|
||||||
SYSTEMNOTIFY_XUIOPENING,
|
SYSTEMNOTIFY_XUIOPENING,
|
||||||
SYSTEMNOTIFY_XUICLOSED,
|
SYSTEMNOTIFY_XUICLOSED,
|
||||||
SYSTEMNOTIFY_INVITE_SHUTDOWN, // Cross-game invite is causing us to shutdown
|
SYSTEMNOTIFY_INVITE_SHUTDOWN, // Cross-game invite is causing us to shutdown
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: contains all the functions that the GameUI dll exports
|
// Purpose: contains all the functions that the GameUI dll exports
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
abstract_class IGameUI
|
abstract_class IGameUI
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// initialization/shutdown
|
// initialization/shutdown
|
||||||
virtual void Initialize( CreateInterfaceFn appFactory ) = 0;
|
virtual void Initialize( CreateInterfaceFn appFactory ) = 0;
|
||||||
virtual void PostInit() = 0;
|
virtual void PostInit() = 0;
|
||||||
|
|
||||||
// connect to other interfaces at the same level (gameui.dll/server.dll/client.dll)
|
// connect to other interfaces at the same level (gameui.dll/server.dll/client.dll)
|
||||||
virtual void Connect( CreateInterfaceFn gameFactory ) = 0;
|
virtual void Connect( CreateInterfaceFn gameFactory ) = 0;
|
||||||
|
|
||||||
virtual void Start() = 0;
|
virtual void Start() = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
virtual void RunFrame() = 0;
|
virtual void RunFrame() = 0;
|
||||||
|
|
||||||
// notifications
|
// notifications
|
||||||
virtual void OnGameUIActivated() = 0;
|
virtual void OnGameUIActivated() = 0;
|
||||||
virtual void OnGameUIHidden() = 0;
|
virtual void OnGameUIHidden() = 0;
|
||||||
|
|
||||||
// OLD: Use OnConnectToServer2
|
// OLD: Use OnConnectToServer2
|
||||||
virtual void OLD_OnConnectToServer(const char *game, int IP, int port) = 0;
|
virtual void OLD_OnConnectToServer(const char *game, int IP, int port) = 0;
|
||||||
|
|
||||||
virtual void OnDisconnectFromServer_OLD( uint8 eSteamLoginFailure, const char *username ) = 0;
|
virtual void OnDisconnectFromServer_OLD( uint8 eSteamLoginFailure, const char *username ) = 0;
|
||||||
virtual void OnLevelLoadingStarted(bool bShowProgressDialog) = 0;
|
virtual void OnLevelLoadingStarted(bool bShowProgressDialog) = 0;
|
||||||
virtual void OnLevelLoadingFinished(bool bError, const char *failureReason, const char *extendedReason) = 0;
|
virtual void OnLevelLoadingFinished(bool bError, const char *failureReason, const char *extendedReason) = 0;
|
||||||
|
|
||||||
// level loading progress, returns true if the screen needs updating
|
// level loading progress, returns true if the screen needs updating
|
||||||
virtual bool UpdateProgressBar(float progress, const char *statusText) = 0;
|
virtual bool UpdateProgressBar(float progress, const char *statusText) = 0;
|
||||||
// Shows progress desc, returns previous setting... (used with custom progress bars )
|
// Shows progress desc, returns previous setting... (used with custom progress bars )
|
||||||
virtual bool SetShowProgressText( bool show ) = 0;
|
virtual bool SetShowProgressText( bool show ) = 0;
|
||||||
|
|
||||||
// !!!!!!!!!members added after "GameUI011" initial release!!!!!!!!!!!!!!!!!!!
|
// !!!!!!!!!members added after "GameUI011" initial release!!!!!!!!!!!!!!!!!!!
|
||||||
virtual void ShowNewGameDialog( int chapter ) = 0;
|
virtual void ShowNewGameDialog( int chapter ) = 0;
|
||||||
|
|
||||||
// Xbox 360
|
// Xbox 360
|
||||||
virtual void SessionNotification( const int notification, const int param = 0 ) = 0;
|
virtual void SessionNotification( const int notification, const int param = 0 ) = 0;
|
||||||
virtual void SystemNotification( const int notification ) = 0;
|
virtual void SystemNotification( const int notification ) = 0;
|
||||||
virtual void ShowMessageDialog( const uint nType, vgui::Panel *pOwner ) = 0;
|
virtual void ShowMessageDialog( const uint nType, vgui::Panel *pOwner ) = 0;
|
||||||
virtual void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ) = 0;
|
virtual void UpdatePlayerInfo( uint64 nPlayerId, const char *pName, int nTeam, byte cVoiceState, int nPlayersNeeded, bool bHost ) = 0;
|
||||||
virtual void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping ) = 0;
|
virtual void SessionSearchResult( int searchIdx, void *pHostData, XSESSION_SEARCHRESULT *pResult, int ping ) = 0;
|
||||||
virtual void OnCreditsFinished( void ) = 0;
|
virtual void OnCreditsFinished( void ) = 0;
|
||||||
|
|
||||||
// inserts specified panel as background for level load dialog
|
// inserts specified panel as background for level load dialog
|
||||||
virtual void SetLoadingBackgroundDialog( vgui::VPANEL panel ) = 0;
|
virtual void SetLoadingBackgroundDialog( vgui::VPANEL panel ) = 0;
|
||||||
|
|
||||||
// Bonus maps interfaces
|
// Bonus maps interfaces
|
||||||
virtual void BonusMapUnlock( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0;
|
virtual void BonusMapUnlock( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0;
|
||||||
virtual void BonusMapComplete( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0;
|
virtual void BonusMapComplete( const char *pchFileName = NULL, const char *pchMapName = NULL ) = 0;
|
||||||
virtual void BonusMapChallengeUpdate( const char *pchFileName, const char *pchMapName, const char *pchChallengeName, int iBest ) = 0;
|
virtual void BonusMapChallengeUpdate( const char *pchFileName, const char *pchMapName, const char *pchChallengeName, int iBest ) = 0;
|
||||||
virtual void BonusMapChallengeNames( char *pchFileName, char *pchMapName, char *pchChallengeName ) = 0;
|
virtual void BonusMapChallengeNames( char *pchFileName, char *pchMapName, char *pchChallengeName ) = 0;
|
||||||
virtual void BonusMapChallengeObjectives( int &iBronze, int &iSilver, int &iGold ) = 0;
|
virtual void BonusMapChallengeObjectives( int &iBronze, int &iSilver, int &iGold ) = 0;
|
||||||
virtual void BonusMapDatabaseSave( void ) = 0;
|
virtual void BonusMapDatabaseSave( void ) = 0;
|
||||||
virtual int BonusMapNumAdvancedCompleted( void ) = 0;
|
virtual int BonusMapNumAdvancedCompleted( void ) = 0;
|
||||||
virtual void BonusMapNumMedals( int piNumMedals[ 3 ] ) = 0;
|
virtual void BonusMapNumMedals( int piNumMedals[ 3 ] ) = 0;
|
||||||
|
|
||||||
virtual void OnConnectToServer2(const char *game, int IP, int connectionPort, int queryPort) = 0;
|
virtual void OnConnectToServer2(const char *game, int IP, int connectionPort, int queryPort) = 0;
|
||||||
|
|
||||||
// X360 Storage device validation:
|
// X360 Storage device validation:
|
||||||
// returns true right away if storage device has been previously selected.
|
// returns true right away if storage device has been previously selected.
|
||||||
// otherwise returns false and will set the variable pointed by pStorageDeviceValidated to 1
|
// otherwise returns false and will set the variable pointed by pStorageDeviceValidated to 1
|
||||||
// once the storage device is selected by user.
|
// once the storage device is selected by user.
|
||||||
virtual bool ValidateStorageDevice( int *pStorageDeviceValidated ) = 0;
|
virtual bool ValidateStorageDevice( int *pStorageDeviceValidated ) = 0;
|
||||||
|
|
||||||
virtual void SetProgressOnStart() = 0;
|
virtual void SetProgressOnStart() = 0;
|
||||||
virtual void OnDisconnectFromServer( uint8 eSteamLoginFailure ) = 0;
|
virtual void OnDisconnectFromServer( uint8 eSteamLoginFailure ) = 0;
|
||||||
|
|
||||||
virtual void OnConfirmQuit( void ) = 0;
|
virtual void OnConfirmQuit( void ) = 0;
|
||||||
|
|
||||||
virtual bool IsMainMenuVisible( void ) = 0;
|
virtual bool IsMainMenuVisible( void ) = 0;
|
||||||
|
|
||||||
// Client DLL is providing us with a panel that it wants to replace the main menu with
|
// Client DLL is providing us with a panel that it wants to replace the main menu with
|
||||||
virtual void SetMainMenuOverride( vgui::VPANEL panel ) = 0;
|
virtual void SetMainMenuOverride( vgui::VPANEL panel ) = 0;
|
||||||
// Client DLL is telling us that a main menu command was issued, probably from its custom main menu panel
|
// Client DLL is telling us that a main menu command was issued, probably from its custom main menu panel
|
||||||
virtual void SendMainMenuCommand( const char *pszCommand ) = 0;
|
virtual void SendMainMenuCommand( const char *pszCommand ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define GAMEUI_INTERFACE_VERSION "GameUI011"
|
#define GAMEUI_INTERFACE_VERSION "GameUI011"
|
||||||
|
|
||||||
#endif // IGAMEUI_H
|
#endif // IGAMEUI_H
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,103 +1,103 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: Swap a compiled caption file.
|
// Purpose: Swap a compiled caption file.
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#include "utlbuffer.h"
|
#include "utlbuffer.h"
|
||||||
#include "byteswap.h"
|
#include "byteswap.h"
|
||||||
#include "filesystem.h"
|
#include "filesystem.h"
|
||||||
#include "tier2/fileutils.h"
|
#include "tier2/fileutils.h"
|
||||||
#include "captioncompiler.h"
|
#include "captioncompiler.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
BEGIN_BYTESWAP_DATADESC( CompiledCaptionHeader_t )
|
BEGIN_BYTESWAP_DATADESC( CompiledCaptionHeader_t )
|
||||||
DEFINE_FIELD( magic, FIELD_INTEGER ),
|
DEFINE_FIELD( magic, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( version, FIELD_INTEGER ),
|
DEFINE_FIELD( version, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( numblocks, FIELD_INTEGER ),
|
DEFINE_FIELD( numblocks, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( blocksize, FIELD_INTEGER ),
|
DEFINE_FIELD( blocksize, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( directorysize, FIELD_INTEGER ),
|
DEFINE_FIELD( directorysize, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( dataoffset, FIELD_INTEGER ),
|
DEFINE_FIELD( dataoffset, FIELD_INTEGER ),
|
||||||
END_BYTESWAP_DATADESC()
|
END_BYTESWAP_DATADESC()
|
||||||
|
|
||||||
BEGIN_BYTESWAP_DATADESC( CaptionLookup_t )
|
BEGIN_BYTESWAP_DATADESC( CaptionLookup_t )
|
||||||
DEFINE_FIELD( hash, FIELD_INTEGER ),
|
DEFINE_FIELD( hash, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( blockNum, FIELD_INTEGER ),
|
DEFINE_FIELD( blockNum, FIELD_INTEGER ),
|
||||||
DEFINE_FIELD( offset, FIELD_SHORT ),
|
DEFINE_FIELD( offset, FIELD_SHORT ),
|
||||||
DEFINE_FIELD( length, FIELD_SHORT ),
|
DEFINE_FIELD( length, FIELD_SHORT ),
|
||||||
END_BYTESWAP_DATADESC()
|
END_BYTESWAP_DATADESC()
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Swap a compiled closecaption file
|
// Swap a compiled closecaption file
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool SwapClosecaptionFile( void *pData )
|
bool SwapClosecaptionFile( void *pData )
|
||||||
{
|
{
|
||||||
CByteswap swap;
|
CByteswap swap;
|
||||||
swap.ActivateByteSwapping( true );
|
swap.ActivateByteSwapping( true );
|
||||||
|
|
||||||
CompiledCaptionHeader_t *pHdr = (CompiledCaptionHeader_t*)pData;
|
CompiledCaptionHeader_t *pHdr = (CompiledCaptionHeader_t*)pData;
|
||||||
|
|
||||||
if ( IsX360() )
|
if ( IsX360() )
|
||||||
{
|
{
|
||||||
// pre-swap file header
|
// pre-swap file header
|
||||||
swap.SwapFieldsToTargetEndian( pHdr );
|
swap.SwapFieldsToTargetEndian( pHdr );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( pHdr->magic != COMPILED_CAPTION_FILEID || pHdr->version != COMPILED_CAPTION_VERSION )
|
if ( pHdr->magic != COMPILED_CAPTION_FILEID || pHdr->version != COMPILED_CAPTION_VERSION )
|
||||||
{
|
{
|
||||||
// bad data
|
// bad data
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// lookup headers
|
// lookup headers
|
||||||
pData = (byte*)pData + sizeof(CompiledCaptionHeader_t);
|
pData = (byte*)pData + sizeof(CompiledCaptionHeader_t);
|
||||||
swap.SwapFieldsToTargetEndian( (CaptionLookup_t*)pData, pHdr->directorysize );
|
swap.SwapFieldsToTargetEndian( (CaptionLookup_t*)pData, pHdr->directorysize );
|
||||||
|
|
||||||
// unicode data
|
// unicode data
|
||||||
pData = (byte*)pHdr + pHdr->dataoffset;
|
pData = (byte*)pHdr + pHdr->dataoffset;
|
||||||
swap.SwapBufferToTargetEndian( (wchar_t*)pData, (wchar_t*)pData, pHdr->numblocks * pHdr->blocksize / sizeof(wchar_t) );
|
swap.SwapBufferToTargetEndian( (wchar_t*)pData, (wchar_t*)pData, pHdr->numblocks * pHdr->blocksize / sizeof(wchar_t) );
|
||||||
|
|
||||||
if ( IsPC() )
|
if ( IsPC() )
|
||||||
{
|
{
|
||||||
// post-swap file header
|
// post-swap file header
|
||||||
swap.SwapFieldsToTargetEndian( pHdr );
|
swap.SwapFieldsToTargetEndian( pHdr );
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined( CLIENT_DLL )
|
#if defined( CLIENT_DLL )
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Callback for UpdateOrCreate - generates .360 file
|
// Callback for UpdateOrCreate - generates .360 file
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
static bool CaptionCreateCallback( const char *pSourceName, const char *pTargetName, const char *pPathID, void *pExtraData )
|
static bool CaptionCreateCallback( const char *pSourceName, const char *pTargetName, const char *pPathID, void *pExtraData )
|
||||||
{
|
{
|
||||||
// Generate the file
|
// Generate the file
|
||||||
CUtlBuffer buf;
|
CUtlBuffer buf;
|
||||||
bool bOk = g_pFullFileSystem->ReadFile( pSourceName, pPathID, buf );
|
bool bOk = g_pFullFileSystem->ReadFile( pSourceName, pPathID, buf );
|
||||||
if ( bOk )
|
if ( bOk )
|
||||||
{
|
{
|
||||||
bOk = SwapClosecaptionFile( buf.Base() );
|
bOk = SwapClosecaptionFile( buf.Base() );
|
||||||
if ( bOk )
|
if ( bOk )
|
||||||
{
|
{
|
||||||
bOk = g_pFullFileSystem->WriteFile( pTargetName, pPathID, buf );
|
bOk = g_pFullFileSystem->WriteFile( pTargetName, pPathID, buf );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Warning( "Failed to create %s\n", pTargetName );
|
Warning( "Failed to create %s\n", pTargetName );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return bOk;
|
return bOk;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Calls utility function UpdateOrCreate
|
// Calls utility function UpdateOrCreate
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
int UpdateOrCreateCaptionFile( const char *pSourceName, char *pTargetName, int maxLen, bool bForce )
|
int UpdateOrCreateCaptionFile( const char *pSourceName, char *pTargetName, int maxLen, bool bForce )
|
||||||
{
|
{
|
||||||
return ::UpdateOrCreate( pSourceName, pTargetName, maxLen, "GAME", CaptionCreateCallback, bForce );
|
return ::UpdateOrCreate( pSourceName, pTargetName, maxLen, "GAME", CaptionCreateCallback, bForce );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
@ -1,370 +1,370 @@
|
|||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// hl2orange.spa.h
|
// hl2orange.spa.h
|
||||||
//
|
//
|
||||||
// Auto-generated on Thursday, 13 September 2007 at 16:59:17
|
// Auto-generated on Thursday, 13 September 2007 at 16:59:17
|
||||||
// XLAST project version 1.0.402.0
|
// XLAST project version 1.0.402.0
|
||||||
// SPA Compiler version 2.0.6274.0
|
// SPA Compiler version 2.0.6274.0
|
||||||
//
|
//
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef __THE_ORANGE_BOX_SPA_H__
|
#ifndef __THE_ORANGE_BOX_SPA_H__
|
||||||
#define __THE_ORANGE_BOX_SPA_H__
|
#define __THE_ORANGE_BOX_SPA_H__
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Title info
|
// Title info
|
||||||
//
|
//
|
||||||
|
|
||||||
#define TITLEID_THE_ORANGE_BOX 0x4541080F
|
#define TITLEID_THE_ORANGE_BOX 0x4541080F
|
||||||
|
|
||||||
//
|
//
|
||||||
// Context ids
|
// Context ids
|
||||||
//
|
//
|
||||||
// These values are passed as the dwContextId to XUserSetContext.
|
// These values are passed as the dwContextId to XUserSetContext.
|
||||||
//
|
//
|
||||||
|
|
||||||
#define CONTEXT_CHAPTER_HL2 0
|
#define CONTEXT_CHAPTER_HL2 0
|
||||||
#define CONTEXT_SCENARIO 1
|
#define CONTEXT_SCENARIO 1
|
||||||
#define CONTEXT_GAME 2
|
#define CONTEXT_GAME 2
|
||||||
#define CONTEXT_CHAPTER_EP1 3
|
#define CONTEXT_CHAPTER_EP1 3
|
||||||
#define CONTEXT_CHAPTER_EP2 4
|
#define CONTEXT_CHAPTER_EP2 4
|
||||||
#define CONTEXT_CHAPTER_PORTAL 5
|
#define CONTEXT_CHAPTER_PORTAL 5
|
||||||
|
|
||||||
//
|
//
|
||||||
// Context values
|
// Context values
|
||||||
//
|
//
|
||||||
// These values are passed as the dwContextValue to XUserSetContext.
|
// These values are passed as the dwContextValue to XUserSetContext.
|
||||||
//
|
//
|
||||||
|
|
||||||
// Values for CONTEXT_CHAPTER_HL2
|
// Values for CONTEXT_CHAPTER_HL2
|
||||||
|
|
||||||
#define CONTEXT_CHAPTER_HL2_POINT_INSERTION 0
|
#define CONTEXT_CHAPTER_HL2_POINT_INSERTION 0
|
||||||
#define CONTEXT_CHAPTER_HL2_A_RED_LETTER_DAY 1
|
#define CONTEXT_CHAPTER_HL2_A_RED_LETTER_DAY 1
|
||||||
#define CONTEXT_CHAPTER_HL2_ROUTE_KANAL 2
|
#define CONTEXT_CHAPTER_HL2_ROUTE_KANAL 2
|
||||||
#define CONTEXT_CHAPTER_HL2_WATER_HAZARD 3
|
#define CONTEXT_CHAPTER_HL2_WATER_HAZARD 3
|
||||||
#define CONTEXT_CHAPTER_HL2_BLACK_MESA_EAST 4
|
#define CONTEXT_CHAPTER_HL2_BLACK_MESA_EAST 4
|
||||||
#define CONTEXT_CHAPTER_HL2_RAVENHOLM 5
|
#define CONTEXT_CHAPTER_HL2_RAVENHOLM 5
|
||||||
#define CONTEXT_CHAPTER_HL2_HIGHWAY_17 6
|
#define CONTEXT_CHAPTER_HL2_HIGHWAY_17 6
|
||||||
#define CONTEXT_CHAPTER_HL2_SANDTRAPS 7
|
#define CONTEXT_CHAPTER_HL2_SANDTRAPS 7
|
||||||
#define CONTEXT_CHAPTER_HL2_NOVA_PROSPEKT 8
|
#define CONTEXT_CHAPTER_HL2_NOVA_PROSPEKT 8
|
||||||
#define CONTEXT_CHAPTER_HL2_ENTANGLEMENT 9
|
#define CONTEXT_CHAPTER_HL2_ENTANGLEMENT 9
|
||||||
#define CONTEXT_CHAPTER_HL2_ANTICITIZEN_ONE 10
|
#define CONTEXT_CHAPTER_HL2_ANTICITIZEN_ONE 10
|
||||||
#define CONTEXT_CHAPTER_HL2_FOLLOW_FREEMAN 11
|
#define CONTEXT_CHAPTER_HL2_FOLLOW_FREEMAN 11
|
||||||
#define CONTEXT_CHAPTER_HL2_OUR_BENEFACTORS 12
|
#define CONTEXT_CHAPTER_HL2_OUR_BENEFACTORS 12
|
||||||
#define CONTEXT_CHAPTER_HL2_DARK_ENERGY 13
|
#define CONTEXT_CHAPTER_HL2_DARK_ENERGY 13
|
||||||
|
|
||||||
// Values for CONTEXT_SCENARIO
|
// Values for CONTEXT_SCENARIO
|
||||||
|
|
||||||
#define CONTEXT_SCENARIO_CTF_2FORT 0
|
#define CONTEXT_SCENARIO_CTF_2FORT 0
|
||||||
#define CONTEXT_SCENARIO_CP_DUSTBOWL 1
|
#define CONTEXT_SCENARIO_CP_DUSTBOWL 1
|
||||||
#define CONTEXT_SCENARIO_CP_GRANARY 2
|
#define CONTEXT_SCENARIO_CP_GRANARY 2
|
||||||
#define CONTEXT_SCENARIO_CP_WELL 3
|
#define CONTEXT_SCENARIO_CP_WELL 3
|
||||||
#define CONTEXT_SCENARIO_CP_GRAVELPIT 4
|
#define CONTEXT_SCENARIO_CP_GRAVELPIT 4
|
||||||
#define CONTEXT_SCENARIO_TC_HYDRO 5
|
#define CONTEXT_SCENARIO_TC_HYDRO 5
|
||||||
#define CONTEXT_SCENARIO_CTF_CLOAK 6
|
#define CONTEXT_SCENARIO_CTF_CLOAK 6
|
||||||
#define CONTEXT_SCENARIO_CP_CLOAK 7
|
#define CONTEXT_SCENARIO_CP_CLOAK 7
|
||||||
|
|
||||||
// Values for CONTEXT_GAME
|
// Values for CONTEXT_GAME
|
||||||
|
|
||||||
#define CONTEXT_GAME_GAME_HALF_LIFE_2 0
|
#define CONTEXT_GAME_GAME_HALF_LIFE_2 0
|
||||||
#define CONTEXT_GAME_GAME_EPISODE_ONE 1
|
#define CONTEXT_GAME_GAME_EPISODE_ONE 1
|
||||||
#define CONTEXT_GAME_GAME_EPISODE_TWO 2
|
#define CONTEXT_GAME_GAME_EPISODE_TWO 2
|
||||||
#define CONTEXT_GAME_GAME_PORTAL 3
|
#define CONTEXT_GAME_GAME_PORTAL 3
|
||||||
#define CONTEXT_GAME_GAME_TEAM_FORTRESS 4
|
#define CONTEXT_GAME_GAME_TEAM_FORTRESS 4
|
||||||
|
|
||||||
// Values for CONTEXT_CHAPTER_EP1
|
// Values for CONTEXT_CHAPTER_EP1
|
||||||
|
|
||||||
#define CONTEXT_CHAPTER_EP1_UNDUE_ALARM 0
|
#define CONTEXT_CHAPTER_EP1_UNDUE_ALARM 0
|
||||||
#define CONTEXT_CHAPTER_EP1_DIRECT_INTERVENTION 1
|
#define CONTEXT_CHAPTER_EP1_DIRECT_INTERVENTION 1
|
||||||
#define CONTEXT_CHAPTER_EP1_LOWLIFE 2
|
#define CONTEXT_CHAPTER_EP1_LOWLIFE 2
|
||||||
#define CONTEXT_CHAPTER_EP1_URBAN_FLIGHT 3
|
#define CONTEXT_CHAPTER_EP1_URBAN_FLIGHT 3
|
||||||
#define CONTEXT_CHAPTER_EP1_EXIT_17 4
|
#define CONTEXT_CHAPTER_EP1_EXIT_17 4
|
||||||
|
|
||||||
// Values for CONTEXT_CHAPTER_EP2
|
// Values for CONTEXT_CHAPTER_EP2
|
||||||
|
|
||||||
#define CONTEXT_CHAPTER_EP2_TO_THE_WHITE_FOREST 0
|
#define CONTEXT_CHAPTER_EP2_TO_THE_WHITE_FOREST 0
|
||||||
#define CONTEXT_CHAPTER_EP2_THIS_VORTAL_COIL 1
|
#define CONTEXT_CHAPTER_EP2_THIS_VORTAL_COIL 1
|
||||||
#define CONTEXT_CHAPTER_EP2_FREEMAN_PONTIFEX 2
|
#define CONTEXT_CHAPTER_EP2_FREEMAN_PONTIFEX 2
|
||||||
#define CONTEXT_CHAPTER_EP2_RIDING_SHOTGUN 3
|
#define CONTEXT_CHAPTER_EP2_RIDING_SHOTGUN 3
|
||||||
#define CONTEXT_CHAPTER_EP2_UNDER_THE_RADAR 4
|
#define CONTEXT_CHAPTER_EP2_UNDER_THE_RADAR 4
|
||||||
#define CONTEXT_CHAPTER_EP2_OUR_MUTUAL_FIEND 5
|
#define CONTEXT_CHAPTER_EP2_OUR_MUTUAL_FIEND 5
|
||||||
#define CONTEXT_CHAPTER_EP2_T_MINUS_ONE 6
|
#define CONTEXT_CHAPTER_EP2_T_MINUS_ONE 6
|
||||||
|
|
||||||
// Values for CONTEXT_CHAPTER_PORTAL
|
// Values for CONTEXT_CHAPTER_PORTAL
|
||||||
|
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_00 0
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_00 0
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_04 1
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_04 1
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_08 2
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_08 2
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_10 3
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_10 3
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_13 4
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_13 4
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_14 5
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_14 5
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_15 6
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_15 6
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_16 7
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_16 7
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_17 8
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_17 8
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_18 9
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_18 9
|
||||||
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_19 10
|
#define CONTEXT_CHAPTER_PORTAL_TESTCHAMBER_19 10
|
||||||
|
|
||||||
// Values for X_CONTEXT_PRESENCE
|
// Values for X_CONTEXT_PRESENCE
|
||||||
|
|
||||||
#define CONTEXT_PRESENCE_TF_CP 0
|
#define CONTEXT_PRESENCE_TF_CP 0
|
||||||
#define CONTEXT_PRESENCE_TF_CTF_LOSING 1
|
#define CONTEXT_PRESENCE_TF_CTF_LOSING 1
|
||||||
#define CONTEXT_PRESENCE_TF_CTF_TIED 2
|
#define CONTEXT_PRESENCE_TF_CTF_TIED 2
|
||||||
#define CONTEXT_PRESENCE_TF_CTF_WINNING 3
|
#define CONTEXT_PRESENCE_TF_CTF_WINNING 3
|
||||||
#define CONTEXT_PRESENCE_APPCHOOSER 4
|
#define CONTEXT_PRESENCE_APPCHOOSER 4
|
||||||
#define CONTEXT_PRESENCE_MENU 5
|
#define CONTEXT_PRESENCE_MENU 5
|
||||||
#define CONTEXT_PRESENCE_EP1_INGAME 6
|
#define CONTEXT_PRESENCE_EP1_INGAME 6
|
||||||
#define CONTEXT_PRESENCE_HL2_INGAME 7
|
#define CONTEXT_PRESENCE_HL2_INGAME 7
|
||||||
#define CONTEXT_PRESENCE_EP2_INGAME 8
|
#define CONTEXT_PRESENCE_EP2_INGAME 8
|
||||||
#define CONTEXT_PRESENCE_PORTAL_INGAME 9
|
#define CONTEXT_PRESENCE_PORTAL_INGAME 9
|
||||||
#define CONTEXT_PRESENCE_COMMENTARY 10
|
#define CONTEXT_PRESENCE_COMMENTARY 10
|
||||||
#define CONTEXT_PRESENCE_IDLE 11
|
#define CONTEXT_PRESENCE_IDLE 11
|
||||||
|
|
||||||
// Values for X_CONTEXT_GAME_MODE
|
// Values for X_CONTEXT_GAME_MODE
|
||||||
|
|
||||||
#define CONTEXT_GAME_MODE_MULTIPLAYER 0
|
#define CONTEXT_GAME_MODE_MULTIPLAYER 0
|
||||||
#define CONTEXT_GAME_MODE_SINGLEPLAYER 1
|
#define CONTEXT_GAME_MODE_SINGLEPLAYER 1
|
||||||
|
|
||||||
//
|
//
|
||||||
// Property ids
|
// Property ids
|
||||||
//
|
//
|
||||||
// These values are passed as the dwPropertyId value to XUserSetProperty
|
// These values are passed as the dwPropertyId value to XUserSetProperty
|
||||||
// and as the dwPropertyId value in the XUSER_PROPERTY structure.
|
// and as the dwPropertyId value in the XUSER_PROPERTY structure.
|
||||||
//
|
//
|
||||||
|
|
||||||
#define PROPERTY_CAPS_OWNED 0x10000000
|
#define PROPERTY_CAPS_OWNED 0x10000000
|
||||||
#define PROPERTY_CAPS_TOTAL 0x10000001
|
#define PROPERTY_CAPS_TOTAL 0x10000001
|
||||||
#define PROPERTY_PLAYER_TEAM_SCORE 0x10000002
|
#define PROPERTY_PLAYER_TEAM_SCORE 0x10000002
|
||||||
#define PROPERTY_OPPONENT_TEAM_SCORE 0x10000003
|
#define PROPERTY_OPPONENT_TEAM_SCORE 0x10000003
|
||||||
#define PROPERTY_FLAG_CAPTURE_LIMIT 0x1000000B
|
#define PROPERTY_FLAG_CAPTURE_LIMIT 0x1000000B
|
||||||
#define PROPERTY_NUMBER_OF_ROUNDS 0x1000000C
|
#define PROPERTY_NUMBER_OF_ROUNDS 0x1000000C
|
||||||
#define PROPERTY_GAME_SIZE 0x1000000D
|
#define PROPERTY_GAME_SIZE 0x1000000D
|
||||||
#define PROPERTY_AUTOBALANCE 0x1000000E
|
#define PROPERTY_AUTOBALANCE 0x1000000E
|
||||||
#define PROPERTY_PRIVATE_SLOTS 0x1000000F
|
#define PROPERTY_PRIVATE_SLOTS 0x1000000F
|
||||||
#define PROPERTY_MAX_GAME_TIME 0x10000010
|
#define PROPERTY_MAX_GAME_TIME 0x10000010
|
||||||
#define PROPERTY_NUMBER_OF_KILLS 0x10000011
|
#define PROPERTY_NUMBER_OF_KILLS 0x10000011
|
||||||
#define PROPERTY_DAMAGE_DEALT 0x10000012
|
#define PROPERTY_DAMAGE_DEALT 0x10000012
|
||||||
#define PROPERTY_PLAY_TIME 0x10000013
|
#define PROPERTY_PLAY_TIME 0x10000013
|
||||||
#define PROPERTY_POINT_CAPTURES 0x10000014
|
#define PROPERTY_POINT_CAPTURES 0x10000014
|
||||||
#define PROPERTY_POINT_DEFENSES 0x10000015
|
#define PROPERTY_POINT_DEFENSES 0x10000015
|
||||||
#define PROPERTY_DOMINATIONS 0x10000016
|
#define PROPERTY_DOMINATIONS 0x10000016
|
||||||
#define PROPERTY_REVENGE 0x10000017
|
#define PROPERTY_REVENGE 0x10000017
|
||||||
#define PROPERTY_BUILDINGS_DESTROYED 0x10000019
|
#define PROPERTY_BUILDINGS_DESTROYED 0x10000019
|
||||||
#define PROPERTY_HEADSHOTS 0x1000001A
|
#define PROPERTY_HEADSHOTS 0x1000001A
|
||||||
#define PROPERTY_HEALTH_POINTS_HEALED 0x1000001B
|
#define PROPERTY_HEALTH_POINTS_HEALED 0x1000001B
|
||||||
#define PROPERTY_INVULNS 0x1000001C
|
#define PROPERTY_INVULNS 0x1000001C
|
||||||
#define PROPERTY_KILL_ASSISTS 0x1000001D
|
#define PROPERTY_KILL_ASSISTS 0x1000001D
|
||||||
#define PROPERTY_BACKSTABS 0x1000001E
|
#define PROPERTY_BACKSTABS 0x1000001E
|
||||||
#define PROPERTY_HEALTH_POINTS_LEACHED 0x1000001F
|
#define PROPERTY_HEALTH_POINTS_LEACHED 0x1000001F
|
||||||
#define PROPERTY_BUILDINGS_BUILT 0x10000020
|
#define PROPERTY_BUILDINGS_BUILT 0x10000020
|
||||||
#define PROPERTY_SENTRY_KILLS 0x10000021
|
#define PROPERTY_SENTRY_KILLS 0x10000021
|
||||||
#define PROPERTY_TELEPORTS 0x10000022
|
#define PROPERTY_TELEPORTS 0x10000022
|
||||||
#define PROPERTY_KILLS 0x10000023
|
#define PROPERTY_KILLS 0x10000023
|
||||||
#define PROPERTY_NUMBER_OF_TEAMS 0x10000025
|
#define PROPERTY_NUMBER_OF_TEAMS 0x10000025
|
||||||
#define PROPERTY_TEAM_RED 0x10000026
|
#define PROPERTY_TEAM_RED 0x10000026
|
||||||
#define PROPERTY_TEAM_BLUE 0x10000027
|
#define PROPERTY_TEAM_BLUE 0x10000027
|
||||||
#define PROPERTY_TEAM_SPECTATOR 0x10000028
|
#define PROPERTY_TEAM_SPECTATOR 0x10000028
|
||||||
#define PROPERTY_TEAM 0x10000029
|
#define PROPERTY_TEAM 0x10000029
|
||||||
#define PROPERTY_WIN_LIMIT 0x1000002A
|
#define PROPERTY_WIN_LIMIT 0x1000002A
|
||||||
#define PROPERTY_RANKING_TEST 0x2000000A
|
#define PROPERTY_RANKING_TEST 0x2000000A
|
||||||
#define PROPERTY_POINTS_SCORED 0x20000018
|
#define PROPERTY_POINTS_SCORED 0x20000018
|
||||||
|
|
||||||
//
|
//
|
||||||
// Achievement ids
|
// Achievement ids
|
||||||
//
|
//
|
||||||
// These values are used in the dwAchievementId member of the
|
// These values are used in the dwAchievementId member of the
|
||||||
// XUSER_ACHIEVEMENT structure that is used with
|
// XUSER_ACHIEVEMENT structure that is used with
|
||||||
// XUserWriteAchievements and XUserCreateAchievementEnumerator.
|
// XUserWriteAchievements and XUserCreateAchievementEnumerator.
|
||||||
//
|
//
|
||||||
|
|
||||||
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHPHYSICS 43
|
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHPHYSICS 43
|
||||||
#define ACHIEVEMENT_HLX_KILL_ENEMY_WITHHOPPERMINE 44
|
#define ACHIEVEMENT_HLX_KILL_ENEMY_WITHHOPPERMINE 44
|
||||||
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHMANHACK 45
|
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHMANHACK 45
|
||||||
#define ACHIEVEMENT_HLX_KILL_SOLDIER_WITHHISGRENADE 46
|
#define ACHIEVEMENT_HLX_KILL_SOLDIER_WITHHISGRENADE 46
|
||||||
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHONEENERGYBALL 47
|
#define ACHIEVEMENT_HLX_KILL_ENEMIES_WITHONEENERGYBALL 47
|
||||||
#define ACHIEVEMENT_HLX_KILL_ELITESOLDIER_WITHHISENERGYBALL 48
|
#define ACHIEVEMENT_HLX_KILL_ELITESOLDIER_WITHHISENERGYBALL 48
|
||||||
#define ACHIEVEMENT_EPX_GET_ZOMBINEGRENADE 50
|
#define ACHIEVEMENT_EPX_GET_ZOMBINEGRENADE 50
|
||||||
#define ACHIEVEMENT_EPX_KILL_ZOMBIES_WITHFLARES 51
|
#define ACHIEVEMENT_EPX_KILL_ZOMBIES_WITHFLARES 51
|
||||||
#define ACHIEVEMENT_HL2_HIT_CANCOP_WITHCAN 52
|
#define ACHIEVEMENT_HL2_HIT_CANCOP_WITHCAN 52
|
||||||
#define ACHIEVEMENT_HL2_PUT_CANINTRASH 53
|
#define ACHIEVEMENT_HL2_PUT_CANINTRASH 53
|
||||||
#define ACHIEVEMENT_HL2_ESCAPE_APARTMENTRAID 54
|
#define ACHIEVEMENT_HL2_ESCAPE_APARTMENTRAID 54
|
||||||
#define ACHIEVEMENT_HL2_BREAK_MINITELEPORTER 55
|
#define ACHIEVEMENT_HL2_BREAK_MINITELEPORTER 55
|
||||||
#define ACHIEVEMENT_HL2_GET_CROWBAR 56
|
#define ACHIEVEMENT_HL2_GET_CROWBAR 56
|
||||||
#define ACHIEVEMENT_HL2_KILL_BARNACLESWITHBARREL 57
|
#define ACHIEVEMENT_HL2_KILL_BARNACLESWITHBARREL 57
|
||||||
#define ACHIEVEMENT_HL2_GET_AIRBOAT 58
|
#define ACHIEVEMENT_HL2_GET_AIRBOAT 58
|
||||||
#define ACHIEVEMENT_HL2_GET_AIRBOATGUN 60
|
#define ACHIEVEMENT_HL2_GET_AIRBOATGUN 60
|
||||||
#define ACHIEVEMENT_HL2_FIND_VORTIGAUNTCAVE 61
|
#define ACHIEVEMENT_HL2_FIND_VORTIGAUNTCAVE 61
|
||||||
#define ACHIEVEMENT_HL2_KILL_CHOPPER 62
|
#define ACHIEVEMENT_HL2_KILL_CHOPPER 62
|
||||||
#define ACHIEVEMENT_HL2_FIND_HEVFACEPLATE 63
|
#define ACHIEVEMENT_HL2_FIND_HEVFACEPLATE 63
|
||||||
#define ACHIEVEMENT_HL2_GET_GRAVITYGUN 64
|
#define ACHIEVEMENT_HL2_GET_GRAVITYGUN 64
|
||||||
#define ACHIEVEMENT_HL2_MAKEABASKET 65
|
#define ACHIEVEMENT_HL2_MAKEABASKET 65
|
||||||
#define ACHIEVEMENT_HL2_BEAT_RAVENHOLM_NOWEAPONS 66
|
#define ACHIEVEMENT_HL2_BEAT_RAVENHOLM_NOWEAPONS 66
|
||||||
#define ACHIEVEMENT_HL2_BEAT_CEMETERY 67
|
#define ACHIEVEMENT_HL2_BEAT_CEMETERY 67
|
||||||
#define ACHIEVEMENT_HL2_KILL_ENEMIES_WITHCRANE 68
|
#define ACHIEVEMENT_HL2_KILL_ENEMIES_WITHCRANE 68
|
||||||
#define ACHIEVEMENT_HL2_PIN_SOLDIER_TOBILLBOARD 69
|
#define ACHIEVEMENT_HL2_PIN_SOLDIER_TOBILLBOARD 69
|
||||||
#define ACHIEVEMENT_HL2_KILL_ODESSAGUNSHIP 70
|
#define ACHIEVEMENT_HL2_KILL_ODESSAGUNSHIP 70
|
||||||
#define ACHIEVEMENT_HL2_KILL_THREEGUNSHIPS 71
|
#define ACHIEVEMENT_HL2_KILL_THREEGUNSHIPS 71
|
||||||
#define ACHIEVEMENT_HL2_BEAT_DONTTOUCHSAND 72
|
#define ACHIEVEMENT_HL2_BEAT_DONTTOUCHSAND 72
|
||||||
#define ACHIEVEMENT_HL2_KILL_ENEMIES_WITHANTLIONS 74
|
#define ACHIEVEMENT_HL2_KILL_ENEMIES_WITHANTLIONS 74
|
||||||
#define ACHIEVEMENT_HL2_KILL_ENEMY_WITHTOILET 75
|
#define ACHIEVEMENT_HL2_KILL_ENEMY_WITHTOILET 75
|
||||||
#define ACHIEVEMENT_HL2_BEAT_TURRETSTANDOFF2 76
|
#define ACHIEVEMENT_HL2_BEAT_TURRETSTANDOFF2 76
|
||||||
#define ACHIEVEMENT_HL2_BEAT_TOXICTUNNEL 78
|
#define ACHIEVEMENT_HL2_BEAT_TOXICTUNNEL 78
|
||||||
#define ACHIEVEMENT_HL2_BEAT_PLAZASTANDOFF 79
|
#define ACHIEVEMENT_HL2_BEAT_PLAZASTANDOFF 79
|
||||||
#define ACHIEVEMENT_HL2_KILL_ALLC1709SNIPERS 80
|
#define ACHIEVEMENT_HL2_KILL_ALLC1709SNIPERS 80
|
||||||
#define ACHIEVEMENT_HL2_BEAT_SUPRESSIONDEVICE 81
|
#define ACHIEVEMENT_HL2_BEAT_SUPRESSIONDEVICE 81
|
||||||
#define ACHIEVEMENT_HL2_BEAT_C1713STRIDERSTANDOFF 82
|
#define ACHIEVEMENT_HL2_BEAT_C1713STRIDERSTANDOFF 82
|
||||||
#define ACHIEVEMENT_HL2_BEAT_GAME 84
|
#define ACHIEVEMENT_HL2_BEAT_GAME 84
|
||||||
#define ACHIEVEMENT_HL2_FIND_ALLLAMBDAS 86
|
#define ACHIEVEMENT_HL2_FIND_ALLLAMBDAS 86
|
||||||
#define ACHIEVEMENT_EP1_BEAT_MAINELEVATOR 87
|
#define ACHIEVEMENT_EP1_BEAT_MAINELEVATOR 87
|
||||||
#define ACHIEVEMENT_EP1_BEAT_CITADELCORE 88
|
#define ACHIEVEMENT_EP1_BEAT_CITADELCORE 88
|
||||||
#define ACHIEVEMENT_EP1_BEAT_CITADELCORE_NOSTALKERKILLS 89
|
#define ACHIEVEMENT_EP1_BEAT_CITADELCORE_NOSTALKERKILLS 89
|
||||||
#define ACHIEVEMENT_EP1_KILL_ANTLIONS_WITHCARS 90
|
#define ACHIEVEMENT_EP1_KILL_ANTLIONS_WITHCARS 90
|
||||||
#define ACHIEVEMENT_EP1_BEAT_GARAGEELEVATORSTANDOFF 91
|
#define ACHIEVEMENT_EP1_BEAT_GARAGEELEVATORSTANDOFF 91
|
||||||
#define ACHIEVEMENT_EP1_KILL_ENEMIES_WITHSNIPERALYX 92
|
#define ACHIEVEMENT_EP1_KILL_ENEMIES_WITHSNIPERALYX 92
|
||||||
#define ACHIEVEMENT_EP1_BEAT_HOSPITALATTICGUNSHIP 93
|
#define ACHIEVEMENT_EP1_BEAT_HOSPITALATTICGUNSHIP 93
|
||||||
#define ACHIEVEMENT_EP1_BEAT_CITIZENESCORT_NOCITIZENDEATHS 94
|
#define ACHIEVEMENT_EP1_BEAT_CITIZENESCORT_NOCITIZENDEATHS 94
|
||||||
#define ACHIEVEMENT_EP1_BEAT_GAME 95
|
#define ACHIEVEMENT_EP1_BEAT_GAME 95
|
||||||
#define ACHIEVEMENT_EP1_BEAT_GAME_ONEBULLET 96
|
#define ACHIEVEMENT_EP1_BEAT_GAME_ONEBULLET 96
|
||||||
#define ACHIEVEMENT_EP2_KILL_POISONANTLION 97
|
#define ACHIEVEMENT_EP2_KILL_POISONANTLION 97
|
||||||
#define ACHIEVEMENT_EP2_KILL_ALLGRUBS 98
|
#define ACHIEVEMENT_EP2_KILL_ALLGRUBS 98
|
||||||
#define ACHIEVEMENT_EP2_BREAK_ALLWEBS 99
|
#define ACHIEVEMENT_EP2_BREAK_ALLWEBS 99
|
||||||
#define ACHIEVEMENT_EP2_BEAT_ANTLIONINVASION 100
|
#define ACHIEVEMENT_EP2_BEAT_ANTLIONINVASION 100
|
||||||
#define ACHIEVEMENT_EP2_BEAT_ANTLIONGUARDS 101
|
#define ACHIEVEMENT_EP2_BEAT_ANTLIONGUARDS 101
|
||||||
#define ACHIEVEMENT_EP2_KILL_ENEMIES_WITHCAR 102
|
#define ACHIEVEMENT_EP2_KILL_ENEMIES_WITHCAR 102
|
||||||
#define ACHIEVEMENT_EP2_BEAT_HUNTERAMBUSH 103
|
#define ACHIEVEMENT_EP2_BEAT_HUNTERAMBUSH 103
|
||||||
#define ACHIEVEMENT_EP2_KILL_CHOPPER_NOMISSES 104
|
#define ACHIEVEMENT_EP2_KILL_CHOPPER_NOMISSES 104
|
||||||
#define ACHIEVEMENT_EP2_KILL_COMBINECANNON 105
|
#define ACHIEVEMENT_EP2_KILL_COMBINECANNON 105
|
||||||
#define ACHIEVEMENT_EP2_FIND_ALLRADARCACHES 106
|
#define ACHIEVEMENT_EP2_FIND_ALLRADARCACHES 106
|
||||||
#define ACHIEVEMENT_EP2_BEAT_ROCKETCACHEPUZZLE 107
|
#define ACHIEVEMENT_EP2_BEAT_ROCKETCACHEPUZZLE 107
|
||||||
#define ACHIEVEMENT_EP2_BEAT_RACEWITHDOG 108
|
#define ACHIEVEMENT_EP2_BEAT_RACEWITHDOG 108
|
||||||
#define ACHIEVEMENT_EP2_BEAT_WHITEFORESTINN 109
|
#define ACHIEVEMENT_EP2_BEAT_WHITEFORESTINN 109
|
||||||
#define ACHIEVEMENT_EP2_PUT_ITEMINROCKET 110
|
#define ACHIEVEMENT_EP2_PUT_ITEMINROCKET 110
|
||||||
#define ACHIEVEMENT_EP2_BEAT_MISSILESILO2 111
|
#define ACHIEVEMENT_EP2_BEAT_MISSILESILO2 111
|
||||||
#define ACHIEVEMENT_EP2_BEAT_OUTLAND12_NOBUILDINGSDESTROYED 112
|
#define ACHIEVEMENT_EP2_BEAT_OUTLAND12_NOBUILDINGSDESTROYED 112
|
||||||
#define ACHIEVEMENT_EP2_BEAT_GAME 113
|
#define ACHIEVEMENT_EP2_BEAT_GAME 113
|
||||||
#define ACHIEVEMENT_EP2_KILL_HUNTER_WITHFLECHETTES 114
|
#define ACHIEVEMENT_EP2_KILL_HUNTER_WITHFLECHETTES 114
|
||||||
#define ACHIEVEMENT_PORTAL_GET_PORTALGUNS 115
|
#define ACHIEVEMENT_PORTAL_GET_PORTALGUNS 115
|
||||||
#define ACHIEVEMENT_PORTAL_KILL_COMPANIONCUBE 116
|
#define ACHIEVEMENT_PORTAL_KILL_COMPANIONCUBE 116
|
||||||
#define ACHIEVEMENT_PORTAL_ESCAPE_TESTCHAMBERS 117
|
#define ACHIEVEMENT_PORTAL_ESCAPE_TESTCHAMBERS 117
|
||||||
#define ACHIEVEMENT_PORTAL_BEAT_GAME 118
|
#define ACHIEVEMENT_PORTAL_BEAT_GAME 118
|
||||||
#define ACHIEVEMENT_PORTAL_INFINITEFALL 119
|
#define ACHIEVEMENT_PORTAL_INFINITEFALL 119
|
||||||
#define ACHIEVEMENT_PORTAL_LONGJUMP 120
|
#define ACHIEVEMENT_PORTAL_LONGJUMP 120
|
||||||
#define ACHIEVEMENT_PORTAL_BEAT_2ADVANCEDMAPS 121
|
#define ACHIEVEMENT_PORTAL_BEAT_2ADVANCEDMAPS 121
|
||||||
#define ACHIEVEMENT_PORTAL_BEAT_4ADVANCEDMAPS 122
|
#define ACHIEVEMENT_PORTAL_BEAT_4ADVANCEDMAPS 122
|
||||||
#define ACHIEVEMENT_PORTAL_BEAT_6ADVANCEDMAPS 123
|
#define ACHIEVEMENT_PORTAL_BEAT_6ADVANCEDMAPS 123
|
||||||
#define ACHIEVEMENT_PORTAL_GET_ALLBRONZE 124
|
#define ACHIEVEMENT_PORTAL_GET_ALLBRONZE 124
|
||||||
#define ACHIEVEMENT_PORTAL_GET_ALLSILVER 125
|
#define ACHIEVEMENT_PORTAL_GET_ALLSILVER 125
|
||||||
#define ACHIEVEMENT_PORTAL_GET_ALLGOLD 126
|
#define ACHIEVEMENT_PORTAL_GET_ALLGOLD 126
|
||||||
#define ACHIEVEMENT_TF_GET_TURRETKILLS 127
|
#define ACHIEVEMENT_TF_GET_TURRETKILLS 127
|
||||||
#define ACHIEVEMENT_TF_KILL_NEMESIS 128
|
#define ACHIEVEMENT_TF_KILL_NEMESIS 128
|
||||||
#define ACHIEVEMENT_TF_GET_CONSECUTIVEKILLS_NODEATHS 129
|
#define ACHIEVEMENT_TF_GET_CONSECUTIVEKILLS_NODEATHS 129
|
||||||
#define ACHIEVEMENT_TF_GET_HEALED_BYENEMY 130
|
#define ACHIEVEMENT_TF_GET_HEALED_BYENEMY 130
|
||||||
#define ACHIEVEMENT_TF_PLAY_GAME_FRIENDSONLY 131
|
#define ACHIEVEMENT_TF_PLAY_GAME_FRIENDSONLY 131
|
||||||
#define ACHIEVEMENT_TF_WIN_MULTIPLEGAMES 132
|
#define ACHIEVEMENT_TF_WIN_MULTIPLEGAMES 132
|
||||||
#define ACHIEVEMENT_TF_GET_MULTIPLEKILLS 133
|
#define ACHIEVEMENT_TF_GET_MULTIPLEKILLS 133
|
||||||
#define ACHIEVEMENT_TF_WIN_2FORT_NOENEMYCAPS 134
|
#define ACHIEVEMENT_TF_WIN_2FORT_NOENEMYCAPS 134
|
||||||
#define ACHIEVEMENT_TF_WIN_WELL_MINIMUMTIME 135
|
#define ACHIEVEMENT_TF_WIN_WELL_MINIMUMTIME 135
|
||||||
#define ACHIEVEMENT_TF_WIN_HYDRO_NOENEMYCAPS 136
|
#define ACHIEVEMENT_TF_WIN_HYDRO_NOENEMYCAPS 136
|
||||||
#define ACHIEVEMENT_TF_WIN_DUSTBOWL_NOENEMYCAPS 137
|
#define ACHIEVEMENT_TF_WIN_DUSTBOWL_NOENEMYCAPS 137
|
||||||
#define ACHIEVEMENT_TF_WIN_GRAVELPIT_NOENEMYCAPS 138
|
#define ACHIEVEMENT_TF_WIN_GRAVELPIT_NOENEMYCAPS 138
|
||||||
#define ACHIEVEMENT_TF_PLAY_GAME_EVERYCLASS 139
|
#define ACHIEVEMENT_TF_PLAY_GAME_EVERYCLASS 139
|
||||||
#define ACHIEVEMENT_TF_PLAY_GAME_EVERYMAP 140
|
#define ACHIEVEMENT_TF_PLAY_GAME_EVERYMAP 140
|
||||||
#define ACHIEVEMENT_TF_GET_HEALPOINTS 141
|
#define ACHIEVEMENT_TF_GET_HEALPOINTS 141
|
||||||
#define ACHIEVEMENT_TF_BURN_PLAYERSINMINIMIMTIME 142
|
#define ACHIEVEMENT_TF_BURN_PLAYERSINMINIMIMTIME 142
|
||||||
#define ACHIEVEMENT_HL2_DISINTEGRATE_SOLDIERSINFIELD 143
|
#define ACHIEVEMENT_HL2_DISINTEGRATE_SOLDIERSINFIELD 143
|
||||||
#define ACHIEVEMENT_HL2_FOLLOW_FREEMAN 144
|
#define ACHIEVEMENT_HL2_FOLLOW_FREEMAN 144
|
||||||
#define ACHIEVEMENT_TF_GET_HEADSHOTS 145
|
#define ACHIEVEMENT_TF_GET_HEADSHOTS 145
|
||||||
#define ACHIEVEMENT_PORTAL_DETACH_ALL_CAMERAS 146
|
#define ACHIEVEMENT_PORTAL_DETACH_ALL_CAMERAS 146
|
||||||
#define ACHIEVEMENT_PORTAL_HIT_TURRET_WITH_TURRET 148
|
#define ACHIEVEMENT_PORTAL_HIT_TURRET_WITH_TURRET 148
|
||||||
|
|
||||||
#ifndef _XBOX
|
#ifndef _XBOX
|
||||||
#define ACHIEVEMENT_PORTAL_TRANSMISSION_RECEIVED 149
|
#define ACHIEVEMENT_PORTAL_TRANSMISSION_RECEIVED 149
|
||||||
#define ACHIEVEMENT_TF_GENERAL_KILL_ENEMIES_AFTER_TELEPORTING 150
|
#define ACHIEVEMENT_TF_GENERAL_KILL_ENEMIES_AFTER_TELEPORTING 150
|
||||||
#endif // _XBOX
|
#endif // _XBOX
|
||||||
|
|
||||||
#define ACHIEVEMENT_TF_LAST_ORANGEBOX 150
|
#define ACHIEVEMENT_TF_LAST_ORANGEBOX 150
|
||||||
|
|
||||||
//
|
//
|
||||||
// Stats view ids
|
// Stats view ids
|
||||||
//
|
//
|
||||||
// These are used in the dwViewId member of the XUSER_STATS_SPEC structure
|
// These are used in the dwViewId member of the XUSER_STATS_SPEC structure
|
||||||
// passed to the XUserReadStats* and XUserCreateStatsEnumerator* functions.
|
// passed to the XUserReadStats* and XUserCreateStatsEnumerator* functions.
|
||||||
//
|
//
|
||||||
|
|
||||||
// Skill leaderboards for ranked game modes
|
// Skill leaderboards for ranked game modes
|
||||||
|
|
||||||
#define STATS_VIEW_SKILL_RANKED_MULTIPLAYER 0xFFFF0000
|
#define STATS_VIEW_SKILL_RANKED_MULTIPLAYER 0xFFFF0000
|
||||||
#define STATS_VIEW_SKILL_RANKED_SINGLEPLAYER 0xFFFF0001
|
#define STATS_VIEW_SKILL_RANKED_SINGLEPLAYER 0xFFFF0001
|
||||||
|
|
||||||
// Skill leaderboards for unranked (standard) game modes
|
// Skill leaderboards for unranked (standard) game modes
|
||||||
|
|
||||||
#define STATS_VIEW_SKILL_STANDARD_MULTIPLAYER 0xFFFE0000
|
#define STATS_VIEW_SKILL_STANDARD_MULTIPLAYER 0xFFFE0000
|
||||||
#define STATS_VIEW_SKILL_STANDARD_SINGLEPLAYER 0xFFFE0001
|
#define STATS_VIEW_SKILL_STANDARD_SINGLEPLAYER 0xFFFE0001
|
||||||
|
|
||||||
// Title defined leaderboards
|
// Title defined leaderboards
|
||||||
|
|
||||||
#define STATS_VIEW_PLAYER_MAX_UNRANKED 1
|
#define STATS_VIEW_PLAYER_MAX_UNRANKED 1
|
||||||
#define STATS_VIEW_PLAYER_MAX_RANKED 2
|
#define STATS_VIEW_PLAYER_MAX_RANKED 2
|
||||||
|
|
||||||
//
|
//
|
||||||
// Stats view column ids
|
// Stats view column ids
|
||||||
//
|
//
|
||||||
// These ids are used to read columns of stats views. They are specified in
|
// These ids are used to read columns of stats views. They are specified in
|
||||||
// the rgwColumnIds array of the XUSER_STATS_SPEC structure. Rank, rating
|
// the rgwColumnIds array of the XUSER_STATS_SPEC structure. Rank, rating
|
||||||
// and gamertag are not retrieved as custom columns and so are not included
|
// and gamertag are not retrieved as custom columns and so are not included
|
||||||
// in the following definitions. They can be retrieved from each row's
|
// in the following definitions. They can be retrieved from each row's
|
||||||
// header (e.g., pStatsResults->pViews[x].pRows[y].dwRank, etc.).
|
// header (e.g., pStatsResults->pViews[x].pRows[y].dwRank, etc.).
|
||||||
//
|
//
|
||||||
|
|
||||||
// Column ids for PLAYER_MAX_UNRANKED
|
// Column ids for PLAYER_MAX_UNRANKED
|
||||||
|
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINTS_SCORED 2
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINTS_SCORED 2
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_KILLS 3
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_KILLS 3
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINTS_CAPPED 1
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINTS_CAPPED 1
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_DAMAGE_DEALT 4
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_DAMAGE_DEALT 4
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_PLAY_TIME 5
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_PLAY_TIME 5
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINT_DEFENSES 6
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_POINT_DEFENSES 6
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_DOMINATIONS 7
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_DOMINATIONS 7
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_REVENGE 8
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_REVENGE 8
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BUILDINGS_DESTROYED 9
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BUILDINGS_DESTROYED 9
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEADSHOTS 10
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEADSHOTS 10
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEALTH_POINTS_HEALED 11
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEALTH_POINTS_HEALED 11
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_INVULNS 12
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_INVULNS 12
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_KILL_ASSISTS 13
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_KILL_ASSISTS 13
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BACKSTABS 14
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BACKSTABS 14
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEALTH_POINTS_LEACHED 15
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_HEALTH_POINTS_LEACHED 15
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BUILDINGS_BUILT 16
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_BUILDINGS_BUILT 16
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_SENTRY_KILLS 17
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_SENTRY_KILLS 17
|
||||||
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_TELEPORTS 18
|
#define STATS_COLUMN_PLAYER_MAX_UNRANKED_TELEPORTS 18
|
||||||
|
|
||||||
// Column ids for PLAYER_MAX_RANKED
|
// Column ids for PLAYER_MAX_RANKED
|
||||||
|
|
||||||
#define STATS_COLUMN_PLAYER_MAX_RANKED_POINTS_SCORED 2
|
#define STATS_COLUMN_PLAYER_MAX_RANKED_POINTS_SCORED 2
|
||||||
|
|
||||||
//
|
//
|
||||||
// Matchmaking queries
|
// Matchmaking queries
|
||||||
//
|
//
|
||||||
// These values are passed as the dwProcedureIndex parameter to
|
// These values are passed as the dwProcedureIndex parameter to
|
||||||
// XSessionSearch to indicate which matchmaking query to run.
|
// XSessionSearch to indicate which matchmaking query to run.
|
||||||
//
|
//
|
||||||
|
|
||||||
#define SESSION_MATCH_QUERY_PLAYER_MATCH 0
|
#define SESSION_MATCH_QUERY_PLAYER_MATCH 0
|
||||||
|
|
||||||
//
|
//
|
||||||
// Gamer pictures
|
// Gamer pictures
|
||||||
//
|
//
|
||||||
// These ids are passed as the dwPictureId parameter to XUserAwardGamerTile.
|
// These ids are passed as the dwPictureId parameter to XUserAwardGamerTile.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // __THE_ORANGE_BOX_SPA_H__
|
#endif // __THE_ORANGE_BOX_SPA_H__
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,217 +1,217 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: languages definition
|
// Purpose: languages definition
|
||||||
//
|
//
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
#include "language.h"
|
#include "language.h"
|
||||||
#include "tier0/dbg.h"
|
#include "tier0/dbg.h"
|
||||||
#include "tier1/strtools.h"
|
#include "tier1/strtools.h"
|
||||||
|
|
||||||
// NOTE: This has to be the last file included!
|
// NOTE: This has to be the last file included!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
|
|
||||||
struct Language_t
|
struct Language_t
|
||||||
{
|
{
|
||||||
const char *m_pchName;
|
const char *m_pchName;
|
||||||
const char *m_pchShortName;
|
const char *m_pchShortName;
|
||||||
const char *m_pchVGUILocalizationName;
|
const char *m_pchVGUILocalizationName;
|
||||||
const char *m_pchICUName; // used by osx; ISO-639-1 + ISO-3166-1 alpha-2. http://userguide.icu-project.org/locale/examples
|
const char *m_pchICUName; // used by osx; ISO-639-1 + ISO-3166-1 alpha-2. http://userguide.icu-project.org/locale/examples
|
||||||
ELanguage m_ELanguage;
|
ELanguage m_ELanguage;
|
||||||
int m_LanguageCodeID;
|
int m_LanguageCodeID;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// REVIEW
|
// REVIEW
|
||||||
// es_ES - use new world spanish country code instead?
|
// es_ES - use new world spanish country code instead?
|
||||||
// zh_CN - validate that SC date formats come through
|
// zh_CN - validate that SC date formats come through
|
||||||
// bt_BR - assume we should use Brazilian rather than Iberian portguese
|
// bt_BR - assume we should use Brazilian rather than Iberian portguese
|
||||||
|
|
||||||
static const Language_t s_LanguageNames[] =
|
static const Language_t s_LanguageNames[] =
|
||||||
{
|
{
|
||||||
{ "None", "none", "None", "none", k_Lang_None, 0 },
|
{ "None", "none", "None", "none", k_Lang_None, 0 },
|
||||||
{ "English", "english", "#GameUI_Language_English", "en_US", k_Lang_English, 1033 },
|
{ "English", "english", "#GameUI_Language_English", "en_US", k_Lang_English, 1033 },
|
||||||
{ "German", "german", "#GameUI_Language_German", "de_DE", k_Lang_German, 1031 } ,
|
{ "German", "german", "#GameUI_Language_German", "de_DE", k_Lang_German, 1031 } ,
|
||||||
{ "French", "french", "#GameUI_Language_French", "fr_FR", k_Lang_French, 1036 } ,
|
{ "French", "french", "#GameUI_Language_French", "fr_FR", k_Lang_French, 1036 } ,
|
||||||
{ "Italian", "italian", "#GameUI_Language_Italian", "it_IT", k_Lang_Italian, 1040 } ,
|
{ "Italian", "italian", "#GameUI_Language_Italian", "it_IT", k_Lang_Italian, 1040 } ,
|
||||||
{ "Korean", "koreana", "#GameUI_Language_Korean", "ko_KR", k_Lang_Korean, 1042 } ,
|
{ "Korean", "koreana", "#GameUI_Language_Korean", "ko_KR", k_Lang_Korean, 1042 } ,
|
||||||
{ "Spanish", "spanish", "#GameUI_Language_Spanish", "es_ES", k_Lang_Spanish, 1034 },
|
{ "Spanish", "spanish", "#GameUI_Language_Spanish", "es_ES", k_Lang_Spanish, 1034 },
|
||||||
{ "Simplified_Chinese", "schinese", "#GameUI_Language_Simplified_Chinese", "zh_CN", k_Lang_Simplified_Chinese, 2052 },
|
{ "Simplified_Chinese", "schinese", "#GameUI_Language_Simplified_Chinese", "zh_CN", k_Lang_Simplified_Chinese, 2052 },
|
||||||
{ "Traditional_Chinese", "tchinese", "#GameUI_Language_Traditional_Chinese", "zh_TW", k_Lang_Traditional_Chinese, 1028 },
|
{ "Traditional_Chinese", "tchinese", "#GameUI_Language_Traditional_Chinese", "zh_TW", k_Lang_Traditional_Chinese, 1028 },
|
||||||
{ "Russian", "russian", "#GameUI_Language_Russian", "ru_RU", k_Lang_Russian, 1049 } ,
|
{ "Russian", "russian", "#GameUI_Language_Russian", "ru_RU", k_Lang_Russian, 1049 } ,
|
||||||
{ "Thai", "thai", "#GameUI_Language_Thai", "th_TH", k_Lang_Thai, 1054 } ,
|
{ "Thai", "thai", "#GameUI_Language_Thai", "th_TH", k_Lang_Thai, 1054 } ,
|
||||||
{ "Japanese", "japanese", "#GameUI_Language_Japanese", "ja_JP", k_Lang_Japanese, 1041 } ,
|
{ "Japanese", "japanese", "#GameUI_Language_Japanese", "ja_JP", k_Lang_Japanese, 1041 } ,
|
||||||
{ "Portuguese", "portuguese", "#GameUI_Language_Portuguese", "pt_PT", k_Lang_Portuguese, 2070 } ,
|
{ "Portuguese", "portuguese", "#GameUI_Language_Portuguese", "pt_PT", k_Lang_Portuguese, 2070 } ,
|
||||||
{ "Polish", "polish", "#GameUI_Language_Polish", "pl_PL", k_Lang_Polish, 1045 } ,
|
{ "Polish", "polish", "#GameUI_Language_Polish", "pl_PL", k_Lang_Polish, 1045 } ,
|
||||||
{ "Danish", "danish", "#GameUI_Language_Danish", "da_DK", k_Lang_Danish, 1030 } ,
|
{ "Danish", "danish", "#GameUI_Language_Danish", "da_DK", k_Lang_Danish, 1030 } ,
|
||||||
{ "Dutch", "dutch", "#GameUI_Language_Dutch", "nl_NL", k_Lang_Dutch, 1043 } ,
|
{ "Dutch", "dutch", "#GameUI_Language_Dutch", "nl_NL", k_Lang_Dutch, 1043 } ,
|
||||||
{ "Finnish", "finnish", "#GameUI_Language_Finnish", "fi_FI", k_Lang_Finnish, 1035 } ,
|
{ "Finnish", "finnish", "#GameUI_Language_Finnish", "fi_FI", k_Lang_Finnish, 1035 } ,
|
||||||
{ "Norwegian", "norwegian", "#GameUI_Language_Norwegian", "no_NO", k_Lang_Norwegian, 1044 } ,
|
{ "Norwegian", "norwegian", "#GameUI_Language_Norwegian", "no_NO", k_Lang_Norwegian, 1044 } ,
|
||||||
{ "Swedish", "swedish", "#GameUI_Language_Swedish", "sv_SE", k_Lang_Swedish, 1053 } ,
|
{ "Swedish", "swedish", "#GameUI_Language_Swedish", "sv_SE", k_Lang_Swedish, 1053 } ,
|
||||||
{ "Romanian", "romanian", "#GameUI_Language_Romanian", "ro_RO", k_Lang_Romanian, 1048 } ,
|
{ "Romanian", "romanian", "#GameUI_Language_Romanian", "ro_RO", k_Lang_Romanian, 1048 } ,
|
||||||
{ "Turkish", "turkish", "#GameUI_Language_Turkish", "tr_TR", k_Lang_Turkish, 1055 } ,
|
{ "Turkish", "turkish", "#GameUI_Language_Turkish", "tr_TR", k_Lang_Turkish, 1055 } ,
|
||||||
{ "Hungarian", "hungarian", "#GameUI_Language_Hungarian", "hu_HU", k_Lang_Hungarian, 1038 } ,
|
{ "Hungarian", "hungarian", "#GameUI_Language_Hungarian", "hu_HU", k_Lang_Hungarian, 1038 } ,
|
||||||
{ "Czech", "czech", "#GameUI_Language_Czech", "cs_CZ", k_Lang_Czech, 1029 } ,
|
{ "Czech", "czech", "#GameUI_Language_Czech", "cs_CZ", k_Lang_Czech, 1029 } ,
|
||||||
{ "Brazilian", "brazilian", "#GameUI_Language_Brazilian", "pt_BR", k_Lang_Brazilian, 1046 } ,
|
{ "Brazilian", "brazilian", "#GameUI_Language_Brazilian", "pt_BR", k_Lang_Brazilian, 1046 } ,
|
||||||
{ "Bulgarian", "bulgarian", "#GameUI_Language_Bulgarian", "bg_BG", k_Lang_Bulgarian, 1026 } ,
|
{ "Bulgarian", "bulgarian", "#GameUI_Language_Bulgarian", "bg_BG", k_Lang_Bulgarian, 1026 } ,
|
||||||
{ "Greek", "greek", "#GameUI_Language_Greek", "el_GR", k_Lang_Greek, 1032 },
|
{ "Greek", "greek", "#GameUI_Language_Greek", "el_GR", k_Lang_Greek, 1032 },
|
||||||
};
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: translate language enum into closests windows language code ID
|
// Purpose: translate language enum into closests windows language code ID
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
int GetLanguageCodeID(ELanguage eLang)
|
int GetLanguageCodeID(ELanguage eLang)
|
||||||
{
|
{
|
||||||
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
|
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
|
||||||
{
|
{
|
||||||
if ( s_LanguageNames[iLang].m_ELanguage == eLang )
|
if ( s_LanguageNames[iLang].m_ELanguage == eLang )
|
||||||
return s_LanguageNames[iLang].m_LanguageCodeID;
|
return s_LanguageNames[iLang].m_LanguageCodeID;
|
||||||
}
|
}
|
||||||
|
|
||||||
// default to English
|
// default to English
|
||||||
return 1033;
|
return 1033;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: find the language by name
|
// Purpose: find the language by name
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
ELanguage PchLanguageToELanguage( const char *pchShortName, ELanguage eDefault )
|
ELanguage PchLanguageToELanguage( const char *pchShortName, ELanguage eDefault )
|
||||||
{
|
{
|
||||||
Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
||||||
if ( !pchShortName )
|
if ( !pchShortName )
|
||||||
return eDefault;
|
return eDefault;
|
||||||
|
|
||||||
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
|
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
|
||||||
{
|
{
|
||||||
if ( !Q_stricmp( pchShortName, s_LanguageNames[iLang].m_pchShortName ) )
|
if ( !Q_stricmp( pchShortName, s_LanguageNames[iLang].m_pchShortName ) )
|
||||||
{
|
{
|
||||||
return s_LanguageNames[iLang].m_ELanguage;
|
return s_LanguageNames[iLang].m_ELanguage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return default
|
// return default
|
||||||
return eDefault;
|
return eDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: find the language by ICU short code
|
// Purpose: find the language by ICU short code
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault )
|
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault )
|
||||||
{
|
{
|
||||||
Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
Assert( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
||||||
if ( !pchICUCode )
|
if ( !pchICUCode )
|
||||||
return eDefault;
|
return eDefault;
|
||||||
|
|
||||||
// Match to no more than the param length so either a short 'en' or
|
// Match to no more than the param length so either a short 'en' or
|
||||||
// full 'zh-Hant' can match
|
// full 'zh-Hant' can match
|
||||||
int nLen = Q_strlen( pchICUCode );
|
int nLen = Q_strlen( pchICUCode );
|
||||||
|
|
||||||
// we only have 5 character ICU codes so this should be enough room
|
// we only have 5 character ICU codes so this should be enough room
|
||||||
char rchCleanedCode[ 6 ];
|
char rchCleanedCode[ 6 ];
|
||||||
Q_strncpy( rchCleanedCode, pchICUCode, Q_ARRAYSIZE( rchCleanedCode ) );
|
Q_strncpy( rchCleanedCode, pchICUCode, Q_ARRAYSIZE( rchCleanedCode ) );
|
||||||
if( nLen >= 3 && rchCleanedCode[ 2 ] == '-' )
|
if( nLen >= 3 && rchCleanedCode[ 2 ] == '-' )
|
||||||
{
|
{
|
||||||
rchCleanedCode[ 2 ] = '_';
|
rchCleanedCode[ 2 ] = '_';
|
||||||
}
|
}
|
||||||
|
|
||||||
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
|
for ( uint iLang = 0; iLang < Q_ARRAYSIZE(s_LanguageNames); ++iLang )
|
||||||
{
|
{
|
||||||
if ( !Q_strnicmp( rchCleanedCode, s_LanguageNames[iLang].m_pchICUName, nLen ) )
|
if ( !Q_strnicmp( rchCleanedCode, s_LanguageNames[iLang].m_pchICUName, nLen ) )
|
||||||
{
|
{
|
||||||
return s_LanguageNames[iLang].m_ELanguage;
|
return s_LanguageNames[iLang].m_ELanguage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// return default
|
// return default
|
||||||
return eDefault;
|
return eDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: return the short string name used for this language by SteamUI
|
// Purpose: return the short string name used for this language by SteamUI
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
const char *GetLanguageShortName( ELanguage eLang )
|
const char *GetLanguageShortName( ELanguage eLang )
|
||||||
{
|
{
|
||||||
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
||||||
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
|
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
|
||||||
{
|
{
|
||||||
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
|
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
|
||||||
return s_LanguageNames[ eLang + 1 ].m_pchShortName;
|
return s_LanguageNames[ eLang + 1 ].m_pchShortName;
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
|
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
|
||||||
return s_LanguageNames[0].m_pchShortName;
|
return s_LanguageNames[0].m_pchShortName;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: return the ICU code used for this language by SteamUI
|
// Purpose: return the ICU code used for this language by SteamUI
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
const char *GetLanguageICUName( ELanguage eLang )
|
const char *GetLanguageICUName( ELanguage eLang )
|
||||||
{
|
{
|
||||||
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
||||||
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
|
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
|
||||||
{
|
{
|
||||||
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
|
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
|
||||||
return s_LanguageNames[ eLang + 1 ].m_pchICUName;
|
return s_LanguageNames[ eLang + 1 ].m_pchICUName;
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
|
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
|
||||||
return s_LanguageNames[0].m_pchICUName;
|
return s_LanguageNames[0].m_pchICUName;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: return the CLocale name that works with setlocale()
|
// Purpose: return the CLocale name that works with setlocale()
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
const char *GetLangugeCLocaleName( ELanguage eLang )
|
const char *GetLangugeCLocaleName( ELanguage eLang )
|
||||||
{
|
{
|
||||||
if ( eLang == k_Lang_None )
|
if ( eLang == k_Lang_None )
|
||||||
return "";
|
return "";
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// table for Win32 is here: http://msdn.microsoft.com/en-us/library/hzz3tw78(v=VS.80).aspx
|
// table for Win32 is here: http://msdn.microsoft.com/en-us/library/hzz3tw78(v=VS.80).aspx
|
||||||
// shortname works except for chinese
|
// shortname works except for chinese
|
||||||
|
|
||||||
switch ( eLang )
|
switch ( eLang )
|
||||||
{
|
{
|
||||||
case k_Lang_Simplified_Chinese:
|
case k_Lang_Simplified_Chinese:
|
||||||
return "chs"; // or "chinese-simplified"
|
return "chs"; // or "chinese-simplified"
|
||||||
case k_Lang_Traditional_Chinese:
|
case k_Lang_Traditional_Chinese:
|
||||||
return "cht"; // or "chinese-traditional"
|
return "cht"; // or "chinese-traditional"
|
||||||
case k_Lang_Korean:
|
case k_Lang_Korean:
|
||||||
return "korean"; // steam likes "koreana" for the name for some reason.
|
return "korean"; // steam likes "koreana" for the name for some reason.
|
||||||
default:
|
default:
|
||||||
return GetLanguageShortName( eLang );
|
return GetLanguageShortName( eLang );
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
switch ( eLang )
|
switch ( eLang )
|
||||||
{
|
{
|
||||||
case k_Lang_Simplified_Chinese:
|
case k_Lang_Simplified_Chinese:
|
||||||
case k_Lang_Traditional_Chinese:
|
case k_Lang_Traditional_Chinese:
|
||||||
return "zh_CN";
|
return "zh_CN";
|
||||||
default:
|
default:
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ICU codes work on linux/osx
|
// ICU codes work on linux/osx
|
||||||
return GetLanguageICUName( eLang );
|
return GetLanguageICUName( eLang );
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: return the short string name used for this language by SteamUI
|
// Purpose: return the short string name used for this language by SteamUI
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
const char *GetLanguageVGUILocalization( ELanguage eLang )
|
const char *GetLanguageVGUILocalization( ELanguage eLang )
|
||||||
{
|
{
|
||||||
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
COMPILE_TIME_ASSERT( Q_ARRAYSIZE(s_LanguageNames) == k_Lang_MAX + 1 );
|
||||||
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
|
if ( s_LanguageNames[ eLang + 1 ].m_ELanguage == eLang )
|
||||||
{
|
{
|
||||||
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
|
Assert( eLang + 1 < ARRAYSIZE(s_LanguageNames) );
|
||||||
return s_LanguageNames[ eLang + 1 ].m_pchVGUILocalizationName;
|
return s_LanguageNames[ eLang + 1 ].m_pchVGUILocalizationName;
|
||||||
}
|
}
|
||||||
|
|
||||||
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
|
Assert( !"enum ELanguage order mismatched from Language_t s_LanguageNames, fix it!" );
|
||||||
return s_LanguageNames[0].m_pchVGUILocalizationName;
|
return s_LanguageNames[0].m_pchVGUILocalizationName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,55 +1,55 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: represent a canonical list of the languages we support,
|
// Purpose: represent a canonical list of the languages we support,
|
||||||
//
|
//
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
#ifndef LANG_H
|
#ifndef LANG_H
|
||||||
#define LANG_H
|
#define LANG_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// if you change this enum also change language.cpp:s_LanguageNames
|
// if you change this enum also change language.cpp:s_LanguageNames
|
||||||
enum ELanguage
|
enum ELanguage
|
||||||
{
|
{
|
||||||
k_Lang_None = -1,
|
k_Lang_None = -1,
|
||||||
k_Lang_First = 0,
|
k_Lang_First = 0,
|
||||||
k_Lang_English = 0,
|
k_Lang_English = 0,
|
||||||
k_Lang_German,
|
k_Lang_German,
|
||||||
k_Lang_French,
|
k_Lang_French,
|
||||||
k_Lang_Italian,
|
k_Lang_Italian,
|
||||||
k_Lang_Korean,
|
k_Lang_Korean,
|
||||||
k_Lang_Spanish,
|
k_Lang_Spanish,
|
||||||
k_Lang_Simplified_Chinese,
|
k_Lang_Simplified_Chinese,
|
||||||
k_Lang_Traditional_Chinese,
|
k_Lang_Traditional_Chinese,
|
||||||
k_Lang_Russian,
|
k_Lang_Russian,
|
||||||
k_Lang_Thai,
|
k_Lang_Thai,
|
||||||
k_Lang_Japanese,
|
k_Lang_Japanese,
|
||||||
k_Lang_Portuguese,
|
k_Lang_Portuguese,
|
||||||
k_Lang_Polish,
|
k_Lang_Polish,
|
||||||
k_Lang_Danish,
|
k_Lang_Danish,
|
||||||
k_Lang_Dutch,
|
k_Lang_Dutch,
|
||||||
k_Lang_Finnish,
|
k_Lang_Finnish,
|
||||||
k_Lang_Norwegian,
|
k_Lang_Norwegian,
|
||||||
k_Lang_Swedish,
|
k_Lang_Swedish,
|
||||||
k_Lang_Romanian,
|
k_Lang_Romanian,
|
||||||
k_Lang_Turkish,
|
k_Lang_Turkish,
|
||||||
k_Lang_Hungarian,
|
k_Lang_Hungarian,
|
||||||
k_Lang_Czech,
|
k_Lang_Czech,
|
||||||
k_Lang_Brazilian,
|
k_Lang_Brazilian,
|
||||||
k_Lang_Bulgarian,
|
k_Lang_Bulgarian,
|
||||||
k_Lang_Greek,
|
k_Lang_Greek,
|
||||||
k_Lang_MAX
|
k_Lang_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
#define FOR_EACH_LANGUAGE( eLang ) for ( int eLang = (int)k_Lang_First; eLang < k_Lang_MAX; ++eLang )
|
#define FOR_EACH_LANGUAGE( eLang ) for ( int eLang = (int)k_Lang_First; eLang < k_Lang_MAX; ++eLang )
|
||||||
|
|
||||||
ELanguage PchLanguageToELanguage(const char *pchShortName, ELanguage eDefault = k_Lang_English);
|
ELanguage PchLanguageToELanguage(const char *pchShortName, ELanguage eDefault = k_Lang_English);
|
||||||
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault = k_Lang_English );
|
ELanguage PchLanguageICUCodeToELanguage( const char *pchICUCode, ELanguage eDefault = k_Lang_English );
|
||||||
const char *GetLanguageShortName( ELanguage eLang );
|
const char *GetLanguageShortName( ELanguage eLang );
|
||||||
const char *GetLanguageICUName( ELanguage eLang );
|
const char *GetLanguageICUName( ELanguage eLang );
|
||||||
const char *GetLanguageVGUILocalization( ELanguage eLang );
|
const char *GetLanguageVGUILocalization( ELanguage eLang );
|
||||||
const char *GetLanguageName( ELanguage eLang );
|
const char *GetLanguageName( ELanguage eLang );
|
||||||
|
|
||||||
#endif /* LANG_H */
|
#endif /* LANG_H */
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//
|
//
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#if !defined( PROTO_VERSION_H )
|
#if !defined( PROTO_VERSION_H )
|
||||||
#define PROTO_VERSION_H
|
#define PROTO_VERSION_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// The current network protocol version. Changing this makes clients and servers incompatible
|
// The current network protocol version. Changing this makes clients and servers incompatible
|
||||||
#define PROTOCOL_VERSION 24
|
#define PROTOCOL_VERSION 24
|
||||||
|
|
||||||
#define DEMO_BACKWARDCOMPATABILITY
|
#define DEMO_BACKWARDCOMPATABILITY
|
||||||
|
|
||||||
// For backward compatibility of demo files (NET_MAX_PAYLOAD_BITS went away)
|
// For backward compatibility of demo files (NET_MAX_PAYLOAD_BITS went away)
|
||||||
#define PROTOCOL_VERSION_23 23
|
#define PROTOCOL_VERSION_23 23
|
||||||
|
|
||||||
// For backward compatibility of demo files (sound index bits used to = 13 )
|
// For backward compatibility of demo files (sound index bits used to = 13 )
|
||||||
#define PROTOCOL_VERSION_22 22
|
#define PROTOCOL_VERSION_22 22
|
||||||
|
|
||||||
// For backward compatibility of demo files (before the special DSP was shipped to public)
|
// For backward compatibility of demo files (before the special DSP was shipped to public)
|
||||||
#define PROTOCOL_VERSION_21 21
|
#define PROTOCOL_VERSION_21 21
|
||||||
|
|
||||||
// For backward compatibility of demo files (old-style dynamic model loading)
|
// For backward compatibility of demo files (old-style dynamic model loading)
|
||||||
#define PROTOCOL_VERSION_20 20
|
#define PROTOCOL_VERSION_20 20
|
||||||
|
|
||||||
// For backward compatibility of demo files (post Halloween sound flag extra bit)
|
// For backward compatibility of demo files (post Halloween sound flag extra bit)
|
||||||
#define PROTOCOL_VERSION_19 19
|
#define PROTOCOL_VERSION_19 19
|
||||||
|
|
||||||
// For backward compatibility of demo files (pre Halloween sound flag extra bit)
|
// For backward compatibility of demo files (pre Halloween sound flag extra bit)
|
||||||
#define PROTOCOL_VERSION_18 18
|
#define PROTOCOL_VERSION_18 18
|
||||||
|
|
||||||
// For backward compatibility of demo files (MD5 in map version)
|
// For backward compatibility of demo files (MD5 in map version)
|
||||||
#define PROTOCOL_VERSION_17 17
|
#define PROTOCOL_VERSION_17 17
|
||||||
|
|
||||||
// For backward compatibility of demo files (create string tables compression flag)
|
// For backward compatibility of demo files (create string tables compression flag)
|
||||||
#define PROTOCOL_VERSION_14 14
|
#define PROTOCOL_VERSION_14 14
|
||||||
|
|
||||||
// For backward compatibility of demo files
|
// For backward compatibility of demo files
|
||||||
#define PROTOCOL_VERSION_12 12
|
#define PROTOCOL_VERSION_12 12
|
||||||
|
|
||||||
// The PROTOCOL_VERSION when replay shipped to public
|
// The PROTOCOL_VERSION when replay shipped to public
|
||||||
#define PROTOCOL_VERSION_REPLAY 16
|
#define PROTOCOL_VERSION_REPLAY 16
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,35 +1,35 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef QLIMITS_H
|
#ifndef QLIMITS_H
|
||||||
#define QLIMITS_H
|
#define QLIMITS_H
|
||||||
|
|
||||||
#if defined( _WIN32 )
|
#if defined( _WIN32 )
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// DATA STRUCTURE INFO
|
// DATA STRUCTURE INFO
|
||||||
|
|
||||||
#define MAX_NUM_ARGVS 50
|
#define MAX_NUM_ARGVS 50
|
||||||
|
|
||||||
// SYSTEM INFO
|
// SYSTEM INFO
|
||||||
#define MAX_QPATH 96 // max length of a game pathname
|
#define MAX_QPATH 96 // max length of a game pathname
|
||||||
#define MAX_OSPATH 260 // max length of a filesystem pathname
|
#define MAX_OSPATH 260 // max length of a filesystem pathname
|
||||||
|
|
||||||
#define ON_EPSILON 0.1 // point on plane side epsilon
|
#define ON_EPSILON 0.1 // point on plane side epsilon
|
||||||
|
|
||||||
|
|
||||||
// Resource counts;
|
// Resource counts;
|
||||||
#define MAX_MODEL_INDEX_BITS 11 // sent as a short
|
#define MAX_MODEL_INDEX_BITS 11 // sent as a short
|
||||||
#define MAX_MODELS (1<<MAX_MODEL_INDEX_BITS)
|
#define MAX_MODELS (1<<MAX_MODEL_INDEX_BITS)
|
||||||
|
|
||||||
#define MAX_GENERIC_INDEX_BITS 9
|
#define MAX_GENERIC_INDEX_BITS 9
|
||||||
#define MAX_GENERIC (1<<MAX_GENERIC_INDEX_BITS)
|
#define MAX_GENERIC (1<<MAX_GENERIC_INDEX_BITS)
|
||||||
#define MAX_DECAL_INDEX_BITS 9
|
#define MAX_DECAL_INDEX_BITS 9
|
||||||
#define MAX_BASE_DECALS (1<<MAX_DECAL_INDEX_BITS)
|
#define MAX_BASE_DECALS (1<<MAX_DECAL_INDEX_BITS)
|
||||||
|
|
||||||
#endif // QLIMITS_H
|
#endif // QLIMITS_H
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#if !defined(_STATIC_LINKED) || defined(_SHARED_LIB)
|
#if !defined(_STATIC_LINKED) || defined(_SHARED_LIB)
|
||||||
|
|
||||||
#include "stdlib.h"
|
#include "stdlib.h"
|
||||||
#include "vstdlib/random.h"
|
#include "vstdlib/random.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
#ifdef GNUC
|
#ifdef GNUC
|
||||||
#define __cdecl
|
#define __cdecl
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void __cdecl srand(unsigned int)
|
void __cdecl srand(unsigned int)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cdecl rand()
|
int __cdecl rand()
|
||||||
{
|
{
|
||||||
return RandomInt( 0, VALVE_RAND_MAX );
|
return RandomInt( 0, VALVE_RAND_MAX );
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !_STATIC_LINKED || _SHARED_LIB
|
#endif // !_STATIC_LINKED || _SHARED_LIB
|
||||||
|
@ -1,43 +1,43 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef REPLAYSERIALIIZEABLE_H
|
#ifndef REPLAYSERIALIIZEABLE_H
|
||||||
#define REPLAYSERIALIIZEABLE_H
|
#define REPLAYSERIALIIZEABLE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "replay/ireplayserializeable.h"
|
#include "replay/ireplayserializeable.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CBaseReplaySerializeable : public IReplaySerializeable
|
class CBaseReplaySerializeable : public IReplaySerializeable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CBaseReplaySerializeable();
|
CBaseReplaySerializeable();
|
||||||
|
|
||||||
virtual void SetHandle( ReplayHandle_t h );
|
virtual void SetHandle( ReplayHandle_t h );
|
||||||
virtual ReplayHandle_t GetHandle() const;
|
virtual ReplayHandle_t GetHandle() const;
|
||||||
virtual bool Read( KeyValues *pIn );
|
virtual bool Read( KeyValues *pIn );
|
||||||
virtual void Write( KeyValues *pOut );
|
virtual void Write( KeyValues *pOut );
|
||||||
virtual const char *GetFilename() const;
|
virtual const char *GetFilename() const;
|
||||||
virtual const char *GetFullFilename() const;
|
virtual const char *GetFullFilename() const;
|
||||||
virtual const char *GetDebugName() const;
|
virtual const char *GetDebugName() const;
|
||||||
virtual void SetLocked( bool bLocked );
|
virtual void SetLocked( bool bLocked );
|
||||||
virtual bool IsLocked() const;
|
virtual bool IsLocked() const;
|
||||||
virtual void OnDelete();
|
virtual void OnDelete();
|
||||||
virtual void OnUnload();
|
virtual void OnUnload();
|
||||||
virtual void OnAddedToDirtyList();
|
virtual void OnAddedToDirtyList();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
ReplayHandle_t m_hThis;
|
ReplayHandle_t m_hThis;
|
||||||
bool m_bLocked;
|
bool m_bLocked;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // REPLAYSERIALIIZEABLE_H
|
#endif // REPLAYSERIALIIZEABLE_H
|
@ -1,64 +1,64 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef ICLIENTREPLAY_H
|
#ifndef ICLIENTREPLAY_H
|
||||||
#define ICLIENTREPLAY_H
|
#define ICLIENTREPLAY_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define CLIENT_REPLAY_INTERFACE_VERSION "ClientReplay001"
|
#define CLIENT_REPLAY_INTERFACE_VERSION "ClientReplay001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayFactory;
|
class IReplayFactory;
|
||||||
class IReplayScreenshotSystem;
|
class IReplayScreenshotSystem;
|
||||||
class IReplayPerformancePlaybackHandler;
|
class IReplayPerformancePlaybackHandler;
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
class IReplayCamera;
|
class IReplayCamera;
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
struct RenderMovieParams_t;
|
struct RenderMovieParams_t;
|
||||||
class IGameEvent;
|
class IGameEvent;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Allows the replay and engine DLL's to talk to the client.
|
// Allows the replay and engine DLL's to talk to the client.
|
||||||
//
|
//
|
||||||
class IClientReplay : public IBaseInterface
|
class IClientReplay : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual uint64 GetServerSessionId() = 0;
|
virtual uint64 GetServerSessionId() = 0;
|
||||||
virtual bool CacheReplayRagdolls( const char* pFilename, int nStartTick ) = 0; // Cache replay ragdolls
|
virtual bool CacheReplayRagdolls( const char* pFilename, int nStartTick ) = 0; // Cache replay ragdolls
|
||||||
virtual IReplayScreenshotSystem *GetReplayScreenshotSystem() = 0; // Get the client's replay screenshot system
|
virtual IReplayScreenshotSystem *GetReplayScreenshotSystem() = 0; // Get the client's replay screenshot system
|
||||||
virtual IReplayPerformancePlaybackHandler *GetPerformancePlaybackHandler() = 0;
|
virtual IReplayPerformancePlaybackHandler *GetPerformancePlaybackHandler() = 0;
|
||||||
virtual IReplayCamera *GetReplayCamera() = 0;
|
virtual IReplayCamera *GetReplayCamera() = 0;
|
||||||
virtual void DisplayReplayMessage( const char *pLocalizeStr, bool bUrgent, bool bDlg, const char *pSound ) = 0;
|
virtual void DisplayReplayMessage( const char *pLocalizeStr, bool bUrgent, bool bDlg, const char *pSound ) = 0;
|
||||||
virtual void DisplayReplayMessage( const wchar_t *pText, bool bUrgent, bool bDlg, const char *pSound ) = 0;
|
virtual void DisplayReplayMessage( const wchar_t *pText, bool bUrgent, bool bDlg, const char *pSound ) = 0;
|
||||||
virtual void InitPerformanceEditor( ReplayHandle_t hReplay ) = 0;
|
virtual void InitPerformanceEditor( ReplayHandle_t hReplay ) = 0;
|
||||||
virtual void HidePerformanceEditor() = 0;
|
virtual void HidePerformanceEditor() = 0;
|
||||||
virtual bool ShouldRender() = 0;
|
virtual bool ShouldRender() = 0;
|
||||||
virtual void PlaySound( const char *pSound ) = 0;
|
virtual void PlaySound( const char *pSound ) = 0;
|
||||||
virtual void UploadOgsData( KeyValues *pData, bool bIncludeTimeField ) = 0;
|
virtual void UploadOgsData( KeyValues *pData, bool bIncludeTimeField ) = 0;
|
||||||
virtual bool ShouldCompletePendingReplay( IGameEvent *pEvent ) = 0;
|
virtual bool ShouldCompletePendingReplay( IGameEvent *pEvent ) = 0;
|
||||||
|
|
||||||
virtual void OnSaveReplay( ReplayHandle_t hNewReplay, bool bShowInputDlg ) = 0;
|
virtual void OnSaveReplay( ReplayHandle_t hNewReplay, bool bShowInputDlg ) = 0;
|
||||||
virtual void OnDeleteReplay( ReplayHandle_t hReplay ) = 0; // Called before replay is actually removed from the replay manager
|
virtual void OnDeleteReplay( ReplayHandle_t hReplay ) = 0; // Called before replay is actually removed from the replay manager
|
||||||
virtual void OnPlaybackComplete( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
virtual void OnPlaybackComplete( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
||||||
virtual void OnRenderStart() = 0;
|
virtual void OnRenderStart() = 0;
|
||||||
virtual void OnRenderComplete( const RenderMovieParams_t &RenderParams, bool bCancelled, bool bSuccess, bool bShowBrowser ) = 0;
|
virtual void OnRenderComplete( const RenderMovieParams_t &RenderParams, bool bCancelled, bool bSuccess, bool bShowBrowser ) = 0;
|
||||||
virtual bool OnConfirmQuit() = 0;
|
virtual bool OnConfirmQuit() = 0;
|
||||||
virtual bool OnEndOfReplayReached() = 0;
|
virtual bool OnEndOfReplayReached() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // ICLIENTREPLAY_H
|
#endif // ICLIENTREPLAY_H
|
@ -1,58 +1,58 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef ICLIENTREPLAYCONTEXT_H
|
#ifndef ICLIENTREPLAYCONTEXT_H
|
||||||
#define ICLIENTREPLAYCONTEXT_H
|
#define ICLIENTREPLAYCONTEXT_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "replay/ireplaycontext.h"
|
#include "replay/ireplaycontext.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define REPLAYHISTORYMANAGER_INTERFACE_VERSION_CLIENT "VENGINE_CLIENT_REPLAY_HISTORY_MANAGER_001"
|
#define REPLAYHISTORYMANAGER_INTERFACE_VERSION_CLIENT "VENGINE_CLIENT_REPLAY_HISTORY_MANAGER_001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
class IReplayManager;
|
class IReplayManager;
|
||||||
class IReplayMovieManager;
|
class IReplayMovieManager;
|
||||||
class IReplayMovieRenderer;
|
class IReplayMovieRenderer;
|
||||||
class IReplayScreenshotManager;
|
class IReplayScreenshotManager;
|
||||||
class IReplayPerformanceManager;
|
class IReplayPerformanceManager;
|
||||||
class IReplayPerformanceController;
|
class IReplayPerformanceController;
|
||||||
class IReplayRenderQueue;
|
class IReplayRenderQueue;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IClientReplayContext : public IReplayContext
|
class IClientReplayContext : public IReplayContext
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CReplay *GetReplay( ReplayHandle_t hReplay ) = 0; // Shorthand to GetReplayManager()->GetReplay()
|
virtual CReplay *GetReplay( ReplayHandle_t hReplay ) = 0; // Shorthand to GetReplayManager()->GetReplay()
|
||||||
virtual IReplayManager *GetReplayManager() = 0;
|
virtual IReplayManager *GetReplayManager() = 0;
|
||||||
virtual IReplayMovieRenderer *GetMovieRenderer() = 0;
|
virtual IReplayMovieRenderer *GetMovieRenderer() = 0;
|
||||||
virtual IReplayMovieManager *GetMovieManager() = 0;
|
virtual IReplayMovieManager *GetMovieManager() = 0;
|
||||||
virtual IReplayScreenshotManager *GetScreenshotManager() = 0;
|
virtual IReplayScreenshotManager *GetScreenshotManager() = 0;
|
||||||
virtual IReplayPerformanceManager *GetPerformanceManager() = 0;
|
virtual IReplayPerformanceManager *GetPerformanceManager() = 0;
|
||||||
virtual IReplayPerformanceController *GetPerformanceController() = 0;
|
virtual IReplayPerformanceController *GetPerformanceController() = 0;
|
||||||
virtual IReplayRenderQueue *GetRenderQueue() = 0;
|
virtual IReplayRenderQueue *GetRenderQueue() = 0;
|
||||||
virtual void SetMovieRenderer( IReplayMovieRenderer *pRenderer ) = 0; // Set to be the panel that renders replay movies, or NULL when nothing is rendering
|
virtual void SetMovieRenderer( IReplayMovieRenderer *pRenderer ) = 0; // Set to be the panel that renders replay movies, or NULL when nothing is rendering
|
||||||
virtual void OnSignonStateFull() = 0;
|
virtual void OnSignonStateFull() = 0;
|
||||||
virtual void OnClientSideDisconnect() = 0; // Called when client disconnects
|
virtual void OnClientSideDisconnect() = 0; // Called when client disconnects
|
||||||
virtual void PlayReplay( ReplayHandle_t hReplay, int iPerformance, bool bPlaySound ) = 0; // Play the given replay, from spawn tick to death tick
|
virtual void PlayReplay( ReplayHandle_t hReplay, int iPerformance, bool bPlaySound ) = 0; // Play the given replay, from spawn tick to death tick
|
||||||
virtual bool ReconstructReplayIfNecessary( CReplay *pReplay ) = 0;
|
virtual bool ReconstructReplayIfNecessary( CReplay *pReplay ) = 0;
|
||||||
virtual void OnPlayerSpawn() = 0; // Called on the client when player is spawned
|
virtual void OnPlayerSpawn() = 0; // Called on the client when player is spawned
|
||||||
virtual void OnPlayerClassChanged() = 0; // Called when the player's class changes - we use this instead of an event for immediacy
|
virtual void OnPlayerClassChanged() = 0; // Called when the player's class changes - we use this instead of an event for immediacy
|
||||||
virtual void GetPlaybackTimes( float &flOutTime, float &flOutLength, const CReplay *pReplay, const CReplayPerformance *pPerformance ) = 0; // Calculate the current time and length of a replay or performance - takes in tick and out tick into account for performances - flCurTime should be gpGlobals->curtime. pPerformance can be NULL.
|
virtual void GetPlaybackTimes( float &flOutTime, float &flOutLength, const CReplay *pReplay, const CReplayPerformance *pPerformance ) = 0; // Calculate the current time and length of a replay or performance - takes in tick and out tick into account for performances - flCurTime should be gpGlobals->curtime. pPerformance can be NULL.
|
||||||
virtual uint64 GetServerSessionId( ReplayHandle_t hReplay ) = 0;
|
virtual uint64 GetServerSessionId( ReplayHandle_t hReplay ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // ICLIENTREPLAYCONTEXT_H
|
#endif // ICLIENTREPLAYCONTEXT_H
|
||||||
|
@ -1,104 +1,104 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef ICLIENTREPLAYHISTORYMANAGER_H
|
#ifndef ICLIENTREPLAYHISTORYMANAGER_H
|
||||||
#define ICLIENTREPLAYHISTORYMANAGER_H
|
#define ICLIENTREPLAYHISTORYMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
#include "replay/screenshot.h"
|
#include "replay/screenshot.h"
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "qlimits.h"
|
#include "qlimits.h"
|
||||||
#include "convar.h"
|
#include "convar.h"
|
||||||
#include "engine/http.h"
|
#include "engine/http.h"
|
||||||
#include "tier1/utllinkedlist.h"
|
#include "tier1/utllinkedlist.h"
|
||||||
#include "tier1/checksum_crc.h"
|
#include "tier1/checksum_crc.h"
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayDownloadGroup;
|
class IReplayDownloadGroup;
|
||||||
class IReplayDownloadGroupHelper;
|
class IReplayDownloadGroupHelper;
|
||||||
class CDmxElement;
|
class CDmxElement;
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
struct CaptureScreenshotParams_t;
|
struct CaptureScreenshotParams_t;
|
||||||
struct RenderMovieParams_t;
|
struct RenderMovieParams_t;
|
||||||
class CBaseReplay;
|
class CBaseReplay;
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class IReplayMovieRenderer;
|
class IReplayMovieRenderer;
|
||||||
class IReplayMovieManager;
|
class IReplayMovieManager;
|
||||||
class IReplayMovie;
|
class IReplayMovie;
|
||||||
class IReplayPerformanceManager;
|
class IReplayPerformanceManager;
|
||||||
class IGameEvent;
|
class IGameEvent;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IClientReplayHistoryManager : public IBaseInterface
|
class IClientReplayHistoryManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool Init( CreateInterfaceFn fnCreateFactory ) = 0;
|
virtual bool Init( CreateInterfaceFn fnCreateFactory ) = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
virtual void Think() = 0;
|
virtual void Think() = 0;
|
||||||
|
|
||||||
virtual bool IsInitialized() const = 0;
|
virtual bool IsInitialized() const = 0;
|
||||||
virtual bool Commit( CBaseReplay *pNewReplay ) = 0;
|
virtual bool Commit( CBaseReplay *pNewReplay ) = 0;
|
||||||
|
|
||||||
virtual void Save() = 0; // Write the entire index and any replays/groups/movies that are marked as dirty
|
virtual void Save() = 0; // Write the entire index and any replays/groups/movies that are marked as dirty
|
||||||
virtual void FlagReplayForFlush( CBaseReplay *pReplay, bool bForceImmediateWrite ) = 0; // Mark the given replay as dirty - flush to disk at the next opportunity (see CBaseReplayHistoryManager::FlushThink())
|
virtual void FlagReplayForFlush( CBaseReplay *pReplay, bool bForceImmediateWrite ) = 0; // Mark the given replay as dirty - flush to disk at the next opportunity (see CBaseReplayHistoryManager::FlushThink())
|
||||||
|
|
||||||
virtual void Nuke() = 0;
|
virtual void Nuke() = 0;
|
||||||
|
|
||||||
virtual void DeleteReplay( ReplayHandle_t hReplay, bool bNotifyUI ) = 0;
|
virtual void DeleteReplay( ReplayHandle_t hReplay, bool bNotifyUI ) = 0;
|
||||||
virtual CBaseReplay *GetReplay( ReplayHandle_t hReplay ) = 0;
|
virtual CBaseReplay *GetReplay( ReplayHandle_t hReplay ) = 0;
|
||||||
|
|
||||||
virtual const char *GetBaseDirectory() = 0; // Returns full directory to wherever replays.dmx lives, e.g. c:\program files (x86)\steam\steamapps\someuser\team fortress 2\game\tf\replays\client\ (or server\) - NOTE: includes trailing slash
|
virtual const char *GetBaseDirectory() = 0; // Returns full directory to wherever replays.dmx lives, e.g. c:\program files (x86)\steam\steamapps\someuser\team fortress 2\game\tf\replays\client\ (or server\) - NOTE: includes trailing slash
|
||||||
virtual const char *GetReplaysSubDir() = 0; // Returns "client" or "server"
|
virtual const char *GetReplaysSubDir() = 0; // Returns "client" or "server"
|
||||||
|
|
||||||
// For loop through all replays - indices should not be cached
|
// For loop through all replays - indices should not be cached
|
||||||
virtual int GetReplayCount() const = 0;
|
virtual int GetReplayCount() const = 0;
|
||||||
// virtual CBaseReplay *GetReplayAtIndex( int nIndex ) = 0;
|
// virtual CBaseReplay *GetReplayAtIndex( int nIndex ) = 0;
|
||||||
|
|
||||||
virtual const char *GetFullReplayPath() = 0; // Get c:\...\game\tf\replays\<client or server>\
|
virtual const char *GetFullReplayPath() = 0; // Get c:\...\game\tf\replays\<client or server>\
|
||||||
|
|
||||||
// Client-specific
|
// Client-specific
|
||||||
virtual int GetAdjustedDeathTick( CReplay *pReplay ) = 0;
|
virtual int GetAdjustedDeathTick( CReplay *pReplay ) = 0;
|
||||||
virtual void FlagDownloadGroupForFlush( IReplayDownloadGroup *pGroup, bool bForceImmediate ) = 0;
|
virtual void FlagDownloadGroupForFlush( IReplayDownloadGroup *pGroup, bool bForceImmediate ) = 0;
|
||||||
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bForceImmediate ) = 0; // Flag the movie for flush - if pMovie is NULL, mark the index for flush
|
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bForceImmediate ) = 0; // Flag the movie for flush - if pMovie is NULL, mark the index for flush
|
||||||
virtual void SetMovieRenderer( IReplayMovieRenderer *pRenderer ) = 0; // Set to be the panel that renders replay movies, or NULL when nothing is rendering
|
virtual void SetMovieRenderer( IReplayMovieRenderer *pRenderer ) = 0; // Set to be the panel that renders replay movies, or NULL when nothing is rendering
|
||||||
virtual bool ShouldGameRenderView() = 0; // Called from V_RenderView() to determine whether the game should render - used during movie rendering
|
virtual bool ShouldGameRenderView() = 0; // Called from V_RenderView() to determine whether the game should render - used during movie rendering
|
||||||
virtual int GetUnrenderedReplayCount() = 0; // Get the number of unrendered replays
|
virtual int GetUnrenderedReplayCount() = 0; // Get the number of unrendered replays
|
||||||
virtual void UpdateCurrentReplayDataFromServer() = 0; // Updates start tick, current file url, demo filename
|
virtual void UpdateCurrentReplayDataFromServer() = 0; // Updates start tick, current file url, demo filename
|
||||||
virtual void LinkReplayToDownloadGroup() = 0;
|
virtual void LinkReplayToDownloadGroup() = 0;
|
||||||
virtual void CaptureScreenshot( CaptureScreenshotParams_t ¶ms ) = 0; // Schedules a screenshot capture at flDelay seconds in the future
|
virtual void CaptureScreenshot( CaptureScreenshotParams_t ¶ms ) = 0; // Schedules a screenshot capture at flDelay seconds in the future
|
||||||
virtual void DoCaptureScreenshot() = 0; // Takes the screenshot right now
|
virtual void DoCaptureScreenshot() = 0; // Takes the screenshot right now
|
||||||
virtual bool ShouldCaptureScreenshot() = 0; // Is screenshot scheduled to be taken right now?
|
virtual bool ShouldCaptureScreenshot() = 0; // Is screenshot scheduled to be taken right now?
|
||||||
virtual void GetUnpaddedScreenshotSize( int &nWidth, int &nHeight ) = 0; // Get the dimensions for a screenshot if we take one right now, based on replay_screenshotresolution and the current aspect ratio
|
virtual void GetUnpaddedScreenshotSize( int &nWidth, int &nHeight ) = 0; // Get the dimensions for a screenshot if we take one right now, based on replay_screenshotresolution and the current aspect ratio
|
||||||
virtual void DeleteScreenshotsForReplay( CReplay *pReplay ) = 0; // Deletes all screenshots associated with the given replay
|
virtual void DeleteScreenshotsForReplay( CReplay *pReplay ) = 0; // Deletes all screenshots associated with the given replay
|
||||||
virtual void PlayReplay( ReplayHandle_t hReplay ) = 0; // Play the given replay, from spawn tick to death tick
|
virtual void PlayReplay( ReplayHandle_t hReplay ) = 0; // Play the given replay, from spawn tick to death tick
|
||||||
virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
|
virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
|
||||||
virtual void CompleteRender( bool bSuccess ) = 0;
|
virtual void CompleteRender( bool bSuccess ) = 0;
|
||||||
virtual void OnClientSideDisconnect() = 0; // Called when client disconnects
|
virtual void OnClientSideDisconnect() = 0; // Called when client disconnects
|
||||||
virtual void OnSignonStateFull() = 0;
|
virtual void OnSignonStateFull() = 0;
|
||||||
virtual void OnPlayerSpawn() = 0; // Called on the client when player is spawned
|
virtual void OnPlayerSpawn() = 0; // Called on the client when player is spawned
|
||||||
virtual void OnPlayerClassChanged() = 0; // Called when the player's class changes - we use this instead of an event for immediacy
|
virtual void OnPlayerClassChanged() = 0; // Called when the player's class changes - we use this instead of an event for immediacy
|
||||||
virtual void OnReplayRecordingCvarChanged() = 0; // Called (on client only) when replay_recording is set to 1
|
virtual void OnReplayRecordingCvarChanged() = 0; // Called (on client only) when replay_recording is set to 1
|
||||||
virtual void OnGroupDeleted() = 0;
|
virtual void OnGroupDeleted() = 0;
|
||||||
virtual CReplay *GetPlayingReplay() = 0; // Get the currently playing replay, otherwise NULL if one isn't playing
|
virtual CReplay *GetPlayingReplay() = 0; // Get the currently playing replay, otherwise NULL if one isn't playing
|
||||||
virtual CReplay *GetReplayForCurrentLife() = 0; // Gets the current replay (constant from local player spawn until next spawn/disconnect/exit)
|
virtual CReplay *GetReplayForCurrentLife() = 0; // Gets the current replay (constant from local player spawn until next spawn/disconnect/exit)
|
||||||
virtual bool IsRendering() = 0; // Are we currently rendering a movie?
|
virtual bool IsRendering() = 0; // Are we currently rendering a movie?
|
||||||
virtual void CancelRender() = 0; // If we're currently rendering, cancel
|
virtual void CancelRender() = 0; // If we're currently rendering, cancel
|
||||||
virtual IReplayMovieManager *GetMovieManager() = 0;
|
virtual IReplayMovieManager *GetMovieManager() = 0;
|
||||||
virtual IReplayMovieRenderer *GetMovieRenderer() = 0;
|
virtual IReplayMovieRenderer *GetMovieRenderer() = 0;
|
||||||
virtual const RenderMovieParams_t *GetRenderSettings() = 0;
|
virtual const RenderMovieParams_t *GetRenderSettings() = 0;
|
||||||
virtual IReplayDownloadGroupHelper *GetDownloadGroupHelper() = 0;
|
virtual IReplayDownloadGroupHelper *GetDownloadGroupHelper() = 0;
|
||||||
virtual IReplayPerformanceManager *GetPerformanceManager() = 0;
|
virtual IReplayPerformanceManager *GetPerformanceManager() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // ICLIENTREPLAYHISTORYMANAGER_H
|
#endif // ICLIENTREPLAYHISTORYMANAGER_H
|
||||||
|
@ -1,116 +1,116 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IENGINEREPLAY_H
|
#ifndef IENGINEREPLAY_H
|
||||||
#define IENGINEREPLAY_H
|
#define IENGINEREPLAY_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define ENGINE_REPLAY_INTERFACE_VERSION "EngineReplay001"
|
#define ENGINE_REPLAY_INTERFACE_VERSION "EngineReplay001"
|
||||||
|
|
||||||
#if !defined( DEDICATED )
|
#if !defined( DEDICATED )
|
||||||
# define ENGINE_REPLAY_CLIENT_INTERFACE_VERSION "EngineClientReplay001"
|
# define ENGINE_REPLAY_CLIENT_INTERFACE_VERSION "EngineClientReplay001"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IServer;
|
class IServer;
|
||||||
class INetChannel;
|
class INetChannel;
|
||||||
class IReplayServer;
|
class IReplayServer;
|
||||||
class IClientEntityList;
|
class IClientEntityList;
|
||||||
class IClientReplay;
|
class IClientReplay;
|
||||||
struct demoheader_t;
|
struct demoheader_t;
|
||||||
class CGlobalVarsBase;
|
class CGlobalVarsBase;
|
||||||
class IDemoBuffer;
|
class IDemoBuffer;
|
||||||
class CBaseRecordingSessionBlock;
|
class CBaseRecordingSessionBlock;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Allows the replay, client & server DLL's to talk to the engine
|
// Allows the replay, client & server DLL's to talk to the engine
|
||||||
//
|
//
|
||||||
class IEngineReplay : public IBaseInterface
|
class IEngineReplay : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool IsSupportedModAndPlatform() = 0;
|
virtual bool IsSupportedModAndPlatform() = 0;
|
||||||
|
|
||||||
virtual float GetHostTime() = 0;
|
virtual float GetHostTime() = 0;
|
||||||
virtual int GetHostTickCount() = 0;
|
virtual int GetHostTickCount() = 0;
|
||||||
virtual int TimeToTicks( float flTime ) = 0;
|
virtual int TimeToTicks( float flTime ) = 0;
|
||||||
virtual float TicksToTime( int nTick ) = 0;
|
virtual float TicksToTime( int nTick ) = 0;
|
||||||
|
|
||||||
virtual bool ReadDemoHeader( const char *pFilename, demoheader_t &header ) = 0;
|
virtual bool ReadDemoHeader( const char *pFilename, demoheader_t &header ) = 0;
|
||||||
virtual const char *GetGameDir() = 0;
|
virtual const char *GetGameDir() = 0;
|
||||||
virtual void Cbuf_AddText( const char *pCmd ) = 0;
|
virtual void Cbuf_AddText( const char *pCmd ) = 0;
|
||||||
virtual void Cbuf_Execute() = 0;
|
virtual void Cbuf_Execute() = 0;
|
||||||
virtual void Host_Disconnect( bool bShowMainMenu ) = 0;
|
virtual void Host_Disconnect( bool bShowMainMenu ) = 0;
|
||||||
virtual void HostState_Shutdown() = 0;
|
virtual void HostState_Shutdown() = 0;
|
||||||
virtual const char *GetModDir() = 0;
|
virtual const char *GetModDir() = 0;
|
||||||
|
|
||||||
virtual bool CopyFile( const char *pSource, const char *pDest ) = 0;
|
virtual bool CopyFile( const char *pSource, const char *pDest ) = 0;
|
||||||
|
|
||||||
virtual bool LZSS_Compress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
|
virtual bool LZSS_Compress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
|
||||||
virtual bool LZSS_Decompress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
|
virtual bool LZSS_Decompress( char *pDest, unsigned int *pDestLen, const char *pSource, unsigned int nSourceLen ) = 0;
|
||||||
|
|
||||||
virtual bool MD5_HashBuffer( unsigned char pDigest[16], const unsigned char *pBuffer, int nSize, unsigned int pSeed[4] ) = 0;
|
virtual bool MD5_HashBuffer( unsigned char pDigest[16], const unsigned char *pBuffer, int nSize, unsigned int pSeed[4] ) = 0;
|
||||||
|
|
||||||
// Server-specific
|
// Server-specific
|
||||||
virtual IReplayServer *GetReplayServer() = 0;
|
virtual IReplayServer *GetReplayServer() = 0;
|
||||||
virtual IServer *GetReplayServerAsIServer() = 0;
|
virtual IServer *GetReplayServerAsIServer() = 0;
|
||||||
virtual IServer *GetGameServer() = 0;
|
virtual IServer *GetGameServer() = 0;
|
||||||
virtual bool GetSessionRecordBuffer( uint8 **ppSessionBuffer, int *pSize ) = 0;
|
virtual bool GetSessionRecordBuffer( uint8 **ppSessionBuffer, int *pSize ) = 0;
|
||||||
virtual bool IsDedicated() = 0;
|
virtual bool IsDedicated() = 0;
|
||||||
virtual void ResetReplayRecordBuffer() = 0;
|
virtual void ResetReplayRecordBuffer() = 0;
|
||||||
virtual demoheader_t *GetReplayDemoHeader() = 0;
|
virtual demoheader_t *GetReplayDemoHeader() = 0;
|
||||||
virtual void RecalculateTags() = 0;
|
virtual void RecalculateTags() = 0;
|
||||||
virtual bool NET_GetHostnameAsIP( const char *pHostname, char *pOut, int nOutSize ) = 0;
|
virtual bool NET_GetHostnameAsIP( const char *pHostname, char *pOut, int nOutSize ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// Allows the replay and client DLL's to talk to the engine
|
// Allows the replay and client DLL's to talk to the engine
|
||||||
//
|
//
|
||||||
#if !defined( DEDICATED )
|
#if !defined( DEDICATED )
|
||||||
class IEngineClientReplay : public IBaseInterface
|
class IEngineClientReplay : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual INetChannel *GetNetChannel() = 0;
|
virtual INetChannel *GetNetChannel() = 0;
|
||||||
virtual bool IsConnected() = 0;
|
virtual bool IsConnected() = 0;
|
||||||
virtual bool IsListenServer() = 0;
|
virtual bool IsListenServer() = 0;
|
||||||
virtual float GetLastServerTickTime() = 0;
|
virtual float GetLastServerTickTime() = 0;
|
||||||
virtual const char *GetLevelName() = 0;
|
virtual const char *GetLevelName() = 0;
|
||||||
virtual const char *GetLevelNameShort() = 0;
|
virtual const char *GetLevelNameShort() = 0;
|
||||||
virtual int GetPlayerSlot() = 0;
|
virtual int GetPlayerSlot() = 0;
|
||||||
virtual bool IsPlayingReplayDemo() = 0;
|
virtual bool IsPlayingReplayDemo() = 0;
|
||||||
virtual IClientEntityList *GetClientEntityList() = 0;
|
virtual IClientEntityList *GetClientEntityList() = 0;
|
||||||
virtual IClientReplay *GetClientReplayInt() = 0;
|
virtual IClientReplay *GetClientReplayInt() = 0;
|
||||||
virtual uint32 GetClientSteamID() = 0;
|
virtual uint32 GetClientSteamID() = 0;
|
||||||
virtual void Con_NPrintf( int nPos, PRINTF_FORMAT_STRING const char *pFormat, ... ) = 0;
|
virtual void Con_NPrintf( int nPos, PRINTF_FORMAT_STRING const char *pFormat, ... ) = 0;
|
||||||
virtual CGlobalVarsBase *GetClientGlobalVars() = 0;
|
virtual CGlobalVarsBase *GetClientGlobalVars() = 0;
|
||||||
virtual void VGui_PlaySound( const char *pSound ) = 0;
|
virtual void VGui_PlaySound( const char *pSound ) = 0;
|
||||||
virtual void EngineVGui_ConfirmQuit() = 0;
|
virtual void EngineVGui_ConfirmQuit() = 0;
|
||||||
virtual int GetScreenWidth() = 0;
|
virtual int GetScreenWidth() = 0;
|
||||||
virtual int GetScreenHeight() = 0;
|
virtual int GetScreenHeight() = 0;
|
||||||
virtual bool IsDemoPlayingBack() = 0;
|
virtual bool IsDemoPlayingBack() = 0;
|
||||||
virtual bool IsGamePathValidAndSafeForDownload( const char *pGamePath ) = 0;
|
virtual bool IsGamePathValidAndSafeForDownload( const char *pGamePath ) = 0;
|
||||||
virtual bool IsInGame() = 0;
|
virtual bool IsInGame() = 0;
|
||||||
|
|
||||||
virtual void InitSoundRecord() = 0;
|
virtual void InitSoundRecord() = 0;
|
||||||
|
|
||||||
virtual void Wave_CreateTmpFile( const char *pFilename ) = 0;
|
virtual void Wave_CreateTmpFile( const char *pFilename ) = 0;
|
||||||
virtual void Wave_AppendTmpFile( const char *pFilename, void *pBuffer, int nNumSamples ) = 0;
|
virtual void Wave_AppendTmpFile( const char *pFilename, void *pBuffer, int nNumSamples ) = 0;
|
||||||
virtual void Wave_FixupTmpFile( const char *pFilename ) = 0;
|
virtual void Wave_FixupTmpFile( const char *pFilename ) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
#endif // !defined( DEDICATED )
|
#endif // !defined( DEDICATED )
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IENGINEREPLAY_H
|
#endif // IENGINEREPLAY_H
|
@ -1,46 +1,46 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IQUERYABLEREPLAYITEM_H
|
#ifndef IQUERYABLEREPLAYITEM_H
|
||||||
#define IQUERYABLEREPLAYITEM_H
|
#define IQUERYABLEREPLAYITEM_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "iqueryablereplayitem.h"
|
#include "iqueryablereplayitem.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
#include "replay/replaytime.h"
|
#include "replay/replaytime.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
typedef int QueryableReplayItemHandle_t;
|
typedef int QueryableReplayItemHandle_t;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IQueryableReplayItem : public IBaseInterface
|
abstract_class IQueryableReplayItem : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual const CReplayTime &GetItemDate() const = 0;
|
virtual const CReplayTime &GetItemDate() const = 0;
|
||||||
virtual bool IsItemRendered() const = 0;
|
virtual bool IsItemRendered() const = 0;
|
||||||
virtual CReplay *GetItemReplay() = 0;
|
virtual CReplay *GetItemReplay() = 0;
|
||||||
virtual ReplayHandle_t GetItemReplayHandle() const = 0;
|
virtual ReplayHandle_t GetItemReplayHandle() const = 0;
|
||||||
virtual QueryableReplayItemHandle_t GetItemHandle() const = 0; // Get the handle of this item
|
virtual QueryableReplayItemHandle_t GetItemHandle() const = 0; // Get the handle of this item
|
||||||
virtual const wchar_t *GetItemTitle() const = 0;
|
virtual const wchar_t *GetItemTitle() const = 0;
|
||||||
virtual void SetItemTitle( const wchar_t *pTitle ) = 0;
|
virtual void SetItemTitle( const wchar_t *pTitle ) = 0;
|
||||||
virtual float GetItemLength() const = 0;
|
virtual float GetItemLength() const = 0;
|
||||||
virtual void *GetUserData() = 0;
|
virtual void *GetUserData() = 0;
|
||||||
virtual void SetUserData( void *pUserData ) = 0;
|
virtual void SetUserData( void *pUserData ) = 0;
|
||||||
virtual bool IsItemAMovie() const = 0;
|
virtual bool IsItemAMovie() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IQUERYABLEREPLAYITEM_H
|
#endif // IQUERYABLEREPLAYITEM_H
|
@ -1,27 +1,27 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IRECORDINGSESSION_H
|
#ifndef IRECORDINGSESSION_H
|
||||||
#define IRECORDINGSESSION_H
|
#define IRECORDINGSESSION_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CBaseRecordingSessionBlock;
|
class CBaseRecordingSessionBlock;
|
||||||
|
|
||||||
class IRecordingSession : public IBaseInterface
|
class IRecordingSession : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void AddBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
|
virtual void AddBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IRECORDINGSESSION_H
|
#endif // IRECORDINGSESSION_H
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IRECORDINGSESSIONBLOCKMANAGER_H
|
#ifndef IRECORDINGSESSIONBLOCKMANAGER_H
|
||||||
#define IRECORDINGSESSIONBLOCKMANAGER_H
|
#define IRECORDINGSESSIONBLOCKMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IRecordingSessionBlockManager : public IBaseInterface
|
class IRecordingSessionBlockManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CBaseRecordingSessionBlock *GetBlock( ReplayHandle_t hBlock ) = 0;
|
virtual CBaseRecordingSessionBlock *GetBlock( ReplayHandle_t hBlock ) = 0;
|
||||||
virtual void DeleteBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
|
virtual void DeleteBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
|
||||||
virtual void UnloadBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
|
virtual void UnloadBlock( CBaseRecordingSessionBlock *pBlock ) = 0;
|
||||||
virtual const char *GetBlockPath() const = 0;
|
virtual const char *GetBlockPath() const = 0;
|
||||||
virtual void LoadBlockFromFileName( const char *pFilename, IRecordingSession *pSession ) = 0;
|
virtual void LoadBlockFromFileName( const char *pFilename, IRecordingSession *pSession ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IRECORDINGSESSIONBLOCKMANAGER_H
|
#endif // IRECORDINGSESSIONBLOCKMANAGER_H
|
||||||
|
@ -1,33 +1,33 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IRECORDINGSESSIONMANAGER_H
|
#ifndef IRECORDINGSESSIONMANAGER_H
|
||||||
#define IRECORDINGSESSIONMANAGER_H
|
#define IRECORDINGSESSIONMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CBaseRecordingSession;
|
class CBaseRecordingSession;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IRecordingSessionManager : public IBaseInterface
|
class IRecordingSessionManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CBaseRecordingSession *FindSession( ReplayHandle_t hSession ) = 0;
|
virtual CBaseRecordingSession *FindSession( ReplayHandle_t hSession ) = 0;
|
||||||
virtual const CBaseRecordingSession *FindSession( ReplayHandle_t hSession ) const = 0;
|
virtual const CBaseRecordingSession *FindSession( ReplayHandle_t hSession ) const = 0;
|
||||||
virtual void FlagSessionForFlush( CBaseRecordingSession *pSession, bool bForceImmediate ) = 0;
|
virtual void FlagSessionForFlush( CBaseRecordingSession *pSession, bool bForceImmediate ) = 0;
|
||||||
virtual int GetServerStartTickForSession( ReplayHandle_t hSession ) = 0;
|
virtual int GetServerStartTickForSession( ReplayHandle_t hSession ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IRECORDINGSESSIONMANAGER_H
|
#endif // IRECORDINGSESSIONMANAGER_H
|
@ -1,25 +1,25 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef IREPLAYCAMERA_H
|
#ifndef IREPLAYCAMERA_H
|
||||||
#define IREPLAYCAMERA_H
|
#define IREPLAYCAMERA_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayCamera : public IBaseInterface
|
abstract_class IReplayCamera : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void ClearOverrideView() = 0;
|
virtual void ClearOverrideView() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYCAMERA_H
|
#endif // IREPLAYCAMERA_H
|
||||||
|
@ -1,47 +1,47 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYCONTEXT_H
|
#ifndef IREPLAYCONTEXT_H
|
||||||
#define IREPLAYCONTEXT_H
|
#define IREPLAYCONTEXT_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IRecordingSessionManager;
|
class IRecordingSessionManager;
|
||||||
class IRecordingSessionBlockManager;
|
class IRecordingSessionBlockManager;
|
||||||
class IRecordingSession;
|
class IRecordingSession;
|
||||||
class IReplayErrorSystem;
|
class IReplayErrorSystem;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayContext : public IBaseInterface
|
class IReplayContext : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool Init( CreateInterfaceFn fnCreateFactory ) = 0;
|
virtual bool Init( CreateInterfaceFn fnCreateFactory ) = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
|
|
||||||
virtual void Think() = 0;
|
virtual void Think() = 0;
|
||||||
|
|
||||||
virtual bool IsInitialized() const = 0;
|
virtual bool IsInitialized() const = 0;
|
||||||
|
|
||||||
virtual const char *GetRelativeBaseDir() const = 0; // Returns path to wherever the index .dmx lives relative to the game path, e.g. "replay\client\"
|
virtual const char *GetRelativeBaseDir() const = 0; // Returns path to wherever the index .dmx lives relative to the game path, e.g. "replay\client\"
|
||||||
virtual const char *GetBaseDir() const = 0; // Returns full directory to wherever the index .dmx lives, e.g. c:\program files (x86)\steam\steamapps\<username>\team fortress 2\tf\replays\<client|server>\ -- NOTE: includes trailing slash
|
virtual const char *GetBaseDir() const = 0; // Returns full directory to wherever the index .dmx lives, e.g. c:\program files (x86)\steam\steamapps\<username>\team fortress 2\tf\replays\<client|server>\ -- NOTE: includes trailing slash
|
||||||
virtual const char *GetReplaySubDir() const = 0; // Returns "client" or "server"
|
virtual const char *GetReplaySubDir() const = 0; // Returns "client" or "server"
|
||||||
|
|
||||||
virtual IReplayErrorSystem *GetErrorSystem() = 0;
|
virtual IReplayErrorSystem *GetErrorSystem() = 0;
|
||||||
virtual IRecordingSessionManager *GetRecordingSessionManager() = 0;
|
virtual IRecordingSessionManager *GetRecordingSessionManager() = 0;
|
||||||
virtual IRecordingSessionBlockManager *GetRecordingSessionBlockManager() = 0;
|
virtual IRecordingSessionBlockManager *GetRecordingSessionBlockManager() = 0;
|
||||||
virtual IRecordingSession *GetRecordingSession( ReplayHandle_t hSession ) = 0;
|
virtual IRecordingSession *GetRecordingSession( ReplayHandle_t hSession ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYCONTEXT_H
|
#endif // IREPLAYCONTEXT_H
|
||||||
|
@ -1,42 +1,42 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYDEMOPLAYER_H
|
#ifndef IREPLAYDEMOPLAYER_H
|
||||||
#define IREPLAYDEMOPLAYER_H
|
#define IREPLAYDEMOPLAYER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replay.h"
|
#include "replay/replay.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define INTERFACEVERSION_REPLAYDEMOPLAYER "ReplayDemoPlayer001"
|
#define INTERFACEVERSION_REPLAYDEMOPLAYER "ReplayDemoPlayer001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Interface for replay demo player
|
// Interface for replay demo player
|
||||||
//
|
//
|
||||||
class IReplayDemoPlayer : public IBaseInterface
|
class IReplayDemoPlayer : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void PlayReplay( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
virtual void PlayReplay( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
||||||
virtual void PlayNextReplay() = 0;
|
virtual void PlayNextReplay() = 0;
|
||||||
virtual void ClearReplayList() = 0;
|
virtual void ClearReplayList() = 0;
|
||||||
virtual void AddReplayToList( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
virtual void AddReplayToList( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
||||||
virtual CReplay *GetCurrentReplay() = 0;
|
virtual CReplay *GetCurrentReplay() = 0;
|
||||||
virtual CReplayPerformance *GetCurrentPerformance() = 0; // The playing replay, or NULL if playing the original replay
|
virtual CReplayPerformance *GetCurrentPerformance() = 0; // The playing replay, or NULL if playing the original replay
|
||||||
virtual void PauseReplay() = 0;
|
virtual void PauseReplay() = 0;
|
||||||
virtual bool IsReplayPaused() = 0;
|
virtual bool IsReplayPaused() = 0;
|
||||||
virtual void ResumeReplay() = 0;
|
virtual void ResumeReplay() = 0;
|
||||||
virtual void OnSignonStateFull() = 0;
|
virtual void OnSignonStateFull() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYDEMOPLAYER_H
|
#endif // IREPLAYDEMOPLAYER_H
|
@ -1,33 +1,33 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYERRORSYSYTEM_H
|
#ifndef IREPLAYERRORSYSYTEM_H
|
||||||
#define IREPLAYERRORSYSYTEM_H
|
#define IREPLAYERRORSYSYTEM_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Replay error system
|
// Replay error system
|
||||||
//
|
//
|
||||||
class IReplayErrorSystem : public IBaseInterface
|
class IReplayErrorSystem : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void AddErrorFromTokenName( const char *pToken ) = 0;
|
virtual void AddErrorFromTokenName( const char *pToken ) = 0;
|
||||||
virtual void AddFormattedErrorFromTokenName( const char *pFormatToken, KeyValues *pFormatArgs ) = 0;
|
virtual void AddFormattedErrorFromTokenName( const char *pFormatToken, KeyValues *pFormatArgs ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYERRORSYSYTEM_H
|
#endif // IREPLAYERRORSYSYTEM_H
|
@ -1,31 +1,31 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYFACTORY_H
|
#ifndef IREPLAYFACTORY_H
|
||||||
#define IREPLAYFACTORY_H
|
#define IREPLAYFACTORY_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayFactory : public IBaseInterface
|
abstract_class IReplayFactory : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CReplay *Create() = 0;
|
virtual CReplay *Create() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define INTERFACE_VERSION_REPLAY_FACTORY "IReplayFactory001"
|
#define INTERFACE_VERSION_REPLAY_FACTORY "IReplayFactory001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYFACTORY_H
|
#endif // IREPLAYFACTORY_H
|
@ -1,42 +1,42 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYMANAGER_H
|
#ifndef IREPLAYMANAGER_H
|
||||||
#define IREPLAYMANAGER_H
|
#define IREPLAYMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
#include "utllinkedlist.h"
|
#include "utllinkedlist.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class IQueryableReplayItem;
|
class IQueryableReplayItem;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayManager : public IBaseInterface
|
class IReplayManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CReplay *GetReplay( ReplayHandle_t hReplay ) = 0;
|
virtual CReplay *GetReplay( ReplayHandle_t hReplay ) = 0;
|
||||||
virtual CReplay *GetPlayingReplay() = 0;
|
virtual CReplay *GetPlayingReplay() = 0;
|
||||||
virtual CReplay *GetReplayForCurrentLife() = 0;
|
virtual CReplay *GetReplayForCurrentLife() = 0;
|
||||||
virtual void FlagReplayForFlush( CReplay *pReplay, bool bForceImmediate ) = 0;
|
virtual void FlagReplayForFlush( CReplay *pReplay, bool bForceImmediate ) = 0;
|
||||||
virtual void DeleteReplay( ReplayHandle_t hReplay, bool bNotifyUI ) = 0;
|
virtual void DeleteReplay( ReplayHandle_t hReplay, bool bNotifyUI ) = 0;
|
||||||
virtual int GetReplayCount() const = 0;
|
virtual int GetReplayCount() const = 0;
|
||||||
virtual int GetUnrenderedReplayCount() = 0; // Get the number of unrendered replays
|
virtual int GetUnrenderedReplayCount() = 0; // Get the number of unrendered replays
|
||||||
virtual void GetReplays( CUtlLinkedList< CReplay *, int > &lstReplays ) = 0;
|
virtual void GetReplays( CUtlLinkedList< CReplay *, int > &lstReplays ) = 0;
|
||||||
virtual void GetReplaysAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstReplays ) = 0;
|
virtual void GetReplaysAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstReplays ) = 0;
|
||||||
virtual float GetDownloadProgress( const CReplay *pReplay ) = 0;
|
virtual float GetDownloadProgress( const CReplay *pReplay ) = 0;
|
||||||
virtual const char *GetReplaysDir() const = 0;
|
virtual const char *GetReplaysDir() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYMANAGER_H
|
#endif // IREPLAYMANAGER_H
|
||||||
|
@ -1,42 +1,42 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYMOVIE_H
|
#ifndef IREPLAYMOVIE_H
|
||||||
#define IREPLAYMOVIE_H
|
#define IREPLAYMOVIE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "iqueryablereplayitem.h"
|
#include "iqueryablereplayitem.h"
|
||||||
#include "replay/rendermovieparams.h"
|
#include "replay/rendermovieparams.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayMovie : public IQueryableReplayItem
|
abstract_class IReplayMovie : public IQueryableReplayItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ReplayHandle_t GetMovieHandle() const = 0;
|
virtual ReplayHandle_t GetMovieHandle() const = 0;
|
||||||
virtual ReplayHandle_t GetReplayHandle() const = 0;
|
virtual ReplayHandle_t GetReplayHandle() const = 0;
|
||||||
virtual const ReplayRenderSettings_t &GetRenderSettings() = 0;
|
virtual const ReplayRenderSettings_t &GetRenderSettings() = 0;
|
||||||
virtual void GetFrameDimensions( int &nWidth, int &nHeight ) = 0;
|
virtual void GetFrameDimensions( int &nWidth, int &nHeight ) = 0;
|
||||||
virtual void SetIsRendered( bool bIsRendered ) = 0;
|
virtual void SetIsRendered( bool bIsRendered ) = 0;
|
||||||
virtual void SetMovieFilename( const char *pFilename ) = 0;
|
virtual void SetMovieFilename( const char *pFilename ) = 0;
|
||||||
virtual const char *GetMovieFilename() const = 0;
|
virtual const char *GetMovieFilename() const = 0;
|
||||||
virtual void SetMovieTitle( const wchar_t *pTitle ) = 0;
|
virtual void SetMovieTitle( const wchar_t *pTitle ) = 0;
|
||||||
virtual void SetRenderTime( float flRenderTime ) = 0;
|
virtual void SetRenderTime( float flRenderTime ) = 0;
|
||||||
virtual float GetRenderTime() const = 0;
|
virtual float GetRenderTime() const = 0;
|
||||||
virtual void CaptureRecordTime() = 0;
|
virtual void CaptureRecordTime() = 0;
|
||||||
virtual void SetLength( float flLength ) = 0;
|
virtual void SetLength( float flLength ) = 0;
|
||||||
|
|
||||||
virtual bool IsUploaded() const = 0;
|
virtual bool IsUploaded() const = 0;
|
||||||
virtual void SetUploaded( bool bUploaded ) = 0;
|
virtual void SetUploaded( bool bUploaded ) = 0;
|
||||||
virtual void SetUploadURL( const char *pURL ) = 0;
|
virtual void SetUploadURL( const char *pURL ) = 0;
|
||||||
virtual const char *GetUploadURL() const = 0;
|
virtual const char *GetUploadURL() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYMOVIE_H
|
#endif // IREPLAYMOVIE_H
|
@ -1,56 +1,56 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYMOVIEMANAGER_H
|
#ifndef IREPLAYMOVIEMANAGER_H
|
||||||
#define IREPLAYMOVIEMANAGER_H
|
#define IREPLAYMOVIEMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "utlstring.h"
|
#include "utlstring.h"
|
||||||
#include "utllinkedlist.h"
|
#include "utllinkedlist.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayMovie;
|
class IReplayMovie;
|
||||||
class CReplay;
|
class CReplay;
|
||||||
struct RenderMovieParams_t;
|
struct RenderMovieParams_t;
|
||||||
class IQueryableReplayItem;
|
class IQueryableReplayItem;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayMovieManager : public IBaseInterface
|
abstract_class IReplayMovieManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual int GetMovieCount() = 0;
|
virtual int GetMovieCount() = 0;
|
||||||
virtual void GetMovieList( CUtlLinkedList< IReplayMovie * > &list ) = 0; // Fills the list with all movies
|
virtual void GetMovieList( CUtlLinkedList< IReplayMovie * > &list ) = 0; // Fills the list with all movies
|
||||||
virtual IReplayMovie *GetMovie( ReplayHandle_t hMovie ) = 0;
|
virtual IReplayMovie *GetMovie( ReplayHandle_t hMovie ) = 0;
|
||||||
virtual IReplayMovie *CreateAndAddMovie( ReplayHandle_t hReplay ) = 0; // Creates and adds a movie based on the given replay
|
virtual IReplayMovie *CreateAndAddMovie( ReplayHandle_t hReplay ) = 0; // Creates and adds a movie based on the given replay
|
||||||
virtual void DeleteMovie( ReplayHandle_t hMovie ) = 0; // Delete a movie
|
virtual void DeleteMovie( ReplayHandle_t hMovie ) = 0; // Delete a movie
|
||||||
virtual int GetNumMoviesDependentOnReplay( const CReplay *pReplay ) = 0; // Get the number of movies that depend on the given replay
|
virtual int GetNumMoviesDependentOnReplay( const CReplay *pReplay ) = 0; // Get the number of movies that depend on the given replay
|
||||||
virtual void GetCachedMovieTitleAndClear( wchar_t *pOut, int nOutBufLength ) = 0; // TODO: This is a hack - fix this
|
virtual void GetCachedMovieTitleAndClear( wchar_t *pOut, int nOutBufLength ) = 0; // TODO: This is a hack - fix this
|
||||||
virtual void SetPendingMovie( IReplayMovie *pMovie ) = 0;
|
virtual void SetPendingMovie( IReplayMovie *pMovie ) = 0;
|
||||||
virtual IReplayMovie *GetPendingMovie() = 0;
|
virtual IReplayMovie *GetPendingMovie() = 0;
|
||||||
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bImmediate ) = 0;
|
virtual void FlagMovieForFlush( IReplayMovie *pMovie, bool bImmediate ) = 0;
|
||||||
virtual void GetMoviesAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstMovies ) = 0;
|
virtual void GetMoviesAsQueryableItems( CUtlLinkedList< IQueryableReplayItem *, int > &lstMovies ) = 0;
|
||||||
virtual const char *GetRenderDir() const = 0;
|
virtual const char *GetRenderDir() const = 0;
|
||||||
virtual const char *GetRawExportDir() const = 0;
|
virtual const char *GetRawExportDir() const = 0;
|
||||||
|
|
||||||
// TODO: Is this the best place for code that actually manages rendering?
|
// TODO: Is this the best place for code that actually manages rendering?
|
||||||
virtual bool IsRendering() const = 0;
|
virtual bool IsRendering() const = 0;
|
||||||
virtual bool RenderingCancelled() const = 0;
|
virtual bool RenderingCancelled() const = 0;
|
||||||
virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
|
virtual void RenderMovie( RenderMovieParams_t const& params ) = 0; // Renders the given replay - or if params.hReplay is -1, render all unrendered replays
|
||||||
virtual void RenderNextMovie() = 0;
|
virtual void RenderNextMovie() = 0;
|
||||||
virtual void CompleteRender( bool bSuccess, bool bShowBrowser ) = 0;
|
virtual void CompleteRender( bool bSuccess, bool bShowBrowser ) = 0;
|
||||||
virtual void CancelRender() = 0;
|
virtual void CancelRender() = 0;
|
||||||
virtual void ClearRenderCancelledFlag() = 0;
|
virtual void ClearRenderCancelledFlag() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYMOVIEMANAGER_H
|
#endif // IREPLAYMOVIEMANAGER_H
|
@ -1,33 +1,33 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYMOVIERENDERER_H
|
#ifndef IREPLAYMOVIERENDERER_H
|
||||||
#define IREPLAYMOVIERENDERER_H
|
#define IREPLAYMOVIERENDERER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayMovie;
|
class IReplayMovie;
|
||||||
struct RenderMovieParams_t;
|
struct RenderMovieParams_t;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayMovieRenderer : public IBaseInterface
|
abstract_class IReplayMovieRenderer : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool SetupRenderer( RenderMovieParams_t ¶ms, IReplayMovie *pMovie ) = 0;
|
virtual bool SetupRenderer( RenderMovieParams_t ¶ms, IReplayMovie *pMovie ) = 0;
|
||||||
virtual void ShutdownRenderer() = 0;
|
virtual void ShutdownRenderer() = 0;
|
||||||
virtual void RenderVideo() = 0;
|
virtual void RenderVideo() = 0;
|
||||||
virtual void RenderAudio( unsigned char *pBuffer, int nSize, int nNumSamples ) = 0;
|
virtual void RenderAudio( unsigned char *pBuffer, int nSize, int nNumSamples ) = 0;
|
||||||
|
|
||||||
virtual void SetAudioSyncFrame( bool isSync = false ) = 0;
|
virtual void SetAudioSyncFrame( bool isSync = false ) = 0;
|
||||||
virtual bool IsAudioSyncFrame() = 0;
|
virtual bool IsAudioSyncFrame() = 0;
|
||||||
virtual float GetRecordingFrameDuration() = 0;
|
virtual float GetRecordingFrameDuration() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYMOVIERENDERER_H
|
#endif // IREPLAYMOVIERENDERER_H
|
||||||
|
@ -1,107 +1,107 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYPERFORMANCECONTROLLER_H
|
#ifndef IREPLAYPERFORMANCECONTROLLER_H
|
||||||
#define IREPLAYPERFORMANCECONTROLLER_H
|
#define IREPLAYPERFORMANCECONTROLLER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "tier1/strtools.h"
|
#include "tier1/strtools.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayPerformanceEditor;
|
class IReplayPerformanceEditor;
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class Vector;
|
class Vector;
|
||||||
class QAngle;
|
class QAngle;
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// These values are what we use to represent
|
// These values are what we use to represent
|
||||||
|
|
||||||
struct SetViewParams_t
|
struct SetViewParams_t
|
||||||
{
|
{
|
||||||
SetViewParams_t() { V_memset( this, 0, sizeof( SetViewParams_t ) ); }
|
SetViewParams_t() { V_memset( this, 0, sizeof( SetViewParams_t ) ); }
|
||||||
SetViewParams_t( float flTime, Vector *pOrigin, QAngle *pAngles, float flFov, float flAccel,
|
SetViewParams_t( float flTime, Vector *pOrigin, QAngle *pAngles, float flFov, float flAccel,
|
||||||
float flSpeed, float flRotFilter )
|
float flSpeed, float flRotFilter )
|
||||||
: m_flTime( flTime ),
|
: m_flTime( flTime ),
|
||||||
m_pOrigin( pOrigin ),
|
m_pOrigin( pOrigin ),
|
||||||
m_pAngles( pAngles ),
|
m_pAngles( pAngles ),
|
||||||
m_flFov( flFov ),
|
m_flFov( flFov ),
|
||||||
m_flAccel( flAccel ),
|
m_flAccel( flAccel ),
|
||||||
m_flSpeed( flSpeed ),
|
m_flSpeed( flSpeed ),
|
||||||
m_flRotationFilter( flRotFilter )
|
m_flRotationFilter( flRotFilter )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
float m_flTime;
|
float m_flTime;
|
||||||
Vector *m_pOrigin;
|
Vector *m_pOrigin;
|
||||||
QAngle *m_pAngles;
|
QAngle *m_pAngles;
|
||||||
float m_flFov;
|
float m_flFov;
|
||||||
|
|
||||||
// Right now only used for updating UI during playback:
|
// Right now only used for updating UI during playback:
|
||||||
float m_flAccel;
|
float m_flAccel;
|
||||||
float m_flSpeed;
|
float m_flSpeed;
|
||||||
float m_flRotationFilter;
|
float m_flRotationFilter;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayPerformanceController : public IBaseInterface
|
class IReplayPerformanceController : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void SetEditor( IReplayPerformanceEditor *pEditor ) = 0;
|
virtual void SetEditor( IReplayPerformanceEditor *pEditor ) = 0;
|
||||||
|
|
||||||
virtual bool IsPlaybackDataLeft() = 0;
|
virtual bool IsPlaybackDataLeft() = 0;
|
||||||
|
|
||||||
virtual void StartRecording( CReplay *pReplay, bool bSnip ) = 0;
|
virtual void StartRecording( CReplay *pReplay, bool bSnip ) = 0;
|
||||||
virtual void NotifyRewinding() = 0;
|
virtual void NotifyRewinding() = 0;
|
||||||
|
|
||||||
virtual void Stop() = 0;
|
virtual void Stop() = 0;
|
||||||
virtual bool SaveAsync() = 0;
|
virtual bool SaveAsync() = 0;
|
||||||
virtual bool SaveAsAsync( const wchar *pTitle ) = 0;
|
virtual bool SaveAsAsync( const wchar *pTitle ) = 0;
|
||||||
|
|
||||||
virtual bool IsSaving() const = 0;
|
virtual bool IsSaving() const = 0;
|
||||||
|
|
||||||
virtual void SaveThink() = 0;
|
virtual void SaveThink() = 0;
|
||||||
|
|
||||||
virtual bool GetLastSaveStatus() const = 0;
|
virtual bool GetLastSaveStatus() const = 0;
|
||||||
|
|
||||||
virtual bool IsRecording() const = 0;
|
virtual bool IsRecording() const = 0;
|
||||||
virtual bool IsPlaying() const = 0;
|
virtual bool IsPlaying() const = 0;
|
||||||
|
|
||||||
virtual bool IsDirty() const = 0;
|
virtual bool IsDirty() const = 0;
|
||||||
virtual void NotifyDirty() = 0;
|
virtual void NotifyDirty() = 0;
|
||||||
|
|
||||||
virtual CReplayPerformance *GetPerformance() = 0;
|
virtual CReplayPerformance *GetPerformance() = 0;
|
||||||
virtual CReplayPerformance *GetSavedPerformance() = 0;
|
virtual CReplayPerformance *GetSavedPerformance() = 0;
|
||||||
virtual bool HasSavedPerformance() = 0;
|
virtual bool HasSavedPerformance() = 0;
|
||||||
|
|
||||||
virtual void NotifyPauseState( bool bPaused ) = 0;
|
virtual void NotifyPauseState( bool bPaused ) = 0;
|
||||||
|
|
||||||
virtual void ClearRewinding() = 0;
|
virtual void ClearRewinding() = 0;
|
||||||
|
|
||||||
virtual void OnSignonStateFull() = 0;
|
virtual void OnSignonStateFull() = 0;
|
||||||
|
|
||||||
virtual float GetPlaybackTimeScale() const = 0;
|
virtual float GetPlaybackTimeScale() const = 0;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Recorder-specific:
|
// Recorder-specific:
|
||||||
//
|
//
|
||||||
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
||||||
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
||||||
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
|
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
|
||||||
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
||||||
virtual void AddEvent_Camera_SetView( const SetViewParams_t ¶ms ) = 0;
|
virtual void AddEvent_Camera_SetView( const SetViewParams_t ¶ms ) = 0;
|
||||||
virtual void AddEvent_TimeScale( float flTime, float flScale ) = 0;
|
virtual void AddEvent_TimeScale( float flTime, float flScale ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPERFORMANCECONTROLLER_H
|
#endif // IREPLAYPERFORMANCECONTROLLER_H
|
||||||
|
@ -1,33 +1,33 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYPERFORMANCEEDITOR_H
|
#ifndef IREPLAYPERFORMANCEEDITOR_H
|
||||||
#define IREPLAYPERFORMANCEEDITOR_H
|
#define IREPLAYPERFORMANCEEDITOR_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Interface to allow the replay DLL to talk to the actual UI.
|
// Interface to allow the replay DLL to talk to the actual UI.
|
||||||
//
|
//
|
||||||
class IReplayPerformanceEditor : public IBaseInterface
|
class IReplayPerformanceEditor : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CReplay *GetReplay() = 0;
|
virtual CReplay *GetReplay() = 0;
|
||||||
virtual void OnRewindComplete() = 0;
|
virtual void OnRewindComplete() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPERFORMANCEEDITOR_H
|
#endif // IREPLAYPERFORMANCEEDITOR_H
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYPERFORMANCEMANAGER_H
|
#ifndef IREPLAYPERFORMANCEMANAGER_H
|
||||||
#define IREPLAYPERFORMANCEMANAGER_H
|
#define IREPLAYPERFORMANCEMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
class CReplay;
|
class CReplay;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayPerformanceManager : public IBaseInterface
|
class IReplayPerformanceManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual CReplayPerformance *CreatePerformance( CReplay *pReplay ) = 0;
|
virtual CReplayPerformance *CreatePerformance( CReplay *pReplay ) = 0;
|
||||||
virtual void DeletePerformance( CReplayPerformance *pPerformance ) = 0;
|
virtual void DeletePerformance( CReplayPerformance *pPerformance ) = 0;
|
||||||
|
|
||||||
virtual const char *GetRelativePath() const = 0;
|
virtual const char *GetRelativePath() const = 0;
|
||||||
virtual const char *GetFullPath() const = 0;
|
virtual const char *GetFullPath() const = 0;
|
||||||
|
|
||||||
virtual const char *GeneratePerformanceFilename( CReplay *pReplay ) = 0;
|
virtual const char *GeneratePerformanceFilename( CReplay *pReplay ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPERFORMANCEMANAGER_H
|
#endif // IREPLAYPERFORMANCEMANAGER_H
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYPERFORMANCEPLAYBACKHANDLER_H
|
#ifndef IREPLAYPERFORMANCEPLAYBACKHANDLER_H
|
||||||
#define IREPLAYPERFORMANCEPLAYBACKHANDLER_H
|
#define IREPLAYPERFORMANCEPLAYBACKHANDLER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/ireplayperformancecontroller.h"
|
#include "replay/ireplayperformancecontroller.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class Vector;
|
class Vector;
|
||||||
class QAngle;
|
class QAngle;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayPerformancePlaybackHandler : public IBaseInterface
|
class IReplayPerformancePlaybackHandler : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void OnEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
virtual void OnEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
||||||
virtual void OnEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
virtual void OnEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
||||||
virtual void OnEvent_Camera_Change_Free( float flTime ) = 0;
|
virtual void OnEvent_Camera_Change_Free( float flTime ) = 0;
|
||||||
virtual void OnEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
virtual void OnEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
||||||
virtual void OnEvent_Camera_SetView( const SetViewParams_t ¶ms ) = 0;
|
virtual void OnEvent_Camera_SetView( const SetViewParams_t ¶ms ) = 0;
|
||||||
virtual void OnEvent_TimeScale( float flTime, float flScale ) = 0;
|
virtual void OnEvent_TimeScale( float flTime, float flScale ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPERFORMANCEPLAYBACKHANDLER_H
|
#endif // IREPLAYPERFORMANCEPLAYBACKHANDLER_H
|
||||||
|
@ -1,33 +1,33 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYPERFORMANCEPLAYER_H
|
#ifndef IREPLAYPERFORMANCEPLAYER_H
|
||||||
#define IREPLAYPERFORMANCEPLAYER_H
|
#define IREPLAYPERFORMANCEPLAYER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayPerformancePlayer : public IBaseInterface
|
class IReplayPerformancePlayer : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void BeginPerformancePlay( CReplayPerformance *pPerformance ) = 0;
|
virtual void BeginPerformancePlay( CReplayPerformance *pPerformance ) = 0;
|
||||||
virtual void EndPerformancePlay() = 0;
|
virtual void EndPerformancePlay() = 0;
|
||||||
|
|
||||||
virtual bool IsPlaying() const = 0;
|
virtual bool IsPlaying() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPERFORMANCEPLAYER_H
|
#endif // IREPLAYPERFORMANCEPLAYER_H
|
||||||
|
@ -1,49 +1,49 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYPERFORMANCERECORDER_H
|
#ifndef IREPLAYPERFORMANCERECORDER_H
|
||||||
#define IREPLAYPERFORMANCERECORDER_H
|
#define IREPLAYPERFORMANCERECORDER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class Vector;
|
class Vector;
|
||||||
class QAngle;
|
class QAngle;
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayPerformanceRecorder : public IBaseInterface
|
class IReplayPerformanceRecorder : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void BeginPerformanceRecord( CReplay *pReplay ) = 0;
|
virtual void BeginPerformanceRecord( CReplay *pReplay ) = 0;
|
||||||
virtual void EndPerformanceRecord() = 0;
|
virtual void EndPerformanceRecord() = 0;
|
||||||
|
|
||||||
virtual void NotifyPauseState( bool bPaused ) = 0;
|
virtual void NotifyPauseState( bool bPaused ) = 0;
|
||||||
|
|
||||||
virtual CReplayPerformance *GetPerformance() = 0;
|
virtual CReplayPerformance *GetPerformance() = 0;
|
||||||
virtual bool IsRecording() const = 0;
|
virtual bool IsRecording() const = 0;
|
||||||
|
|
||||||
virtual void SnipAtTime( float flTime ) = 0;
|
virtual void SnipAtTime( float flTime ) = 0;
|
||||||
virtual void NotifySkipping() = 0;
|
virtual void NotifySkipping() = 0;
|
||||||
virtual void ClearSkipping() = 0;
|
virtual void ClearSkipping() = 0;
|
||||||
|
|
||||||
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
virtual void AddEvent_Camera_Change_FirstPerson( float flTime, int nEntityIndex ) = 0;
|
||||||
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
virtual void AddEvent_Camera_Change_ThirdPerson( float flTime, int nEntityIndex ) = 0;
|
||||||
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
|
virtual void AddEvent_Camera_Change_Free( float flTime ) = 0;
|
||||||
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
virtual void AddEvent_Camera_ChangePlayer( float flTime, int nEntIndex ) = 0;
|
||||||
virtual void AddEvent_Camera_SetView( float flTime, const Vector& origin, const QAngle &angles, float fov ) = 0;
|
virtual void AddEvent_Camera_SetView( float flTime, const Vector& origin, const QAngle &angles, float fov ) = 0;
|
||||||
virtual void AddEvent_Slowmo( float flTime, float flScale ) = 0;
|
virtual void AddEvent_Slowmo( float flTime, float flScale ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPERFORMANCERECORDER_H
|
#endif // IREPLAYPERFORMANCERECORDER_H
|
||||||
|
@ -1,41 +1,41 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef IREPLAYPLAYERCACHE_H
|
#ifndef IREPLAYPLAYERCACHE_H
|
||||||
#define IREPLAYPLAYERCACHE_H
|
#define IREPLAYPLAYERCACHE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define REPLAYPLAYERCACHE_INTERFACE_VERSION "VENGINE_REPLAY_PLAYER_CACHE_001"
|
#define REPLAYPLAYERCACHE_INTERFACE_VERSION "VENGINE_REPLAY_PLAYER_CACHE_001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayPlayerCache : public IBaseInterface
|
abstract_class IReplayPlayerCache : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual bool Init() = 0;
|
virtual bool Init() = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
|
|
||||||
virtual void SetupPlayer( int nEntIndex ) = 0;
|
virtual void SetupPlayer( int nEntIndex ) = 0;
|
||||||
virtual void DeletePlayerEntry( int nEntIndex ) = 0;
|
virtual void DeletePlayerEntry( int nEntIndex ) = 0;
|
||||||
|
|
||||||
virtual bool PlayerHasCacheEntry( int nEntIndex ) = 0;
|
virtual bool PlayerHasCacheEntry( int nEntIndex ) = 0;
|
||||||
|
|
||||||
virtual void SetPlayerClass( int nEntIndex, const char *pPlayerClass ) = 0;
|
virtual void SetPlayerClass( int nEntIndex, const char *pPlayerClass ) = 0;
|
||||||
virtual void SetPlayerSpawnTick( int nEntIndex, int nTick ) = 0;
|
virtual void SetPlayerSpawnTick( int nEntIndex, int nTick ) = 0;
|
||||||
virtual void SetPlayerDeathTick( int nEntIndex, int nTick ) = 0;
|
virtual void SetPlayerDeathTick( int nEntIndex, int nTick ) = 0;
|
||||||
|
|
||||||
virtual const char *GetPlayerClass( int nEntIndex ) = 0;
|
virtual const char *GetPlayerClass( int nEntIndex ) = 0;
|
||||||
virtual int GetPlayerSpawnTick( int nEntIndex ) = 0;
|
virtual int GetPlayerSpawnTick( int nEntIndex ) = 0;
|
||||||
virtual int GetPlayerDeathTick( int nEntIndex ) = 0;
|
virtual int GetPlayerDeathTick( int nEntIndex ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYPLAYERCACHE_H
|
#endif // IREPLAYPLAYERCACHE_H
|
||||||
|
@ -1,32 +1,32 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYRENDERQUEUE_H
|
#ifndef IREPLAYRENDERQUEUE_H
|
||||||
#define IREPLAYRENDERQUEUE_H
|
#define IREPLAYRENDERQUEUE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplayRenderQueue : IBaseInterface
|
abstract_class IReplayRenderQueue : IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void Add( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
virtual void Add( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
||||||
virtual void Remove( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
virtual void Remove( ReplayHandle_t hReplay, int iPerformance ) = 0;
|
||||||
virtual void Clear() = 0;
|
virtual void Clear() = 0;
|
||||||
|
|
||||||
virtual int GetCount() const = 0;
|
virtual int GetCount() const = 0;
|
||||||
virtual bool GetEntryData( int iIndex, ReplayHandle_t *pHandleOut, int *pPerformanceOut ) const = 0;
|
virtual bool GetEntryData( int iIndex, ReplayHandle_t *pHandleOut, int *pPerformanceOut ) const = 0;
|
||||||
virtual bool IsInQueue( ReplayHandle_t hReplay, int iPerformance ) const = 0;
|
virtual bool IsInQueue( ReplayHandle_t hReplay, int iPerformance ) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYRENDERQUEUE_H
|
#endif // IREPLAYRENDERQUEUE_H
|
@ -1,32 +1,32 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYSCREENSHOTMANAGER_H
|
#ifndef IREPLAYSCREENSHOTMANAGER_H
|
||||||
#define IREPLAYSCREENSHOTMANAGER_H
|
#define IREPLAYSCREENSHOTMANAGER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
struct CaptureScreenshotParams_t;
|
struct CaptureScreenshotParams_t;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayScreenshotManager : public IBaseInterface
|
class IReplayScreenshotManager : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void CaptureScreenshot( CaptureScreenshotParams_t& params ) = 0;
|
virtual void CaptureScreenshot( CaptureScreenshotParams_t& params ) = 0;
|
||||||
virtual void GetUnpaddedScreenshotSize( int &nOutWidth, int &nOutHeight ) = 0;
|
virtual void GetUnpaddedScreenshotSize( int &nOutWidth, int &nOutHeight ) = 0;
|
||||||
virtual void DeleteScreenshotsForReplay( CReplay *pReplay ) = 0;
|
virtual void DeleteScreenshotsForReplay( CReplay *pReplay ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYSCREENSHOTMANAGER_H
|
#endif // IREPLAYSCREENSHOTMANAGER_H
|
||||||
|
@ -1,34 +1,34 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYSCREENSHOTSYSTEM_H
|
#ifndef IREPLAYSCREENSHOTSYSTEM_H
|
||||||
#define IREPLAYSCREENSHOTSYSTEM_H
|
#define IREPLAYSCREENSHOTSYSTEM_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
struct WriteReplayScreenshotParams_t;
|
struct WriteReplayScreenshotParams_t;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Implementation lives in the client - allows replay to tell the client to grab a
|
// Implementation lives in the client - allows replay to tell the client to grab a
|
||||||
// screenshot or update the cache.
|
// screenshot or update the cache.
|
||||||
//
|
//
|
||||||
class IReplayScreenshotSystem : public IBaseInterface
|
class IReplayScreenshotSystem : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void WriteReplayScreenshot( WriteReplayScreenshotParams_t ¶ms ) = 0;
|
virtual void WriteReplayScreenshot( WriteReplayScreenshotParams_t ¶ms ) = 0;
|
||||||
virtual void UpdateReplayScreenshotCache() = 0;
|
virtual void UpdateReplayScreenshotCache() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYSCREENSHOTSYSTEM_H
|
#endif // IREPLAYSCREENSHOTSYSTEM_H
|
@ -1,48 +1,48 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYSERIALIIZEABLE_H
|
#ifndef IREPLAYSERIALIIZEABLE_H
|
||||||
#define IREPLAYSERIALIIZEABLE_H
|
#define IREPLAYSERIALIIZEABLE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplaySerializeable : public IBaseInterface
|
class IReplaySerializeable : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void SetHandle( ReplayHandle_t h ) = 0;
|
virtual void SetHandle( ReplayHandle_t h ) = 0;
|
||||||
virtual ReplayHandle_t GetHandle() const = 0;
|
virtual ReplayHandle_t GetHandle() const = 0;
|
||||||
|
|
||||||
virtual bool Read( KeyValues *pIn ) = 0;
|
virtual bool Read( KeyValues *pIn ) = 0;
|
||||||
virtual void Write( KeyValues *pOut ) = 0;
|
virtual void Write( KeyValues *pOut ) = 0;
|
||||||
|
|
||||||
virtual const char *GetSubKeyTitle() const = 0;
|
virtual const char *GetSubKeyTitle() const = 0;
|
||||||
virtual const char *GetFilename() const = 0;
|
virtual const char *GetFilename() const = 0;
|
||||||
virtual const char *GetPath() const = 0;
|
virtual const char *GetPath() const = 0;
|
||||||
|
|
||||||
virtual const char *GetFullFilename() const = 0;
|
virtual const char *GetFullFilename() const = 0;
|
||||||
|
|
||||||
virtual void SetLocked( bool bLocked ) = 0;
|
virtual void SetLocked( bool bLocked ) = 0;
|
||||||
virtual bool IsLocked() const = 0;
|
virtual bool IsLocked() const = 0;
|
||||||
|
|
||||||
virtual void OnDelete() = 0;
|
virtual void OnDelete() = 0;
|
||||||
virtual void OnUnload() = 0;
|
virtual void OnUnload() = 0;
|
||||||
|
|
||||||
virtual const char *GetDebugName() const = 0;
|
virtual const char *GetDebugName() const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYSERIALIIZEABLE_H
|
#endif // IREPLAYSERIALIIZEABLE_H
|
@ -1,48 +1,48 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//
|
//
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYSERVER_H
|
#ifndef IREPLAYSERVER_H
|
||||||
#define IREPLAYSERVER_H
|
#define IREPLAYSERVER_H
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class IServer;
|
class IServer;
|
||||||
class IReplayDirector;
|
class IReplayDirector;
|
||||||
class IGameEvent;
|
class IGameEvent;
|
||||||
struct netadr_s;
|
struct netadr_s;
|
||||||
class CServerReplay;
|
class CServerReplay;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Interface the Replay module exposes to the engine
|
// Interface the Replay module exposes to the engine
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
#define INTERFACEVERSION_REPLAYSERVER "ReplayServer001"
|
#define INTERFACEVERSION_REPLAYSERVER "ReplayServer001"
|
||||||
|
|
||||||
class IReplayServer : public IBaseInterface
|
class IReplayServer : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~IReplayServer() {}
|
virtual ~IReplayServer() {}
|
||||||
|
|
||||||
virtual IServer *GetBaseServer() = 0; // get Replay base server interface
|
virtual IServer *GetBaseServer() = 0; // get Replay base server interface
|
||||||
virtual IReplayDirector *GetDirector() = 0; // get director interface
|
virtual IReplayDirector *GetDirector() = 0; // get director interface
|
||||||
virtual int GetReplaySlot() = 0; // return entity index-1 of Replay in game
|
virtual int GetReplaySlot() = 0; // return entity index-1 of Replay in game
|
||||||
virtual float GetOnlineTime() = 0; // seconds since broadcast started
|
virtual float GetOnlineTime() = 0; // seconds since broadcast started
|
||||||
virtual void BroadcastEvent(IGameEvent *event) = 0; // send a director command to all specs
|
virtual void BroadcastEvent(IGameEvent *event) = 0; // send a director command to all specs
|
||||||
virtual bool IsRecording() = 0;
|
virtual bool IsRecording() = 0;
|
||||||
virtual void StartRecording() = 0;
|
virtual void StartRecording() = 0;
|
||||||
virtual void StopRecording() = 0;
|
virtual void StopRecording() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYSESSIONRECORDER_H
|
#ifndef IREPLAYSESSIONRECORDER_H
|
||||||
#define IREPLAYSESSIONRECORDER_H
|
#define IREPLAYSESSIONRECORDER_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplaySessionRecorder : public IBaseInterface
|
class IReplaySessionRecorder : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void StartRecording() = 0;
|
virtual void StartRecording() = 0;
|
||||||
virtual void StopRecording( bool bAborting ) = 0;
|
virtual void StopRecording( bool bAborting ) = 0;
|
||||||
virtual void SetCurrentRecordingStartTick( int nStartTick ) = 0;
|
virtual void SetCurrentRecordingStartTick( int nStartTick ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYSESSIONRECORDER_H
|
#endif // IREPLAYSESSIONRECORDER_H
|
@ -1,60 +1,60 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef IREPLAYSYSTEM_H
|
#ifndef IREPLAYSYSTEM_H
|
||||||
#define IREPLAYSYSTEM_H
|
#define IREPLAYSYSTEM_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "appframework/IAppSystem.h"
|
#include "appframework/IAppSystem.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IClientReplayContext;
|
class IClientReplayContext;
|
||||||
class IServerReplayContext;
|
class IServerReplayContext;
|
||||||
class IGameEvent;
|
class IGameEvent;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
abstract_class IReplaySystem : public IAppSystem
|
abstract_class IReplaySystem : public IAppSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// IAppSystem:
|
// IAppSystem:
|
||||||
virtual bool Connect( CreateInterfaceFn fnFactory ) = 0;
|
virtual bool Connect( CreateInterfaceFn fnFactory ) = 0;
|
||||||
virtual void Disconnect() = 0;
|
virtual void Disconnect() = 0;
|
||||||
virtual InitReturnVal_t Init() = 0;
|
virtual InitReturnVal_t Init() = 0;
|
||||||
virtual void Shutdown() = 0;
|
virtual void Shutdown() = 0;
|
||||||
|
|
||||||
// To be called client- & server-side
|
// To be called client- & server-side
|
||||||
virtual void Think() = 0;
|
virtual void Think() = 0;
|
||||||
virtual bool IsReplayEnabled() = 0;
|
virtual bool IsReplayEnabled() = 0;
|
||||||
virtual bool IsRecording() = 0;
|
virtual bool IsRecording() = 0;
|
||||||
|
|
||||||
// To be called client-side only - on dedicated servers, only subs defined
|
// To be called client-side only - on dedicated servers, only subs defined
|
||||||
virtual bool CL_Init( CreateInterfaceFn fnClientFactory ) = 0;
|
virtual bool CL_Init( CreateInterfaceFn fnClientFactory ) = 0;
|
||||||
virtual void CL_Shutdown() = 0;
|
virtual void CL_Shutdown() = 0;
|
||||||
virtual void CL_Render() = 0;
|
virtual void CL_Render() = 0;
|
||||||
virtual IClientReplayContext *CL_GetContext() = 0;
|
virtual IClientReplayContext *CL_GetContext() = 0;
|
||||||
|
|
||||||
// To be called server-side only
|
// To be called server-side only
|
||||||
virtual bool SV_Init( CreateInterfaceFn fnFactory ) = 0;
|
virtual bool SV_Init( CreateInterfaceFn fnFactory ) = 0;
|
||||||
virtual void SV_Shutdown() = 0;
|
virtual void SV_Shutdown() = 0;
|
||||||
virtual void SV_EndRecordingSession( bool bForceSynchronousPublish = false ) = 0;
|
virtual void SV_EndRecordingSession( bool bForceSynchronousPublish = false ) = 0;
|
||||||
virtual void SV_SendReplayEvent( const char *pEventName, int nClientSlot ) = 0;
|
virtual void SV_SendReplayEvent( const char *pEventName, int nClientSlot ) = 0;
|
||||||
virtual void SV_SendReplayEvent( IGameEvent *pEvent, int nClientSlot ) = 0;
|
virtual void SV_SendReplayEvent( IGameEvent *pEvent, int nClientSlot ) = 0;
|
||||||
virtual bool SV_ShouldBeginRecording( bool bIsInWaitingForPlayers ) = 0;
|
virtual bool SV_ShouldBeginRecording( bool bIsInWaitingForPlayers ) = 0;
|
||||||
virtual void SV_NotifyReplayRequested() = 0;
|
virtual void SV_NotifyReplayRequested() = 0;
|
||||||
virtual IServerReplayContext *SV_GetContext() = 0;
|
virtual IServerReplayContext *SV_GetContext() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define REPLAY_INTERFACE_VERSION "ReplaySystem001"
|
#define REPLAY_INTERFACE_VERSION "ReplaySystem001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // IREPLAYSYSTEM_H
|
#endif // IREPLAYSYSTEM_H
|
@ -1,27 +1,27 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef ISERVERENGINE_H
|
#ifndef ISERVERENGINE_H
|
||||||
#define ISERVERENGINE_H
|
#define ISERVERENGINE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayServerEngine : public IBaseInterface
|
class IReplayServerEngine : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void EndReplayRecordingSession() = 0;
|
virtual void EndReplayRecordingSession() = 0;
|
||||||
virtual bool IsReplayRecording() = 0;
|
virtual bool IsReplayRecording() = 0;
|
||||||
virtual bool IsReplay() = 0;
|
virtual bool IsReplay() = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // ISERVERENGINE_H
|
#endif // ISERVERENGINE_H
|
@ -1,37 +1,37 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef ISERVERREPLAY_H
|
#ifndef ISERVERREPLAY_H
|
||||||
#define ISERVERREPLAY_H
|
#define ISERVERREPLAY_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "interface.h"
|
#include "interface.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define SERVER_REPLAY_INTERFACE_VERSION "ServerReplay001"
|
#define SERVER_REPLAY_INTERFACE_VERSION "ServerReplay001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayFactory;
|
class IReplayFactory;
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
//
|
//
|
||||||
// Allows the replay DLL to talk to the server
|
// Allows the replay DLL to talk to the server
|
||||||
//
|
//
|
||||||
class IServerReplay : public IBaseInterface
|
class IServerReplay : public IBaseInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void UploadOgsData( KeyValues *pData, bool bIncludeTimeField ) = 0;
|
virtual void UploadOgsData( KeyValues *pData, bool bIncludeTimeField ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // ISERVERREPLAY_H
|
#endif // ISERVERREPLAY_H
|
@ -1,38 +1,38 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef ISERVERREPLAYCONTEXT_H
|
#ifndef ISERVERREPLAYCONTEXT_H
|
||||||
#define ISERVERREPLAYCONTEXT_H
|
#define ISERVERREPLAYCONTEXT_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "replay/ireplaycontext.h"
|
#include "replay/ireplaycontext.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IGameEvent;
|
class IGameEvent;
|
||||||
class IReplaySessionRecorder;
|
class IReplaySessionRecorder;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define REPLAYHISTORYMANAGER_INTERFACE_VERSION_SERVER "VENGINE_SERVER_REPLAY_HISTORY_MANAGER_001"
|
#define REPLAYHISTORYMANAGER_INTERFACE_VERSION_SERVER "VENGINE_SERVER_REPLAY_HISTORY_MANAGER_001"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IServerReplayContext : public IReplayContext
|
class IServerReplayContext : public IReplayContext
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual void FlagForConVarSanityCheck() = 0; // Checks replay_enable / replay_local_fileserver_path / replay_downloadurlport / replay_downloadurlpath
|
virtual void FlagForConVarSanityCheck() = 0; // Checks replay_enable / replay_local_fileserver_path / replay_downloadurlport / replay_downloadurlpath
|
||||||
virtual IGameEvent *CreateReplaySessionInfoEvent() = 0; // Create "replay_sessioninfo" event w/ appropriate fields filled in
|
virtual IGameEvent *CreateReplaySessionInfoEvent() = 0; // Create "replay_sessioninfo" event w/ appropriate fields filled in
|
||||||
virtual IReplaySessionRecorder *GetSessionRecorder() = 0;
|
virtual IReplaySessionRecorder *GetSessionRecorder() = 0;
|
||||||
virtual const char *GetLocalFileServerPath() const = 0; // Returns the local path where session blocks and such should be published for download
|
virtual const char *GetLocalFileServerPath() const = 0; // Returns the local path where session blocks and such should be published for download
|
||||||
virtual void CreateSessionOnClient( int nClientSlot ) = 0;
|
virtual void CreateSessionOnClient( int nClientSlot ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // ISERVERREPLAYCONTEXT_H
|
#endif // ISERVERREPLAYCONTEXT_H
|
||||||
|
@ -1,63 +1,63 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef REPLAYPERFORMANCE_H
|
#ifndef REPLAYPERFORMANCE_H
|
||||||
#define REPLAYPERFORMANCE_H
|
#define REPLAYPERFORMANCE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "shared_defs.h"
|
#include "shared_defs.h"
|
||||||
#include "qlimits.h"
|
#include "qlimits.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay;
|
class CReplay;
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplayPerformance
|
class CReplayPerformance
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CReplayPerformance( CReplay *pReplay );
|
CReplayPerformance( CReplay *pReplay );
|
||||||
|
|
||||||
inline bool HasInTick() const { return m_nTickIn >= 0; }
|
inline bool HasInTick() const { return m_nTickIn >= 0; }
|
||||||
inline bool HasOutTick() const { return m_nTickOut >= 0; }
|
inline bool HasOutTick() const { return m_nTickOut >= 0; }
|
||||||
|
|
||||||
inline int GetTickIn() const { return m_nTickIn; }
|
inline int GetTickIn() const { return m_nTickIn; }
|
||||||
inline int GetTickOut() const { return m_nTickOut; }
|
inline int GetTickOut() const { return m_nTickOut; }
|
||||||
|
|
||||||
void Copy( const CReplayPerformance *pSrc );
|
void Copy( const CReplayPerformance *pSrc );
|
||||||
void CopyTicks( const CReplayPerformance *pSrc );
|
void CopyTicks( const CReplayPerformance *pSrc );
|
||||||
|
|
||||||
void SetFilename( const char *pFilename );
|
void SetFilename( const char *pFilename );
|
||||||
const char *GetFullPerformanceFilename();
|
const char *GetFullPerformanceFilename();
|
||||||
|
|
||||||
void AutoNameIfHasNoTitle( const char *pMapName );
|
void AutoNameIfHasNoTitle( const char *pMapName );
|
||||||
void SetTitle( const wchar_t *pTitle );
|
void SetTitle( const wchar_t *pTitle );
|
||||||
|
|
||||||
// NOTE: Doesn't copy exactly - gets a valid filename for the returned performance.
|
// NOTE: Doesn't copy exactly - gets a valid filename for the returned performance.
|
||||||
CReplayPerformance *MakeCopy() const;
|
CReplayPerformance *MakeCopy() const;
|
||||||
|
|
||||||
void Read( KeyValues *pIn );
|
void Read( KeyValues *pIn );
|
||||||
void Write( KeyValues *pOut );
|
void Write( KeyValues *pOut );
|
||||||
|
|
||||||
// NOTE: Any changes made here should be reflected in the copy constructor
|
// NOTE: Any changes made here should be reflected in the copy constructor
|
||||||
// (which is called from MakeCopy()).
|
// (which is called from MakeCopy()).
|
||||||
wchar_t m_wszTitle[MAX_TAKE_TITLE_LENGTH];
|
wchar_t m_wszTitle[MAX_TAKE_TITLE_LENGTH];
|
||||||
char m_szBaseFilename[ MAX_OSPATH ];
|
char m_szBaseFilename[ MAX_OSPATH ];
|
||||||
CReplay *m_pReplay;
|
CReplay *m_pReplay;
|
||||||
int m_nTickIn;
|
int m_nTickIn;
|
||||||
int m_nTickOut;
|
int m_nTickOut;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CReplayPerformance( const CReplayPerformance *pPerformance );
|
CReplayPerformance( const CReplayPerformance *pPerformance );
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // REPLAYPERFORMANCE_H
|
#endif // REPLAYPERFORMANCE_H
|
@ -1,62 +1,62 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef RENDERMOVIEPARAMS_H
|
#ifndef RENDERMOVIEPARAMS_H
|
||||||
#define RENDERMOVIEPARAMS_H
|
#define RENDERMOVIEPARAMS_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "tier1/utlstring.h"
|
#include "tier1/utlstring.h"
|
||||||
#include "tier1/strtools.h"
|
#include "tier1/strtools.h"
|
||||||
#include "replay/replayhandle.h"
|
#include "replay/replayhandle.h"
|
||||||
#include "replay/shared_defs.h"
|
#include "replay/shared_defs.h"
|
||||||
#include "video/ivideoservices.h"
|
#include "video/ivideoservices.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
typedef unsigned int MovieHandle_t;
|
typedef unsigned int MovieHandle_t;
|
||||||
|
|
||||||
struct RenderMovieParams_t
|
struct RenderMovieParams_t
|
||||||
{
|
{
|
||||||
inline RenderMovieParams_t() : m_iPerformance( -1 ) { V_memset( this, 0, sizeof( RenderMovieParams_t ) ); m_Settings.m_FPS.SetFPS( 0, false ); }
|
inline RenderMovieParams_t() : m_iPerformance( -1 ) { V_memset( this, 0, sizeof( RenderMovieParams_t ) ); m_Settings.m_FPS.SetFPS( 0, false ); }
|
||||||
|
|
||||||
ReplayHandle_t m_hReplay;
|
ReplayHandle_t m_hReplay;
|
||||||
int m_iPerformance; // -1 for default view, otherwise this is an index into the replay's m_vecPerformances vector.
|
int m_iPerformance; // -1 for default view, otherwise this is an index into the replay's m_vecPerformances vector.
|
||||||
wchar_t m_wszTitle[MAX_REPLAY_TITLE_LENGTH];
|
wchar_t m_wszTitle[MAX_REPLAY_TITLE_LENGTH];
|
||||||
char m_szVideoPreset[64];
|
char m_szVideoPreset[64];
|
||||||
char m_szExtension[16]; // File extension
|
char m_szExtension[16]; // File extension
|
||||||
bool m_bQuitWhenFinished;
|
bool m_bQuitWhenFinished;
|
||||||
bool m_bExportRaw; // Export movie as raw TGA frames and a .WAV
|
bool m_bExportRaw; // Export movie as raw TGA frames and a .WAV
|
||||||
float m_flEngineFps;
|
float m_flEngineFps;
|
||||||
|
|
||||||
struct ReplayRenderSettings_t
|
struct ReplayRenderSettings_t
|
||||||
{
|
{
|
||||||
uint16 m_nWidth;
|
uint16 m_nWidth;
|
||||||
uint16 m_nHeight;
|
uint16 m_nHeight;
|
||||||
int8 m_nMotionBlurQuality; // [0,MAX_MOTION_BLUR_QUALITY]
|
int8 m_nMotionBlurQuality; // [0,MAX_MOTION_BLUR_QUALITY]
|
||||||
VideoFrameRate_t m_FPS; // Actual framerate can be calculated with m_FPS.GetFps()
|
VideoFrameRate_t m_FPS; // Actual framerate can be calculated with m_FPS.GetFps()
|
||||||
VideoEncodeCodec_t m_Codec;
|
VideoEncodeCodec_t m_Codec;
|
||||||
bool m_bMotionBlurEnabled; // Motion blur enabled?
|
bool m_bMotionBlurEnabled; // Motion blur enabled?
|
||||||
bool m_bAAEnabled; // Antialiasing enabled?
|
bool m_bAAEnabled; // Antialiasing enabled?
|
||||||
int8 m_nEncodingQuality; // [0,100]
|
int8 m_nEncodingQuality; // [0,100]
|
||||||
bool m_bRaw; // This movie was exported as raw TGA frames and a .WAV file?
|
bool m_bRaw; // This movie was exported as raw TGA frames and a .WAV file?
|
||||||
}
|
}
|
||||||
m_Settings;
|
m_Settings;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef RenderMovieParams_t::ReplayRenderSettings_t ReplayRenderSettings_t;
|
typedef RenderMovieParams_t::ReplayRenderSettings_t ReplayRenderSettings_t;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define MAX_DOF_QUALITY 2
|
#define MAX_DOF_QUALITY 2
|
||||||
#define MAX_MOTION_BLUR_QUALITY 3
|
#define MAX_MOTION_BLUR_QUALITY 3
|
||||||
#define SUBPIXEL_JITTER_SAMPLES 16
|
#define SUBPIXEL_JITTER_SAMPLES 16
|
||||||
#define CHEAP_DOF_SAMPLES 4
|
#define CHEAP_DOF_SAMPLES 4
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // RENDERMOVIEPARAMS_H
|
#endif // RENDERMOVIEPARAMS_H
|
||||||
|
@ -1,146 +1,146 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef REPLAY_H
|
#ifndef REPLAY_H
|
||||||
#define REPLAY_H
|
#define REPLAY_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "replay/iqueryablereplayitem.h"
|
#include "replay/iqueryablereplayitem.h"
|
||||||
#include "replay/replaytime.h"
|
#include "replay/replaytime.h"
|
||||||
#include "replay/basereplayserializeable.h"
|
#include "replay/basereplayserializeable.h"
|
||||||
#include "qlimits.h"
|
#include "qlimits.h"
|
||||||
#include "utlstring.h"
|
#include "utlstring.h"
|
||||||
#include "utlvector.h"
|
#include "utlvector.h"
|
||||||
#include "replay/shared_defs.h"
|
#include "replay/shared_defs.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IReplayDownloadEventHandler;
|
class IReplayDownloadEventHandler;
|
||||||
class CReplayScreenshot;
|
class CReplayScreenshot;
|
||||||
class CReplayPerformance;
|
class CReplayPerformance;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplay : public CBaseReplaySerializeable,
|
class CReplay : public CBaseReplaySerializeable,
|
||||||
public IQueryableReplayItem
|
public IQueryableReplayItem
|
||||||
{
|
{
|
||||||
typedef CBaseReplaySerializeable BaseClass;
|
typedef CBaseReplaySerializeable BaseClass;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum ReplayStatus_t
|
enum ReplayStatus_t
|
||||||
{
|
{
|
||||||
REPLAYSTATUS_INVALID,
|
REPLAYSTATUS_INVALID,
|
||||||
REPLAYSTATUS_ERROR,
|
REPLAYSTATUS_ERROR,
|
||||||
REPLAYSTATUS_DOWNLOADPHASE, // Multiple sub-states during download state
|
REPLAYSTATUS_DOWNLOADPHASE, // Multiple sub-states during download state
|
||||||
REPLAYSTATUS_READYTOCONVERT, // Download is complete, ready to convert
|
REPLAYSTATUS_READYTOCONVERT, // Download is complete, ready to convert
|
||||||
REPLAYSTATUS_RENDERING, // Currently rendering the file
|
REPLAYSTATUS_RENDERING, // Currently rendering the file
|
||||||
REPLAYSTATUS_RENDERED,
|
REPLAYSTATUS_RENDERED,
|
||||||
REPLAYSTATUS_MAX
|
REPLAYSTATUS_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
CReplay();
|
CReplay();
|
||||||
virtual ~CReplay() {}
|
virtual ~CReplay() {}
|
||||||
|
|
||||||
//
|
//
|
||||||
// IReplaySerializeable
|
// IReplaySerializeable
|
||||||
//
|
//
|
||||||
virtual const char *GetSubKeyTitle() const;
|
virtual const char *GetSubKeyTitle() const;
|
||||||
virtual const char *GetPath() const;
|
virtual const char *GetPath() const;
|
||||||
virtual void OnDelete();
|
virtual void OnDelete();
|
||||||
virtual bool Read( KeyValues *pIn );
|
virtual bool Read( KeyValues *pIn );
|
||||||
virtual void Write( KeyValues *pOut );
|
virtual void Write( KeyValues *pOut );
|
||||||
|
|
||||||
virtual void DumpGameSpecificData() const {}
|
virtual void DumpGameSpecificData() const {}
|
||||||
|
|
||||||
virtual void Update() {}
|
virtual void Update() {}
|
||||||
|
|
||||||
// Hooks to allow replays to setup event listeners, etc.
|
// Hooks to allow replays to setup event listeners, etc.
|
||||||
virtual void OnBeginRecording() {}
|
virtual void OnBeginRecording() {}
|
||||||
virtual void OnEndRecording() {}
|
virtual void OnEndRecording() {}
|
||||||
|
|
||||||
// Called when a replay is "completed"
|
// Called when a replay is "completed"
|
||||||
virtual void OnComplete();
|
virtual void OnComplete();
|
||||||
|
|
||||||
// Should we allow this replay to be deleted?
|
// Should we allow this replay to be deleted?
|
||||||
virtual bool ShouldAllowDelete() const { return true; }
|
virtual bool ShouldAllowDelete() const { return true; }
|
||||||
|
|
||||||
void AutoNameTitleIfEmpty();
|
void AutoNameTitleIfEmpty();
|
||||||
|
|
||||||
void AddScreenshot( int nWidth, int nHeight, const char *pBaseFilename );
|
void AddScreenshot( int nWidth, int nHeight, const char *pBaseFilename );
|
||||||
|
|
||||||
bool HasReconstructedReplay() const;
|
bool HasReconstructedReplay() const;
|
||||||
bool IsSignificantBlock( int iBlockReconstruction ) const; // Does this replay care about the given block?
|
bool IsSignificantBlock( int iBlockReconstruction ) const; // Does this replay care about the given block?
|
||||||
|
|
||||||
CReplayPerformance *AddNewPerformance( bool bGenTitle = true, bool bGenFilename = true );
|
CReplayPerformance *AddNewPerformance( bool bGenTitle = true, bool bGenFilename = true );
|
||||||
void AddPerformance( KeyValues *pIn );
|
void AddPerformance( KeyValues *pIn );
|
||||||
void AddPerformance( CReplayPerformance *pPerformance );
|
void AddPerformance( CReplayPerformance *pPerformance );
|
||||||
|
|
||||||
// Accessors:
|
// Accessors:
|
||||||
inline int GetScreenshotCount() const { return m_vecScreenshots.Count(); }
|
inline int GetScreenshotCount() const { return m_vecScreenshots.Count(); }
|
||||||
inline const CReplayScreenshot *GetScreenshot( int i ) const { return m_vecScreenshots[ i ]; }
|
inline const CReplayScreenshot *GetScreenshot( int i ) const { return m_vecScreenshots[ i ]; }
|
||||||
bool IsDownloaded() const;
|
bool IsDownloaded() const;
|
||||||
inline int GetPerformanceCount() const { return m_vecPerformances.Count(); }
|
inline int GetPerformanceCount() const { return m_vecPerformances.Count(); }
|
||||||
CReplayPerformance *GetPerformance( int i );
|
CReplayPerformance *GetPerformance( int i );
|
||||||
const CReplayPerformance *GetPerformance( int i ) const;
|
const CReplayPerformance *GetPerformance( int i ) const;
|
||||||
inline bool HasPerformance( CReplayPerformance *pPerformance ) { return m_vecPerformances.Find( pPerformance ) != m_vecPerformances.InvalidIndex(); }
|
inline bool HasPerformance( CReplayPerformance *pPerformance ) { return m_vecPerformances.Find( pPerformance ) != m_vecPerformances.InvalidIndex(); }
|
||||||
bool FindPerformance( CReplayPerformance *pPerformance, int &iResult );
|
bool FindPerformance( CReplayPerformance *pPerformance, int &iResult );
|
||||||
CReplayPerformance *GetPerformanceWithTitle( const wchar_t *pTitle );
|
CReplayPerformance *GetPerformanceWithTitle( const wchar_t *pTitle );
|
||||||
inline const char *GetMapName() const { return m_szMapName; }
|
inline const char *GetMapName() const { return m_szMapName; }
|
||||||
inline int GetSpawnTick() const { return m_nSpawnTick; }
|
inline int GetSpawnTick() const { return m_nSpawnTick; }
|
||||||
inline int GetDeathTick() const { return m_nDeathTick; }
|
inline int GetDeathTick() const { return m_nDeathTick; }
|
||||||
|
|
||||||
// IQueryableReplayItem implementation:
|
// IQueryableReplayItem implementation:
|
||||||
virtual const CReplayTime &GetItemDate() const;
|
virtual const CReplayTime &GetItemDate() const;
|
||||||
virtual bool IsItemRendered() const;
|
virtual bool IsItemRendered() const;
|
||||||
virtual CReplay *GetItemReplay();
|
virtual CReplay *GetItemReplay();
|
||||||
virtual ReplayHandle_t GetItemReplayHandle() const;
|
virtual ReplayHandle_t GetItemReplayHandle() const;
|
||||||
virtual QueryableReplayItemHandle_t GetItemHandle() const;
|
virtual QueryableReplayItemHandle_t GetItemHandle() const;
|
||||||
virtual const wchar_t *GetItemTitle() const;
|
virtual const wchar_t *GetItemTitle() const;
|
||||||
virtual void SetItemTitle( const wchar_t *pTitle );
|
virtual void SetItemTitle( const wchar_t *pTitle );
|
||||||
virtual float GetItemLength() const;
|
virtual float GetItemLength() const;
|
||||||
virtual void *GetUserData();
|
virtual void *GetUserData();
|
||||||
virtual void SetUserData( void* pUserData );
|
virtual void SetUserData( void* pUserData );
|
||||||
virtual bool IsItemAMovie() const;
|
virtual bool IsItemAMovie() const;
|
||||||
|
|
||||||
// Non-persistent data
|
// Non-persistent data
|
||||||
mutable IReplayDownloadEventHandler *m_pDownloadEventHandler; // Implemented by replay browser - the reason we've got one per replay rather than
|
mutable IReplayDownloadEventHandler *m_pDownloadEventHandler; // Implemented by replay browser - the reason we've got one per replay rather than
|
||||||
// one per download group is because the browser needs to receive events per-thumbnail
|
// one per download group is because the browser needs to receive events per-thumbnail
|
||||||
bool m_bSaved; // True as soon as the replay is saved to disk for the first time
|
bool m_bSaved; // True as soon as the replay is saved to disk for the first time
|
||||||
bool m_bRequestedByUser; // Did the user request to save this replay?
|
bool m_bRequestedByUser; // Did the user request to save this replay?
|
||||||
bool m_bComplete; // Indicates whether the replay is done recording - this should be false
|
bool m_bComplete; // Indicates whether the replay is done recording - this should be false
|
||||||
// until the player dies, the round ends, or the level changes
|
// until the player dies, the round ends, or the level changes
|
||||||
void *m_pUserData;
|
void *m_pUserData;
|
||||||
float m_flNextUpdateTime;
|
float m_flNextUpdateTime;
|
||||||
bool m_bDirty;
|
bool m_bDirty;
|
||||||
|
|
||||||
// Persistent data
|
// Persistent data
|
||||||
ReplayHandle_t m_hSession; // The recording session in which this replay was recorded
|
ReplayHandle_t m_hSession; // The recording session in which this replay was recorded
|
||||||
char m_szMapName[MAX_OSPATH];
|
char m_szMapName[MAX_OSPATH];
|
||||||
ReplayStatus_t m_nStatus;
|
ReplayStatus_t m_nStatus;
|
||||||
const char* m_pFileURL; // In the form <protocol>://<server address>:<port number>/path/file - points to the string in the download group
|
const char* m_pFileURL; // In the form <protocol>://<server address>:<port number>/path/file - points to the string in the download group
|
||||||
wchar_t m_wszTitle[MAX_REPLAY_TITLE_LENGTH];
|
wchar_t m_wszTitle[MAX_REPLAY_TITLE_LENGTH];
|
||||||
CUtlString m_strKilledBy; // Name of player who killed, if any
|
CUtlString m_strKilledBy; // Name of player who killed, if any
|
||||||
int m_nDeathTime;
|
int m_nDeathTime;
|
||||||
int m_nSpawnTick;
|
int m_nSpawnTick;
|
||||||
int m_nDeathTick;
|
int m_nDeathTick;
|
||||||
float m_flLength; // The length of the entire replay, including the post-death time, in seconds
|
float m_flLength; // The length of the entire replay, including the post-death time, in seconds
|
||||||
bool m_bRendered; // Has the replay been rendered yet?
|
bool m_bRendered; // Has the replay been rendered yet?
|
||||||
int m_nPlayerSlot; // Player slot (+1), used to determine which player recorded the demo during playback
|
int m_nPlayerSlot; // Player slot (+1), used to determine which player recorded the demo during playback
|
||||||
int m_nPostDeathRecordTime; // replay_postdeathrecordtime at the time of record
|
int m_nPostDeathRecordTime; // replay_postdeathrecordtime at the time of record
|
||||||
CUtlVector< CReplayScreenshot * > m_vecScreenshots;
|
CUtlVector< CReplayScreenshot * > m_vecScreenshots;
|
||||||
CUtlVector< CReplayPerformance * > m_vecPerformances;
|
CUtlVector< CReplayPerformance * > m_vecPerformances;
|
||||||
int m_iMaxSessionBlockRequired; // The maximum session block required to reconstruct a viewable .dem file from spawn tick until length
|
int m_iMaxSessionBlockRequired; // The maximum session block required to reconstruct a viewable .dem file from spawn tick until length
|
||||||
CReplayTime m_RecordTime; // Contains time/date when spawn tick was recorded
|
CReplayTime m_RecordTime; // Contains time/date when spawn tick was recorded
|
||||||
float m_flStartTime; // Start time (uses engine's host_time)
|
float m_flStartTime; // Start time (uses engine's host_time)
|
||||||
CUtlString m_strReconstructedFilename;
|
CUtlString m_strReconstructedFilename;
|
||||||
bool m_bSavedDuringThisSession;
|
bool m_bSavedDuringThisSession;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // REPLAY_H
|
#endif // REPLAY_H
|
@ -1,25 +1,25 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef REPLAYHANDLE_H
|
#ifndef REPLAYHANDLE_H
|
||||||
#define REPLAYHANDLE_H
|
#define REPLAYHANDLE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
typedef uint32 ReplayHandle_t;
|
typedef uint32 ReplayHandle_t;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define REPLAY_HANDLE_INVALID ( (ReplayHandle_t)-1 )
|
#define REPLAY_HANDLE_INVALID ( (ReplayHandle_t)-1 )
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // REPLAYHANDLE_H
|
#endif // REPLAYHANDLE_H
|
@ -1,21 +1,21 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef REPLAYLIB_H
|
#ifndef REPLAYLIB_H
|
||||||
#define REPLAYLIB_H
|
#define REPLAYLIB_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class IClientReplayContext;
|
class IClientReplayContext;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
bool ReplayLib_Init( const char *pGameDir, IClientReplayContext *pClientReplayContext );
|
bool ReplayLib_Init( const char *pGameDir, IClientReplayContext *pClientReplayContext );
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // REPLAYLIB_H
|
#endif // REPLAYLIB_H
|
@ -1,57 +1,57 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef REPLAYTIME_H
|
#ifndef REPLAYTIME_H
|
||||||
#define REPLAYTIME_H
|
#define REPLAYTIME_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "vgui/ILocalize.h"
|
#include "vgui/ILocalize.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplayTime
|
class CReplayTime
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CReplayTime();
|
CReplayTime();
|
||||||
|
|
||||||
void InitDateAndTimeToNow();
|
void InitDateAndTimeToNow();
|
||||||
|
|
||||||
void Read( KeyValues *pIn );
|
void Read( KeyValues *pIn );
|
||||||
void Write( KeyValues *pOut );
|
void Write( KeyValues *pOut );
|
||||||
|
|
||||||
// Modifiers:
|
// Modifiers:
|
||||||
void SetDate( int nDay, int nMonth, int nYear );
|
void SetDate( int nDay, int nMonth, int nYear );
|
||||||
void SetTime( int nHour, int nMin, int nSec );
|
void SetTime( int nHour, int nMin, int nSec );
|
||||||
inline void SetRawDate( int nRawDate ) { m_fDate = nRawDate; }
|
inline void SetRawDate( int nRawDate ) { m_fDate = nRawDate; }
|
||||||
inline void SetRawTime( int nRawTime ) { m_fTime = nRawTime; }
|
inline void SetRawTime( int nRawTime ) { m_fTime = nRawTime; }
|
||||||
|
|
||||||
// Accessors:
|
// Accessors:
|
||||||
void GetTime( int &nHour, int &nMin, int &nSec ) const;
|
void GetTime( int &nHour, int &nMin, int &nSec ) const;
|
||||||
void GetDate( int &nDay, int &nMonth, int &nYear ) const;
|
void GetDate( int &nDay, int &nMonth, int &nYear ) const;
|
||||||
|
|
||||||
static const char *FormatTimeString( int nSecs );
|
static const char *FormatTimeString( int nSecs );
|
||||||
static const char *FormatPreciseTimeString( float flSecs );
|
static const char *FormatPreciseTimeString( float flSecs );
|
||||||
static const wchar_t *GetLocalizedMonth( vgui::ILocalize *pLocalize, int nMonth );
|
static const wchar_t *GetLocalizedMonth( vgui::ILocalize *pLocalize, int nMonth );
|
||||||
static const wchar_t *GetLocalizedDay( vgui::ILocalize *pLocalize, int nDay );
|
static const wchar_t *GetLocalizedDay( vgui::ILocalize *pLocalize, int nDay );
|
||||||
static const wchar_t *GetLocalizedYear( vgui::ILocalize *pLocalize, int nYear );
|
static const wchar_t *GetLocalizedYear( vgui::ILocalize *pLocalize, int nYear );
|
||||||
static const wchar_t *GetLocalizedTime( vgui::ILocalize *pLocalize, int nHour, int nMin, int nSec );
|
static const wchar_t *GetLocalizedTime( vgui::ILocalize *pLocalize, int nHour, int nMin, int nSec );
|
||||||
static const wchar_t *GetLocalizedDate( vgui::ILocalize *pLocalize, int nDay, int nMonth, int nYear,
|
static const wchar_t *GetLocalizedDate( vgui::ILocalize *pLocalize, int nDay, int nMonth, int nYear,
|
||||||
int *pHour = NULL, int *pMin = NULL, int *pSec = NULL, bool bForceFullFormat = false ); // bForceFullFormat true will keep from returning "today" or "yesterday"
|
int *pHour = NULL, int *pMin = NULL, int *pSec = NULL, bool bForceFullFormat = false ); // bForceFullFormat true will keep from returning "today" or "yesterday"
|
||||||
static const wchar_t *GetLocalizedDate( vgui::ILocalize *pLocalize, const CReplayTime &t, bool bForceFullFormat = false );
|
static const wchar_t *GetLocalizedDate( vgui::ILocalize *pLocalize, const CReplayTime &t, bool bForceFullFormat = false );
|
||||||
|
|
||||||
int m_fDate; // Representation of a date (bitfield)
|
int m_fDate; // Representation of a date (bitfield)
|
||||||
int m_fTime; // Representation of time (bitfield)
|
int m_fTime; // Representation of time (bitfield)
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // REPLAYTIME_H
|
#endif // REPLAYTIME_H
|
@ -1,43 +1,43 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef REPLAYUTILS_H
|
#ifndef REPLAYUTILS_H
|
||||||
#define REPLAYUTILS_H
|
#define REPLAYUTILS_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "utlstring.h"
|
#include "utlstring.h"
|
||||||
|
|
||||||
void Replay_GetFirstAvailableFilename( char *pDst, int nDstLen, const char *pIdealFilename, const char *pExt,
|
void Replay_GetFirstAvailableFilename( char *pDst, int nDstLen, const char *pIdealFilename, const char *pExt,
|
||||||
const char *pFilePath, int nStartIndex );
|
const char *pFilePath, int nStartIndex );
|
||||||
|
|
||||||
void Replay_ConstructReplayFilenameString( CUtlString &strOut, const char *pReplaySubDir, const char *pFilename, const char *pGameDir );
|
void Replay_ConstructReplayFilenameString( CUtlString &strOut, const char *pReplaySubDir, const char *pFilename, const char *pGameDir );
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Util function, copied from src/engine/common.cpp
|
// Util function, copied from src/engine/common.cpp
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
char *Replay_va( PRINTF_FORMAT_STRING const char *format, ... );
|
char *Replay_va( PRINTF_FORMAT_STRING const char *format, ... );
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Return the base dir, e.g. "c:\...\game\tf\replays\"
|
// Return the base dir, e.g. "c:\...\game\tf\replays\"
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
const char *Replay_GetBaseDir();
|
const char *Replay_GetBaseDir();
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Set the game directory (only to be called from ReplayLib_Init())
|
// Set the game directory (only to be called from ReplayLib_Init())
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void Replay_SetGameDir( const char *pGameDir );
|
void Replay_SetGameDir( const char *pGameDir );
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Return the base dir, e.g. "c:\...\game\tf\replays\"
|
// Return the base dir, e.g. "c:\...\game\tf\replays\"
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
const char *Replay_GetGameDir();
|
const char *Replay_GetGameDir();
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// Get a name of the format "<map>: <current date & time>" - used for replays and takes.
|
// Get a name of the format "<map>: <current date & time>" - used for replays and takes.
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void Replay_GetAutoName( OUT_Z_BYTECAP(nDestSizeInBytes) wchar_t *pDest, int nDestSizeInBytes, const char *pMapName );
|
void Replay_GetAutoName( OUT_Z_BYTECAP(nDestSizeInBytes) wchar_t *pDest, int nDestSizeInBytes, const char *pMapName );
|
||||||
|
|
||||||
#endif // REPLAY_H
|
#endif // REPLAY_H
|
||||||
|
@ -1,72 +1,72 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef SCREENSHOT_H
|
#ifndef SCREENSHOT_H
|
||||||
#define SCREENSHOT_H
|
#define SCREENSHOT_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "replay/basereplayserializeable.h"
|
#include "replay/basereplayserializeable.h"
|
||||||
#include "mathlib/vector.h"
|
#include "mathlib/vector.h"
|
||||||
#include "qlimits.h"
|
#include "qlimits.h"
|
||||||
#include "strtools.h"
|
#include "strtools.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define SUBDIR_SCREENSHOTS "screenshots"
|
#define SUBDIR_SCREENSHOTS "screenshots"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
class CReplayScreenshot : public CBaseReplaySerializeable
|
class CReplayScreenshot : public CBaseReplaySerializeable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
inline CReplayScreenshot( int nWidth = 0, int nHeight = 0, const char *pBaseFilename = NULL )
|
inline CReplayScreenshot( int nWidth = 0, int nHeight = 0, const char *pBaseFilename = NULL )
|
||||||
: m_nWidth( nWidth ), m_nHeight( nHeight )
|
: m_nWidth( nWidth ), m_nHeight( nHeight )
|
||||||
{
|
{
|
||||||
if ( pBaseFilename )
|
if ( pBaseFilename )
|
||||||
{
|
{
|
||||||
V_strncpy( m_szBaseFilename, pBaseFilename, sizeof( m_szBaseFilename ) );
|
V_strncpy( m_szBaseFilename, pBaseFilename, sizeof( m_szBaseFilename ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool Read( KeyValues *pIn );
|
virtual bool Read( KeyValues *pIn );
|
||||||
virtual void Write( KeyValues *pOut );
|
virtual void Write( KeyValues *pOut );
|
||||||
virtual const char *GetSubKeyTitle() const;
|
virtual const char *GetSubKeyTitle() const;
|
||||||
virtual const char *GetPath() const;
|
virtual const char *GetPath() const;
|
||||||
|
|
||||||
int m_nWidth; // Screenshot width (does not include power-of-2 padding)
|
int m_nWidth; // Screenshot width (does not include power-of-2 padding)
|
||||||
int m_nHeight; // Screenshot height (does not include power-of-2 padding)
|
int m_nHeight; // Screenshot height (does not include power-of-2 padding)
|
||||||
char m_szBaseFilename[ MAX_OSPATH ];
|
char m_szBaseFilename[ MAX_OSPATH ];
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
struct CaptureScreenshotParams_t // To be passed from the client into IReplayHistoryManager::CaptureScreenshot()
|
struct CaptureScreenshotParams_t // To be passed from the client into IReplayHistoryManager::CaptureScreenshot()
|
||||||
{
|
{
|
||||||
float m_flDelay; // Delay from now (in seconds) when we will take the screenshot
|
float m_flDelay; // Delay from now (in seconds) when we will take the screenshot
|
||||||
int m_nEntity; // Should be 0 if no camera adjustment is needed, otherwise should be the index of the entity index from which m_posCamera will be based
|
int m_nEntity; // Should be 0 if no camera adjustment is needed, otherwise should be the index of the entity index from which m_posCamera will be based
|
||||||
Vector m_posCamera; // Local position, relative to entity's index (if m_nEntity > 0) for camera position
|
Vector m_posCamera; // Local position, relative to entity's index (if m_nEntity > 0) for camera position
|
||||||
QAngle m_angCamera; // World angles of camera - used if m_bUseCameraAngles is true
|
QAngle m_angCamera; // World angles of camera - used if m_bUseCameraAngles is true
|
||||||
bool m_bUseCameraAngles; // Should we use m_angCamera - m_nEntity can't be 0
|
bool m_bUseCameraAngles; // Should we use m_angCamera - m_nEntity can't be 0
|
||||||
bool m_bIgnoreMinTimeBetweenScreenshots; // Force screenshot, regardless of replay_mintimebetweenscreenshots?
|
bool m_bIgnoreMinTimeBetweenScreenshots; // Force screenshot, regardless of replay_mintimebetweenscreenshots?
|
||||||
bool m_bPrimary; // Only set to true for the primary screenshot, which is taken when the user saves their replay
|
bool m_bPrimary; // Only set to true for the primary screenshot, which is taken when the user saves their replay
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
struct WriteReplayScreenshotParams_t // Passed from the engine into the client to take a screenshot
|
struct WriteReplayScreenshotParams_t // Passed from the engine into the client to take a screenshot
|
||||||
{
|
{
|
||||||
const char *m_pFilename;
|
const char *m_pFilename;
|
||||||
int m_nWidth;
|
int m_nWidth;
|
||||||
int m_nHeight;
|
int m_nHeight;
|
||||||
Vector *m_pOrigin; // Perspective origin from which to render. Can be NULL
|
Vector *m_pOrigin; // Perspective origin from which to render. Can be NULL
|
||||||
QAngle *m_pAngles; // Perspective angles from which to render. Can be NULL
|
QAngle *m_pAngles; // Perspective angles from which to render. Can be NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // SCREENSHOT_H
|
#endif // SCREENSHOT_H
|
||||||
|
@ -1,73 +1,73 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
//=======================================================================================//
|
//=======================================================================================//
|
||||||
|
|
||||||
#ifndef SHARED_DEFS_H
|
#ifndef SHARED_DEFS_H
|
||||||
#define SHARED_DEFS_H
|
#define SHARED_DEFS_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define SUBDIR_REPLAY "replay"
|
#define SUBDIR_REPLAY "replay"
|
||||||
#define SUBDIR_REPLAYS "replays"
|
#define SUBDIR_REPLAYS "replays"
|
||||||
#define SUBDIR_SESSIONS "sessions"
|
#define SUBDIR_SESSIONS "sessions"
|
||||||
#define SUBDIR_BLOCKS "blocks"
|
#define SUBDIR_BLOCKS "blocks"
|
||||||
#define SUBDIR_CLIENT "client"
|
#define SUBDIR_CLIENT "client"
|
||||||
#define SUBDIR_MOVIES "movies"
|
#define SUBDIR_MOVIES "movies"
|
||||||
#define SUBDIR_PERFORMANCES "edits"
|
#define SUBDIR_PERFORMANCES "edits"
|
||||||
#define SUBDIR_SERVER "server"
|
#define SUBDIR_SERVER "server"
|
||||||
#define SUBDIR_RENDERED "rendered"
|
#define SUBDIR_RENDERED "rendered"
|
||||||
#define SUBDIR_TMP "tmp"
|
#define SUBDIR_TMP "tmp"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define BLOCK_FILE_EXTENSION "block"
|
#define BLOCK_FILE_EXTENSION "block"
|
||||||
#define GENERIC_FILE_EXTENSION "dmx"
|
#define GENERIC_FILE_EXTENSION "dmx"
|
||||||
#define DEMO_FILE_EXTENSION "dem"
|
#define DEMO_FILE_EXTENSION "dem"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define MOVIE_HANDLE_BASE 10000 // 10,000
|
#define MOVIE_HANDLE_BASE 10000 // 10,000
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define BUILD_CURL ( defined( WIN32 ) && !defined( _X360 ) ) || defined( POSIX )
|
#define BUILD_CURL ( defined( WIN32 ) && !defined( _X360 ) ) || defined( POSIX )
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define MIN_SERVER_DUMP_INTERVAL 10
|
#define MIN_SERVER_DUMP_INTERVAL 10
|
||||||
#define MAX_SERVER_DUMP_INTERVAL 30
|
#define MAX_SERVER_DUMP_INTERVAL 30
|
||||||
|
|
||||||
#define DOWNLOAD_TIMEOUT_THRESHOLD 90 // Timeout for a replay download - if no blocks
|
#define DOWNLOAD_TIMEOUT_THRESHOLD 90 // Timeout for a replay download - if no blocks
|
||||||
// are added or updated after this many seconds,
|
// are added or updated after this many seconds,
|
||||||
// the replay will be put in the error state.
|
// the replay will be put in the error state.
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define MAX_TIMES_TO_SHOW_REPLAY_WELCOME_DLG 1
|
#define MAX_TIMES_TO_SHOW_REPLAY_WELCOME_DLG 1
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define MAX_SESSIONNAME_LENGTH 260
|
#define MAX_SESSIONNAME_LENGTH 260
|
||||||
#define MAX_REPLAY_TITLE_LENGTH 256
|
#define MAX_REPLAY_TITLE_LENGTH 256
|
||||||
#define MAX_TAKE_TITLE_LENGTH 256
|
#define MAX_TAKE_TITLE_LENGTH 256
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define DEFAULT_COMPRESSOR_TYPE COMPRESSORTYPE_BZ2
|
#define DEFAULT_COMPRESSOR_TYPE COMPRESSORTYPE_BZ2
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#define JOB_FAILED ( (JobStatus_t) -1 )
|
#define JOB_FAILED ( (JobStatus_t) -1 )
|
||||||
|
|
||||||
#define DOWNLOAD_MAX_SIZE ( 8 * 1024 * 1024 ) // 8 MB
|
#define DOWNLOAD_MAX_SIZE ( 8 * 1024 * 1024 ) // 8 MB
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
#endif // SHARED_DEFS_H
|
#endif // SHARED_DEFS_H
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,38 +1,38 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: StudioMDL byteswapping functions.
|
// Purpose: StudioMDL byteswapping functions.
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
#ifndef STUDIOBYTESWAP_H
|
#ifndef STUDIOBYTESWAP_H
|
||||||
#define STUDIOBYTESWAP_H
|
#define STUDIOBYTESWAP_H
|
||||||
|
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "byteswap.h"
|
#include "byteswap.h"
|
||||||
struct studiohdr_t;
|
struct studiohdr_t;
|
||||||
class IPhysicsCollision;
|
class IPhysicsCollision;
|
||||||
|
|
||||||
namespace StudioByteSwap
|
namespace StudioByteSwap
|
||||||
{
|
{
|
||||||
typedef bool (*CompressFunc_t)( const void *pInput, int inputSize, void **pOutput, int *pOutputSize );
|
typedef bool (*CompressFunc_t)( const void *pInput, int inputSize, void **pOutput, int *pOutputSize );
|
||||||
|
|
||||||
//void SetTargetBigEndian( bool bigEndian );
|
//void SetTargetBigEndian( bool bigEndian );
|
||||||
void ActivateByteSwapping( bool bActivate );
|
void ActivateByteSwapping( bool bActivate );
|
||||||
void SourceIsNative( bool bActivate );
|
void SourceIsNative( bool bActivate );
|
||||||
void SetVerbose( bool bVerbose );
|
void SetVerbose( bool bVerbose );
|
||||||
void SetCollisionInterface( IPhysicsCollision *pPhysicsCollision );
|
void SetCollisionInterface( IPhysicsCollision *pPhysicsCollision );
|
||||||
|
|
||||||
int ByteswapStudioFile( const char *pFilename, void *pOutBase, const void *pFileBase, int fileSize, studiohdr_t *pHdr, CompressFunc_t pCompressFunc = NULL );
|
int ByteswapStudioFile( const char *pFilename, void *pOutBase, const void *pFileBase, int fileSize, studiohdr_t *pHdr, CompressFunc_t pCompressFunc = NULL );
|
||||||
int ByteswapPHY( void *pOutBase, const void *pFileBase, int fileSize );
|
int ByteswapPHY( void *pOutBase, const void *pFileBase, int fileSize );
|
||||||
int ByteswapANI( studiohdr_t* pHdr, void *pOutBase, const void *pFileBase, int filesize );
|
int ByteswapANI( studiohdr_t* pHdr, void *pOutBase, const void *pFileBase, int filesize );
|
||||||
int ByteswapVVD( void *pOutBase, const void *pFileBase, int fileSize );
|
int ByteswapVVD( void *pOutBase, const void *pFileBase, int fileSize );
|
||||||
int ByteswapVTX( void *pOutBase, const void *pFileBase, int fileSize );
|
int ByteswapVTX( void *pOutBase, const void *pFileBase, int fileSize );
|
||||||
int ByteswapMDL( void *pOutBase, const void *pFileBase, int fileSize );
|
int ByteswapMDL( void *pOutBase, const void *pFileBase, int fileSize );
|
||||||
|
|
||||||
#define BYTESWAP_ALIGNMENT_PADDING 4096
|
#define BYTESWAP_ALIGNMENT_PADDING 4096
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // STUDIOBYTESWAP_H
|
#endif // STUDIOBYTESWAP_H
|
@ -1,35 +1,35 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef USERID_H
|
#ifndef USERID_H
|
||||||
#define USERID_H
|
#define USERID_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined( INCLUDED_STEAM_STEAMUSERIDTYPES_H )
|
#if !defined( INCLUDED_STEAM_STEAMUSERIDTYPES_H )
|
||||||
#include "SteamCommon.h"
|
#include "SteamCommon.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define IDTYPE_WON 0
|
#define IDTYPE_WON 0
|
||||||
#define IDTYPE_STEAM 1
|
#define IDTYPE_STEAM 1
|
||||||
#define IDTYPE_VALVE 2
|
#define IDTYPE_VALVE 2
|
||||||
#define IDTYPE_HLTV 3
|
#define IDTYPE_HLTV 3
|
||||||
#define IDTYPE_REPLAY 4
|
#define IDTYPE_REPLAY 4
|
||||||
typedef struct USERID_s
|
typedef struct USERID_s
|
||||||
{
|
{
|
||||||
int idtype;
|
int idtype;
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
TSteamGlobalUserID steamid;
|
TSteamGlobalUserID steamid;
|
||||||
} uid;
|
} uid;
|
||||||
|
|
||||||
// unsigned int clientip;
|
// unsigned int clientip;
|
||||||
} USERID_t;
|
} USERID_t;
|
||||||
|
|
||||||
#endif // USERID_H
|
#endif // USERID_H
|
||||||
|
@ -1,237 +1,237 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: Win32 replacements for XBox.
|
// Purpose: Win32 replacements for XBox.
|
||||||
//
|
//
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
#if !defined( XBOXSTUBS_H ) && !defined( _X360 )
|
#if !defined( XBOXSTUBS_H ) && !defined( _X360 )
|
||||||
#define XBOXSTUBS_H
|
#define XBOXSTUBS_H
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "tier0/platform.h"
|
#include "tier0/platform.h"
|
||||||
|
|
||||||
// Content creation/open flags
|
// Content creation/open flags
|
||||||
#define XCONTENTFLAG_NONE 0x00
|
#define XCONTENTFLAG_NONE 0x00
|
||||||
#define XCONTENTFLAG_CREATENEW 0x00
|
#define XCONTENTFLAG_CREATENEW 0x00
|
||||||
#define XCONTENTFLAG_CREATEALWAYS 0x00
|
#define XCONTENTFLAG_CREATEALWAYS 0x00
|
||||||
#define XCONTENTFLAG_OPENEXISTING 0x00
|
#define XCONTENTFLAG_OPENEXISTING 0x00
|
||||||
#define XCONTENTFLAG_OPENALWAYS 0x00
|
#define XCONTENTFLAG_OPENALWAYS 0x00
|
||||||
#define XCONTENTFLAG_TRUNCATEEXISTING 0x00
|
#define XCONTENTFLAG_TRUNCATEEXISTING 0x00
|
||||||
|
|
||||||
// Content attributes
|
// Content attributes
|
||||||
#define XCONTENTFLAG_NOPROFILE_TRANSFER 0x00
|
#define XCONTENTFLAG_NOPROFILE_TRANSFER 0x00
|
||||||
#define XCONTENTFLAG_NODEVICE_TRANSFER 0x00
|
#define XCONTENTFLAG_NODEVICE_TRANSFER 0x00
|
||||||
#define XCONTENTFLAG_STRONG_SIGNED 0x00
|
#define XCONTENTFLAG_STRONG_SIGNED 0x00
|
||||||
#define XCONTENTFLAG_ALLOWPROFILE_TRANSFER 0x00
|
#define XCONTENTFLAG_ALLOWPROFILE_TRANSFER 0x00
|
||||||
#define XCONTENTFLAG_MOVEONLY_TRANSFER 0x00
|
#define XCONTENTFLAG_MOVEONLY_TRANSFER 0x00
|
||||||
|
|
||||||
// Console device ports
|
// Console device ports
|
||||||
#define XDEVICE_PORT0 0
|
#define XDEVICE_PORT0 0
|
||||||
#define XDEVICE_PORT1 1
|
#define XDEVICE_PORT1 1
|
||||||
#define XDEVICE_PORT2 2
|
#define XDEVICE_PORT2 2
|
||||||
#define XDEVICE_PORT3 3
|
#define XDEVICE_PORT3 3
|
||||||
#define XUSER_MAX_COUNT 4
|
#define XUSER_MAX_COUNT 4
|
||||||
#define XUSER_INDEX_NONE 0x000000FE
|
#define XUSER_INDEX_NONE 0x000000FE
|
||||||
|
|
||||||
#define XBX_CLR_DEFAULT 0xFF000000
|
#define XBX_CLR_DEFAULT 0xFF000000
|
||||||
#define XBX_CLR_WARNING 0x0000FFFF
|
#define XBX_CLR_WARNING 0x0000FFFF
|
||||||
#define XBX_CLR_ERROR 0x000000FF
|
#define XBX_CLR_ERROR 0x000000FF
|
||||||
|
|
||||||
#define XBOX_MINBORDERSAFE 0
|
#define XBOX_MINBORDERSAFE 0
|
||||||
#define XBOX_MAXBORDERSAFE 0
|
#define XBOX_MAXBORDERSAFE 0
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
XK_NULL,
|
XK_NULL,
|
||||||
XK_BUTTON_UP,
|
XK_BUTTON_UP,
|
||||||
XK_BUTTON_DOWN,
|
XK_BUTTON_DOWN,
|
||||||
XK_BUTTON_LEFT,
|
XK_BUTTON_LEFT,
|
||||||
XK_BUTTON_RIGHT,
|
XK_BUTTON_RIGHT,
|
||||||
XK_BUTTON_START,
|
XK_BUTTON_START,
|
||||||
XK_BUTTON_BACK,
|
XK_BUTTON_BACK,
|
||||||
XK_BUTTON_STICK1,
|
XK_BUTTON_STICK1,
|
||||||
XK_BUTTON_STICK2,
|
XK_BUTTON_STICK2,
|
||||||
XK_BUTTON_A,
|
XK_BUTTON_A,
|
||||||
XK_BUTTON_B,
|
XK_BUTTON_B,
|
||||||
XK_BUTTON_X,
|
XK_BUTTON_X,
|
||||||
XK_BUTTON_Y,
|
XK_BUTTON_Y,
|
||||||
XK_BUTTON_LEFT_SHOULDER,
|
XK_BUTTON_LEFT_SHOULDER,
|
||||||
XK_BUTTON_RIGHT_SHOULDER,
|
XK_BUTTON_RIGHT_SHOULDER,
|
||||||
XK_BUTTON_LTRIGGER,
|
XK_BUTTON_LTRIGGER,
|
||||||
XK_BUTTON_RTRIGGER,
|
XK_BUTTON_RTRIGGER,
|
||||||
XK_STICK1_UP,
|
XK_STICK1_UP,
|
||||||
XK_STICK1_DOWN,
|
XK_STICK1_DOWN,
|
||||||
XK_STICK1_LEFT,
|
XK_STICK1_LEFT,
|
||||||
XK_STICK1_RIGHT,
|
XK_STICK1_RIGHT,
|
||||||
XK_STICK2_UP,
|
XK_STICK2_UP,
|
||||||
XK_STICK2_DOWN,
|
XK_STICK2_DOWN,
|
||||||
XK_STICK2_LEFT,
|
XK_STICK2_LEFT,
|
||||||
XK_STICK2_RIGHT,
|
XK_STICK2_RIGHT,
|
||||||
XK_MAX_KEYS,
|
XK_MAX_KEYS,
|
||||||
} xKey_t;
|
} xKey_t;
|
||||||
|
|
||||||
//typedef enum
|
//typedef enum
|
||||||
//{
|
//{
|
||||||
// XVRB_NONE, // off
|
// XVRB_NONE, // off
|
||||||
// XVRB_ERROR, // fatal error
|
// XVRB_ERROR, // fatal error
|
||||||
// XVRB_ALWAYS, // no matter what
|
// XVRB_ALWAYS, // no matter what
|
||||||
// XVRB_WARNING, // non-fatal warnings
|
// XVRB_WARNING, // non-fatal warnings
|
||||||
// XVRB_STATUS, // status reports
|
// XVRB_STATUS, // status reports
|
||||||
// XVRB_ALL,
|
// XVRB_ALL,
|
||||||
//} xverbose_e;
|
//} xverbose_e;
|
||||||
|
|
||||||
typedef unsigned short WORD;
|
typedef unsigned short WORD;
|
||||||
#ifndef POSIX
|
#ifndef POSIX
|
||||||
typedef unsigned long DWORD;
|
typedef unsigned long DWORD;
|
||||||
typedef void* HANDLE;
|
typedef void* HANDLE;
|
||||||
typedef unsigned __int64 ULONGLONG;
|
typedef unsigned __int64 ULONGLONG;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef POSIX
|
#ifdef POSIX
|
||||||
typedef DWORD COLORREF;
|
typedef DWORD COLORREF;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef INVALID_HANDLE_VALUE
|
#ifndef INVALID_HANDLE_VALUE
|
||||||
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
|
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// typedef struct {
|
// typedef struct {
|
||||||
// IN_ADDR ina; // IP address (zero if not static/DHCP)
|
// IN_ADDR ina; // IP address (zero if not static/DHCP)
|
||||||
// IN_ADDR inaOnline; // Online IP address (zero if not online)
|
// IN_ADDR inaOnline; // Online IP address (zero if not online)
|
||||||
// WORD wPortOnline; // Online port
|
// WORD wPortOnline; // Online port
|
||||||
// BYTE abEnet[6]; // Ethernet MAC address
|
// BYTE abEnet[6]; // Ethernet MAC address
|
||||||
// BYTE abOnline[20]; // Online identification
|
// BYTE abOnline[20]; // Online identification
|
||||||
// } XNADDR;
|
// } XNADDR;
|
||||||
|
|
||||||
typedef int XNADDR;
|
typedef int XNADDR;
|
||||||
typedef uint64 XUID;
|
typedef uint64 XUID;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
BYTE ab[8]; // xbox to xbox key identifier
|
BYTE ab[8]; // xbox to xbox key identifier
|
||||||
} XNKID;
|
} XNKID;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
BYTE ab[16]; // xbox to xbox key exchange key
|
BYTE ab[16]; // xbox to xbox key exchange key
|
||||||
} XNKEY;
|
} XNKEY;
|
||||||
|
|
||||||
typedef struct _XSESSION_INFO
|
typedef struct _XSESSION_INFO
|
||||||
{
|
{
|
||||||
XNKID sessionID; // 8 bytes
|
XNKID sessionID; // 8 bytes
|
||||||
XNADDR hostAddress; // 36 bytes
|
XNADDR hostAddress; // 36 bytes
|
||||||
XNKEY keyExchangeKey; // 16 bytes
|
XNKEY keyExchangeKey; // 16 bytes
|
||||||
} XSESSION_INFO, *PXSESSION_INFO;
|
} XSESSION_INFO, *PXSESSION_INFO;
|
||||||
|
|
||||||
typedef struct _XUSER_DATA
|
typedef struct _XUSER_DATA
|
||||||
{
|
{
|
||||||
BYTE type;
|
BYTE type;
|
||||||
|
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
int nData; // XUSER_DATA_TYPE_INT32
|
int nData; // XUSER_DATA_TYPE_INT32
|
||||||
int64 i64Data; // XUSER_DATA_TYPE_INT64
|
int64 i64Data; // XUSER_DATA_TYPE_INT64
|
||||||
double dblData; // XUSER_DATA_TYPE_DOUBLE
|
double dblData; // XUSER_DATA_TYPE_DOUBLE
|
||||||
struct // XUSER_DATA_TYPE_UNICODE
|
struct // XUSER_DATA_TYPE_UNICODE
|
||||||
{
|
{
|
||||||
uint cbData; // Includes null-terminator
|
uint cbData; // Includes null-terminator
|
||||||
char * pwszData;
|
char * pwszData;
|
||||||
} string;
|
} string;
|
||||||
float fData; // XUSER_DATA_TYPE_FLOAT
|
float fData; // XUSER_DATA_TYPE_FLOAT
|
||||||
struct // XUSER_DATA_TYPE_BINARY
|
struct // XUSER_DATA_TYPE_BINARY
|
||||||
{
|
{
|
||||||
uint cbData;
|
uint cbData;
|
||||||
char * pbData;
|
char * pbData;
|
||||||
} binary;
|
} binary;
|
||||||
};
|
};
|
||||||
} XUSER_DATA, *PXUSER_DATA;
|
} XUSER_DATA, *PXUSER_DATA;
|
||||||
|
|
||||||
typedef struct _XUSER_PROPERTY
|
typedef struct _XUSER_PROPERTY
|
||||||
{
|
{
|
||||||
DWORD dwPropertyId;
|
DWORD dwPropertyId;
|
||||||
XUSER_DATA value;
|
XUSER_DATA value;
|
||||||
} XUSER_PROPERTY, *PXUSER_PROPERTY;
|
} XUSER_PROPERTY, *PXUSER_PROPERTY;
|
||||||
|
|
||||||
typedef struct _XUSER_CONTEXT
|
typedef struct _XUSER_CONTEXT
|
||||||
{
|
{
|
||||||
DWORD dwContextId;
|
DWORD dwContextId;
|
||||||
DWORD dwValue;
|
DWORD dwValue;
|
||||||
} XUSER_CONTEXT, *PXUSER_CONTEXT;
|
} XUSER_CONTEXT, *PXUSER_CONTEXT;
|
||||||
|
|
||||||
typedef struct _XSESSION_SEARCHRESULT
|
typedef struct _XSESSION_SEARCHRESULT
|
||||||
{
|
{
|
||||||
XSESSION_INFO info;
|
XSESSION_INFO info;
|
||||||
DWORD dwOpenPublicSlots;
|
DWORD dwOpenPublicSlots;
|
||||||
DWORD dwOpenPrivateSlots;
|
DWORD dwOpenPrivateSlots;
|
||||||
DWORD dwFilledPublicSlots;
|
DWORD dwFilledPublicSlots;
|
||||||
DWORD dwFilledPrivateSlots;
|
DWORD dwFilledPrivateSlots;
|
||||||
DWORD cProperties;
|
DWORD cProperties;
|
||||||
DWORD cContexts;
|
DWORD cContexts;
|
||||||
PXUSER_PROPERTY pProperties;
|
PXUSER_PROPERTY pProperties;
|
||||||
PXUSER_CONTEXT pContexts;
|
PXUSER_CONTEXT pContexts;
|
||||||
} XSESSION_SEARCHRESULT, *PXSESSION_SEARCHRESULT;
|
} XSESSION_SEARCHRESULT, *PXSESSION_SEARCHRESULT;
|
||||||
|
|
||||||
typedef struct _XSESSION_SEARCHRESULT_HEADER
|
typedef struct _XSESSION_SEARCHRESULT_HEADER
|
||||||
{
|
{
|
||||||
DWORD dwSearchResults;
|
DWORD dwSearchResults;
|
||||||
XSESSION_SEARCHRESULT *pResults;
|
XSESSION_SEARCHRESULT *pResults;
|
||||||
} XSESSION_SEARCHRESULT_HEADER, *PXSESSION_SEARCHRESULT_HEADER;
|
} XSESSION_SEARCHRESULT_HEADER, *PXSESSION_SEARCHRESULT_HEADER;
|
||||||
|
|
||||||
typedef struct _XSESSION_REGISTRANT
|
typedef struct _XSESSION_REGISTRANT
|
||||||
{
|
{
|
||||||
uint64 qwMachineID;
|
uint64 qwMachineID;
|
||||||
DWORD bTrustworthiness;
|
DWORD bTrustworthiness;
|
||||||
DWORD bNumUsers;
|
DWORD bNumUsers;
|
||||||
XUID *rgUsers;
|
XUID *rgUsers;
|
||||||
|
|
||||||
} XSESSION_REGISTRANT;
|
} XSESSION_REGISTRANT;
|
||||||
|
|
||||||
typedef struct _XSESSION_REGISTRATION_RESULTS
|
typedef struct _XSESSION_REGISTRATION_RESULTS
|
||||||
{
|
{
|
||||||
DWORD wNumRegistrants;
|
DWORD wNumRegistrants;
|
||||||
XSESSION_REGISTRANT *rgRegistrants;
|
XSESSION_REGISTRANT *rgRegistrants;
|
||||||
} XSESSION_REGISTRATION_RESULTS, *PXSESSION_REGISTRATION_RESULTS;
|
} XSESSION_REGISTRATION_RESULTS, *PXSESSION_REGISTRATION_RESULTS;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
BYTE bFlags;
|
BYTE bFlags;
|
||||||
BYTE bReserved;
|
BYTE bReserved;
|
||||||
WORD cProbesXmit;
|
WORD cProbesXmit;
|
||||||
WORD cProbesRecv;
|
WORD cProbesRecv;
|
||||||
WORD cbData;
|
WORD cbData;
|
||||||
BYTE * pbData;
|
BYTE * pbData;
|
||||||
WORD wRttMinInMsecs;
|
WORD wRttMinInMsecs;
|
||||||
WORD wRttMedInMsecs;
|
WORD wRttMedInMsecs;
|
||||||
DWORD dwUpBitsPerSec;
|
DWORD dwUpBitsPerSec;
|
||||||
DWORD dwDnBitsPerSec;
|
DWORD dwDnBitsPerSec;
|
||||||
} XNQOSINFO;
|
} XNQOSINFO;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint cxnqos;
|
uint cxnqos;
|
||||||
uint cxnqosPending;
|
uint cxnqosPending;
|
||||||
XNQOSINFO axnqosinfo[1];
|
XNQOSINFO axnqosinfo[1];
|
||||||
} XNQOS;
|
} XNQOS;
|
||||||
|
|
||||||
#define XSESSION_CREATE_HOST 0
|
#define XSESSION_CREATE_HOST 0
|
||||||
#define XUSER_DATA_TYPE_INT32 0
|
#define XUSER_DATA_TYPE_INT32 0
|
||||||
#define XSESSION_CREATE_USES_ARBITRATION 0
|
#define XSESSION_CREATE_USES_ARBITRATION 0
|
||||||
#define XNET_QOS_LISTEN_ENABLE 0
|
#define XNET_QOS_LISTEN_ENABLE 0
|
||||||
#define XNET_QOS_LISTEN_DISABLE 0
|
#define XNET_QOS_LISTEN_DISABLE 0
|
||||||
#define XNET_QOS_LISTEN_SET_DATA 0
|
#define XNET_QOS_LISTEN_SET_DATA 0
|
||||||
|
|
||||||
FORCEINLINE void XBX_ProcessEvents() {}
|
FORCEINLINE void XBX_ProcessEvents() {}
|
||||||
FORCEINLINE unsigned int XBX_GetSystemTime() { return 0; }
|
FORCEINLINE unsigned int XBX_GetSystemTime() { return 0; }
|
||||||
FORCEINLINE int XBX_GetPrimaryUserId() { return 0; }
|
FORCEINLINE int XBX_GetPrimaryUserId() { return 0; }
|
||||||
FORCEINLINE void XBX_SetPrimaryUserId( DWORD idx ) {}
|
FORCEINLINE void XBX_SetPrimaryUserId( DWORD idx ) {}
|
||||||
FORCEINLINE int XBX_GetStorageDeviceId() { return 0; }
|
FORCEINLINE int XBX_GetStorageDeviceId() { return 0; }
|
||||||
FORCEINLINE void XBX_SetStorageDeviceId( DWORD idx ) {}
|
FORCEINLINE void XBX_SetStorageDeviceId( DWORD idx ) {}
|
||||||
FORCEINLINE const char *XBX_GetLanguageString() { return ""; }
|
FORCEINLINE const char *XBX_GetLanguageString() { return ""; }
|
||||||
FORCEINLINE bool XBX_IsLocalized() { return false; }
|
FORCEINLINE bool XBX_IsLocalized() { return false; }
|
||||||
|
|
||||||
#define XCONTENT_MAX_DISPLAYNAME_LENGTH 128
|
#define XCONTENT_MAX_DISPLAYNAME_LENGTH 128
|
||||||
#define XCONTENT_MAX_FILENAME_LENGTH 42
|
#define XCONTENT_MAX_FILENAME_LENGTH 42
|
||||||
|
|
||||||
#define XBX_INVALID_STORAGE_ID ((DWORD) -1)
|
#define XBX_INVALID_STORAGE_ID ((DWORD) -1)
|
||||||
#define XBX_STORAGE_DECLINED ((DWORD) -2)
|
#define XBX_STORAGE_DECLINED ((DWORD) -2)
|
||||||
|
|
||||||
#endif // XBOXSTUBS_H
|
#endif // XBOXSTUBS_H
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
pushd `dirname $0`
|
||||||
devtools/bin/vpc /hl2mp +everything /mksln everything
|
devtools/bin/vpc /hl2mp +everything /mksln everything
|
||||||
|
popd
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
pushd `dirname $0`
|
||||||
devtools/bin/vpc /hl2mp +game /mksln games
|
devtools/bin/vpc /hl2mp +game /mksln games
|
||||||
|
popd
|
||||||
|
@ -1,46 +1,46 @@
|
|||||||
ALWAYS_SEARCH_USER_PATHS = YES
|
ALWAYS_SEARCH_USER_PATHS = YES
|
||||||
HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) $(SDKROOT)/usr/include/malloc
|
HEADER_SEARCH_PATHS = $(HEADER_SEARCH_PATHS) $(SDKROOT)/usr/include/malloc
|
||||||
|
|
||||||
ARCHS = i386
|
ARCHS = i386
|
||||||
ONLY_ACTIVE_ARCH = NO
|
ONLY_ACTIVE_ARCH = NO
|
||||||
COPY_PHASE_STRIP = NO
|
COPY_PHASE_STRIP = NO
|
||||||
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
|
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym
|
||||||
|
|
||||||
DEAD_CODE_STRIPPING = YES
|
DEAD_CODE_STRIPPING = YES
|
||||||
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES
|
PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES
|
||||||
|
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99
|
GCC_C_LANGUAGE_STANDARD = gnu99
|
||||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES
|
GCC_ENABLE_OBJC_EXCEPTIONS = YES
|
||||||
GCC_SYMBOLS_PRIVATE_EXTERN = YES
|
GCC_SYMBOLS_PRIVATE_EXTERN = YES
|
||||||
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
|
GCC_INLINES_ARE_PRIVATE_EXTERN = YES
|
||||||
GCC_REUSE_STRINGS = YES
|
GCC_REUSE_STRINGS = YES
|
||||||
|
|
||||||
// CPP11_NO_LIBCXX is used to gate some C++11 features that require that we
|
// CPP11_NO_LIBCXX is used to gate some C++11 features that require that we
|
||||||
// switch to libc++. We haven't switched to libc++11 because we have been unable
|
// switch to libc++. We haven't switched to libc++11 because we have been unable
|
||||||
// to find a clean way to build libcef_dll_wrapper with libc++.
|
// to find a clean way to build libcef_dll_wrapper with libc++.
|
||||||
// We currently build libcef for Steam which needs to run on 10.5, and Xcode
|
// We currently build libcef for Steam which needs to run on 10.5, and Xcode
|
||||||
// does not support linking with libc++ and targeting 10.5.
|
// does not support linking with libc++ and targeting 10.5.
|
||||||
// Once libcef_dll_wrapper has been built with libc++, and you rebuild protobuf
|
// Once libcef_dll_wrapper has been built with libc++, and you rebuild protobuf
|
||||||
// with libc++ (which is trivial), you can remove CPP11_NO_LIBCXX and add the
|
// with libc++ (which is trivial), you can remove CPP11_NO_LIBCXX and add the
|
||||||
// following line to the xcconfig:
|
// following line to the xcconfig:
|
||||||
// CLANG_CXX_LIBRARY = libc++
|
// CLANG_CXX_LIBRARY = libc++
|
||||||
GCC_PREPROCESSOR_DEFINITIONS = _DLL_EXT=.dylib NO_MALLOC_OVERRIDE=1 VPROF_LEVEL=1 NO_HOOK_MALLOC=1 PNG_NO_PEDANTIC_WARNINGS CPP11_NO_LIBCXX
|
GCC_PREPROCESSOR_DEFINITIONS = _DLL_EXT=.dylib NO_MALLOC_OVERRIDE=1 VPROF_LEVEL=1 NO_HOOK_MALLOC=1 PNG_NO_PEDANTIC_WARNINGS CPP11_NO_LIBCXX
|
||||||
BASE_CFLAGS= -Usprintf -Ustrncpy -UPROTECTED_THINGS_ENABLE
|
BASE_CFLAGS= -Usprintf -Ustrncpy -UPROTECTED_THINGS_ENABLE
|
||||||
|
|
||||||
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO
|
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO
|
||||||
WARNING_CFLAGS = -Wno-deprecated-writable-strings -Wno-switch-enum -Wno-switch -Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-c++11-narrowing
|
WARNING_CFLAGS = -Wno-deprecated-writable-strings -Wno-switch-enum -Wno-switch -Wno-unused-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-c++11-narrowing
|
||||||
|
|
||||||
// CLANG - and use the ccache wrapper
|
// CLANG - and use the ccache wrapper
|
||||||
GCC_VERSION = com.apple.compilers.llvm.clang.1_0
|
GCC_VERSION = com.apple.compilers.llvm.clang.1_0
|
||||||
CC = $(SOURCE_ROOT)/devtools/bin/osx32/xcode_ccache_wrapper
|
CC = $(SOURCE_ROOT)/devtools/bin/osx32/xcode_ccache_wrapper
|
||||||
LDPLUSPLUS = $(DT_TOOLCHAIN_DIR)/usr/bin/clang++
|
LDPLUSPLUS = $(DT_TOOLCHAIN_DIR)/usr/bin/clang++
|
||||||
CLANG_WARN_CXX0X_EXTENSIONS = NO
|
CLANG_WARN_CXX0X_EXTENSIONS = NO
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = gnu++11
|
CLANG_CXX_LANGUAGE_STANDARD = gnu++11
|
||||||
|
|
||||||
// include <memory.h> gets confused, 'cause ivp has one, and the system has one, and only one
|
// include <memory.h> gets confused, 'cause ivp has one, and the system has one, and only one
|
||||||
// gets into the header map, so sacrifice speed for corectness.
|
// gets into the header map, so sacrifice speed for corectness.
|
||||||
USE_HEADERMAP = NO
|
USE_HEADERMAP = NO
|
||||||
|
|
||||||
SDKROOT = macosx10.7
|
SDKROOT = macosx10.7
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.5
|
MACOSX_DEPLOYMENT_TARGET = 10.5
|
||||||
GCC_FAST_MATH = YES
|
GCC_FAST_MATH = YES
|
||||||
|
@ -1,22 +1,22 @@
|
|||||||
use File::DosGlob;
|
use File::DosGlob;
|
||||||
@ARGV = map {
|
@ARGV = map {
|
||||||
my @g = File::DosGlob::glob($_) if /[*?]/;
|
my @g = File::DosGlob::glob($_) if /[*?]/;
|
||||||
@g ? @g : $_;
|
@g ? @g : $_;
|
||||||
} @ARGV;
|
} @ARGV;
|
||||||
|
|
||||||
open FILE, ">__tmpshaderlist.txt";
|
open FILE, ">__tmpshaderlist.txt";
|
||||||
|
|
||||||
foreach $arg (@ARGV)
|
foreach $arg (@ARGV)
|
||||||
{
|
{
|
||||||
if( $arg =~ m/\.fxc$/i || $arg =~ m/\.vsh$/i || $arg =~ m/\.psh$/i )
|
if( $arg =~ m/\.fxc$/i || $arg =~ m/\.vsh$/i || $arg =~ m/\.psh$/i )
|
||||||
{
|
{
|
||||||
print $arg . "\n";
|
print $arg . "\n";
|
||||||
print FILE $arg . "\n";
|
print FILE $arg . "\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close FILE;
|
close FILE;
|
||||||
|
|
||||||
system "buildshaders.bat __tmpshaderlist";
|
system "buildshaders.bat __tmpshaderlist";
|
||||||
|
|
||||||
unlink "__tmpshaderlist.txt";
|
unlink "__tmpshaderlist.txt";
|
@ -1,116 +1,116 @@
|
|||||||
use String::CRC32;
|
use String::CRC32;
|
||||||
BEGIN {use File::Basename; push @INC, dirname($0); }
|
BEGIN {use File::Basename; push @INC, dirname($0); }
|
||||||
require "valve_perl_helpers.pl";
|
require "valve_perl_helpers.pl";
|
||||||
|
|
||||||
sub GetShaderType
|
sub GetShaderType
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
my $shadertype;
|
my $shadertype;
|
||||||
if( $shadername =~ m/\.vsh/i )
|
if( $shadername =~ m/\.vsh/i )
|
||||||
{
|
{
|
||||||
$shadertype = "vsh";
|
$shadertype = "vsh";
|
||||||
}
|
}
|
||||||
elsif( $shadername =~ m/\.psh/i )
|
elsif( $shadername =~ m/\.psh/i )
|
||||||
{
|
{
|
||||||
$shadertype = "psh";
|
$shadertype = "psh";
|
||||||
}
|
}
|
||||||
elsif( $shadername =~ m/\.fxc/i )
|
elsif( $shadername =~ m/\.fxc/i )
|
||||||
{
|
{
|
||||||
$shadertype = "fxc";
|
$shadertype = "fxc";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
return $shadertype;
|
return $shadertype;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetShaderSrc
|
sub GetShaderSrc
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
if ( $shadername =~ m/^(.*)-----/i )
|
if ( $shadername =~ m/^(.*)-----/i )
|
||||||
{
|
{
|
||||||
return $1;
|
return $1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $shadername;
|
return $shadername;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetShaderType
|
sub GetShaderType
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
my $shadertype;
|
my $shadertype;
|
||||||
if( $shadername =~ m/\.vsh/i )
|
if( $shadername =~ m/\.vsh/i )
|
||||||
{
|
{
|
||||||
$shadertype = "vsh";
|
$shadertype = "vsh";
|
||||||
}
|
}
|
||||||
elsif( $shadername =~ m/\.psh/i )
|
elsif( $shadername =~ m/\.psh/i )
|
||||||
{
|
{
|
||||||
$shadertype = "psh";
|
$shadertype = "psh";
|
||||||
}
|
}
|
||||||
elsif( $shadername =~ m/\.fxc/i )
|
elsif( $shadername =~ m/\.fxc/i )
|
||||||
{
|
{
|
||||||
$shadertype = "fxc";
|
$shadertype = "fxc";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
return $shadertype;
|
return $shadertype;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetShaderBase
|
sub GetShaderBase
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
if ( $shadername =~ m/-----(.*)$/i )
|
if ( $shadername =~ m/-----(.*)$/i )
|
||||||
{
|
{
|
||||||
return $1;
|
return $1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
my $shadertype = &GetShaderType( $shadername );
|
my $shadertype = &GetShaderType( $shadername );
|
||||||
$shadername =~ s/\.$shadertype//i;
|
$shadername =~ s/\.$shadertype//i;
|
||||||
return $shadername;
|
return $shadername;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$g_x360 = 0;
|
$g_x360 = 0;
|
||||||
$g_vcsext = ".vcs";
|
$g_vcsext = ".vcs";
|
||||||
|
|
||||||
while( 1 )
|
while( 1 )
|
||||||
{
|
{
|
||||||
$inputbase = shift;
|
$inputbase = shift;
|
||||||
|
|
||||||
if( $inputbase =~ m/-x360/ )
|
if( $inputbase =~ m/-x360/ )
|
||||||
{
|
{
|
||||||
$g_x360 = 1;
|
$g_x360 = 1;
|
||||||
$g_vcsext = ".360.vcs";
|
$g_vcsext = ".360.vcs";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# rip the txt off the end if it's there.
|
# rip the txt off the end if it's there.
|
||||||
$inputbase =~ s/\.txt//i;
|
$inputbase =~ s/\.txt//i;
|
||||||
|
|
||||||
my @srcfiles = &LoadShaderListFile( $inputbase );
|
my @srcfiles = &LoadShaderListFile( $inputbase );
|
||||||
|
|
||||||
foreach $srcfile ( @srcfiles )
|
foreach $srcfile ( @srcfiles )
|
||||||
{
|
{
|
||||||
my $shadertype = &GetShaderType( $srcfile );
|
my $shadertype = &GetShaderType( $srcfile );
|
||||||
my $shaderbase = &GetShaderBase( $srcfile );
|
my $shaderbase = &GetShaderBase( $srcfile );
|
||||||
my $shadersrc = &GetShaderSrc( $srcfile );
|
my $shadersrc = &GetShaderSrc( $srcfile );
|
||||||
my $vcsFileName = "..\\..\\..\\game\\hl2\\shaders\\$shadertype\\$shaderbase" . $g_vcsext;
|
my $vcsFileName = "..\\..\\..\\game\\hl2\\shaders\\$shadertype\\$shaderbase" . $g_vcsext;
|
||||||
# print "shadersrc: $shadersrc vcsFileName: $vcsFileName\n";
|
# print "shadersrc: $shadersrc vcsFileName: $vcsFileName\n";
|
||||||
|
|
||||||
if( $g_x360 && ( $shaderbase =~ m/_ps20$/i ) )
|
if( $g_x360 && ( $shaderbase =~ m/_ps20$/i ) )
|
||||||
{
|
{
|
||||||
next; # skip _ps20 files for 360
|
next; # skip _ps20 files for 360
|
||||||
}
|
}
|
||||||
|
|
||||||
&CheckCRCAgainstTarget( $shadersrc, $vcsFileName, 1 );
|
&CheckCRCAgainstTarget( $shadersrc, $vcsFileName, 1 );
|
||||||
}
|
}
|
||||||
|
@ -1,75 +1,75 @@
|
|||||||
BEGIN {use File::Basename; push @INC, dirname($0); }
|
BEGIN {use File::Basename; push @INC, dirname($0); }
|
||||||
require "valve_perl_helpers.pl";
|
require "valve_perl_helpers.pl";
|
||||||
use Cwd;
|
use Cwd;
|
||||||
use String::CRC32;
|
use String::CRC32;
|
||||||
|
|
||||||
my $txtfilename = shift;
|
my $txtfilename = shift;
|
||||||
my $arg = shift;
|
my $arg = shift;
|
||||||
|
|
||||||
my $is360 = 0;
|
my $is360 = 0;
|
||||||
my $platformextension = "";
|
my $platformextension = "";
|
||||||
if( $arg =~ m/-x360/i )
|
if( $arg =~ m/-x360/i )
|
||||||
{
|
{
|
||||||
$is360 = 1;
|
$is360 = 1;
|
||||||
$platformextension = ".360";
|
$platformextension = ".360";
|
||||||
}
|
}
|
||||||
|
|
||||||
open TXTFILE, "<$txtfilename";
|
open TXTFILE, "<$txtfilename";
|
||||||
|
|
||||||
my $src;
|
my $src;
|
||||||
my $dst;
|
my $dst;
|
||||||
while( $src = <TXTFILE> )
|
while( $src = <TXTFILE> )
|
||||||
{
|
{
|
||||||
# get rid of comments
|
# get rid of comments
|
||||||
$src =~ s,//.*,,g;
|
$src =~ s,//.*,,g;
|
||||||
|
|
||||||
# skip blank lines
|
# skip blank lines
|
||||||
if( $src =~ m/^\s*$/ )
|
if( $src =~ m/^\s*$/ )
|
||||||
{
|
{
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get rid of newlines.
|
# Get rid of newlines.
|
||||||
$src =~ s/\n//g;
|
$src =~ s/\n//g;
|
||||||
|
|
||||||
# Save off the shader source filename.
|
# Save off the shader source filename.
|
||||||
my $dst = $src;
|
my $dst = $src;
|
||||||
|
|
||||||
$dst =~ s/_tmp//gi;
|
$dst =~ s/_tmp//gi;
|
||||||
|
|
||||||
# Does the dst exist?
|
# Does the dst exist?
|
||||||
my $dstexists = -e $dst;
|
my $dstexists = -e $dst;
|
||||||
my $srcexists = -e $src;
|
my $srcexists = -e $src;
|
||||||
# What are the time stamps for the src and dst?
|
# What are the time stamps for the src and dst?
|
||||||
my $srcmodtime = ( stat $src )[9];
|
my $srcmodtime = ( stat $src )[9];
|
||||||
my $dstmodtime = ( stat $dst )[9];
|
my $dstmodtime = ( stat $dst )[9];
|
||||||
|
|
||||||
# Open for edit or add if different than what is in perforce already.
|
# Open for edit or add if different than what is in perforce already.
|
||||||
if( !$dstexists || ( $srcmodtime != $dstmodtime ) )
|
if( !$dstexists || ( $srcmodtime != $dstmodtime ) )
|
||||||
{
|
{
|
||||||
# Make the target writable if it exists
|
# Make the target writable if it exists
|
||||||
if( $dstexists )
|
if( $dstexists )
|
||||||
{
|
{
|
||||||
MakeFileWritable( $dst );
|
MakeFileWritable( $dst );
|
||||||
}
|
}
|
||||||
|
|
||||||
my $dir = $dst;
|
my $dir = $dst;
|
||||||
$dir =~ s,([^/\\]*$),,; # rip the filename off the end
|
$dir =~ s,([^/\\]*$),,; # rip the filename off the end
|
||||||
my $filename = $1;
|
my $filename = $1;
|
||||||
|
|
||||||
# create the target directory if it doesn't exist
|
# create the target directory if it doesn't exist
|
||||||
if( !$dstexists )
|
if( !$dstexists )
|
||||||
{
|
{
|
||||||
&MakeDirHier( $dir, 0777 );
|
&MakeDirHier( $dir, 0777 );
|
||||||
}
|
}
|
||||||
|
|
||||||
# copy the file to its targets. . . we want to see STDERR here if there is an error.
|
# copy the file to its targets. . . we want to see STDERR here if there is an error.
|
||||||
my $cmd = "copy $src $dst > nul";
|
my $cmd = "copy $src $dst > nul";
|
||||||
# print STDERR "$cmd\n";
|
# print STDERR "$cmd\n";
|
||||||
system $cmd;
|
system $cmd;
|
||||||
|
|
||||||
MakeFileReadOnly( $dst );
|
MakeFileReadOnly( $dst );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close TXTFILE;
|
close TXTFILE;
|
||||||
|
@ -1,172 +1,172 @@
|
|||||||
BEGIN {use File::Basename; push @INC, dirname($0); }
|
BEGIN {use File::Basename; push @INC, dirname($0); }
|
||||||
require "valve_perl_helpers.pl";
|
require "valve_perl_helpers.pl";
|
||||||
use Cwd;
|
use Cwd;
|
||||||
use String::CRC32;
|
use String::CRC32;
|
||||||
|
|
||||||
sub ReadInputFileWithIncludes
|
sub ReadInputFileWithIncludes
|
||||||
{
|
{
|
||||||
local( $filename ) = shift;
|
local( $filename ) = shift;
|
||||||
|
|
||||||
local( *INPUT );
|
local( *INPUT );
|
||||||
local( $output );
|
local( $output );
|
||||||
|
|
||||||
open INPUT, "<$filename" || die;
|
open INPUT, "<$filename" || die;
|
||||||
|
|
||||||
local( $line );
|
local( $line );
|
||||||
local( $linenum ) = 1;
|
local( $linenum ) = 1;
|
||||||
while( $line = <INPUT> )
|
while( $line = <INPUT> )
|
||||||
{
|
{
|
||||||
if( $line =~ m/\#include\s+\"(.*)\"/i )
|
if( $line =~ m/\#include\s+\"(.*)\"/i )
|
||||||
{
|
{
|
||||||
$output.= ReadInputFileWithIncludes( $1 );
|
$output.= ReadInputFileWithIncludes( $1 );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$output .= $line;
|
$output .= $line;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close INPUT;
|
close INPUT;
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub PatchCRC
|
sub PatchCRC
|
||||||
{
|
{
|
||||||
my $filename = shift;
|
my $filename = shift;
|
||||||
my $crc = shift;
|
my $crc = shift;
|
||||||
# print STDERR "PatchCRC( $filename, $crc )\n";
|
# print STDERR "PatchCRC( $filename, $crc )\n";
|
||||||
local( *FP );
|
local( *FP );
|
||||||
open FP, "+<$filename" || die;
|
open FP, "+<$filename" || die;
|
||||||
binmode( FP );
|
binmode( FP );
|
||||||
seek FP, 6 * 4, 0;
|
seek FP, 6 * 4, 0;
|
||||||
my $uInt = "I";
|
my $uInt = "I";
|
||||||
if( $filename =~ m/360/ )
|
if( $filename =~ m/360/ )
|
||||||
{
|
{
|
||||||
$uInt = "N";
|
$uInt = "N";
|
||||||
}
|
}
|
||||||
print FP pack $uInt, $crc;
|
print FP pack $uInt, $crc;
|
||||||
close FP;
|
close FP;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $txtfilename = shift;
|
my $txtfilename = shift;
|
||||||
my $arg = shift;
|
my $arg = shift;
|
||||||
|
|
||||||
my $is360 = 0;
|
my $is360 = 0;
|
||||||
my $platformextension = "";
|
my $platformextension = "";
|
||||||
if( $arg =~ m/-x360/i )
|
if( $arg =~ m/-x360/i )
|
||||||
{
|
{
|
||||||
$is360 = 1;
|
$is360 = 1;
|
||||||
$platformextension = ".360";
|
$platformextension = ".360";
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the changelist number for the Shader Auto Checkout changelist. Will create the changelist if it doesn't exist.
|
# Get the changelist number for the Shader Auto Checkout changelist. Will create the changelist if it doesn't exist.
|
||||||
my $changelistnumber = `valve_p4_create_changelist.cmd ..\\..\\..\\game\\hl2\\shaders \"Shader Auto Checkout VCS\"`;
|
my $changelistnumber = `valve_p4_create_changelist.cmd ..\\..\\..\\game\\hl2\\shaders \"Shader Auto Checkout VCS\"`;
|
||||||
# Get rid of the newline
|
# Get rid of the newline
|
||||||
$changelistnumber =~ s/\n//g;
|
$changelistnumber =~ s/\n//g;
|
||||||
|
|
||||||
my $changelistarg = "";
|
my $changelistarg = "";
|
||||||
if( $changelistnumber != 0 )
|
if( $changelistnumber != 0 )
|
||||||
{
|
{
|
||||||
$changelistarg = "-c $changelistnumber"
|
$changelistarg = "-c $changelistnumber"
|
||||||
}
|
}
|
||||||
|
|
||||||
open TXTFILE, "<$txtfilename";
|
open TXTFILE, "<$txtfilename";
|
||||||
|
|
||||||
my $src;
|
my $src;
|
||||||
my $dst;
|
my $dst;
|
||||||
while( $src = <TXTFILE> )
|
while( $src = <TXTFILE> )
|
||||||
{
|
{
|
||||||
# get rid of comments
|
# get rid of comments
|
||||||
$src =~ s,//.*,,g;
|
$src =~ s,//.*,,g;
|
||||||
|
|
||||||
# skip blank lines
|
# skip blank lines
|
||||||
if( $src =~ m/^\s*$/ )
|
if( $src =~ m/^\s*$/ )
|
||||||
{
|
{
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get rid of newlines.
|
# Get rid of newlines.
|
||||||
$src =~ s/\n//g;
|
$src =~ s/\n//g;
|
||||||
|
|
||||||
# Save off the shader source filename.
|
# Save off the shader source filename.
|
||||||
my $shadersrcfilename = $src;
|
my $shadersrcfilename = $src;
|
||||||
$shadersrcfilename =~ s/-----.*$//;
|
$shadersrcfilename =~ s/-----.*$//;
|
||||||
# use only target basename.
|
# use only target basename.
|
||||||
$src =~ s/^.*-----//;
|
$src =~ s/^.*-----//;
|
||||||
|
|
||||||
# where the binary vcs file is
|
# where the binary vcs file is
|
||||||
my $spath = "";
|
my $spath = "";
|
||||||
|
|
||||||
if ( $shadersrcfilename =~ m@\.fxc@i )
|
if ( $shadersrcfilename =~ m@\.fxc@i )
|
||||||
{
|
{
|
||||||
$spath = "shaders\\fxc\\";
|
$spath = "shaders\\fxc\\";
|
||||||
}
|
}
|
||||||
if ( $shadersrcfilename =~ m@\.vsh@i )
|
if ( $shadersrcfilename =~ m@\.vsh@i )
|
||||||
{
|
{
|
||||||
$spath = "shaders\\vsh\\";
|
$spath = "shaders\\vsh\\";
|
||||||
}
|
}
|
||||||
if ( $shadersrcfilename =~ m@\.psh@i )
|
if ( $shadersrcfilename =~ m@\.psh@i )
|
||||||
{
|
{
|
||||||
$spath = "shaders\\psh\\";
|
$spath = "shaders\\psh\\";
|
||||||
}
|
}
|
||||||
|
|
||||||
# make the source have path and extension
|
# make the source have path and extension
|
||||||
$src = $spath . $src . $platformextension . ".vcs";
|
$src = $spath . $src . $platformextension . ".vcs";
|
||||||
|
|
||||||
# build the dest filename.
|
# build the dest filename.
|
||||||
$dst = $src;
|
$dst = $src;
|
||||||
|
|
||||||
$dst =~ s/shaders\\/..\\..\\..\\game\\hl2\\shaders\\/i;
|
$dst =~ s/shaders\\/..\\..\\..\\game\\hl2\\shaders\\/i;
|
||||||
|
|
||||||
# Does the dst exist?
|
# Does the dst exist?
|
||||||
my $dstexists = -e $dst;
|
my $dstexists = -e $dst;
|
||||||
my $srcexists = -e $src;
|
my $srcexists = -e $src;
|
||||||
# What are the time stamps for the src and dst?
|
# What are the time stamps for the src and dst?
|
||||||
my $srcmodtime = ( stat $src )[9];
|
my $srcmodtime = ( stat $src )[9];
|
||||||
my $dstmodtime = ( stat $dst )[9];
|
my $dstmodtime = ( stat $dst )[9];
|
||||||
|
|
||||||
# Write $dst to a file so that we can do perforce stuff to it later.
|
# Write $dst to a file so that we can do perforce stuff to it later.
|
||||||
local( *VCSLIST );
|
local( *VCSLIST );
|
||||||
open VCSLIST, ">>vcslist.txt" || die;
|
open VCSLIST, ">>vcslist.txt" || die;
|
||||||
print VCSLIST $dst . "\n";
|
print VCSLIST $dst . "\n";
|
||||||
close VCSLIST;
|
close VCSLIST;
|
||||||
|
|
||||||
# Open for edit or add if different than what is in perforce already.
|
# Open for edit or add if different than what is in perforce already.
|
||||||
if( !$dstexists || ( $srcmodtime != $dstmodtime ) )
|
if( !$dstexists || ( $srcmodtime != $dstmodtime ) )
|
||||||
{
|
{
|
||||||
if ( $srcexists && $shadersrcfilename =~ m@\.fxc@i )
|
if ( $srcexists && $shadersrcfilename =~ m@\.fxc@i )
|
||||||
{
|
{
|
||||||
# Get the CRC for the source file.
|
# Get the CRC for the source file.
|
||||||
my $srccode = ReadInputFileWithIncludes( $shadersrcfilename );
|
my $srccode = ReadInputFileWithIncludes( $shadersrcfilename );
|
||||||
my $crc = crc32( $srccode );
|
my $crc = crc32( $srccode );
|
||||||
|
|
||||||
# Patch the source VCS file with the CRC32 of the source code used to build that file.
|
# Patch the source VCS file with the CRC32 of the source code used to build that file.
|
||||||
PatchCRC( $src, $crc );
|
PatchCRC( $src, $crc );
|
||||||
}
|
}
|
||||||
|
|
||||||
# Make the target vcs writable if it exists
|
# Make the target vcs writable if it exists
|
||||||
if( $dstexists )
|
if( $dstexists )
|
||||||
{
|
{
|
||||||
MakeFileWritable( $dst );
|
MakeFileWritable( $dst );
|
||||||
}
|
}
|
||||||
|
|
||||||
my $dir = $dst;
|
my $dir = $dst;
|
||||||
$dir =~ s,([^/\\]*$),,; # rip the filename off the end
|
$dir =~ s,([^/\\]*$),,; # rip the filename off the end
|
||||||
my $filename = $1;
|
my $filename = $1;
|
||||||
|
|
||||||
# create the target directory if it doesn't exist
|
# create the target directory if it doesn't exist
|
||||||
if( !$dstexists )
|
if( !$dstexists )
|
||||||
{
|
{
|
||||||
&MakeDirHier( $dir, 0777 );
|
&MakeDirHier( $dir, 0777 );
|
||||||
}
|
}
|
||||||
|
|
||||||
# copy the file to its targets. . . we want to see STDERR here if there is an error.
|
# copy the file to its targets. . . we want to see STDERR here if there is an error.
|
||||||
my $cmd = "copy $src $dst > nul";
|
my $cmd = "copy $src $dst > nul";
|
||||||
# print STDERR "$cmd\n";
|
# print STDERR "$cmd\n";
|
||||||
system $cmd;
|
system $cmd;
|
||||||
|
|
||||||
MakeFileReadOnly( $dst );
|
MakeFileReadOnly( $dst );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close TXTFILE;
|
close TXTFILE;
|
||||||
|
@ -1,110 +1,110 @@
|
|||||||
#!perl
|
#!perl
|
||||||
use File::Find;
|
use File::Find;
|
||||||
|
|
||||||
&BuildRemapTable;
|
&BuildRemapTable;
|
||||||
|
|
||||||
find(\&convert, "." );
|
find(\&convert, "." );
|
||||||
|
|
||||||
|
|
||||||
sub convert
|
sub convert
|
||||||
{
|
{
|
||||||
return unless (/\.pcf$/i);
|
return unless (/\.pcf$/i);
|
||||||
return if (/^tmp\.pcf$/i);
|
return if (/^tmp\.pcf$/i);
|
||||||
return if (/^tmp2\.pcf$/i);
|
return if (/^tmp2\.pcf$/i);
|
||||||
return if (/360\.pcf$/i);
|
return if (/360\.pcf$/i);
|
||||||
print STDERR "process ", $File::Find::name," ($_) dir=",`cd`," \n";
|
print STDERR "process ", $File::Find::name," ($_) dir=",`cd`," \n";
|
||||||
my $fname=$_;
|
my $fname=$_;
|
||||||
print `p4 edit $fname`;
|
print `p4 edit $fname`;
|
||||||
print `dmxconvert -i $_ -o tmp.pcf -oe keyvalues2`;
|
print `dmxconvert -i $_ -o tmp.pcf -oe keyvalues2`;
|
||||||
open(TMP, "tmp.pcf" ) || return;
|
open(TMP, "tmp.pcf" ) || return;
|
||||||
open(OUT, ">tmp2.pcf" ) || die;
|
open(OUT, ">tmp2.pcf" ) || die;
|
||||||
while(<TMP>)
|
while(<TMP>)
|
||||||
{
|
{
|
||||||
s/[\n\r]//g;
|
s/[\n\r]//g;
|
||||||
if ( (/^(\s*\"functionName\"\s*\"string\"\s*\")(.*)\"(.*)$/) &&
|
if ( (/^(\s*\"functionName\"\s*\"string\"\s*\")(.*)\"(.*)$/) &&
|
||||||
length($map{$2}) )
|
length($map{$2}) )
|
||||||
{
|
{
|
||||||
$_=$1.$map{$2}.'"'.$3;
|
$_=$1.$map{$2}.'"'.$3;
|
||||||
}
|
}
|
||||||
if ( (/^(\s*\"name\"\s*\"string\"\s*\")(.*)\"(.*)$/) &&
|
if ( (/^(\s*\"name\"\s*\"string\"\s*\")(.*)\"(.*)$/) &&
|
||||||
length($map{$2}) )
|
length($map{$2}) )
|
||||||
{
|
{
|
||||||
$_=$1.$map{$2}.'"'.$3;
|
$_=$1.$map{$2}.'"'.$3;
|
||||||
}
|
}
|
||||||
print OUT "$_\n";
|
print OUT "$_\n";
|
||||||
}
|
}
|
||||||
close OUT;
|
close OUT;
|
||||||
close TMP;
|
close TMP;
|
||||||
print `dmxconvert -i tmp2.pcf -o $fname -ie keyvalues2 -oe binary`;
|
print `dmxconvert -i tmp2.pcf -o $fname -ie keyvalues2 -oe binary`;
|
||||||
unlink "tmp.pcf";
|
unlink "tmp.pcf";
|
||||||
unlink "tmp2.pcf";
|
unlink "tmp2.pcf";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
sub BuildRemapTable
|
sub BuildRemapTable
|
||||||
{
|
{
|
||||||
$map{"alpha_fade"}= "Alpha Fade and Decay";
|
$map{"alpha_fade"}= "Alpha Fade and Decay";
|
||||||
$map{"alpha_fade_in_random"}= "Alpha Fade In Random";
|
$map{"alpha_fade_in_random"}= "Alpha Fade In Random";
|
||||||
$map{"alpha_fade_out_random"}= "Alpha Fade Out Random";
|
$map{"alpha_fade_out_random"}= "Alpha Fade Out Random";
|
||||||
$map{"basic_movement"}= "Movement Basic";
|
$map{"basic_movement"}= "Movement Basic";
|
||||||
$map{"color_fade"}= "Color Fade";
|
$map{"color_fade"}= "Color Fade";
|
||||||
$map{"controlpoint_light"}= "Color Light From Control Point";
|
$map{"controlpoint_light"}= "Color Light From Control Point";
|
||||||
$map{"Dampen Movement Relative to Control Point"}= "Movement Dampen Relative to Control Point";
|
$map{"Dampen Movement Relative to Control Point"}= "Movement Dampen Relative to Control Point";
|
||||||
$map{"Distance Between Control Points Scale"}= "Remap Distance Between Two Control Points to Scalar";
|
$map{"Distance Between Control Points Scale"}= "Remap Distance Between Two Control Points to Scalar";
|
||||||
$map{"Distance to Control Points Scale"}= "Remap Distance to Control Point to Scalar";
|
$map{"Distance to Control Points Scale"}= "Remap Distance to Control Point to Scalar";
|
||||||
$map{"lifespan_decay"}= "Lifespan Decay";
|
$map{"lifespan_decay"}= "Lifespan Decay";
|
||||||
$map{"lock to bone"}= "Movement Lock to Bone";
|
$map{"lock to bone"}= "Movement Lock to Bone";
|
||||||
$map{"postion_lock_to_controlpoint"}= "Movement Lock to Control Point";
|
$map{"postion_lock_to_controlpoint"}= "Movement Lock to Control Point";
|
||||||
$map{"maintain position along path"}= "Movement Maintain Position Along Path";
|
$map{"maintain position along path"}= "Movement Maintain Position Along Path";
|
||||||
$map{"Match Particle Velocities"}= "Movement Match Particle Velocities";
|
$map{"Match Particle Velocities"}= "Movement Match Particle Velocities";
|
||||||
$map{"Max Velocity"}= "Movement Max Velocity";
|
$map{"Max Velocity"}= "Movement Max Velocity";
|
||||||
$map{"noise"}= "Noise Scalar";
|
$map{"noise"}= "Noise Scalar";
|
||||||
$map{"vector noise"}= "Noise Vector";
|
$map{"vector noise"}= "Noise Vector";
|
||||||
$map{"oscillate_scalar"}= "Oscillate Scalar";
|
$map{"oscillate_scalar"}= "Oscillate Scalar";
|
||||||
$map{"oscillate_vector"}= "Oscillate Vector";
|
$map{"oscillate_vector"}= "Oscillate Vector";
|
||||||
$map{"Orient Rotation to 2D Direction"}= "Rotation Orient to 2D Direction";
|
$map{"Orient Rotation to 2D Direction"}= "Rotation Orient to 2D Direction";
|
||||||
$map{"radius_scale"}= "Radius Scale";
|
$map{"radius_scale"}= "Radius Scale";
|
||||||
$map{"Random Cull"}= "Cull Random";
|
$map{"Random Cull"}= "Cull Random";
|
||||||
$map{"remap_scalar"}= "Remap Scalar";
|
$map{"remap_scalar"}= "Remap Scalar";
|
||||||
$map{"rotation_movement"}= "Rotation Basic";
|
$map{"rotation_movement"}= "Rotation Basic";
|
||||||
$map{"rotation_spin"}= "Rotation Spin Roll";
|
$map{"rotation_spin"}= "Rotation Spin Roll";
|
||||||
$map{"rotation_spin yaw"}= "Rotation Spin Yaw";
|
$map{"rotation_spin yaw"}= "Rotation Spin Yaw";
|
||||||
$map{"alpha_random"}= "Alpha Random";
|
$map{"alpha_random"}= "Alpha Random";
|
||||||
$map{"color_random"}= "Color Random";
|
$map{"color_random"}= "Color Random";
|
||||||
$map{"create from parent particles"}= "Position From Parent Particles";
|
$map{"create from parent particles"}= "Position From Parent Particles";
|
||||||
$map{"Create In Hierarchy"}= "Position In CP Hierarchy";
|
$map{"Create In Hierarchy"}= "Position In CP Hierarchy";
|
||||||
$map{"random position along path"}= "Position Along Path Random";
|
$map{"random position along path"}= "Position Along Path Random";
|
||||||
$map{"random position on model"}= "Position on Model Random";
|
$map{"random position on model"}= "Position on Model Random";
|
||||||
$map{"sequential position along path"}= "Position Along Path Sequential";
|
$map{"sequential position along path"}= "Position Along Path Sequential";
|
||||||
$map{"position_offset_random"}= "Position Modify Offset Random";
|
$map{"position_offset_random"}= "Position Modify Offset Random";
|
||||||
$map{"position_warp_random"}= "Position Modify Warp Random";
|
$map{"position_warp_random"}= "Position Modify Warp Random";
|
||||||
$map{"position_within_box"}= "Position Within Box Random";
|
$map{"position_within_box"}= "Position Within Box Random";
|
||||||
$map{"position_within_sphere"}= "Position Within Sphere Random";
|
$map{"position_within_sphere"}= "Position Within Sphere Random";
|
||||||
$map{"Inherit Velocity"}= "Velocity Inherit from Control Point";
|
$map{"Inherit Velocity"}= "Velocity Inherit from Control Point";
|
||||||
$map{"Initial Repulsion Velocity"}= "Velocity Repulse from World";
|
$map{"Initial Repulsion Velocity"}= "Velocity Repulse from World";
|
||||||
$map{"Initial Velocity Noise"}= "Velocity Noise";
|
$map{"Initial Velocity Noise"}= "Velocity Noise";
|
||||||
$map{"Initial Scalar Noise"}= "Remap Noise to Scalar";
|
$map{"Initial Scalar Noise"}= "Remap Noise to Scalar";
|
||||||
$map{"Lifespan from distance to world"}= "Lifetime from Time to Impact";
|
$map{"Lifespan from distance to world"}= "Lifetime from Time to Impact";
|
||||||
$map{"Pre-Age Noise"}= "Lifetime Pre-Age Noise";
|
$map{"Pre-Age Noise"}= "Lifetime Pre-Age Noise";
|
||||||
$map{"lifetime_random"}= "Lifetime Random";
|
$map{"lifetime_random"}= "Lifetime Random";
|
||||||
$map{"radius_random"}= "Radius Random";
|
$map{"radius_random"}= "Radius Random";
|
||||||
$map{"random yaw"}= "Rotation Yaw Random";
|
$map{"random yaw"}= "Rotation Yaw Random";
|
||||||
$map{"Randomly Flip Yaw"}= "Rotation Yaw Flip Random";
|
$map{"Randomly Flip Yaw"}= "Rotation Yaw Flip Random";
|
||||||
$map{"rotation_random"}= "Rotation Random";
|
$map{"rotation_random"}= "Rotation Random";
|
||||||
$map{"rotation_speed_random"}= "Rotation Speed Random";
|
$map{"rotation_speed_random"}= "Rotation Speed Random";
|
||||||
$map{"sequence_random"}= "Sequence Random";
|
$map{"sequence_random"}= "Sequence Random";
|
||||||
$map{"second_sequence_random"}= "Sequence Two Random";
|
$map{"second_sequence_random"}= "Sequence Two Random";
|
||||||
$map{"trail_length_random"}= "Trail Length Random";
|
$map{"trail_length_random"}= "Trail Length Random";
|
||||||
$map{"velocity_random"}= "Velocity Random";
|
$map{"velocity_random"}= "Velocity Random";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,333 +1,333 @@
|
|||||||
use String::CRC32;
|
use String::CRC32;
|
||||||
BEGIN {use File::Basename; push @INC, dirname($0); }
|
BEGIN {use File::Basename; push @INC, dirname($0); }
|
||||||
require "valve_perl_helpers.pl";
|
require "valve_perl_helpers.pl";
|
||||||
|
|
||||||
sub BuildDefineOptions
|
sub BuildDefineOptions
|
||||||
{
|
{
|
||||||
local( $output );
|
local( $output );
|
||||||
local( $combo ) = shift;
|
local( $combo ) = shift;
|
||||||
local( $i );
|
local( $i );
|
||||||
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
|
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
|
||||||
{
|
{
|
||||||
local( $val ) = ( $combo % ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) ) + $dynamicDefineMin[$i];
|
local( $val ) = ( $combo % ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 ) ) + $dynamicDefineMin[$i];
|
||||||
$output .= "/D$dynamicDefineNames[$i]=$val ";
|
$output .= "/D$dynamicDefineNames[$i]=$val ";
|
||||||
$combo = $combo / ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 );
|
$combo = $combo / ( $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1 );
|
||||||
}
|
}
|
||||||
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
|
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
|
||||||
{
|
{
|
||||||
local( $val ) = ( $combo % ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) ) + $staticDefineMin[$i];
|
local( $val ) = ( $combo % ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 ) ) + $staticDefineMin[$i];
|
||||||
$output .= "/D$staticDefineNames[$i]=$val ";
|
$output .= "/D$staticDefineNames[$i]=$val ";
|
||||||
$combo = $combo / ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 );
|
$combo = $combo / ( $staticDefineMax[$i] - $staticDefineMin[$i] + 1 );
|
||||||
}
|
}
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub CalcNumCombos
|
sub CalcNumCombos
|
||||||
{
|
{
|
||||||
local( $i, $numCombos );
|
local( $i, $numCombos );
|
||||||
$numCombos = 1;
|
$numCombos = 1;
|
||||||
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
|
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
|
||||||
{
|
{
|
||||||
$numCombos *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
|
$numCombos *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
|
||||||
}
|
}
|
||||||
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
|
for( $i = 0; $i < scalar( @staticDefineNames ); $i++ )
|
||||||
{
|
{
|
||||||
$numCombos *= $staticDefineMax[$i] - $staticDefineMin[$i] + 1;
|
$numCombos *= $staticDefineMax[$i] - $staticDefineMin[$i] + 1;
|
||||||
}
|
}
|
||||||
return $numCombos;
|
return $numCombos;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub CalcNumDynamicCombos
|
sub CalcNumDynamicCombos
|
||||||
{
|
{
|
||||||
local( $i, $numCombos );
|
local( $i, $numCombos );
|
||||||
$numCombos = 1;
|
$numCombos = 1;
|
||||||
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
|
for( $i = 0; $i < scalar( @dynamicDefineNames ); $i++ )
|
||||||
{
|
{
|
||||||
$numCombos *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
|
$numCombos *= $dynamicDefineMax[$i] - $dynamicDefineMin[$i] + 1;
|
||||||
}
|
}
|
||||||
return $numCombos;
|
return $numCombos;
|
||||||
}
|
}
|
||||||
|
|
||||||
$g_dx9 = 1;
|
$g_dx9 = 1;
|
||||||
|
|
||||||
while( 1 )
|
while( 1 )
|
||||||
{
|
{
|
||||||
$psh_filename = shift;
|
$psh_filename = shift;
|
||||||
|
|
||||||
if( $psh_filename =~ m/-source/ )
|
if( $psh_filename =~ m/-source/ )
|
||||||
{
|
{
|
||||||
$g_SourceDir = shift;
|
$g_SourceDir = shift;
|
||||||
}
|
}
|
||||||
elsif( $psh_filename =~ m/-x360/ )
|
elsif( $psh_filename =~ m/-x360/ )
|
||||||
{
|
{
|
||||||
$g_x360 = 1;
|
$g_x360 = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$psh_filename =~ s/-----.*$//;
|
$psh_filename =~ s/-----.*$//;
|
||||||
|
|
||||||
|
|
||||||
# Get the shader binary version number from a header file.
|
# Get the shader binary version number from a header file.
|
||||||
open FILE, "<$g_SourceDir\\public\\materialsystem\\shader_vcs_version.h" || die;
|
open FILE, "<$g_SourceDir\\public\\materialsystem\\shader_vcs_version.h" || die;
|
||||||
while( $line = <FILE> )
|
while( $line = <FILE> )
|
||||||
{
|
{
|
||||||
if( $line =~ m/^\#define\s+SHADER_VCS_VERSION_NUMBER\s+(\d+)\s*$/ )
|
if( $line =~ m/^\#define\s+SHADER_VCS_VERSION_NUMBER\s+(\d+)\s*$/ )
|
||||||
{
|
{
|
||||||
$shaderVersion = $1;
|
$shaderVersion = $1;
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( !defined $shaderVersion )
|
if( !defined $shaderVersion )
|
||||||
{
|
{
|
||||||
die "couldn't get shader version from shader_vcs_version.h";
|
die "couldn't get shader version from shader_vcs_version.h";
|
||||||
}
|
}
|
||||||
close FILE;
|
close FILE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local( @staticDefineNames );
|
local( @staticDefineNames );
|
||||||
local( @staticDefineMin );
|
local( @staticDefineMin );
|
||||||
local( @staticDefineMax );
|
local( @staticDefineMax );
|
||||||
local( @dynamicDefineNames );
|
local( @dynamicDefineNames );
|
||||||
local( @dynamicDefineMin );
|
local( @dynamicDefineMin );
|
||||||
local( @dynamicDefineMax );
|
local( @dynamicDefineMax );
|
||||||
|
|
||||||
# Parse the combos.
|
# Parse the combos.
|
||||||
open PSH, "<$psh_filename";
|
open PSH, "<$psh_filename";
|
||||||
while( <PSH> )
|
while( <PSH> )
|
||||||
{
|
{
|
||||||
last if( !m,^;, );
|
last if( !m,^;, );
|
||||||
s,^;\s*,,;
|
s,^;\s*,,;
|
||||||
if( m/\s*STATIC\s*\:\s*\"(.*)\"\s+\"(\d+)\.\.(\d+)\"/ )
|
if( m/\s*STATIC\s*\:\s*\"(.*)\"\s+\"(\d+)\.\.(\d+)\"/ )
|
||||||
{
|
{
|
||||||
local( $name, $min, $max );
|
local( $name, $min, $max );
|
||||||
$name = $1;
|
$name = $1;
|
||||||
$min = $2;
|
$min = $2;
|
||||||
$max = $3;
|
$max = $3;
|
||||||
# print "\"STATIC: $name\" \"$min..$max\"\n";
|
# print "\"STATIC: $name\" \"$min..$max\"\n";
|
||||||
if (/\[(.*)\]/)
|
if (/\[(.*)\]/)
|
||||||
{
|
{
|
||||||
$platforms=$1;
|
$platforms=$1;
|
||||||
next if ( ($g_x360) && (!($platforms=~/XBOX/i)) );
|
next if ( ($g_x360) && (!($platforms=~/XBOX/i)) );
|
||||||
next if ( (!$g_x360) && (!($platforms=~/PC/i)) );
|
next if ( (!$g_x360) && (!($platforms=~/PC/i)) );
|
||||||
}
|
}
|
||||||
push @staticDefineNames, $name;
|
push @staticDefineNames, $name;
|
||||||
push @staticDefineMin, $min;
|
push @staticDefineMin, $min;
|
||||||
push @staticDefineMax, $max;
|
push @staticDefineMax, $max;
|
||||||
}
|
}
|
||||||
elsif( m/\s*DYNAMIC\s*\:\s*\"(.*)\"\s+\"(\d+)\.\.(\d+)\"/ )
|
elsif( m/\s*DYNAMIC\s*\:\s*\"(.*)\"\s+\"(\d+)\.\.(\d+)\"/ )
|
||||||
{
|
{
|
||||||
local( $name, $min, $max );
|
local( $name, $min, $max );
|
||||||
$name = $1;
|
$name = $1;
|
||||||
$min = $2;
|
$min = $2;
|
||||||
$max = $3;
|
$max = $3;
|
||||||
# print "\"DYNAMIC: $name\" \"$min..$max\"\n";
|
# print "\"DYNAMIC: $name\" \"$min..$max\"\n";
|
||||||
if (/\[(.*)\]/)
|
if (/\[(.*)\]/)
|
||||||
{
|
{
|
||||||
$platforms=$1;
|
$platforms=$1;
|
||||||
next if ( ($g_x360) && (!($platforms=~/XBOX/i)) );
|
next if ( ($g_x360) && (!($platforms=~/XBOX/i)) );
|
||||||
next if ( (!$g_x360) && (!($platforms=~/PC/i)) );
|
next if ( (!$g_x360) && (!($platforms=~/PC/i)) );
|
||||||
}
|
}
|
||||||
push @dynamicDefineNames, $name;
|
push @dynamicDefineNames, $name;
|
||||||
push @dynamicDefineMin, $min;
|
push @dynamicDefineMin, $min;
|
||||||
push @dynamicDefineMax, $max;
|
push @dynamicDefineMax, $max;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close PSH;
|
close PSH;
|
||||||
|
|
||||||
$numCombos = &CalcNumCombos();
|
$numCombos = &CalcNumCombos();
|
||||||
$numDynamicCombos = &CalcNumDynamicCombos();
|
$numDynamicCombos = &CalcNumDynamicCombos();
|
||||||
print "$psh_filename\n";
|
print "$psh_filename\n";
|
||||||
#print "$numCombos combos\n";
|
#print "$numCombos combos\n";
|
||||||
#print "$numDynamicCombos dynamic combos\n";
|
#print "$numDynamicCombos dynamic combos\n";
|
||||||
|
|
||||||
if( $g_x360 )
|
if( $g_x360 )
|
||||||
{
|
{
|
||||||
$pshtmp = "pshtmp9_360";
|
$pshtmp = "pshtmp9_360";
|
||||||
}
|
}
|
||||||
elsif( $g_dx9 )
|
elsif( $g_dx9 )
|
||||||
{
|
{
|
||||||
$pshtmp = "pshtmp9";
|
$pshtmp = "pshtmp9";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$pshtmp = "pshtmp8";
|
$pshtmp = "pshtmp8";
|
||||||
}
|
}
|
||||||
$basename = $psh_filename;
|
$basename = $psh_filename;
|
||||||
$basename =~ s/\.psh$//i;
|
$basename =~ s/\.psh$//i;
|
||||||
|
|
||||||
for( $shaderCombo = 0; $shaderCombo < $numCombos; $shaderCombo++ )
|
for( $shaderCombo = 0; $shaderCombo < $numCombos; $shaderCombo++ )
|
||||||
{
|
{
|
||||||
my $tempFilename = "shader$shaderCombo.o";
|
my $tempFilename = "shader$shaderCombo.o";
|
||||||
unlink $tempFilename;
|
unlink $tempFilename;
|
||||||
|
|
||||||
if( $g_x360 )
|
if( $g_x360 )
|
||||||
{
|
{
|
||||||
$cmd = "$g_SourceDir\\x360xdk\\bin\\win32\\psa /D_X360=1 /Foshader$shaderCombo.o /nologo " . &BuildDefineOptions( $shaderCombo ) . "$psh_filename > NIL";
|
$cmd = "$g_SourceDir\\x360xdk\\bin\\win32\\psa /D_X360=1 /Foshader$shaderCombo.o /nologo " . &BuildDefineOptions( $shaderCombo ) . "$psh_filename > NIL";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$cmd = "$g_SourceDir\\dx9sdk\\utilities\\psa /Foshader$shaderCombo.o /nologo " . &BuildDefineOptions( $shaderCombo ) . "$psh_filename > NIL";
|
$cmd = "$g_SourceDir\\dx9sdk\\utilities\\psa /Foshader$shaderCombo.o /nologo " . &BuildDefineOptions( $shaderCombo ) . "$psh_filename > NIL";
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !stat $pshtmp )
|
if( !stat $pshtmp )
|
||||||
{
|
{
|
||||||
mkdir $pshtmp, 0777 || die $!;
|
mkdir $pshtmp, 0777 || die $!;
|
||||||
}
|
}
|
||||||
|
|
||||||
# print $cmd . "\n";
|
# print $cmd . "\n";
|
||||||
system $cmd || die $!;
|
system $cmd || die $!;
|
||||||
|
|
||||||
# Make sure a file got generated because sometimes the die above won't happen on compile errors.
|
# Make sure a file got generated because sometimes the die above won't happen on compile errors.
|
||||||
my $filesize = (stat $tempFilename)[7];
|
my $filesize = (stat $tempFilename)[7];
|
||||||
if ( !$filesize )
|
if ( !$filesize )
|
||||||
{
|
{
|
||||||
die "Error compiling shader$shaderCombo.o";
|
die "Error compiling shader$shaderCombo.o";
|
||||||
}
|
}
|
||||||
|
|
||||||
push @outputHeader, @hdr;
|
push @outputHeader, @hdr;
|
||||||
}
|
}
|
||||||
|
|
||||||
$basename =~ s/\.fxc//gi;
|
$basename =~ s/\.fxc//gi;
|
||||||
push @outputHeader, "static PrecompiledShaderByteCode_t " . $basename . "_pixel_shaders[" . $numCombos . "] = \n";
|
push @outputHeader, "static PrecompiledShaderByteCode_t " . $basename . "_pixel_shaders[" . $numCombos . "] = \n";
|
||||||
push @outputHeader, "{\n";
|
push @outputHeader, "{\n";
|
||||||
local( $j );
|
local( $j );
|
||||||
for( $j = 0; $j < $numCombos; $j++ )
|
for( $j = 0; $j < $numCombos; $j++ )
|
||||||
{
|
{
|
||||||
local( $thing ) = "pixelShader_" . $basename . "_" . $j;
|
local( $thing ) = "pixelShader_" . $basename . "_" . $j;
|
||||||
push @outputHeader, "\t{ " . "$thing, sizeof( $thing ) },\n";
|
push @outputHeader, "\t{ " . "$thing, sizeof( $thing ) },\n";
|
||||||
}
|
}
|
||||||
push @outputHeader, "};\n";
|
push @outputHeader, "};\n";
|
||||||
|
|
||||||
push @outputHeader, "struct $basename" . "PixelShader_t : public PrecompiledShader_t\n";
|
push @outputHeader, "struct $basename" . "PixelShader_t : public PrecompiledShader_t\n";
|
||||||
push @outputHeader, "{\n";
|
push @outputHeader, "{\n";
|
||||||
push @outputHeader, "\t$basename" . "PixelShader_t()\n";
|
push @outputHeader, "\t$basename" . "PixelShader_t()\n";
|
||||||
push @outputHeader, "\t{\n";
|
push @outputHeader, "\t{\n";
|
||||||
push @outputHeader, "\t\tm_nFlags = 0;\n";
|
push @outputHeader, "\t\tm_nFlags = 0;\n";
|
||||||
push @outputHeader, "\t\tm_pByteCode = " . $basename . "_pixel_shaders;\n";
|
push @outputHeader, "\t\tm_pByteCode = " . $basename . "_pixel_shaders;\n";
|
||||||
push @outputHeader, "\t\tm_nShaderCount = $numCombos;\n";
|
push @outputHeader, "\t\tm_nShaderCount = $numCombos;\n";
|
||||||
#push @outputHeader, "\t\tm_nDynamicCombos = m_nShaderCount;\n";
|
#push @outputHeader, "\t\tm_nDynamicCombos = m_nShaderCount;\n";
|
||||||
push @outputHeader, "\t\t// NOTE!!! psh_prep.pl shaders are always static combos!\n";
|
push @outputHeader, "\t\t// NOTE!!! psh_prep.pl shaders are always static combos!\n";
|
||||||
push @outputHeader, "\t\tm_nDynamicCombos = 1;\n";
|
push @outputHeader, "\t\tm_nDynamicCombos = 1;\n";
|
||||||
push @outputHeader, "\t\tm_pName = \"$basename\";\n";
|
push @outputHeader, "\t\tm_pName = \"$basename\";\n";
|
||||||
if( $basename =~ /vs\d\d/ ) # hack
|
if( $basename =~ /vs\d\d/ ) # hack
|
||||||
{
|
{
|
||||||
push @outputHeader, "\t\tGetShaderDLL()->InsertPrecompiledShader( PRECOMPILED_VERTEX_SHADER, this );\n";
|
push @outputHeader, "\t\tGetShaderDLL()->InsertPrecompiledShader( PRECOMPILED_VERTEX_SHADER, this );\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
push @outputHeader, "\t\tGetShaderDLL()->InsertPrecompiledShader( PRECOMPILED_PIXEL_SHADER, this );\n";
|
push @outputHeader, "\t\tGetShaderDLL()->InsertPrecompiledShader( PRECOMPILED_PIXEL_SHADER, this );\n";
|
||||||
}
|
}
|
||||||
push @outputHeader, "\t}\n";
|
push @outputHeader, "\t}\n";
|
||||||
push @outputHeader, "\tvirtual const PrecompiledShaderByteCode_t &GetByteCode( int shaderID )\n";
|
push @outputHeader, "\tvirtual const PrecompiledShaderByteCode_t &GetByteCode( int shaderID )\n";
|
||||||
push @outputHeader, "\t{\n";
|
push @outputHeader, "\t{\n";
|
||||||
push @outputHeader, "\t\treturn m_pByteCode[shaderID];\n";
|
push @outputHeader, "\t\treturn m_pByteCode[shaderID];\n";
|
||||||
push @outputHeader, "\t}\n";
|
push @outputHeader, "\t}\n";
|
||||||
push @outputHeader, "};\n";
|
push @outputHeader, "};\n";
|
||||||
|
|
||||||
push @outputHeader, "static $basename" . "PixelShader_t $basename" . "_PixelShaderInstance;\n";
|
push @outputHeader, "static $basename" . "PixelShader_t $basename" . "_PixelShaderInstance;\n";
|
||||||
|
|
||||||
|
|
||||||
&MakeDirHier( "shaders/psh" );
|
&MakeDirHier( "shaders/psh" );
|
||||||
|
|
||||||
my $vcsName = "";
|
my $vcsName = "";
|
||||||
if( $g_x360 )
|
if( $g_x360 )
|
||||||
{
|
{
|
||||||
$vcsName = $basename . ".360.vcs";
|
$vcsName = $basename . ".360.vcs";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$vcsName = $basename . ".vcs";
|
$vcsName = $basename . ".vcs";
|
||||||
}
|
}
|
||||||
|
|
||||||
open COMPILEDSHADER, ">shaders/psh/$vcsName" || die;
|
open COMPILEDSHADER, ">shaders/psh/$vcsName" || die;
|
||||||
binmode( COMPILEDSHADER );
|
binmode( COMPILEDSHADER );
|
||||||
|
|
||||||
#
|
#
|
||||||
# Write out the part of the header that we know. . we'll write the rest after writing the object code.
|
# Write out the part of the header that we know. . we'll write the rest after writing the object code.
|
||||||
#
|
#
|
||||||
|
|
||||||
#print $numCombos . "\n";
|
#print $numCombos . "\n";
|
||||||
|
|
||||||
# Pack arguments
|
# Pack arguments
|
||||||
my $sInt = "i";
|
my $sInt = "i";
|
||||||
my $uInt = "I";
|
my $uInt = "I";
|
||||||
if ( $g_x360 )
|
if ( $g_x360 )
|
||||||
{
|
{
|
||||||
# Change arguments to "big endian long"
|
# Change arguments to "big endian long"
|
||||||
$sInt = "N";
|
$sInt = "N";
|
||||||
$uInt = "N";
|
$uInt = "N";
|
||||||
}
|
}
|
||||||
|
|
||||||
open PSH, "<$psh_filename";
|
open PSH, "<$psh_filename";
|
||||||
my $crc = crc32( *PSH );
|
my $crc = crc32( *PSH );
|
||||||
close PSH;
|
close PSH;
|
||||||
#print STDERR "crc for $psh_filename: $crc\n";
|
#print STDERR "crc for $psh_filename: $crc\n";
|
||||||
|
|
||||||
# version
|
# version
|
||||||
print COMPILEDSHADER pack $sInt, 4;
|
print COMPILEDSHADER pack $sInt, 4;
|
||||||
# totalCombos
|
# totalCombos
|
||||||
print COMPILEDSHADER pack $sInt, $numCombos;
|
print COMPILEDSHADER pack $sInt, $numCombos;
|
||||||
# dynamic combos
|
# dynamic combos
|
||||||
print COMPILEDSHADER pack $sInt, $numDynamicCombos;
|
print COMPILEDSHADER pack $sInt, $numDynamicCombos;
|
||||||
# flags
|
# flags
|
||||||
print COMPILEDSHADER pack $uInt, 0x0; # nothing here for now.
|
print COMPILEDSHADER pack $uInt, 0x0; # nothing here for now.
|
||||||
# centroid mask
|
# centroid mask
|
||||||
print COMPILEDSHADER pack $uInt, 0;
|
print COMPILEDSHADER pack $uInt, 0;
|
||||||
# reference size for diffs
|
# reference size for diffs
|
||||||
print COMPILEDSHADER pack $uInt, 0;
|
print COMPILEDSHADER pack $uInt, 0;
|
||||||
# crc32 of the source code
|
# crc32 of the source code
|
||||||
print COMPILEDSHADER pack $uInt, $crc;
|
print COMPILEDSHADER pack $uInt, $crc;
|
||||||
|
|
||||||
my $beginningOfDir = tell COMPILEDSHADER;
|
my $beginningOfDir = tell COMPILEDSHADER;
|
||||||
|
|
||||||
# Write out a blank directionary. . we'll fill it in later.
|
# Write out a blank directionary. . we'll fill it in later.
|
||||||
for( $i = 0; $i < $numCombos; $i++ )
|
for( $i = 0; $i < $numCombos; $i++ )
|
||||||
{
|
{
|
||||||
# offset from beginning of file.
|
# offset from beginning of file.
|
||||||
print COMPILEDSHADER pack $sInt, 0;
|
print COMPILEDSHADER pack $sInt, 0;
|
||||||
# size
|
# size
|
||||||
print COMPILEDSHADER pack $sInt, 0;
|
print COMPILEDSHADER pack $sInt, 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $startByteCode = tell COMPILEDSHADER;
|
my $startByteCode = tell COMPILEDSHADER;
|
||||||
my @byteCodeStart;
|
my @byteCodeStart;
|
||||||
my @byteCodeSize;
|
my @byteCodeSize;
|
||||||
|
|
||||||
# Write out the shader object code.
|
# Write out the shader object code.
|
||||||
for( $shaderCombo = 0; $shaderCombo < $numCombos; $shaderCombo++ )
|
for( $shaderCombo = 0; $shaderCombo < $numCombos; $shaderCombo++ )
|
||||||
{
|
{
|
||||||
my $filename = "shader$shaderCombo\.o";
|
my $filename = "shader$shaderCombo\.o";
|
||||||
my $filesize = (stat $filename)[7];
|
my $filesize = (stat $filename)[7];
|
||||||
|
|
||||||
$byteCodeStart[$shaderCombo] = tell COMPILEDSHADER;
|
$byteCodeStart[$shaderCombo] = tell COMPILEDSHADER;
|
||||||
$byteCodeSize[$shaderCombo] = $filesize;
|
$byteCodeSize[$shaderCombo] = $filesize;
|
||||||
open SHADERBYTECODE, "<$filename";
|
open SHADERBYTECODE, "<$filename";
|
||||||
binmode SHADERBYTECODE;
|
binmode SHADERBYTECODE;
|
||||||
|
|
||||||
my $bin;
|
my $bin;
|
||||||
my $numread = read SHADERBYTECODE, $bin, $filesize;
|
my $numread = read SHADERBYTECODE, $bin, $filesize;
|
||||||
# print "filename: $filename numread: $numread filesize: $filesize\n";
|
# print "filename: $filename numread: $numread filesize: $filesize\n";
|
||||||
close SHADERBYTECODE;
|
close SHADERBYTECODE;
|
||||||
unlink $filename;
|
unlink $filename;
|
||||||
|
|
||||||
print COMPILEDSHADER $bin;
|
print COMPILEDSHADER $bin;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Seek back to the directory and write it out.
|
# Seek back to the directory and write it out.
|
||||||
seek COMPILEDSHADER, $beginningOfDir, 0;
|
seek COMPILEDSHADER, $beginningOfDir, 0;
|
||||||
for( $i = 0; $i < $numCombos; $i++ )
|
for( $i = 0; $i < $numCombos; $i++ )
|
||||||
{
|
{
|
||||||
# offset from beginning of file.
|
# offset from beginning of file.
|
||||||
print COMPILEDSHADER pack $sInt, $byteCodeStart[$i];
|
print COMPILEDSHADER pack $sInt, $byteCodeStart[$i];
|
||||||
# size
|
# size
|
||||||
print COMPILEDSHADER pack $sInt, $byteCodeSize[$i];
|
print COMPILEDSHADER pack $sInt, $byteCodeSize[$i];
|
||||||
}
|
}
|
||||||
|
|
||||||
close COMPILEDSHADER;
|
close COMPILEDSHADER;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,36 +1,36 @@
|
|||||||
#! perl
|
#! perl
|
||||||
|
|
||||||
my $fname=shift || die "format is shaderinfo blah.vcs";
|
my $fname=shift || die "format is shaderinfo blah.vcs";
|
||||||
|
|
||||||
open(SHADER, $fname) || die "can't open $fname";
|
open(SHADER, $fname) || die "can't open $fname";
|
||||||
binmode SHADER;
|
binmode SHADER;
|
||||||
|
|
||||||
read(SHADER,$header,20);
|
read(SHADER,$header,20);
|
||||||
($ver,$ntotal,$ndynamic,$flags,$centroidmask)=unpack("LLLLL",$header);
|
($ver,$ntotal,$ndynamic,$flags,$centroidmask)=unpack("LLLLL",$header);
|
||||||
|
|
||||||
#print "Version $ver total combos=$ntotal, num dynamic combos=$ndynamic,\n flags=$flags, centroid mask=$centroidmask\n";
|
#print "Version $ver total combos=$ntotal, num dynamic combos=$ndynamic,\n flags=$flags, centroid mask=$centroidmask\n";
|
||||||
|
|
||||||
read(SHADER,$refsize,4);
|
read(SHADER,$refsize,4);
|
||||||
$refsize=unpack("L",$refsize);
|
$refsize=unpack("L",$refsize);
|
||||||
#print "Size of reference shader for diffing=$refsize\n";
|
#print "Size of reference shader for diffing=$refsize\n";
|
||||||
|
|
||||||
seek(SHADER,$refsize,1);
|
seek(SHADER,$refsize,1);
|
||||||
|
|
||||||
$nskipped_combos=0;
|
$nskipped_combos=0;
|
||||||
for(1..$ntotal)
|
for(1..$ntotal)
|
||||||
{
|
{
|
||||||
read(SHADER,$combodata,8);
|
read(SHADER,$combodata,8);
|
||||||
($ofs,$combosize)=unpack("LL",$combodata);
|
($ofs,$combosize)=unpack("LL",$combodata);
|
||||||
if ( $ofs == 0xffffffff)
|
if ( $ofs == 0xffffffff)
|
||||||
{
|
{
|
||||||
$nskipped_combos++;
|
$nskipped_combos++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#print "$nskipped_combos skipped, for an actual total of ",$ntotal-$nskipped_combos,"\n";
|
#print "$nskipped_combos skipped, for an actual total of ",$ntotal-$nskipped_combos,"\n";
|
||||||
#print "Real to skipped ratio = ",($ntotal-$nskipped_combos)/$ntotal,"\n";
|
#print "Real to skipped ratio = ",($ntotal-$nskipped_combos)/$ntotal,"\n";
|
||||||
# csv output - name, real combos, virtual combos, dynamic combos
|
# csv output - name, real combos, virtual combos, dynamic combos
|
||||||
my $real_combos=$ntotal-$nskipped_combos;
|
my $real_combos=$ntotal-$nskipped_combos;
|
||||||
print "$fname,$real_combos,$ntotal,$ndynamic\n";
|
print "$fname,$real_combos,$ntotal,$ndynamic\n";
|
||||||
|
@ -1,54 +1,54 @@
|
|||||||
$infilename = shift;
|
$infilename = shift;
|
||||||
$outfilename1 = shift;
|
$outfilename1 = shift;
|
||||||
$outfilename2 = shift;
|
$outfilename2 = shift;
|
||||||
open INPUT, $infilename || die;
|
open INPUT, $infilename || die;
|
||||||
@input = <INPUT>;
|
@input = <INPUT>;
|
||||||
close INPUT;
|
close INPUT;
|
||||||
|
|
||||||
open MERGEDMINE, ">$outfilename1" || die;
|
open MERGEDMINE, ">$outfilename1" || die;
|
||||||
open MERGEDTHEIRS, ">$outfilename2" || die;
|
open MERGEDTHEIRS, ">$outfilename2" || die;
|
||||||
|
|
||||||
for( $i = 0; $i < scalar( @input ); $i++ )
|
for( $i = 0; $i < scalar( @input ); $i++ )
|
||||||
{
|
{
|
||||||
$line = $input[$i];
|
$line = $input[$i];
|
||||||
|
|
||||||
if( $line =~ m/^(.*)<<<<<<</ )
|
if( $line =~ m/^(.*)<<<<<<</ )
|
||||||
{
|
{
|
||||||
$first = 1;
|
$first = 1;
|
||||||
$second = 0;
|
$second = 0;
|
||||||
print MERGEDMINE $1;
|
print MERGEDMINE $1;
|
||||||
print MERGEDTHEIRS $1;
|
print MERGEDTHEIRS $1;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
# Make sure that we are in a split block so that comments with ======= don't mess us up.
|
# Make sure that we are in a split block so that comments with ======= don't mess us up.
|
||||||
if( $line =~ m/^(.*)=======$/ && $first == 1 )
|
if( $line =~ m/^(.*)=======$/ && $first == 1 )
|
||||||
{
|
{
|
||||||
$first = 0;
|
$first = 0;
|
||||||
$second = 1;
|
$second = 1;
|
||||||
print MERGEDMINE $1;
|
print MERGEDMINE $1;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
if( $line =~ m/^(.*)>>>>>>>/ )
|
if( $line =~ m/^(.*)>>>>>>>/ )
|
||||||
{
|
{
|
||||||
$first = $second = 0;
|
$first = $second = 0;
|
||||||
print MERGEDTHEIRS $1;
|
print MERGEDTHEIRS $1;
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( $first )
|
if( $first )
|
||||||
{
|
{
|
||||||
print MERGEDMINE $line;
|
print MERGEDMINE $line;
|
||||||
}
|
}
|
||||||
elsif( $second )
|
elsif( $second )
|
||||||
{
|
{
|
||||||
print MERGEDTHEIRS $line;
|
print MERGEDTHEIRS $line;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print MERGEDMINE $line;
|
print MERGEDMINE $line;
|
||||||
print MERGEDTHEIRS $line;
|
print MERGEDTHEIRS $line;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close MERGEDMINE;
|
close MERGEDMINE;
|
||||||
close MERGEDTHEIRS;
|
close MERGEDTHEIRS;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
foreach $_ (sort <> )
|
foreach $_ (sort <> )
|
||||||
{
|
{
|
||||||
next if( defined( $prevline ) && $_ eq $prevline );
|
next if( defined( $prevline ) && $_ eq $prevline );
|
||||||
$prevline = $_;
|
$prevline = $_;
|
||||||
print;
|
print;
|
||||||
}
|
}
|
||||||
|
@ -1,305 +1,305 @@
|
|||||||
use String::CRC32;
|
use String::CRC32;
|
||||||
BEGIN {use File::Basename; push @INC, dirname($0); }
|
BEGIN {use File::Basename; push @INC, dirname($0); }
|
||||||
require "valve_perl_helpers.pl";
|
require "valve_perl_helpers.pl";
|
||||||
|
|
||||||
$dynamic_compile = defined $ENV{"dynamic_shaders"} && $ENV{"dynamic_shaders"} != 0;
|
$dynamic_compile = defined $ENV{"dynamic_shaders"} && $ENV{"dynamic_shaders"} != 0;
|
||||||
|
|
||||||
$depnum = 0;
|
$depnum = 0;
|
||||||
$baseSourceDir = ".";
|
$baseSourceDir = ".";
|
||||||
|
|
||||||
my %dep;
|
my %dep;
|
||||||
|
|
||||||
sub GetAsmShaderDependencies_R
|
sub GetAsmShaderDependencies_R
|
||||||
{
|
{
|
||||||
local( $shadername ) = shift;
|
local( $shadername ) = shift;
|
||||||
local( *SHADER );
|
local( *SHADER );
|
||||||
|
|
||||||
open SHADER, "<$shadername";
|
open SHADER, "<$shadername";
|
||||||
while( <SHADER> )
|
while( <SHADER> )
|
||||||
{
|
{
|
||||||
if( m/^\s*\#\s*include\s+\"(.*)\"/ )
|
if( m/^\s*\#\s*include\s+\"(.*)\"/ )
|
||||||
{
|
{
|
||||||
# make sure it isn't in there already.
|
# make sure it isn't in there already.
|
||||||
if( !defined( $dep{$1} ) )
|
if( !defined( $dep{$1} ) )
|
||||||
{
|
{
|
||||||
$dep{$1} = 1;
|
$dep{$1} = 1;
|
||||||
GetAsmShaderDependencies_R( $1 );
|
GetAsmShaderDependencies_R( $1 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close SHADER;
|
close SHADER;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetAsmShaderDependencies
|
sub GetAsmShaderDependencies
|
||||||
{
|
{
|
||||||
local( $shadername ) = shift;
|
local( $shadername ) = shift;
|
||||||
undef %dep;
|
undef %dep;
|
||||||
GetAsmShaderDependencies_R( $shadername );
|
GetAsmShaderDependencies_R( $shadername );
|
||||||
# local( $i );
|
# local( $i );
|
||||||
# foreach $i ( keys( %dep ) )
|
# foreach $i ( keys( %dep ) )
|
||||||
# {
|
# {
|
||||||
# print "$shadername depends on $i\n";
|
# print "$shadername depends on $i\n";
|
||||||
# }
|
# }
|
||||||
return keys( %dep );
|
return keys( %dep );
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetShaderType
|
sub GetShaderType
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
my $shadertype;
|
my $shadertype;
|
||||||
if( $shadername =~ m/\.vsh/i )
|
if( $shadername =~ m/\.vsh/i )
|
||||||
{
|
{
|
||||||
$shadertype = "vsh";
|
$shadertype = "vsh";
|
||||||
}
|
}
|
||||||
elsif( $shadername =~ m/\.psh/i )
|
elsif( $shadername =~ m/\.psh/i )
|
||||||
{
|
{
|
||||||
$shadertype = "psh";
|
$shadertype = "psh";
|
||||||
}
|
}
|
||||||
elsif( $shadername =~ m/\.fxc/i )
|
elsif( $shadername =~ m/\.fxc/i )
|
||||||
{
|
{
|
||||||
$shadertype = "fxc";
|
$shadertype = "fxc";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
return $shadertype;
|
return $shadertype;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetShaderSrc
|
sub GetShaderSrc
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
if ( $shadername =~ m/^(.*)-----/i )
|
if ( $shadername =~ m/^(.*)-----/i )
|
||||||
{
|
{
|
||||||
return $1;
|
return $1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return $shadername;
|
return $shadername;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub GetShaderBase
|
sub GetShaderBase
|
||||||
{
|
{
|
||||||
my $shadername = shift;
|
my $shadername = shift;
|
||||||
if ( $shadername =~ m/-----(.*)$/i )
|
if ( $shadername =~ m/-----(.*)$/i )
|
||||||
{
|
{
|
||||||
return $1;
|
return $1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
my $shadertype = &GetShaderType( $shadername );
|
my $shadertype = &GetShaderType( $shadername );
|
||||||
$shadername =~ s/\.$shadertype//i;
|
$shadername =~ s/\.$shadertype//i;
|
||||||
return $shadername;
|
return $shadername;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub DoAsmShader
|
sub DoAsmShader
|
||||||
{
|
{
|
||||||
my $argstring = shift;
|
my $argstring = shift;
|
||||||
my $shadername = &GetShaderSrc( $argstring );
|
my $shadername = &GetShaderSrc( $argstring );
|
||||||
my $shaderbase = &GetShaderBase( $argstring );
|
my $shaderbase = &GetShaderBase( $argstring );
|
||||||
my $shadertype = &GetShaderType( $argstring );
|
my $shadertype = &GetShaderType( $argstring );
|
||||||
my $incfile = "";
|
my $incfile = "";
|
||||||
if( $shadertype eq "fxc" || $shadertype eq "vsh" )
|
if( $shadertype eq "fxc" || $shadertype eq "vsh" )
|
||||||
{
|
{
|
||||||
$incfile = $shadertype . "tmp9" . $g_tmpfolder . "\\$shaderbase.inc ";
|
$incfile = $shadertype . "tmp9" . $g_tmpfolder . "\\$shaderbase.inc ";
|
||||||
}
|
}
|
||||||
|
|
||||||
my $vcsfile = $shaderbase . $g_vcsext;
|
my $vcsfile = $shaderbase . $g_vcsext;
|
||||||
my $bWillCompileVcs = 1;
|
my $bWillCompileVcs = 1;
|
||||||
if( ( $shadertype eq "fxc") && $dynamic_compile )
|
if( ( $shadertype eq "fxc") && $dynamic_compile )
|
||||||
{
|
{
|
||||||
$bWillCompileVcs = 0;
|
$bWillCompileVcs = 0;
|
||||||
}
|
}
|
||||||
if( $shadercrcpass{$argstring} )
|
if( $shadercrcpass{$argstring} )
|
||||||
{
|
{
|
||||||
$bWillCompileVcs = 0;
|
$bWillCompileVcs = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( $bWillCompileVcs )
|
if( $bWillCompileVcs )
|
||||||
{
|
{
|
||||||
&output_makefile_line( $incfile . "shaders\\$shadertype\\$vcsfile: $shadername @dep\n") ;
|
&output_makefile_line( $incfile . "shaders\\$shadertype\\$vcsfile: $shadername @dep\n") ;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
# psh files don't need a rule at this point since they don't have inc files and we aren't compiling a vcs.
|
# psh files don't need a rule at this point since they don't have inc files and we aren't compiling a vcs.
|
||||||
if( $shadertype eq "fxc" || $shadertype eq "vsh" )
|
if( $shadertype eq "fxc" || $shadertype eq "vsh" )
|
||||||
{
|
{
|
||||||
&output_makefile_line( $incfile . ": $shadername @dep\n") ;
|
&output_makefile_line( $incfile . ": $shadername @dep\n") ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
my $x360switch = "";
|
my $x360switch = "";
|
||||||
my $moreswitches = "";
|
my $moreswitches = "";
|
||||||
if( !$bWillCompileVcs && $shadertype eq "fxc" )
|
if( !$bWillCompileVcs && $shadertype eq "fxc" )
|
||||||
{
|
{
|
||||||
$moreswitches .= "-novcs ";
|
$moreswitches .= "-novcs ";
|
||||||
}
|
}
|
||||||
if( $g_x360 )
|
if( $g_x360 )
|
||||||
{
|
{
|
||||||
$x360switch = "-x360";
|
$x360switch = "-x360";
|
||||||
|
|
||||||
if( $bWillCompileVcs && ( $shaderbase =~ m/_ps20$/i ) )
|
if( $bWillCompileVcs && ( $shaderbase =~ m/_ps20$/i ) )
|
||||||
{
|
{
|
||||||
$moreswitches .= "-novcs ";
|
$moreswitches .= "-novcs ";
|
||||||
$bWillCompileVcs = 0;
|
$bWillCompileVcs = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# if we are psh and we are compiling the vcs, we don't need this rule.
|
# if we are psh and we are compiling the vcs, we don't need this rule.
|
||||||
if( !( $shadertype eq "psh" && !$bWillCompileVcs ) )
|
if( !( $shadertype eq "psh" && !$bWillCompileVcs ) )
|
||||||
{
|
{
|
||||||
&output_makefile_line( "\tperl $g_SourceDir\\devtools\\bin\\" . $shadertype . "_prep.pl $moreswitches $x360switch -source \"$g_SourceDir\" $argstring\n") ;
|
&output_makefile_line( "\tperl $g_SourceDir\\devtools\\bin\\" . $shadertype . "_prep.pl $moreswitches $x360switch -source \"$g_SourceDir\" $argstring\n") ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( $bWillCompileVcs )
|
if( $bWillCompileVcs )
|
||||||
{
|
{
|
||||||
&output_makefile_line( "\techo $shadername>> filestocopy.txt\n") ;
|
&output_makefile_line( "\techo $shadername>> filestocopy.txt\n") ;
|
||||||
my $dep;
|
my $dep;
|
||||||
foreach $dep( @dep )
|
foreach $dep( @dep )
|
||||||
{
|
{
|
||||||
&output_makefile_line( "\techo $dep>> filestocopy.txt\n") ;
|
&output_makefile_line( "\techo $dep>> filestocopy.txt\n") ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&output_makefile_line( "\n") ;
|
&output_makefile_line( "\n") ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( scalar( @ARGV ) == 0 )
|
if( scalar( @ARGV ) == 0 )
|
||||||
{
|
{
|
||||||
die "Usage updateshaders.pl shaderprojectbasename\n\tie: updateshaders.pl stdshaders_dx6\n";
|
die "Usage updateshaders.pl shaderprojectbasename\n\tie: updateshaders.pl stdshaders_dx6\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
$g_x360 = 0;
|
$g_x360 = 0;
|
||||||
$g_tmpfolder = "_tmp";
|
$g_tmpfolder = "_tmp";
|
||||||
$g_vcsext = ".vcs";
|
$g_vcsext = ".vcs";
|
||||||
|
|
||||||
while( 1 )
|
while( 1 )
|
||||||
{
|
{
|
||||||
$inputbase = shift;
|
$inputbase = shift;
|
||||||
|
|
||||||
if( $inputbase =~ m/-source/ )
|
if( $inputbase =~ m/-source/ )
|
||||||
{
|
{
|
||||||
$g_SourceDir = shift;
|
$g_SourceDir = shift;
|
||||||
}
|
}
|
||||||
elsif( $inputbase =~ m/-x360/ )
|
elsif( $inputbase =~ m/-x360/ )
|
||||||
{
|
{
|
||||||
$g_x360 = 1;
|
$g_x360 = 1;
|
||||||
$g_tmpfolder = "_360_tmp";
|
$g_tmpfolder = "_360_tmp";
|
||||||
$g_vcsext = ".360.vcs";
|
$g_vcsext = ".360.vcs";
|
||||||
}
|
}
|
||||||
elsif( $inputbase =~ m/-execute/ )
|
elsif( $inputbase =~ m/-execute/ )
|
||||||
{
|
{
|
||||||
$g_execute = 1;
|
$g_execute = 1;
|
||||||
}
|
}
|
||||||
elsif( $inputbase =~ m/-nv3x/ )
|
elsif( $inputbase =~ m/-nv3x/ )
|
||||||
{
|
{
|
||||||
$nv3x = 1;
|
$nv3x = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
my @srcfiles = &LoadShaderListFile( $inputbase );
|
my @srcfiles = &LoadShaderListFile( $inputbase );
|
||||||
|
|
||||||
open MAKEFILE, ">makefile\.$inputbase";
|
open MAKEFILE, ">makefile\.$inputbase";
|
||||||
open COPYFILE, ">makefile\.$inputbase\.copy";
|
open COPYFILE, ">makefile\.$inputbase\.copy";
|
||||||
open INCLIST, ">inclist.txt";
|
open INCLIST, ">inclist.txt";
|
||||||
open VCSLIST, ">vcslist.txt";
|
open VCSLIST, ">vcslist.txt";
|
||||||
|
|
||||||
# make a default dependency that depends on all of the shaders.
|
# make a default dependency that depends on all of the shaders.
|
||||||
&output_makefile_line( "default: ") ;
|
&output_makefile_line( "default: ") ;
|
||||||
foreach $shader ( @srcfiles )
|
foreach $shader ( @srcfiles )
|
||||||
{
|
{
|
||||||
my $shadertype = &GetShaderType( $shader );
|
my $shadertype = &GetShaderType( $shader );
|
||||||
my $shaderbase = &GetShaderBase( $shader );
|
my $shaderbase = &GetShaderBase( $shader );
|
||||||
my $shadersrc = &GetShaderSrc( $shader );
|
my $shadersrc = &GetShaderSrc( $shader );
|
||||||
if( $shadertype eq "fxc" || $shadertype eq "vsh" )
|
if( $shadertype eq "fxc" || $shadertype eq "vsh" )
|
||||||
{
|
{
|
||||||
# We only generate inc files for fxc and vsh files.
|
# We only generate inc files for fxc and vsh files.
|
||||||
my $incFileName = "$shadertype" . "tmp9" . $g_tmpfolder . "\\" . $shaderbase . "\.inc";
|
my $incFileName = "$shadertype" . "tmp9" . $g_tmpfolder . "\\" . $shaderbase . "\.inc";
|
||||||
&output_makefile_line( " $incFileName" );
|
&output_makefile_line( " $incFileName" );
|
||||||
&output_inclist_line( "$incFileName\n" );
|
&output_inclist_line( "$incFileName\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
my $vcsfile = $shaderbase . $g_vcsext;
|
my $vcsfile = $shaderbase . $g_vcsext;
|
||||||
|
|
||||||
my $compilevcs = 1;
|
my $compilevcs = 1;
|
||||||
if( $shadertype eq "fxc" && $dynamic_compile )
|
if( $shadertype eq "fxc" && $dynamic_compile )
|
||||||
{
|
{
|
||||||
$compilevcs = 0;
|
$compilevcs = 0;
|
||||||
}
|
}
|
||||||
if( $g_x360 && ( $shaderbase =~ m/_ps20$/i ) )
|
if( $g_x360 && ( $shaderbase =~ m/_ps20$/i ) )
|
||||||
{
|
{
|
||||||
$compilevcs = 0;
|
$compilevcs = 0;
|
||||||
}
|
}
|
||||||
if( $compilevcs )
|
if( $compilevcs )
|
||||||
{
|
{
|
||||||
my $vcsFileName = "..\\..\\..\\game\\hl2\\shaders\\$shadertype\\$shaderbase" . $g_vcsext;
|
my $vcsFileName = "..\\..\\..\\game\\hl2\\shaders\\$shadertype\\$shaderbase" . $g_vcsext;
|
||||||
# We want to check for perforce operations even if the crc matches in the event that a file has been manually reverted and needs to be checked out again.
|
# We want to check for perforce operations even if the crc matches in the event that a file has been manually reverted and needs to be checked out again.
|
||||||
&output_vcslist_line( "$vcsFileName\n" );
|
&output_vcslist_line( "$vcsFileName\n" );
|
||||||
$shadercrcpass{$shader} = &CheckCRCAgainstTarget( $shadersrc, $vcsFileName, 0 );
|
$shadercrcpass{$shader} = &CheckCRCAgainstTarget( $shadersrc, $vcsFileName, 0 );
|
||||||
if( $shadercrcpass{$shader} )
|
if( $shadercrcpass{$shader} )
|
||||||
{
|
{
|
||||||
$compilevcs = 0;
|
$compilevcs = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if( $compilevcs )
|
if( $compilevcs )
|
||||||
{
|
{
|
||||||
&output_makefile_line( " shaders\\$shadertype\\$vcsfile" );
|
&output_makefile_line( " shaders\\$shadertype\\$vcsfile" );
|
||||||
# emit a list of vcs files to copy to the target since we want to build them.
|
# emit a list of vcs files to copy to the target since we want to build them.
|
||||||
&output_copyfile_line( GetShaderSrc($shader) . "-----" . GetShaderBase($shader) . "\n" );
|
&output_copyfile_line( GetShaderSrc($shader) . "-----" . GetShaderBase($shader) . "\n" );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
&output_makefile_line( "\n\n") ;
|
&output_makefile_line( "\n\n") ;
|
||||||
|
|
||||||
# Insert all of our vertex shaders and depencencies
|
# Insert all of our vertex shaders and depencencies
|
||||||
$lastshader = "";
|
$lastshader = "";
|
||||||
foreach $shader ( @srcfiles )
|
foreach $shader ( @srcfiles )
|
||||||
{
|
{
|
||||||
my $currentshader = &GetShaderSrc( $shader );
|
my $currentshader = &GetShaderSrc( $shader );
|
||||||
if ( $lastshader ne $currentshader )
|
if ( $lastshader ne $currentshader )
|
||||||
{
|
{
|
||||||
$lastshader = $currentshader;
|
$lastshader = $currentshader;
|
||||||
@dep = &GetAsmShaderDependencies( $lastshader );
|
@dep = &GetAsmShaderDependencies( $lastshader );
|
||||||
}
|
}
|
||||||
&DoAsmShader( $shader );
|
&DoAsmShader( $shader );
|
||||||
}
|
}
|
||||||
close VCSLIST;
|
close VCSLIST;
|
||||||
close INCLIST;
|
close INCLIST;
|
||||||
close COPYFILE;
|
close COPYFILE;
|
||||||
close MAKEFILE;
|
close MAKEFILE;
|
||||||
|
|
||||||
# nuke the copyfile if it is zero length
|
# nuke the copyfile if it is zero length
|
||||||
if( ( stat "makefile\.$inputbase\.copy" )[7] == 0 )
|
if( ( stat "makefile\.$inputbase\.copy" )[7] == 0 )
|
||||||
{
|
{
|
||||||
unlink "makefile\.$inputbase\.copy";
|
unlink "makefile\.$inputbase\.copy";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub output_makefile_line
|
sub output_makefile_line
|
||||||
{
|
{
|
||||||
local ($_)=@_;
|
local ($_)=@_;
|
||||||
print MAKEFILE $_;
|
print MAKEFILE $_;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub output_copyfile_line
|
sub output_copyfile_line
|
||||||
{
|
{
|
||||||
local ($_)=@_;
|
local ($_)=@_;
|
||||||
print COPYFILE $_;
|
print COPYFILE $_;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub output_vcslist_line
|
sub output_vcslist_line
|
||||||
{
|
{
|
||||||
local ($_)=@_;
|
local ($_)=@_;
|
||||||
print VCSLIST $_;
|
print VCSLIST $_;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub output_inclist_line
|
sub output_inclist_line
|
||||||
{
|
{
|
||||||
local ($_)=@_;
|
local ($_)=@_;
|
||||||
print INCLIST $_;
|
print INCLIST $_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
|||||||
#include "base.xcconfig"
|
#include "base.xcconfig"
|
||||||
GCC_OPTIMIZATION_LEVEL = 0
|
GCC_OPTIMIZATION_LEVEL = 0
|
||||||
OTHER_CFLAGS = $(derived) $(BASE_CFLAGS)
|
OTHER_CFLAGS = $(derived) $(BASE_CFLAGS)
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include "base.xcconfig"
|
#include "base.xcconfig"
|
||||||
|
|
||||||
GCC_OPTIMIZATION_LEVEL = 2
|
GCC_OPTIMIZATION_LEVEL = 2
|
||||||
OTHER_CFLAGS = $(derived) $(BASE_CFLAGS) -ftree-vectorize -fpredictive-commoning -funswitch-loops
|
OTHER_CFLAGS = $(derived) $(BASE_CFLAGS) -ftree-vectorize -fpredictive-commoning -funswitch-loops
|
||||||
|
@ -1,40 +1,40 @@
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// FGDLIB.VPC
|
// FGDLIB.VPC
|
||||||
//
|
//
|
||||||
// Project Script
|
// Project Script
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
$Macro SRCDIR ".."
|
$Macro SRCDIR ".."
|
||||||
$Include "$SRCDIR\vpc_scripts\source_lib_base.vpc"
|
$Include "$SRCDIR\vpc_scripts\source_lib_base.vpc"
|
||||||
|
|
||||||
$Configuration
|
$Configuration
|
||||||
{
|
{
|
||||||
$Compiler
|
$Compiler
|
||||||
{
|
{
|
||||||
$AdditionalIncludeDirectories "$BASE,$SRCDIR\utils\common"
|
$AdditionalIncludeDirectories "$BASE,$SRCDIR\utils\common"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$Project "Fgdlib"
|
$Project "Fgdlib"
|
||||||
{
|
{
|
||||||
$Folder "Source Files"
|
$Folder "Source Files"
|
||||||
{
|
{
|
||||||
$File "gamedata.cpp"
|
$File "gamedata.cpp"
|
||||||
$File "gdclass.cpp"
|
$File "gdclass.cpp"
|
||||||
$File "gdvar.cpp"
|
$File "gdvar.cpp"
|
||||||
$File "inputoutput.cpp"
|
$File "inputoutput.cpp"
|
||||||
$File "wckeyvalues.cpp"
|
$File "wckeyvalues.cpp"
|
||||||
}
|
}
|
||||||
|
|
||||||
$Folder "Header Files"
|
$Folder "Header Files"
|
||||||
{
|
{
|
||||||
$File "$SRCDIR\public\fgdlib\fgdlib.h"
|
$File "$SRCDIR\public\fgdlib\fgdlib.h"
|
||||||
$File "$SRCDIR\public\fgdlib\gamedata.h"
|
$File "$SRCDIR\public\fgdlib\gamedata.h"
|
||||||
$File "$SRCDIR\public\fgdlib\gdclass.h"
|
$File "$SRCDIR\public\fgdlib\gdclass.h"
|
||||||
$File "$SRCDIR\public\fgdlib\gdvar.h"
|
$File "$SRCDIR\public\fgdlib\gdvar.h"
|
||||||
$File "$SRCDIR\public\fgdlib\helperinfo.h"
|
$File "$SRCDIR\public\fgdlib\helperinfo.h"
|
||||||
$File "$SRCDIR\public\fgdlib\ieditortexture.h"
|
$File "$SRCDIR\public\fgdlib\ieditortexture.h"
|
||||||
$File "$SRCDIR\public\fgdlib\inputoutput.h"
|
$File "$SRCDIR\public\fgdlib\inputoutput.h"
|
||||||
$File "$SRCDIR\public\fgdlib\wckeyvalues.h"
|
$File "$SRCDIR\public\fgdlib\wckeyvalues.h"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,171 +1,171 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
|
||||||
#include <tier0/dbg.h>
|
#include <tier0/dbg.h>
|
||||||
#include "fgdlib/InputOutput.h"
|
#include "fgdlib/InputOutput.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include <tier0/memdbgon.h>
|
#include <tier0/memdbgon.h>
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
InputOutputType_t eType; // The enumeration of this type.
|
InputOutputType_t eType; // The enumeration of this type.
|
||||||
char *pszName; // The name of this type.
|
char *pszName; // The name of this type.
|
||||||
} TypeMap_t;
|
} TypeMap_t;
|
||||||
|
|
||||||
|
|
||||||
char *CClassInputOutputBase::g_pszEmpty = "";
|
char *CClassInputOutputBase::g_pszEmpty = "";
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Maps type names to type enums for inputs and outputs.
|
// Maps type names to type enums for inputs and outputs.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
static TypeMap_t TypeMap[] =
|
static TypeMap_t TypeMap[] =
|
||||||
{
|
{
|
||||||
{ iotVoid, "void" },
|
{ iotVoid, "void" },
|
||||||
{ iotInt, "integer" },
|
{ iotInt, "integer" },
|
||||||
{ iotBool, "bool" },
|
{ iotBool, "bool" },
|
||||||
{ iotString, "string" },
|
{ iotString, "string" },
|
||||||
{ iotFloat, "float" },
|
{ iotFloat, "float" },
|
||||||
{ iotVector, "vector" },
|
{ iotVector, "vector" },
|
||||||
{ iotEHandle, "target_destination" },
|
{ iotEHandle, "target_destination" },
|
||||||
{ iotColor, "color255" },
|
{ iotColor, "color255" },
|
||||||
{ iotEHandle, "ehandle" }, // for backwards compatibility
|
{ iotEHandle, "ehandle" }, // for backwards compatibility
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassInputOutputBase::CClassInputOutputBase(void)
|
CClassInputOutputBase::CClassInputOutputBase(void)
|
||||||
{
|
{
|
||||||
m_eType = iotInvalid;
|
m_eType = iotInvalid;
|
||||||
m_pszDescription = NULL;
|
m_pszDescription = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Input : pszName -
|
// Input : pszName -
|
||||||
// eType -
|
// eType -
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassInputOutputBase::CClassInputOutputBase(const char *pszName, InputOutputType_t eType)
|
CClassInputOutputBase::CClassInputOutputBase(const char *pszName, InputOutputType_t eType)
|
||||||
{
|
{
|
||||||
m_pszDescription = NULL;
|
m_pszDescription = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Destructor.
|
// Purpose: Destructor.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassInputOutputBase::~CClassInputOutputBase(void)
|
CClassInputOutputBase::~CClassInputOutputBase(void)
|
||||||
{
|
{
|
||||||
delete m_pszDescription;
|
delete m_pszDescription;
|
||||||
m_pszDescription = NULL;
|
m_pszDescription = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Returns a string representing the type of this I/O, eg. "integer".
|
// Purpose: Returns a string representing the type of this I/O, eg. "integer".
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
const char *CClassInputOutputBase::GetTypeText(void)
|
const char *CClassInputOutputBase::GetTypeText(void)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < sizeof(TypeMap) / sizeof(TypeMap[0]); i++)
|
for (int i = 0; i < sizeof(TypeMap) / sizeof(TypeMap[0]); i++)
|
||||||
{
|
{
|
||||||
if (TypeMap[i].eType == m_eType)
|
if (TypeMap[i].eType == m_eType)
|
||||||
{
|
{
|
||||||
return(TypeMap[i].pszName);
|
return(TypeMap[i].pszName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return("unknown");
|
return("unknown");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Input : szType -
|
// Input : szType -
|
||||||
// Output : InputOutputType_t
|
// Output : InputOutputType_t
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
InputOutputType_t CClassInputOutputBase::SetType(const char *szType)
|
InputOutputType_t CClassInputOutputBase::SetType(const char *szType)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < sizeof(TypeMap) / sizeof(TypeMap[0]); i++)
|
for (int i = 0; i < sizeof(TypeMap) / sizeof(TypeMap[0]); i++)
|
||||||
{
|
{
|
||||||
if (!stricmp(TypeMap[i].pszName, szType))
|
if (!stricmp(TypeMap[i].pszName, szType))
|
||||||
{
|
{
|
||||||
m_eType = TypeMap[i].eType;
|
m_eType = TypeMap[i].eType;
|
||||||
return(m_eType);
|
return(m_eType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return(iotInvalid);
|
return(iotInvalid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Assignment operator.
|
// Purpose: Assignment operator.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassInputOutputBase &CClassInputOutputBase::operator =(CClassInputOutputBase &Other)
|
CClassInputOutputBase &CClassInputOutputBase::operator =(CClassInputOutputBase &Other)
|
||||||
{
|
{
|
||||||
strcpy(m_szName, Other.m_szName);
|
strcpy(m_szName, Other.m_szName);
|
||||||
m_eType = Other.m_eType;
|
m_eType = Other.m_eType;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Copy the description.
|
// Copy the description.
|
||||||
//
|
//
|
||||||
delete m_pszDescription;
|
delete m_pszDescription;
|
||||||
if (Other.m_pszDescription != NULL)
|
if (Other.m_pszDescription != NULL)
|
||||||
{
|
{
|
||||||
m_pszDescription = new char[strlen(Other.m_pszDescription) + 1];
|
m_pszDescription = new char[strlen(Other.m_pszDescription) + 1];
|
||||||
strcpy(m_pszDescription, Other.m_pszDescription);
|
strcpy(m_pszDescription, Other.m_pszDescription);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_pszDescription = NULL;
|
m_pszDescription = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
return(*this);
|
return(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassInput::CClassInput(void)
|
CClassInput::CClassInput(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Input : pszName -
|
// Input : pszName -
|
||||||
// eType -
|
// eType -
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassInput::CClassInput(const char *pszName, InputOutputType_t eType)
|
CClassInput::CClassInput(const char *pszName, InputOutputType_t eType)
|
||||||
: CClassInputOutputBase(pszName, eType)
|
: CClassInputOutputBase(pszName, eType)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassOutput::CClassOutput(void)
|
CClassOutput::CClassOutput(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Input : pszName -
|
// Input : pszName -
|
||||||
// eType -
|
// eType -
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CClassOutput::CClassOutput(const char *pszName, InputOutputType_t eType)
|
CClassOutput::CClassOutput(const char *pszName, InputOutputType_t eType)
|
||||||
: CClassInputOutputBase(pszName, eType)
|
: CClassInputOutputBase(pszName, eType)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -1,282 +1,282 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
#include "fgdlib/WCKeyValues.h"
|
#include "fgdlib/WCKeyValues.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include <tier0/memdbgon.h>
|
#include <tier0/memdbgon.h>
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Destructor.
|
// Purpose: Destructor.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
MDkeyvalue::~MDkeyvalue(void)
|
MDkeyvalue::~MDkeyvalue(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Assignment operator.
|
// Purpose: Assignment operator.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
MDkeyvalue &MDkeyvalue::operator =(const MDkeyvalue &other)
|
MDkeyvalue &MDkeyvalue::operator =(const MDkeyvalue &other)
|
||||||
{
|
{
|
||||||
V_strcpy_safe(szKey, other.szKey);
|
V_strcpy_safe(szKey, other.szKey);
|
||||||
V_strcpy_safe(szValue, other.szValue);
|
V_strcpy_safe(szValue, other.szValue);
|
||||||
|
|
||||||
return(*this);
|
return(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void WCKVBase_Vector::RemoveKeyAt(int nIndex)
|
void WCKVBase_Vector::RemoveKeyAt(int nIndex)
|
||||||
{
|
{
|
||||||
Assert(nIndex >= 0);
|
Assert(nIndex >= 0);
|
||||||
Assert(nIndex < (int)m_KeyValues.Count());
|
Assert(nIndex < (int)m_KeyValues.Count());
|
||||||
|
|
||||||
if ((nIndex >= 0) && (nIndex < (int)m_KeyValues.Count()))
|
if ((nIndex >= 0) && (nIndex < (int)m_KeyValues.Count()))
|
||||||
{
|
{
|
||||||
m_KeyValues.Remove(nIndex);
|
m_KeyValues.Remove(nIndex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Adds the key to the keyvalue array. Allows duplicate keys.
|
// Purpose: Adds the key to the keyvalue array. Allows duplicate keys.
|
||||||
//
|
//
|
||||||
// NOTE: This should only be used for keyvalue lists that do not require
|
// NOTE: This should only be used for keyvalue lists that do not require
|
||||||
// unique key names! If you use this function then you should use GetCount
|
// unique key names! If you use this function then you should use GetCount
|
||||||
// and GetKey/Value by index rather than GetValue by key name.
|
// and GetKey/Value by index rather than GetValue by key name.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void WCKVBase_Vector::AddKeyValue(const char *pszKey, const char *pszValue)
|
void WCKVBase_Vector::AddKeyValue(const char *pszKey, const char *pszValue)
|
||||||
{
|
{
|
||||||
if (!pszKey || !pszValue)
|
if (!pszKey || !pszValue)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
char szTmpKey[KEYVALUE_MAX_KEY_LENGTH];
|
char szTmpKey[KEYVALUE_MAX_KEY_LENGTH];
|
||||||
char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH];
|
char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH];
|
||||||
|
|
||||||
V_strcpy_safe(szTmpKey, pszKey);
|
V_strcpy_safe(szTmpKey, pszKey);
|
||||||
V_strcpy_safe(szTmpValue, pszValue);
|
V_strcpy_safe(szTmpValue, pszValue);
|
||||||
|
|
||||||
StripEdgeWhiteSpace(szTmpKey);
|
StripEdgeWhiteSpace(szTmpKey);
|
||||||
StripEdgeWhiteSpace(szTmpValue);
|
StripEdgeWhiteSpace(szTmpValue);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Add the keyvalue to our list.
|
// Add the keyvalue to our list.
|
||||||
//
|
//
|
||||||
MDkeyvalue newkv;
|
MDkeyvalue newkv;
|
||||||
V_strcpy_safe(newkv.szKey, szTmpKey);
|
V_strcpy_safe(newkv.szKey, szTmpKey);
|
||||||
V_strcpy_safe(newkv.szValue, szTmpValue);
|
V_strcpy_safe(newkv.szValue, szTmpValue);
|
||||||
m_KeyValues.AddToTail(newkv);
|
m_KeyValues.AddToTail(newkv);
|
||||||
}
|
}
|
||||||
|
|
||||||
int WCKVBase_Vector::FindByKeyName( const char *pKeyName ) const
|
int WCKVBase_Vector::FindByKeyName( const char *pKeyName ) const
|
||||||
{
|
{
|
||||||
for ( int i=0; i < m_KeyValues.Count(); i++ )
|
for ( int i=0; i < m_KeyValues.Count(); i++ )
|
||||||
{
|
{
|
||||||
if ( V_stricmp( m_KeyValues[i].szKey, pKeyName ) == 0 )
|
if ( V_stricmp( m_KeyValues[i].szKey, pKeyName ) == 0 )
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
return GetInvalidIndex();
|
return GetInvalidIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WCKVBase_Vector::InsertKeyValue( const MDkeyvalue &kv )
|
void WCKVBase_Vector::InsertKeyValue( const MDkeyvalue &kv )
|
||||||
{
|
{
|
||||||
m_KeyValues.AddToTail( kv );
|
m_KeyValues.AddToTail( kv );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void WCKVBase_Dict::RemoveKeyAt(int nIndex)
|
void WCKVBase_Dict::RemoveKeyAt(int nIndex)
|
||||||
{
|
{
|
||||||
m_KeyValues.RemoveAt(nIndex);
|
m_KeyValues.RemoveAt(nIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int WCKVBase_Dict::FindByKeyName( const char *pKeyName ) const
|
int WCKVBase_Dict::FindByKeyName( const char *pKeyName ) const
|
||||||
{
|
{
|
||||||
return m_KeyValues.Find( pKeyName );
|
return m_KeyValues.Find( pKeyName );
|
||||||
}
|
}
|
||||||
|
|
||||||
void WCKVBase_Dict::InsertKeyValue( const MDkeyvalue &kv )
|
void WCKVBase_Dict::InsertKeyValue( const MDkeyvalue &kv )
|
||||||
{
|
{
|
||||||
m_KeyValues.Insert( kv.szKey, kv );
|
m_KeyValues.Insert( kv.szKey, kv );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Constructor. Sets the initial size of the keyvalue array.
|
// Purpose: Constructor. Sets the initial size of the keyvalue array.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
WCKeyValuesT<Base>::WCKeyValuesT(void)
|
WCKeyValuesT<Base>::WCKeyValuesT(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Destructor. Deletes the contents of this keyvalue array.
|
// Purpose: Destructor. Deletes the contents of this keyvalue array.
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
WCKeyValuesT<Base>::~WCKeyValuesT(void)
|
WCKeyValuesT<Base>::~WCKeyValuesT(void)
|
||||||
{
|
{
|
||||||
//int i = 0;
|
//int i = 0;
|
||||||
//while (i < m_KeyValues.GetSize())
|
//while (i < m_KeyValues.GetSize())
|
||||||
//{
|
//{
|
||||||
// delete m_KeyValues.GetAt(i++);
|
// delete m_KeyValues.GetAt(i++);
|
||||||
//}
|
//}
|
||||||
|
|
||||||
RemoveAll();
|
RemoveAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
const char *WCKeyValuesT<Base>::GetValue(const char *pszKey, int *piIndex) const
|
const char *WCKeyValuesT<Base>::GetValue(const char *pszKey, int *piIndex) const
|
||||||
{
|
{
|
||||||
int i = FindByKeyName( pszKey );
|
int i = FindByKeyName( pszKey );
|
||||||
if ( i == GetInvalidIndex() )
|
if ( i == GetInvalidIndex() )
|
||||||
{
|
{
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(piIndex)
|
if(piIndex)
|
||||||
piIndex[0] = i;
|
piIndex[0] = i;
|
||||||
|
|
||||||
return m_KeyValues[i].szValue;
|
return m_KeyValues[i].szValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
void WCKeyValuesT<Base>::RemoveKey(const char *pszKey)
|
void WCKeyValuesT<Base>::RemoveKey(const char *pszKey)
|
||||||
{
|
{
|
||||||
SetValue(pszKey, (const char *)NULL);
|
SetValue(pszKey, (const char *)NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
void WCKeyValuesT<Base>::SetValue(const char *pszKey, int iValue)
|
void WCKeyValuesT<Base>::SetValue(const char *pszKey, int iValue)
|
||||||
{
|
{
|
||||||
char szValue[100];
|
char szValue[100];
|
||||||
itoa(iValue, szValue, 10);
|
itoa(iValue, szValue, 10);
|
||||||
|
|
||||||
SetValue(pszKey, szValue);
|
SetValue(pszKey, szValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Strips leading and trailing whitespace from the string.
|
// Purpose: Strips leading and trailing whitespace from the string.
|
||||||
// Input : psz -
|
// Input : psz -
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void StripEdgeWhiteSpace(char *psz)
|
void StripEdgeWhiteSpace(char *psz)
|
||||||
{
|
{
|
||||||
if (!psz || !*psz)
|
if (!psz || !*psz)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
char *pszBase = psz;
|
char *pszBase = psz;
|
||||||
|
|
||||||
while (V_isspace(*psz))
|
while (V_isspace(*psz))
|
||||||
{
|
{
|
||||||
psz++;
|
psz++;
|
||||||
}
|
}
|
||||||
|
|
||||||
int iLen = strlen(psz) - 1;
|
int iLen = strlen(psz) - 1;
|
||||||
|
|
||||||
if ( iLen >= 0 )
|
if ( iLen >= 0 )
|
||||||
{
|
{
|
||||||
while (V_isspace(psz[iLen]))
|
while (V_isspace(psz[iLen]))
|
||||||
{
|
{
|
||||||
psz[iLen--] = 0;
|
psz[iLen--] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (psz != pszBase)
|
if (psz != pszBase)
|
||||||
{
|
{
|
||||||
memmove(pszBase, psz, iLen + 2);
|
memmove(pszBase, psz, iLen + 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
// Input : pszKey -
|
// Input : pszKey -
|
||||||
// pszValue -
|
// pszValue -
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
void WCKeyValuesT<Base>::SetValue(const char *pszKey, const char *pszValue)
|
void WCKeyValuesT<Base>::SetValue(const char *pszKey, const char *pszValue)
|
||||||
{
|
{
|
||||||
char szTmpKey[KEYVALUE_MAX_KEY_LENGTH];
|
char szTmpKey[KEYVALUE_MAX_KEY_LENGTH];
|
||||||
char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH];
|
char szTmpValue[KEYVALUE_MAX_VALUE_LENGTH];
|
||||||
|
|
||||||
V_strcpy_safe(szTmpKey, pszKey);
|
V_strcpy_safe(szTmpKey, pszKey);
|
||||||
|
|
||||||
if (pszValue != NULL)
|
if (pszValue != NULL)
|
||||||
{
|
{
|
||||||
V_strcpy_safe(szTmpValue, pszValue);
|
V_strcpy_safe(szTmpValue, pszValue);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
szTmpValue[0] = 0;
|
szTmpValue[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StripEdgeWhiteSpace(szTmpKey);
|
StripEdgeWhiteSpace(szTmpKey);
|
||||||
StripEdgeWhiteSpace(szTmpValue);
|
StripEdgeWhiteSpace(szTmpValue);
|
||||||
|
|
||||||
int i = FindByKeyName( szTmpKey );
|
int i = FindByKeyName( szTmpKey );
|
||||||
if ( i == GetInvalidIndex() )
|
if ( i == GetInvalidIndex() )
|
||||||
{
|
{
|
||||||
if ( pszValue )
|
if ( pszValue )
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Add the keyvalue to our list.
|
// Add the keyvalue to our list.
|
||||||
//
|
//
|
||||||
MDkeyvalue newkv;
|
MDkeyvalue newkv;
|
||||||
Q_strncpy( newkv.szKey, szTmpKey, sizeof( newkv.szKey ) );
|
Q_strncpy( newkv.szKey, szTmpKey, sizeof( newkv.szKey ) );
|
||||||
Q_strncpy( newkv.szValue, szTmpValue, sizeof( newkv.szValue ) );
|
Q_strncpy( newkv.szValue, szTmpValue, sizeof( newkv.szValue ) );
|
||||||
InsertKeyValue( newkv );
|
InsertKeyValue( newkv );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (pszValue != NULL)
|
if (pszValue != NULL)
|
||||||
{
|
{
|
||||||
V_strncpy(m_KeyValues[i].szValue, szTmpValue, sizeof(m_KeyValues[i].szValue));
|
V_strncpy(m_KeyValues[i].szValue, szTmpValue, sizeof(m_KeyValues[i].szValue));
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// If we are setting to a NULL value, delete the key.
|
// If we are setting to a NULL value, delete the key.
|
||||||
//
|
//
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
RemoveKeyAt( i );
|
RemoveKeyAt( i );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
template<class Base>
|
template<class Base>
|
||||||
void WCKeyValuesT<Base>::RemoveAll(void)
|
void WCKeyValuesT<Base>::RemoveAll(void)
|
||||||
{
|
{
|
||||||
m_KeyValues.RemoveAll();
|
m_KeyValues.RemoveAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Explicit instantiations.
|
// Explicit instantiations.
|
||||||
template class WCKeyValuesT<WCKVBase_Dict>;
|
template class WCKeyValuesT<WCKVBase_Dict>;
|
||||||
template class WCKeyValuesT<WCKVBase_Vector>;
|
template class WCKeyValuesT<WCKVBase_Vector>;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,53 +1,53 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: Acts exactly like "AnimatedTexture", but ONLY if the texture
|
// Purpose: Acts exactly like "AnimatedTexture", but ONLY if the texture
|
||||||
// it's working on matches the desired texture to work on.
|
// it's working on matches the desired texture to work on.
|
||||||
//
|
//
|
||||||
// This assumes that some other proxy will be switching out the textures.
|
// This assumes that some other proxy will be switching out the textures.
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "materialsystem/imaterialproxy.h"
|
#include "materialsystem/imaterialproxy.h"
|
||||||
#include "materialsystem/imaterialvar.h"
|
#include "materialsystem/imaterialvar.h"
|
||||||
#include "materialsystem/imaterial.h"
|
#include "materialsystem/imaterial.h"
|
||||||
#include "materialsystem/itexture.h"
|
#include "materialsystem/itexture.h"
|
||||||
#include "baseanimatedtextureproxy.h"
|
#include "baseanimatedtextureproxy.h"
|
||||||
#include "utlstring.h"
|
#include "utlstring.h"
|
||||||
#include <KeyValues.h>
|
#include <KeyValues.h>
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
class CAnimateSpecificTexture : public CBaseAnimatedTextureProxy
|
class CAnimateSpecificTexture : public CBaseAnimatedTextureProxy
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
CUtlString m_OnlyAnimateOnTexture;
|
CUtlString m_OnlyAnimateOnTexture;
|
||||||
public:
|
public:
|
||||||
virtual float GetAnimationStartTime( void* pBaseEntity ) { return 0; }
|
virtual float GetAnimationStartTime( void* pBaseEntity ) { return 0; }
|
||||||
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
||||||
virtual void OnBind( void *pC_BaseEntity );
|
virtual void OnBind( void *pC_BaseEntity );
|
||||||
virtual void Release( void ) { delete this; }
|
virtual void Release( void ) { delete this; }
|
||||||
};
|
};
|
||||||
|
|
||||||
bool CAnimateSpecificTexture::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
bool CAnimateSpecificTexture::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
||||||
{
|
{
|
||||||
char const* pszAnimateOnTexture = pKeyValues->GetString( "onlyAnimateOnTexture" );
|
char const* pszAnimateOnTexture = pKeyValues->GetString( "onlyAnimateOnTexture" );
|
||||||
if( !pszAnimateOnTexture )
|
if( !pszAnimateOnTexture )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_OnlyAnimateOnTexture.Set( pszAnimateOnTexture );
|
m_OnlyAnimateOnTexture.Set( pszAnimateOnTexture );
|
||||||
|
|
||||||
return CBaseAnimatedTextureProxy::Init( pMaterial, pKeyValues );
|
return CBaseAnimatedTextureProxy::Init( pMaterial, pKeyValues );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CAnimateSpecificTexture::OnBind( void *pC_BaseEntity )
|
void CAnimateSpecificTexture::OnBind( void *pC_BaseEntity )
|
||||||
{
|
{
|
||||||
if( FStrEq( m_AnimatedTextureVar->GetTextureValue()->GetName(), m_OnlyAnimateOnTexture ) )
|
if( FStrEq( m_AnimatedTextureVar->GetTextureValue()->GetName(), m_OnlyAnimateOnTexture ) )
|
||||||
{
|
{
|
||||||
CBaseAnimatedTextureProxy::OnBind( pC_BaseEntity );
|
CBaseAnimatedTextureProxy::OnBind( pC_BaseEntity );
|
||||||
}
|
}
|
||||||
//else do nothing
|
//else do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPOSE_INTERFACE( CAnimateSpecificTexture, IMaterialProxy, "AnimateSpecificTexture" IMATERIAL_PROXY_INTERFACE_VERSION );
|
EXPOSE_INTERFACE( CAnimateSpecificTexture, IMaterialProxy, "AnimateSpecificTexture" IMATERIAL_PROXY_INTERFACE_VERSION );
|
@ -1,65 +1,65 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef C_ENVPROJECTEDTEXTURE_H
|
#ifndef C_ENVPROJECTEDTEXTURE_H
|
||||||
#define C_ENVPROJECTEDTEXTURE_H
|
#define C_ENVPROJECTEDTEXTURE_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "c_baseentity.h"
|
#include "c_baseentity.h"
|
||||||
#include "basetypes.h"
|
#include "basetypes.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class C_EnvProjectedTexture : public C_BaseEntity
|
class C_EnvProjectedTexture : public C_BaseEntity
|
||||||
{
|
{
|
||||||
DECLARE_CLASS( C_EnvProjectedTexture, C_BaseEntity );
|
DECLARE_CLASS( C_EnvProjectedTexture, C_BaseEntity );
|
||||||
public:
|
public:
|
||||||
DECLARE_CLIENTCLASS();
|
DECLARE_CLIENTCLASS();
|
||||||
|
|
||||||
C_EnvProjectedTexture();
|
C_EnvProjectedTexture();
|
||||||
~C_EnvProjectedTexture();
|
~C_EnvProjectedTexture();
|
||||||
|
|
||||||
virtual void OnDataChanged( DataUpdateType_t updateType );
|
virtual void OnDataChanged( DataUpdateType_t updateType );
|
||||||
void ShutDownLightHandle( void );
|
void ShutDownLightHandle( void );
|
||||||
|
|
||||||
virtual void Simulate();
|
virtual void Simulate();
|
||||||
|
|
||||||
void UpdateLight( bool bForceUpdate );
|
void UpdateLight( bool bForceUpdate );
|
||||||
|
|
||||||
bool ShadowsEnabled();
|
bool ShadowsEnabled();
|
||||||
|
|
||||||
float GetFOV();
|
float GetFOV();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
ClientShadowHandle_t m_LightHandle;
|
ClientShadowHandle_t m_LightHandle;
|
||||||
|
|
||||||
EHANDLE m_hTargetEntity;
|
EHANDLE m_hTargetEntity;
|
||||||
|
|
||||||
bool m_bState;
|
bool m_bState;
|
||||||
float m_flLightFOV;
|
float m_flLightFOV;
|
||||||
bool m_bEnableShadows;
|
bool m_bEnableShadows;
|
||||||
bool m_bLightOnlyTarget;
|
bool m_bLightOnlyTarget;
|
||||||
bool m_bLightWorld;
|
bool m_bLightWorld;
|
||||||
bool m_bCameraSpace;
|
bool m_bCameraSpace;
|
||||||
color32 m_cLightColor;
|
color32 m_cLightColor;
|
||||||
float m_flAmbient;
|
float m_flAmbient;
|
||||||
char m_SpotlightTextureName[ MAX_PATH ];
|
char m_SpotlightTextureName[ MAX_PATH ];
|
||||||
int m_nSpotlightTextureFrame;
|
int m_nSpotlightTextureFrame;
|
||||||
int m_nShadowQuality;
|
int m_nShadowQuality;
|
||||||
bool m_bCurrentShadow;
|
bool m_bCurrentShadow;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
C_EnvProjectedTexture *m_pNext;
|
C_EnvProjectedTexture *m_pNext;
|
||||||
};
|
};
|
||||||
|
|
||||||
C_EnvProjectedTexture* GetEnvProjectedTextureList();
|
C_EnvProjectedTexture* GetEnvProjectedTextureList();
|
||||||
|
|
||||||
#endif // C_ENVPROJECTEDTEXTURE_H
|
#endif // C_ENVPROJECTEDTEXTURE_H
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,60 +1,60 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: Water LOD control entity.
|
// Purpose: Water LOD control entity.
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "iviewrender.h"
|
#include "iviewrender.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// FIXME: This really should inherit from something more lightweight
|
// FIXME: This really should inherit from something more lightweight
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Purpose : Water LOD control entity
|
// Purpose : Water LOD control entity
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
class C_WaterLODControl : public C_BaseEntity
|
class C_WaterLODControl : public C_BaseEntity
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
DECLARE_CLASS( C_WaterLODControl, C_BaseEntity );
|
DECLARE_CLASS( C_WaterLODControl, C_BaseEntity );
|
||||||
|
|
||||||
DECLARE_CLIENTCLASS();
|
DECLARE_CLIENTCLASS();
|
||||||
|
|
||||||
void OnDataChanged(DataUpdateType_t updateType);
|
void OnDataChanged(DataUpdateType_t updateType);
|
||||||
bool ShouldDraw();
|
bool ShouldDraw();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
float m_flCheapWaterStartDistance;
|
float m_flCheapWaterStartDistance;
|
||||||
float m_flCheapWaterEndDistance;
|
float m_flCheapWaterEndDistance;
|
||||||
};
|
};
|
||||||
|
|
||||||
IMPLEMENT_CLIENTCLASS_DT(C_WaterLODControl, DT_WaterLODControl, CWaterLODControl)
|
IMPLEMENT_CLIENTCLASS_DT(C_WaterLODControl, DT_WaterLODControl, CWaterLODControl)
|
||||||
RecvPropFloat(RECVINFO(m_flCheapWaterStartDistance)),
|
RecvPropFloat(RECVINFO(m_flCheapWaterStartDistance)),
|
||||||
RecvPropFloat(RECVINFO(m_flCheapWaterEndDistance)),
|
RecvPropFloat(RECVINFO(m_flCheapWaterEndDistance)),
|
||||||
END_RECV_TABLE()
|
END_RECV_TABLE()
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Purpose :
|
// Purpose :
|
||||||
// Input :
|
// Input :
|
||||||
// Output :
|
// Output :
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void C_WaterLODControl::OnDataChanged(DataUpdateType_t updateType)
|
void C_WaterLODControl::OnDataChanged(DataUpdateType_t updateType)
|
||||||
{
|
{
|
||||||
view->SetCheapWaterStartDistance( m_flCheapWaterStartDistance );
|
view->SetCheapWaterStartDistance( m_flCheapWaterStartDistance );
|
||||||
view->SetCheapWaterEndDistance( m_flCheapWaterEndDistance );
|
view->SetCheapWaterEndDistance( m_flCheapWaterEndDistance );
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// We don't draw...
|
// We don't draw...
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool C_WaterLODControl::ShouldDraw()
|
bool C_WaterLODControl::ShouldDraw()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,231 +1,231 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: Utility code.
|
// Purpose: Utility code.
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "IEffects.h"
|
#include "IEffects.h"
|
||||||
#include "fx.h"
|
#include "fx.h"
|
||||||
#include "c_te_legacytempents.h"
|
#include "c_te_legacytempents.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Client-server neutral effects interface
|
// Client-server neutral effects interface
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class CEffectsClient : public IEffects
|
class CEffectsClient : public IEffects
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CEffectsClient();
|
CEffectsClient();
|
||||||
virtual ~CEffectsClient();
|
virtual ~CEffectsClient();
|
||||||
|
|
||||||
// Members of the IEffect interface
|
// Members of the IEffect interface
|
||||||
virtual void Beam( const Vector &Start, const Vector &End, int nModelIndex,
|
virtual void Beam( const Vector &Start, const Vector &End, int nModelIndex,
|
||||||
int nHaloIndex, unsigned char frameStart, unsigned char frameRate,
|
int nHaloIndex, unsigned char frameStart, unsigned char frameRate,
|
||||||
float flLife, unsigned char width, unsigned char endWidth, unsigned char fadeLength,
|
float flLife, unsigned char width, unsigned char endWidth, unsigned char fadeLength,
|
||||||
unsigned char noise, unsigned char red, unsigned char green,
|
unsigned char noise, unsigned char red, unsigned char green,
|
||||||
unsigned char blue, unsigned char brightness, unsigned char speed);
|
unsigned char blue, unsigned char brightness, unsigned char speed);
|
||||||
virtual void Smoke( const Vector &origin, int modelIndex, float scale, float framerate );
|
virtual void Smoke( const Vector &origin, int modelIndex, float scale, float framerate );
|
||||||
virtual void Sparks( const Vector &position, int nMagnitude = 1, int nTrailLength = 1, const Vector *pvecDir = NULL );
|
virtual void Sparks( const Vector &position, int nMagnitude = 1, int nTrailLength = 1, const Vector *pvecDir = NULL );
|
||||||
virtual void Dust( const Vector &pos, const Vector &dir, float size, float speed );
|
virtual void Dust( const Vector &pos, const Vector &dir, float size, float speed );
|
||||||
virtual void MuzzleFlash( const Vector &origin, const QAngle &angles, float fScale, int type );
|
virtual void MuzzleFlash( const Vector &origin, const QAngle &angles, float fScale, int type );
|
||||||
virtual void MetalSparks( const Vector &position, const Vector &direction );
|
virtual void MetalSparks( const Vector &position, const Vector &direction );
|
||||||
virtual void EnergySplash( const Vector &position, const Vector &direction, bool bExplosive = false );
|
virtual void EnergySplash( const Vector &position, const Vector &direction, bool bExplosive = false );
|
||||||
virtual void Ricochet( const Vector &position, const Vector &direction );
|
virtual void Ricochet( const Vector &position, const Vector &direction );
|
||||||
|
|
||||||
// FIXME: Should these methods remain in this interface? Or go in some
|
// FIXME: Should these methods remain in this interface? Or go in some
|
||||||
// other client-server neutral interface?
|
// other client-server neutral interface?
|
||||||
virtual float Time();
|
virtual float Time();
|
||||||
virtual bool IsServer();
|
virtual bool IsServer();
|
||||||
virtual void SuppressEffectsSounds( bool bSuppress );
|
virtual void SuppressEffectsSounds( bool bSuppress );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Returning true means don't even call TE func
|
// Purpose: Returning true means don't even call TE func
|
||||||
// Input : filter -
|
// Input : filter -
|
||||||
// *suppress_host -
|
// *suppress_host -
|
||||||
// Output : static bool
|
// Output : static bool
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool SuppressTE( C_RecipientFilter& filter )
|
bool SuppressTE( C_RecipientFilter& filter )
|
||||||
{
|
{
|
||||||
if ( !CanPredict() )
|
if ( !CanPredict() )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if ( !filter.GetRecipientCount() )
|
if ( !filter.GetRecipientCount() )
|
||||||
{
|
{
|
||||||
// Suppress it
|
// Suppress it
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// There's at least one recipient
|
// There's at least one recipient
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool m_bSuppressSound;
|
bool m_bSuppressSound;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Client-server neutral effects interface accessor
|
// Client-server neutral effects interface accessor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
static CEffectsClient s_EffectClient;
|
static CEffectsClient s_EffectClient;
|
||||||
EXPOSE_SINGLE_INTERFACE_GLOBALVAR(CEffectsClient, IEffects, IEFFECTS_INTERFACE_VERSION, s_EffectClient);
|
EXPOSE_SINGLE_INTERFACE_GLOBALVAR(CEffectsClient, IEffects, IEFFECTS_INTERFACE_VERSION, s_EffectClient);
|
||||||
IEffects *g_pEffects = &s_EffectClient;
|
IEffects *g_pEffects = &s_EffectClient;
|
||||||
|
|
||||||
ConVar r_decals( "r_decals", "2048" );
|
ConVar r_decals( "r_decals", "2048" );
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// constructor, destructor
|
// constructor, destructor
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CEffectsClient::CEffectsClient()
|
CEffectsClient::CEffectsClient()
|
||||||
{
|
{
|
||||||
m_bSuppressSound = false;
|
m_bSuppressSound = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
CEffectsClient::~CEffectsClient()
|
CEffectsClient::~CEffectsClient()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Suppress sound on effects
|
// Suppress sound on effects
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CEffectsClient::SuppressEffectsSounds( bool bSuppress )
|
void CEffectsClient::SuppressEffectsSounds( bool bSuppress )
|
||||||
{
|
{
|
||||||
m_bSuppressSound = bSuppress;
|
m_bSuppressSound = bSuppress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Generates a beam
|
// Generates a beam
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CEffectsClient::Beam( const Vector &vecStartPoint, const Vector &vecEndPoint,
|
void CEffectsClient::Beam( const Vector &vecStartPoint, const Vector &vecEndPoint,
|
||||||
int nModelIndex, int nHaloIndex, unsigned char frameStart, unsigned char nFrameRate,
|
int nModelIndex, int nHaloIndex, unsigned char frameStart, unsigned char nFrameRate,
|
||||||
float flLife, unsigned char nWidth, unsigned char nEndWidth, unsigned char nFadeLength,
|
float flLife, unsigned char nWidth, unsigned char nEndWidth, unsigned char nFadeLength,
|
||||||
unsigned char noise, unsigned char r, unsigned char g,
|
unsigned char noise, unsigned char r, unsigned char g,
|
||||||
unsigned char b, unsigned char brightness, unsigned char nSpeed)
|
unsigned char b, unsigned char brightness, unsigned char nSpeed)
|
||||||
{
|
{
|
||||||
Assert(0);
|
Assert(0);
|
||||||
// CBroadcastRecipientFilter filter;
|
// CBroadcastRecipientFilter filter;
|
||||||
// if ( !SuppressTE( filter ) )
|
// if ( !SuppressTE( filter ) )
|
||||||
// {
|
// {
|
||||||
// beams->CreateBeamPoints( vecStartPoint, vecEndPoint, nModelIndex, nHaloIndex,
|
// beams->CreateBeamPoints( vecStartPoint, vecEndPoint, nModelIndex, nHaloIndex,
|
||||||
// m_fHaloScale,
|
// m_fHaloScale,
|
||||||
// flLife, 0.1 * nWidth, 0.1 * nEndWidth, nFadeLength, 0.01 * nAmplitude, a, 0.1 * nSpeed,
|
// flLife, 0.1 * nWidth, 0.1 * nEndWidth, nFadeLength, 0.01 * nAmplitude, a, 0.1 * nSpeed,
|
||||||
// m_nStartFrame, 0.1 * nFrameRate, r, g, b );
|
// m_nStartFrame, 0.1 * nFrameRate, r, g, b );
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Generates various tempent effects
|
// Generates various tempent effects
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CEffectsClient::Smoke( const Vector &vecOrigin, int modelIndex, float scale, float framerate )
|
void CEffectsClient::Smoke( const Vector &vecOrigin, int modelIndex, float scale, float framerate )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( vecOrigin );
|
CPVSFilter filter( vecOrigin );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
int iColor = random->RandomInt(20,35);
|
int iColor = random->RandomInt(20,35);
|
||||||
color32 color;
|
color32 color;
|
||||||
color.r = iColor;
|
color.r = iColor;
|
||||||
color.g = iColor;
|
color.g = iColor;
|
||||||
color.b = iColor;
|
color.b = iColor;
|
||||||
color.a = iColor;
|
color.a = iColor;
|
||||||
QAngle angles;
|
QAngle angles;
|
||||||
VectorAngles( Vector(0,0,1), angles );
|
VectorAngles( Vector(0,0,1), angles );
|
||||||
FX_Smoke( vecOrigin, angles, scale * 0.1f, 4, (unsigned char *)&color, 255 );
|
FX_Smoke( vecOrigin, angles, scale * 0.1f, 4, (unsigned char *)&color, 255 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEffectsClient::Sparks( const Vector &position, int nMagnitude, int nTrailLength, const Vector *pVecDir )
|
void CEffectsClient::Sparks( const Vector &position, int nMagnitude, int nTrailLength, const Vector *pVecDir )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( position );
|
CPVSFilter filter( position );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
FX_ElectricSpark( position, nMagnitude, nTrailLength, pVecDir );
|
FX_ElectricSpark( position, nMagnitude, nTrailLength, pVecDir );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEffectsClient::Dust( const Vector &pos, const Vector &dir, float size, float speed )
|
void CEffectsClient::Dust( const Vector &pos, const Vector &dir, float size, float speed )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( pos );
|
CPVSFilter filter( pos );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
FX_Dust( pos, dir, size, speed );
|
FX_Dust( pos, dir, size, speed );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEffectsClient::MuzzleFlash( const Vector &vecOrigin, const QAngle &vecAngles, float flScale, int iType )
|
void CEffectsClient::MuzzleFlash( const Vector &vecOrigin, const QAngle &vecAngles, float flScale, int iType )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( vecOrigin );
|
CPVSFilter filter( vecOrigin );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
switch( iType )
|
switch( iType )
|
||||||
{
|
{
|
||||||
case MUZZLEFLASH_TYPE_DEFAULT:
|
case MUZZLEFLASH_TYPE_DEFAULT:
|
||||||
FX_MuzzleEffect( vecOrigin, vecAngles, flScale, INVALID_EHANDLE_INDEX );
|
FX_MuzzleEffect( vecOrigin, vecAngles, flScale, INVALID_EHANDLE_INDEX );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MUZZLEFLASH_TYPE_GUNSHIP:
|
case MUZZLEFLASH_TYPE_GUNSHIP:
|
||||||
FX_GunshipMuzzleEffect( vecOrigin, vecAngles, flScale, INVALID_EHANDLE_INDEX );
|
FX_GunshipMuzzleEffect( vecOrigin, vecAngles, flScale, INVALID_EHANDLE_INDEX );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MUZZLEFLASH_TYPE_STRIDER:
|
case MUZZLEFLASH_TYPE_STRIDER:
|
||||||
FX_StriderMuzzleEffect( vecOrigin, vecAngles, flScale, INVALID_EHANDLE_INDEX );
|
FX_StriderMuzzleEffect( vecOrigin, vecAngles, flScale, INVALID_EHANDLE_INDEX );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Msg("No case for Muzzleflash type: %d\n", iType );
|
Msg("No case for Muzzleflash type: %d\n", iType );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEffectsClient::MetalSparks( const Vector &position, const Vector &direction )
|
void CEffectsClient::MetalSparks( const Vector &position, const Vector &direction )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( position );
|
CPVSFilter filter( position );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
FX_MetalSpark( position, direction, direction );
|
FX_MetalSpark( position, direction, direction );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEffectsClient::EnergySplash( const Vector &position, const Vector &direction, bool bExplosive )
|
void CEffectsClient::EnergySplash( const Vector &position, const Vector &direction, bool bExplosive )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( position );
|
CPVSFilter filter( position );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
FX_EnergySplash( position, direction, bExplosive );
|
FX_EnergySplash( position, direction, bExplosive );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CEffectsClient::Ricochet( const Vector &position, const Vector &direction )
|
void CEffectsClient::Ricochet( const Vector &position, const Vector &direction )
|
||||||
{
|
{
|
||||||
CPVSFilter filter( position );
|
CPVSFilter filter( position );
|
||||||
if ( !SuppressTE( filter ) )
|
if ( !SuppressTE( filter ) )
|
||||||
{
|
{
|
||||||
FX_MetalSpark( position, direction, direction );
|
FX_MetalSpark( position, direction, direction );
|
||||||
|
|
||||||
if ( !m_bSuppressSound )
|
if ( !m_bSuppressSound )
|
||||||
{
|
{
|
||||||
FX_RicochetSound( position );
|
FX_RicochetSound( position );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: Should these methods remain in this interface? Or go in some
|
// FIXME: Should these methods remain in this interface? Or go in some
|
||||||
// other client-server neutral interface?
|
// other client-server neutral interface?
|
||||||
float CEffectsClient::Time()
|
float CEffectsClient::Time()
|
||||||
{
|
{
|
||||||
return gpGlobals->curtime;
|
return gpGlobals->curtime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CEffectsClient::IsServer()
|
bool CEffectsClient::IsServer()
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,63 +1,63 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "functionproxy.h"
|
#include "functionproxy.h"
|
||||||
#include "toolframework_client.h"
|
#include "toolframework_client.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Returns the player health (from 0 to 1)
|
// Returns the player health (from 0 to 1)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class CProxyIsNPC : public CResultProxy
|
class CProxyIsNPC : public CResultProxy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
||||||
void OnBind( void *pC_BaseEntity );
|
void OnBind( void *pC_BaseEntity );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CFloatInput m_Factor;
|
CFloatInput m_Factor;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool CProxyIsNPC::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
bool CProxyIsNPC::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
||||||
{
|
{
|
||||||
if (!CResultProxy::Init( pMaterial, pKeyValues ))
|
if (!CResultProxy::Init( pMaterial, pKeyValues ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!m_Factor.Init( pMaterial, pKeyValues, "scale", 1 ))
|
if (!m_Factor.Init( pMaterial, pKeyValues, "scale", 1 ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CProxyIsNPC::OnBind( void *pC_BaseEntity )
|
void CProxyIsNPC::OnBind( void *pC_BaseEntity )
|
||||||
{
|
{
|
||||||
if ( !pC_BaseEntity )
|
if ( !pC_BaseEntity )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
C_BaseEntity *pEntity = BindArgToEntity( pC_BaseEntity );
|
C_BaseEntity *pEntity = BindArgToEntity( pC_BaseEntity );
|
||||||
if ( pEntity && pEntity->IsNPC() )
|
if ( pEntity && pEntity->IsNPC() )
|
||||||
{
|
{
|
||||||
SetFloatResult( m_Factor.GetFloat() );
|
SetFloatResult( m_Factor.GetFloat() );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SetFloatResult( 0.0f );
|
SetFloatResult( 0.0f );
|
||||||
}
|
}
|
||||||
if ( ToolsEnabled() )
|
if ( ToolsEnabled() )
|
||||||
{
|
{
|
||||||
ToolFramework_RecordMaterialParams( GetMaterial() );
|
ToolFramework_RecordMaterialParams( GetMaterial() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPOSE_INTERFACE( CProxyIsNPC, IMaterialProxy, "IsNPC" IMATERIAL_PROXY_INTERFACE_VERSION );
|
EXPOSE_INTERFACE( CProxyIsNPC, IMaterialProxy, "IsNPC" IMATERIAL_PROXY_INTERFACE_VERSION );
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,60 +1,60 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "materialsystem/imaterialproxy.h"
|
#include "materialsystem/imaterialproxy.h"
|
||||||
#include "materialsystem/imaterial.h"
|
#include "materialsystem/imaterial.h"
|
||||||
#include "materialsystem/imaterialvar.h"
|
#include "materialsystem/imaterialvar.h"
|
||||||
|
|
||||||
// $monitorTextureVar
|
// $monitorTextureVar
|
||||||
class CMonitorMaterialProxy : public IMaterialProxy
|
class CMonitorMaterialProxy : public IMaterialProxy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CMonitorMaterialProxy();
|
CMonitorMaterialProxy();
|
||||||
virtual ~CMonitorMaterialProxy();
|
virtual ~CMonitorMaterialProxy();
|
||||||
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
||||||
virtual void OnBind( void *pC_BaseEntity );
|
virtual void OnBind( void *pC_BaseEntity );
|
||||||
virtual void Release( void ) { delete this; }
|
virtual void Release( void ) { delete this; }
|
||||||
private:
|
private:
|
||||||
IMaterialVar *m_pMonitorTextureVar;
|
IMaterialVar *m_pMonitorTextureVar;
|
||||||
};
|
};
|
||||||
|
|
||||||
CMonitorMaterialProxy::CMonitorMaterialProxy()
|
CMonitorMaterialProxy::CMonitorMaterialProxy()
|
||||||
{
|
{
|
||||||
m_pMonitorTextureVar = NULL;
|
m_pMonitorTextureVar = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
CMonitorMaterialProxy::~CMonitorMaterialProxy()
|
CMonitorMaterialProxy::~CMonitorMaterialProxy()
|
||||||
{
|
{
|
||||||
m_pMonitorTextureVar = NULL;
|
m_pMonitorTextureVar = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CMonitorMaterialProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
bool CMonitorMaterialProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
||||||
{
|
{
|
||||||
char const* pMonitorTextureVarName = pKeyValues->getString( "$monitorTextureVar" );
|
char const* pMonitorTextureVarName = pKeyValues->getString( "$monitorTextureVar" );
|
||||||
if( !pMonitorTextureVarName )
|
if( !pMonitorTextureVarName )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bool foundVar;
|
bool foundVar;
|
||||||
m_pMonitorTextureVar = pMaterial->FindVar( pMonitorTextureVarName, &foundVar, false );
|
m_pMonitorTextureVar = pMaterial->FindVar( pMonitorTextureVarName, &foundVar, false );
|
||||||
if( !foundVar )
|
if( !foundVar )
|
||||||
{
|
{
|
||||||
m_pMonitorTextureVar = NULL;
|
m_pMonitorTextureVar = NULL;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMonitorMaterialProxy::OnBind( void *pC_BaseEntity )
|
void CMonitorMaterialProxy::OnBind( void *pC_BaseEntity )
|
||||||
{
|
{
|
||||||
if( !m_pMonitorTextureVar )
|
if( !m_pMonitorTextureVar )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPOSE_INTERFACE( CMonitorMaterialProxy, IMaterialProxy, "Monitor" IMATERIAL_PROXY_INTERFACE_VERSION );
|
EXPOSE_INTERFACE( CMonitorMaterialProxy, IMaterialProxy, "Monitor" IMATERIAL_PROXY_INTERFACE_VERSION );
|
||||||
|
@ -1,59 +1,59 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "functionproxy.h"
|
#include "functionproxy.h"
|
||||||
#include "toolframework_client.h"
|
#include "toolframework_client.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Returns the player health (from 0 to 1)
|
// Returns the player health (from 0 to 1)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class CProxyHealth : public CResultProxy
|
class CProxyHealth : public CResultProxy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
||||||
void OnBind( void *pC_BaseEntity );
|
void OnBind( void *pC_BaseEntity );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CFloatInput m_Factor;
|
CFloatInput m_Factor;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool CProxyHealth::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
bool CProxyHealth::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
||||||
{
|
{
|
||||||
if (!CResultProxy::Init( pMaterial, pKeyValues ))
|
if (!CResultProxy::Init( pMaterial, pKeyValues ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!m_Factor.Init( pMaterial, pKeyValues, "scale", 1 ))
|
if (!m_Factor.Init( pMaterial, pKeyValues, "scale", 1 ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CProxyHealth::OnBind( void *pC_BaseEntity )
|
void CProxyHealth::OnBind( void *pC_BaseEntity )
|
||||||
{
|
{
|
||||||
if (!pC_BaseEntity)
|
if (!pC_BaseEntity)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
C_BaseEntity *pEntity = BindArgToEntity( pC_BaseEntity );
|
C_BaseEntity *pEntity = BindArgToEntity( pC_BaseEntity );
|
||||||
|
|
||||||
Assert( m_pResult );
|
Assert( m_pResult );
|
||||||
SetFloatResult( pEntity->HealthFraction() * m_Factor.GetFloat() );
|
SetFloatResult( pEntity->HealthFraction() * m_Factor.GetFloat() );
|
||||||
|
|
||||||
if ( ToolsEnabled() )
|
if ( ToolsEnabled() )
|
||||||
{
|
{
|
||||||
ToolFramework_RecordMaterialParams( GetMaterial() );
|
ToolFramework_RecordMaterialParams( GetMaterial() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPOSE_INTERFACE( CProxyHealth, IMaterialProxy, "Health" IMATERIAL_PROXY_INTERFACE_VERSION );
|
EXPOSE_INTERFACE( CProxyHealth, IMaterialProxy, "Health" IMATERIAL_PROXY_INTERFACE_VERSION );
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,317 +1,317 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
|
|
||||||
#include "KeyValues.h"
|
#include "KeyValues.h"
|
||||||
#include "cdll_client_int.h"
|
#include "cdll_client_int.h"
|
||||||
#include "view_scene.h"
|
#include "view_scene.h"
|
||||||
#include "viewrender.h"
|
#include "viewrender.h"
|
||||||
#include "tier0/icommandline.h"
|
#include "tier0/icommandline.h"
|
||||||
#include "materialsystem/imesh.h"
|
#include "materialsystem/imesh.h"
|
||||||
#include "materialsystem/imaterial.h"
|
#include "materialsystem/imaterial.h"
|
||||||
#include "materialsystem/imaterialsystemhardwareconfig.h"
|
#include "materialsystem/imaterialsystemhardwareconfig.h"
|
||||||
#include "materialsystem/imaterialvar.h"
|
#include "materialsystem/imaterialvar.h"
|
||||||
|
|
||||||
#include "ScreenSpaceEffects.h"
|
#include "ScreenSpaceEffects.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectRegistration code
|
// CScreenSpaceEffectRegistration code
|
||||||
// Used to register and effect with the IScreenSpaceEffectManager
|
// Used to register and effect with the IScreenSpaceEffectManager
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
CScreenSpaceEffectRegistration *CScreenSpaceEffectRegistration::s_pHead = NULL;
|
CScreenSpaceEffectRegistration *CScreenSpaceEffectRegistration::s_pHead = NULL;
|
||||||
|
|
||||||
CScreenSpaceEffectRegistration::CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect )
|
CScreenSpaceEffectRegistration::CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect )
|
||||||
{
|
{
|
||||||
m_pEffectName = pName;
|
m_pEffectName = pName;
|
||||||
m_pEffect = pEffect;
|
m_pEffect = pEffect;
|
||||||
m_pNext = s_pHead;
|
m_pNext = s_pHead;
|
||||||
s_pHead = this;
|
s_pHead = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager - Implementation of IScreenSpaceEffectManager
|
// CScreenSpaceEffectManager - Implementation of IScreenSpaceEffectManager
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
class CScreenSpaceEffectManager : public IScreenSpaceEffectManager
|
class CScreenSpaceEffectManager : public IScreenSpaceEffectManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual void InitScreenSpaceEffects( );
|
virtual void InitScreenSpaceEffects( );
|
||||||
virtual void ShutdownScreenSpaceEffects( );
|
virtual void ShutdownScreenSpaceEffects( );
|
||||||
|
|
||||||
virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName );
|
virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName );
|
||||||
|
|
||||||
virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params );
|
virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params );
|
||||||
virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params );
|
virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params );
|
||||||
|
|
||||||
virtual void EnableScreenSpaceEffect( const char *pEffectName );
|
virtual void EnableScreenSpaceEffect( const char *pEffectName );
|
||||||
virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
|
virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
|
||||||
|
|
||||||
virtual void DisableScreenSpaceEffect( const char *pEffectName );
|
virtual void DisableScreenSpaceEffect( const char *pEffectName );
|
||||||
virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
|
virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
|
||||||
|
|
||||||
virtual void DisableAllScreenSpaceEffects( );
|
virtual void DisableAllScreenSpaceEffects( );
|
||||||
|
|
||||||
virtual void RenderEffects( int x, int y, int w, int h );
|
virtual void RenderEffects( int x, int y, int w, int h );
|
||||||
};
|
};
|
||||||
|
|
||||||
CScreenSpaceEffectManager g_ScreenSpaceEffectManager;
|
CScreenSpaceEffectManager g_ScreenSpaceEffectManager;
|
||||||
IScreenSpaceEffectManager *g_pScreenSpaceEffects = &g_ScreenSpaceEffectManager;
|
IScreenSpaceEffectManager *g_pScreenSpaceEffects = &g_ScreenSpaceEffectManager;
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::InitScreenSpaceEffects - Initialise all registered effects
|
// CScreenSpaceEffectManager::InitScreenSpaceEffects - Initialise all registered effects
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::InitScreenSpaceEffects( )
|
void CScreenSpaceEffectManager::InitScreenSpaceEffects( )
|
||||||
{
|
{
|
||||||
if ( CommandLine()->FindParm( "-filmgrain" ) )
|
if ( CommandLine()->FindParm( "-filmgrain" ) )
|
||||||
{
|
{
|
||||||
GetScreenSpaceEffect( "filmgrain" )->Enable( true );
|
GetScreenSpaceEffect( "filmgrain" )->Enable( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
{
|
{
|
||||||
bool bIsEnabled = pEffect->IsEnabled( );
|
bool bIsEnabled = pEffect->IsEnabled( );
|
||||||
pEffect->Init( );
|
pEffect->Init( );
|
||||||
pEffect->Enable( bIsEnabled );
|
pEffect->Enable( bIsEnabled );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::ShutdownScreenSpaceEffects - Shutdown all registered effects
|
// CScreenSpaceEffectManager::ShutdownScreenSpaceEffects - Shutdown all registered effects
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::ShutdownScreenSpaceEffects( )
|
void CScreenSpaceEffectManager::ShutdownScreenSpaceEffects( )
|
||||||
{
|
{
|
||||||
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
{
|
{
|
||||||
pEffect->Shutdown( );
|
pEffect->Shutdown( );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::GetScreenSpaceEffect - Returns a point to the named effect
|
// CScreenSpaceEffectManager::GetScreenSpaceEffect - Returns a point to the named effect
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
IScreenSpaceEffect *CScreenSpaceEffectManager::GetScreenSpaceEffect( const char *pEffectName )
|
IScreenSpaceEffect *CScreenSpaceEffectManager::GetScreenSpaceEffect( const char *pEffectName )
|
||||||
{
|
{
|
||||||
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
||||||
{
|
{
|
||||||
if( !Q_stricmp( pReg->m_pEffectName, pEffectName ) )
|
if( !Q_stricmp( pReg->m_pEffectName, pEffectName ) )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
||||||
return pEffect;
|
return pEffect;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Warning( "Could not find screen space effect %s\n", pEffectName );
|
Warning( "Could not find screen space effect %s\n", pEffectName );
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::SetScreenSpaceEffectParams
|
// CScreenSpaceEffectManager::SetScreenSpaceEffectParams
|
||||||
// - Assign parameters to the specified effect
|
// - Assign parameters to the specified effect
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params )
|
void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
|
IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
SetScreenSpaceEffectParams( pEffect, params );
|
SetScreenSpaceEffectParams( pEffect, params );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params )
|
void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params )
|
||||||
{
|
{
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
pEffect->SetParameters( params );
|
pEffect->SetParameters( params );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::EnableScreenSpaceEffect
|
// CScreenSpaceEffectManager::EnableScreenSpaceEffect
|
||||||
// - Enables the specified effect
|
// - Enables the specified effect
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::EnableScreenSpaceEffect( const char *pEffectName )
|
void CScreenSpaceEffectManager::EnableScreenSpaceEffect( const char *pEffectName )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
|
IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
EnableScreenSpaceEffect( pEffect );
|
EnableScreenSpaceEffect( pEffect );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CScreenSpaceEffectManager::EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
|
void CScreenSpaceEffectManager::EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
|
||||||
{
|
{
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
pEffect->Enable( true );
|
pEffect->Enable( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::DisableScreenSpaceEffect
|
// CScreenSpaceEffectManager::DisableScreenSpaceEffect
|
||||||
// - Disables the specified effect
|
// - Disables the specified effect
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::DisableScreenSpaceEffect( const char *pEffectName )
|
void CScreenSpaceEffectManager::DisableScreenSpaceEffect( const char *pEffectName )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
|
IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
DisableScreenSpaceEffect( pEffect );
|
DisableScreenSpaceEffect( pEffect );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CScreenSpaceEffectManager::DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
|
void CScreenSpaceEffectManager::DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
|
||||||
{
|
{
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
pEffect->Enable( false );
|
pEffect->Enable( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::DisableAllScreenSpaceEffects
|
// CScreenSpaceEffectManager::DisableAllScreenSpaceEffects
|
||||||
// - Disables all registered screen space effects
|
// - Disables all registered screen space effects
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::DisableAllScreenSpaceEffects( )
|
void CScreenSpaceEffectManager::DisableAllScreenSpaceEffects( )
|
||||||
{
|
{
|
||||||
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
{
|
{
|
||||||
pEffect->Enable( false );
|
pEffect->Enable( false );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// CScreenSpaceEffectManager::RenderEffects
|
// CScreenSpaceEffectManager::RenderEffects
|
||||||
// - Renders all registered screen space effects
|
// - Renders all registered screen space effects
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
void CScreenSpaceEffectManager::RenderEffects( int x, int y, int w, int h )
|
void CScreenSpaceEffectManager::RenderEffects( int x, int y, int w, int h )
|
||||||
{
|
{
|
||||||
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
|
||||||
{
|
{
|
||||||
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
IScreenSpaceEffect *pEffect = pReg->m_pEffect;
|
||||||
if( pEffect )
|
if( pEffect )
|
||||||
{
|
{
|
||||||
pEffect->Render( x, y, w, h );
|
pEffect->Render( x, y, w, h );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Example post-processing effect
|
// Example post-processing effect
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
class CExampleEffect : public IScreenSpaceEffect
|
class CExampleEffect : public IScreenSpaceEffect
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CExampleEffect( );
|
CExampleEffect( );
|
||||||
~CExampleEffect( );
|
~CExampleEffect( );
|
||||||
|
|
||||||
void Init( );
|
void Init( );
|
||||||
void Shutdown( );
|
void Shutdown( );
|
||||||
|
|
||||||
void SetParameters( KeyValues *params );
|
void SetParameters( KeyValues *params );
|
||||||
|
|
||||||
void Render( int x, int y, int w, int h );
|
void Render( int x, int y, int w, int h );
|
||||||
|
|
||||||
void Enable( bool bEnable );
|
void Enable( bool bEnable );
|
||||||
bool IsEnabled( );
|
bool IsEnabled( );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
bool m_bEnable;
|
bool m_bEnable;
|
||||||
|
|
||||||
CMaterialReference m_Material;
|
CMaterialReference m_Material;
|
||||||
};
|
};
|
||||||
|
|
||||||
ADD_SCREENSPACE_EFFECT( CExampleEffect, exampleeffect );
|
ADD_SCREENSPACE_EFFECT( CExampleEffect, exampleeffect );
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect constructor
|
// CExampleEffect constructor
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
CExampleEffect::CExampleEffect( )
|
CExampleEffect::CExampleEffect( )
|
||||||
{
|
{
|
||||||
m_bEnable = false;
|
m_bEnable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect destructor
|
// CExampleEffect destructor
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
CExampleEffect::~CExampleEffect( )
|
CExampleEffect::~CExampleEffect( )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect init
|
// CExampleEffect init
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void CExampleEffect::Init( )
|
void CExampleEffect::Init( )
|
||||||
{
|
{
|
||||||
// This is just example code, init your effect material here
|
// This is just example code, init your effect material here
|
||||||
//m_Material.Init( "engine/exampleeffect", TEXTURE_GROUP_OTHER );
|
//m_Material.Init( "engine/exampleeffect", TEXTURE_GROUP_OTHER );
|
||||||
|
|
||||||
m_bEnable = false;
|
m_bEnable = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect shutdown
|
// CExampleEffect shutdown
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void CExampleEffect::Shutdown( )
|
void CExampleEffect::Shutdown( )
|
||||||
{
|
{
|
||||||
m_Material.Shutdown();
|
m_Material.Shutdown();
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect enable
|
// CExampleEffect enable
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void CExampleEffect::Enable( bool bEnable )
|
void CExampleEffect::Enable( bool bEnable )
|
||||||
{
|
{
|
||||||
// This is just example code, don't enable it
|
// This is just example code, don't enable it
|
||||||
// m_bEnable = bEnable;
|
// m_bEnable = bEnable;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CExampleEffect::IsEnabled( )
|
bool CExampleEffect::IsEnabled( )
|
||||||
{
|
{
|
||||||
return m_bEnable;
|
return m_bEnable;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect SetParameters
|
// CExampleEffect SetParameters
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void CExampleEffect::SetParameters( KeyValues *params )
|
void CExampleEffect::SetParameters( KeyValues *params )
|
||||||
{
|
{
|
||||||
if( params->GetDataType( "example_param" ) == KeyValues::TYPE_STRING )
|
if( params->GetDataType( "example_param" ) == KeyValues::TYPE_STRING )
|
||||||
{
|
{
|
||||||
// ...
|
// ...
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// CExampleEffect render
|
// CExampleEffect render
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void CExampleEffect::Render( int x, int y, int w, int h )
|
void CExampleEffect::Render( int x, int y, int w, int h )
|
||||||
{
|
{
|
||||||
if ( !IsEnabled() )
|
if ( !IsEnabled() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Render Effect
|
// Render Effect
|
||||||
Rect_t actualRect;
|
Rect_t actualRect;
|
||||||
UpdateScreenEffectTexture( 0, x, y, w, h, false, &actualRect );
|
UpdateScreenEffectTexture( 0, x, y, w, h, false, &actualRect );
|
||||||
ITexture *pTexture = GetFullFrameFrameBufferTexture( 0 );
|
ITexture *pTexture = GetFullFrameFrameBufferTexture( 0 );
|
||||||
|
|
||||||
CMatRenderContextPtr pRenderContext( materials );
|
CMatRenderContextPtr pRenderContext( materials );
|
||||||
|
|
||||||
pRenderContext->DrawScreenSpaceRectangle( m_Material, x, y, w, h,
|
pRenderContext->DrawScreenSpaceRectangle( m_Material, x, y, w, h,
|
||||||
actualRect.x, actualRect.y, actualRect.x+actualRect.width-1, actualRect.y+actualRect.height-1,
|
actualRect.x, actualRect.y, actualRect.x+actualRect.width-1, actualRect.y+actualRect.height-1,
|
||||||
pTexture->GetActualWidth(), pTexture->GetActualHeight() );
|
pTexture->GetActualWidth(), pTexture->GetActualHeight() );
|
||||||
}
|
}
|
||||||
|
@ -1,88 +1,88 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//
|
//
|
||||||
//=====================================================================================//
|
//=====================================================================================//
|
||||||
|
|
||||||
#ifndef SCREENSPACEEFFECTS_H
|
#ifndef SCREENSPACEEFFECTS_H
|
||||||
#define SCREENSPACEEFFECTS_H
|
#define SCREENSPACEEFFECTS_H
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Simple base class for screen space post-processing effects
|
// Simple base class for screen space post-processing effects
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
abstract_class IScreenSpaceEffect
|
abstract_class IScreenSpaceEffect
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual void Init( ) = 0;
|
virtual void Init( ) = 0;
|
||||||
virtual void Shutdown( ) = 0;
|
virtual void Shutdown( ) = 0;
|
||||||
|
|
||||||
virtual void SetParameters( KeyValues *params ) = 0;
|
virtual void SetParameters( KeyValues *params ) = 0;
|
||||||
|
|
||||||
virtual void Render( int x, int y, int w, int h ) = 0;
|
virtual void Render( int x, int y, int w, int h ) = 0;
|
||||||
|
|
||||||
virtual void Enable( bool bEnable ) = 0;
|
virtual void Enable( bool bEnable ) = 0;
|
||||||
virtual bool IsEnabled( ) = 0;
|
virtual bool IsEnabled( ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// Interface class for managing screen space post-processing effects
|
// Interface class for managing screen space post-processing effects
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
abstract_class IScreenSpaceEffectManager
|
abstract_class IScreenSpaceEffectManager
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual void InitScreenSpaceEffects( ) = 0;
|
virtual void InitScreenSpaceEffects( ) = 0;
|
||||||
virtual void ShutdownScreenSpaceEffects( ) = 0;
|
virtual void ShutdownScreenSpaceEffects( ) = 0;
|
||||||
|
|
||||||
virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName ) = 0;
|
virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName ) = 0;
|
||||||
|
|
||||||
virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params ) = 0;
|
virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params ) = 0;
|
||||||
virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params ) = 0;
|
virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params ) = 0;
|
||||||
|
|
||||||
virtual void EnableScreenSpaceEffect( const char *pEffectName ) = 0;
|
virtual void EnableScreenSpaceEffect( const char *pEffectName ) = 0;
|
||||||
virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
|
virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
|
||||||
|
|
||||||
virtual void DisableScreenSpaceEffect( const char *pEffectName ) = 0;
|
virtual void DisableScreenSpaceEffect( const char *pEffectName ) = 0;
|
||||||
virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
|
virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
|
||||||
|
|
||||||
virtual void DisableAllScreenSpaceEffects( ) = 0;
|
virtual void DisableAllScreenSpaceEffects( ) = 0;
|
||||||
|
|
||||||
virtual void RenderEffects( int x, int y, int w, int h ) = 0;
|
virtual void RenderEffects( int x, int y, int w, int h ) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern IScreenSpaceEffectManager *g_pScreenSpaceEffects;
|
extern IScreenSpaceEffectManager *g_pScreenSpaceEffects;
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
// Registration class for adding screen space effects to the IScreenSpaceEffectManager
|
// Registration class for adding screen space effects to the IScreenSpaceEffectManager
|
||||||
//-------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------
|
||||||
class CScreenSpaceEffectRegistration
|
class CScreenSpaceEffectRegistration
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect );
|
CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect );
|
||||||
|
|
||||||
const char *m_pEffectName;
|
const char *m_pEffectName;
|
||||||
IScreenSpaceEffect *m_pEffect;
|
IScreenSpaceEffect *m_pEffect;
|
||||||
|
|
||||||
CScreenSpaceEffectRegistration *m_pNext;
|
CScreenSpaceEffectRegistration *m_pNext;
|
||||||
|
|
||||||
static CScreenSpaceEffectRegistration *s_pHead;
|
static CScreenSpaceEffectRegistration *s_pHead;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define ADD_SCREENSPACE_EFFECT( CEffect, pEffectName ) CEffect pEffectName##_effect; \
|
#define ADD_SCREENSPACE_EFFECT( CEffect, pEffectName ) CEffect pEffectName##_effect; \
|
||||||
CScreenSpaceEffectRegistration pEffectName##_reg( #pEffectName, &pEffectName##_effect );
|
CScreenSpaceEffectRegistration pEffectName##_reg( #pEffectName, &pEffectName##_effect );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -1,172 +1,172 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: This is a panel which is rendered image on top of an entity
|
// Purpose: This is a panel which is rendered image on top of an entity
|
||||||
//
|
//
|
||||||
// $Revision: $
|
// $Revision: $
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "TeamBitmapImage.h"
|
#include "TeamBitmapImage.h"
|
||||||
#include <KeyValues.h>
|
#include <KeyValues.h>
|
||||||
#include "vgui_bitmapimage.h"
|
#include "vgui_bitmapimage.h"
|
||||||
#include "panelmetaclassmgr.h"
|
#include "panelmetaclassmgr.h"
|
||||||
#include "VGuiMatSurface/IMatSystemSurface.h"
|
#include "VGuiMatSurface/IMatSystemSurface.h"
|
||||||
#include <vgui_controls/Panel.h>
|
#include <vgui_controls/Panel.h>
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// A multiplexer bitmap that chooses a bitmap based on team
|
// A multiplexer bitmap that chooses a bitmap based on team
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CTeamBitmapImage::CTeamBitmapImage() : m_Alpha(1.0f)
|
CTeamBitmapImage::CTeamBitmapImage() : m_Alpha(1.0f)
|
||||||
{
|
{
|
||||||
memset( m_ppImage, 0, BITMAP_COUNT * sizeof(BitmapImage*) );
|
memset( m_ppImage, 0, BITMAP_COUNT * sizeof(BitmapImage*) );
|
||||||
m_pEntity = NULL;
|
m_pEntity = NULL;
|
||||||
m_bRelativeTeams = 0;
|
m_bRelativeTeams = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
CTeamBitmapImage::~CTeamBitmapImage()
|
CTeamBitmapImage::~CTeamBitmapImage()
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for ( i = 0; i < BITMAP_COUNT; ++i )
|
for ( i = 0; i < BITMAP_COUNT; ++i )
|
||||||
{
|
{
|
||||||
if (m_ppImage[i])
|
if (m_ppImage[i])
|
||||||
delete m_ppImage[i];
|
delete m_ppImage[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// initialization
|
// initialization
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool CTeamBitmapImage::Init( vgui::Panel *pParent, KeyValues* pInitData, C_BaseEntity* pEntity )
|
bool CTeamBitmapImage::Init( vgui::Panel *pParent, KeyValues* pInitData, C_BaseEntity* pEntity )
|
||||||
{
|
{
|
||||||
static const char *pRelativeTeamNames[BITMAP_COUNT] =
|
static const char *pRelativeTeamNames[BITMAP_COUNT] =
|
||||||
{
|
{
|
||||||
"NoTeam",
|
"NoTeam",
|
||||||
"MyTeam",
|
"MyTeam",
|
||||||
"EnemyTeam",
|
"EnemyTeam",
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *pAbsoluteTeamNames[BITMAP_COUNT] =
|
static const char *pAbsoluteTeamNames[BITMAP_COUNT] =
|
||||||
{
|
{
|
||||||
"Team0",
|
"Team0",
|
||||||
"Team1",
|
"Team1",
|
||||||
"Team2",
|
"Team2",
|
||||||
};
|
};
|
||||||
|
|
||||||
m_pEntity = pEntity;
|
m_pEntity = pEntity;
|
||||||
m_bRelativeTeams = (pInitData->GetInt( "relativeteam" ) != 0);
|
m_bRelativeTeams = (pInitData->GetInt( "relativeteam" ) != 0);
|
||||||
|
|
||||||
const char **ppTeamNames = m_bRelativeTeams ? pRelativeTeamNames : pAbsoluteTeamNames;
|
const char **ppTeamNames = m_bRelativeTeams ? pRelativeTeamNames : pAbsoluteTeamNames;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
for ( i = 0 ; i < BITMAP_COUNT; ++i )
|
for ( i = 0 ; i < BITMAP_COUNT; ++i )
|
||||||
{
|
{
|
||||||
// Default to null
|
// Default to null
|
||||||
m_ppImage[i] = NULL;
|
m_ppImage[i] = NULL;
|
||||||
|
|
||||||
// Look for team section
|
// Look for team section
|
||||||
KeyValues *pTeamKV = pInitData->FindKey( ppTeamNames[i] );
|
KeyValues *pTeamKV = pInitData->FindKey( ppTeamNames[i] );
|
||||||
if ( !pTeamKV )
|
if ( !pTeamKV )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
char const* pClassImage = pTeamKV->GetString( "material" );
|
char const* pClassImage = pTeamKV->GetString( "material" );
|
||||||
if ( !pClassImage || !pClassImage[ 0 ] )
|
if ( !pClassImage || !pClassImage[ 0 ] )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// modulation color
|
// modulation color
|
||||||
Color color;
|
Color color;
|
||||||
if (!ParseRGBA( pTeamKV, "color", color ))
|
if (!ParseRGBA( pTeamKV, "color", color ))
|
||||||
color.SetColor( 255, 255, 255, 255 );
|
color.SetColor( 255, 255, 255, 255 );
|
||||||
|
|
||||||
// hook in the bitmap
|
// hook in the bitmap
|
||||||
m_ppImage[i] = new BitmapImage( pParent->GetVPanel(), pClassImage );
|
m_ppImage[i] = new BitmapImage( pParent->GetVPanel(), pClassImage );
|
||||||
m_ppImage[i]->SetColor( color );
|
m_ppImage[i]->SetColor( color );
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Alpha modulate...
|
// Alpha modulate...
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CTeamBitmapImage::SetAlpha( float alpha )
|
void CTeamBitmapImage::SetAlpha( float alpha )
|
||||||
{
|
{
|
||||||
m_Alpha = clamp( alpha, 0.0f, 1.0f );
|
m_Alpha = clamp( alpha, 0.0f, 1.0f );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// draw
|
// draw
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CTeamBitmapImage::Paint( float yaw /*= 0.0f*/ )
|
void CTeamBitmapImage::Paint( float yaw /*= 0.0f*/ )
|
||||||
{
|
{
|
||||||
if (m_Alpha == 0.0f)
|
if (m_Alpha == 0.0f)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int team = 0;
|
int team = 0;
|
||||||
if (m_bRelativeTeams)
|
if (m_bRelativeTeams)
|
||||||
{
|
{
|
||||||
if (GetEntity())
|
if (GetEntity())
|
||||||
{
|
{
|
||||||
if (GetEntity()->GetTeamNumber() != 0)
|
if (GetEntity()->GetTeamNumber() != 0)
|
||||||
{
|
{
|
||||||
team = GetEntity()->InLocalTeam() ? 1 : 2;
|
team = GetEntity()->InLocalTeam() ? 1 : 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (GetEntity())
|
if (GetEntity())
|
||||||
team = GetEntity()->GetTeamNumber();
|
team = GetEntity()->GetTeamNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paint the image for the current team
|
// Paint the image for the current team
|
||||||
if (m_ppImage[team])
|
if (m_ppImage[team])
|
||||||
{
|
{
|
||||||
// Modulate the color based on the alpha....
|
// Modulate the color based on the alpha....
|
||||||
Color color = m_ppImage[team]->GetColor();
|
Color color = m_ppImage[team]->GetColor();
|
||||||
int alpha = color[3];
|
int alpha = color[3];
|
||||||
color[3] = (alpha * m_Alpha);
|
color[3] = (alpha * m_Alpha);
|
||||||
m_ppImage[team]->SetColor( color );
|
m_ppImage[team]->SetColor( color );
|
||||||
|
|
||||||
if ( yaw != 0.0f )
|
if ( yaw != 0.0f )
|
||||||
{
|
{
|
||||||
g_pMatSystemSurface->DisableClipping( true );
|
g_pMatSystemSurface->DisableClipping( true );
|
||||||
|
|
||||||
m_ppImage[team]->DoPaint( m_ppImage[team]->GetRenderSizePanel(), yaw );
|
m_ppImage[team]->DoPaint( m_ppImage[team]->GetRenderSizePanel(), yaw );
|
||||||
|
|
||||||
g_pMatSystemSurface->DisableClipping( false );
|
g_pMatSystemSurface->DisableClipping( false );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Paint
|
// Paint
|
||||||
m_ppImage[team]->Paint();
|
m_ppImage[team]->Paint();
|
||||||
}
|
}
|
||||||
|
|
||||||
// restore previous color
|
// restore previous color
|
||||||
color[3] = alpha;
|
color[3] = alpha;
|
||||||
m_ppImage[team]->SetColor( color );
|
m_ppImage[team]->SetColor( color );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Helper method to initialize a team image from KeyValues data..
|
// Helper method to initialize a team image from KeyValues data..
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool InitializeTeamImage( KeyValues *pInitData, const char* pSectionName, vgui::Panel *pParent, C_BaseEntity *pEntity, CTeamBitmapImage* pTeamImage )
|
bool InitializeTeamImage( KeyValues *pInitData, const char* pSectionName, vgui::Panel *pParent, C_BaseEntity *pEntity, CTeamBitmapImage* pTeamImage )
|
||||||
{
|
{
|
||||||
KeyValues *pTeamImageSection = pInitData;
|
KeyValues *pTeamImageSection = pInitData;
|
||||||
if (pSectionName)
|
if (pSectionName)
|
||||||
{
|
{
|
||||||
pTeamImageSection = pInitData->FindKey( pSectionName );
|
pTeamImageSection = pInitData->FindKey( pSectionName );
|
||||||
if ( !pTeamImageSection )
|
if ( !pTeamImageSection )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pTeamImage->Init( pParent, pTeamImageSection, pEntity );
|
return pTeamImage->Init( pParent, pTeamImageSection, pEntity );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,80 +1,80 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: This is a panel which is rendered image on top of an entity
|
// Purpose: This is a panel which is rendered image on top of an entity
|
||||||
//
|
//
|
||||||
// $Revision: $
|
// $Revision: $
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef TEAMBITMAPIMAGE_H
|
#ifndef TEAMBITMAPIMAGE_H
|
||||||
#define TEAMBITMAPIMAGE_H
|
#define TEAMBITMAPIMAGE_H
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#include "tf_shareddefs.h"
|
//#include "tf_shareddefs.h"
|
||||||
|
|
||||||
#include <vgui/VGUI.h>
|
#include <vgui/VGUI.h>
|
||||||
|
|
||||||
namespace vgui
|
namespace vgui
|
||||||
{
|
{
|
||||||
class Panel;
|
class Panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
class BitmapImage;
|
class BitmapImage;
|
||||||
class C_BaseEntity;
|
class C_BaseEntity;
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// A multiplexer bitmap that chooses a bitmap based on team
|
// A multiplexer bitmap that chooses a bitmap based on team
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class CTeamBitmapImage
|
class CTeamBitmapImage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// construction, destruction
|
// construction, destruction
|
||||||
CTeamBitmapImage();
|
CTeamBitmapImage();
|
||||||
~CTeamBitmapImage();
|
~CTeamBitmapImage();
|
||||||
|
|
||||||
// initialization
|
// initialization
|
||||||
bool Init( vgui::Panel *pParent, KeyValues* pInitData, C_BaseEntity* pEntity );
|
bool Init( vgui::Panel *pParent, KeyValues* pInitData, C_BaseEntity* pEntity );
|
||||||
|
|
||||||
// Alpha override...
|
// Alpha override...
|
||||||
void SetAlpha( float alpha );
|
void SetAlpha( float alpha );
|
||||||
|
|
||||||
// Paint the sucka. Paint it the size of the parent panel
|
// Paint the sucka. Paint it the size of the parent panel
|
||||||
void Paint( float yaw = 0.0f );
|
void Paint( float yaw = 0.0f );
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// Wrapper so we can implement this with EHANDLES some day
|
// Wrapper so we can implement this with EHANDLES some day
|
||||||
C_BaseEntity *GetEntity() { return m_pEntity; }
|
C_BaseEntity *GetEntity() { return m_pEntity; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
// NOTE: Was MAX_TF_TEAMS not 4, but I don't like the dependency here.
|
// NOTE: Was MAX_TF_TEAMS not 4, but I don't like the dependency here.
|
||||||
BITMAP_COUNT = 4 + 1
|
BITMAP_COUNT = 4 + 1
|
||||||
};
|
};
|
||||||
|
|
||||||
BitmapImage *m_ppImage[ BITMAP_COUNT ];
|
BitmapImage *m_ppImage[ BITMAP_COUNT ];
|
||||||
C_BaseEntity *m_pEntity;
|
C_BaseEntity *m_pEntity;
|
||||||
float m_Alpha;
|
float m_Alpha;
|
||||||
bool m_bRelativeTeams;
|
bool m_bRelativeTeams;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Helper method to initialize a team image from KeyValues data..
|
// Helper method to initialize a team image from KeyValues data..
|
||||||
// KeyValues contains the bitmap data. pSectionName, if it exists,
|
// KeyValues contains the bitmap data. pSectionName, if it exists,
|
||||||
// indicates which subsection of pInitData should be looked at to get at the
|
// indicates which subsection of pInitData should be looked at to get at the
|
||||||
// image data. The final argument is the bitmap image to initialize.
|
// image data. The final argument is the bitmap image to initialize.
|
||||||
// The function returns true if it succeeded.
|
// The function returns true if it succeeded.
|
||||||
//
|
//
|
||||||
// NOTE: This function looks for the key values 'material' and 'color'
|
// NOTE: This function looks for the key values 'material' and 'color'
|
||||||
// and uses them to set up the material + modulation color of the image
|
// and uses them to set up the material + modulation color of the image
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool InitializeTeamImage( KeyValues *pInitData, const char* pSectionName,
|
bool InitializeTeamImage( KeyValues *pInitData, const char* pSectionName,
|
||||||
vgui::Panel *pParent, C_BaseEntity *pEntity, CTeamBitmapImage* pBitmapImage );
|
vgui::Panel *pParent, C_BaseEntity *pEntity, CTeamBitmapImage* pBitmapImage );
|
||||||
|
|
||||||
|
|
||||||
#endif // TEAMBITMAPIMAGE_H
|
#endif // TEAMBITMAPIMAGE_H
|
@ -1,83 +1,83 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: This is a panel which is rendered image on top of an entity
|
// Purpose: This is a panel which is rendered image on top of an entity
|
||||||
//
|
//
|
||||||
// $Revision: $
|
// $Revision: $
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "ViewConeImage.h"
|
#include "ViewConeImage.h"
|
||||||
#include <KeyValues.h>
|
#include <KeyValues.h>
|
||||||
#include <vgui_controls/Panel.h>
|
#include <vgui_controls/Panel.h>
|
||||||
#include "VGuiMatSurface/IMatSystemSurface.h"
|
#include "VGuiMatSurface/IMatSystemSurface.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// initialization
|
// initialization
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool CViewConeImage::Init( vgui::Panel *pParent, KeyValues* pInitData )
|
bool CViewConeImage::Init( vgui::Panel *pParent, KeyValues* pInitData )
|
||||||
{
|
{
|
||||||
Assert( pParent );
|
Assert( pParent );
|
||||||
|
|
||||||
// Load viewcone material
|
// Load viewcone material
|
||||||
if (!m_Image.Init( pParent->GetVPanel(), pInitData ))
|
if (!m_Image.Init( pParent->GetVPanel(), pInitData ))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Position the view cone...
|
// Position the view cone...
|
||||||
int viewconesize = pInitData->GetInt( "size", 32 );
|
int viewconesize = pInitData->GetInt( "size", 32 );
|
||||||
m_Image.SetRenderSize( viewconesize, viewconesize );
|
m_Image.SetRenderSize( viewconesize, viewconesize );
|
||||||
|
|
||||||
int cx, cy;
|
int cx, cy;
|
||||||
pParent->GetSize( cx, cy );
|
pParent->GetSize( cx, cy );
|
||||||
m_Image.SetPos( (cx - viewconesize) / 2, (cy - viewconesize) / 2 );
|
m_Image.SetPos( (cx - viewconesize) / 2, (cy - viewconesize) / 2 );
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Paint the sucka
|
// Paint the sucka
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CViewConeImage::Paint( float yaw )
|
void CViewConeImage::Paint( float yaw )
|
||||||
{
|
{
|
||||||
g_pMatSystemSurface->DisableClipping( true );
|
g_pMatSystemSurface->DisableClipping( true );
|
||||||
|
|
||||||
m_Image.DoPaint( NULL, yaw );
|
m_Image.DoPaint( NULL, yaw );
|
||||||
|
|
||||||
g_pMatSystemSurface->DisableClipping( false );
|
g_pMatSystemSurface->DisableClipping( false );
|
||||||
}
|
}
|
||||||
|
|
||||||
void CViewConeImage::SetColor( int r, int g, int b )
|
void CViewConeImage::SetColor( int r, int g, int b )
|
||||||
{
|
{
|
||||||
m_Image.SetColor( Color( r, g, b, 255 ) );
|
m_Image.SetColor( Color( r, g, b, 255 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Helper method to initialize a view cone image from KeyValues data..
|
// Helper method to initialize a view cone image from KeyValues data..
|
||||||
// KeyValues contains the bitmap data, pSectionName, if it exists,
|
// KeyValues contains the bitmap data, pSectionName, if it exists,
|
||||||
// indicates which subsection of pInitData should be looked at to get at the
|
// indicates which subsection of pInitData should be looked at to get at the
|
||||||
// image data. The final argument is the bitmap image to initialize.
|
// image data. The final argument is the bitmap image to initialize.
|
||||||
// The function returns true if it succeeded.
|
// The function returns true if it succeeded.
|
||||||
//
|
//
|
||||||
// NOTE: This function looks for the key values 'material' and 'color'
|
// NOTE: This function looks for the key values 'material' and 'color'
|
||||||
// and uses them to set up the material + modulation color of the image
|
// and uses them to set up the material + modulation color of the image
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool InitializeViewConeImage( KeyValues *pInitData, const char* pSectionName,
|
bool InitializeViewConeImage( KeyValues *pInitData, const char* pSectionName,
|
||||||
vgui::Panel *pParent, CViewConeImage* pViewConeImage )
|
vgui::Panel *pParent, CViewConeImage* pViewConeImage )
|
||||||
{
|
{
|
||||||
KeyValues *pViewConeImageSection;
|
KeyValues *pViewConeImageSection;
|
||||||
if (pSectionName)
|
if (pSectionName)
|
||||||
{
|
{
|
||||||
pViewConeImageSection = pInitData->FindKey( pSectionName );
|
pViewConeImageSection = pInitData->FindKey( pSectionName );
|
||||||
if ( !pViewConeImageSection )
|
if ( !pViewConeImageSection )
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pViewConeImageSection = pInitData;
|
pViewConeImageSection = pInitData;
|
||||||
}
|
}
|
||||||
|
|
||||||
return pViewConeImage->Init( pParent, pViewConeImageSection );
|
return pViewConeImage->Init( pParent, pViewConeImageSection );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,56 +1,56 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose: This is a panel which draws a viewcone
|
// Purpose: This is a panel which draws a viewcone
|
||||||
//
|
//
|
||||||
// $Revision: $
|
// $Revision: $
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef VIEWCONEIMAGE_H
|
#ifndef VIEWCONEIMAGE_H
|
||||||
#define VIEWCONEIMAGE_H
|
#define VIEWCONEIMAGE_H
|
||||||
|
|
||||||
#include "shareddefs.h"
|
#include "shareddefs.h"
|
||||||
#include "vgui_bitmapimage.h"
|
#include "vgui_bitmapimage.h"
|
||||||
|
|
||||||
namespace vgui
|
namespace vgui
|
||||||
{
|
{
|
||||||
class Panel;
|
class Panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
class C_BaseEntity;
|
class C_BaseEntity;
|
||||||
class KeyValues;
|
class KeyValues;
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// A bitmap that renders a view cone based on angles
|
// A bitmap that renders a view cone based on angles
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
class CViewConeImage
|
class CViewConeImage
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
// initialization
|
// initialization
|
||||||
bool Init( vgui::Panel *pParent, KeyValues* pInitData );
|
bool Init( vgui::Panel *pParent, KeyValues* pInitData );
|
||||||
|
|
||||||
// Paint the sucka
|
// Paint the sucka
|
||||||
void Paint( float yaw );
|
void Paint( float yaw );
|
||||||
|
|
||||||
void SetColor( int r, int g, int b );
|
void SetColor( int r, int g, int b );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BitmapImage m_Image;
|
BitmapImage m_Image;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Helper method to initialize a view cone image from KeyValues data..
|
// Helper method to initialize a view cone image from KeyValues data..
|
||||||
// KeyValues contains the bitmap data, pSectionName, if it exists,
|
// KeyValues contains the bitmap data, pSectionName, if it exists,
|
||||||
// indicates which subsection of pInitData should be looked at to get at the
|
// indicates which subsection of pInitData should be looked at to get at the
|
||||||
// image data. The final argument is the bitmap image to initialize.
|
// image data. The final argument is the bitmap image to initialize.
|
||||||
// The function returns true if it succeeded.
|
// The function returns true if it succeeded.
|
||||||
//
|
//
|
||||||
// NOTE: This function looks for the key values 'material' and 'color'
|
// NOTE: This function looks for the key values 'material' and 'color'
|
||||||
// and uses them to set up the material + modulation color of the image
|
// and uses them to set up the material + modulation color of the image
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool InitializeViewConeImage( KeyValues *pInitData, const char* pSectionName,
|
bool InitializeViewConeImage( KeyValues *pInitData, const char* pSectionName,
|
||||||
vgui::Panel *pParent, CViewConeImage* pViewConeImage );
|
vgui::Panel *pParent, CViewConeImage* pViewConeImage );
|
||||||
|
|
||||||
|
|
||||||
#endif // VIEWCONEIMAGE_H
|
#endif // VIEWCONEIMAGE_H
|
@ -1,83 +1,83 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "materialsystem/imaterialproxy.h"
|
#include "materialsystem/imaterialproxy.h"
|
||||||
#include "materialsystem/imaterial.h"
|
#include "materialsystem/imaterial.h"
|
||||||
#include "materialsystem/imaterialvar.h"
|
#include "materialsystem/imaterialvar.h"
|
||||||
#include "iviewrender.h"
|
#include "iviewrender.h"
|
||||||
#include "toolframework_client.h"
|
#include "toolframework_client.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
||||||
|
|
||||||
// no inputs, assumes that the results go into $CHEAPWATERSTARTDISTANCE and $CHEAPWATERENDDISTANCE
|
// no inputs, assumes that the results go into $CHEAPWATERSTARTDISTANCE and $CHEAPWATERENDDISTANCE
|
||||||
class CWaterLODMaterialProxy : public IMaterialProxy
|
class CWaterLODMaterialProxy : public IMaterialProxy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CWaterLODMaterialProxy();
|
CWaterLODMaterialProxy();
|
||||||
virtual ~CWaterLODMaterialProxy();
|
virtual ~CWaterLODMaterialProxy();
|
||||||
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
||||||
virtual void OnBind( void *pC_BaseEntity );
|
virtual void OnBind( void *pC_BaseEntity );
|
||||||
virtual void Release( void ) { delete this; }
|
virtual void Release( void ) { delete this; }
|
||||||
virtual IMaterial *GetMaterial();
|
virtual IMaterial *GetMaterial();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
IMaterialVar *m_pCheapWaterStartDistanceVar;
|
IMaterialVar *m_pCheapWaterStartDistanceVar;
|
||||||
IMaterialVar *m_pCheapWaterEndDistanceVar;
|
IMaterialVar *m_pCheapWaterEndDistanceVar;
|
||||||
};
|
};
|
||||||
|
|
||||||
CWaterLODMaterialProxy::CWaterLODMaterialProxy()
|
CWaterLODMaterialProxy::CWaterLODMaterialProxy()
|
||||||
{
|
{
|
||||||
m_pCheapWaterStartDistanceVar = NULL;
|
m_pCheapWaterStartDistanceVar = NULL;
|
||||||
m_pCheapWaterEndDistanceVar = NULL;
|
m_pCheapWaterEndDistanceVar = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
CWaterLODMaterialProxy::~CWaterLODMaterialProxy()
|
CWaterLODMaterialProxy::~CWaterLODMaterialProxy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CWaterLODMaterialProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
bool CWaterLODMaterialProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
||||||
{
|
{
|
||||||
bool foundVar;
|
bool foundVar;
|
||||||
m_pCheapWaterStartDistanceVar = pMaterial->FindVar( "$CHEAPWATERSTARTDISTANCE", &foundVar, false );
|
m_pCheapWaterStartDistanceVar = pMaterial->FindVar( "$CHEAPWATERSTARTDISTANCE", &foundVar, false );
|
||||||
if( !foundVar )
|
if( !foundVar )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
m_pCheapWaterEndDistanceVar = pMaterial->FindVar( "$CHEAPWATERENDDISTANCE", &foundVar, false );
|
m_pCheapWaterEndDistanceVar = pMaterial->FindVar( "$CHEAPWATERENDDISTANCE", &foundVar, false );
|
||||||
if( !foundVar )
|
if( !foundVar )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CWaterLODMaterialProxy::OnBind( void *pC_BaseEntity )
|
void CWaterLODMaterialProxy::OnBind( void *pC_BaseEntity )
|
||||||
{
|
{
|
||||||
if( !m_pCheapWaterStartDistanceVar || !m_pCheapWaterEndDistanceVar )
|
if( !m_pCheapWaterStartDistanceVar || !m_pCheapWaterEndDistanceVar )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
float start, end;
|
float start, end;
|
||||||
view->GetWaterLODParams( start, end );
|
view->GetWaterLODParams( start, end );
|
||||||
m_pCheapWaterStartDistanceVar->SetFloatValue( start );
|
m_pCheapWaterStartDistanceVar->SetFloatValue( start );
|
||||||
m_pCheapWaterEndDistanceVar->SetFloatValue( end );
|
m_pCheapWaterEndDistanceVar->SetFloatValue( end );
|
||||||
|
|
||||||
if ( ToolsEnabled() )
|
if ( ToolsEnabled() )
|
||||||
{
|
{
|
||||||
ToolFramework_RecordMaterialParams( GetMaterial() );
|
ToolFramework_RecordMaterialParams( GetMaterial() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IMaterial *CWaterLODMaterialProxy::GetMaterial()
|
IMaterial *CWaterLODMaterialProxy::GetMaterial()
|
||||||
{
|
{
|
||||||
return m_pCheapWaterStartDistanceVar->GetOwningMaterial();
|
return m_pCheapWaterStartDistanceVar->GetOwningMaterial();
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPOSE_INTERFACE( CWaterLODMaterialProxy, IMaterialProxy, "WaterLOD" IMATERIAL_PROXY_INTERFACE_VERSION );
|
EXPOSE_INTERFACE( CWaterLODMaterialProxy, IMaterialProxy, "WaterLOD" IMATERIAL_PROXY_INTERFACE_VERSION );
|
||||||
|
@ -1,78 +1,78 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "materialsystem/imaterialproxy.h"
|
#include "materialsystem/imaterialproxy.h"
|
||||||
#include "materialsystem/imaterial.h"
|
#include "materialsystem/imaterial.h"
|
||||||
#include "materialsystem/imaterialvar.h"
|
#include "materialsystem/imaterialvar.h"
|
||||||
#include "c_world.h"
|
#include "c_world.h"
|
||||||
#include "toolframework_client.h"
|
#include "toolframework_client.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
// forward declarations
|
// forward declarations
|
||||||
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
void ToolFramework_RecordMaterialParams( IMaterial *pMaterial );
|
||||||
|
|
||||||
class CWorldDimsProxy : public IMaterialProxy
|
class CWorldDimsProxy : public IMaterialProxy
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CWorldDimsProxy();
|
CWorldDimsProxy();
|
||||||
virtual ~CWorldDimsProxy();
|
virtual ~CWorldDimsProxy();
|
||||||
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
virtual bool Init( IMaterial *pMaterial, KeyValues *pKeyValues );
|
||||||
virtual void OnBind( void *pC_BaseEntity );
|
virtual void OnBind( void *pC_BaseEntity );
|
||||||
virtual void Release( void ) { delete this; }
|
virtual void Release( void ) { delete this; }
|
||||||
virtual IMaterial *GetMaterial();
|
virtual IMaterial *GetMaterial();
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
IMaterialVar *m_pMinsVar;
|
IMaterialVar *m_pMinsVar;
|
||||||
IMaterialVar *m_pMaxsVar;
|
IMaterialVar *m_pMaxsVar;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
CWorldDimsProxy::CWorldDimsProxy()
|
CWorldDimsProxy::CWorldDimsProxy()
|
||||||
{
|
{
|
||||||
m_pMinsVar = m_pMaxsVar = NULL;
|
m_pMinsVar = m_pMaxsVar = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
CWorldDimsProxy::~CWorldDimsProxy()
|
CWorldDimsProxy::~CWorldDimsProxy()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CWorldDimsProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
bool CWorldDimsProxy::Init( IMaterial *pMaterial, KeyValues *pKeyValues )
|
||||||
{
|
{
|
||||||
m_pMinsVar = pMaterial->FindVar( "$world_mins", NULL, false );
|
m_pMinsVar = pMaterial->FindVar( "$world_mins", NULL, false );
|
||||||
m_pMaxsVar = pMaterial->FindVar( "$world_maxs", NULL, false );
|
m_pMaxsVar = pMaterial->FindVar( "$world_maxs", NULL, false );
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CWorldDimsProxy::OnBind( void *pC_BaseEntity )
|
void CWorldDimsProxy::OnBind( void *pC_BaseEntity )
|
||||||
{
|
{
|
||||||
if ( m_pMinsVar && m_pMaxsVar )
|
if ( m_pMinsVar && m_pMaxsVar )
|
||||||
{
|
{
|
||||||
C_World *pWorld = GetClientWorldEntity();
|
C_World *pWorld = GetClientWorldEntity();
|
||||||
if ( pWorld )
|
if ( pWorld )
|
||||||
{
|
{
|
||||||
m_pMinsVar->SetVecValue( (const float*)&pWorld->m_WorldMins, 3 );
|
m_pMinsVar->SetVecValue( (const float*)&pWorld->m_WorldMins, 3 );
|
||||||
m_pMaxsVar->SetVecValue( (const float*)&pWorld->m_WorldMaxs, 3 );
|
m_pMaxsVar->SetVecValue( (const float*)&pWorld->m_WorldMaxs, 3 );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ToolsEnabled() )
|
if ( ToolsEnabled() )
|
||||||
{
|
{
|
||||||
ToolFramework_RecordMaterialParams( GetMaterial() );
|
ToolFramework_RecordMaterialParams( GetMaterial() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IMaterial *CWorldDimsProxy::GetMaterial()
|
IMaterial *CWorldDimsProxy::GetMaterial()
|
||||||
{
|
{
|
||||||
return m_pMinsVar->GetOwningMaterial();
|
return m_pMinsVar->GetOwningMaterial();
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPOSE_INTERFACE( CWorldDimsProxy, IMaterialProxy, "WorldDims" IMATERIAL_PROXY_INTERFACE_VERSION );
|
EXPOSE_INTERFACE( CWorldDimsProxy, IMaterialProxy, "WorldDims" IMATERIAL_PROXY_INTERFACE_VERSION );
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,272 +1,272 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
#include "hud.h"
|
#include "hud.h"
|
||||||
#include "hud_macros.h"
|
#include "hud_macros.h"
|
||||||
#include "hudelement.h"
|
#include "hudelement.h"
|
||||||
#include "iclientmode.h"
|
#include "iclientmode.h"
|
||||||
#include "ienginevgui.h"
|
#include "ienginevgui.h"
|
||||||
#include <vgui/ILocalize.h>
|
#include <vgui/ILocalize.h>
|
||||||
#include <vgui/ISurface.h>
|
#include <vgui/ISurface.h>
|
||||||
#include <vgui/IVGui.h>
|
#include <vgui/IVGui.h>
|
||||||
#include <vgui_controls/EditablePanel.h>
|
#include <vgui_controls/EditablePanel.h>
|
||||||
#include <vgui_controls/Label.h>
|
#include <vgui_controls/Label.h>
|
||||||
#include <vgui_controls/ImagePanel.h>
|
#include <vgui_controls/ImagePanel.h>
|
||||||
#include "achievement_notification_panel.h"
|
#include "achievement_notification_panel.h"
|
||||||
#include "steam/steam_api.h"
|
#include "steam/steam_api.h"
|
||||||
#include "iachievementmgr.h"
|
#include "iachievementmgr.h"
|
||||||
#include "fmtstr.h"
|
#include "fmtstr.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
using namespace vgui;
|
using namespace vgui;
|
||||||
|
|
||||||
#define ACHIEVEMENT_NOTIFICATION_DURATION 10.0f
|
#define ACHIEVEMENT_NOTIFICATION_DURATION 10.0f
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
DECLARE_HUDELEMENT_DEPTH( CAchievementNotificationPanel, 100 );
|
DECLARE_HUDELEMENT_DEPTH( CAchievementNotificationPanel, 100 );
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
CAchievementNotificationPanel::CAchievementNotificationPanel( const char *pElementName ) : CHudElement( pElementName ), BaseClass( NULL, "AchievementNotificationPanel" )
|
CAchievementNotificationPanel::CAchievementNotificationPanel( const char *pElementName ) : CHudElement( pElementName ), BaseClass( NULL, "AchievementNotificationPanel" )
|
||||||
{
|
{
|
||||||
Panel *pParent = g_pClientMode->GetViewport();
|
Panel *pParent = g_pClientMode->GetViewport();
|
||||||
SetParent( pParent );
|
SetParent( pParent );
|
||||||
|
|
||||||
m_flHideTime = 0;
|
m_flHideTime = 0;
|
||||||
m_pPanelBackground = new EditablePanel( this, "Notification_Background" );
|
m_pPanelBackground = new EditablePanel( this, "Notification_Background" );
|
||||||
m_pIcon = new ImagePanel( this, "Notification_Icon" );
|
m_pIcon = new ImagePanel( this, "Notification_Icon" );
|
||||||
m_pLabelHeading = new Label( this, "HeadingLabel", "" );
|
m_pLabelHeading = new Label( this, "HeadingLabel", "" );
|
||||||
m_pLabelTitle = new Label( this, "TitleLabel", "" );
|
m_pLabelTitle = new Label( this, "TitleLabel", "" );
|
||||||
|
|
||||||
m_pIcon->SetShouldScaleImage( true );
|
m_pIcon->SetShouldScaleImage( true );
|
||||||
|
|
||||||
vgui::ivgui()->AddTickSignal( GetVPanel() );
|
vgui::ivgui()->AddTickSignal( GetVPanel() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::Init()
|
void CAchievementNotificationPanel::Init()
|
||||||
{
|
{
|
||||||
ListenForGameEvent( "achievement_event" );
|
ListenForGameEvent( "achievement_event" );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::ApplySchemeSettings( IScheme *pScheme )
|
void CAchievementNotificationPanel::ApplySchemeSettings( IScheme *pScheme )
|
||||||
{
|
{
|
||||||
// load control settings...
|
// load control settings...
|
||||||
LoadControlSettings( "resource/UI/AchievementNotification.res" );
|
LoadControlSettings( "resource/UI/AchievementNotification.res" );
|
||||||
|
|
||||||
BaseClass::ApplySchemeSettings( pScheme );
|
BaseClass::ApplySchemeSettings( pScheme );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::PerformLayout( void )
|
void CAchievementNotificationPanel::PerformLayout( void )
|
||||||
{
|
{
|
||||||
BaseClass::PerformLayout();
|
BaseClass::PerformLayout();
|
||||||
|
|
||||||
// Set background color of various elements. Need to do this in code, if we do it in res file it gets slammed by the
|
// Set background color of various elements. Need to do this in code, if we do it in res file it gets slammed by the
|
||||||
// scheme. (Incl. label background: some products don't have label background colors set in their scheme and helpfully slam it to white.)
|
// scheme. (Incl. label background: some products don't have label background colors set in their scheme and helpfully slam it to white.)
|
||||||
SetBgColor( Color( 0, 0, 0, 0 ) );
|
SetBgColor( Color( 0, 0, 0, 0 ) );
|
||||||
m_pLabelHeading->SetBgColor( Color( 0, 0, 0, 0 ) );
|
m_pLabelHeading->SetBgColor( Color( 0, 0, 0, 0 ) );
|
||||||
m_pLabelTitle->SetBgColor( Color( 0, 0, 0, 0 ) );
|
m_pLabelTitle->SetBgColor( Color( 0, 0, 0, 0 ) );
|
||||||
m_pPanelBackground->SetBgColor( Color( 62,70,55, 200 ) );
|
m_pPanelBackground->SetBgColor( Color( 62,70,55, 200 ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::FireGameEvent( IGameEvent * event )
|
void CAchievementNotificationPanel::FireGameEvent( IGameEvent * event )
|
||||||
{
|
{
|
||||||
const char *name = event->GetName();
|
const char *name = event->GetName();
|
||||||
if ( 0 == Q_strcmp( name, "achievement_event" ) )
|
if ( 0 == Q_strcmp( name, "achievement_event" ) )
|
||||||
{
|
{
|
||||||
const char *pchName = event->GetString( "achievement_name" );
|
const char *pchName = event->GetString( "achievement_name" );
|
||||||
int iCur = event->GetInt( "cur_val" );
|
int iCur = event->GetInt( "cur_val" );
|
||||||
int iMax = event->GetInt( "max_val" );
|
int iMax = event->GetInt( "max_val" );
|
||||||
wchar_t szLocalizedName[256]=L"";
|
wchar_t szLocalizedName[256]=L"";
|
||||||
|
|
||||||
if ( IsPC() )
|
if ( IsPC() )
|
||||||
{
|
{
|
||||||
// shouldn't ever get achievement progress if steam not running and user logged in, but check just in case
|
// shouldn't ever get achievement progress if steam not running and user logged in, but check just in case
|
||||||
if ( !steamapicontext->SteamUserStats() )
|
if ( !steamapicontext->SteamUserStats() )
|
||||||
{
|
{
|
||||||
Msg( "Steam not running, achievement progress notification not displayed\n" );
|
Msg( "Steam not running, achievement progress notification not displayed\n" );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// use Steam to show achievement progress UI
|
// use Steam to show achievement progress UI
|
||||||
steamapicontext->SteamUserStats()->IndicateAchievementProgress( pchName, iCur, iMax );
|
steamapicontext->SteamUserStats()->IndicateAchievementProgress( pchName, iCur, iMax );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// on X360 we need to show our own achievement progress UI
|
// on X360 we need to show our own achievement progress UI
|
||||||
|
|
||||||
const wchar_t *pchLocalizedName = ACHIEVEMENT_LOCALIZED_NAME_FROM_STR( pchName );
|
const wchar_t *pchLocalizedName = ACHIEVEMENT_LOCALIZED_NAME_FROM_STR( pchName );
|
||||||
Assert( pchLocalizedName );
|
Assert( pchLocalizedName );
|
||||||
if ( !pchLocalizedName || !pchLocalizedName[0] )
|
if ( !pchLocalizedName || !pchLocalizedName[0] )
|
||||||
return;
|
return;
|
||||||
Q_wcsncpy( szLocalizedName, pchLocalizedName, sizeof( szLocalizedName ) );
|
Q_wcsncpy( szLocalizedName, pchLocalizedName, sizeof( szLocalizedName ) );
|
||||||
|
|
||||||
// this is achievement progress, compose the message of form: "<name> (<#>/<max>)"
|
// this is achievement progress, compose the message of form: "<name> (<#>/<max>)"
|
||||||
wchar_t szFmt[128]=L"";
|
wchar_t szFmt[128]=L"";
|
||||||
wchar_t szText[512]=L"";
|
wchar_t szText[512]=L"";
|
||||||
wchar_t szNumFound[16]=L"";
|
wchar_t szNumFound[16]=L"";
|
||||||
wchar_t szNumTotal[16]=L"";
|
wchar_t szNumTotal[16]=L"";
|
||||||
_snwprintf( szNumFound, ARRAYSIZE( szNumFound ), L"%i", iCur );
|
_snwprintf( szNumFound, ARRAYSIZE( szNumFound ), L"%i", iCur );
|
||||||
_snwprintf( szNumTotal, ARRAYSIZE( szNumTotal ), L"%i", iMax );
|
_snwprintf( szNumTotal, ARRAYSIZE( szNumTotal ), L"%i", iMax );
|
||||||
|
|
||||||
const wchar_t *pchFmt = g_pVGuiLocalize->Find( "#GameUI_Achievement_Progress_Fmt" );
|
const wchar_t *pchFmt = g_pVGuiLocalize->Find( "#GameUI_Achievement_Progress_Fmt" );
|
||||||
if ( !pchFmt || !pchFmt[0] )
|
if ( !pchFmt || !pchFmt[0] )
|
||||||
return;
|
return;
|
||||||
Q_wcsncpy( szFmt, pchFmt, sizeof( szFmt ) );
|
Q_wcsncpy( szFmt, pchFmt, sizeof( szFmt ) );
|
||||||
|
|
||||||
g_pVGuiLocalize->ConstructString( szText, sizeof( szText ), szFmt, 3, szLocalizedName, szNumFound, szNumTotal );
|
g_pVGuiLocalize->ConstructString( szText, sizeof( szText ), szFmt, 3, szLocalizedName, szNumFound, szNumTotal );
|
||||||
AddNotification( pchName, g_pVGuiLocalize->Find( "#GameUI_Achievement_Progress" ), szText );
|
AddNotification( pchName, g_pVGuiLocalize->Find( "#GameUI_Achievement_Progress" ), szText );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Called on each tick
|
// Purpose: Called on each tick
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::OnTick( void )
|
void CAchievementNotificationPanel::OnTick( void )
|
||||||
{
|
{
|
||||||
if ( ( m_flHideTime > 0 ) && ( m_flHideTime < gpGlobals->curtime ) )
|
if ( ( m_flHideTime > 0 ) && ( m_flHideTime < gpGlobals->curtime ) )
|
||||||
{
|
{
|
||||||
m_flHideTime = 0;
|
m_flHideTime = 0;
|
||||||
ShowNextNotification();
|
ShowNextNotification();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
bool CAchievementNotificationPanel::ShouldDraw( void )
|
bool CAchievementNotificationPanel::ShouldDraw( void )
|
||||||
{
|
{
|
||||||
return ( ( m_flHideTime > 0 ) && ( m_flHideTime > gpGlobals->curtime ) && CHudElement::ShouldDraw() );
|
return ( ( m_flHideTime > 0 ) && ( m_flHideTime > gpGlobals->curtime ) && CHudElement::ShouldDraw() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::AddNotification( const char *szIconBaseName, const wchar_t *pHeading, const wchar_t *pTitle )
|
void CAchievementNotificationPanel::AddNotification( const char *szIconBaseName, const wchar_t *pHeading, const wchar_t *pTitle )
|
||||||
{
|
{
|
||||||
// put this notification in our queue
|
// put this notification in our queue
|
||||||
int iQueueItem = m_queueNotification.AddToTail();
|
int iQueueItem = m_queueNotification.AddToTail();
|
||||||
Notification_t ¬ification = m_queueNotification[iQueueItem];
|
Notification_t ¬ification = m_queueNotification[iQueueItem];
|
||||||
Q_strncpy( notification.szIconBaseName, szIconBaseName, ARRAYSIZE( notification.szIconBaseName ) );
|
Q_strncpy( notification.szIconBaseName, szIconBaseName, ARRAYSIZE( notification.szIconBaseName ) );
|
||||||
Q_wcsncpy( notification.szHeading, pHeading, sizeof( notification.szHeading ) );
|
Q_wcsncpy( notification.szHeading, pHeading, sizeof( notification.szHeading ) );
|
||||||
Q_wcsncpy( notification.szTitle, pTitle, sizeof( notification.szTitle ) );
|
Q_wcsncpy( notification.szTitle, pTitle, sizeof( notification.szTitle ) );
|
||||||
|
|
||||||
// if we are not currently displaying a notification, go ahead and show this one
|
// if we are not currently displaying a notification, go ahead and show this one
|
||||||
if ( 0 == m_flHideTime )
|
if ( 0 == m_flHideTime )
|
||||||
{
|
{
|
||||||
ShowNextNotification();
|
ShowNextNotification();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Shows next notification in queue if there is one
|
// Purpose: Shows next notification in queue if there is one
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::ShowNextNotification()
|
void CAchievementNotificationPanel::ShowNextNotification()
|
||||||
{
|
{
|
||||||
// see if we have anything to do
|
// see if we have anything to do
|
||||||
if ( 0 == m_queueNotification.Count() )
|
if ( 0 == m_queueNotification.Count() )
|
||||||
{
|
{
|
||||||
m_flHideTime = 0;
|
m_flHideTime = 0;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Notification_t ¬ification = m_queueNotification[ m_queueNotification.Head() ];
|
Notification_t ¬ification = m_queueNotification[ m_queueNotification.Head() ];
|
||||||
|
|
||||||
m_flHideTime = gpGlobals->curtime + ACHIEVEMENT_NOTIFICATION_DURATION;
|
m_flHideTime = gpGlobals->curtime + ACHIEVEMENT_NOTIFICATION_DURATION;
|
||||||
|
|
||||||
// set the text and icon in the dialog
|
// set the text and icon in the dialog
|
||||||
SetDialogVariable( "heading", notification.szHeading );
|
SetDialogVariable( "heading", notification.szHeading );
|
||||||
SetDialogVariable( "title", notification.szTitle );
|
SetDialogVariable( "title", notification.szTitle );
|
||||||
const char *pchIconBaseName = notification.szIconBaseName;
|
const char *pchIconBaseName = notification.szIconBaseName;
|
||||||
if ( pchIconBaseName && pchIconBaseName[0] )
|
if ( pchIconBaseName && pchIconBaseName[0] )
|
||||||
{
|
{
|
||||||
m_pIcon->SetImage( CFmtStr( "achievements/%s.vmt", pchIconBaseName ) );
|
m_pIcon->SetImage( CFmtStr( "achievements/%s.vmt", pchIconBaseName ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// resize the panel so it always looks good
|
// resize the panel so it always looks good
|
||||||
|
|
||||||
// get fonts
|
// get fonts
|
||||||
HFont hFontHeading = m_pLabelHeading->GetFont();
|
HFont hFontHeading = m_pLabelHeading->GetFont();
|
||||||
HFont hFontTitle = m_pLabelTitle->GetFont();
|
HFont hFontTitle = m_pLabelTitle->GetFont();
|
||||||
// determine how wide the text strings are
|
// determine how wide the text strings are
|
||||||
int iHeadingWidth = UTIL_ComputeStringWidth( hFontHeading, notification.szHeading );
|
int iHeadingWidth = UTIL_ComputeStringWidth( hFontHeading, notification.szHeading );
|
||||||
int iTitleWidth = UTIL_ComputeStringWidth( hFontTitle, notification.szTitle );
|
int iTitleWidth = UTIL_ComputeStringWidth( hFontTitle, notification.szTitle );
|
||||||
// use the widest string
|
// use the widest string
|
||||||
int iTextWidth = MAX( iHeadingWidth, iTitleWidth );
|
int iTextWidth = MAX( iHeadingWidth, iTitleWidth );
|
||||||
// don't let it be insanely wide
|
// don't let it be insanely wide
|
||||||
iTextWidth = MIN( iTextWidth, XRES( 300 ) );
|
iTextWidth = MIN( iTextWidth, XRES( 300 ) );
|
||||||
int iIconWidth = m_pIcon->GetWide();
|
int iIconWidth = m_pIcon->GetWide();
|
||||||
int iSpacing = XRES( 10 );
|
int iSpacing = XRES( 10 );
|
||||||
int iPanelWidth = iSpacing + iIconWidth + iSpacing + iTextWidth + iSpacing;
|
int iPanelWidth = iSpacing + iIconWidth + iSpacing + iTextWidth + iSpacing;
|
||||||
int iPanelX = GetWide() - iPanelWidth;
|
int iPanelX = GetWide() - iPanelWidth;
|
||||||
int iIconX = iPanelX + iSpacing;
|
int iIconX = iPanelX + iSpacing;
|
||||||
int iTextX = iIconX + iIconWidth + iSpacing;
|
int iTextX = iIconX + iIconWidth + iSpacing;
|
||||||
// resize all the elements
|
// resize all the elements
|
||||||
SetXAndWide( m_pPanelBackground, iPanelX, iPanelWidth );
|
SetXAndWide( m_pPanelBackground, iPanelX, iPanelWidth );
|
||||||
SetXAndWide( m_pIcon, iIconX, iIconWidth );
|
SetXAndWide( m_pIcon, iIconX, iIconWidth );
|
||||||
SetXAndWide( m_pLabelHeading, iTextX, iTextWidth );
|
SetXAndWide( m_pLabelHeading, iTextX, iTextWidth );
|
||||||
SetXAndWide( m_pLabelTitle, iTextX, iTextWidth );
|
SetXAndWide( m_pLabelTitle, iTextX, iTextWidth );
|
||||||
|
|
||||||
m_queueNotification.Remove( m_queueNotification.Head() );
|
m_queueNotification.Remove( m_queueNotification.Head() );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CAchievementNotificationPanel::SetXAndWide( Panel *pPanel, int x, int wide )
|
void CAchievementNotificationPanel::SetXAndWide( Panel *pPanel, int x, int wide )
|
||||||
{
|
{
|
||||||
int xCur, yCur;
|
int xCur, yCur;
|
||||||
pPanel->GetPos( xCur, yCur );
|
pPanel->GetPos( xCur, yCur );
|
||||||
pPanel->SetPos( x, yCur );
|
pPanel->SetPos( x, yCur );
|
||||||
pPanel->SetWide( wide );
|
pPanel->SetWide( wide );
|
||||||
}
|
}
|
||||||
|
|
||||||
CON_COMMAND_F( achievement_notification_test, "Test the hud notification UI", FCVAR_CHEAT | FCVAR_DEVELOPMENTONLY )
|
CON_COMMAND_F( achievement_notification_test, "Test the hud notification UI", FCVAR_CHEAT | FCVAR_DEVELOPMENTONLY )
|
||||||
{
|
{
|
||||||
static int iCount=0;
|
static int iCount=0;
|
||||||
|
|
||||||
CAchievementNotificationPanel *pPanel = GET_HUDELEMENT( CAchievementNotificationPanel );
|
CAchievementNotificationPanel *pPanel = GET_HUDELEMENT( CAchievementNotificationPanel );
|
||||||
if ( pPanel )
|
if ( pPanel )
|
||||||
{
|
{
|
||||||
pPanel->AddNotification( "HL2_KILL_ODESSAGUNSHIP", L"Achievement Progress", ( 0 == ( iCount % 2 ) ? L"Test Notification Message A (1/10)" :
|
pPanel->AddNotification( "HL2_KILL_ODESSAGUNSHIP", L"Achievement Progress", ( 0 == ( iCount % 2 ) ? L"Test Notification Message A (1/10)" :
|
||||||
L"Test Message B" ) );
|
L"Test Message B" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
IGameEvent *event = gameeventmanager->CreateEvent( "achievement_event" );
|
IGameEvent *event = gameeventmanager->CreateEvent( "achievement_event" );
|
||||||
if ( event )
|
if ( event )
|
||||||
{
|
{
|
||||||
const char *szTestStr[] = { "TF_GET_HEADSHOTS", "TF_PLAY_GAME_EVERYMAP", "TF_PLAY_GAME_EVERYCLASS", "TF_GET_HEALPOINTS" };
|
const char *szTestStr[] = { "TF_GET_HEADSHOTS", "TF_PLAY_GAME_EVERYMAP", "TF_PLAY_GAME_EVERYCLASS", "TF_GET_HEALPOINTS" };
|
||||||
event->SetString( "achievement_name", szTestStr[iCount%ARRAYSIZE(szTestStr)] );
|
event->SetString( "achievement_name", szTestStr[iCount%ARRAYSIZE(szTestStr)] );
|
||||||
event->SetInt( "cur_val", ( iCount%9 ) + 1 );
|
event->SetInt( "cur_val", ( iCount%9 ) + 1 );
|
||||||
event->SetInt( "max_val", 10 );
|
event->SetInt( "max_val", 10 );
|
||||||
gameeventmanager->FireEvent( event );
|
gameeventmanager->FireEvent( event );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
iCount++;
|
iCount++;
|
||||||
}
|
}
|
@ -1,57 +1,57 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||||
//
|
//
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
// $NoKeywords: $
|
// $NoKeywords: $
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
|
|
||||||
#ifndef ACHIEVEMENT_NOTIFICATION_PANEL_H
|
#ifndef ACHIEVEMENT_NOTIFICATION_PANEL_H
|
||||||
#define ACHIEVEMENT_NOTIFICATION_PANEL_H
|
#define ACHIEVEMENT_NOTIFICATION_PANEL_H
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma once
|
#pragma once
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <vgui_controls/EditablePanel.h>
|
#include <vgui_controls/EditablePanel.h>
|
||||||
#include "hudelement.h"
|
#include "hudelement.h"
|
||||||
|
|
||||||
using namespace vgui;
|
using namespace vgui;
|
||||||
|
|
||||||
class CAchievementNotificationPanel : public CHudElement, public EditablePanel
|
class CAchievementNotificationPanel : public CHudElement, public EditablePanel
|
||||||
{
|
{
|
||||||
DECLARE_CLASS_SIMPLE( CAchievementNotificationPanel, EditablePanel );
|
DECLARE_CLASS_SIMPLE( CAchievementNotificationPanel, EditablePanel );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
CAchievementNotificationPanel( const char *pElementName );
|
CAchievementNotificationPanel( const char *pElementName );
|
||||||
|
|
||||||
virtual void Init();
|
virtual void Init();
|
||||||
virtual void ApplySchemeSettings( IScheme *scheme );
|
virtual void ApplySchemeSettings( IScheme *scheme );
|
||||||
virtual bool ShouldDraw( void );
|
virtual bool ShouldDraw( void );
|
||||||
virtual void PerformLayout( void );
|
virtual void PerformLayout( void );
|
||||||
virtual void LevelInit( void ) { m_flHideTime = 0; }
|
virtual void LevelInit( void ) { m_flHideTime = 0; }
|
||||||
virtual void FireGameEvent( IGameEvent * event );
|
virtual void FireGameEvent( IGameEvent * event );
|
||||||
virtual void OnTick( void );
|
virtual void OnTick( void );
|
||||||
|
|
||||||
void AddNotification( const char *szIconBaseName, const wchar_t *pHeading, const wchar_t *pTitle );
|
void AddNotification( const char *szIconBaseName, const wchar_t *pHeading, const wchar_t *pTitle );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ShowNextNotification();
|
void ShowNextNotification();
|
||||||
void SetXAndWide( Panel *pPanel, int x, int wide );
|
void SetXAndWide( Panel *pPanel, int x, int wide );
|
||||||
|
|
||||||
float m_flHideTime;
|
float m_flHideTime;
|
||||||
|
|
||||||
Label *m_pLabelHeading;
|
Label *m_pLabelHeading;
|
||||||
Label *m_pLabelTitle;
|
Label *m_pLabelTitle;
|
||||||
EditablePanel *m_pPanelBackground;
|
EditablePanel *m_pPanelBackground;
|
||||||
ImagePanel *m_pIcon;
|
ImagePanel *m_pIcon;
|
||||||
|
|
||||||
struct Notification_t
|
struct Notification_t
|
||||||
{
|
{
|
||||||
char szIconBaseName[255];
|
char szIconBaseName[255];
|
||||||
wchar_t szHeading[255];
|
wchar_t szHeading[255];
|
||||||
wchar_t szTitle[255];
|
wchar_t szTitle[255];
|
||||||
};
|
};
|
||||||
|
|
||||||
CUtlLinkedList<Notification_t> m_queueNotification;
|
CUtlLinkedList<Notification_t> m_queueNotification;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // ACHIEVEMENT_NOTIFICATION_PANEL_H
|
#endif // ACHIEVEMENT_NOTIFICATION_PANEL_H
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user