[Scummvm-git-logs] scummvm master -> 6f2c6531b4e2ca1643f1521f6a08384af681f41a
mgerhardy
noreply at scummvm.org
Fri Nov 26 19:59:11 UTC 2021
This automated email contains information about 4 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7784a2bf4a TWINE: renamed some fla struct members
ec631fe252 TWINE: renamed fla constants and fixed kBlackFrame
d4a4a51e5f TWINE: don't try to draw the holo trajectory if we are running the demo
6f2c6531b4 TWINE: No music in FLA movie
Commit: 7784a2bf4af94e003b38f88ff42301cfe1fd9d03
https://github.com/scummvm/scummvm/commit/7784a2bf4af94e003b38f88ff42301cfe1fd9d03
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-11-26T20:58:27+01:00
Commit Message:
TWINE: renamed some fla struct members
Changed paths:
engines/twine/movies.cpp
engines/twine/movies.h
diff --git a/engines/twine/movies.cpp b/engines/twine/movies.cpp
index 2c8d5df998..6acf431dac 100644
--- a/engines/twine/movies.cpp
+++ b/engines/twine/movies.cpp
@@ -164,25 +164,25 @@ void Movies::scaleFla2x() {
void Movies::processFrame() {
FLASampleStruct sample;
- _frameData.videoSize = _file.readSint16LE();
- _frameData.frameVar0 = _file.readSint32LE();
- if (_frameData.frameVar0 > _engine->_imageBuffer.w * _engine->_imageBuffer.h) {
- warning("Skipping video frame - it would exceed the screen buffer: %i", _frameData.frameVar0);
+ _frameData.nbFrames = _file.readSint16LE();
+ _frameData.offsetNextFrame = _file.readSint32LE();
+ if (_frameData.offsetNextFrame > _engine->_imageBuffer.w * _engine->_imageBuffer.h) {
+ warning("Skipping video frame - it would exceed the screen buffer: %i", _frameData.offsetNextFrame);
return;
}
uint8 *outBuf = (uint8 *)_engine->_imageBuffer.getPixels();
- _file.read(outBuf, _frameData.frameVar0);
+ _file.read(outBuf, _frameData.offsetNextFrame);
- if ((int32)_frameData.videoSize <= 0) {
+ if ((int32)_frameData.nbFrames <= 0) {
return;
}
- Common::MemoryReadStream stream(outBuf, _frameData.frameVar0);
- for (int32 frame = 0; frame < _frameData.videoSize; ++frame) {
+ Common::MemoryReadStream stream(outBuf, _frameData.offsetNextFrame);
+ for (int32 frame = 0; frame < _frameData.nbFrames; ++frame) {
const uint16 opcode = stream.readUint16LE();
const uint16 opcodeBlockSize = stream.readUint16LE();
- const int32 pos = stream.pos();
+ const int64 pos = stream.pos();
switch (opcode) {
case kLoadPalette: {
@@ -386,18 +386,18 @@ bool Movies::playMovie(const char *name) {
}
const uint32 version = _file.readUint32LE();
- _file.skip(2);
+ _file.skip(2); // version field is 5 bytes - and one padding byte
_flaHeaderData.numOfFrames = _file.readUint32LE();
_flaHeaderData.speed = _file.readByte();
- _flaHeaderData.var1 = _file.readByte();
- debug(2, "Unknown byte in fla file: %i", _flaHeaderData.var1);
+ _file.skip(1); // padding byte
_flaHeaderData.xsize = _file.readUint16LE();
_flaHeaderData.ysize = _file.readUint16LE();
_samplesInFla = (int16)_file.readUint16LE();
- const uint16 unk2 = _file.readUint16LE();
- debug(2, "Unknown uint16 in fla file: %i", unk2);
+ /*const uint16 offsetFrame1 =*/ _file.readUint16LE();
+ // sample number int16
+ // loop int16
_file.skip(4 * _samplesInFla);
bool finished = false;
diff --git a/engines/twine/movies.h b/engines/twine/movies.h
index f20e8f1ad9..ab1ab2b046 100644
--- a/engines/twine/movies.h
+++ b/engines/twine/movies.h
@@ -37,13 +37,11 @@ namespace TwinE {
/** FLA movie header structure */
struct FLAHeaderStruct {
/** FLA version */
- int8 version[6] {0};
+ int8 version[5] {0};
/** Number of frames */
int32 numOfFrames = 0;
/** Frames per second */
- int8 speed = 0;
- /** Unknown var1 */
- int8 var1 = 0;
+ int16 speed = 0;
/** Frame width */
int16 xsize = 0;
/** Frame height */
@@ -52,10 +50,8 @@ struct FLAHeaderStruct {
/** FLA movie frame structure */
struct FLAFrameDataStruct {
- /** Current frame size */
- int16 videoSize = 0;
- /** Unknown frameVar0 */
- int32 frameVar0 = 0;
+ int16 nbFrames = 0;
+ int32 offsetNextFrame = 0;
};
class TwinEEngine;
Commit: ec631fe25299d1ed17a02fc4de2d418b2a7c57af
https://github.com/scummvm/scummvm/commit/ec631fe25299d1ed17a02fc4de2d418b2a7c57af
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-11-26T20:58:27+01:00
Commit Message:
TWINE: renamed fla constants and fixed kBlackFrame
Changed paths:
engines/twine/movies.cpp
diff --git a/engines/twine/movies.cpp b/engines/twine/movies.cpp
index 6acf431dac..eab7852891 100644
--- a/engines/twine/movies.cpp
+++ b/engines/twine/movies.cpp
@@ -45,15 +45,15 @@ namespace TwinE {
/** FLA Frame Opcode types */
enum FlaFrameOpcode {
kLoadPalette = 1,
- kFade = 2,
+ kInfo = 2,
kPlaySample = 3,
kSampleBalance = 4,
kStopSample = 5,
kDeltaFrame = 6,
kBlackFrame = 7,
- kKeyFrame = 8,
+ kBrownFrame = 8,
kCopy = 9,
- kCopy2 = 16
+ kFliCopy = 16
};
/** FLA movie sample structure */
@@ -192,7 +192,7 @@ void Movies::processFrame() {
stream.read(dest, numOfColor * 3);
break;
}
- case kFade: {
+ case kInfo: {
int16 innerOpcpde = stream.readSint16LE();
switch (innerOpcpde) {
case 1: // fla flute
@@ -211,6 +211,7 @@ void Movies::processFrame() {
_flaPaletteVar = true;
break;
case 4:
+ // TODO: fade out for 1 second before we stop it
_engine->_music->stopMidiMusic();
break;
}
@@ -242,17 +243,17 @@ void Movies::processFrame() {
}
break;
}
- case kKeyFrame: {
- drawKeyFrame(stream, FLASCREEN_WIDTH, FLASCREEN_HEIGHT);
+ case kBrownFrame: {
+ drawKeyFrame(stream, FLASCREEN_WIDTH, _flaHeaderData.ysize);
break;
}
case kBlackFrame: {
- const Common::Rect rect(0, 0, 79, 199);
+ const Common::Rect rect(0, 0, FLASCREEN_WIDTH - 1, FLASCREEN_HEIGHT - 1);
_engine->_interface->drawFilledRect(rect, 0);
break;
}
case kCopy:
- case kCopy2: {
+ case kFliCopy: {
const Common::Rect rect(0, 0, 80, 200);
byte *ptr = (byte *)_engine->_frontVideoBuffer.getPixels();
for (int y = rect.top; y < rect.bottom; ++y) {
@@ -267,6 +268,7 @@ void Movies::processFrame() {
case kSampleBalance: {
/* int16 num = */ stream.readSint16LE();
/* uint8 offset = */ stream.readByte();
+ stream.skip(1); // padding
/* int16 balance = */ stream.readSint16LE();
/* uint8 volumeLeft = */ stream.readByte();
/* uint8 volumeRight = */ stream.readByte();
Commit: d4a4a51e5f25582b0ad80cd23c817e41bce8e0b0
https://github.com/scummvm/scummvm/commit/d4a4a51e5f25582b0ad80cd23c817e41bce8e0b0
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-11-26T20:58:47+01:00
Commit Message:
TWINE: don't try to draw the holo trajectory if we are running the demo
Changed paths:
engines/twine/holomap.cpp
diff --git a/engines/twine/holomap.cpp b/engines/twine/holomap.cpp
index fc3ce3eb1c..8592c132af 100644
--- a/engines/twine/holomap.cpp
+++ b/engines/twine/holomap.cpp
@@ -329,6 +329,9 @@ void Holomap::renderHolomapVehicle(uint &frameNumber, ActorMoveStruct &move, Ani
}
void Holomap::drawHolomapTrajectory(int32 trajectoryIndex) {
+ if (_engine->isDemo()) {
+ return;
+ }
debug("Draw trajectory index %i", trajectoryIndex);
const Trajectory *data = _engine->_resources->getTrajectory(trajectoryIndex);
Commit: 6f2c6531b4e2ca1643f1521f6a08384af681f41a
https://github.com/scummvm/scummvm/commit/6f2c6531b4e2ca1643f1521f6a08384af681f41a
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-11-26T20:58:47+01:00
Commit Message:
TWINE: No music in FLA movie
the original code only stops the samples - not the midi or cd music
Changed paths:
engines/twine/movies.cpp
diff --git a/engines/twine/movies.cpp b/engines/twine/movies.cpp
index eab7852891..801749d6e4 100644
--- a/engines/twine/movies.cpp
+++ b/engines/twine/movies.cpp
@@ -375,8 +375,6 @@ bool Movies::playMovie(const char *name) {
return true;
}
- _engine->_music->stopMusic();
-
_fadeOut = -1;
_fadeOutFrames = 0;
More information about the Scummvm-git-logs
mailing list