summaryrefslogtreecommitdiff
path: root/src/ai/api/ai_controller.hpp
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-11-29 23:07:38 +0000
committertruebrain <truebrain@openttd.org>2011-11-29 23:07:38 +0000
commitafdb67a3534f85b4efbd3327ece8137211042d7b (patch)
treeb62375a3846c2089e1c6904331e8f5a3d44851ba /src/ai/api/ai_controller.hpp
parent5f6dc2466318b1275e8b654a260a6c565a0ecc5c (diff)
downloadopenttd-afdb67a3534f85b4efbd3327ece8137211042d7b.tar.xz
(svn r23354) -Codechange: move all src/ai/api/ai_*.[hc]pp files to src/script/api/script_* (Rubidium)
Diffstat (limited to 'src/ai/api/ai_controller.hpp')
-rw-r--r--src/ai/api/ai_controller.hpp135
1 files changed, 0 insertions, 135 deletions
diff --git a/src/ai/api/ai_controller.hpp b/src/ai/api/ai_controller.hpp
deleted file mode 100644
index 8f3dd4b66..000000000
--- a/src/ai/api/ai_controller.hpp
+++ /dev/null
@@ -1,135 +0,0 @@
-/* $Id$ */
-
-/*
- * This file is part of OpenTTD.
- * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
- * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/** @file ai_controller.hpp The controller of the AI. */
-
-#ifndef AI_CONTROLLER_HPP
-#define AI_CONTROLLER_HPP
-
-#include "../../core/string_compare_type.hpp"
-#include <map>
-
-/**
- * The Controller, the class each AI should extend. It creates the AI, makes
- * sure the logic kicks in correctly, and that GetTick() has a valid value.
- */
-class AIController {
- friend class AIScanner;
- friend class AIInstance;
-
-public:
- /**
- * Initializer of the AIController.
- */
- AIController();
-
- /**
- * Destructor of the AIController.
- */
- ~AIController();
-
- /**
- * This function is called to start your AI. Your AI starts here. If you
- * return from this function, your AI dies, so make sure that doesn't
- * happen.
- * @note Cannot be called from within your AI.
- */
- void Start();
-
- /**
- * Find at which tick your AI currently is.
- * @return returns the current tick.
- */
- static uint GetTick();
-
- /**
- * Get the number of operations the AI may still execute this tick.
- * @return The amount of operations left to execute.
- * @note This number can go negative when certain uninteruptable
- * operations are executed. The amount of operations that you go
- * over the limit will be deducted from the next tick you would
- * be allowed to run.
- */
- static int GetOpsTillSuspend();
-
- /**
- * Get the value of one of your settings you set via info.nut.
- * @param name The name of the setting.
- * @return the value for the setting, or -1 if the setting is not known.
- */
- 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
- * (normally between 1 and 5). To give a more 'real' effect to your AI,
- * you can control that number here.
- * @param ticks The minimum amount of ticks to wait.
- * @pre Ticks should be positive. Too big values will influence performance of the AI.
- * @note If the number is lower than the MP setting, the MP setting wins.
- */
- static void SetCommandDelay(int ticks);
-
- /**
- * Sleep for X ticks. The code continues after this line when the X AI ticks
- * are passed. Mind that an AI tick is different from in-game ticks and
- * differ per AI speed.
- * @param ticks the ticks to wait
- * @pre ticks > 0.
- * @post the value of GetTick() will be changed exactly 'ticks' in value after
- * calling this.
- */
- static void Sleep(int ticks);
-
- /**
- * When Squirrel triggers a print, this function is called.
- * Squirrel calls this when 'print' is used, or when the script made an error.
- * @param error_msg If true, it is a Squirrel error message.
- * @param message The message Squirrel logged.
- * @note Use AILog.Info/Warning/Error instead of 'print'.
- */
- static void Print(bool error_msg, const char *message);
-
- /**
- * Import a library.
- * @param library The name of the library to import.
- * @param class_name Under which name you want it to be available (or "" if you just want the returning object).
- * @param version Which version you want specificly.
- * @return The loaded library object. If class_name is set, it is also available (under the scope of the import) under that name.
- * @note This command can be called from the global space, and does not need an instance.
- */
- static HSQOBJECT Import(const char *library, const char *class_name, int version);
-
-private:
- typedef std::map<const char *, const char *, StringCompare> LoadedLibraryList; ///< The type for loaded libraries.
-
- uint ticks; ///< The amount of ticks we're sleeping.
- LoadedLibraryList loaded_library; ///< The libraries we loaded.
- int loaded_library_count; ///< The amount of libraries.
-
- /**
- * Register all classes that are known inside the NoAI API.
- */
- void RegisterClasses();
-};
-
-#endif /* AI_CONTROLLER_HPP */