33 lines
953 B
C++
33 lines
953 B
C++
#pragma once
|
|
|
|
#include "RE/C/CHANGE_TYPES.h"
|
|
#include "RE/E/ENCOUNTER_ZONE_DATA.h"
|
|
#include "RE/E/ENCOUNTER_ZONE_GAME_DATA.h"
|
|
#include "RE/T/TESForm.h"
|
|
|
|
namespace RE
|
|
{
|
|
class __declspec(novtable) BGSEncounterZone :
|
|
public TESForm // 00
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::BGSEncounterZone };
|
|
static constexpr auto VTABLE{ VTABLE::BGSEncounterZone };
|
|
static constexpr auto FORM_ID{ ENUM_FORM_ID::kECZN };
|
|
|
|
[[nodiscard]] bool NeverResets() const noexcept { return data.flags.all(ENCOUNTER_ZONE_DATA::FLAG::kNeverReset); }
|
|
[[nodiscard]] bool IsWorkshop() const noexcept { return data.flags.all(ENCOUNTER_ZONE_DATA::FLAG::kWorkshopZone); }
|
|
|
|
void SetDetachTime(std::uint32_t a_time)
|
|
{
|
|
gameData.detachTime = a_time;
|
|
AddChange(CHANGE_TYPE::kEncounterZoneGameData);
|
|
}
|
|
|
|
// members
|
|
ENCOUNTER_ZONE_DATA data; // 20
|
|
ENCOUNTER_ZONE_GAME_DATA gameData; // 38
|
|
};
|
|
static_assert(sizeof(BGSEncounterZone) == 0x48);
|
|
}
|