1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-25 00:23:50 +00:00
openmw-tes3mp/apps/openmw/mwmp/processors/player/ProcessorPlayerBaseInfo.hpp
David Cernat 14f90e773d [Client] Split up creation of DedicatedPlayers into multiple methods
Additionally, print player guids using their string representations for consistency.

The creation and updating of DedicatedPlayer references remains very inelegant, but this commit is the first step towards fixing that.
2018-04-08 10:56:33 +03:00

58 lines
1.6 KiB
C++

//
// Created by koncord on 04.04.17.
//
#ifndef OPENMW_PROCESSORPLAYERBASEINFO_HPP
#define OPENMW_PROCESSORPLAYERBASEINFO_HPP
#include "../PlayerProcessor.hpp"
namespace mwmp
{
class ProcessorPlayerBaseInfo : public PlayerProcessor
{
public:
ProcessorPlayerBaseInfo()
{
BPP_INIT(ID_PLAYER_BASEINFO)
}
virtual void Do(PlayerPacket &packet, BasePlayer *player)
{
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Received ID_PLAYER_BASEINFO from server");
if (isLocal())
{
LOG_APPEND(Log::LOG_INFO, "- Packet was about my id");
if (isRequest())
{
LOG_APPEND(Log::LOG_INFO, "- Requesting info");
packet.Send(serverAddr);
}
else
{
LOG_APPEND(Log::LOG_INFO, "- Updating LocalPlayer");
static_cast<LocalPlayer*>(player)->updateChar();
}
}
else
{
LOG_APPEND(Log::LOG_INFO, "- Packet was about %s", player == 0 ? "new player" : player->npc.mName.c_str());
if (player == 0)
{
LOG_APPEND(Log::LOG_INFO, "- Exchanging data with new player");
player = PlayerList::newPlayer(guid);
packet.setPlayer(player);
packet.Read();
}
static_cast<DedicatedPlayer*>(player)->setBaseInfo();
}
}
};
}
#endif //OPENMW_PROCESSORPLAYERBASEINFO_HPP