Skip to content

Commit 0bb19b8

Browse files
committed
fix: PlayerCharacter & MagicCaster members
+ other stuff
1 parent 1e975e6 commit 0bb19b8

50 files changed

Lines changed: 1214 additions & 386 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

include/RE/A/Actor.h

Lines changed: 57 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -259,64 +259,64 @@ namespace RE
259259
bool UnequipObject(TESBoundObject* a_object, std::int32_t a_count, ExtraDataList* a_extra, bool a_force = false, bool a_equipCalling = true);
260260

261261
// members
262-
ActorDeathInfos actorKilledInfos; // 178
263-
bool isWalkingOnWater; // 1D0
264-
bool wasKilledByPlayer; // 1D1
265-
DIALOGUE_EMOTION persuasionEmotion; // 1D4
266-
float emotionValue; // 1D8
267-
bool processMe; // 1DC
268-
Actor* myKiller; // 1E0
269-
bool murderAlarm; // 1E8
270-
float checkMyDeadBodyTimer; // 1EC
271-
ModifierList scriptModifiers; // 1F0
272-
bool useAltVoice; // 218
273-
bool useBeggarVoice; // 219
274-
bool isMoveModeFromReverse; // 21A
275-
bool wantsToYield; // 21B
276-
BSSimpleList<CastPowerItem*> castPowers; // 220
277-
BSSimpleList<DispositionModifier*> dispModifierList; // 230
278-
float targetPriorityTimer; // 240
279-
ACTOR_LIFE_STATE lifeState; // 244
280-
BSSimpleList<TESPackage*> donePackageList; // 248
281-
float lastUpdate; // 258
282-
bool deadFlag; // 25C
283-
std::int32_t visFlags; // 260
284-
bool forceRun; // 264
285-
bool forceSneak; // 265
286-
bool forceUpdateQuestTarget; // 266
287-
TESObjectREFR* addMovementBlocked; // 268
288-
TESActorBase* templateActorBase; // 270
289-
Actor* horseRider; // 278
290-
bool inWater; // 280
291-
bool isInLowFatigueState; // 281
292-
bool hasEnteredWaterSurface; // 282
293-
bool hasEnteredUnderWater; // 283
294-
float headTrackTimer; // 284
295-
bool wasInFrustum; // 288
296-
Actor* dialogueItemTarget; // 290
297-
NiPoint3 editorLocCoord; // 298
298-
float editorLocZRot; // 2A4
299-
TESForm* editorLocForm; // 2A8
300-
bool setOnDeath; // 2B0
301-
bool containerReset; // 2B1
302-
bool hasTakenFallDamage; // 2B2
303-
float naturalHealthRegenPeriod; // 2B4
304-
float naturalMagickaRegenPeriod; // 2B8
305-
float naturalFatigueRegenPeriod; // 2BC
306-
MATERIAL_TYPE lastGroundMaterial; // 2C0
307-
std::uint32_t lastSpecialIdleFormId; // 2C4
308-
std::uint32_t lastDynamicIdleFormId; // 2C8
309-
bool isSpecialIdleChanged; // 2CC
310-
std::uint16_t lastDynamicIdleAnimGroup; // 2CE
311-
bool isInDynamicIdle; // 2D0
312-
VAnimationPairingComponentHandlers::OblivionAnimState lastAnimState; // 2D4
313-
bool isHoldingABow; // 304
314-
bool fatigueRestorationEnabled; // 305
315-
float permanentFatigueDrainPerSecond; // 308
316-
bool isFatigueFreezeActive; // 30C
317-
float updateTargetTimer; // 310
262+
ActorDeathInfos actorKilledInfos; // 188
263+
bool isWalkingOnWater; // 1E0
264+
bool wasKilledByPlayer; // 1E1
265+
DIALOGUE_EMOTION persuasionEmotion; // 1E4
266+
float emotionValue; // 1E8
267+
bool processMe; // 1EC
268+
Actor* myKiller; // 1F0
269+
bool murderAlarm; // 1F8
270+
float checkMyDeadBodyTimer; // 1FC
271+
ModifierList scriptModifiers; // 200
272+
bool useAltVoice; // 228
273+
bool useBeggarVoice; // 229
274+
bool isMoveModeFromReverse; // 22A
275+
bool wantsToYield; // 22B
276+
BSSimpleList<CastPowerItem*> castPowers; // 230
277+
BSSimpleList<DispositionModifier*> dispModifierList; // 240
278+
float targetPriorityTimer; // 250
279+
ACTOR_LIFE_STATE lifeState; // 254
280+
BSSimpleList<TESPackage*> donePackageList; // 258
281+
float lastUpdate; // 268
282+
bool deadFlag; // 26C
283+
std::int32_t visFlags; // 270
284+
bool forceRun; // 274
285+
bool forceSneak; // 275
286+
bool forceUpdateQuestTarget; // 276
287+
TESObjectREFR* addMovementBlocked; // 278
288+
TESActorBase* templateActorBase; // 280
289+
Actor* horseRider; // 288
290+
bool inWater; // 290
291+
bool isInLowFatigueState; // 291
292+
bool hasEnteredWaterSurface; // 292
293+
bool hasEnteredUnderWater; // 293
294+
float headTrackTimer; // 294
295+
bool wasInFrustum; // 298
296+
Actor* dialogueItemTarget; // 2A0
297+
NiPoint3 editorLocCoord; // 2A8
298+
float editorLocZRot; // 2B4
299+
TESForm* editorLocForm; // 2B8
300+
bool setOnDeath; // 2C0
301+
bool containerReset; // 2C1
302+
bool hasTakenFallDamage; // 2C2
303+
float naturalHealthRegenPeriod; // 2C4
304+
float naturalMagickaRegenPeriod; // 2C8
305+
float naturalFatigueRegenPeriod; // 2CC
306+
MATERIAL_TYPE lastGroundMaterial; // 2D0
307+
std::uint32_t lastSpecialIdleFormId; // 2D4
308+
std::uint32_t lastDynamicIdleFormId; // 2D8
309+
bool isSpecialIdleChanged; // 2DC
310+
std::uint16_t lastDynamicIdleAnimGroup; // 2DE
311+
bool isInDynamicIdle; // 2E0
312+
VAnimationPairingComponentHandlers::OblivionAnimState lastAnimState; // 2E4
313+
bool isHoldingABow; // 314
314+
bool fatigueRestorationEnabled; // 315
315+
float permanentFatigueDrainPerSecond; // 318
316+
bool isFatigueFreezeActive; // 31C
317+
float updateTargetTimer; // 320
318318
};
319-
static_assert(sizeof(Actor) == 0x318);
319+
static_assert(sizeof(Actor) == 0x328);
320320
}
321321

322322
namespace RE

include/RE/A/ActorValue.h

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,29 @@
11
#pragma once
22

3-
namespace RE
3+
namespace RE::ActorValue
44
{
5-
namespace ActorValue
5+
// NOTE: Index is technically int8_t, but all uses of it expect int32_t
6+
enum class Index : std::int32_t
67
{
7-
enum class Index : std::int8_t;
8-
enum class Section : std::int32_t;
9-
}
8+
Strength = 0,
9+
Intelligence = 1,
10+
Willpower = 2,
11+
Agility = 3,
12+
Speed = 4,
13+
Endurance = 5,
14+
Personality = 6,
15+
Luck = 7,
16+
Magicka = 8
17+
};
18+
19+
enum class Section : std::int32_t
20+
{
21+
Attribute = 0,
22+
DerivedAttribute = 1,
23+
Skill = 2,
24+
Trait = 3,
25+
Virtue = 4,
26+
FloatValue = 5,
27+
IntValue = 6
28+
};
1029
}

include/RE/C/Character.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ namespace RE
7070
virtual void OnPostPairItem() override; // 04
7171

7272
// members
73-
BipedAnim* biped; // 318
74-
float armorRating; // 320
73+
BipedAnim* biped; // 328
74+
float armorRating; // 330
7575
};
76-
static_assert(sizeof(Character) == 0x328);
76+
static_assert(sizeof(Character) == 0x338);
7777
}

include/RE/C/Creature.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ namespace RE
1313
inline static constexpr auto FORMTYPE = FormType::Creature;
1414

1515
// members
16-
bool ragdoll; // 318
16+
bool ragdoll; // 328
1717
};
18-
static_assert(sizeof(Creature) == 0x320);
18+
static_assert(sizeof(Creature) == 0x330);
1919
}

include/RE/IDs.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,11 @@ namespace RE::ID
122122

123123
namespace UE::ID
124124
{
125+
namespace FDelegateHandle
126+
{
127+
inline constexpr REL::ID GenerateNewID{ 107332 };
128+
}
129+
125130
namespace FFrame
126131
{
127132
inline constexpr REL::ID KismetExecutionMessage{ 116737 };
@@ -183,6 +188,7 @@ namespace UE::ID
183188

184189
namespace FUObjectArray
185190
{
191+
inline constexpr REL::ID AllocateSerialNumber{ 116664 };
186192
inline constexpr REL::ID GetSingleton{ 1479488 };
187193
}
188194

@@ -208,6 +214,11 @@ namespace UE::ID
208214
inline constexpr REL::ID GetPlayerController{ 220839 };
209215
}
210216

217+
namespace UInputComponent
218+
{
219+
inline constexpr REL::ID AddActionBinding{ 214241 };
220+
}
221+
211222
namespace UObjectBaseUtility
212223
{
213224
inline constexpr REL::ID GetFullName1{ 117106 };

include/RE/M/MagicCaster.h

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@ namespace RE
4141
virtual ActiveEffect* CreateActiveEffect(MagicItem* a_spell, EffectItem* a_effectItem, TESBoundObject* a_source); // 11
4242

4343
// members
44-
MagicLight* light; // 08
45-
State state; // 10
46-
MagicProjectile* usedProjectile; // 18
44+
MagicLight* light; // 008
45+
State state; // 010
46+
MagicProjectile* usedProjectile; // 018
47+
std::byte unk020[8]; // 020 - new
48+
std::byte unk028[8]; // 028 - new
4749
};
48-
static_assert(sizeof(MagicCaster) == 0x20);
50+
static_assert(sizeof(MagicCaster) == 0x30);
4951
}

0 commit comments

Comments
 (0)