diff options
Diffstat (limited to 'src/Sprites.cpp')
-rw-r--r-- | src/Sprites.cpp | 54 |
1 files changed, 43 insertions, 11 deletions
diff --git a/src/Sprites.cpp b/src/Sprites.cpp index 239c0a8..e96577e 100644 --- a/src/Sprites.cpp +++ b/src/Sprites.cpp @@ -1,7 +1,6 @@ #include <cmath> #include "Camera.h" -#include "Fog.h" #include "Models.h" #include "Sprites.h" #include "misc.h" @@ -149,15 +148,48 @@ void Sprites::draw() glDisable(GL_LIGHTING); glDepthMask(0); glAlphaFunc(GL_GREATER, 0.01); - for(int i=0;i<howmanysprites;i++){ - if(type[i]==muzzleflashsprite){fog.TempFog(0,0,0); glBindTexture(GL_TEXTURE_2D, muzzleflaretextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE);} - if(type[i]==flashsprite){fog.TempFog(0,0,0); glBindTexture(GL_TEXTURE_2D, flaretextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE);} - if(type[i]==smokesprite||type[i]==smokespritenoup){fog.ResetFog(); glBindTexture(GL_TEXTURE_2D, smoketextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);} - if(type[i]==bloodspritedown||type[i]==bloodspritenoup){fog.ResetFog(); glBindTexture(GL_TEXTURE_2D, smoketextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);} - if(type[i]==particlesspritedown){fog.ResetFog(); glBindTexture(GL_TEXTURE_2D, bloodtextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);} - if(type[i]==snowsprite){fog.ResetFog(); glBindTexture(GL_TEXTURE_2D, snowtextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);} - if(type[i]==rainsprite){fog.ResetFog(); glBindTexture(GL_TEXTURE_2D, raintextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);} - if(type[i]==bullet||type[i]==bulletinstant){fog.ResetFog(); glBindTexture(GL_TEXTURE_2D, bullettextureptr);glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);} + for (int i = 0; i < howmanysprites; ++i) { + switch (type[i]) { + case muzzleflashsprite: + tempFog(&fog, 0, 0, 0); + glBindTexture(GL_TEXTURE_2D, muzzleflaretextureptr); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + break; + case flashsprite: + tempFog(&fog, 0, 0, 0); + glBindTexture(GL_TEXTURE_2D, flaretextureptr); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); + break; + case smokesprite: + case smokespritenoup: + case bloodspritedown: + case bloodspritenoup: + resetFog(&fog); + glBindTexture(GL_TEXTURE_2D, smoketextureptr); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + break; + case particlesspritedown: + resetFog(&fog); + glBindTexture(GL_TEXTURE_2D, bloodtextureptr); + glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA); + break; + case snowsprite: + resetFog(&fog); + glBindTexture(GL_TEXTURE_2D, snowtextureptr); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + break; + case rainsprite: + resetFog(&fog); + glBindTexture(GL_TEXTURE_2D, raintextureptr); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + break; + case bullet: + case bulletinstant: + resetFog(&fog); + glBindTexture(GL_TEXTURE_2D, bullettextureptr); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + break; + } glPushMatrix(); if(type[i]==muzzleflashsprite||type[i]==flashsprite||type[i]==smokesprite||type[i]==smokespritenoup||type[i]==snowsprite||type[i]==particlesspritedown||((type[i]==bloodspritenoup||type[i]==bloodspritedown)&&blood)){ @@ -276,7 +308,7 @@ void Sprites::draw() } glPopMatrix(); } - fog.ResetFog(); + resetFog(&fog); glDepthMask(1); glDisable(GL_TEXTURE_2D); glEnable(GL_CULL_FACE); |