[Scummvm-cvs-logs] scummvm master -> ff628a6b627b098e51d2f458188c3fc3f3ea07b1
sev-
sev at scummvm.org
Thu Aug 25 18:16:28 CEST 2016
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:
7e0899f5d4 DIRECTOR: Start executing frame scripts
6e8e0845a1 DIRECTOR: Fix font parameter reading
1a5ad0de5a DIRECTOR: Fix warning
ff628a6b62 DIRECTOR: Do not try to compile all text resources except first one
Commit: 7e0899f5d4d3876da5aa9a6b724c16e2e08f257b
https://github.com/scummvm/scummvm/commit/7e0899f5d4d3876da5aa9a6b724c16e2e08f257b
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-25T18:16:15+02:00
Commit Message:
DIRECTOR: Start executing frame scripts
Changed paths:
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
engines/director/score.h
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 5297380..3b0456d 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -248,11 +248,31 @@ void Lingo::executeScript(ScriptType type, uint16 id) {
cleanLocalVars();
}
+ScriptType Lingo::event2script(LEvent ev) {
+ if (_vm->getVersion() < 4) {
+ switch (ev) {
+ //case kEventStartMovie: // We are precompiling it now
+ // return kMovieScript;
+ case kEventEnterFrame:
+ return kFrameScript;
+ default:
+ return kNoneScript;
+ }
+ }
+
+ return kNoneScript;
+}
+
void Lingo::processEvent(LEvent event, int entityId) {
if (!_eventHandlerTypes.contains(event))
error("processEvent: Unknown event %d for entity %d", event, entityId);
- debug(2, "STUB: processEvent(%s) for %d", _eventHandlerTypes[event], entityId);
+ ScriptType st = event2script(event);
+
+ if (st != kNoneScript)
+ executeScript(st, entityId + 1);
+ else
+ debug(2, "STUB: processEvent(%s) for %d", _eventHandlerTypes[event], entityId);
}
int Lingo::alignTypes(Datum &d1, Datum &d2) {
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index a921f49..4dd0041 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -176,6 +176,8 @@ public:
void printStack(const char *s);
Common::String decodeInstruction(int pc, int *newPC = NULL);
+ ScriptType event2script(LEvent ev);
+
void processEvent(LEvent event, int entityId);
void initBuiltIns();
diff --git a/engines/director/score.h b/engines/director/score.h
index 11f885d..8ddbed0 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -58,6 +58,7 @@ enum ScriptType {
kMovieScript = 0,
kSpriteScript = 1,
kFrameScript = 2,
+ kNoneScript = -1,
kMaxScriptType = 2
};
Commit: 6e8e0845a16fbe54dffca84d86cc187b0b429557
https://github.com/scummvm/scummvm/commit/6e8e0845a16fbe54dffca84d86cc187b0b429557
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-25T18:16:15+02:00
Commit Message:
DIRECTOR: Fix font parameter reading
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index c4294fd..b3f2e02 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -664,8 +664,9 @@ TextCast::TextCast(Common::SeekableSubReadStreamEndian &stream) {
textType = static_cast<TextType>(stream.readByte());
textAlign = static_cast<TextAlignType>(stream.readUint16());
stream.skip(6); //palinfo
- //for now, just supposition
- fontId = stream.readUint32();
+
+ int t = stream.readUint32();
+ assert(t == 0); // So far we saw only 0 here
initialRect = Score::readRect(stream);
textShadow = static_cast<SizeType>(stream.readByte());
@@ -676,8 +677,11 @@ TextCast::TextCast(Common::SeekableSubReadStreamEndian &stream) {
textFlags.push_back(kTextFlagAutoTab);
if (flags & 0x4)
textFlags.push_back(kTextFlagDoNotWrap);
- //again supposition
- fontSize = stream.readUint16();
+
+ //TODO: FIXME: guesswork
+ fontId = stream.readByte();
+ fontSize = stream.readByte();
+
modified = 0;
}
Commit: 1a5ad0de5ae4ae0b4ea2ed3e3415ae4daef50797
https://github.com/scummvm/scummvm/commit/1a5ad0de5ae4ae0b4ea2ed3e3415ae4daef50797
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-25T18:16:15+02:00
Commit Message:
DIRECTOR: Fix warning
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index b3f2e02..75d8226 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -439,6 +439,8 @@ void Score::dumpScript(const char *script, ScriptType type, uint16 id) {
char buf[256];
switch (type) {
+ case kNoneScript:
+ error("Incorrect dumpScript() call");
case kFrameScript:
typeName = "frame";
break;
Commit: ff628a6b627b098e51d2f458188c3fc3f3ea07b1
https://github.com/scummvm/scummvm/commit/ff628a6b627b098e51d2f458188c3fc3f3ea07b1
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-08-25T18:16:15+02:00
Commit Message:
DIRECTOR: Do not try to compile all text resources except first one
Changed paths:
engines/director/score.cpp
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 75d8226..ea890b6 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -160,11 +160,7 @@ void Score::loadArchive() {
Common::Array<uint16> stxt = _movieArchive->getResourceIDList(MKTAG('S','T','X','T'));
if (stxt.size() > 0) {
- Common::Array<uint16>::iterator iterator;
-
- for (iterator = stxt.begin(); iterator != stxt.end(); ++iterator) {
- loadScriptText(*_movieArchive->getResource(MKTAG('S','T','X','T'), *iterator));
- }
+ loadScriptText(*_movieArchive->getResource(MKTAG('S','T','X','T'), *stxt.begin()));
}
}
More information about the Scummvm-git-logs
mailing list