summaryrefslogtreecommitdiff
path: root/src/core/enum_type.hpp
diff options
context:
space:
mode:
authorfrosch <frosch@openttd.org>2010-04-11 15:44:16 +0000
committerfrosch <frosch@openttd.org>2010-04-11 15:44:16 +0000
commit0d4e6c46ff4af97205823014e0b4300c7a2c3044 (patch)
treebe9825c3e22820b5a09cc8d31daa9be6b9127979 /src/core/enum_type.hpp
parent03c609f019f437f4fb7e252a2345d4b62ab930e8 (diff)
downloadopenttd-0d4e6c46ff4af97205823014e0b4300c7a2c3044.tar.xz
(svn r19605) -Codechange: Merge ExtractBits into EnumPropsT.
Diffstat (limited to 'src/core/enum_type.hpp')
-rw-r--r--src/core/enum_type.hpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/enum_type.hpp b/src/core/enum_type.hpp
index f6c111aae..ad157f30b 100644
--- a/src/core/enum_type.hpp
+++ b/src/core/enum_type.hpp
@@ -58,14 +58,16 @@ template <typename Tenum_t> struct EnumPropsT;
* @param Tbegin first valid value from the contiguous range (i.e. TRACK_BEGIN)
* @param Tend one past the last valid value from the contiguous range (i.e. TRACK_END)
* @param Tinvalid value used as invalid value marker (i.e. INVALID_TRACK)
+ * @param Tnum_bits Number of bits for storing the enum in command parameters
*/
-template <typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid>
+template <typename Tenum_t, typename Tstorage_t, Tenum_t Tbegin, Tenum_t Tend, Tenum_t Tinvalid, uint Tnum_bits = 8 * sizeof(Tstorage_t)>
struct MakeEnumPropsT {
typedef Tenum_t type; ///< enum type (i.e. Trackdir)
typedef Tstorage_t storage; ///< storage type (i.e. byte)
static const Tenum_t begin = Tbegin; ///< lowest valid value (i.e. TRACKDIR_BEGIN)
static const Tenum_t end = Tend; ///< one after the last valid value (i.e. TRACKDIR_END)
static const Tenum_t invalid = Tinvalid; ///< what value is used as invalid value (i.e. INVALID_TRACKDIR)
+ static const uint num_bits = Tnum_bits; ///< Number of bits for storing the enum in command parameters
};