229 |
234 |
230 function lc_enablegameflags(L : Plua_State) : LongInt; Cdecl; |
235 function lc_enablegameflags(L : Plua_State) : LongInt; Cdecl; |
231 var i : integer; |
236 var i : integer; |
232 begin |
237 begin |
233 for i:= 1 to lua_gettop(L) do |
238 for i:= 1 to lua_gettop(L) do |
234 if (GameFlags and lua_tointeger(L, i)) = 0 then |
239 GameFlags := GameFlags or LongWord(lua_tointeger(L, i)); |
235 GameFlags := GameFlags + LongWord(lua_tointeger(L, i)); |
|
236 ScriptSetInteger('GameFlags', GameFlags); |
240 ScriptSetInteger('GameFlags', GameFlags); |
237 lc_enablegameflags:= 0; |
241 lc_enablegameflags:= 0; |
238 end; |
242 end; |
239 |
243 |
240 function lc_disablegameflags(L : Plua_State) : LongInt; Cdecl; |
244 function lc_disablegameflags(L : Plua_State) : LongInt; Cdecl; |
241 var i : integer; |
245 var i : integer; |
242 begin |
246 begin |
243 for i:= 1 to lua_gettop(L) do |
247 for i:= 1 to lua_gettop(L) do |
244 if (GameFlags and lua_tointeger(L, i)) <> 0 then |
248 GameFlags := (GameFlags and (not (LongWord(lua_tointeger(L, i))))); |
245 GameFlags := GameFlags - LongWord(lua_tointeger(L, i)); |
|
246 ScriptSetInteger('GameFlags', GameFlags); |
249 ScriptSetInteger('GameFlags', GameFlags); |
247 lc_disablegameflags:= 0; |
250 lc_disablegameflags:= 0; |
248 end; |
251 end; |
249 |
252 |
250 function lc_cleargameflags(L : Plua_State) : LongInt; Cdecl; |
253 function lc_cleargameflags(L : Plua_State) : LongInt; Cdecl; |
1892 lua_pushnil(L) |
1895 lua_pushnil(L) |
1893 end |
1896 end |
1894 else |
1897 else |
1895 ScriptLoad(lua_tostring(L, 1)); |
1898 ScriptLoad(lua_tostring(L, 1)); |
1896 lc_hedgewarsscriptload:= 0; |
1899 lc_hedgewarsscriptload:= 0; |
|
1900 end; |
|
1901 |
|
1902 |
|
1903 function lc_declareachievement(L : Plua_State) : LongInt; Cdecl; |
|
1904 var gear: PGear; |
|
1905 begin |
|
1906 if lua_gettop(L) <> 4 then |
|
1907 LuaError('Lua: Wrong number of parameters passed to DeclareAchievement!') |
|
1908 else |
|
1909 declareAchievement(lua_tostring(L, 1), lua_tostring(L, 2), lua_tostring(L, 3), lua_tointeger(L, 4)); |
|
1910 lc_declareachievement:= 0 |
1897 end; |
1911 end; |
1898 /////////////////// |
1912 /////////////////// |
1899 |
1913 |
1900 procedure ScriptPrintStack; |
1914 procedure ScriptPrintStack; |
1901 var n, i : LongInt; |
1915 var n, i : LongInt; |
2342 ScriptSetInteger('gfResetWeps', gfResetWeps); |
2356 ScriptSetInteger('gfResetWeps', gfResetWeps); |
2343 ScriptSetInteger('gfPerHogAmmo', gfPerHogAmmo); |
2357 ScriptSetInteger('gfPerHogAmmo', gfPerHogAmmo); |
2344 ScriptSetInteger('gfDisableWind', gfDisableWind); |
2358 ScriptSetInteger('gfDisableWind', gfDisableWind); |
2345 ScriptSetInteger('gfMoreWind', gfMoreWind); |
2359 ScriptSetInteger('gfMoreWind', gfMoreWind); |
2346 ScriptSetInteger('gfTagTeam', gfTagTeam); |
2360 ScriptSetInteger('gfTagTeam', gfTagTeam); |
|
2361 ScriptSetInteger('gfShoppaBorder', gfShoppaBorder); |
2347 |
2362 |
2348 ScriptSetInteger('gmLeft', gmLeft); |
2363 ScriptSetInteger('gmLeft', gmLeft); |
2349 ScriptSetInteger('gmRight', gmRight); |
2364 ScriptSetInteger('gmRight', gmRight); |
2350 ScriptSetInteger('gmUp', gmUp); |
2365 ScriptSetInteger('gmUp', gmUp); |
2351 ScriptSetInteger('gmDown', gmDown); |
2366 ScriptSetInteger('gmDown', gmDown); |
2511 lua_register(luaState, _P'GetCurAmmoType', @lc_getcurammotype); |
2526 lua_register(luaState, _P'GetCurAmmoType', @lc_getcurammotype); |
2512 lua_register(luaState, _P'TestRectForObstacle', @lc_testrectforobstacle); |
2527 lua_register(luaState, _P'TestRectForObstacle', @lc_testrectforobstacle); |
2513 |
2528 |
2514 lua_register(luaState, _P'SetGearAIHints', @lc_setaihintsongear); |
2529 lua_register(luaState, _P'SetGearAIHints', @lc_setaihintsongear); |
2515 lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload); |
2530 lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload); |
|
2531 lua_register(luaState, _P'DeclareAchievement', @lc_declareachievement); |
2516 |
2532 |
2517 |
2533 |
2518 ScriptClearStack; // just to be sure stack is empty |
2534 ScriptClearStack; // just to be sure stack is empty |
2519 ScriptLoaded:= false; |
2535 ScriptLoaded:= false; |
2520 end; |
2536 end; |