#pragma once #include "CNProtocol.hpp" #include "PlayerManager.hpp" #include "NPC.hpp" #include #include #define RESURRECT_HEIGHT 400 // this should really be called vec3 or something... struct WarpLocation { int x, y, z; }; namespace NPCManager { extern std::map NPCs; extern std::map Warps; extern std::vector RespawnPoints; void init(); void addNPC(std::vector viewableChunks, int32_t); void removeNPC(int32_t); void npcBarkHandler(CNSocket* sock, CNPacketData* data); void npcSummonHandler(CNSocket* sock, CNPacketData* data); void npcUnsummonHandler(CNSocket* sock, CNPacketData* data); void npcWarpHandler(CNSocket* sock, CNPacketData* data); void npcVendorStart(CNSocket* sock, CNPacketData* data); void npcVendorTable(CNSocket* sock, CNPacketData* data); void npcVendorBuy(CNSocket* sock, CNPacketData* data); void npcVendorSell(CNSocket* sock, CNPacketData* data); void npcVendorBuyback(CNSocket* sock, CNPacketData* data); void npcVendorBuyBattery(CNSocket* sock, CNPacketData* data); void npcCombineItems(CNSocket* sock, CNPacketData* data); }