Revert ParseCommandOverride change since it appears to be badly screwing up scripting. Need to find out why. This backs out 7f57d0c7816a and the recent workaround.
authornemo
Fri, 12 Aug 2011 15:33:07 -0400
changeset 5554 b27ed6c6f538
parent 5553 4bb542350a18
child 5555 38e3d9347910
Revert ParseCommandOverride change since it appears to be badly screwing up scripting. Need to find out why. This backs out 7f57d0c7816a and the recent workaround.
hedgewars/uCommands.pas
hedgewars/uScript.pas
--- a/hedgewars/uCommands.pas	Fri Aug 12 14:09:08 2011 -0400
+++ b/hedgewars/uCommands.pas	Fri Aug 12 15:33:07 2011 -0400
@@ -33,7 +33,7 @@
 procedure StopMessages(Message: Longword);
 
 implementation
-uses Types, uConsts, uVariables, uConsole, uUtils, uDebug, uScript;
+uses Types, uConsts, uVariables, uConsole, uUtils, uDebug;
 
 type  PVariable = ^TVariable;
       TVariable = record
@@ -68,7 +68,7 @@
 
 procedure ParseCommand(CmdStr: shortstring; TrustedSource: boolean);
 var ii: LongInt;
-    s, i, o: shortstring;
+    s: shortstring;
     t: PVariable;
     c: char;
 begin
@@ -85,8 +85,6 @@
       if t^.Name = CmdStr then
          begin
          if TrustedSource or t^.Trusted then
-            begin
-            if (c <> '$') or (s[0] <> #0) then s:= ParseCommandOverride(CmdStr, s);
             case t^.VType of
               vtCommand: if c='/' then
                          begin
@@ -96,12 +94,8 @@
                          if s[0]=#0 then
                             begin
                             str(PLongInt(t^.Handler)^, s);
-                            i:= inttostr(PLongInt(t^.Handler)^);
-                            o:= ParseCommandOverride(CmdStr, i);
-                            if i <> o then val(o, PLongInt(t^.Handler)^) 
-                            else WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
-                            end 
-                         else val(s, PLongInt(t^.Handler)^);
+                            WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
+                            end else val(s, PLongInt(t^.Handler)^);
               vthwFloat: if c='$' then
                          if s[0]=#0 then
                             begin
@@ -112,23 +106,13 @@
                          if s[0]=#0 then
                             begin
                             str(ord(boolean(t^.Handler^)), s);
-                            if boolean(t^.Handler^) then i:= '1'
-                            else i:= '0';
-                            o:= ParseCommandOverride(CmdStr, i);
-                            if i <> o then 
-                                begin
-                                val(o, ii);
-                                boolean(t^.Handler^):= not (ii = 0)
-                                end
-                            else WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
-                            end 
-                         else
+                            WriteLnToConsole('$' + CmdStr + ' is "' + s + '"');
+                            end else
                             begin
                             val(s, ii);
                             boolean(t^.Handler^):= not (ii = 0)
                             end;
               end;
-              end;
          exit
          end else t:= t^.Next
       end;
--- a/hedgewars/uScript.pas	Fri Aug 12 14:09:08 2011 -0400
+++ b/hedgewars/uScript.pas	Fri Aug 12 15:33:07 2011 -0400
@@ -43,7 +43,6 @@
 function ScriptCall(fname : shortstring; par1, par2, par3: LongInt) : LongInt;
 function ScriptCall(fname : shortstring; par1, par2, par3, par4 : LongInt) : LongInt;
 function ScriptExists(fname : shortstring) : boolean;
-function ParseCommandOverride(key, value : shortstring) : shortstring;
 
 procedure initModule;
 procedure freeModule;
@@ -1115,7 +1114,6 @@
 
 function lc_addteam(L : Plua_State) : LongInt; Cdecl;
 var np: LongInt;
-    color, name, grave, fort, voice, flag: shortstring;
 begin
     np:= lua_gettop(L);
     if (np < 5) or (np > 6) then
@@ -1125,22 +1123,11 @@
         end
     else
         begin
-(*
- FIXME FIXME FIXME FIXME
- Something is very wrong here.
- For some reason, the lua_tostring after the first ParseCommand, are empty.  Is ParseCommand scribbling on stuff?
-*)
-        color:= lua_tostring(L, 1);
-        name := lua_tostring(L, 2);
-        grave:= lua_tostring(L, 3);
-        fort := lua_tostring(L, 4);
-        voice:= lua_tostring(L, 5);
-        if (np = 6) flag:= lua_tostring(L, 6);
-        ParseCommand('addteam x ' + name + ' ' + color, true);
-        ParseCommand('grave ' + grave, true);
-        ParseCommand('fort ' + fort, true);
-        ParseCommand('voicepack ' + voice, true);
-        if (np = 6) then ParseCommand('flag ' + flag, true);
+        ParseCommand('addteam x ' + lua_tostring(L, 2) + ' ' + lua_tostring(L, 1), true);
+        ParseCommand('grave ' + lua_tostring(L, 3), true);
+        ParseCommand('fort ' + lua_tostring(L, 4), true);
+        ParseCommand('voicepack ' + lua_tostring(L, 5), true);
+        if (np = 6) then ParseCommand('flag ' + lua_tostring(L, 6), true);
         CurrentTeam^.Binds:= DefaultBinds
         // fails on x64
         //lua_pushinteger(L, LongInt(CurrentTeam));
@@ -1658,25 +1645,6 @@
 GetGlobals;
 end;
 
-function ParseCommandOverride(key, value : shortstring) : shortstring;
-begin
-ParseCommandOverride:= value;
-if not ScriptExists('ParseCommandOverride') then exit;
-lua_getglobal(luaState, Str2PChar('ParseCommandOverride'));
-lua_pushstring(luaState, Str2PChar(key));
-lua_pushstring(luaState, Str2PChar(value));
-if lua_pcall(luaState, 2, 1, 0) <> 0 then
-    begin
-    LuaError('Lua: Error while calling ParseCommandOverride: ' + lua_tostring(luaState, -1));
-    lua_pop(luaState, 1)
-    end
-else
-    begin
-    ParseCommandOverride:= lua_tostring(luaState, -1);
-    lua_pop(luaState, 1)
-    end;
-end;
-
 function ScriptCall(fname : shortstring; par1: LongInt) : LongInt;
 begin
 ScriptCall:= ScriptCall(fname, par1, 0, 0, 0)