[Scummvm-git-logs] scummvm master -> a018fae9684accc7db9945c48a1534aeba544c30

dreammaster paulfgilbert at gmail.com
Sun Sep 27 18:50:11 UTC 2020


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:
00d845eef2 ULTIMA4: Added debugger command to disable hunger
a018fae968 ULTIMA4: Add debugger cmd & cheat keybinding to disable combat


Commit: 00d845eef23e877b531ee540099d98d680129094
    https://github.com/scummvm/scummvm/commit/00d845eef23e877b531ee540099d98d680129094
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-09-27T11:49:52-07:00

Commit Message:
ULTIMA4: Added debugger command to disable hunger

Changed paths:
    engines/ultima/ultima4/core/debugger.cpp
    engines/ultima/ultima4/core/debugger.h
    engines/ultima/ultima4/game/player.cpp


diff --git a/engines/ultima/ultima4/core/debugger.cpp b/engines/ultima/ultima4/core/debugger.cpp
index a80ad7880b..5ee9efcd99 100644
--- a/engines/ultima/ultima4/core/debugger.cpp
+++ b/engines/ultima/ultima4/core/debugger.cpp
@@ -52,6 +52,7 @@ Debugger *g_debugger;
 Debugger::Debugger() : Shared::Debugger() {
 	g_debugger = this;
 	_collisionOverride = false;
+	_disableHunger = false;
 	_dontEndTurn = false;
 
 	registerCmd("move", WRAP_METHOD(Debugger, cmdMove));
@@ -101,6 +102,7 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("fullstats", WRAP_METHOD(Debugger, cmdFullStats));
 	registerCmd("gate", WRAP_METHOD(Debugger, cmdGate));
 	registerCmd("goto", WRAP_METHOD(Debugger, cmdGoto));
+	registerCmd("hunger", WRAP_METHOD(Debugger, cmdHunger));
 	registerCmd("items", WRAP_METHOD(Debugger, cmdItems));
 	registerCmd("karma", WRAP_METHOD(Debugger, cmdKarma));
 	registerCmd("leave", WRAP_METHOD(Debugger, cmdLeave));
@@ -1634,6 +1636,14 @@ bool Debugger::cmdFullStats(int argc, const char **argv) {
 	return isDebuggerActive();
 }
 
+bool Debugger::cmdHunger(int argc, const char **argv) {
+	_disableHunger = !_disableHunger;
+	print("Party hunger %s",
+		_disableHunger ? "off" : "on");
+
+	return isDebuggerActive();
+}
+
 bool Debugger::cmdSummon(int argc, const char **argv) {
 	Common::String creature;
 
diff --git a/engines/ultima/ultima4/core/debugger.h b/engines/ultima/ultima4/core/debugger.h
index 7a0549c671..68d794ba84 100644
--- a/engines/ultima/ultima4/core/debugger.h
+++ b/engines/ultima/ultima4/core/debugger.h
@@ -291,6 +291,11 @@ private:
 	 */
 	bool cmdFullStats(int argc, const char **argv);
 
+	/**
+	 * Toggle hunger on or off
+	 */
+	bool cmdHunger(int argc, const char **argv);
+
 	/**
 	 * Moongate teleportation
 	 */
@@ -392,6 +397,7 @@ private:
 	bool cmdListTriggers(int argc, const char **argv);
 public:
 	bool _collisionOverride;
+	bool _disableHunger;
 public:
 	Debugger();
 	~Debugger() override;
diff --git a/engines/ultima/ultima4/game/player.cpp b/engines/ultima/ultima4/game/player.cpp
index c72a5b9c63..13ba4c4018 100644
--- a/engines/ultima/ultima4/game/player.cpp
+++ b/engines/ultima/ultima4/game/player.cpp
@@ -27,6 +27,7 @@
 #include "ultima/ultima4/game/names.h"
 #include "ultima/ultima4/game/weapon.h"
 #include "ultima/ultima4/controllers/combat_controller.h"
+#include "ultima/ultima4/core/debugger.h"
 #include "ultima/ultima4/core/types.h"
 #include "ultima/ultima4/core/utils.h"
 #include "ultima/ultima4/map/annotation.h"
@@ -647,6 +648,10 @@ Common::String Party::translate(Std::vector<Common::String> &parts) {
 }
 
 void Party::adjustFood(int food) {
+	// Check for cheat that disables party hunger
+	if (food < 0 && g_debugger->_disableHunger)
+		return;
+
 	int oldFood = _saveGame->_food;
 	AdjustValue(_saveGame->_food, food, 999900, 0);
 	if ((_saveGame->_food / 100) != (oldFood / 100)) {


Commit: a018fae9684accc7db9945c48a1534aeba544c30
    https://github.com/scummvm/scummvm/commit/a018fae9684accc7db9945c48a1534aeba544c30
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-09-27T11:49:52-07:00

Commit Message:
ULTIMA4: Add debugger cmd & cheat keybinding to disable combat

Changed paths:
    engines/ultima/ultima4/controllers/game_controller.cpp
    engines/ultima/ultima4/core/debugger.cpp
    engines/ultima/ultima4/core/debugger.h
    engines/ultima/ultima4/meta_engine.cpp
    engines/ultima/ultima4/meta_engine.h


diff --git a/engines/ultima/ultima4/controllers/game_controller.cpp b/engines/ultima/ultima4/controllers/game_controller.cpp
index ecab0c3230..f60cbd5e28 100644
--- a/engines/ultima/ultima4/controllers/game_controller.cpp
+++ b/engines/ultima/ultima4/controllers/game_controller.cpp
@@ -746,6 +746,10 @@ void GameController::checkRandomCreatures() {
 	        xu4_random(spawnDivisor) != 0)
 		return;
 
+	// If combat is turned off, then don't spawn any creator
+	if (g_debugger->_disableCombat)
+		return;
+
 	gameSpawnCreature(nullptr);
 }
 
diff --git a/engines/ultima/ultima4/core/debugger.cpp b/engines/ultima/ultima4/core/debugger.cpp
index 5ee9efcd99..5d965002ef 100644
--- a/engines/ultima/ultima4/core/debugger.cpp
+++ b/engines/ultima/ultima4/core/debugger.cpp
@@ -52,6 +52,7 @@ Debugger *g_debugger;
 Debugger::Debugger() : Shared::Debugger() {
 	g_debugger = this;
 	_collisionOverride = false;
+	_disableCombat = false;
 	_disableHunger = false;
 	_dontEndTurn = false;
 
@@ -92,6 +93,7 @@ Debugger::Debugger() : Shared::Debugger() {
 	registerCmd("3d", WRAP_METHOD(Debugger, cmd3d));
 	registerCmd("abyss", WRAP_METHOD(Debugger, cmdAbyss));
 	registerCmd("collisions", WRAP_METHOD(Debugger, cmdCollisions));
+	registerCmd("combat", WRAP_METHOD(Debugger, cmdCombat));
 	registerCmd("companions", WRAP_METHOD(Debugger, cmdCompanions));
 	registerCmd("destroy", WRAP_METHOD(Debugger, cmdDestroy));
 	registerCmd("destroy_creatures", WRAP_METHOD(Debugger, cmdDestroyCreatures));
@@ -1273,6 +1275,14 @@ bool Debugger::cmdCompanions(int argc, const char **argv) {
 	return isDebuggerActive();
 }
 
+bool Debugger::cmdCombat(int argc, const char **argv) {
+	_disableCombat = !_disableCombat;
+	print("Combat encounters %s",
+		_disableCombat ? "off" : "on");
+
+	return isDebuggerActive();
+}
+
 bool Debugger::cmdDestroy(int argc, const char **argv) {
 	Direction dir;
 
diff --git a/engines/ultima/ultima4/core/debugger.h b/engines/ultima/ultima4/core/debugger.h
index 68d794ba84..d7001a7c30 100644
--- a/engines/ultima/ultima4/core/debugger.h
+++ b/engines/ultima/ultima4/core/debugger.h
@@ -261,6 +261,11 @@ private:
 	 */
 	bool cmdCompanions(int argc, const char **argv);
 
+	/**
+	 * Toggle whether combat occurs
+	 */
+	bool cmdCombat(int argc, const char **argv);
+
 	/**
 	 * Destroy an object
 	 */
@@ -398,6 +403,7 @@ private:
 public:
 	bool _collisionOverride;
 	bool _disableHunger;
+	bool _disableCombat;
 public:
 	Debugger();
 	~Debugger() override;
diff --git a/engines/ultima/ultima4/meta_engine.cpp b/engines/ultima/ultima4/meta_engine.cpp
index 46384354e6..64ed96d17f 100644
--- a/engines/ultima/ultima4/meta_engine.cpp
+++ b/engines/ultima/ultima4/meta_engine.cpp
@@ -112,6 +112,7 @@ static const KeybindingRecord CHEAT_KEYS[] = {
 	{ KEYBIND_CHEAT_KARMA, "CHEAT-KARMA", "List Karma", "karma", "A+k", nullptr },
 	{ KEYBIND_CHEAT_LEAVE, "CHEAT-LEAVE", "Leave Location", "leave", "A+l", nullptr },
 	{ KEYBIND_CHEAT_MIXTURES, "CHEAT-MIXTURES", "Give Mixtures", "mixtures", "A+m", nullptr },
+	{ KEYBIND_CHEAT_NO_COMBAT, "CHEAT-NOCOMBAT", "Combat Encounters", "combat", "A+n", nullptr },
 	{ KEYBIND_CHEAT_OVERHEAD, "CHEAT_OVERHEAD", "Toggle Overhead View", "overhead", "A+o", nullptr },
 	{ KEYBIND_CHEAT_PARTY, "CHEAT-PARTY", "Full Party", "companions", "A+p", nullptr },
 	{ KEYBIND_CHEAT_REAGENTS, "CHEAT-REAGENTS", "Give Reagents", "reagents", "A+r", nullptr },
diff --git a/engines/ultima/ultima4/meta_engine.h b/engines/ultima/ultima4/meta_engine.h
index bdb6d61d65..675ed19cdc 100644
--- a/engines/ultima/ultima4/meta_engine.h
+++ b/engines/ultima/ultima4/meta_engine.h
@@ -51,10 +51,10 @@ enum KeybindingAction {
 	KEYBIND_CHEAT_DESTROY_CREATURES, KEYBIND_CHEAT_EQUIPMENT,
 	KEYBIND_CHEAT_FLEE, KEYBIND_CHEAT_GOTO, KEYBIND_CHEAT_HELP,
 	KEYBIND_CHEAT_ITEMS, KEYBIND_CHEAT_KARMA, KEYBIND_CHEAT_LEAVE,
-	KEYBIND_CHEAT_MIXTURES, KEYBIND_CHEAT_OVERHEAD, KEYBIND_CHEAT_PARTY,
-	KEYBIND_CHEAT_REAGENTS, KEYBIND_CHEAT_STATS, KEYBIND_CHEAT_TRANSPORT,
-	KEYBIND_CHEAT_UP, KEYBIND_CHEAT_DOWN, KEYBIND_CHEAT_VIRTUE,
-	KEYBIND_CHEAT_WIND,
+	KEYBIND_CHEAT_MIXTURES, KEYBIND_CHEAT_NO_COMBAT,
+	KEYBIND_CHEAT_OVERHEAD, KEYBIND_CHEAT_PARTY, KEYBIND_CHEAT_REAGENTS,
+	KEYBIND_CHEAT_STATS, KEYBIND_CHEAT_TRANSPORT, KEYBIND_CHEAT_UP,
+	KEYBIND_CHEAT_DOWN, KEYBIND_CHEAT_VIRTUE, KEYBIND_CHEAT_WIND,
 
 	KEYBIND_NONE
 };




More information about the Scummvm-git-logs mailing list