本文整理汇总了C++中CDesignType::GetDisplayAttributes方法的典型用法代码示例。如果您正苦于以下问题:C++ CDesignType::GetDisplayAttributes方法的具体用法?C++ CDesignType::GetDisplayAttributes怎么用?C++ CDesignType::GetDisplayAttributes使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CDesignType
的用法示例。
在下文中一共展示了CDesignType::GetDisplayAttributes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: BindDesign
//.........这里部分代码省略.........
DEBUG_TRY
if (m_pAdventureDesc)
m_pAdventureDesc->SetCurrentAdventure();
DEBUG_CATCH_MSG("Crash setting current adventure.");
// Cache a map between currency name and economy type
// We need to do this before Bind because some types will lookup
// a currency name during Bind.
DEBUG_TRY
m_EconomyIndex.DeleteAll();
for (i = 0; i < GetCount(designEconomyType); i++)
{
CEconomyType *pEcon = CEconomyType::AsType(GetEntry(designEconomyType, i));
const CString &sName = pEcon->GetSID();
bool bUnique;
CEconomyType **ppDest = m_EconomyIndex.SetAt(sName, &bUnique);
if (!bUnique)
{
pEcon->ComposeLoadError(Ctx, CONSTLIT("Currency ID must be unique"));
*retsError = Ctx.sError;
return ERR_FAIL;
}
*ppDest = pEcon;
}
DEBUG_CATCH_MSG("Crash initializing economies.");
// Prepare to bind. This is used by design elements that need two passes
// to bind. We also use it to set up the inheritence hierarchy, which means
// that we rely on the map from UNID to valid design type (m_AllTypes)
m_DisplayAttribs.DeleteAll();
DEBUG_TRY
for (i = 0; i < m_AllTypes.GetCount(); i++)
{
CDesignType *pEntry = m_AllTypes.GetEntry(i);
if (error = pEntry->PrepareBindDesign(Ctx))
{
*retsError = Ctx.sError;
return error;
}
// We take this opportunity to build a list of display attributes
// defined by each type.
const CDisplayAttributeDefinitions &Attribs = pEntry->GetDisplayAttributes();
if (!Attribs.IsEmpty())
m_DisplayAttribs.Append(Attribs);
}
DEBUG_CATCH_MSG("Crash in PrepareBind.");
// Now call Bind on all active design entries
for (i = 0; i < evtCount; i++)
m_EventsCache[i]->DeleteAll();
DEBUG_TRY
for (i = 0; i < m_AllTypes.GetCount(); i++)
{
CDesignType *pEntry = m_AllTypes.GetEntry(i);
if (error = pEntry->BindDesign(Ctx))
{
*retsError = Ctx.sError;
return error;
}
// Cache some global events. We keep track of the global events for
// all types so that we can access them faster.
CacheGlobalEvents(pEntry);
}
DEBUG_CATCH_MSG("Crash in BindDesign.");
// Finish binding. This pass is used by design elements
// that need to do stuff after all designs are bound.
DEBUG_TRY
for (i = 0; i < m_AllTypes.GetCount(); i++)
{
CDesignType *pEntry = m_AllTypes.GetEntry(i);
if (error = pEntry->FinishBindDesign(Ctx))
{
*retsError = Ctx.sError;
return error;
}
}
DEBUG_CATCH_MSG("Crash in FinishBind.");
// Remember what we bound
m_BoundExtensions = BindOrder;
return NOERROR;
DEBUG_CATCH
}