OpenTTD Source 20260208-master-g43af8e94d0
newgrf_badge_type.h
Go to the documentation of this file.
1/*
2 * This file is part of OpenTTD.
3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
4 * OpenTTD 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.
5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <https://www.gnu.org/licenses/old-licenses/gpl-2.0>.
6 */
7
9
10#ifndef NEWGRF_BADGE_TYPE_H
11#define NEWGRF_BADGE_TYPE_H
12
13#include "core/enum_type.hpp"
15
18
19template <> struct std::hash<BadgeClassID> {
20 std::size_t operator()(const BadgeClassID &badge_class_index) const noexcept
21 {
22 return std::hash<BadgeClassID::BaseType>{}(badge_class_index.base());
23 }
24};
25
36using BadgeFlags = EnumBitSet<BadgeFlag, uint8_t>;
37
38using BadgeFilterChoices = std::unordered_map<BadgeClassID, BadgeID>;
39
40#endif /* NEWGRF_BADGE_TYPE_H */
Enum-as-bit-set wrapper.
Type (helpers) for enums.
BadgeFlag
Configuration flags for badges.
@ NameListStop
Stop adding names to the name list after this badge.
@ UseCompanyColour
Apply company colour palette to this badge.
@ NameListFirstOnly
Don't add this name to the name list if not first.
@ Copy
Copy badge to related things.
@ HasText
Internal flag set if the badge has text.
@ NameListSkip
Don't show name in name list at all.
Type (helpers) for making a strong typedef that is a distinct type.
Templated helper to make a type-safe 'typedef' representing a single POD value.