bool SaveViewerSettings (const char *filename, StudioModel *pModel ) { LONG lResult; // Registry function result code DWORD dwDisposition; // Type of key opening event if (filename == NULL || pModel == NULL) return false; HKEY hModelKey; lResult = RegViewerSettingsKey( filename, &hModelKey, &dwDisposition); if (lResult != ERROR_SUCCESS) // Failure return false; MDLCACHE_CRITICAL_SECTION_( g_pMDLCache ); CStudioHdr *hdr = pModel->GetStudioHdr(); RegWriteQAngle( hModelKey, "Rot", pModel->m_angles ); RegWriteVector( hModelKey, "Trans", pModel->m_origin ); RegWriteColor( hModelKey, "bgColor", g_viewerSettings.bgColor ); RegWriteColor( hModelKey, "gColor", g_viewerSettings.gColor ); RegWriteColor( hModelKey, "lColor", g_viewerSettings.lColor ); RegWriteColor( hModelKey, "aColor", g_viewerSettings.aColor ); RegWriteQAngle( hModelKey, "lightrot", g_viewerSettings.lightrot ); RegWriteString( hModelKey, "sequence", hdr->pSeqdesc( pModel->GetSequence() ).pszLabel() ); RegWriteString( hModelKey, "overlaySequence0", hdr->pSeqdesc( pModel->GetOverlaySequence( 0 ) ).pszLabel() ); RegWriteFloat( hModelKey, "overlayWeight0", pModel->GetOverlaySequenceWeight( 0 ) ); RegWriteString( hModelKey, "overlaySequence1", hdr->pSeqdesc( pModel->GetOverlaySequence( 1 ) ).pszLabel() ); RegWriteFloat( hModelKey, "overlayWeight1", pModel->GetOverlaySequenceWeight( 1 ) ); RegWriteString( hModelKey, "overlaySequence2", hdr->pSeqdesc( pModel->GetOverlaySequence( 2 ) ).pszLabel() ); RegWriteFloat( hModelKey, "overlayWeight2", pModel->GetOverlaySequenceWeight( 2 ) ); RegWriteString( hModelKey, "overlaySequence3", hdr->pSeqdesc( pModel->GetOverlaySequence( 3 ) ).pszLabel() ); RegWriteFloat( hModelKey, "overlayWeight3", pModel->GetOverlaySequenceWeight( 3 ) ); RegWriteInt( hModelKey, "renderwidth", g_viewerSettings.width ); RegWriteInt( hModelKey, "renderheight", g_viewerSettings.height ); RegWriteFloat( hModelKey, "speedscale", g_viewerSettings.speedScale ); RegWriteInt( hModelKey, "viewermode", g_viewerSettings.application_mode ); RegWriteInt( hModelKey, "thumbnailsize", g_viewerSettings.thumbnailsize ); RegWriteInt( hModelKey, "thumbnailsizeanim", g_viewerSettings.thumbnailsizeanim ); RegWriteInt( hModelKey, "speechapiindex", g_viewerSettings.speechapiindex ); RegWriteInt( hModelKey, "cclanguageid", g_viewerSettings.cclanguageid ); RegWriteInt( hModelKey, "showground", g_viewerSettings.showGround ); RegWriteInt( hModelKey, "showbackground", g_viewerSettings.showBackground ); RegWriteInt( hModelKey, "showshadow", g_viewerSettings.showShadow ); RegWriteInt( hModelKey, "showillumpos", g_viewerSettings.showIllumPosition ); RegWriteInt( hModelKey, "enablenormalmapping", g_viewerSettings.enableNormalMapping ); RegWriteString( hModelKey, "merge0", g_viewerSettings.mergeModelFile[0] ); RegWriteString( hModelKey, "merge1", g_viewerSettings.mergeModelFile[1] ); RegWriteString( hModelKey, "merge2", g_viewerSettings.mergeModelFile[2] ); RegWriteString( hModelKey, "merge3", g_viewerSettings.mergeModelFile[3] ); return true; }
bool SaveViewerSettings (const char *filename) { LONG lResult; // Registry function result code DWORD dwDisposition; // Type of key opening event HKEY hModelKey; lResult = RegViewerSettingsKey( filename, &hModelKey, &dwDisposition); if (lResult != ERROR_SUCCESS) // Failure return false; RegWriteQAngle( hModelKey, "Rot", g_viewerSettings.rot ); RegWriteVector( hModelKey, "Trans", g_viewerSettings.trans ); RegWriteColor( hModelKey, "bgColor", g_viewerSettings.bgColor ); RegWriteColor( hModelKey, "gColor", g_viewerSettings.gColor ); RegWriteColor( hModelKey, "lColor", g_viewerSettings.lColor ); RegWriteColor( hModelKey, "aColor", g_viewerSettings.aColor ); RegWriteQAngle( hModelKey, "lightrot", g_viewerSettings.lightrot ); RegWriteInt( hModelKey, "sequence", g_viewerSettings.sequence ); RegWriteInt( hModelKey, "overlaySequence0", g_viewerSettings.overlaySequence[0] ); RegWriteFloat( hModelKey, "overlayWeight0", g_viewerSettings.overlayWeight[0] ); RegWriteInt( hModelKey, "overlaySequence1", g_viewerSettings.overlaySequence[1] ); RegWriteFloat( hModelKey, "overlayWeight1", g_viewerSettings.overlayWeight[1] ); RegWriteInt( hModelKey, "overlaySequence2", g_viewerSettings.overlaySequence[2] ); RegWriteFloat( hModelKey, "overlayWeight2", g_viewerSettings.overlayWeight[2] ); RegWriteInt( hModelKey, "overlaySequence3", g_viewerSettings.overlaySequence[3] ); RegWriteFloat( hModelKey, "overlayWeight3", g_viewerSettings.overlayWeight[3] ); RegWriteInt( hModelKey, "renderwidth", g_viewerSettings.width ); RegWriteInt( hModelKey, "renderheight", g_viewerSettings.height ); RegWriteFloat( hModelKey, "speedscale", g_viewerSettings.speedScale ); RegWriteInt( hModelKey, "viewermode", g_viewerSettings.application_mode ); RegWriteInt( hModelKey, "thumbnailsize", g_viewerSettings.thumbnailsize ); RegWriteInt( hModelKey, "speechapiindex", g_viewerSettings.speechapiindex ); return true; }
bool RegWriteQAngle( HKEY hKey, const char *szSubKey, QAngle& value ) { Vector tmp; tmp.Init( value.x, value.y, value.z ); return RegWriteVector( hKey, szSubKey, tmp ); }