+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include "Game.h"
#include "Terrain.h"
#include "Objects.h"
-#include "Game.h"
extern XYZ viewer;
extern float viewdistance;
extern float lightambient[3],lightbrightness[3];
extern Light light;
extern float multiplier;
extern FRUSTUM frustum;
-extern float texdetail,terraindetail;
+extern float texdetail;
extern int detail;
extern bool decals;
extern float blurness;
}
-bool Terrain::load(char *fileName)
+bool Terrain::load(const char *fileName)
{
static long i,j;
static long x,y;
static float patch_size;
float temptexdetail=texdetail;
- texdetail=terraindetail;
//LoadTGA( fileName );
+
+ // Fixing filename so that it works with its own os
+ char * FixedFN = ConvertFileName(fileName);
+
unsigned char fileNamep[256];
- CopyCStringToPascal(fileName,fileNamep);
+ CopyCStringToPascal(FixedFN, fileNamep);
//Load Image
upload_image( fileNamep ,0);
for(i=0;i<size;i++){
for(j=0;j<size;j++){
- heightmap[size-1-i][j]=(float)((texture.data[(i+(j*size))*texture.bpp/8]))/5/terraindetail;
+ heightmap[size-1-i][j]=(float)((texture.data[(i+(j*size))*texture.bpp/8]))/5;
}
}
points[3].x=(size/subdivision)*i;
points[3].z=(size/subdivision)*(j+1);
points[3].y=heightmap[(int)points[3].x][(int)points[3].z];
- points[0]*=scale*terraindetail;
- points[1]*=scale*terraindetail;
- points[2]*=scale*terraindetail;
- points[3]*=scale*terraindetail;
+ points[0]*=scale;
+ points[1]*=scale;
+ points[2]*=scale;
+ points[3]*=scale;
if(!done&&where.x+radius>points[0].x&&where.x-radius<points[2].x&&where.z+radius>points[0].z&&where.z-radius<points[2].z){
patchobjects[i][j][patchobjectnum[i][j]]=id;
patchobjectnum[i][j]++;