| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- /*
 
-  * CModVersion.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
 
-  *
 
-  */
 
- #include "StdInc.h"
 
- #include "CModVersion.h"
 
- VCMI_LIB_NAMESPACE_BEGIN
 
- CModVersion CModVersion::GameVersion()
 
- {
 
- 	return CModVersion(VCMI_VERSION_MAJOR, VCMI_VERSION_MINOR, VCMI_VERSION_PATCH);
 
- }
 
- CModVersion CModVersion::fromString(std::string from)
 
- {
 
- 	int major = 0;
 
- 	int minor = 0;
 
- 	int patch = 0;
 
- 	try
 
- 	{
 
- 		auto pointPos = from.find('.');
 
- 		major = std::stoi(from.substr(0, pointPos));
 
- 		if(pointPos != std::string::npos)
 
- 		{
 
- 			from = from.substr(pointPos + 1);
 
- 			pointPos = from.find('.');
 
- 			minor = std::stoi(from.substr(0, pointPos));
 
- 			if(pointPos != std::string::npos)
 
- 				patch = std::stoi(from.substr(pointPos + 1));
 
- 		}
 
- 	}
 
- 	catch(const std::invalid_argument &)
 
- 	{
 
- 		return CModVersion();
 
- 	}
 
- 	return CModVersion(major, minor, patch);
 
- }
 
- std::string CModVersion::toString() const
 
- {
 
- 	return std::to_string(major) + '.' + std::to_string(minor) + '.' + std::to_string(patch);
 
- }
 
- bool CModVersion::compatible(const CModVersion & other, bool checkMinor, bool checkPatch) const
 
- {
 
- 	return  (major == other.major &&
 
- 			(!checkMinor || minor >= other.minor) &&
 
- 			(!checkPatch || minor > other.minor || (minor == other.minor && patch >= other.patch)));
 
- }
 
- bool CModVersion::isNull() const
 
- {
 
- 	return major == 0 && minor == 0 && patch == 0;
 
- }
 
- VCMI_LIB_NAMESPACE_END
 
 
  |