Builtin: Fix subgame mod selection (#5367)
authorSmallJoker <SmallJoker@users.noreply.github.com>
Wed, 17 May 2017 17:31:57 +0000 (19:31 +0200)
committerGitHub <noreply@github.com>
Wed, 17 May 2017 17:31:57 +0000 (19:31 +0200)
builtin/common/filterlist.lua
builtin/mainmenu/modmgr.lua

index 2a62362e3a8ef00d0197451bd9cf6b6fe6013fbc..56223119230602f499c92c9a539996ee6a87b52e 100644 (file)
@@ -289,6 +289,9 @@ function sort_mod_list(self)
        table.sort(self.m_processed_list, function(a, b)
                -- Show game mods at bottom
                if a.typ ~= b.typ then
+                       if b.typ == "game" then 
+                               return a.typ ~= "game_mod"
+                       end
                        return b.typ == "game_mod"
                end
                -- If in same or no modpack, sort by name
index 0fbfa3e6b41ea4a8d20660191e17b6b2c4fca445..14d29272e7015f364a7ce829276dac9c4894812b 100644 (file)
@@ -238,15 +238,7 @@ function modmgr.render_modlist(render_list)
        local list = render_list:get_list()
        local last_modpack = nil
        local retval = {}
-       local in_game_mods = false
        for i, v in ipairs(list) do
-               if v.typ == "game_mod" and not in_game_mods then
-                       in_game_mods = true
-                       retval[#retval + 1] = mt_color_blue
-                       retval[#retval + 1] = "0"
-                       retval[#retval + 1] = fgettext("Subgame Mods")
-               end
-
                local color = ""
                if v.is_modpack then
                        local rawlist = render_list:get_raw_list()
@@ -260,7 +252,7 @@ function modmgr.render_modlist(render_list)
                                        break
                                end
                        end
-               elseif v.typ == "game_mod" then
+               elseif v.typ == "game_mod" or v.typ == "game" then
                        color = mt_color_blue
                elseif v.enabled then
                        color = mt_color_green
@@ -421,6 +413,14 @@ function modmgr.preparemodlist(data)
        local gamespec = gamemgr.find_by_gameid(data.gameid)
        gamemgr.get_game_mods(gamespec, game_mods)
 
+       if #game_mods > 0 then
+               -- Add title
+               retval[#retval + 1] = {
+                       typ = "game",
+                       name = fgettext("Subgame Mods")
+               }
+       end
+
        for i=1,#game_mods,1 do
                game_mods[i].typ = "game_mod"
                retval[#retval + 1] = game_mods[i]