aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
diff options
context:
space:
mode:
authorForesterDev <11771800+ForesterDev@users.noreply.github.com>2019-07-02 12:17:03 +0400
committerGiacomo Pozzoni <giacomopoz@gmail.com>2019-07-02 10:17:02 +0200
commitb47bb59e2a3e42aff3793517ef94f51678b54905 (patch)
treee7c665f0ead33bd705e39bc64d637e378e7f56f8 /src/server/game/Entities/Unit
parent401777d024785c58f90947cfdadd9b1b7d8fbd3b (diff)
Core/Player: add helper methods GetNativeGender/SetNativeGender/SetGender (#23520)
* Core/Player: add helper methods GetNativeGender/SetNativeGender/SetGender and fix some cases, where we should get player gender, instead of modified by display gender * fix merge * Add virtual methods for Unit class
Diffstat (limited to 'src/server/game/Entities/Unit')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp6
-rw-r--r--src/server/game/Entities/Unit/Unit.h3
2 files changed, 6 insertions, 3 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index d72e65d6b31..a08269db8a5 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -10232,7 +10232,7 @@ void Unit::SetDisplayId(uint32 modelId)
SetUInt32Value(UNIT_FIELD_DISPLAYID, modelId);
// Set Gender by modelId
if (CreatureModelInfo const* minfo = sObjectMgr->GetCreatureModelInfo(modelId))
- SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, minfo->gender);
+ SetGender(minfo->gender);
}
void Unit::RestoreDisplayId()
@@ -12083,7 +12083,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form, uint32 spellId) const
{
uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID);
// Male
- if (GetGender() == GENDER_MALE)
+ if (GetNativeGender() == GENDER_MALE)
{
switch (skinColor)
{
@@ -12162,7 +12162,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form, uint32 spellId) const
{
uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID);
// Male
- if (GetGender() == GENDER_MALE)
+ if (GetNativeGender() == GENDER_MALE)
{
switch (skinColor)
{
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 0d20b9f7603..f2c25cb9827 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -855,6 +855,9 @@ class TC_GAME_API Unit : public WorldObject
uint8 GetClass() const { return GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_CLASS); }
uint32 GetClassMask() const { return 1 << (GetClass() - 1); }
uint8 GetGender() const { return GetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER); }
+ void SetGender(uint8 gender) { SetByteValue(UNIT_FIELD_BYTES_0, UNIT_BYTES_0_OFFSET_GENDER, gender); }
+ virtual uint8 GetNativeGender() const { return GetGender(); }
+ virtual void SetNativeGender(uint8 gender) { SetGender(gender); }
float GetStat(Stats stat) const { return float(GetUInt32Value(UNIT_FIELD_STAT0+stat)); }
void SetStat(Stats stat, int32 val) { SetStatInt32Value(UNIT_FIELD_STAT0+stat, val); }