Skip to content

Commit

Permalink
feat!: TESObjectREFR, Actor, PlayerCharacter RE (#125)
Browse files Browse the repository at this point in the history
### Breaking Changes
- `Actor::PlayerCharacter()` to `PlayerCharacter::GetSingleton()`
- `Actor::IsPlayerCharacterInChargen()` to `PlayerCharacter::IsInChargen()`
  • Loading branch information
powerof3 authored Sep 30, 2023
1 parent fc15f0d commit 0ed898f
Show file tree
Hide file tree
Showing 9 changed files with 863 additions and 154 deletions.
387 changes: 236 additions & 151 deletions CommonLibSF/include/RE/A/Actor.h

Large diffs are not rendered by default.

25 changes: 25 additions & 0 deletions CommonLibSF/include/RE/A/ActorState.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#pragma once

#include "RE/I/IMovementState.h"

namespace RE
{
class ActorState : public IMovementState
{
public:
SF_RTTI(ActorState);

~ActorState() override; // 00

// add
virtual void Unk_31(); // 31
virtual void Unk_32(); // 32
virtual void Unk_33(); // 33
virtual void Unk_34(); // 34

// members
std::uint32_t actorState1; // 08
std::uint32_t actorState2; // 0C
};
static_assert(sizeof(ActorState) == 0x10);
}
29 changes: 29 additions & 0 deletions CommonLibSF/include/RE/I/IMovementPlayerControlsFilter.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#pragma once

#include "RE/I/IMovementInterface.h"

namespace RE
{
class IMovementPlayerControlsFilter : public IMovementInterface
{
public:
SF_RTTI(IMovementPlayerControlsFilter);

~IMovementPlayerControlsFilter() override; // 00

// add
virtual void Unk_01(); // 01
virtual void Unk_02(); // 02
virtual void Unk_03(); // 03
virtual void Unk_04(); // 04
virtual void Unk_05(); // 05
virtual void Unk_06(); // 06
virtual void Unk_07(); // 07
virtual void Unk_08(); // 08
virtual void Unk_09(); // 09
virtual void Unk_0A(); // 0A
virtual void Unk_0B(); // 0B
virtual void Unk_0C(); // 0C
};
static_assert(sizeof(IMovementPlayerControlsFilter) == 0x8);
}
65 changes: 65 additions & 0 deletions CommonLibSF/include/RE/I/IMovementState.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#pragma once

#include "RE/I/IMovementInterface.h"

namespace RE
{
class IMovementState : public IMovementInterface
{
public:
SF_RTTI(IMovementState);

~IMovementState() override; // 00

// add
virtual void Unk_01(); // 01
virtual void Unk_02(); // 02
virtual void Unk_03(); // 03
virtual void Unk_04(); // 04
virtual void Unk_05(); // 05
virtual void Unk_06(); // 06
virtual void Unk_07(); // 07
virtual void Unk_08(); // 08
virtual void Unk_09(); // 09
virtual void Unk_0A(); // 0A
virtual void Unk_0B(); // 0B
virtual void Unk_0C(); // 0C
virtual void Unk_0D(); // 0D
virtual void Unk_0E(); // 0E
virtual void Unk_0F(); // 0F
virtual void Unk_10(); // 10
virtual void Unk_11(); // 11
virtual void Unk_12(); // 12
virtual void Unk_13(); // 13
virtual void Unk_14(); // 14
virtual void Unk_15(); // 15
virtual void Unk_16(); // 16
virtual void Unk_17(); // 17
virtual void Unk_18(); // 18
virtual void Unk_19(); // 19
virtual void Unk_1A(); // 1A
virtual void Unk_1B(); // 1B
virtual void Unk_1C(); // 1C
virtual void Unk_1D(); // 1D
virtual void Unk_1E(); // 1E
virtual void Unk_1F(); // 1F
virtual void Unk_20(); // 20
virtual void Unk_21(); // 21
virtual void Unk_22(); // 22
virtual void Unk_23(); // 23
virtual void Unk_24(); // 24
virtual void Unk_25(); // 25
virtual void Unk_26(); // 26
virtual void Unk_27(); // 27
virtual void Unk_28(); // 28
virtual void Unk_29(); // 29
virtual void Unk_2A(); // 2A
virtual void Unk_2B(); // 2B
virtual void Unk_2C(); // 2C
virtual void Unk_2D(); // 2D
virtual void Unk_2E(); // 2E
virtual void Unk_2F(); // 2F
virtual void Unk_30(); // 30
};
static_assert(sizeof(IMovementState) == 0x8);
}
18 changes: 18 additions & 0 deletions CommonLibSF/include/RE/I/IMovementStateStore.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#pragma once

#include "RE/I/IMovementInterface.h"

namespace RE
{
struct IMovementStateStore : public IMovementInterface
{
public:
SF_RTTI(IMovementStateStore);

~IMovementStateStore() override; // 00

// add
virtual void Unk_01(); // 01
};
static_assert(sizeof(IMovementStateStore) == 0x8);
}
20 changes: 20 additions & 0 deletions CommonLibSF/include/RE/I/IStoreAnimationActions.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#pragma once

#include "RE/I/IMovementInterface.h"

namespace RE
{
class IStoreAnimationActions : public IMovementInterface
{
public:
SF_RTTI(IStoreAnimationActions);

~IStoreAnimationActions() override; // 00

// add
virtual void Unk_01(); // 01
virtual void Unk_02(); // 02
virtual void Unk_03(); // 03
};
static_assert(sizeof(IStoreAnimationActions) == 0x8);
}
45 changes: 45 additions & 0 deletions CommonLibSF/include/RE/M/MagicTarget.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#pragma once

namespace RE
{
class ActiveEffect;
class Actor;
class EffectItem;
class MagicItem;
class TESBoundObject;
class TESObjectREFR;

struct AddTargetData;
struct SpellDispelData;

class MagicTarget
{
public:
SF_RTTI_VTABLE(MagicTarget);

virtual ~MagicTarget(); // 00

// add
virtual bool AddTarget(AddTargetData& a_targetData); // 01
virtual TESObjectREFR* GetTargetStatsObject(); // 02
[[nodiscard]] virtual bool MagicTargetIsActor() const; // 03
virtual bool IsInvulnerable(); // 04
virtual void Unk_05(); // 05
virtual bool CanAddActiveEffect() = 0; // 06
virtual void Unk_07(); // 07 - GetActiveEffectList?
virtual void Unk_08(); // 08 - GetActiveEffectList const?
virtual float CheckResistance(MagicItem* a_spell, EffectItem* a_effect, TESBoundObject* a_source) const; // 09
virtual void EffectAdded(ActiveEffect* a_effect); // 0A
virtual void EffectRemoved(ActiveEffect* a_effect); // 0B
virtual void EffectActiveStatusChanged(ActiveEffect* a_effect); // 0C
virtual bool CheckAbsorb(Actor* a_caster, MagicItem* a_spell, const EffectItem* a_effectItem); // 0D

// members
SpellDispelData* postUpdateDispelList; // 08
std::uint8_t flags; // 10
std::uint8_t pad11; // 11
std::uint16_t pad12; // 12
std::uint32_t pad14; // 14
};
static_assert(sizeof(MagicTarget) == 0x18);
}
Loading

0 comments on commit 0ed898f

Please sign in to comment.