mirror of
https://github.com/azerothcore/azerothcore-wotlk.git
synced 2025-11-10 20:34:53 +08:00
Apply logical suggestions
This commit is contained in:
parent
7b3546753c
commit
2a77ab785c
@ -3037,9 +3037,7 @@ float WorldObject::GetMapHeightAccurate(float x, float y, float z, bool vmap/* =
|
||||
radius = 0.3f;
|
||||
}
|
||||
|
||||
float rScale = 1.0f;
|
||||
if (sWorld)
|
||||
rScale = std::max(0.1f, sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_RADIUS_SCALE));
|
||||
float rScale = sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_RADIUS_SCALE);
|
||||
radius *= rScale;
|
||||
|
||||
float yaw = GetOrientation();
|
||||
|
||||
@ -742,9 +742,7 @@ float GridTerrainData::GetHeightAccurate(float x, float y, float radius, GroundF
|
||||
|
||||
if (shape == GroundFootprintShape::Square)
|
||||
{
|
||||
float blend = 0.0f;
|
||||
if (sWorld)
|
||||
blend = std::clamp(sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_SQUARE_BLEND), 0.0f, 1.0f);
|
||||
float blend = sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_SQUARE_BLEND);
|
||||
float c = std::cos(yaw), s = std::sin(yaw);
|
||||
float rx = n.x * c + n.y * s;
|
||||
float ry = -n.x * s + n.y * c;
|
||||
|
||||
@ -1233,9 +1233,7 @@ float Map::GetGridHeightAccurate(float x, float y, float radius, float yaw) cons
|
||||
{
|
||||
if (GridTerrainData* gmap = const_cast<Map*>(this)->GetGridTerrainData(x, y))
|
||||
{
|
||||
GridTerrainData::GroundFootprintShape shape = GridTerrainData::GroundFootprintShape::Circle;
|
||||
if (sWorld && sWorld->getIntConfig(CONFIG_HEIGHT_ACCURATE_SHAPE) == 1)
|
||||
shape = GridTerrainData::GroundFootprintShape::Square;
|
||||
GridTerrainData::GroundFootprintShape shape = (GroundFootprintShapes)World->getIntConfig(CONFIG_HEIGHT_ACCURATE_SHAPE);
|
||||
return gmap->GetHeightAccurate(x, y, radius, shape, yaw);
|
||||
}
|
||||
|
||||
|
||||
@ -282,13 +282,9 @@ void WorldConfig::BuildConfigCache()
|
||||
SetConfigValue<bool>(CONFIG_GM_LOWER_SECURITY, "GM.LowerSecurity", false);
|
||||
SetConfigValue<float>(CONFIG_CHANCE_OF_GM_SURVEY, "GM.TicketSystem.ChanceOfGMSurvey", 50.0f);
|
||||
|
||||
SetConfigValue<uint32>(CONFIG_HEIGHT_ACCURATE_SHAPE, "Height.Accurate.Shape", 0);
|
||||
float rawSc = sConfigMgr->GetOption<float>("Height.Accurate.RadiusScale", 1.0f);
|
||||
float clampedSc = std::clamp(rawSc, 0.05f, 4.0f);
|
||||
SetConfigValue<float>(CONFIG_HEIGHT_ACCURATE_RADIUS_SCALE, "Height.Accurate.RadiusScale", clampedSc);
|
||||
float rawSq = sConfigMgr->GetOption<float>("Height.Accurate.SquareBlend", 0.20f);
|
||||
float clampedSq = std::clamp(rawSq, 0.0f, 1.0f);
|
||||
SetConfigValue<float>(CONFIG_HEIGHT_ACCURATE_SQUARE_BLEND, "Height.Accurate.SquareBlend", clampedSq);
|
||||
SetConfigValue<uint32>(CONFIG_HEIGHT_ACCURATE_SHAPE, "Height.Accurate.Shape", 0, ConfigValueCache::Reloadable::Yes, [](uint32 const& value) { return value <= 1; }, "<= 1");
|
||||
SetConfigValue<float>(CONFIG_HEIGHT_ACCURATE_RADIUS_SCALE, "Height.Accurate.RadiusScale", 1.0f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.1f && value <= 4.0f; }, ">= 0.1 and <= 4.0");
|
||||
SetConfigValue<float>(CONFIG_HEIGHT_ACCURATE_SQUARE_BLEND, "Height.Accurate.SquareBlend", 0.20f, ConfigValueCache::Reloadable::Yes, [](float const& value) { return value >= 0.0f && value <= 1.0f; }, ">= 0.0 and <= 1.0");
|
||||
|
||||
SetConfigValue<uint32>(CONFIG_GROUP_VISIBILITY, "Visibility.GroupMode", 1);
|
||||
|
||||
|
||||
@ -630,20 +630,14 @@ public:
|
||||
float groundZ = object->GetMapHeight(object->GetPositionX(), object->GetPositionY(), MAX_HEIGHT);
|
||||
float floorZ = object->GetMapHeight(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ());
|
||||
float probeR = object->GetGroundProbeRadius();
|
||||
float rScale = 1.0f;
|
||||
float blend = 0.0f;
|
||||
if (sWorld)
|
||||
{
|
||||
rScale = sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_RADIUS_SCALE);
|
||||
blend = sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_SQUARE_BLEND);
|
||||
}
|
||||
|
||||
float rScale = sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_RADIUS_SCALE);
|
||||
float blend = sWorld->getFloatConfig(CONFIG_HEIGHT_ACCURATE_SQUARE_BLEND);
|
||||
float yaw = object->GetOrientation();
|
||||
float probeRScaled = probeR * rScale;
|
||||
float GridZAccurate = map->GetGridHeightAccurate(object->GetPositionX(), object->GetPositionY(), probeRScaled, yaw);
|
||||
float MapZAccurate = object->GetMapHeightAccurate(object->GetPositionX(), object->GetPositionY(), object->GetPositionZ(), /*vmap=*/true, DEFAULT_HEIGHT_SEARCH, probeR);
|
||||
const char* shapeStr = "circle";
|
||||
if (sWorld && sWorld->getIntConfig(CONFIG_HEIGHT_ACCURATE_SHAPE) == 1)
|
||||
if (sWorld->getIntConfig(CONFIG_HEIGHT_ACCURATE_SHAPE) == 1)
|
||||
shapeStr = "square";
|
||||
|
||||
uint32 haveMap = GridTerrainLoader::ExistMap(object->GetMapId(), cell.GridX(), cell.GridY()) ? 1 : 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user