[Scummvm-git-logs] scummvm master -> eb6942fbc3656d98d2f138e9c8c24ba8b740a340
dreammaster
noreply at scummvm.org
Sun Jun 23 22:25:43 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
eb6942fbc3 BAGEL: Added 'timefreeze' console command to pause time
Commit: eb6942fbc3656d98d2f138e9c8c24ba8b740a340
https://github.com/scummvm/scummvm/commit/eb6942fbc3656d98d2f138e9c8c24ba8b740a340
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2024-06-23T15:25:18-07:00
Commit Message:
BAGEL: Added 'timefreeze' console command to pause time
Changed paths:
engines/bagel/baglib/var.cpp
engines/bagel/baglib/var.h
engines/bagel/console.cpp
engines/bagel/console.h
diff --git a/engines/bagel/baglib/var.cpp b/engines/bagel/baglib/var.cpp
index 9b923486991..664500afc47 100644
--- a/engines/bagel/baglib/var.cpp
+++ b/engines/bagel/baglib/var.cpp
@@ -70,12 +70,14 @@ CBagVar::~CBagVar() {
void CBagVar::setValue(const CBofString &s) {
assert(isValidObject(this));
- if (!s.isEmpty()) {
- char c = s[0];
- if (Common::isDigit(c) || c == '-')
- setNumeric();
+ if (!_freeze) {
+ if (!s.isEmpty()) {
+ char c = s[0];
+ if (Common::isDigit(c) || c == '-')
+ setNumeric();
+ }
+ _sVarValue = s;
}
- _sVarValue = s;
}
const CBofString &CBagVar::getValue() {
@@ -117,10 +119,12 @@ void CBagVar::setBoolValue(bool bVal) {
void CBagVar::setValue(int nVal) {
assert(isValidObject(this));
- setNumeric();
+ if (!_freeze) {
+ setNumeric();
- Common::String tmp = Common::String::format("%d", nVal);
- _sVarValue = tmp.c_str();
+ Common::String tmp = Common::String::format("%d", nVal);
+ _sVarValue = tmp.c_str();
+ }
}
int CBagVar::getNumValue() {
diff --git a/engines/bagel/baglib/var.h b/engines/bagel/baglib/var.h
index 27a47148f2b..dd69ce6c072 100644
--- a/engines/bagel/baglib/var.h
+++ b/engines/bagel/baglib/var.h
@@ -42,6 +42,7 @@ private:
bool _bReference : 1; // Is the variable a reference to an objects state date
bool _bTimer : 1; // Is the variable updated on object timer events
bool _bRandom : 1; // Is the variable updated as a random number
+ bool _freeze = false;
public:
CBagVar();
@@ -80,6 +81,9 @@ public:
bool isRandom() {
return _bRandom;
}
+ bool isFrozen() const {
+ return _freeze;
+ }
VARTYPE getType() {
return _xVarType;
}
@@ -104,6 +108,9 @@ public:
void setRandom(bool bVal = true) {
_bRandom = bVal;
}
+ void setFreeze(bool bVal = true) {
+ _freeze = bVal;
+ }
void setString() {
_xVarType = STRING;
}
diff --git a/engines/bagel/console.cpp b/engines/bagel/console.cpp
index c55f3803d80..00c7a8f826d 100644
--- a/engines/bagel/console.cpp
+++ b/engines/bagel/console.cpp
@@ -37,6 +37,7 @@ Console::Console() : GUI::Debugger() {
registerCmd("save", WRAP_METHOD(Console, cmdSave));
registerCmd("load", WRAP_METHOD(Console, cmdLoad));
registerCmd("video", WRAP_METHOD(Console, cmdVideo));
+ registerCmd("timefreeze", WRAP_METHOD(Console, cmdTimefreeze));
}
Console::~Console() {
@@ -157,4 +158,12 @@ bool Console::cmdVideo(int argc, const char **argv) {
}
}
+bool Console::cmdTimefreeze(int argc, const char **argv) {
+ CBagVar *var = g_VarManager->getVariable("TURNCOUNT");
+ var->setFreeze(!var->isFrozen());
+
+ debugPrintf("Time freeze is %s\n", var->isFrozen() ? "on" : "off");
+ return true;
+}
+
} // End of namespace Bagel
diff --git a/engines/bagel/console.h b/engines/bagel/console.h
index f8cf7a11d87..f19b9617b35 100644
--- a/engines/bagel/console.h
+++ b/engines/bagel/console.h
@@ -36,6 +36,7 @@ private:
bool cmdSave(int argc, const char **argv);
bool cmdVideo(int argc, const char **argv);
bool cmdMegawave(int argc, const char **argv);
+ bool cmdTimefreeze(int argc, const char **argv);
public:
Console();
More information about the Scummvm-git-logs
mailing list