Remove expedition includes from client header

Make quest compass a vec3 to remove include dependency

Quest compass location doesn't require a zone id since it can only be
set in the zone that it's drawn in. Drop the DynamicZoneLocation member
and forward declare to remove the dependency on header.

Move ExpeditionInvite struct to zone common header

Including expedition.h in client.h just to use the ExpeditionInvite struct
is an unnecessary header dependency that increases incremental build time.
This allows expedition classes to be forward declared in client header.
This commit is contained in:
hg 2020-05-30 20:33:51 -04:00
parent 9b82cf57e4
commit 4284624096
8 changed files with 25 additions and 16 deletions

View File

@ -6159,11 +6159,11 @@ void Client::MarkSingleCompassLoc(float in_x, float in_y, float in_z, uint8 coun
{
if (count == 0)
{
m_quest_compass.zone_id = 0;
m_has_quest_compass = false;
}
else
{
m_quest_compass.zone_id = zone ? zone->GetZoneID() : 0;
m_has_quest_compass = true;
m_quest_compass.x = in_x;
m_quest_compass.y = in_y;
m_quest_compass.z = in_z;
@ -9856,7 +9856,7 @@ void Client::SendDzCompassUpdate()
// todo: shared tasks, missions, and quests with an associated dz
// compass set via MarkSingleCompassLocation()
if (zone && zone->GetZoneID() == m_quest_compass.zone_id && zone->GetInstanceID() == 0)
if (m_has_quest_compass)
{
DynamicZoneCompassEntry_Struct entry;
entry.dz_zone_id = 0;

View File

@ -21,12 +21,17 @@
class Client;
class EQApplicationPacket;
class EQStream;
class DynamicZone;
class Expedition;
class ExpeditionLockoutTimer;
class ExpeditionRequest;
class Group;
class NPC;
class Object;
class Raid;
class Seperator;
class ServerPacket;
struct DynamicZoneLocation;
enum WaterRegionType : int;
namespace EQ
@ -52,8 +57,6 @@ namespace EQ
#include "aggromanager.h"
#include "common.h"
#include "expedition.h"
#include "dynamiczone.h"
#include "merc.h"
#include "mob.h"
#include "qglobals.h"
@ -1702,7 +1705,8 @@ private:
uint32 m_expedition_id = 0;
ExpeditionInvite m_pending_expedition_invite { 0 };
std::vector<ExpeditionLockoutTimer> m_expedition_lockouts;
DynamicZoneLocation m_quest_compass;
glm::vec3 m_quest_compass;
bool m_has_quest_compass = false;
#ifdef BOTS

View File

@ -786,5 +786,12 @@ struct DamageHitInfo {
EQ::skills::SkillType skill;
};
struct ExpeditionInvite
{
uint32_t expedition_id;
std::string inviter_name;
std::string swap_remove_name;
};
#endif

View File

@ -32,6 +32,7 @@
#include "../common/features.h"
#include "../common/guilds.h"
#include "dynamiczone.h"
#include "guild_mgr.h"
#include "petitions.h"
#include "quest_parser_collection.h"

View File

@ -32,6 +32,7 @@
class Client;
class EQApplicationPacket;
struct ExpeditionInvite;
class ExpeditionRequest;
class MySQLRequestResult;
class ServerPacket;
@ -54,19 +55,13 @@ struct ExpeditionMember
std::string name;
ExpeditionMemberStatus status = ExpeditionMemberStatus::Online;
ExpeditionMember() {}
ExpeditionMember(uint32_t char_id_, const std::string& name_) : char_id(char_id_), name(name_) {}
ExpeditionMember() = default;
ExpeditionMember(uint32_t char_id_, const std::string& name_)
: char_id(char_id_), name(name_) {}
ExpeditionMember(uint32_t char_id_, const std::string& name_, ExpeditionMemberStatus status_)
: char_id(char_id_), name(name_), status(status_) {}
};
struct ExpeditionInvite
{
uint32_t expedition_id;
std::string inviter_name;
std::string swap_remove_name;
};
class Expedition
{
public:

View File

@ -21,6 +21,7 @@
#ifndef EXPEDITION_REQUEST_H
#define EXPEDITION_REQUEST_H
#include "expedition.h"
#include "expedition_lockout_timer.h"
#include <cstdint>
#include <string>
@ -32,7 +33,6 @@ class Group;
class MySQLRequestResult;
class Raid;
class ServerPacket;
struct ExpeditionMember;
class ExpeditionRequest
{

View File

@ -4,6 +4,7 @@
#include <luabind/luabind.hpp>
#include "client.h"
#include "dynamiczone.h"
#include "expedition_lockout_timer.h"
#include "expedition_request.h"
#include "lua_client.h"

View File

@ -21,6 +21,7 @@
#include "../common/rulesys.h"
#include "../common/string_util.h"
#include "expedition.h"
#include "queryserv.h"
#include "quest_parser_collection.h"
#include "string_ids.h"