[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