boswars/scripts/uilayout.lua

239 lines
7.4 KiB
Lua

-- ____ _ __
-- / __ )____ _____ | | / /___ ___________
-- / __ / __ \/ ___/ | | /| / / __ `/ ___/ ___/
-- / /_/ / /_/ (__ ) | |/ |/ / /_/ / / (__ )
-- /_____/\____/____/ |__/|__/\__,_/_/ /____/
--
-- A futuristic real-time strategy game.
-- This file is part of Bos Wars.
--
-- uilayout.lua - Define the ingame layout and user interface
--
-- (c) Copyright 2001-2007 by Lutz Sammer, Jimmy Salmon, Crestez Leonard,
-- and Francois Beerten.
--
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation; either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
--
UI.NormalFontColor = "light-blue"
UI.ReverseFontColor = "yellow"
function AddFiller(file, x, y)
b = CFiller:new_local()
b.G = CGraphic:New(file)
b.X = x
b.Y = y
UI.Fillers:push_back(b)
end
UI.Fillers:clear()
AddFiller("graphics/ui/ui_minimap.png", Video.Width - 200, 24 - 8)
if (Editor.Running == EditorNotRunning) then
local h = Video.Height
local bpanel
if (h <= 480) then -- 640x480
bpanel = "graphics/ui/ui_bpanel_200x144.png"
elseif (h <= 600) then -- 800x600 or 1024x600
bpanel = "graphics/ui/ui_bpanel_200x264.png"
elseif (h <= 768) then -- 1280x720, 1024x768, or 1366x768
bpanel = "graphics/ui/ui_bpanel_200x432.png"
elseif (h <= 960) then -- 1440x900
bpanel = "graphics/ui/ui_bpanel_200x624.png"
else -- 1280x1024, 1680x1050, 1920x1080, 1600x1200, or 1920x1200
bpanel = "graphics/ui/ui_bpanel_200x864.png"
end
AddFiller(bpanel, Video.Width - 200, 336 - 8 - 8)
end
b = CFiller:new_local()
b.G = CGraphic:New("graphics/ui/ui_info.png", 200, 176)
b.X = Video.Width - 200
b.Y = 152
UI.Fillers:push_back(b)
UI.InfoPanel.X = Video.Width - 200
UI.InfoPanel.Y = 152
if (UI.SingleSelectedButton ~= nil) then
UI.SingleSelectedButton:delete()
UI.SingleSelectedButton = nil
end
b = CUIButton:new()
b.X = Video.Width - 200 + 13
b.Y = 152 + 16
b.Style = FindButtonStyle("icon")
UI.SingleSelectedButton = b
function AddSelectedButton(x, y)
b = CUIButton:new_local()
b.X = x
b.Y = y
b.Style = FindButtonStyle("icon")
UI.SelectedButtons:push_back(b)
end
UI.SelectedButtons:clear()
AddSelectedButton(Video.Width - 200 + 13, 152 + 16)
AddSelectedButton(Video.Width - 200 + 28, 152 + 16)
AddSelectedButton(Video.Width - 200 + 43, 152 + 16)
AddSelectedButton(Video.Width - 200 + 58, 152 + 16)
AddSelectedButton(Video.Width - 200 + 73, 152 + 16)
AddSelectedButton(Video.Width - 200 + 88, 152 + 16)
AddSelectedButton(Video.Width - 200 + 103, 152 + 16)
AddSelectedButton(Video.Width - 200 + 118, 152 + 16)
AddSelectedButton(Video.Width - 200 + 133, 152 + 16)
UI.MaxSelectedFont = Fonts["game"]
UI.MaxSelectedTextX = Video.Width - 200 + 10
UI.MaxSelectedTextY = 152 + 10
if (UI.SingleTrainingButton ~= nil) then
UI.SingleTrainingButton:delete()
UI.SingleTrainingButton = nil
end
b = CUIButton:new()
b.X = Video.Width - 200 + 13
b.Y = 152 + 91
b.Style = FindButtonStyle("icon")
UI.SingleTrainingButton = b
function AddTrainingButton(x, y)
b = CUIButton:new_local()
b.X = x
b.Y = y
b.Style = FindButtonStyle("icon")
UI.TrainingButtons:push_back(b)
end
UI.TrainingButtons:clear()
AddTrainingButton(Video.Width - 200 + 13, 152 + 91)
AddTrainingButton(Video.Width - 200 + 28, 152 + 91)
AddTrainingButton(Video.Width - 200 + 43, 152 + 91)
AddTrainingButton(Video.Width - 200 + 58, 152 + 91)
AddTrainingButton(Video.Width - 200 + 73, 152 + 91)
AddTrainingButton(Video.Width - 200 + 88, 152 + 91)
function AddTransportingButton(x, y)
b = CUIButton:new_local()
b.X = x
b.Y = y
b.Style = FindButtonStyle("icon")
UI.TransportingButtons:push_back(b)
end
UI.TransportingButtons:clear()
AddTransportingButton(Video.Width - 200 + 13, 152 + 91)
AddTransportingButton(Video.Width - 200 + 28, 152 + 91)
AddTransportingButton(Video.Width - 200 + 43, 152 + 91)
AddTransportingButton(Video.Width - 200 + 58, 152 + 91)
AddTransportingButton(Video.Width - 200 + 73, 152 + 91)
AddTransportingButton(Video.Width - 200 + 88, 152 + 91)
function AddButtonPanelButton(x, y)
b = CUIButton:new_local()
b.X = x
b.Y = y
b.Style = FindButtonStyle("icon")
UI.ButtonPanel.Buttons:push_back(b)
end
UI.ButtonPanel.Buttons:clear()
AddButtonPanelButton(Video.Width - 177 + 4, 340 - 12)
AddButtonPanelButton(Video.Width - 122 + 4, 340 - 12)
AddButtonPanelButton(Video.Width - 67 + 4, 340 - 12)
AddButtonPanelButton(Video.Width - 177 + 4, 385 - 12)
AddButtonPanelButton(Video.Width - 122 + 4, 385 - 12)
AddButtonPanelButton(Video.Width - 67 + 4, 385 - 12)
AddButtonPanelButton(Video.Width - 177 + 4, 430 - 12)
AddButtonPanelButton(Video.Width - 122 + 4, 430 - 12)
AddButtonPanelButton(Video.Width - 67 + 4, 430 - 12)
UI.ButtonPanel.X = Video.Width - 200
UI.ButtonPanel.Y = 336 - 8 - 8
UI.ButtonPanel.AutoCastBorderColorRGB = CColor(0, 0, 252)
UI.MapArea.X = 0
UI.MapArea.Y = 16
UI.MapArea.EndX = UI.MapArea.X + (Video.Width - 200) - 1
UI.MapArea.EndY = UI.MapArea.Y + (Video.Height - 32) - 1
UI.MapArea.ScrollPaddingLeft = 0
UI.MapArea.ScrollPaddingRight = 0
UI.MapArea.ScrollPaddingTop = 0
UI.MapArea.ScrollPaddingBottom = 0
UI.MessageFont = Fonts["game"]
UI.MessageScrollSpeed = 5
UI.Minimap.X = Video.Width - 200 + 46
UI.Minimap.Y = 24 + 17 - 8
UI.Minimap.W = 121
UI.Minimap.H = 105
UI.StatusLine.TextX = 38
UI.StatusLine.TextY = Video.Height - 14
UI.StatusLine.Width = Video.Width - 38
UI.StatusLine.Font = Fonts["game"]
UI.Timer.X = UI.MapArea.EndY - 70
UI.Timer.Y = UI.MapArea.Y + 15
UI.Timer.Font = Fonts["game"]
-- energy
UI.Resources[0].G = CGraphic:New("graphics/ui/ui_res_icons.png", 14, 14)
UI.Resources[0].IconFrame = 0
UI.Resources[0].IconX = 67 + 0
UI.Resources[0].IconY = 0
UI.Resources[0].TextX = 85 + 0
UI.Resources[0].TextY = 1
-- magma
UI.Resources[1].G = CGraphic:New("graphics/ui/ui_res_icons.png", 14, 14)
UI.Resources[1].IconFrame = 1
UI.Resources[1].IconX = 67 + 75
UI.Resources[1].IconY = 0
UI.Resources[1].TextX = 85 + 75
UI.Resources[1].TextY = 1
UI.PieMenu.G = CGraphic:New("ui/rosace1.png")
UI.PieMenu.MouseButton = MiddleButton
UI.PieMenu:SetRadius(70)
UI.MenuButton.X = Video.Width - 130
UI.MenuButton.Y = 0
UI.MenuButton.Text = "Menu (~<F10~>)"
UI.MenuButton.Style = FindButtonStyle("network")
if (Editor.Running == EditorNotRunning) then
UI.MenuButton:SetCallback(function() RunGameMenu() end)
else
UI.MenuButton:SetCallback(function() RunEditorIngameMenu() end)
end
UI.NetworkMenuButton.X = Video.Width - 200
UI.NetworkMenuButton.Y = 0
UI.NetworkMenuButton.Text = "Menu"
UI.NetworkMenuButton.Style = FindButtonStyle("network")
UI.NetworkMenuButton:SetCallback(function() RunGameMenu() end)
UI.NetworkDiplomacyButton.X = Video.Width - 100
UI.NetworkDiplomacyButton.Y = 0
UI.NetworkDiplomacyButton.Text = "Diplomacy"
UI.NetworkDiplomacyButton.Style = FindButtonStyle("network")
UI.NetworkDiplomacyButton:SetCallback(function() RunDiplomacyMenu() end)