示例#1
0
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;
}
示例#2
0
// 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;
}