CommonLibSSE (Parapets fork)
ExtraMapMarker.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/B/BSExtraData.h"
4 #include "RE/E/ExtraDataTypes.h"
5 #include "RE/T/TESFullName.h"
6 
7 namespace RE
8 {
9  enum class MARKER_TYPE
10  {
11  kNone = 0,
12  kCity = 1,
13  kTown = 2,
14  kSettlement = 3,
15  kCave = 4,
16  kCamp = 5,
17  kFort = 6,
18  kNordicRuin = 7,
19  kDwemerRuin = 8,
20  kShipwreck = 9,
21  kGrove = 10,
22  kLandmark = 11,
23  kDragonLair = 12,
24  kFarm = 13,
25  kWoodMill = 14,
26  kMine = 15,
27  kImperialCamp = 16,
28  kStormcloakCamp = 17,
29  kDoomstone = 18,
30  kWheatMill = 19,
31  kSmelter = 20,
32  kStable = 21,
33  kImperialTower = 22,
34  kClearing = 23,
35  kPass = 24,
36  kAltar = 25,
37  kRock = 26,
38  kLighthouse = 27,
39  kOrcStronghold = 28,
40  kGiantCamp = 29,
41  kShack = 30,
42  kNordicTower = 31,
43  kNordicDwelling = 32,
44  kDocks = 33,
45  kShrine = 34,
46  kRiftenCastle = 35,
47  kRiftenCapitol = 36,
48  kWindhelmCastle = 37,
49  kWindhelmCapitol = 38,
50  kWhiterunCastle = 39,
51  kWhiterunCapitol = 40,
52  kSolitudeCastle = 41,
53  kSolitudeCapitol = 42,
54  kMarkarthCastle = 43,
55  kMarkarthCapitol = 44,
56  kWinterholdCastle = 45,
57  kWinterholdCapitol = 46,
58  kMorthalCastle = 47,
59  kMorthalCapitol = 48,
60  kFalkreathCastle = 49,
61  kFalkreathCapitol = 50,
62  kDawnstarCastle = 51,
63  kDawnstarCapitol = 52,
65  kDLC02_RavenRock = 54,
68  kDLC02_ToSkyrim = 57,
69  kDLC02_ToSolstheim = 58,
71 
72  kDoor = 61,
73  kQuestTarget = 62,
75  kPlayerSet = 64,
76  kYouAreHere = 65,
77  };
78 
80  {
81  public:
82  enum class Flag
83  {
84  kNone = 0,
85  kVisible = 1 << 0,
86  kCanTravelTo = 1 << 1,
87  kShowAllHidden = 1 << 2,
88  kUnk3 = 1 << 3,
89  kUnk4 = 1 << 4,
90  kUnk5 = 1 << 5,
91  kUnk6 = 1 << 6,
92  kUnk7 = 1 << 7
93  };
94 
95  constexpr void SetHidden(bool a_value) noexcept { a_value ? flags.set(Flag::kShowAllHidden) : flags.reset(Flag::kShowAllHidden); }
96  constexpr void SetVisible(bool a_value) noexcept { a_value ? flags.set(Flag::kVisible) : flags.reset(Flag::kVisible); }
97 
98  // members
101  std::uint8_t pad11; // 11
103  std::uint32_t pad04; // 14
104  };
105  static_assert(sizeof(MapMarkerData) == 0x18);
106 
108  {
109  public:
110  inline static constexpr auto RTTI = RTTI_ExtraMapMarker;
111  inline static constexpr auto EXTRADATATYPE = ExtraDataType::kMapMarker;
112 
113  virtual ~ExtraMapMarker(); // 00
114 
115  // override (BSExtraData)
116  virtual ExtraDataType GetType() const override; // 01 - { return kMapMarker; }
117  virtual bool IsNotEqual(const BSExtraData* a_rhs) const override; // 02
118 
119  // members
121  };
122  static_assert(sizeof(ExtraMapMarker) == 0x18);
123 }
Definition: BSExtraData.h:9
Definition: ExtraMapMarker.h:108
static constexpr auto RTTI
Definition: ExtraMapMarker.h:110
virtual bool IsNotEqual(const BSExtraData *a_rhs) const override
static constexpr auto EXTRADATATYPE
Definition: ExtraMapMarker.h:111
virtual ExtraDataType GetType() const override
virtual ~ExtraMapMarker()
MapMarkerData * mapData
Definition: ExtraMapMarker.h:120
Definition: ExtraMapMarker.h:80
constexpr void SetHidden(bool a_value) noexcept
Definition: ExtraMapMarker.h:95
TESFullName locationName
Definition: ExtraMapMarker.h:99
stl::enumeration< MARKER_TYPE, std::uint16_t > type
Definition: ExtraMapMarker.h:102
constexpr void SetVisible(bool a_value) noexcept
Definition: ExtraMapMarker.h:96
std::uint32_t pad04
Definition: ExtraMapMarker.h:103
std::uint8_t pad11
Definition: ExtraMapMarker.h:101
Flag
Definition: ExtraMapMarker.h:83
stl::enumeration< Flag, std::uint8_t > flags
Definition: ExtraMapMarker.h:100
Definition: TESFullName.h:9
constexpr enumeration & reset(Args... a_args) noexcept requires(std
Definition: PCH.h:314
constexpr enumeration & set(Args... a_args) noexcept requires(std
Definition: PCH.h:306
Definition: AbsorbEffect.h:6
MARKER_TYPE
Definition: ExtraMapMarker.h:10
constexpr REL::ID RTTI_ExtraMapMarker
Definition: Offsets_RTTI.h:4712
ExtraDataType
Definition: ExtraDataTypes.h:173