1
0
forked from 0ad/0ad

Refined chat and added chat messages to the console

Cleaned up session menu code (cached menu objects)

This was SVN commit r7935.
This commit is contained in:
WhiteTreePaladin 2010-08-13 16:05:06 +00:00
parent 3e6df25f10
commit c8f90ce5a2
5 changed files with 67 additions and 55 deletions

View File

@ -1,56 +1,55 @@
// Cache these objects for future access
var devCommands;
var menu;
var settingsWindow;
var chatWindow;
var chatInput;
var pauseOverlay;
function cacheMenuObjects()
{
devCommands = getGUIObjectByName("devCommands");
menu = getGUIObjectByName("menu");
settingsWindow = getGUIObjectByName("settingsWindow");
chatWindow = getGUIObjectByName("chatWindow");
chatInput = getGUIObjectByName("chatInput");
pauseOverlay = getGUIObjectByName("pauseOverlay");
}
function toggleDeveloperOverlay()
{
if (getGUIObjectByName("devCommands").hidden)
getGUIObjectByName("devCommands").hidden = false; // show overlay
else
getGUIObjectByName("devCommands").hidden = true; // hide overlay
}
function toggleSettingsWindow()
{
if (getGUIObjectByName("settingsWindow").hidden)
getGUIObjectByName("settingsWindow").hidden = false; // show settings
else
getGUIObjectByName("settingsWindow").hidden = true; // hide settings
getGUIObjectByName("menu").hidden = true; // Hide menu
}
function togglePause()
{
if (getGUIObjectByName("pauseOverlay").hidden)
{
getGUIObjectByName("pauseOverlay").hidden = false; // pause game
setPaused(true);
}
else
{
getGUIObjectByName("pauseOverlay").hidden = true; // unpause game
setPaused(false);
}
getGUIObjectByName("menu").hidden = true; // Hide menu
devCommands.hidden = !devCommands.hidden;
}
function toggleMenu()
{
if (getGUIObjectByName("menu").hidden)
getGUIObjectByName("menu").hidden = false; // View menu
else
getGUIObjectByName("menu").hidden = true; // Hide menu
menu.hidden = !menu.hidden;
}
function toggleSettingsWindow()
{
settingsWindow.hidden = !settingsWindow.hidden;
menu.hidden = true;
}
function toggleChatWindow()
{
if (getGUIObjectByName("chatWindow").hidden)
{
getGUIObjectByName("chatInput").focus();
getGUIObjectByName("chatWindow").hidden = false; // View chat
}
if (chatWindow.hidden)
chatInput.focus(); // Grant focus to the input area
else
{
getGUIObjectByName("chatWindow").hidden = true; // Hide chat
}
getGUIObjectByName("menu").hidden = true; // Hide menu
}
chatInput.caption = ""; // Clear chat input
chatWindow.hidden = !chatWindow.hidden;
menu.hidden = true;
}
function togglePause()
{
if (pauseOverlay.hidden)
setPaused(true);
else
setPaused(false);
pauseOverlay.hidden = !pauseOverlay.hidden;
menu.hidden = true;
}

View File

@ -1,5 +1,5 @@
// Chat data
const CHAT_TIMEOUT = 45000;
const CHAT_TIMEOUT = 30000;
const MAX_NUM_CHAT_LINES = 20;
var chatMessages = [];
var chatTimers = [];
@ -26,7 +26,6 @@ function handleNetMessage(message)
obj.caption = "Connection to the server has been lost";
obj.hidden = false;
getGUIObjectByName("disconnectedExitButton").hidden = false;
// TODO: we need to give players some way to exit
break;
default:
error("Unrecognised netstatus type "+message.status);
@ -56,8 +55,6 @@ function handleNetMessage(message)
function submitChatInput()
{
toggleChatWindow();
var input = getGUIObjectByName("chatInput");
var text = input.caption;
if (text.length)
@ -72,6 +69,8 @@ function submitChatInput()
// Remove focus
input.blur();
}
toggleChatWindow();
}
function addChatMessage(msg)
@ -89,7 +88,8 @@ function addChatMessage(msg)
break;
case "message":
formatted = '<[font=\"serif-bold-stroke-14\"][color="' + playerColor + '"]' + msg.username + '[/color][/font]> [font=\"serif-stroke-14\"]' + msg.text + '[/font]';
console.write("<" + msg.username + "> " + msg.text);
formatted = "<[color=\"" + playerColor + "\"]" + msg.username + "[/color]> " + msg.text;
break;
default:
@ -124,3 +124,9 @@ function getColorByPlayerName(playerName)
return "255 255 255";
}
function clearChatInput()
{
getGUIObjectByName("chatInput").caption = "";
}

View File

@ -53,6 +53,8 @@ function init(initData, hotloadData)
{
g_Players = getPlayerData(null);
}
cacheMenuObjects();
onSimulationUpdate();
}

View File

@ -141,15 +141,20 @@
</object>
<!-- Chat window -->
<object name="chatWindow" size="50%-200 50%-13 50%+200 50%+13" type="image" hidden="true" z="10" style="sessionPanelStyle">
<object name="chatInput" size="2 2 100%-66 100%-2" type="input" style="wheatInput" max_length="80">
<object name="chatWindow" size="50%-160 50%-32 50%+160 50%+32" type="image" hidden="true" z="10" style="wheatWindow">
<object name="chatInput" size="0 0 100%-0 24" type="input" style="wheatInput" max_length="80">
<action on="Press">submitChatInput();</action>
</object>
<object size="100%-65 100%-25 100%-1 100%" type="button" style="wheatButton">
<object size="32 32 144 64" type="button" style="wheatButton">
Cancel
<action on="Press">toggleChatWindow();</action>
</object>
<object size="100%-144 32 100%-32 64" type="button" style="wheatButton">
Send
<action on="Press">submitChatInput();</action>
</object>
</object>
<!-- ================================ ================================ -->
@ -167,7 +172,7 @@
<object name="settingsOptions"
size="30 30 100%-30 150"
type="image"
style="goldPanel"
style="sessionPanelStyle"
>
<!-- Settings / shadows -->
<object size="0 10 100%-80 35" type="text" style="settingsText" ghost="true">Enable Shadows</object>

View File

@ -148,7 +148,7 @@
<style name="chatPanel"
buffer_zone="5"
font="serif-bold-14"
font="serif-bold-stroke-14"
textcolor="white"
textcolor_selected="white"
text_align="left"