changeset 18524:e09c9fec19e8 draft

(svn r23368) -Codechange: move FindLibrary down a few layers, so there is no layer violation anymore
author truebrain <truebrain@openttd.org>
date Tue, 29 Nov 2011 23:27:08 +0000
parents 5b23a8d50e5f
children 07fcdb4bab4a
files src/ai/ai_instance.cpp src/ai/ai_instance.hpp src/script/api/script_controller.cpp src/script/script_instance.hpp
diffstat 4 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ai/ai_instance.cpp
+++ b/src/ai/ai_instance.cpp
@@ -18,6 +18,7 @@
 
 #include "ai_config.hpp"
 #include "ai_gui.hpp"
+#include "ai.hpp"
 
 #include "../script/script_fatalerror.hpp"
 #include "../script/script_suspend.hpp"
@@ -240,6 +241,11 @@
 	return AIConfig::GetConfig(_current_company)->GetSetting(name);
 }
 
+ScriptInfo *AIInstance::FindLibrary(const char *library, int version)
+{
+	return (ScriptInfo *)AI::FindLibrary(library, version);
+}
+
 /**
  * DoCommand callback function for all commands executed by AIs.
  * @param result The result of the command.
--- a/src/ai/ai_instance.hpp
+++ b/src/ai/ai_instance.hpp
@@ -27,6 +27,7 @@
 	void Initialize(class AIInfo *info);
 
 	/* virtual */ int GetSetting(const char *name);
+	/* virtual */ ScriptInfo *FindLibrary(const char *library, int version);
 
 private:
 	const char *versionAPI; ///< Current API used by this script.
--- a/src/script/api/script_controller.cpp
+++ b/src/script/api/script_controller.cpp
@@ -16,7 +16,6 @@
 
 #include "script_controller.hpp"
 #include "../../ai/ai_instance.hpp"
-#include "../../ai/ai.hpp"
 #include "../script_fatalerror.hpp"
 #include "../script_info.hpp"
 #include "../script_suspend.hpp"
@@ -94,7 +93,7 @@
 	snprintf(library_name, sizeof(library_name), "%s.%d", library, version);
 	strtolower(library_name);
 
-	ScriptInfo *lib = (ScriptInfo *)AI::FindLibrary(library, version);
+	ScriptInfo *lib = ScriptObject::GetActiveInstance()->FindLibrary(library, version);
 	if (lib == NULL) {
 		char error[1024];
 		snprintf(error, sizeof(error), "couldn't find library '%s' with version %d", library, version);
--- a/src/script/script_instance.hpp
+++ b/src/script/script_instance.hpp
@@ -44,6 +44,14 @@
 	virtual int GetSetting(const char *name) = 0;
 
 	/**
+	 * Find a library.
+	 * @param library The library name to find.
+	 * @param version The version the library should have.
+	 * @return The library if found, NULL otherwise.
+	 */
+	virtual class ScriptInfo *FindLibrary(const char *library, int version) = 0;
+
+	/**
 	 * A script in multiplayer waits for the server to handle his DoCommand.
 	 *  It keeps waiting for this until this function is called.
 	 */