# HG changeset patch # User unc0rr # Date 1456224349 -10800 # Node ID 294ce0fa65d0f41f76fd27e4ecab1126a28d5ec2 # Parent e9ee87b28e179f07eb5afb4df235687db614c356 Dump best time ghost on console diff -r e9ee87b28e17 -r 294ce0fa65d0 hedgewars/uScript.pas --- a/hedgewars/uScript.pas Tue Feb 23 00:41:18 2016 +0100 +++ b/hedgewars/uScript.pas Tue Feb 23 13:45:49 2016 +0300 @@ -2526,6 +2526,20 @@ lc_declareachievement:= 0 end; +function lc_startghostpoints(L : Plua_State) : LongInt; Cdecl; +begin + if CheckLuaParamCount(L, 1, 'StartGhostPoints', 'count') then + startGhostPoints(lua_tointeger(L, 1)); + lc_startghostpoints:= 0 +end; + +function lc_dumppoint(L : Plua_State) : LongInt; Cdecl; +begin + if CheckLuaParamCount(L, 2, 'DumpPoint', 'x, y') then + dumpPoint(lua_tointeger(L, 1), lua_tointeger(L, 2)); + lc_dumppoint:= 0 +end; + procedure ScriptFlushPoints(); begin @@ -3342,6 +3356,8 @@ lua_register(luaState, _P'SetGearAIHints', @lc_setgearaihints); lua_register(luaState, _P'HedgewarsScriptLoad', @lc_hedgewarsscriptload); lua_register(luaState, _P'DeclareAchievement', @lc_declareachievement); +lua_register(luaState, _P'StartGhostPoints', @lc_startghostpoints); +lua_register(luaState, _P'DumpPoint', @lc_dumppoint); ScriptSetInteger('TEST_SUCCESSFUL' , HaltTestSuccess); ScriptSetInteger('TEST_FAILED' , HaltTestFailed); diff -r e9ee87b28e17 -r 294ce0fa65d0 hedgewars/uStats.pas --- a/hedgewars/uStats.pas Tue Feb 23 00:41:18 2016 +0100 +++ b/hedgewars/uStats.pas Tue Feb 23 13:45:49 2016 +0300 @@ -36,6 +36,8 @@ procedure SendStats; procedure hedgehogFlight(Gear: PGear; time: Longword); procedure declareAchievement(id, teamname, location: shortstring; value: LongInt); +procedure startGhostPoints(n: LongInt); +procedure dumpPoint(x, y: LongInt); implementation uses uSound, uLocale, uVariables, uUtils, uIO, uCaptions, uMisc, uConsole, uScript; @@ -323,8 +325,32 @@ WriteLnToConsole(inttostr(value)); end; +procedure startGhostPoints(n: LongInt); +begin + WriteLnToConsole('GHOST_POINTS'); + WriteLnToConsole(inttostr(n)); +end; + +procedure dumpPoint(x, y: LongInt); +begin + WriteLnToConsole(inttostr(x)); + WriteLnToConsole(inttostr(y)); +end; + procedure initModule; begin + DamageClan := 0; + DamageTotal := 0; + DamageTurn := 0; + KillsClan := 0; + Kills := 0; + KillsTotal := 0; + AmmoUsedCount := 0; + AmmoDamagingUsed := false; + SkippedTurns:= 0; + isTurnSkipped:= false; + vpHurtSameClan:= nil; + vpHurtEnemy:= nil; TotalRounds:= -1; FinishedTurnsTotal:= -1; end; diff -r e9ee87b28e17 -r 294ce0fa65d0 share/hedgewars/Data/Scripts/Multiplayer/Racer.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Tue Feb 23 00:41:18 2016 +0100 +++ b/share/hedgewars/Data/Scripts/Multiplayer/Racer.lua Tue Feb 23 13:45:49 2016 +0300 @@ -792,4 +792,12 @@ DeclareAchievement(raceType, teamNameArr[i], map, teamScore[i]) end end + + if fastCount > 0 then + StartGhostPoints(fastCount) + + for i = 0, (fastCount - 1) do + DumpPoint(fastX[i], fastY[i]) + end + end end diff -r e9ee87b28e17 -r 294ce0fa65d0 share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua --- a/share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua Tue Feb 23 00:41:18 2016 +0100 +++ b/share/hedgewars/Data/Scripts/Multiplayer/TechRacer.lua Tue Feb 23 13:45:49 2016 +0300 @@ -1288,6 +1288,15 @@ DeclareAchievement(raceType, teamNameArr[i], map, teamScore[i]) end end + + if fastCount > 0 then + StartGhostPoints(fastCount) + + for i = 0, (fastCount - 1) do + DumpPoint(fastX[i], fastY[i]) + end + end + end function onAmmoStoreInit()