Skip to content

Commit

Permalink
a lot more stuff (#15)
Browse files Browse the repository at this point in the history
* feat: `PipboyArray` class declared.

* feat: `PipboySpecialData` class declared.

* feat: Update and correct RE of `MapMarkerData`.

* feat: `TravelMarkerStateChange::Event` declared.

* feat: Declared `PipboyMapData` class.

* feat: `InitDataRepairFailure`.

* feat: Declared `PipboyPerksData` class.

* feat: Enum declarations.

* feat: More events RE'd.

* feat: VATS event.

* feat: A few weapon related enums.

* feat: Declared `PipboyStatusData` class.

* feat: Declared `PipboyWorkshopData` class.

* feat: Declared `PipboyPlayerInfoData` class.

* feat: Declaed `PipboyStatsData` class.
  • Loading branch information
FlenarnTemp authored Jul 30, 2024
1 parent d7dc506 commit 8c1243b
Show file tree
Hide file tree
Showing 26 changed files with 985 additions and 55 deletions.
13 changes: 13 additions & 0 deletions CommonLibF4/cmake/sourcelist.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -197,11 +197,24 @@ set(SOURCES
include/RE/Bethesda/Movement.h
include/RE/Bethesda/NavMesh.h
include/RE/Bethesda/NavMeshInfoMap.h
include/RE/Bethesda/PipboyArray.h
include/RE/Bethesda/PipboyDataGroup.h
include/RE/Bethesda/PipboyDataManager.h
include/RE/Bethesda/PipboyInventoryData.h
include/RE/Bethesda/PipboyInventoryUtils.h
include/RE/Bethesda/PipboyLogData.h
include/RE/Bethesda/PipboyManager.h
include/RE/Bethesda/PipboyMapData.h
include/RE/Bethesda/PipboyPerksData.h
include/RE/Bethesda/PipboyPlayerInfoData.h
include/RE/Bethesda/PipboyQuestData.h
include/RE/Bethesda/PipboyRadioData.h
include/RE/Bethesda/PipboySpecialData.h
include/RE/Bethesda/PipboyStatsData.h
include/RE/Bethesda/PipboyStatusData.h
include/RE/Bethesda/PipboyThrottleManager.h
include/RE/Bethesda/PipboyValue.h
include/RE/Bethesda/PipboyWorkshopData.h
include/RE/Bethesda/PlayerCharacter.h
include/RE/Bethesda/PlayerControls.h
include/RE/Bethesda/PowerArmor.h
Expand Down
38 changes: 35 additions & 3 deletions CommonLibF4/include/RE/Bethesda/Actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@

namespace RE
{
enum class ACTOR_CRITICAL_STAGE;
enum class ACTOR_LIFE_STATE;
enum class ACTOR_LOS_LOCATION;
enum class ATTACK_STATE_ENUM;
enum class COMMAND_TYPE;
enum class DEFAULT_OBJECT;
Expand Down Expand Up @@ -112,6 +109,41 @@ namespace RE
struct PerkEntryUpdatedEvent;
}

enum class ACTOR_CRITICAL_STAGE : std::int32_t
{
kNone = 0,
kGooStart = 1,
kGooEnd = 2,
kDisintegrateStart = 3,
kDisintegrateEnd = 4,
kFreezeStart = 5,
kFreezeEnd = 6,
kCount = 7
};

enum class ACTOR_LIFE_STATE : std::int32_t
{
kAlive = 0,
kDying = 1,
kDead = 2,
kUnconscious = 3,
kReanimate = 4,
kRecycle = 5,
kRestrained = 6,
kEssentialDown = 7,
kBleedout = 8
};

enum class ACTOR_LOS_LOCATION : std::int32_t
{
kNone = 0,
kEye = 1,
kHead = 2,
kTorse = 3,
kFeet = 4,
kCount = 5
};

enum class PTYPE : std::int32_t
{
kExplore = 0,
Expand Down
7 changes: 7 additions & 0 deletions CommonLibF4/include/RE/Bethesda/BGSInventoryInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,13 @@ namespace RE
return func(this, a_handleID);
}

[[nodiscard]] bool ForceMergeStacks(const std::uint32_t& a_handleID)
{
using func_t = decltype(&BGSInventoryInterface::ForceMergeStacks);
static REL::Relocation<func_t> func{ REL::ID(2194032) };
return func(this, a_handleID);
}

// members
BSTArray<Agent> agentArray; // B8
};
Expand Down
26 changes: 26 additions & 0 deletions CommonLibF4/include/RE/Bethesda/BGSInventoryItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,25 @@ namespace RE
};
static_assert(sizeof(CheckStackIDFunctor) == 0x10);

class alignas(0x08) CheckExtraDataFunctor :
public StackDataCompareFunctor // 00
{
public:
static constexpr auto RTTI{ RTTI::BGSInventoryItem__CheckExtraDataFunctor };
static constexpr auto VTABLE{ VTABLE::BGSInventoryItem__CheckExtraDataFunctor };

CheckExtraDataFunctor(const BGSInventoryItem::Stack* a_stack) noexcept :
extra(a_stack->extra.get())
{}

// override (StackDataCompareFunctor)
bool CompareData(const BGSInventoryItem::Stack&) override { return this->extra == extra; }

// members
const ExtraDataList* extra; // 08
};
static_assert(sizeof(CheckExtraDataFunctor) == 0x10);

class __declspec(novtable) alignas(0x08) StackDataWriteFunctor
{
public:
Expand Down Expand Up @@ -194,6 +213,13 @@ namespace RE
return func(this, a_index);
}

[[nodiscard]] void MergeStacks()
{
using func_t = decltype(&BGSInventoryItem::MergeStacks);
static REL::Relocation<func_t> func{ REL::ID(2194109) };
return func(this);
}

// members
TESBoundObject* object; // 00
BSTSmartPointer<Stack> stackData; // 08
Expand Down
100 changes: 99 additions & 1 deletion CommonLibF4/include/RE/Bethesda/BSExtraData.h
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,105 @@ namespace RE
struct __declspec(novtable) MapMarkerData :
public TESFullName // 00
{
std::uint32_t flags; // 10
enum MARKER_TYPE : std::uint16_t
{
kCave = 0,
kCity,
kDiamondCity,
kEncampment,
kIndustrial,
kGovtBuilding,
kMetro,
kMilitaryBase,
kLandmark,
kOffice,
kRuinsTown,
kRuinsUrban,
kSanctuary,
kSettlement,
kSewer,
kVault,
kAirfield,
kBunkerHill,
kCamper,
kCar,
kChurch,
kCountryClub,
kCustomHouse,
kDriveIn,
kElevatedHighway,
kFaneuilHall,
kFarm,
kFillingStation,
kForest,
kGoodNeighbor,
kGraveyard,
kHospital,
kIndustrialDome,
kIndustrialStacks,
kInstitute,
kIrishPride,
kJunkyard,
kObservatory,
kPier,
kPondOrLake,
kQuarry,
kRadioactiveArea,
kRadioTower,
kSalem,
kSchool,
kShipwreck,
kSubmarine,
kSwanPond,
kSynthHead,
kTown,
kBOS,
kBrownstone,
kBunker,
kCastle,
kSkyscraper,
kLibertalia,
kLowrise,
kMinutemen,
kPoliceStation,
kPrydwen,
kRailroadFaction,
kRailroad,
kSatellite,
kSentinel,
kUSSConstitution,
kMechanist,
kRaiderSettlement,
kVassalSettlement,
kPotentialVassalSettlement,
kBottlingPlant,
kGalactic,
kHub,
kKiddieKingdom,
kMonorail,
kRides,
kSafari,
kWildWest,
kPOI,
kDisciples,
kOperators,
kPack,
kDoor,
kCountEditor,
kQuest,
kQuestDoor,
kQuestMultiple,
kPlayerSet,
kPlayerLocation,
kPowerArmorLocation,
kDogmeat,
kTeammate,
kCountTotal
};

std::uint8_t flags; // 10
std::uint8_t originalFlags; // 11
MARKER_TYPE type; // 12
};
static_assert(sizeof(MapMarkerData) == 0x18);

Expand Down
Loading

0 comments on commit 8c1243b

Please sign in to comment.