[Scummvm-git-logs] scummvm master -> 77deb41c252305c6f95d4b929aa48deacf63890b

sluicebox noreply at scummvm.org
Mon Mar 11 17:07:03 UTC 2024


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1c273ecfb1 AGI: Reduce `g_system` usage
77deb41c25 AGI: Fix Gold Rush clock time at Fast and Fastest speeds


Commit: 1c273ecfb1fdc8eb0b81e87be661a1be952025b1
    https://github.com/scummvm/scummvm/commit/1c273ecfb1fdc8eb0b81e87be661a1be952025b1
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-03-11T09:48:53-07:00

Commit Message:
AGI: Reduce `g_system` usage

Changed paths:
    engines/agi/cycle.cpp
    engines/agi/graphics.cpp
    engines/agi/keyboard.cpp
    engines/agi/preagi/preagi.cpp
    engines/agi/preagi/troll.cpp
    engines/agi/preagi/winnie.cpp
    engines/agi/sprite.cpp


diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index 027aff221b8..f69121e0b88 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -438,7 +438,7 @@ int AgiEngine::playGame() {
 		if (_passedPlayTimeCycles >= timeDelay) {
 			// code to check for executed cycles
 			// TimeDate time;
-			// g_system->getTimeAndDate(time);
+			// _system->getTimeAndDate(time);
 			// warning("cycle %d", time.tm_sec);
 			inGameTimerResetPassedCycles();
 
diff --git a/engines/agi/graphics.cpp b/engines/agi/graphics.cpp
index 8978bc66743..26cc7a70ca4 100644
--- a/engines/agi/graphics.cpp
+++ b/engines/agi/graphics.cpp
@@ -311,7 +311,7 @@ void GfxMgr::copyDisplayRectToScreen(int16 x, int16 y, int16 width, int16 height
 	x = CLIP<int16>(x, 0, _displayScreenWidth-width);
 	y = CLIP<int16>(y, 0, _displayScreenHeight-height);
 
-	g_system->copyRectToScreen(_displayScreen + y * _displayScreenWidth + x, _displayScreenWidth, x, y, width, height);
+	_vm->_system->copyRectToScreen(_displayScreen + y * _displayScreenWidth + x, _displayScreenWidth, x, y, width, height);
 }
 void GfxMgr::copyDisplayRectToScreen(int16 x, int16 adjX, int16 y, int16 adjY, int16 width, int16 adjWidth, int16 height, int16 adjHeight) {
 	switch (_upscaledHires) {
@@ -327,18 +327,18 @@ void GfxMgr::copyDisplayRectToScreen(int16 x, int16 adjX, int16 y, int16 adjY, i
 	}
 	x += adjX; y += adjY;
 	width += adjWidth; height += adjHeight;
-	g_system->copyRectToScreen(_displayScreen + y * _displayScreenWidth + x, _displayScreenWidth, x, y, width, height);
+	_vm->_system->copyRectToScreen(_displayScreen + y * _displayScreenWidth + x, _displayScreenWidth, x, y, width, height);
 }
 void GfxMgr::copyDisplayRectToScreenUsingGamePos(int16 x, int16 y, int16 width, int16 height) {
 	translateGameRectToDisplayScreen(x, y, width, height);
-	g_system->copyRectToScreen(_displayScreen + (y * _displayScreenWidth) + x, _displayScreenWidth, x, y, width, height);
+	_vm->_system->copyRectToScreen(_displayScreen + (y * _displayScreenWidth) + x, _displayScreenWidth, x, y, width, height);
 }
 void GfxMgr::copyDisplayRectToScreenUsingVisualPos(int16 x, int16 y, int16 width, int16 height) {
 	translateVisualRectToDisplayScreen(x, y, width, height);
-	g_system->copyRectToScreen(_displayScreen + (y * _displayScreenWidth) + x, _displayScreenWidth, x, y, width, height);
+	_vm->_system->copyRectToScreen(_displayScreen + (y * _displayScreenWidth) + x, _displayScreenWidth, x, y, width, height);
 }
 void GfxMgr::copyDisplayToScreen() {
-	g_system->copyRectToScreen(_displayScreen, _displayScreenWidth, 0, 0, _displayScreenWidth, _displayScreenHeight);
+	_vm->_system->copyRectToScreen(_displayScreen, _displayScreenWidth, 0, 0, _displayScreenWidth, _displayScreenHeight);
 }
 
 void GfxMgr::translateFontPosToDisplayScreen(int16 &x, int16 &y) {
@@ -815,14 +815,14 @@ void GfxMgr::transition_Amiga() {
 			case DISPLAY_UPSCALED_DISABLED:
 				for (int16 multiPixel = 0; multiPixel < 4; multiPixel++) {
 					screenStepPos = (posY * _displayScreenWidth) + posX;
-					g_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 2, 1);
+					_vm->_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 2, 1);
 					posY += 42;
 				}
 				break;
 			case DISPLAY_UPSCALED_640x400:
 				for (int16 multiPixel = 0; multiPixel < 4; multiPixel++) {
 					screenStepPos = (posY * _displayScreenWidth) + posX;
-					g_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 4, 2);
+					_vm->_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 4, 2);
 					posY += 42 * 2;
 				}
 				break;
@@ -834,8 +834,8 @@ void GfxMgr::transition_Amiga() {
 			stepCount++;
 			if (stepCount == 220) {
 				// 30 times for the whole transition, so should take around 0.5 seconds
-				g_system->updateScreen();
-				g_system->delayMillis(16);
+				_vm->_system->updateScreen();
+				_vm->_system->delayMillis(16);
 				stepCount = 0;
 			}
 		}
@@ -846,7 +846,7 @@ void GfxMgr::transition_Amiga() {
 		CursorMan.showMouse(true);
 	}
 
-	g_system->updateScreen();
+	_vm->_system->updateScreen();
 }
 
 // This transition code was not reverse engineered, but created based on the Amiga transition code
@@ -880,7 +880,7 @@ void GfxMgr::transition_AtariSt() {
 				posY += _renderStartDisplayOffsetY; // adjust to only update the main area, not the status bar
 				for (int16 multiPixel = 0; multiPixel < 8; multiPixel++) {
 					screenStepPos = (posY * _displayScreenWidth) + posX;
-					g_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 1, 1);
+					_vm->_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 1, 1);
 					posY += 21;
 				}
 				break;
@@ -889,7 +889,7 @@ void GfxMgr::transition_AtariSt() {
 				posY += _renderStartDisplayOffsetY; // adjust to only update the main area, not the status bar
 				for (int16 multiPixel = 0; multiPixel < 8; multiPixel++) {
 					screenStepPos = (posY * _displayScreenWidth) + posX;
-					g_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 2, 2);
+					_vm->_system->copyRectToScreen(_displayScreen + screenStepPos, _displayScreenWidth, posX, posY, 2, 2);
 					posY += 21 * 2;
 				}
 				break;
@@ -902,8 +902,8 @@ void GfxMgr::transition_AtariSt() {
 				// 40 times for the whole transition, so should take around 0.7 seconds
 				// When using an Atari ST emulator, the transition seems to be even slower than this
 				// TODO: should get checked on real hardware
-				g_system->updateScreen();
-				g_system->delayMillis(16);
+				_vm->_system->updateScreen();
+				_vm->_system->delayMillis(16);
 				stepCount = 0;
 			}
 		}
@@ -914,7 +914,7 @@ void GfxMgr::transition_AtariSt() {
 		CursorMan.showMouse(true);
 	}
 
-	g_system->updateScreen();
+	_vm->_system->updateScreen();
 }
 
 // Attention: y coordinate is here supposed to be the upper one!
@@ -1208,17 +1208,17 @@ void GfxMgr::shakeScreen(int16 repeatCount) {
 	for (int shakeNr = 0; shakeNr < shakeCount; shakeNr++) {
 		if (shakeNr & 1) {
 			// move back
-			g_system->setShakePos(0, 0);
+			_vm->_system->setShakePos(0, 0);
 		} else {
-			g_system->setShakePos(shakeHorizontalPixels, shakeVerticalPixels);
+			_vm->_system->setShakePos(shakeHorizontalPixels, shakeVerticalPixels);
 		}
-		g_system->updateScreen();
-		g_system->delayMillis(66); // Sierra waited for 4 V'Syncs, which is around 66 milliseconds
+		_vm->_system->updateScreen();
+		_vm->_system->delayMillis(66); // Sierra waited for 4 V'Syncs, which is around 66 milliseconds
 	}
 }
 
 void GfxMgr::updateScreen() {
-	g_system->updateScreen();
+	_vm->_system->updateScreen();
 }
 
 void GfxMgr::initPriorityTable() {
@@ -1357,9 +1357,9 @@ void GfxMgr::initPaletteCLUT(uint8 *destPalette, const uint16 *paletteCLUTData,
 
 void GfxMgr::setPalette(bool gfxModePalette) {
 	if (gfxModePalette) {
-		g_system->getPaletteManager()->setPalette(_paletteGfxMode, 0, 256);
+		_vm->_system->getPaletteManager()->setPalette(_paletteGfxMode, 0, 256);
 	} else {
-		g_system->getPaletteManager()->setPalette(_paletteTextMode, 0, 256);
+		_vm->_system->getPaletteManager()->setPalette(_paletteTextMode, 0, 256);
 	}
 }
 
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index ab86221bc1e..e38ca5d172e 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -116,7 +116,7 @@ void AgiEngine::processScummVMEvents() {
 					if (_mouse.pos.y > _game.mouseFence.bottom)
 						_mouse.pos.y = _game.mouseFence.bottom;
 
-					g_system->warpMouse(_mouse.pos.x, _mouse.pos.y);
+					_system->warpMouse(_mouse.pos.x, _mouse.pos.y);
 				}
 			}
 
diff --git a/engines/agi/preagi/preagi.cpp b/engines/agi/preagi/preagi.cpp
index dcad8a2d2a9..50ece5fdc63 100644
--- a/engines/agi/preagi/preagi.cpp
+++ b/engines/agi/preagi/preagi.cpp
@@ -157,7 +157,7 @@ void PreAgiEngine::clearRow(int row) {
 void PreAgiEngine::printStr(const char *szMsg) {
 	clearTextArea();
 	drawStr(21, 0, IDA_DEFAULT, szMsg);
-	g_system->updateScreen();
+	_system->updateScreen();
 }
 
 void PreAgiEngine::XOR80(char *buffer) {
@@ -253,7 +253,7 @@ void PreAgiEngine::waitForTimer(int msec_delay) {
 	uint32 start_time = _system->getMillis();
 
 	while (_system->getMillis() < start_time + msec_delay) {
-		g_system->updateScreen();
+		_system->updateScreen();
 		_system->delayMillis(10);
 	}
 }
diff --git a/engines/agi/preagi/troll.cpp b/engines/agi/preagi/troll.cpp
index 4b199536d15..d7f64b91557 100644
--- a/engines/agi/preagi/troll.cpp
+++ b/engines/agi/preagi/troll.cpp
@@ -40,7 +40,7 @@ TrollEngine::~TrollEngine() {
 
 void TrollEngine::pressAnyKey(int col) {
 	drawStr(24, col, kColorDefault, IDS_TRO_PRESSANYKEY);
-	g_system->updateScreen();
+	_system->updateScreen();
 	getSelection(kSelAnyKey);
 }
 
@@ -48,7 +48,7 @@ void TrollEngine::drawMenu(const char *szMenu, int iSel) {
 	clearTextArea();
 	drawStr(21, 0, kColorDefault, szMenu);
 	drawStr(22 + iSel, 0, kColorDefault, " *");
-	g_system->updateScreen();
+	_system->updateScreen();
 }
 
 bool TrollEngine::getMenuSel(const char *szMenu, int *iSel, int nSel) {
@@ -155,7 +155,7 @@ void TrollEngine::drawPic(int iPic, bool f3IsCont, bool clr, bool troll) {
 	_picture->drawPicture();
 
 	_picture->showPic(); // TODO: *HAVE* to add coordinates + height/width!!
-	g_system->updateScreen();
+	_system->updateScreen();
 }
 
 // Game Logic
@@ -212,11 +212,11 @@ void TrollEngine::waitAnyKeyIntro() {
 			// fall through
 		case 0:
 			drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_2);
-			g_system->updateScreen();
+			_system->updateScreen();
 			break;
 		case 100:
 			drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_3);
-			g_system->updateScreen();
+			_system->updateScreen();
 			break;
 		default:
 			break;
@@ -253,7 +253,7 @@ void TrollEngine::credits() {
 	drawStr(17, 7, 12, IDS_TRO_CREDITS_5);
 	drawStr(19, 2, 14, IDS_TRO_CREDITS_6);
 
-	g_system->updateScreen();
+	_system->updateScreen();
 
 	pressAnyKey();
 }
@@ -279,11 +279,11 @@ void TrollEngine::tutorial() {
 			switch (iSel) {
 			case IDI_TRO_SEL_OPTION_1:
 				clearScreen(0x22, false);
-				g_system->updateScreen();
+				_system->updateScreen();
 				break;
 			case IDI_TRO_SEL_OPTION_2:
 				clearScreen(0x00, false);
-				g_system->updateScreen();
+				_system->updateScreen();
 				break;
 			case IDI_TRO_SEL_OPTION_3:
 				done = true;
@@ -297,7 +297,7 @@ void TrollEngine::tutorial() {
 		clearScreen(0x4F);
 		drawStr(7, 4, kColorDefault, IDS_TRO_TUTORIAL_5);
 		drawStr(9, 4, kColorDefault, IDS_TRO_TUTORIAL_6);
-		g_system->updateScreen();
+		_system->updateScreen();
 
 		if (!getSelection(kSelYesNo))
 			break;
@@ -307,37 +307,37 @@ void TrollEngine::tutorial() {
 	clearScreen(0x5F);
 	drawStr(4, 1, kColorDefault, IDS_TRO_TUTORIAL_7);
 	drawStr(5, 1, kColorDefault, IDS_TRO_TUTORIAL_8);
-	g_system->updateScreen();
+	_system->updateScreen();
 	pressAnyKey();
 
 	clearScreen(0x2F);
 	drawStr(6, 1, kColorDefault, IDS_TRO_TUTORIAL_9);
-	g_system->updateScreen();
+	_system->updateScreen();
 	pressAnyKey();
 
 	clearScreen(0x19);
 	drawStr(7, 1, kColorDefault, IDS_TRO_TUTORIAL_10);
 	drawStr(8, 1, kColorDefault, IDS_TRO_TUTORIAL_11);
-	g_system->updateScreen();
+	_system->updateScreen();
 	pressAnyKey();
 
 	clearScreen(0x6E);
 	drawStr(9, 1, kColorDefault, IDS_TRO_TUTORIAL_12);
 	drawStr(10, 1, kColorDefault, IDS_TRO_TUTORIAL_13);
-	g_system->updateScreen();
+	_system->updateScreen();
 	pressAnyKey();
 
 	clearScreen(0x4C);
 	drawStr(11, 1, kColorDefault, IDS_TRO_TUTORIAL_14);
 	drawStr(12, 1, kColorDefault, IDS_TRO_TUTORIAL_15);
-	g_system->updateScreen();
+	_system->updateScreen();
 	pressAnyKey();
 
 	clearScreen(0x5D);
 	drawStr(13, 1, kColorDefault, IDS_TRO_TUTORIAL_16);
 	drawStr(14, 1, kColorDefault, IDS_TRO_TUTORIAL_17);
 	drawStr(15, 1, kColorDefault, IDS_TRO_TUTORIAL_18);
-	g_system->updateScreen();
+	_system->updateScreen();
 	pressAnyKey();
 
 	// show treasures
@@ -346,7 +346,7 @@ void TrollEngine::tutorial() {
 	for (int i = 0; i < IDI_TRO_MAX_TREASURE; i++)
 		drawStr(19 - i, 11, kColorDefault, _items[i].name);
 
-	g_system->updateScreen();
+	_system->updateScreen();
 
 	pressAnyKey();
 }
@@ -356,7 +356,7 @@ void TrollEngine::intro() {
 	clearScreen(0x2F);
 	drawStr(9, 10, kColorDefault, IDS_TRO_INTRO_0);
 	drawStr(14, 15, kColorDefault, IDS_TRO_INTRO_1);
-	g_system->updateScreen();
+	_system->updateScreen();
 	_system->delayMillis(3200);
 
 	CursorMan.showMouse(true);
@@ -364,7 +364,7 @@ void TrollEngine::intro() {
 	// Draw logo
 	setDefaultTextColor(0x0f);
 	drawPic(45, false, true);
-	g_system->updateScreen();
+	_system->updateScreen();
 
 	// wait for keypress and alternate message
 	waitAnyKeyIntro();
@@ -372,7 +372,7 @@ void TrollEngine::intro() {
 	// have you played this game before?
 	drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_4);
 	drawStr(23, 6, kColorDefault, IDS_TRO_INTRO_5);
-	g_system->updateScreen();
+	_system->updateScreen();
 
 	if (!getSelection(kSelYesNo))
 		tutorial();
@@ -404,7 +404,7 @@ void TrollEngine::gameOver() {
 	Common::sprintf_s(szMoves, IDS_TRO_GAMEOVER_0, _moves);
 	drawStr(21, 1, kColorDefault, szMoves);
 	drawStr(22, 1, kColorDefault, IDS_TRO_GAMEOVER_1);
-	g_system->updateScreen();
+	_system->updateScreen();
 
 	pressAnyKey();
 }
@@ -435,7 +435,7 @@ int TrollEngine::drawRoom(char *menu) {
 		}
 
 		drawPic(_currentRoom, contFlag, true);
-		g_system->updateScreen();
+		_system->updateScreen();
 
 		if (_currentRoom == 42) {
 			drawPic(44, false, false); // don't clear
@@ -446,7 +446,7 @@ int TrollEngine::drawRoom(char *menu) {
 		}
 	}
 
-	g_system->updateScreen();
+	_system->updateScreen();
 
 	int n = 0;
 	strncat(menu, (char *)_gameData + _locMessagesIdx[_currentRoom], 39);
@@ -487,7 +487,7 @@ void TrollEngine::pickupTreasure(int treasureId) {
 	if (_currentRoom != 24) {
 		clearTextArea();
 		drawPic(_currentRoom, false, true);
-		g_system->updateScreen();
+		_system->updateScreen();
 	}
 
 	printUserMessage(treasureId + 16);
diff --git a/engines/agi/preagi/winnie.cpp b/engines/agi/preagi/winnie.cpp
index c6cc790e727..0e4103e4175 100644
--- a/engines/agi/preagi/winnie.cpp
+++ b/engines/agi/preagi/winnie.cpp
@@ -191,7 +191,7 @@ void WinnieEngine::randomize() {
 void WinnieEngine::intro() {
 	drawPic(IDS_WTP_FILE_LOGO);
 	printStr(IDS_WTP_INTRO_0);
-	g_system->updateScreen();
+	_system->updateScreen();
 	_system->delayMillis(0x640);
 
 	if (getPlatform() == Common::kPlatformAmiga)
@@ -200,7 +200,7 @@ void WinnieEngine::intro() {
 	drawPic(IDS_WTP_FILE_TITLE);
 
 	printStr(IDS_WTP_INTRO_1);
-	g_system->updateScreen();
+	_system->updateScreen();
 	_system->delayMillis(0x640);
 
 	if (!playSound(IDI_WTP_SND_POOH_0))
@@ -454,7 +454,7 @@ int WinnieEngine::parser(int pc, int index, uint8 *buffer) {
 
 		if (iBlock == 1)
 			return IDI_WTP_PAR_OK;
-		g_system->updateScreen();
+		_system->updateScreen();
 	}
 
 	return IDI_WTP_PAR_OK;
@@ -479,7 +479,7 @@ void WinnieEngine::inventory() {
 	Common::String missing = Common::String::format(IDS_WTP_INVENTORY_1, _gameStateWinnie.nObjMiss);
 
 	drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_MENU, IDA_DEFAULT, missing.c_str());
-	g_system->updateScreen();
+	_system->updateScreen();
 	getSelection(kSelAnyKey);
 }
 
@@ -759,7 +759,7 @@ void WinnieEngine::drawMenu(char *szMenu, int iSel, int fCanSel[]) {
 		break;
 	}
 	drawStr(iRow, iCol - 1, IDA_DEFAULT, ">");
-	g_system->updateScreen();
+	_system->updateScreen();
 }
 
 void WinnieEngine::incMenuSel(int *iSel, int fCanSel[]) {
@@ -1022,7 +1022,7 @@ void WinnieEngine::gameLoop() {
 
 			readRoom(_room, roomdata, hdr);
 			drawRoomPic();
-			g_system->updateScreen();
+			_system->updateScreen();
 			decodePhase = 1;
 		}
 
diff --git a/engines/agi/sprite.cpp b/engines/agi/sprite.cpp
index b7000f0458e..844ca850c48 100644
--- a/engines/agi/sprite.cpp
+++ b/engines/agi/sprite.cpp
@@ -377,8 +377,8 @@ void SpritesMgr::showSprites(SpriteList &spriteList) {
 			}
 		}
 	}
-	g_system->updateScreen();
-	//g_system->delayMillis(20);
+	_vm->_system->updateScreen();
+	//_vm->_system->delayMillis(20);
 }
 
 void SpritesMgr::showRegularSpriteList() {


Commit: 77deb41c252305c6f95d4b929aa48deacf63890b
    https://github.com/scummvm/scummvm/commit/77deb41c252305c6f95d4b929aa48deacf63890b
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2024-03-11T10:06:11-07:00

Commit Message:
AGI: Fix Gold Rush clock time at Fast and Fastest speeds

Fixes bugs #4147, #13910

The Apple IIgs version is unaffected and will require a separate fix.
That version only had one speed, so it does not contain the script that
synchronizes clock speed with game speed. We add this feature, and will
also need to implement this synchronization.

Changed paths:
    engines/agi/cycle.cpp


diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index f69121e0b88..4d76fd55c7a 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -122,6 +122,23 @@ void AgiEngine::newRoom(int16 newRoomNr) {
 		if (getGameID() == GID_LSL1) {
 			setFlag(36, 0); // clear "ignore special" flag on every room change
 		}
+		// WORKAROUND: Gold Rush runs a speed test to calculate how fast the in-game
+		// clock should advance at Fast and Fastest settings, based on CPU speed.
+		// The goal was to produce a real-time clock, even though it's really driven
+		// by game cycles. This test is incompatible with our speed throttling because
+		// it runs in Fastest mode and the results are based on running unthrottled.
+		// This causes in an artificially poor test result, resulting in the clock
+		// running much too fast at Fast and Fastest speeds. We fix this by overriding
+		// the test result with speeds that match ours. Fixes bugs #4147, #13910
+		if (getGameID() == GID_GOLDRUSH && newRoomNr == 1) {
+			setVar(165, 20); // Fast:	 20 game cycles => 1 Gold Rush second
+			setVar(167, 40); // Fastest: 40 game cycles => 1 Gold Rush second
+			// Gold Rush 3.0 (1998) disables Fastest if the speed test indicates
+			// a fast machine. That shouldn't happen, but make sure it doesn't.
+			if (getPlatform() == Common::kPlatformDOS) {
+				setFlag(172, 0); // Allow Fastest
+			}
+		}
 	}
 }
 




More information about the Scummvm-git-logs mailing list