summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-12-19 20:44:31 +0000
committertruebrain <truebrain@openttd.org>2011-12-19 20:44:31 +0000
commite75153d8ac12b07f9a47fc08b55a1c6ddb1c4162 (patch)
tree4c148e9783be47a02ad046d5617f9c00a3bcb235
parentfceed4758ccc9d78984297811855f0b59af828da (diff)
downloadopenttd-e75153d8ac12b07f9a47fc08b55a1c6ddb1c4162.tar.xz
(svn r23597) -Codechange: fix up squirrel export script a bit
-rw-r--r--src/script/api/squirrel_export.awk12
-rw-r--r--src/script/api/template/template_log.hpp.sq4
-rw-r--r--src/script/squirrel_helper.hpp2
3 files changed, 9 insertions, 9 deletions
diff --git a/src/script/api/squirrel_export.awk b/src/script/api/squirrel_export.awk
index 4d044b0e0..8e4bc3546 100644
--- a/src/script/api/squirrel_export.awk
+++ b/src/script/api/squirrel_export.awk
@@ -117,17 +117,18 @@ BEGIN {
{ if (doxygen_skip == "true") next }
/^([ ]*)\* @api/ {
- if (api == "Template") {
- api_selected = "true"
- next
- }
-
# By default, classes are not selected
if (cls_level == 0) api_selected = "false"
gsub("^([ ]*)", "", $0)
gsub("* @api ", "", $0)
+ if (api == "Template") {
+ api_selected = "true"
+ if ($0 == "none" || $0 == "-all") api_selected = "false"
+ next
+ }
+
if ($0 == "none") {
api_selected = "false"
} else if ($0 == "-all") {
@@ -501,6 +502,7 @@ BEGIN {
sub("^[ ]*", "", params[len])
if (match(params[len], "\\*") || match(params[len], "&")) {
if (match(params[len], "^char")) {
+ # Many types can be converted to string, so use '.', not 's'. (handled by our glue code)
types = types "."
} else if (match(params[len], "^void")) {
types = types "p"
diff --git a/src/script/api/template/template_log.hpp.sq b/src/script/api/template/template_log.hpp.sq
index 4f3c9e7f1..91c0511d0 100644
--- a/src/script/api/template/template_log.hpp.sq
+++ b/src/script/api/template/template_log.hpp.sq
@@ -12,10 +12,6 @@
#include "../script_log.hpp"
namespace SQConvert {
- /* Allow enums to be used as Squirrel parameters */
- template <> inline ScriptLog::ScriptLogType GetParam(ForceType<ScriptLog::ScriptLogType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptLog::ScriptLogType)tmp; }
- template <> inline int Return<ScriptLog::ScriptLogType>(HSQUIRRELVM vm, ScriptLog::ScriptLogType res) { sq_pushinteger(vm, (int32)res); return 1; }
-
/* Allow ScriptLog to be used as Squirrel parameter */
template <> inline ScriptLog *GetParam(ForceType<ScriptLog *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (ScriptLog *)instance; }
template <> inline ScriptLog &GetParam(ForceType<ScriptLog &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptLog *)instance; }
diff --git a/src/script/squirrel_helper.hpp b/src/script/squirrel_helper.hpp
index 03f1315fa..cdc4b8b8f 100644
--- a/src/script/squirrel_helper.hpp
+++ b/src/script/squirrel_helper.hpp
@@ -109,7 +109,9 @@ namespace SQConvert {
template <> inline void *GetParam(ForceType<void *> , HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer tmp; sq_getuserpointer(vm, index, &tmp); return tmp; }
template <> inline const char *GetParam(ForceType<const char *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr)
{
+ /* Convert what-ever there is as parameter to a string */
sq_tostring(vm, index);
+
const SQChar *tmp;
sq_getstring(vm, -1, &tmp);
char *tmp_str = strdup(SQ2OTTD(tmp));