Move pMovie into local data structures

This commit is contained in:
Kp 2014-10-29 03:01:18 +00:00
parent d8024d4d26
commit fb1704780b
3 changed files with 18 additions and 16 deletions

View file

@ -80,7 +80,6 @@ static int init_subtitles(const char *filename);
static subtitle Subtitles[MAX_SUBTITLES];
static int Num_subtitles;
static char *subtitle_raw_data;
static MVESTREAM_ptr_t pMovie;
class RunSubtitles
{
@ -263,6 +262,7 @@ struct movie : ignore_window_pointer_t
int result, aborted;
int frame_num;
int paused;
MVESTREAM_ptr_t pMovie;
};
static window_event_result show_pause_message(window *wind,const d_event &event, const unused_window_userdata_t *)
@ -344,7 +344,7 @@ static window_event_result MovieHandler(window *wind,const d_event &event, movie
case EVENT_WINDOW_DRAW:
if (!m->paused)
{
m->result = MVE_rmStepMovie(pMovie.get());
m->result = MVE_rmStepMovie(m->pMovie.get());
if (m->result)
{
window_close(wind);
@ -426,7 +426,7 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
MVE_sfCallbacks(MovieShowFrame);
MVE_palCallbacks(MovieSetPalette);
if (MVE_rmPrepMovie(pMovie, (void *)filehndl, dx, dy, track)) {
if (MVE_rmPrepMovie(m.pMovie, (void *)filehndl, dx, dy, track)) {
Int3();
SDL_FreeRW(filehndl);
window_close(wind);
@ -443,7 +443,7 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
Assert(m.aborted || m.result == MVE_ERR_EOF); ///movie should be over
pMovie.reset();
m.pMovie.reset();
SDL_FreeRW(filehndl); // Close Movie File
if (reshow)
@ -463,7 +463,7 @@ int RunMovie(char *filename, int hires_flag, int must_have,int dx,int dy)
//returns 1 if frame updated ok
int RotateRobot()
int RotateRobot(MVESTREAM_ptr_t &pMovie)
{
int err;
@ -490,14 +490,14 @@ int RotateRobot()
}
void DeInitRobotMovie(void)
void DeInitRobotMovie(MVESTREAM_ptr_t &pMovie)
{
pMovie.reset();
SDL_FreeRW(RoboFile); // Close Movie File
}
int InitRobotMovie(const char *filename)
int InitRobotMovie(const char *filename, MVESTREAM_ptr_t &pMovie)
{
if (GameArg.SysNoMovies)
return 0;

View file

@ -27,6 +27,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
#define _MOVIE_H
#ifdef __cplusplus
#include "d2x-rebirth/libmve/mvelib.h"
#define MOVIE_ABORT_ON 1
#define MOVIE_ABORT_OFF 0
@ -45,9 +46,9 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
extern int PlayMovie(const char *subtitles, const char *filename, int allow_abort);
extern int PlayMovies(int num_files, const char *filename[], int graphmode, int allow_abort);
extern int InitRobotMovie(const char *filename);
extern int RotateRobot();
extern void DeInitRobotMovie(void);
int InitRobotMovie(const char *filename, MVESTREAM_ptr_t &pMovie);
int RotateRobot(MVESTREAM_ptr_t &pMovie);
void DeInitRobotMovie(MVESTREAM_ptr_t &pMovie);
// find and initialize the movie libraries
void init_movies();

View file

@ -461,6 +461,7 @@ struct briefing : ignore_window_pointer_t
#if defined(DXX_BUILD_DESCENT_II)
int got_z;
int hum_channel, printing_channel;
MVESTREAM_ptr_t pMovie;
#endif
std::unique_ptr<char[]> text;
const char *message;
@ -732,7 +733,7 @@ static int briefing_process_char(briefing *br)
br->robot_canv.reset();
#if defined(DXX_BUILD_DESCENT_II)
if (br->robot_playing) {
DeInitRobotMovie();
DeInitRobotMovie(br->pMovie);
br->robot_playing=0;
}
#endif
@ -751,12 +752,12 @@ static int briefing_process_char(briefing *br)
kludge=*br->message++;
spinRobotName[2]=kludge; // ugly but proud
br->robot_playing=InitRobotMovie(spinRobotName);
br->robot_playing=InitRobotMovie(spinRobotName, br->pMovie);
// gr_remap_bitmap_good( &grd_curcanv->cv_bitmap, pal, -1, -1 );
if (br->robot_playing) {
RotateRobot();
RotateRobot(br->pMovie);
set_briefing_fontcolor (br);
}
#endif
@ -1165,7 +1166,7 @@ static void init_new_page(briefing *br)
#if defined(DXX_BUILD_DESCENT_II)
if (br->robot_playing)
{
DeInitRobotMovie();
DeInitRobotMovie(br->pMovie);
br->robot_playing=0;
}
#endif
@ -1323,7 +1324,7 @@ static void free_briefing_screen(briefing *br)
#if defined(DXX_BUILD_DESCENT_II)
if (br->robot_playing)
{
DeInitRobotMovie();
DeInitRobotMovie(br->pMovie);
br->robot_playing=0;
}
#endif
@ -1524,7 +1525,7 @@ static window_event_result briefing_handler(window *wind,const d_event &event, b
show_animated_bitmap(br);
#if defined(DXX_BUILD_DESCENT_II)
if (br->robot_playing)
RotateRobot();
RotateRobot(br->pMovie);
#endif
if (br->robot_num != -1)
show_spinning_robot_frame(br, br->robot_num);