// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 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 Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef RY_CONTINENT_SHEET #define RY_CONTINENT_SHEET #include "nel/misc/vector_2f.h" // #include "game_share/dir_light_setup.h" #include "game_share/season.h" #include "game_share/fog_map_build.h" #include "entity_sheet.h" // #include "village_sheet.h" #include "game_share/time_weather_season/weather_function_sheet.h" // a location in a continent /*class CLandMark { public: NLMISC::CVector2f Pos; std::string TitleTextID; // should be converted with CI18N to get the actual title in ucstring public: void build(const NLGEORGES::UFormElm &item); void serial(class NLMISC::IStream &f) throw(NLMISC::EStream); };*/ // Parameters common to continent image in the client and to its sheet class CContinentParameters { public: // ctor/dtor CContinentParameters(); virtual ~CContinentParameters() {} /// Name of the continent. std::string Name; /// PACS RBank filename. std::string PacsRBank; /// PACS GR filename. std::string PacsGR; /// LandscapeIG filename. std::string LandscapeIG; // New Sky system : gives name of the sky sheet per season. If present, this bypass the SkyDay & SkyNight fields std::string SkySheet[EGSPD::CSeason::Invalid]; /// SkyDay filename. std::string SkyDay; /// SkyNight filename. std::string SkyNight; // SkyFogPart filename std::string SkyFogPartName; /// Background IG filename. std::string BackgroundIGName; // Name of IGs for canopy, depending on season. If the string is empty, then the value in BackgroundIGName is used instead std::string CanopyIGfileName[EGSPD::CSeason::Invalid]; /// MicroVeg filename. std::string MicroVeget; /// SmallBank filename. std::string SmallBank; /// FarBank filename. std::string FarBank; /// CoarseMeshMap filename. std::string CoarseMeshMap; // corner zones std::string ZoneMin; std::string ZoneMax; /// Entity sun contribution power float EntitySunContributionPower; /// Entity sun contribution max threshold float EntitySunContributionMaxThreshold; // Lanscape - Day CDirLightSetup LandscapeLightDay; // Lanscape - Dusk CDirLightSetup LandscapeLightDusk; // Lanscape - Night CDirLightSetup LandscapeLightNight; // Lanscape - PointLight Material. NLMISC::CRGBA LandscapePointLightMaterial; // Entity - Day CDirLightSetup EntityLightDay; // Entity - Dusk CDirLightSetup EntityLightDusk; // Entity - Night CDirLightSetup EntityLightNight; // Root - Day CDirLightSetup RootLightDay; // Root - Dusk CDirLightSetup RootLightDusk; // Root - Night CDirLightSetup RootLightNight; // Zone constructible class CZC { public: std::string Name; float ForceLoadDist; float LoadDist; float UnloadDist; bool EnableRuins; // Allow the display of shape of ruins (else building shape displayed through bot objects) void serial (class NLMISC::IStream &f) throw (NLMISC::EStream); CZC() { ForceLoadDist = 0.0f; LoadDist = 0.0f; UnloadDist = 0.0f; EnableRuins = false; } }; std::vector ZCList; // fog params CFogMapBuild FogMapBuild; float FogStart; float FogEnd; float RootFogStart; float RootFogEnd; // Indoor continent ? bool Indoor; // name of the texture for the world map std::string WorldMap; // position of landmarks //std::vector LandMarks; // Localized name std::string LocalizedName; // list of .primitive containing micro-life zones std::vector MicroLifeZones; // Is the landscape tile colors on/off bool TileColorMono[EGSPD::CSeason::Invalid]; float TileColorFactor[EGSPD::CSeason::Invalid]; // Landscape lightmap factor float StaticLightingFactor[EGSPD::CSeason::Invalid]; // Mapping from Logical season, to visual season EGSPD::CSeason::TSeason ForceDisplayedSeason[EGSPD::CSeason::Invalid]; void build(const NLGEORGES::UFormElm &item); void serial(class NLMISC::IStream &f) throw(NLMISC::EStream); private: void buildFogMapBuild(const NLGEORGES::UFormElm &item); }; class CContinentSheet : public CEntitySheet { public: CContinentParameters Continent; // base parameters for continents // Villages std::vector Villages; // Weather functions CWeatherFunctionSheet WeatherFunction[EGSPD::CSeason::Invalid]; public: // ctor CContinentSheet(); // from CEntitySheet virtual void build(const NLGEORGES::UFormElm &item); virtual void serial(class NLMISC::IStream &f) throw(NLMISC::EStream); }; #endif