refactor to use mInternal, support Flag_Reverse and updated changelog/authors.md

pull/3226/head
Bret Curtis 2 years ago
parent ead73fce31
commit 0db5415976

@ -164,6 +164,7 @@ Programmers
Nialsy
Nick Crawford (nighthawk469)
Nikolay Kasyanov (corristo)
Noah Gooder
nobrakal
Nolan Poe (nopoe)
Nurivan Gomez (Nuri-G)
@ -228,14 +229,14 @@ Programmers
viadanna
Vincent Heuken
Vladimir Panteleev (CyberShadow)
vocollapse
Wang Ryu (bzzt)
Will Herrmann (Thunderforge)
vocollapse
Wolfgang Lieff
xyzz
Yohaulticetl
Yuri Krupenin
zelurker
Noah Gooder
Documentation
-------------

@ -138,11 +138,12 @@
Feature #6288: Preserve the "blocked" record flag for referenceable objects.
Feature #6380: Commas are treated as whitespace in vanilla
Feature #6419: Topics shouldn't be greyed out if they can produce another topic reference
Feature #6443: NiStencilProperty is not fully supported
Feature #6443: Support NiStencilProperty
Feature #6534: Shader-based object texture blending
Feature #6541: Gloss-mapping
Feature #6592: Missing support for NiTriShape particle emitters
Feature #6600: Support NiSortAdjustNode
Feature #6684: Support NiFltAnimationNode
Task #6201: Remove the "Note: No relevant classes found. No output generated" warnings
Task #6264: Remove the old classes in animation.cpp
Task #6553: Simplify interpreter instruction registration

@ -2,7 +2,6 @@
#include <unordered_map>
#include <osg/Version>
#include <osg/LOD>
#include <osg/Switch>
#include <osg/Sequence>
@ -66,7 +65,7 @@ namespace MWRender
case ESM::REC_CONT:
return store.get<ESM::Container>().searchStatic(id)->mModel;
default:
return std::string();
return {};
}
}

@ -433,12 +433,17 @@ struct NiLODNode : public NiSwitchNode
struct NiFltAnimationNode : public NiSwitchNode
{
float Interval;
float mInterval;
enum Flags
{
Flag_Reverse = 0x40
};
void read(NIFStream *nif) override
{
NiSwitchNode::read(nif);
Interval = nif->getFloat();
mInterval = nif->getFloat();
}
};

@ -421,10 +421,12 @@ namespace NifOsg
{
osg::ref_ptr<osg::Sequence> sequenceNode (new osg::Sequence);
sequenceNode->setName(niFltAnimationNode->name);
sequenceNode->setDefaultTime(niFltAnimationNode->Interval);
sequenceNode->setInterval(osg::Sequence::LOOP, 0,-1);
sequenceNode->setDuration( -1.0f, -1);
sequenceNode->setDefaultTime(niFltAnimationNode->mInterval);
sequenceNode->setMode(osg::Sequence::START);
if (!niFltAnimationNode->flags & Nif::NiFltAnimationNode::Flag_Reverse)
sequenceNode->setDuration(-1.0f, -1);
else
sequenceNode->setDuration(1.0f, -1);
return sequenceNode;
}

Loading…
Cancel
Save