Improved MD5 loaders code

Fixed missing return


Former-commit-id: b5fb298ab8b147bbfda07ffb2090d248156b96c7
This commit is contained in:
Lynix 2014-07-28 12:25:59 +02:00
parent 4a0dbcb338
commit 095a44e9b1
2 changed files with 11 additions and 2 deletions

View File

@ -15,12 +15,15 @@ namespace
nzTernary Check(NzInputStream& stream, const NzAnimationParams& parameters) nzTernary Check(NzInputStream& stream, const NzAnimationParams& parameters)
{ {
NazaraUnused(parameters);
NzMD5AnimParser parser(stream); NzMD5AnimParser parser(stream);
return parser.Check(); return parser.Check();
} }
bool Load(NzAnimation* animation, NzInputStream& stream, const NzAnimationParams& parameters) bool Load(NzAnimation* animation, NzInputStream& stream, const NzAnimationParams& parameters)
{ {
///TODO: Utiliser les paramètres
NzMD5AnimParser parser(stream); NzMD5AnimParser parser(stream);
if (!parser.Parse()) if (!parser.Parse())
@ -49,7 +52,9 @@ namespace
NzSequenceJoint* sequenceJoints = animation->GetSequenceJoints(); NzSequenceJoint* sequenceJoints = animation->GetSequenceJoints();
// Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette // Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette
NzQuaternionf rotationQuat = NzEulerAnglesf(-90.f, 90.f, 0.f); NzQuaternionf rotationQuat = NzQuaternionf::RotationBetween(NzVector3f::UnitX(), NzVector3f::Forward()) *
NzQuaternionf::RotationBetween(NzVector3f::UnitZ(), NzVector3f::Up());
for (unsigned int i = 0; i < jointCount; ++i) for (unsigned int i = 0; i < jointCount; ++i)
{ {
int parent = joints[i].parent; int parent = joints[i].parent;
@ -71,6 +76,8 @@ namespace
sequenceJoint.scale.Set(1.f); sequenceJoint.scale.Set(1.f);
} }
} }
return true;
} }
} }

View File

@ -36,7 +36,9 @@ namespace
} }
// Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette // Pour que le squelette soit correctement aligné, il faut appliquer un quaternion "de correction" aux joints à la base du squelette
NzQuaternionf rotationQuat = NzEulerAnglesf(-90.f, 180.f, 0.f); NzQuaternionf rotationQuat = NzQuaternionf::RotationBetween(NzVector3f::UnitX(), NzVector3f::Forward()) *
NzQuaternionf::RotationBetween(NzVector3f::UnitZ(), NzVector3f::Up());
NzString baseDir = stream.GetDirectory(); NzString baseDir = stream.GetDirectory();
// Le hellknight de Doom 3 fait ~120 unités, et il est dit qu'il fait trois mètres // Le hellknight de Doom 3 fait ~120 unités, et il est dit qu'il fait trois mètres