NANCY: Don't store time of day

Removed the timeOfDay property, since it is much simpler for
it to be calculated on the fly when needed.
This commit is contained in:
Kaloyan Chehlarski committed 2023-03-15 18:25:01 +02:00
1 parent 9988b3ba43
commit 87c7cdb577
4 files changed
+18 -19

No files matched your search

+1 -1
View File
@@ -288,7 +288,7 @@ void ActionManager::processActionRecords() {
break;
}
case DependencyType::kPlayerTOD:
if (dep.label == NancySceneState._timers.timeOfDay) {
if (dep.label == NancySceneState.getPlayerTOD()) {
dep.satisfied = true;
}
+11 -11
View File
@@ -223,6 +223,16 @@ void Scene::setPlayerTime(Time time, byte relative) {
_timers.playerTimeNextMinute = g_nancy->getTotalPlayTime() + g_nancy->_playerTimeMinuteLength;
}
byte Scene::getPlayerTOD() const {
if (_timers.playerTime.getHours() >= 7 && _timers.playerTime.getHours() < 18) {
return kPlayerDay;
} else if (_timers.playerTime.getHours() >= 19 || _timers.playerTime.getHours() < 6) {
return kPlayerNight;
} else {
return kPlayerDuskDawn;
}
}
void Scene::addItemToInventory(uint16 id) {
_flags.items[id] = kInvHolding;
if (_flags.heldItem == id) {
@@ -388,7 +398,7 @@ void Scene::synchronize(Common::Serializer &ser) {
ser.syncAsUint32LE((uint32 &)_timers.pushedPlayTime);
ser.syncAsUint32LE((uint32 &)_timers.timerTime);
ser.syncAsByte(_timers.timerIsActive);
ser.syncAsByte(_timers.timeOfDay);
ser.skip(1); // timeOfDay; To be removed on next savefile version bump
g_nancy->setTotalPlayTime((uint32)_timers.lastTotalTime);
@@ -445,7 +455,6 @@ void Scene::init() {
_timers.timerIsActive = false;
_timers.playerTimeNextMinute = 0;
_timers.pushedPlayTime = 0;
_timers.timeOfDay = kPlayerDay;
changeScene(g_nancy->_firstScene);
@@ -598,15 +607,6 @@ void Scene::run() {
_timers.playerTimeNextMinute = currentPlayTime + g_nancy->_playerTimeMinuteLength;
}
// Set the time of day according to playerTime
if (_timers.playerTime.getHours() >= 7 && _timers.playerTime.getHours() < 18) {
_timers.timeOfDay = kPlayerDay;
} else if (_timers.playerTime.getHours() >= 19 || _timers.playerTime.getHours() < 6) {
_timers.timeOfDay = kPlayerNight;
} else {
_timers.timeOfDay = kPlayerDuskDawn;
}
// Update the UI elements and handle input
NancyInput input = g_nancy->_input->getInput();
+1 -2
View File
@@ -127,7 +127,7 @@ public:
void setPlayerTime(Time time, byte relative);
Time getPlayerTime() const { return _timers.playerTime; }
byte getPlayerTOD() const { return _timers.timeOfDay; }
byte getPlayerTOD() const;
void addItemToInventory(uint16 id);
void removeItemFromInventory(uint16 id, bool pickUp = true);
@@ -212,7 +212,6 @@ private:
bool timerIsActive = false;
Time playerTime; // In-game time of day, adds a minute every 5 seconds
Time playerTimeNextMinute; // Stores the next tick count until we add a minute to playerTime
byte timeOfDay = kPlayerDay;
};
struct PlayFlags {
+5 -5
View File
@@ -67,12 +67,12 @@ public:
friend bool operator>= (const Time &l, const uint32 &r) { return !(l < r); }
friend bool operator>= (const uint32 &l, const Time &r) { return !(l < r); }
uint16 getSeconds() { return (_milliseconds / 1000) % 60; }
uint16 getMinutes() { return (_milliseconds / 60000) % 60; }
uint16 getTotalHours() { return _milliseconds / 3600000; }
uint16 getSeconds() const { return (_milliseconds / 1000) % 60; }
uint16 getMinutes() const { return (_milliseconds / 60000) % 60; }
uint16 getTotalHours() const { return _milliseconds / 3600000; }
uint16 getHours() { return (_milliseconds / 3600000) % 24; } // Used for player time
uint16 getDays() { return _milliseconds / 86400000; } // up to 49.7 days
uint16 getHours() const { return (_milliseconds / 3600000) % 24; } // Used for player time
uint16 getDays() const { return _milliseconds / 86400000; } // up to 49.7 days
private:
uint32 _milliseconds;