[Scummvm-cvs-logs] SF.net SVN: scummvm:[51876] scummvm/trunk/engines/gob/inter_v4.cpp
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Sun Aug 8 02:46:57 CEST 2010
Revision: 51876
http://scummvm.svn.sourceforge.net/scummvm/?rev=51876&view=rev
Author: drmccoy
Date: 2010-08-08 00:46:57 +0000 (Sun, 08 Aug 2010)
Log Message:
-----------
GOB: Make o4_playVmdOrMusic use the new VideoPlayer interface
Modified Paths:
--------------
scummvm/trunk/engines/gob/inter_v4.cpp
Modified: scummvm/trunk/engines/gob/inter_v4.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v4.cpp 2010-08-08 00:46:34 UTC (rev 51875)
+++ scummvm/trunk/engines/gob/inter_v4.cpp 2010-08-08 00:46:57 UTC (rev 51876)
@@ -142,14 +142,6 @@
void Inter_v4::o4_playVmdOrMusic() {
char fileName[128];
- int16 x, y;
- int16 startFrame;
- int16 lastFrame;
- int16 breakKey;
- int16 flags;
- int16 palStart;
- int16 palEnd;
- uint16 palCmd;
bool close;
_vm->_game->_script->evalExpr(0);
@@ -161,83 +153,92 @@
(!scumm_stricmp(fileName, "noixroule")))
strcpy(fileName, "noixroul");
- x = _vm->_game->_script->readValExpr();
- y = _vm->_game->_script->readValExpr();
- startFrame = _vm->_game->_script->readValExpr();
- lastFrame = _vm->_game->_script->readValExpr();
- breakKey = _vm->_game->_script->readValExpr();
- flags = _vm->_game->_script->readValExpr();
- palStart = _vm->_game->_script->readValExpr();
- palEnd = _vm->_game->_script->readValExpr();
- palCmd = 1 << (flags & 0x3F);
+ VideoPlayer::Properties props;
+ props.x = _vm->_game->_script->readValExpr();
+ props.y = _vm->_game->_script->readValExpr();
+ props.startFrame = _vm->_game->_script->readValExpr();
+ props.lastFrame = _vm->_game->_script->readValExpr();
+ props.breakKey = _vm->_game->_script->readValExpr();
+ props.flags = _vm->_game->_script->readValExpr();
+ props.palStart = _vm->_game->_script->readValExpr();
+ props.palEnd = _vm->_game->_script->readValExpr();
+ props.palCmd = 1 << (props.flags & 0x3F);
+
debugC(1, kDebugVideo, "Playing video \"%s\" @ %d+%d, frames %d - %d, "
- "paletteCmd %d (%d - %d), flags %X", fileName, x, y, startFrame, lastFrame,
- palCmd, palStart, palEnd, flags);
+ "paletteCmd %d (%d - %d), flags %X", fileName,
+ props.x, props.y, props.startFrame, props.lastFrame,
+ props.palCmd, props.palStart, props.palEnd, props.flags);
close = false;
- if (lastFrame == -1) {
+ if (props.lastFrame == -1) {
close = true;
- } else if (lastFrame == -2) {
- } else if (lastFrame == -3) {
+ } else if (props.lastFrame == -2) {
+ } else if (props.lastFrame == -3) {
- _vm->_mult->_objects[startFrame].pAnimData->animation = -startFrame - 1;
+ props.flags = VideoPlayer::kFlagOtherSurface;
+ props.sprite = -1;
- if (_vm->_mult->_objects[startFrame].videoSlot > 0)
- _vm->_vidPlayer->slotClose(_vm->_mult->_objects[startFrame].videoSlot - 1);
+ _vm->_mult->_objects[props.startFrame].pAnimData->animation = -props.startFrame - 1;
- int slot = _vm->_vidPlayer->slotOpen(fileName);
+ if (_vm->_mult->_objects[props.startFrame].videoSlot > 0)
+ _vm->_vidPlayer->closeVideo(_vm->_mult->_objects[props.startFrame].videoSlot - 1);
- _vm->_mult->_objects[startFrame].videoSlot = slot + 1;
+ int slot = _vm->_vidPlayer->openVideo(false, fileName, props);
- if (x == -1) {
- *_vm->_mult->_objects[startFrame].pPosX = _vm->_vidPlayer->getDefaultX(slot);
- *_vm->_mult->_objects[startFrame].pPosY = _vm->_vidPlayer->getDefaultY(slot);
+ _vm->_mult->_objects[props.startFrame].videoSlot = slot + 1;
+
+ if (props.x == -1) {
+ *_vm->_mult->_objects[props.startFrame].pPosX = _vm->_vidPlayer->getDefaultX(slot);
+ *_vm->_mult->_objects[props.startFrame].pPosY = _vm->_vidPlayer->getDefaultY(slot);
} else {
- *_vm->_mult->_objects[startFrame].pPosX = x;
- *_vm->_mult->_objects[startFrame].pPosY = y;
+ *_vm->_mult->_objects[props.startFrame].pPosX = props.x;
+ *_vm->_mult->_objects[props.startFrame].pPosY = props.y;
}
return;
- } else if (lastFrame == -4) {
+ } else if (props.lastFrame == -4) {
warning("Woodruff Stub: Video/Music command -4: Play background video %s", fileName);
return;
- } else if (lastFrame == -5) {
+ } else if (props.lastFrame == -5) {
_vm->_sound->bgStop();
return;
- } else if (lastFrame == -6) {
+ } else if (props.lastFrame == -6) {
return;
- } else if (lastFrame == -7) {
+ } else if (props.lastFrame == -7) {
return;
- } else if (lastFrame == -8) {
+ } else if (props.lastFrame == -8) {
warning("Woodruff Stub: Video/Music command -8: Play background video %s", fileName);
return;
- } else if (lastFrame == -9) {
+ } else if (props.lastFrame == -9) {
_vm->_sound->bgStop();
_vm->_sound->bgSetPlayMode(BackgroundAtmosphere::kPlayModeRandom);
- _vm->_sound->bgPlay(fileName, "SND", SOUND_SND, palStart);
+ _vm->_sound->bgPlay(fileName, "SND", SOUND_SND, props.palStart);
return;
- } else if (lastFrame < 0) {
- warning("Unknown Video/Music command: %d, %s", lastFrame, fileName);
+ } else if (props.lastFrame < 0) {
+ warning("Unknown Video/Music command: %d, %s", props.lastFrame, fileName);
return;
}
- if (startFrame == -2) {
- startFrame = 0;
- lastFrame = -1;
+ if (props.startFrame == -2) {
+ props.startFrame = 0;
+ props.lastFrame = -1;
close = false;
}
- if ((fileName[0] != 0) && !_vm->_vidPlayer->primaryOpen(fileName, x, y, flags)) {
+ _vm->_vidPlayer->evaluateFlags(props);
+
+ int slot;
+ if ((fileName[0] != 0) && ((slot = _vm->_vidPlayer->openVideo(true, fileName, props)) < 0)) {
WRITE_VAR(11, (uint32) -1);
return;
}
- if (startFrame >= 0)
- _vm->_vidPlayer->primaryPlay(startFrame, lastFrame, breakKey, palCmd, palStart, palEnd, 0);
+ if (props.startFrame >= 0)
+ _vm->_vidPlayer->play(slot, props);
if (close)
- _vm->_vidPlayer->primaryClose();
+ _vm->_vidPlayer->closeVideo(slot);
}
} // End of namespace Gob
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list