X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FTerrain.cpp;h=1af30585241816c182360a913e813c112270bcfc;hb=8557e339c9a2d10afdf6465e02eca6b87efc961f;hp=74afa40af14551efc81a94686f266a3d58a4409c;hpb=9e06cb73424ca3f0eb971350c5dfb3cdaec0d5bf;p=lugaru.git diff --git a/Source/Terrain.cpp b/Source/Terrain.cpp index 74afa40..1af3058 100644 --- a/Source/Terrain.cpp +++ b/Source/Terrain.cpp @@ -103,7 +103,7 @@ int Terrain::lineTerrain(XYZ p1,XYZ p2, XYZ *p) triangles[2].z=j; intersecting=LineFacet(p1,p2,triangles[0],triangles[1],triangles[2],&point); - distance=findDistancefast(&p1,&point); + distance=distsq(&p1,&point); if((distanceviewdistsquared)distance=viewdistsquared; colors[i][j][3]=(viewdistsquared-(distance-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared; } @@ -222,7 +222,7 @@ void Terrain::UpdateTransparencyotherother(int whichx, int whichy){ vertex.x=i*scale; vertex.z=j*scale; vertex.y=heightmap[i][j]*scale; - distance=findDistancefast(&viewer,&vertex); + distance=distsq(&viewer,&vertex); if(distance>viewdistsquared)distance=viewdistsquared; colors[i][j][3]=(viewdistsquared-(distance-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared; } @@ -982,7 +982,7 @@ void Terrain::draw(int layer) terrainpoint.x=i*patch_size+(patch_size)/2; terrainpoint.y=viewer.y;//heightmap[i][j]*scale; terrainpoint.z=j*patch_size+(patch_size)/2; - distance[i][j]=findDistancefast(&viewer,&terrainpoint); + distance[i][j]=distsq(&viewer,&terrainpoint); } } } @@ -1047,7 +1047,7 @@ void Terrain::drawdecals() for(i=0;i=1)glColor4f(1,1,1,decalopacity[i]); if(distancemult<1)glColor4f(1,1,1,decalopacity[i]*distancemult); } if(decaltype[i]==footprintdecal||decaltype[i]==bodyprintdecal){ - distancemult=(viewdistsquared-(findDistancefast(&viewer,&decalposition[i])-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared; + distancemult=(viewdistsquared-(distsq(&viewer,&decalposition[i])-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared; if(distancemult>=1){ glColor4f(1,1,1,decalopacity[i]); if(decalalivetime[i]>3)glColor4f(1,1,1,decalopacity[i]*(5-decalalivetime[i])/2); @@ -1103,7 +1103,7 @@ void Terrain::drawdecals() } } if((decaltype[i]==blooddecal||decaltype[i]==blooddecalfast||decaltype[i]==blooddecalslow)){ - distancemult=(viewdistsquared-(findDistancefast(&viewer,&decalposition[i])-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared; + distancemult=(viewdistsquared-(distsq(&viewer,&decalposition[i])-(viewdistsquared*fadestart))*(1/(1-fadestart)))/viewdistsquared; if(distancemult>=1){ glColor4f(decalbrightness[i],decalbrightness[i],decalbrightness[i],decalopacity[i]); if(decalalivetime[i]<4)glColor4f(decalbrightness[i],decalbrightness[i],decalbrightness[i],decalopacity[i]*decalalivetime[i]*.25); @@ -1516,13 +1516,6 @@ void Terrain::DoShadows() Terrain::Terrain() { - bloodtexture = 0; - bloodtexture2 = 0; - shadowtexture = 0; - footprinttexture = 0; - bodyprinttexture = 0; - breaktexture = 0; - terraintexture = 0; size = 0; memset(patchobjectnum, 0, sizeof(patchobjectnum)); @@ -1563,12 +1556,12 @@ Terrain::Terrain() } Terrain::~Terrain() { - if(terraintexture)glDeleteTextures( 1, &terraintexture ); - if(shadowtexture) glDeleteTextures( 1, &shadowtexture ); - if(bodyprinttexture) glDeleteTextures( 1, &bodyprinttexture ); - if(footprinttexture) glDeleteTextures( 1, &footprinttexture ); - if(bloodtexture) glDeleteTextures( 1, &bloodtexture ); - if(bloodtexture2) glDeleteTextures( 1, &bloodtexture2 ); - if(breaktexture) glDeleteTextures( 1, &breaktexture ); + terraintexture.destroy(); + shadowtexture.destroy(); + bodyprinttexture.destroy(); + footprinttexture.destroy(); + bloodtexture.destroy(); + bloodtexture2.destroy(); + breaktexture.destroy(); }