diff options
author | David Athay <ko2fan@gmail.com> | 2024-04-15 00:31:42 +0100 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2024-04-15 00:31:42 +0100 |
commit | b16e95ca94b709f6a19abedb51e2fb313422a4d5 (patch) | |
tree | 8b2a685ef201e4f8ce661adc61a0bd2bba8c3adb /src/net | |
parent | e235ab70bd1a41df8da06bf8e8913f04d2bb6465 (diff) | |
download | mana-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.cpp | 24 |
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; } |