/////////////////////////////////////////////////////////////////////
| 387 | |
| 388 | ////////////////////////////////////////////////////////////////////////// |
| 389 | void CMusicManager::LoadFromLua( CBaseLibrary *pLibrary ) |
| 390 | { |
| 391 | IScriptSystem *pScriptSystem = GetIEditor()->GetSystem()->GetIScriptSystem(); |
| 392 | pScriptSystem->SetGlobalToNull("DynamicMusic"); |
| 393 | if (!pScriptSystem->ExecuteFile( "Scripts\\Music\\DynamicMusic.lua", true, true)) |
| 394 | return; |
| 395 | _SmartScriptObject pObj(pScriptSystem, true); |
| 396 | if (!pScriptSystem->GetGlobalValue("DynamicMusic", pObj)) |
| 397 | return; |
| 398 | CMusicLoadSinkTemp LoadSink(m_pMusicData, pScriptSystem, &pObj); |
| 399 | pObj->Dump(&LoadSink); |
| 400 | pScriptSystem->SetGlobalToNull("DynamicMusic"); |
| 401 | |
| 402 | // Init library. |
| 403 | for (TThemeMap::iterator it = m_pMusicData->mapThemes.begin(); it != m_pMusicData->mapThemes.end(); ++it) |
| 404 | { |
| 405 | SMusicTheme *pTheme = it->second; |
| 406 | // Make a new item per MusicTheme. |
| 407 | CMusicThemeLibItem *pLibItem = (CMusicThemeLibItem*)CreateItem( pLibrary ); |
| 408 | pLibItem->SetName( pTheme->sName.c_str() ); |
| 409 | delete pLibItem->GetTheme(); // Delete old theme from item. |
| 410 | pLibItem->SetTheme( pTheme ); |
| 411 | } |
| 412 | |
| 413 | if (GetIEditor()->GetSystem()->GetIMusicSystem()) |
| 414 | GetIEditor()->GetSystem()->GetIMusicSystem()->SetData( m_pMusicData,true ); |
| 415 | } |
| 416 | |
| 417 | ////////////////////////////////////////////////////////////////////////// |
| 418 | void CMusicManager::ReleaseMusicData() |
no test coverage detected