aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorMax Horn2002-12-31 17:28:51 +0000
committerMax Horn2002-12-31 17:28:51 +0000
commita03b353dca2197e6a1da7882188af2391daefb15 (patch)
tree784dbd8477886932a38a7017f9fdce38ef0f9ddb /scumm
parent8bbbf4cbaf34b6671e62c5ffa57450bc0272230c (diff)
downloadscummvm-rg350-a03b353dca2197e6a1da7882188af2391daefb15.tar.gz
scummvm-rg350-a03b353dca2197e6a1da7882188af2391daefb15.tar.bz2
scummvm-rg350-a03b353dca2197e6a1da7882188af2391daefb15.zip
implemented o8_getDateTime
svn-id: r6295
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h8
-rw-r--r--scumm/script_v8.cpp19
-rw-r--r--scumm/scumm.h2
-rw-r--r--scumm/vars.cpp12
4 files changed, 28 insertions, 13 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 27ae5a3393..4a5d3318fa 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -439,6 +439,14 @@ protected:
void o8_getObjectImageHeight();
void o8_getStringWidth();
+
+ /* V8 Scumm Vars */
+ byte VAR_TIMEDATE_YEAR;
+ byte VAR_TIMEDATE_MONTH;
+ byte VAR_TIMEDATE_DAY;
+ byte VAR_TIMEDATE_HOUR;
+ byte VAR_TIMEDATE_MINUTE;
+ byte VAR_TIMEDATE_SECOND;
};
diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp
index e04cf8c06f..9255b7d1f8 100644
--- a/scumm/script_v8.cpp
+++ b/scumm/script_v8.cpp
@@ -30,11 +30,8 @@
#include "smush/player.h"
#include "smush/scumm_renderer.h"
-/*
- * NO, we do NOT support CMI yet :-) This file is mostly a placeholder and a place
- * to grow real support in. For now, only a few opcodes are implemented, and they
- * might even be wrong... so don't hold your breath.
- */
+#include <time.h>
+
#define OPCODE(x) { &Scumm_v8::x, #x }
@@ -1294,7 +1291,17 @@ void Scumm_v8::o8_system()
void Scumm_v8::o8_getDateTime()
{
- warning("o8_getDateTime()");
+ struct tm *t;
+ time_t now = time(NULL);
+
+ t = localtime(&now);
+
+ _vars[VAR_TIMEDATE_YEAR] = t->tm_year;
+ _vars[VAR_TIMEDATE_MONTH] = t->tm_mon;
+ _vars[VAR_TIMEDATE_DAY] = t->tm_mday;
+ _vars[VAR_TIMEDATE_HOUR] = t->tm_hour;
+ _vars[VAR_TIMEDATE_MINUTE] = t->tm_min;
+ _vars[VAR_TIMEDATE_SECOND] = t->tm_sec;
}
void Scumm_v8::o8_startVideo()
diff --git a/scumm/scumm.h b/scumm/scumm.h
index 0a70e86e0b..2b1e1eb854 100644
--- a/scumm/scumm.h
+++ b/scumm/scumm.h
@@ -934,7 +934,7 @@ public:
byte VAR_ME;
byte VAR_NUM_ACTOR;
byte VAR_CURRENT_LIGHTS;
- byte VAR_CURRENTDRIVE;
+ byte VAR_CURRENTDRIVE; // How about merging this with VAR_CURRENTDISK?
byte VAR_CURRENTDISK;
byte VAR_TMR_1;
byte VAR_TMR_2;
diff --git a/scumm/vars.cpp b/scumm/vars.cpp
index 60723223f0..f76a2dbb06 100644
--- a/scumm/vars.cpp
+++ b/scumm/vars.cpp
@@ -227,12 +227,12 @@ void Scumm_v8::setupScummVars()
VAR_HAVE_MSG = 15;
VAR_MOUSE_BUTTONS = 16;
- // VAR_TIMEDATE_YEAR = 24;
- // VAR_TIMEDATE_MONTH = 25;
- // VAR_TIMEDATE_DAY = 26;
- // VAR_TIMEDATE_HOUR = 27;
- // VAR_TIMEDATE_MINUTE = 28;
- // VAR_TIMEDATE_SECOND = 29;
+ VAR_TIMEDATE_YEAR = 24;
+ VAR_TIMEDATE_MONTH = 25;
+ VAR_TIMEDATE_DAY = 26;
+ VAR_TIMEDATE_HOUR = 27;
+ VAR_TIMEDATE_MINUTE = 28;
+ VAR_TIMEDATE_SECOND = 29;
//VAR_OVERRIDE = 30; // Oops. 30 has something to do with overrides, but this isn't it..
VAR_ROOM = 31;