Example #1
0
/*
=================
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 );
}
Example #2
0
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 );
}