This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
nekohook/modules/source2013/sdk/game/shared/saverestore_utlsymbol.h
2020-08-04 13:13:01 -04:00

50 lines
1.4 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef SAVERESTORE_UTLSYMBOL_H
#define SAVERESTORE_UTLSYMBOL_H
#ifdef _WIN32
#pragma once
#endif
#include "utlsymbol.h"
class CUtlSymbolDataOps : public CDefSaveRestoreOps {
public:
CUtlSymbolDataOps(CUtlSymbolTable &masterTable)
: m_symbolTable(masterTable) {}
virtual void Save(const SaveRestoreFieldInfo_t &fieldInfo, ISave *pSave) {
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
pSave->WriteString(m_symbolTable.String(*sym));
}
virtual void Restore(const SaveRestoreFieldInfo_t &fieldInfo,
IRestore *pRestore) {
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
char tmp[1024];
pRestore->ReadString(tmp, sizeof(tmp), 0);
*sym = m_symbolTable.AddString(tmp);
}
virtual void MakeEmpty(const SaveRestoreFieldInfo_t &fieldInfo) {
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
*sym = UTL_INVAL_SYMBOL;
}
virtual bool IsEmpty(const SaveRestoreFieldInfo_t &fieldInfo) {
CUtlSymbol *sym = ((CUtlSymbol *)fieldInfo.pField);
return (*sym).IsValid() ? false : true;
}
private:
CUtlSymbolTable &m_symbolTable;
};
#endif // SAVERESTORE_UTLSYMBOL_H