since Movies are initiated once in runtime, indroduced SCREEN_MOVIE to set desired movie resolutions seperatly from menu or game resolution

This commit is contained in:
zicodxx 2007-02-08 15:36:56 +00:00
parent 1423ebb324
commit f9512e917c
5 changed files with 33 additions and 13 deletions

View file

@ -3,6 +3,7 @@ D2X-Rebirth Changelog
20070208
--------
main/newdemo.c: fixed demo playback Afterburner gauge and Primary weapon ammo info
main/game.c, main/game.c, main/movie.c, main/movie.h: since Movies are initiated once in runtime, indroduced SCREEN_MOVIE to set desired movie resolutions seperatly from menu or game resolution
20070207
--------

View file

@ -115,6 +115,7 @@ char game_rcsid[] = "$Id: game.c,v 1.1.1.1 2006/03/17 19:55:53 zicodxx Exp $";
#include "playsave.h"
#include "fix.h"
#include "hudmsg.h"
#include "movie.h"
int VGA_current_mode;
@ -634,6 +635,14 @@ int set_screen_mode(int sm)
init_editor_screen(); //setup other editor stuff
break;
#endif
case SCREEN_MOVIE:
if (grd_curscreen->sc_mode != SM(MOVIE_WIDTH,MOVIE_HEIGHT)) {
if (gr_set_mode(SM(MOVIE_WIDTH,MOVIE_HEIGHT))) Error("Cannot set screen mode for game!");
gr_palette_load( gr_palette );
}
gr_init_sub_canvas( &VR_screen_pages[0], &grd_curscreen->sc_canvas, 0, 0, MOVIE_WIDTH,MOVIE_HEIGHT );
gr_init_sub_canvas( &VR_screen_pages[1], &grd_curscreen->sc_canvas, 0, 0, MOVIE_WIDTH,MOVIE_HEIGHT );
break;
default:
Error("Invalid screen mode %d",sm);
}

View file

@ -105,7 +105,6 @@ int RunMovie(char *filename, int highres_flag, int allow_abort,int dx,int dy);
void decode_text_line(char *p);
void draw_subtitles(int frame_num);
// ----------------------------------------------------------------------
void* MPlayAlloc(unsigned size)
{
@ -201,6 +200,7 @@ void MovieShowFrame(ubyte *buf, uint bufw, uint bufh, uint sx, uint sy, uint w,
glEnable (GL_BLEND);
gr_update();
#else
gr_bm_ubitblt(bufw,bufh,dstx,dsty,sx,sy,&source_bm,&grd_curcanv->cv_bitmap);
#endif
@ -287,8 +287,8 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
MVE_ioCallbacks(FileRead);
#ifdef OGL
gr_set_mode(SM(grd_curscreen->sc_w,grd_curscreen->sc_h));
set_screen_mode(SCREEN_MENU);
// gr_set_mode(SM(grd_curscreen->sc_w,grd_curscreen->sc_h));
set_screen_mode(SCREEN_MOVIE);
gr_copy_palette(pal_save, gr_palette, 768);
memset(gr_palette, 0, 768);
gr_palette_load(gr_palette);
@ -363,15 +363,16 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
int InitMovieBriefing()
{
#ifndef OGL // 0
if (MovieHires)
gr_set_mode(SM(640,480));
else
gr_set_mode(SM(320,200));
gr_init_sub_canvas( &VR_screen_pages[0], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h );
gr_init_sub_canvas( &VR_screen_pages[1], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h );
#endif
// #ifndef OGL // 0
// if (MovieHires)
// gr_set_mode(SM(640,480));
// else
// gr_set_mode(SM(320,200));
//
// gr_init_sub_canvas( &VR_screen_pages[0], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h );
// gr_init_sub_canvas( &VR_screen_pages[1], &grd_curscreen->sc_canvas, 0, 0, grd_curscreen->sc_w, grd_curscreen->sc_h );
// #endif
set_screen_mode(SCREEN_MOVIE);
return 1;
}

View file

@ -28,6 +28,14 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define MOVIE_PLAYED_FULL 1 // movie was played all the way through
#define MOVIE_ABORTED 2 // movie started by was aborted
#ifdef OGL
#define MOVIE_WIDTH (MovieHires&&grd_curscreen->sc_w<640?640:grd_curscreen->sc_w)
#define MOVIE_HEIGHT (MovieHires&&grd_curscreen->sc_h<480?480:grd_curscreen->sc_h)
#else
#define MOVIE_WIDTH (MovieHires?640:320)
#define MOVIE_HEIGHT (MovieHires?480:200)
#endif
extern int PlayMovie(const char *filename, int allow_abort);
extern int PlayMovies(int num_files, const char *filename[], int graphmode, int allow_abort);
extern int InitRobotMovie(char *filename);

View file

@ -29,7 +29,8 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
// for Screen_mode variable
#define SCREEN_MENU 0 // viewing the menu screen
#define SCREEN_GAME 1 // viewing the menu screen
#define SCREEN_EDITOR 2 // viewing the editor screen
#define SCREEN_EDITOR 2 // viewing the editor screen
#define SCREEN_MOVIE 3 // viewing a movie
//from editor.c
extern grs_canvas *Canv_editor; // the full on-scrren editor canvas