[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