X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FSprite.cpp;h=8b7385f160e10119009a951f6d87db16b4aa489e;hb=320a287705c0463c6f8943ad9cf4c407c556f703;hp=79a5af45a6cf37150524e7f5acd789e03f84f50a;hpb=263a338c0c3648cfa2388d4a21584a09294ffd9e;p=lugaru.git diff --git a/Source/Sprite.cpp b/Source/Sprite.cpp index 79a5af4..8b7385f 100644 --- a/Source/Sprite.cpp +++ b/Source/Sprite.cpp @@ -38,17 +38,17 @@ extern int bloodtoggle; 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; @@ -101,7 +101,7 @@ void Sprite::Draw() 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); @@ -109,7 +109,7 @@ void Sprite::Draw() } break; case cloudimpactsprite: - glBindTexture( GL_TEXTURE_2D, cloudimpacttexture); + cloudimpacttexture.bind(); if(!blend){ blend=1; glAlphaFunc(GL_GREATER, 0.0001); @@ -117,7 +117,7 @@ void Sprite::Draw() } break; case breathsprite: - glBindTexture( GL_TEXTURE_2D, cloudimpacttexture); + cloudimpacttexture.bind(); if(!blend){ blend=1; glAlphaFunc(GL_GREATER, 0.0001); @@ -125,7 +125,7 @@ void Sprite::Draw() } break; case smoketype: - glBindTexture( GL_TEXTURE_2D, smoketexture); + smoketexture.bind(); if(!blend){ blend=1; glAlphaFunc(GL_GREATER, 0.0001); @@ -133,7 +133,7 @@ void Sprite::Draw() } break; case bloodsprite: - glBindTexture( GL_TEXTURE_2D, bloodtexture); + bloodtexture.bind(); if(!blend){ blend=1; glAlphaFunc(GL_GREATER, 0.0001); @@ -142,10 +142,10 @@ void Sprite::Draw() 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); @@ -154,7 +154,7 @@ void Sprite::Draw() } break; case snowsprite: - glBindTexture( GL_TEXTURE_2D, snowflaketexture); + snowflaketexture.bind(); if(!blend){ blend=1; glAlphaFunc(GL_GREATER, 0.0001); @@ -162,7 +162,7 @@ void Sprite::Draw() } break; case weaponshinesprite: - glBindTexture( GL_TEXTURE_2D, shinetexture); + shinetexture.bind(); if(blend){ blend=0; glAlphaFunc(GL_GREATER, 0.001); @@ -171,7 +171,7 @@ void Sprite::Draw() break; case flamesprite: case weaponflamesprite: - glBindTexture( GL_TEXTURE_2D, flametexture); + flametexture.bind(); if(blend||lasttype==bloodflamesprite){ blend=0; glAlphaFunc(GL_GREATER, 0.3); @@ -179,7 +179,7 @@ void Sprite::Draw() } break; case bloodflamesprite: - glBindTexture( GL_TEXTURE_2D, bloodflametexture); + bloodflametexture.bind(); if(blend){ blend=0; glAlphaFunc(GL_GREATER, 0.3); @@ -189,9 +189,9 @@ void Sprite::Draw() } } 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); @@ -438,16 +438,16 @@ Sprite::Sprite() void Sprite::clearTextures() { - glDeleteTextures( 1, &toothtexture ); - glDeleteTextures( 1, &cloudtexture ); - glDeleteTextures( 1, &cloudimpacttexture ); - glDeleteTextures( 1, &bloodtexture ); - glDeleteTextures( 1, &flametexture ); - glDeleteTextures( 1, &bloodflametexture ); - glDeleteTextures( 1, &smoketexture ); - glDeleteTextures( 1, &snowflaketexture ); - glDeleteTextures( 1, &shinetexture ); - glDeleteTextures( 1, &splintertexture ); - 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(); }