X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FEnvironment%2FTerrain.hpp;h=cc1accce37eec8485e2ee2e23b41c40f723a90ca;hb=6a8cb464330e92163c8feaf101b8b5837c973bba;hp=884829c9409b90b57c2de1f76911eff573693c6a;hpb=03fbcc5b5e18dbf62c48849fc8d02cd250aa744e;p=lugaru.git diff --git a/Source/Environment/Terrain.hpp b/Source/Environment/Terrain.hpp index 884829c..cc1accc 100644 --- a/Source/Environment/Terrain.hpp +++ b/Source/Environment/Terrain.hpp @@ -1,6 +1,6 @@ /* Copyright (C) 2003, 2010 - Wolfire Games -Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file) +Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file) This file is part of Lugaru. @@ -23,16 +23,16 @@ along with Lugaru. If not, see . #include "Environment/Lights.hpp" #include "Graphic/Decal.hpp" -#include "Graphic/gamegl.hpp" #include "Graphic/Texture.hpp" +#include "Graphic/gamegl.hpp" #include "Math/Frustum.hpp" #include "Math/XYZ.hpp" #include "Utils/ImageIO.hpp" -#define max_terrain_size 256 -#define curr_terrain_size size -#define subdivision 64 -#define max_patch_elements (max_terrain_size/subdivision)*(max_terrain_size/subdivision)*54 +#define max_terrain_size 256 +#define curr_terrain_size size +#define subdivision 64 +#define max_patch_elements (max_terrain_size / subdivision) * (max_terrain_size / subdivision) * 54 #define allfirst 0 #define mixed 1 @@ -59,8 +59,7 @@ public: Texture terraintexture; short size; - int patchobjectnum[subdivision][subdivision]; - unsigned int patchobjects[subdivision][subdivision][300]; + std::vector patchobjects[subdivision][subdivision]; float scale; int type; @@ -75,7 +74,7 @@ public: int numtris[subdivision][subdivision]; int textureness[subdivision][subdivision]; - GLfloat vArray[(max_patch_elements)*subdivision*subdivision]; + GLfloat vArray[(max_patch_elements)*subdivision * subdivision]; bool visible[subdivision][subdivision]; float avgypatch[subdivision][subdivision]; @@ -88,10 +87,11 @@ public: std::vector decals; void AddObject(XYZ where, float radius, int id); + void DeleteObject(unsigned int id); void DeleteDecal(int which); void MakeDecal(decal_type type, XYZ where, float size, float opacity, float rotation); void MakeDecalLock(decal_type type, XYZ where, int whichx, int whichy, float size, float opacity, float rotation); - int lineTerrain(XYZ p1, XYZ p2, XYZ *p); + int lineTerrain(XYZ p1, XYZ p2, XYZ* p); float getHeight(float pointx, float pointz); float getOpacity(float pointx, float pointz); XYZ getLighting(float pointx, float pointz);