X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FAnimation%2FMuscle.cpp;h=c65bbbdcf389fb45cdf8b4c51ac72fcafbf4f056;hb=0aab437dc560d2afa982e61cc2547756ad7b0761;hp=c4f201a20e5505c4973267aaee0fb39e404e110d;hpb=b84825978803615f45a9f128232e62431042aec0;p=lugaru.git diff --git a/Source/Animation/Muscle.cpp b/Source/Animation/Muscle.cpp index c4f201a..c65bbbd 100644 --- a/Source/Animation/Muscle.cpp +++ b/Source/Animation/Muscle.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,28 +18,38 @@ You should have received a copy of the GNU General Public License along with Lugaru. If not, see . */ -#include "Animation/Muscle.h" +#include "Animation/Muscle.hpp" + #include "Utils/binio.h" extern float multiplier; extern bool freeze; Muscle::Muscle() + : length(0) + , targetlength(0) + , parent1(0) + , parent2(0) + , maxlength(0) + , minlength(0) + , type(boneconnect) + , visible(false) + , rotate1(0) + , rotate2(0) + , rotate3(0) + , lastrotate1(0) + , lastrotate2(0) + , lastrotate3(0) + , oldrotate1(0) + , oldrotate2(0) + , oldrotate3(0) + , newrotate1(0) + , newrotate2(0) + , newrotate3(0) + , + + strength(0) { - length = 0; - targetlength = 0; - parent1 = 0; - parent2 = 0; - maxlength = 0; - minlength = 0; - type = boneconnect; - visible = 0; - rotate1 = 0, rotate2 = 0, rotate3 = 0; - lastrotate1 = 0, lastrotate2 = 0, lastrotate3 = 0; - oldrotate1 = 0, oldrotate2 = 0, oldrotate3 = 0; - newrotate1 = 0, newrotate2 = 0, newrotate3 = 0; - - strength = 0; } void Muscle::load(FILE* tfile, int vertexNum, std::vector& joints) @@ -96,7 +106,6 @@ void Muscle::loadVerticesClothes(FILE* tfile, int vertexNum) } } - /* EFFECT * sets strength, length, * parent1->position, parent2->position, @@ -126,27 +135,34 @@ void Muscle::DoConstraint(bool spinny) } // clamp strength - if (strength < 0) + if (strength < 0) { strength = 0; - if (strength > 1) + } + if (strength > 1) { strength = 1; + } length -= (length - relaxlength) * (1 - strength) * multiplier * 10000; - length -= (length - targetlength) * (strength) * multiplier * 10000; - if (strength == 0) + length -= (length - targetlength) * strength * multiplier * 10000; + if (strength == 0) { length = relaxlength; + } - if ((relaxlength - length > 0 && relaxlength - oldlength < 0) || (relaxlength - length < 0 && relaxlength - oldlength > 0)) + if ((relaxlength - length > 0 && relaxlength - oldlength < 0) || (relaxlength - length < 0 && relaxlength - oldlength > 0)) { length = relaxlength; + } // clamp length - if (length < minlength) + if (length < minlength) { length = minlength; - if (length > maxlength) + } + if (length > maxlength) { length = maxlength; + } - if (length == relaxlength) + if (length == relaxlength) { return; + } // relax muscle?