mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-26 14:27:14 +00:00
Removing GID_ZAK256 and GID_LOOM256
svn-id: r20153
This commit is contained in:
parent
0a150fa128
commit
ec476b1fd0
@ -253,7 +253,7 @@ int Actor::remapDirection(int dir, bool is_walking) {
|
||||
// not necessary here because we never call the function unless the
|
||||
// actor is in the current room anyway.
|
||||
|
||||
if (!_ignoreBoxes || (_vm->_gameId == GID_LOOM || _vm->_gameId == GID_LOOM256)) {
|
||||
if (!_ignoreBoxes || _vm->_gameId == GID_LOOM) {
|
||||
specdir = _vm->_extraBoxFlags[_walkbox];
|
||||
if (specdir) {
|
||||
if (specdir & 0x8000) {
|
||||
@ -1384,7 +1384,7 @@ void ScummEngine::actorTalk(const byte *msg) {
|
||||
convertMessageToString(msg, _charsetBuffer, sizeof(_charsetBuffer));
|
||||
|
||||
// FIXME: Workaround for bugs #770039 and #770049
|
||||
if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
|
||||
if (_gameId == GID_LOOM) {
|
||||
if (!*_charsetBuffer)
|
||||
return;
|
||||
}
|
||||
|
@ -1175,8 +1175,8 @@ void CharsetRendererV3::setColor(byte color)
|
||||
bool useShadow = false;
|
||||
_color = color;
|
||||
|
||||
// FM-TOWNS version of Loom uses old colour method as well
|
||||
if ((_vm->_version >= 2) && (_vm->_features & GF_16COLOR || _vm->_gameId == GID_LOOM)) {
|
||||
// FM-TOWNS version of Loom uses old color method as well
|
||||
if ((_vm->_version >= 2) && (_vm->_features & GF_16COLOR || (_vm->_gameId == GID_LOOM && _vm->_version == 3))) {
|
||||
useShadow = ((_color & 0xF0) != 0);
|
||||
_color &= 0x0f;
|
||||
} else if (_vm->_features & GF_OLD256) {
|
||||
|
@ -335,7 +335,7 @@ void ScummEngine_v6::useBompCursor(const byte *im, int width, int height) {
|
||||
|
||||
void ScummEngine_v5::redefineBuiltinCursorFromChar(int index, int chr) {
|
||||
// Cursor image in both Looms are based on images from charset.
|
||||
if (_gameId != GID_LOOM && _gameId != GID_LOOM256) {
|
||||
if (_gameId != GID_LOOM) {
|
||||
// FIXME: Actually: is this opcode ever called by a non-Loom game?
|
||||
// Which V3-V5 game besides Loom makes use of custom cursors, ever?
|
||||
error("V3--V5 SO_CURSOR_IMAGE(%d,%d) called - tell Fingolfin where you saw this!", index, chr);
|
||||
@ -379,7 +379,7 @@ void ScummEngine_v5::redefineBuiltinCursorFromChar(int index, int chr) {
|
||||
|
||||
void ScummEngine_v5::redefineBuiltinCursorHotspot(int index, int x, int y) {
|
||||
// Cursor image in both Looms are based on images from charset.
|
||||
if (_gameId != GID_LOOM && _gameId != GID_LOOM256) {
|
||||
if (_gameId != GID_LOOM) {
|
||||
// FIXME: Actually: is this opcode ever called by a non-Loom game?
|
||||
// Which V3-V5 game besides Loom makes use of custom cursors, ever?
|
||||
error("V3--V5 SO_CURSOR_HOTSPOT(%d,%d,%d) called - tell Fingolfin where you saw this!", index, x, y);
|
||||
|
@ -104,7 +104,7 @@ ScummDebugger::ScummDebugger(ScummEngine *s)
|
||||
DCmd_Register("scripts", &ScummDebugger::Cmd_PrintScript);
|
||||
DCmd_Register("importres", &ScummDebugger::Cmd_ImportRes);
|
||||
|
||||
if (_vm->_gameId == GID_LOOM || _vm->_gameId == GID_LOOM256)
|
||||
if (_vm->_gameId == GID_LOOM)
|
||||
DCmd_Register("drafts", &ScummDebugger::Cmd_PrintDraft);
|
||||
|
||||
DCmd_Register("loadgame", &ScummDebugger::Cmd_LoadGame);
|
||||
@ -824,7 +824,7 @@ bool ScummDebugger::Cmd_PrintDraft(int argc, const char **argv) {
|
||||
const char *notes = "cdefgabC";
|
||||
int i, base, draft;
|
||||
|
||||
if (_vm->_gameId != GID_LOOM && _vm->_gameId != GID_LOOM256) {
|
||||
if (_vm->_gameId != GID_LOOM) {
|
||||
DebugPrintf("Command only works with Loom/LoomCD\n");
|
||||
return true;
|
||||
}
|
||||
@ -850,7 +850,7 @@ bool ScummDebugger::Cmd_PrintDraft(int argc, const char **argv) {
|
||||
// Possibly they store information on where and/or how the draft can
|
||||
// be used. They appear to remain constant throughout the game.
|
||||
|
||||
base = (_vm->_gameId == GID_LOOM) ? 50 : 100;
|
||||
base = (_vm->_version == 3) ? 50 : 100;
|
||||
|
||||
if (argc == 2) {
|
||||
// We had to debug a problem at the end of the game that only
|
||||
|
@ -1105,7 +1105,7 @@ void ScummEngine::drawFlashlight() {
|
||||
return;
|
||||
|
||||
// Calculate the area of the flashlight
|
||||
if (_gameId == GID_ZAK256 || _version <= 2) {
|
||||
if (_gameId == GID_ZAK || _gameId == GID_MANIAC) {
|
||||
x = _mouse.x + vs->xstart;
|
||||
y = _mouse.y - vs->topline;
|
||||
} else {
|
||||
@ -1118,7 +1118,7 @@ void ScummEngine::drawFlashlight() {
|
||||
_flashlight.x = x - _flashlight.w / 2 - _screenStartStrip * 8;
|
||||
_flashlight.y = y - _flashlight.h / 2;
|
||||
|
||||
if (_gameId == GID_LOOM || _gameId == GID_LOOM256)
|
||||
if (_gameId == GID_LOOM)
|
||||
_flashlight.y -= 12;
|
||||
|
||||
// Clip the flashlight at the borders
|
||||
@ -3153,7 +3153,7 @@ void ScummEngine::dissolveEffect(int width, int height) {
|
||||
// Speed up the effect for CD Loom since it uses it so often. I don't
|
||||
// think the original had any delay at all, so on modern hardware it
|
||||
// wasn't even noticeable.
|
||||
if (_gameId == GID_LOOM256)
|
||||
if (_gameId == GID_LOOM && (_version == 3))
|
||||
blits_before_refresh *= 2;
|
||||
|
||||
for (i = 0; i < w * h; i++) {
|
||||
@ -3280,7 +3280,7 @@ void ScummEngine::scrollEffect(int dir) {
|
||||
|
||||
void ScummEngine::unkScreenEffect6() {
|
||||
// CD Loom (but not EGA Loom!) uses a more fine-grained dissolve
|
||||
if (_gameId == GID_LOOM256)
|
||||
if (_gameId == GID_LOOM && (_version == 3))
|
||||
dissolveEffect(1, 1);
|
||||
else
|
||||
dissolveEffect(8, 4);
|
||||
|
@ -33,14 +33,12 @@ int ScummHelp::numPages(byte gameId) {
|
||||
switch (gameId) {
|
||||
case GID_MANIAC:
|
||||
case GID_ZAK:
|
||||
case GID_ZAK256:
|
||||
return 4;
|
||||
break;
|
||||
case GID_INDY3:
|
||||
return 6;
|
||||
break;
|
||||
case GID_LOOM:
|
||||
case GID_LOOM256:
|
||||
case GID_MONKEY_EGA:
|
||||
case GID_MONKEY_VGA:
|
||||
case GID_MONKEY:
|
||||
@ -113,13 +111,12 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
|
||||
ADD_TEXT(" or incorrect game behaviour.");
|
||||
break;
|
||||
case 3:
|
||||
if (gameId == GID_LOOM || gameId == GID_LOOM256)
|
||||
if (gameId == GID_LOOM)
|
||||
title = "Spinning drafts on the keyboard:";
|
||||
else
|
||||
title = "Main game controls:";
|
||||
switch (gameId) {
|
||||
case GID_ZAK:
|
||||
case GID_ZAK256:
|
||||
case GID_MANIAC:
|
||||
// HACK. I know use of g_scumm here is evil, however,
|
||||
// introducing new GID and putting it everywhere will
|
||||
@ -182,7 +179,6 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
|
||||
ADD_BIND("b", "To Henry / To Indy");
|
||||
break;
|
||||
case GID_LOOM:
|
||||
case GID_LOOM256:
|
||||
ADD_BIND("q, c", "play C minor on distaff");
|
||||
ADD_BIND("w, d", "play D on distaff");
|
||||
ADD_BIND("e, e", "play E on distaff");
|
||||
@ -260,10 +256,8 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
switch (gameId) {
|
||||
case GID_MANIAC:
|
||||
case GID_ZAK:
|
||||
title = "Other game controls:";
|
||||
title = "Other game controls:";
|
||||
if (version <= 2) {
|
||||
ADD_TEXT("Inventory: (not yet implemented)");
|
||||
ADD_BIND("u", "Scroll list up");
|
||||
ADD_BIND("j", "Scroll list down");
|
||||
@ -283,10 +277,8 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
|
||||
ADD_BIND("F3", "Melissa");
|
||||
ADD_BIND("F4", "Leslie");
|
||||
}
|
||||
break;
|
||||
case GID_INDY3:
|
||||
case GID_ZAK256:
|
||||
title = "Other game controls:";
|
||||
} else if (gameId == GID_INDY3 || gameId == GID_ZAK) {
|
||||
// Indy3, or FM-TOWNS Zak
|
||||
ADD_TEXT("Inventory:");
|
||||
ADD_BIND("y", "Upper left item");
|
||||
ADD_BIND("h", "Middle left item");
|
||||
@ -296,7 +288,7 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
|
||||
ADD_BIND("m", "Lower right item");
|
||||
ADD_BIND("o", "Scroll list up");
|
||||
ADD_BIND("l", "Scroll list down");
|
||||
if (gameId == GID_ZAK256) {
|
||||
if (gameId == GID_ZAK) {
|
||||
ADD_LINE;
|
||||
ADD_TEXT("Switching characters:");
|
||||
ADD_BIND("F1", "Zak");
|
||||
@ -304,7 +296,6 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
|
||||
ADD_BIND("F3", "Melissa");
|
||||
ADD_BIND("F4", "Leslie");
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
|
@ -538,7 +538,7 @@ int ScummEngine::readVar(uint var) {
|
||||
if (!_copyProtection) {
|
||||
if (_gameId == GID_LOOM && (_platform == Common::kPlatformFMTowns) && var == 214 && bit == 15) {
|
||||
return 0;
|
||||
} else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) {
|
||||
} else if (_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns) && var == 151 && bit == 8) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -563,7 +563,7 @@ void ScummEngine_v5::o5_add() {
|
||||
// understand the reasoning behind this, compare script 210 and 218 in
|
||||
// room 20. Apparently they made a mistake when converting the absolute
|
||||
// delays into relative ones.
|
||||
if (_gameId == GID_LOOM256 && vm.slot[_currentScript].number == 210 && _currentRoom == 20 && _resultVarNumber == 0x4000) {
|
||||
if (_gameId == GID_LOOM && _version == 4 && vm.slot[_currentScript].number == 210 && _currentRoom == 20 && _resultVarNumber == 0x4000) {
|
||||
switch (a) {
|
||||
// Fix for the Var[250] == 11 case
|
||||
case 138:
|
||||
@ -1740,7 +1740,7 @@ void ScummEngine_v5::o5_resourceRoutines() {
|
||||
case 6: // SO_NUKE_SOUND
|
||||
case 7: // SO_NUKE_COSTUME
|
||||
case 8: // SO_NUKE_ROOM
|
||||
if (_gameId == GID_ZAK256)
|
||||
if (_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns))
|
||||
error("o5_resourceRoutines %d should not occur in Zak256", op);
|
||||
else
|
||||
res.setResourceCounter(resType[op-5], resid, 0x7F);
|
||||
@ -2266,12 +2266,12 @@ void ScummEngine_v5::o5_startScript() {
|
||||
|
||||
// FIXME: Script 171 loads a complete room resource, instead of the actual script.
|
||||
// Causing invalid opcode cases, see bug #1290485
|
||||
if (_gameId == GID_ZAK256 && script == 171)
|
||||
if (_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns) && script == 171)
|
||||
return;
|
||||
|
||||
if (!_copyProtection) {
|
||||
// Method used by original games to skip copy protection scheme
|
||||
if (_gameId == GID_LOOM && _currentRoom == 69 && script == 201)
|
||||
if (_gameId == GID_LOOM && _version == 3 && _currentRoom == 69 && script == 201)
|
||||
script = 205;
|
||||
else if ((_gameId == GID_MONKEY_VGA || _gameId == GID_MONKEY_EGA) && script == 152)
|
||||
return;
|
||||
@ -2321,7 +2321,7 @@ void ScummEngine_v5::o5_stringOps() {
|
||||
b = getVarOrDirectByte(PARAM_2);
|
||||
c = getVarOrDirectByte(PARAM_3);
|
||||
ptr = getResourceAddress(rtString, a);
|
||||
if (_gameId != GID_LOOM256) { /* FIXME - LOOM256 */
|
||||
if (!(_gameId == GID_LOOM && _version == 4)) { /* FIXME - LOOM256 */
|
||||
if (ptr == NULL)
|
||||
error("String %d does not exist", a);
|
||||
ptr[b] = c;
|
||||
@ -2433,7 +2433,7 @@ void ScummEngine_v5::o5_verbOps() {
|
||||
vs->curRect.top += 8;
|
||||
break;
|
||||
}
|
||||
} else if (_gameId == GID_LOOM256) {
|
||||
} else if (_gameId == GID_LOOM && _version == 4) {
|
||||
// FIXME: hack loom notes into right spot
|
||||
if ((verb >= 90) && (verb <= 97)) { // Notes
|
||||
switch (verb) {
|
||||
@ -2602,7 +2602,7 @@ void ScummEngine_v5::o5_walkActorToActor() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_gameId == GID_LOOM256 && nr == 1 && nr2 == 0 &&
|
||||
if (_gameId == GID_LOOM && _version == 4 && nr == 1 && nr2 == 0 &&
|
||||
dist == 255 && vm.slot[_currentScript].number == 98) {
|
||||
// WORKAROUND bug #743615: LoomCD script 98 contains this:
|
||||
// walkActorToActor(1,0,255)
|
||||
@ -2736,7 +2736,7 @@ void ScummEngine_v5::decodeParseString() {
|
||||
int offset = (uint16)getVarOrDirectWord(PARAM_1);
|
||||
int delay = (uint16)getVarOrDirectWord(PARAM_2);
|
||||
|
||||
if (_gameId == GID_LOOM256) {
|
||||
if (_gameId == GID_LOOM && _version == 4) {
|
||||
if (offset == 0 && delay == 0) {
|
||||
VAR(VAR_MUSIC_TIMER) = 0;
|
||||
_sound->stopCD();
|
||||
@ -2762,7 +2762,7 @@ void ScummEngine_v5::decodeParseString() {
|
||||
// WORKAROUND: This happens when Chaos introduces
|
||||
// herself to bishop Mandible. Of all the places to put
|
||||
// a typo...
|
||||
if (_gameId == GID_LOOM256 && strcmp((const char *) _scriptPointer, "I am Choas.") == 0)
|
||||
if (_gameId == GID_LOOM && strcmp((const char *) _scriptPointer, "I am Choas.") == 0)
|
||||
printString(textSlot, (const byte *) "I am Chaos.");
|
||||
else
|
||||
printString(textSlot, _scriptPointer);
|
||||
|
@ -494,7 +494,7 @@ static const ScummGameSettings multiple_versions_md5_settings[] = {
|
||||
{"6f0be328c64d689bb606d22a389e1b0f", "Loom (Macintosh)", GID_LOOM, 3, 0, MDT_PCSPK,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_16COLOR | GF_USE_KEY | GF_OLD_BUNDLE, Common::kPlatformMacintosh},
|
||||
|
||||
{"5d88b9d6a88e6f8e90cded9d01b7f082", "Loom (256 color CD version)", GID_LOOM256, 4, 0, MDT_NONE,
|
||||
{"5d88b9d6a88e6f8e90cded9d01b7f082", "Loom (256 color CD version)", GID_LOOM, 4, 0, MDT_NONE,
|
||||
GF_SMALL_HEADER | GF_USE_KEY | GF_AUDIOTRACKS, Common::kPlatformPC},
|
||||
{"c5d10e190d4b4d59114b824f2fdbd00e", "Loom (FM-TOWNS)", GID_LOOM, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
@ -677,18 +677,18 @@ static const ScummGameSettings multiple_versions_md5_settings[] = {
|
||||
{"7020931d5a2be0a49d68e7a1882363e4", "Zak McKracken and the Alien Mindbenders (v1)", GID_ZAK, 1, 0, MDT_PCSPK,
|
||||
GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformPC},
|
||||
|
||||
{"2d4536a56e01da4b02eb021e7770afa2", "Zak McKracken and the Alien Mindbenders (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
|
||||
{"2d4536a56e01da4b02eb021e7770afa2", "Zak McKracken and the Alien Mindbenders (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
{"ce3edc99cd4f478c5b37104d70c68ca5", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK256, 3, 0, MDT_TOWNS,
|
||||
{"ce3edc99cd4f478c5b37104d70c68ca5", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
{"1ca86e2cf9aaa2068738a1e5ba477e60", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK256, 3, 0, MDT_TOWNS,
|
||||
{"1ca86e2cf9aaa2068738a1e5ba477e60", "Zak McKracken and the Alien Mindbenders (FM-TOWNS Jp)", GID_ZAK, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
|
||||
{"2d388339d6050d8ccaa757b64633954e", "Indy/Loom Demo (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
|
||||
{"2d388339d6050d8ccaa757b64633954e", "Indy/Loom Demo (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
{"77f5c9cc0986eb729c1a6b4c8823bbae", "Zak/Loom Demo (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
|
||||
{"77f5c9cc0986eb729c1a6b4c8823bbae", "Zak/Loom Demo (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
{"3938ee1aa4433fca9d9308c9891172b1", "Indy/Zak Demo (FM-TOWNS)", GID_ZAK256, 3, 0, MDT_TOWNS,
|
||||
{"3938ee1aa4433fca9d9308c9891172b1", "Indy/Zak Demo (FM-TOWNS)", GID_ZAK, 3, 0, MDT_TOWNS,
|
||||
GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns},
|
||||
#endif
|
||||
{NULL, NULL, 0, 0, MDT_NONE, 0, 0, Common::kPlatformUnknown}
|
||||
@ -2340,7 +2340,7 @@ int ScummEngine::scummLoop(int delta) {
|
||||
VAR(VAR_TMR_1) += delta;
|
||||
VAR(VAR_TMR_2) += delta;
|
||||
VAR(VAR_TMR_3) += delta;
|
||||
if (_gameId == GID_ZAK256 || _gameId == GID_INDY3) {
|
||||
if (_gameId == GID_ZAK || _gameId == GID_INDY3) {
|
||||
// All versions of Indy3 set three extra timers
|
||||
// FM-TOWNS version of Zak sets three extra timers
|
||||
VAR(39) += delta;
|
||||
@ -2487,7 +2487,7 @@ load_game:
|
||||
_charset->_hasMask = false;
|
||||
|
||||
// HACK as in game save stuff isn't supported currently
|
||||
if (_gameId == GID_LOOM || _gameId == GID_LOOM256) {
|
||||
if (_gameId == GID_LOOM) {
|
||||
int args[16];
|
||||
uint value;
|
||||
memset(args, 0, sizeof(args));
|
||||
@ -2495,8 +2495,10 @@ load_game:
|
||||
|
||||
if (_platform == Common::kPlatformMacintosh)
|
||||
value = 105;
|
||||
else if (_version == 4) // 256 color CD version
|
||||
value = 150;
|
||||
else
|
||||
value = (_gameId == GID_LOOM256) ? 150 : 100;
|
||||
value = 100;
|
||||
byte restoreScript = (_platform == Common::kPlatformFMTowns) ? 17 : 18;
|
||||
// if verbs should be shown restore them
|
||||
if (VAR(value) == 2)
|
||||
|
@ -195,7 +195,6 @@ enum ScummGameId {
|
||||
GID_INDY3,
|
||||
GID_INDY4,
|
||||
GID_LOOM,
|
||||
GID_LOOM256,
|
||||
GID_MANIAC,
|
||||
GID_MONKEY_EGA,
|
||||
GID_MONKEY_VGA,
|
||||
@ -205,7 +204,6 @@ enum ScummGameId {
|
||||
GID_SAMNMAX,
|
||||
GID_TENTACLE,
|
||||
GID_ZAK,
|
||||
GID_ZAK256,
|
||||
|
||||
GID_HEGAME, // Generic name for all HE games with default behaviour
|
||||
GID_PUTTDEMO,
|
||||
|
@ -1111,7 +1111,7 @@ void Sound::startCDTimer() {
|
||||
// when Chaos first appears, and I have to use 101 for Monkey 1 or the
|
||||
// intro music will be cut short.
|
||||
|
||||
if (_vm->_gameId == GID_LOOM256)
|
||||
if (_vm->_gameId == GID_LOOM && _vm->_version == 4)
|
||||
timer_interval = 100;
|
||||
else
|
||||
timer_interval = 101;
|
||||
@ -1766,7 +1766,7 @@ void ScummEngine::convertADResource(int type, int idx, byte *src_ptr, int size)
|
||||
if (_gameId == GID_INDY3) {
|
||||
// Note: since we fix ppqn at 480, ppqn/473 is almost 1
|
||||
dw = 500000 * 256 / 473 * ppqn / ticks;
|
||||
} else if (_gameId == GID_LOOM) {
|
||||
} else if (_gameId == GID_LOOM && _version == 3) {
|
||||
dw = 500000 * ppqn / 4 / ticks;
|
||||
} else {
|
||||
dw = 500000 * 256 / ticks;
|
||||
@ -2108,7 +2108,7 @@ int ScummEngine::readSoundResourceSmallHeader(int type, int idx) {
|
||||
|
||||
debug(4, "readSoundResourceSmallHeader(%d)", idx);
|
||||
|
||||
if ((_gameId == GID_LOOM) && (_platform == Common::kPlatformPC) && VAR(VAR_SOUNDCARD) == 4) {
|
||||
if ((_gameId == GID_LOOM) && (_version == 3) && (_platform == Common::kPlatformPC) && VAR(VAR_SOUNDCARD) == 4) {
|
||||
// Roland resources in Loom are tagless
|
||||
// So we add an RO tag to allow imuse to detect format
|
||||
byte *ptr, *src_ptr;
|
||||
|
@ -410,7 +410,7 @@ void ScummEngine::CHARSET_1() {
|
||||
if (!_haveMsg)
|
||||
return;
|
||||
|
||||
if (!(_features & GF_NEW_CAMERA) && !(_gameId == GID_ZAK256 && getTalkingActor() == 0xFF)) {
|
||||
if (!(_features & GF_NEW_CAMERA) && !(_gameId == GID_ZAK && (_platform == Common::kPlatformFMTowns) && getTalkingActor() == 0xFF)) {
|
||||
if ((camera._dest.x / 8) != (camera._cur.x / 8) || camera._cur.x != camera._last.x)
|
||||
return;
|
||||
}
|
||||
@ -578,7 +578,7 @@ void ScummEngine::CHARSET_1() {
|
||||
// HE games which use sprites for subtitles
|
||||
} else if (_heversion >= 60 && !ConfMan.getBool("subtitles") && _sound->isSoundRunning(1)) {
|
||||
// Special case for HE games
|
||||
} else if ((_gameId == GID_LOOM256) && !ConfMan.getBool("subtitles") && (_sound->pollCD())) {
|
||||
} else if ((_gameId == GID_LOOM) && !ConfMan.getBool("subtitles") && (_sound->pollCD())) {
|
||||
// Special case for loomcd, since it only uses CD audio.for sound
|
||||
} else if (!ConfMan.getBool("subtitles") && (!_haveActorSpeechMsg || _mixer->isSoundHandleActive(_sound->_talkChannelHandle))) {
|
||||
// Subtitles are turned off, and there is a voice version
|
||||
|
@ -167,7 +167,7 @@ void ScummEngine_v5::setupScummVars() {
|
||||
if (_version >= 4) {
|
||||
VAR_V5_TALK_STRING_Y = 54;
|
||||
}
|
||||
if (_gameId == GID_LOOM256 || _version >= 5) {
|
||||
if ((_gameId == GID_LOOM && _version == 4) || _version >= 5) {
|
||||
VAR_NOSUBTITLES = 60;
|
||||
}
|
||||
}
|
||||
@ -655,7 +655,7 @@ void ScummEngine::initScummVars() {
|
||||
VAR(VAR_SOUNDCARD) = 3;
|
||||
break;
|
||||
default:
|
||||
if ((_gameId == GID_MONKEY_EGA || _gameId == GID_MONKEY_VGA || _gameId == GID_LOOM)
|
||||
if ((_gameId == GID_MONKEY_EGA || _gameId == GID_MONKEY_VGA || (_gameId == GID_LOOM && _version == 3))
|
||||
&& (_platform == Common::kPlatformPC)) {
|
||||
if (_gameId == GID_LOOM) {
|
||||
char buf[50];
|
||||
@ -694,7 +694,7 @@ void ScummEngine::initScummVars() {
|
||||
// Set screen size for the Macintosh version of Indy3/Loom
|
||||
VAR(39) = 320;
|
||||
}
|
||||
if (_platform == Common::kPlatformPC && _gameId == GID_LOOM) {
|
||||
if (_platform == Common::kPlatformPC && _gameId == GID_LOOM && _version == 3) {
|
||||
// Set number of sound resources
|
||||
VAR(39) = 80;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user