summaryrefslogtreecommitdiff
path: root/src/common/version.hpp
diff options
context:
space:
mode:
authorBen Longbons <b.r.longbons@gmail.com>2014-01-25 09:43:09 -0800
committerBen Longbons <b.r.longbons@gmail.com>2014-01-25 10:14:44 -0800
commit34f0540da418b01dd4d49f6ecf72569d3cfecfdf (patch)
treebf7c4623b0d794e4db8c72b0906bb40807d62ba8 /src/common/version.hpp
parent9a4c3a44476f3306a8deed8a836e8fbc25ceb55f (diff)
downloadtmwa-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.hpp35
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