// ---------------------------------------------------------------------------- bool CInterfaceAnim::parse (xmlNodePtr cur, CInterfaceGroup *parentGroup) { CXMLAutoPtr ptr; ptr = xmlGetProp (cur, (xmlChar*)"id"); _Id = (const char*)ptr; ptr = xmlGetProp (cur, (xmlChar*)"duration"); if (!ptr) { nlwarning("anim with no duration"); return false; } fromString((const char*)ptr, _Duration); if (_Duration == 0) _Duration = 1.0; _Duration *= CWidgetManager::getInstance()->getSystemOption(CWidgetManager::OptionMulCoefAnim).getValFloat(); ptr = xmlGetProp (cur, (xmlChar*)"disable_buttons"); if (ptr) _DisableButtons = CInterfaceElement::convertBool(ptr); ptr = (char*) xmlGetProp( cur, (xmlChar*)"on_finish" ); if (ptr) _AHOnFinish = (const char *) ptr; ptr = (char*) xmlGetProp( cur, (xmlChar*)"on_finish_params" ); if (ptr) _AHOnFinishParams = (const char *) ptr; cur = cur->children; // bool ok = true; while (cur) { // Check that this is a key node if ( stricmp((char*)cur->name,"track") != 0 ) { cur = cur->next; continue; } CInterfaceTrack *pTrack = new CInterfaceTrack; if (!pTrack->parse(cur,parentGroup)) { delete pTrack; nlwarning("track not added to anim"); } else { _Tracks.push_back(pTrack); } cur = cur->next; } _Parent = parentGroup; return true; }