本文整理汇总了C++中TList::Item方法的典型用法代码示例。如果您正苦于以下问题:C++ TList::Item方法的具体用法?C++ TList::Item怎么用?C++ TList::Item使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TList
的用法示例。
在下文中一共展示了TList::Item方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RemoveController
//----------------------------------------------------------------------------
void Object::RemoveController (Controller* pkController)
{
// check if controller is in list
TList<ControllerPtr>* pkList = m_pkControllerList;
TList<ControllerPtr>* pkPrev = 0;
for (/**/; pkList; pkPrev = pkList, pkList = pkList->Next())
{
if (pkList->Item() == pkController)
{
// unbind controller from object
pkController->SetObject(0);
// remove the controller
if (pkPrev)
{
// controller not at front of list
pkPrev->Next() = pkList->Next();
}
else
{
// controller at front of list
assert(pkList == m_pkControllerList);
m_pkControllerList = pkList->Next();
}
pkList->Next() = 0;
WG_DELETE pkList;
return;
}
}
}
示例2: SetController
//----------------------------------------------------------------------------
// controllers
//----------------------------------------------------------------------------
void Object::SetController (Controller* pkController)
{
// Controllers may not be controlled. This avoids arbitrarily complex
// graphs of Objects. It is possible to allowed controlled controllers,
// but modify and proceed at your own risk...
if (IsDerived(Controller::TYPE))
{
assert(false);
return;
}
// controller must exist
if (!pkController)
{
assert(pkController);
return;
}
// check if controller is already in the list
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList; pkList = pkList->Next())
{
if (pkList->Item() == pkController)
{
// controller already exists, nothing to do
return;
}
}
// bind controller to object
pkController->SetObject(this);
// controller not in current list, add it
pkList = WG_NEW TList<ControllerPtr>;
pkList->Item() = pkController;
pkList->Next() = m_pkControllerList;
m_pkControllerList = pkList;
}
示例3: UpdateControllers
//----------------------------------------------------------------------------
bool Object::UpdateControllers (double dAppTime)
{
bool bSomeoneUpdated = false;
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
assert(pkController);
if (pkController->Update(dAppTime))
{
bSomeoneUpdated = true;
}
}
return bSomeoneUpdated;
}
示例4: GetController
//----------------------------------------------------------------------------
Controller* Object::GetController (int i) const
{
assert(i >= 0);
TList<ControllerPtr>* pkList = m_pkControllerList;
for (int j = 0; j < i; j++, pkList = pkList->Next())
{
if (!pkList)
{
// i >= iControllerQuantity
return 0;
}
}
return (pkList ? pkList->Item() : 0);
}
示例5: GetAllObjectsByName
//----------------------------------------------------------------------------
void Object::GetAllObjectsByName (const String& rkName,
TArray<Object*>& rkObjects)
{
if (rkName == m_kName)
{
rkObjects.Append(this);
}
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
if (pkController)
{
pkController->GetAllObjectsByName(rkName,rkObjects);
}
}
}
示例6: GetObjectByID
//----------------------------------------------------------------------------
Object* Object::GetObjectByID (unsigned int uiID)
{
if (uiID == m_uiID)
{
return this;
}
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
if (pkController)
{
Object* pkFound = pkController->GetObjectByID(uiID);
if (pkFound)
{
return pkFound;
}
}
}
return 0;
}
示例7: GetObjectByName
//----------------------------------------------------------------------------
// name and unique id
//----------------------------------------------------------------------------
Object* Object::GetObjectByName (const String& rkName)
{
if (rkName == m_kName)
{
return this;
}
TList<ControllerPtr>* pkList;
for (pkList = m_pkControllerList; pkList!=NULL; pkList = pkList->Next())
{
Controller* pkController = pkList->Item();
if (pkController)
{
Object* pkFound = pkController->GetObjectByName(rkName);
if (pkFound)
{
return pkFound;
}
}
}
return 0;
}