196 lines
6.8 KiB
Lua
196 lines
6.8 KiB
Lua
|
-- In this file we define functions that serves for game config windows
|
|||
|
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- create the game namespace without reseting if already created in an other file.
|
|||
|
if (game==nil) then
|
|||
|
game= {};
|
|||
|
end
|
|||
|
|
|||
|
-- init the temp space for color picker
|
|||
|
if (game.ColorPicker == nil) then
|
|||
|
game.ColorPicker = {};
|
|||
|
game.ColorPicker.r = 255;
|
|||
|
game.ColorPicker.g = 255;
|
|||
|
game.ColorPicker.b = 255;
|
|||
|
game.ColorPicker.button = nil;
|
|||
|
game.ColorPicker.pal = 0;
|
|||
|
end
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- WIDGET TO CHOOSE A COLOR
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- called when we click a button to choose a color from
|
|||
|
function game:mcwChooseColor(title, pal)
|
|||
|
|
|||
|
local ui = getUICaller();
|
|||
|
|
|||
|
-- get the color of the button and store it in temporary db location
|
|||
|
local rgba = ui.col_normal_rgba;
|
|||
|
game.ColorPicker.r = rgba.R;
|
|||
|
game.ColorPicker.g = rgba.G;
|
|||
|
game.ColorPicker.b = rgba.B;
|
|||
|
game.ColorPicker.button = ui;
|
|||
|
game.ColorPicker.pal = pal;
|
|||
|
|
|||
|
-- setup the color picker window
|
|||
|
local uiModalWin = getUI('ui:interface:define_mcw_color');
|
|||
|
if (game.ColorPicker.pal == 0) then
|
|||
|
uiModalWin.pick.r = rgba.R;
|
|||
|
uiModalWin.pick.g = rgba.G;
|
|||
|
uiModalWin.pick.b = rgba.B;
|
|||
|
uiModalWin.pick.active = true;
|
|||
|
uiModalWin.pick2.active = false;
|
|||
|
else
|
|||
|
uiModalWin.pick2.r = rgba.R;
|
|||
|
uiModalWin.pick2.g = rgba.G;
|
|||
|
uiModalWin.pick2.b = rgba.B;
|
|||
|
uiModalWin.pick.active = false;
|
|||
|
uiModalWin.pick2.active = true;
|
|||
|
end
|
|||
|
uiModalWin.text.hardtext = title;
|
|||
|
|
|||
|
game.mcwOnColorChanged();
|
|||
|
|
|||
|
-- launch the color picker modal window
|
|||
|
runAH(ui, 'push_modal', 'group=ui:interface:define_mcw_color');
|
|||
|
end
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- called when we have finished choosing the color in the modal window and the chosen color is valid
|
|||
|
function game:mcwValidateColor()
|
|||
|
|
|||
|
if (game.ColorPicker.button == nil) then
|
|||
|
return;
|
|||
|
end
|
|||
|
game.ColorPicker.button.col_normal = game.ColorPicker.r .. ' ' .. game.ColorPicker.g .. ' ' .. game.ColorPicker.b;
|
|||
|
--debugInfo(game.ColorPicker.button.col_normal)
|
|||
|
game.ColorPicker.button.col_over = game.ColorPicker.button.col_normal;
|
|||
|
game.ColorPicker.button.col_pushed = game.ColorPicker.button.col_normal;
|
|||
|
runAH(game.ColorPicker.button, 'ddx_color', '');
|
|||
|
runAH(game.ColorPicker.button, 'leave_modal', '');
|
|||
|
end
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- called when the color changed
|
|||
|
function game:mcwOnColorChanged()
|
|||
|
|
|||
|
local uiPath = 'ui:interface:define_mcw_color:';
|
|||
|
if (game.ColorPicker.pal == 0) then
|
|||
|
uiPath = uiPath .. 'pick';
|
|||
|
else
|
|||
|
uiPath = uiPath .. 'pick2';
|
|||
|
end
|
|||
|
local ui = getUI(uiPath);
|
|||
|
game.ColorPicker.r = ui.r;
|
|||
|
game.ColorPicker.g = ui.g;
|
|||
|
game.ColorPicker.b = ui.b;
|
|||
|
|
|||
|
local uiModalWin = getUI('ui:interface:define_mcw_color');
|
|||
|
uiModalWin.color = game.ColorPicker.r .. ' ' .. game.ColorPicker.g .. ' ' .. game.ColorPicker.b;
|
|||
|
uiModalWin.text.color = uiModalWin.color;
|
|||
|
end
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- CONFIG WINDOW
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- hide all the pages of the config window
|
|||
|
function game:configHideAll()
|
|||
|
|
|||
|
local uiList = {
|
|||
|
'explanation', 'general', 'landscape', 'fx', 'char', 'hud', 'language', 'alpha_colors',
|
|||
|
'chat_colors', 'entity_colors', 'in_scene_user', 'in_scene_friend', 'in_scene_enemy',
|
|||
|
'in_scene_chat_messages', 'win_colors', 'win_colors_r2', 'mouse', 'keyb', 'sound', 'landmark_colors', 'help'
|
|||
|
};
|
|||
|
|
|||
|
for k,v in pairs(uiList) do
|
|||
|
local uiGrp = getUI('ui:interface:game_config:content:' .. v);
|
|||
|
uiGrp.active = false;
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
-- show one of the multiple pages in the config window
|
|||
|
function game:configShowOne(strUIToShow)
|
|||
|
|
|||
|
game:configHideAll();
|
|||
|
-- special case : if the display tab was shown, update the aspect ratio if needed
|
|||
|
local generalGrp = getUI('ui:interface:game_config:content:general');
|
|||
|
local uiGrp = getUI('ui:interface:game_config:content:' .. strUIToShow);
|
|||
|
-- Removed the following code to solve RT n<>14720
|
|||
|
-- The 'game_config_change_screen_ratio_custom' action handler
|
|||
|
-- should only be called if the user changed the apect ratio himself
|
|||
|
-- (else the edit box containing the aspect ratio may not have been initiliazed here)
|
|||
|
--if uiGrp ~= generalGrp then
|
|||
|
-- runAH(nil, 'game_config_change_screen_ratio_custom', '')
|
|||
|
--end
|
|||
|
uiGrp.active = true;
|
|||
|
end
|
|||
|
|
|||
|
------------------------------------------------------------------------------------------------------------
|
|||
|
--
|
|||
|
function game:configInit()
|
|||
|
|
|||
|
-- init language
|
|||
|
local lang = getClientCfg('LanguageCode');
|
|||
|
local langNb = 0;
|
|||
|
|
|||
|
if (lang == 'de') then
|
|||
|
langNb = 2;
|
|||
|
elseif (lang == 'fr') then
|
|||
|
langNb = 1;
|
|||
|
end
|
|||
|
|
|||
|
-- force observers call
|
|||
|
setDbProp('UI:TEMP:LANGUAGE', -1);
|
|||
|
setDbProp('UI:TEMP:LANGUAGE', langNb);
|
|||
|
|
|||
|
runAH(nil, 'game_config_init', '');
|
|||
|
|
|||
|
local r2WinOn = false
|
|||
|
if r2 ~= nil then
|
|||
|
if r2.Mode ~= "r2ed_anim_test" then
|
|||
|
r2WinOn = true
|
|||
|
end
|
|||
|
end
|
|||
|
local win = getUI("ui:interface:game_config")
|
|||
|
|
|||
|
local dy = -24
|
|||
|
|
|||
|
local function winActive(name, active)
|
|||
|
local win = win:find(name)
|
|||
|
win.active = active
|
|||
|
if not active then
|
|||
|
win.y = 0
|
|||
|
else
|
|||
|
win.y = dy
|
|||
|
dy = -4
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
winActive("wc_r2_palette", r2WinOn)
|
|||
|
winActive("wc_r2_scenario", r2WinOn)
|
|||
|
winActive("wc_r2_prop_window", r2WinOn)
|
|||
|
winActive("wc_r2_form", r2WinOn)
|
|||
|
winActive("wc_r2_custom_look", r2WinOn)
|
|||
|
winActive("wc_r2_dialogs", r2WinOn)
|
|||
|
winActive("wc_r2_events", r2WinOn)
|
|||
|
winActive("wc_r2_activities", r2WinOn)
|
|||
|
winActive("wc_r2_feature_help", r2WinOn)
|
|||
|
winActive("wc_r2_connect", not r2WinOn)
|
|||
|
winActive("wc_r2_session_browser", not r2WinOn)
|
|||
|
winActive("wc_r2_scenario_control", true)
|
|||
|
winActive("wc_r2_player_tracking", r2WinOn)
|
|||
|
end
|