X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FAnimation%2FJoint.cpp;h=b6ad7070b81530652ca3cc2c223729a452ecf864;hb=0aab437dc560d2afa982e61cc2547756ad7b0761;hp=760e49b2cde1fd1d381079afc999baf56b6653cb;hpb=1d589bc3024e30dd51e41b6041b57649190bef4d;p=lugaru.git
diff --git a/Source/Animation/Joint.cpp b/Source/Animation/Joint.cpp
index 760e49b..b6ad707 100644
--- a/Source/Animation/Joint.cpp
+++ b/Source/Animation/Joint.cpp
@@ -1,6 +1,6 @@
/*
Copyright (C) 2003, 2010 - Wolfire Games
-Copyright (C) 2010-2016 - Lugaru contributors (see AUTHORS file)
+Copyright (C) 2010-2017 - Lugaru contributors (see AUTHORS file)
This file is part of Lugaru.
@@ -18,21 +18,42 @@ You should have received a copy of the GNU General Public License
along with Lugaru. If not, see .
*/
-#include "Animation/Joint.h"
-
-Joint::Joint() :
- blurred(0),
- length(0),
- mass(0),
- lower(false),
- hasparent(false),
- locked(false),
- modelnum(0),
- visible(false),
- parent(nullptr),
- sametwist(false),
- label(0),
- hasgun(0),
- delay(0)
+#include "Animation/Joint.hpp"
+
+#include "Utils/binio.h"
+
+Joint::Joint()
+ : blurred(0)
+ , length(0)
+ , mass(0)
+ , lower(false)
+ , hasparent(false)
+ , locked(false)
+ , modelnum(0)
+ , visible(false)
+ , parent(nullptr)
+ , sametwist(false)
+ , label(head)
+ , hasgun(0)
+ , delay(0)
+{
+}
+
+void Joint::load(FILE* tfile, std::vector& joints)
{
+ int parentID;
+
+ funpackf(tfile, "Bf Bf Bf Bf Bf", &position.x, &position.y, &position.z, &length, &mass);
+ funpackf(tfile, "Bb Bb", &hasparent, &locked);
+ funpackf(tfile, "Bi", &modelnum);
+ funpackf(tfile, "Bb Bb", &visible, &sametwist);
+ funpackf(tfile, "Bi Bi", &label, &hasgun);
+ funpackf(tfile, "Bb", &lower);
+ funpackf(tfile, "Bi", &parentID);
+ if (hasparent) {
+ parent = &joints[parentID];
+ }
+ velocity = 0;
+ oldposition = position;
+ startpos = position;
}