@ -386,13 +386,29 @@ class NIFObjectLoader
affector - > setParameter ( " direction " , Ogre : : StringConverter : : toString ( gr - > mDirection ) ) ;
affector - > setParameter ( " position " , Ogre : : StringConverter : : toString ( gr - > mPosition ) ) ;
}
else if ( e - > recType = = Nif : : RC_NiParticle Rotation )
else if ( e - > recType = = Nif : : RC_NiParticle ColorModifier )
{
// TODO: Implement (Ogre::RotationAffector?)
const Nif : : NiParticleColorModifier * cl = static_cast < const Nif : : NiParticleColorModifier * > ( e . getPtr ( ) ) ;
const Nif : : NiColorData * clrdata = cl - > data . getPtr ( ) ;
Ogre : : ParticleAffector * affector = partsys - > addAffector ( " ColourInterpolator " ) ;
size_t num_colors = std : : min < size_t > ( 6 , clrdata - > mKeyList . mKeys . size ( ) ) ;
for ( size_t i = 0 ; i < num_colors ; i + + )
{
Ogre : : ColourValue color ;
color . r = clrdata - > mKeyList . mKeys [ i ] . mValue [ 0 ] ;
color . g = clrdata - > mKeyList . mKeys [ i ] . mValue [ 1 ] ;
color . b = clrdata - > mKeyList . mKeys [ i ] . mValue [ 2 ] ;
color . a = clrdata - > mKeyList . mKeys [ i ] . mValue [ 3 ] ;
affector - > setParameter ( " colour " + Ogre : : StringConverter : : toString ( i ) ,
Ogre : : StringConverter : : toString ( color ) ) ;
affector - > setParameter ( " time " + Ogre : : StringConverter : : toString ( i ) ,
Ogre : : StringConverter : : toString ( clrdata - > mKeyList . mKeys [ i ] . mTime ) ) ;
}
}
else if ( e - > recType = = Nif : : RC_NiParticleColorModifier )
else if ( e - > recType = = Nif : : RC_NiParticle Rotation )
{
// TODO: Implement (Ogre::ColourInterpolatorAffector?)
// TODO: Implement (Ogre:: Rotation Affector?)
}
else
warn ( " Unhandled particle modifier " + e - > recName ) ;