diff --git a/components/nif/controller.cpp b/components/nif/controller.cpp index 99317cda57..89cb066c62 100644 --- a/components/nif/controller.cpp +++ b/components/nif/controller.cpp @@ -486,6 +486,20 @@ namespace Nif nif->read(mControlledColor); } + void BSKeyframeController::read(NIFStream* nif) + { + NiKeyframeController::read(nif); + + mData2.read(nif); + } + + void BSKeyframeController::post(Reader& nif) + { + NiKeyframeController::post(nif); + + mData2.post(nif); + } + void NiControllerManager::read(NIFStream* nif) { NiTimeController::read(nif); diff --git a/components/nif/controller.hpp b/components/nif/controller.hpp index afca97d885..e0ac2d29ae 100644 --- a/components/nif/controller.hpp +++ b/components/nif/controller.hpp @@ -319,6 +319,14 @@ namespace Nif void read(NIFStream* nif) override; }; + struct BSKeyframeController : NiKeyframeController + { + NiKeyframeDataPtr mData2; + + void read(NIFStream* nif) override; + void post(Reader& nif) override; + }; + struct NiControllerManager : public NiTimeController { bool mCumulative; diff --git a/components/nif/niffile.cpp b/components/nif/niffile.cpp index cf877c7cd9..4b77fe471d 100644 --- a/components/nif/niffile.cpp +++ b/components/nif/niffile.cpp @@ -123,6 +123,8 @@ namespace Nif &construct }, // Bethesda + { "BSFrustumFOVController", &construct }, + { "BSKeyframeController", &construct }, { "BSMaterialEmittanceMultController", &construct }, { "BSRefractionFirePeriodController", diff --git a/components/nif/record.hpp b/components/nif/record.hpp index 46aa3ce5d8..115d6827c2 100644 --- a/components/nif/record.hpp +++ b/components/nif/record.hpp @@ -69,8 +69,10 @@ namespace Nif RC_BSEffectShaderPropertyColorController, RC_BSEffectShaderPropertyFloatController, RC_BSExtraData, + RC_BSFrustumFOVController, RC_BSFurnitureMarker, RC_BSInvMarker, + RC_BSKeyframeController, RC_BSLightingShaderProperty, RC_BSLightingShaderPropertyColorController, RC_BSLightingShaderPropertyFloatController,