diff options
author | David Walter Seikel | 2012-02-22 05:43:11 +1000 |
---|---|---|
committer | David Walter Seikel | 2012-02-22 05:43:11 +1000 |
commit | 8dffe12c4e80e3d58e7825530632880214ed04cd (patch) | |
tree | f34a7a1f44185af600c05eaf79a400c14d5f2411 /LuaSL/src | |
parent | Fix up the EOF fix up, and commentry++. (diff) | |
download | SledjHamr-8dffe12c4e80e3d58e7825530632880214ed04cd.zip SledjHamr-8dffe12c4e80e3d58e7825530632880214ed04cd.tar.gz SledjHamr-8dffe12c4e80e3d58e7825530632880214ed04cd.tar.bz2 SledjHamr-8dffe12c4e80e3d58e7825530632880214ed04cd.tar.xz |
Implement llGetScriptName().
Diffstat (limited to 'LuaSL/src')
-rw-r--r-- | LuaSL/src/LSL.lua | 11 | ||||
-rw-r--r-- | LuaSL/src/LuaSL_compile.c | 7 |
2 files changed, 16 insertions, 2 deletions
diff --git a/LuaSL/src/LSL.lua b/LuaSL/src/LSL.lua index a89c06f..8861bf3 100644 --- a/LuaSL/src/LSL.lua +++ b/LuaSL/src/LSL.lua | |||
@@ -25,6 +25,7 @@ upvalue--either way is a bit more efficient and less error prone. | |||
25 | 25 | ||
26 | local LSL = {}; | 26 | local LSL = {}; |
27 | local SID = ""; | 27 | local SID = ""; |
28 | local scriptName = ""; | ||
28 | 29 | ||
29 | -- Debugging aids | 30 | -- Debugging aids |
30 | 31 | ||
@@ -567,6 +568,13 @@ function --[[list]] LSL.llParseString2List(--[[string]] In, --[[list]] l, --[[li | |||
567 | function --[[list]] LSL.llParseStringKeepNulls(--[[string]] In, --[[list]] l, --[[list]] l1) return {} end; | 568 | function --[[list]] LSL.llParseStringKeepNulls(--[[string]] In, --[[list]] l, --[[list]] l1) return {} end; |
568 | 569 | ||
569 | 570 | ||
571 | -- LSL script functions | ||
572 | |||
573 | function --[[string]] LSL.llGetScriptName() | ||
574 | return scriptName | ||
575 | end | ||
576 | |||
577 | |||
570 | -- Crements stuff. | 578 | -- Crements stuff. |
571 | 579 | ||
572 | function LSL.preDecrement(name) _G[name] = _G[name] - 1; return _G[name]; end; | 580 | function LSL.preDecrement(name) _G[name] = _G[name] - 1; return _G[name]; end; |
@@ -612,11 +620,12 @@ function LSL.stateChange(x) | |||
612 | end | 620 | end |
613 | end; | 621 | end; |
614 | 622 | ||
615 | function LSL.mainLoop(sid, x) | 623 | function LSL.mainLoop(sid, name, x) |
616 | local status, errorMsg = luaproc.newchannel(sid) | 624 | local status, errorMsg = luaproc.newchannel(sid) |
617 | local result | 625 | local result |
618 | 626 | ||
619 | SID = sid | 627 | SID = sid |
628 | scriptName = name | ||
620 | 629 | ||
621 | LSL.EOF = "\n\n\n" -- Fix this up now. | 630 | LSL.EOF = "\n\n\n" -- Fix this up now. |
622 | 631 | ||
diff --git a/LuaSL/src/LuaSL_compile.c b/LuaSL/src/LuaSL_compile.c index 873e6c4..de103b7 100644 --- a/LuaSL/src/LuaSL_compile.c +++ b/LuaSL/src/LuaSL_compile.c | |||
@@ -2275,13 +2275,18 @@ boolean compileLSL(gameGlobals *game, Ecore_Con_Client *client, char *SID, char | |||
2275 | { | 2275 | { |
2276 | lua_State *L; | 2276 | lua_State *L; |
2277 | int err; | 2277 | int err; |
2278 | char *ext; | ||
2278 | 2279 | ||
2279 | fprintf(out, "--// Generated code goes here.\n\n"); | 2280 | fprintf(out, "--// Generated code goes here.\n\n"); |
2280 | fprintf(out, "local _bit = require(\"bit\")\n"); | 2281 | fprintf(out, "local _bit = require(\"bit\")\n"); |
2281 | fprintf(out, "local _LSL = require(\"LSL\")\n\n"); | 2282 | fprintf(out, "local _LSL = require(\"LSL\")\n\n"); |
2282 | fprintf(out, "local _SID = [=[%s]=]\n\n", compiler.SID); | 2283 | fprintf(out, "local _SID = [=[%s]=]\n\n", compiler.SID); |
2284 | strcpy(buffer, basename(compiler.fileName)); | ||
2285 | if ((ext = rindex(buffer, '.'))) | ||
2286 | ext[0] = '\0'; | ||
2287 | fprintf(out, "local _scriptName = [=[%s]=]\n\n", buffer); | ||
2283 | outputLeaf(out, OM_LUA, compiler.ast); | 2288 | outputLeaf(out, OM_LUA, compiler.ast); |
2284 | fprintf(out, "\n\n_LSL.mainLoop(_SID, _defaultState)\n"); // This actually starts the script running. | 2289 | fprintf(out, "\n\n_LSL.mainLoop(_SID, _scriptName, _defaultState)\n"); // This actually starts the script running. |
2285 | fprintf(out, "\n--// End of generated code.\n\n"); | 2290 | fprintf(out, "\n--// End of generated code.\n\n"); |
2286 | fclose(out); | 2291 | fclose(out); |
2287 | 2292 | ||