diff options
author | Shauren <shauren.trinity@gmail.com> | 2023-10-31 20:20:00 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2023-10-31 20:20:00 +0100 |
commit | 9894f6b802c974bb36acd7fbb0d083455a1f0f1b (patch) | |
tree | 458f167a846d70d4b2391c805423d9342b36f89a /src/server/scripts | |
parent | a0fdac0ecc119b4ba85d41f86891b3cd35f7acde (diff) |
Core/Random: Changed random functions returning doubles to return floats
* They were all cast to float at use anyway
* Improves roll_chance_f performance (rand32() is now called internally by uniform_real_distribution once instead of twice)
Diffstat (limited to 'src/server/scripts')
9 files changed, 19 insertions, 19 deletions
diff --git a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp index d5e0e4f31d5..145f5acce61 100644 --- a/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp +++ b/src/server/scripts/EasternKingdoms/ZulGurub/boss_mandokir.cpp @@ -530,7 +530,7 @@ class spell_mandokir_devastating_slam : public SpellScript // HACK: Need better way for pos calculation for (uint8 i = 0; i <= 50; ++i) { - angle = float(rand_norm()) * static_cast<float>(M_PI * 35.0f / 180.0f) - static_cast<float>(M_PI * 17.5f / 180.0f); + angle = rand_norm() * static_cast<float>(M_PI * 35.0f / 180.0f) - static_cast<float>(M_PI * 17.5f / 180.0f); caster->GetClosePoint(x, y, z, 4.0f, frand(-2.5f, 50.0f), angle); caster->CastSpell(Position{ x, y, z }, SPELL_DEVASTATING_SLAM_DAMAGE, true); diff --git a/src/server/scripts/Events/midsummer.cpp b/src/server/scripts/Events/midsummer.cpp index c6e638e0b22..29cac39c3dc 100644 --- a/src/server/scripts/Events/midsummer.cpp +++ b/src/server/scripts/Events/midsummer.cpp @@ -307,7 +307,7 @@ class spell_midsummer_fling_torch : public SpellScript void HandleDummy(SpellEffIndex /*effIndex*/) { - Position dest = GetCaster()->GetFirstCollisionPosition(30.0f, (float)rand_norm() * static_cast<float>(2 * M_PI)); + Position dest = GetCaster()->GetFirstCollisionPosition(30.0f, rand_norm() * static_cast<float>(2 * M_PI)); GetCaster()->CastSpell(dest, SPELL_FLING_TORCH_TRIGGERED, true); GetCaster()->CastSpell(dest, SPELL_FLING_TORCH_SHADOW); } @@ -391,7 +391,7 @@ class spell_midsummer_fling_torch_catch : public SpellScript } else { - Position dest = player->GetFirstCollisionPosition(15.0f, (float)rand_norm() * static_cast<float>(2 * M_PI)); + Position dest = player->GetFirstCollisionPosition(15.0f, rand_norm() * static_cast<float>(2 * M_PI)); player->CastSpell(player, SPELL_TORCHES_CAUGHT); player->CastSpell(dest, SPELL_FLING_TORCH_TRIGGERED, true); player->CastSpell(dest, SPELL_FLING_TORCH_SHADOW); diff --git a/src/server/scripts/Events/zalazane_fall.cpp b/src/server/scripts/Events/zalazane_fall.cpp index f655b7db555..8526025716e 100644 --- a/src/server/scripts/Events/zalazane_fall.cpp +++ b/src/server/scripts/Events/zalazane_fall.cpp @@ -287,7 +287,7 @@ struct npc_troll_volunteer : public ScriptedAI } me->SetDisplayId(trollmodel[urand(0, 39)]); if (Player* player = me->GetOwner()->ToPlayer()) - me->GetMotionMaster()->MoveFollow(player, 5.0f, float(rand_norm() + 1.0f) * float(M_PI) / 3.0f * 4.0f); + me->GetMotionMaster()->MoveFollow(player, 5.0f, (rand_norm() + 1.0f) * float(M_PI) / 3.0f * 4.0f); } void Reset() override diff --git a/src/server/scripts/ExilesReach/zone_exiles_reach.cpp b/src/server/scripts/ExilesReach/zone_exiles_reach.cpp index 5a73e74bb1b..1c56bbe29b5 100644 --- a/src/server/scripts/ExilesReach/zone_exiles_reach.cpp +++ b/src/server/scripts/ExilesReach/zone_exiles_reach.cpp @@ -359,7 +359,7 @@ struct npc_sparring_partner_exiles_reach : public ScriptedAI { case POSITION_SPARPOINT_ADVERTISMENT: me->SetWalk(true); - me->GetMotionMaster()->MovePoint(POSITION_SPARPOINT_READY, me->GetFirstCollisionPosition(2.0f, (float)rand_norm() * static_cast<float>(2 * M_PI))); + me->GetMotionMaster()->MovePoint(POSITION_SPARPOINT_READY, me->GetFirstCollisionPosition(2.0f, rand_norm() * static_cast<float>(2 * M_PI))); break; case POSITION_SPARPOINT_READY: if (Player* player = ObjectAccessor::GetPlayer(*me, _playerGUID)) diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp index 87a89e0d80c..15fecf2e221 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp @@ -405,8 +405,8 @@ class instance_culling_of_stratholme : public InstanceMapScript if (player->GetGUID() == guid || !player->IsGameMaster()) { player->CombatStop(true); - const float offsetDist = 10; - float myAngle = rand_norm() * 2.0 * M_PI; + constexpr float offsetDist = 10.0f; + float myAngle = rand_norm() * static_cast<float>(2.0f * M_PI); Position myTarget(target.GetPositionX() + std::sin(myAngle) * offsetDist, target.GetPositionY() + std::sin(myAngle) * offsetDist, target.GetPositionZ(), myAngle + M_PI); player->NearTeleportTo(myTarget); } diff --git a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp index f5da2934c7d..86e2c5ebe49 100644 --- a/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp +++ b/src/server/scripts/Kalimdor/HallsOfOrigination/boss_anraphet.cpp @@ -538,8 +538,8 @@ public: // Do our own calculations for the destination position. /// TODO: Remove this once we find a general rule for WorldObject::MovePosition (this spell shouldn't take the Z change into consideration) Unit* caster = GetCaster(); - float angle = float(rand_norm()) * static_cast<float>(2 * M_PI); - uint32 dist = caster->GetCombatReach() + GetSpellInfo()->GetEffect(EFFECT_0).CalcRadius(caster, SpellTargetIndex::TargetB) * (float)rand_norm(); + float angle = rand_norm() * static_cast<float>(2 * M_PI); + uint32 dist = caster->GetCombatReach() + GetSpellInfo()->GetEffect(EFFECT_0).CalcRadius(caster, SpellTargetIndex::TargetB) * rand_norm(); float x = caster->GetPositionX() + dist * std::cos(angle); float y = caster->GetPositionY() + dist * std::sin(angle); diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp index d6ab270a5fc..86c9ee09c49 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp @@ -522,8 +522,8 @@ struct boss_sindragosa : public BossAI case EVENT_FROST_BOMB: { float destX, destY, destZ; - destX = float(rand_norm()) * 75.0f + 4350.0f; - destY = float(rand_norm()) * 75.0f + 2450.0f; + destX = rand_norm() * 75.0f + 4350.0f; + destY = rand_norm() * 75.0f + 2450.0f; destZ = 205.0f; // random number close to ground, get exact in next call me->UpdateGroundPositionZ(destX, destY, destZ); me->CastSpell(Position{ destX, destY, destZ }, SPELL_FROST_BOMB_TRIGGER, false); @@ -1025,13 +1025,13 @@ class spell_sindragosa_s_fury : public SpellScript void SelectDest() { - if (Position* dest = const_cast<WorldLocation*>(GetExplTargetDest())) + if (WorldLocation const* dest = GetExplTargetDest()) { - float destX = float(rand_norm()) * 75.0f + 4350.0f; - float destY = float(rand_norm()) * 75.0f + 2450.0f; + float destX = rand_norm() * 75.0f + 4350.0f; + float destY = rand_norm() * 75.0f + 2450.0f; float destZ = 205.0f; // random number close to ground, get exact in next call GetCaster()->UpdateGroundPositionZ(destX, destY, destZ); - dest->Relocate(destX, destY, destZ); + SetExplTargetDest(WorldLocation(dest->GetMapId(), destX, destY, destZ)); } } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp index 1a30c3c5bee..ba5dcb80c28 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_the_lich_king.cpp @@ -1642,7 +1642,7 @@ struct npc_strangulate_vehicle : public ScriptedAI { if (me->GetExactDist(lichKing) > 10.0f) { - Position pos = lichKing->GetNearPosition(float(rand_norm()) * 5.0f + 7.5f, lichKing->GetAbsoluteAngle(me)); + Position pos = lichKing->GetNearPosition(rand_norm() * 5.0f + 7.5f, lichKing->GetAbsoluteAngle(me)); me->GetMotionMaster()->MovePoint(0, pos); } } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 72e07397e3e..85572114efc 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -159,11 +159,11 @@ static inline Position const& GetRandomMinionSpawnPoint() // uniformly distribute on the circle static Position GetRandomPositionOnCircle(Position const& center, float radius) { - double angle = rand_norm() * 2.0 * M_PI; - double relDistance = rand_norm() + rand_norm(); + float angle = float(M_PI * rand_norm() * 2.0); + float relDistance = rand_norm() + rand_norm(); if (relDistance > 1) relDistance = 1 - relDistance; - return Position(center.GetPositionX() + std::sin(angle)*relDistance*radius, center.GetPositionY() + std::cos(angle)*relDistance*radius, center.GetPositionZ()); + return Position(center.GetPositionX() + std::sin(angle) * relDistance * radius, center.GetPositionY() + std::cos(angle) * relDistance * radius, center.GetPositionZ()); } class KelThuzadCharmedPlayerAI : public SimpleCharmedPlayerAI |