From bffe9179144e5c681fad236c5951b06d2c732399 Mon Sep 17 00:00:00 2001 From: JoshuaJB Date: Thu, 7 Nov 2013 20:07:24 +0000 Subject: [PATCH] Multiplayer lobby based on the XmPP protocol. Special thanks to Philip, alpha123, scythetwirler, and anyone else who has helped build, debug or test the lobby. This was SVN commit r14098. --- binaries/data/config/default.cfg | 6 + .../textures/ui/global/modern/background.png | 3 + .../art/textures/ui/global/modern/border.png | 3 + .../ui/global/modern/dialog-deco-bottom.png | 3 + .../ui/global/modern/dialog-deco-top.png | 3 + .../ui/global/modern/dropdown-arrow.png | 3 + .../ui/global/modern/gold-separator.png | 3 + .../ui/global/modern/item-shading-left.png | 3 + .../ui/global/modern/item-shading-right.png | 3 + .../textures/ui/global/modern/scrollback.png | 3 + .../textures/ui/global/modern/scrollbar.png | 3 + .../textures/ui/global/modern/shadow-high.png | 3 + .../textures/ui/global/modern/shadow-low.png | 3 + .../ui/global/modern/titlebar-left.png | 3 + .../ui/global/modern/titlebar-middle.png | 3 + .../ui/global/modern/white-separator.png | 3 + .../mods/public/gui/common/common_styles.xml | 9 + .../public/gui/common/functions_utility.js | 53 +- .../mods/public/gui/common/modern/setup.xml | 16 + .../mods/public/gui/common/modern/sprites.xml | 255 ++++++ .../mods/public/gui/common/modern/styles.xml | 81 ++ .../data/mods/public/gui/common/setup.xml | 2 +- .../mods/public/gui/gamesetup/gamesetup.js | 150 ++- .../mods/public/gui/gamesetup/gamesetup.xml | 36 +- .../mods/public/gui/gamesetup/gamesetup_mp.js | 57 +- .../public/gui/gamesetup/gamesetup_mp.xml | 27 +- binaries/data/mods/public/gui/gui.dtd | 85 +- binaries/data/mods/public/gui/lobby/lobby.js | 797 ++++++++++++++++ binaries/data/mods/public/gui/lobby/lobby.xml | 189 ++++ .../data/mods/public/gui/lobby/prelobby.js | 148 +++ .../data/mods/public/gui/lobby/prelobby.xml | 120 +++ .../data/mods/public/gui/lobby/styles.xml | 37 + .../data/mods/public/gui/options/options.xml | 141 +-- binaries/data/mods/public/gui/page_lobby.xml | 17 + .../data/mods/public/gui/page_options.xml | 7 +- .../data/mods/public/gui/page_prelobby.xml | 14 + .../data/mods/public/gui/pregame/mainmenu.xml | 34 +- .../data/mods/public/gui/session/messages.js | 6 + .../data/mods/public/gui/session/session.js | 248 +++-- .../data/mods/public/gui/session/session.xml | 9 +- .../data/mods/public/gui/summary/summary.xml | 13 +- build/premake/premake4.lua | 31 +- source/gui/CGUI.cpp | 12 +- source/gui/CGUIScrollBarVertical.cpp | 14 +- source/gui/CInput.cpp | 47 +- source/gui/CList.cpp | 1 - source/gui/CList.h | 4 +- source/gui/COList.cpp | 318 +++++++ source/gui/COList.h | 64 ++ source/gui/CText.cpp | 1 - source/gui/IGUIObject.h | 2 +- source/gui/IGUIScrollBar.cpp | 10 +- source/gui/IGUIScrollBar.h | 18 +- source/gui/scripting/ScriptFunctions.cpp | 319 ++++++- source/lib/config2.h | 5 + source/lobby/IXmppClient.h | 60 ++ source/lobby/StanzaExtensions.cpp | 175 ++++ source/lobby/StanzaExtensions.h | 89 ++ source/lobby/XmppClient.cpp | 852 ++++++++++++++++++ source/lobby/XmppClient.h | 140 +++ source/lobby/sha.cpp | 347 +++++++ source/lobby/sha.h | 62 ++ source/network/NetClient.cpp | 29 +- source/network/NetClient.h | 2 - source/pch/lobby/precompiled.cpp | 18 + source/pch/lobby/precompiled.h | 18 + source/ps/GUID.cpp | 41 + source/ps/GUID.h | 25 + source/ps/GameSetup/GameSetup.cpp | 5 + source/ps/scripting/JSInterface_VFS.cpp | 26 +- source/ps/scripting/JSInterface_VFS.h | 6 + source/scripting/ScriptGlue.cpp | 1 + source/tools/XpartaMuPP/ELO.py | 31 + source/tools/XpartaMuPP/LobbyRanking.py | 82 ++ source/tools/XpartaMuPP/Makefile | 18 + source/tools/XpartaMuPP/README | 86 ++ source/tools/XpartaMuPP/XpartaMuPP.py | 616 +++++++++++++ source/tools/XpartaMuPP/config.py | 22 + source/tools/XpartaMuPP/mod_ipstamp.erl | 76 ++ 79 files changed, 5906 insertions(+), 369 deletions(-) create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/background.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/border.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-bottom.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-top.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/dropdown-arrow.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/gold-separator.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/item-shading-left.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/item-shading-right.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/scrollback.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/scrollbar.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/shadow-high.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/shadow-low.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/titlebar-left.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/titlebar-middle.png create mode 100644 binaries/data/mods/public/art/textures/ui/global/modern/white-separator.png create mode 100644 binaries/data/mods/public/gui/common/modern/setup.xml create mode 100644 binaries/data/mods/public/gui/common/modern/sprites.xml create mode 100644 binaries/data/mods/public/gui/common/modern/styles.xml create mode 100644 binaries/data/mods/public/gui/lobby/lobby.js create mode 100644 binaries/data/mods/public/gui/lobby/lobby.xml create mode 100644 binaries/data/mods/public/gui/lobby/prelobby.js create mode 100644 binaries/data/mods/public/gui/lobby/prelobby.xml create mode 100644 binaries/data/mods/public/gui/lobby/styles.xml create mode 100644 binaries/data/mods/public/gui/page_lobby.xml create mode 100644 binaries/data/mods/public/gui/page_prelobby.xml create mode 100644 source/gui/COList.cpp create mode 100644 source/gui/COList.h create mode 100644 source/lobby/IXmppClient.h create mode 100644 source/lobby/StanzaExtensions.cpp create mode 100644 source/lobby/StanzaExtensions.h create mode 100644 source/lobby/XmppClient.cpp create mode 100644 source/lobby/XmppClient.h create mode 100644 source/lobby/sha.cpp create mode 100644 source/lobby/sha.h create mode 100644 source/pch/lobby/precompiled.cpp create mode 100644 source/pch/lobby/precompiled.h create mode 100644 source/ps/GUID.cpp create mode 100644 source/ps/GUID.h create mode 100644 source/tools/XpartaMuPP/ELO.py create mode 100644 source/tools/XpartaMuPP/LobbyRanking.py create mode 100644 source/tools/XpartaMuPP/Makefile create mode 100644 source/tools/XpartaMuPP/README create mode 100644 source/tools/XpartaMuPP/XpartaMuPP.py create mode 100644 source/tools/XpartaMuPP/config.py create mode 100644 source/tools/XpartaMuPP/mod_ipstamp.erl diff --git a/binaries/data/config/default.cfg b/binaries/data/config/default.cfg index 02b4d605e4..27864c2a47 100644 --- a/binaries/data/config/default.cfg +++ b/binaries/data/config/default.cfg @@ -303,6 +303,7 @@ hotkey.session.showstatusbars = Tab ; Toggle display of status bars ; > HOTKEYS ONLY hotkey.chat = Return ; Toggle chat window hotkey.teamchat = "T" ; Toggle chat window in team chat mode +hotkey.complete.playername = "Alt+C" ; Complete a player's name ; > GUI TEXTBOX HOTKEYS hotkey.text.delete.left = "Ctrl+Backspace" ; Delete word to the left of cursor @@ -347,3 +348,8 @@ gui.session.minimap.blinkduration = 1.7 ; The blink duration while pingi ; GENERAL GUI SETTINGS gui.cursorblinkrate = 0.5 ; Cursor blink rate in seconds (0.0 to disable blinking) + +; Multiplayer lobby preferences +lobby.server = "lobby.wildfiregames.com" ; Address of lobby server +lobby.xpartamupp = "xpartamupp" ; Name of the server-side xmpp client that manage games +lobby.chattimestamp = false ; Show time chat message was posted. diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/background.png b/binaries/data/mods/public/art/textures/ui/global/modern/background.png new file mode 100644 index 0000000000..6967e6de32 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/background.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fc359e8bb39d67f857388d6040fc93aac0da4a40208c207b0f0f8b3080010ad +size 637286 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/border.png b/binaries/data/mods/public/art/textures/ui/global/modern/border.png new file mode 100644 index 0000000000..6ca9076cbf --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/border.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67e8e6461a1cffa47d6d41c9af5aa272eeb380c9708a744ba4ab0732aca1067c +size 65776 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-bottom.png b/binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-bottom.png new file mode 100644 index 0000000000..9b04f40a92 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-bottom.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b7c7a2cea1049b588cc24987eeba74169726006d1d9f97782f68a3561a8c8c2 +size 8362 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-top.png b/binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-top.png new file mode 100644 index 0000000000..708a0c39b4 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/dialog-deco-top.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bfe3371112ba4045f62c300b29695343e585fbe3e159f34a512506dc8fda6bb +size 8362 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/dropdown-arrow.png b/binaries/data/mods/public/art/textures/ui/global/modern/dropdown-arrow.png new file mode 100644 index 0000000000..2075149cd2 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/dropdown-arrow.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d53653918a239915a7e0f21a833471dd126186ab60158578117660f55df32a3 +size 1147 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/gold-separator.png b/binaries/data/mods/public/art/textures/ui/global/modern/gold-separator.png new file mode 100644 index 0000000000..31e0b4b224 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/gold-separator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81317b21cbfe764c270608639b9c99b134012d40d897c567671bac6a60a1010b +size 310 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/item-shading-left.png b/binaries/data/mods/public/art/textures/ui/global/modern/item-shading-left.png new file mode 100644 index 0000000000..102e80eefa --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/item-shading-left.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fb454241f5a44a5a95ec3699919f224e4f05bf9dada537e8233393f69a98455 +size 1030 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/item-shading-right.png b/binaries/data/mods/public/art/textures/ui/global/modern/item-shading-right.png new file mode 100644 index 0000000000..ed96b68cc4 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/item-shading-right.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:558d3bdfc3daac65d0f8b177bac8c2f86d9a316775704930f18b5d57775dd432 +size 935 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/scrollback.png b/binaries/data/mods/public/art/textures/ui/global/modern/scrollback.png new file mode 100644 index 0000000000..19f6c6d7f3 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/scrollback.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:805e96e3431b94f2e0cd9af6529be016775acc353e905684830d03707cf9c97b +size 252 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/scrollbar.png b/binaries/data/mods/public/art/textures/ui/global/modern/scrollbar.png new file mode 100644 index 0000000000..c2ea9b6d84 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/scrollbar.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e81bc003c73f60c24c111308d8bd74677e4a3fe200fb74677b3760e523436dc9 +size 335 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/shadow-high.png b/binaries/data/mods/public/art/textures/ui/global/modern/shadow-high.png new file mode 100644 index 0000000000..51b286f90a --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/shadow-high.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3333c4d033e217877e97a013687cd598eab5a29d4d437d51c43d6e4892495771 +size 274779 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/shadow-low.png b/binaries/data/mods/public/art/textures/ui/global/modern/shadow-low.png new file mode 100644 index 0000000000..2643356ec0 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/shadow-low.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca1f1955b97dfa9e871dcdac3900603c75b45a55b9b9ec95d53fb111355479fe +size 125995 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/titlebar-left.png b/binaries/data/mods/public/art/textures/ui/global/modern/titlebar-left.png new file mode 100644 index 0000000000..a93db31623 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/titlebar-left.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8ae1b942eb8844e1f6308e0a928d7281d2c69f5fe522171e7e70fae6c4971a3 +size 2602 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/titlebar-middle.png b/binaries/data/mods/public/art/textures/ui/global/modern/titlebar-middle.png new file mode 100644 index 0000000000..a50174df57 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/titlebar-middle.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67567db2be538526fae855479f64518c5eca6ca1282837d3955d2f362da12777 +size 436 diff --git a/binaries/data/mods/public/art/textures/ui/global/modern/white-separator.png b/binaries/data/mods/public/art/textures/ui/global/modern/white-separator.png new file mode 100644 index 0000000000..a1cfea04e9 --- /dev/null +++ b/binaries/data/mods/public/art/textures/ui/global/modern/white-separator.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6bca159d6a21411511f3c80563976f5b8f44dafd6d87173f51ac160d693cfc5 +size 254 diff --git a/binaries/data/mods/public/gui/common/common_styles.xml b/binaries/data/mods/public/gui/common/common_styles.xml index e9d488331a..f32af2f907 100644 --- a/binaries/data/mods/public/gui/common/common_styles.xml +++ b/binaries/data/mods/public/gui/common/common_styles.xml @@ -243,6 +243,15 @@ textcolor_selected="gold" /> +