DEFINE_STRING_TABLE_LOOKUP(notify_access, NotifyAccess);
SpecialGlyph unit_active_state_to_glyph(UnitActiveState state) {
- switch (state) {
- case UNIT_ACTIVE:
- return SPECIAL_GLYPH_BLACK_CIRCLE;
- case UNIT_RELOADING:
- return SPECIAL_GLYPH_CIRCLE_ARROW;
- case UNIT_INACTIVE:
- return SPECIAL_GLYPH_WHITE_CIRCLE;
- case UNIT_FAILED:
- return SPECIAL_GLYPH_MULTIPLICATION_SIGN;
- case UNIT_ACTIVATING:
- case UNIT_DEACTIVATING:
- return SPECIAL_GLYPH_BLACK_CIRCLE;
- case UNIT_MAINTENANCE:
- return SPECIAL_GLYPH_WHITE_CIRCLE;
-
- default:
- return SPECIAL_GLYPH_BLACK_CIRCLE;
- }
+ static const SpecialGlyph map[_UNIT_ACTIVE_STATE_MAX] = {
+ [UNIT_ACTIVE] = SPECIAL_GLYPH_BLACK_CIRCLE,
+ [UNIT_RELOADING] = SPECIAL_GLYPH_CIRCLE_ARROW,
+ [UNIT_INACTIVE] = SPECIAL_GLYPH_WHITE_CIRCLE,
+ [UNIT_FAILED] = SPECIAL_GLYPH_MULTIPLICATION_SIGN,
+ [UNIT_ACTIVATING] = SPECIAL_GLYPH_BLACK_CIRCLE,
+ [UNIT_DEACTIVATING] = SPECIAL_GLYPH_BLACK_CIRCLE,
+ [UNIT_MAINTENANCE] = SPECIAL_GLYPH_WHITE_CIRCLE,
+ };
+
+ if (state < 0)
+ return _SPECIAL_GLYPH_INVALID;
+
+ assert(state < _UNIT_ACTIVE_STATE_MAX);
+ return map[state];
}