Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 12, 2016, 3:28:37 PM (7 years ago)
Author:
kappenh
Message:

Finished Project

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/Highscore_HS16/data/gui/scripts/HighscoreMenu.lua

    r11326 r11333  
    33local P = createMenuSheet("HighscoreMenu")
    44
    5 P.scrollbarWidth = 13
    6 P.nameList = {}
     5P.highscoreList = {}
    76P.tabList = {}
    87P.linesList = {}
    98P.levelList = {}
    109
    11 P.sampleWindow = nil
    1210
    13 P.lineHeight = 0
    14 P.playerWidth = 0
    15 P.editboxWidth = 0
    16 P.resetWidth = 0
    17 P.spaceWidth = 0
    1811P.imageHeight = 50
    19 P.textHeight = 30
    2012
    2113function P.onLoad()
    22         P.createLevelList()
    23        
    24     --P.createFilterTab("Minigames", "minigame")
    25     --P.createFilterTab("Showcases", "showcase")
    26     --P.createFilterTab("Presentations", "presentation")
    27     --P.createFilterTab("Tests", "test")
    28     --P.createFilterTab("Show All", nil)
    29 
    30    
     14        P.createLevelList()   
    3115end
    3216
    3317function P.onShow()
    3418       
    35         P.nameList = {}
     19        -- reset tables
     20        P.highscoreList = {}
    3621        P.tabList = {}
    3722        P.linesList = {}
    38         test = orxonox.Highscore:getInstance():getNumberOfHighscores()
    3923
    40         for i=0,orxonox.Highscore:getInstance():getNumberOfHighscores()-1 do
    41                 table.insert(P.nameList, orxonox.Highscore:getInstance():getHighscore(i))
     24        -- fetch save scores and write it into the list
     25        for i=orxonox.Highscore:getInstance():getNumberOfHighscores()-1,0,-1 do
     26                table.insert(P.highscoreList, orxonox.Highscore:getInstance():getHighscore(i))
    4227       
    4328        end
    4429       
     30        -- read minigames out of the levelList
    4531    for k,v in pairs(P.levelList) do
    46         -- only add level if it has desired tag
    47         if(v:getName() ~= "Hover level" and v:getName() ~= "Pong") then
     32        if(v:getName() ~= "Hover level" and v:getName() ~= "Pong") then   -- hover and pong dont contain relevant scores
    4833            P.createFilterTab(v:getName(), v:getName())
    4934        end
    50        
    51         --local highscores = v:getHighscores()
    52         --orxonox.CommandExecutor:execute("log test:".. highscores)
    53 
    5435    end
    55     --local description = winMgr:getWindow("orxonox/HighscoreText")
    56 
    57     --height = getStaticTextWindowHeight(description)
    58     --description:setSize(CEGUI.UVector2(CEGUI.UDim(1.0, -P.scrollbarWidth), CEGUI.UDim(0.0, height)))
     36 
    5937end
    6038function P.onHide()
     39
     40        -- delete old windows to reload them on show
    6141        local tabControl = winMgr:getWindow("orxonox/HighscoreTabControl")
    6242        for k,v in pairs(P.tabList) do
     
    6444            tabControl:removeChildWindow(default)
    6545                winMgr:destroyWindow(default)
    66         --local highscores = v:getHighscores()
    67         --orxonox.CommandExecutor:execute("log test:".. highscores)
    68 
    6946    end
    7047end
     
    7754        level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
    7855        if (level ~= nil and level:getXMLFilename() ~= "_temp.oxw" and level:hasTag("minigame")) then
    79             local levelXMLFilename = level:getXMLFilename()
    80             -- create an imageset for each screenshot
    81             local imageName = level:getScreenshot()
    82             if imageName ~= "" then
    83                 CEGUI.ImagesetManager:getSingleton():createFromImageFile(levelXMLFilename..imageName, imageName)
    84             else
    85                 CEGUI.ImagesetManager:getSingleton():createFromImageFile(levelXMLFilename..imageName, "noscreenshot.png")
    86             end
    8756            table.insert(P.levelList, level)
    8857        end
     
    10978   
    11079    local offset = 2
    111     for k,v in pairs(P.nameList) do
    112        
     80    for k,v in pairs(P.highscoreList) do
     81        -- split the score ("Playername./.game./.score")
    11382        local splitlist = P.Split(v,"./.")
    11483        if(splitlist[2] == name)then 
     
    12291    end
    12392
     93        local tabControl = winMgr:getWindow("orxonox/HighscoreTabControl")
     94        tabControl:addChildWindow(default)
    12495 
    125     local tabControl = winMgr:getWindow("orxonox/HighscoreTabControl")
    126     orxonox.GUIManager:subscribeEventHelper(tabControl, "TabSelectionChanged", P.name..".HighscoreSelectionChanged")
    127     --if listbox:getItemCount() > 0 then
    128         tabControl:addChildWindow(default)
    129     --end
    13096
    13197   
     
    134100   
    135101    local name = "orxonox/HiscoreEntry" .. parent
    136     local splitlist = P.Split(P.nameList[k],"./.")
     102    local splitlist = P.Split(P.highscoreList[k],"./.")
    137103    local item = winMgr:createWindow("DefaultWindow", name)
    138104    item:setSize(CEGUI.UVector2(CEGUI.UDim(1, 0), CEGUI.UDim(0, P.imageHeight)))
     
    193159    return result
    194160end
    195 function P.HighscoreSelectionChanged(e)
    196         --local pane = tolua.cast(winMgr:getWindow("orxonox/HighscoreMenuPane"), "CEGUI::ScrollablePane")
    197         --pane:moveToFront()
    198     --[[local levelDescription = winMgr:getWindow("orxonox/SingleplayerLevelDescription")
    199     local configButton = winMgr:getWindow("orxonox/SingleplayerConfigButton")
    200     local level = P.HighscoreGetSelectedLevel()
    201     if level ~= nil then
    202         local levelXMLFilename = level:getXMLFilename()
    203         local imageName = level:getScreenshot()
    204         -- set the screenshot and the description for the selected level
    205         levelImage:setProperty("Image", "set:"..levelXMLFilename..imageName.." image:full_image")
    206         levelDescription:setText(level:getDescription())
    207         -- only enable config button for "gametype" levels
    208         if level:hasTag("gametype") then
    209             configButton:setProperty("Disabled", "False")
    210         else
    211             configButton:setProperty("Disabled", "True")
    212         end
    213     else
    214         -- also take care of "no level selected"
    215         levelImage:setProperty("Image", "")
    216         levelDescription:setText("")
    217         configButton:setProperty("Disabled", "True")
    218     end --]]
    219 end
     161
    220162
    221163
Note: See TracChangeset for help on using the changeset viewer.