Changeset 7648 for code/trunk/data/gui/scripts/SingleplayerMenu.lua
- Timestamp:
- Nov 13, 2010, 11:55:23 PM (14 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
- Property svn:mergeinfo changed
/code/branches/releasetodo (added) merged: 7614,7625-7629,7638-7639,7645-7647
- Property svn:mergeinfo changed
-
code/trunk/data/gui/scripts/SingleplayerMenu.lua
r7163 r7648 3 3 local P = createMenuSheet("SingleplayerMenu") 4 4 5 P.levelList = {} 6 P.itemList = {} 7 P.showAll = false 8 5 9 function P.onLoad() 6 listbox = winMgr:getWindow("orxonox/SingleplayerLevelListbox") 7 preselect = orxonox.LevelManager:getInstance():getDefaultLevel() 8 orxonox.LevelManager:getInstance():compileAvailableLevelList() 9 local levelList = {} 10 local window = winMgr:getWindow("orxonox/SingleplayerShowAllCheckbox") 11 local button = tolua.cast(window,"CEGUI::Checkbox") 12 button:setSelected(false) 13 P.createLevelList() 14 end 15 16 function P.createLevelList() 17 P.levelList = {} 18 P.itemList = {} 19 local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/SingleplayerLevelListbox")) 20 listbox:resetList() 21 orxonox.GUIManager:setItemTooltipsEnabledHelper(listbox, true) 22 local preselect = orxonox.LevelManager:getInstance():getDefaultLevel() 23 local size = orxonox.LevelManager:getInstance():getNumberOfLevels() 10 24 local index = 0 11 local level = "" 12 while true do 13 level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index) 14 if level == "" then 15 break 16 end 17 table.insert(levelList, level) 18 index = index + 1 25 local level = nil 26 while index < size do 27 level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index) 28 if level ~= nil then 29 if P.showAll or not level:hasTag("test") then 30 table.insert(P.levelList, level) 31 end 32 end 33 index = index + 1 19 34 end 20 table.sort(levelList) 21 for k,v in pairs(levelList) do 22 item = CEGUI.createListboxTextItem(v) 35 --TODO: Reintroduce sorting, if needed. At the moment it's sorted by filename. 36 --table.sort(levelList) 37 for k,v in pairs(P.levelList) do 38 local item = CEGUI.createListboxTextItem(v:getName()) 23 39 item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush") 24 CEGUI.toListbox(listbox):addItem(item)25 if v .. ".oxw"== preselect then40 listbox:addItem(item) 41 if v:getXMLFilename() == preselect then 26 42 listbox:setItemSelectState(item, true) 27 43 end 44 P.itemList[k] = listbox:getListboxItemFromIndex(k-1) 45 orxonox.GUIManager:setTooltipTextHelper(P.itemList[k], v:getDescription()) 28 46 end 29 30 47 end 31 48 32 49 function P.SingleplayerStartButton_clicked(e) 33 local choice = CEGUI.toListbox(winMgr:getWindow("orxonox/SingleplayerLevelListbox")):getFirstSelectedItem() 34 if choice then 35 orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw") 36 orxonox.execute("startGame") 37 hideAllMenuSheets() 50 local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/SingleplayerLevelListbox")) 51 local choice = listbox:getFirstSelectedItem() 52 if choice ~= nil then 53 local index = listbox:getItemIndex(choice) 54 local level = P.levelList[index+1] 55 if level ~= nil then 56 orxonox.LevelManager:getInstance():setDefaultLevel(level:getXMLFilename()) 57 orxonox.execute("startGame") 58 hideAllMenuSheets() 59 end 38 60 end 61 end 62 63 function P.SingleplayerShowAll_clicked(e) 64 local checkbox = tolua.cast(winMgr:getWindow("orxonox/SingleplayerShowAllCheckbox"), "CEGUI::Checkbox") 65 local show = checkbox:isSelected() 66 if show ~= P.showAll then 67 P.showAll = show 68 P.createLevelList() 69 end 39 70 end 40 71
Note: See TracChangeset
for help on using the changeset viewer.