diff options
| author | ForesterDev <11771800+ForesterDev@users.noreply.github.com> | 2019-07-02 12:17:03 +0400 |
|---|---|---|
| committer | Giacomo Pozzoni <giacomopoz@gmail.com> | 2019-07-02 10:17:02 +0200 |
| commit | b47bb59e2a3e42aff3793517ef94f51678b54905 (patch) | |
| tree | e7c665f0ead33bd705e39bc64d637e378e7f56f8 /src/server/game/Entities/Unit | |
| parent | 401777d024785c58f90947cfdadd9b1b7d8fbd3b (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.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 3 |
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); } |
