74 lines
3.5 KiB
C++
74 lines
3.5 KiB
C++
#pragma once
|
|
|
|
#include "RE/B/BSFixedString.h"
|
|
#include "RE/N/NiPoint3.h"
|
|
#include "RE/N/NiPointer.h"
|
|
#include "RE/N/NiQuaternion.h"
|
|
#include "RE/T/TESCameraState.h"
|
|
|
|
namespace RE
|
|
{
|
|
class NiAVObject;
|
|
class NiNode;
|
|
|
|
class __declspec(novtable) ThirdPersonState :
|
|
public TESCameraState // 000
|
|
{
|
|
public:
|
|
static constexpr auto RTTI{ RTTI::ThirdPersonState };
|
|
static constexpr auto VTABLE{ VTABLE::ThirdPersonState };
|
|
static constexpr auto STATE{ CameraStates::k3rdPerson };
|
|
|
|
// add
|
|
virtual void ProcessWeaponDrawnChange(bool a_drawn); // 11
|
|
virtual bool GetFreeRotationMode() const; // 12
|
|
virtual void SetFreeRotationMode(bool a_cameraEnable, bool a_modifyRotation); // 13
|
|
virtual void UpdateRotation(); // 14
|
|
virtual void HandleLookInput(const NiPoint2& a_input); // 15
|
|
|
|
// members
|
|
NiQuaternion rotation; // 028
|
|
NiQuaternion animationRotation; // 038
|
|
NiPoint3 translation; // 048
|
|
NiPoint3 preCollisionTranslation; // 054
|
|
NiPoint3 targetShoulderOffset; // 060
|
|
NiPoint3 currentShoulderOffset; // 06C
|
|
NiPoint3 animationTranslation; // 078
|
|
NiPoint3 lastTranslation; // 084
|
|
NiPoint3 rootOffset; // 090
|
|
NiPoint3 sideOffsetCollisionBlend; // 09C
|
|
NiPoint3 nearestHit; // 0A8
|
|
NiPoint3 nearestHitDir; // 0B4
|
|
NiPoint2 freeRotation; // 0C0
|
|
BSFixedString animatedBoneName; // 0C8
|
|
NiAVObject* thirdPersonCameraObj; // 0D0
|
|
NiNode* thirdPersonFOVControl; // 0D8
|
|
NiPointer<NiAVObject> animatedBone; // 0E0
|
|
float targetZoomOffset; // 0E8
|
|
float currentZoomOffset; // 0EC
|
|
float targetYaw; // 0F0
|
|
float currentYaw; // 0F4
|
|
float cameraHeightAdjust; // 0F8
|
|
float savedZoomOffset; // 0FC
|
|
float pitchZoomOffset; // 100
|
|
float zoomChange; // 104
|
|
NiPoint2 startTogglePOVFreeRot; // 108
|
|
float collisionRecoveryFactor; // 110
|
|
float savedCollisionPercent; // 114
|
|
float animationBlend; // 118
|
|
float animationBlendDirection; // 11C
|
|
float searchDistanceBlend; // 120
|
|
float searchLastCameraYaw; // 124
|
|
bool freeRotationEnabled; // 128
|
|
bool zoomingInto1st; // 129
|
|
bool show3rdPersonModel; // 12A
|
|
bool preserveRotation; // 12B
|
|
bool animatorMode; // 12C
|
|
bool applyOffsets; // 12D
|
|
bool togglePOVPressRegistered; // 12E
|
|
bool wasUsingScreenSpaceLastFrame; // 12F
|
|
bool ironSights; // 130
|
|
};
|
|
static_assert(sizeof(ThirdPersonState) == 0x138);
|
|
}
|