changeset 11859:ec6ec69c1fe3 draft

(svn r16253) -Add [NoAI]: AIController::GetVersion, this returns the newgrf-version of OpenTTD
author yexo <yexo@openttd.org>
date Thu, 07 May 2009 21:33:38 +0000
parents 01c6deebde69
children ebf5beca420e
files src/ai/api/ai_controller.cpp src/ai/api/ai_controller.hpp src/ai/api/ai_controller.hpp.sq
diffstat 3 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/api/ai_controller.cpp
+++ b/src/ai/api/ai_controller.cpp
@@ -5,6 +5,7 @@
 #include "../../stdafx.h"
 #include "../../string_func.h"
 #include "../../company_base.h"
+#include "../../rev.h"
 #include "table/strings.h"
 
 #include "../ai.hpp"
@@ -66,6 +67,11 @@
 	return AIConfig::GetConfig(_current_company)->GetSetting(name);
 }
 
+/* static */ uint AIController::GetVersion()
+{
+	return _openttd_newgrf_version;
+}
+
 bool AIController::LoadedLibrary(const char *library_name, int *next_number, char *fake_class_name, int fake_class_name_len)
 {
 	LoadedLibraryList::iterator iter = this->loaded_library.find(library_name);
--- a/src/ai/api/ai_controller.hpp
+++ b/src/ai/api/ai_controller.hpp
@@ -51,6 +51,18 @@
 	static int GetSetting(const char *name);
 
 	/**
+	 * Get the OpenTTD version of this executable. The version is formatted
+	 * with the bits having the following meaning:
+	 * 28-31 major version
+	 * 24-27 minor version
+	 * 20-23 build
+	 *    19 1 if it is a release, 0 if it is not.
+	 *  0-18 revision number; 0 when the revision is unknown.
+	 * @return The version in newgrf format.
+	 */
+	static uint GetVersion();
+
+	/**
 	 * Change the minimum amount of time the AI should be put in suspend mode
 	 *   when you execute a command. Normally in SP this is 1, and in MP it is
 	 *   what ever delay the server has been programmed to delay commands
--- a/src/ai/api/ai_controller.hpp.sq
+++ b/src/ai/api/ai_controller.hpp.sq
@@ -9,6 +9,7 @@
 	SQAIController.DefSQStaticMethod(engine, &AIController::SetCommandDelay, "SetCommandDelay", 2, ".i");
 	SQAIController.DefSQStaticMethod(engine, &AIController::Sleep,           "Sleep",           2, ".i");
 	SQAIController.DefSQStaticMethod(engine, &AIController::GetSetting,      "GetSetting",      2, ".s");
+	SQAIController.DefSQStaticMethod(engine, &AIController::GetVersion,      "GetVersion",      1, ".");
 	SQAIController.DefSQStaticMethod(engine, &AIController::Print,           "Print",           3, ".bs");
 	SQAIController.PostRegister(engine);
 }