summaryrefslogtreecommitdiff
path: root/src/script/api
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-12-19 20:59:29 +0000
committertruebrain <truebrain@openttd.org>2011-12-19 20:59:29 +0000
commite7cd301d3c9990b4ef9f0748789bb5e0318c0d24 (patch)
tree6be6c3a41b29a52a74a289293a012e7167f48884 /src/script/api
parentafcf07ac8a0d5adede1b412600042a9f3b482648 (diff)
downloadopenttd-e7cd301d3c9990b4ef9f0748789bb5e0318c0d24.tar.xz
(svn r23621) -Add: allow manipulation of signs via GameScripts
Diffstat (limited to 'src/script/api')
-rw-r--r--src/script/api/game/game_sign.hpp.sq39
-rw-r--r--src/script/api/script_sign.cpp2
-rw-r--r--src/script/api/script_sign.hpp2
3 files changed, 41 insertions, 2 deletions
diff --git a/src/script/api/game/game_sign.hpp.sq b/src/script/api/game/game_sign.hpp.sq
new file mode 100644
index 000000000..20eb52ec2
--- /dev/null
+++ b/src/script/api/game/game_sign.hpp.sq
@@ -0,0 +1,39 @@
+/* $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/>.
+ */
+
+/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
+
+#include "../script_sign.hpp"
+#include "../template/template_sign.hpp.sq"
+
+
+template <> const char *GetClassName<ScriptSign, ST_GS>() { return "GSSign"; }
+
+void SQGSSign_Register(Squirrel *engine)
+{
+ DefSQClass<ScriptSign, ST_GS> SQGSSign("GSSign");
+ SQGSSign.PreRegister(engine);
+ SQGSSign.AddConstructor<void (ScriptSign::*)(), 1>(engine, "x");
+
+ SQGSSign.DefSQConst(engine, ScriptSign::ERR_SIGN_BASE, "ERR_SIGN_BASE");
+ SQGSSign.DefSQConst(engine, ScriptSign::ERR_SIGN_TOO_MANY_SIGNS, "ERR_SIGN_TOO_MANY_SIGNS");
+
+ ScriptError::RegisterErrorMap(STR_ERROR_TOO_MANY_SIGNS, ScriptSign::ERR_SIGN_TOO_MANY_SIGNS);
+
+ ScriptError::RegisterErrorMapString(ScriptSign::ERR_SIGN_TOO_MANY_SIGNS, "ERR_SIGN_TOO_MANY_SIGNS");
+
+ SQGSSign.DefSQStaticMethod(engine, &ScriptSign::IsValidSign, "IsValidSign", 2, ".i");
+ SQGSSign.DefSQStaticMethod(engine, &ScriptSign::SetName, "SetName", 3, ".i.");
+ SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetName, "GetName", 2, ".i");
+ SQGSSign.DefSQStaticMethod(engine, &ScriptSign::GetLocation, "GetLocation", 2, ".i");
+ SQGSSign.DefSQStaticMethod(engine, &ScriptSign::BuildSign, "BuildSign", 3, ".i.");
+ SQGSSign.DefSQStaticMethod(engine, &ScriptSign::RemoveSign, "RemoveSign", 2, ".i");
+
+ SQGSSign.PostRegister(engine);
+}
diff --git a/src/script/api/script_sign.cpp b/src/script/api/script_sign.cpp
index 051fb983d..ab7988cc1 100644
--- a/src/script/api/script_sign.cpp
+++ b/src/script/api/script_sign.cpp
@@ -24,7 +24,7 @@
/* static */ bool ScriptSign::IsValidSign(SignID sign_id)
{
const Sign *si = ::Sign::GetIfValid(sign_id);
- return si != NULL && si->owner == _current_company;
+ return si != NULL && (si->owner == _current_company || si->owner == OWNER_DEITY);
}
/* static */ bool ScriptSign::SetName(SignID sign_id, const char *name)
diff --git a/src/script/api/script_sign.hpp b/src/script/api/script_sign.hpp
index a4f2ba0b2..ee235615d 100644
--- a/src/script/api/script_sign.hpp
+++ b/src/script/api/script_sign.hpp
@@ -16,7 +16,7 @@
/**
* Class that handles all sign related functions.
- * @api ai
+ * @api ai game
*/
class ScriptSign : public ScriptObject {
public: