aboutsummaryrefslogtreecommitdiff
path: root/engines/macventure/script.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2016-09-05 18:58:14 +0200
committerTorbjörn Andersson2016-09-05 18:58:14 +0200
commitc4368a7cd205dd8bcadc485819bb0ad8ae18b2c7 (patch)
treee3fd091f9a31632bdc0fbd61b1f561e0e6a13e73 /engines/macventure/script.cpp
parent89dd40cd247fa45349d32a012e2816d2e21cccfe (diff)
downloadscummvm-rg350-c4368a7cd205dd8bcadc485819bb0ad8ae18b2c7.tar.gz
scummvm-rg350-c4368a7cd205dd8bcadc485819bb0ad8ae18b2c7.tar.bz2
scummvm-rg350-c4368a7cd205dd8bcadc485819bb0ad8ae18b2c7.zip
MACVENTURE: Make opcode $ca return current time, not played time
This is used by some games to determine the appropriate greeting, e.g. "Good evening" if you play the game in the evening.
Diffstat (limited to 'engines/macventure/script.cpp')
-rw-r--r--engines/macventure/script.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/engines/macventure/script.cpp b/engines/macventure/script.cpp
index 87ba7178bc..2a1ffcfa1a 100644
--- a/engines/macventure/script.cpp
+++ b/engines/macventure/script.cpp
@@ -1044,19 +1044,20 @@ void ScriptEngine::opc9WAIT(EngineState *state, EngineFrame *frame) {
}
void ScriptEngine::opcaTIME(EngineState *state, EngineFrame *frame) {
- for (uint i = 0; i < 3; i++) {// We skip year, month and date
- state->push(0x00);
- }
+ TimeDate t;
+ g_system->getTimeAndDate(t);
+
+ int year = 1900 + t.tm_year;
+ int month = 1 + t.tm_mon;
+
+ state->push(year);
+ state->push(month);
+ state->push(t.tm_mday);
+ state->push(t.tm_hour);
+ state->push(t.tm_min);
+ state->push(t.tm_sec);
- uint32 totalPlayTime = _engine->getTotalPlayTime() / 1000; // In seconds
- int16 hours = totalPlayTime / 3600;
- totalPlayTime %= 3600;
- state->push(hours);
- int16 minutes = totalPlayTime / 60;
- totalPlayTime %= 60;
- state->push(minutes);
- state->push(totalPlayTime);
- debugC(2, kMVDebugScript, "Saved time: h[%d] m[%d] s[%d]", hours, minutes, totalPlayTime);
+ debugC(2, kMVDebugScript, "Saved time: Y[%d] M[%d] D[%d] h[%d] m[%d] s[%d]", year, month, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
}
void ScriptEngine::opcbDAY(EngineState *state, EngineFrame *frame) {