changeset 18749:80dc5d106b4b draft

(svn r23597) -Codechange: fix up squirrel export script a bit
author truebrain <truebrain@openttd.org>
date Mon, 19 Dec 2011 20:44:31 +0000
parents c61d2913d286
children 4b10c820b9f2
files src/script/api/squirrel_export.awk src/script/api/template/template_log.hpp.sq src/script/squirrel_helper.hpp
diffstat 3 files changed, 9 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/src/script/api/squirrel_export.awk
+++ b/src/script/api/squirrel_export.awk
@@ -117,17 +117,18 @@
 { 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 @@
 		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"
--- 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; }
--- a/src/script/squirrel_helper.hpp
+++ b/src/script/squirrel_helper.hpp
@@ -109,7 +109,9 @@
 	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));