mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
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:
1 parent
9988b3ba43
commit
87c7cdb577
4 files changed
+18
-19
No files matched your search
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user