]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Weapons.cpp
rename for readability
[lugaru.git] / Source / Weapons.cpp
index f6cf200fe8d5ef519b3d0222bb62796c292eea38..5998150e5a1b4796d57e8bc5cde473dc9b2e34f8 100644 (file)
@@ -54,17 +54,17 @@ extern int tutoriallevel;
 extern int numthrowkill;
 
 Model Weapon::throwingknifemodel;
-GLuint Weapon::knifetextureptr = 0;
-GLuint Weapon::lightbloodknifetextureptr = 0;
-GLuint Weapon::bloodknifetextureptr = 0;
+Texture Weapon::knifetextureptr;
+Texture Weapon::lightbloodknifetextureptr;
+Texture Weapon::bloodknifetextureptr;
 
 Model Weapon::swordmodel;
-GLuint Weapon::swordtextureptr = 0;
-GLuint Weapon::lightbloodswordtextureptr = 0;
-GLuint Weapon::bloodswordtextureptr = 0;
+Texture Weapon::swordtextureptr;
+Texture Weapon::lightbloodswordtextureptr;
+Texture Weapon::bloodswordtextureptr;
 
 Model Weapon::staffmodel;
-GLuint Weapon::stafftextureptr = 0;
+Texture Weapon::stafftextureptr;
 
 Weapon::Weapon(int t, int o) : owner(o) {
        setType(t);
@@ -159,11 +159,11 @@ void Weapon::DoStuff(int i) {
                                        int k=terrain.patchobjects[whichpatchx][whichpatchz][j];
                                        start=oldtippoint;
                                        end=tippoint;
-                                       whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                       whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                        if(whichhit!=-1) {
                                                if(objects.type[k]==treetrunktype){
-                                                       objects.model[k].MakeDecal(breakdecal,DoRotation(colpoint-objects.position[k],0,-objects.rotation[k],0),.1,1,Random()%360);
-                                                       normalrot=DoRotation(objects.model[k].facenormals[whichhit],0,objects.rotation[k],0);
+                                                       objects.model[k].MakeDecal(breakdecal,DoRotation(colpoint-objects.position[k],0,-objects.yaw[k],0),.1,1,Random()%360);
+                                                       normalrot=DoRotation(objects.model[k].facenormals[whichhit],0,objects.yaw[k],0);
                                                        velocity=0;
                                                        if(type==knife)
                                                                position=colpoint-normalrot*.1;
@@ -214,9 +214,9 @@ void Weapon::DoStuff(int i) {
                if(velocity.x||velocity.y||velocity.z) {
                        for(int j=0;j<numplayers;j++) {
                                footvel=0;
-                               footpoint=DoRotation((player[j].skeleton.joints[player[j].skeleton.jointlabels[abdomen]].position+player[j].skeleton.joints[player[j].skeleton.jointlabels[neck]].position)/2,0,player[j].rotation,0)*player[j].scale+player[j].coords;
-                               if(owner==-1 && findDistancefastflat(&position,&player[j].coords)<1.5 && 
-                               findDistancefast(&position,&player[j].coords)<4 && player[j].weaponstuck==-1 &&
+                               footpoint=DoRotation((player[j].skeleton.joints[player[j].skeleton.jointlabels[abdomen]].position+player[j].skeleton.joints[player[j].skeleton.jointlabels[neck]].position)/2,0,player[j].yaw,0)*player[j].scale+player[j].coords;
+                               if(owner==-1 && distsqflat(&position,&player[j].coords)<1.5 && 
+                               distsq(&position,&player[j].coords)<4 && player[j].weaponstuck==-1 &&
                                !player[j].skeleton.free && j!=oldowner) {
                                        if((player[j].aitype!=attacktypecutoff||abs(Random()%6)==0||(player[j].targetanimation!=backhandspringanim&&player[j].targetanimation!=rollanim&&player[j].targetanimation!=flipanim&&Random()%2==0))&&!missed) {
                                                if( (player[j].creature==wolftype       &&      Random()%3!=0 && player[j].weaponactive==-1 && (player[j].isIdle()||player[j].isRun()||player[j].targetanimation==walkanim))||
@@ -331,15 +331,15 @@ void Weapon::DoStuff(int i) {
                                XYZ terrainlight;
                                terrainlight=terrain.getLighting(position.x,position.z);
                                if(environment==snowyenvironment){
-                                       if(findDistancefast(&position,&viewer)<viewdistance*viewdistance/4)
+                                       if(distsq(&position,&viewer)<viewdistance*viewdistance/4)
                                                Sprite::MakeSprite(cloudsprite, position,velocity, terrainlight.x,terrainlight.y,terrainlight.z, .5, .7);
                                }
                                else if(environment==grassyenvironment){
-                                       if(findDistancefast(&position,&viewer)<viewdistance*viewdistance/4)
+                                       if(distsq(&position,&viewer)<viewdistance*viewdistance/4)
                                                Sprite::MakeSprite(cloudsprite, position,velocity, terrainlight.x*90/255,terrainlight.y*70/255,terrainlight.z*8/255, .5, .5);
                                }
                                else if(environment==desertenvironment){
-                                       if(findDistancefast(&position,&viewer)<viewdistance*viewdistance/4)
+                                       if(distsq(&position,&viewer)<viewdistance*viewdistance/4)
                                                Sprite::MakeSprite(cloudsprite, position,velocity, terrainlight.x*190/255,terrainlight.y*170/255,terrainlight.z*108/255, .5, .7);
                                }
 
@@ -420,7 +420,7 @@ void Weapon::DoStuff(int i) {
                                                        if(type==staff) {
                                                                start=tippoint-(position-tippoint)/5;
                                                                end=position+(position-tippoint)/30;
-                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                                if(whichhit!=-1) {
                                                                        XYZ diff;
                                                                        diff=(colpoint-position);
@@ -435,7 +435,7 @@ void Weapon::DoStuff(int i) {
                                                        } else {
                                                                start=position-(tippoint-position)/5;
                                                                end=tippoint+(tippoint-position)/30;
-                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                                if(whichhit!=-1){
                                                                        XYZ diff;
                                                                        diff=(colpoint-tippoint);
@@ -452,11 +452,11 @@ void Weapon::DoStuff(int i) {
 
                                                start=oldposition;
                                                end=position;
-                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                if(whichhit!=-1) {
                                                        hitsomething=1;
                                                        position=colpoint;
-                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.rotation[k],0)*-1;
+                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.yaw[k],0)*-1;
                                                        ReflectVector(&velocity,&terrainnormal);
                                                        position+=terrainnormal*.002;
 
@@ -480,11 +480,11 @@ void Weapon::DoStuff(int i) {
                                                }
                                                start=oldtippoint;
                                                end=tippoint;
-                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                if(whichhit!=-1) {
                                                        hitsomething=1;
                                                        tippoint=colpoint;
-                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.rotation[k],0)*-1;
+                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.yaw[k],0)*-1;
                                                        ReflectVector(&tipvelocity,&terrainnormal);
                                                        tippoint+=terrainnormal*.002;
 
@@ -506,7 +506,7 @@ void Weapon::DoStuff(int i) {
                                                        }
                                                }
 
-                                               if((objects.type[k]!=boxtype && objects.type[k]!=platformtype && objects.type[k]!=walltype && objects.type[k]!=weirdtype)||objects.rotation2[k]!=0)
+                                               if((objects.type[k]!=boxtype && objects.type[k]!=platformtype && objects.type[k]!=walltype && objects.type[k]!=weirdtype)||objects.pitch[k]!=0)
                                                        for(int m=0;m<2;m++){
                                                                mid=(position*(21+(float)m*10)+tippoint*(19-(float)m*10))/40;
                                                                oldmid2=mid;
@@ -514,11 +514,11 @@ void Weapon::DoStuff(int i) {
 
                                                                start=oldmid;
                                                                end=mid;
-                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                                if(whichhit!=-1) {
                                                                        hitsomething=1;
                                                                        mid=colpoint;
-                                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.rotation[k],0)*-1;
+                                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.yaw[k],0)*-1;
                                                                        ReflectVector(&velocity,&terrainnormal);
 
                                                                        bounceness=terrainnormal*findLength(&velocity)*(abs(normaldotproduct(velocity,terrainnormal)));
@@ -546,11 +546,11 @@ void Weapon::DoStuff(int i) {
 
                                                                start=oldmid;
                                                                end=mid;
-                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                                               whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                                if(whichhit!=-1) {
                                                                        hitsomething=1;
                                                                        mid=colpoint;
-                                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.rotation[k],0)*-1;
+                                                                       terrainnormal=DoRotation(objects.model[k].facenormals[whichhit],0,objects.yaw[k],0)*-1;
                                                                        ReflectVector(&tipvelocity,&terrainnormal);
 
                                                                        bounceness=terrainnormal*findLength(&tipvelocity)*(abs(normaldotproduct(tipvelocity,terrainnormal)));
@@ -576,14 +576,14 @@ void Weapon::DoStuff(int i) {
                                                {
                                                        start=position;
                                                        end=tippoint;
-                                                       whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.rotation[k]);
+                                                       whichhit=objects.model[k].LineCheck(&start,&end,&colpoint,&objects.position[k],&objects.yaw[k]);
                                                        if(whichhit!=-1) {
                                                                hitsomething=1;
                                                                closestdistance=-1;
                                                                closestswordpoint=colpoint;//(position+tippoint)/2;
-                                                               point[0]=DoRotation(objects.model[k].vertex[objects.model[k].Triangles[whichhit].vertex[0]],0,objects.rotation[k],0)+objects.position[k];
-                                                               point[1]=DoRotation(objects.model[k].vertex[objects.model[k].Triangles[whichhit].vertex[1]],0,objects.rotation[k],0)+objects.position[k];
-                                                               point[2]=DoRotation(objects.model[k].vertex[objects.model[k].Triangles[whichhit].vertex[2]],0,objects.rotation[k],0)+objects.position[k];
+                                                               point[0]=DoRotation(objects.model[k].vertex[objects.model[k].Triangles[whichhit].vertex[0]],0,objects.yaw[k],0)+objects.position[k];
+                                                               point[1]=DoRotation(objects.model[k].vertex[objects.model[k].Triangles[whichhit].vertex[1]],0,objects.yaw[k],0)+objects.position[k];
+                                                               point[2]=DoRotation(objects.model[k].vertex[objects.model[k].Triangles[whichhit].vertex[2]],0,objects.yaw[k],0)+objects.position[k];
                                                                if(DistancePointLine(&closestswordpoint, &point[0], &point[1], &distance,&colpoint )) {
                                                                        if(distance<closestdistance||closestdistance==-1){
                                                                                closestpoint=colpoint;
@@ -654,15 +654,15 @@ void Weapon::DoStuff(int i) {
                                                        XYZ terrainlight;
                                                        terrainlight=terrain.getLighting(position.x,position.z);
                                                        if(environment==snowyenvironment){
-                                                               if(findDistancefast(&position,&viewer)<viewdistance*viewdistance/4)
+                                                               if(distsq(&position,&viewer)<viewdistance*viewdistance/4)
                                                                        Sprite::MakeSprite(cloudsprite, position,velocity, terrainlight.x,terrainlight.y,terrainlight.z, .5, .7);
                                                        }
                                                        else if(environment==grassyenvironment){
-                                                               if(findDistancefast(&position,&viewer)<viewdistance*viewdistance/4)
+                                                               if(distsq(&position,&viewer)<viewdistance*viewdistance/4)
                                                                        Sprite::MakeSprite(cloudsprite, position,velocity, terrainlight.x*90/255,terrainlight.y*70/255,terrainlight.z*8/255, .5, .5);
                                                        }
                                                        else if(environment==desertenvironment){
-                                                               if(findDistancefast(&position,&viewer)<viewdistance*viewdistance/4)
+                                                               if(distsq(&position,&viewer)<viewdistance*viewdistance/4)
                                                                        Sprite::MakeSprite(cloudsprite, position,velocity, terrainlight.x*190/255,terrainlight.y*170/255,terrainlight.z*108/255, .5, .7);
                                                        }
                                                }
@@ -705,15 +705,15 @@ void Weapon::DoStuff(int i) {
                                                        XYZ terrainlight;
                                                        terrainlight=terrain.getLighting(tippoint.x,tippoint.z);
                                                        if(environment==snowyenvironment){
-                                                               if(findDistancefast(&tippoint,&viewer)<viewdistance*viewdistance/4)
+                                                               if(distsq(&tippoint,&viewer)<viewdistance*viewdistance/4)
                                                                        Sprite::MakeSprite(cloudsprite, tippoint,tipvelocity, terrainlight.x,terrainlight.y,terrainlight.z, .5, .7);
                                                        }
                                                        else if(environment==grassyenvironment){
-                                                               if(findDistancefast(&tippoint,&viewer)<viewdistance*viewdistance/4)
+                                                               if(distsq(&tippoint,&viewer)<viewdistance*viewdistance/4)
                                                                        Sprite::MakeSprite(cloudsprite, tippoint,tipvelocity, terrainlight.x*90/255,terrainlight.y*70/255,terrainlight.z*8/255, .5, .5);
                                                        }
                                                        else if(environment==desertenvironment){
-                                                               if(findDistancefast(&tippoint,&viewer)<viewdistance*viewdistance/4)
+                                                               if(distsq(&tippoint,&viewer)<viewdistance*viewdistance/4)
                                                                        Sprite::MakeSprite(cloudsprite, tippoint,tipvelocity, terrainlight.x*190/255,terrainlight.y*170/255,terrainlight.z*108/255, .5, .7);
                                                        }
                                                }
@@ -874,7 +874,7 @@ void Weapon::DoStuff(int i) {
                        flamedelay=.020;
                        flamedelay-=multiplier;
                        normalrot=0;
-                       if(Random()%50==0&&findDistancefast(&position,&viewer)>80) {
+                       if(Random()%50==0&&distsq(&position,&viewer)>80) {
                                XYZ shinepoint;
                                shinepoint=position+(tippoint-position)*(((float)abs(Random()%100))/100);
                                Sprite::MakeSprite(weaponshinesprite, shinepoint,normalrot, 1,1,1, (.1+(float)abs(Random()%100)/200-.25)*1/3*fast_sqrt(findDistance(&shinepoint,&viewer)), 1);
@@ -898,7 +898,7 @@ void Weapon::Draw() {
        static GLfloat M[16];
        
        if((frustum.SphereInFrustum(position.x,position.y,position.z,1)&&
-               findDistancefast(&viewer,&position)<viewdistance*viewdistance))
+               distsq(&viewer,&position)<viewdistance*viewdistance))
        {
                bool draw=false;
                if(owner==-1)
@@ -910,7 +910,7 @@ void Weapon::Draw() {
                                drawhowmany=1;
                } else {
                        if(player[owner].occluded<25)
-                               if((frustum.SphereInFrustum(player[owner].coords.x,player[owner].coords.y+player[owner].scale*3,player[owner].coords.z,player[owner].scale*8)&&findDistancefast(&viewer,&player[owner].coords)<viewdistance*viewdistance)||player[owner].skeleton.free==3)
+                               if((frustum.SphereInFrustum(player[owner].coords.x,player[owner].coords.y+player[owner].scale*3,player[owner].coords.z,player[owner].scale*8)&&distsq(&viewer,&player[owner].coords)<viewdistance*viewdistance)||player[owner].skeleton.free==3)
                                        draw=true;
                        if      (
                                (player[owner].targetanimation==knifeslashstartanim||
@@ -1073,12 +1073,12 @@ Weapons::Weapons()
 
 Weapons::~Weapons()
 {
-       if (Weapon::stafftextureptr) glDeleteTextures( 1, &Weapon::stafftextureptr );
-       if (Weapon::knifetextureptr) glDeleteTextures( 1, &Weapon::knifetextureptr );
-       if (Weapon::lightbloodknifetextureptr) glDeleteTextures( 1, &Weapon::lightbloodknifetextureptr );
-       if (Weapon::bloodknifetextureptr) glDeleteTextures( 1, &Weapon::bloodknifetextureptr );
-       if (Weapon::swordtextureptr) glDeleteTextures( 1, &Weapon::swordtextureptr );
-       if (Weapon::lightbloodswordtextureptr) glDeleteTextures( 1, &Weapon::lightbloodswordtextureptr );
-       if (Weapon::bloodswordtextureptr) glDeleteTextures( 1, &Weapon::bloodswordtextureptr );
+       Weapon::stafftextureptr.destroy();
+       Weapon::knifetextureptr.destroy();
+       Weapon::lightbloodknifetextureptr.destroy();
+       Weapon::bloodknifetextureptr.destroy();
+       Weapon::swordtextureptr.destroy();
+       Weapon::lightbloodswordtextureptr.destroy();
+       Weapon::bloodswordtextureptr.destroy();
 }