本文整理汇总了C++中CChar::IsSleeping方法的典型用法代码示例。如果您正苦于以下问题:C++ CChar::IsSleeping方法的具体用法?C++ CChar::IsSleeping怎么用?C++ CChar::IsSleeping使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CChar
的用法示例。
在下文中一共展示了CChar::IsSleeping方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GoAwake
void CSector::GoAwake()
{
ADDTOCALLSTACK("CSector::GoAwake");
ProfileTask charactersTask(PROFILE_TIMERS);
CTimedObject::GoAwake(); // Awake it first, otherwise other things won't work.
CChar * pCharNext = nullptr;
CChar * pChar = static_cast <CChar*>(m_Chars_Active.GetHead());
for (; pChar != nullptr; pChar = pCharNext)
{
pCharNext = pChar->GetNext();
if (pChar->IsSleeping())
pChar->GoAwake();
}
pChar = static_cast<CChar*>(m_Chars_Disconnect.GetHead());
for (; pChar != nullptr; pChar = pCharNext)
{
pCharNext = pChar->GetNext();
if (pChar->IsSleeping())
pChar->GoAwake();
}
CItem * pItemNext = nullptr;
CItem * pItem = static_cast <CItem*>(m_Items_Timer.GetHead());
for (; pItem != nullptr; pItem = pItemNext)
{
pItemNext = pItem->GetNext();
if (pItem->IsSleeping())
pItem->GoAwake();
}
pItem = static_cast <CItem*>(m_Items_Inert.GetHead());
for (; pItem != nullptr; pItem = pItemNext)
{
pItemNext = pItem->GetNext();
if (pItem->IsSleeping())
pItem->GoAwake();
}
/*
* Awake adjacent sectors when awaking this one to avoid the effect
* of NPCs being stop until you enter the sector, or all the spawns
* generating NPCs at once.
*/
static CSector *pCentral = nullptr; // do this only for the awaken sector
if (!pCentral)
{
pCentral = this;
for (int i = 0; i < (int)DIR_QTY; ++i)
{
CSector *pSector = GetAdjacentSector((DIR_TYPE)i);
if (pSector && !pSector->IsSleeping())
{
pSector->GoAwake();
}
}
pCentral = nullptr;
}
OnTick(); // Unknown time passed, make the sector tick now to reflect any possible environ changes.
}
示例2: GoSleep
void CSector::GoSleep()
{
ADDTOCALLSTACK("CSector::Sleep");
ProfileTask charactersTask(PROFILE_TIMERS);
CTimedObject::GoSleep();
CChar * pCharNext = nullptr;
CChar * pChar = static_cast <CChar*>(m_Chars_Active.GetHead());
for (; pChar != nullptr; pChar = pCharNext)
{
pCharNext = pChar->GetNext();
if (!pChar->IsSleeping())
pChar->GoSleep();
}
CItem * pItemNext = nullptr;
CItem * pItem = static_cast <CItem*>(m_Items_Timer.GetHead());
for (; pItem != nullptr; pItem = pItemNext)
{
pItemNext = pItem->GetNext();
if (!pItem->IsSleeping())
pItem->GoSleep();
}
pItemNext = nullptr;
pItem = static_cast <CItem*>(m_Items_Inert.GetHead());
for (; pItem != nullptr; pItem = pItemNext)
{
pItemNext = pItem->GetNext();
if (!pItem->IsSleeping())
pItem->GoSleep();
}
}