CommonLibVR
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,
64  kDLC02MiraakTemple = 53,
65  kDLC02RavenRock = 54,
68  kDLC02ToSkyrim = 57,
69  kDLC02ToSolstheim = 58,
72 
73  kDoor = 61,
74  kQuestTarget = 62,
76  kMultipleQuestTarget = kQuestTargetDoor, // verify this
77  kPlayerSet = 64,
78  kYouAreHere = 65,
79  };
80 
82  {
83  public:
84  enum class Flag
85  {
86  kNone = 0,
87  kVisible = 1 << 0,
88  kCanTravelTo = 1 << 1,
89  kShowAllHidden = 1 << 2,
90  kUnk3 = 1 << 3,
91  kUnk4 = 1 << 4,
92  kUnk5 = 1 << 5,
93  kUnk6 = 1 << 6,
94  kUnk7 = 1 << 7
95  };
96 
97  constexpr void SetHidden(bool a_value) noexcept { a_value ? flags.set(Flag::kShowAllHidden) : flags.reset(Flag::kShowAllHidden); }
98  constexpr void SetVisible(bool a_value) noexcept { a_value ? flags.set(Flag::kVisible) : flags.reset(Flag::kVisible); }
99 
100  // members
103  std::uint8_t pad11; // 11
105  std::uint32_t pad14; // 14
106  };
107  static_assert(sizeof(MapMarkerData) == 0x18);
108 
110  {
111  public:
112  inline static constexpr auto RTTI = RTTI_ExtraMapMarker;
113  inline static constexpr auto VTABLE = VTABLE_ExtraMapMarker;
114  inline static constexpr auto EXTRADATATYPE = ExtraDataType::kMapMarker;
115 
116  virtual ~ExtraMapMarker(); // 00
117 
118  // override (BSExtraData)
119  ExtraDataType GetType() const override; // 01 - { return kMapMarker; }
120  bool IsNotEqual(const BSExtraData* a_rhs) const override; // 02
121 
122  // members
124  private:
125  KEEP_FOR_RE()
126  };
127  static_assert(sizeof(ExtraMapMarker) == 0x18);
128 }
#define KEEP_FOR_RE()
Definition: PCH.h:713
Definition: BSExtraData.h:9
Definition: ExtraMapMarker.h:110
static constexpr auto RTTI
Definition: ExtraMapMarker.h:112
bool IsNotEqual(const BSExtraData *a_rhs) const override
static constexpr auto EXTRADATATYPE
Definition: ExtraMapMarker.h:114
static constexpr auto VTABLE
Definition: ExtraMapMarker.h:113
ExtraDataType GetType() const override
virtual ~ExtraMapMarker()
MapMarkerData * mapData
Definition: ExtraMapMarker.h:123
Definition: ExtraMapMarker.h:82
constexpr void SetHidden(bool a_value) noexcept
Definition: ExtraMapMarker.h:97
TESFullName locationName
Definition: ExtraMapMarker.h:101
stl::enumeration< MARKER_TYPE, std::uint16_t > type
Definition: ExtraMapMarker.h:104
constexpr void SetVisible(bool a_value) noexcept
Definition: ExtraMapMarker.h:98
std::uint8_t pad11
Definition: ExtraMapMarker.h:103
Flag
Definition: ExtraMapMarker.h:85
stl::enumeration< Flag, std::uint8_t > flags
Definition: ExtraMapMarker.h:102
std::uint32_t pad14
Definition: ExtraMapMarker.h:105
Definition: TESFullName.h:9
constexpr enumeration & reset(Args... a_args) noexcept requires(std
Definition: PCH.h:275
constexpr enumeration & set(Args... a_args) noexcept requires(std
Definition: PCH.h:267
Definition: AbsorbEffect.h:6
MARKER_TYPE
Definition: ExtraMapMarker.h:10
@ kNone
constexpr REL::ID RTTI_ExtraMapMarker(static_cast< std::uint64_t >(684764))
ExtraDataType
Definition: ExtraDataTypes.h:173
constexpr std::array< REL::ID, 1 > VTABLE_ExtraMapMarker
Definition: Offsets_VTABLE.h:11567