Changeset 7648
- Timestamp:
- Nov 13, 2010, 11:55:23 PM (14 years ago)
- Location:
- code/trunk
- Files:
-
- 40 edited
- 2 copied
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/layouts/MultiplayerMenu.layout
r7163 r7648 15 15 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 16 16 <Property Name="VertFormatting" Value="TopAligned" /> 17 <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0. 6375,0}}" />17 <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0.7,0}}" /> 18 18 <Window Type="MenuWidgets/Listbox" Name="orxonox/MultiplayerListbox" > 19 19 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> … … 23 23 <Property Name="Text" Value="Join" /> 24 24 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 25 <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.8 5,0},{0.3,0},{0.95,0}}" />25 <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.81,0},{0.3,0},{0.89,0}}" /> 26 26 <Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerJoinButton_clicked"/> 27 27 </Window> … … 29 29 <Property Name="Text" Value="Host" /> 30 30 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 31 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.8 5,0},{0.6,0},{0.95,0}}" />31 <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.81,0},{0.6,0},{0.89,0}}" /> 32 32 <Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerHostButton_clicked"/> 33 33 </Window> … … 35 35 <Property Name="Text" Value="Dedicated" /> 36 36 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 37 <Property Name="UnifiedAreaRect" Value="{{0.7,0},{0.8 5,0},{0.9,0},{0.95,0}}" />37 <Property Name="UnifiedAreaRect" Value="{{0.7,0},{0.81,0},{0.9,0},{0.89,0}}" /> 38 38 <Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerDedicatedButton_clicked"/> 39 </Window> 40 <Window Type="MenuWidgets/Checkbox" Name="orxonox/MultiplayerShowAllCheckbox" > 41 <Property Name="Text" Value="show all" /> 42 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 43 <Property Name="UnifiedAreaRect" Value="{{0.65,0},{0.89,0},{0.8,0},{0.99,0}}" /> 44 <Property Name="Disabled" Value="True" /> 45 <Event Name="CheckStateChanged" Function="MultiplayerMenu.MultiplayerShowAll_clicked"/> 39 46 </Window> 40 47 </Window> … … 42 49 <Property Name="Text" Value="Start" /> 43 50 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 44 <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0. 6625,0},{0.4875,0},{0.7125,0}}" />51 <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.725,0},{0.4875,0},{0.775,0}}" /> 45 52 <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerStartButton_clicked"/> 46 53 </Window> … … 48 55 <Property Name="Text" Value="Back" /> 49 56 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 50 <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0. 6625,0},{0.7125,0},{0.7125,0}}" />57 <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.725,0},{0.7125,0},{0.775,0}}" /> 51 58 <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerBackButton_clicked"/> 52 59 </Window> -
code/trunk/data/gui/layouts/SingleplayerMenu.layout
r6746 r7648 15 15 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 16 16 <Property Name="VertFormatting" Value="TopAligned" /> 17 <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0. 6375,0}}" />17 <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0.7,0}}" /> 18 18 <Window Type="MenuWidgets/Listbox" Name="orxonox/SingleplayerLevelListbox" > 19 19 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 20 <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.92,0}}" /> 20 <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.85,0}}" /> 21 </Window> 22 <Window Type="MenuWidgets/Checkbox" Name="orxonox/SingleplayerShowAllCheckbox" > 23 <Property Name="Text" Value="show all" /> 24 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 25 <Property Name="UnifiedAreaRect" Value="{{0.65,0},{0.87,0},{0.8,0},{.97,0}}" /> 26 <Event Name="CheckStateChanged" Function="SingleplayerMenu.SingleplayerShowAll_clicked"/> 21 27 </Window> 22 28 </Window> … … 24 30 <Property Name="Text" Value="Start" /> 25 31 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 26 <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0. 6625,0},{0.4875,0},{0.7125,0}}" />32 <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.725,0},{0.4875,0},{0.775,0}}" /> 27 33 <Event Name="Clicked" Function="SingleplayerMenu.SingleplayerStartButton_clicked"/> 28 34 </Window> … … 30 36 <Property Name="Text" Value="Back" /> 31 37 <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" /> 32 <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0. 6625,0},{0.7125,0},{0.7125,0}}" />38 <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.725,0},{0.7125,0},{0.775,0}}" /> 33 39 <Event Name="Clicked" Function="SingleplayerMenu.SingleplayerBackButton_clicked"/> 34 40 </Window> -
code/trunk/data/gui/scripts/MultiplayerMenu.lua
r7163 r7648 2 2 3 3 local P = createMenuSheet("MultiplayerMenu") 4 5 P.levelList = {} 6 P.itemList = {} 7 P.showAll = false 4 8 5 9 function P.onLoad() … … 12 16 local button = tolua.cast(window,"CEGUI::RadioButton") 13 17 button:setSelected(true) 18 local checkbox = winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox") 19 checkbox:setProperty("Disabled", "True") 14 20 P.showServerList() 15 21 end … … 18 24 local button = tolua.cast(window,"CEGUI::RadioButton") 19 25 button:setSelected(true) 26 local checkbox = winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox") 27 checkbox:setProperty("Disabled", "False") 20 28 P.showLevelList() 21 29 end … … 24 32 local button = tolua.cast(window,"CEGUI::RadioButton") 25 33 button:setSelected(true) 34 local checkbox = winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox") 35 checkbox:setProperty("Disabled", "True") 26 36 P.showLevelList() 27 37 end … … 30 40 function P.MultiplayerJoinButton_clicked(e) 31 41 P.multiplayerMode = "startClient" 42 local checkbox = winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox") 43 checkbox:setProperty("Disabled", "True") 32 44 P.showServerList() 33 45 end … … 35 47 function P.MultiplayerHostButton_clicked(e) 36 48 P.multiplayerMode = "startServer" 49 local checkbox = winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox") 50 checkbox:setProperty("Disabled", "False") 37 51 P.showLevelList() 38 52 end … … 40 54 function P.MultiplayerDedicatedButton_clicked(e) 41 55 P.multiplayerMode = "startDedicated" 56 local checkbox = winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox") 57 checkbox:setProperty("Disabled", "True") 42 58 P.showLevelList() 59 end 60 61 function P.MultiplayerShowAll_clicked(e) 62 local checkbox = tolua.cast(winMgr:getWindow("orxonox/MultiplayerShowAllCheckbox"), "CEGUI::Checkbox") 63 local show = checkbox:isSelected() 64 if show ~= P.showAll then 65 P.showAll = show 66 P.createLevelList() 67 end 43 68 end 44 69 … … 69 94 70 95 function P.showLevelList() 71 local listbox = winMgr:getWindow("orxonox/MultiplayerListbox") 72 CEGUI.toListbox(listbox):resetList() 96 P.createLevelList() 97 end 98 99 function P.createLevelList() 100 P.levelList = {} 101 P.itemList = {} 102 local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/MultiplayerListbox")) 103 listbox:resetList() 104 orxonox.GUIManager:setItemTooltipsEnabledHelper(listbox, true) 73 105 local preselect = orxonox.LevelManager:getInstance():getDefaultLevel() 74 orxonox.LevelManager:getInstance():compileAvailableLevelList() 75 local levelList = {} 106 local size = orxonox.LevelManager:getInstance():getNumberOfLevels() 76 107 local index = 0 77 local level = ""78 while true do108 local level = nil 109 while index < size do 79 110 level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index) 80 if level == "" then 81 break 111 if level ~= nil then 112 if P.showAll or not level:hasTag("test") then 113 table.insert(P.levelList, level) 114 end 82 115 end 83 table.insert(levelList, level)84 116 index = index + 1 85 117 end 86 table.sort(levelList)87 index = 188 for k,v in pairs( levelList) do89 local item = CEGUI.createListboxTextItem(v )118 --TODO: Reintroduce sorting, if needed. At the moment it's sorted by filename. 119 --table.sort(levelList) 120 for k,v in pairs(P.levelList) do 121 local item = CEGUI.createListboxTextItem(v:getName()) 90 122 item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush") 91 item:setID(index) 92 index = index + 1 93 CEGUI.toListbox(listbox):addItem(item) 94 if v .. ".oxw" == preselect then 123 listbox:addItem(item) 124 if v:getXMLFilename() == preselect then 95 125 listbox:setItemSelectState(item, true) 96 126 end 127 P.itemList[k] = listbox:getListboxItemFromIndex(k-1) 128 orxonox.GUIManager:setTooltipTextHelper(P.itemList[k], v:getDescription()) 97 129 end 98 99 130 end 131 100 132 function P.showServerList() 101 133 local listbox = winMgr:getWindow("orxonox/MultiplayerListbox") -
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 -
code/trunk/data/levels/Fight in our Back.oxw
r7463 r7648 1 <LevelInfo 2 name = "Fight in our Back" 3 description = "Our fleet is far ahead of us. We need to get rid of all the enemies in its back, because we do not want our enemies to attack from everywhere. So let us clear this Sector!" 4 tags = "" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/Quest_PirateAttack.oxw
r7463 r7648 1 <LevelInfo 2 name = "Pirate Attack" 3 description = "Dani's Testlevel" 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/The Time Machine.oxw
r7163 r7648 1 <LevelInfo 2 name = "The Time Machine" 3 description = "A simple level. The only goal is to defeat as much enemies as you can." 4 tags = "" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/empty_level.oxw
r7163 r7648 1 <LevelInfo 2 name = "Empty level" 3 description = "A level with absolutely nothing in it." 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/events.oxw
r7163 r7648 1 <LevelInfo 2 name = "Events showcase" 3 description = "Level to test and showcase events." 4 tags = "test, showcase" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/fps_test.oxw
r7284 r7648 1 <LevelInfo 2 name = "FPS testlevel" 3 description = "Level to test First Person Shooter" 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/notifications.oxw
r7474 r7648 1 <LevelInfo 2 name = "Notifications showcase" 3 description = "Level to test and showcase notifications." 4 tags = "test, showcase" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/pickups.oxw
r7163 r7648 1 <LevelInfo 2 name = "Pickups showcase" 3 description = "Level to test and showcase pickups." 4 tags = "test, showcase" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/presentation.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation" 3 description = "Presentation Level" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/presentation09.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation X" 3 description = "1st Presentation level for Orxonox Convention X" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/presentation09b.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation X2" 3 description = "2nd Presentation level for Orxonox Convention X" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/presentationFS10.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation XI" 3 description = "1st Presentation level for Orxonox Convention XI" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/presentationHS09.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation X" 3 description = "1st Presentation level for Orxonox Convention X" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/presentationHS09b.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation X" 3 description = "2nd Presentation level for Orxonox Convention X" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/presentation_FS10.oxw
r7284 r7648 1 <LevelInfo 2 name = "Presentation XI FPS" 3 description = "2nd Presentation level for Orxonox Convention XI, FPS" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/presentation_FS10_ed.oxw
r7284 r7648 1 <LevelInfo 2 name = "Presentation XI FPS" 3 description = "3rd Presentation level for Orxonox Convention XI, FPS" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/presentation_dm.oxw
r7163 r7648 1 <LevelInfo 2 name = "Presentation DM" 3 description = "Presentation Level" 4 tags = "presentation" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/princessaeryn.oxw
r7463 r7648 1 <LevelInfo 2 name = "The Tale of Princess Aeryn" 3 description = "The Tale of the elusive but beautiful Princess Aeryn" 4 tags = "" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/screenshot.oxw
r7163 r7648 1 <LevelInfo 2 name = "Screenshot" 3 description = "Level to make awesome screenshots in." 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/sound.oxw
r7163 r7648 1 <LevelInfo 2 name = "Sound showcase" 3 description = "Level to test and showcase sound." 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/teambasematchlevel.oxw
r7163 r7648 1 <LevelInfo 2 name = "Teambase Match" 3 description = "Fight for the bases." 4 tags = "" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/teamdeathmatch.oxw
r7163 r7648 1 <LevelInfo 2 name = "Team Deathmatch" 3 description = "Fight against each other in teams." 4 tags = "" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/test_stars.oxw
r7163 r7648 1 <LevelInfo 2 name = "Stars Testlevel" 3 description = "Level to test stars" 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("stats.oxo") -
code/trunk/data/levels/test_swallow.oxw
r7285 r7648 1 <LevelInfo 2 name = "Swallow Testlevel" 3 description = "Level to test the swallow spaceship." 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/tutorial.oxw
r7404 r7648 1 <LevelInfo 2 name = "Coding Tutorial" 3 description = "Level for the coding tutorial." 4 tags = "tutorial" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/data/levels/waypoints.oxw
r7163 r7648 1 <LevelInfo 2 name = "Waypoints Testlevel" 3 description = "Testing waypoings for AI controlled spaceships." 4 tags = "test" 5 /> 6 1 7 <?lua 2 8 include("hudtemplates3.oxo") -
code/trunk/src/libraries/core/GUIManager.cc
r7403 r7648 43 43 #include <CEGUIWindow.h> 44 44 #include <CEGUIWindowManager.h> 45 #include <elements/CEGUIListbox.h> 46 #include <elements/CEGUIListboxItem.h> 45 47 #include <ogreceguirenderer/OgreCEGUIRenderer.h> 46 48 … … 436 438 } 437 439 440 /** 441 @brief 442 Subscribe the input function to the input event for the input window. 443 This is a helper to be used in lua, because subscribeScriptedEvent() doesn't work in lua. 444 @param window 445 The window for which the event is subscribed. 446 @param event 447 The type of event to which we subscribe. 448 @param function 449 The function that is called when the event occurs. 450 */ 438 451 void GUIManager::subscribeEventHelper(CEGUI::Window* window, const std::string& event, const std::string& function) 439 452 { 440 453 window->subscribeScriptedEvent(event, function); 441 454 } 455 456 /** 457 @brief 458 Set the input tooltip text for the input ListboxItem. 459 @param item 460 The ListboxItem for which the tooltip should be set. 461 @param tooltip 462 The tooltip text that should be set. 463 */ 464 void GUIManager::setTooltipTextHelper(CEGUI::ListboxItem* item, const std::string& tooltip) 465 { 466 item->setTooltipText(tooltip); 467 } 468 469 /** 470 @brief 471 Set whether the tooltips for the input Listbox are enabled. 472 @param listbox 473 The Listbox for which to enable (or disable) tooltips. 474 @param enabled 475 Whether to enable or disabel the tooltips. 476 */ 477 void GUIManager::setItemTooltipsEnabledHelper(CEGUI::Listbox* listbox, bool enabled) 478 { 479 listbox->setItemTooltipsEnabled(enabled); 480 } 481 442 482 } -
code/trunk/src/libraries/core/GUIManager.h
r7403 r7648 106 106 // TODO: Temporary hack because the tolua exported CEGUI method does not seem to work 107 107 static void subscribeEventHelper(CEGUI::Window* window, const std::string& event, const std::string& function); //tolua_export 108 static void setTooltipTextHelper(CEGUI::ListboxItem* item, const std::string& toooltip); //tolua_export 109 static void setItemTooltipsEnabledHelper(CEGUI::Listbox* listbox, bool enabled); //tolua_export 108 110 109 111 static GUIManager& getInstance() { return Singleton<GUIManager>::getInstance(); } // tolua_export -
code/trunk/src/libraries/core/Loader.cc
r6422 r7648 88 88 } 89 89 90 bool Loader::load(const ClassTreeMask& mask) 90 /** 91 @brief 92 Loads all opened files, while conforming to the restrictions given by the input ClassTreeMask. 93 @param mask 94 A ClassTreeMask, which defines which types of classes are loaded and which aren't. 95 @param verbose 96 Whether the loader is verbose (prints its progress in a low output level) or not. 97 @return 98 Returns true if successful. 99 */ 100 bool Loader::load(const ClassTreeMask& mask, bool verbose) 91 101 { 92 102 bool success = true; 93 103 for (std::vector<std::pair<const XMLFile*, ClassTreeMask> >::iterator it = Loader::files_s.begin(); it != Loader::files_s.end(); ++it) 94 if (!Loader::load(it->first, it->second * mask ))104 if (!Loader::load(it->first, it->second * mask, verbose)) 95 105 success = false; 96 106 … … 109 119 } 110 120 111 bool Loader::reload(const ClassTreeMask& mask) 121 /** 122 @brief 123 Reloads all opened files, while conforming to the restrictions given by the input ClassTreeMask. 124 @param mask 125 A ClassTreeMask, which defines which types of classes are reloaded and which aren't. 126 @param verbose 127 Whether the loader is verbose (prints its progress in a low output level) or not. 128 @return 129 Returns true if successful. 130 */ 131 bool Loader::reload(const ClassTreeMask& mask, bool verbose) 112 132 { 113 133 Loader::unload(mask); 114 return Loader::load(mask); 115 } 116 117 bool Loader::load(const XMLFile* file, const ClassTreeMask& mask) 134 return Loader::load(mask, verbose); 135 } 136 137 /** 138 @brief 139 Loads the input file, while conforming to the restrictions given by the input ClassTreeMask. 140 @param file 141 The file to be loaded. 142 @param mask 143 A ClassTreeMask, which defines which types of classes are loaded and which aren't. 144 @param verbose 145 Whether the loader is verbose (prints its progress in a low output level) or not. 146 @return 147 Returns true if successful. 148 */ 149 bool Loader::load(const XMLFile* file, const ClassTreeMask& mask, bool verbose) 118 150 { 119 151 if (!file) … … 144 176 try 145 177 { 146 COUT(0) << "Start loading " << file->getFilename() << "..." << std::endl; 147 COUT(3) << "Mask: " << Loader::currentMask_s << std::endl; 178 if(verbose) 179 { 180 COUT(0) << "Start loading " << file->getFilename() << "..." << std::endl; 181 COUT(3) << "Mask: " << Loader::currentMask_s << std::endl; 182 } 183 else 184 { 185 COUT(4) << "Start loading " << file->getFilename() << "..." << std::endl; 186 COUT(4) << "Mask: " << Loader::currentMask_s << std::endl; 187 } 148 188 149 189 ticpp::Document xmlfile(file->getFilename()); … … 165 205 rootNamespace->XMLPort(rootElement, XMLPort::LoadObject); 166 206 167 COUT(0) << "Finished loading " << file->getFilename() << '.' << std::endl; 207 if(verbose) 208 COUT(0) << "Finished loading " << file->getFilename() << '.' << std::endl; 209 else 210 COUT(4) << "Finished loading " << file->getFilename() << '.' << std::endl; 168 211 169 212 COUT(4) << "Namespace-tree:" << std::endl << rootNamespace->toString(" ") << std::endl; … … 210 253 } 211 254 212 bool Loader::reload(const XMLFile* file, const ClassTreeMask& mask) 255 /** 256 @brief 257 Reloads the input file, while conforming to the restrictions given by the input ClassTreeMask. 258 @param file 259 The file to be reloaded. 260 @param mask 261 A ClassTreeMask, which defines which types of classes are reloaded and which aren't. 262 @param verbose 263 Whether the loader is verbose (prints its progress in a low output level) or not. 264 @return 265 Returns true if successful. 266 */ 267 bool Loader::reload(const XMLFile* file, const ClassTreeMask& mask, bool verbose) 213 268 { 214 269 Loader::unload(file, mask); 215 return Loader::load(file, mask );270 return Loader::load(file, mask, verbose); 216 271 } 217 272 -
code/trunk/src/libraries/core/Loader.h
r7401 r7648 57 57 static void remove(const XMLFile* file); 58 58 59 static bool load(const ClassTreeMask& mask = ClassTreeMask() );59 static bool load(const ClassTreeMask& mask = ClassTreeMask(), bool verbose = true); 60 60 static void unload(const ClassTreeMask& mask = ClassTreeMask()); 61 static bool reload(const ClassTreeMask& mask = ClassTreeMask() );61 static bool reload(const ClassTreeMask& mask = ClassTreeMask(), bool verbose = true); 62 62 63 static bool load(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask() );63 static bool load(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(), bool verbose = true); 64 64 static void unload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask()); 65 static bool reload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask() );65 static bool reload(const XMLFile* file, const ClassTreeMask& mask = ClassTreeMask(), bool verbose = true); 66 66 67 67 static std::string replaceLuaTags(const std::string& text); -
code/trunk/src/orxonox/CMakeLists.txt
r7504 r7648 25 25 SET_SOURCE_FILES(ORXONOX_SRC_FILES 26 26 Level.cc 27 LevelInfo.cc 27 28 LevelManager.cc 28 29 Main.cc … … 58 59 TOLUA_FILES 59 60 ChatInputHandler.h 61 LevelInfo.h 60 62 LevelManager.h 61 63 MoodManager.h -
code/trunk/src/orxonox/Level.cc
r7163 r7648 76 76 XMLPortObject(Level, MeshLodInformation, "lodinformation", addLodInfo, getLodInfo, xmlelement, mode); 77 77 XMLPortObjectExtended(Level, BaseObject, "", addObject, getObject, xmlelement, mode, true, false); 78 }78 } 79 79 80 80 void Level::registerVariables() -
code/trunk/src/orxonox/LevelManager.cc
r7284 r7648 32 32 33 33 #include "util/ScopedSingletonManager.h" 34 #include "core/ClassTreeMask.h" 34 35 #include "core/CommandLineParser.h" 35 36 #include "core/ConfigValueIncludes.h" … … 37 38 #include "core/Loader.h" 38 39 #include "core/Resource.h" 40 #include "core/XMLFile.h" 39 41 #include "PlayerManager.h" 40 42 #include "Level.h" 43 #include "LevelInfo.h" 41 44 42 45 namespace orxonox … … 56 59 ModifyConfigValue(defaultLevelName_, tset, CommandLineParser::getValue("level").getString()); 57 60 } 61 62 this->compileAvailableLevelList(); 58 63 } 59 64 … … 125 130 } 126 131 127 const std::string& LevelManager::getAvailableLevelListItem(unsigned int index) const132 unsigned int LevelManager::getNumberOfLevels() 128 133 { 129 if (index >= availableLevels_.size()) 130 return BLANKSTRING; 134 this->updateAvailableLevelList(); 135 136 return this->availableLevels_.size(); 137 } 138 139 LevelInfoItem* LevelManager::getAvailableLevelListItem(unsigned int index) const 140 { 141 if (index >= this->availableLevels_.size()) 142 return NULL; 131 143 else 132 return availableLevels_[index]; 144 { 145 std::map<std::string, LevelInfoItem*>::const_iterator it = this->infos_.find(this->availableLevels_[index]); 146 return it->second; 147 } 133 148 } 134 149 135 150 void LevelManager::compileAvailableLevelList() 136 151 { 137 this->availableLevels_.clear();138 152 Ogre::StringVectorPtr levels = Resource::findResourceNames("*.oxw"); 153 // Iterate over all *.oxw level files. 139 154 for (Ogre::StringVector::const_iterator it = levels->begin(); it != levels->end(); ++it) 140 155 { 156 //TODO: Replace with tag, 141 157 if (it->find("old/") != 0) 142 158 { 143 159 size_t pos = it->find(".oxw"); 160 161 bool infoExists = false; 162 // Load the LevelInfo object from the level file. 163 XMLFile file = XMLFile(*it); 164 ClassTreeMask mask = ClassTreeMask(); 165 mask.exclude(ClassIdentifier<BaseObject>::getIdentifier()); 166 mask.include(ClassIdentifier<LevelInfo>::getIdentifier()); 167 Loader::load(&file, mask, false); 168 for(ObjectList<LevelInfo>::iterator item = ObjectList<LevelInfo>::begin(); item != ObjectList<LevelInfo>::end(); ++item) 169 { 170 LevelInfoItem* info = item->copy(); 171 if(info->getXMLFilename() == *it) 172 { 173 this->infos_.insert(std::pair<std::string, LevelInfoItem*>(it->substr(0, pos),info)); 174 infoExists = true; 175 } 176 } 177 Loader::unload(&file, mask); 178 if(!infoExists) 179 { 180 this->infos_.insert(std::pair<std::string, LevelInfoItem*>(it->substr(0, pos), new LevelInfoItem(it->substr(0, pos), *it))); 181 } 182 144 183 this->availableLevels_.push_back(it->substr(0, pos)); 145 184 } 146 185 } 147 186 } 187 188 void LevelManager::updateAvailableLevelList(void) 189 { 190 //TODO: Implement some kind of update? 191 } 148 192 } -
code/trunk/src/orxonox/LevelManager.h
r6746 r7648 34 34 #include <cassert> 35 35 #include <list> 36 #include <map> 36 37 #include <string> 37 38 … … 59 60 void setDefaultLevel(const std::string& levelName); //tolua_export 60 61 const std::string& getDefaultLevel() const; //tolua_export 61 void compileAvailableLevelList(); //tolua_export62 const std::string&getAvailableLevelListItem(unsigned int index) const; //tolua_export62 unsigned int getNumberOfLevels(void); //tolua_export 63 LevelInfoItem* getAvailableLevelListItem(unsigned int index) const; //tolua_export 63 64 64 65 static LevelManager& getInstance() { return Singleton<LevelManager>::getInstance(); } // tolua_export … … 69 70 void activateNextLevel(); 70 71 72 void compileAvailableLevelList(void); 73 void updateAvailableLevelList(void); 74 71 75 std::list<Level*> levels_s; 72 76 std::vector<std::string> availableLevels_; 77 std::map<std::string, LevelInfoItem*> infos_; 73 78 74 79 // config values -
code/trunk/src/orxonox/OrxonoxPrereqs.h
r7163 r7648 67 67 class CameraManager; 68 68 class Level; 69 class LevelInfo; 70 class LevelInfoItem; 69 71 class LevelManager; 70 72 class PawnManager;
Note: See TracChangeset
for help on using the changeset viewer.