diff options
-rw-r--r-- | scumm/actor.cpp | 12 | ||||
-rw-r--r-- | scumm/charset.cpp | 6 | ||||
-rw-r--r-- | scumm/costume.cpp | 2 | ||||
-rw-r--r-- | scumm/cursor.cpp | 8 | ||||
-rw-r--r-- | scumm/gfx.cpp | 14 | ||||
-rw-r--r-- | scumm/input.cpp | 6 | ||||
-rw-r--r-- | scumm/insane/insane.cpp | 14 | ||||
-rw-r--r-- | scumm/insane/insane_ben.cpp | 20 | ||||
-rw-r--r-- | scumm/insane/insane_enemy.cpp | 12 | ||||
-rw-r--r-- | scumm/insane/insane_iact.cpp | 2 | ||||
-rw-r--r-- | scumm/insane/insane_scenes.cpp | 16 | ||||
-rw-r--r-- | scumm/object.cpp | 4 | ||||
-rw-r--r-- | scumm/resource.cpp | 8 | ||||
-rw-r--r-- | scumm/resource_v2.cpp | 6 | ||||
-rw-r--r-- | scumm/resource_v4.cpp | 2 | ||||
-rw-r--r-- | scumm/room.cpp | 2 | ||||
-rw-r--r-- | scumm/saveload.cpp | 6 | ||||
-rw-r--r-- | scumm/script.cpp | 8 | ||||
-rw-r--r-- | scumm/script_v2.cpp | 32 | ||||
-rw-r--r-- | scumm/script_v5.cpp | 18 | ||||
-rw-r--r-- | scumm/script_v6.cpp | 4 | ||||
-rw-r--r-- | scumm/script_v6he.cpp | 4 | ||||
-rw-r--r-- | scumm/scumm.cpp | 99 | ||||
-rw-r--r-- | scumm/scumm.h | 14 | ||||
-rw-r--r-- | scumm/smush/smush_player.cpp | 4 | ||||
-rw-r--r-- | scumm/sound.cpp | 16 | ||||
-rw-r--r-- | scumm/string.cpp | 4 | ||||
-rw-r--r-- | scumm/vars.cpp | 10 | ||||
-rw-r--r-- | scumm/verbs.cpp | 14 |
29 files changed, 165 insertions, 202 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp index 337ab945d0..b0b095ad83 100644 --- a/scumm/actor.cpp +++ b/scumm/actor.cpp @@ -445,7 +445,7 @@ void Actor::setupActorScale() { } void Actor::startAnimActor(int f) { - if (_vm->_version >= 7 && !((_vm->_gameId == GID_FT) && (_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (_vm->_version >= 7 && !((_vm->_gameId == GID_FT) && (_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { switch (f) { case 1001: f = _initFrame; @@ -512,7 +512,7 @@ void Actor::startAnimActor(int f) { void Actor::animateActor(int anim) { int cmd, dir; - if (_vm->_version >= 7 && !((_vm->_gameId == GID_FT) && (_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (_vm->_version >= 7 && !((_vm->_gameId == GID_FT) && (_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { if (anim == 0xFF) anim = 2000; @@ -825,14 +825,14 @@ void Actor::showActor() { // an internal variable. Emulate this to prevent overwriting script vars... // Maniac NES (V1), however, DOES have a ScummVar for VAR_TALK_ACTOR int ScummEngine::getTalkingActor() { - if (_gameId == GID_MANIAC && _version == 1 && !(_features & GF_NES)) + if (_gameId == GID_MANIAC && _version == 1 && !(_platform == Common::kPlatformNES)) return _V1TalkingActor; else return VAR(VAR_TALK_ACTOR); } void ScummEngine::setTalkingActor(int value) { - if (_gameId == GID_MANIAC && _version == 1 && !(_features & GF_NES)) + if (_gameId == GID_MANIAC && _version == 1 && !(_platform == Common::kPlatformNES)) _V1TalkingActor = value; else VAR(VAR_TALK_ACTOR) = value; @@ -1041,7 +1041,7 @@ void Actor::drawActorCostume(bool hitTestMode) { bcr->_actorX = _pos.x + _offsX - _vm->virtscr[0].xstart; bcr->_actorY = _pos.y + _offsY - _elevation; - if (_vm->_features & GF_NES) { + if (_vm->_platform == Common::kPlatformNES) { // In the NES version, when the actor is facing right, // we need to shift it 8 pixels to the left if (_facing == 90) @@ -1315,7 +1315,7 @@ void ScummEngine::actorTalk(const byte *msg) { if (_heversion >= 72 || getTalkingActor() > 0x7F) { _charsetColor = (byte)_string[0].color; - } else if (_features & GF_NES) { + } else if (_platform == Common::kPlatformNES) { if (_NES_lastTalkingActor != getTalkingActor()) _NES_talkColor ^= 1; _NES_lastTalkingActor = getTalkingActor(); diff --git a/scumm/charset.cpp b/scumm/charset.cpp index 24175b095b..fe5e7ecd41 100644 --- a/scumm/charset.cpp +++ b/scumm/charset.cpp @@ -1163,7 +1163,7 @@ int CharsetRendererV3::getCharWidth(byte chr) { void CharsetRendererV3::setColor(byte color) { _color = color; - _shadowColor = (_vm->_features & GF_FMTOWNS) ? 8 : 0; + _shadowColor = (_vm->_platform == Common::kPlatformFMTowns) ? 8 : 0; // FM-TOWNS version of Loom uses old colour method as well if ((_vm->_version >= 2) && (_vm->_features & GF_16COLOR || _vm->_gameId == GID_LOOM)) { _dropShadow = ((_color & 0xF0) != 0); @@ -1306,7 +1306,7 @@ void CharsetRendererClassic::printChar(int chr) { int type = *_fontPtr; if (is2byte) { _dropShadow = true; - _shadowColor = (_vm->_features & GF_FMTOWNS) ? 8 : 0; + _shadowColor = (_vm->_platform == Common::kPlatformFMTowns) ? 8 : 0; charPtr = _vm->get2byteCharPtr(chr); width = _vm->_2byteWidth; height = _vm->_2byteHeight; @@ -1500,7 +1500,7 @@ void CharsetRendererClassic::drawChar(int chr, const Graphics::Surface &s, int x if (is2byte) { _dropShadow = true; - _shadowColor = (_vm->_features & GF_FMTOWNS) ? 8 : 0; + _shadowColor = (_vm->_platform == Common::kPlatformFMTowns) ? 8 : 0; charPtr = _vm->get2byteCharPtr(chr); width = _vm->_2byteWidth; height = _vm->_2byteHeight; diff --git a/scumm/costume.cpp b/scumm/costume.cpp index 1004799274..ee5c257b99 100644 --- a/scumm/costume.cpp +++ b/scumm/costume.cpp @@ -96,7 +96,7 @@ byte ClassicCostumeRenderer::mainRoutine(int xmoveCur, int ymoveCur) { const int scaletableSize = 128; - const bool newAmiCost = (_vm->_version == 5) && (_vm->_features & GF_AMIGA); + const bool newAmiCost = (_vm->_version == 5) && (_vm->_platform == Common::kPlatformAmiga); CHECK_HEAP diff --git a/scumm/cursor.cpp b/scumm/cursor.cpp index a2f9840873..441f677580 100644 --- a/scumm/cursor.cpp +++ b/scumm/cursor.cpp @@ -119,7 +119,7 @@ void ScummEngine_v6::setCursorTransparency(int a) { void ScummEngine::updateCursor() { _system->setMouseCursor(_grabbedCursor, _cursor.width, _cursor.height, _cursor.hotspotX, _cursor.hotspotY, - (_features & GF_NES ? _grabbedCursor[63] : 255), + (_platform == Common::kPlatformNES ? _grabbedCursor[63] : 255), (_heversion == 70 ? 2 : 1)); } @@ -157,7 +157,7 @@ void ScummEngine::setCursorFromBuffer(byte *ptr, int width, int height, int pitc } void ScummEngine_v70he::setCursorFromImg(uint img, uint room, uint imgindex) { - if (_features & GF_MACINTOSH && _heversion == 72) + if (_platform == Common::kPlatformMacintosh && _heversion == 72) _macResExtractor->setCursor(img); else _win32ResExtractor->setCursor(img); @@ -382,7 +382,7 @@ void ScummEngine_v5::setBuiltinCursor(int idx) { else color = default_cursor_colors[idx]; - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { _cursor.width = 8; _cursor.height = 8; _cursor.hotspotX = 0; @@ -399,7 +399,7 @@ void ScummEngine_v5::setBuiltinCursor(int idx) { *dst++ = palette[((c0 >> (7 - j)) & 1) | (((c1 >> (7 - j)) & 1) << 1) | ((idx == 3) ? 4 : 0)]; } - } else if (_version <= 2 && _features & GF_AMIGA) { + } else if (_version <= 2 && _platform == Common::kPlatformAmiga) { _cursor.width = 15; _cursor.height = 15; _cursor.hotspotX = 7; diff --git a/scumm/gfx.cpp b/scumm/gfx.cpp index 044b9611e9..34ceca3e78 100644 --- a/scumm/gfx.cpp +++ b/scumm/gfx.cpp @@ -195,7 +195,7 @@ Gdi::Gdi(ScummEngine *vm) { _vm = vm; _roomPalette = vm->_roomPalette; _roomStrips = 0; - if ((vm->_features & GF_AMIGA) && (vm->_version >= 4)) + if ((vm->_platform == Common::kPlatformAmiga) && (vm->_version >= 4)) _roomPalette += 16; } @@ -225,7 +225,7 @@ void Gdi::init() { void Gdi::roomChanged(byte *roomptr, uint32 IM00_offs) { if (_vm->_version == 1) { - if (_vm->_features & GF_NES) { + if (_vm->_platform == Common::kPlatformNES) { decodeNESGfx(roomptr); } else { for (int i = 0; i < 4; i++){ @@ -272,7 +272,7 @@ void ScummEngine::initScreens(int b, int h) { } } - if ((_features & GF_NES) && (h != _screenHeight)) { + if ((_platform == Common::kPlatformNES) && (h != _screenHeight)) { adj = 16; initVirtScreen(kUnkVirtScreen, 0, 0, _screenWidth, adj, false, false); } @@ -555,7 +555,7 @@ void ScummEngine::drawStripToScreen(VirtScreen *vs, int x, int width, int top, i // NES can address negative number strips and that poses problem for // our code. So instead adding zillions of fixes and potentially break // other games we shift it right on rendering stage - if ((_features & GF_NES) && (((_NESStartStrip > 0) && (vs->number == kMainVirtScreen)) || (vs->number == kTextVirtScreen))) { + if ((_platform == Common::kPlatformNES) && (((_NESStartStrip > 0) && (vs->number == kMainVirtScreen)) || (vs->number == kTextVirtScreen))) { x += 16; } @@ -1340,7 +1340,7 @@ void Gdi::drawBitmap(const byte *ptr, VirtScreen *vs, int x, int y, const int wi _objectMode = (flag & dbObjectMode) == dbObjectMode; if (_objectMode && _vm->_version == 1) { - if (_vm->_features & GF_NES) { + if (_vm->_platform == Common::kPlatformNES) { // TODO: Maybe call decodeNESObject here? } else { decodeC64Gfx(ptr, _C64.objectMap, (width / 8) * (height / 8) * 3); @@ -1405,7 +1405,7 @@ void Gdi::drawBitmap(const byte *ptr, VirtScreen *vs, int x, int y, const int wi dstPtr = (byte *)vs->pixels + y * vs->pitch + x * 8; if (_vm->_version == 1) { - if (_vm->_features & GF_NES) { + if (_vm->_platform == Common::kPlatformNES) { mask_ptr = getMaskBuffer(x, y, 0); drawStripNES(dstPtr, mask_ptr, vs->pitch, stripnr, y, height); } @@ -1457,7 +1457,7 @@ void Gdi::drawBitmap(const byte *ptr, VirtScreen *vs, int x, int y, const int wi if (_vm->_version == 1) { mask_ptr = getMaskBuffer(x, y, 1); - if (_vm->_features & GF_NES) { + if (_vm->_platform == Common::kPlatformNES) { drawStripNESMask(mask_ptr, stripnr, height); } else { drawStripC64Mask(mask_ptr, stripnr, width, height); diff --git a/scumm/input.cpp b/scumm/input.cpp index 984efce08f..666bfe9084 100644 --- a/scumm/input.cpp +++ b/scumm/input.cpp @@ -216,7 +216,7 @@ void ScummEngine::processKbd(bool smushMode) { _lastKeyHit = _keyPressed; _keyPressed = 0; - if (((_version <= 2) || (_features & GF_FMTOWNS && _version == 3)) && 315 <= _lastKeyHit && _lastKeyHit < 315+12) { + if (((_version <= 2) || (_platform == Common::kPlatformFMTowns && _version == 3)) && 315 <= _lastKeyHit && _lastKeyHit < 315+12) { // Convert F-Keys for V1/V2 games (they start at 1 instead of at 315) _lastKeyHit -= 314; } @@ -374,7 +374,7 @@ void ScummEngine::processKbd(bool smushMode) { } if (VAR_RESTART_KEY != 0xFF && _lastKeyHit == VAR(VAR_RESTART_KEY) || - (((_version <= 2) || (_features & GF_FMTOWNS && _version == 3)) && _lastKeyHit == 8)) { + (((_version <= 2) || (_platform == Common::kPlatformFMTowns && _version == 3)) && _lastKeyHit == 8)) { confirmRestartDialog(); return; } @@ -392,7 +392,7 @@ void ScummEngine::processKbd(bool smushMode) { return; } - if ((_version <= 2) || (_features & GF_FMTOWNS && _version == 3)) + if ((_version <= 2) || (_platform == Common::kPlatformFMTowns && _version == 3)) saveloadkey = 5; // F5 else if ((_version <= 3) || (_gameId == GID_SAMNMAX) || (_gameId == GID_CMI) || (_heversion >= 72)) saveloadkey = 319; // F5 diff --git a/scumm/insane/insane.cpp b/scumm/insane/insane.cpp index 80ea65f2aa..041cfd0181 100644 --- a/scumm/insane/insane.cpp +++ b/scumm/insane/insane.cpp @@ -54,7 +54,7 @@ Insane::Insane(ScummEngine_v6 *scumm) { initvars(); - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { readFileToMem("roadrash.rip", &_smush_roadrashRip); readFileToMem("roadrsh2.rip", &_smush_roadrsh2Rip); readFileToMem("roadrsh3.rip", &_smush_roadrsh3Rip); @@ -178,7 +178,7 @@ void Insane::initvars(void) { _iactBits[i] = 0; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { init_enemyStruct(EN_ROTT1, EN_ROTT1, 0, 0, 160, 0, INV_MACE, 63, "endcrshr.san", 25, 15, 16, 26, 11, 3); } else { @@ -633,7 +633,7 @@ void Insane::putActors(void) { void Insane::readState(void) { // PATCH - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { _actor[0].inventory[INV_CHAIN] = 0; _actor[0].inventory[INV_CHAINSAW] = 0; _actor[0].inventory[INV_MACE] = 0; @@ -795,7 +795,7 @@ void Insane::prepareScenePropScene(int32 scenePropNum, bool arg_4, bool arg_8) { debugC(DEBUG_INSANE, "Insane::prepareScenePropScene(%d, %d, %d)", scenePropNum, arg_4, arg_8); - if (((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) || !loadScenePropSounds(idx)) + if (((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) || !loadScenePropSounds(idx)) return; _actor[0].defunct = arg_4; @@ -892,7 +892,7 @@ int32 Insane::weaponDamage(int32 actornum) { } void Insane::reinitActors(void) { - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { smlayer_setActorCostume(0, 2, readArray(11)); smlayer_setActorCostume(0, 0, readArray(13)); smlayer_setActorCostume(0, 1, readArray(12)); @@ -1174,7 +1174,7 @@ void Insane::smlayer_setActorLayer(int actornum, int actnum, int layer) { } void Insane::smlayer_setFluPalette(byte *pal, int shut_flag) { - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) return; // if (shut_flag) @@ -1290,7 +1290,7 @@ void Insane::procSKIP(Chunk &b) { int16 par1, par2; _player->_skipNext = false; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { _player->checkBlock(b, TYPE_SKIP, 2); par1 = b.getWord(); if (isBitSet(par1)) diff --git a/scumm/insane/insane_ben.cpp b/scumm/insane/insane_ben.cpp index 15108e04f0..2d12061772 100644 --- a/scumm/insane/insane_ben.cpp +++ b/scumm/insane/insane_ben.cpp @@ -124,7 +124,7 @@ int32 Insane::actionBen(void) { bool doDamage = false; int sound; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) sound = 59; else sound = 95; @@ -565,7 +565,7 @@ void Insane::actor02Reaction(int32 buttons) { if (_actor[0].act[2].frame == 2) { if (_currEnemy != EN_CAVEFISH) { tmp = calcEnemyDamage(1, 1); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { if (tmp == 1) smlayer_startSfx(50); } else { @@ -888,7 +888,7 @@ void Insane::actor02Reaction(int32 buttons) { case INV_2X4: case INV_BOOT: tmp = calcEnemyDamage(1, 1); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { if (tmp == 1) smlayer_startSfx(52); if (tmp == 1000) @@ -1013,7 +1013,7 @@ void Insane::actor02Reaction(int32 buttons) { smlayer_setActorFacing(0, 2, 19, 180); _actor[0].act[2].state = 27; _actor[0].act[2].tilt = calcTilt(_actor[0].tilt); - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) smlayer_startSfx(72); break; case 27: @@ -1056,7 +1056,7 @@ void Insane::actor02Reaction(int32 buttons) { case INV_BOOT: case INV_DUST: tmp = calcEnemyDamage(1, 1); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { if (tmp == 1) smlayer_startSfx(58); if (tmp == 1000) @@ -1175,7 +1175,7 @@ void Insane::actor02Reaction(int32 buttons) { case 36: smlayer_setActorLayer(0, 2, 5); _actor[0].kicking = false; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) smlayer_setActorCostume(0, 2, readArray(17)); else smlayer_setActorCostume(0, 2, readArray(18)); @@ -1221,7 +1221,7 @@ void Insane::actor02Reaction(int32 buttons) { case EN_ROTT1: case EN_ROTT2: case EN_ROTT3: - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) queueSceneSwitch(9, 0, "bencrshe.san", 64, 0, 0, 0); else queueSceneSwitch(9, 0, "wr2_benr.san", 64, 0, 0, 0); @@ -1922,7 +1922,7 @@ void Insane::switchBenWeapon(void) { _actor[0].act[2].state = 34; break; case INV_WRENCH: - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) smlayer_setActorCostume(0, 2, readArray(24)); else smlayer_setActorCostume(0, 2, readArray(25)); @@ -1933,7 +1933,7 @@ void Insane::switchBenWeapon(void) { case INV_BOOT: case INV_HAND: case INV_DUST: - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) smlayer_setActorCostume(0, 2, readArray(11)); else smlayer_setActorCostume(0, 2, readArray(12)); @@ -1984,7 +1984,7 @@ int32 Insane::setBenState(void) { void Insane::ouchSoundBen(void) { _actor[0].act[3].state = 52; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { smlayer_startVoice(54); return; } diff --git a/scumm/insane/insane_enemy.cpp b/scumm/insane/insane_enemy.cpp index d951f77029..a8e1f91cc4 100644 --- a/scumm/insane/insane_enemy.cpp +++ b/scumm/insane/insane_enemy.cpp @@ -1265,7 +1265,7 @@ void Insane::ouchSoundEnemy(void) { _actor[1].act[3].state = 52; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { smlayer_startVoice(55); return; } @@ -1699,7 +1699,7 @@ void Insane::actor12Reaction(int32 buttons) { _actor[1].weaponClass = 1; if (_actor[1].act[2].frame >= 6) { tmp = calcBenDamage(1, 1); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { if (tmp == 1) smlayer_startSfx(50); } else if (tmp == 1) @@ -1871,7 +1871,7 @@ void Insane::actor12Reaction(int32 buttons) { smlayer_setActorFacing(1, 2, 19, 180); _actor[1].act[2].state = 19; _actor[1].act[2].tilt = calcTilt(_actor[1].tilt); - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { smlayer_startSfx(69); if (!_actor[1].field_54) { tmp = _vm->_rnd.getRandomNumber(4); @@ -1935,7 +1935,7 @@ void Insane::actor12Reaction(int32 buttons) { case INV_2X4: case INV_BOOT: tmp = calcBenDamage(1, 1); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { if (tmp == 1) smlayer_startSfx(52); else if (tmp == 1000) @@ -2053,7 +2053,7 @@ void Insane::actor12Reaction(int32 buttons) { _actor[1].kicking = true; if (_actor[1].act[2].frame >= 3) { tmp = calcBenDamage(1, 1); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { if (tmp == 1) smlayer_startSfx(57); } else if (tmp == 1) @@ -2109,7 +2109,7 @@ void Insane::actor12Reaction(int32 buttons) { smlayer_setActorLayer(1, 2, 25); _actor[1].act[2].state = 37; - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { smlayer_startSfx(96); switch (_currEnemy) { case EN_ROTT1: diff --git a/scumm/insane/insane_iact.cpp b/scumm/insane/insane_iact.cpp index 11b3caa377..bd53842e38 100644 --- a/scumm/insane/insane_iact.cpp +++ b/scumm/insane/insane_iact.cpp @@ -323,7 +323,7 @@ void Insane::iactScene4(byte *renderBitmap, int32 codecparam, int32 setupsan12, int32 setupsan13, Chunk &b, int32 size, int32 flags) { _player->checkBlock(b, TYPE_IACT, 8); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) return; int16 par1, par2, par3, par4, par5; diff --git a/scumm/insane/insane_scenes.cpp b/scumm/insane/insane_scenes.cpp index c3e9e7c212..c3b25be260 100644 --- a/scumm/insane/insane_scenes.cpp +++ b/scumm/insane/insane_scenes.cpp @@ -67,14 +67,14 @@ void Insane::runScene(int arraynum) { break; case 2: setupValues(); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) smlayer_setActorCostume(0, 2, readArray(10)); else smlayer_setActorCostume(0, 2, readArray(11)); smlayer_putActor(0, 2, _actor[0].x, _actor[0].y1 + 190, _smlayer_room2); _mainRoadPos = readArray(2); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { initScene(5); startVideo("tovista.san", 1, 32, 12, 0); } else if (_mainRoadPos == _posBrokenTruck) { @@ -141,7 +141,7 @@ void Insane::runScene(int arraynum) { _insaneIsRunning = false; - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { writeArray(50, _actor[0].inventory[INV_CHAIN]); writeArray(51, _actor[0].inventory[INV_CHAINSAW]); writeArray(52, _actor[0].inventory[INV_MACE]); @@ -238,7 +238,7 @@ void Insane::stopSceneSounds(int sceneId) { _actor[1].defunct = 0; _actor[1].scenePropSubIdx = 0; _actor[1].field_54 = 0; - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { smlayer_stopSound(59); smlayer_stopSound(63); } else { @@ -314,7 +314,7 @@ void Insane::shutCurrentScene(void) { // insane_loadSceneData1 & insane_loadSceneData2 int Insane::loadSceneData(int scene, int flag, int phase) { - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) return 1; int retvalue = 1; @@ -648,7 +648,7 @@ void Insane::setSceneCostumes(int sceneId) { case 4: case 5: case 6: - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) smlayer_setActorCostume(0, 2, readArray(10)); else smlayer_setActorCostume(0, 2, readArray(11)); @@ -668,7 +668,7 @@ void Insane::setEnemyCostumes(void) { debugC(DEBUG_INSANE, "setEnemyCostumes(%d)", _currEnemy); - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) { + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) { smlayer_setActorCostume(0, 2, readArray(11)); smlayer_setActorCostume(0, 0, readArray(13)); smlayer_setActorCostume(0, 1, readArray(12)); @@ -1132,7 +1132,7 @@ void Insane::postCase20(byte *renderBitmap, int32 codecparam, int32 setupsan12, void Insane::postCase3(byte *renderBitmap, int32 codecparam, int32 setupsan12, int32 setupsan13, int32 curFrame, int32 maxFrame) { - if ((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC)) + if ((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC)) turnBen(false); else turnBen(true); diff --git a/scumm/object.cpp b/scumm/object.cpp index 0d48f3efea..9e350e567d 100644 --- a/scumm/object.cpp +++ b/scumm/object.cpp @@ -352,7 +352,7 @@ int ScummEngine::findObject(int x, int y) { } while ((_objs[b].state & mask) == a); } - if ((_features & GF_NES) && (_userState & 0x40) && (v2_mouseover_box >= 0) && + if ((_platform == Common::kPlatformNES) && (_userState & 0x40) && (v2_mouseover_box >= 0) && (v2_mouseover_box < 4)) return findInventory(VAR(VAR_EGO), v2_mouseover_box + _inventoryOffset + 1); @@ -487,7 +487,7 @@ void ScummEngine::drawObject(int obj, int arg) { byte flags = od.flags | Gdi::dbObjectMode; if (_version == 1) { - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { gdi.decodeNESObject(ptr, xpos, ypos, width, height); } } diff --git a/scumm/resource.cpp b/scumm/resource.cpp index ec13c66353..9b96557b13 100644 --- a/scumm/resource.cpp +++ b/scumm/resource.cpp @@ -138,7 +138,7 @@ void ScummEngine::openRoom(const int room) { } // If we have substitute - if (_substResFileNameIndex > 0 && !(_features & GF_NES)) { + if (_substResFileNameIndex > 0 && !(_platform == Common::kPlatformNES)) { char tmpBuf[128]; generateSubstResFileName(buf, tmpBuf, sizeof(tmpBuf)); @@ -646,7 +646,7 @@ int ScummEngine::loadResource(int type, int idx) { _fileHandle->seek(fileOffs + _fileOffset, SEEK_SET); if (_features & GF_OLD_BUNDLE) { - if ((_version == 3) && !(_features & GF_AMIGA) && (type == rtSound)) { + if ((_version == 3) && !(_platform == Common::kPlatformAmiga) && (type == rtSound)) { return readSoundResourceSmallHeader(type, idx); } else { size = _fileHandle->readUint16LE(); @@ -658,7 +658,7 @@ int ScummEngine::loadResource(int type, int idx) { size = _fileHandle->readUint32LE(); tag = _fileHandle->readUint16LE(); _fileHandle->seek(-6, SEEK_CUR); - if ((type == rtSound) && !(_features & GF_AMIGA) && !(_features & GF_FMTOWNS)) { + if ((type == rtSound) && !(_platform == Common::kPlatformAmiga) && !(_platform == Common::kPlatformFMTowns)) { return readSoundResourceSmallHeader(type, idx); } } else { @@ -1073,7 +1073,7 @@ void ScummEngine_v7::readMAXS(int blockSize) { _objectRoomTable = (byte *)calloc(_numGlobalObjects, 1); if ((_gameId == GID_FT) && (_features & GF_DEMO) && - (_features & GF_PC)) + (_platform == Common::kPlatformPC)) _numGlobalScripts = 300; else _numGlobalScripts = 2000; diff --git a/scumm/resource_v2.cpp b/scumm/resource_v2.cpp index a0ab105ec1..00f2628023 100644 --- a/scumm/resource_v2.cpp +++ b/scumm/resource_v2.cpp @@ -35,13 +35,13 @@ void ScummEngine_v2::readClassicIndexFile() { int i; if (_gameId == GID_MANIAC) { - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) _numGlobalObjects = 775; else _numGlobalObjects = 800; _numRooms = 55; - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) // costumes 25-36 are special. see v1MMNEScostTables[] in costume.cpp // costumes 37-76 are room graphics resources // costume 77 is a character set translation table @@ -169,7 +169,7 @@ void ScummEngine_v2::readIndexFile() { readClassicIndexFile(); break; case 0x4643: - if (!(_features & GF_NES)) + if (!(_platform == Common::kPlatformNES)) error("Use maniac target"); printf("NES V1 game detected\n"); _version = 1; diff --git a/scumm/resource_v4.cpp b/scumm/resource_v4.cpp index a17b0ef7eb..2b63dc0d4f 100644 --- a/scumm/resource_v4.cpp +++ b/scumm/resource_v4.cpp @@ -121,7 +121,7 @@ void ScummEngine_v4::readIndexFile() { default: // FIXME: this is a little hack because Indy3 FM-TOWNS has // 32 extra bytes of unknown meaning appended to 00.LFL - if (!(_gameId == GID_INDY3 && _features & GF_FMTOWNS)) + if (!(_gameId == GID_INDY3 && _platform == Common::kPlatformFMTowns)) error("Bad ID %c%c found in directory!", blocktype & 0xFF, blocktype >> 8); return; } diff --git a/scumm/room.cpp b/scumm/room.cpp index 209e5c0eed..459c96c1bb 100644 --- a/scumm/room.cpp +++ b/scumm/room.cpp @@ -553,7 +553,7 @@ void ScummEngine_v3old::initRoomSubBlocks() { rmhd = (const RoomHeader *)(roomptr + 4); if (_version == 1) { - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { _roomWidth = READ_LE_UINT16(&(rmhd->old.width)) * 8; _roomHeight = READ_LE_UINT16(&(rmhd->old.height)) * 8; diff --git a/scumm/saveload.cpp b/scumm/saveload.cpp index e41e6df51c..f488eec4bd 100644 --- a/scumm/saveload.cpp +++ b/scumm/saveload.cpp @@ -248,7 +248,7 @@ bool ScummEngine::loadState(int slot, bool compat) { // ever add options for using different 16-colour palettes. if (_version == 1) { if (_gameId == GID_MANIAC) - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) setupNESPalette(); else setupV1ManiacPalette(); @@ -274,7 +274,7 @@ bool ScummEngine::loadState(int slot, bool compat) { break; default: - if ((_features & GF_AMIGA) || (_features & GF_ATARI_ST)) + if ((_platform == Common::kPlatformAmiga) || (_platform == Common::kPlatformAtariST)) setupAmigaPalette(); else setupEGAPalette(); @@ -753,7 +753,7 @@ void ScummEngine::saveOrLoad(Serializer *s, uint32 savegameVersion) { } } - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) if (savegameVersion < VER(47)) NES_loadCostumeSet(_NESCostumeSet = 0); else diff --git a/scumm/script.cpp b/scumm/script.cpp index ff97f325ca..8f631dee6f 100644 --- a/scumm/script.cpp +++ b/scumm/script.cpp @@ -524,12 +524,12 @@ int ScummEngine::readVar(uint var) { return _roomVars[var]; } else if ((_gameId == GID_ZAK256) || (_features & GF_OLD_BUNDLE) || - (_gameId == GID_LOOM && (_features & GF_FMTOWNS))) { + (_gameId == GID_LOOM && (_platform == Common::kPlatformFMTowns))) { int bit = var & 0xF; var = (var >> 4) & 0xFF; if (!_copyProtection) { - if (_gameId == GID_LOOM && (_features & GF_FMTOWNS) && var == 214 && bit == 15) { + if (_gameId == GID_LOOM && (_platform == Common::kPlatformFMTowns) && var == 214 && bit == 15) { return 0; } else if (_gameId == GID_ZAK256 && var == 151 && bit == 8) { return 0; @@ -541,7 +541,7 @@ int ScummEngine::readVar(uint var) { } else { var &= 0x7FFF; if (!_copyProtection) { - if (_gameId == GID_INDY3 && (_features & GF_FMTOWNS) && var == 1508) + if (_gameId == GID_INDY3 && (_platform == Common::kPlatformFMTowns) && var == 1508) return 0; } @@ -607,7 +607,7 @@ void ScummEngine::writeVar(uint var, int value) { _roomVars[var] = value; } else if ((_gameId == GID_ZAK256) || (_features & GF_OLD_BUNDLE) || - (_gameId == GID_LOOM && (_features & GF_FMTOWNS))) { + (_gameId == GID_LOOM && (_platform == Common::kPlatformFMTowns))) { // In the old games, the bit variables were using the same memory // as the normal variables! int bit = var & 0xF; diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp index ddfd88bf54..810f136ca9 100644 --- a/scumm/script_v2.cpp +++ b/scumm/script_v2.cpp @@ -414,7 +414,7 @@ void ScummEngine_v2::decodeParseString() { int textSlot = 0; _string[textSlot].xpos = 0; _string[textSlot].ypos = 0; - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) _string[textSlot].right = 256; else _string[textSlot].right = 320; @@ -524,7 +524,7 @@ void ScummEngine_v2::o2_setObjPreposition() { int obj = getVarOrDirectWord(PARAM_1); int unk = fetchScriptByte(); - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) return; if (whereIsObject(obj) != WIO_NOT_FOUND) { @@ -825,7 +825,7 @@ void ScummEngine_v2::o2_verbOps() { slot = getVarOrDirectByte(PARAM_1) + 1; int prep = fetchScriptByte(); // Only used in V1? // V1 Maniac verbs are relative to the 'verb area' - under the sentence - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) x += 8; else if ((_gameId == GID_MANIAC) && (_version == 1)) y += 8; @@ -838,7 +838,7 @@ void ScummEngine_v2::o2_verbOps() { vs = &_verbs[slot]; vs->verbid = verb; - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { vs->color = 1; vs->hicolor = 1; vs->dimcolor = 1; @@ -981,7 +981,7 @@ void ScummEngine_v2::o2_drawSentence() { const byte *temp; int slot = getVerbSlot(VAR(VAR_SENTENCE_VERB), 0); - if (!((_userState & 32) || (_features & GF_NES && _userState & 0xe0))) + if (!((_userState & 32) || (_platform == Common::kPlatformNES && _userState & 0xe0))) return; if (getResourceAddress(rtVerb, slot)) @@ -998,7 +998,7 @@ void ScummEngine_v2::o2_drawSentence() { // For V1 games, the engine must compute the preposition. // In all other Scumm versions, this is done by the sentence script. - if ((_gameId == GID_MANIAC && _version == 1 && !(_features & GF_NES)) && (VAR(VAR_SENTENCE_PREPOSITION) == 0)) { + if ((_gameId == GID_MANIAC && _version == 1 && !(_platform == Common::kPlatformNES)) && (VAR(VAR_SENTENCE_PREPOSITION) == 0)) { if (_verbs[slot].prep == 0xFF) { byte *ptr = getOBCDFromObject(VAR(VAR_SENTENCE_OBJECT1)); assert(ptr); @@ -1026,7 +1026,7 @@ void ScummEngine_v2::o2_drawSentence() { { " ", " in", " with", " on", " to" } // Korean }; int lang = (_language <= 8) ? _language : 0; // Default to english - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { strcat(sentence, (const char *)(getResourceAddress(rtCostume, 78) + VAR(VAR_SENTENCE_PREPOSITION) * 8 + 2)); } else strcat(sentence, prepositions[lang][VAR(VAR_SENTENCE_PREPOSITION)]); @@ -1043,7 +1043,7 @@ void ScummEngine_v2::o2_drawSentence() { _string[2].charset = 1; _string[2].ypos = virtscr[2].topline; _string[2].xpos = 0; - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { _string[2].xpos = 16; _string[2].color = 0; } else if (_version == 1) @@ -1065,7 +1065,7 @@ void ScummEngine_v2::o2_drawSentence() { ptr++; } - if (_features & GF_NES) { // TODO - get multiline sentences working + if (_platform == Common::kPlatformNES) { // TODO - get multiline sentences working sentenceline.top = virtscr[2].topline; sentenceline.bottom = virtscr[2].topline + 16; sentenceline.left = 16; @@ -1292,7 +1292,7 @@ void ScummEngine_v2::o2_lights() { c = fetchScriptByte(); if (c == 0) { - if (_gameId == GID_MANIAC && _version == 1 && !(_features & GF_NES)) { + if (_gameId == GID_MANIAC && _version == 1 && !(_platform == Common::kPlatformNES)) { // Convert older light mode values into // equivalent values.of later games // 0 Darkness @@ -1448,7 +1448,7 @@ void ScummEngine_v2::o2_endCutscene() { // Reset user state to values before cutscene setUserState(vm.cutSceneData[0] | 7); - if ((_gameId == GID_MANIAC) && !(_features & GF_NES)) { + if ((_gameId == GID_MANIAC) && !(_platform == Common::kPlatformNES)) { camera._mode = (byte) vm.cutSceneData[3]; if (camera._mode == kFollowActorCameraMode) { actorFollowCamera(VAR(VAR_EGO)); @@ -1496,7 +1496,7 @@ void ScummEngine_v2::o2_pickupObject() { clearDrawObjectQueue(); runInventoryScript(1); - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) _sound->addSoundToQueue(51); // play 'pickup' sound } @@ -1513,7 +1513,7 @@ void ScummEngine_v2::o2_cursorCommand() { // TODO: Define the magic numbers void ScummEngine_v2::setUserState(byte state) { if (state & 4) { // Userface - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) _userState = (_userState & ~0xE0) | (state & 0xE0); else _userState = state & (32 | 64 | 128); @@ -1527,7 +1527,7 @@ void ScummEngine_v2::setUserState(byte state) { } if (state & 2) { // Cursor Show/Hide - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) _userState = (_userState & ~0x10) | (state & 0x10); if (state & 16) { _userPut = 1; @@ -1542,7 +1542,7 @@ void ScummEngine_v2::setUserState(byte state) { Common::Rect rect; rect.top = virtscr[2].topline; rect.bottom = virtscr[2].topline + 8 * 88; - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { rect.left = 16; rect.right = 255; } else { @@ -1572,7 +1572,7 @@ void ScummEngine_v2::o2_dummy() { void ScummEngine_v2::o2_switchCostumeSet() { // NES version of maniac uses this to switch between the two // groups of costumes it has - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) NES_loadCostumeSet(fetchScriptByte()); else o2_dummy(); diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp index dfdd5b18e0..fd35a7117e 100644 --- a/scumm/script_v5.cpp +++ b/scumm/script_v5.cpp @@ -1099,7 +1099,7 @@ void ScummEngine_v5::o5_getActorX() { int a; getResultPos(); - if ((_gameId == GID_INDY3) && !(_features & GF_MACINTOSH)) + if ((_gameId == GID_INDY3) && !(_platform == Common::kPlatformMacintosh)) a = getVarOrDirectByte(PARAM_1); else a = getVarOrDirectWord(PARAM_1); @@ -1111,7 +1111,7 @@ void ScummEngine_v5::o5_getActorY() { int a; getResultPos(); - if ((_gameId == GID_INDY3) && !(_features & GF_MACINTOSH)) { + if ((_gameId == GID_INDY3) && !(_platform == Common::kPlatformMacintosh)) { a = getVarOrDirectByte(PARAM_1); // WORKAROUND bug #636433 (can't get into Zeppelin) @@ -1138,7 +1138,7 @@ void ScummEngine_v5::o5_saveLoadGame() { slot = 1; if (a == 1) _opcode = 0x40; - else if ((a == 2) || (_features & GF_NES)) + else if ((a == 2) || (_platform == Common::kPlatformNES)) _opcode = 0x80; } else { _opcode = a & 0xE0; @@ -1407,7 +1407,7 @@ void ScummEngine_v5::o5_lessOrEqual() { int16 b = getVarOrDirectWord(PARAM_1); // WORKAROUND bug #820507 : Work around a bug in Indy3Town. - if (_gameId == GID_INDY3 && (_features & GF_FMTOWNS) && + if (_gameId == GID_INDY3 && (_platform == Common::kPlatformFMTowns) && (vm.slot[_currentScript].number == 200 || vm.slot[_currentScript].number == 203) && _currentRoom == 70 && b == -256) { o5_jumpRelative(); @@ -1698,7 +1698,7 @@ void ScummEngine_v5::o5_resourceRoutines() { _opcode = fetchScriptByte(); if (_opcode != 17) resid = getVarOrDirectByte(PARAM_1); - if (!(_features & GF_FMTOWNS)) { + if (!(_platform == Common::kPlatformFMTowns)) { // FIXME - this probably can be removed eventually, I don't think the following // check will ever be triggered, but then I could be wrong and it's better // to play it safe. @@ -2106,7 +2106,7 @@ void ScummEngine_v5::o5_setVarRange() { } void ScummEngine_v5::o5_startMusic() { - if (_features & GF_FMTOWNS && _version == 3) { + if (_platform == Common::kPlatformFMTowns && _version == 3) { // In FM-TOWNS games this is some kind of Audio CD status query function. // See also bug #762589 (thanks to Hibernatus for providing the information). getResultPos(); @@ -2348,7 +2348,7 @@ void ScummEngine_v5::o5_verbOps() { vs->curRect.left = getVarOrDirectWord(PARAM_1); vs->curRect.top = getVarOrDirectWord(PARAM_2); // Macintosh verison of indy3ega used different interface, so adjust values. - if ((_features & GF_MACINTOSH) && (_gameId == GID_INDY3)) { + if ((_platform == Common::kPlatformMacintosh) && (_gameId == GID_INDY3)) { if ((verb > 0) && (verb < 14) || (verb > 31) && (verb < 35)) { switch (verb) { case 1: @@ -2482,7 +2482,7 @@ void ScummEngine_v5::o5_verbOps() { void ScummEngine_v5::o5_wait() { const byte *oldaddr = _scriptPointer - 1; - if ((_gameId == GID_INDY3) && !(_features & GF_MACINTOSH)) { + if ((_gameId == GID_INDY3) && !(_platform == Common::kPlatformMacintosh)) { _opcode = 2; } else _opcode = fetchScriptByte(); @@ -2745,7 +2745,7 @@ void ScummEngine_v5::o5_oldRoomEffect() { a = getVarOrDirectWord(PARAM_1); #if 1 - if (_features & GF_FMTOWNS && _version == 3) { + if (_platform == Common::kPlatformFMTowns && _version == 3) { // FIXME / TODO: OK the first thing to note is: at least in Zak256, // maybe also in other games, this opcode does a bit more. I added // some stubs here, but somebody with a full IDA or more knowledge diff --git a/scumm/script_v6.cpp b/scumm/script_v6.cpp index d7a78cef37..66db6204c6 100644 --- a/scumm/script_v6.cpp +++ b/scumm/script_v6.cpp @@ -2505,14 +2505,14 @@ void ScummEngine_v6::o6_kernelSetFunctions() { SmushPlayer *sp = new SmushPlayer(this, speed); // Correct incorrect smush filename in Macintosh FT demo - if ((_gameId == GID_FT) && (_features & GF_DEMO) && (_features & GF_MACINTOSH) && + if ((_gameId == GID_FT) && (_features & GF_DEMO) && (_platform == Common::kPlatformMacintosh) && (strcmp((char *)getStringAddressVar(VAR_VIDEONAME), "jumpgorge.san") == 0)) sp->play("jumpgorg.san"); else sp->play((char *)getStringAddressVar(VAR_VIDEONAME)); delete sp; } else if (_gameId == GID_FT) { - const int insaneVarNum = ((_features & GF_DEMO) && (_features & GF_PC)) + const int insaneVarNum = ((_features & GF_DEMO) && (_platform == Common::kPlatformPC)) ? 232 : 233; _insaneRunning = true; diff --git a/scumm/script_v6he.cpp b/scumm/script_v6he.cpp index a3aabf3c29..ee21de7efe 100644 --- a/scumm/script_v6he.cpp +++ b/scumm/script_v6he.cpp @@ -1093,7 +1093,7 @@ void ScummEngine_v60he::o60_readFile() { int val; // Fatty Bear uses positive values - if ((_features & GF_PC) && (_gameId == GID_FBEAR)) + if ((_platform == Common::kPlatformPC) && (_gameId == GID_FBEAR)) size = -size; if (size == -2) { @@ -1121,7 +1121,7 @@ void ScummEngine_v60he::o60_writeFile() { int slot = pop(); // Fatty Bear uses positive values - if ((_features & GF_PC) && (_gameId == GID_FBEAR)) + if ((_platform == Common::kPlatformPC) && (_gameId == GID_FBEAR)) size = -size; if (size == -2) { diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 21057468ff..f2b31a4bb5 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -112,16 +112,16 @@ static const ScummGameSettings scumm_settings[] = { {"indy3EGA", "Indiana Jones and the Last Crusade", GID_INDY3, 3, 0, 13, MDT_PCSPK | MDT_ADLIB, GF_SMALL_HEADER | GF_NO_SCALING | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE, Common::kPlatformUnknown, 0, 0}, {"indy3Towns", "Indiana Jones and the Last Crusade (FM-TOWNS)", GID_INDY3, 3, 0, 13, MDT_TOWNS, - GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_FEW_LOCALS | GF_FMTOWNS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, 0, 0}, + GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_FEW_LOCALS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, 0, 0}, {"indy3", "Indiana Jones and the Last Crusade (256)", GID_INDY3, 3, 0, 13, MDT_PCSPK | MDT_ADLIB, GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_FEW_LOCALS, Common::kPlatformUnknown, 0, 0}, {"zakTowns", "Zak McKracken and the Alien Mindbenders (FM-TOWNS)", GID_ZAK256, 3, 0, 13, MDT_TOWNS, - GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_FMTOWNS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, 0, 0}, + GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, 0, 0}, {"loom", "Loom", GID_LOOM, 3, 0, 13, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, GF_SMALL_HEADER | GF_NO_SCALING | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE, Common::kPlatformUnknown, 0, 0}, {"loomTowns", "Loom (FM Towns)", GID_LOOM, 3, 0, 13, MDT_TOWNS, - GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_FMTOWNS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, 0, 0}, + GF_SMALL_HEADER | GF_NO_SCALING | GF_OLD256 | GF_AUDIOTRACKS, Common::kPlatformFMTowns, 0, 0}, /* Scumm Version 4 */ {"monkeyEGA", "Monkey Island 1 (EGA)", GID_MONKEY_EGA, 4, 0, 13, MDT_PCSPK | MDT_ADLIB | MDT_NATIVE, @@ -400,9 +400,9 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformUnknown, 0, 0}, // Football2002 {"179879b6e35c1ead0d93aab26db0951b", "Fatty Bear's Birthday Surprise (Windows)", GID_FBEAR, 6, 70, 13, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_WINDOWS, Common::kPlatformWindows, 0, 0}, + GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows, 0, 0}, {"22c9eb04455440131ffc157aeb8d40a8", "Fatty Bear's Birthday Surprise (Windows Demo)", GID_FBEAR, 6, 70, 13, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_WINDOWS, Common::kPlatformWindows, 0, 0}, + GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows, 0, 0}, {"d4cccb5af88f3e77f370896e9ba8c5f9", "Freddi Fish 1: The Case of the Missing Kelp Seeds", GID_HEGAME, 6, 71, 30, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformUnknown, 0, 0}, @@ -438,13 +438,13 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformUnknown, 0, 0}, {"d8d07efcb88f396bee0b402b10c3b1c9", "Maniac Mansion (NES E)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, Common::kPlatformNES, 0, "Maniac Mansion (E).prg"}, + GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformNES, 0, "Maniac Mansion (E).prg"}, {"81bbfa181184cb494e7a81dcfa94fbd9", "Maniac Mansion (NES F)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, Common::kPlatformNES, 0, "Maniac Mansion (F).prg"}, + GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformNES, 0, "Maniac Mansion (F).prg"}, {"22d07d6c386c9c25aca5dac2a0c0d94b", "Maniac Mansion (NES SW)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, Common::kPlatformNES, 0, "Maniac Mansion (SW).prg"}, + GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformNES, 0, "Maniac Mansion (SW).prg"}, {"3905799e081b80a61d4460b7b733c206", "Maniac Mansion (NES U)", GID_MANIAC, 1, 0, 25, MDT_NONE, - GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING | GF_NES, Common::kPlatformNES, 0, "Maniac Mansion (U).prg"}, + GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformNES, 0, "Maniac Mansion (U).prg"}, {"7f45ddd6dbfbf8f80c0c0efea4c295bc", "Maniac Mansion (v1)", GID_MANIAC, 1, 0, 25, MDT_PCSPK, GF_SMALL_HEADER | GF_USE_KEY | GF_16COLOR | GF_OLD_BUNDLE | GF_NO_SCALING, Common::kPlatformUnknown, 0, 0}, @@ -464,14 +464,14 @@ static const ScummGameSettings multiple_versions_md5_settings[] = { GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformUnknown, 0, 0}, // 500demo {"9c92eeaf517a31b7221ec2546ab669fd", "Putt-Putt Goes To The Moon (Windows)", GID_HEGAME, 6, 70, 13, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_WINDOWS, Common::kPlatformWindows, 0, 0}, + GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows, 0, 0}, {"9c143c5905055d5df7a0f014ab379aee", "Putt-Putt Goes To The Moon (Windows Demo)", GID_HEGAME, 6, 70, 13, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_WINDOWS, Common::kPlatformWindows, 0, 0}, + GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows, 0, 0}, {"0b3222aaa7efcf283eb621e0cefd26cc", "Putt-Putt Joins The Parade (early version)", GID_HEGAME, 6, 0, 13, MDT_ADLIB | MDT_NATIVE, GF_USE_KEY, Common::kPlatformUnknown, 0, 0}, {"6a30a07f353a75cdc602db27d73e1b42", "Putt-Putt Joins The Parade (Windows)", GID_HEGAME, 6, 70, 13, MDT_NONE, - GF_USE_KEY | GF_NEW_COSTUMES | GF_WINDOWS, Common::kPlatformWindows, 0, 0}, + GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformWindows, 0, 0}, {"37ff1b308999c4cca7319edfcc1280a0", "Putt-Putt Joins The Parade (Windows Demo)", GID_HEGAME, 6, 70, 13, MDT_NONE, GF_USE_KEY | GF_NEW_COSTUMES, Common::kPlatformUnknown, 0, 0}, @@ -642,13 +642,13 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS printf("Unknown MD5 (%s)! Please report the details (language, platform, etc.) of this game to the ScummVM team\n", md5str); // Add default file directories. - if (((_features & GF_AMIGA) || (_features & GF_ATARI_ST)) && (_version <= 4)) { + if (((_platform == Common::kPlatformAmiga) || (_platform == Common::kPlatformAtariST)) && (_version <= 4)) { // This is for the Amiga version of Indy3/Loom/Maniac/Zak File::addDefaultDirectory(_gameDataPath + "ROOMS/"); File::addDefaultDirectory(_gameDataPath + "rooms/"); } - if ((_features & GF_MACINTOSH) && (_version == 3)) { + if ((_platform == Common::kPlatformMacintosh) && (_version == 3)) { // This is for the Mac version of Indy3/Loom File::addDefaultDirectory(_gameDataPath + "Rooms 1/"); File::addDefaultDirectory(_gameDataPath + "Rooms 2/"); @@ -687,7 +687,7 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS // We read data directly from NES ROM instead of extracting it with // external tool - if ((_features & GF_NES) && (_substResFileNameIndex || gs.detectFilename)) + if ((_platform == Common::kPlatformNES) && (_substResFileNameIndex || gs.detectFilename)) _fileHandle = new ScummNESFile(); else _fileHandle = new ScummFile(); @@ -1139,13 +1139,13 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _features |= GF_DEFAULT_TO_1X_SCALER; } - if (_features & GF_FMTOWNS && _version == 3) { // FM-TOWNS V3 games use 320x240 + if (_platform == Common::kPlatformFMTowns && _version == 3) { // FM-TOWNS V3 games use 320x240 _screenWidth = 320; _screenHeight = 240; } else if (_features & GF_DEFAULT_TO_1X_SCALER) { _screenWidth = 640; _screenHeight = 480; - } else if (_features & GF_NES) { + } else if (_platform == Common::kPlatformNES) { _screenWidth = 256; _screenHeight = 240; } else if (_renderMode == Common::kRenderHercA || _renderMode == Common::kRenderHercG) { @@ -1322,7 +1322,7 @@ int ScummEngine::init(GameDetector &detector) { loadCJKFont(); // Create the charset renderer - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) _charset = new CharsetRendererNES(this, _language); else if (_version <= 2) _charset = new CharsetRendererV2(this, _language); @@ -1337,7 +1337,7 @@ int ScummEngine::init(GameDetector &detector) { if (_features & GF_NEW_COSTUMES) { _costumeRenderer = new AkosRenderer(this); _costumeLoader = new AkosCostumeLoader(this); - } else if (_features & GF_NES) { + } else if (_platform == Common::kPlatformNES) { _costumeRenderer = new NESCostumeRenderer(this); _costumeLoader = new NESCostumeLoader(this); } else { @@ -1413,7 +1413,7 @@ int ScummEngine::init(GameDetector &detector) { // Since MM NES substitutes whole file class we get monster.sou file // name badly generated, so avoid even attempts to open it - if (!(_features & GF_NES)) + if (!(_platform == Common::kPlatformNES)) _sound->setupSound(); // Create debugger @@ -1429,7 +1429,7 @@ void ScummEngine::scummInit() { _tempMusic = 0; debug(9, "scummInit"); - if ((_gameId == GID_MANIAC) && (_version == 1) && !(_features & GF_NES)) { + if ((_gameId == GID_MANIAC) && (_version == 1) && !(_platform == Common::kPlatformNES)) { initScreens(16, 152); } else if (_version >= 7 || _heversion >= 71) { initScreens(0, _screenHeight); @@ -1448,7 +1448,7 @@ void ScummEngine::scummInit() { // Original games used some kind of dynamic // color table remapping between rooms if (_gameId == GID_MANIAC) { - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) setupNESPalette(); else setupV1ManiacPalette(); @@ -1477,7 +1477,7 @@ void ScummEngine::scummInit() { break; default: - if ((_features & GF_AMIGA) || (_features & GF_ATARI_ST)) + if ((_platform == Common::kPlatformAmiga) || (_platform == Common::kPlatformAtariST)) setupAmigaPalette(); else setupEGAPalette(); @@ -1544,7 +1544,7 @@ void ScummEngine::scummInit() { VAR(VAR_CAMERA_ACCEL_X) = 100; VAR(VAR_CAMERA_ACCEL_Y) = 100; } else if (!(_features & GF_NEW_CAMERA)) { - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { camera._leftTrigger = 6; // 6 camera._rightTrigger = 21; // 25 } else { @@ -1596,7 +1596,7 @@ void ScummEngine::scummInit() { clearDrawObjectQueue(); - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) decodeNESBaseTiles(); for (i = 0; i < 6; i++) { @@ -1624,7 +1624,7 @@ void ScummEngine::scummInit() { void ScummEngine_v2::scummInit() { ScummEngine::scummInit(); - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { initNESMouseOver(); _switchRoomEffect2 = _switchRoomEffect = 6; } else { @@ -1714,13 +1714,13 @@ void ScummEngine::setupMusic(int midi) { // Init iMuse if (_features & GF_DIGI_IMUSE) { _musicEngine = _imuseDigital = new IMuseDigital(this, 10); - } else if (_features & GF_NES) { + } else if (_platform == Common::kPlatformNES) { _musicEngine = new Player_NES(this); - } else if ((_features & GF_AMIGA) && (_version == 2)) { + } else if ((_platform == Common::kPlatformAmiga) && (_version == 2)) { _musicEngine = new Player_V2A(this); - } else if ((_features & GF_AMIGA) && (_version == 3)) { + } else if ((_platform == Common::kPlatformAmiga) && (_version == 3)) { _musicEngine = new Player_V3A(this); - } else if ((_features & GF_AMIGA) && (_version < 5)) { + } else if ((_platform == Common::kPlatformAmiga) && (_version < 5)) { _musicEngine = NULL; } else if (_gameId == GID_MANIAC && (_version == 1)) { _musicEngine = new Player_V1(this, _midiDriver != MD_PCSPK); @@ -1902,7 +1902,7 @@ int ScummEngine::scummLoop(int delta) { VAR(VAR_VIRT_MOUSE_Y) = _virtualMouse.y / 2; // Adjust mouse coordinates as narrow rooms in NES are centered - if (_features & GF_NES && _NESStartStrip > 0) { + if (_platform == Common::kPlatformNES && _NESStartStrip > 0) { VAR(VAR_VIRT_MOUSE_X) -= 2; if (VAR(VAR_VIRT_MOUSE_X) < 0) VAR(VAR_VIRT_MOUSE_X) = 0; @@ -2003,11 +2003,11 @@ load_game: memset(args, 0, sizeof(args)); args[0] = 2; - if (_features & GF_MACINTOSH) + if (_platform == Common::kPlatformMacintosh) value = 105; else value = (_gameId == GID_LOOM256) ? 150 : 100; - byte restoreScript = (_features & GF_FMTOWNS) ? 17 : 18; + byte restoreScript = (_platform == Common::kPlatformFMTowns) ? 17 : 18; // if verbs should be shown restore them if (VAR(value) == 2) runScript(restoreScript, 0, 0, args); @@ -2397,7 +2397,7 @@ DetectedGameList Engine_SCUMM_detectGames(const FSList &fslist) { } else if (g->heversion >= 60) { strcpy(detectName, base); strcat(detectName, ".he0"); - } else if (g->features & GF_NES) { + } else if (g->platform == Common::kPlatformNES) { strcpy(detectName, base); } else { strcpy(detectName, base); @@ -2692,7 +2692,6 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) { if (substLastIndex > 0) { if (substResFileNameTable[substLastIndex].genMethod == kGenMac || substResFileNameTable[substLastIndex].genMethod == kGenMacNoParens) - game.features |= GF_MACINTOSH; game.platform = Common::kPlatformMacintosh; } @@ -2728,35 +2727,9 @@ Engine *Engine_SCUMM_create(GameDetector *detector, OSystem *syst) { // -> potentially might cause troubles with FM-Towns/amiga versions? if (ConfMan.hasKey("platform")) game.platform = Common::parsePlatform(ConfMan.get("platform")); - else - game.platform = Common::kPlatformPC; - switch (game.platform) { - case Common::kPlatformAmiga: - game.features |= GF_AMIGA; - break; - case Common::kPlatformAtariST: - game.features |= GF_ATARI_ST; - break; - case Common::kPlatformMacintosh: - game.features |= GF_MACINTOSH; - break; - case Common::kPlatformNES: - game.features |= GF_NES; - break; - case Common::kPlatformWindows: - game.features |= GF_WINDOWS; - break; - case Common::kPlatformFMTowns: - game.features |= GF_FMTOWNS; - if (game.version == 3) { - game.midi = MDT_TOWNS; - } - break; - default: - if (!(game.features & GF_FMTOWNS)) - game.features |= GF_PC; - break; + if (game.platform == Common::kPlatformFMTowns && game.version == 3) { + game.midi = MDT_TOWNS; } // Special cases for HE games diff --git a/scumm/scumm.h b/scumm/scumm.h index 016aa1d487..64b144e1a2 100644 --- a/scumm/scumm.h +++ b/scumm/scumm.h @@ -120,18 +120,8 @@ enum GameFeatures { /** Games with multiple versions */ GF_MULTIPLE_VERSIONS = 1 << 13, -#if 1 - // TODO: Remove this in favor of using _platform ! - GF_FMTOWNS = 1 << 14, - GF_AMIGA = 1 << 15, - GF_NES = 1 << 16, - GF_ATARI_ST = 1 << 17, - GF_MACINTOSH = 1 << 18, - GF_PC = 1 << 19, - GF_WINDOWS = 1 << 20, -#endif - - GF_DEMO = 1 << 21 + /** A demo, not a full blown game. */ + GF_DEMO = 1 << 14 }; /* SCUMM Debug Channels */ diff --git a/scumm/smush/smush_player.cpp b/scumm/smush/smush_player.cpp index d879a710f3..883cf43e2c 100644 --- a/scumm/smush/smush_player.cpp +++ b/scumm/smush/smush_player.cpp @@ -984,13 +984,13 @@ void SmushPlayer::setupAnim(const char *file) { handleAnimHeader(*sub); if (_insanity) { - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) readString("mineroad.trs"); } else readString(file); if (_vm->_gameId == GID_FT) { - if (!((_vm->_features & GF_DEMO) && (_vm->_features & GF_PC))) { + if (!((_vm->_features & GF_DEMO) && (_vm->_platform == Common::kPlatformPC))) { _sf[0] = new SmushFont(true, false); _sf[1] = new SmushFont(true, false); _sf[2] = new SmushFont(true, false); diff --git a/scumm/sound.cpp b/scumm/sound.cpp index 7b5592f310..0f8009f422 100644 --- a/scumm/sound.cpp +++ b/scumm/sound.cpp @@ -427,7 +427,7 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) { memcpy(sound, ptr + 6, size); _vm->_mixer->playRaw(NULL, sound, size, rate, flags, soundID); } - else if ((_vm->_features & GF_FMTOWNS && _vm->_version == 3) || READ_UINT32(ptr) == MKID('SOUN') || READ_UINT32(ptr) == MKID('TOWS')) { + else if ((_vm->_platform == Common::kPlatformFMTowns && _vm->_version == 3) || READ_UINT32(ptr) == MKID('SOUN') || READ_UINT32(ptr) == MKID('TOWS')) { bool tows = READ_UINT32(ptr) == MKID('TOWS'); if (_vm->_version == 3) { @@ -511,7 +511,7 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) { break; } } - else if ((_vm->_gameId == GID_LOOM) && (_vm->_features & GF_MACINTOSH)) { + else if ((_vm->_gameId == GID_LOOM) && (_vm->_platform == Common::kPlatformMacintosh)) { // Mac version of Loom uses yet another sound format /* playSound #9 (room 70) @@ -534,7 +534,7 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) { 000070: 01 18 5a 00 10 00 02 28 5f 00 01 00 00 00 00 00 |..Z....(_.......| */ } - else if ((_vm->_features & GF_MACINTOSH) && (_vm->_gameId == GID_INDY3) && (ptr[26] == 0)) { + else if ((_vm->_platform == Common::kPlatformMacintosh) && (_vm->_gameId == GID_INDY3) && (ptr[26] == 0)) { size = READ_BE_UINT16(ptr + 12); rate = 3579545 / READ_BE_UINT16(ptr + 20); sound = (char *)malloc(size); @@ -545,9 +545,9 @@ void Sound::playSound(int soundID, int heOffset, int heChannel, int heFlags) { else { if (_vm->_gameId == GID_MONKEY_VGA || _vm->_gameId == GID_MONKEY_EGA - || (_vm->_gameId == GID_MONKEY && _vm->_features & GF_MACINTOSH)) { + || (_vm->_gameId == GID_MONKEY && _vm->_platform == Common::kPlatformMacintosh)) { // Sound is currently not supported at all in the amiga versions of these games - if (_vm->_features & GF_AMIGA) { + if (_vm->_platform == Common::kPlatformAmiga) { int track = -1; if (soundID == 50) track = 17; @@ -1133,7 +1133,7 @@ ScummFile *Sound::openSfxFile() { } if (!file->isOpen()) { - if ((_vm->_heversion == 60 && _vm->_features & GF_MACINTOSH) || (_vm->_heversion >= 70)) { + if ((_vm->_heversion == 60 && _vm->_platform == Common::kPlatformMacintosh) || (_vm->_heversion >= 70)) { sprintf(buf, "%s.he2", _vm->getGameName()); } else { sprintf(buf, "%s.tlk", _vm->getGameName()); @@ -2203,7 +2203,7 @@ int ScummEngine::readSoundResourceSmallHeader(int type, int idx) { debug(4, "readSoundResourceSmallHeader(%d)", idx); - if ((_gameId == GID_LOOM) && (_features & GF_PC) && VAR(VAR_SOUNDCARD) == 4) { + if ((_gameId == GID_LOOM) && (_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; @@ -2223,7 +2223,7 @@ int ScummEngine::readSoundResourceSmallHeader(int type, int idx) { wa_size = _fileHandle->readUint16LE(); _fileHandle->seek(wa_size - 2, SEEK_CUR); - if (!(_features & GF_ATARI_ST || _features & GF_MACINTOSH)) { + if (!(_platform == Common::kPlatformAtariST || _platform == Common::kPlatformMacintosh)) { ad_offs = _fileHandle->pos(); ad_size = _fileHandle->readUint16LE(); } diff --git a/scumm/string.cpp b/scumm/string.cpp index 48af2b7a32..4778bdbe95 100644 --- a/scumm/string.cpp +++ b/scumm/string.cpp @@ -235,7 +235,7 @@ void ScummEngine::CHARSET_1() { if (_charset->_center) { _charset->_nextLeft -= _charset->getStringWidth(0, buffer) / 2; } - if (!(_features & GF_FMTOWNS) && _string[0].height) { + if (!(_platform == Common::kPlatformFMTowns) && _string[0].height) { _charset->_nextTop += _string[0].height; } else { _charset->_nextTop += _charset->getFontHeight(); @@ -505,7 +505,7 @@ void ScummEngine::drawString(int a, const byte *msg) { } else { _charset->_left = _charset->_startLeft; } - if (!(_features & GF_FMTOWNS) && _string[0].height) { + if (!(_platform == Common::kPlatformFMTowns) && _string[0].height) { _charset->_nextTop += _string[0].height; } else { _charset->_top += fontHeight; diff --git a/scumm/vars.cpp b/scumm/vars.cpp index 46793a2053..b55325b7e1 100644 --- a/scumm/vars.cpp +++ b/scumm/vars.cpp @@ -541,7 +541,7 @@ void ScummEngine::initScummVars() { case MD_ADLIB: VAR(VAR_SOUNDCARD) = 3; break; default: if ((_gameId == GID_MONKEY_EGA || _gameId == GID_MONKEY_VGA || _gameId == GID_LOOM) - && (_features & GF_PC)) { + && (_platform == Common::kPlatformPC)) { if (_gameId == GID_LOOM) { char buf[50]; File f; @@ -574,11 +574,11 @@ void ScummEngine::initScummVars() { VAR(VAR_SOUNDPARAM3) = 0; } - if (_features & GF_FMTOWNS) + if (_platform == Common::kPlatformFMTowns) VAR(VAR_VIDEOMODE) = 42; - else if (_gameId == GID_INDY3 && (_features & GF_MACINTOSH)) + else if (_gameId == GID_INDY3 && (_platform == Common::kPlatformMacintosh)) VAR(VAR_VIDEOMODE) = 50; - else if (_gameId == GID_MONKEY2 && (_features & GF_AMIGA)) + else if (_gameId == GID_MONKEY2 && (_platform == Common::kPlatformAmiga)) VAR(VAR_VIDEOMODE) = 82; else if (_renderMode == Common::kRenderCGA) VAR(VAR_VIDEOMODE) = 4; @@ -591,7 +591,7 @@ void ScummEngine::initScummVars() { VAR(VAR_CURRENTDRIVE) = 0; if (_gameId == GID_LOOM && (_features & GF_OLD_BUNDLE)) { - if (_features & GF_MACINTOSH) { + if (_platform == Common::kPlatformMacintosh) { // This is the for the Mac version of Indy3/Loom VAR(39) = 320; } else { diff --git a/scumm/verbs.cpp b/scumm/verbs.cpp index 3de3bd1542..a88a09bee7 100644 --- a/scumm/verbs.cpp +++ b/scumm/verbs.cpp @@ -40,7 +40,7 @@ void ScummEngine_v2::initV2MouseOver() { int i; int arrow_color, color, hi_color; - if (_features & GF_NES) { + if (_platform == Common::kPlatformNES) { color = 0; hi_color = 0; arrow_color = 0; @@ -225,7 +225,7 @@ void ScummEngine::checkV2MouseOver(Common::Point pos) { } void ScummEngine::checkV2Inventory(int x, int y) { - int inventoryArea = (_features & GF_NES) ? 48: 32; + int inventoryArea = (_platform == Common::kPlatformNES) ? 48: 32; int object = 0; y -= virtscr[kVerbVirtScreen].topline; @@ -266,8 +266,8 @@ void ScummEngine::redrawV2Inventory() { int i; int max_inv; Common::Rect inventoryBox; - int inventoryArea = (_features & GF_NES) ? 48: 32; - int maxChars = (_features & GF_NES) ? 13: 18; + int inventoryArea = (_platform == Common::kPlatformNES) ? 48: 32; + int maxChars = (_platform == Common::kPlatformNES) ? 13: 18; v2_mouseover_box = -1; @@ -314,7 +314,7 @@ void ScummEngine::redrawV2Inventory() { _string[1].xpos = v2_mouseover_boxes[kInventoryUpArrow].rect.left; _string[1].ypos = v2_mouseover_boxes[kInventoryUpArrow].rect.top + vs->topline; _string[1].color = v2_mouseover_boxes[kInventoryUpArrow].color; - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) drawString(1, (const byte *)"\x7E"); else drawString(1, (const byte *)" \1\2"); @@ -325,7 +325,7 @@ void ScummEngine::redrawV2Inventory() { _string[1].xpos = v2_mouseover_boxes[kInventoryDownArrow].rect.left; _string[1].ypos = v2_mouseover_boxes[kInventoryDownArrow].rect.top + vs->topline; _string[1].color = v2_mouseover_boxes[kInventoryDownArrow].color; - if (_features & GF_NES) + if (_platform == Common::kPlatformNES) drawString(1, (const byte *)"\x7F"); else drawString(1, (const byte *)" \3\4"); @@ -395,7 +395,7 @@ void ScummEngine::checkExecVerbs() { } else if (_mouseButStat & MBS_MOUSE_MASK) { VirtScreen *zone = findVirtScreen(_mouse.y); byte code = _mouseButStat & MBS_LEFT_CLICK ? 1 : 2; - int inventoryArea = (_features & GF_NES) ? 48: 32; + int inventoryArea = (_platform == Common::kPlatformNES) ? 48: 32; if (_version <= 2 && zone->number == 2 && _mouse.y <= zone->topline + 8) { // Click into V2 sentence line |