mark up sprites for uStore loading. critical is for ones needed for proper gameplay, checksum is for ones where the game will desync if they don't match. will add checksumming next...
--[[ Static Mines TestThis test tests if mines are able to stand still on the ground for a very long time. 8 mines are spawned on a few girders.The test passes if the mines don't move for a very long time.The test failes if any mine moves even the tiniest bit or is destroyed.This test case has been created as response to bug 96.]]-- Max. time to testlocal TEST_TIME_LIMIT = 3600000 * 5 -- 5 hourslocal hhs = {}function onGameInit() ClearGameFlags() EnableGameFlags(gfDisableWind, gfOneClanMode) Map = "" Seed = 12 Theme = "Desert" MapGen = mgDrawn TurnTime = -1 Explosives = 0 MinesNum = 0 CaseFreq = 0 Delay = 100 WaterRise = 0 HealthDecrease = 0 AirMinesNum = 0 AddTeam("Test Team", 0xFFFF00, "Statue", "Tank", "Default", "cm_test") hhs[1] = AddHog("Test Hog", 0, 100, "cm_test") SetGearPosition(hhs[1], 300, 1450)endlocal mines = { { x = 231, y = 1708}, { x = 290, y = 1708}, { x = 342, y = 1708}, { x = 261, y = 1708}, { x = 319, y = 1708}, { x = 403, y = 1706}, { x = 428, y = 1706}, { x = 461, y = 1706}, { x = 498, y = 1706}, { x = 518, y = 1706},}function LoadGearData() ------ GIRDER LIST ------ PlaceGirder(290, 1718, 4) PlaceGirder(290, 1790, 4) PlaceGirder(452, 1716, 4) PlaceGirder(452, 1790, 4) PlaceGirder(300, 1500, 4) ------ MINE LIST ------ for m=1, #mines do mines[m].gear = AddGear(mines[m].x, mines[m].y, gtMine, 0, 0, 0, 0) endendfunction onGameStart() LoadGearData()endfunction onGearDelete(gear) for m=#mines, 1, -1 do if gear == mines[m] then WriteLnToConsole(string.format("Mine %d died!", m)) table.remove(mines, m) end endend-- Give a short time for the mines to settle first.local checkTimer = -5000local initPosCheck = false-- Count the total times the mines managed to stand stilllocal totalTime = 0local fin = falsefunction onGameTick20() if fin then return end -- Infinite turn time if TurnTimeLeft < 6000 then TurnTimeLeft = -1 end checkTimer = checkTimer + 20 if initPosCheck then totalTime = totalTime + 20 end if checkTimer >= 1000 then local failed = false for m=1, #mines do if not initPosCheck then -- Position initialization -- Save “real” x and y values after the mines have settled local x, y = GetGearPosition(mines[m].gear) mines[m].rx = x mines[m].ry = y else -- Position check local x, y = GetGearPosition(mines[m].gear) local rx, ry = mines[m].rx, mines[m].ry if not x or not y then WriteLnToConsole(string.format("Mine %d has died!", m)) failed = true elseif x ~= rx or y ~= ry then WriteLnToConsole(string.format("Mine %d has moved! Expected: (%d, %d). Actual: (%d, %d)", m, rx, ry, x, y)) failed = true end end end if not initPosCheck then initPosCheck = true end if failed then WriteLnToConsole(string.format("Test failed. The mines managed to stand still for %d ticks.", totalTime)) EndLuaTest(TEST_FAILED) fin = true return end end if totalTime >= TEST_TIME_LIMIT then WriteLnToConsole(string.format("All mines have been static for over %d ticks! Success!", TEST_TIME_LIMIT)) EndLuaTest(TEST_SUCCESSFUL) fin = true return endend