mirror of
https://gitea.wildfiregames.com/0ad/0ad
synced 2026-06-18 06:13:55 -07:00
Session menu cleanup.
Rename globals to g_Foo.
Remove unused variable playerID from updateTimeNotifications which
became obsolete in fe9eeedd66.
Use let instead of var.
Add some missing semicolons.
Fix whitespace, quote object keys.
This was SVN commit r17548.
This commit is contained in:
parent
7a75f22f9f
commit
39ffb0a6bd
3 changed files with 109 additions and 94 deletions
|
|
@ -802,7 +802,7 @@ function handleInputBeforeGui(ev, hoveredObject)
|
|||
case INPUT_MASSTRIBUTING:
|
||||
if (ev.type == "hotkeyup" && ev.hotkey == "session.masstribute")
|
||||
{
|
||||
flushTributing();
|
||||
g_FlushTributing();
|
||||
inputState = INPUT_NORMAL;
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,6 @@
|
|||
const PAUSE = translate("Pause");
|
||||
const RESUME = translate("Resume");
|
||||
|
||||
/*
|
||||
* MENU POSITION CONSTANTS
|
||||
*/
|
||||
|
||||
// Menu / panel border size
|
||||
const MARGIN = 4;
|
||||
|
||||
|
|
@ -33,14 +29,14 @@ const MENU_SPEED = 1.2;
|
|||
const RESOURCES = ["food", "wood", "stone", "metal"];
|
||||
const STEP = 5;
|
||||
|
||||
var isMenuOpen = false;
|
||||
var g_IsMenuOpen = false;
|
||||
var menu;
|
||||
|
||||
var isDiplomacyOpen = false;
|
||||
var isTradeOpen = false;
|
||||
var g_IsDiplomacyOpen = false;
|
||||
var g_IsTradeOpen = false;
|
||||
|
||||
// Redefined every time someone makes a tribute (so we can save some data in a closure). Called in input.js handleInputBeforeGui.
|
||||
var flushTributing = function() {};
|
||||
var g_FlushTributing = function() {};
|
||||
|
||||
// Ignore size defined in XML and set the actual menu size here
|
||||
function initMenuPosition()
|
||||
|
|
@ -49,21 +45,15 @@ function initMenuPosition()
|
|||
menu.size = INITIAL_MENU_POSITION;
|
||||
}
|
||||
|
||||
|
||||
// =============================================================================
|
||||
// Overall Menu
|
||||
// =============================================================================
|
||||
//
|
||||
// Slide menu
|
||||
function updateMenuPosition(dt)
|
||||
{
|
||||
if (isMenuOpen)
|
||||
if (g_IsMenuOpen)
|
||||
{
|
||||
var maxOffset = END_MENU_POSITION - menu.size.bottom;
|
||||
let maxOffset = END_MENU_POSITION - menu.size.bottom;
|
||||
if (maxOffset > 0)
|
||||
{
|
||||
var offset = Math.min(MENU_SPEED * dt, maxOffset);
|
||||
var size = menu.size;
|
||||
let offset = Math.min(MENU_SPEED * dt, maxOffset);
|
||||
let size = menu.size;
|
||||
size.top += offset;
|
||||
size.bottom += offset;
|
||||
menu.size = size;
|
||||
|
|
@ -71,11 +61,11 @@ function updateMenuPosition(dt)
|
|||
}
|
||||
else
|
||||
{
|
||||
var maxOffset = menu.size.top - MENU_TOP;
|
||||
let maxOffset = menu.size.top - MENU_TOP;
|
||||
if (maxOffset > 0)
|
||||
{
|
||||
var offset = Math.min(MENU_SPEED * dt, maxOffset);
|
||||
var size = menu.size;
|
||||
let offset = Math.min(MENU_SPEED * dt, maxOffset);
|
||||
let size = menu.size;
|
||||
size.top -= offset;
|
||||
size.bottom -= offset;
|
||||
menu.size = size;
|
||||
|
|
@ -86,25 +76,23 @@ function updateMenuPosition(dt)
|
|||
// Opens the menu by revealing the screen which contains the menu
|
||||
function openMenu()
|
||||
{
|
||||
isMenuOpen = true;
|
||||
g_IsMenuOpen = true;
|
||||
}
|
||||
|
||||
// Closes the menu and resets position
|
||||
function closeMenu()
|
||||
{
|
||||
isMenuOpen = false;
|
||||
g_IsMenuOpen = false;
|
||||
}
|
||||
|
||||
function toggleMenu()
|
||||
{
|
||||
if (isMenuOpen == true)
|
||||
if (g_IsMenuOpen)
|
||||
closeMenu();
|
||||
else
|
||||
openMenu();
|
||||
}
|
||||
|
||||
// Menu buttons
|
||||
// =============================================================================
|
||||
function optionsMenuButton()
|
||||
{
|
||||
closeMenu();
|
||||
|
|
@ -136,9 +124,15 @@ function resignMenuButton()
|
|||
closeMenu();
|
||||
closeOpenDialogs();
|
||||
pauseGame();
|
||||
var btCaptions = [translate("No"), translate("Yes")];
|
||||
var btCode = [resumeGame, resignGame];
|
||||
messageBox(400, 200, translate("Are you sure you want to resign?"), translate("Confirmation"), 0, btCaptions, btCode);
|
||||
|
||||
messageBox(
|
||||
400, 200,
|
||||
translate("Are you sure you want to resign?"),
|
||||
translate("Confirmation"),
|
||||
0,
|
||||
[translate("No"), translate("Yes")],
|
||||
[resumeGame, resignGame]
|
||||
);
|
||||
}
|
||||
|
||||
function exitMenuButton()
|
||||
|
|
@ -146,30 +140,46 @@ function exitMenuButton()
|
|||
closeMenu();
|
||||
closeOpenDialogs();
|
||||
pauseGame();
|
||||
if (g_IsNetworked && g_IsController)
|
||||
{
|
||||
var btCode = [resumeGame, leaveGame];
|
||||
var message = translate("Are you sure you want to quit? Leaving will disconnect all other players.");
|
||||
}
|
||||
else if (g_IsNetworked && !g_GameEnded && !g_IsObserver)
|
||||
{
|
||||
var btCode = [resumeGame, networkReturnQuestion];
|
||||
var message = translate("Are you sure you want to quit?");
|
||||
}
|
||||
else
|
||||
{
|
||||
var btCode = [resumeGame, leaveGame];
|
||||
var message = translate("Are you sure you want to quit?");
|
||||
}
|
||||
messageBox(400, 200, message, translate("Confirmation"), 0, [translate("No"), translate("Yes")], btCode);
|
||||
|
||||
let messageTypes = {
|
||||
"host": {
|
||||
"caption": translate("Are you sure you want to quit? Leaving will disconnect all other players."),
|
||||
"buttons": [resumeGame, leaveGame]
|
||||
},
|
||||
"client": {
|
||||
"caption": translate("Are you sure you want to quit?"),
|
||||
"buttons": [resumeGame, networkReturnQuestion]
|
||||
},
|
||||
"singleplayer": {
|
||||
"caption": translate("Are you sure you want to quit?"),
|
||||
"buttons": [resumeGame, leaveGame]
|
||||
}
|
||||
};
|
||||
|
||||
let messageType = g_IsNetworked && g_IsController ? "host" :
|
||||
(g_IsNetworked && !g_GameEnded && !g_IsObserver ? "client" : "singleplayer");
|
||||
|
||||
messageBox(
|
||||
400, 200,
|
||||
messageTypes[messageType].caption,
|
||||
translate("Confirmation"),
|
||||
0,
|
||||
[translate("No"), translate("Yes")],
|
||||
messageTypes[messageType].buttons
|
||||
);
|
||||
}
|
||||
|
||||
function networkReturnQuestion()
|
||||
{
|
||||
var btCaptions = [translate("I will return"), translate("I resign")];
|
||||
var btCode = [leaveGame, resignGame];
|
||||
var btArgs = [true, false];
|
||||
messageBox(400, 200, translate("Do you want to resign or will you return soon?"), translate("Confirmation"), 0, btCaptions, btCode, btArgs);
|
||||
messageBox(
|
||||
400, 200,
|
||||
translate("Do you want to resign or will you return soon?"),
|
||||
translate("Confirmation"),
|
||||
0,
|
||||
[translate("I will return"), translate("I resign")],
|
||||
[leaveGame, resignGame],
|
||||
[true, false]
|
||||
);
|
||||
}
|
||||
|
||||
function openDeleteDialog(selection)
|
||||
|
|
@ -177,34 +187,35 @@ function openDeleteDialog(selection)
|
|||
closeMenu();
|
||||
closeOpenDialogs();
|
||||
|
||||
var deleteSelectedEntities = function (selectionArg)
|
||||
let deleteSelectedEntities = function (selectionArg)
|
||||
{
|
||||
Engine.PostNetworkCommand({"type": "delete-entities", "entities": selectionArg});
|
||||
Engine.PostNetworkCommand({ "type": "delete-entities", "entities": selectionArg });
|
||||
};
|
||||
|
||||
var btCaptions = [translate("No"), translate("Yes")];
|
||||
var btCode = [resumeGame, deleteSelectedEntities];
|
||||
var btArgs = [null, selection];
|
||||
|
||||
messageBox(400, 200, translate("Destroy everything currently selected?"), translate("Delete"), 0, btCaptions, btCode, btArgs);
|
||||
messageBox(
|
||||
400, 200,
|
||||
translate("Destroy everything currently selected?"),
|
||||
translate("Delete"),
|
||||
0,
|
||||
[translate("No"), translate("Yes")],
|
||||
[resumeGame, deleteSelectedEntities],
|
||||
[null, selection]
|
||||
);
|
||||
}
|
||||
|
||||
// Menu functions
|
||||
// =============================================================================
|
||||
|
||||
function openSave()
|
||||
{
|
||||
closeMenu();
|
||||
closeOpenDialogs();
|
||||
pauseGame();
|
||||
var savedGameData = getSavedGameData();
|
||||
Engine.PushGuiPage("page_savegame.xml", {"savedGameData":savedGameData, "callback":"resumeGame"});
|
||||
let savedGameData = getSavedGameData();
|
||||
Engine.PushGuiPage("page_savegame.xml", { "savedGameData":savedGameData, "callback":"resumeGame" });
|
||||
}
|
||||
|
||||
function openOptions()
|
||||
{
|
||||
pauseGame();
|
||||
Engine.PushGuiPage("page_options.xml", {"callback":"resumeGame"});
|
||||
Engine.PushGuiPage("page_options.xml", { "callback":"resumeGame" });
|
||||
}
|
||||
|
||||
function openChat()
|
||||
|
|
@ -238,8 +249,8 @@ function toggleChatWindow(teamChat)
|
|||
if (g_Disconnected)
|
||||
return;
|
||||
|
||||
var chatWindow = Engine.GetGUIObjectByName("chatDialogPanel");
|
||||
var chatInput = Engine.GetGUIObjectByName("chatInput");
|
||||
let chatWindow = Engine.GetGUIObjectByName("chatDialogPanel");
|
||||
let chatInput = Engine.GetGUIObjectByName("chatInput");
|
||||
|
||||
if (chatWindow.hidden)
|
||||
chatInput.focus(); // Grant focus to the input area
|
||||
|
|
@ -269,9 +280,9 @@ function tributeResource(data)
|
|||
|
||||
function openDiplomacy()
|
||||
{
|
||||
if (isTradeOpen)
|
||||
if (g_IsTradeOpen)
|
||||
closeTrade();
|
||||
isDiplomacyOpen = true;
|
||||
g_IsDiplomacyOpen = true;
|
||||
|
||||
let we = Engine.GetPlayerID();
|
||||
|
||||
|
|
@ -330,18 +341,18 @@ function openDiplomacy()
|
|||
"food": (resource == "food" ? 100 : 0) * multiplier,
|
||||
"wood": (resource == "wood" ? 100 : 0) * multiplier,
|
||||
"stone": (resource == "stone" ? 100 : 0) * multiplier,
|
||||
"metal": (resource == "metal" ? 100 : 0) * multiplier,
|
||||
"metal": (resource == "metal" ? 100 : 0) * multiplier
|
||||
};
|
||||
button.tooltip = formatTributeTooltip(g_Players[player], resource, amounts[resource]);
|
||||
// This is in a closure so that we have access to `player`, `amounts`, and `multiplier` without some
|
||||
// evil global variable hackery.
|
||||
flushTributing = function() {
|
||||
tributeResource({"player": player, "amounts": amounts});
|
||||
g_FlushTributing = function() {
|
||||
tributeResource({ "player": player, "amounts": amounts });
|
||||
multiplier = 1;
|
||||
button.tooltip = formatTributeTooltip(g_Players[player], resource, 100);
|
||||
};
|
||||
if (!isBatchTrainPressed)
|
||||
flushTributing();
|
||||
g_FlushTributing();
|
||||
};
|
||||
})(i, resource, button);
|
||||
button.hidden = false;
|
||||
|
|
@ -349,13 +360,13 @@ function openDiplomacy()
|
|||
}
|
||||
|
||||
// Attack Request
|
||||
var simState = GetSimState();
|
||||
let simState = GetSimState();
|
||||
let button = Engine.GetGUIObjectByName("diplomacyAttackRequest["+(i-1)+"]");
|
||||
button.hidden = simState.ceasefireActive || !(g_Players[i].isEnemy[we]);
|
||||
button.tooltip = translate("Request your allies to attack this enemy");
|
||||
button.onpress = (function(i, we){ return function() {
|
||||
Engine.PostNetworkCommand({"type": "attack-request", "source": we, "target": i});
|
||||
} })(i, we);
|
||||
Engine.PostNetworkCommand({ "type": "attack-request", "source": we, "target": i });
|
||||
}; })(i, we);
|
||||
|
||||
// Skip our own teams on teams locked
|
||||
if (g_Players[we].teamsLocked && g_Players[we].team != -1 && g_Players[we].team == g_Players[i].team)
|
||||
|
|
@ -368,7 +379,7 @@ function openDiplomacy()
|
|||
let button = Engine.GetGUIObjectByName("diplomacyPlayer"+setting+"["+(i-1)+"]");
|
||||
|
||||
button.caption = g_Players[we]["is"+setting][i] ? translate("x") : "";
|
||||
button.onpress = (function(e){ return function() { setDiplomacy(e); } })({"player": i, "to": setting.toLowerCase()});
|
||||
button.onpress = (function(e){ return function() { setDiplomacy(e); }; })({ "player": i, "to": setting.toLowerCase() });
|
||||
button.hidden = simState.ceasefireActive;
|
||||
}
|
||||
}
|
||||
|
|
@ -378,13 +389,13 @@ function openDiplomacy()
|
|||
|
||||
function closeDiplomacy()
|
||||
{
|
||||
isDiplomacyOpen = false;
|
||||
g_IsDiplomacyOpen = false;
|
||||
Engine.GetGUIObjectByName("diplomacyDialogPanel").hidden = true;
|
||||
}
|
||||
|
||||
function toggleDiplomacy()
|
||||
{
|
||||
if (isDiplomacyOpen)
|
||||
if (g_IsDiplomacyOpen)
|
||||
closeDiplomacy();
|
||||
else
|
||||
openDiplomacy();
|
||||
|
|
@ -392,9 +403,9 @@ function toggleDiplomacy()
|
|||
|
||||
function openTrade()
|
||||
{
|
||||
if (isDiplomacyOpen)
|
||||
if (g_IsDiplomacyOpen)
|
||||
closeDiplomacy();
|
||||
isTradeOpen = true;
|
||||
g_IsTradeOpen = true;
|
||||
|
||||
var updateButtons = function()
|
||||
{
|
||||
|
|
@ -605,13 +616,13 @@ function openTrade()
|
|||
|
||||
function closeTrade()
|
||||
{
|
||||
isTradeOpen = false;
|
||||
g_IsTradeOpen = false;
|
||||
Engine.GetGUIObjectByName("tradeDialogPanel").hidden = true;
|
||||
}
|
||||
|
||||
function toggleTrade()
|
||||
{
|
||||
if (isTradeOpen)
|
||||
if (g_IsTradeOpen)
|
||||
closeTrade();
|
||||
else
|
||||
openTrade();
|
||||
|
|
@ -619,7 +630,7 @@ function toggleTrade()
|
|||
|
||||
function toggleGameSpeed()
|
||||
{
|
||||
var gameSpeed = Engine.GetGUIObjectByName("gameSpeed");
|
||||
let gameSpeed = Engine.GetGUIObjectByName("gameSpeed");
|
||||
gameSpeed.hidden = !gameSpeed.hidden;
|
||||
}
|
||||
|
||||
|
|
@ -629,7 +640,7 @@ function openGameSummary()
|
|||
closeOpenDialogs();
|
||||
pauseGame();
|
||||
|
||||
var extendedSimState = Engine.GuiInterfaceCall("GetExtendedSimulationState");
|
||||
let extendedSimState = Engine.GuiInterfaceCall("GetExtendedSimulationState");
|
||||
|
||||
Engine.PushGuiPage("page_summary.xml", {
|
||||
"timeElapsed" : extendedSimState.timeElapsed,
|
||||
|
|
@ -683,7 +694,7 @@ function togglePause()
|
|||
closeMenu();
|
||||
closeOpenDialogs();
|
||||
|
||||
var pauseOverlay = Engine.GetGUIObjectByName("pauseOverlay");
|
||||
let pauseOverlay = Engine.GetGUIObjectByName("pauseOverlay");
|
||||
|
||||
if (pauseOverlay.hidden)
|
||||
{
|
||||
|
|
@ -704,7 +715,13 @@ function openManual()
|
|||
closeMenu();
|
||||
closeOpenDialogs();
|
||||
pauseGame();
|
||||
Engine.PushGuiPage("page_manual.xml", {"page": "manual/intro", "title":translate("Manual"), "url":"http://trac.wildfiregames.com/wiki/0adManual", "callback": "resumeGame"});
|
||||
|
||||
Engine.PushGuiPage("page_manual.xml", {
|
||||
"page": "manual/intro",
|
||||
"title": translate("Manual"),
|
||||
"url": "http://trac.wildfiregames.com/wiki/0adManual",
|
||||
"callback": "resumeGame"
|
||||
});
|
||||
}
|
||||
|
||||
function toggleDeveloperOverlay()
|
||||
|
|
@ -713,12 +730,12 @@ function toggleDeveloperOverlay()
|
|||
if (Engine.HasXmppClient() && Engine.IsRankedGame())
|
||||
return;
|
||||
|
||||
var devCommands = Engine.GetGUIObjectByName("devCommands");
|
||||
let devCommands = Engine.GetGUIObjectByName("devCommands");
|
||||
if (devCommands.hidden)
|
||||
submitChatDirectly(translate("The Developer Overlay was opened."));
|
||||
else
|
||||
submitChatDirectly(translate("The Developer Overlay was closed."));
|
||||
// Toggle the overlay
|
||||
|
||||
devCommands.hidden = !devCommands.hidden;
|
||||
}
|
||||
|
||||
|
|
@ -732,11 +749,10 @@ function closeOpenDialogs()
|
|||
|
||||
function formatTributeTooltip(player, resource, amount)
|
||||
{
|
||||
let playerColor = rgbToGuiColor(player.color);
|
||||
return sprintf(translate("Tribute %(resourceAmount)s %(resourceType)s to %(playerName)s. Shift-click to tribute %(greaterAmount)s."), {
|
||||
resourceAmount: amount,
|
||||
resourceType: getLocalizedResourceName(resource, "withinSentence"),
|
||||
playerName: "[color=\"" + playerColor + "\"]" + player.name + "[/color]",
|
||||
greaterAmount: (amount < 500 ? 500 : amount + 500)
|
||||
"resourceAmount": amount,
|
||||
"resourceType": getLocalizedResourceName(resource, "withinSentence"),
|
||||
"playerName": "[color=\"" + rgbToGuiColor(player.color) + "\"]" + player.name + "[/color]",
|
||||
"greaterAmount": (amount < 500 ? 500 : amount + 500)
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ function updateDiplomacy()
|
|||
{
|
||||
g_Players = getPlayerData(g_PlayerAssignments);
|
||||
|
||||
if (isDiplomacyOpen)
|
||||
if (g_IsDiplomacyOpen)
|
||||
openDiplomacy();
|
||||
}
|
||||
|
||||
|
|
@ -246,7 +246,6 @@ function updateTimeNotifications()
|
|||
{
|
||||
let notifications = Engine.GuiInterfaceCall("GetTimeNotifications");
|
||||
let notificationText = "";
|
||||
let playerID = Engine.GetPlayerID();
|
||||
for (let n of notifications)
|
||||
{
|
||||
let message = n.message;
|
||||
|
|
|
|||
Loading…
Reference in a new issue