Allow random menu images for subgames

This commit is contained in:
sfan5 2015-07-18 14:31:34 +02:00 committed by est31
parent fa7fe510d9
commit 8994913259
2 changed files with 39 additions and 7 deletions

@ -159,6 +159,7 @@ function dump(o, indent, nested, level)
return "{"..table.concat(t, ", ").."}" return "{"..table.concat(t, ", ").."}"
end end
--------------------------------------------------------------------------------
function string.split(str, delim, include_empty, max_splits, sep_is_pattern) function string.split(str, delim, include_empty, max_splits, sep_is_pattern)
delim = delim or "," delim = delim or ","
max_splits = max_splits or -1 max_splits = max_splits or -1
@ -183,6 +184,19 @@ function string.split(str, delim, include_empty, max_splits, sep_is_pattern)
return items return items
end end
--------------------------------------------------------------------------------
function table.indexof(list, val)
for i = 1, #list do
if list[i] == val then
return i
end
end
return -1
end
assert(table.indexof({"foo", "bar"}, "foo") == 1)
assert(table.indexof({"foo", "bar"}, "baz") == -1)
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
function file_exists(filename) function file_exists(filename)
local f = io.open(filename, "r") local f = io.open(filename, "r")

@ -143,8 +143,26 @@ function mm_texture.set_game(identifier,gamedetails)
end end
end end
-- Find out how many randomized textures the subgame provides
local n, filename
local menu_files = core.get_dir_list(gamedetails.path .. DIR_DELIM .. "menu", false)
for i = 1, #menu_files do
local filename = identifier .. "." .. i .. ".png"
if table.indexof(menu_files, filename) == -1 then
n = i - 1
break
end
end
-- Select random texture, 0 means standard texture
n = math.random(0, n)
if n == 0 then
filename = identifier .. ".png"
else
filename = identifier .. "." .. n .. ".png"
end
local path = gamedetails.path .. DIR_DELIM .. "menu" .. local path = gamedetails.path .. DIR_DELIM .. "menu" ..
DIR_DELIM .. identifier .. ".png" DIR_DELIM .. filename
if core.set_background(identifier, path) then if core.set_background(identifier, path) then
return true return true
end end