Index: branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.cc
===================================================================
--- branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.cc	(revision 8266)
+++ branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.cc	(revision 8267)
@@ -58,4 +58,6 @@
 	LoadParam(root, "range", this, FogEffect, setFogRange);
 	LoadParam(root, "color", this, FogEffect, setFogColor);
+	LoadParam(root, "fadeinduration", this, FogEffect, setFogFadeIn);
+	LoadParam(root, "fadeoutduration", this, FogEffect, setFogFadeOut);
 
 	LOAD_PARAM_START_CYCLE(root, element);
@@ -70,5 +72,6 @@
 	//default values
 	this->fogActivate = false;
-	this->fogFadeDuration = 0;
+	this->fogFadeInDuration = 0;
+	this->fogFadeOutDuration = 0;
 	this->localTimer = 0;
 	
@@ -79,4 +82,5 @@
 	this->colorVector = Vector(0.7, 0.7, 0.7);
 
+	return 0;
 }
 
@@ -98,4 +102,6 @@
 	glEnable(GL_FOG);
 	// glClearColor(0.5, 0.5, 0.5, 1.0);
+
+	return 0;
 }
 
@@ -108,9 +114,11 @@
 	
 	glDisable(GL_FOG);
+
+	return 0;
 }
 
 void FogEffect::draw() const {
 
-	if (this->fogFadeDuration != 0 && this->localTimer < this->fogFadeDuration)
+	if (this->fogFadeInDuration > 0 && this->localTimer < this->fogFadeInDuration)
 		glFogf(GL_FOG_DENSITY, this->fogFadeDensity);
 	//else
@@ -124,7 +132,7 @@
 		
 
-	if (this->fogFadeDuration != 0 && this->localTimer < this->fogFadeDuration) {
+	if (this->fogFadeInDuration > 0 && this->localTimer < this->fogFadeInDuration) {
 		this->localTimer += dt;
-		float progress = this->localTimer / this->fogFadeDuration;
+		float progress = this->localTimer / this->fogFadeInDuration;
 		this->fogFadeDensity = progress * this->fogDensity;
 	}
@@ -136,5 +144,7 @@
 		this->deactivate();
 
-	this->fogFadeDuration = 10;
+	if (!this->fogFadeInDuration > 0)
+		this->fogFadeInDuration = 20;
+
 	this->localTimer = 0;
 	this->activate();
Index: branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.h
===================================================================
--- branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.h	(revision 8266)
+++ branches/atmospheric_engine/src/lib/graphics/effects/fog_effect.h	(revision 8267)
@@ -33,4 +33,7 @@
 		inline void setFogRange(float start, float end) { this->fogStart = start; this->fogEnd = end; }
 		inline void setFogColor(float r, float g, float b) { this->colorVector = Vector(r, g, b); }
+		inline void setFogFadeIn(float fadein) { this->fogFadeInDuration = fadein; }
+		inline void setFogFadeOut(float fadeout) { this->fogFadeOutDuration = fadeout; }
+
 		inline void setFogOption(const std::string& option) { if (option == "activate") this->fogActivate = true; }
 
@@ -41,5 +44,7 @@
 
 		bool				fogActivate;
-		GLfloat				fogFadeDuration;
+		GLfloat				fogFadeInDuration;
+		GLfloat				fogFadeOutDuration;
+
 		float				localTimer;
 		
Index: branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.cc
===================================================================
--- branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.cc	(revision 8266)
+++ branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.cc	(revision 8267)
@@ -86,5 +86,6 @@
 	LoadParam(root, "life", this, RainEffect, setRainLife);
 	LoadParam(root, "wind", this, RainEffect, setRainWind);
-	LoadParam(root, "startraining", this, RainEffect, setRainStart);
+	LoadParam(root, "fadeinduration", this, RainEffect, setRainFadeIn);
+	LoadParam(root, "fadeoutduration", this, RainEffect, setRainFadeOut);
 
 	LOAD_PARAM_START_CYCLE(root, element);
@@ -109,5 +110,6 @@
 	this->rainMaxParticles = this->rainRate * this->rainLife;
 	this->rainWindForce  = 0;
-	this->rainStartDuration = 0;
+	this->rainFadeInDuration = 0;
+	this->rainFadeOutDuration = 0;
 	this->localTimer = 0;
 	this->soundRainVolume = 0.8f;
@@ -117,4 +119,6 @@
 	lightMan = LightManager::getInstance();
 	this->rainAmbient = lightMan->getAmbientColor();
+
+	return 0;
 }
 
@@ -155,4 +159,6 @@
 
 	lightMan->setAmbientColor(.1,.1,.1);
+
+	return 0;
 }
 
@@ -170,4 +176,6 @@
 	// Restore Light Ambient
 	lightMan->setAmbientColor(this->rainAmbient, this->rainAmbient, this->rainAmbient);
+
+	return 0;
 }
 
@@ -182,7 +190,7 @@
 	}
 
-	if (this->rainStartDuration != 0 && this->localTimer < this->rainStartDuration) {
+	if (this->rainFadeInDuration != 0 && this->localTimer < this->rainFadeInDuration) {
 		this->localTimer += dt;
-		float progress = this->localTimer / this->rainStartDuration;
+		float progress = this->localTimer / this->rainFadeInDuration;
 
 		// Dim Light
@@ -210,5 +218,7 @@
 		this->deactivate();
 
-	this->rainStartDuration = 10;
+	if (!this->rainFadeInDuration > 0)
+		this->rainFadeInDuration = 20;
+
 	this->localTimer = 0;
 	this->activate();
Index: branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.h
===================================================================
--- branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.h	(revision 8266)
+++ branches/atmospheric_engine/src/lib/graphics/effects/rain_effect.h	(revision 8267)
@@ -47,5 +47,9 @@
 		inline void setRainLife(float life) { this->rainLife = life; }
 		inline void setRainWind(int force) { this->rainWindForce = force; }
-		inline void setRainStart(float duration) { this->rainStartDuration = duration; }
+		inline void setRainStart(float duration) { this->rainFadeInDuration = duration; }
+
+		inline void setRainFadeIn(float fadein) { this->rainFadeInDuration = fadein; }
+		inline void setRainFadeOut(float fadeout) { this->rainFadeOutDuration = fadeout; }
+
 
 		inline void setRainOption(const std::string& option) {
@@ -59,4 +63,6 @@
 		ParticleEmitter*			emitter;
 
+		GLfloat					rainFadeInDuration;
+		GLfloat					rainFadeOutDuration;
 		float					localTimer;
 
@@ -68,5 +74,4 @@
 		GLfloat					rainMaxParticles;
 		int					rainWindForce;
-		GLfloat					rainStartDuration;
 		bool					rainMove;
 		bool					rainActivate;
Index: branches/atmospheric_engine/src/lib/graphics/graphics_engine.cc
===================================================================
--- branches/atmospheric_engine/src/lib/graphics/graphics_engine.cc	(revision 8266)
+++ branches/atmospheric_engine/src/lib/graphics/graphics_engine.cc	(revision 8267)
@@ -145,4 +145,6 @@
     return -1;
   this->initVideo(640, 480, 16);
+
+  return 0;
 }
 
@@ -186,4 +188,6 @@
 
   //ge->activate();
+
+  return 0;
 }
 
@@ -238,4 +242,6 @@
 
   this->isInit = true;
+
+  return 0;
 }
 
@@ -289,4 +295,6 @@
   glEnable(GL_CULL_FACE);
   glCullFace(GL_FRONT);
+
+  return 0;
 }
 
@@ -379,4 +387,6 @@
   }
 #endif /* __WIN32__ */
+
+  return 0;
 }
 
@@ -413,4 +423,6 @@
 {
   this->setResolution(resizeInfo.w, resizeInfo.h, this->bitsPerPixel);
+
+  return 0;
 }
 
