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;