diff options
author | Max Horn | 2009-10-08 19:41:38 +0000 |
---|---|---|
committer | Max Horn | 2009-10-08 19:41:38 +0000 |
commit | 42120ed626c0d18bc1e1738678dbd1fa96481f04 (patch) | |
tree | 90715ea5e5bb3f3f24547f484b2355194b9cd93c /engines | |
parent | f5ccaf7e29183d6e51456d5994eccfd35ff9a117 (diff) | |
download | scummvm-rg350-42120ed626c0d18bc1e1738678dbd1fa96481f04.tar.gz scummvm-rg350-42120ed626c0d18bc1e1738678dbd1fa96481f04.tar.bz2 scummvm-rg350-42120ed626c0d18bc1e1738678dbd1fa96481f04.zip |
Introduce a new struct TimeDate, replacing struct tm in client code. May lead to compilation issues in ports, which should be trivial to fix, though
svn-id: r44793
Diffstat (limited to 'engines')
-rw-r--r-- | engines/agi/saveload.cpp | 4 | ||||
-rw-r--r-- | engines/draci/saveload.cpp | 4 | ||||
-rw-r--r-- | engines/gob/inter.cpp | 4 | ||||
-rw-r--r-- | engines/saga/saveload.cpp | 4 | ||||
-rw-r--r-- | engines/sci/engine/kmisc.cpp | 4 | ||||
-rw-r--r-- | engines/sci/engine/savegame.cpp | 5 | ||||
-rw-r--r-- | engines/scumm/saveload.cpp | 6 | ||||
-rw-r--r-- | engines/scumm/script_v6.cpp | 4 | ||||
-rw-r--r-- | engines/sword1/control.cpp | 6 | ||||
-rw-r--r-- | engines/tinsel/saveload.cpp | 33 | ||||
-rw-r--r-- | engines/tinsel/savescn.h | 4 |
11 files changed, 37 insertions, 41 deletions
diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp index 2b03f418ee..e3371329d0 100644 --- a/engines/agi/saveload.cpp +++ b/engines/agi/saveload.cpp @@ -28,8 +28,6 @@ // Multi-slots by Claudio Matsuoka <claudio@helllabs.org> // -#include <time.h> // for extended infos - #include "common/file.h" #include "graphics/thumbnail.h" #include "common/config-manager.h" @@ -79,7 +77,7 @@ int AgiEngine::saveGame(const char *fileName, const char *description) { Graphics::saveThumbnail(*out); // Creation date/time - tm curTime; + TimeDate curTime; _system->getTimeAndDate(curTime); uint32 saveDate = ((curTime.tm_mday & 0xFF) << 24) | (((curTime.tm_mon + 1) & 0xFF) << 16) | ((curTime.tm_year + 1900) & 0xFFFF); diff --git a/engines/draci/saveload.cpp b/engines/draci/saveload.cpp index f74deb5c14..cebe04bf73 100644 --- a/engines/draci/saveload.cpp +++ b/engines/draci/saveload.cpp @@ -23,8 +23,6 @@ * */ -#include <time.h> // for extended infos - #include "draci/draci.h" #include "draci/saveload.h" @@ -95,7 +93,7 @@ Common::Error saveSavegameData(int saveGameIdx, const Common::String &saveName, if (f == NULL) return Common::kNoGameDataFoundError; - tm curTime; + TimeDate curTime; vm._system->getTimeAndDate(curTime); // Save the savegame header diff --git a/engines/gob/inter.cpp b/engines/gob/inter.cpp index afd215a00d..0d48ad719c 100644 --- a/engines/gob/inter.cpp +++ b/engines/gob/inter.cpp @@ -23,8 +23,6 @@ * */ -#include <time.h> // FIXME: for Inter::renewTimeInVars() - #include "common/endian.h" #include "gob/gob.h" @@ -159,7 +157,7 @@ void Inter::initControlVars(char full) { } void Inter::renewTimeInVars() { - struct tm t; + TimeDate t; _vm->_system->getTimeAndDate(t); WRITE_VAR(5, 1900 + t.tm_year); diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp index 56fb366405..bb63e690b2 100644 --- a/engines/saga/saveload.cpp +++ b/engines/saga/saveload.cpp @@ -23,8 +23,6 @@ * */ -#include <time.h> // for extended infos - #include "common/config-manager.h" #include "common/savefile.h" #include "common/system.h" @@ -199,7 +197,7 @@ void SagaEngine::save(const char *fileName, const char *saveName) { Graphics::saveThumbnail(*out); // Date / time - tm curTime; + TimeDate curTime; _system->getTimeAndDate(curTime); uint32 saveDate = ((curTime.tm_mday & 0xFF) << 24) | (((curTime.tm_mon + 1) & 0xFF) << 16) | ((curTime.tm_year + 1900) & 0xFFFF); diff --git a/engines/sci/engine/kmisc.cpp b/engines/sci/engine/kmisc.cpp index dbe562b25a..46533f4e34 100644 --- a/engines/sci/engine/kmisc.cpp +++ b/engines/sci/engine/kmisc.cpp @@ -25,8 +25,6 @@ #include "common/system.h" -#include <time.h> // FIXME: For struct tm - #include "sci/sci.h" #include "sci/debug.h" #include "sci/engine/state.h" @@ -115,7 +113,7 @@ enum { }; reg_t kGetTime(EngineState *s, int argc, reg_t *argv) { - tm loc_time; + TimeDate loc_time; uint32 elapsedTime; int retval = 0; // Avoid spurious warning diff --git a/engines/sci/engine/savegame.cpp b/engines/sci/engine/savegame.cpp index 199c27e1a6..0779085612 100644 --- a/engines/sci/engine/savegame.cpp +++ b/engines/sci/engine/savegame.cpp @@ -28,9 +28,6 @@ #include "common/func.h" #include "common/serializer.h" -#include <time.h> // FIXME: For struct tm - - #include "sci/sci.h" #include "sci/gfx/operations.h" #include "sci/gfx/menubar.h" @@ -497,7 +494,7 @@ static void sync_songlib_t(Common::Serializer &s, SongLibrary &obj) { int gamestate_save(EngineState *s, Common::WriteStream *fh, const char* savename, const char *version) { - tm curTime; + TimeDate curTime; g_system->getTimeAndDate(curTime); SavegameMetadata meta; diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp index 9dad8cd054..db56c44daf 100644 --- a/engines/scumm/saveload.cpp +++ b/engines/scumm/saveload.cpp @@ -23,8 +23,6 @@ * */ -#include <time.h> // for ScummEngine::saveInfos / ScummEngine::loadInfos - #include "common/config-manager.h" #include "common/savefile.h" #include "common/system.h" @@ -779,10 +777,10 @@ void ScummEngine::saveInfos(Common::WriteStream* file) { section.size = SaveInfoSectionSize; // still save old format for older versions - section.timeTValue = time(0); + section.timeTValue = 0; section.playtime = _system->getMillis() / 1000 - _engineStartTime; - tm curTime; + TimeDate curTime; _system->getTimeAndDate(curTime); section.date = ((curTime.tm_mday & 0xFF) << 24) | (((curTime.tm_mon + 1) & 0xFF) << 16) | ((curTime.tm_year + 1900) & 0xFFFF); diff --git a/engines/scumm/script_v6.cpp b/engines/scumm/script_v6.cpp index 6df3c0c494..435cbf50c7 100644 --- a/engines/scumm/script_v6.cpp +++ b/engines/scumm/script_v6.cpp @@ -23,8 +23,6 @@ * */ -#include <time.h> // for ScummEngine_v6::o6_getDateTime() - #include "common/config-manager.h" #include "common/system.h" @@ -2940,7 +2938,7 @@ void ScummEngine_v6::o6_pickVarRandom() { } void ScummEngine_v6::o6_getDateTime() { - struct tm t; + TimeDate t; _system->getTimeAndDate(t); VAR(VAR_TIMEDATE_YEAR) = t.tm_year; diff --git a/engines/sword1/control.cpp b/engines/sword1/control.cpp index 5a3c614df4..31db54c4c8 100644 --- a/engines/sword1/control.cpp +++ b/engines/sword1/control.cpp @@ -23,8 +23,6 @@ * */ -#include <time.h> // for extended infos - #include "common/file.h" #include "common/util.h" #include "common/savefile.h" @@ -1112,7 +1110,7 @@ void Control::saveGameToFile(uint8 slot) { Graphics::saveThumbnail(*outf); // Date / time - tm curTime; + TimeDate curTime; _system->getTimeAndDate(curTime); uint32 saveDate = (curTime.tm_mday & 0xFF) << 24 | ((curTime.tm_mon + 1) & 0xFF) << 16 | ((curTime.tm_year + 1900) & 0xFFFF); @@ -1278,7 +1276,7 @@ bool Control::convertSaveGame(uint8 slot, char* desc) { newSave->writeByte(SAVEGAME_VERSION); // Date / time - tm curTime; + TimeDate curTime; _system->getTimeAndDate(curTime); uint32 saveDate = (curTime.tm_mday & 0xFF) << 24 | ((curTime.tm_mon + 1) & 0xFF) << 16 | ((curTime.tm_year + 1900) & 0xFFFF); diff --git a/engines/tinsel/saveload.cpp b/engines/tinsel/saveload.cpp index 79a47bc026..e265c434ef 100644 --- a/engines/tinsel/saveload.cpp +++ b/engines/tinsel/saveload.cpp @@ -95,7 +95,7 @@ struct SaveGameHeader { uint32 size; uint32 ver; char desc[SG_DESC_LEN]; - struct tm dateTime; + TimeDate dateTime; }; enum { @@ -124,18 +124,13 @@ static char *SaveSceneSsData = 0; // points to 'SAVED_DATA ssdata[MAX_NEST]' void setNeedLoad() { NeedLoad = true; } -static void syncTime(Common::Serializer &s, struct tm &t) { +static void syncTime(Common::Serializer &s, TimeDate &t) { s.syncAsUint16LE(t.tm_year); s.syncAsByte(t.tm_mon); s.syncAsByte(t.tm_mday); s.syncAsByte(t.tm_hour); s.syncAsByte(t.tm_min); s.syncAsByte(t.tm_sec); - if (s.isLoading()) { - t.tm_wday = 0; - t.tm_yday = 0; - t.tm_isdst = 0; - } } static bool syncSaveGameHeader(Common::Serializer &s, SaveGameHeader &hdr) { @@ -300,6 +295,28 @@ static char *NewName(void) { } /** + * Compare two TimeDate structs to see which one was earlier. + * Returns 0 if they are equal, a negative value if a is lower / first, and + * a positive value if b is lower / first. + */ +static int cmpTimeDate(const TimeDate &a, const TimeDate &b) { + int tmp; + + #define CMP_ENTRY(x) tmp = a.x - b.x; if (tmp != 0) return tmp + + CMP_ENTRY(tm_year); + CMP_ENTRY(tm_mon); + CMP_ENTRY(tm_mday); + CMP_ENTRY(tm_hour); + CMP_ENTRY(tm_min); + CMP_ENTRY(tm_sec); + + #undef CMP_ENTRY + + return 0; +} + +/** * Interrogate the current DOS directory for saved game files. * Store the file details, ordered by time, in savedFiles[] and return * the number of files found). @@ -341,7 +358,7 @@ int getList(Common::SaveFileManager *saveFileMan, const Common::String &target) i = numSfiles; #ifndef DISABLE_SAVEGAME_SORTING for (i = 0; i < numSfiles; i++) { - if (difftime(mktime(&hdr.dateTime), mktime(&savedFiles[i].dateTime)) > 0) { + if (cmpTimeDate(hdr.dateTime, savedFiles[i].dateTime) > 0) { Common::copy_backward(&savedFiles[i], &savedFiles[numSfiles], &savedFiles[numSfiles + 1]); break; } diff --git a/engines/tinsel/savescn.h b/engines/tinsel/savescn.h index 0f272c21bb..21e7dd032b 100644 --- a/engines/tinsel/savescn.h +++ b/engines/tinsel/savescn.h @@ -27,8 +27,6 @@ #ifndef TINSEL_SAVESCN_H #define TINSEL_SAVESCN_H -#include <time.h> // for time_t struct - #include "tinsel/actors.h" // SAVED_ACTOR #include "tinsel/dw.h" // SCNHANDLE #include "tinsel/rince.h" // SAVED_MOVER @@ -52,7 +50,7 @@ enum { struct SFILES { char name[FNAMELEN]; char desc[SG_DESC_LEN + 2]; - struct tm dateTime; + TimeDate dateTime; }; struct SAVED_DATA { |