chore(Core/MIsc): added few helpers for chat commands (#6175)

This commit is contained in:
Kargatum
2021-06-04 05:17:18 +07:00
committed by GitHub
parent 62ae4b53e6
commit 3f875674d5
3 changed files with 20 additions and 11 deletions

View File

@@ -640,15 +640,11 @@ struct MovementInfo
class WorldLocation : public Position class WorldLocation : public Position
{ {
public: public:
explicit WorldLocation(uint32 _mapid = MAPID_INVALID, float _x = 0, float _y = 0, float _z = 0, float _o = 0) explicit WorldLocation(uint32 _mapId = MAPID_INVALID, float x = 0.f, float y = 0.f, float z = 0.f, float o = 0.f)
: m_mapId(_mapid) { Relocate(_x, _y, _z, _o); } : Position(x, y, z, o), m_mapId(_mapId) { }
WorldLocation(const WorldLocation& loc) : Position () { WorldRelocate(loc); }
/* requried as of C++ 11 */ WorldLocation(uint32 mapId, Position const& position)
#if __cplusplus >= 201103L : Position(position), m_mapId(mapId) { }
WorldLocation(WorldLocation&&) = default;
WorldLocation& operator=(const WorldLocation&) = default;
WorldLocation& operator=(WorldLocation&&) = default;
#endif
void WorldRelocate(const WorldLocation& loc) void WorldRelocate(const WorldLocation& loc)
{ {

View File

@@ -1347,6 +1347,8 @@ public:
void LoadFactionChangeSpells(); void LoadFactionChangeSpells();
void LoadFactionChangeTitles(); void LoadFactionChangeTitles();
[[nodiscard]] bool IsTransportMap(uint32 mapId) const { return _transportMaps.count(mapId) != 0; }
private: private:
// first free id for selected id type // first free id for selected id type
uint32 _auctionId; // pussywizard: accessed by a single thread uint32 _auctionId; // pussywizard: accessed by a single thread

View File

@@ -37,16 +37,22 @@ public:
return (iter == i_maps.end() ? nullptr : iter->second); return (iter == i_maps.end() ? nullptr : iter->second);
} }
uint32 GetAreaId(uint32 mapid, float x, float y, float z) const [[nodiscard]] uint32 GetAreaId(uint32 mapid, float x, float y, float z) const
{ {
Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid); Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid);
return m->GetAreaId(x, y, z); return m->GetAreaId(x, y, z);
} }
uint32 GetZoneId(uint32 mapid, float x, float y, float z) const [[nodiscard]] uint32 GetAreaId(uint32 mapid, Position const& pos) const { return GetAreaId(mapid, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ()); }
[[nodiscard]] uint32 GetAreaId(WorldLocation const& loc) const { return GetAreaId(loc.GetMapId(), loc); }
[[nodiscard]] uint32 GetZoneId(uint32 mapid, float x, float y, float z) const
{ {
Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid); Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid);
return m->GetZoneId(x, y, z); return m->GetZoneId(x, y, z);
} }
[[nodiscard]] uint32 GetZoneId(uint32 mapid, Position const& pos) const { return GetZoneId(mapid, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ()); }
[[nodiscard]] uint32 GetZoneId(WorldLocation const& loc) const { return GetZoneId(loc.GetMapId(), loc); }
void GetZoneAndAreaId(uint32& zoneid, uint32& areaid, uint32 mapid, float x, float y, float z) void GetZoneAndAreaId(uint32& zoneid, uint32& areaid, uint32 mapid, float x, float y, float z)
{ {
Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid); Map const* m = const_cast<MapManager*>(this)->CreateBaseMap(mapid);
@@ -71,6 +77,11 @@ public:
static bool ExistMapAndVMap(uint32 mapid, float x, float y); static bool ExistMapAndVMap(uint32 mapid, float x, float y);
static bool IsValidMAP(uint32 mapid, bool startUp); static bool IsValidMAP(uint32 mapid, bool startUp);
static bool IsValidMapCoord(uint32 mapid, Position const& pos)
{
return IsValidMapCoord(mapid, pos.GetPositionX(), pos.GetPositionY(), pos.GetPositionZ(), pos.GetOrientation());
}
static bool IsValidMapCoord(uint32 mapid, float x, float y) static bool IsValidMapCoord(uint32 mapid, float x, float y)
{ {
return IsValidMAP(mapid, false) && Acore::IsValidMapCoord(x, y); return IsValidMAP(mapid, false) && Acore::IsValidMapCoord(x, y);