Skip to content

Commit

Permalink
World config dialog: Use engine determined path for game mods
Browse files Browse the repository at this point in the history
  • Loading branch information
kahrl committed Aug 19, 2013
1 parent 8548bb7 commit 4242782
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 31 deletions.
43 changes: 28 additions & 15 deletions builtin/gamemgr.lua
Expand Up @@ -155,22 +155,35 @@ function gamemgr.delete_mod(gamespec,modindex)
end

--------------------------------------------------------------------------------
function gamemgr.get_game_mods(gamespec)
function gamemgr.find_by_gameid(gameid)
for i=1,#gamemgr.games,1 do
if gamemgr.games[i].id == gameid then
return gamemgr.games[i], i
end
end
return nil, nil
end

local retval = ""

if gamespec.gamemods_path ~= nil and
--------------------------------------------------------------------------------
function gamemgr.get_game_mods(gamespec, retval)
if gamespec ~= nil and
gamespec.gamemods_path ~= nil and
gamespec.gamemods_path ~= "" then
local game_mods = {}
get_mods(gamespec.gamemods_path,game_mods)

for i=1,#game_mods,1 do
if retval ~= "" then
retval = retval..","
end
retval = retval .. game_mods[i].name
end
get_mods(gamespec.gamemods_path, retval)
end
end

--------------------------------------------------------------------------------
function gamemgr.get_game_modlist(gamespec)
local retval = ""
local game_mods = {}
gamemgr.get_game_mods(gamespec, game_mods)
for i=1,#game_mods,1 do
if retval ~= "" then
retval = retval..","
end
retval = retval .. game_mods[i].name
end
return retval
end

Expand Down Expand Up @@ -220,7 +233,7 @@ function gamemgr.tab()
"label[6,1.4;" .. fgettext("Mods:") .."]" ..
"button[9.7,1.5;2,0.2;btn_game_mgr_edit_game;" .. fgettext("edit game") .. "]" ..
"textlist[6,2;5.5,3.3;game_mgr_modlist;"
.. gamemgr.get_game_mods(current_game) ..";0]" ..
.. gamemgr.get_game_modlist(current_game) ..";0]" ..
"button[1,4.75;3.2,0.5;btn_game_mgr_new_game;" .. fgettext("new game") .. "]"
end
return retval
Expand All @@ -243,7 +256,7 @@ function gamemgr.dialog_edit_game()

retval = retval ..
"textlist[0.5,0.5;4.5,4.3;mods_current;"
.. gamemgr.get_game_mods(current_game) ..";0]"
.. gamemgr.get_game_modlist(current_game) ..";0]"


retval = retval ..
Expand Down
12 changes: 5 additions & 7 deletions builtin/mainmenu.lua
Expand Up @@ -237,13 +237,11 @@ function menu.update_last_game()
if current_world == nil then
return
end

for i=1,#gamemgr.games,1 do
if gamemgr.games[i].id == current_world.gameid then
menu.last_game = i
engine.setting_set("main_menu_last_game_idx",menu.last_game)
break
end

local gamespec, i = gamemgr.find_by_gameid(current_world.gameid)
if i ~= nil then
menu.last_game = i
engine.setting_set("main_menu_last_game_idx",menu.last_game)
end
end

Expand Down
13 changes: 4 additions & 9 deletions builtin/modmgr.lua
Expand Up @@ -529,9 +529,8 @@ function modmgr.get_worldconfig(worldpath)
end

--read gamemods
local gamemodpath = engine.get_gamepath() .. DIR_DELIM .. worldconfig.id .. DIR_DELIM .. "mods"

get_mods(gamemodpath,worldconfig.game_mods)
local gamespec = gamemgr.find_by_gameid(worldconfig.id)
gamemgr.get_game_mods(gamespec, worldconfig.game_mods)

return worldconfig
end
Expand Down Expand Up @@ -871,12 +870,8 @@ function modmgr.preparemodlist(data)
end

--read game mods
if data.gameid ~= nil and
data.gameid ~= "" then
local gamemodpath = engine.get_gamepath() .. DIR_DELIM .. data.gameid .. DIR_DELIM .. "mods"

get_mods(gamemodpath,game_mods)
end
local gamespec = gamemgr.find_by_gameid(data.gameid)
gamemgr.get_game_mods(gamespec, game_mods)

for i=1,#game_mods,1 do
game_mods[i].typ = "game_mod"
Expand Down

0 comments on commit 4242782

Please sign in to comment.