diff --git a/TombEngine/Game/control/control.cpp b/TombEngine/Game/control/control.cpp index 60199e119..7e2186f52 100644 --- a/TombEngine/Game/control/control.cpp +++ b/TombEngine/Game/control/control.cpp @@ -1,6 +1,7 @@ #include "framework.h" #include "Game/control/control.h" +#include #include #include "Game/camera.h" @@ -51,14 +52,14 @@ #include "Specific/level.h" #include "Specific/setup.h" #include "Specific/winmain.h" -#include +using namespace std::chrono; using namespace TEN::Effects; using namespace TEN::Effects::Drip; +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Environment; using namespace TEN::Effects::Explosion; using namespace TEN::Effects::Footprints; -using namespace TEN::Effects::Lightning; using namespace TEN::Effects::Smoke; using namespace TEN::Effects::Spark; using namespace TEN::Entities::Generic; @@ -68,11 +69,6 @@ using namespace TEN::Floordata; using namespace TEN::Input; using namespace TEN::Math; using namespace TEN::Renderer; -using namespace std::chrono; - -using std::string; -using std::unordered_map; -using std::vector; int GameTimer = 0; int GlobalCounter = 0; diff --git a/TombEngine/Game/effects/lightning.cpp b/TombEngine/Game/effects/lightning.cpp index 183afd2ed..5a0168090 100644 --- a/TombEngine/Game/effects/lightning.cpp +++ b/TombEngine/Game/effects/lightning.cpp @@ -8,7 +8,7 @@ using namespace TEN::Math; -namespace TEN::Effects::Lightning +namespace TEN::Effects::ElectricArc { std::vector ElectricArcs = {}; std::vector HelicalLasers = {}; @@ -92,6 +92,10 @@ namespace TEN::Effects::Lightning void SpawnHelicalLaser(const Vector3& origin, const Vector3& target) { static constexpr auto SEGMENTS_NUM_MAX = 56; + static constexpr auto COLOR = Vector4(0.0f, 1.0f, 0.375f, 1.0f); + static constexpr auto LIFE_MAX = 17.0f; + static constexpr auto LENGTH_END = BLOCK(4); + static constexpr auto FADE_IN = 8.0f; static constexpr auto FLAGS = LI_THININ | LI_THINOUT; auto laser = HelicalLaser(); @@ -101,12 +105,12 @@ namespace TEN::Effects::Lightning laser.Target = target; laser.Orientation2D = Random::GenerateAngle(); laser.LightPosition = origin; - laser.Color = Vector4(0.0f, 1.0f, 0.375f, 1.0f); // TODO: Check start opacity. - laser.Life = 17.0f; + laser.Color = COLOR; + laser.Life = LIFE_MAX; laser.Scale = 0.0f; laser.Length = 0.0f; - laser.LengthEnd = BLOCK(4); - laser.FadeIn = 8.0f; + laser.LengthEnd = LENGTH_END; + laser.FadeIn = FADE_IN; laser.Rotation = 0.0f; laser.r = 0; @@ -119,7 +123,7 @@ namespace TEN::Effects::Lightning auto target2 = Vector3i(target); TriggerLightning(&origin2, &target2, 1, 0, laser.g, laser.b, 20, FLAGS, 19, 5); - TriggerLightning(&origin2, &target2, 1, 110, 255, 250, 20, flags, 4, 5); + TriggerLightning(&origin2, &target2, 1, 110, 255, 250, 20, FLAGS, 4, 5); TriggerLightningGlow( laser.LightPosition.x, laser.LightPosition.y, laser.LightPosition.z, Random::GenerateInt(64, 68) << 24, 0, laser.g / 2, laser.b / 2); // TODO: What's up with red?? @@ -284,13 +288,15 @@ namespace TEN::Effects::Lightning // using passed alpha value. numKnots is always 6. Vector3 ElectricArcSpline(int alpha, const Vector3* knots, int numKnots) { + static const auto POW_2_TO_16 = pow(2, 16); + alpha *= numKnots - 3; - int span = alpha / pow(2, 16); + int span = alpha / POW_2_TO_16; if (span >= (numKnots - 3)) span = numKnots - 4; - float alphaNorm = (alpha - (65536 * span)) / pow(2, 16); + float alphaNorm = (alpha - (65536 * span)) / POW_2_TO_16; auto* knotPtr = &knots[span]; diff --git a/TombEngine/Game/effects/lightning.h b/TombEngine/Game/effects/lightning.h index d6f15b5a4..c0d8e0905 100644 --- a/TombEngine/Game/effects/lightning.h +++ b/TombEngine/Game/effects/lightning.h @@ -4,7 +4,7 @@ #include "Math/Math.h" -namespace TEN::Effects::Lightning +namespace TEN::Effects::ElectricArc { enum ElectricArcFlags { diff --git a/TombEngine/Objects/Effects/flame_emitters.cpp b/TombEngine/Objects/Effects/flame_emitters.cpp index b2d1a4369..2ec14bca6 100644 --- a/TombEngine/Objects/Effects/flame_emitters.cpp +++ b/TombEngine/Objects/Effects/flame_emitters.cpp @@ -20,10 +20,10 @@ #include "Specific/level.h" #include "Specific/setup.h" -using namespace TEN::Input; -using namespace TEN::Effects::Items; -using namespace TEN::Effects::Lightning; +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Environment; +using namespace TEN::Effects::Items; +using namespace TEN::Input; namespace TEN::Entities::Effects { diff --git a/TombEngine/Objects/TR3/Entity/PunaBoss.cpp b/TombEngine/Objects/TR3/Entity/PunaBoss.cpp index 166b2eb9d..1769304a8 100644 --- a/TombEngine/Objects/TR3/Entity/PunaBoss.cpp +++ b/TombEngine/Objects/TR3/Entity/PunaBoss.cpp @@ -14,8 +14,8 @@ #include "Specific/setup.h" using namespace TEN::Effects::Boss; +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Items; -using namespace TEN::Effects::Lightning; namespace TEN::Entities::Creatures::TR3 { diff --git a/TombEngine/Objects/TR4/Object/tr4_obelisk.cpp b/TombEngine/Objects/TR4/Object/tr4_obelisk.cpp index 98a5a5d97..f44eae69c 100644 --- a/TombEngine/Objects/TR4/Object/tr4_obelisk.cpp +++ b/TombEngine/Objects/TR4/Object/tr4_obelisk.cpp @@ -12,8 +12,8 @@ #include "Game/effects/lightning.h" #include "Game/effects/debris.h" +using namespace TEN::Effects::ElectricArc; using namespace TEN::Input; -using namespace TEN::Effects::Lightning; void InitialiseObelisk(short itemNumber) { diff --git a/TombEngine/Objects/TR5/Entity/HeavyGuard.cpp b/TombEngine/Objects/TR5/Entity/HeavyGuard.cpp index ccac2ff14..95eb125ac 100644 --- a/TombEngine/Objects/TR5/Entity/HeavyGuard.cpp +++ b/TombEngine/Objects/TR5/Entity/HeavyGuard.cpp @@ -25,8 +25,8 @@ #include "Specific/level.h" #include "Specific/setup.h" +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Items; -using namespace TEN::Effects::Lightning; using namespace TEN::Effects::Spark; namespace TEN::Entities::Creatures::TR5 diff --git a/TombEngine/Objects/TR5/Entity/tr5_cyborg.cpp b/TombEngine/Objects/TR5/Entity/tr5_cyborg.cpp index aed21523f..44c9bf260 100644 --- a/TombEngine/Objects/TR5/Entity/tr5_cyborg.cpp +++ b/TombEngine/Objects/TR5/Entity/tr5_cyborg.cpp @@ -19,8 +19,8 @@ #include "Specific/level.h" #include "Specific/setup.h" +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Items; -using namespace TEN::Effects::Lightning; using namespace TEN::Effects::Spark; namespace TEN::Entities::Creatures::TR5 diff --git a/TombEngine/Objects/TR5/Entity/tr5_laser_head.cpp b/TombEngine/Objects/TR5/Entity/tr5_laser_head.cpp index 450a45454..98e0b983f 100644 --- a/TombEngine/Objects/TR5/Entity/tr5_laser_head.cpp +++ b/TombEngine/Objects/TR5/Entity/tr5_laser_head.cpp @@ -21,8 +21,8 @@ #include "Specific/level.h" #include "Specific/setup.h" +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Items; -using namespace TEN::Effects::Lightning; using namespace TEN::Math; // NOTES: diff --git a/TombEngine/Objects/TR5/Entity/tr5_laserhead_info.h b/TombEngine/Objects/TR5/Entity/tr5_laserhead_info.h index 80b12b00a..fc7a26a26 100644 --- a/TombEngine/Objects/TR5/Entity/tr5_laserhead_info.h +++ b/TombEngine/Objects/TR5/Entity/tr5_laserhead_info.h @@ -1,7 +1,7 @@ #pragma once #include "Game/effects/lightning.h" -using namespace TEN::Effects::Lightning; +using namespace TEN::Effects::ElectricArc; namespace TEN::Entities::Creatures::TR5 { diff --git a/TombEngine/Objects/TR5/Entity/tr5_roman_statue.cpp b/TombEngine/Objects/TR5/Entity/tr5_roman_statue.cpp index b27d15eb2..ca09485f5 100644 --- a/TombEngine/Objects/TR5/Entity/tr5_roman_statue.cpp +++ b/TombEngine/Objects/TR5/Entity/tr5_roman_statue.cpp @@ -18,9 +18,9 @@ #include "Specific/setup.h" #include "Specific/level.h" -using namespace TEN::Effects::Lightning; -using namespace TEN::Math; +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Spark; +using namespace TEN::Math; namespace TEN::Entities::Creatures::TR5 { diff --git a/TombEngine/Renderer/Renderer11.h b/TombEngine/Renderer/Renderer11.h index 4cccd9722..a046d43e2 100644 --- a/TombEngine/Renderer/Renderer11.h +++ b/TombEngine/Renderer/Renderer11.h @@ -51,8 +51,8 @@ class EulerAngles; struct CAMERA_INFO; struct RendererRectangle; +using namespace TEN::Effects::ElectricArc; using namespace TEN::Gui; -using namespace TEN::Effects::Lightning; namespace TEN::Renderer { diff --git a/TombEngine/Renderer/Renderer11DrawEffect.cpp b/TombEngine/Renderer/Renderer11DrawEffect.cpp index 41156df6d..6d34a6ac3 100644 --- a/TombEngine/Renderer/Renderer11DrawEffect.cpp +++ b/TombEngine/Renderer/Renderer11DrawEffect.cpp @@ -27,11 +27,11 @@ #include "Specific/level.h" #include "Specific/setup.h" -using namespace TEN::Effects::Lightning; +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Environment; using namespace TEN::Effects::Footprints; -using namespace TEN::Math; using namespace TEN::Entities::Creatures::TR5; +using namespace TEN::Math; extern BLOOD_STRUCT Blood[MAX_SPARKS_BLOOD]; extern FIRE_SPARKS FireSparks[MAX_SPARKS_FIRE]; diff --git a/TombEngine/Scripting/Internal/TEN/Effects/EffectsFunctions.cpp b/TombEngine/Scripting/Internal/TEN/Effects/EffectsFunctions.cpp index b8040e4a5..7a2749e88 100644 --- a/TombEngine/Scripting/Internal/TEN/Effects/EffectsFunctions.cpp +++ b/TombEngine/Scripting/Internal/TEN/Effects/EffectsFunctions.cpp @@ -26,9 +26,9 @@ Functions to generate effects. @pragma nostrip */ +using namespace TEN::Effects::ElectricArc; using namespace TEN::Effects::Environment; using namespace TEN::Effects::Explosion; -using namespace TEN::Effects::Lightning; using namespace TEN::Effects::Spark; namespace Effects @@ -95,7 +95,7 @@ namespace Effects ScriptColor col = USE_IF_HAVE(ScriptColor, color, ScriptColor( 255, 255, 255 )); - TEN::Effects::Lightning::TriggerLightning(&p1, &p2, byteAmplitude, col.GetR(), col.GetG(), col.GetB(), byteLife, flags, width, segs); + TriggerLightning(&p1, &p2, byteAmplitude, col.GetR(), col.GetG(), col.GetB(), byteLife, flags, width, segs); } /*** Emit a particle. diff --git a/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp b/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp index edab97e6a..23b933496 100644 --- a/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp +++ b/TombEngine/Scripting/Internal/TEN/Logic/LogicHandler.cpp @@ -12,7 +12,7 @@ #include "Vec3/Vec3.h" #include "LevelFunc.h" -using namespace TEN::Effects::Lightning; +using namespace TEN::Effects::ElectricArc; /*** Saving data, triggering functions, and callbacks for level-specific scripts.