X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FEnvironment%2FTerrain.hpp;h=884829c9409b90b57c2de1f76911eff573693c6a;hb=eae73ddd7a006ee6de9ffb01f3ec5f8e5fdc6d85;hp=f6525c4b0d286777f6d00ab1c5bd4a77b3cf340c;hpb=cd451341c5ee01374268559885871ca9d454cbd0;p=lugaru.git diff --git a/Source/Environment/Terrain.hpp b/Source/Environment/Terrain.hpp index f6525c4..884829c 100644 --- a/Source/Environment/Terrain.hpp +++ b/Source/Environment/Terrain.hpp @@ -22,10 +22,11 @@ along with Lugaru. If not, see . #define _TERRAIN_HPP_ #include "Environment/Lights.hpp" +#include "Graphic/Decal.hpp" #include "Graphic/gamegl.hpp" #include "Graphic/Texture.hpp" #include "Math/Frustum.hpp" -#include "Math/Quaternions.hpp" +#include "Math/XYZ.hpp" #include "Utils/ImageIO.hpp" #define max_terrain_size 256 @@ -39,15 +40,6 @@ along with Lugaru. If not, see . #define max_decals 1000 -#define shadowdecal 0 -#define footprintdecal 1 -#define blooddecal 2 -#define blooddecalfast 3 -#define shadowdecalpermanent 4 -#define breakdecal 5 -#define blooddecalslow 6 -#define bodyprintdecal 7 - #define snowyenvironment 0 #define grassyenvironment 1 #define desertenvironment 2 @@ -93,20 +85,12 @@ public: int patch_elements; - float decaltexcoords[max_decals][3][2]; - XYZ decalvertex[max_decals][3]; - int decaltype[max_decals]; - float decalopacity[max_decals]; - float decalrotation[max_decals]; - float decalalivetime[max_decals]; - float decalbrightness[max_decals]; - XYZ decalposition[max_decals]; - int numdecals; + std::vector decals; void AddObject(XYZ where, float radius, int id); void DeleteDecal(int which); - void MakeDecal(int type, XYZ where, float size, float opacity, float rotation); - void MakeDecalLock(int type, XYZ where, int whichx, int whichy, float size, float opacity, float rotation); + 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); float getHeight(float pointx, float pointz); float getOpacity(float pointx, float pointz); @@ -118,6 +102,7 @@ public: void drawdecals(); void draw(int layer); void DoShadows(); + void deleteDeadDecals(); Terrain();