mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 11:48:37 +00:00
Split task classes into their own cpp/h files to speed up incremental compilation and make things easier to maintain
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
#include "../common/global_define.h"
|
||||
#include "../common/repositories/proximities_repository.h"
|
||||
#include "../common/rulesys.h"
|
||||
#include "client.h"
|
||||
#include "mob.h"
|
||||
#include "quest_parser_collection.h"
|
||||
#include "task_proximity_manager.h"
|
||||
#include "tasks.h"
|
||||
#include "zonedb.h"
|
||||
|
||||
TaskProximityManager::TaskProximityManager()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
TaskProximityManager::~TaskProximityManager()
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
|
||||
bool TaskProximityManager::LoadProximities(int zone_id)
|
||||
{
|
||||
TaskProximity proximity{};
|
||||
task_proximities.clear();
|
||||
|
||||
auto proximities = ProximitiesRepository::GetWhere(
|
||||
content_db,
|
||||
fmt::format("zoneid = {} ORDER BY `zoneid` ASC", zone_id)
|
||||
);
|
||||
|
||||
for (auto &row: proximities) {
|
||||
proximity.explore_id = row.exploreid;
|
||||
proximity.min_x = row.minx;
|
||||
proximity.max_x = row.maxx;
|
||||
proximity.min_y = row.miny;
|
||||
proximity.max_y = row.maxy;
|
||||
proximity.min_z = row.minz;
|
||||
proximity.max_z = row.maxz;
|
||||
|
||||
task_proximities.push_back(proximity);
|
||||
}
|
||||
|
||||
LogTasks("Loaded [{}] Task Proximities", proximities.size());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
int TaskProximityManager::CheckProximities(float x, float y, float z)
|
||||
{
|
||||
for (auto &task_proximity : task_proximities) {
|
||||
|
||||
TaskProximity *p_proximity = &task_proximity;
|
||||
|
||||
Log(
|
||||
Logs::General,
|
||||
Logs::Tasks,
|
||||
"[Proximity] Checking %8.3f, %8.3f, %8.3f against %8.3f, %8.3f, %8.3f, %8.3f, %8.3f, %8.3f",
|
||||
x,
|
||||
y,
|
||||
z,
|
||||
p_proximity->min_x,
|
||||
p_proximity->max_x,
|
||||
p_proximity->min_y,
|
||||
p_proximity->max_y,
|
||||
p_proximity->min_z,
|
||||
p_proximity->max_z
|
||||
);
|
||||
|
||||
if (x < p_proximity->min_x || x > p_proximity->max_x || y < p_proximity->min_y || y > p_proximity->max_y ||
|
||||
z < p_proximity->min_z || z > p_proximity->max_z) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return p_proximity->explore_id;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user