Я пытаюсь разобрать файл .X (для использования в DirectX) для fps анимированной сетки ... файл .X использует данные шаблона. Я хотел бы получить переменную внутри шаблона: AnimTicksPerSecond, однако я не могу сказать парсеру распознать этот шаблон, потому что у меня нет GUID ... есть ли способ поиска GUID? Вот мой код синтаксического анализатора, он работает со стандартными шаблонами, но AnimTicksPerSecond не определен в том же файле (предоставляется DirectX SDK).
BOOL cAnimationCollection::ParseObject(LPD3DXFILEDATA pDataObj, DWORD Depth, void **data)
{
if(pDataObj->IsReference())
return true;
if(CompareDataObjectType(pDataObj, TID_D3DRMAnimationSet)) //Animation Set is defined in rmxfguid.h(comes with DX SDK)
{
// Create and link Object
cAnimationSet *AnimSet = new cAnimationSet();
AnimSet->m_Next = m_AnimationSets;
m_AnimationSets = AnimSet;
// Increment # Animation Sets by 1
m_NumAnimationSets++;
// Set Animation Index to global count
AnimSet->m_index = index;
index++;
LPD3DXFILEDATA pSubData;
SIZE_T nChildren;
if(!strcmp(GetObjectName(pDataObj), "Unknown") || !(AnimSet->m_Name = GetObjectName(pDataObj)))
AnimSet->m_Name = _strdup("NewAnimationSet");
if(SUCCEEDED(pDataObj->GetChildren(&nChildren)))
for(SIZE_T index = 0; index < nChildren; index++)
if(SUCCEEDED(pDataObj->GetChild(index, &pSubData))){
ParseChildObjects(pSubData, Depth, data);
}
}
return true;
}