forked from mirror/openmw-tes3mp
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
638 B
C++
30 lines
638 B
C++
#include "data.hpp"
|
|
#include "node.hpp"
|
|
|
|
namespace Nif
|
|
{
|
|
void NiSkinInstance::post(NIFFile *nif)
|
|
{
|
|
data.post(nif);
|
|
root.post(nif);
|
|
bones.post(nif);
|
|
|
|
if(data.empty() || root.empty())
|
|
nif->fail("NiSkinInstance missing root or data");
|
|
|
|
size_t bnum = bones.length();
|
|
if(bnum != data->bones.size())
|
|
nif->fail("Mismatch in NiSkinData bone count");
|
|
|
|
root->makeRootBone(&data->trafo);
|
|
|
|
for(size_t i=0; i<bnum; i++)
|
|
{
|
|
if(bones[i].empty())
|
|
nif->fail("Oops: Missing bone! Don't know how to handle this.");
|
|
bones[i]->makeBone(i, data->bones[i]);
|
|
}
|
|
}
|
|
|
|
} // Namespace
|