1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-11-08 18:46:40 +00:00

Merge branch 'multitargettransform' into 'master'

Read NiMultiTargetTransformController

See merge request OpenMW/openmw!2357
This commit is contained in:
psi29a 2022-09-04 07:45:11 +00:00
commit 84ec78f0d6
5 changed files with 154 additions and 120 deletions

7
.git-blame-ignore-revs Normal file
View file

@ -0,0 +1,7 @@
# This file lists revisions meant to be ignored by `git blame`.
# Pass `--ignore-revs-file .git-blame-ignore-revs` to `git blame` to make your life easier.
# Author: Alexei Kotov <alexdobrohotov@yandex.ru>
# Date: Fri Sep 2 02:52:49 2022 +0000
# Reformat NIF record type mapping
8df0587793a07ec556dc9cb575cd2af4204c456b

View file

@ -180,6 +180,23 @@ namespace Nif
interpolator.post(nif);
}
void NiMultiTargetTransformController::read(NIFStream *nif)
{
Controller::read(nif);
size_t numTargets = nif->getUShort();
std::vector<NodePtr> targets;
targets.resize(numTargets);
for (size_t i = 0; i < targets.size(); i++)
targets[i].read(nif);
mExtraTargets = targets;
}
void NiMultiTargetTransformController::post(NIFFile *nif)
{
Controller::post(nif);
mExtraTargets.post(nif);
}
void NiFloatInterpController::read(NIFStream *nif)
{
Controller::read(nif);

View file

@ -148,6 +148,14 @@ struct NiKeyframeController : public Controller
void post(NIFFile *nif) override;
};
struct NiMultiTargetTransformController : public Controller
{
NodeList mExtraTargets;
void read(NIFStream *nif) override;
void post(NIFFile *nif) override;
};
struct NiFloatInterpController : public Controller
{
NiFloatDataPtr data;

View file

@ -137,6 +137,7 @@ static std::map<std::string, CreateRecord> makeFactory()
{"NiBoolInterpolator" , &construct <NiBoolInterpolator , RC_NiBoolInterpolator >},
{"NiPoint3Interpolator" , &construct <NiPoint3Interpolator , RC_NiPoint3Interpolator >},
{"NiTransformController" , &construct <NiKeyframeController , RC_NiKeyframeController >},
{"NiMultiTargetTransformController" , &construct <NiMultiTargetTransformController , RC_NiMultiTargetTransformController >},
{"NiTransformInterpolator" , &construct <NiTransformInterpolator , RC_NiTransformInterpolator >},
{"NiColorInterpolator" , &construct <NiColorInterpolator , RC_NiColorInterpolator >},
{"BSShaderTextureSet" , &construct <BSShaderTextureSet , RC_BSShaderTextureSet >},

View file

@ -144,7 +144,8 @@ enum RecordType
RC_BSLightingShaderProperty,
RC_NiClusterAccumulator,
RC_NiAlphaAccumulator,
RC_NiSortAdjustNode
RC_NiSortAdjustNode,
RC_NiMultiTargetTransformController
};
/// Base class for all records