diff --git a/components/nif/controller.cpp b/components/nif/controller.cpp index 89cb066c62..73644f1541 100644 --- a/components/nif/controller.cpp +++ b/components/nif/controller.cpp @@ -500,6 +500,15 @@ namespace Nif mData2.post(nif); } + void BSLagBoneController::read(NIFStream* nif) + { + NiTimeController::read(nif); + + nif->read(mLinearVelocity); + nif->read(mLinearRotation); + nif->read(mMaximumDistance); + } + void NiControllerManager::read(NIFStream* nif) { NiTimeController::read(nif); diff --git a/components/nif/controller.hpp b/components/nif/controller.hpp index e0ac2d29ae..3104c29f94 100644 --- a/components/nif/controller.hpp +++ b/components/nif/controller.hpp @@ -327,6 +327,15 @@ namespace Nif void post(Reader& nif) override; }; + struct BSLagBoneController : NiTimeController + { + float mLinearVelocity; + float mLinearRotation; + float mMaximumDistance; + + void read(NIFStream* nif) override; + }; + struct NiControllerManager : public NiTimeController { bool mCumulative; diff --git a/components/nif/niffile.cpp b/components/nif/niffile.cpp index efdd51a909..66c4aaac7b 100644 --- a/components/nif/niffile.cpp +++ b/components/nif/niffile.cpp @@ -126,6 +126,7 @@ namespace Nif // Bethesda { "BSFrustumFOVController", &construct }, { "BSKeyframeController", &construct }, + { "BSLagBoneController", &construct }, { "BSMaterialEmittanceMultController", &construct }, { "BSNiAlphaPropertyTestRefController", diff --git a/components/nif/record.hpp b/components/nif/record.hpp index 2c641b2aff..cecb9631d6 100644 --- a/components/nif/record.hpp +++ b/components/nif/record.hpp @@ -79,6 +79,7 @@ namespace Nif RC_BSFurnitureMarker, RC_BSInvMarker, RC_BSKeyframeController, + RC_BSLagBoneController, RC_BSLightingShaderProperty, RC_BSLightingShaderPropertyColorController, RC_BSLightingShaderPropertyFloatController,