From 49944a3fbfeda6459457d386f6222ad20dc382be Mon Sep 17 00:00:00 2001 From: Kp Date: Mon, 25 Jan 2021 00:45:07 +0000 Subject: [PATCH] Use enum, not integral_constant, for netflag/netgrant constants --- common/main/multi.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/common/main/multi.h b/common/main/multi.h index c03742f75..d9b70f640 100644 --- a/common/main/multi.h +++ b/common/main/multi.h @@ -257,18 +257,34 @@ struct dispatch_table } #define define_netflag_bit_enum(NAME,STR) BIT_##NAME, -#define define_netflag_bit_mask(NAME,STR) static constexpr auto NAME = std::integral_constant{}; +#define define_netflag_bit_mask(NAME,STR) NAME = (1 << BIT_##NAME), #define define_netflag_powerup_mask(NAME,STR) | (NAME) enum { for_each_netflag_value(define_netflag_bit_enum) }; // Bitmask for netgame_info->AllowedItems to set allowed items in Netgame -for_each_netflag_value(define_netflag_bit_mask); +enum netflag_flag : +#if defined(DXX_BUILD_DESCENT_I) + uint16_t +#elif defined(DXX_BUILD_DESCENT_II) + uint32_t +#endif +{ + for_each_netflag_value(define_netflag_bit_mask) +}; enum { NETFLAG_DOPOWERUP = 0 for_each_netflag_value(define_netflag_powerup_mask) }; enum { BIT_NETGRANT_LASER = DXX_GRANT_LASER_LEVEL_BITS - 1, for_each_netgrant_value(define_netflag_bit_enum) BIT_NETGRANT_MAXIMUM }; -for_each_netgrant_value(define_netflag_bit_mask); +enum netgrant_flag : +#if defined(DXX_BUILD_DESCENT_I) + uint8_t +#elif defined(DXX_BUILD_DESCENT_II) + uint16_t +#endif +{ + for_each_netgrant_value(define_netflag_bit_mask) +}; #undef define_netflag_bit_enum #undef define_netflag_bit_mask #undef define_netflag_powerup_mask