diff options
author | Ben Longbons <b.r.longbons@gmail.com> | 2014-01-25 09:43:09 -0800 |
---|---|---|
committer | Ben Longbons <b.r.longbons@gmail.com> | 2014-01-25 10:14:44 -0800 |
commit | 34f0540da418b01dd4d49f6ecf72569d3cfecfdf (patch) | |
tree | bf7c4623b0d794e4db8c72b0906bb40807d62ba8 /src/common/version.hpp | |
parent | 9a4c3a44476f3306a8deed8a836e8fbc25ceb55f (diff) | |
download | tmwa-34f0540da418b01dd4d49f6ecf72569d3cfecfdf.tar.gz tmwa-34f0540da418b01dd4d49f6ecf72569d3cfecfdf.tar.bz2 tmwa-34f0540da418b01dd4d49f6ecf72569d3cfecfdf.tar.xz tmwa-34f0540da418b01dd4d49f6ecf72569d3cfecfdf.zip |
Implement unified config parsing (mostly)
Diffstat (limited to 'src/common/version.hpp')
-rw-r--r-- | src/common/version.hpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/common/version.hpp b/src/common/version.hpp index 677806b..a2c4e05 100644 --- a/src/common/version.hpp +++ b/src/common/version.hpp @@ -3,6 +3,8 @@ # include <cstdint> +# include "../strings/fwd.hpp" + // TODO make these bitwise enums # define TMWA_FLAG_REGISTRATION 0x01 @@ -25,10 +27,43 @@ struct Version }; static_assert(sizeof(Version) == 8, "this is sent over the network, can't change"); +extern Version CURRENT_VERSION; + extern Version CURRENT_LOGIN_SERVER_VERSION; extern Version CURRENT_CHAR_SERVER_VERSION; extern Version CURRENT_MAP_SERVER_VERSION; extern const char CURRENT_VERSION_STRING[]; +bool extract(XString str, Version *vers); + +constexpr +bool operator < (Version l, Version r) +{ + return (l.major < r.major + || (l.major == r.major + && (l.minor < r.minor + || (l.minor == r.minor + && (l.patch < r.patch + || (l.patch == r.patch + && (l.devel < r.devel + || (l.devel == r.devel + && l.vend < r.vend)))))))); +} +constexpr +bool operator > (Version l, Version r) +{ + return r < l; +} +constexpr +bool operator <= (Version l, Version r) +{ + return !(r < l); +} +constexpr +bool operator >= (Version l, Version r) +{ + return !(l < r); +} + #endif // TMWA_COMMON_VERSION_HPP |