OpenTTD Source 20250613-master-ga1786fa1f4
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 <http://www.gnu.org/licenses/>.
6 */
7
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
26enum class BadgeFlag : uint8_t {
27 Copy = 0,
28 NameListStop = 1,
31
32 HasText,
33};
35
36using BadgeFilterChoices = std::unordered_map<BadgeClassID, BadgeID>;
37
38#endif /* NEWGRF_BADGE_TYPE_H */
Type (helpers) for enums.
@ 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.
Type (helpers) for making a strong typedef that is a distinct type.