Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / client / src / client_sheets / continent_sheet.h
blob0d791f396ba40cf848276c4667d44155cfcf9419
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This source file has been modified by the following contributors:
5 // Copyright (C) 2014 Jan BOON (Kaetemi) <jan.boon@kaetemi.be>
6 //
7 // This program is free software: you can redistribute it and/or modify
8 // it under the terms of the GNU Affero General Public License as
9 // published by the Free Software Foundation, either version 3 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU Affero General Public License for more details.
17 // You should have received a copy of the GNU Affero General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef RY_CONTINENT_SHEET
23 #define RY_CONTINENT_SHEET
26 #include "nel/misc/vector_2f.h"
28 #include "game_share/dir_light_setup.h"
29 #include "game_share/season.h"
30 #include "game_share/fog_map_build.h"
31 #include "entity_sheet.h"
33 #include "village_sheet.h"
34 #include "game_share/time_weather_season/weather_function_sheet.h"
37 // a location in a continent
38 /*class CLandMark
40 public:
41 NLMISC::CVector2f Pos;
42 std::string TitleTextID; // should be converted with CI18N to get the actual title in ucstring
43 public:
44 void build(const NLGEORGES::UFormElm &item);
45 void serial(NLMISC::IStream &f);
46 };*/
48 // Parameters common to continent image in the client and to its sheet
49 class CContinentParameters
51 public:
52 // ctor/dtor
53 CContinentParameters();
54 virtual ~CContinentParameters() {}
56 /// Name of the continent.
57 std::string Name;
59 /// PACS RBank filename.
60 std::string PacsRBank;
62 /// PACS GR filename.
63 std::string PacsGR;
65 /// LandscapeIG filename.
66 std::string LandscapeIG;
68 // New Sky system : gives name of the sky sheet per season. If present, this bypass the SkyDay & SkyNight fields
69 std::string SkySheet[EGSPD::CSeason::Invalid];
71 /// SkyDay filename.
72 std::string SkyDay;
74 /// SkyNight filename.
75 std::string SkyNight;
77 // SkyFogPart filename
78 std::string SkyFogPartName;
80 /// Background IG filename.
81 std::string BackgroundIGName;
83 // Name of IGs for canopy, depending on season. If the string is empty, then the value in BackgroundIGName is used instead
84 std::string CanopyIGfileName[EGSPD::CSeason::Invalid];
86 /// MicroVeg filename.
87 std::string MicroVeget;
89 /// SmallBank filename.
90 std::string SmallBank;
92 /// FarBank filename.
93 std::string FarBank;
95 /// CoarseMeshMap filename.
96 std::string CoarseMeshMap;
98 // corner zones
99 std::string ZoneMin;
100 std::string ZoneMax;
102 /// Entity sun contribution power
103 float EntitySunContributionPower;
105 /// Entity sun contribution max threshold
106 float EntitySunContributionMaxThreshold;
108 // Lanscape - Day
109 CDirLightSetup LandscapeLightDay;
111 // Lanscape - Dusk
112 CDirLightSetup LandscapeLightDusk;
114 // Lanscape - Night
115 CDirLightSetup LandscapeLightNight;
117 // Lanscape - PointLight Material.
118 NLMISC::CRGBA LandscapePointLightMaterial;
120 // Entity - Day
121 CDirLightSetup EntityLightDay;
123 // Entity - Dusk
124 CDirLightSetup EntityLightDusk;
126 // Entity - Night
127 CDirLightSetup EntityLightNight;
129 // Root - Day
130 CDirLightSetup RootLightDay;
132 // Root - Dusk
133 CDirLightSetup RootLightDusk;
135 // Root - Night
136 CDirLightSetup RootLightNight;
138 // Zone constructible
139 class CZC
141 public:
142 std::string Name;
143 float ForceLoadDist;
144 float LoadDist;
145 float UnloadDist;
146 bool EnableRuins; // Allow the display of shape of ruins (else building shape displayed through bot objects)
147 void serial (NLMISC::IStream &f);
149 CZC()
151 ForceLoadDist = 0.0f;
152 LoadDist = 0.0f;
153 UnloadDist = 0.0f;
154 EnableRuins = false;
157 std::vector<CZC> ZCList;
159 // fog params
160 CFogMapBuild FogMapBuild;
161 float FogStart;
162 float FogEnd;
163 float RootFogStart;
164 float RootFogEnd;
166 // Indoor continent ?
167 bool Indoor;
169 // name of the texture for the world map
170 std::string WorldMap;
172 // position of landmarks
173 //std::vector<CLandMark> LandMarks;
175 // Localized name
176 std::string LocalizedName;
178 // list of .primitive containing micro-life zones
179 std::vector<std::string> MicroLifeZones;
181 // Is the landscape tile colors on/off
182 bool TileColorMono[EGSPD::CSeason::Invalid];
183 float TileColorFactor[EGSPD::CSeason::Invalid];
184 // Landscape lightmap factor
185 float StaticLightingFactor[EGSPD::CSeason::Invalid];
187 // Mapping from Logical season, to visual season
188 EGSPD::CSeason::TSeason ForceDisplayedSeason[EGSPD::CSeason::Invalid];
191 void build(const NLGEORGES::UFormElm &item);
192 void serial(NLMISC::IStream &f);
194 private:
196 void buildFogMapBuild(const NLGEORGES::UFormElm &item);
199 class CContinentSheet : public CEntitySheet
201 public:
202 CContinentParameters Continent; // base parameters for continents
203 // Villages
204 std::vector<CVillageSheet> Villages;
205 // Weather functions
206 CWeatherFunctionSheet WeatherFunction[EGSPD::CSeason::Invalid];
207 public:
208 // ctor
209 CContinentSheet();
210 // from CEntitySheet
211 virtual void build(const NLGEORGES::UFormElm &item);
212 virtual void serial(NLMISC::IStream &f);
215 #endif