Prechádzať zdrojové kódy

Add love.parsedGameArguments and love.rawGameArguments tables.

They're the same as the global arg table and the result of love.arg.parseGameArguments, respectively. They only exist on the main thread.
Alex Szpakowski 4 rokov pred
rodič
commit
199632e791
2 zmenil súbory, kde vykonal 35 pridanie a 20 odobranie
  1. 10 8
      src/scripts/boot.lua
  2. 25 12
      src/scripts/boot.lua.h

+ 10 - 8
src/scripts/boot.lua

@@ -131,7 +131,7 @@ function love.arg.parseOption(m, i)
 	return m.a
 end
 
-function love.arg.parseOptions()
+function love.arg.parseOptions(arg)
 
 	local game
 	local argc = #arg
@@ -298,7 +298,9 @@ function love.boot()
 	-- This is absolutely needed.
 	require("love.filesystem")
 
-	local arg0 = love.arg.getLow(arg)
+	love.rawGameArguments = arg
+
+	local arg0 = love.arg.getLow(love.rawGameArguments)
 	love.filesystem.init(arg0)
 
 	local exepath = love.filesystem.getExecutablePath()
@@ -319,7 +321,10 @@ function love.boot()
 	end
 
 	-- Parse options now that we know which options we're looking for.
-	love.arg.parseOptions()
+	love.arg.parseOptions(love.rawGameArguments)
+
+	-- parseGameArguments can only be called after parseOptions.
+	love.parsedGameArguments = love.arg.parseGameArguments(love.rawGameArguments)
 
 	local o = love.arg.options
 
@@ -587,13 +592,11 @@ end
 -----------------------------------------------------------
 
 function love.run()
-	if love.load then love.load(love.arg.parseGameArguments(arg), arg) end
+	if love.load then love.load(love.parsedGameArguments, love.rawGameArguments) end
 
 	-- We don't want the first frame's dt to include time taken by love.load.
 	if love.timer then love.timer.step() end
 
-	local dt = 0
-
 	-- Main loop time.
 	return function()
 		-- Process events.
@@ -610,7 +613,7 @@ function love.run()
 		end
 
 		-- Update dt, as we'll be passing it to update
-		if love.timer then dt = love.timer.step() end
+		local dt = love.timer and love.timer.step() or 0
 
 		-- Call update and draw
 		if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
@@ -626,7 +629,6 @@ function love.run()
 
 		if love.timer then love.timer.sleep(0.001) end
 	end
-
 end
 
 local debug, print, error = debug, print, error

+ 25 - 12
src/scripts/boot.lua.h

@@ -255,7 +255,7 @@ const unsigned char boot_lua[] =
 	0x65, 0x6e, 0x64, 0x0a,
 	0x0a,
 	0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x61, 0x72, 0x67, 0x2e, 
-	0x70, 0x61, 0x72, 0x73, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x28, 0x29, 0x0a,
+	0x70, 0x61, 0x72, 0x73, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a,
 	0x0a,
 	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x67, 0x61, 0x6d, 0x65, 0x0a,
 	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x72, 0x67, 0x63, 0x20, 0x3d, 0x20, 0x23, 0x61, 0x72, 0x67, 0x0a,
@@ -599,8 +599,12 @@ const unsigned char boot_lua[] =
 	0x09, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x28, 0x22, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x66, 0x69, 0x6c, 
 	0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x22, 0x29, 0x0a,
 	0x0a,
+	0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 0x61, 0x77, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 
+	0x65, 0x6e, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x61, 0x72, 0x67, 0x0a,
+	0x0a,
 	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x61, 0x72, 0x67, 0x30, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x76, 0x65, 
-	0x2e, 0x61, 0x72, 0x67, 0x2e, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x77, 0x28, 0x61, 0x72, 0x67, 0x29, 0x0a,
+	0x2e, 0x61, 0x72, 0x67, 0x2e, 0x67, 0x65, 0x74, 0x4c, 0x6f, 0x77, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 
+	0x61, 0x77, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x0a,
 	0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2e, 0x69, 
 	0x6e, 0x69, 0x74, 0x28, 0x61, 0x72, 0x67, 0x30, 0x29, 0x0a,
 	0x0a,
@@ -643,7 +647,18 @@ const unsigned char boot_lua[] =
 	0x68, 0x69, 0x63, 0x68, 0x20, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x77, 0x65, 0x27, 0x72, 0x65, 
 	0x20, 0x6c, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x6f, 0x72, 0x2e, 0x0a,
 	0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x61, 0x72, 0x67, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x4f, 0x70, 0x74, 
-	0x69, 0x6f, 0x6e, 0x73, 0x28, 0x29, 0x0a,
+	0x69, 0x6f, 0x6e, 0x73, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 0x61, 0x77, 0x47, 0x61, 0x6d, 0x65, 0x41, 
+	0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x0a,
+	0x0a,
+	0x09, 0x2d, 0x2d, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 
+	0x65, 0x6e, 0x74, 0x73, 0x20, 0x63, 0x61, 0x6e, 0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x62, 0x65, 0x20, 0x63, 
+	0x61, 0x6c, 0x6c, 0x65, 0x64, 0x20, 0x61, 0x66, 0x74, 0x65, 0x72, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x4f, 
+	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a,
+	0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 
+	0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x61, 0x72, 0x67, 
+	0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 
+	0x73, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 0x61, 0x77, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 
+	0x6d, 0x65, 0x6e, 0x74, 0x73, 0x29, 0x0a,
 	0x0a,
 	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x6f, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x61, 0x72, 
 	0x67, 0x2e, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x0a,
@@ -1181,9 +1196,10 @@ const unsigned char boot_lua[] =
 	0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 0x75, 0x6e, 0x28, 
 	0x29, 0x0a,
 	0x09, 0x69, 0x66, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x20, 0x74, 0x68, 0x65, 0x6e, 
-	0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x61, 0x72, 
-	0x67, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 
-	0x74, 0x73, 0x28, 0x61, 0x72, 0x67, 0x29, 0x2c, 0x20, 0x61, 0x72, 0x67, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+	0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x6c, 0x6f, 0x61, 0x64, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x70, 0x61, 
+	0x72, 0x73, 0x65, 0x64, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2c, 
+	0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x72, 0x61, 0x77, 0x47, 0x61, 0x6d, 0x65, 0x41, 0x72, 0x67, 0x75, 0x6d, 
+	0x65, 0x6e, 0x74, 0x73, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a,
 	0x0a,
 	0x09, 0x2d, 0x2d, 0x20, 0x57, 0x65, 0x20, 0x64, 0x6f, 0x6e, 0x27, 0x74, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 
 	0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x72, 0x73, 0x74, 0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x27, 0x73, 0x20, 
@@ -1194,8 +1210,6 @@ const unsigned char boot_lua[] =
 	0x6e, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x74, 0x65, 0x70, 0x28, 
 	0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a,
 	0x0a,
-	0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x74, 0x20, 0x3d, 0x20, 0x30, 0x0a,
-	0x0a,
 	0x09, 0x2d, 0x2d, 0x20, 0x4d, 0x61, 0x69, 0x6e, 0x20, 0x6c, 0x6f, 0x6f, 0x70, 0x20, 0x74, 0x69, 0x6d, 0x65, 
 	0x2e, 0x0a,
 	0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x28, 0x29, 0x0a,
@@ -1225,9 +1239,9 @@ const unsigned char boot_lua[] =
 	0x09, 0x09, 0x2d, 0x2d, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x64, 0x74, 0x2c, 0x20, 0x61, 0x73, 
 	0x20, 0x77, 0x65, 0x27, 0x6c, 0x6c, 0x20, 0x62, 0x65, 0x20, 0x70, 0x61, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x20, 
 	0x69, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x0a,
-	0x09, 0x09, 0x69, 0x66, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x20, 0x74, 0x68, 
-	0x65, 0x6e, 0x20, 0x64, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 
-	0x2e, 0x73, 0x74, 0x65, 0x70, 0x28, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a,
+	0x09, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x74, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 
+	0x74, 0x69, 0x6d, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x74, 0x69, 0x6d, 
+	0x65, 0x72, 0x2e, 0x73, 0x74, 0x65, 0x70, 0x28, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x30, 0x0a,
 	0x0a,
 	0x09, 0x09, 0x2d, 0x2d, 0x20, 0x43, 0x61, 0x6c, 0x6c, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x20, 0x61, 
 	0x6e, 0x64, 0x20, 0x64, 0x72, 0x61, 0x77, 0x0a,
@@ -1258,7 +1272,6 @@ const unsigned char boot_lua[] =
 	0x65, 0x6e, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x2e, 0x73, 0x6c, 0x65, 0x65, 
 	0x70, 0x28, 0x30, 0x2e, 0x30, 0x30, 0x31, 0x29, 0x20, 0x65, 0x6e, 0x64, 0x0a,
 	0x09, 0x65, 0x6e, 0x64, 0x0a,
-	0x0a,
 	0x65, 0x6e, 0x64, 0x0a,
 	0x0a,
 	0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x20, 0x64, 0x65, 0x62, 0x75, 0x67, 0x2c, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74,