X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FAnimation%2FJoint.cpp;h=f615bfe690dec038ccd52ead1f700e7a230bfd79;hb=03fbcc5b5e18dbf62c48849fc8d02cd250aa744e;hp=760e49b2cde1fd1d381079afc999baf56b6653cb;hpb=1d589bc3024e30dd51e41b6041b57649190bef4d;p=lugaru.git diff --git a/Source/Animation/Joint.cpp b/Source/Animation/Joint.cpp index 760e49b..f615bfe 100644 --- a/Source/Animation/Joint.cpp +++ b/Source/Animation/Joint.cpp @@ -18,7 +18,9 @@ You should have received a copy of the GNU General Public License along with Lugaru. If not, see . */ -#include "Animation/Joint.h" +#include "Animation/Joint.hpp" + +#include "Utils/binio.h" Joint::Joint() : blurred(0), @@ -31,8 +33,27 @@ Joint::Joint() : visible(false), parent(nullptr), sametwist(false), - label(0), + 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; +}