Index: binaries/data/config/default.cfg
===================================================================
--- binaries/data/config/default.cfg
+++ binaries/data/config/default.cfg
@@ -167,6 +167,7 @@
; > HOTKEYS ONLY
chat = Return ; Toggle chat window
teamchat = "T" ; Toggle chat window in team chat mode
+privatechat = "L" ; Toggle chat window with last selected private chat
; > QUICKSAVE
quicksave = "Shift+F5"
Index: binaries/data/mods/public/gui/credits/texts/programming.json
===================================================================
--- binaries/data/mods/public/gui/credits/texts/programming.json
+++ binaries/data/mods/public/gui/credits/texts/programming.json
@@ -145,6 +145,7 @@
{"nick": "Offensive ePeen", "name": "Jared Ryan Bills"},
{"nick": "Ols", "name": "Oliver Whiteman"},
{"nick": "olsner", "name": "Simon Brenner"},
+ {"nick": "OptimusShepard", "name": "Pirmin Stanglmeier"},
{"nick": "otero"},
{"name": "Nick Owens"},
{"nick": "Palaxin", "name": "David A. Freitag"},
Index: binaries/data/mods/public/gui/session/hotkeys/misc.xml
===================================================================
--- binaries/data/mods/public/gui/session/hotkeys/misc.xml
+++ binaries/data/mods/public/gui/session/hotkeys/misc.xml
@@ -5,13 +5,17 @@
+
+
Index: binaries/data/mods/public/gui/session/menu.js
===================================================================
--- binaries/data/mods/public/gui/session/menu.js
+++ binaries/data/mods/public/gui/session/menu.js
@@ -203,7 +203,7 @@
});
}
-function openChat(teamChat = false)
+function openChat(chat)
{
if (g_Disconnected)
return;
@@ -211,9 +211,21 @@
closeOpenDialogs();
let chatAddressee = Engine.GetGUIObjectByName("chatAddressee");
- let command = teamChat ? (g_IsObserver ? "/observers" : "/allies") : "";
+ let command;
+ switch (chat)
+ {
+ case "public":
+ command = "";
+ break;
+ case "team":
+ command = g_IsObserver ? "/observers" : "/allies";
+ break;
+ case "private":
+ command = g_LastChatAddressee;
+ break;
+ }
chatAddressee.selected = chatAddressee.list_data.indexOf(command);
-
+
Engine.GetGUIObjectByName("chatInput").focus();
Engine.GetGUIObjectByName("chatDialogPanel").hidden = false;
Index: binaries/data/mods/public/gui/session/messages.js
===================================================================
--- binaries/data/mods/public/gui/session/messages.js
+++ binaries/data/mods/public/gui/session/messages.js
@@ -29,6 +29,9 @@
*/
var g_ChatTimers = [];
+// Last selected private chat
+var g_LastChatAddressee = "";
+
/**
* Handle all netmessage types that can occur.
*/
@@ -750,6 +753,10 @@
if (chatAddressee.selected > 0 && (text.indexOf("/") != 0 || text.indexOf("/me ") == 0))
text = chatAddressee.list_data[chatAddressee.selected] + " " + text;
+ let selectedChat = chatAddressee.list_data[chatAddressee.selected]
+ if (selectedChat !== "" && selectedChat !== "/allies" && selectedChat !== "/enemies" && selectedChat !== "/observers")
+ g_LastChatAddressee = selectedChat;
+
submitChatDirectly(text);
}