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

View File

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

View File

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

View File

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

View File

@ -32,6 +32,7 @@
class Client; class Client;
class EQApplicationPacket; class EQApplicationPacket;
struct ExpeditionInvite;
class ExpeditionRequest; class ExpeditionRequest;
class MySQLRequestResult; class MySQLRequestResult;
class ServerPacket; class ServerPacket;
@ -54,19 +55,13 @@ struct ExpeditionMember
std::string name; std::string name;
ExpeditionMemberStatus status = ExpeditionMemberStatus::Online; ExpeditionMemberStatus status = ExpeditionMemberStatus::Online;
ExpeditionMember() {} 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_)
: char_id(char_id_), name(name_) {}
ExpeditionMember(uint32_t char_id_, const std::string& name_, ExpeditionMemberStatus status_) ExpeditionMember(uint32_t char_id_, const std::string& name_, ExpeditionMemberStatus status_)
: char_id(char_id_), name(name_), status(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 class Expedition
{ {
public: public:

View File

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

View File

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

View File

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