/* ================== SCR_PlayCinematic ================== */ qboolean SCR_PlayCinematic( const char *arg ) { string path; const char *fullpath; fullpath = FS_GetDiskPath( arg, false ); if( FS_FileExists( arg, false ) && !fullpath ) { MsgDev( D_ERROR, "Couldn't load %s from packfile. Please extract it\n", path ); return false; } AVI_OpenVideo( cin_state, fullpath, true, true, false ); if( !AVI_IsActive( cin_state )) { AVI_CloseVideo( cin_state ); return false; } if( !( AVI_GetVideoInfo( cin_state, &xres, &yres, &video_duration ))) // couldn't open this at all. { AVI_CloseVideo( cin_state ); return false; } if( AVI_GetAudioInfo( cin_state, &cin_audio )) { // begin streaming S_StopAllSounds(); S_StartStreaming(); } UI_SetActiveMenu( false ); SCR_RebuildGammaTable(); cls.state = ca_cinematic; cin_time = 0.0f; return true; }
/* =========== COM_ExpandFilename Finds the file in the search path, copies over the name with the full path name. This doesn't search in the pak file. =========== */ int COM_ExpandFilename( const char *fileName, char *nameOutBuffer, int nameOutBufferSize ) { const char *path; char result[MAX_SYSPATH]; if( !fileName || !*fileName || !nameOutBuffer || nameOutBufferSize <= 0 ) return 0; // filename examples: // media\sierra.avi - D:\Xash3D\valve\media\sierra.avi // models\barney.mdl - D:\Xash3D\bshift\models\barney.mdl if(( path = FS_GetDiskPath( fileName, false )) != NULL ) { Q_sprintf( result, "%s/%s", host.rootdir, path ); // check for enough room if( Q_strlen( result ) > nameOutBufferSize ) return 0; Q_strncpy( nameOutBuffer, result, nameOutBufferSize ); return 1; } return 0; }