// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #ifndef RYZOM_CONTINENT_H #define RYZOM_CONTINENT_H #include "nel/misc/types_nl.h" namespace CONTINENT { enum TContinent { FYROS = 0, ZORAI, TRYKER, MATIS, BAGNE, NEXUS, ROUTE_GOUFFRE, SOURCES, TERRE, FYROS_ISLAND, FYROS_NEWBIE, TRYKER_ISLAND, TRYKER_NEWBIE, ZORAI_ISLAND, MATIS_ISLAND, ZORAI_NEWBIE, MATIS_NEWBIE, TESTROOM, INDOORS, NEWBIELAND, R2_ROOTS, R2_DESERT, R2_LAKES, R2_FOREST, R2_JUNGLE, CORRUPTED_MOOR, KITINIERE, UNKNOWN, // NB_RESPAWN_POINT_TYPE = UNKNOWN, NB_CONTINENTS = UNKNOWN }; /** * get continent type corresponding to input string * \param str the input string * \return the TContinent associated to this string (UNKNOWN if the string cannot be interpreted) */ TContinent toContinent(const std::string &str); /** * get the continent type string corresponding to enum * \param nature the TContinent value * \return nature as a string (or UNKNOWN) */ const std::string& toString(TContinent continent); // A small wrapper around the continent enum to allow it // to be used as a serialisable map key. struct TContinentId { TContinentId() : _Continent(CONTINENT::UNKNOWN) {} TContinentId(CONTINENT::TContinent cont) : _Continent(cont) {} void serial(NLMISC::IStream &s) { s.serialEnum(_Continent); } bool operator < (const TContinentId &other) const { return _Continent < other._Continent; } bool operator == (const TContinentId &other) const { return _Continent == other._Continent; } private: CONTINENT::TContinent _Continent; }; // A container to host respawn points counters typedef std::map < TContinentId, uint32 > TRespawnPointCounters; }; // namespace CONTINENT #endif // RYZOM_CONTINENT_H /* End of continent.h */