[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