[Scummvm-git-logs] scummvm master -> 0137a6f9c98b21cae8cfc7479a033874dbe9a8e4
bluegr
noreply at scummvm.org
Sat Jul 13 08:35:25 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:
80bf5fa735 DGDS: Remove unimplemented function definitions
0137a6f9c9 DGDS: Add support for HoC's different inventories per character
Commit: 80bf5fa735bcbd03c317261b5f14746ddb8e0761
https://github.com/scummvm/scummvm/commit/80bf5fa735bcbd03c317261b5f14746ddb8e0761
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-07-13T11:34:59+03:00
Commit Message:
DGDS: Remove unimplemented function definitions
Changed paths:
engines/dgds/scene.h
diff --git a/engines/dgds/scene.h b/engines/dgds/scene.h
index 38c373221ff..3ce0d88f5e6 100644
--- a/engines/dgds/scene.h
+++ b/engines/dgds/scene.h
@@ -302,9 +302,6 @@ public:
bool runPreTickOps() { return runOps(_preTickOps); }
bool runPostTickOps() { return runOps(_postTickOps); }
- void mouseMoved(const Common::Point pt);
- void mouseClicked(const Common::Point pt);
-
bool runOps(const Common::Array<SceneOp> &ops, int16 addMinutes = 0);
virtual Common::Error syncState(Common::Serializer &s) = 0;
virtual void enableTrigger(uint16 numm, bool enable = true) {}
@@ -331,9 +328,6 @@ protected:
void setItemAttrOp(const Common::Array<uint16> &args);
void setDragItemOp(const Common::Array<uint16> &args);
- void drawDragonCountdown1();
- void drawDragonCountdown2();
-
bool runSceneOp(const SceneOp &op);
bool runDragonOp(const SceneOp &op);
bool runChinaOp(const SceneOp &op);
Commit: 0137a6f9c98b21cae8cfc7479a033874dbe9a8e4
https://github.com/scummvm/scummvm/commit/0137a6f9c98b21cae8cfc7479a033874dbe9a8e4
Author: Filippos Karapetis (bluegr at gmail.com)
Date: 2024-07-13T11:34:59+03:00
Commit Message:
DGDS: Add support for HoC's different inventories per character
Thanks to @mduggan for his help on this
Changed paths:
engines/dgds/inventory.cpp
engines/dgds/inventory.h
diff --git a/engines/dgds/inventory.cpp b/engines/dgds/inventory.cpp
index e361ec24dba..5f904678c0d 100644
--- a/engines/dgds/inventory.cpp
+++ b/engines/dgds/inventory.cpp
@@ -184,7 +184,7 @@ void Inventory::drawItems(Graphics::ManagedSurface &surf) {
int offset = _itemOffset;
Common::Array<GameItem> &items = engine->getGDSScene()->getGameItems();
for (auto & item: items) {
- if (item._inSceneNum != 2) // || !(item._flags & 4))
+ if (!isItemInInventory(item))
continue;
if (offset) {
@@ -257,7 +257,7 @@ GameItem *Inventory::itemUnderMouse(const Common::Point &pt) {
int itemnum = numacross * itemrow + itemcol;
for (auto &item: items) {
- if (item._inSceneNum != 2) // || !(item._flags & 4))
+ if (!isItemInInventory(item))
continue;
if (itemnum) {
@@ -270,6 +270,20 @@ GameItem *Inventory::itemUnderMouse(const Common::Point &pt) {
return nullptr;
}
+bool Inventory::isItemInInventory(GameItem &item) {
+ DgdsEngine *engine = static_cast<DgdsEngine *>(g_engine);
+ DgdsGameId gameId = engine->getGameId();
+ bool result = item._inSceneNum == 2; // || (item._flags & 4)
+ if (gameId == GID_HOC) {
+ byte gameCharacterQuality[] = { 0, 9, 7, 8 }; // TODO: Move this elsewhere?
+ int16 currentCharacter = engine->getGDSScene()->getGlobal(0x33);
+ assert(currentCharacter < 4);
+ result = result && item._quality == gameCharacterQuality[currentCharacter];
+ }
+
+ return result;
+}
+
void Inventory::mouseLDown(const Common::Point &pt) {
RequestData &boxreq = _reqData._requests[0];
@@ -311,7 +325,7 @@ void Inventory::mouseLUp(const Common::Point &pt) {
int numInvItems = 0;
Common::Array<GameItem> &items = engine->getGDSScene()->getGameItems();
for (auto &item: items) {
- if (item._inSceneNum == 2) // && item._flags & 4)
+ if (isItemInInventory(item))
numInvItems++;
}
if (_itemOffset < numInvItems)
diff --git a/engines/dgds/inventory.h b/engines/dgds/inventory.h
index 6b272309baf..212a1e33735 100644
--- a/engines/dgds/inventory.h
+++ b/engines/dgds/inventory.h
@@ -59,6 +59,7 @@ public:
private:
GameItem *itemUnderMouse(const Common::Point &pt);
+ bool isItemInInventory(GameItem &item);
uint16 _openedFromSceneNum;
More information about the Scummvm-git-logs
mailing list