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

📄 smellhint.cpp

📁 Blood 2全套源码
💻 CPP
字号:

// SmellHint.cpp: implementation of the CExitHint class.
//
//////////////////////////////////////////////////////////////////////

#include "cpp_server_de.h"
#include "SmellHint.h"
#include "clientdebugline.h"

BEGIN_CLASS(SmellHint)
END_CLASS_DEFAULT_FLAGS(SmellHint, B2BaseClass, NULL, NULL, CF_ALWAYSLOAD)

DLink SmellHint::m_SmellHead;
DDWORD SmellHint::m_dwNumSmells = 0;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

DDWORD SmellHint::EngineMessageFn(DDWORD messageID, void *pData, float fData)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!pServerDE) return 0;

	switch(messageID)
	{
		case MID_INITIALUPDATE:
		{
			// insert it into the list
			dl_Insert( m_SmellHead.m_pPrev, &m_Link );
			m_Link.m_pData = ( void * )this;
			m_dwNumSmells++;

			pServerDE->SetNextUpdate(m_hObject, MAX_SMELL_LIFE);
			break;
		}

		case MID_UPDATE:
		{
			pServerDE->RemoveObject(m_hObject);
			break;
		}
	}

	return B2BaseClass::EngineMessageFn(messageID, pData, fData);
}


DLink* SmellHint::HandleToLink(HOBJECT hObj)
{
	CServerDE* pServerDE = BaseClass::GetServerDE();
	if (!pServerDE) return DNULL;

	DLink* pLink = m_SmellHead.m_pNext;

	if(pLink == DNULL)
		return DNULL;

	while(pLink != &m_SmellHead)
	{
		SmellHint* pHint = (SmellHint*)pLink->m_pData;
		HOBJECT hHintObj = pServerDE->ObjectToHandle(pHint);

		if(hHintObj == hObj)
			return pLink;

		pLink = pLink->m_pNext;

		if(pLink == DNULL)
			return DNULL;
	}

	return DNULL;
}

⌨️ 快捷键说明

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