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.
2020-08-04 13:13:01 -04:00

39 lines
1.3 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: Pool of all per-level strings. Allocates memory for strings,
// consolodating duplicates. The memory is freed on behalf of
//clients at level transition. Strings are of type string_t.
//
// $NoKeywords: $
//=============================================================================//
#ifndef GAMESTRINGPOOL_H
#define GAMESTRINGPOOL_H
#if defined(_WIN32)
#pragma once
#endif
//-----------------------------------------------------------------------------
// String allocation
//-----------------------------------------------------------------------------
string_t AllocPooledString(const char *pszValue);
string_t AllocPooledString_StaticConstantStringPointer(
const char *pszGlobalConstValue);
string_t FindPooledString(const char *pszValue);
#define AssertIsValidString(s) \
AssertMsg(s == NULL_STRING || s == FindPooledString(STRING(s)), \
"Invalid string " #s);
#ifndef GC
//-----------------------------------------------------------------------------
// String system accessor
//-----------------------------------------------------------------------------
class IGameSystem;
IGameSystem *GameStringSystem();
#endif // #ifndef GC
#endif // GAMESTRINGPOOL_H