mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-29 14:01:29 +00:00
43 lines
1.1 KiB
C++
43 lines
1.1 KiB
C++
#include "zone.h"
|
|
|
|
void Zone::LoadFindableLocations() {
|
|
m_findable_locations = content_db.LoadFindableLocations(GetShortName(), GetInstanceVersion());
|
|
if (m_findable_locations.empty()) {
|
|
LogInfo("No findable loacations loaded");
|
|
return;
|
|
}
|
|
}
|
|
|
|
void Zone::ReloadFindableLocations() {
|
|
ClearFindableLocations();
|
|
LoadFindableLocations();
|
|
}
|
|
|
|
void Zone::ClearFindableLocations() {
|
|
m_findable_locations.clear();
|
|
}
|
|
|
|
void Zone::SendFindableLocations(Client* client) {
|
|
if (m_findable_locations.empty()) {
|
|
return;
|
|
}
|
|
|
|
size_t size = sizeof(uint32) + (m_findable_locations.size() * sizeof(FindableLocation_Struct));
|
|
auto outapp = new EQApplicationPacket(OP_SendFindableLocations, size);
|
|
|
|
outapp->WriteUInt32(m_findable_locations.size());
|
|
|
|
for (auto& location : m_findable_locations) {
|
|
outapp->WriteUInt32(location.type);
|
|
outapp->WriteSInt32(location.findable_id);
|
|
outapp->WriteSInt32(location.findable_sub_id);
|
|
outapp->WriteSInt32(location.zone_id);
|
|
outapp->WriteSInt32(location.zone_id_index);
|
|
outapp->WriteFloat(location.y);
|
|
outapp->WriteFloat(location.x);
|
|
outapp->WriteFloat(location.z);
|
|
}
|
|
|
|
client->FastQueuePacket(&outapp);
|
|
}
|