[Scummvm-git-logs] scummvm master -> 6487578d23a3d3e2fbaa36aa89934ee4d1f8e894
fracturehill
noreply at scummvm.org
Fri May 12 09:43:16 UTC 2023
This automated email contains information about 11 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
8655830780 NANCY: Make action record error more descriptive
53242d84e8 NANCY: Fix reading of Overlay in nancy3
01519d79e5 NANCY: Properly clear kCloseParenthesis dependencies
55847e0827 NANCY: Actually fix cursors in nancy3
fb0039ea8f NANCY: Implement StopSound action record
cd2d706fd8 NANCY: Fix reading of nancy4 boot summary
153dd18ebe NANCY: Fix reading of Conversations in nancy3
e28b303c74 NANCY: Fix drawing of color text in textbox
f03ff22074 NANCY: Show arrow cursors when turning viewport
2aadf08d0c NANCY: Do not preload all conversation cels
6487578d23 NANCY: Fix first frame of conversation
Commit: 8655830780a6aef803c6c2dfd9d05bf14e26383c
https://github.com/scummvm/scummvm/commit/8655830780a6aef803c6c2dfd9d05bf14e26383c
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:30+03:00
Commit Message:
NANCY: Make action record error more descriptive
Changed paths:
engines/nancy/action/actionmanager.cpp
diff --git a/engines/nancy/action/actionmanager.cpp b/engines/nancy/action/actionmanager.cpp
index afc1aab5431..ed7ad7c0f9f 100644
--- a/engines/nancy/action/actionmanager.cpp
+++ b/engines/nancy/action/actionmanager.cpp
@@ -110,7 +110,11 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) {
uint singleDepSize = g_nancy->getGameType() <= kGameTypeNancy2 ? 12 : 16;
uint numDependencies = depsDataSize / singleDepSize;
if (depsDataSize % singleDepSize) {
- error("Action record type %s has incorrect read size", newRecord->getRecordTypeName().c_str());
+ error("Action record type %s has incorrect read size!\nScene S%u, AR %u, description:\n%s",
+ newRecord->getRecordTypeName().c_str(),
+ NancySceneState.getSceneInfo().sceneID,
+ _records.size(),
+ newRecord->_description.c_str());
}
if (numDependencies == 0) {
Commit: 53242d84e88ff601cbe8c5265d4e7465f8f2e053
https://github.com/scummvm/scummvm/commit/53242d84e88ff601cbe8c5265d4e7465f8f2e053
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:30+03:00
Commit Message:
NANCY: Fix reading of Overlay in nancy3
Changed paths:
engines/nancy/action/overlay.cpp
engines/nancy/commontypes.cpp
diff --git a/engines/nancy/action/overlay.cpp b/engines/nancy/action/overlay.cpp
index f9f2bf5ff13..8ad03b00306 100644
--- a/engines/nancy/action/overlay.cpp
+++ b/engines/nancy/action/overlay.cpp
@@ -48,10 +48,9 @@ void Overlay::readData(Common::SeekableReadStream &stream) {
uint16 numSrcRects;
readFilename(ser, _imageName);
- ser.skip(2);
+ ser.skip(2, kGameTypeVampire, kGameTypeNancy2);
ser.syncAsUint16LE(_transparency);
ser.syncAsUint16LE(_hasSceneChange);
-
ser.syncAsUint16LE(_enableHotspot, kGameTypeNancy2);
ser.syncAsUint16LE(_z, kGameTypeNancy2);
ser.syncAsUint16LE(_overlayType, kGameTypeNancy2);
diff --git a/engines/nancy/commontypes.cpp b/engines/nancy/commontypes.cpp
index 5bf711a5cf2..0df1b79a5cb 100644
--- a/engines/nancy/commontypes.cpp
+++ b/engines/nancy/commontypes.cpp
@@ -65,6 +65,11 @@ void BitmapDescription::readData(Common::SeekableReadStream &stream, bool frameI
} else {
frameID = stream.readUint32LE();
}
+
+ if (g_nancy->getGameType() >= kGameTypeNancy3) {
+ // Most likely transparency
+ stream.skip(2);
+ }
readRect(stream, src);
readRect(stream, dest);
Commit: 01519d79e52aa07e04f1083e1fbfe5160628a26e
https://github.com/scummvm/scummvm/commit/01519d79e52aa07e04f1083e1fbfe5160628a26e
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:31+03:00
Commit Message:
NANCY: Properly clear kCloseParenthesis dependencies
Changed paths:
engines/nancy/action/actionmanager.cpp
diff --git a/engines/nancy/action/actionmanager.cpp b/engines/nancy/action/actionmanager.cpp
index ed7ad7c0f9f..4d43bb65310 100644
--- a/engines/nancy/action/actionmanager.cpp
+++ b/engines/nancy/action/actionmanager.cpp
@@ -163,6 +163,7 @@ bool ActionManager::addNewActionRecord(Common::SeekableReadStream &inputData) {
depStack.push(&dep);
break;
case DependencyType::kCloseParenthesis:
+ depStack.top()->children.pop_back();
depStack.pop();
break;
default:
Commit: 55847e082749bcdcf51f139ed6b501a3c19b2f02
https://github.com/scummvm/scummvm/commit/55847e082749bcdcf51f139ed6b501a3c19b2f02
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:31+03:00
Commit Message:
NANCY: Actually fix cursors in nancy3
Fixed the number of cursor types in nancy3 so it's 8
instead of 9.
Changed paths:
engines/nancy/cursor.cpp
diff --git a/engines/nancy/cursor.cpp b/engines/nancy/cursor.cpp
index b641911ec98..3525947e787 100644
--- a/engines/nancy/cursor.cpp
+++ b/engines/nancy/cursor.cpp
@@ -44,7 +44,7 @@ void CursorManager::init(Common::SeekableReadStream *chunkStream) {
_numCursorTypes = 5;
break;
default:
- _numCursorTypes = 9;
+ _numCursorTypes = 8;
}
uint numCursors = g_nancy->getStaticData().numNonItemCursors + g_nancy->getStaticData().numItems * _numCursorTypes;
Commit: fb0039ea8f882f74866a72b79d735dcc858f3026
https://github.com/scummvm/scummvm/commit/fb0039ea8f882f74866a72b79d735dcc858f3026
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:31+03:00
Commit Message:
NANCY: Implement StopSound action record
Also implemented StopAndUnloadSound, but since our
sound manager always unloads on stop they both do
the same. Hopefully this won't cause any issues.
Changed paths:
engines/nancy/action/arfactory.cpp
engines/nancy/action/recordtypes.cpp
engines/nancy/action/recordtypes.h
diff --git a/engines/nancy/action/arfactory.cpp b/engines/nancy/action/arfactory.cpp
index 0af8f4beb8f..50a726d6ef3 100644
--- a/engines/nancy/action/arfactory.cpp
+++ b/engines/nancy/action/arfactory.cpp
@@ -146,6 +146,10 @@ ActionRecord *ActionManager::createActionRecord(uint16 type) {
return new PlaySoundPanFrameAnchorAndDie();
case 153:
return new PlaySoundMultiHS();
+ case 154:
+ return new StopSound();
+ case 155:
+ return new StopSound(); // StopAndUnloadSound, but we always unload
case 160:
return new HintSystem();
case 201:
diff --git a/engines/nancy/action/recordtypes.cpp b/engines/nancy/action/recordtypes.cpp
index e6584eec5ab..3b3bc7e1d70 100644
--- a/engines/nancy/action/recordtypes.cpp
+++ b/engines/nancy/action/recordtypes.cpp
@@ -653,6 +653,16 @@ void PlaySoundMultiHS::execute() {
}
}
+void StopSound::readData(Common::SeekableReadStream &stream) {
+ _channelID = stream.readUint16LE();
+ _sceneChange.readData(stream);
+}
+
+void StopSound::execute() {
+ g_nancy->_sound->stopSound(_channelID);
+ _sceneChange.execute();
+}
+
void HintSystem::readData(Common::SeekableReadStream &stream) {
_characterID = stream.readByte();
_genericSound.readNormal(stream);
diff --git a/engines/nancy/action/recordtypes.h b/engines/nancy/action/recordtypes.h
index 14b8f69b26b..b36a9c994f5 100644
--- a/engines/nancy/action/recordtypes.h
+++ b/engines/nancy/action/recordtypes.h
@@ -410,6 +410,18 @@ protected:
Common::String getRecordTypeName() const override { return "PlaySoundMultiHS"; }
};
+class StopSound : public ActionRecord {
+public:
+ void readData(Common::SeekableReadStream &stream) override;
+ void execute() override;
+
+ uint _channelID;
+ SceneChangeWithFlag _sceneChange;
+
+protected:
+ Common::String getRecordTypeName() const override { return "StopSound"; }
+};
+
class HintSystem : public ActionRecord {
public:
void readData(Common::SeekableReadStream &stream) override;
Commit: cd2d706fd8c4371b6b127588e7f8fc812c57c81d
https://github.com/scummvm/scummvm/commit/cd2d706fd8c4371b6b127588e7f8fc812c57c81d
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:31+03:00
Commit Message:
NANCY: Fix reading of nancy4 boot summary
Changed paths:
engines/nancy/enginedata.cpp
diff --git a/engines/nancy/enginedata.cpp b/engines/nancy/enginedata.cpp
index cacd1d5a341..2b4fa2a553d 100644
--- a/engines/nancy/enginedata.cpp
+++ b/engines/nancy/enginedata.cpp
@@ -39,7 +39,8 @@ BSUM::BSUM(Common::SeekableReadStream *chunkStream) {
s.skip(0x17, kGameTypeVampire, kGameTypeVampire);
s.skip(0x49, kGameTypeNancy1, kGameTypeNancy1);
- s.skip(0x43, kGameTypeNancy2, kGameTypeNancy3);
+ s.skip(0x43, kGameTypeNancy2);
+
s.syncAsUint16LE(firstScene.sceneID);
s.skip(0xC, kGameTypeVampire, kGameTypeVampire); // Palette name + unknown 2 bytes
s.syncAsUint16LE(firstScene.frameID);
@@ -48,7 +49,8 @@ BSUM::BSUM(Common::SeekableReadStream *chunkStream) {
s.syncAsUint16LE(startTimeMinutes);
s.skip(0xA7, kGameTypeVampire, kGameTypeNancy2);
- s.skip(4, kGameTypeNancy3);
+ s.skip(4, kGameTypeNancy3, kGameTypeNancy3);
+ s.skip(3, kGameTypeNancy4);
s.skip(8, kGameTypeVampire, kGameTypeVampire);
readRect(s, extraButtonHotspot, kGameTypeVampire, kGameTypeVampire);
Commit: 153dd18ebe7b3af13b41538ac7294191cb0b248e
https://github.com/scummvm/scummvm/commit/153dd18ebe7b3af13b41538ac7294191cb0b248e
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:32+03:00
Commit Message:
NANCY: Fix reading of Conversations in nancy3
Changed paths:
engines/nancy/action/conversation.cpp
engines/nancy/action/conversation.h
diff --git a/engines/nancy/action/conversation.cpp b/engines/nancy/action/conversation.cpp
index e0c26254aa1..4703d9c2889 100644
--- a/engines/nancy/action/conversation.cpp
+++ b/engines/nancy/action/conversation.cpp
@@ -39,6 +39,10 @@
namespace Nancy {
namespace Action {
+ConversationSound::ConversationSound() :
+ RenderActionRecord(8),
+ _noResponse(g_nancy->getGameType() <= kGameTypeNancy2 ? 10 : 20) {}
+
ConversationSound::~ConversationSound() {
if (NancySceneState.getActiveConversation() == this) {
NancySceneState.setActiveConversation(nullptr);
@@ -180,11 +184,11 @@ void ConversationSound::execute() {
}
// Add responses when conditions have been satisfied
- if (_conditionalResponseCharacterID != 10) {
+ if (_conditionalResponseCharacterID != _noResponse) {
addConditionalDialogue();
}
- if (_goodbyeResponseCharacterID != 10) {
+ if (_goodbyeResponseCharacterID != _noResponse) {
addGoodbye();
}
@@ -541,6 +545,7 @@ void ConversationCel::updateGraphics() {
}
void ConversationCel::readData(Common::SeekableReadStream &stream) {
+ Nancy::GameType gameType = g_nancy->getGameType();
Common::String xsheetName, bodyTreeName, headTreeName;
readFilename(stream, xsheetName);
readFilename(stream, bodyTreeName);
@@ -577,14 +582,31 @@ void ConversationCel::readData(Common::SeekableReadStream &stream) {
g_nancy->_resource->loadImage(imageName, cel.bodySurf, bodyTreeName, &cel.bodySrc, &cel.bodyDest);
readFilename(xsheet, imageName);
g_nancy->_resource->loadImage(imageName, cel.headSurf, headTreeName, &cel.headSrc, &cel.headDest);
- xsheet.skip(28);
+
+ // Zeroes
+ if (gameType >= kGameTypeNancy3) {
+ xsheet.skip(74);
+ } else {
+ xsheet.skip(28);
+ }
}
// Continue reading the AR stream
- stream.skip(0x17);
+
+ // Zeroes
+ if (g_nancy->getGameType() >= kGameTypeNancy3) {
+ stream.skip(66);
+ } else {
+ stream.skip(20);
+ }
+
+ // Something related to quality
+ stream.skip(3);
+
_firstFrame = stream.readUint16LE();
_lastFrame = stream.readUint16LE();
+ // A few more quality-related bytes and more zeroes
stream.skip(0x8E);
ConversationSound::readData(stream);
diff --git a/engines/nancy/action/conversation.h b/engines/nancy/action/conversation.h
index 52d406d53a1..d6753653c6a 100644
--- a/engines/nancy/action/conversation.h
+++ b/engines/nancy/action/conversation.h
@@ -31,7 +31,7 @@ namespace Action {
// The base class for conversations, with no video data
class ConversationSound : public RenderActionRecord {
public:
- ConversationSound() : RenderActionRecord(8) {}
+ ConversationSound();
virtual ~ConversationSound();
void init() override;
@@ -108,6 +108,8 @@ protected:
bool _hasDrawnTextbox = false;
int16 _pickedResponse = -1;
+
+ const byte _noResponse;
};
// Conversation with an AVF video. Originally called PlayPrimaryVideoChan0
Commit: e28b303c7431fa782c3b11ee191f8147f32fd32f
https://github.com/scummvm/scummvm/commit/e28b303c7431fa782c3b11ee191f8147f32fd32f
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:32+03:00
Commit Message:
NANCY: Fix drawing of color text in textbox
Fixed an issue with counting the number of drawn characters
in the textbox which resulted in color text sometimes being
cut early.
Changed paths:
engines/nancy/ui/textbox.cpp
diff --git a/engines/nancy/ui/textbox.cpp b/engines/nancy/ui/textbox.cpp
index 7df090ad9ad..eec7d1e6560 100644
--- a/engines/nancy/ui/textbox.cpp
+++ b/engines/nancy/ui/textbox.cpp
@@ -228,6 +228,13 @@ void Textbox::drawTextbox() {
bool isColor = false;
for (Common::String &line : wrappedLines) {
uint horizontalOffset = 0;
+
+ // Trim whitespaces at end of wrapped lines to make counting
+ // of characters consistent. We do this manually since we _want_
+ // some whitespaces at the beginning of a line (e.g. tabs)
+ if (Common::isSpace(line.lastChar())) {
+ line.deleteLastChar();
+ }
// Set the width of the hotspot
if (hasHotspot) {
Commit: f03ff220745e698b7dc2cb3b200c836c44b95f4f
https://github.com/scummvm/scummvm/commit/f03ff220745e698b7dc2cb3b200c836c44b95f4f
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:32+03:00
Commit Message:
NANCY: Show arrow cursors when turning viewport
Also made the code in CursorManager::setCursor much
more readable.
Changed paths:
engines/nancy/cursor.cpp
engines/nancy/ui/viewport.cpp
diff --git a/engines/nancy/cursor.cpp b/engines/nancy/cursor.cpp
index 3525947e787..7bcfeefc91e 100644
--- a/engines/nancy/cursor.cpp
+++ b/engines/nancy/cursor.cpp
@@ -89,6 +89,12 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
_hasItem = false;
+ // kNormalArrow, kHotspotArrow, kExit, kTurnLeft and kTurnRight are
+ // cases where the selected cursor is _always_ shown, regardless
+ // of whether or not an item is held. All other types of cursor
+ // are overridable when holding an item. Every item cursor has
+ // _numItemCursor variants, one corresponding to every numbered
+ // value of the CursorType enum.
switch (type) {
case kNormalArrow:
if (gameType <= kGameTypeNancy1) {
@@ -99,7 +105,7 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
_curCursorID = 8;
}
- break;
+ return;
case kHotspotArrow:
if (gameType <= kGameTypeNancy1) {
_curCursorID = 5;
@@ -109,27 +115,52 @@ void CursorManager::setCursor(CursorType type, int16 itemID) {
_curCursorID = 9;
}
+ return;
+ case kTurnLeft:
+ // Only valid for nancy3 and up
+ if (gameType >= kGameTypeNancy3) {
+ _curCursorID = kTurnLeft;
+ return;
+ } else {
+ type = kMove;
+ }
+
+ break;
+ case kTurnRight:
+ // Only valid for nancy3 and up
+ if (gameType >= kGameTypeNancy3) {
+ _curCursorID = kTurnRight;
+ return;
+ } else {
+ type = kMove;
+ }
+
break;
case kExit:
+ // Not valid in TVD
if (gameType != kGameTypeVampire) {
_curCursorID = 3;
- break;
+ return;
}
- // fall through
- default: {
- uint itemsOffset = 0;
- if (itemID == -1) {
- // No item held, set to eyeglass
- itemID = 0;
- } else {
- // Item held
- itemsOffset = g_nancy->getStaticData().numNonItemCursors;
- _hasItem = true;
- }
-
- _curCursorID = (itemID * _numCursorTypes) + itemsOffset + type;
+
+ break;
+ default:
+ break;
}
+
+ // Special cases have been handled, now choose correct
+ // item cursor if holding something
+ uint itemsOffset = 0;
+ if (itemID == -1) {
+ // No item held, set to eyeglass
+ itemID = 0;
+ } else {
+ // Item held
+ itemsOffset = g_nancy->getStaticData().numNonItemCursors;
+ _hasItem = true;
}
+
+ _curCursorID = (itemID * _numCursorTypes) + itemsOffset + type;
}
void CursorManager::setCursorType(CursorType type) {
diff --git a/engines/nancy/ui/viewport.cpp b/engines/nancy/ui/viewport.cpp
index 83f3d03e48c..e50845179d6 100644
--- a/engines/nancy/ui/viewport.cpp
+++ b/engines/nancy/ui/viewport.cpp
@@ -114,7 +114,13 @@ void Viewport::handleInput(NancyInput &input) {
}
if (direction) {
- g_nancy->_cursorManager->setCursorType(CursorManager::kMove);
+ if (direction & kLeft) {
+ g_nancy->_cursorManager->setCursorType(CursorManager::kTurnLeft);
+ } else if (direction & kRight) {
+ g_nancy->_cursorManager->setCursorType(CursorManager::kTurnRight);
+ } else {
+ g_nancy->_cursorManager->setCursorType(CursorManager::kMove);
+ }
if (input.input & NancyInput::kRightMouseButton) {
direction |= kMoveFast;
Commit: 2aadf08d0c0a51e48be94bb1191fd670b8d8b51b
https://github.com/scummvm/scummvm/commit/2aadf08d0c0a51e48be94bb1191fd670b8d8b51b
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:32+03:00
Commit Message:
NANCY: Do not preload all conversation cels
Loading all the cels at once when reading the ConversationCel
data is very slow, especially when running a compressed
game variant. This commit changes the class so frames
are loaded in realtime, inside updateGraphics().
Changed paths:
engines/nancy/action/conversation.cpp
engines/nancy/action/conversation.h
diff --git a/engines/nancy/action/conversation.cpp b/engines/nancy/action/conversation.cpp
index 4703d9c2889..8d11d3962c0 100644
--- a/engines/nancy/action/conversation.cpp
+++ b/engines/nancy/action/conversation.cpp
@@ -533,6 +533,9 @@ void ConversationCel::updateGraphics() {
if (_state == kRun && currentTime > _nextFrameTime && _curFrame <= _lastFrame) {
Cel &curCel = _cels[_curFrame];
+ g_nancy->_resource->loadImage(curCel.bodyCelName, curCel.bodySurf, _bodyTreeName, &curCel.bodySrc, &curCel.bodyDest);
+ g_nancy->_resource->loadImage(curCel.headCelName, curCel.headSurf, _headTreeName, &curCel.headSrc, &curCel.headDest);
+
_drawSurface.create(curCel.bodySurf, curCel.bodySrc);
moveTo(curCel.bodyDest);
@@ -546,10 +549,10 @@ void ConversationCel::updateGraphics() {
void ConversationCel::readData(Common::SeekableReadStream &stream) {
Nancy::GameType gameType = g_nancy->getGameType();
- Common::String xsheetName, bodyTreeName, headTreeName;
+ Common::String xsheetName;
readFilename(stream, xsheetName);
- readFilename(stream, bodyTreeName);
- readFilename(stream, headTreeName);
+ readFilename(stream, _bodyTreeName);
+ readFilename(stream, _headTreeName);
uint xsheetDataSize = 0;
byte *xsbuf = g_nancy->_resource->loadData(xsheetName, xsheetDataSize);
@@ -574,14 +577,11 @@ void ConversationCel::readData(Common::SeekableReadStream &stream) {
_frameTime = xsheet.readUint16LE();
xsheet.skip(2);
- Common::String imageName;
_cels.resize(numFrames);
for (uint i = 0; i < numFrames; ++i) {
Cel &cel = _cels[i];
- readFilename(xsheet, imageName);
- g_nancy->_resource->loadImage(imageName, cel.bodySurf, bodyTreeName, &cel.bodySrc, &cel.bodyDest);
- readFilename(xsheet, imageName);
- g_nancy->_resource->loadImage(imageName, cel.headSurf, headTreeName, &cel.headSrc, &cel.headDest);
+ readFilename(xsheet, cel.bodyCelName);
+ readFilename(xsheet, cel.headCelName);
// Zeroes
if (gameType >= kGameTypeNancy3) {
diff --git a/engines/nancy/action/conversation.h b/engines/nancy/action/conversation.h
index d6753653c6a..cd8a1f259fb 100644
--- a/engines/nancy/action/conversation.h
+++ b/engines/nancy/action/conversation.h
@@ -139,9 +139,11 @@ protected:
class ConversationCel : public ConversationSound {
public:
struct Cel {
+ Common::String bodyCelName;
Graphics::ManagedSurface bodySurf;
Common::Rect bodySrc;
Common::Rect bodyDest;
+ Common::String headCelName;
Graphics::ManagedSurface headSurf;
Common::Rect headSrc;
Common::Rect headDest;
@@ -164,6 +166,9 @@ public:
bool isVideoDonePlaying() override;
Common::Array<Cel> _cels;
+ Common::String _bodyTreeName;
+ Common::String _headTreeName;
+
uint16 _frameTime = 0;
uint _videoFormat = kLargeVideoFormat;
uint16 _firstFrame = 0;
Commit: 6487578d23a3d3e2fbaa36aa89934ee4d1f8e894
https://github.com/scummvm/scummvm/commit/6487578d23a3d3e2fbaa36aa89934ee4d1f8e894
Author: Kaloyan Chehlarski (strahy at outlook.com)
Date: 2023-05-12T12:42:33+03:00
Commit Message:
NANCY: Fix first frame of conversation
Fixed an issue with conversations where a single frame would
be drawn without the character being visible.
Changed paths:
engines/nancy/action/conversation.cpp
diff --git a/engines/nancy/action/conversation.cpp b/engines/nancy/action/conversation.cpp
index 8d11d3962c0..e86a4f5da2e 100644
--- a/engines/nancy/action/conversation.cpp
+++ b/engines/nancy/action/conversation.cpp
@@ -170,6 +170,9 @@ void ConversationSound::execute() {
_state = kRun;
NancySceneState.setActiveConversation(this);
+ // Do not draw first frame since video won't be loaded yet
+ g_nancy->_graphicsManager->suppressNextDraw();
+
// Do not fall through to give the execution one loop for event flag changes
// This fixes TVD scene 750
break;
More information about the Scummvm-git-logs
mailing list