Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Unit::UpdateModelData()
- {
- float boundingRadius, combatReach;
- if (CreatureModelInfo const* modelInfo = sObjectMgr.GetCreatureModelInfo(GetDisplayId()))
- {
- if (GetTypeId() == TYPEID_PLAYER)
- {
- // Bounding radius and combat reach is normally modified by scale, but player is always 1.0 scale by default so no need to modify values here.
- boundingRadius = modelInfo->bounding_radius;
- combatReach = modelInfo->combat_reach;
- }
- else
- {
- // We expect values in database to be relative to scale = 1.0
- float scaled_radius = GetObjectScale() * modelInfo->bounding_radius;
- boundingRadius = modelInfo->combat_reach;
- combatReach = GetObjectScale() * (modelInfo->bounding_radius < 2.0 ? modelInfo->combat_reach : modelInfo->combat_reach / modelInfo->bounding_radius);
- }
- }
- SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, boundingRadius);
- SetFloatValue(UNIT_FIELD_COMBATREACH, combatReach);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement