mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-08 01:39:36 +00:00
1
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose: Player class data file parsing, shared by game & client dlls.
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef PLAYERCLASS_INFO_PARSE_H
|
||||
#define PLAYERCLASS_INFO_PARSE_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include "shareddefs.h"
|
||||
|
||||
class IFileSystem;
|
||||
class KeyValues;
|
||||
|
||||
typedef unsigned short PLAYERCLASS_FILE_INFO_HANDLE;
|
||||
|
||||
#define MAX_PLAYERCLASS_NAME_LENGTH 128
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Contains the data read from the player class script files.
|
||||
// It's cached so we only read each script file once.
|
||||
// Each game provides a CreatePlayerClassInfo function so it can have game-specific
|
||||
// data in the player class scripts.
|
||||
//-----------------------------------------------------------------------------
|
||||
class FilePlayerClassInfo_t
|
||||
{
|
||||
public:
|
||||
|
||||
FilePlayerClassInfo_t();
|
||||
|
||||
// Each game can override this to get whatever values it wants from the script.
|
||||
virtual void Parse( KeyValues *pKeyValuesData, const char *szClassName );
|
||||
|
||||
|
||||
public:
|
||||
bool m_bParsedScript;
|
||||
|
||||
public:
|
||||
// Class properties
|
||||
|
||||
// todo : better lengths for these arrays ?
|
||||
|
||||
char m_szPlayerClassName[MAX_PLAYERCLASS_NAME_LENGTH];
|
||||
char m_szPrintName[MAX_PLAYERCLASS_NAME_LENGTH]; // localization key for print name
|
||||
char m_szPlayerModel[MAX_PLAYERCLASS_NAME_LENGTH];
|
||||
char m_szSelectCmd[32]; //command the player can issue to switch to this class
|
||||
};
|
||||
|
||||
// The weapon parse function
|
||||
bool ReadPlayerClassDataFromFileForSlot( IFileSystem* filesystem, const char *szClassName,
|
||||
PLAYERCLASS_FILE_INFO_HANDLE *phandle, const unsigned char *pICEKey = NULL );
|
||||
|
||||
// If player class info has been loaded for the specified class name, this returns it.
|
||||
PLAYERCLASS_FILE_INFO_HANDLE LookupPlayerClassInfoSlot( const char *name );
|
||||
|
||||
// Given a handle to the player class info, return the class data
|
||||
FilePlayerClassInfo_t *GetFilePlayerClassInfoFromHandle( PLAYERCLASS_FILE_INFO_HANDLE handle );
|
||||
|
||||
// Get the null Player Class object
|
||||
PLAYERCLASS_FILE_INFO_HANDLE GetInvalidPlayerClassInfoHandle( void );
|
||||
|
||||
// Initialize all player class info
|
||||
void ResetFilePlayerClassInfoDatabase( void );
|
||||
|
||||
|
||||
//
|
||||
// Read a possibly-encrypted KeyValues file in.
|
||||
// If pICEKey is NULL, then it appends .txt to the filename and loads it as an unencrypted file.
|
||||
// If pICEKey is non-NULL, then it appends .ctx to the filename and loads it as an encrypted file.
|
||||
//
|
||||
// (This should be moved into a more appropriate place).
|
||||
//
|
||||
extern KeyValues* ReadEncryptedKVPlayerClassFile( IFileSystem *filesystem, const char *szFilenameWithoutExtension, const unsigned char *pICEKey );
|
||||
|
||||
|
||||
// Each game implements this. It can return a derived class and override Parse() if it wants.
|
||||
extern FilePlayerClassInfo_t* CreatePlayerClassInfo();
|
||||
|
||||
|
||||
#endif // PLAYERCLASS_INFO_PARSE_H
|
||||
Reference in New Issue
Block a user