Mercurial > hg > openttd
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));