static int firstintersecting;
static XYZ point;
static int startx, starty;
- static float slope;
static int endx, endy;
- static int numtris = (size - 1) * (size - 1) * 2;
static float highest, lowest;
firstintersecting = -1;
{
static XYZ vertex;
static int i, j, a, b, c, d, patch_size, stepsize;
- static float distance;
patch_size = size / subdivision;
bool Terrain::load(const char *fileName)
{
- static long i, j;
+ static long i, j;
static long x, y;
static float patch_size;
for(j=0;j<size;j++){
total=0;
todivide=0;
- if(i!=0){ total+=opacityother[j][i-1]; todivide++;}
- if(i!=size-1){ total+=opacityother[j][i+1]; todivide++;}
- if(j!=0){ total+=opacityother[j-1][i]; todivide++;}
- if(j!=size-1){ total+=opacityother[j+1][i]; todivide++;}
- if(i!=0&&j!=0){ total+=opacityother[j-1][i-1]; todivide++;}
- if(i!=size-1&&j!=0){ total+=opacityother[j-1][i+1]; todivide++;}
- if(j!=size-1&&i!=size-1){ total+=opacityother[j+1][i+1]; todivide++;}
- if(j!=size-1&&i!=0){ total+=opacityother[j+1][i-1]; todivide++;}
+ if(i!=0){total+=opacityother[j][i-1]; todivide++;}
+ if(i!=size-1){total+=opacityother[j][i+1]; todivide++;}
+ if(j!=0){total+=opacityother[j-1][i]; todivide++;}
+ if(j!=size-1){total+=opacityother[j+1][i]; todivide++;}
+ if(i!=0&&j!=0){total+=opacityother[j-1][i-1]; todivide++;}
+ if(i!=size-1&&j!=0){total+=opacityother[j-1][i+1]; todivide++;}
+ if(j!=size-1&&i!=size-1){total+=opacityother[j+1][i+1]; todivide++;}
+ if(j!=size-1&&i!=0){total+=opacityother[j+1][i-1]; todivide++;}
total+=opacityother[j][i]; todivide++;
opacityother[j][i]=total/(float)todivide;
float Terrain::getHeight(float pointx, float pointz)
{
- static float height1, height2;
static int tilex, tiley;
static XYZ startpoint, endpoint, intersect, triangle[3], average;
float Terrain::getHeightExtrude(float pointx, float pointz, float point2x, float point2z)
{
- static float height1, height2;
static int tilex, tiley;
static XYZ startpoint, endpoint, intersect, triangle[3], average;
if (opacity == 1 && j != subdivision && i != subdivision)
if (distance[i + 1][j + 1] > viewdistsquared * fadestart - viewdistsquared)
opacity = 0;
- glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+ glMatrixMode(GL_MODELVIEW);
glPushMatrix();
if (frustum.CubeInFrustum(i * patch_size + patch_size * .5, avgypatch[i][j], j * patch_size + patch_size * .5, heightypatch[i][j] / 2)) {
if (environment == desertenvironment && distance[i][j] > viewdistsquared / 4)
void Terrain::drawdecals()
{
if (decals) {
- static int i, j;
+ static int i;
static float distancemult;
static int lasttype;
- static float patch_size = size / subdivision * scale;
static float viewdistsquared;
static bool blend;
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
- glMatrixMode(GL_MODELVIEW); // Select The Modelview Matrix
+ glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glBegin(GL_TRIANGLES);
for (int j = 0; j < 3; j++) {