summaryrefslogtreecommitdiff
path: root/game/shared/gamestringpool.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/shared/gamestringpool.h')
-rw-r--r--game/shared/gamestringpool.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/game/shared/gamestringpool.h b/game/shared/gamestringpool.h
new file mode 100644
index 0000000..2dc941f
--- /dev/null
+++ b/game/shared/gamestringpool.h
@@ -0,0 +1,35 @@
+//========= 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