mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-14 05:38:56 +00:00
CINE: Show splash screen in CD version of Future Wars
This commit is contained in:
parent
d227e40e53
commit
61b14539c4
@ -22,10 +22,14 @@
|
||||
|
||||
#include "common/config-manager.h"
|
||||
#include "common/debug-channels.h"
|
||||
#include "common/events.h"
|
||||
|
||||
#include "engines/util.h"
|
||||
|
||||
#include "graphics/cursorman.h"
|
||||
#include "graphics/palette.h"
|
||||
|
||||
#include "image/iff.h"
|
||||
|
||||
#include "cine/cine.h"
|
||||
#include "cine/bg_list.h"
|
||||
@ -89,6 +93,10 @@ void CineEngine::syncSoundSettings() {
|
||||
}
|
||||
|
||||
Common::Error CineEngine::run() {
|
||||
if (g_cine->getGameType() == GType_FW && (g_cine->getFeatures() & GF_CD)) {
|
||||
showSplashScreen();
|
||||
}
|
||||
|
||||
// Initialize backend
|
||||
initGraphics(320, 200, false);
|
||||
|
||||
@ -239,4 +247,45 @@ void CineEngine::initialize() {
|
||||
}
|
||||
}
|
||||
|
||||
void CineEngine::showSplashScreen() {
|
||||
Common::File file;
|
||||
if (!file.open("sony.lbm"))
|
||||
return;
|
||||
|
||||
Image::IFFDecoder decoder;
|
||||
if (!decoder.loadStream(file))
|
||||
return;
|
||||
|
||||
const Graphics::Surface *surface = decoder.getSurface();
|
||||
if (surface->w == 640 && surface->h == 480) {
|
||||
initGraphics(640, 480, true);
|
||||
|
||||
const byte *palette = decoder.getPalette();
|
||||
int paletteColorCount = decoder.getPaletteColorCount();
|
||||
g_system->getPaletteManager()->setPalette(palette, 0, paletteColorCount);
|
||||
|
||||
g_system->copyRectToScreen(surface->getPixels(), 640, 0, 0, 640, 480);
|
||||
g_system->updateScreen();
|
||||
|
||||
Common::EventManager *eventMan = g_system->getEventManager();
|
||||
|
||||
bool done = false;
|
||||
uint32 now = g_system->getMillis();
|
||||
|
||||
while (!done && g_system->getMillis() - now < 2000) {
|
||||
Common::Event event;
|
||||
while (eventMan->pollEvent(event)) {
|
||||
if (event.type == Common::EVENT_KEYDOWN && event.kbd.keycode == Common::KEYCODE_ESCAPE) {
|
||||
done = true;
|
||||
break;
|
||||
}
|
||||
if (shouldQuit())
|
||||
done = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
decoder.destroy();
|
||||
}
|
||||
|
||||
} // End of namespace Cine
|
||||
|
@ -145,6 +145,7 @@ public:
|
||||
|
||||
private:
|
||||
void initialize();
|
||||
void showSplashScreen();
|
||||
void resetEngine();
|
||||
bool loadPlainSaveFW(Common::SeekableReadStream &in, CineSaveGameFormat saveGameFormat);
|
||||
bool loadTempSaveOS(Common::SeekableReadStream &in);
|
||||
|
Loading…
Reference in New Issue
Block a user