[Scummvm-git-logs] scummvm master -> fb699ca5862421ccca729cbac7ad637728a54296
sev-
noreply at scummvm.org
Fri Sep 19 17:31:43 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
fb699ca586 DIRECTOR: Fix behavior instantiation logic
Commit: fb699ca5862421ccca729cbac7ad637728a54296
https://github.com/scummvm/scummvm/commit/fb699ca5862421ccca729cbac7ad637728a54296
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2025-09-19T19:31:12+02:00
Commit Message:
DIRECTOR: Fix behavior instantiation logic
Changed paths:
engines/director/channel.cpp
engines/director/score.cpp
engines/director/spriteinfo.h
diff --git a/engines/director/channel.cpp b/engines/director/channel.cpp
index 33198d0cef7..cbddbe15d06 100644
--- a/engines/director/channel.cpp
+++ b/engines/director/channel.cpp
@@ -63,8 +63,13 @@ Channel::Channel(Score *sc, Sprite *sp, int priority) {
_visible = true;
_dirty = true;
- _startFrame = -1;
- _endFrame = -1;
+ if (sp) {
+ _startFrame = sp->_spriteInfo.startFrame;
+ _endFrame = sp->_spriteInfo.endFrame;
+ } else {
+ _startFrame = -1;
+ _endFrame = -1;
+ }
}
Channel::Channel(const Channel &channel) {
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 29da9c9dd10..2e7ba8d72f8 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -2456,7 +2456,7 @@ void Score::killScriptInstances(int frameNum) {
channel->_scriptInstanceList.clear();
channel->_startFrame = channel->_endFrame = -1;
- debugC(1, kDebugLingoExec, "Score::killBehaviors(): Killed behaviors for channel %d", i + 1);
+ debugC(1, kDebugLingoExec, "Score::killScriptInstances(): Killed script instances for channel %d", i + 1);
}
}
}
@@ -2476,7 +2476,7 @@ void Score::createScriptInstances(int frameNum) {
for (uint j = 0; j < sprite->_behaviors.size(); j++) {
// TODO: Here we should do proper instantiation
channel->_scriptInstanceList.push_back(sprite->_behaviors[j]);
- debugC(1, kDebugLingoExec, "Score::createBehaviors(): Created behavior %s for channel %d",
+ debugC(1, kDebugLingoExec, "Score::createScriptInstances(): Instantiating behavior %s for channel %d",
sprite->_behaviors[j].toString().c_str(), i + 1);
}
}
diff --git a/engines/director/spriteinfo.h b/engines/director/spriteinfo.h
index 0edff45960a..af351f85a64 100644
--- a/engines/director/spriteinfo.h
+++ b/engines/director/spriteinfo.h
@@ -25,11 +25,11 @@
namespace Director {
struct TweenInfo {
- int32 curvature;
- int32 flags;
- int32 easeIn;
- int32 easeOut;
- int32 padding;
+ int32 curvature = 0;
+ int32 flags = 0;
+ int32 easeIn = 0;
+ int32 easeOut = 0;
+ int32 padding = 0;
void read(Common::ReadStreamEndian &stream) {
curvature = (int32)stream.readUint32();
@@ -41,11 +41,11 @@ struct TweenInfo {
};
struct SpriteInfo {
- int32 startFrame;
- int32 endFrame;
- int32 xtraInfo;
- int32 flags;
- int32 channelNum;
+ int32 startFrame = -1;
+ int32 endFrame = -1;
+ int32 xtraInfo = 0;
+ int32 flags = 0;
+ int32 channelNum = 0;
TweenInfo tweenInfo;
Common::Array<int32> keyFrames;
More information about the Scummvm-git-logs
mailing list