Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/data/gui/scripts/MultiplayerMenu.lua @ 6952

Last change on this file since 6952 was 6746, checked in by rgrieder, 15 years ago

Merged gamestates2 branch back to trunk.
This brings in some heavy changes in the GUI framework.
It should also fix problems with triggered asserts in the InputManager.

Note: PickupInventory does not seem to work —> Segfault when showing because before, the owner in GUIOverlay::setGUIName is already NULL.
I haven't tested it before, so I can't tell whether it's my changes.

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1-- MultiplayerMenu.lua
2
3local P = createMenuSheet("MultiplayerMenu")
4
5function P.onLoad()
6    listbox = winMgr:getWindow("orxonox/MultiplayerLevelListbox")
7    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
8    orxonox.LevelManager:getInstance():compileAvailableLevelList()
9    local levelList = {}
10    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
19    end
20    table.sort(levelList)
21    for k,v in pairs(levelList) do
22        item = CEGUI.createListboxTextItem(v)
23        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
24        CEGUI.toListbox(listbox):addItem(item)
25        if v .. ".oxw" == preselect then
26            listbox:setItemSelectState(item, true)
27        end
28    end
29    local multiplayerMode = "startClient"
30    if multiplayerMode == "startClient" then
31        window = winMgr:getWindow("orxonox/MultiplayerJoinButton")
32        button = tolua.cast(window,"CEGUI::RadioButton")
33        button:setSelected(true)
34    end
35    if multiplayerMode == "startServer" then
36        window = winMgr:getWindow("orxonox/MultiplayerHostButton")
37        button = tolua.cast(window,"CEGUI::RadioButton")
38        button:setSelected(true)
39    end
40    if multiplayerMode == "startDedicated" then
41        window = winMgr:getWindow("orxonox/MultiplayerDedicatedButton")
42        button = tolua.cast(window,"CEGUI::RadioButton")
43        button:setSelected(true)
44    end
45end
46
47function P.MultiplayerJoinButton_clicked(e)
48    multiplayerMode = "startClient"
49end
50
51function P.MultiplayerHostButton_clicked(e)
52    multiplayerMode = "startServer"
53end
54
55function P.MultiplayerDedicatedButton_clicked(e)
56    multiplayerMode = "startDedicated"
57end
58
59function P.MultiplayerStartButton_clicked(e)
60    local choice = winMgr:getWindow("orxonox/MultiplayerLevelListbox"):getFirstSelectedItem()
61    if choice then
62        orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
63        orxonox.execute(multiplayerMode)
64        hideAllMenuSheets()
65    end
66end
67
68function P.MultiplayerBackButton_clicked(e)
69    hideMenuSheet(P.name)
70end
71
72return P
73
Note: See TracBrowser for help on using the repository browser.