| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /*
- * MapFeaturesH3M.h, part of VCMI engine
- *
- * Authors: listed in file AUTHORS in main folder
- *
- * License: GNU General Public License v2.0 or later
- * Full text of license available in license.txt file, in main folder
- *
- */
- #pragma once
- VCMI_LIB_NAMESPACE_BEGIN
- enum class EMapFormat : uint8_t;
- struct MapFormatFeaturesH3M
- {
- private:
- static MapFormatFeaturesH3M getFeaturesROE();
- static MapFormatFeaturesH3M getFeaturesAB();
- static MapFormatFeaturesH3M getFeaturesSOD();
- static MapFormatFeaturesH3M getFeaturesCHR();
- static MapFormatFeaturesH3M getFeaturesWOG();
- static MapFormatFeaturesH3M getFeaturesHOTA(uint32_t hotaVersion);
- public:
- MapFormatFeaturesH3M() = default;
- static MapFormatFeaturesH3M find(EMapFormat format, uint32_t hotaVersion);
- // number of bytes in bitmask of appropriate type
- int factionsBytes;
- int heroesBytes;
- int artifactsBytes;
- int resourcesBytes;
- int skillsBytes;
- int spellsBytes;
- int buildingsBytes;
- // total number of elements of appropriate type
- int factionsCount;
- int heroesCount;
- int heroesPortraitsCount;
- int artifactsCount;
- int resourcesCount;
- int creaturesCount;
- int spellsCount;
- int skillsCount;
- int terrainsCount;
- int roadsCount;
- int riversCount;
- int artifactSlotsCount;
- int buildingsCount;
- // identifier that should be treated as "invalid", usually - '-1'
- int heroIdentifierInvalid;
- int artifactIdentifierInvalid;
- int creatureIdentifierInvalid;
- int spellIdentifierInvalid;
- // features from which map format are available
- bool levelROE = false;
- bool levelAB = false;
- bool levelSOD = false;
- bool levelCHR = false;
- bool levelWOG = false;
- bool levelHOTA0 = false;
- bool levelHOTA1 = false;
- bool levelHOTA2 = false;
- bool levelHOTA3 = false; // 1.6.0
- // level 4 - not released publicly?
- bool levelHOTA5 = false; // 1.7.0
- bool levelHOTA6 = false; // 1.7.1
- bool levelHOTA7 = false; // 1.7.2
- bool levelHOTA8 = false; // 1.7.3
- };
- VCMI_LIB_NAMESPACE_END
|