/* * SCR_RunCinematic */ void SCR_RunCinematic( void ) { if( cls.state != CA_CINEMATIC ) { return; } if( ( cls.key_dest != key_game && cls.key_dest != key_console ) || (cls.key_dest == key_console && !SCR_AllowCinematicConsole()) ) { // stop if menu or console is up SCR_FinishCinematic(); return; } cl.cin.absPrevTime = cl.cin.absCurrentTime; cl.cin.absCurrentTime = SCR_CinematicTime(); if( cl.cin.paused ) { return; } cl.cin.currentTime += cl.cin.absCurrentTime - cl.cin.absPrevTime; if( !CIN_NeedNextFrame( cl.cin.h, cl.cin.currentTime ) ) { cl.cin.redraw = qfalse; return; } // read next frame SCR_ReadNextCinematicFrame(); if( !cl.cin.pic ) { // end of cinematic SCR_FinishCinematic(); return; } }
/* * SCR_RunCinematic */ void SCR_RunCinematic( void ) { if( cls.state != CA_CINEMATIC ) { return; } if( ( cls.key_dest != key_game && cls.key_dest != key_console ) || (cls.key_dest == key_console && !SCR_AllowCinematicConsole()) ) { // stop if menu or console is up SCR_FinishCinematic(); return; } if( cl.cin.pause_cnt > 0 ) { return; } // CIN_NeedNextFrame is going to query us for raw samples length CIN_AddRawSamplesListener( cl.cin.h, NULL, &SCR_CinematicRawSamples, &SCR_CinematicGetRawSamplesLength ); if( !CIN_NeedNextFrame( cl.cin.h, SCR_CinematicTime() - cl.cin.startTime ) ) { cl.cin.redraw = false; return; } // read next frame SCR_ReadNextCinematicFrame(); if( !cl.cin.pic ) { // end of cinematic SCR_FinishCinematic(); return; } }