extern XYZ windvector;
// init statics
-GLuint Sprite::cloudtexture = 0;
-GLuint Sprite::cloudimpacttexture = 0;
-GLuint Sprite::bloodtexture = 0;
-GLuint Sprite::flametexture = 0;
-GLuint Sprite::bloodflametexture = 0;
-GLuint Sprite::smoketexture = 0;
-GLuint Sprite::snowflaketexture = 0;
-GLuint Sprite::shinetexture = 0;
-GLuint Sprite::splintertexture = 0;
-GLuint Sprite::leaftexture = 0;
-GLuint Sprite::toothtexture = 0;
+Texture Sprite::cloudtexture;
+Texture Sprite::cloudimpacttexture;
+Texture Sprite::bloodtexture;
+Texture Sprite::flametexture;
+Texture Sprite::bloodflametexture;
+Texture Sprite::smoketexture;
+Texture Sprite::snowflaketexture;
+Texture Sprite::shinetexture;
+Texture Sprite::splintertexture;
+Texture Sprite::leaftexture;
+Texture Sprite::toothtexture;
float Sprite::checkdelay = 0;
if(lasttype!=sprites[i]->type) {
switch(sprites[i]->type) {
case cloudsprite:
- glBindTexture( GL_TEXTURE_2D, cloudtexture);
+ cloudtexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
}
break;
case cloudimpactsprite:
- glBindTexture( GL_TEXTURE_2D, cloudimpacttexture);
+ cloudimpacttexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
}
break;
case breathsprite:
- glBindTexture( GL_TEXTURE_2D, cloudimpacttexture);
+ cloudimpacttexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
}
break;
case smoketype:
- glBindTexture( GL_TEXTURE_2D, smoketexture);
+ smoketexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
}
break;
case bloodsprite:
- glBindTexture( GL_TEXTURE_2D, bloodtexture);
+ bloodtexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
break;
case splintersprite :
if(lastspecial!=sprites[i]->special) {
- if(sprites[i]->special==0)glBindTexture( GL_TEXTURE_2D, splintertexture);
- if(sprites[i]->special==1)glBindTexture( GL_TEXTURE_2D, leaftexture);
- if(sprites[i]->special==2)glBindTexture( GL_TEXTURE_2D, snowflaketexture);
- if(sprites[i]->special==3)glBindTexture( GL_TEXTURE_2D, toothtexture);
+ if(sprites[i]->special==0)splintertexture.bind();
+ if(sprites[i]->special==1)leaftexture.bind();
+ if(sprites[i]->special==2)snowflaketexture.bind();
+ if(sprites[i]->special==3)toothtexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
}
break;
case snowsprite:
- glBindTexture( GL_TEXTURE_2D, snowflaketexture);
+ snowflaketexture.bind();
if(!blend){
blend=1;
glAlphaFunc(GL_GREATER, 0.0001);
}
break;
case weaponshinesprite:
- glBindTexture( GL_TEXTURE_2D, shinetexture);
+ shinetexture.bind();
if(blend){
blend=0;
glAlphaFunc(GL_GREATER, 0.001);
break;
case flamesprite:
case weaponflamesprite:
- glBindTexture( GL_TEXTURE_2D, flametexture);
+ flametexture.bind();
if(blend||lasttype==bloodflamesprite){
blend=0;
glAlphaFunc(GL_GREATER, 0.3);
}
break;
case bloodflamesprite:
- glBindTexture( GL_TEXTURE_2D, bloodflametexture);
+ bloodflametexture.bind();
if(blend){
blend=0;
glAlphaFunc(GL_GREATER, 0.3);
}
}
if(sprites[i]->type==snowsprite)
- distancemult=(144-(findDistancefast(&tempviewer,&sprites[i]->position)-(144*fadestart))*(1/(1-fadestart)))/144;
+ distancemult=(144-(distsq(&tempviewer,&sprites[i]->position)-(144*fadestart))*(1/(1-fadestart)))/144;
else
- distancemult=(viewdistsquared-(findDistancefast(&viewer,&sprites[i]->position)-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared;
+ distancemult=(viewdistsquared-(distsq(&viewer,&sprites[i]->position)-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared;
if(sprites[i]->type==flamesprite){
if(distancemult>=1) glColor4f(sprites[i]->color[0],sprites[i]->color[1],sprites[i]->color[2],sprites[i]->opacity);
else glColor4f(sprites[i]->color[0],sprites[i]->color[1],sprites[i]->color[2],sprites[i]->opacity*distancemult);
void Sprite::clearTextures()
{
- if (toothtexture) glDeleteTextures( 1, &toothtexture );
- if (cloudtexture) glDeleteTextures( 1, &cloudtexture );
- if (cloudimpacttexture) glDeleteTextures( 1, &cloudimpacttexture );
- if (bloodtexture) glDeleteTextures( 1, &bloodtexture );
- if (flametexture) glDeleteTextures( 1, &flametexture );
- if (bloodflametexture) glDeleteTextures( 1, &bloodflametexture );
- if (smoketexture) glDeleteTextures( 1, &smoketexture );
- if (snowflaketexture) glDeleteTextures( 1, &snowflaketexture );
- if (shinetexture) glDeleteTextures( 1, &shinetexture );
- if (splintertexture) glDeleteTextures( 1, &splintertexture );
- if (leaftexture) glDeleteTextures( 1, &leaftexture );
+ toothtexture.destroy();
+ cloudtexture.destroy();
+ cloudimpacttexture.destroy();
+ bloodtexture.destroy();
+ flametexture.destroy();
+ bloodflametexture.destroy();
+ smoketexture.destroy();
+ snowflaketexture.destroy();
+ shinetexture.destroy();
+ splintertexture.destroy();
+ leaftexture.destroy();
}