From 1c1752f40aac20bf9a5e56817951a013c2219bed Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Tue, 10 Jun 2014 15:31:24 -0700 Subject: Generate the map server protocol Sigh, map server will have no smart filters yet --- src/mmo/ids.hpp | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src/mmo') diff --git a/src/mmo/ids.hpp b/src/mmo/ids.hpp index bfd7de9..c79b93c 100644 --- a/src/mmo/ids.hpp +++ b/src/mmo/ids.hpp @@ -26,15 +26,30 @@ # include "extract.hpp" -class Species : public Wrapped { public: explicit operator bool() const = delete; bool operator !() const = delete; Species() : Wrapped() {} protected: constexpr explicit Species(uint16_t a) : Wrapped(a) {} }; +class Species : public Wrapped { public: explicit operator bool() const = delete; bool operator !() const = delete; constexpr Species() : Wrapped() {} protected: constexpr explicit Species(uint16_t a) : Wrapped(a) {} }; -class AccountId : public Wrapped { public: AccountId() : Wrapped() {} protected: constexpr explicit AccountId(uint32_t a) : Wrapped(a) {} }; -class CharId : public Wrapped { public: CharId() : Wrapped() {} protected: constexpr explicit CharId(uint32_t a) : Wrapped(a) {} }; +constexpr Species NEGATIVE_SPECIES = Species(); + +inline +bool extract(XString str, Species *w) +{ + // lots of data files use this + if (str == "-1"_s) + { + *w = NEGATIVE_SPECIES; + return true; + } + return extract(str, &w->_value); +} + + +class AccountId : public Wrapped { public: constexpr AccountId() : Wrapped() {} protected: constexpr explicit AccountId(uint32_t a) : Wrapped(a) {} }; +class CharId : public Wrapped { public: constexpr CharId() : Wrapped() {} protected: constexpr explicit CharId(uint32_t a) : Wrapped(a) {} }; // important note: slave mobs synthesize PartyId as -BlockId of master -class PartyId : public Wrapped { public: PartyId() : Wrapped() {} protected: constexpr explicit PartyId(uint32_t a) : Wrapped(a) {} }; -class ItemNameId : public Wrapped { public: ItemNameId() : Wrapped() {} protected: constexpr explicit ItemNameId(uint16_t a) : Wrapped(a) {} }; +class PartyId : public Wrapped { public: constexpr PartyId() : Wrapped() {} protected: constexpr explicit PartyId(uint32_t a) : Wrapped(a) {} }; +class ItemNameId : public Wrapped { public: constexpr ItemNameId() : Wrapped() {} protected: constexpr explicit ItemNameId(uint16_t a) : Wrapped(a) {} }; -class BlockId : public Wrapped { public: BlockId() : Wrapped() {} protected: constexpr explicit BlockId(uint32_t a) : Wrapped(a) {} }; +class BlockId : public Wrapped { public: constexpr BlockId() : Wrapped() {} protected: constexpr explicit BlockId(uint32_t a) : Wrapped(a) {} }; class GmLevel { -- cgit v1.2.3-60-g2f50