[Scummvm-git-logs] scummvm branch-2-3 -> c62106cff55d0317bd3c14f3df44e854ad5ea298

bluegr bluegr at gmail.com
Thu Sep 30 01:00:54 UTC 2021


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:
df2bd5e516 TRECISION: Fix canceling item combination - bug #12920
c62106cff5 TRECISION: Fix restoring games from the ScummVM menu - bug #12902


Commit: df2bd5e5161f1059277d9a95d3e33c968160527a
    https://github.com/scummvm/scummvm/commit/df2bd5e5161f1059277d9a95d3e33c968160527a
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-09-30T04:00:33+03:00

Commit Message:
TRECISION: Fix canceling item combination - bug #12920

Changed paths:
    engines/trecision/inventory.cpp


diff --git a/engines/trecision/inventory.cpp b/engines/trecision/inventory.cpp
index b00e276313..8246c0c58b 100644
--- a/engines/trecision/inventory.cpp
+++ b/engines/trecision/inventory.cpp
@@ -162,13 +162,13 @@ void TrecisionEngine::endUseWith() {
 	_flagUseWithStarted = false;
 	_useWith[WITH] = _curInventory;
 	_useWithInv[WITH] = true;
+	_lightIcon = 0xFF;
+
 	if (_useWith[USED] != _curInventory) {
 		doUseWith();
-		_lightIcon = 0xFF;
 	} else {
 		_animMgr->smkStop(kSmackerIcon);
 		showInventoryName(_curInventory, true);
-		_lightIcon = _curInventory;
 	}
 }
 


Commit: c62106cff55d0317bd3c14f3df44e854ad5ea298
    https://github.com/scummvm/scummvm/commit/c62106cff55d0317bd3c14f3df44e854ad5ea298
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2021-09-30T04:00:33+03:00

Commit Message:
TRECISION: Fix restoring games from the ScummVM menu - bug #12902

Changed paths:
    engines/trecision/saveload.cpp
    engines/trecision/trecision.cpp
    engines/trecision/trecision.h


diff --git a/engines/trecision/saveload.cpp b/engines/trecision/saveload.cpp
index 1783679d76..b315f8a992 100644
--- a/engines/trecision/saveload.cpp
+++ b/engines/trecision/saveload.cpp
@@ -259,7 +259,8 @@ bool TrecisionEngine::dataLoad() {
 		eventLoop();
 		_mouseLeftBtn = _mouseRightBtn = false;
 
-		performLoad(saveSlot - 1, skipLoad);
+		if (!skipLoad)
+			loadGameState(saveSlot);
 
 		return !skipLoad;
 	}
@@ -292,8 +293,8 @@ bool TrecisionEngine::dataLoad() {
 	loadSaveSlots(saveNames);
 
 	bool skipLoad = false;
-	int8 CurPos = -1;
-	int8 OldPos = -1;
+	int8 curPos = -1;
+	int8 oldPos = -1;
 
 	for (;;) {
 		checkSystem();
@@ -303,14 +304,14 @@ bool TrecisionEngine::dataLoad() {
 			_mousePos.y < (FIRSTLINE + ICONDY) &&
 			_mousePos.x >= ICONMARGSX &&
 			(_mousePos.x < (MAXX - ICONMARGDX))) {
-			OldPos = CurPos;
-			CurPos = (_mousePos.x - ICONMARGSX) / ICONDX;
+			oldPos = curPos;
+			curPos = (_mousePos.x - ICONMARGSX) / ICONDX;
 
-			if (OldPos != CurPos) {
+			if (oldPos != curPos) {
 				_graphicsMgr->clearScreenBufferSaveSlotDescriptions();
 
-				uint16 posX = ICONMARGSX + ((CurPos) * (ICONDX)) + ICONDX / 2;
-				uint16 lenText = textLength(saveNames[CurPos]);
+				uint16 posX = ICONMARGSX + ((curPos) * (ICONDX)) + ICONDX / 2;
+				uint16 lenText = textLength(saveNames[curPos]);
 				if (posX - (lenText / 2) < 2)
 					posX = 2;
 				else
@@ -322,24 +323,24 @@ bool TrecisionEngine::dataLoad() {
 					Common::Rect(posX, FIRSTLINE + ICONDY + 10, lenText + posX, CARHEI + (FIRSTLINE + ICONDY + 10)),
 					Common::Rect(0, 0, lenText, CARHEI),
 					MOUSECOL,
-					saveNames[CurPos].c_str());
+					saveNames[curPos].c_str());
 				drawText.draw(this);
 
 				_graphicsMgr->copyToScreen(0, FIRSTLINE + ICONDY + 10, MAXX, CARHEI);
 			}
 
-			if (_mouseLeftBtn && (_inventory[CurPos] != EMPTYSLOT)) {
+			if (_mouseLeftBtn && (_inventory[curPos] != EMPTYSLOT)) {
 				_mouseLeftBtn = false;
 				break;
 			}
 		} else {
-			if (OldPos != -1) {
+			if (oldPos != -1) {
 				_graphicsMgr->clearScreenBufferSaveSlotDescriptions();
 				_graphicsMgr->copyToScreen(0, FIRSTLINE + ICONDY + 10, MAXX, CARHEI);
 			}
 
-			OldPos = -1;
-			CurPos = -1;
+			oldPos = -1;
+			curPos = -1;
 
 			if (_mouseLeftBtn || _mouseRightBtn) {
 				_mouseLeftBtn = _mouseRightBtn = false;
@@ -350,9 +351,23 @@ bool TrecisionEngine::dataLoad() {
 		}
 	}
 
-	performLoad(CurPos, skipLoad);
+	if (!skipLoad) {
+		loadGameState(curPos + 1);
+	} else {
+		_actor->actorStop();
+		_pathFind->nextStep();
+		checkSystem();
+
+		_graphicsMgr->clearScreenBufferInventory();
+		_graphicsMgr->copyToScreen(0, FIRSTLINE, MAXX, TOP);
+
+		_graphicsMgr->clearScreenBufferTop();
+		_graphicsMgr->copyToScreen(0, 0, MAXX, TOP);
+
+		if (_flagScriptActive) {
+			_graphicsMgr->hideCursor();
+		}
 
-	if (skipLoad) {
 		// Restore the inventory
 		_inventory = savedInventory;
 		_curInventory = 0;
@@ -367,6 +382,30 @@ Common::Error TrecisionEngine::loadGameStream(Common::SeekableReadStream *stream
 	Common::Serializer ser(stream, nullptr);
 	ser.setVersion(version);
 	syncGameStream(ser);
+
+	_graphicsMgr->clearScreenBufferInventory();
+
+	_flagNoPaintScreen = true;
+	_curStack = 0;
+	_flagScriptActive = false;
+
+	_oldRoom = _curRoom;
+	changeRoom(_curRoom);
+
+	_actor->actorStop();
+	_pathFind->nextStep();
+	checkSystem();
+
+	_graphicsMgr->clearScreenBufferInventory();
+	_graphicsMgr->copyToScreen(0, FIRSTLINE, MAXX, TOP);
+
+	_graphicsMgr->clearScreenBufferTop();
+	_graphicsMgr->copyToScreen(0, 0, MAXX, TOP);
+
+	if (_flagScriptActive) {
+		_graphicsMgr->hideCursor();
+	}
+
 	return Common::kNoError;
 }
 
@@ -425,33 +464,4 @@ bool TrecisionEngine::syncGameStream(Common::Serializer &ser) {
 	return true;
 }
 
-void TrecisionEngine::performLoad(int slot, bool skipLoad) {
-	if (!skipLoad) {
-		_graphicsMgr->clearScreenBufferInventory();
-
-		loadGameState(slot + 1);
-
-		_flagNoPaintScreen = true;
-		_curStack = 0;
-		_flagScriptActive = false;
-
-		_oldRoom = _curRoom;
-		changeRoom(_curRoom);
-	}
-
-	_actor->actorStop();
-	_pathFind->nextStep();
-	checkSystem();
-
-	_graphicsMgr->clearScreenBufferInventory();
-	_graphicsMgr->copyToScreen(0, FIRSTLINE, MAXX, TOP);
-
-	_graphicsMgr->clearScreenBufferTop();
-	_graphicsMgr->copyToScreen(0, 0, MAXX, TOP);
-
-	if (_flagScriptActive) {
-		_graphicsMgr->hideCursor();
-	}
-}
-
 } // End of namespace Trecision
diff --git a/engines/trecision/trecision.cpp b/engines/trecision/trecision.cpp
index 84ba17ef7c..7c032d89b3 100644
--- a/engines/trecision/trecision.cpp
+++ b/engines/trecision/trecision.cpp
@@ -291,8 +291,8 @@ void TrecisionEngine::initMain() {
 	// Check if a saved game is to be loaded from the launcher
 	if (ConfMan.hasKey("save_slot"))
 		loadGameState(ConfMan.getInt("save_slot"));
-
-	changeRoom(_curRoom);
+	else
+		changeRoom(_curRoom);
 }
 
 void TrecisionEngine::checkSystem() {
diff --git a/engines/trecision/trecision.h b/engines/trecision/trecision.h
index 6b4279fcb8..c99ac40511 100644
--- a/engines/trecision/trecision.h
+++ b/engines/trecision/trecision.h
@@ -136,7 +136,6 @@ class TrecisionEngine : public Engine {
 	static bool isBetween(int a, int x, int b);
 
 	// Others
-	void performLoad(int slot, bool skipLoad);
 	bool canPlayerInteract();
 
 	// Objects




More information about the Scummvm-git-logs mailing list