File: test.lua

package info (click to toggle)
spring 88.0%2Bdfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 41,524 kB
  • sloc: cpp: 343,114; ansic: 38,414; python: 12,257; java: 12,203; awk: 5,748; sh: 1,204; xml: 997; perl: 405; objc: 192; makefile: 181; php: 134; sed: 2
file content (40 lines) | stat: -rwxr-xr-x 1,191 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function widget:GetInfo()
return {
	name    = "Test-Widget",
	desc    = "Sets Speed + tries to keep framerate + autoexit",
	author  = "abma",
	date    = "Jul. 2011",
	license = "GNU GPL, v2 or later",
	layer   = 0,
	enabled = true,
}
end

local maxframes = 27000 -- run spring 15 minutes (ingame time)
local minfps = 10 -- slow down gamespeed if below this value
local maxfps = 30 -- increase gamespeed if fps higher as this value
local initialspeed = 30 -- speed at the beginning
local os_clock = os.clock
local lastcheck = math.floor(os_clock())

function widget:GameFrame(n)
	if n==0 then -- set gamespeed at start of game
		Spring.SendCommands("setmaxspeed " .. 1000,
			"setminspeed " .. initialspeed,
			"setminspeed 1")
	end
	local now = math.floor(os_clock()) --try to run it at frame rate >10 and <30 by adjusting game speed
	if n==maxframes then
		Spring.Echo("Tests run long enough, quitting...")
		Spring.SendCommands("quit")
	elseif (n>100) and (now > lastcheck) then -- adjust fps only once a second
		lastcheck = now
		fps = Spring.GetFPS()
		if (fps<minfps) then
			Spring.SendCommands("slowdown")
		elseif (fps>maxfps) then
			Spring.SendCommands("speedup")
		end
	end
end