Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Mar 31, 2010, 1:05:28 AM (14 years ago)
Author:
rgrieder
Message:

Merged revisions 6621-6661 to gamestates2.

Location:
code/branches/gamestates2
Files:
22 edited
2 copied

Legend:

Unmodified
Added
Removed
  • code/branches/gamestates2

  • code/branches/gamestates2/data/gui/scripts/AudioMenu.lua

    r6595 r6662  
    11-- AudioMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("AudioMenu")
    5 if _REQUIREDNAME == nil then
    6     AudioMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("AudioMenu")
    104
    11 function P:init()
     5function P.init()
    126    soundMgr = orxonox.SoundManager:getInstance()
    137    block = false
  • code/branches/gamestates2/data/gui/scripts/BasicGUI.lua

    r6595 r6662  
    1 -- gui.lua
     1-- BasicGUI.lua
    22
    33local P = {}
    4 if _REQUIREDNAME == nil then
    5     BasicGUI = P
    6 else
    7     _G[_REQUIREDNAME] = P
    8 end
     4_G[_REQUIREDNAME or "BasicGUI"] = P
    95
    106-- useless, even wrong? P is the class, not the object..
     
    2723end
    2824
    29 -- Override this function if you need to
     25-- Override this function if you want to change one of the three input parameters:
     26-- showCursor = true, useKeyboard = true and blockJoyStick = false
    3027-- But don't forget to stick to the naming convention ("GUI_" .. self.filename)
    3128function P:createInputState()
  • code/branches/gamestates2/data/gui/scripts/ControlsMenu.lua

    r6595 r6662  
    11-- ControlsMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("ControlsMenu")
    5 if _REQUIREDNAME == nil then
    6     ControlsMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("ControlsMenu")
    104
    115function P.ControlsMouseControlsButton_clicked(e)
  • code/branches/gamestates2/data/gui/scripts/CreditsMenu.lua

    r6595 r6662  
    11-- CreditsMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("CreditsMenu")
    5 if _REQUIREDNAME == nil then
    6     CreditsMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local sheetName = _REQUIREDNAME or "CreditsMenu"
     4-- Create object of type BasicGUI and make it global
     5local P = require("BasicGUI"):new(sheetName)
     6_G[sheetName] = P
    107
    118function P.CreditsBackButton_clicked(e)
  • code/branches/gamestates2/data/gui/scripts/DecisionPopup.lua

    r6595 r6662  
    11-- DecisionPopup.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("DecisionPopup")
    5 if _REQUIREDNAME == nil then
    6     DecisionPopup = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("DecisionPopup")
    104
    115function P.setCallback(functionPtr)
  • code/branches/gamestates2/data/gui/scripts/GUITools.lua

    r6417 r6662  
     1function createSheet(sheetName)
     2    -- Create object of type BasicGUI and make it global
     3    local sheet = require("BasicGUI"):new(sheetName)
     4    _G[sheetName] = sheet
     5    return sheet
     6end
     7
    18function openDecisionPopup( text, callbackPtr )
    29    showGUI("DecisionPopup", false, true)
  • code/branches/gamestates2/data/gui/scripts/GameplayMenu.lua

    r6595 r6662  
    11-- GameplayMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("GameplayMenu")
    5 if _REQUIREDNAME == nil then
    6     GameplayMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("GameplayMenu")
    104
    11 function P:init()
     5function P.init()
    126    dropdown = winMgr:getWindow("orxonox/ThemeCombobox")
    137    local themeList = {}
     
    2418function P.GameplayThemeCombobox_changed(e)
    2519    -- theme
    26     debug("event: theme")
     20    logMessage(0, "event: theme")
    2721end
    2822
    2923function P.GameplayDifficultyEasyButton_clicked(e)
    3024    -- difficulty easy
    31     debug("event: easy")
     25    logMessage(0, "event: easy")
    3226end
    3327
    3428function P.GameplayDifficultyNormalButton_clicked(e)
    3529    -- difficulty normal
    36     debug("event: normal")
     30    logMessage(0, "event: normal")
    3731end
    3832
    3933function P.GameplayDifficultyHardButton_clicked(e)
    4034    -- difficulty hard
    41     debug("event: hard")
     35    logMessage(0, "event: hard")
    4236end
    4337
  • code/branches/gamestates2/data/gui/scripts/GraphicsMenu.lua

    r6595 r6662  
    11-- GraphicsMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("GraphicsMenu")
    5 if _REQUIREDNAME == nil then
    6     GraphicsMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("GraphicsMenu")
    104
    11 function P:init()
     5function P.init()
    126    block = true
    137    file = orxonox.PathConfig:getConfigPathString() .. orxonox.getConfig("GraphicsManager", "ogreConfigFile_")
     
    149143    if scrollbar_active == false then
    150144        -- brightness
    151         debug("event: brightness")
     145        logMessage(0, "event: brightness")
    152146    end
    153147end
     
    159153function P.GraphicsBrightnessScrollbar_ended(e)
    160154    -- brightness
    161     debug("event: brightness")
     155    logMessage(0, "event: brightness")
    162156    scrollbar_active = false
    163157end
  • code/branches/gamestates2/data/gui/scripts/InGameMenu.lua

    r6595 r6662  
    11-- InGameMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("InGameMenu")
    5 if _REQUIREDNAME == nil then
    6     InGameMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("InGameMenu")
    104
    115-- events for ingamemenu
  • code/branches/gamestates2/data/gui/scripts/InfoPopup.lua

    r6595 r6662  
    11-- InfoPopup.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("InfoPopup")
    5 
    6 if _REQUIREDNAME == nil then
    7     InfoPopup = P
    8 else
    9     _G[_REQUIREDNAME] = P
    10 end
     3local P = createSheet("InfoPopup")
    114
    125function P.execute(functionPtr, arguments)
  • code/branches/gamestates2/data/gui/scripts/InitialiseGUI.lua

    r6595 r6662  
    2929system:setDefaultTooltip("MenuWidgets/Tooltip")
    3030
    31 loadedGUIs = {}
    32 cursorVisibility = {}
    33 activeSheets = {}
    34 nrOfActiveSheets = 0
    35 root = nil
    36 bShowsCursor = false
    37 bHidePrevious = {}
     31local loadedSheets = {}
     32local activeMenuSheets = {size = 0, topSheet = nil}
     33--activeHUDSheets  = {size = 0, topSheet = nil}
     34local root = nil
    3835
    3936-- Require all tools
    4037require("GUITools")
    4138
    42 -- loads the GUI with the specified filename
    43 -- be sure to set the global variable "filename" before calling this function
    44 function loadGUI(filename)
    45     -- check if it already exists
    46     loadedGui = loadedGUIs[filename]
    47     if loadedGui == nil then
    48         loadedGuiNS = require(filename)
    49         if loadedGuiNS == nil then
     39
     40-----------------------
     41--- Local functions ---
     42-----------------------
     43
     44-- Loads the GUI with the specified name
     45-- The name corresponds to the filename of the *.lua and *.layout files
     46-- but without the extension
     47local function loadSheet(name)
     48    -- Check if it has already been loaded
     49    local sheet = loadedSheets[name]
     50    if sheet == nil then
     51        -- Load the sheet
     52        sheet = require(name)
     53        if sheet == nil then
    5054            return
    5155        end
    52         loadedGui = loadedGuiNS:load()
    53         loadedGUIs[filename] = loadedGui
    54         -- if there has no GUI been loaded yet, set new GUI as current
    55         if table.getn(loadedGUIs) == 1 then
    56             current = loadedGUIs[1]
    57         end
    58         -- hide new GUI as we do not want to show it accidentially
    59         loadedGui:hide()
    60     end
    61     return loadedGui
    62 end
    63 
    64 function showGUI(filename, hidePrevious, bCursorVisible, ptr)
    65     gui = showGUI(filename, hidePrevious, bCursorVisible)
     56        sheet:load()
     57        loadedSheets[name] = sheet
     58        -- Hide new GUI as we do not want to show it accidentally
     59        sheet:hide()
     60    end
     61    return sheet
     62end
     63
     64local function hideCursor()
     65    if cursor:isVisible() then
     66        cursor:hide()
     67    end
     68end
     69
     70local function showCursor()
     71    if not cursor:isVisible() and orxonox.InputManager:getInstance():isMouseExclusive() then
     72        cursor:show()
     73    end
     74end
     75
     76local function find(table, value)
     77    for i, v in ipairs(table) do
     78        if v == value then
     79            return i
     80        end
     81    end
     82    return nil
     83end
     84
     85
     86------------------------
     87--- Global functions ---
     88------------------------
     89
     90-- ?
     91function showGUI(name, bHidePrevious, bShowCursor, ptr)
     92    gui = showGUI(name, bHidePrevious, bShowCursor)
    6693    gui.overlay = ptr
    6794end
    6895
    69 -- shows the specified GUI sheet and loads it if not loaded already
    70 function showGUI(filename, hidePrevious, bCursorVisible)
    71     if bCursorVisible == nil then
    72         if nrOfActiveSheets > 0 then
    73             bCursorVisible = cursorVisibility[activeSheets[nrOfActiveSheets]]
     96-- Shows the specified menu sheet and loads it if neccessary
     97function showGUI(name, bHidePrevious, bShowCursor)
     98    -- Handle default value for bShowCursor
     99    if bShowCursor == nil then
     100        if activeMenuSheets.size > 0 then
     101            bShowCursor = activeMenuSheets.topSheet.bShowCursor
    74102        else
    75             bCursorVisible = true
    76         end
    77     end
    78 
    79     if root == nil then
     103            bShowCursor = true
     104        end
     105    end
     106
     107    -- Hide if already displayed (to make sure it is up front in the end)
     108    if activeMenuSheets[name] ~= nil then
     109        hideGUI(name)
     110    end
     111
     112    if not root then
    80113        setBackground("")
    81114    end
    82115
    83     local currentGUI = loadedGUIs[filename]
    84     if(currentGUI == nil) then
    85         currentGUI = loadGUI(filename)
    86     end
    87 
    88     if(root:isChild(currentGUI.window)) then
    89         root:removeChildWindow(currentGUI.window)
    90     end
    91     root:addChildWindow(currentGUI.window)
    92 
    93     if bCursorVisible then
     116    -- Get sheet (or load it)
     117    local menuSheet = loadSheet(name)
     118    if not menuSheet then
     119        return
     120    end
     121
     122    -- Add sheet to the root window
     123    root:addChildWindow(menuSheet.window)
     124
     125    -- Pause game control if this is the first menu to be displayed
     126    -- HUGE HACK?
     127    if activeMenuSheets.size == 0 then
     128        orxonox.HumanController:pauseControl()
     129    end
     130
     131    -- Handle input distribution
     132    orxonox.InputManager:getInstance():enterState(menuSheet.inputState)
     133
     134    if bShowCursor then
    94135        showCursor()
    95136    else
     
    97138    end
    98139
    99     if find( activeSheets, filename ) ~= nil then
    100         table.remove( activeSheets, find( activeSheets, filename ) )
    101         nrOfActiveSheets = nrOfActiveSheets - 1
    102     else
    103         if nrOfActiveSheets == 0 then
    104             --orxonox.InputManager:getInstance():enterState("guiMouseOnly")
    105             orxonox.HumanController:pauseControl()
    106         end
    107     end
    108     orxonox.InputManager:getInstance():enterState(currentGUI.inputState)
    109 
    110     nrOfActiveSheets = nrOfActiveSheets + 1
    111     table.insert(activeSheets, filename)
    112     activeSheets[nrOfActiveSheets] = filename
    113     bHidePrevious[filename]=hidePrevious
    114     cursorVisibility[filename] = bCursorVisible
    115 
    116     if hidePrevious == true then
    117         for i=1,nrOfActiveSheets-1 do
    118             loadedGUIs[ activeSheets[i] ]:hide()
    119         end
    120     end
    121     currentGUI:show()
    122     return currentGUI
    123 end
    124 
    125 function hideCursor()
    126     if bShowsCursor==true then
    127         bShowsCursor=false
    128         cursor:hide()
    129     end
    130 end
    131 
    132 function showCursor()
    133     if bShowsCursor==false then
    134         bShowsCursor=true
    135         cursor:show()
    136     end
    137 end
    138 
    139 function hideGUI(filename)
    140     local currentGUI = loadedGUIs[filename]
    141     if currentGUI == nil then
     140    -- Add the sheet in a tuple of additional information
     141    local sheetTuple =
     142    {
     143        ["menuSheet"]      = menuSheet,
     144        ["name"]           = name,
     145        ["bShowCursor"]    = bShowCursor,
     146        ["bHidePrevious"]  = bHidePrevious
     147    }
     148    table.insert(activeMenuSheets, sheetTuple) -- indexed array access
     149    activeMenuSheets[name] = sheetTuple -- name access
     150    activeMenuSheets.size = activeMenuSheets.size + 1
     151    activeMenuSheets.topSheet = sheetTuple
     152
     153    -- Hide all previous sheets if necessary
     154    if bHidePrevious then
     155        for i = 1, activeMenuSheets.size - 1 do
     156            activeMenuSheets[i].menuSheet:hide()
     157        end
     158    end
     159
     160    menuSheet:show()
     161    return menuSheet
     162end
     163
     164function hideGUI(name)
     165    local sheetTuple = activeMenuSheets[name]
     166    if sheetTuple == nil then
    142167        return
    143168    end
    144     currentGUI:hide()
    145     if bHidePrevious[filename] == true then
    146         local i = nrOfActiveSheets-1
    147         while i>0 do
    148             loadedGUIs[ activeSheets[i] ]:show()
    149             if bHidePrevious[filename]==true then
    150                 break
    151             else
    152                 i=i-1
     169
     170    -- Hide the sheet
     171    sheetTuple.menuSheet:hide()
     172
     173    -- Show sheets that were hidden by the sheet to be removed
     174    local i = activeMenuSheets.size
     175    -- Only do something if all sheets on top of sheetTuple
     176    -- have bHidePrevious == false and sheetTuple.bHidePrevious == true
     177    while i > 0 do
     178        if activeMenuSheets[i].bHidePrevious == true then
     179            if activeMenuSheets[i] == sheetTuple then
     180                i = i - 1
     181                while i > 0 do
     182                    activeMenuSheets[i].menuSheet:show()
     183                    if activeMenuSheets[i].bHidePrevious == true then
     184                        break
     185                    end
     186                    i = i - 1
     187                end
    153188            end
    154         end
    155     end
    156     root:removeChildWindow(currentGUI.window)
    157     local i=1
    158     while activeSheets[i] do
    159         if activeSheets[i+1] == nil then
    160             if activeSheets[i-1] ~= nil then
    161                 if cursorVisibility[ activeSheets[i-1] ] == true then
    162                     showCursor()
    163                 else
    164                     hideCursor()
    165                 end
    166             else
    167                 hideCursor()
    168             end
    169         end
    170         if activeSheets[i] == filename then
    171             table.remove( activeSheets, i )
    172             nrOfActiveSheets = nrOfActiveSheets-1
    173         else
    174             i = i+1
    175         end
    176     end
    177     cursorVisibility[filename] = nil -- remove the cursor visibility of the current gui from the table
    178     bHidePrevious[filename] = nil
    179     if nrOfActiveSheets == 0 then
    180         --orxonox.InputManager:getInstance():leaveState("guiMouseOnly")
     189            break
     190        end
     191        i = i - 1
     192    end
     193
     194    -- Remove sheet with its tuple from the table
     195    root:removeChildWindow(sheetTuple.menuSheet.window)
     196    table.remove(activeMenuSheets, find(activeMenuSheets, sheetTuple))
     197    activeMenuSheets[name] = nil
     198    activeMenuSheets.size = activeMenuSheets.size - 1
     199    activeMenuSheets.topSheet = activeMenuSheets[activeMenuSheets.size]
     200
     201    -- Leave the input state
     202    orxonox.InputManager:getInstance():leaveState(sheetTuple.menuSheet.inputState)
     203   
     204    -- See whether to show or hide cursor
     205    if activeMenuSheets.size > 0 and activeMenuSheets.topSheet.bShowCursor then
     206        showCursor()
     207    else
     208        hideCursor()
     209    end
     210
     211    -- Resume control if the last menu is hidden
     212    if activeMenuSheets.size == 0 then
    181213        orxonox.HumanController:resumeControl()
    182214        hideCursor()
    183215    end
    184     orxonox.InputManager:getInstance():leaveState(currentGUI.inputState)
    185 end
    186 
     216end
     217
     218-- Hides all menu GUI sheets
    187219function hideAllGUIs()
    188     while nrOfActiveSheets ~= 0 do
    189         hideGUI(activeSheets[nrOfActiveSheets])
     220    while activeMenuSheets.size ~= 0 do
     221        hideGUI(activeMenuSheets.topSheet.name)
    190222    end
    191223end
    192224
    193225function keyESC()
    194     if nrOfActiveSheets == 1 and activeSheets[1] == "MainMenu" then
     226    -- HUGE, very HUGE hacks!
     227    if activeMenuSheets.size == 1 and activeMenuSheets[1].name == "MainMenu" then
    195228        orxonox.execute("exit")
    196     elseif nrOfActiveSheets > 0 then
    197         orxonox.execute("hideGUI "..activeSheets[nrOfActiveSheets])
     229    elseif activeMenuSheets.size > 0 then
     230        orxonox.execute("hideGUI "..activeMenuSheets.topSheet.name)
    198231    else
    199232        showGUI("InGameMenu")
     
    201234end
    202235
    203 function setBackground(filename)
     236function setBackground(name)
    204237    local newroot
    205238    if root ~= nil then
    206239        root:rename("oldRootWindow")
    207240    end
    208     if filename ~= "" then
    209         newroot = winMgr:loadWindowLayout(filename .. ".layout")
     241    if name ~= "" then
     242        newroot = winMgr:loadWindowLayout(name .. ".layout")
    210243        newroot:rename("AbsoluteRootWindow")
    211244        system:setGUISheet(newroot)
     
    228261    root = newroot
    229262end
    230 
    231 function find(table, value)
    232     local i=0
    233     while table[i] ~= nil do
    234         if table[i]==value then
    235             return i
    236         else
    237             i=i+1
    238         end
    239     end
    240     return nil
    241 end
    242 
    243 function test(e)
    244     debug(0, "Blubb")
    245 end
  • code/branches/gamestates2/data/gui/scripts/KeyBindMenu.lua

    r6595 r6662  
    11-- KeyBindMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("KeyBindMenu")
    5 
    6 if _REQUIREDNAME == nil then
    7     KeyBindMenu = P
    8 else
    9     _G[_REQUIREDNAME] = P
    10 end
    11 
    12 function P:init()
     3local P = createSheet("KeyBindMenu")
     4
     5function P.init()
    136
    147    commandList = {}
  • code/branches/gamestates2/data/gui/scripts/MainMenu.lua

    r6595 r6662  
    11-- MainMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("MainMenu")
    5 if _REQUIREDNAME == nil then
    6     MainMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("MainMenu")
    104
    115-- events for MainMenu
  • code/branches/gamestates2/data/gui/scripts/MouseControlsMenu.lua

    r6595 r6662  
    11-- MouseControlsMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("MouseControlsMenu")
    5 if _REQUIREDNAME == nil then
    6     MouseControlsMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("MouseControlsMenu")
    104
    11 function P:init()
     5function P.init()
    126    block = false
    137    mousenormalscrollbarwindow = tolua.cast(winMgr:getWindow("orxonox/MouseNormalScrollbar"),"CEGUI::Scrollbar")
  • code/branches/gamestates2/data/gui/scripts/MultiplayerMenu.lua

    r6595 r6662  
    11-- MultiplayerMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("MultiplayerMenu")
    5 if _REQUIREDNAME == nil then
    6     MultiplayerMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("MultiplayerMenu")
    104
    11 function P:init()
     5function P.init()
    126    listbox = winMgr:getWindow("orxonox/MultiplayerLevelListbox")
    137    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
  • code/branches/gamestates2/data/gui/scripts/MultiplayerOptionsMenu.lua

    r6595 r6662  
    11-- MultiplayerOptionsMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("MultiplayerOptionsMenu")
    5 if _REQUIREDNAME == nil then
    6     MultiplayerOptionsMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("MultiplayerOptionsMenu")
    104
    115function P.MultiplayerOptionsBackButton_clicked(e)
  • code/branches/gamestates2/data/gui/scripts/PickupInventory.lua

    r6595 r6662  
    11-- PickupInventory.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("PickupInventory")
    5 if _REQUIREDNAME == nil then
    6     PickupInventory = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("PickupInventory")
    104
    115P.lastEquipmentCount_ = 0
     
    148
    159-- events
    16 function P:frmUpdate(e)
     10function P.frmUpdate(e)
    1711    local equipCount = orxonox.PickupInventory:getEquipmentCount()
    1812    local usableCount = orxonox.PickupInventory:getUsableCount()
    1913
    20     if equipCount ~= self.lastEquipmentCount_ or usableCount ~= self.lastUsableCount_ then
    21         self:updateTabs()
     14    if equipCount ~= P.lastEquipmentCount_ or usableCount ~= P.lastUsableCount_ then
     15        P.updateTabs()
    2216    end
    2317end
     
    3125end
    3226
    33 function P:mItemClicked(e)
     27function P.mItemClicked(e)
    3428    local w = CEGUI.toWindowEventArgs(e).window
    3529    local name = w:getName()
     
    4236
    4337    if t == "use" then
    44         if self.currentUsableID_ >= 0 then
    45             winMgr:getWindow("orxonox/Inventory/Title/use/" .. self.currentUsableID_):setProperty("TextColours", "tl:FFFFFFFF tr:FFFFFFFF bl:FFFFFFFF br:FFFFFFFF")
     38        if P.currentUsableID_ >= 0 then
     39            winMgr:getWindow("orxonox/Inventory/Title/use/" .. P.currentUsableID_):setProperty("TextColours", "tl:FFFFFFFF tr:FFFFFFFF bl:FFFFFFFF br:FFFFFFFF")
    4640        end
    4741        orxonox.PickupInventory:selectUsable(tonumber(i))
    48         self.currentUsableID_ = tonumber(i)
     42        P.currentUsableID_ = tonumber(i)
    4943        winMgr:getWindow("orxonox/Inventory/Title/use/" .. i):setProperty("TextColours", "tl:FFFF4444 tr:FFFF4444 bl:FFFF4444 br:FFFF4444")
    5044    end
     
    5246
    5347-- methods
    54 function P:updateTabs()
     48function P.updateTabs()
    5549    local eqWin = winMgr:getWindow("orxonox/Inventory/TabControl/TabEquipment")
    5650    local usWin = winMgr:getWindow("orxonox/Inventory/TabControl/TabUsable")
     
    5852    orxonox.PickupInventory:getSingleton():updateTabs(winMgr, eqWin, usWin)
    5953
    60     self.currentUsableID_ = orxonox.PickupInventory:getCurrentUsableIndex()
    61     self.lastEquipmentCount_ = orxonox.PickupInventory:getEquipmentCount()
    62     self.lastUsableCount_ = orxonox.PickupInventory:getUsableCount()
     54    P.currentUsableID_ = orxonox.PickupInventory:getCurrentUsableIndex()
     55    P.lastEquipmentCount_ = orxonox.PickupInventory:getEquipmentCount()
     56    P.lastUsableCount_ = orxonox.PickupInventory:getUsableCount()
    6357end
    6458
  • code/branches/gamestates2/data/gui/scripts/QuestGUI.lua

    r6595 r6662  
    1 gui = require("BasicGUI")
    2 local P = BasicGUI:new("QuestGUI")
    3 if _REQUIREDNAME == nil then
    4     QuestGUI = P
    5 else
    6     _G[_REQUIREDNAME] = P
    7 end
     1-- QuestGUI.lua
    82
    9 function P:show()
    10     self.window:show() -- TDO: Do this through parent...
    11     self.visible = true
     3local P = createSheet("QuestGUI")
     4
     5function P.show()
     6    P.window:show() -- TDO: Do this through parent...
     7    P.visible = true
    128
    139    local questManager = orxonox.QuestManager:getInstance()
  • code/branches/gamestates2/data/gui/scripts/SettingsMenu.lua

    r6595 r6662  
    11-- SettingsMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("SettingsMenu")
    5 if _REQUIREDNAME == nil then
    6     SettingsMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("SettingsMenu")
    104
    115function P.SettingsGameplayButton_clicked(e)
     
    3125function P.SettingsResetSettingsButton_clicked(e)
    3226    -- reset settings
    33     debug("event: reset settings")
     27    logMessage(0, "event: reset settings")
    3428end
    3529
  • code/branches/gamestates2/data/gui/scripts/SingleplayerMenu.lua

    r6595 r6662  
    11-- SingleplayerMenu.lua
    22
    3 BasicGUI = require("BasicGUI")
    4 local P = BasicGUI:new("SingleplayerMenu")
    5 if _REQUIREDNAME == nil then
    6     SingleplayerMenu = P
    7 else
    8     _G[_REQUIREDNAME] = P
    9 end
     3local P = createSheet("SingleplayerMenu")
    104
    11 function P:init()
     5function P.init()
    126    listbox = winMgr:getWindow("orxonox/SingleplayerLevelListbox")
    137    preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
  • code/branches/gamestates2/data/lua/LuaStateInit.lua

    r6536 r6662  
    11-- Note: luaState is a pointer to the LuaState instance that created this lua state
    22
    3 -- Save original print function in debug
    4 debug = print
    5 
    63-- Redirect print to the C++ print function
     4original_print = print
    75print = function(s)
    86  luaState:luaPrint(s)
     
    1311  luaState:luaLog(level, message)
    1412end
     13cout = logMessage
    1514
    1615-- Redirect dofile in order to load with the resource manager
    17 doFile = function(filename)
     16original_dofile = dofile
     17dofile = function(filename)
    1818  luaState:doFile(filename)
    19   -- Required because the C++ function cannot return whatever might be on the stack
     19  -- Required because if the file returns a table, it cannot be passed through the C++ function
    2020  return LuaStateReturnValue -- C-injected global variable
    2121end
    22 original_dofile = dofile
    23 dofile = doFile
     22doFile = dofile
    2423
    2524-- Create includeFile function that preparses the file according
     
    2726include = function(filename)
    2827  luaState:includeFile(filename)
    29   -- Required because the C++ function cannot return whatever might be on the stack
     28  -- Required because if the file returns a table, it cannot be passed through the C++ function
    3029  return LuaStateReturnValue -- C-injected global variable
    3130end
     
    3433-- The loaded modules are then stored with their names (where name has no .lua extension)
    3534-- Furthermore the ".lua" extension is appended to the moduleName parameter when looking for the file
    36 old_require = require
     35original_require = require
     36_REQUIREDNAME = ""
     37LuaStateReturnValue = true
    3738require = function(moduleName)
    3839  if not luaState:fileExists(moduleName .. ".lua") then
     40    logMessage(2, "Warning: Lua function require() could not find file '" .. moduleName .. ".lua' ")
    3941    return nil
    4042  end
     
    4244    _LOADED = {}
    4345  end
    44   if not _LOADED[moduleName] then
     46  if _LOADED[moduleName] == nil then
    4547    -- save old value
    46     _REQUIREDNAME_OLD = _REQUIREDNAME
     48    local _REQUIREDNAME_OLD = _REQUIREDNAME
    4749    _REQUIREDNAME = moduleName
    4850    luaState:doFile(moduleName .. ".lua")
    49     _LOADED[moduleName] = LuaStateReturnValue or true
     51    -- LuaStateReturnValue is required because if the file returns a table,
     52    -- it cannot be passed through the C++ function
     53    if LuaStateReturnValue == nil then -- C-injected global variable
     54        LuaStateReturnValue = true
     55    end
     56    _LOADED[moduleName] = LuaStateReturnValue -- This entry must never be nil
    5057    -- restore old value
    5158    _REQUIREDNAME = _REQUIREDNAME_OLD
     
    5360  return _LOADED[moduleName]
    5461end
     62
     63
     64-- Include command line debugger for lua 5.1
     65-- Note: It doesn't work if the IOConsole was started. Then we replace pause() with a warning
     66if _VERSION ~= "Lua 5.0"  and not luaState:usingIOConsole() then
     67  require("Debugger")
     68else
     69  -- Fallback pause function
     70  pause = function()
     71    logMessage(2, [["Warning: debug() called in Lua, but Debugger is not active.
     72Do you have the IOConsole disabled and are you using Lua version 5.1?"]])
     73  end
     74end
     75
     76-- General error handler that gets called whenever an error happens at runtime
     77errorHandler = function(err)
     78  -- Display the error message
     79  if type(err) == "string" then
     80    logMessage(1, "Lua runtime error: "..err)
     81  end
     82
     83  -- Start debugger if possible
     84  if _LOADED and _LOADED["Debugger"] ~= nil then
     85    pause()
     86  else
     87    -- Fallback: print stack trace
     88    logMessage(1, debug.traceback(2))
     89  end
     90  return err -- Hello Lua debugger user! Please type 'set 2' to get to the
     91             -- actual position in the stack where the error occurred
     92end
     93
    5594
    5695-- Convenience function for console commands
Note: See TracChangeset for help on using the changeset viewer.