changeset 18771:75a2b5a86b64 draft

(svn r23619) -Add: ScriptDate::GetSystemTime, to get the seconds since 1 Jan 1970 of the real system (GameScript only)
author truebrain <truebrain@openttd.org>
date Mon, 19 Dec 2011 20:59:12 +0000
parents ebb9a25b6598
children ac0ceb4bc5f0
files src/script/api/game/game_date.hpp.sq src/script/api/script_date.cpp src/script/api/script_date.hpp
diffstat 3 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/script/api/game/game_date.hpp.sq
+++ b/src/script/api/game/game_date.hpp.sq
@@ -26,6 +26,7 @@
 	SQGSDate.DefSQStaticMethod(engine, &ScriptDate::GetMonth,       "GetMonth",       2, ".i");
 	SQGSDate.DefSQStaticMethod(engine, &ScriptDate::GetDayOfMonth,  "GetDayOfMonth",  2, ".i");
 	SQGSDate.DefSQStaticMethod(engine, &ScriptDate::GetDate,        "GetDate",        4, ".iii");
+	SQGSDate.DefSQStaticMethod(engine, &ScriptDate::GetSystemTime,  "GetSystemTime",  1, ".");
 
 	SQGSDate.PostRegister(engine);
 }
--- a/src/script/api/script_date.cpp
+++ b/src/script/api/script_date.cpp
@@ -9,6 +9,7 @@
 
 /** @file script_date.cpp Implementation of ScriptDate. */
 
+#include <time.h>
 #include "../../stdafx.h"
 #include "script_date.hpp"
 #include "../../date_func.h"
@@ -53,3 +54,10 @@
 
 	return ::ConvertYMDToDate(year, month - 1, day_of_month);
 }
+
+/* static */ int32 ScriptDate::GetSystemTime()
+{
+	time_t t;
+	time(&t);
+	return t;
+}
--- a/src/script/api/script_date.hpp
+++ b/src/script/api/script_date.hpp
@@ -65,6 +65,14 @@
 	 * @return The date.
 	 */
 	static int32 GetDate(int32 year, int32 month, int32 day_of_month);
+
+	/**
+	 * Get the time of the host system.
+	 * @return The amount of seconds passed since 1 Jan 1970.
+	 * @api -ai
+	 * @note This uses the clock of the host system, which can skew or be set back. Use with caution.
+	 */
+	static int32 GetSystemTime();
 };
 
 #endif /* SCRIPT_DATE_HPP */