/* ================= CG_Cinematic_f ================= */ void CG_Cinematic_f( void ) { char arg[MAX_QPATH]; char s[6]; float x, y, width, height; int bits = CIN_system; Com_DPrintf("CG_Cinematic_f\n"); CG_StopCinematic_f(); trap_Argv( 1, arg, sizeof( arg ) ); trap_Argv( 2, s, sizeof( s ) ); if (s[0] == '1' || Q_stricmp(arg,"demoend.roq")==0 || Q_stricmp(arg,"end.roq")==0) { bits |= CIN_hold; } if (s[0] == '2') { bits |= CIN_loop; } //trap_S_StopAllSounds(); x = 0; y = 0; width = SCREEN_WIDTH; height = SCREEN_HEIGHT; CG_SetScreenPlacement( PLACE_CENTER, PLACE_CENTER ); CG_AdjustFrom640( &x, &y, &width, &height ); cg.cinematicHandle = trap_CIN_PlayCinematic( arg, x, y, width, height, bits ); }
int CG_PlayCinematicDc (const char *name, float x, float y, float w, float h, int widescreen, rectDef_t menuRect) { //FIXME widescreen return trap_CIN_PlayCinematic(name, x, y, w, h, CIN_loop); }
void LaunchMediaViewMenu(const char* mediaRef, const char* execOnClose) { int i=0; const char* mediafilepath = EMPTY_MEDIAFILEPATH_STRING; //TODO? pop the menu if the current one is this one? *ponder* memset(&s_mediaview_menu,0,sizeof(mediaview_menu_t)); s_mediaview_menu.mediatype = MT_UNKNOWN; //note: just to make it clear (I know that memset would also set 0 ;) ) if(execOnClose && *execOnClose) { Q_strncpyz(s_mediaview_menu.execOnClose,execOnClose,sizeof(s_mediaview_menu.execOnClose)); } for(i=0;mediatype_strs[i];++i) { if(i!=MT_UNKNOWN) { int compLen = strlen(mediatype_strs[i]); if(!Q_stricmpn(mediaRef,mediatype_strs[i],compLen)) { s_mediaview_menu.mediatype = i; mediafilepath = (mediaRef+compLen); if(*mediafilepath == '\0') mediafilepath = EMPTY_MEDIAFILEPATH_STRING; } } } s_mediaview_menu.menu.draw = MediaView_MenuDraw; s_mediaview_menu.menu.key = MediaView_MenuKey; s_mediaview_menu.menu.fullscreen = qtrue; //FIXME: take another texture for the close button (back doesn't fit so good) s_mediaview_menu.closeButton.generic.type = MTYPE_BITMAP; s_mediaview_menu.closeButton.generic.name = "menu/single/continue/start0"; s_mediaview_menu.closeButton.generic.flags = QMF_LEFT_JUSTIFY | QMF_PULSEIFFOCUS; s_mediaview_menu.closeButton.generic.callback = MediaView_CloseAction; s_mediaview_menu.closeButton.generic.x = 640-40; s_mediaview_menu.closeButton.generic.y = 480-40; s_mediaview_menu.closeButton.width = 30; s_mediaview_menu.closeButton.height = 30; s_mediaview_menu.closeButton.focuspic = "menu/single/continue/start1"; s_mediaview_menu.closeButton.focuspicinstead = qtrue; switch(s_mediaview_menu.mediatype) { case MT_PICTURE: Com_Printf("[mediaview] loading Comic: %s\n",mediafilepath); // set menu cursor to a nice location uis.cursorx = 320; uis.cursory = 240; s_mediaview_menu.comicPic.generic.type = MTYPE_BITMAP; s_mediaview_menu.comicPic.generic.name = mediafilepath; s_mediaview_menu.comicPic.generic.flags = QMF_LEFT_JUSTIFY | QMF_SILENT; // s_mediaview_menu.comicPic.generic.callback = UI_SecretAction; s_mediaview_menu.comicPic.generic.x = 0; s_mediaview_menu.comicPic.generic.y = 0; s_mediaview_menu.comicPic.width = 640; s_mediaview_menu.comicPic.height = 480; Menu_AddItem(&s_mediaview_menu.menu, &s_mediaview_menu.comicPic); Menu_AddItem(&s_mediaview_menu.menu, &s_mediaview_menu.closeButton); break; case MT_VIDEO: Com_Printf("[mediaview] loading Video: %s\n",mediafilepath); s_mediaview_menu.CINhandle = trap_CIN_PlayCinematic(mediafilepath, 0, 0, 640, 480, /*int bits*/ 0);// CIN_loop, CIN_hold s_mediaview_menu.menu.noMouseCursor = qtrue; trap_S_StopBackgroundTrack(); break; default: Com_Printf("[mediaview] Couldn't find a known mediatype in the string: %s\n",mediaRef); break; } UI_PushMenu ( &s_mediaview_menu.menu ); }