diff --git a/resources/Schema/Components/Fade.xml b/resources/Schema/Components/Fade.xml index 6a8ac525..94c942ca 100644 --- a/resources/Schema/Components/Fade.xml +++ b/resources/Schema/Components/Fade.xml @@ -3,4 +3,5 @@ 1 true + false \ No newline at end of file diff --git a/resources/Schema/Components/Fade.xsd b/resources/Schema/Components/Fade.xsd index b0c5152a..9c638258 100644 --- a/resources/Schema/Components/Fade.xsd +++ b/resources/Schema/Components/Fade.xsd @@ -11,6 +11,9 @@ If the entity should fade out or in. + + If the entity should reverse the fade after finishing, this will double the speed. + diff --git a/resources/Schema/Entities/MuzzleFlashBlue.xml b/resources/Schema/Entities/MuzzleFlashBlue.xml index f984f6bc..840a2365 100644 --- a/resources/Schema/Entities/MuzzleFlashBlue.xml +++ b/resources/Schema/Entities/MuzzleFlashBlue.xml @@ -3,7 +3,7 @@ - 0.039999999105930328 + 0.08 @@ -16,6 +16,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/Cone1Outside.mesh @@ -28,6 +32,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/Cone1Inside.mesh @@ -49,6 +57,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/Cone2Inside.mesh @@ -61,6 +73,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/Cone2Outside.mesh @@ -82,6 +98,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/PlaneLeft.mesh @@ -94,6 +114,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/PlaneRight.mesh @@ -106,6 +130,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/PlaneUp.mesh @@ -118,6 +146,10 @@ + + 0.08 + true + 2 Models/Effects/MuzzleFlash/Blue/PlaneDown.mesh diff --git a/src/Game/Systems/FadeSystem.cpp b/src/Game/Systems/FadeSystem.cpp index f71bd316..0ed98ddb 100644 --- a/src/Game/Systems/FadeSystem.cpp +++ b/src/Game/Systems/FadeSystem.cpp @@ -15,15 +15,27 @@ void FadeSystem::UpdateComponent(EntityWrapper& entity, ComponentWrapper& cFade, dTime *= -1; } + if((bool)cFade["Reverse"]) { + dTime *= 2; + } + double fadeTime = cFade["FadeTime"]; double& currentTime = cFade["Time"]; currentTime += dTime; if(currentTime > fadeTime) { currentTime = 0.0; + if ((bool)cFade["Reverse"]) { + (bool&)cFade["Out"] = !(bool)cFade["Out"]; + currentTime = fadeTime; + } } if(currentTime < 0.0) { currentTime = fadeTime; + if ((bool)cFade["Reverse"]) { + (bool&)cFade["Out"] = !(bool)cFade["Out"]; + currentTime = 0.0; + } } double ratio = currentTime/fadeTime;