summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/TerrainRegion.h
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-01 21:23:39 +0200
committerAki <please@ignore.pl>2022-04-01 21:23:39 +0200
commit3c487c5cd69c53d6fea948643c0a76df03516605 (patch)
tree72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /StarsEx/TerrainRegion.h
parent8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff)
downloadstarshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2
Moved Stars45 to StarsEx
Diffstat (limited to 'StarsEx/TerrainRegion.h')
-rw-r--r--StarsEx/TerrainRegion.h125
1 files changed, 125 insertions, 0 deletions
diff --git a/StarsEx/TerrainRegion.h b/StarsEx/TerrainRegion.h
new file mode 100644
index 0000000..5f84bab
--- /dev/null
+++ b/StarsEx/TerrainRegion.h
@@ -0,0 +1,125 @@
+/* Starshatter: The Open Source Project
+ Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
+ Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
+ Copyright (c) 1997-2006, Destroyer Studios LLC.
+
+ AUTHOR: John DiCamillo
+
+
+ OVERVIEW
+ ========
+ Various heavenly bodies
+*/
+
+#ifndef TerrainRegion_h
+#define TerrainRegion_h
+
+#include "Types.h"
+#include "StarSystem.h"
+#include "Weather.h"
+
+// +--------------------------------------------------------------------+
+
+const double TERRAIN_ALTITUDE_LIMIT = 35e3;
+
+class TerrainLayer;
+
+// +--------------------------------------------------------------------+
+
+class TerrainRegion : public OrbitalRegion
+{
+ friend class StarSystem;
+
+public:
+ TerrainRegion(StarSystem* sys, const char* n, double r, Orbital* prime=0);
+ virtual ~TerrainRegion();
+
+ // operations:
+ virtual void Update();
+
+ // accessors:
+ const Text& PatchName() const { return patch_name; }
+ const Text& PatchTexture() const { return patch_texture; }
+ const Text& ApronName() const { return apron_name; }
+ const Text& ApronTexture() const { return apron_texture; }
+ const Text& WaterTexture() const { return water_texture; }
+ const Text& DetailTexture0() const { return noise_tex0; }
+ const Text& DetailTexture1() const { return noise_tex1; }
+ const Text& HazeName() const { return haze_name; }
+ const Text& CloudsHigh() const { return clouds_high; }
+ const Text& ShadesHigh() const { return shades_high; }
+ const Text& CloudsLow() const { return clouds_low; }
+ const Text& ShadesLow() const { return shades_low; }
+ const Text& EnvironmentTexture(int n) const;
+
+ Color SunColor() const { return sun_color[24]; }
+ Color SkyColor() const { return sky_color[24]; }
+ Color FogColor() const { return fog_color[24]; }
+ Color Ambient() const { return ambient[24]; }
+ Color Overcast() const { return overcast[24]; }
+ Color CloudColor() const { return cloud_color[24];}
+ Color ShadeColor() const { return shade_color[24];}
+
+ double LateralScale() const { return scale; }
+ double MountainScale() const { return mtnscale; }
+ double FogDensity() const { return fog_density; }
+ double FogScale() const { return fog_scale; }
+ double DayPhase() const { return day_phase; }
+ double HazeFade() const { return haze_fade; }
+ double CloudAltHigh() const { return clouds_alt_high; }
+ double CloudAltLow() const { return clouds_alt_low; }
+ Weather& GetWeather() { return weather; }
+ List<TerrainLayer>& GetLayers() { return layers; }
+
+ bool IsEclipsed() const { return eclipsed; }
+ void SetEclipsed(bool e) { eclipsed = e; }
+
+ void LoadSkyColors(const char* bmp_name);
+ void AddLayer(double h, const char* tile, const char* detail=0);
+
+protected:
+ Text patch_name;
+ Text patch_texture;
+ Text apron_name;
+ Text apron_texture;
+ Text water_texture;
+ Text env_texture_positive_x;
+ Text env_texture_negative_x;
+ Text env_texture_positive_y;
+ Text env_texture_negative_y;
+ Text env_texture_positive_z;
+ Text env_texture_negative_z;
+ Text noise_tex0;
+ Text noise_tex1;
+ Text haze_name;
+ Text clouds_high;
+ Text clouds_low;
+ Text shades_high;
+ Text shades_low;
+
+ Color sun_color[25];
+ Color sky_color[25];
+ Color fog_color[25];
+ Color ambient[25];
+ Color overcast[25];
+ Color cloud_color[25];
+ Color shade_color[25];
+
+ double scale;
+ double mtnscale;
+
+ double fog_density;
+ double fog_scale;
+ double day_phase;
+ double haze_fade;
+ double clouds_alt_high;
+ double clouds_alt_low;
+
+ Weather weather;
+ bool eclipsed;
+
+ List<TerrainLayer> layers;
+};
+
+#endif // TerrainRegion_h
+