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; }