IOResult CubeMap::Load(ILoad *iload) { TCHAR *buf; IOResult res = IO_OK; while (IO_OK==(res=iload->OpenChunk())) { switch (iload->CurChunkID()) { case CUBEMAP_CHUNK: { res = iload->ReadWStringChunk (&buf); IAssetManager* assetMgr = IAssetManager::GetInstance(); if(assetMgr) { SetCubeMapFile(assetMgr->GetAsset(buf,kBitmapAsset)); } }; break; case CUBEMAP_ASSET_CHUNK: { IAssetManager* assetMgr = IAssetManager::GetInstance(); if(assetMgr) assetMgr->LoadAsset(iload,cubeMapFileAsset); }; break; } iload->CloseChunk(); if (res!=IO_OK) return res; } return IO_OK; }
// Load the controller data IOResult AudioP3Control::Load(ILoad *iload) { ULONG nb; IOResult res = IO_OK; Control::Load(iload); // Handle ORT's while (IO_OK==(res=iload->OpenChunk())) { switch (iload->CurChunkID()) { case BASE_CHUNK: res=iload->Read(&basePoint,sizeof(basePoint),&nb); break; case TARGET_CHUNK: res=iload->Read(&targetPoint,sizeof(targetPoint),&nb); break; case ABSOLUTE_CHUNK: res=iload->Read(&absolute,sizeof(absolute),&nb); break; case CHANNEL_CHUNK: res=iload->Read(&channel,sizeof(channel),&nb); break; case LOCK_CHUNK: { int on; res=iload->Read(&on,sizeof(on),&nb); if(on) mLocked = true; else mLocked = false; } break; case FILENAME_CHUNK: { wchar_t *buf = NULL; res=iload->ReadWStringChunk(&buf); IAssetManager* assetMgr = IAssetManager::GetInstance(); if(assetMgr) { AssetUser asset = assetMgr->GetAsset(TSTR::FromUTF16(buf),kSoundAsset); SetFile(asset); if (asset.GetId()!=kInvalidId) { // Initialize the WaveForm and load the audio stream wave->InitOpen(asset); } } break; } case FILENAME_ASSET_CHUNK: { IAssetManager* assetMgr = IAssetManager::GetInstance(); if(assetMgr) assetMgr->LoadAsset(iload,szFilenameAsset); if (szFilenameAsset.GetId()!=kInvalidId) { // Initialize the WaveForm and load the audio stream wave->InitOpen(szFilenameAsset); } break; } case NUMSAMPLES_CHUNK: res=iload->Read(&numsamples,sizeof(numsamples),&nb); break; case RANGE_CHUNK: res=iload->Read(&range,sizeof(range),&nb); break; case THRESHOLD_CHUNK: res=iload->Read(&threshold,sizeof(threshold),&nb); break; case RUNTIME_CHUNK: res=iload->Read(&enableRuntime,sizeof(enableRuntime),&nb); break; case QUICKDRAW_CHUNK: res=iload->Read(&quickdraw,sizeof(quickdraw),&nb); break; } iload->CloseChunk(); if (res!=IO_OK) return res; } return IO_OK; }