Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.2 KiB

#ifndef CASW_KEYVALUESDATABASE_H
#define CASW_KEYVALUESDATABASE_H
#ifdef _WIN32
#pragma once
#endif
#include "utlvector.h"
class KeyValues;
//-----------------------------------------------------------------------------
// A generic database which recursively loads all .txt files in a folder.
// Also sets the "Filename" key to the relative path of the file.
//-----------------------------------------------------------------------------
class CASW_KeyValuesDatabase
{
public:
CASW_KeyValuesDatabase();
int GetFileCount() { return m_Files.Count(); }
KeyValues *GetFile( int nFileIndex ) { return m_Files[nFileIndex].m_pKeyValues; }
const char* GetFilename( int nFileIndex ) { return m_Files[nFileIndex].m_Filename; }
KeyValues* GetFileByName( const char *pFilename );
KeyValues *ReloadFile( const char *pFilename );
// Folder must have a trailing slash
void LoadFiles( const char *pFolderName );
void AddFile( KeyValues *pKeyValues, const char *pFilename );
private:
void LoadFilesInFolder( const char *pPath );
static bool m_bLoadedLocalization;
char m_RootFolder[MAX_PATH];
struct FileEntry_t
{
char m_Filename[MAX_PATH];
KeyValues* m_pKeyValues;
};
CUtlVector< FileEntry_t > m_Files;
};
#endif // CASW_KEYVALUESDATABASE_H