int CMovieManager::StartRobot (char* filename) { CMovieLib* libP = movieManager.Find (filename); if (gameOpts->movies.nLevel < 1) return 0; #if TRACE console.printf (DEBUG_LEVEL, "movies.robot.cf=%s\n", filename); #endif MVE_sndInit (-1); //tell movies to play no sound for robots if (!(m_robotP = movieManager.Open (filename, 1))) { #if DBG Warning (TXT_MOVIE_ROBOT, filename); #endif return MOVIE_NOT_PLAYED; } gameOpts->movies.bFullScreen = 1; m_robotP->m_bLittleEndian = libP ? libP->m_bLittleEndian : 1; MVE_memCallbacks (CMovie::Alloc, CMovie::Free); MVE_ioCallbacks (CMovie::Read); MVE_sfCallbacks (CMovie::ShowFrame); MVE_palCallbacks (CMovie::SetPalette); if (MVE_rmPrepMovie (reinterpret_cast<void*> (&m_robotP->m_cf), gameStates.menus.bHires ? 280 : 140, gameStates.menus.bHires ? 200 : 80, 0, m_robotP->m_bLittleEndian)) { Int3 (); return 0; } return 1; }
int CMovieManager::Play (const char* filename, int bRequired, int bForce, int bFullScreen) { char name [FILENAME_LEN], *p; int c, ret; #if 1//!DBG if (!bForce && (gameOpts->movies.nLevel < 2)) return MOVIE_NOT_PLAYED; #endif strcpy (name, filename); if (!(p = strchr (name, '.'))) //add extension, if missing strcat (name, ".mve"); //check for escape already pressed & abort if so while ((c = KeyInKey ())) if (c == KEY_ESC) return MOVIE_ABORTED; // Stop all digital sounds currently playing. audio.Shutdown (); // Start sound MVE_sndInit (gameStates.app.bUseSound ? 1 : -1); midi.FixVolume (64); gameOpts->movies.bFullScreen = bFullScreen; ret = Run (name, gameOpts->movies.bHires, bRequired, -1, -1); audio.Setup (1); gameStates.video.nScreenMode = -1; //force screen reset return ret; }
static int doPlay(const char *filename) { int result; int done = 0; int bpp = 0; FILE *mve; MVE_videoSpec vSpec; mve = fopen(filename, "rb"); if (mve == NULL) { fprintf(stderr, "can't open MVE file\n"); return 1; } memset(g_palette, 0, 768); MVE_sndInit(1); MVE_memCallbacks(D2_ALLOC, D2_FREE); MVE_ioCallbacks(fileRead); MVE_sfCallbacks(showFrame); MVE_palCallbacks(setPalette); MVE_rmPrepMovie(mve, -1, -1, 1); MVE_getVideoSpec(&vSpec); #ifndef _WIN32_WCE // doesn't like to change bpp? bpp = vSpec.truecolor?16:8; #endif #ifdef LANDSCAPE real_screen = SDL_SetVideoMode(vSpec.screenHeight, vSpec.screenWidth, bpp, SDL_FULLSCREEN); g_screen = CreateRotatedSurface(real_screen); #else g_screen = SDL_SetVideoMode(vSpec.screenWidth, vSpec.screenHeight, bpp, SDL_ANYFORMAT); #endif g_truecolor = vSpec.truecolor; while (!done && (result = MVE_rmStepMovie()) == 0) { done = pollEvents(); } MVE_rmEndMovie(); fclose(mve); return 0; }
static int doPlay(const char *filename) { int result; int done = 0; int bpp = 0; FILE *mve; MVE_videoSpec vSpec; mve = fopen(filename, "rb"); if (mve == NULL) { fprintf(stderr, "can't open MVE file\n"); return 1; } memset(g_palette, 0, 768); MVE_sndInit(1); MVE_memCallbacks((mve_cb_Alloc)malloc, free); MVE_ioCallbacks(fileRead); MVE_sfCallbacks(showFrame); MVE_palCallbacks(setPalette); MVE_rmPrepMovie(mve, -1, -1, 1); MVE_getVideoSpec(&vSpec); bpp = vSpec.truecolor?16:8; g_screen = SDL_SetVideoMode(vSpec.screenWidth, vSpec.screenHeight, bpp, SDL_ANYFORMAT); g_truecolor = vSpec.truecolor; while (!done && (result = MVE_rmStepMovie()) == 0) { done = pollEvents(); } MVE_rmEndMovie(); fclose(mve); return 0; }