⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 symboltable.h

📁 网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志
💻 H
字号:
// SymbolTable.h: interface for the CSymbolTable class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SYMBOLTABLE_H__0D35D1FA_25A1_4F28_80C2_59C4BB69C4D7__INCLUDED_)
#define AFX_SYMBOLTABLE_H__0D35D1FA_25A1_4F28_80C2_59C4BB69C4D7__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "define.h"
#include "VarType.h"
#include "Index.h"

//////////////////////////////////////////////////////////////////////
const int	SYSTEM_FUNCTION_ID_BEGIN	=    1001;
const int	SYSTEM_FUNCTION_ID_END		=   10000;

const int	GAME_FUNCTION_ID_BEGIN		=  100001;
const int	GAME_FUNCTION_ID_END		=  200000;

const int	GAME_ACTION_ID_BEGIN		=  200001;
const int	GAME_ACTION_ID_END			=  300000;

const int	SYSTEM_FACT_ID_BEGIN		= 1000001;


//////////////////////////////////////////////////////////////////////
class CSymbolTable  
{
	COM_STYLE(CSymbolTable)
public:
	CSymbolTable();
	virtual ~CSymbolTable();

public: // function symbol
	bool	AddSymbol(StringRef strSymbol, OBJID id)	{ LOGDUMP("Add Symbol: %u, %s.", id, (LPCTSTR)strSymbol); return m_setSymbol.Add(strSymbol, id); }

public: // fact symbol
	bool	Create(OBJID idSymbolBegin);
	OBJID	GetSymbolID(StringRef strSymbol)			{ AddSymbol(strSymbol); return m_setSymbol[strSymbol]; }
	LPCTSTR	FindSymbolByID(OBJID id);

protected:
	bool	AddSymbol(StringRef strSymbol);
	OBJID	SpawnSymbolID()								{ return m_idNext++; }

protected:
	typedef	Index<String, OBJID>	SYMBOL_SET;
	SYMBOL_SET		m_setSymbol;
	OBJID			m_idNext;
};

#endif // !defined(AFX_SYMBOLTABLE_H__0D35D1FA_25A1_4F28_80C2_59C4BB69C4D7__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -