diff options
| author | HelloKitty <andrew.blakely@ymail.com> | 2020-05-15 13:41:16 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-15 20:41:16 +0200 |
| commit | 43b595111dce03258c29fd926201660b9d3acb8d (patch) | |
| tree | d47f71e018ea1ba6c3a1d34580d52ef695672388 /src/server/game/Entities/Unit | |
| parent | 1d43003cfa29cee2c7921fdeaa5c1714d085c770 (diff) | |
Further improve ChrRace DBC handling (#24508)
* Core/DBC: Added ChrRacesAllianceType for ChrRaces.dbc
* Core/Character: Check ChrRace DBC playable in HandleCharCreateOpcode
* Core/DBC: Implement ChrRacesFlags removing literals
Cannot take credit for this enum, derived from documentation in
https://wowdev.wiki/DB/ChrRaces
* Core/Character: Check CHRRACES_FLAGS_NOT_PLAYABLE on creation
* Core/DBC: Fix formatting of ChrRaces enums
* Core/DBC: Use ChrRaces CreatureType instead of hardcoded humanoid assumption
* Address enum style code changes
Diffstat (limited to 'src/server/game/Entities/Unit')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 31ca50eb70b..0001af2fc13 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8842,7 +8842,10 @@ uint32 Unit::GetCreatureType() const if (ssEntry && ssEntry->creatureType > 0) return ssEntry->creatureType; else - return CREATURE_TYPE_HUMANOID; + { + ChrRacesEntry const* raceEntry = sChrRacesStore.AssertEntry(GetRace()); + return raceEntry->CreatureType; + } } else return ToCreature()->GetCreatureTemplate()->type; @@ -8896,7 +8899,7 @@ bool Unit::IsInDisallowedMountForm() const ChrRacesEntry const* race = sChrRacesStore.LookupEntry(displayExtra->Race); if (model && !(model->HasFlag(CREATURE_MODEL_DATA_FLAGS_CAN_MOUNT))) - if (race && !(race->Flags & 0x4)) + if (race && !(race->HasFlag(CHRRACES_FLAGS_CAN_MOUNT))) return true; return false; |
