summaryrefslogtreecommitdiff
path: root/src/net
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2024-04-15 00:31:42 +0100
committerDavid Athay <ko2fan@gmail.com>2024-04-15 00:31:42 +0100
commitb16e95ca94b709f6a19abedb51e2fb313422a4d5 (patch)
tree8b2a685ef201e4f8ce661adc61a0bd2bba8c3adb /src/net
parente235ab70bd1a41df8da06bf8e8913f04d2bb6465 (diff)
downloadmana-b16e95ca94b709f6a19abedb51e2fb313422a4d5.tar.gz
mana-b16e95ca94b709f6a19abedb51e2fb313422a4d5.tar.bz2
mana-b16e95ca94b709f6a19abedb51e2fb313422a4d5.tar.xz
mana-b16e95ca94b709f6a19abedb51e2fb313422a4d5.zip
WIP: Create avatars and populate the online player list - Currently names are blank or mangled
Diffstat (limited to 'src/net')
-rw-r--r--src/net/tmwa/playerlisthandler.cpp24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/net/tmwa/playerlisthandler.cpp b/src/net/tmwa/playerlisthandler.cpp
index 530af4c7..fe0b7bab 100644
--- a/src/net/tmwa/playerlisthandler.cpp
+++ b/src/net/tmwa/playerlisthandler.cpp
@@ -24,8 +24,11 @@
#include "net/tmwa/messageout.h"
#include "net/tmwa/protocol.h"
+#include "gui/socialwindow.h"
+
#include "utils/gettext.h"
+#include "avatar.h"
#include "event.h"
#include "log.h"
@@ -53,8 +56,25 @@ void PlayerListHandler::handleMessage(MessageIn &msg)
{
case SMSG_ONLINE_LIST:
{
- SERVER_NOTICE(_("RECEIVED SMSG_ONLINE_LIST"))
- logger->log("GOT SMSG_ONLINE_LIST");
+ int length = msg.readInt16();
+ int count = (length - 4) / 31;
+ std::vector<Avatar*> onlineUsers;
+
+ SERVER_NOTICE(strprintf(_("%d players online."), count))
+ for (int i = 0; i < count; i++)
+ {
+ int id = msg.readInt32();
+ std::string nick = msg.readString(24);
+ msg.readInt32(); // level
+ msg.readInt32(); // gm level
+ msg.readInt8(); // gender
+
+ Avatar *avatar = new Avatar(nick);
+ avatar->setOnline(true);
+ onlineUsers.push_back(avatar);
+ }
+
+ socialWindow->setPlayersOnline(onlineUsers);
}
break;
}