[Scummvm-git-logs] scummvm master -> 7d4d82e9945923151fb3275f34a85ddec45db446

a-yyg 76591232+a-yyg at users.noreply.github.com
Tue Jul 20 12:36:55 UTC 2021


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

Summary:
973183fcc1 SAGA2: Implement command to see item stats
afc8a0328f SAGA2: Implement command to search objects
7d4d82e994 SAGA2: Implement command to add objects to inventory


Commit: 973183fcc153b3044b9a41449cddac30e5bce9ae
    https://github.com/scummvm/scummvm/commit/973183fcc153b3044b9a41449cddac30e5bce9ae
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-20T21:33:43+09:00

Commit Message:
SAGA2: Implement command to see item stats

Changed paths:
    engines/saga2/console.cpp
    engines/saga2/console.h
    engines/saga2/main.cpp
    engines/saga2/saga2.cpp
    engines/saga2/saga2.h


diff --git a/engines/saga2/console.cpp b/engines/saga2/console.cpp
index ad54dc92f8..6b1af16fbf 100644
--- a/engines/saga2/console.cpp
+++ b/engines/saga2/console.cpp
@@ -53,6 +53,8 @@ Console::Console(Saga2Engine *vm) : GUI::Debugger() {
 	registerCmd("goto_place", WRAP_METHOD(Console, cmdGotoPlace));
 
 	registerCmd("list_places", WRAP_METHOD(Console, cmdListPlaces));
+
+	registerCmd("stats", WRAP_METHOD(Console, cmdStats));
 }
 
 Console::~Console() {
@@ -129,6 +131,17 @@ bool Console::cmdPosition(int argc, const char **argv) {
 	return true;
 }
 
+bool Console::cmdStats(int argc, const char **argv) {
+	if (argc != 2)
+		debugPrintf("Usage: %s <1/0>\n", argv[0]);
+	else {
+		bool show = atoi(argv[1]);
+		_vm->_showStats = show;
+	}
+
+	return true;
+}
+
 bool Console::cmdTeleport(int argc, const char **argv) {
 	if (argc != 4)
 		debugPrintf("Usage: %s <u> <v> <z>\n", argv[0]);
diff --git a/engines/saga2/console.h b/engines/saga2/console.h
index 7322f59fae..782ecb5195 100644
--- a/engines/saga2/console.h
+++ b/engines/saga2/console.h
@@ -49,6 +49,8 @@ private:
 
 	bool cmdPosition(int argc, const char **argv);
 
+	bool cmdStats(int argc, const char **argv);
+
 	bool cmdTeleport(int argc, const char **argv);
 
 	bool cmdGotoPlace(int argc, const char **argv);
diff --git a/engines/saga2/main.cpp b/engines/saga2/main.cpp
index 4370c318c6..ee41c9c97b 100644
--- a/engines/saga2/main.cpp
+++ b/engines/saga2/main.cpp
@@ -44,6 +44,7 @@
 #include "saga2/saveload.h"
 #include "saga2/gamerate.h"
 #include "saga2/msgbox.h"
+#include "saga2/grabinfo.h"
 
 namespace Saga2 {
 
@@ -363,6 +364,23 @@ void showDebugMessages() {
 		TilePoint p = centerActorCoords();
 		WriteStatusF2(0, "Position: %d, %d, %d", p.u, p.v, p.z);
 	}
+
+	if (g_vm->_showStats) {
+		ObjectID objID = g_vm->_mouseInfo->getObjectId();
+		GameObject *obj = GameObject::objectAddress(objID);
+
+		if (ProtoObj *p = obj->proto()) {
+			WriteStatusF2(1, "%s (%d)", obj->objName(), objID);
+			WriteStatusF2(2, "dmg = %d", p->weaponDamage);
+			WriteStatusF2(3, "firerate = %d", p->weaponFireRate);
+			WriteStatusF2(4, "maximumRange = %d", p->maximumRange);
+			WriteStatusF2(5, "dmgAbsorbtion = %d", p->damageAbsorbtion);
+			WriteStatusF2(6, "dmgDivider = %d", p->damageDivider);
+			WriteStatusF2(7, "defenseBonus = %d", p->defenseBonus);
+			WriteStatusF2(8, "maxCharges = %d", p->maxCharges);
+			WriteStatusF2(9, "price = %d", p->price);
+		}
+	}
 }
 
 /* ===================================================================== *
diff --git a/engines/saga2/saga2.cpp b/engines/saga2/saga2.cpp
index 81aa222c59..46220aa904 100644
--- a/engines/saga2/saga2.cpp
+++ b/engines/saga2/saga2.cpp
@@ -73,6 +73,7 @@ Saga2Engine::Saga2Engine(OSystem *syst)
 	_showNight = true;
 	_speechText = true;
 	_showPosition = false;
+	_showStats = false;
 
 	SearchMan.addSubDirectoryMatching(gameDataDir, "res");
 	SearchMan.addSubDirectoryMatching(gameDataDir, "dos/drivers"); // For Miles Sound files
diff --git a/engines/saga2/saga2.h b/engines/saga2/saga2.h
index b4002ceec6..fbb40c3fd9 100644
--- a/engines/saga2/saga2.h
+++ b/engines/saga2/saga2.h
@@ -177,6 +177,7 @@ public:
 	bool _speechText;
 
 	bool _showPosition;
+	bool _showStats;
 
 private:
 	Video::SmackerDecoder *_smkDecoder;


Commit: afc8a0328ff77ba870b8f792bb3e3b285bdd85b9
    https://github.com/scummvm/scummvm/commit/afc8a0328ff77ba870b8f792bb3e3b285bdd85b9
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-20T21:33:43+09:00

Commit Message:
SAGA2: Implement command to search objects

Changed paths:
    engines/saga2/console.cpp
    engines/saga2/console.h
    engines/saga2/objects.h


diff --git a/engines/saga2/console.cpp b/engines/saga2/console.cpp
index 6b1af16fbf..3463365b03 100644
--- a/engines/saga2/console.cpp
+++ b/engines/saga2/console.cpp
@@ -32,6 +32,7 @@ namespace Saga2 {
 #define MAX_MAP_FEATURES 128
 
 extern pCMapFeature mapFeatures[];
+extern GameObject *objectList;
 
 Console::Console(Saga2Engine *vm) : GUI::Debugger() {
 	_vm = vm;
@@ -46,6 +47,8 @@ Console::Console(Saga2Engine *vm) : GUI::Debugger() {
 
 	registerCmd("name2id", WRAP_METHOD(Console, cmdObjNameToID));
 
+	registerCmd("search_obj", WRAP_METHOD(Console, cmdSearchObj));
+
 	registerCmd("position", WRAP_METHOD(Console, cmdPosition));
 
 	registerCmd("teleport", WRAP_METHOD(Console, cmdTeleport));
@@ -108,7 +111,7 @@ bool Console::cmdObjName(int argc, const char **argv) {
 
 bool Console::cmdObjNameToID(int argc, const char **argv) {
 	if (argc != 2)
-		debugPrintf("Usage: %s <Name index>", argv[0]);
+		debugPrintf("Usage: %s <Name index>\n", argv[0]);
 	else {
 		int32 id = GameObject::nameIndexToID(atoi(argv[1]));
 		if (id == -1)
@@ -120,6 +123,21 @@ bool Console::cmdObjNameToID(int argc, const char **argv) {
 	return true;
 }
 
+bool Console::cmdSearchObj(int argc, const char **argv) {
+	if (argc != 2)
+		debugPrintf("Usage: %s <Object name>\n", argv[0]);
+	else {
+		for (int i = 0; i < objectCount; ++i) {
+			Common::String objName = objectList[i].objName();
+			objName.toLowercase();
+			if (objName.contains(argv[1]))
+				debugPrintf("%d: %s\n", i, objectList[i].objName());
+		}
+	}
+
+	return true;
+}
+
 bool Console::cmdPosition(int argc, const char **argv) {
 	if (argc != 2)
 		debugPrintf("Usage: %s <1/0>\n", argv[0]);
diff --git a/engines/saga2/console.h b/engines/saga2/console.h
index 782ecb5195..5eb268add5 100644
--- a/engines/saga2/console.h
+++ b/engines/saga2/console.h
@@ -45,6 +45,8 @@ private:
 
 	bool cmdObjNameToID(int argc, const char **argv);
 
+	bool cmdSearchObj(int argc, const char **argv);
+
 	bool cmdGodmode(int argc, const char **argv);
 
 	bool cmdPosition(int argc, const char **argv);
diff --git a/engines/saga2/objects.h b/engines/saga2/objects.h
index 1415275a93..6c0a651d1c 100644
--- a/engines/saga2/objects.h
+++ b/engines/saga2/objects.h
@@ -458,7 +458,12 @@ public:
 
 	//  Return the name of this object (proper noun if it has one)
 	const char *objName(void) {
-		return nameText((int16)(_data.nameIndex > 0 ? _data.nameIndex : prototype->nameIndex));
+		if (_data.nameIndex > 0)
+			return nameText((int16)_data.nameIndex);
+		else if (prototype)
+			return nameText((int16)prototype->nameIndex);
+
+		return nameText(0);
 	}
 
 	// return name of object, and it's quantity if merged


Commit: 7d4d82e9945923151fb3275f34a85ddec45db446
    https://github.com/scummvm/scummvm/commit/7d4d82e9945923151fb3275f34a85ddec45db446
Author: a/ (yuri.kgpps at gmail.com)
Date: 2021-07-20T21:33:43+09:00

Commit Message:
SAGA2: Implement command to add objects to inventory

Changed paths:
    engines/saga2/console.cpp
    engines/saga2/console.h


diff --git a/engines/saga2/console.cpp b/engines/saga2/console.cpp
index 3463365b03..4dffb788be 100644
--- a/engines/saga2/console.cpp
+++ b/engines/saga2/console.cpp
@@ -49,6 +49,8 @@ Console::Console(Saga2Engine *vm) : GUI::Debugger() {
 
 	registerCmd("search_obj", WRAP_METHOD(Console, cmdSearchObj));
 
+	registerCmd("add_obj", WRAP_METHOD(Console, cmdAddObj));
+
 	registerCmd("position", WRAP_METHOD(Console, cmdPosition));
 
 	registerCmd("teleport", WRAP_METHOD(Console, cmdTeleport));
@@ -138,6 +140,17 @@ bool Console::cmdSearchObj(int argc, const char **argv) {
 	return true;
 }
 
+bool Console::cmdAddObj(int argc, const char **argv) {
+	if (argc != 2)
+		debugPrintf("Usage: %s <ObjectID>\n", argv[0]);
+	else {
+		Actor *a = getCenterActor();
+		a->placeObject(a->thisID(), atoi(argv[1]));
+	}
+
+	return true;
+}
+
 bool Console::cmdPosition(int argc, const char **argv) {
 	if (argc != 2)
 		debugPrintf("Usage: %s <1/0>\n", argv[0]);
diff --git a/engines/saga2/console.h b/engines/saga2/console.h
index 5eb268add5..ee4a90e0f6 100644
--- a/engines/saga2/console.h
+++ b/engines/saga2/console.h
@@ -47,6 +47,8 @@ private:
 
 	bool cmdSearchObj(int argc, const char **argv);
 
+	bool cmdAddObj(int argc, const char **argv);
+
 	bool cmdGodmode(int argc, const char **argv);
 
 	bool cmdPosition(int argc, const char **argv);




More information about the Scummvm-git-logs mailing list