]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Sprite.cpp
rename for readability
[lugaru.git] / Source / Sprite.cpp
index f0991afc4be6fbf73b15af2fb52d77b8ff95c457..8b7385f160e10119009a951f6d87db16b4aa489e 100644 (file)
@@ -21,6 +21,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "Sprite.h"
 #include "Person.h"
+#include "Game.h"
 extern XYZ viewer;
 extern float viewdistance;
 extern float fadestart;
@@ -33,24 +34,21 @@ extern Terrain terrain;
 extern Objects objects;
 extern int detail;
 extern XYZ viewerfacing;
-extern float terraindetail;
 extern int bloodtoggle;
 extern XYZ windvector;
-extern int numplayers;
-extern Person player[maxplayers];
 
 // 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;
 
@@ -103,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);
@@ -111,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);
@@ -119,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);
@@ -127,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);
@@ -135,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);
@@ -144,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);
@@ -156,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);
@@ -164,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);
@@ -173,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);
@@ -181,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);
@@ -191,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);
@@ -312,11 +310,11 @@ void Sprite::Draw()
                                        if(!spritehit&&player[j].dead&&sprites[i]->alivetime>.1){
                                                where=sprites[i]->oldposition;
                                                where-=player[j].coords;
-                                               if(!player[j].skeleton.free)where=DoRotation(where,0,-player[j].rotation,0);
+                                               if(!player[j].skeleton.free)where=DoRotation(where,0,-player[j].yaw,0);
                                                startpoint=where;
                                                where=sprites[i]->position;
                                                where-=player[j].coords;
-                                               if(!player[j].skeleton.free)where=DoRotation(where,0,-player[j].rotation,0);
+                                               if(!player[j].skeleton.free)where=DoRotation(where,0,-player[j].yaw,0);
                                                endpoint=where;
 
                                                movepoint=0;
@@ -330,8 +328,8 @@ void Sprite::Draw()
                                        }
                                }
 
-                               whichpatchx=sprites[i]->position.x/(terrain.size/subdivision*terrain.scale*terraindetail);
-                               whichpatchz=sprites[i]->position.z/(terrain.size/subdivision*terrain.scale*terraindetail);
+                               whichpatchx=sprites[i]->position.x/(terrain.size/subdivision*terrain.scale);
+                               whichpatchz=sprites[i]->position.z/(terrain.size/subdivision*terrain.scale);
                                if(whichpatchx>0&&whichpatchz>0&&whichpatchx<subdivision&&whichpatchz<subdivision)
                                        if(terrain.patchobjectnum[whichpatchx][whichpatchz]){
                                                if(!spritehit)
@@ -340,8 +338,8 @@ void Sprite::Draw()
                                                                start=sprites[i]->oldposition;
                                                                end=sprites[i]->position;
                                                                if(!spritehit)
-                                                                       if(objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k])!=-1){
-                                                                               if(detail==2||(detail==1&&abs(Random()%4)==0)||(detail==0&&abs(Random()%8)==0))objects.model[k].MakeDecal(blooddecalfast,DoRotation(colpoint-objects.position[k],0,-objects.rotation[k],0),sprites[i]->size*1.6/*+abs((float)(Random()%100))/2400*/,.5,Random()%360);
+                                                                       if(objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k])!=-1){
+                                                                               if(detail==2||(detail==1&&abs(Random()%4)==0)||(detail==0&&abs(Random()%8)==0))objects.model[k].MakeDecal(blooddecalfast,DoRotation(colpoint-objects.position[k],0,-objects.yaw[k],0),sprites[i]->size*1.6/*+abs((float)(Random()%100))/2400*/,.5,Random()%360);
                                                                                DeleteSprite(i);
                                                                                spritehit=1;
                                                                        }       
@@ -440,16 +438,16 @@ Sprite::Sprite()
 
 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();
 }