hedgewars/uScript.pas
changeset 10040 4ac87acbaed9
parent 10015 4feced261c68
parent 10035 ec523f66d0ff
child 10078 8572d1f8b2f0
equal deleted inserted replaced
10019:c00db97a668f 10040:4ac87acbaed9
   243 end;
   243 end;
   244 
   244 
   245 function lc_enablegameflags(L : Plua_State) : LongInt; Cdecl;
   245 function lc_enablegameflags(L : Plua_State) : LongInt; Cdecl;
   246 var i : integer;
   246 var i : integer;
   247 begin
   247 begin
   248     for i:= 1 to lua_gettop(L) do
   248     if lua_gettop(L) = 0 then
   249         GameFlags := GameFlags or LongWord(lua_tointeger(L, i));
   249         begin
   250     ScriptSetInteger('GameFlags', GameFlags);
   250         LuaParameterCountError('EnableGameFlags', '', lua_gettop(L));
       
   251         lua_pushnil(L);
       
   252         end
       
   253     else
       
   254         begin
       
   255             for i:= 1 to lua_gettop(L) do
       
   256                 GameFlags := GameFlags or LongWord(lua_tointeger(L, i));
       
   257             ScriptSetInteger('GameFlags', GameFlags);
       
   258         end;
   251     lc_enablegameflags:= 0;
   259     lc_enablegameflags:= 0;
   252 end;
   260 end;
   253 
   261 
   254 function lc_disablegameflags(L : Plua_State) : LongInt; Cdecl;
   262 function lc_disablegameflags(L : Plua_State) : LongInt; Cdecl;
   255 var i : integer;
   263 var i : integer;
   256 begin
   264 begin
   257     for i:= 1 to lua_gettop(L) do
   265     if lua_gettop(L) = 0 then
   258         GameFlags := (GameFlags and (not (LongWord(lua_tointeger(L, i)))));
   266         begin
   259     ScriptSetInteger('GameFlags', GameFlags);
   267         LuaParameterCountError('DisableGameFlags', '', lua_gettop(L));
       
   268         lua_pushnil(L);
       
   269         end
       
   270     else
       
   271         begin
       
   272         for i:= 1 to lua_gettop(L) do
       
   273             GameFlags := GameFlags and not(LongWord(lua_tointeger(L, i)));
       
   274         ScriptSetInteger('GameFlags', GameFlags);
       
   275         end;
   260     lc_disablegameflags:= 0;
   276     lc_disablegameflags:= 0;
   261 end;
   277 end;
   262 
   278 
   263 function lc_cleargameflags(L : Plua_State) : LongInt; Cdecl;
   279 function lc_cleargameflags(L : Plua_State) : LongInt; Cdecl;
   264 begin
   280 begin
   265     // Silence hint
   281     if lua_gettop(L) <> 0 then
   266     L:= L;
   282         begin
   267     GameFlags:= 0;
   283         LuaParameterCountError('ClearGameFlags', '', lua_gettop(L));
   268     ScriptSetInteger('GameFlags', GameFlags);
   284         lua_pushnil(L);
       
   285         end
       
   286     else
       
   287         begin
       
   288         GameFlags:= 0;
       
   289         ScriptSetInteger('GameFlags', GameFlags);
       
   290         end;
   269     lc_cleargameflags:= 0;
   291     lc_cleargameflags:= 0;
       
   292 end;
       
   293 
       
   294 function lc_getgameflag(L : Plua_State) : LongInt; Cdecl;
       
   295 begin
       
   296     if lua_gettop(L) <> 1 then
       
   297         begin
       
   298         LuaParameterCountError('GetGameFlag', 'gameflag', lua_gettop(L));
       
   299         lua_pushnil(L);
       
   300         end
       
   301     else
       
   302         begin
       
   303         lua_pushboolean(L, (GameFlags and LongWord(lua_tointeger(L, 1)) <> 0));
       
   304         end;
       
   305     lc_getgameflag:= 1;
   270 end;
   306 end;
   271 
   307 
   272 function lc_addcaption(L : Plua_State) : LongInt; Cdecl;
   308 function lc_addcaption(L : Plua_State) : LongInt; Cdecl;
   273 begin
   309 begin
   274     if lua_gettop(L) = 1 then
   310     if lua_gettop(L) = 1 then
  1909 
  1945 
  1910 function lc_getgravity(L : Plua_State) : LongInt; Cdecl;
  1946 function lc_getgravity(L : Plua_State) : LongInt; Cdecl;
  1911 begin
  1947 begin
  1912     if lua_gettop(L) <> 0 then
  1948     if lua_gettop(L) <> 0 then
  1913         LuaParameterCountError('GetGravity', '', lua_gettop(L))
  1949         LuaParameterCountError('GetGravity', '', lua_gettop(L))
  1914     else
  1950     else if cGravity.isNegative then
  1915         lua_pushinteger(L, hwRound(cGravity * 50 / cWindSpeed));
  1951         lua_pushinteger(L, hwRound(-_0_5 + (cGravity * 50 / cMaxWindSpeed)))
       
  1952     else
       
  1953         lua_pushinteger(L, hwRound( _0_5 + (cGravity * 50 / cMaxWindSpeed)));
  1916     lc_getgravity:= 1
  1954     lc_getgravity:= 1
  1917 end;
  1955 end;
  1918 
  1956 
  1919 function lc_setgravity(L : Plua_State) : LongInt; Cdecl;
  1957 function lc_setgravity(L : Plua_State) : LongInt; Cdecl;
  1920 begin
  1958 begin
  1921     if lua_gettop(L) <> 1 then
  1959     if lua_gettop(L) <> 1 then
  1922         LuaParameterCountError('SetGravity', 'gravity', lua_gettop(L))
  1960         LuaParameterCountError('SetGravity', 'percent', lua_gettop(L))
  1923     else
  1961     else
  1924         begin
  1962         begin
  1925         cGravity:= cMaxWindSpeed * lua_tointeger(L, 1) * _0_02;
  1963         cGravity:= _0_02 * lua_tointeger(L, 1) * cMaxWindSpeed;
  1926         cGravityf:= 0.00025 * lua_tointeger(L, 1) * 0.02
  1964         cGravityf:= 0.00025 * lua_tointeger(L, 1) * 0.02
  1927         end;
  1965         end;
  1928     lc_setgravity:= 0
  1966     lc_setgravity:= 0
  1929 end;
  1967 end;
  1930 
  1968 
  1998         LuaParameterCountError('EndLuaAPITest', 'LUA_API_TEST_SUCCESSFUL or LUA_API_TEST_FAILED', lua_gettop(L));
  2036         LuaParameterCountError('EndLuaAPITest', 'LUA_API_TEST_SUCCESSFUL or LUA_API_TEST_FAILED', lua_gettop(L));
  1999         lua_pushnil(L);
  2037         lua_pushnil(L);
  2000         end
  2038         end
  2001     else
  2039     else
  2002         begin
  2040         begin
       
  2041         WriteLnToConsole('Lua test finished');
  2003         halt(lua_tointeger(L, 1));
  2042         halt(lua_tointeger(L, 1));
  2004         lc_endluatest:= 0;
  2043         lc_endluatest:= 0;
  2005         end;
  2044         end;
  2006 end;
  2045 end;
  2007 ///////////////////
  2046 ///////////////////
  2558 lua_register(luaState, _P'SetInputMask', @lc_setinputmask);
  2597 lua_register(luaState, _P'SetInputMask', @lc_setinputmask);
  2559 lua_register(luaState, _P'AddGear', @lc_addgear);
  2598 lua_register(luaState, _P'AddGear', @lc_addgear);
  2560 lua_register(luaState, _P'EnableGameFlags', @lc_enablegameflags);
  2599 lua_register(luaState, _P'EnableGameFlags', @lc_enablegameflags);
  2561 lua_register(luaState, _P'DisableGameFlags', @lc_disablegameflags);
  2600 lua_register(luaState, _P'DisableGameFlags', @lc_disablegameflags);
  2562 lua_register(luaState, _P'ClearGameFlags', @lc_cleargameflags);
  2601 lua_register(luaState, _P'ClearGameFlags', @lc_cleargameflags);
       
  2602 lua_register(luaState, _P'GetGameFlag', @lc_getgameflag);
  2563 lua_register(luaState, _P'DeleteGear', @lc_deletegear);
  2603 lua_register(luaState, _P'DeleteGear', @lc_deletegear);
  2564 lua_register(luaState, _P'AddVisualGear', @lc_addvisualgear);
  2604 lua_register(luaState, _P'AddVisualGear', @lc_addvisualgear);
  2565 lua_register(luaState, _P'DeleteVisualGear', @lc_deletevisualgear);
  2605 lua_register(luaState, _P'DeleteVisualGear', @lc_deletevisualgear);
  2566 lua_register(luaState, _P'GetVisualGearValues', @lc_getvisualgearvalues);
  2606 lua_register(luaState, _P'GetVisualGearValues', @lc_getvisualgearvalues);
  2567 lua_register(luaState, _P'SetVisualGearValues', @lc_setvisualgearvalues);
  2607 lua_register(luaState, _P'SetVisualGearValues', @lc_setvisualgearvalues);