1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-23 04:53:51 +00:00
openmw-tes3mp/apps/openmw-mp/processors/world/ProcessorObjectSpawn.hpp

41 lines
1.3 KiB
C++

#ifndef OPENMW_PROCESSOROBJECTSPAWN_HPP
#define OPENMW_PROCESSOROBJECTSPAWN_HPP
#include "../WorldProcessor.hpp"
#include <apps/openmw-mp/Networking.hpp>
namespace mwmp
{
class ProcessorObjectSpawn final: public WorldProcessor
{
public:
ProcessorObjectSpawn()
{
BPP_INIT(ID_OBJECT_SPAWN)
}
void Do(WorldPacket &packet, const std::shared_ptr<Player> &player, BaseEvent &event) override
{
LOG_MESSAGE_SIMPLE(Log::LOG_INFO, "Received %s from %s", strPacketID.c_str(), player->npc.mName.c_str());
for (unsigned int i = 0; i < event.worldObjectCount; i++)
{
event.worldObjects.at(i).mpNum = mwmp::Networking::getPtr()->incrementMpNum();
}
// Send this packet back to the original sender with the mpNum generation from above,
// then send it to the other players
packet.Send(false);
packet.Send(true);
auto objCtrl = Networking::get().getState().getObjectCtrl();
auto objects = objCtrl.copyObjects(event);
Networking::get().getState().getEventCtrl().Call<CoreEvent::ON_OBJECT_SCALE>(player, objects);
objCtrl.sendObjects(player, objects, event.cell);
}
};
}
#endif //OPENMW_PROCESSOROBJECTSPAWN_HPP