79 TC_LOG_ERROR(
"entities.player",
"Corpse (guidlow {}, owner {}) not created. Suggested coordinates isn't valid (X: {} Y: {})",
110 std::ostringstream items;
111 for (
size_t index = 0; index <
m_corpseData->Items.size(); ++index)
121 stmt->setUInt16(index++,
GetMapId());
123 stmt->setString(index++, items.str());
130 stmt->setUInt8 (index++,
GetType());
139 stmt->setUInt32(index++, phase.Id);
196 std::vector<std::string_view> items =
Trinity::Tokenize(fields[6].GetStringView(),
' ',
false);
198 for (
size_t index = 0; index <
m_corpseData->Items.size(); ++index)
199 SetItem(index, Trinity::StringTo<uint32>(items[index]).value_or(0));
203 SetSex(fields[9].GetUInt8());
206 SetOwnerGUID(ObjectGuid::Create<HighGuid::Player>(fields[15].GetUInt64()));
209 m_time = time_t(fields[12].GetUInt32());
220 TC_LOG_ERROR(
"entities.player",
"Corpse ({}, owner: {}) is not created, given coordinates are not valid (X: {}, Y: {}, Z: {})",
244 std::size_t sizePos = data->
wpos();
255 std::size_t sizePos = data->
wpos();
272 if (requestedObjectMask.IsAnySet())
275 if (requestedCorpseMask.IsAnySet())
279 std::size_t sizePos = buffer.
wpos();
284 m_objectData->WriteUpdate(buffer, requestedObjectMask,
true,
this, target);
287 m_corpseData->WriteUpdate(buffer, requestedCorpseMask,
true,
this, target);
@ CHAR_DEL_CORPSE_CUSTOMIZATIONS
@ CHAR_INS_CORPSE_CUSTOMIZATIONS
DB2Storage< ChrRacesEntry > sChrRacesStore("ChrRaces.db2", &ChrRacesLoadInfo::Instance)
SQLTransaction< CharacterDatabaseConnection > CharacterDatabaseTransaction
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
#define TC_LOG_ERROR(filterType__,...)
void put(std::size_t pos, T value)
bool IsExpired(time_t t) const
void ReplaceAllFlags(uint32 flags)
void SetClass(uint8 playerClass)
Corpse(CorpseType type=CORPSE_BONES)
void ClearUpdateMask(bool remove) override
void SetDisplayId(uint32 displayId)
void SetFactionTemplate(int32 factionTemplate)
void RemoveFromWorld() override
void SetOwnerGUID(ObjectGuid owner)
void BuildValuesCreate(ByteBuffer *data, Player const *target) const override
UF::UpdateField< UF::CorpseData, 0, TYPEID_CORPSE > m_corpseData
void Update(uint32 diff) override
std::unique_ptr< Loot > m_loot
void AddToWorld() override
void ReplaceAllCorpseDynamicFlags(CorpseDynFlags dynamicFlags)
ObjectGuid GetOwnerGUID() const override
bool LoadCorpseFromDB(ObjectGuid::LowType guid, Field *fields)
bool Create(ObjectGuid::LowType guidlow, Map *map)
void BuildValuesUpdate(ByteBuffer *data, Player const *target) const override
CorpseType GetType() const
void DeleteFromDB(CharacterDatabaseTransaction trans)
void SetItem(uint32 slot, uint32 item)
void BuildValuesUpdateForPlayerWithMask(UpdateData *data, UF::ObjectData::Mask const &requestedObjectMask, UF::CorpseData::Mask const &requestedCorpseMask, Player const *target) const
Class used to access individual fields of database query result.
MapStoredObjectTypesContainer & GetObjectsStore()
LowType GetCounter() const
ObjectGuid const & GetGUID() const
UF::UpdateField< UF::ObjectData, 0, TYPEID_OBJECT > m_objectData
CreateObjectBits m_updateFlag
virtual void ClearUpdateMask(bool remove)
UF::UpdateFieldHolder m_values
void _Create(ObjectGuid const &guid)
ByteBuffer & PrepareValuesUpdateBuffer(UpdateData *data) const
virtual void AddToWorld()
static ObjectGuid GetGUID(Object const *o)
virtual void SetObjectScale(float scale)
virtual UF::UpdateFieldFlag GetUpdateFieldFlagsFor(Player const *target) const
static void InheritPhaseShift(WorldObject *target, WorldObject const *source)
void SendDirectMessage(WorldPacket const *data) const
void setUInt64(const uint8 index, const uint64 value)
bool Remove(KEY_TYPE const &handle)
bool Insert(KEY_TYPE const &handle, SPECIFIC_TYPE *obj)
Mask const & GetChangesMask() const
void ClearChangesMask(UpdateField< T, BlockBit, Bit >(Derived::*field))
bool HasChanged(uint32 index) const
uint32 GetChangedObjectTypeMask() const
bool BuildPacket(WorldPacket *packet)
uint32 GetBlock(uint32 index) const
constexpr uint32 GetMapId() const
void RemoveFromWorld() override
void SetLocationInstanceId(uint32 _instanceId)
PhaseShift & GetPhaseShift()
void SetLocationMapId(uint32 _mapId)
uint32 GetInstanceId() const
std::string const & GetName() const
virtual void Update(uint32 diff)
TC_COMMON_API std::vector< std::string_view > Tokenize(std::string_view str, char sep, bool keepEmpty)
CellCoord ComputeCellCoord(float x, float y)
UF::ObjectData::Base ObjectMask
void operator()(Player const *player) const
UF::CorpseData::Base CorpseMask
constexpr float GetPositionX() const
constexpr float GetPositionY() const
std::string ToString() const
bool IsPositionValid() const
constexpr void Relocate(float x, float y)
constexpr float GetOrientation() const
constexpr float GetPositionZ() const
uint32 ChrCustomizationChoiceID
uint32 ChrCustomizationOptionID