[Scummvm-git-logs] scummvm master -> 48be72b95afe9d5aeedb5a8f557687f2a3ae4792
djsrv
dservilla at gmail.com
Mon Aug 10 19:14:18 UTC 2020
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0ff7274993 DIRECTOR: Multiply version numbers by 100
2f0090e11d DIRECTOR: LINGO: Reload builtins on version change
48be72b95a DIRECTOR: Load version from config
Commit: 0ff727499375839123dda704ed6b837dbd25ac58
https://github.com/scummvm/scummvm/commit/0ff727499375839123dda704ed6b837dbd25ac58
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-10T15:00:55-04:00
Commit Message:
DIRECTOR: Multiply version numbers by 100
To accomodate minor version.
Changed paths:
engines/director/cast.cpp
engines/director/castmember.cpp
engines/director/channel.cpp
engines/director/detection_tables.h
engines/director/director.cpp
engines/director/frame.cpp
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-events.cpp
engines/director/lingo/lingo-lex.cpp
engines/director/lingo/lingo-lex.l
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo-preprocessor.cpp
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.cpp
engines/director/lingo/tests/math.lingo
engines/director/lingo/tests/strings.lingo
engines/director/lingo/xlibs/fileio.cpp
engines/director/lingo/xlibs/flushxobj.cpp
engines/director/lingo/xlibs/palxobj.cpp
engines/director/lingo/xlibs/winxobj.cpp
engines/director/movie.cpp
engines/director/resource.cpp
engines/director/score.cpp
engines/director/sound.cpp
engines/director/sprite.cpp
engines/director/util.cpp
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index d27bd051c5..77ce1ff57d 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -180,7 +180,7 @@ Common::String Cast::getString(Common::String str) {
}
//TODO: check if all versions need to cut off the first character.
- if (_vm->getVersion() > 3) {
+ if (_vm->getVersion() >= 400) {
str.deleteChar(0);
}
@@ -292,7 +292,7 @@ bool Cast::loadArchive() {
}
// For D4+ we may request to force Lingo scripts and skip precompiled bytecode
- if (_vm->getVersion() >= 4 && !debugChannelSet(-1, kDebugNoBytecode)) {
+ if (_vm->getVersion() >= 400 && !debugChannelSet(-1, kDebugNoBytecode)) {
// Try to load script context
Common::Array<uint16> lctx = _castArchive->getResourceIDList(MKTAG('L','c','t','x'));
if (lctx.size() > 0) {
@@ -328,7 +328,7 @@ bool Cast::loadArchive() {
delete r;
// Try to load movie script, it starts with a comment
- if (_vm->getVersion() <= 3) {
+ if (_vm->getVersion() <= 300) {
if (debugChannelSet(-1, kDebugFewFramesOnly))
warning("Compiling STXT %d", *iterator);
@@ -387,7 +387,7 @@ void Cast::loadConfig(Common::SeekableSubReadStreamEndian &stream) {
stream.readByte();
}
- if (_vm->getVersion() >= 4) {
+ if (_vm->getVersion() >= 400) {
for (int i = 0; i < 0x16; i++)
stream.readByte();
@@ -411,7 +411,7 @@ void Cast::copyCastStxts() {
continue;
uint stxtid;
- if (_vm->getVersion() >= 4 && c->_value->_children.size() > 0)
+ if (_vm->getVersion() >= 400 && c->_value->_children.size() > 0)
stxtid = c->_value->_children[0].index;
else
stxtid = c->_key;
@@ -441,9 +441,9 @@ void Cast::loadCastChildren() {
PaletteCastMember *member = ((PaletteCastMember *)c->_value);
// TODO: Verify how palettes work in >D4 versions
- if (_vm->getVersion() == 4 && member->_children.size() == 1) {
+ if (_vm->getVersion() >= 400 && _vm->getVersion() < 500 && member->_children.size() == 1) {
member->_palette = g_director->getPalette(member->_children[0].index);
- } else if (_vm->getVersion() < 4) {
+ } else if (_vm->getVersion() < 400) {
// D3 palettes are always kept in this ascending order
member->_palette = g_director->getPalette((++p)->_value.id);
} else {
@@ -464,7 +464,7 @@ void Cast::loadCastChildren() {
Image::ImageDecoder *img = NULL;
Common::SeekableReadStream *pic = NULL;
- if (_vm->getVersion() >= 4 && bitmapCast->_children.size() > 0) {
+ if (_vm->getVersion() >= 400 && bitmapCast->_children.size() > 0) {
imgId = bitmapCast->_children[0].index;
tag = bitmapCast->_children[0].tag;
@@ -502,7 +502,7 @@ void Cast::loadCastChildren() {
debugC(2, kDebugLoading, "****** Loading 'BITD' id: %d (%d), %d bytes", imgId, realId, pic->size());
if (w > 0 && h > 0) {
- if (_vm->getVersion() < 6) {
+ if (_vm->getVersion() < 600) {
img = new BITDDecoder(w, h, bitmapCast->_bitsPerPixel, bitmapCast->_pitch, _vm->getPalette());
} else {
img = new Image::BitmapDecoder();
@@ -547,7 +547,7 @@ void Cast::loadSoundCasts() {
uint32 tag = MKTAG('S', 'N', 'D', ' ');
uint16 sndId = (uint16)(c->_key + _castIDoffset);
- if (_vm->getVersion() >= 4 && soundCast->_children.size() > 0) {
+ if (_vm->getVersion() >= 400 && soundCast->_children.size() > 0) {
sndId = soundCast->_children[0].index;
tag = soundCast->_children[0].tag;
}
@@ -599,7 +599,7 @@ void Cast::loadDigitalVideoCasts() {
uint32 tag = MKTAG('M', 'o', 'o', 'V');
uint16 videoId = (uint16)(c->_key + _castIDoffset);
- if (_vm->getVersion() >= 4 && digitalVideoCast->_children.size() > 0) {
+ if (_vm->getVersion() >= 400 && digitalVideoCast->_children.size() > 0) {
videoId = digitalVideoCast->_children[0].index;
tag = digitalVideoCast->_children[0].tag;
}
@@ -768,7 +768,7 @@ void Cast::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id,
// D2-3 cast members should be loaded in loadCastDataVWCR
#if 0
- if (_vm->getVersion() <= 3) {
+ if (_vm->getVersion() < 400) {
size1 = stream.readUint16();
sizeToRead = size1 +16; // 16 is for bounding rects
size2 = stream.readUint32();
@@ -780,7 +780,7 @@ void Cast::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id,
}
#endif
- if (_vm->getVersion() == 4) {
+ if (_vm->getVersion() >= 400 && _vm->getVersion() < 500) {
castSize = stream.readUint16();
castSizeToRead = castSize;
castInfoSize = stream.readUint32();
@@ -793,7 +793,7 @@ void Cast::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id,
flags1 = stream.readByte();
castSizeToRead -= 1;
}
- } else if (_vm->getVersion() == 5) {
+ } else if (_vm->getVersion() >= 500 && _vm->getVersion() < 600) {
castType = stream.readUint32();
size3 = stream.readUint32();
castInfoSize = stream.readUint32();
@@ -889,7 +889,7 @@ void Cast::loadCastData(Common::SeekableSubReadStreamEndian &stream, uint16 id,
// read the cast member info
- if (castInfoSize && _vm->getVersion() < 5) {
+ if (castInfoSize && _vm->getVersion() < 500) {
loadCastInfo(stream, id);
}
@@ -909,7 +909,7 @@ LingoContextEntry::LingoContextEntry(int32 i, int16 n)
: index(i), nextUnused(n), unused(false) {}
void Cast::loadLingoContext(Common::SeekableSubReadStreamEndian &stream) {
- if (_vm->getVersion() >= 4) {
+ if (_vm->getVersion() >= 400) {
debugC(1, kDebugCompile, "Add V4 script context");
if (debugChannelSet(5, kDebugLoading)) {
@@ -1116,7 +1116,7 @@ void Cast::loadCastInfo(Common::SeekableSubReadStreamEndian &stream, uint16 id)
CastMember *member = _loadedCast->getVal(id);
// For D4+ we may force Lingo scripts
- if (_vm->getVersion() < 4 || debugChannelSet(-1, kDebugNoBytecode)) {
+ if (_vm->getVersion() < 400 || debugChannelSet(-1, kDebugNoBytecode)) {
if (!ci->script.empty()) {
ScriptType scriptType = kCastScript;
// the script type here could be wrong!
diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index 239b8bfb57..f6086b7daf 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -58,7 +58,7 @@ BitmapCastMember::BitmapCastMember(Cast *cast, uint16 castId, Common::SeekableRe
_clut = kClutSystemMac;
_bitsPerPixel = 0;
- if (version < 4) {
+ if (version < 400) {
_flags1 = flags1; // region: 0 - auto, 1 - matte, 2 - disabled, 8 - no auto
if (_flags1 >> 4 == 0x0)
_autoHilite = true;
@@ -81,7 +81,7 @@ BitmapCastMember::BitmapCastMember(Cast *cast, uint16 castId, Common::SeekableRe
if (_pitch % 16)
_pitch += 16 - (_initialRect.width() % 16);
- } else if (version == 4) {
+ } else if (version >= 400 && version < 500) {
_flags1 = flags1;
_pitch = stream.readUint16();
_pitch &= 0x0fff;
@@ -132,7 +132,7 @@ BitmapCastMember::BitmapCastMember(Cast *cast, uint16 castId, Common::SeekableRe
debug("BitmapCastMember: tail");
Common::hexdump(buf, tail);
}
- } else if (version == 5) {
+ } else if (version >= 500) {
uint16 count = stream.readUint16();
for (uint16 cc = 0; cc < count; cc++)
stream.readUint32();
@@ -305,7 +305,7 @@ TextCastMember::TextCastMember(Cast *cast, uint16 castId, Common::SeekableReadSt
_bgpalinfo1 = _bgpalinfo2 = _bgpalinfo3 = 0;
_fgpalinfo1 = _fgpalinfo2 = _fgpalinfo3 = 0xff;
- if (version <= 3) {
+ if (version < 400) {
_flags1 = flags1; // region: 0 - auto, 1 - matte, 2 - disabled
_borderSize = static_cast<SizeType>(stream.readByte());
_gutterSize = static_cast<SizeType>(stream.readByte());
@@ -321,7 +321,7 @@ TextCastMember::TextCastMember(Cast *cast, uint16 castId, Common::SeekableReadSt
uint16 pad4 = 0;
uint16 totalTextHeight;
- if (version == 2) {
+ if (version >= 200 && version < 300) {
pad2 = stream.readUint16();
if (pad2 != 0) { // In D2 there are values
warning("TextCastMember: pad2: %x", pad2);
@@ -351,7 +351,7 @@ TextCastMember::TextCastMember(Cast *cast, uint16 castId, Common::SeekableReadSt
if (debugChannelSet(2, kDebugLoading)) {
_initialRect.debugPrint(2, "TextCastMember(): rect:");
}
- } else if (version == 4) {
+ } else if (version >= 400 && version < 500) {
_flags1 = flags1;
_borderSize = static_cast<SizeType>(stream.readByte());
_gutterSize = static_cast<SizeType>(stream.readByte());
@@ -401,7 +401,7 @@ TextCastMember::TextCastMember(Cast *cast, uint16 castId, Common::SeekableReadSt
if (asButton) {
_type = kCastButton;
- if (version <= 4) {
+ if (version < 500) {
_buttonType = static_cast<ButtonType>(stream.readUint16BE() - 1);
} else {
warning("TextCastMember(): Attempting to initialize >D4 button castmember");
@@ -533,7 +533,7 @@ ShapeCastMember::ShapeCastMember(Cast *cast, uint16 castId, Common::SeekableRead
_ink = kInkTypeCopy;
- if (version < 4) {
+ if (version < 400) {
unk1 = stream.readByte();
_shapeType = static_cast<ShapeType>(stream.readByte());
_initialRect = Movie::readRect(stream);
@@ -545,7 +545,7 @@ ShapeCastMember::ShapeCastMember(Cast *cast, uint16 castId, Common::SeekableRead
_ink = static_cast<InkType>(_fillType & 0x3f);
_lineThickness = stream.readByte();
_lineDirection = stream.readByte();
- } else if (version == 4) {
+ } else if (version >= 400 && version < 500) {
unk1 = stream.readByte();
_shapeType = static_cast<ShapeType>(stream.readByte());
_initialRect = Movie::readRect(stream);
@@ -584,9 +584,9 @@ ScriptCastMember::ScriptCastMember(Cast *cast, uint16 castId, Common::SeekableRe
_type = kCastLingoScript;
_scriptType = kNoneScript;
- if (version < 4) {
+ if (version < 400) {
error("Unhandled Script cast");
- } else if (version == 4) {
+ } else if (version >= 400 && version < 500) {
byte unk1 = stream.readByte();
byte type = stream.readByte();
@@ -605,7 +605,7 @@ ScriptCastMember::ScriptCastMember(Cast *cast, uint16 castId, Common::SeekableRe
stream.readByte(); // There should be no more data
assert(stream.eos());
- } else if (version > 4) {
+ } else if (version >= 500) {
stream.readByte();
stream.readByte();
diff --git a/engines/director/channel.cpp b/engines/director/channel.cpp
index 5acaa25ba9..167df1e7b7 100644
--- a/engines/director/channel.cpp
+++ b/engines/director/channel.cpp
@@ -429,7 +429,7 @@ MacShape *Channel::getShape() {
shape->lineSize = _sprite->_thickness & 0x3;
shape->pattern = _sprite->getPattern();
- if (g_director->getVersion() >= 3 && shape->spriteType == kCastMemberSprite) {
+ if (g_director->getVersion() >= 300 && shape->spriteType == kCastMemberSprite) {
if (!_sprite->_cast) {
warning("Channel::getShape(): kCastMemberSprite has no cast defined");
delete shape;
@@ -454,7 +454,7 @@ MacShape *Channel::getShape() {
break;
}
- if (g_director->getVersion() > 3) {
+ if (g_director->getVersion() >= 400) {
shape->foreColor = sc->getForeColor();
shape->backColor = sc->getBackColor();
shape->lineSize = sc->_lineThickness;
diff --git a/engines/director/detection_tables.h b/engines/director/detection_tables.h
index 23026e1468..4bbe4306ce 100644
--- a/engines/director/detection_tables.h
+++ b/engines/director/detection_tables.h
@@ -49,7 +49,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_TEST,
- 4
+ 400
},
// Execute all movies in directory
@@ -64,23 +64,23 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_TESTALL,
- 4
+ 400
},
// Generic D2 Mac entry
- MACGAME("director", "D2-mac", "D2-mac", 0, -1, 2),
+ MACGAME("director", "D2-mac", "D2-mac", 0, -1, 200),
// Generic D3 Mac entry
- MACGAME("director", "D3-mac", "D3-mac", 0, -1, 3),
+ MACGAME("director", "D3-mac", "D3-mac", 0, -1, 300),
// Generic D4 Mac entry
- MACGAME("director", "D4-mac", "D4-mac", 0, -1, 4),
+ MACGAME("director", "D4-mac", "D4-mac", 0, -1, 400),
// Generic D3 Win entry
- WINGAME("director", "D3-win", "D3-win", 0, -1, 3),
+ WINGAME("director", "D3-win", "D3-win", 0, -1, 300),
// Generic D4 Win entry
- WINGAME("director", "D4-win", "D4-win", 0, -1, 4),
+ WINGAME("director", "D4-win", "D4-win", 0, -1, 400),
- MACGAME("theapartment", "D2", "Main Menu", "fc56c179cb8c6d4938e61ee61fd0032c", 48325, 2), // Original name is "â¢Main Menu"
- MACGAME("theapartment", "D3", "Main Menu", "9e838fe1a6af7992d656ca325e38dee5", 47911, 3), // Original name is "â¢Main Menu"
- MACGAME("theapartment", "D4", "Main Menu", "ff86181f03fe6eb060f65a985ca0580d", 160612, 4), // Original name is "â¢Main Menu"
+ MACGAME("theapartment", "D2", "Main Menu", "fc56c179cb8c6d4938e61ee61fd0032c", 48325, 200), // Original name is "â¢Main Menu"
+ MACGAME("theapartment", "D3", "Main Menu", "9e838fe1a6af7992d656ca325e38dee5", 47911, 300), // Original name is "â¢Main Menu"
+ MACGAME("theapartment", "D4", "Main Menu", "ff86181f03fe6eb060f65a985ca0580d", 160612, 400), // Original name is "â¢Main Menu"
////////////////////////////////////////
//
@@ -96,12 +96,12 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME_l("alice", "", "Alice", "e54ec74aeb4355b0acd46320327c1bed", 274274, Common::JA_JPN, 2),
- MACGAME_l("tri3dtrial", "", "Tri-3D-Trial", "cfa68a1bc49251497ebde18e5fc9c217", 271223, Common::JA_JPN, 2),
+ MACGAME_l("alice", "", "Alice", "e54ec74aeb4355b0acd46320327c1bed", 274274, Common::JA_JPN, 200),
+ MACGAME_l("tri3dtrial", "", "Tri-3D-Trial", "cfa68a1bc49251497ebde18e5fc9c217", 271223, Common::JA_JPN, 200),
- MACGAME("warlock", "v1.0", "Spaceship Warlock", "cfa68a1bc49251497ebde18e5fc9c217", 271093, 2),
- MACGAME("warlock", "v1.1.1", "Spaceship Warlock", "cfa68a1bc49251497ebde18e5fc9c217", 271107, 2),
- MACDEMO("warlock", "Demo", "Spaceship Warlock Demo", "cfa68a1bc49251497ebde18e5fc9c217", 271099, 2),
+ MACGAME("warlock", "v1.0", "Spaceship Warlock", "cfa68a1bc49251497ebde18e5fc9c217", 271093, 200),
+ MACGAME("warlock", "v1.1.1", "Spaceship Warlock", "cfa68a1bc49251497ebde18e5fc9c217", 271107, 200),
+ MACDEMO("warlock", "Demo", "Spaceship Warlock Demo", "cfa68a1bc49251497ebde18e5fc9c217", 271099, 200),
////////////////////////////////////////
//
@@ -109,21 +109,21 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME_l("alexworld", "", "AlexWorld", "f5277c53bacd27936158dd3867e587e2", 391576, Common::JA_JPN, 3),
- WINGAME_l("alexworld", "", "ALEX.EXE", "65d06b5fef155a2473434571aff5bc29", 369996, Common::JA_JPN, 3),
+ MACGAME_l("alexworld", "", "AlexWorld", "f5277c53bacd27936158dd3867e587e2", 391576, Common::JA_JPN, 300),
+ WINGAME_l("alexworld", "", "ALEX.EXE", "65d06b5fef155a2473434571aff5bc29", 369996, Common::JA_JPN, 300),
- MACGAME("amandastories", "3.0", "AmandaStories", "1687f456d7f2bcf98e84fec6d3a03c17", 353985, 3),
+ MACGAME("amandastories", "3.0", "AmandaStories", "1687f456d7f2bcf98e84fec6d3a03c17", 353985, 300),
- MACGAME("beyondthewall", "", "Beyond The Wall Of Stars", "107c6a6d3cce957eaa26d427e672000c", 465523, 3),
- WINGAME("beyondthewall", "", "WALL.EXE", "5c6862a40a48881913ee7c50d25cd984", 225253, 3),
+ MACGAME("beyondthewall", "", "Beyond The Wall Of Stars", "107c6a6d3cce957eaa26d427e672000c", 465523, 300),
+ WINGAME("beyondthewall", "", "WALL.EXE", "5c6862a40a48881913ee7c50d25cd984", 225253, 300),
- MACGAME("chaos", "", "The C.H.A.O.S. Continuum", "2ce360c9ea2da80a2c6d1040b0ad92dd", 384481, 3), // original name is The C.H.A.O.S. Continuumâ¢
- WINGAME("chaos", "", "CHAOS.EXE", "7c8230a804abf9353b05627a675b5ffb", 375294, 3),
+ MACGAME("chaos", "", "The C.H.A.O.S. Continuum", "2ce360c9ea2da80a2c6d1040b0ad92dd", 384481, 300), // original name is The C.H.A.O.S. Continuumâ¢
+ WINGAME("chaos", "", "CHAOS.EXE", "7c8230a804abf9353b05627a675b5ffb", 375294, 300),
// almost all folders and file names use Japanese encoding, including executable
- MACGAME_l("easternmind", "", "Tong Nou", "276bee761e48a6fd709df77d5c2f60dd", 395037, Common::JA_JPN, 3),
+ MACGAME_l("easternmind", "", "Tong Nou", "276bee761e48a6fd709df77d5c2f60dd", 395037, Common::JA_JPN, 300),
- MACGAME("freakshow", "D3", "Freak Show Projector", "bb61dd0cc8356e51fe54c1a00f979b8f", 439483, 3),
+ MACGAME("freakshow", "D3", "Freak Show Projector", "bb61dd0cc8356e51fe54c1a00f979b8f", 439483, 300),
{
{
@@ -140,23 +140,23 @@ static const DirectorGameDescription gameDescriptions[] = {
3
},
- MACGAME("ironhelix", "", "Iron Helix Minimum", "1ae45c23586b41997ba52e2e7c771c4c", 1652052, 3),
- MACDEMO("ironhelix", "Demo", "IRON HELIX DEMO", "7c80091b84d4d5d48f7c773b30b10598", 1634901, 3),
+ MACGAME("ironhelix", "", "Iron Helix Minimum", "1ae45c23586b41997ba52e2e7c771c4c", 1652052, 300),
+ MACDEMO("ironhelix", "Demo", "IRON HELIX DEMO", "7c80091b84d4d5d48f7c773b30b10598", 1634901, 300),
- MACGAME("jman", "", "Journeyman.16 MB", "1ae45c23586b41997ba52e2e7c771c4c", 437743, 3),
- MACDEMO("jman", "Sneak Preview", "Journeyman Sneak Preview", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 6222889, 3),
- MACDEMO("jman", "CD Demo", "Journeyman Demo", "424093b2bc04a1bfa4376c878f67a364", 3083188, 3),
- MACDEMO("jman", "Looping Demo", "Journeyman Looping Demo", "1ae45c23586b41997ba52e2e7c771c4c", 3077658, 3),
- WINGAME("jman", "", "JMAN.EXE", "7c8230a804abf9353b05627a675b5ffb", 375282, 3),
- WINGAME_l("jman", "", "JOURNEY.EXE", "65d06b5fef155a2473434571aff5bc29", -1, Common::JA_JPN, 3),
- WINDEMO("jman", "Demo", "JMDEMO.EXE", "7c8230a804abf9353b05627a675b5ffb", 375305, 3),
+ MACGAME("jman", "", "Journeyman.16 MB", "1ae45c23586b41997ba52e2e7c771c4c", 437743, 300),
+ MACDEMO("jman", "Sneak Preview", "Journeyman Sneak Preview", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 6222889, 300),
+ MACDEMO("jman", "CD Demo", "Journeyman Demo", "424093b2bc04a1bfa4376c878f67a364", 3083188, 300),
+ MACDEMO("jman", "Looping Demo", "Journeyman Looping Demo", "1ae45c23586b41997ba52e2e7c771c4c", 3077658, 300),
+ WINGAME("jman", "", "JMAN.EXE", "7c8230a804abf9353b05627a675b5ffb", 375282, 300),
+ WINGAME_l("jman", "", "JOURNEY.EXE", "65d06b5fef155a2473434571aff5bc29", -1, Common::JA_JPN, 300),
+ WINDEMO("jman", "Demo", "JMDEMO.EXE", "7c8230a804abf9353b05627a675b5ffb", 375305, 300),
- MACGAME("jmmd", "", "Just Me & My Dad", "ea646eccc9a53f44ce082459d4809a06", 486966, 4),
+ MACGAME("jmmd", "", "Just Me & My Dad", "ea646eccc9a53f44ce082459d4809a06", 486966, 400),
- MACGAME("kyoto", "v1.01", "Cosmology of KYOTO", "f5277c53bacd27936158dd3867e587e2", 392505, 3),
+ MACGAME("kyoto", "v1.01", "Cosmology of KYOTO", "f5277c53bacd27936158dd3867e587e2", 392505, 300),
- MACGAME("lzone", "", "L-ZONE", "f5277c53bacd27936158dd3867e587e2", 392484, 3),
- MACGAME("lzone", "v2", "L-ZONE", "276bee761e48a6fd709df77d5c2f60dd", 395344, 3),
+ MACGAME("lzone", "", "L-ZONE", "f5277c53bacd27936158dd3867e587e2", 392484, 300),
+ MACGAME("lzone", "v2", "L-ZONE", "276bee761e48a6fd709df77d5c2f60dd", 395344, 300),
{
{
"lzone", "",
@@ -171,54 +171,54 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 3
+ 300
},
- MACGAME("maze", "", "Maze", "c4917547b9d9fda87567a9b3544489c4", 384534, 3),
+ MACGAME("maze", "", "Maze", "c4917547b9d9fda87567a9b3544489c4", 384534, 300),
- MACGAME("murderbrett", "", "The Environmental Surfer", "2ce360c9ea2da80a2c6d1040b0ad92dd", 384469, 3),
- WINGAME("murderbrett", "", "BRETTP.EXE", "65d06b5fef155a2473434571aff5bc29", 370010, 3),
- MACGAME("murdermagic", "", "The Magic Death", "a8788e8b79dccc582b9818ec63734bed", 736754, 3),
- WINGAME("murdermagic", "", "MAGIC.EXE", "7c8230a804abf9353b05627a675b5ffb", 375298, 3),
- MACGAME("murdersam", "", "Who Killed Sam Rupert", "243ed9ef948de907401784d0938a4ed5", 518996, 3), // original name is Who Killed Sam Rupert?
- WINGAME("murdersam", "", "SAM.EXE", "65d06b5fef155a2473434571aff5bc29", 370016, 3),
- MACGAME("murdertaylor", "", "Taylor French", "2ce360c9ea2da80a2c6d1040b0ad92dd", 384469, 3),
- WINGAME("murdertaylor", "", "TAYLORF.EXE", "65d06b5fef155a2473434571aff5bc29", 370010, 3),
+ MACGAME("murderbrett", "", "The Environmental Surfer", "2ce360c9ea2da80a2c6d1040b0ad92dd", 384469, 300),
+ WINGAME("murderbrett", "", "BRETTP.EXE", "65d06b5fef155a2473434571aff5bc29", 370010, 300),
+ MACGAME("murdermagic", "", "The Magic Death", "a8788e8b79dccc582b9818ec63734bed", 736754, 300),
+ WINGAME("murdermagic", "", "MAGIC.EXE", "7c8230a804abf9353b05627a675b5ffb", 375298, 300),
+ MACGAME("murdersam", "", "Who Killed Sam Rupert", "243ed9ef948de907401784d0938a4ed5", 518996, 300), // original name is Who Killed Sam Rupert?
+ WINGAME("murdersam", "", "SAM.EXE", "65d06b5fef155a2473434571aff5bc29", 370016, 300),
+ MACGAME("murdertaylor", "", "Taylor French", "2ce360c9ea2da80a2c6d1040b0ad92dd", 384469, 300),
+ WINGAME("murdertaylor", "", "TAYLORF.EXE", "65d06b5fef155a2473434571aff5bc29", 370010, 300),
- MACGAME("mylk", "", "Mylk DoubleClickMe!", "8a33471513b6896d3d13b8a9c8790d86", 356280, 3),
+ MACGAME("mylk", "", "Mylk DoubleClickMe!", "8a33471513b6896d3d13b8a9c8790d86", 356280, 300),
- MACGAME_l("refixion1", "", "REFIXION", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 356245, Common::JA_JPN, 3),
- MACGAME_l("refixion2", "", "Museum or Hospital", "1ae45c23586b41997ba52e2e7c771c4c", 375841, Common::JA_JPN, 3),
- MACGAME_l("refixion3", "", "The Reindeer Story", "f5277c53bacd27936158dd3867e587e2", 392473, Common::JA_JPN, 3),
+ MACGAME_l("refixion1", "", "REFIXION", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 356245, Common::JA_JPN, 300),
+ MACGAME_l("refixion2", "", "Museum or Hospital", "1ae45c23586b41997ba52e2e7c771c4c", 375841, Common::JA_JPN, 300),
+ MACGAME_l("refixion3", "", "The Reindeer Story", "f5277c53bacd27936158dd3867e587e2", 392473, Common::JA_JPN, 300),
- MACDEMO("rodney", "Demo", "Rodney's Funscreen demo", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 356866, 3), // full game is supported in MADE engine
- MACDEMO("screamingmetal", "Demo", "Screaming Metal Demo", "0a280df213c5bf3eca241f37151e1d56", 373190, 3), // full game was never released
+ MACDEMO("rodney", "Demo", "Rodney's Funscreen demo", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 356866, 300), // full game is supported in MADE engine
+ MACDEMO("screamingmetal", "Demo", "Screaming Metal Demo", "0a280df213c5bf3eca241f37151e1d56", 373190, 300), // full game was never released
- MACGAME("snh", "", "A Silly Noisy House", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 357142, 3),
- WINGAME("snh", "", "SNH.EXE", "5a6e241994f671a1ebe664fbae394217", 378901, 3),
+ MACGAME("snh", "", "A Silly Noisy House", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 357142, 300),
+ WINGAME("snh", "", "SNH.EXE", "5a6e241994f671a1ebe664fbae394217", 378901, 300),
- WINGAME("spyclub", "", "SPYCLUB.EXE", "65d06b5fef155a2473434571aff5bc29", -1, 3),
+ WINGAME("spyclub", "", "SPYCLUB.EXE", "65d06b5fef155a2473434571aff5bc29", -1, 300),
- MACGAME_l("the7colors", "", "LEGEND OF PSYS CITY", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 384001, Common::JA_JPN, 3), //original name is ~LEGEND OF PSYâ¢S CITY~
- MACGAME("the7colors", "", "T7C-R!", "d84feae6ba35340857f46c9cbd6bd1a6", 398981, 3), // English translation by Skye Sonomura (HomeStarRunnerTron)
+ MACGAME_l("the7colors", "", "LEGEND OF PSYS CITY", "9f0bb7ec7720e4f680ee3aa3d22c1c9d", 384001, Common::JA_JPN, 300), //original name is ~LEGEND OF PSYâ¢S CITY~
+ MACGAME("the7colors", "", "T7C-R!", "d84feae6ba35340857f46c9cbd6bd1a6", 398981, 300), // English translation by Skye Sonomura (HomeStarRunnerTron)
- MACGAME("vvcyber", "", "Start Game", "7f443f2e63fd497a9ad85b10dc880a91", 384846, 3),
- WINGAME("vvcyber", "", "CYBER.EXE", "65d06b5fef155a2473434571aff5bc29", 371139, 3),
- MACDEMO("vvcyber", "Demo", "CyberPlasm", "2ce360c9ea2da80a2c6d1040b0ad92dd", 504157, 3),
- WINDEMO("vvcyber", "Demo", "CYBER.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", 639439, 3),
- MACGAME("vvdinosaur", "", "Start Game", "d41d8cd98f00b204e9800998ecf8427e", -1, 3),
- WINGAME("vvdinosaur", "", "DINOSAUR.EXE", "4e6303630f4dd588e730d09241cf7e76", -1, 3),
- WINGAME("vvdinosaur", "v1.1", "DINOSAUR.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", 370049, 3),
- MACGAME("vvharp", "", "Start Adventure", "7f443f2e63fd497a9ad85b10dc880a91", 383406, 3),
- WINGAME("vvharp", "", "HYPNOTIC.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", 370272, 3),
- MACGAME("vvvampire", "", "The Vampire's Coffin", "d41d8cd98f00b204e9800998ecf8427e", -1, 3),
- WINGAME("vvvampire", "", "VAMPIRE.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", -1, 3),
+ MACGAME("vvcyber", "", "Start Game", "7f443f2e63fd497a9ad85b10dc880a91", 384846, 300),
+ WINGAME("vvcyber", "", "CYBER.EXE", "65d06b5fef155a2473434571aff5bc29", 371139, 300),
+ MACDEMO("vvcyber", "Demo", "CyberPlasm", "2ce360c9ea2da80a2c6d1040b0ad92dd", 504157, 300),
+ WINDEMO("vvcyber", "Demo", "CYBER.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", 639439, 300),
+ MACGAME("vvdinosaur", "", "Start Game", "d41d8cd98f00b204e9800998ecf8427e", -1, 300),
+ WINGAME("vvdinosaur", "", "DINOSAUR.EXE", "4e6303630f4dd588e730d09241cf7e76", -1, 300),
+ WINGAME("vvdinosaur", "v1.1", "DINOSAUR.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", 370049, 300),
+ MACGAME("vvharp", "", "Start Adventure", "7f443f2e63fd497a9ad85b10dc880a91", 383406, 300),
+ WINGAME("vvharp", "", "HYPNOTIC.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", 370272, 300),
+ MACGAME("vvvampire", "", "The Vampire's Coffin", "d41d8cd98f00b204e9800998ecf8427e", -1, 300),
+ WINGAME("vvvampire", "", "VAMPIRE.EXE", "88f4f7406f34ec36e751a64f7c76f2c4", -1, 300),
- WINGAME("warlock", "", "SSWARLCK.EXE", "65d06b5fef155a2473434571aff5bc29", 370867, 3),
- WINDEMO("warlock", "", "SSWDEMO.EXE", "65d06b5fef155a2473434571aff5bc29", 370934, 3),
+ WINGAME("warlock", "", "SSWARLCK.EXE", "65d06b5fef155a2473434571aff5bc29", 370867, 300),
+ WINDEMO("warlock", "", "SSWDEMO.EXE", "65d06b5fef155a2473434571aff5bc29", 370934, 300),
- MACGAME("wrath", "", "Wrath of the Gods", "2ce360c9ea2da80a2c6d1040b0ad92dd", 413986, 3),
+ MACGAME("wrath", "", "Wrath of the Gods", "2ce360c9ea2da80a2c6d1040b0ad92dd", 413986, 300),
{
{
@@ -234,7 +234,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 3
+ 300
},
{
@@ -251,12 +251,12 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 3
+ 300
},
- MACDEMO("xanthus", "Demo", "X A N T H U S", "1ae45c23586b41997ba52e2e7c771c4c", 375447, 3), // may be vaporware; original name is â X A N T H U S â
+ MACDEMO("xanthus", "Demo", "X A N T H U S", "1ae45c23586b41997ba52e2e7c771c4c", 375447, 300), // may be vaporware; original name is â X A N T H U S â
- MACGAME("ybr1", "", "YBR", "f5277c53bacd27936158dd3867e587e2", 414498, 3),
+ MACGAME("ybr1", "", "YBR", "f5277c53bacd27936158dd3867e587e2", 414498, 300),
{
{
@@ -272,7 +272,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 3
+ 300
},
{
@@ -289,7 +289,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 3
+ 300
},
{
@@ -306,7 +306,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 3
+ 300
},
////////////////////////////////////////
@@ -315,62 +315,62 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME("9worlds", "", "Nine Worlds", "3930940b5b4b2ae2563cc29b812855a6", 482838, 4),
- WINGAME("9worlds", "", "9WORLDS.EXE", "9da9df906149916b340a0a8fbee5ca52", 741994, 4),
- MACGAME_l("9worlds", "", "Neun Welten", "3930940b5b4b2ae2563cc29b812855a6", 483774, Common::DE_DEU, 4),
- WINGAME_l("9worlds", "", "9WORLDS.EXE", "054e5af279a05ab64627ef664631fe37", 742002, Common::DE_DEU, 4),
+ MACGAME("9worlds", "", "Nine Worlds", "3930940b5b4b2ae2563cc29b812855a6", 482838, 400),
+ WINGAME("9worlds", "", "9WORLDS.EXE", "9da9df906149916b340a0a8fbee5ca52", 741994, 400),
+ MACGAME_l("9worlds", "", "Neun Welten", "3930940b5b4b2ae2563cc29b812855a6", 483774, Common::DE_DEU, 400),
+ WINGAME_l("9worlds", "", "9WORLDS.EXE", "054e5af279a05ab64627ef664631fe37", 742002, Common::DE_DEU, 400),
- MACGAME("alice", "", "Alice", "3b61149c922f0fd815ca29686e4f554a", 304714, 4),
- WINGAME("alice", "", "ALICE.EXE", "c67ece9b657ee80355520ac37a25fe55", 684733, 4),
+ MACGAME("alice", "", "Alice", "3b61149c922f0fd815ca29686e4f554a", 304714, 400),
+ WINGAME("alice", "", "ALICE.EXE", "c67ece9b657ee80355520ac37a25fe55", 684733, 400),
- WINGAME_l("ankh1", "", "ANKH.EXE", "12345", 12345, Common::JA_JPN, 4),
+ WINGAME_l("ankh1", "", "ANKH.EXE", "12345", 12345, Common::JA_JPN, 400),
- MACGAME("arcofdoom", "", "Arc Player (4mb)", "ea553e3f3fa123ad38fa5249621e8c8b", 295426, 4),
- MACDEMO("arcofdoom", "Demo", "ArcDemo", "cdb27c916044ae4dceb4b7326063fa03", 301925, 4),
- WINGAME("arcofdoom", "", "ARC.EXE", "fd3e9ad004597b01656b28c348a2ae7f", 687973, 4),
+ MACGAME("arcofdoom", "", "Arc Player (4mb)", "ea553e3f3fa123ad38fa5249621e8c8b", 295426, 400),
+ MACDEMO("arcofdoom", "Demo", "ArcDemo", "cdb27c916044ae4dceb4b7326063fa03", 301925, 400),
+ WINGAME("arcofdoom", "", "ARC.EXE", "fd3e9ad004597b01656b28c348a2ae7f", 687973, 400),
- WINDEMO("ataripack", "Demo", "ACTDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("ataripack", "Demo", "ACTDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
// both Mac and Win versions require installation to extract executable
- MACGAME("badday", "", "BadDay (Universal)", "b7e69c37b7355022d400c14aa97c5d54", 483781, 4),
- WINGAME("badday", "", "BAD_DAY.EXE", "4ad339db5379a860b33cbb0fa64f18e2", 742342, 4),
+ MACGAME("badday", "", "BadDay (Universal)", "b7e69c37b7355022d400c14aa97c5d54", 483781, 400),
+ WINGAME("badday", "", "BAD_DAY.EXE", "4ad339db5379a860b33cbb0fa64f18e2", 742342, 400),
- WINGAME("bowie", "", "JUMP.EXE", "1706ba3b999d724957198c134e508127", 684317, 4),
+ WINGAME("bowie", "", "JUMP.EXE", "1706ba3b999d724957198c134e508127", 684317, 400),
- WINDEMO("c64pack", "Demo", "C64DEMO.EXE", "0458e44d9ad4ae0d3a583ac4141d21ae", 1007517, 4), // full game is not Director
+ WINDEMO("c64pack", "Demo", "C64DEMO.EXE", "0458e44d9ad4ae0d3a583ac4141d21ae", 1007517, 400), // full game is not Director
- WINGAME("chopsuey", "", "CHOPSUEY.EXE", "785e26240153a028549e8a66c2e904bf", 772382, 4),
+ WINGAME("chopsuey", "", "CHOPSUEY.EXE", "785e26240153a028549e8a66c2e904bf", 772382, 400),
- MACGAME_l("chuteng", "", "ChuTeng", "ea646eccc9a53f44ce082459d4809a06", 484351, Common::JA_JPN, 4), // executable file name is in Japanese characters
- WINGAME_l("chuteng", "", "CHUTENG.EXE", "aaef7b33829ff7b0243412c89869e011", 746971, Common::JA_JPN, 4),
+ MACGAME_l("chuteng", "", "ChuTeng", "ea646eccc9a53f44ce082459d4809a06", 484351, Common::JA_JPN, 400), // executable file name is in Japanese characters
+ WINGAME_l("chuteng", "", "CHUTENG.EXE", "aaef7b33829ff7b0243412c89869e011", 746971, Common::JA_JPN, 400),
- MACGAME("daedalus", "", "DAEDALUS.DAT", "4eb2fab14f1b932ae9f01d8b05a411de", 69794, 4),
- MACGAME_l("daedalus", "", "DAEDALUS.DAT", "2b9e22ee93e5d58f383ef389fa09e12b", 69794, Common::DE_DEU, 4),
- MACGAME_l("daedalus", "", "DAEDALUS.DAT", "2b9e22ee93e5d58f383ef389fa09e12b", 69794, Common::FR_FRA, 4),
+ MACGAME("daedalus", "", "DAEDALUS.DAT", "4eb2fab14f1b932ae9f01d8b05a411de", 69794, 400),
+ MACGAME_l("daedalus", "", "DAEDALUS.DAT", "2b9e22ee93e5d58f383ef389fa09e12b", 69794, Common::DE_DEU, 400),
+ MACGAME_l("daedalus", "", "DAEDALUS.DAT", "2b9e22ee93e5d58f383ef389fa09e12b", 69794, Common::FR_FRA, 400),
// both Mac and Win versions require installation to extract executable
// Mac version has 68k, PowerPC, and a fat binary (default) as options in the installer
- MACGAME("darkeye", "", "The Dark Eye (Universal)", "67f572196550aedb1f9523d782022be0", 486334, 4),
- WINGAME("darkeye", "", "DARKEYE.EXE", "6190ac8ccef3fd073e912ec5d0850f94", 742326, 4),
+ MACGAME("darkeye", "", "The Dark Eye (Universal)", "67f572196550aedb1f9523d782022be0", 486334, 400),
+ WINGAME("darkeye", "", "DARKEYE.EXE", "6190ac8ccef3fd073e912ec5d0850f94", 742326, 400),
- MACGAME("derratsorcerum", "", "Derrat Sorcerum v1.0.3", "a546ef2b921a9b48fd93928f1a505f22", 483762, 4), // original name is Derrat Sorcerum⢠v1.0.3
- MACDEMO("derratsorcerum", "Demo", "Derrat Sorcerum Demo v1.0.3", "a546ef2b921a9b48fd93928f1a505f22", 483762, 4), // original name is Derrat Sorcerum⢠Demo v1.0.3
+ MACGAME("derratsorcerum", "", "Derrat Sorcerum v1.0.3", "a546ef2b921a9b48fd93928f1a505f22", 483762, 400), // original name is Derrat Sorcerum⢠v1.0.3
+ MACDEMO("derratsorcerum", "Demo", "Derrat Sorcerum Demo v1.0.3", "a546ef2b921a9b48fd93928f1a505f22", 483762, 400), // original name is Derrat Sorcerum⢠Demo v1.0.3
// both Mac and Win versions require installation to extract executable
- MACGAME("devo", "", "Smart Patrol", "01be45e7241194dad07938e7059b88e3", 478506, 4),
- WINGAME("devo", "", "SMRTPTRL.EXE", "6030100dbff520b8763f6e98d15389d7", 741904, 4),
+ MACGAME("devo", "", "Smart Patrol", "01be45e7241194dad07938e7059b88e3", 478506, 400),
+ WINGAME("devo", "", "SMRTPTRL.EXE", "6030100dbff520b8763f6e98d15389d7", 741904, 400),
- MACGAME_l("earthtia", "", "LATHUR'S LEGEND", "12345", 12345, Common::JA_JPN, 4), // many files and folders use only JP char encoding
+ MACGAME_l("earthtia", "", "LATHUR'S LEGEND", "12345", 12345, Common::JA_JPN, 400), // many files and folders use only JP char encoding
- WINDEMO("earthwormjim", "Demo", "EWJDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("earthwormjim", "Demo", "EWJDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
- MACGAME("easternmind", "", "Eastern Mind", "78138a77207907642744d0960c14d9e5", 483746, 4),
- WINGAME("easternmind", "", "ESTRNMND.EXE", "2597cfb5466d193b5a18fc7b0e3a3fa5", 685789, 4),
+ MACGAME("easternmind", "", "Eastern Mind", "78138a77207907642744d0960c14d9e5", 483746, 400),
+ WINGAME("easternmind", "", "ESTRNMND.EXE", "2597cfb5466d193b5a18fc7b0e3a3fa5", 685789, 400),
- MACGAME("freakshow", "D4", "FreakShow Projector", "dc5a87dda7a0daf46604515f7d2cca66", 300644, 4),
- WINGAME("freakshow", "", "FREAKS.EXE", "b2e1c5abc0e3c31ddd2089a55a27a0a5", 695893, 4),
+ MACGAME("freakshow", "D4", "FreakShow Projector", "dc5a87dda7a0daf46604515f7d2cca66", 300644, 400),
+ WINGAME("freakshow", "", "FREAKS.EXE", "b2e1c5abc0e3c31ddd2089a55a27a0a5", 695893, 400),
- MACDEMO("gundam0079", "Demo", "Gundam Demo", "01be45e7241194dad07938e7059b88e3", 483376, 4), // full game is D5
+ MACDEMO("gundam0079", "Demo", "Gundam Demo", "01be45e7241194dad07938e7059b88e3", 483376, 400), // full game is D5
// Different releases of hamsterland1 allow choice of language on the opening screen
// English is always available, along with one alternate language
@@ -389,7 +389,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -406,7 +406,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -423,7 +423,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -440,7 +440,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -457,35 +457,35 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
// original file name is La Máquina del Tiempo
- MACGAME_l("hamsterland2", "", "La Mquina del Tiempo", "2c7d0c0d55cbe3f622c7d68cedb671e0", 483774, Common::ES_ESP, 4),
- WINGAME_l("hamsterland2", "", "HL2SP.EXE", "8dd22b8bde300c9fb5b66808905300f7", 875665, Common::ES_ESP, 4),
- MACGAME("hamsterland2", "", "The Time Machine", "2c7d0c0d55cbe3f622c7d68cedb671e0", 483774, 4),
- WINGAME("hamsterland2", "", "HL2EN.EXE", "4c812a63165c1f50242e879aae62718d", 859681, 4),
-
- MACGAME("horrortour1", "", "ZEDDAS(7M)", "da0da5d543b237051975ad70bec129f4", 483443, 4),
- WINGAME("horrortour1", "", "ZEDDAS.EXE", "d3ce91f305dd0f4d2f5e9ff6d4e41a3b", 741818, 4),
- MACGAME_l("horrortour1", "", "HorrorTour(7M)", "b7e69c37b7355022d400c14aa97c5d54", 483443, Common::JA_JPN, 4),
- WINGAME_l("horrortour1", "", "HORROR.EXE", "b16ecf8ebc02142c742b8a9acc935d52", 752425, Common::JA_JPN, 4),
- MACGAME_l("horrortour2", "", "ZEDDAS PowerPC", "da7d3f1d85bdb99518b586c40d2a673e", 60013, Common::JA_JPN, 4),
- WINGAME_l("horrortour2", "", "HT2.EXE", "499d8545ee2325b18d3f09fb2c0fc26e", 698029, Common::JA_JPN, 4),
-
- WINDEMO("hyperblade", "Demo", "HYPER.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
-
- WINGAME("id4p1", "iD4 Mission Disk 1 - Alien Supreme Commander", "SUPREME.EXE", "629eb9a5d991a2dbe380804e8c37043a", 1664965, 4),
- WINGAME("id4p2", "iD4 Mission Disk 2 - Alien Science Officer", "SCIENCE.EXE", "812a4b81b70e61e547c14dbbd507b402", 1766499, 4),
- WINGAME("id4p3", "iD4 Mission Disk 3 - Warrior Alien", "WARRIOR.EXE", "387245092ce0583c6fd0c54000b1502a", 1751593, 4),
- WINGAME("id4p4", "iD4 Mission Disk 4 - Alien Navigator", "NAV.EXE", "29de2d1fd34029b3c97ce852a7fc665e", 1834037, 4),
- WINGAME("id4p5", "iD4 Mission Disk 5 - Captain Steve Hiller", "STEVE.EXE", "14f19b724dd6361e4bf3cfddbac87d3f", 1797301, 4),
- WINGAME("id4p6", "iD4 Mission Disk 6 - Dave's Computer", "DAVE.EXE", "237f9db2ea9a38fa6f7292974539f494", 1774167, 4),
- WINGAME("id4p7", "iD4 Mission Disk 7 - President Whitmore", "PREZ.EXE", "e7d03a6d749d65dbcea7171ec4627e9c", 1666293, 4),
- WINGAME("id4p8", "iD4 Mission Disk 8 - Alien Attack Fighter", "ALIEN_F.EXE", "ee2eb92900d515ed7872c57f3b89a408", 1754975, 4),
- WINGAME("id4p9", "iD4 Mission Disk 9 - FA-18 Fighter Jet", "F18.EXE", "7a0292909a5103c89297c40cce1d836c", 1691893, 4),
- WINGAME("id4p10", "iD4 Mission Disk 10 - Alien Bomber", "BOMBER.EXE", "17758a9f425f7f3e7a926951e6c770f4", 1844189, 4),
- WINGAME("id4p11", "iD4 Mission Disk 11 - Area 51", "AREA51.EXE", "78be40f9c7e8e1770c388cc16a522aaf", 1776077, 4),
+ MACGAME_l("hamsterland2", "", "La Mquina del Tiempo", "2c7d0c0d55cbe3f622c7d68cedb671e0", 483774, Common::ES_ESP, 400),
+ WINGAME_l("hamsterland2", "", "HL2SP.EXE", "8dd22b8bde300c9fb5b66808905300f7", 875665, Common::ES_ESP, 400),
+ MACGAME("hamsterland2", "", "The Time Machine", "2c7d0c0d55cbe3f622c7d68cedb671e0", 483774, 400),
+ WINGAME("hamsterland2", "", "HL2EN.EXE", "4c812a63165c1f50242e879aae62718d", 859681, 400),
+
+ MACGAME("horrortour1", "", "ZEDDAS(7M)", "da0da5d543b237051975ad70bec129f4", 483443, 400),
+ WINGAME("horrortour1", "", "ZEDDAS.EXE", "d3ce91f305dd0f4d2f5e9ff6d4e41a3b", 741818, 400),
+ MACGAME_l("horrortour1", "", "HorrorTour(7M)", "b7e69c37b7355022d400c14aa97c5d54", 483443, Common::JA_JPN, 400),
+ WINGAME_l("horrortour1", "", "HORROR.EXE", "b16ecf8ebc02142c742b8a9acc935d52", 752425, Common::JA_JPN, 400),
+ MACGAME_l("horrortour2", "", "ZEDDAS PowerPC", "da7d3f1d85bdb99518b586c40d2a673e", 60013, Common::JA_JPN, 400),
+ WINGAME_l("horrortour2", "", "HT2.EXE", "499d8545ee2325b18d3f09fb2c0fc26e", 698029, Common::JA_JPN, 400),
+
+ WINDEMO("hyperblade", "Demo", "HYPER.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
+
+ WINGAME("id4p1", "iD4 Mission Disk 1 - Alien Supreme Commander", "SUPREME.EXE", "629eb9a5d991a2dbe380804e8c37043a", 1664965, 400),
+ WINGAME("id4p2", "iD4 Mission Disk 2 - Alien Science Officer", "SCIENCE.EXE", "812a4b81b70e61e547c14dbbd507b402", 1766499, 400),
+ WINGAME("id4p3", "iD4 Mission Disk 3 - Warrior Alien", "WARRIOR.EXE", "387245092ce0583c6fd0c54000b1502a", 1751593, 400),
+ WINGAME("id4p4", "iD4 Mission Disk 4 - Alien Navigator", "NAV.EXE", "29de2d1fd34029b3c97ce852a7fc665e", 1834037, 400),
+ WINGAME("id4p5", "iD4 Mission Disk 5 - Captain Steve Hiller", "STEVE.EXE", "14f19b724dd6361e4bf3cfddbac87d3f", 1797301, 400),
+ WINGAME("id4p6", "iD4 Mission Disk 6 - Dave's Computer", "DAVE.EXE", "237f9db2ea9a38fa6f7292974539f494", 1774167, 400),
+ WINGAME("id4p7", "iD4 Mission Disk 7 - President Whitmore", "PREZ.EXE", "e7d03a6d749d65dbcea7171ec4627e9c", 1666293, 400),
+ WINGAME("id4p8", "iD4 Mission Disk 8 - Alien Attack Fighter", "ALIEN_F.EXE", "ee2eb92900d515ed7872c57f3b89a408", 1754975, 400),
+ WINGAME("id4p9", "iD4 Mission Disk 9 - FA-18 Fighter Jet", "F18.EXE", "7a0292909a5103c89297c40cce1d836c", 1691893, 400),
+ WINGAME("id4p10", "iD4 Mission Disk 10 - Alien Bomber", "BOMBER.EXE", "17758a9f425f7f3e7a926951e6c770f4", 1844189, 400),
+ WINGAME("id4p11", "iD4 Mission Disk 11 - Area 51", "AREA51.EXE", "78be40f9c7e8e1770c388cc16a522aaf", 1776077, 400),
// Play as either Shirley (disc 1) or Dolan (disc 2)
{
@@ -502,7 +502,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -519,7 +519,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -536,7 +536,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -553,52 +553,52 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
- MACGAME("improv", "Shirley Game", "IMPROV (PowerPC)", "da0da5d543b237051975ad70bec129f4", 483443, 4),
- MACGAME("improv", "Dolan Game", "IMPROV (PowerPC)", "da0da5d543b237051975ad70bec129f4", 483443, 4),
- WINGAME("improv", "Shirley Game", "IMPROV.EXE", "da0da5d543b237051975ad70bec129f4", 483443, 4),
- WINGAME("improv", "Dolan Game", "IMPROV.EXE", "da0da5d543b237051975ad70bec129f4", 483443, 4),
+ MACGAME("improv", "Shirley Game", "IMPROV (PowerPC)", "da0da5d543b237051975ad70bec129f4", 483443, 400),
+ MACGAME("improv", "Dolan Game", "IMPROV (PowerPC)", "da0da5d543b237051975ad70bec129f4", 483443, 400),
+ WINGAME("improv", "Shirley Game", "IMPROV.EXE", "da0da5d543b237051975ad70bec129f4", 483443, 400),
+ WINGAME("improv", "Dolan Game", "IMPROV.EXE", "da0da5d543b237051975ad70bec129f4", 483443, 400),
- MACGAME("isis", "", "ISIS", "dedfabf9ee7bf5aab003bdab4137bca6", 777886, 4),
- WINGAME("isis", "", "ISIS.EXE", "59c1cb960199dd3f041262ab5271bb23", 14747213, 4),
- MACGAME_l("isis", "", "ISIS", "dedfabf9ee7bf5aab003bdab4137bca6", 780610, Common::DE_DEU, 4),
- WINGAME_l("isis", "", "ISIS.EXE", "d7f7e89495ac22c75b3fc04c09675b6e", 16750643, Common::DE_DEU, 4),
+ MACGAME("isis", "", "ISIS", "dedfabf9ee7bf5aab003bdab4137bca6", 777886, 400),
+ WINGAME("isis", "", "ISIS.EXE", "59c1cb960199dd3f041262ab5271bb23", 14747213, 400),
+ MACGAME_l("isis", "", "ISIS", "dedfabf9ee7bf5aab003bdab4137bca6", 780610, Common::DE_DEU, 400),
+ WINGAME_l("isis", "", "ISIS.EXE", "d7f7e89495ac22c75b3fc04c09675b6e", 16750643, Common::DE_DEU, 400),
// Note: There are four versions of the binary included on the disc.
// 5.6, 6, and 9 Meg variants all exist too.
- MACGAME("jewels", "", "Jewels 11 Meg", "339c89a148c4ff2c5c815c62ac006325", -1, 4),
- MACDEMO("jewels", "Two-Minute Demo", "Two-Minute Demo", "01be45e7241194dad07938e7059b88e3", -1, 4),
+ MACGAME("jewels", "", "Jewels 11 Meg", "339c89a148c4ff2c5c815c62ac006325", -1, 400),
+ MACDEMO("jewels", "Two-Minute Demo", "Two-Minute Demo", "01be45e7241194dad07938e7059b88e3", -1, 400),
- WINGAME("jewels", "", "JEWELS.EXE", "bb6d81471d166088260090472c6c3a87", -1, 4),
- WINDEMO("jewels", "Demo", "JEWELS.EXE", "abcc448c035e88d4edb4a29034fd1e34", -1, 4),
- WINDEMO("jewels", "Two-Minute Demo", "DEMO.EXE", "ebee52d3c4280674c600177df5b09da0", -1, 4),
+ WINGAME("jewels", "", "JEWELS.EXE", "bb6d81471d166088260090472c6c3a87", -1, 400),
+ WINDEMO("jewels", "Demo", "JEWELS.EXE", "abcc448c035e88d4edb4a29034fd1e34", -1, 400),
+ WINDEMO("jewels", "Two-Minute Demo", "DEMO.EXE", "ebee52d3c4280674c600177df5b09da0", -1, 400),
- MACGAME("jman", "Turbo!", "JMP Turbo", "cc3321069072b90f091f220bba16e4d4", -1, 4), // original name is JMP Turboâ¢
- MACGAME("jman", "Making Of", "The Journey", "cc3321069072b90f091f220bba16e4d4", -1, 4),
- MACDEMO("jman", "Director's Cut Demo", "Journeyman - Director's Cut", "01be45e7241194dad07938e7059b88e3", 484284, 4),
+ MACGAME("jman", "Turbo!", "JMP Turbo", "cc3321069072b90f091f220bba16e4d4", -1, 400), // original name is JMP Turboâ¢
+ MACGAME("jman", "Making Of", "The Journey", "cc3321069072b90f091f220bba16e4d4", -1, 400),
+ MACDEMO("jman", "Director's Cut Demo", "Journeyman - Director's Cut", "01be45e7241194dad07938e7059b88e3", 484284, 400),
- MACGAME("jman2", "", "Buried in Time PowerPC", "71287376e445ab9c98f0d150bb0ed175", 80334, 4), // original name is Buried in Time⢠PowerPC; also contains 68k binary
- MACGAME_l("jman2", "", "Buried in Time PowerPC", "71287376e445ab9c98f0d150bb0ed175", 86324, Common::DE_DEU, 4), // see English notes
- MACDEMO("jman2", "Demo", "Buried in Time Demo", "1ae45c23586b41997ba52e2e7c771c4c", 437743, 4),
- MACDEMO("jman2", "06/22/94 Demo", "Buried in Time Demo", "cdb27c916044ae4dceb4b7326063fa03", 328895, 4),
- MACDEMO("jman2", "Final Demo", "Buried in Time Demo", "cc3321069072b90f091f220bba16e4d4", 292731, 4),
- MACDEMO("jman2", "Gallery", "BIT Gallery", "01be45e7241194dad07938e7059b88e3", 484284, 4),
- MACDEMO("jman2", "Overview", "BIT Overview", "01be45e7241194dad07938e7059b88e3", 484284, 4),
+ MACGAME("jman2", "", "Buried in Time PowerPC", "71287376e445ab9c98f0d150bb0ed175", 80334, 400), // original name is Buried in Time⢠PowerPC; also contains 68k binary
+ MACGAME_l("jman2", "", "Buried in Time PowerPC", "71287376e445ab9c98f0d150bb0ed175", 86324, Common::DE_DEU, 400), // see English notes
+ MACDEMO("jman2", "Demo", "Buried in Time Demo", "1ae45c23586b41997ba52e2e7c771c4c", 437743, 400),
+ MACDEMO("jman2", "06/22/94 Demo", "Buried in Time Demo", "cdb27c916044ae4dceb4b7326063fa03", 328895, 400),
+ MACDEMO("jman2", "Final Demo", "Buried in Time Demo", "cc3321069072b90f091f220bba16e4d4", 292731, 400),
+ MACDEMO("jman2", "Gallery", "BIT Gallery", "01be45e7241194dad07938e7059b88e3", 484284, 400),
+ MACDEMO("jman2", "Overview", "BIT Overview", "01be45e7241194dad07938e7059b88e3", 484284, 400),
- MACGAME("karma", "", "Karma", "ea646eccc9a53f44ce082459d4809a06", 485535, 4),
- WINGAME("karma", "", "KARMA.EXE", "e830af6b5dfca4964184e7d61039e120", 697047, 4),
+ MACGAME("karma", "", "Karma", "ea646eccc9a53f44ce082459d4809a06", 485535, 400),
+ WINGAME("karma", "", "KARMA.EXE", "e830af6b5dfca4964184e7d61039e120", 697047, 400),
- MACGAME("kyoto", "v2.0", "Cosmology of KYOTO", "8719de9c083aca942fc0e5c0a127b6dc", 484370, 4),
- WINGAME("kyoto", "", "PLAY_E.EXE", "84cc8880f8c46b4da121b4c9f184418a", 691269, 4),
- MACGAME_l("kyoto", "v2.0", "Cosmology of KYOTO", "8719de9c083aca942fc0e5c0a127b6dc", 484445, Common::JA_JPN, 4),
- WINGAME_l("kyoto", "", "PLAY.EXE", "865b1b59e32e51a6670b9105ac8501ec", 741137, Common::JA_JPN, 4),
+ MACGAME("kyoto", "v2.0", "Cosmology of KYOTO", "8719de9c083aca942fc0e5c0a127b6dc", 484370, 400),
+ WINGAME("kyoto", "", "PLAY_E.EXE", "84cc8880f8c46b4da121b4c9f184418a", 691269, 400),
+ MACGAME_l("kyoto", "v2.0", "Cosmology of KYOTO", "8719de9c083aca942fc0e5c0a127b6dc", 484445, Common::JA_JPN, 400),
+ WINGAME_l("kyoto", "", "PLAY.EXE", "865b1b59e32e51a6670b9105ac8501ec", 741137, Common::JA_JPN, 400),
- MACDEMO("lion", "Demo", "Lion Demo", "01be45e7241194dad07938e7059b88e3", 484284, 4), // full game is DOS only, not Director
+ MACDEMO("lion", "Demo", "Lion Demo", "01be45e7241194dad07938e7059b88e3", 484284, 400), // full game is DOS only, not Director
- MACGAME("louiscatorze", "", "Louis Catorze", "2c7d0c0d55cbe3f622c7d68cedb671e0", 486954, 4),
- WINGAME("louiscatorze", "", "LOUIS.EXE", "21610856ba0f75598624edd58291600b", 719433, 4),
+ MACGAME("louiscatorze", "", "Louis Catorze", "2c7d0c0d55cbe3f622c7d68cedb671e0", 486954, 400),
+ WINGAME("louiscatorze", "", "LOUIS.EXE", "21610856ba0f75598624edd58291600b", 719433, 400),
{
{
@@ -612,45 +612,45 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
- MACGAME("majestic", "", "Majestic", "01be45e7241194dad07938e7059b88e3", 483774, 4),
- WINGAME("majestic", "", "MAJESTIC.EXE", "624267f70253e5327981003a6fc0aeba", 23437631, 4),
+ MACGAME("majestic", "", "Majestic", "01be45e7241194dad07938e7059b88e3", 483774, 400),
+ WINGAME("majestic", "", "MAJESTIC.EXE", "624267f70253e5327981003a6fc0aeba", 23437631, 400),
- MACGAME("martian", "", "The Martian Chronicles PPC CD", "db9b7f11aea52a294d2986a94a184000", 60328, 4),
- WINGAME("martian", "", "MC.EXE", "ee6267d276a18e8bfd6f0e4ecd07ba36", 1764151, 4),
+ MACGAME("martian", "", "The Martian Chronicles PPC CD", "db9b7f11aea52a294d2986a94a184000", 60328, 400),
+ WINGAME("martian", "", "MC.EXE", "ee6267d276a18e8bfd6f0e4ecd07ba36", 1764151, 400),
- WINGAME("mediaband", "", "MEDIABND.EXE", "0cfb9b4762e33ab56d656a0eb146a048", 717921, 4),
+ WINGAME("mediaband", "", "MEDIABND.EXE", "0cfb9b4762e33ab56d656a0eb146a048", 717921, 400),
- WINDEMO("mechwarrior2", "Demo", "MW2DEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("mechwarrior2", "Demo", "MW2DEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
- MACGAME("mirage", "", "Mirage", "0c7bbb4b24823e5ab871cb4c1d6f3710", 486954, 4),
- WINGAME("mirage", "", "MIRAGE.EXE", "2291ea234c14f1ccb8f2e67ae09bbfa3", 696867, 4),
- MACGAME("mirage", "Making Of", "The Making of Mirage", "78138a77207907642744d0960c14d9e5", 486982, 4),
- WINGAME("mirage", "Making Of", "MAKINGOF.EXE", "2458926212e5589c013b7e7c28b9bee0", 698407, 4),
+ MACGAME("mirage", "", "Mirage", "0c7bbb4b24823e5ab871cb4c1d6f3710", 486954, 400),
+ WINGAME("mirage", "", "MIRAGE.EXE", "2291ea234c14f1ccb8f2e67ae09bbfa3", 696867, 400),
+ MACGAME("mirage", "Making Of", "The Making of Mirage", "78138a77207907642744d0960c14d9e5", 486982, 400),
+ WINGAME("mirage", "Making Of", "MAKINGOF.EXE", "2458926212e5589c013b7e7c28b9bee0", 698407, 400),
// both Mac and Win versions require installation to extract executable and some data files
- MACGAME("mummy", "", "MUMMY", "01be45e7241194dad07938e7059b88e3", 503560, 4),
- WINGAME("mummy", "", "MUMMY.EXE", "2ebe3a4ef8c128db46794333d4b61c36", 2939630, 4),
+ MACGAME("mummy", "", "MUMMY", "01be45e7241194dad07938e7059b88e3", 503560, 400),
+ WINGAME("mummy", "", "MUMMY.EXE", "2ebe3a4ef8c128db46794333d4b61c36", 2939630, 400),
- WINDEMO("muppets", "Demo", "MUPPETS.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("muppets", "Demo", "MUPPETS.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
- MACGAME_l("murdertaylor", "", "Taylor French", "dc839fb9e2f8e6bfc4f4f995c57df495", 291683, Common::DE_DEU, 4),
- WINGAME_l("murdertaylor", "", "TF.EXE", "d7a97fbe1daf2bc5fdecee2725c297cd", 952741, Common::DE_DEU, 4),
+ MACGAME_l("murdertaylor", "", "Taylor French", "dc839fb9e2f8e6bfc4f4f995c57df495", 291683, Common::DE_DEU, 400),
+ WINGAME_l("murdertaylor", "", "TF.EXE", "d7a97fbe1daf2bc5fdecee2725c297cd", 952741, Common::DE_DEU, 400),
- WINGAME("mylk", "", "mylk.exe", "032b0860a694ece5f64f37cfe1ebdfa0", 904859, 4),
+ WINGAME("mylk", "", "mylk.exe", "032b0860a694ece5f64f37cfe1ebdfa0", 904859, 400),
- MACGAME("necrobius", "", "NCROBIUS.PPC", "ab6ba48edb4a93ca034c63905f615865", 605874, 4),
- WINGAME("necrobius", "", "N_BIUS.EXE", "d82ac6034122e1314157931f9df613f9", 692919, 4),
- WINDEMO("necrobius", "Demo", "N_BIUS.EXE", "d17330706956c2fda3ee482b39b0609f", 705049, 4),
+ MACGAME("necrobius", "", "NCROBIUS.PPC", "ab6ba48edb4a93ca034c63905f615865", 605874, 400),
+ WINGAME("necrobius", "", "N_BIUS.EXE", "d82ac6034122e1314157931f9df613f9", 692919, 400),
+ WINDEMO("necrobius", "Demo", "N_BIUS.EXE", "d17330706956c2fda3ee482b39b0609f", 705049, 400),
- MACGAME("nile", "", "Nile Passage to Egypt", "9765ad17bce6a2b40dd7f48377e82436", 512990, 4),
- WINGAME("nile", "", "NILE.EXE", "9b00cbba14f0a2e0445784ebacf62c78", 2846777, 4),
+ MACGAME("nile", "", "Nile Passage to Egypt", "9765ad17bce6a2b40dd7f48377e82436", 512990, 400),
+ WINGAME("nile", "", "NILE.EXE", "9b00cbba14f0a2e0445784ebacf62c78", 2846777, 400),
- WINDEMO("noir", "Demo", "NOIRDEMO.EXE", "a9690aa58c6da36b7a6bf88fd4c81ffc", 10949309, 4),
+ WINDEMO("noir", "Demo", "NOIRDEMO.EXE", "a9690aa58c6da36b7a6bf88fd4c81ffc", 10949309, 400),
- WINGAME("operafatal", "", "OPERA.EXE", "2b9da5566698a1f4b453e1a27e00ad29", 697739, 4),
+ WINGAME("operafatal", "", "OPERA.EXE", "2b9da5566698a1f4b453e1a27e00ad29", 697739, 400),
{
{
@@ -666,7 +666,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
{
@@ -683,67 +683,67 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 4
+ 400
},
- MACGAME_l("phantasplanet", "", "phantasmagoria_PPC", "602e61f10c158183218405dd30a09b3f", 60352, Common::JA_JPN, 4),
- WINGAME_l("phantasplanet", "", "PHANTAS.EXE", "c2dd62dd0f9488ae8102970553eff170", 690449, Common::JA_JPN, 4),
+ MACGAME_l("phantasplanet", "", "phantasmagoria_PPC", "602e61f10c158183218405dd30a09b3f", 60352, Common::JA_JPN, 400),
+ WINGAME_l("phantasplanet", "", "PHANTAS.EXE", "c2dd62dd0f9488ae8102970553eff170", 690449, Common::JA_JPN, 400),
- WINDEMO("pitfall", "Demo", "PITDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("pitfall", "Demo", "PITDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
- MACGAME("planetarizona", "", "Planet Arizona", "0c7bbb4b24823e5ab871cb4c1d6f3710", 488433, 4),
- WINGAME("planetarizona", "", "ARIZONA.EXE", "a23462ec87eff973d2cdb2ddfd4a59fa", 698651, 4),
+ MACGAME("planetarizona", "", "Planet Arizona", "0c7bbb4b24823e5ab871cb4c1d6f3710", 488433, 400),
+ WINGAME("planetarizona", "", "ARIZONA.EXE", "a23462ec87eff973d2cdb2ddfd4a59fa", 698651, 400),
// original file name is Paradise*Rescue
- MACGAME_l("prescue", "", "ParadiseRescue", "0c7bbb4b24823e5ab871cb4c1d6f3710", 488433, Common::JA_JPN, 4),
- WINGAME_l("prescue", "", "P_RESCUE.EXE", "a23462ec87eff973d2cdb2ddfd4a59fa", 698651, Common::JA_JPN, 4),
+ MACGAME_l("prescue", "", "ParadiseRescue", "0c7bbb4b24823e5ab871cb4c1d6f3710", 488433, Common::JA_JPN, 400),
+ WINGAME_l("prescue", "", "P_RESCUE.EXE", "a23462ec87eff973d2cdb2ddfd4a59fa", 698651, Common::JA_JPN, 400),
- WINDEMO("santafe1", "Demo", "ELKMOON.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
- WINDEMO("shanghai", "Demo", "SHGMDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("santafe1", "Demo", "ELKMOON.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
+ WINDEMO("shanghai", "Demo", "SHGMDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
- MACGAME("skyborg", "", "SkyBorg 1.0", "bcd3c718db258701496b3c5bcb827ef2", 486954, 4),
- WINGAME("skyborg", "", "BORG.EXE", "855f305ba8ae70d5e5a53a9085b83d5b", 1887499, 4),
+ MACGAME("skyborg", "", "SkyBorg 1.0", "bcd3c718db258701496b3c5bcb827ef2", 486954, 400),
+ WINGAME("skyborg", "", "BORG.EXE", "855f305ba8ae70d5e5a53a9085b83d5b", 1887499, 400),
- WINDEMO("spycraft", "Demo", "SPYCRAFT.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is not Director
+ WINDEMO("spycraft", "Demo", "SPYCRAFT.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is not Director
- MACGAME("superspy", "", "ssi english", "ccf864a8dc6e9d0d26eb73b4683e634b", 60324, 4),
- MACGAME_l("superspy", "", "SSI (Power Mac)", "5f036ea61efdcc5e30074a404dbf4d80", 61030, Common::DE_DEU, 4),
- MACGAME_l("superspy", "", "ssi hebrew", "49aa41e6b624e64e8e48850faa882cc8", 60324, Common::HE_ISR, 4),
- MACGAME_l("superspy", "", "SSI", "8f6a07fe6aa88428dd73557e1cd53d06", 58058, Common::IT_ITA, 4),
- WINGAME("superspy", "", "ssie.exe", "1f256591c24a3bef0875aee737114057", 2181003, 4),
- WINGAME_l("superspy", "", "Ssi.exe", "88272b3e24689c3986f4f4aa8c50e1f7", 2307489, Common::DE_DEU, 4),
- WINGAME_l("superspy", "", "ssih.exe", "f016f23131189b2b65669f5258538fb5", 2261091, Common::HE_ISR, 4),
- WINGAME_l("superspy", "", "SSI.EXE", "890c17a442dd3d96ab331f96d8c1eed8", 3648017, Common::IT_ITA, 4),
+ MACGAME("superspy", "", "ssi english", "ccf864a8dc6e9d0d26eb73b4683e634b", 60324, 400),
+ MACGAME_l("superspy", "", "SSI (Power Mac)", "5f036ea61efdcc5e30074a404dbf4d80", 61030, Common::DE_DEU, 400),
+ MACGAME_l("superspy", "", "ssi hebrew", "49aa41e6b624e64e8e48850faa882cc8", 60324, Common::HE_ISR, 400),
+ MACGAME_l("superspy", "", "SSI", "8f6a07fe6aa88428dd73557e1cd53d06", 58058, Common::IT_ITA, 400),
+ WINGAME("superspy", "", "ssie.exe", "1f256591c24a3bef0875aee737114057", 2181003, 400),
+ WINGAME_l("superspy", "", "Ssi.exe", "88272b3e24689c3986f4f4aa8c50e1f7", 2307489, Common::DE_DEU, 400),
+ WINGAME_l("superspy", "", "ssih.exe", "f016f23131189b2b65669f5258538fb5", 2261091, Common::HE_ISR, 400),
+ WINGAME_l("superspy", "", "SSI.EXE", "890c17a442dd3d96ab331f96d8c1eed8", 3648017, Common::IT_ITA, 400),
- WINGAME("teamxtreme1", "", "XTREME.EXE", "45ab80997efedec388ff5200722e673c", 690123, 4),
- WINGAME("teamxtreme2", "", "TX2.EXE", "50c80bd2add25e574494838772973beb", 2585471, 4),
+ WINGAME("teamxtreme1", "", "XTREME.EXE", "45ab80997efedec388ff5200722e673c", 690123, 400),
+ WINGAME("teamxtreme2", "", "TX2.EXE", "50c80bd2add25e574494838772973beb", 2585471, 400),
// original name is TD MAC/PPC
- MACGAME("totaldistortion", "", "TD MACPPC", "12345", 12345, 4),
- WINGAME("totaldistortion", "", "TOTAL_DN", "12345", 12345, 4),
+ MACGAME("totaldistortion", "", "TD MACPPC", "12345", 12345, 400),
+ WINGAME("totaldistortion", "", "TOTAL_DN", "12345", 12345, 400),
- MACGAME("trekborg", "", "Picard Dossier", "e1dc28c1dd8409c2d2e0d5d269df5ffc", 520069, 4),
- WINGAME("trekborg", "", "OMNIBORG.EXE", "1580ebad7599fb6c18815e244b0bfda3", 811363, 4),
+ MACGAME("trekborg", "", "Picard Dossier", "e1dc28c1dd8409c2d2e0d5d269df5ffc", 520069, 400),
+ WINGAME("trekborg", "", "OMNIBORG.EXE", "1580ebad7599fb6c18815e244b0bfda3", 811363, 400),
- MACGAME("trekguideds9", "v1.0", "Omnipedia DS9 Episodes", "1c2e5371b835680e7c1ca8bcea008bef", 505317, 4),
- WINGAME("trekguideds9", "v1.0", "OMNI_DS9.EXE", "0058390ff77e527c7bb413081004c304", 805517, 4),
+ MACGAME("trekguideds9", "v1.0", "Omnipedia DS9 Episodes", "1c2e5371b835680e7c1ca8bcea008bef", 505317, 400),
+ WINGAME("trekguideds9", "v1.0", "OMNI_DS9.EXE", "0058390ff77e527c7bb413081004c304", 805517, 400),
- MACGAME("trekguidetng", "v1.1", "TNG Episodes", "1c2e5371b835680e7c1ca8bcea008bef", 520149, 4),
- WINGAME("trekguidetng", "v1.1", "OMNI_TNG.EXE", "0049d72e2d5869408fc33860ec4b5c1f", 794201, 4),
+ MACGAME("trekguidetng", "v1.1", "TNG Episodes", "1c2e5371b835680e7c1ca8bcea008bef", 520149, 400),
+ WINGAME("trekguidetng", "v1.1", "OMNI_TNG.EXE", "0049d72e2d5869408fc33860ec4b5c1f", 794201, 400),
- MACGAME("trekklingon", "", "Klingon Language Lab", "b797956eb3a4dabcc15bfadf6fc66591", 481482, 4),
- WINGAME("trekklingon", "", "TREK_WIN.EXE", "204417e63c0a2df18cf42d780b97ed58", 1425763, 4),
+ MACGAME("trekklingon", "", "Klingon Language Lab", "b797956eb3a4dabcc15bfadf6fc66591", 481482, 400),
+ WINGAME("trekklingon", "", "TREK_WIN.EXE", "204417e63c0a2df18cf42d780b97ed58", 1425763, 400),
- MACGAME("trekomni", "v1.00", "Omnipedia", "b7e69c37b7355022d400c14aa97c5d54", 516791, 4),
- MACGAME("trekomni", "v1.1.2 Upgrade", "Omnipedia 2", "b7e69c37b7355022d400c14aa97c5d54", 613253, 4),
- WINGAME("trekomni", "Premier Edition", "ST_OMNI.EXE", "1a648d47632561f10a98782f1dde5738", 811827, 4),
- WINGAME("trekomni", "v1.1.2 Upgrade", "ST_OMNI2.EXE", "1d60aad73cc9c69776a878aa59e65230", 809781, 4),
+ MACGAME("trekomni", "v1.00", "Omnipedia", "b7e69c37b7355022d400c14aa97c5d54", 516791, 400),
+ MACGAME("trekomni", "v1.1.2 Upgrade", "Omnipedia 2", "b7e69c37b7355022d400c14aa97c5d54", 613253, 400),
+ WINGAME("trekomni", "Premier Edition", "ST_OMNI.EXE", "1a648d47632561f10a98782f1dde5738", 811827, 400),
+ WINGAME("trekomni", "v1.1.2 Upgrade", "ST_OMNI2.EXE", "1d60aad73cc9c69776a878aa59e65230", 809781, 400),
- MACGAME_l("ybr2", "", "YBR2", "b797956eb3a4dabcc15bfadf6fc66591", 504153, Common::JA_JPN, 4),
- WINGAME_l("ybr2", "", "YBR2.EXE", "dbe273c1df60305be98a1a582ddd2c3b", 860579, Common::JA_JPN, 4),
- WINDEMO_l("ybr2", "Demo", "YBR2DEMO.EXE", "25ecc053e02a0ef537d34d615119c814", 900973, Common::JA_JPN, 4),
+ MACGAME_l("ybr2", "", "YBR2", "b797956eb3a4dabcc15bfadf6fc66591", 504153, Common::JA_JPN, 400),
+ WINGAME_l("ybr2", "", "YBR2.EXE", "dbe273c1df60305be98a1a582ddd2c3b", 860579, Common::JA_JPN, 400),
+ WINDEMO_l("ybr2", "Demo", "YBR2DEMO.EXE", "25ecc053e02a0ef537d34d615119c814", 900973, Common::JA_JPN, 400),
- WINDEMO("znemesis", "Demo", "ZORKDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 4), // full game is supported in ZVision engine
+ WINDEMO("znemesis", "Demo", "ZORKDEMO.EXE", "4a8fd0d74faef305bc935e1aac94d3e8", 712817, 400), // full game is supported in ZVision engine
////////////////////////////////////////
//
@@ -751,23 +751,23 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- WINGAME("amber", "", "amber_jb.exe", "1a7acbba10a7246ba58c1d53fc7203f5", -1, 5),
+ WINGAME("amber", "", "amber_jb.exe", "1a7acbba10a7246ba58c1d53fc7203f5", -1, 500),
// original file names are ' ANKH2 ' and ' ANKH3 '
- MACGAME_l("ankh2", "", "ANKH2", "12345", 12345, Common::JA_JPN, 5),
- MACGAME_l("ankh3", "", "ANKH3", "12345", 12345, Common::JA_JPN, 5),
+ MACGAME_l("ankh2", "", "ANKH2", "12345", 12345, Common::JA_JPN, 500),
+ MACGAME_l("ankh3", "", "ANKH3", "12345", 12345, Common::JA_JPN, 500),
- WINGAME_l("ernie", "", "Ernie.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1417481, Common::SE_SWE, 5),
- WINDEMO_l("ernie", "Demo", "ERNIE.EXE", "1a7acbba10a7246ba58c1d53fc7203f5", 1417371, Common::SE_SWE, 5),
+ WINGAME_l("ernie", "", "Ernie.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1417481, Common::SE_SWE, 500),
+ WINDEMO_l("ernie", "Demo", "ERNIE.EXE", "1a7acbba10a7246ba58c1d53fc7203f5", 1417371, Common::SE_SWE, 500),
- WINGAME("gadget", "", "GADGET.EXE", "d62438566e44826960fc16c5c23dbe43", 2212541, 5), //ADGF_HICOLOR,
+ WINGAME("gadget", "", "GADGET.EXE", "d62438566e44826960fc16c5c23dbe43", 2212541, 500), //ADGF_HICOLOR,
- MACGAME("gundam0079", "", "Gundam0079", "4c38a51a21a1ad231f218c4786ff771d", -1, 5),
- WINGAME("gundam0079", "", "Gundam0079.exe", "1a7acbba10a7246ba58c1d53fc7203f5", -1, 5),
+ MACGAME("gundam0079", "", "Gundam0079", "4c38a51a21a1ad231f218c4786ff771d", -1, 500),
+ WINGAME("gundam0079", "", "Gundam0079.exe", "1a7acbba10a7246ba58c1d53fc7203f5", -1, 500),
// Win version must be installed in 32-bit Windows to extract executable
- WINGAME_l("horrortour3", "", "HT3.exe", "3460ad87d2ba57104e2810a77b53c220", 5128359, Common::JA_JPN, 5),
- MACGAME_l("horrortour3", "", "HT3", "b545372e9f6e9351d4119af9258d8de0", 108736, Common::JA_JPN, 5),
+ WINGAME_l("horrortour3", "", "HT3.exe", "3460ad87d2ba57104e2810a77b53c220", 5128359, Common::JA_JPN, 500),
+ MACGAME_l("horrortour3", "", "HT3", "b545372e9f6e9351d4119af9258d8de0", 108736, Common::JA_JPN, 500),
{
{
@@ -785,7 +785,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 5
+ 500
},
{
@@ -807,7 +807,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 5
+ 500
},
{
@@ -826,7 +826,7 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 5
+ 500
},
{
@@ -849,20 +849,20 @@ static const DirectorGameDescription gameDescriptions[] = {
GUIO1(GUIO_NOASPECT)
},
GID_GENERIC,
- 5
+ 500
},
- MACGAME_l("murderbrett", "", "Brad, le surfeur", "227fcce08de8028e2201f5f4eb3b3cc3", 720160, Common::FR_FRA, 5),
- WINGAME_l("murderbrett", "", "BRAD.EXE", "e1c3cb4df694b887f3708f9ebb72302f", 934342, Common::FR_FRA, 5),
+ MACGAME_l("murderbrett", "", "Brad, le surfeur", "227fcce08de8028e2201f5f4eb3b3cc3", 720160, Common::FR_FRA, 500),
+ WINGAME_l("murderbrett", "", "BRAD.EXE", "e1c3cb4df694b887f3708f9ebb72302f", 934342, Common::FR_FRA, 500),
- WINGAME("noir", "", "NOIR.EXE", "2e62abdad839e42068afdcd0644d7dcf", 1020879, 5),
+ WINGAME("noir", "", "NOIR.EXE", "2e62abdad839e42068afdcd0644d7dcf", 1020879, 500),
- MACGAME_l("ybr3", "", "YBRH", "4c38a51a21a1ad231f218c4786ff771d", 105855, Common::JA_JPN, 5),
- MACGAME_l("ybr3", "Single Version", "YBR_Single", "6e7e31d05709e1d38d63f4df6a59eec0", 722547, Common::JA_JPN, 5),
- MACDEMO_l("ybr3", "Demo", "harapeco", "4ab012350c6e1c39eda772e33df30cea", 723903, Common::JA_JPN, 5), // Original name is non-ASCII Japanese characters
- WINGAME_l("ybr3", "", "YBRH.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1410805, Common::JA_JPN, 5), // Original name is non-ASCII Japanese characters
- WINGAME_l("ybr3", "Single Version", "YBRSingl.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1410799, Common::JA_JPN, 5),
- WINDEMO_l("ybr3", "Demo", "harapeco.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1693107, Common::JA_JPN, 5),
+ MACGAME_l("ybr3", "", "YBRH", "4c38a51a21a1ad231f218c4786ff771d", 105855, Common::JA_JPN, 500),
+ MACGAME_l("ybr3", "Single Version", "YBR_Single", "6e7e31d05709e1d38d63f4df6a59eec0", 722547, Common::JA_JPN, 500),
+ MACDEMO_l("ybr3", "Demo", "harapeco", "4ab012350c6e1c39eda772e33df30cea", 723903, Common::JA_JPN, 500), // Original name is non-ASCII Japanese characters
+ WINGAME_l("ybr3", "", "YBRH.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1410805, Common::JA_JPN, 500), // Original name is non-ASCII Japanese characters
+ WINGAME_l("ybr3", "Single Version", "YBRSingl.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1410799, Common::JA_JPN, 500),
+ WINDEMO_l("ybr3", "Demo", "harapeco.exe", "1a7acbba10a7246ba58c1d53fc7203f5", 1693107, Common::JA_JPN, 500),
////////////////////////////////////////
//
@@ -870,8 +870,8 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME("trekpedia98", "", "Ency98 Player", "b0b0e36586489ca6070d20feeff52fa5", 1091806, 6),
- WINGAME("trekpedia98", "", "ENCY98.EXE", "35f1550747fcf691283b0f2486144e2b", 1707566, 6),
+ MACGAME("trekpedia98", "", "Ency98 Player", "b0b0e36586489ca6070d20feeff52fa5", 1091806, 600),
+ WINGAME("trekpedia98", "", "ENCY98.EXE", "35f1550747fcf691283b0f2486144e2b", 1707566, 600),
////////////////////////////////////////
//
@@ -879,8 +879,8 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME("jewels", "", "Jewels of the Oracle", "fa52f0136cde568a46249ce74f01a324", -1, 7),
- WINGAME("jewels", "", "Jewels.exe", "c1a2e8b7e41fa204009324a9c7db1030", -1, 7),
+ MACGAME("jewels", "", "Jewels of the Oracle", "fa52f0136cde568a46249ce74f01a324", -1, 700),
+ WINGAME("jewels", "", "Jewels.exe", "c1a2e8b7e41fa204009324a9c7db1030", -1, 700),
////////////////////////////////////////
//
@@ -888,7 +888,7 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME_l("operafatal", "Classic OS", "Opera Classic", "78e78f91a6e42ece5a585c3a3dc81de3", 172200, Common::DE_DEU, 8),
+ MACGAME_l("operafatal", "Classic OS", "Opera Classic", "78e78f91a6e42ece5a585c3a3dc81de3", 172200, Common::DE_DEU, 800),
////////////////////////////////////////
//
@@ -896,8 +896,8 @@ static const DirectorGameDescription gameDescriptions[] = {
//
////////////////////////////////////////
- MACGAME_l("operafatal", "OS X", "Opera OSX", "3ab7133c17cd4f175e5cb14c6750766e", 222001, Common::DE_DEU, 9),
- WINGAME_l("operafatal", "", "Opera.exe", "05e89a3d53d270cac3b53e0a6f9352f5", 2747652, Common::DE_DEU, 9),
+ MACGAME_l("operafatal", "OS X", "Opera OSX", "3ab7133c17cd4f175e5cb14c6750766e", 222001, Common::DE_DEU, 900),
+ WINGAME_l("operafatal", "", "Opera.exe", "05e89a3d53d270cac3b53e0a6f9352f5", 2747652, Common::DE_DEU, 900),
{ AD_TABLE_END_MARKER, GID_GENERIC, 0 }
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 324d51f92d..1160934075 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -179,13 +179,13 @@ Common::Error DirectorEngine::run() {
if (getPlatform() == Common::kPlatformWindows)
_machineType = 256; // IBM PC-type machine
- if (getVersion() < 4) {
+ if (getVersion() < 400) {
if (getPlatform() == Common::kPlatformWindows) {
_sharedCastFile = "SHARDCST.MMM";
} else {
_sharedCastFile = "Shared Cast";
}
- } else if (getVersion() == 5) {
+ } else if (getVersion() == 500) {
if (getPlatform() == Common::kPlatformWindows) {
_sharedCastFile = "SHARED.Cxt";
}
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index c28840b736..5b4e116f7c 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -129,7 +129,7 @@ void Frame::readChannel(Common::SeekableSubReadStreamEndian &stream, uint16 offs
void Frame::readChannels(Common::ReadStreamEndian *stream) {
byte unk[48];
- if (_vm->getVersion() < 4) {
+ if (_vm->getVersion() < 400) {
// Sound/Tempo/Transition
_actionId = stream->readByte();
_soundType1 = stream->readByte(); // type: 0x17 for sounds (sound is cast id), 0x16 for MIDI (sound is cmd id)
@@ -192,7 +192,7 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
if (_vm->getPlatform() == Common::kPlatformMacintosh)
stream->read(unk, 3);
- } else if (_vm->getVersion() == 4) {
+ } else if (_vm->getVersion() >= 400 && _vm->getVersion() < 500) {
// Sound/Tempo/Transition
int unk1 = stream->readByte();
if (unk1) {
@@ -248,7 +248,7 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
stream->readByte();
debugC(8, kDebugLoading, "Frame::readChannels(): %d %d %d %d %d %d %d %d %d %d %d", _actionId, _soundType1, _transDuration, _transChunkSize, _tempo, _transType, _sound1, _skipFrameFlag, _blend, _sound2, _soundType2);
- } else if (_vm->getVersion() == 5) {
+ } else if (_vm->getVersion() >= 500 && _vm->getVersion() < 600) {
// Sound/Tempo/Transition channel
stream->read(unk, 24);
@@ -268,11 +268,11 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
for (int i = 0; i < _numChannels; i++) {
Sprite &sprite = *_sprites[i + 1];
- if (_vm->getVersion() <= 4) {
+ if (_vm->getVersion() < 500) {
sprite._scriptId = stream->readByte();
sprite._spriteType = (SpriteType)stream->readByte();
sprite._enabled = sprite._spriteType != kInactiveSprite;
- if (_vm->getVersion() == 4) {
+ if (_vm->getVersion() >= 400) {
sprite._foreColor = _vm->transformColor((uint8)stream->readByte());
sprite._backColor = _vm->transformColor((uint8)stream->readByte());
} else {
@@ -296,7 +296,7 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
sprite._height = (int16)stream->readUint16();
sprite._width = (int16)stream->readUint16();
- if (_vm->getVersion() == 4) {
+ if (_vm->getVersion() >= 400) {
sprite._scriptId = stream->readUint16();
// & 0x0f scorecolor
// 0x10 forecolor is rgb
@@ -306,7 +306,7 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
sprite._colorcode = stream->readByte();
sprite._blendAmount = stream->readByte();
}
- } else if (_vm->getVersion() == 5) {
+ } else if (_vm->getVersion() >= 500 && _vm->getVersion() < 600) {
sprite._spriteType = (SpriteType)stream->readByte();
sprite._inkData = stream->readByte();
@@ -329,7 +329,7 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
sprite._blendAmount = stream->readByte();
sprite._thickness = stream->readByte();
stream->readByte(); // unused
- } else if (_vm->getVersion() == 6) {
+ } else if (_vm->getVersion() >= 600 && _vm->getVersion() < 700) {
sprite._spriteType = (SpriteType)stream->readByte();
sprite._inkData = stream->readByte();
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 366a266ffb..1164a0863f 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -83,185 +83,185 @@ static struct BuiltinProto {
SymbolType type;
} builtins[] = {
// Math
- { "abs", LB::b_abs, 1, 1, true, 2, FBLTIN }, // D2 function
- { "atan", LB::b_atan, 1, 1, true, 4, FBLTIN }, // D4 f
- { "cos", LB::b_cos, 1, 1, true, 4, FBLTIN }, // D4 f
- { "exp", LB::b_exp, 1, 1, true, 4, FBLTIN }, // D4 f
- { "float", LB::b_float, 1, 1, true, 4, FBLTIN }, // D4 f
- { "integer", LB::b_integer, 1, 1, true, 3, FBLTIN }, // D3 f
- { "log", LB::b_log, 1, 1, true, 4, FBLTIN }, // D4 f
- { "pi", LB::b_pi, 0, 0, true, 4, FBLTIN }, // D4 f
- { "power", LB::b_power, 2, 2, true, 4, FBLTIN }, // D4 f
- { "random", LB::b_random, 1, 1, true, 2, FBLTIN }, // D2 f
- { "sin", LB::b_sin, 1, 1, true, 4, FBLTIN }, // D4 f
- { "sqrt", LB::b_sqrt, 1, 1, true, 2, FBLTIN }, // D2 f
- { "tan", LB::b_tan, 1, 1, true, 4, FBLTIN }, // D4 f
+ { "abs", LB::b_abs, 1, 1, true, 200, FBLTIN }, // D2 function
+ { "atan", LB::b_atan, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "cos", LB::b_cos, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "exp", LB::b_exp, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "float", LB::b_float, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "integer", LB::b_integer, 1, 1, true, 300, FBLTIN }, // D3 f
+ { "log", LB::b_log, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "pi", LB::b_pi, 0, 0, true, 400, FBLTIN }, // D4 f
+ { "power", LB::b_power, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "random", LB::b_random, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "sin", LB::b_sin, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "sqrt", LB::b_sqrt, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "tan", LB::b_tan, 1, 1, true, 400, FBLTIN }, // D4 f
// String
- { "chars", LB::b_chars, 3, 3, true, 2, FBLTIN }, // D2 f
- { "charToNum", LB::b_charToNum, 1, 1, true, 2, FBLTIN }, // D2 f
- { "delete", LB::b_delete, 1, 1, true, 3, CBLTIN }, // D3 command
- { "hilite", LB::b_hilite, 1, 1, true, 3, CBLTIN }, // D3 c
- { "length", LB::b_length, 1, 1, true, 2, FBLTIN }, // D2 f
- { "numToChar", LB::b_numToChar, 1, 1, true, 2, FBLTIN }, // D2 f
- { "offset", LB::b_offset, 2, 3, true, 2, FBLTIN }, // D2 f
- { "string", LB::b_string, 1, 1, true, 2, FBLTIN }, // D2 f
- { "value", LB::b_value, 1, 1, true, 2, FBLTIN }, // D2 f
+ { "chars", LB::b_chars, 3, 3, true, 200, FBLTIN }, // D2 f
+ { "charToNum", LB::b_charToNum, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "delete", LB::b_delete, 1, 1, true, 300, CBLTIN }, // D3 command
+ { "hilite", LB::b_hilite, 1, 1, true, 300, CBLTIN }, // D3 c
+ { "length", LB::b_length, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "numToChar", LB::b_numToChar, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "offset", LB::b_offset, 2, 3, true, 200, FBLTIN }, // D2 f
+ { "string", LB::b_string, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "value", LB::b_value, 1, 1, true, 200, FBLTIN }, // D2 f
// Lists
- { "add", LB::b_add, 2, 2, false, 4, HBLTIN }, // D4 handler
- { "addAt", LB::b_addAt, 3, 3, false, 4, HBLTIN }, // D4 h
- { "addProp", LB::b_addProp, 3, 3, false, 4, HBLTIN }, // D4 h
- { "append", LB::b_append, 2, 2, false, 4, HBLTIN }, // D4 h
- { "count", LB::b_count, 1, 1, true, 4, FBLTIN }, // D4 f
- { "deleteAt", LB::b_deleteAt, 2, 2, false, 4, HBLTIN }, // D4 h
- { "deleteProp", LB::b_deleteProp, 2, 2, false, 4, HBLTIN }, // D4 h
- { "findPos", LB::b_findPos, 2, 2, true, 4, FBLTIN }, // D4 f
- { "findPosNear", LB::b_findPosNear, 2, 2, true, 4, FBLTIN }, // D4 f
- { "getaProp", LB::b_getaProp, 2, 2, true, 4, FBLTIN }, // D4 f
- { "getAt", LB::b_getAt, 2, 2, true, 4, FBLTIN }, // D4 f
- { "getLast", LB::b_getLast, 1, 1, true, 4, FBLTIN }, // D4 f
- { "getOne", LB::b_getOne, 2, 2, true, 4, FBLTIN }, // D4 f
- { "getPos", LB::b_getPos, 2, 2, true, 4, FBLTIN }, // D4 f
- { "getProp", LB::b_getProp, 2, 2, true, 4, FBLTIN }, // D4 f
- { "getPropAt", LB::b_getPropAt, 2, 2, true, 4, FBLTIN }, // D4 f
- { "list", LB::b_list, -1, 0, true, 4, FBLTIN }, // D4 f
- { "listP", LB::b_listP, 1, 1, true, 4, FBLTIN }, // D4 f
- { "max", LB::b_max, -1,0, true, 4, FBLTIN }, // D4 f
- { "min", LB::b_min, -1,0, true, 4, FBLTIN }, // D4 f
- { "setaProp", LB::b_setaProp, 3, 3, false, 4, HBLTIN }, // D4 h
- { "setAt", LB::b_setAt, 3, 3, false, 4, HBLTIN }, // D4 h
- { "setProp", LB::b_setProp, 3, 3, false, 4, HBLTIN }, // D4 h
- { "sort", LB::b_sort, 1, 1, false, 4, HBLTIN }, // D4 h
+ { "add", LB::b_add, 2, 2, false, 400, HBLTIN }, // D4 handler
+ { "addAt", LB::b_addAt, 3, 3, false, 400, HBLTIN }, // D4 h
+ { "addProp", LB::b_addProp, 3, 3, false, 400, HBLTIN }, // D4 h
+ { "append", LB::b_append, 2, 2, false, 400, HBLTIN }, // D4 h
+ { "count", LB::b_count, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "deleteAt", LB::b_deleteAt, 2, 2, false, 400, HBLTIN }, // D4 h
+ { "deleteProp", LB::b_deleteProp, 2, 2, false, 400, HBLTIN }, // D4 h
+ { "findPos", LB::b_findPos, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "findPosNear", LB::b_findPosNear, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "getaProp", LB::b_getaProp, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "getAt", LB::b_getAt, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "getLast", LB::b_getLast, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "getOne", LB::b_getOne, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "getPos", LB::b_getPos, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "getProp", LB::b_getProp, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "getPropAt", LB::b_getPropAt, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "list", LB::b_list, -1, 0, true, 400, FBLTIN }, // D4 f
+ { "listP", LB::b_listP, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "max", LB::b_max, -1,0, true, 400, FBLTIN }, // D4 f
+ { "min", LB::b_min, -1,0, true, 400, FBLTIN }, // D4 f
+ { "setaProp", LB::b_setaProp, 3, 3, false, 400, HBLTIN }, // D4 h
+ { "setAt", LB::b_setAt, 3, 3, false, 400, HBLTIN }, // D4 h
+ { "setProp", LB::b_setProp, 3, 3, false, 400, HBLTIN }, // D4 h
+ { "sort", LB::b_sort, 1, 1, false, 400, HBLTIN }, // D4 h
// Files
- { "closeDA", LB::b_closeDA, 0, 0, false, 2, CBLTIN }, // D2 c
- { "closeResFile", LB::b_closeResFile, 0, 1, false, 2, CBLTIN }, // D2 c
- { "closeXlib", LB::b_closeXlib, 0, 1, false, 2, CBLTIN }, // D2 c
- { "getNthFileNameInFolder",LB::b_getNthFileNameInFolder,2,2,true,4,FBLTIN },// D4 f
- { "open", LB::b_open, 1, 2, false, 2, CBLTIN }, // D2 c
- { "openDA", LB::b_openDA, 1, 1, false, 2, CBLTIN }, // D2 c
- { "openResFile", LB::b_openResFile, 1, 1, false, 2, CBLTIN }, // D2 c
- { "openXlib", LB::b_openXlib, 1, 1, false, 2, CBLTIN }, // D2 c
- { "saveMovie", LB::b_saveMovie, 1, 1, false, 4, CBLTIN }, // D4 c
- { "setCallBack", LB::b_setCallBack, 2, 2, false, 3, CBLTIN }, // D3 c
- { "showResFile", LB::b_showResFile, 0, 1, false, 2, CBLTIN }, // D2 c
- { "showXlib", LB::b_showXlib, 0, 1, false, 2, CBLTIN }, // D2 c
- { "xFactoryList", LB::b_xFactoryList, 1, 1, true, 3, FBLTIN }, // D3 f
+ { "closeDA", LB::b_closeDA, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "closeResFile", LB::b_closeResFile, 0, 1, false, 200, CBLTIN }, // D2 c
+ { "closeXlib", LB::b_closeXlib, 0, 1, false, 200, CBLTIN }, // D2 c
+ { "getNthFileNameInFolder",LB::b_getNthFileNameInFolder,2,2,true,400,FBLTIN }, //D4 f
+ { "open", LB::b_open, 1, 2, false, 200, CBLTIN }, // D2 c
+ { "openDA", LB::b_openDA, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "openResFile", LB::b_openResFile, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "openXlib", LB::b_openXlib, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "saveMovie", LB::b_saveMovie, 1, 1, false, 400, CBLTIN }, // D4 c
+ { "setCallBack", LB::b_setCallBack, 2, 2, false, 300, CBLTIN }, // D3 c
+ { "showResFile", LB::b_showResFile, 0, 1, false, 200, CBLTIN }, // D2 c
+ { "showXlib", LB::b_showXlib, 0, 1, false, 200, CBLTIN }, // D2 c
+ { "xFactoryList", LB::b_xFactoryList, 1, 1, true, 300, FBLTIN }, // D3 f
// Control
- { "abort", LB::b_abort, 0, 0, false, 4, CBLTIN }, // D4 c
- { "continue", LB::b_continue, 0, 0, false, 2, CBLTIN }, // D2 c
- { "dontPassEvent", LB::b_dontPassEvent,0, 0, false, 2, CBLTIN }, // D2 c
- { "delay", LB::b_delay, 1, 1, false, 2, CBLTIN }, // D2 c
- { "do", LB::b_do, 1, 1, false, 2, CBLTIN }, // D2 c
- { "go", LB::b_go, 1, 2, false, 4, CBLTIN }, // D4 c
- { "halt", LB::b_halt, 0, 0, false, 4, CBLTIN }, // D4 c
- { "nothing", LB::b_nothing, 0, 0, false, 2, CBLTIN }, // D2 c
- { "pass", LB::b_pass, 0, 0, false, 4, CBLTIN }, // D4 c
- { "pause", LB::b_pause, 0, 0, false, 2, CBLTIN }, // D2 c
- { "play", LB::b_play, 1, 2, false, 2, CBLTIN }, // D2 c
- { "playAccel", LB::b_playAccel, -1,0, false, 2, CBLTIN }, // D2
+ { "abort", LB::b_abort, 0, 0, false, 400, CBLTIN }, // D4 c
+ { "continue", LB::b_continue, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "dontPassEvent", LB::b_dontPassEvent,0, 0, false, 200, CBLTIN }, // D2 c
+ { "delay", LB::b_delay, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "do", LB::b_do, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "go", LB::b_go, 1, 2, false, 400, CBLTIN }, // D4 c
+ { "halt", LB::b_halt, 0, 0, false, 400, CBLTIN }, // D4 c
+ { "nothing", LB::b_nothing, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "pass", LB::b_pass, 0, 0, false, 400, CBLTIN }, // D4 c
+ { "pause", LB::b_pause, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "play", LB::b_play, 1, 2, false, 200, CBLTIN }, // D2 c
+ { "playAccel", LB::b_playAccel, -1,0, false, 200, CBLTIN }, // D2
// play done // D2
- { "preLoad", LB::b_preLoad, -1,0, false, 3, CBLTIN }, // D3.1 c
- { "preLoadCast", LB::b_preLoadCast, -1,0, false, 3, CBLTIN }, // D3.1 c
- { "quit", LB::b_quit, 0, 0, false, 2, CBLTIN }, // D2 c
- { "restart", LB::b_restart, 0, 0, false, 2, CBLTIN }, // D2 c
- { "return", LB::b_return, 0, 1, false, 2, CBLTIN }, // D2 f
- { "scummvm_returnNumber", LB::b_returnNumber, 1, 1, false, 2, CBLTIN }, // D2 f
- { "shutDown", LB::b_shutDown, 0, 0, false, 2, CBLTIN }, // D2 c
- { "startTimer", LB::b_startTimer, 0, 0, false, 2, CBLTIN }, // D2 c
+ { "preLoad", LB::b_preLoad, -1,0, false, 300, CBLTIN }, // D3.1 c
+ { "preLoadCast", LB::b_preLoadCast, -1,0, false, 300, CBLTIN }, // D3.1 c
+ { "quit", LB::b_quit, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "restart", LB::b_restart, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "return", LB::b_return, 0, 1, false, 200, CBLTIN }, // D2 f
+ { "scummvm_returnNumber", LB::b_returnNumber, 1, 1, false, 200, CBLTIN }, // D2 f
+ { "shutDown", LB::b_shutDown, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "startTimer", LB::b_startTimer, 0, 0, false, 200, CBLTIN }, // D2 c
// when keyDown // D2
// when mouseDown // D2
// when mouseUp // D2
// when timeOut // D2
// Types
- { "factory", LB::b_factory, 1, 1, true, 3, FBLTIN }, // D3
- { "floatP", LB::b_floatP, 1, 1, true, 3, FBLTIN }, // D3
- { "ilk", LB::b_ilk, 1, 2, false, 4, FBLTIN }, // D4 f
- { "integerp", LB::b_integerp, 1, 1, true, 2, FBLTIN }, // D2 f
- { "objectp", LB::b_objectp, 1, 1, true, 2, FBLTIN }, // D2 f
- { "pictureP", LB::b_pictureP, 1, 1, true, 4, FBLTIN }, // D4 f
- { "stringp", LB::b_stringp, 1, 1, true, 2, FBLTIN }, // D2 f
- { "symbolp", LB::b_symbolp, 1, 1, true, 2, FBLTIN }, // D2 f
- { "voidP", LB::b_voidP, 1, 1, true, 4, FBLTIN }, // D4 f
+ { "factory", LB::b_factory, 1, 1, true, 300, FBLTIN }, // D3
+ { "floatP", LB::b_floatP, 1, 1, true, 300, FBLTIN }, // D3
+ { "ilk", LB::b_ilk, 1, 2, false, 400, FBLTIN }, // D4 f
+ { "integerp", LB::b_integerp, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "objectp", LB::b_objectp, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "pictureP", LB::b_pictureP, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "stringp", LB::b_stringp, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "symbolp", LB::b_symbolp, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "voidP", LB::b_voidP, 1, 1, true, 400, FBLTIN }, // D4 f
// Misc
- { "alert", LB::b_alert, 1, 1, false, 2, CBLTIN }, // D2 c
- { "clearGlobals", LB::b_clearGlobals, 0, 0, false, 3, CBLTIN }, // D3.1 c
- { "cursor", LB::b_cursor, 1, 1, false, 2, CBLTIN }, // D2 c
- { "framesToHMS", LB::b_framesToHMS, 4, 4, false, 3, FBLTIN }, // D3 f
- { "HMStoFrames", LB::b_HMStoFrames, 4, 4, false, 3, FBLTIN }, // D3 f
- { "param", LB::b_param, 1, 1, true, 4, FBLTIN }, // D4 f
- { "printFrom", LB::b_printFrom, -1,0, false, 2, CBLTIN }, // D2 c
- { "put", LB::b_put, -1,0, false, 2, CBLTIN }, // D2
+ { "alert", LB::b_alert, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "clearGlobals", LB::b_clearGlobals, 0, 0, false, 300, CBLTIN }, // D3.1 c
+ { "cursor", LB::b_cursor, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "framesToHMS", LB::b_framesToHMS, 4, 4, false, 300, FBLTIN }, // D3 f
+ { "HMStoFrames", LB::b_HMStoFrames, 4, 4, false, 300, FBLTIN }, // D3 f
+ { "param", LB::b_param, 1, 1, true, 400, FBLTIN }, // D4 f
+ { "printFrom", LB::b_printFrom, -1,0, false, 200, CBLTIN }, // D2 c
+ { "put", LB::b_put, -1,0, false, 200, CBLTIN }, // D2
// set // D2
- { "showGlobals", LB::b_showGlobals, 0, 0, false, 2, CBLTIN }, // D2 c
- { "showLocals", LB::b_showLocals, 0, 0, false, 2, CBLTIN }, // D2 c
+ { "showGlobals", LB::b_showGlobals, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "showLocals", LB::b_showLocals, 0, 0, false, 200, CBLTIN }, // D2 c
// Score
- { "constrainH", LB::b_constrainH, 2, 2, true, 2, FBLTIN }, // D2 f
- { "constrainV", LB::b_constrainV, 2, 2, true, 2, FBLTIN }, // D2 f
- { "copyToClipBoard",LB::b_copyToClipBoard,1,1, false, 4, CBLTIN }, // D4 c
- { "duplicate", LB::b_duplicate, 1, 2, false, 4, CBLTIN }, // D4 c
- { "editableText", LB::b_editableText, 0, 0, false, 2, CBLTIN }, // D2, FIXME: the field in D4+
- { "erase", LB::b_erase, 1, 1, false, 4, CBLTIN }, // D4 c
- { "findEmpty", LB::b_findEmpty, 1, 1, true, 4, FBLTIN }, // D4 f
+ { "constrainH", LB::b_constrainH, 2, 2, true, 200, FBLTIN }, // D2 f
+ { "constrainV", LB::b_constrainV, 2, 2, true, 200, FBLTIN }, // D2 f
+ { "copyToClipBoard",LB::b_copyToClipBoard,1,1, false, 400, CBLTIN }, // D4 c
+ { "duplicate", LB::b_duplicate, 1, 2, false, 400, CBLTIN }, // D4 c
+ { "editableText", LB::b_editableText, 0, 0, false, 200, CBLTIN }, // D2, FIXME: the field in D4+
+ { "erase", LB::b_erase, 1, 1, false, 400, CBLTIN }, // D4 c
+ { "findEmpty", LB::b_findEmpty, 1, 1, true, 400, FBLTIN }, // D4 f
// go // D2
- { "importFileInto", LB::b_importFileInto,2, 2, false, 4, CBLTIN }, // D4 c
- { "installMenu", LB::b_installMenu, 1, 1, false, 2, CBLTIN }, // D2 c
- { "label", LB::b_label, 1, 1, true, 2, FBLTIN }, // D2 f
- { "marker", LB::b_marker, 1, 1, true, 2, FBLTIN }, // D2 f
- { "move", LB::b_move, 1, 2, false, 4, CBLTIN }, // D4 c
- { "moveableSprite", LB::b_moveableSprite,0, 0, false, 2, CBLTIN }, // D2, FIXME: the field in D4+
- { "pasteClipBoardInto",LB::b_pasteClipBoardInto,1,1,false,4,CBLTIN },// D4 c
- { "puppetPalette", LB::b_puppetPalette, -1,0, false, 2, CBLTIN }, // D2 c
- { "puppetSound", LB::b_puppetSound, -1,0, false, 2, CBLTIN }, // D2 c
- { "puppetSprite", LB::b_puppetSprite, -1,0, false, 2, CBLTIN }, // D2 c
- { "puppetTempo", LB::b_puppetTempo, 1, 1, false, 2, CBLTIN }, // D2 c
- { "puppetTransition",LB::b_puppetTransition,-1,0,false,2, CBLTIN },// D2 c
- { "ramNeeded", LB::b_ramNeeded, 2, 2, true, 3, FBLTIN }, // D3.1 f
- { "rollOver", LB::b_rollOver, 1, 1, true, 2, FBLTIN }, // D2 f
- { "spriteBox", LB::b_spriteBox, -1,0, false, 2, CBLTIN }, // D2 c
- { "unLoad", LB::b_unLoad, 0, 2, false, 3, CBLTIN }, // D3.1 c
- { "unLoadCast", LB::b_unLoadCast, 0, 2, false, 3, CBLTIN }, // D3.1 c
- { "updateStage", LB::b_updateStage, 0, 0, false, 2, CBLTIN }, // D2 c
- { "zoomBox", LB::b_zoomBox, -1,0, false, 2, CBLTIN }, // D2 c
+ { "importFileInto", LB::b_importFileInto,2, 2, false, 400, CBLTIN }, // D4 c
+ { "installMenu", LB::b_installMenu, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "label", LB::b_label, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "marker", LB::b_marker, 1, 1, true, 200, FBLTIN }, // D2 f
+ { "move", LB::b_move, 1, 2, false, 400, CBLTIN }, // D4 c
+ { "moveableSprite", LB::b_moveableSprite,0, 0, false, 200, CBLTIN },// D2, FIXME: the field in D4+
+ { "pasteClipBoardInto",LB::b_pasteClipBoardInto,1,1,false,400,CBLTIN },// D4 c
+ { "puppetPalette", LB::b_puppetPalette, -1,0, false, 200, CBLTIN },// D2 c
+ { "puppetSound", LB::b_puppetSound, -1,0, false, 200, CBLTIN }, // D2 c
+ { "puppetSprite", LB::b_puppetSprite, -1,0, false, 200, CBLTIN }, // D2 c
+ { "puppetTempo", LB::b_puppetTempo, 1, 1, false, 200, CBLTIN }, // D2 c
+ { "puppetTransition",LB::b_puppetTransition,-1,0,false,200, CBLTIN },// D2 c
+ { "ramNeeded", LB::b_ramNeeded, 2, 2, true, 300, FBLTIN }, // D3.1 f
+ { "rollOver", LB::b_rollOver, 1, 1, true, 299, FBLTIN }, // D2 f
+ { "spriteBox", LB::b_spriteBox, -1,0, false, 200, CBLTIN }, // D2 c
+ { "unLoad", LB::b_unLoad, 0, 2, false, 300, CBLTIN }, // D3.1 c
+ { "unLoadCast", LB::b_unLoadCast, 0, 2, false, 300, CBLTIN }, // D3.1 c
+ { "updateStage", LB::b_updateStage, 0, 0, false, 200, CBLTIN }, // D2 c
+ { "zoomBox", LB::b_zoomBox, -1,0, false, 200, CBLTIN }, // D2 c
// Point
- { "point", LB::b_point, 2, 2, true, 4, FBLTIN }, // D4 f
- { "inside", LB::b_inside, 2, 2, true, 4, FBLTIN }, // D4 f
- { "intersect", LB::b_intersect, 2, 2, false, 4, FBLTIN }, // D4 f
- { "map", LB::b_map, 3, 3, true, 4, FBLTIN }, // D4 f
- { "rect", LB::b_rect, 4, 4, true, 4, FBLTIN }, // D4 f
- { "union", LB::b_union, 2, 2, true, 4, FBLTIN }, // D4 f
+ { "point", LB::b_point, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "inside", LB::b_inside, 2, 2, true, 400, FBLTIN }, // D4 f
+ { "intersect", LB::b_intersect, 2, 2, false, 400, FBLTIN }, // D4 f
+ { "map", LB::b_map, 3, 3, true, 400, FBLTIN }, // D4 f
+ { "rect", LB::b_rect, 4, 4, true, 400, FBLTIN }, // D4 f
+ { "union", LB::b_union, 2, 2, true, 400, FBLTIN }, // D4 f
// Sound
- { "beep", LB::b_beep, 0, 1, false, 2, CBLTIN }, // D2
- { "mci", LB::b_mci, 1, 1, false, 3, CBLTIN }, // D3.1 c
- { "mciwait", LB::b_mciwait, 1, 1, false, 4, CBLTIN }, // D4 c
- { "sound", LB::b_sound, 2, 3, false, 3, CBLTIN }, // D3 c
- { "soundBusy", LB::b_soundBusy, 1, 1, true, 3, FBLTIN }, // D3 f
+ { "beep", LB::b_beep, 0, 1, false, 200, CBLTIN }, // D2
+ { "mci", LB::b_mci, 1, 1, false, 300, CBLTIN }, // D3.1 c
+ { "mciwait", LB::b_mciwait, 1, 1, false, 400, CBLTIN }, // D4 c
+ { "sound", LB::b_sound, 2, 3, false, 300, CBLTIN }, // D3 c
+ { "soundBusy", LB::b_soundBusy, 1, 1, true, 300, FBLTIN }, // D3 f
// Constants
- { "backspace", LB::b_backspace, 0, 0, false, 2, KBLTIN }, // D2 konstant
- { "empty", LB::b_empty, 0, 0, false, 2, KBLTIN }, // D2 k
- { "enter", LB::b_enter, 0, 0, false, 2, KBLTIN }, // D2 k
- { "false", LB::b_false, 0, 0, false, 2, KBLTIN }, // D2 k
- { "quote", LB::b_quote, 0, 0, false, 2, KBLTIN }, // D2 k
- { "return", LB::b_returnconst, 0, 0, false, 2, KBLTIN }, // D2 k
- { "tab", LB::b_tab, 0, 0, false, 2, KBLTIN }, // D2 k
- { "true", LB::b_true, 0, 0, false, 2, KBLTIN }, // D2 k
- { "version", LB::b_version, 0, 0, false, 3, KBLTIN }, // D3 k
+ { "backspace", LB::b_backspace, 0, 0, false, 200, KBLTIN }, // D2 konstant
+ { "empty", LB::b_empty, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "enter", LB::b_enter, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "false", LB::b_false, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "quote", LB::b_quote, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "return", LB::b_returnconst, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "tab", LB::b_tab, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "true", LB::b_true, 0, 0, false, 200, KBLTIN }, // D2 k
+ { "version", LB::b_version, 0, 0, false, 300, KBLTIN }, // D3 k
// References
- { "cast", LB::b_cast, 1, 1, false, 4, FBLTIN }, // D4 f
- { "field", LB::b_field, 1, 1, false, 3, FBLTIN }, // D3 f
- { "script", LB::b_script, 1, 1, false, 4, FBLTIN }, // D4 f
- { "window", LB::b_window, 1, 1, false, 4, FBLTIN }, // D4 f
+ { "cast", LB::b_cast, 1, 1, false, 400, FBLTIN }, // D4 f
+ { "field", LB::b_field, 1, 1, false, 300, FBLTIN }, // D3 f
+ { "script", LB::b_script, 1, 1, false, 400, FBLTIN }, // D4 f
+ { "window", LB::b_window, 1, 1, false, 400, FBLTIN }, // D4 f
// Chunk operations
- { "numberOfChars", LB::b_numberofchars,1, 1, false, 3, FBLTIN }, // D3 f
- { "numberOfItems", LB::b_numberofitems,1, 1, false, 3, FBLTIN }, // D3 f
- { "numberOfLines", LB::b_numberoflines,1, 1, false, 3, FBLTIN }, // D3 f
- { "numberOfWords", LB::b_numberofwords,1, 1, false, 3, FBLTIN }, // D3 f
- { "lastCharOf", LB::b_lastcharof, 1, 1, false, 4, FBLTIN }, // D4 f
- { "lastItemOf", LB::b_lastitemof, 1, 1, false, 4, FBLTIN }, // D4 f
- { "lastLineOf", LB::b_lastlineof, 1, 1, false, 4, FBLTIN }, // D4 f
- { "lastWordOf", LB::b_lastwordof, 1, 1, false, 4, FBLTIN }, // D4 f
+ { "numberOfChars", LB::b_numberofchars,1, 1, false, 300, FBLTIN }, // D3 f
+ { "numberOfItems", LB::b_numberofitems,1, 1, false, 300, FBLTIN }, // D3 f
+ { "numberOfLines", LB::b_numberoflines,1, 1, false, 300, FBLTIN }, // D3 f
+ { "numberOfWords", LB::b_numberofwords,1, 1, false, 300, FBLTIN }, // D3 f
+ { "lastCharOf", LB::b_lastcharof, 1, 1, false, 400, FBLTIN }, // D4 f
+ { "lastItemOf", LB::b_lastitemof, 1, 1, false, 400, FBLTIN }, // D4 f
+ { "lastLineOf", LB::b_lastlineof, 1, 1, false, 400, FBLTIN }, // D4 f
+ { "lastWordOf", LB::b_lastwordof, 1, 1, false, 400, FBLTIN }, // D4 f
// ScummVM Asserts: Used for testing ScummVM's Lingo implementation
- { "scummvmAssert", LB::b_scummvmassert,1, 2, true, 2, HBLTIN },
- { "scummvmAssertEqual", LB::b_scummvmassertequal,2,3,true,2,HBLTIN },
+ { "scummvmAssert", LB::b_scummvmassert,1, 2, true, 200, HBLTIN },
+ { "scummvmAssertEqual", LB::b_scummvmassertequal,2,3,true,200,HBLTIN },
{ 0, 0, 0, 0, false, 0, VOIDSYM }
@@ -392,7 +392,7 @@ void LB::b_integer(int nargs) {
Datum d = g_lingo->pop();
Datum res;
- if (g_director->getVersion() < 5) { // Note that D4 behaves differently from asInt()
+ if (g_director->getVersion() < 500) { // Note that D4 behaves differently from asInt()
res = (int)(d.u.f + 0.5); // Yes, +0.5 even for negative numbers
} else {
res = (int)round(d.u.f);
@@ -452,7 +452,7 @@ void LB::b_chars(int nargs) {
Datum s = g_lingo->pop();
TYPECHECK2(s, STRING, FIELDREF);
- if (g_director->getVersion() < 4 && (d2.type == FLOAT || d3.type == FLOAT)) {
+ if (g_director->getVersion() < 400 && (d2.type == FLOAT || d3.type == FLOAT)) {
warning("LB::b_chars: Called with a float in Director 2 and 3 mode. chars' can't handle floats");
g_lingo->push(Datum(0));
return;
@@ -1582,7 +1582,7 @@ void LB::b_editableText(int nargs) {
} else {
warning("b_editableText: sprite index out of bounds");
}
- } else if (nargs == 0 && g_director->getVersion() < 4) {
+ } else if (nargs == 0 && g_director->getVersion() < 400) {
g_lingo->dropStack(nargs);
if (g_lingo->_currentChannelId == -1) {
@@ -1871,7 +1871,7 @@ void LB::b_puppetSprite(int nargs) {
} else {
warning("b_puppetSprite: sprite index out of bounds");
}
- } else if (nargs == 0 && g_director->getVersion() < 4) {
+ } else if (nargs == 0 && g_director->getVersion() < 400) {
g_lingo->dropStack(nargs);
if (g_lingo->_currentChannelId == -1) {
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 13e3010606..6e6503b3ee 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -1025,7 +1025,7 @@ ScriptContext *Lingo::compileLingoV4(Common::SeekableSubReadStreamEndian &stream
for (uint16 i = 0; i < constsCount; i++) {
Datum constant;
uint32 constType = 0;
- if (_vm->getVersion() >= 5) {
+ if (_vm->getVersion() >= 500) {
constType = stream.readUint32();
} else {
constType = (uint32)stream.readUint16();
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 3a1728fa66..da72b99759 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -448,7 +448,7 @@ void LC::c_varpush() {
}
// Looking for the cast member constants
- if (g_director->getVersion() < 4 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
+ if (g_director->getVersion() < 400 || g_director->getCurrentMovie()->_allowOutdatedLingo) {
int val = castNumToNum(name.c_str());
if (val != -1) {
@@ -702,7 +702,7 @@ Datum LC::divData(Datum &d1, Datum &d2) {
int alignedType = g_lingo->getAlignedType(d1, d2);
- if (g_director->getVersion() < 4) // pre-D4 is INT-only
+ if (g_director->getVersion() < 400) // pre-D4 is INT-only
alignedType = INT;
Datum res;
diff --git a/engines/director/lingo/lingo-events.cpp b/engines/director/lingo/lingo-events.cpp
index 3d7ed7e625..af1db189f5 100644
--- a/engines/director/lingo/lingo-events.cpp
+++ b/engines/director/lingo/lingo-events.cpp
@@ -87,7 +87,7 @@ void Lingo::initEventHandlerTypes() {
}
ScriptType Lingo::event2script(LEvent ev) {
- if (_vm->getVersion() < 4) {
+ if (_vm->getVersion() < 400) {
switch (ev) {
//case kEventStartMovie: // We are precompiling it now
// return kMovieScript;
@@ -241,7 +241,7 @@ void Movie::registerEvent(LEvent event, int targetId) {
break;
}
- if (_vm->getVersion() <= 3) {
+ if (_vm->getVersion() < 400) {
// In D2-3, specific objects handle each event, with no passing
switch(event) {
case kEventMouseUp:
@@ -318,7 +318,7 @@ void Lingo::processEvents() {
Movie *movie = _vm->getCurrentMovie();
Score *sc = movie->getScore();
- if (_vm->getVersion() >= 3 && sc->getCurrentFrame() > 0 && sc->_playState != kPlayStopped && movie->_eventQueue.empty())
+ if (_vm->getVersion() >= 300 && sc->getCurrentFrame() > 0 && sc->_playState != kPlayStopped && movie->_eventQueue.empty())
movie->registerEvent(kEventIdle);
while (!movie->_eventQueue.empty()) {
diff --git a/engines/director/lingo/lingo-lex.cpp b/engines/director/lingo/lingo-lex.cpp
index dc04ba4797..00ec28d7df 100644
--- a/engines/director/lingo/lingo-lex.cpp
+++ b/engines/director/lingo/lingo-lex.cpp
@@ -1481,7 +1481,7 @@ YY_RULE_SETUP
else
return THEENTITY;
} else {
- if (g_director->getVersion() >= 4) {
+ if (g_director->getVersion() >= 400) {
Common::String key = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str());
yylval.objectprop.obj = new Common::String(ptr);
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 9783774fe6..97bb7015eb 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -307,7 +307,7 @@ the{spc}+[[:alpha:]]+{spc}+of{spc}+{identifier} {
else
return THEENTITY;
} else {
- if (g_director->getVersion() >= 4) {
+ if (g_director->getVersion() >= 400) {
Common::String key = Common::String::format("%d%s", g_lingo->_objectEntityId, field.c_str());
yylval.objectprop.obj = new Common::String(ptr);
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 62c1a3d9af..4119e6bfb5 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -46,18 +46,18 @@ static struct PredefinedProto {
int version;
} predefinedMethods[] = {
// all except window
- { "new", LM::m_new, -1, 0, kAllObj, 2 }, // D2
+ { "new", LM::m_new, -1, 0, kAllObj, 200 }, // D2
// factory and XObject
- { "describe", LM::m_describe, 0, 0, kXObj, 2 }, // D2
- { "dispose", LM::m_dispose, 0, 0, kFactoryObj | kXObj, 2 }, // D2
- { "get", LM::m_get, 1, 1, kFactoryObj, 2 }, // D2
- { "instanceRespondsTo", LM::m_instanceRespondsTo, 1, 1, kXObj, 3 }, // D3
- { "messageList", LM::m_messageList, 0, 0, kXObj, 3 }, // D3
- { "name", LM::m_name, 0, 0, kXObj, 3 }, // D3
- { "perform", LM::m_perform, -1, 0, kFactoryObj | kXObj, 3 }, // D3
- { "put", LM::m_put, 2, 2, kFactoryObj, 2 }, // D2
- { "respondsTo", LM::m_respondsTo, 1, 1, kXObj, 2 }, // D2
+ { "describe", LM::m_describe, 0, 0, kXObj, 200 }, // D2
+ { "dispose", LM::m_dispose, 0, 0, kFactoryObj | kXObj, 200 }, // D2
+ { "get", LM::m_get, 1, 1, kFactoryObj, 200 }, // D2
+ { "instanceRespondsTo", LM::m_instanceRespondsTo, 1, 1, kXObj, 300 }, // D3
+ { "messageList", LM::m_messageList, 0, 0, kXObj, 300 }, // D3
+ { "name", LM::m_name, 0, 0, kXObj, 300 }, // D3
+ { "perform", LM::m_perform, -1, 0, kFactoryObj | kXObj, 300 }, // D3
+ { "put", LM::m_put, 2, 2, kFactoryObj, 200 }, // D2
+ { "respondsTo", LM::m_respondsTo, 1, 1, kXObj, 200 }, // D2
// script object and Xtra
{ "birth", LM::m_new, -1, 0, kScriptObj | kXtraObj, 4 }, // D4
@@ -67,11 +67,11 @@ static struct PredefinedProto {
static MethodProto windowMethods[] = {
// window / stage
- { "close", LM::m_close, 0, 0, 4 }, // D4
- { "forget", LM::m_forget, 0, 0, 4 }, // D4
- { "open", LM::m_open, 0, 0, 4 }, // D4
- { "moveToBack", LM::m_moveToBack, 0, 0, 4 }, // D4
- { "moveToFront", LM::m_moveToFront, 0, 0, 4 }, // D4
+ { "close", LM::m_close, 0, 0, 400 }, // D4
+ { "forget", LM::m_forget, 0, 0, 400 }, // D4
+ { "open", LM::m_open, 0, 0, 400 }, // D4
+ { "moveToBack", LM::m_moveToBack, 0, 0, 400 }, // D4
+ { "moveToFront", LM::m_moveToFront, 0, 0, 400 }, // D4
{ 0, 0, 0, 0, 0 }
};
@@ -98,10 +98,10 @@ static struct XLibProto {
int type;
int version;
} xlibs[] = {
- { "FileIO", FileIO::initialize, kXObj | kFactoryObj, 2 }, // D2
- { "FlushXObj", FlushXObj::initialize, kXObj, 4 }, // D4
- { "PalXObj", PalXObj:: initialize, kXObj, 4 }, // D4
- { "winXObj", RearWindowXObj::initialize, kXObj, 4 }, // D4
+ { "FileIO", FileIO::initialize, kXObj | kFactoryObj, 200 }, // D2
+ { "FlushXObj", FlushXObj::initialize, kXObj, 400 }, // D4
+ { "PalXObj", PalXObj:: initialize, kXObj, 400 }, // D4
+ { "winXObj", RearWindowXObj::initialize, kXObj, 400 }, // D4
{ 0, 0, 0, 0 }
};
diff --git a/engines/director/lingo/lingo-preprocessor.cpp b/engines/director/lingo/lingo-preprocessor.cpp
index 0bf75f83e8..1c1b9ba3ba 100644
--- a/engines/director/lingo/lingo-preprocessor.cpp
+++ b/engines/director/lingo/lingo-preprocessor.cpp
@@ -228,7 +228,7 @@ Common::String Lingo::codePreprocessor(const char *s, LingoArchive *archive, Scr
}
debugC(2, kDebugParse | kDebugPreprocess, "line: %d '%s'", iflevel, line.c_str());
- if (!defFound && (type == kMovieScript || type == kCastScript) && (_vm->getVersion() <= 3 || _vm->getCurrentMovie()->_allowOutdatedLingo)) {
+ if (!defFound && (type == kMovieScript || type == kCastScript) && (_vm->getVersion() < 400 || _vm->getCurrentMovie()->_allowOutdatedLingo)) {
tok = nexttok(line.c_str());
if (tok.equals("macro") || tok.equals("factory") || tok.equals("on")) {
defFound = true;
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index fcd191761e..cf8adbc45e 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -43,238 +43,238 @@ namespace Director {
class Sprite;
TheEntity entities[] = {
- { kTheActorList, "actorList", false, 4 }, // D4 property
- { kTheBeepOn, "beepOn", false, 2 }, // D2 p
- { kTheButtonStyle, "buttonStyle", false, 2 }, // D2 p
- { kTheCast, "cast", true, 2 }, // D2
- { kTheCastMembers, "castmembers", false, 3 }, // D3
- { kTheCenterStage, "centerStage", false, 2 }, // D2 p
- { kTheCheckBoxAccess, "checkBoxAccess", false, 2 }, // D2 p
- { kTheCheckBoxType, "checkBoxType", false, 2 }, // D2 p
- { kTheClickLoc, "clickLoc", false, 4 }, // D4 function
- { kTheClickOn, "clickOn", false, 2 }, // D2 f
- { kTheColorDepth, "colorDepth", false, 2 }, // D2 p
- { kTheColorQD, "colorQD", false, 2 }, // D2 f
- { kTheCommandDown, "commandDown", false, 2 }, // D2 f
- { kTheControlDown, "controlDown", false, 2 }, // D2 f
- { kTheDate, "date", false, 3 }, // D3 f
- { kTheDoubleClick, "doubleClick", false, 2 }, // D2 f
- { kTheExitLock, "exitLock", false, 2 }, // D2 p
- { kTheField, "field", true, 3 }, // D3
- { kTheFixStageSize, "fixStageSize", false, 2 }, // D2 p
- { kTheFloatPrecision, "floatPrecision", false, 3 }, // D3 p
- { kTheFrame, "frame", false, 2 }, // D2 f
- { kTheFrameLabel, "frameLabel", false, 4 }, // D4 p
- { kTheFrameScript, "frameScript", false, 4 }, // D4 p
- { kTheFramePalette, "framePalette", false, 4 }, // D4 p
- { kTheFrameTempo, "frameTempo", false, 4 }, // D4 f
- { kTheFreeBlock, "freeBlock", false, 2 }, // D2 f
- { kTheFreeBytes, "freeBytes", false, 2 }, // D2 f
- { kTheFullColorPermit, "fullColorPermit", false, 2 }, // D2 p
- { kTheImageDirect, "imageDirect", false, 2 }, // D2 p
- { kTheItemDelimiter, "itemDelimiter", false, 4 }, // D4 p
- { kTheKey, "key", false, 2 }, // D2 f
- { kTheKeyCode, "keyCode", false, 2 }, // D2 f
- { kTheKeyDownScript, "keyDownScript", false, 2 }, // D2 p
- { kTheKeyUpScript, "keyUpScript", false, 4 }, // D4 p
- { kTheLabelList, "labelList", false, 3 }, // D3 f
- { kTheLastClick, "lastClick", false, 2 }, // D2 f
- { kTheLastEvent, "lastEvent", false, 2 }, // D2 f
- { kTheLastFrame, "lastFrame", false, 4 }, // D4 p
- { kTheLastKey, "lastKey", false, 2 }, // D2 f
- { kTheLastRoll, "lastRoll", false, 2 }, // D2 f
- { kTheMachineType, "machineType", false, 2 }, // D2 f
- { kTheMaxInteger, "maxInteger", false, 3 }, // D3.1 f
- { kTheMemorySize, "memorySize", false, 2 }, // D2 f
- { kTheMenu, "menu", true, 3 }, // D3 p
- { kTheMenuItem, "menuitem", true, 3 }, // D3 p
- { kTheMenuItems, "menuitems", false, 3 }, // D3 f
- { kTheMouseCast, "mouseCast", false, 3 }, // D3 f
- { kTheMouseChar, "mouseChar", false, 3 }, // D3 f
- { kTheMouseDown, "mouseDown", false, 2 }, // D2 f
- { kTheMouseDownScript, "mouseDownScript", false, 2 }, // D2 p
- { kTheMouseH, "mouseH", false, 2 }, // D2 f
- { kTheMouseItem, "mouseItem", false, 3 }, // D3 f
- { kTheMouseLine, "mouseLine", false, 3 }, // D3 f
- { kTheMouseUp, "mouseUp", false, 2 }, // D2 f
- { kTheMouseUpScript, "mouseUpScript", false, 2 }, // D2 p
- { kTheMouseV, "mouseV", false, 2 }, // D2 f
- { kTheMouseWord, "mouseWord", false, 3 }, // D3 f
- { kTheMovie, "movie", false, 2 }, // D2 f
- { kTheMovieFileFreeSize,"movieFileFreeSize",false, 4 }, // D4 f
- { kTheMovieFileSize, "movieFileSize", false, 4 }, // D4 f
- { kTheMovieName, "movieName", false, 4 }, // D4 f
- { kTheMoviePath, "moviePath", false, 4 }, // D4 f
- { kTheMultiSound, "multiSound", false, 3 }, // D3.1 f
- { kTheOptionDown, "optionDown", false, 2 }, // D2 f
- { kTheParamCount, "paramCount", false, 4 }, // D4 f
- { kThePathName, "pathName", false, 2 }, // D2 f
- { kThePauseState, "pauseState", false, 2 }, // D2 f
- { kThePerFrameHook, "perFrameHook", false, 2 }, // D2 p
- { kThePreloadEventAbort,"preloadEventAbort",false, 4 }, // D4 p
- { kThePreLoadRAM, "preLoadRAM", false, 4 }, // D4 p
- { kThePi, "pi", false, 4 }, // D4 f
- { kTheQuickTimePresent, "quickTimePresent", false, 3 }, // D3.1 f
- { kTheRandomSeed, "randomSeed", false, 4 }, // D4 p
- { kTheResult, "result", false, 2 }, // D2 f
- { kTheRightMouseDown, "rightMouseDown", false, 5 }, // D5 f
- { kTheRightMouseUp, "rightMouseUp", false, 5 }, // D5 f
- { kTheRomanLingo, "romanLingo", false, 3 }, // D3.1 p
- { kTheScummvmVersion, "scummvmVersion", false, 2 }, // ScummVM only
- { kTheSearchCurrentFolder,"searchCurrentFolder",false,4 },// D4 f
- { kTheSearchPath, "searchPath", false, 4 }, // D4 f
- { kTheSelection, "selection", false, 2 }, // D2 f
- { kTheSelEnd, "selEnd", false, 2 }, // D2 p
- { kTheSelStart, "selStart", false, 2 }, // D2 p
- { kTheShiftDown, "shiftDown", false, 2 }, // D2 f
- { kTheSoundEnabled, "soundEnabled", false, 2 }, // D2 p
- { kTheSoundEntity, "sound", true, 3 }, // D3 p
- { kTheSoundLevel, "soundLevel", false, 2 }, // D2 p
- { kTheSprite, "sprite", true, 2 }, // D4 p
- { kTheStage, "stage", false, 4 }, // D4 p
- { kTheStageBottom, "stageBottom", false, 2 }, // D2 f
- { kTheStageColor, "stageColor", false, 3 }, // D3 p
- { kTheStageLeft, "stageLeft", false, 2 }, // D2 f
- { kTheStageRight, "stageRight", false, 2 }, // D2 f
- { kTheStageTop, "stageTop", false, 2 }, // D2 f
- { kTheStillDown, "stillDown", false, 2 }, // D2 f
- { kTheSwitchColorDepth, "switchColorDepth", false, 2 }, // D2 p
- { kTheTicks, "ticks", false, 2 }, // D2 f
- { kTheTime, "time", false, 3 }, // D3 f
- { kTheTimeoutKeyDown, "timeoutKeyDown", false, 2 }, // D2 p
- { kTheTimeoutLapsed, "timeoutLapsed", false, 2 }, // D2 p
- { kTheTimeoutLength, "timeoutLength", false, 2 }, // D2 p
- { kTheTimeoutMouse, "timeoutMouse", false, 2 }, // D2 p
- { kTheTimeoutPlay, "timeoutPlay", false, 2 }, // D2 p
- { kTheTimeoutScript, "timeoutScript", false, 2 }, // D2 p
- { kTheTimer, "timer", false, 2 }, // D2 p
- { kTheTrace, "trace", false, 4 }, // D4 p
- { kTheTraceLoad, "traceLoad", false, 4 }, // D4 p
- { kTheTraceLogFile, "traceLogFile", false, 4 }, // D4 p
- { kTheUpdateMovieEnabled,"updateMovieEnabled",false,4 },// D4 p
- { kTheWindow, "window", true, 4 }, // D4
- { kTheWindowList, "windowList", false, 4 }, // D4 p
+ { kTheActorList, "actorList", false, 400 }, // D4 property
+ { kTheBeepOn, "beepOn", false, 200 }, // D2 p
+ { kTheButtonStyle, "buttonStyle", false, 200 }, // D2 p
+ { kTheCast, "cast", true, 200 }, // D2
+ { kTheCastMembers, "castmembers", false, 300 }, // D3
+ { kTheCenterStage, "centerStage", false, 200 }, // D2 p
+ { kTheCheckBoxAccess, "checkBoxAccess", false, 200 }, // D2 p
+ { kTheCheckBoxType, "checkBoxType", false, 200 }, // D2 p
+ { kTheClickLoc, "clickLoc", false, 400 }, // D4 function
+ { kTheClickOn, "clickOn", false, 200 }, // D2 f
+ { kTheColorDepth, "colorDepth", false, 200 }, // D2 p
+ { kTheColorQD, "colorQD", false, 200 }, // D2 f
+ { kTheCommandDown, "commandDown", false, 200 }, // D2 f
+ { kTheControlDown, "controlDown", false, 200 }, // D2 f
+ { kTheDate, "date", false, 300 }, // D3 f
+ { kTheDoubleClick, "doubleClick", false, 200 }, // D2 f
+ { kTheExitLock, "exitLock", false, 200 }, // D2 p
+ { kTheField, "field", true, 300 }, // D3
+ { kTheFixStageSize, "fixStageSize", false, 200 }, // D2 p
+ { kTheFloatPrecision, "floatPrecision", false, 300 }, // D3 p
+ { kTheFrame, "frame", false, 200 }, // D2 f
+ { kTheFrameLabel, "frameLabel", false, 400 }, // D4 p
+ { kTheFrameScript, "frameScript", false, 400 }, // D4 p
+ { kTheFramePalette, "framePalette", false, 400 }, // D4 p
+ { kTheFrameTempo, "frameTempo", false, 400 }, // D4 f
+ { kTheFreeBlock, "freeBlock", false, 200 }, // D2 f
+ { kTheFreeBytes, "freeBytes", false, 200 }, // D2 f
+ { kTheFullColorPermit, "fullColorPermit", false, 200 }, // D2 p
+ { kTheImageDirect, "imageDirect", false, 200 }, // D2 p
+ { kTheItemDelimiter, "itemDelimiter", false, 400 }, // D4 p
+ { kTheKey, "key", false, 200 }, // D2 f
+ { kTheKeyCode, "keyCode", false, 200 }, // D2 f
+ { kTheKeyDownScript, "keyDownScript", false, 200 }, // D2 p
+ { kTheKeyUpScript, "keyUpScript", false, 400 }, // D4 p
+ { kTheLabelList, "labelList", false, 300 }, // D3 f
+ { kTheLastClick, "lastClick", false, 200 }, // D2 f
+ { kTheLastEvent, "lastEvent", false, 200 }, // D2 f
+ { kTheLastFrame, "lastFrame", false, 400 }, // D4 p
+ { kTheLastKey, "lastKey", false, 200 }, // D2 f
+ { kTheLastRoll, "lastRoll", false, 200 }, // D2 f
+ { kTheMachineType, "machineType", false, 200 }, // D2 f
+ { kTheMaxInteger, "maxInteger", false, 300 }, // D3.1 f
+ { kTheMemorySize, "memorySize", false, 200 }, // D2 f
+ { kTheMenu, "menu", true, 300 }, // D3 p
+ { kTheMenuItem, "menuitem", true, 300 }, // D3 p
+ { kTheMenuItems, "menuitems", false, 300 }, // D3 f
+ { kTheMouseCast, "mouseCast", false, 300 }, // D3 f
+ { kTheMouseChar, "mouseChar", false, 300 }, // D3 f
+ { kTheMouseDown, "mouseDown", false, 200 }, // D2 f
+ { kTheMouseDownScript, "mouseDownScript", false, 200 }, // D2 p
+ { kTheMouseH, "mouseH", false, 200 }, // D2 f
+ { kTheMouseItem, "mouseItem", false, 300 }, // D3 f
+ { kTheMouseLine, "mouseLine", false, 300 }, // D3 f
+ { kTheMouseUp, "mouseUp", false, 200 }, // D2 f
+ { kTheMouseUpScript, "mouseUpScript", false, 200 }, // D2 p
+ { kTheMouseV, "mouseV", false, 200 }, // D2 f
+ { kTheMouseWord, "mouseWord", false, 300 }, // D3 f
+ { kTheMovie, "movie", false, 200 }, // D2 f
+ { kTheMovieFileFreeSize,"movieFileFreeSize",false, 400 }, // D4 f
+ { kTheMovieFileSize, "movieFileSize", false, 400 }, // D4 f
+ { kTheMovieName, "movieName", false, 400 }, // D4 f
+ { kTheMoviePath, "moviePath", false, 400 }, // D4 f
+ { kTheMultiSound, "multiSound", false, 300 }, // D3.1 f
+ { kTheOptionDown, "optionDown", false, 200 }, // D2 f
+ { kTheParamCount, "paramCount", false, 400 }, // D4 f
+ { kThePathName, "pathName", false, 200 }, // D2 f
+ { kThePauseState, "pauseState", false, 200 }, // D2 f
+ { kThePerFrameHook, "perFrameHook", false, 200 }, // D2 p
+ { kThePreloadEventAbort,"preloadEventAbort",false, 400 }, // D4 p
+ { kThePreLoadRAM, "preLoadRAM", false, 400 }, // D4 p
+ { kThePi, "pi", false, 400 }, // D4 f
+ { kTheQuickTimePresent, "quickTimePresent", false, 300 }, // D3.1 f
+ { kTheRandomSeed, "randomSeed", false, 400 }, // D4 p
+ { kTheResult, "result", false, 200 }, // D2 f
+ { kTheRightMouseDown, "rightMouseDown", false, 500 }, // D5 f
+ { kTheRightMouseUp, "rightMouseUp", false, 500 }, // D5 f
+ { kTheRomanLingo, "romanLingo", false, 300 }, // D3.1 p
+ { kTheScummvmVersion, "scummvmVersion", false, 200 }, // ScummVM only
+ { kTheSearchCurrentFolder,"searchCurrentFolder",false,400 },// D4 f
+ { kTheSearchPath, "searchPath", false, 400 }, // D4 f
+ { kTheSelection, "selection", false, 200 }, // D2 f
+ { kTheSelEnd, "selEnd", false, 200 }, // D2 p
+ { kTheSelStart, "selStart", false, 200 }, // D2 p
+ { kTheShiftDown, "shiftDown", false, 200 }, // D2 f
+ { kTheSoundEnabled, "soundEnabled", false, 200 }, // D2 p
+ { kTheSoundEntity, "sound", true, 300 }, // D3 p
+ { kTheSoundLevel, "soundLevel", false, 200 }, // D2 p
+ { kTheSprite, "sprite", true, 200 }, // D4 p
+ { kTheStage, "stage", false, 400 }, // D4 p
+ { kTheStageBottom, "stageBottom", false, 200 }, // D2 f
+ { kTheStageColor, "stageColor", false, 300 }, // D3 p
+ { kTheStageLeft, "stageLeft", false, 200 }, // D2 f
+ { kTheStageRight, "stageRight", false, 200 }, // D2 f
+ { kTheStageTop, "stageTop", false, 200 }, // D2 f
+ { kTheStillDown, "stillDown", false, 200 }, // D2 f
+ { kTheSwitchColorDepth, "switchColorDepth", false, 200 }, // D2 p
+ { kTheTicks, "ticks", false, 200 }, // D2 f
+ { kTheTime, "time", false, 300 }, // D3 f
+ { kTheTimeoutKeyDown, "timeoutKeyDown", false, 200 }, // D2 p
+ { kTheTimeoutLapsed, "timeoutLapsed", false, 200 }, // D2 p
+ { kTheTimeoutLength, "timeoutLength", false, 200 }, // D2 p
+ { kTheTimeoutMouse, "timeoutMouse", false, 200 }, // D2 p
+ { kTheTimeoutPlay, "timeoutPlay", false, 200 }, // D2 p
+ { kTheTimeoutScript, "timeoutScript", false, 200 }, // D2 p
+ { kTheTimer, "timer", false, 200 }, // D2 p
+ { kTheTrace, "trace", false, 400 }, // D4 p
+ { kTheTraceLoad, "traceLoad", false, 400 }, // D4 p
+ { kTheTraceLogFile, "traceLogFile", false, 400 }, // D4 p
+ { kTheUpdateMovieEnabled,"updateMovieEnabled",false,400 },// D4 p
+ { kTheWindow, "window", true, 400 }, // D4
+ { kTheWindowList, "windowList", false, 400 }, // D4 p
{ kTheNOEntity, NULL, false, 0 }
};
TheEntityField fields[] = {
- { kTheSprite, "backColor", kTheBackColor, 2 },// D2 p
- { kTheSprite, "blend", kTheBlend, 4 },// D4 p
- { kTheSprite, "bottom", kTheBottom, 2 },// D2 p
- { kTheSprite, "castNum", kTheCastNum, 2 },// D2 p
- { kTheSprite, "constraint", kTheConstraint, 2 },// D2 p
- { kTheSprite, "cursor", kTheCursor, 2 },// D2 p
- { kTheSprite, "editableText", kTheEditableText,4 },// D4 p
- { kTheSprite, "foreColor", kTheForeColor, 2 },// D2 p
- { kTheSprite, "height", kTheHeight, 2 },// D2 p
- { kTheSprite, "immediate", kTheImmediate, 2 },// D2 p
- { kTheSprite, "ink", kTheInk, 2 },// D2 p
- { kTheSprite, "left", kTheLeft, 2 },// D2 p
- { kTheSprite, "lineSize", kTheLineSize, 2 },// D2 p
- { kTheSprite, "loc", kTheLoc, 4 },// D4 p ???
- { kTheSprite, "locH", kTheLocH, 2 },// D2 p
- { kTheSprite, "locV", kTheLocV, 2 },// D2 p
- { kTheSprite, "moveableSprite",kTheMoveableSprite,4 },// D4 p
- { kTheSprite, "pattern", kThePattern, 2 },// D2 p
- { kTheSprite, "puppet", kThePuppet, 2 },// D2 p
- { kTheSprite, "rect", kTheRect, 4 },// D4 p ???
- { kTheSprite, "right", kTheRight, 2 },// D2 p
- { kTheSprite, "scoreColor", kTheScoreColor, 4 },// D4 p
- { kTheSprite, "scriptNum", kTheScriptNum, 4 },// D4 p
- { kTheSprite, "stretch", kTheStretch, 2 },// D2 p
- { kTheSprite, "top", kTheTop, 2 },// D2 p
- { kTheSprite, "trails", kTheTrails, 3 },// D3.1 p
- { kTheSprite, "type", kTheType, 2 },// D2 p
- { kTheSprite, "visibility", kTheVisibility, 3 },// D3.1 p
- { kTheSprite, "visible", kTheVisible, 4 },// D4 p
- { kTheSprite, "width", kTheWidth, 2 },// D2 p
+ { kTheSprite, "backColor", kTheBackColor, 200 },// D2 p
+ { kTheSprite, "blend", kTheBlend, 400 },// D4 p
+ { kTheSprite, "bottom", kTheBottom, 200 },// D2 p
+ { kTheSprite, "castNum", kTheCastNum, 200 },// D2 p
+ { kTheSprite, "constraint", kTheConstraint, 200 },// D2 p
+ { kTheSprite, "cursor", kTheCursor, 200 },// D2 p
+ { kTheSprite, "editableText", kTheEditableText,400 },// D4 p
+ { kTheSprite, "foreColor", kTheForeColor, 200 },// D2 p
+ { kTheSprite, "height", kTheHeight, 200 },// D2 p
+ { kTheSprite, "immediate", kTheImmediate, 200 },// D2 p
+ { kTheSprite, "ink", kTheInk, 200 },// D2 p
+ { kTheSprite, "left", kTheLeft, 200 },// D2 p
+ { kTheSprite, "lineSize", kTheLineSize, 200 },// D2 p
+ { kTheSprite, "loc", kTheLoc, 400 },// D4 p ???
+ { kTheSprite, "locH", kTheLocH, 200 },// D2 p
+ { kTheSprite, "locV", kTheLocV, 200 },// D2 p
+ { kTheSprite, "moveableSprite",kTheMoveableSprite,400 },// D4 p
+ { kTheSprite, "pattern", kThePattern, 200 },// D2 p
+ { kTheSprite, "puppet", kThePuppet, 200 },// D2 p
+ { kTheSprite, "rect", kTheRect, 400 },// D4 p ???
+ { kTheSprite, "right", kTheRight, 200 },// D2 p
+ { kTheSprite, "scoreColor", kTheScoreColor, 400 },// D4 p
+ { kTheSprite, "scriptNum", kTheScriptNum, 400 },// D4 p
+ { kTheSprite, "stretch", kTheStretch, 200 },// D2 p
+ { kTheSprite, "top", kTheTop, 200 },// D2 p
+ { kTheSprite, "trails", kTheTrails, 300 },// D3.1 p
+ { kTheSprite, "type", kTheType, 200 },// D2 p
+ { kTheSprite, "visibility", kTheVisibility, 300 },// D3.1 p
+ { kTheSprite, "visible", kTheVisible, 400 },// D4 p
+ { kTheSprite, "width", kTheWidth, 200 },// D2 p
// Common cast fields
- { kTheCast, "castType", kTheCastType, 4 },// D4 p
- { kTheCast, "filename", kTheFileName, 4 },// D4 p
- { kTheCast, "height", kTheHeight, 4 },// D4 p
- { kTheCast, "loaded", kTheLoaded, 4 },// D4 p
- { kTheCast, "modified", kTheModified, 4 },// D4 p
- { kTheCast, "name", kTheName, 3 },// D3 p
- { kTheCast, "number", kTheNumber, 3 },// D3 p
- { kTheCast, "rect", kTheRect, 4 },// D4 p
- { kTheCast, "purgePriority",kThePurgePriority,4 },// D4 p // 0 Never purge, 1 Purge Last, 2 Purge next, 2 Purge normal
- { kTheCast, "scriptText", kTheScriptText, 4 },// D4 p
- { kTheCast, "width", kTheWidth, 4 },// D4 p
+ { kTheCast, "castType", kTheCastType, 400 },// D4 p
+ { kTheCast, "filename", kTheFileName, 400 },// D4 p
+ { kTheCast, "height", kTheHeight, 400 },// D4 p
+ { kTheCast, "loaded", kTheLoaded, 400 },// D4 p
+ { kTheCast, "modified", kTheModified, 400 },// D4 p
+ { kTheCast, "name", kTheName, 300 },// D3 p
+ { kTheCast, "number", kTheNumber, 300 },// D3 p
+ { kTheCast, "rect", kTheRect, 400 },// D4 p
+ { kTheCast, "purgePriority",kThePurgePriority,400 },// D4 p // 0 Never purge, 1 Purge Last, 2 Purge next, 2 Purge normal
+ { kTheCast, "scriptText", kTheScriptText, 400 },// D4 p
+ { kTheCast, "width", kTheWidth, 400 },// D4 p
// Shape fields
- { kTheCast, "backColor", kTheBackColor, 4 },// D4 p
- { kTheCast, "foreColor", kTheForeColor, 4 },// D4 p
+ { kTheCast, "backColor", kTheBackColor, 400 },// D4 p
+ { kTheCast, "foreColor", kTheForeColor, 400 },// D4 p
// Digital video fields
- { kTheCast, "center", kTheCenter, 4 },// D4 p
- { kTheCast, "controller", kTheController, 3 },// D3.1 p
- { kTheCast, "crop", kTheCrop, 4 },// D4 p
- { kTheCast, "directToStage",kTheDirectToStage,3 },// D3.1 p
- { kTheCast, "duration", kTheDuration, 3 },// D3.1 p
- { kTheCast, "frameRate", kTheFrameRate, 4 },// D4 p
- { kTheCast, "loop", kTheLoop, 3 },// D3.1 p
- { kTheSprite, "movieRate", kTheMovieRate, 3 },// D3.1 P
- { kTheSprite, "movieTime", kTheMovieTime, 3 },// D3.1 P
- { kTheCast, "pausedAtStart",kThePausedAtStart,4 },// D4 p
- { kTheCast, "preLoad", kThePreLoad, 3 },// D3.1 p
- { kTheCast, "sound", kTheSound, 3 },// D3.1 p // 0-1 off-on
- { kTheSprite, "startTime", kTheStartTime, 3 },// D3.1 p
- { kTheSprite, "stopTime", kTheStopTime, 3 },// D3.1 p
- { kTheCast, "video", kTheVideo, 4 },// D4 p
- { kTheSprite, "volume", kTheVolume, 3 },// D3.1 p
+ { kTheCast, "center", kTheCenter, 400 },// D4 p
+ { kTheCast, "controller", kTheController, 300 },// D3.1 p
+ { kTheCast, "crop", kTheCrop, 400 },// D4 p
+ { kTheCast, "directToStage",kTheDirectToStage,300 },// D3.1 p
+ { kTheCast, "duration", kTheDuration, 300 },// D3.1 p
+ { kTheCast, "frameRate", kTheFrameRate, 400 },// D4 p
+ { kTheCast, "loop", kTheLoop, 300 },// D3.1 p
+ { kTheSprite, "movieRate", kTheMovieRate, 300 },// D3.1 P
+ { kTheSprite, "movieTime", kTheMovieTime, 300 },// D3.1 P
+ { kTheCast, "pausedAtStart",kThePausedAtStart,400 },// D4 p
+ { kTheCast, "preLoad", kThePreLoad, 300 },// D3.1 p
+ { kTheCast, "sound", kTheSound, 300 },// D3.1 p // 0-1 off-on
+ { kTheSprite, "startTime", kTheStartTime, 300 },// D3.1 p
+ { kTheSprite, "stopTime", kTheStopTime, 300 },// D3.1 p
+ { kTheCast, "video", kTheVideo, 400 },// D4 p
+ { kTheSprite, "volume", kTheVolume, 300 },// D3.1 p
// Bitmap fields
- { kTheCast, "depth", kTheDepth, 4 },// D4 p
- { kTheCast, "regPoint", kTheRegPoint, 4 },// D4 p
- { kTheCast, "palette", kThePalette, 4 },// D4 p
- { kTheCast, "picture", kThePicture, 3 },// D3 p
+ { kTheCast, "depth", kTheDepth, 400 },// D4 p
+ { kTheCast, "regPoint", kTheRegPoint, 400 },// D4 p
+ { kTheCast, "palette", kThePalette, 400 },// D4 p
+ { kTheCast, "picture", kThePicture, 300 },// D3 p
// TextCastMember fields
- { kTheCast, "hilite", kTheHilite, 2 },// D2 p
- { kTheCast, "size", kTheSize, 3 },// D3.1 p
- { kTheCast, "text", kTheText, 2 },// D2 p
+ { kTheCast, "hilite", kTheHilite, 200 },// D2 p
+ { kTheCast, "size", kTheSize, 300 },// D3.1 p
+ { kTheCast, "text", kTheText, 200 },// D2 p
// Field fields
- { kTheField, "text", kTheText, 3 },// D3 p undocumented
- { kTheField, "textAlign", kTheTextAlign, 3 },// D3 p
- { kTheField, "textFont", kTheTextFont, 3 },// D3 p
- { kTheField, "textHeight", kTheTextHeight, 3 },// D3 p
- { kTheField, "textSize", kTheTextSize, 3 },// D3 p
- { kTheField, "textStyle", kTheTextStyle, 3 },// D3 p
-
- { kTheWindow, "drawRect", kTheDrawRect, 4 },// D4 p
- { kTheWindow, "fileName", kTheFileName, 4 },// D4 p
- { kTheWindow, "modal", kTheModal, 4 },// D4 p
- { kTheWindow, "rect", kTheRect, 4 },// D4 p
- { kTheWindow, "title", kTheTitle, 4 },// D4 p
- { kTheWindow, "titleVisible", kTheTitleVisible,4 },// D4 p
- { kTheWindow, "sourceRect", kTheSourceRect, 4 },// D4 p
- { kTheWindow, "visible", kTheVisible, 4 },// D4 p
- { kTheWindow, "windowType", kTheWindowType, 4 },// D4 p
-
- { kTheMenuItem, "checkmark", kTheCheckMark, 3 },// D3 p
- { kTheMenuItem, "enabled", kTheEnabled, 3 },// D3 p
- { kTheMenuItem, "name", kTheName, 3 },// D3 p
- { kTheMenuItem, "script", kTheScript, 3 },// D3 p
- { kTheMenuItems,"number", kTheNumber, 3 },// D3 p // number of menuitems of menu <xx>
-
- { kTheMenu, "name", kTheName, 3 },// D3 p
-
- { kTheCastMembers, "number", kTheNumber, 3 },// D3 p
-
- { kTheDate, "short", kTheShort, 3 },// D3 f
- { kTheDate, "long", kTheLong, 3 },// D3 f
- { kTheDate, "abbreviated", kTheAbbr, 3 },// D3 f
- { kTheDate, "abbrev", kTheAbbr, 3 },// D3 f
- { kTheDate, "abbr", kTheAbbr, 3 },// D3 f
- { kTheTime, "short", kTheShort, 3 },// D3 f
- { kTheTime, "long", kTheLong, 3 },// D3 f
- { kTheTime, "abbreviated", kTheAbbr, 3 },// D3 f
- { kTheTime, "abbrev", kTheAbbr, 3 },// D3 f
- { kTheTime, "abbr", kTheAbbr, 3 },// D3 f
-
- { kTheSoundEntity,"volume", kTheVolume, 3 },// D3 p
+ { kTheField, "text", kTheText, 300 },// D3 p undocumented
+ { kTheField, "textAlign", kTheTextAlign, 300 },// D3 p
+ { kTheField, "textFont", kTheTextFont, 300 },// D3 p
+ { kTheField, "textHeight", kTheTextHeight, 300 },// D3 p
+ { kTheField, "textSize", kTheTextSize, 300 },// D3 p
+ { kTheField, "textStyle", kTheTextStyle, 300 },// D3 p
+
+ { kTheWindow, "drawRect", kTheDrawRect, 400 },// D4 p
+ { kTheWindow, "fileName", kTheFileName, 400 },// D4 p
+ { kTheWindow, "modal", kTheModal, 400 },// D4 p
+ { kTheWindow, "rect", kTheRect, 400 },// D4 p
+ { kTheWindow, "title", kTheTitle, 400 },// D4 p
+ { kTheWindow, "titleVisible", kTheTitleVisible,400 },// D4 p
+ { kTheWindow, "sourceRect", kTheSourceRect, 400 },// D4 p
+ { kTheWindow, "visible", kTheVisible, 400 },// D4 p
+ { kTheWindow, "windowType", kTheWindowType, 400 },// D4 p
+
+ { kTheMenuItem, "checkmark", kTheCheckMark, 300 },// D3 p
+ { kTheMenuItem, "enabled", kTheEnabled, 300 },// D3 p
+ { kTheMenuItem, "name", kTheName, 300 },// D3 p
+ { kTheMenuItem, "script", kTheScript, 300 },// D3 p
+ { kTheMenuItems,"number", kTheNumber, 300 },// D3 p // number of menuitems of menu <xx>
+
+ { kTheMenu, "name", kTheName, 300 },// D3 p
+
+ { kTheCastMembers, "number", kTheNumber, 300 },// D3 p
+
+ { kTheDate, "short", kTheShort, 300 },// D3 f
+ { kTheDate, "long", kTheLong, 300 },// D3 f
+ { kTheDate, "abbreviated", kTheAbbr, 300 },// D3 f
+ { kTheDate, "abbrev", kTheAbbr, 300 },// D3 f
+ { kTheDate, "abbr", kTheAbbr, 300 },// D3 f
+ { kTheTime, "short", kTheShort, 300 },// D3 f
+ { kTheTime, "long", kTheLong, 300 },// D3 f
+ { kTheTime, "abbreviated", kTheAbbr, 300 },// D3 f
+ { kTheTime, "abbrev", kTheAbbr, 300 },// D3 f
+ { kTheTime, "abbr", kTheAbbr, 300 },// D3 f
+
+ { kTheSoundEntity,"volume", kTheVolume, 300 },// D3 p
{ kTheNOEntity, NULL, kTheNOField, 0 }
};
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 2d9c58eb35..a012689e15 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -856,7 +856,7 @@ int Datum::asInt() const {
res = u.i;
break;
case FLOAT:
- if (g_director->getVersion() < 4) {
+ if (g_director->getVersion() < 400) {
res = round(u.f);
} else {
res = (int)u.f;
@@ -1153,7 +1153,7 @@ void Lingo::executeImmediateScripts(Frame *frame) {
if (_vm->getCurrentMovie()->getScore()->_immediateActions.contains(frame->_sprites[i]->_scriptId)) {
// From D5 only explicit event handlers are processed
// Before that you could specify commands which will be executed on mouse up
- if (_vm->getVersion() < 5)
+ if (_vm->getVersion() < 500)
g_lingo->processEvent(kEventGeneric, kScoreScript, frame->_sprites[i]->_scriptId, i);
else
g_lingo->processEvent(kEventMouseUp, kScoreScript, frame->_sprites[i]->_scriptId, i);
diff --git a/engines/director/lingo/tests/math.lingo b/engines/director/lingo/tests/math.lingo
index 02b6c764d2..3254809016 100644
--- a/engines/director/lingo/tests/math.lingo
+++ b/engines/director/lingo/tests/math.lingo
@@ -25,7 +25,7 @@ put the sqrt of 9
-- Testing rounding
set save to the scummvmVersion
-set the scummvmVersion to 3
+set the scummvmVersion to 300
scummvmAssertEqual(integer(2.5), 3)
scummvmAssertEqual(integer(2.49), 2)
scummvmAssertEqual(integer(2.1), 2)
diff --git a/engines/director/lingo/tests/strings.lingo b/engines/director/lingo/tests/strings.lingo
index ac11603bf2..1987048735 100644
--- a/engines/director/lingo/tests/strings.lingo
+++ b/engines/director/lingo/tests/strings.lingo
@@ -2,7 +2,7 @@ set z = "foo bar baz"
set z1 = z & " meow"
set z1 = z1 && "woof"
scummvmAssert(z1 contains "bar")
-scummvmAssert(z1 contains "MeÍW")
+scummvmAssert(z1 contains "Me�W")
set c = chars("Macromedia", 6, 6)
scummvmAssertEqual(c, "m")
@@ -11,12 +11,12 @@ scummvmAssertEqual(c, "media")
set c = chars("Macromedia", -1, 15)
scummvmAssertEqual(c, "Macromedia")
set save to the scummvmVersion
-set the scummvmVersion to 3
+set the scummvmVersion to 300
set c = chars("Macromedia", 1, 1.1)
scummvmAssertEqual(c, 0)
set the scummvmVersion to save
-scummvmAssert("meow" = "MeÍW")
+scummvmAssert("meow" = "Me�W")
put "That is the last line of the file." & return & "Click Done to exit." && return && "foo"
@@ -57,7 +57,7 @@ set res to char 5.5 of string
scummvmAssertEqual(res, "o")
-- Test D3, it does a round
set save to the scummvmVersion
-set the scummvmVersion to 3
+set the scummvmVersion to 300
set res to char 5.49 of string
scummvmAssertEqual(res, "o")
set res to char 5.5 of string
diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index 29fd08a6e7..49b5068c82 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -35,18 +35,18 @@ namespace Director {
static const char *xlibName = "FileIO";
static MethodProto xlibMethods[] = {
- { "delete", FileIO::m_delete, 0, 0, 2 }, // D2
- { "fileName", FileIO::m_fileName, 0, 0, 2 }, // D2
- { "getLength", FileIO::m_getLength, 0, 0, 2 }, // D2
- { "getPosition", FileIO::m_getPosition, 0, 0, 2 }, // D2
- { "new", FileIO::m_new, 2, 2, 2 }, // D2
- { "readChar", FileIO::m_readChar, 0, 0, 2 }, // D2
- { "readLine", FileIO::m_readLine, 0, 0, 2 }, // D2
- { "readToken", FileIO::m_readToken, 2, 2, 2 }, // D2
- { "readWord", FileIO::m_readWord, 0, 0, 2 }, // D2
- { "setPosition", FileIO::m_setPosition, 1, 1, 2 }, // D2
- { "writeChar", FileIO::m_writeChar, 1, 1, 2 }, // D2
- { "writeString", FileIO::m_writeString, 1, 1, 2 }, // D2
+ { "delete", FileIO::m_delete, 0, 0, 200 }, // D2
+ { "fileName", FileIO::m_fileName, 0, 0, 200 }, // D2
+ { "getLength", FileIO::m_getLength, 0, 0, 200 }, // D2
+ { "getPosition", FileIO::m_getPosition, 0, 0, 200 }, // D2
+ { "new", FileIO::m_new, 2, 2, 200 }, // D2
+ { "readChar", FileIO::m_readChar, 0, 0, 200 }, // D2
+ { "readLine", FileIO::m_readLine, 0, 0, 200 }, // D2
+ { "readToken", FileIO::m_readToken, 2, 2, 200 }, // D2
+ { "readWord", FileIO::m_readWord, 0, 0, 200 }, // D2
+ { "setPosition", FileIO::m_setPosition, 1, 1, 200 }, // D2
+ { "writeChar", FileIO::m_writeChar, 1, 1, 200 }, // D2
+ { "writeString", FileIO::m_writeString, 1, 1, 200 }, // D2
{ 0, 0, 0, 0, 0 }
};
diff --git a/engines/director/lingo/xlibs/flushxobj.cpp b/engines/director/lingo/xlibs/flushxobj.cpp
index 8158e8de0e..6527275eca 100644
--- a/engines/director/lingo/xlibs/flushxobj.cpp
+++ b/engines/director/lingo/xlibs/flushxobj.cpp
@@ -45,11 +45,11 @@ namespace Director {
static const char *xlibName = "FlushXObj";
static MethodProto xlibMethods[] = {
- { "new", FlushXObj::m_new, 0, 0, 4 }, // D4
- { "AddToMask", FlushXObj::m_addToMask, 2, 2, 4 }, // D4
- { "ClearMask", FlushXObj::m_clearMask, 0, 0, 4 }, // D4
- { "Flush", FlushXObj::m_flush, 0, 0, 4 }, // D4
- { "FlushEvents", FlushXObj::m_flushEvents, 2, 2, 4 }, // D4
+ { "new", FlushXObj::m_new, 0, 0, 400 }, // D4
+ { "AddToMask", FlushXObj::m_addToMask, 2, 2, 400 }, // D4
+ { "ClearMask", FlushXObj::m_clearMask, 0, 0, 400 }, // D4
+ { "Flush", FlushXObj::m_flush, 0, 0, 400 }, // D4
+ { "FlushEvents", FlushXObj::m_flushEvents, 2, 2, 400 }, // D4
{ 0, 0, 0, 0, 0 }
};
diff --git a/engines/director/lingo/xlibs/palxobj.cpp b/engines/director/lingo/xlibs/palxobj.cpp
index ef0d2f6599..a587ab0a30 100644
--- a/engines/director/lingo/xlibs/palxobj.cpp
+++ b/engines/director/lingo/xlibs/palxobj.cpp
@@ -49,8 +49,8 @@ namespace Director {
static const char *xlibName = "FixPalette";
static MethodProto xlibMethods[] = {
- { "new", PalXObj::m_new, 4, 4, 4 }, // D4
- { "PatchIt", PalXObj::m_patchIt, 0, 0, 4 }, // D4
+ { "new", PalXObj::m_new, 4, 4, 400 }, // D4
+ { "PatchIt", PalXObj::m_patchIt, 0, 0, 400 }, // D4
{ 0, 0, 0, 0, 0 }
};
diff --git a/engines/director/lingo/xlibs/winxobj.cpp b/engines/director/lingo/xlibs/winxobj.cpp
index f1adfaa8ee..4650c16aec 100644
--- a/engines/director/lingo/xlibs/winxobj.cpp
+++ b/engines/director/lingo/xlibs/winxobj.cpp
@@ -41,9 +41,9 @@ namespace Director {
static const char *xlibName = "RearWindow";
static MethodProto xlibMethods[] = {
- { "new", RearWindowXObj::m_new, 1, 1, 4 }, // D4
- { "GetMemoryNeeded", RearWindowXObj::m_getMemoryNeeded, 0, 0, 4 }, // D4
- { "PatToWindow", RearWindowXObj::m_patToWindow, 1, 1, 4 }, // D4
+ { "new", RearWindowXObj::m_new, 1, 1, 400 }, // D4
+ { "GetMemoryNeeded", RearWindowXObj::m_getMemoryNeeded, 0, 0, 400 }, // D4
+ { "PatToWindow", RearWindowXObj::m_patToWindow, 1, 1, 400 }, // D4
{ 0, 0, 0, 0, 0 }
};
diff --git a/engines/director/movie.cpp b/engines/director/movie.cpp
index 7fe21fd103..61ea27dcb9 100644
--- a/engines/director/movie.cpp
+++ b/engines/director/movie.cpp
@@ -168,7 +168,7 @@ InfoEntries Movie::loadInfoEntries(Common::SeekableSubReadStreamEndian &stream)
res.unk2 = stream.readUint32();
res.flags = stream.readUint32();
- if (g_director->getVersion() >= 4)
+ if (g_director->getVersion() >= 400)
res.scriptId = stream.readUint32();
stream.seek(offset);
diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 25df8fd339..d7040fd416 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -39,12 +39,12 @@ namespace Director {
Archive *DirectorEngine::createArchive() {
if (getPlatform() == Common::kPlatformMacintosh) {
- if (getVersion() < 4)
+ if (getVersion() < 400)
return new MacArchive();
else
return new RIFXArchive();
} else {
- if (getVersion() < 4)
+ if (getVersion() < 400)
return new RIFFArchive();
else
return new RIFXArchive();
@@ -213,21 +213,15 @@ void Window::loadEXE(const Common::String movie) {
exeStream->seek(-4, SEEK_END);
exeStream->seek(exeStream->readUint32LE());
- switch (g_director->getVersion()) {
- case 2:
- case 3:
- loadEXEv3(exeStream);
- break;
- case 4:
- loadEXEv4(exeStream);
- break;
- case 5:
- loadEXEv5(exeStream);
- break;
- case 7:
+ if (g_director->getVersion() >= 700) {
loadEXEv7(exeStream);
- break;
- default:
+ } else if (g_director->getVersion() >= 500) {
+ loadEXEv5(exeStream);
+ } else if (g_director->getVersion() >= 400) {
+ loadEXEv4(exeStream);
+ } else if (g_director->getVersion() >= 200) {
+ loadEXEv3(exeStream);
+ } else {
error("Unhandled Windows EXE version %d", g_director->getVersion());
}
}
@@ -351,7 +345,7 @@ void Window::loadEXERIFX(Common::SeekableReadStream *stream, uint32 offset) {
}
void Window::loadMac(const Common::String movie) {
- if (g_director->getVersion() < 4) {
+ if (g_director->getVersion() < 400) {
// The data is part of the resource fork of the executable
openMainArchive(movie);
} else {
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 9a1c401d86..ef260ff6a4 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -264,7 +264,7 @@ void Score::startPlay() {
for (uint i = 0; i < _frames[1]->_sprites.size(); i++)
_channels.push_back(new Channel(_frames[1]->_sprites[i], i));
- if (_vm->getVersion() >= 3)
+ if (_vm->getVersion() >= 300)
_movie->processEvent(kEventStartMovie);
}
@@ -292,7 +292,7 @@ void Score::step() {
}
void Score::stopPlay() {
- if (_vm->getVersion() >= 3)
+ if (_vm->getVersion() >= 300)
_movie->processEvent(kEventStopMovie);
_lingo->executePerFrameHook(-1, 0);
}
@@ -336,11 +336,11 @@ void Score::update() {
// of _nextFrame so it doesn't get wiped.
if (_vm->_skipFrameAdvance) {
uint16 nextFrameCache = _nextFrame;
- if (_vm->getVersion() >= 4)
+ if (_vm->getVersion() >= 400)
_movie->processEvent(kEventExitFrame);
_nextFrame = nextFrameCache;
} else {
- if (_vm->getVersion() >= 4)
+ if (_vm->getVersion() >= 400)
_movie->processEvent(kEventExitFrame);
}
@@ -384,7 +384,7 @@ void Score::update() {
_lingo->executeImmediateScripts(_frames[_currentFrame]);
- if (_vm->getVersion() >= 6) {
+ if (_vm->getVersion() >= 600) {
// _movie->processEvent(kEventBeginSprite);
// TODO Director 6 step: send beginSprite event to any sprites whose span begin in the upcoming frame
// _movie->processEvent(kEventPrepareFrame);
@@ -398,7 +398,7 @@ void Score::update() {
// Enter and exit from previous frame
if (!_vm->_playbackPaused) {
_movie->processEvent(kEventEnterFrame); // Triggers the frame script in D2-3, explicit enterFrame handlers in D4+
- if (_vm->getVersion() == 3) {
+ if (_vm->getVersion() == 300) {
// Movie version of enterFrame, for D3 only. The Lingo Dictionary claims
// "This handler executes before anything else when the playback head moves."
// but this is incorrect. The frame script is executed first.
@@ -632,9 +632,9 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
uint32 size = stream.readUint32();
size -= 4;
- if (_vm->getVersion() < 4) {
+ if (_vm->getVersion() < 400) {
_numChannelsDisplayed = 30;
- } else if (_vm->getVersion() == 4) {
+ } else if (_vm->getVersion() >= 400 && _vm->getVersion() < 500) {
uint32 frame1Offset = stream.readUint32();
uint32 numFrames = stream.readUint32();
uint16 version = stream.readUint16();
@@ -658,7 +658,7 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
warning("STUB: Score::loadFrames. frame1Offset: %x numFrames: %x version: %x spriteRecordSize: %x numChannels: %x numChannelsDisplayed: %x",
frame1Offset, numFrames, version, spriteRecordSize, numChannels, _numChannelsDisplayed);
// Unknown, some bytes - constant (refer to contuinity).
- } else if (_vm->getVersion() > 4) {
+ } else if (_vm->getVersion() >= 500) {
//what data is up the top of D5 VWSC?
uint32 unk1 = stream.readUint32();
uint32 unk2 = stream.readUint32();
@@ -718,7 +718,7 @@ void Score::loadFrames(Common::SeekableSubReadStreamEndian &stream) {
while (frameSize != 0) {
- if (_vm->getVersion() < 4) {
+ if (_vm->getVersion() < 400) {
channelSize = stream.readByte() * 2;
channelOffset = stream.readByte() * 2;
frameSize -= channelSize + 2;
diff --git a/engines/director/sound.cpp b/engines/director/sound.cpp
index d7410900ba..637cfcdaae 100644
--- a/engines/director/sound.cpp
+++ b/engines/director/sound.cpp
@@ -41,7 +41,7 @@ namespace Director {
DirectorSound::DirectorSound(DirectorEngine *vm) : _vm(vm) {
uint numChannels = 2;
- if (g_director->getVersion() >= 4) {
+ if (g_director->getVersion() >= 400) {
numChannels = 4;
}
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index d3b2da486f..e1749d3c80 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -119,7 +119,7 @@ bool Sprite::isActive() {
bool Sprite::shouldHilite() {
if ((_cast && _cast->_autoHilite) || (isQDShape() && _ink == kInkTypeMatte))
- if (g_director->getVersion() < 4 && !_moveable)
+ if (g_director->getVersion() < 400 && !_moveable)
if (_movie->getScriptContext(kScoreScript, _scriptId) ||
_movie->getScriptContext(kCastScript, _castId))
return true;
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 141ae51a3e..2a74a62c76 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -398,7 +398,7 @@ Common::String pathMakeRelative(Common::String path, bool recursive, bool addext
// Let's try to translate file path into 8.3 format
Common::String addedexts;
- if (g_director->getPlatform() == Common::kPlatformWindows && g_director->getVersion() < 5) {
+ if (g_director->getPlatform() == Common::kPlatformWindows && g_director->getVersion() < 500) {
convPath.clear();
const char *ptr = initialPath.c_str();
Common::String component;
Commit: 2f0090e11dc3e15f27ef44932b39589b7a7c240b
https://github.com/scummvm/scummvm/commit/2f0090e11dc3e15f27ef44932b39589b7a7c240b
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-10T15:00:55-04:00
Commit Message:
DIRECTOR: LINGO: Reload builtins on version change
Changed paths:
engines/director/director.cpp
engines/director/director.h
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo-object.h
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 1160934075..26fe59cd28 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -132,6 +132,15 @@ void DirectorEngine::setCurrentMovie(Movie *movie) {
_currentWindow = movie->getWindow();
}
+void DirectorEngine::setVersion(uint16 version) {
+ if (version == _version)
+ return;
+
+ debug("Switching to Director v%d", version);
+ _version = version;
+ _lingo->reloadBuiltIns();
+}
+
Common::Error DirectorEngine::run() {
debug("Starting v%d Director game", getVersion());
diff --git a/engines/director/director.h b/engines/director/director.h
index 75618f18d7..38f2afe3f8 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -173,7 +173,7 @@ public:
const char *getGameId() const;
uint16 getDescriptionVersion() const;
uint16 getVersion() const { return _version; }
- void setVersion(uint16 version) { _version = version; }
+ void setVersion(uint16 version);
Common::Platform getPlatform() const;
Common::Language getLanguage() const;
const char *getExtra();
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 1164a0863f..a06708984f 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -297,14 +297,13 @@ void Lingo::initBuiltIns() {
default:
break;
}
-
- _functions[(void *)sym.u.s] = new FuncDesc(blt->name, "");
}
}
-void Lingo::cleanupBuiltins() {
- for (FuncHash::iterator it = _functions.begin(); it != _functions.end(); ++it)
- delete it->_value;
+void Lingo::cleanupBuiltIns() {
+ _builtinCmds.clear();
+ _builtinFuncs.clear();
+ _builtinConsts.clear();
}
void Lingo::printSTUBWithArglist(const char *funcname, int nargs, const char *prefix) {
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index da72b99759..3a4dc311b2 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -176,6 +176,11 @@ void Lingo::initFuncs() {
}
}
+void Lingo::cleanupFuncs() {
+ for (FuncHash::iterator it = _functions.begin(); it != _functions.end(); ++it)
+ delete it->_value;
+}
+
void Lingo::push(Datum d) {
_stack.push_back(d);
}
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 4119e6bfb5..1d97d4e032 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -92,6 +92,11 @@ void Lingo::initMethods() {
Window::initMethods(windowMethods);
}
+void Lingo::cleanupMethods() {
+ _methods.clear();
+ Window::cleanupMethods();
+}
+
static struct XLibProto {
const char *name;
void (*initializer)(int);
@@ -124,6 +129,10 @@ void Lingo::initXLibs() {
}
}
+void Lingo::cleanupXLibs() {
+ _xlibInitializers.clear();
+}
+
void Lingo::openXLib(Common::String name, ObjectType type) {
Common::Platform platform = _vm->getPlatform();
diff --git a/engines/director/lingo/lingo-object.h b/engines/director/lingo/lingo-object.h
index d13ffe02a9..ec0e5cf4ee 100644
--- a/engines/director/lingo/lingo-object.h
+++ b/engines/director/lingo/lingo-object.h
@@ -101,6 +101,10 @@ public:
}
}
+ static void cleanupMethods() {
+ _methods->clear();
+ }
+
virtual ~Object() {
delete _refCount;
};
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index cf8adbc45e..76c7e445ff 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -312,6 +312,11 @@ void Lingo::initTheEntities() {
}
}
+void Lingo::cleanUpTheEntities() {
+ _entityNames.clear();
+ _fieldNames.clear();
+}
+
const char *Lingo::entity2str(int id) {
static char buf[20];
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index a012689e15..419cace070 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -194,7 +194,19 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
Lingo::~Lingo() {
resetLingo();
- cleanupBuiltins();
+ cleanupFuncs();
+}
+
+void Lingo::reloadBuiltIns() {
+ debug("Reloading builtins");
+ cleanupBuiltIns();
+ cleanUpTheEntities();
+ cleanupMethods();
+ cleanupXLibs();
+ initBuiltIns();
+ initTheEntities();
+ initMethods();
+ initXLibs();
}
LingoArchive::~LingoArchive() {
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index b3441dcef6..7081073f65 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -244,12 +244,16 @@ public:
void printCallStack(uint pc);
Common::String decodeInstruction(LingoArchive *archive, ScriptData *sd, uint pc, uint *newPC = NULL);
+ void reloadBuiltIns();
void initBuiltIns();
- void cleanupBuiltins();
+ void cleanupBuiltIns();
void initFuncs();
+ void cleanupFuncs();
void initBytecode();
void initMethods();
+ void cleanupMethods();
void initXLibs();
+ void cleanupXLibs();
void openXLib(Common::String name, ObjectType type);
void runTests();
@@ -334,6 +338,7 @@ public:
// lingo-the.cpp
public:
void initTheEntities();
+ void cleanUpTheEntities();
const char *entity2str(int id);
const char *field2str(int id);
Commit: 48be72b95afe9d5aeedb5a8f557687f2a3ae4792
https://github.com/scummvm/scummvm/commit/48be72b95afe9d5aeedb5a8f557687f2a3ae4792
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-10T15:00:55-04:00
Commit Message:
DIRECTOR: Load version from config
Changed paths:
engines/director/cast.cpp
diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 77ce1ff57d..78efb80a37 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -346,6 +346,38 @@ bool Cast::loadArchive() {
return true;
}
+uint16 humanVersion(uint16 ver) {
+ if (ver >= 0x79F)
+ return 1201;
+ if (ver >= 0x783)
+ return 1200;
+ if (ver >= 0x782)
+ return 1150;
+ if (ver >= 0x781)
+ return 1100;
+ if (ver >= 0x73B)
+ return 1000;
+ if (ver >= 0x6A4)
+ return 850;
+ if (ver >= 0x582)
+ return 800;
+ if (ver >= 0x4C8)
+ return 700;
+ if (ver >= 0x4C2)
+ return 600;
+ if (ver >= 0x4B1)
+ return 500;
+ if (ver >= 0x45D)
+ return 404;
+ if (ver >= 0x45B)
+ return 400;
+ if (ver >= 0x405)
+ return 310;
+ if (ver >= 0x404)
+ return 300;
+ return 200;
+}
+
void Cast::loadConfig(Common::SeekableSubReadStreamEndian &stream) {
debugC(1, kDebugLoading, "****** Loading Config VWCF");
@@ -353,7 +385,8 @@ void Cast::loadConfig(Common::SeekableSubReadStreamEndian &stream) {
stream.hexdump(stream.size());
uint16 len = stream.readUint16();
- uint16 ver1 = stream.readUint16();
+ uint16 fileVersion = stream.readUint16(); // TODO: very high fileVersion means protected
+ uint16 humanFileVersion = humanVersion(fileVersion);
Common::Rect movieRect = Movie::readRect(stream);
if (!_isShared)
_movie->_movieRect = movieRect;
@@ -378,29 +411,51 @@ void Cast::loadConfig(Common::SeekableSubReadStreamEndian &stream) {
_movie->_stageColor = stageColor;
uint16 bitdepth = stream.readUint16();
- byte color = stream.readByte(); // boolean, color = 1, B/W = 0
- uint16 stageColorR = stream.readUint16();
- uint16 stageColorG = stream.readUint16();
- uint16 stageColorB = stream.readUint16();
- for (int i = 0; i < 0x0b; i++) {
- stream.readByte();
- }
+ // byte color = stream.readByte(); // boolean, color = 1, B/W = 0
+ // uint16 stageColorR = stream.readUint16();
+ // uint16 stageColorG = stream.readUint16();
+ // uint16 stageColorB = stream.readUint16();
- if (_vm->getVersion() >= 400) {
- for (int i = 0; i < 0x16; i++)
+ uint16 directorVersion = fileVersion;
+ uint16 humanDirectorVersion = humanFileVersion;
+ if (humanFileVersion >= 300) {
+ for (int i = 0; i < 0x06; i++) {
stream.readByte();
+ }
- _defaultPalette = (int16)stream.readUint16();
+ directorVersion = stream.readUint16();
+ humanDirectorVersion = humanVersion(directorVersion);
- for (int i = 0; i < 0x08; i++)
+ for (int i = 0; i < 0x0a; i++) {
stream.readByte();
+ }
+
+ if (humanDirectorVersion >= 400) {
+ for (int i = 0; i < 0x16; i++)
+ stream.readByte();
+
+ _defaultPalette = (int16)stream.readUint16();
+
+ for (int i = 0; i < 0x08; i++)
+ stream.readByte();
+ }
+ }
+
+ if (humanDirectorVersion > _vm->getVersion()) {
+ if (_vm->getVersion() > 0)
+ warning("Movie is from later version v%d", humanDirectorVersion);
+ _vm->setVersion(humanDirectorVersion);
+ } else if (humanDirectorVersion < _vm->getVersion()) {
+ warning("Movie is from earlier version v%d", humanDirectorVersion);
+ // Don't change version in case there are other movies, factories,
+ // etc., which need features from the later version
}
debugC(1, kDebugLoading, "Cast::loadConfig(): len: %d, ver: %d, framerate: %d, light: %d, unk: %d, font: %d, size: %d"
- ", style: %d", len, ver1, currentFrameRate, lightswitch, unk1, commentFont, commentSize, commentStyle);
- debugC(1, kDebugLoading, "Cast::loadConfig(): stagecolor: %d, depth: %d, color: %d, rgb: 0x%04x 0x%04x 0x%04x",
- stageColor, bitdepth, color, stageColorR, stageColorG, stageColorB);
+ ", style: %d", len, fileVersion, currentFrameRate, lightswitch, unk1, commentFont, commentSize, commentStyle);
+ debugC(1, kDebugLoading, "Cast::loadConfig(): stagecolor: %d, depth: %d, directorVer: %d",
+ stageColor, bitdepth, directorVersion);
if (debugChannelSet(1, kDebugLoading))
movieRect.debugPrint(1, "Cast::loadConfig(): Movie rect: ");
}
More information about the Scummvm-git-logs
mailing list