X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FObjects%2FPerson.cpp;h=1187fb7ba76a6d3db2e29c4ece4ba1db35b17ebc;hb=35048f2f8374d1457a5cef19ea3af599037b6935;hp=f020f5e67a9990f8423dbb6b05b71faea3d41944;hpb=61122a635fae9aac4df5c4dafc4443436dbb9c4f;p=lugaru.git diff --git a/Source/Objects/Person.cpp b/Source/Objects/Person.cpp index f020f5e..1187fb7 100644 --- a/Source/Objects/Person.cpp +++ b/Source/Objects/Person.cpp @@ -72,7 +72,7 @@ extern float envsoundlife[30]; extern XYZ windvector; -std::vector> Person::players(1, std::shared_ptr(new Person())); +std::vector> Person::players; Person::Person() : whichpatchx(0) @@ -130,30 +130,24 @@ Person::Person() , skiddingdelay(0) , deathbleeding(0) , tempdeltav(0) - , - damagetolerance(200) + , damagetolerance(0) , damage(0) , permanentdamage(0) , superpermanentdamage(0) , lastcollide(0) , dead(0) - , - jumppower(5) + , jumppower(5) , onground(false) - , - wentforweapon(0) - , + , wentforweapon(0) - calcrot(false) - , + , calcrot(false) - facing() - , + , facing() - bleeding(0) + , bleeding(0) , bleedx(0) , bleedy(0) , direction(0) @@ -342,17 +336,15 @@ Person::Person() , neckspurtdelay(0) , neckspurtparticledelay(0) , neckspurtamount(0) - , - whichskin(0) + , whichskin(0) , rabbitkickragdoll(false) - , - tempanimation() - , + , tempanimation("Tempanim", lowheight, neutral) - jumpclimb(false) + , jumpclimb(false) { + damagetolerance = PersonType::types[creature].defaultDamageTolerance; setProportions(1, 1, 1, 1); } @@ -435,19 +427,25 @@ Person::Person(FILE* tfile, int mapvers, unsigned i) loaded = true; + damagetolerance = PersonType::types[creature].defaultDamageTolerance; + if (scale < 0) { - if (creature == wolftype) { - scale = .23; - damagetolerance = 300; - } else { - scale = .2; - } + scale = PersonType::types[creature].defaultScale; } oldcoords = coords; realoldcoords = coords; } +void Person::changeCreatureType(person_type type) +{ + creature = type; + whichskin = 0; + skeletonLoad(type == rabbittype); + scale = PersonType::types[creature].defaultScale; + damagetolerance = PersonType::types[creature].defaultDamageTolerance; +} + void Person::skeletonLoad(bool clothes) { skeleton.id = id; @@ -477,7 +475,12 @@ void Person::setProportions(float head, float body, float arms, float legs) proportions[3] = legs; } -XYZ Person::getProportion(int part) const +float Person::getProportion(int part) const +{ + return proportions[part]; +} + +XYZ Person::getProportionXYZ(int part) const { XYZ prop = PersonType::types[creature].proportions[part] * proportions[part]; if (cellophane) { @@ -498,7 +501,7 @@ void Person::CheckKick() } if (Animation::animations[victim->animTarget].height != lowheight) { - float damagemult = (creature == wolftype ? 2.5 : 1.) * power * power; + float damagemult = PersonType::types[creature].power * power * power; XYZ relative = velocity; relative.y = 0; Normalise(&relative); @@ -2230,7 +2233,7 @@ void Person::DoAnimations() animCurrent = animTarget; frameTarget++; - if (animTarget == removeknifeanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == removeknifeanim && currentFrame().label == 5) { for (unsigned i = 0; i < weapons.size(); i++) { if (weapons[i].owner == -1) { if (distsqflat(&coords, &weapons[i].position) < 4 && weaponactive == -1) { @@ -2246,7 +2249,7 @@ void Person::DoAnimations() } } - if (animTarget == crouchremoveknifeanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == crouchremoveknifeanim && currentFrame().label == 5) { for (unsigned i = 0; i < weapons.size(); i++) { bool willwork = true; if (weapons[i].owner != -1) { @@ -2332,7 +2335,7 @@ void Person::DoAnimations() } } - if (animCurrent == drawleftanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == drawleftanim && currentFrame().label == 5) { if (weaponactive == -1) { weaponactive = 0; } else if (weaponactive == 0) { @@ -2432,15 +2435,12 @@ void Person::DoAnimations() } //Move impacts - float damagemult = 1 * power; - if (creature == wolftype) { - damagemult = 2.5 * power; - } + float damagemult = PersonType::types[creature].power * power; if (hasvictim) { damagemult /= victim->damagetolerance / 200; } if ((Animation::animations[animTarget].attack == normalattack || animTarget == walljumprightkickanim || animTarget == walljumpleftkickanim) && (!feint) && (victim->skeleton.free != 2 || animTarget == killanim || animTarget == dropkickanim || animTarget == crouchstabanim || animTarget == swordgroundstabanim || animTarget == staffgroundsmashanim)) { - if (animTarget == spinkickanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == spinkickanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) { escapednum = 0; if (id == 0) { @@ -2478,7 +2478,7 @@ void Person::DoAnimations() } } - if (animTarget == wolfslapanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == wolfslapanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) { escapednum = 0; if (id == 0) { @@ -2513,7 +2513,7 @@ void Person::DoAnimations() } } - if (animTarget == walljumprightkickanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == walljumprightkickanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) { escapednum = 0; if (id == 0) { @@ -2550,7 +2550,7 @@ void Person::DoAnimations() } } - if (animTarget == walljumpleftkickanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == walljumpleftkickanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) { escapednum = 0; if (id == 0) { @@ -2587,7 +2587,7 @@ void Person::DoAnimations() } } - if (animTarget == blockhighleftstrikeanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == blockhighleftstrikeanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != lowheight) { escapednum = 0; if (id == 0) { @@ -2612,7 +2612,7 @@ void Person::DoAnimations() } } - if (animTarget == killanim && Animation::animations[animTarget].frames[frameCurrent].label == 8) { + if (animCurrent == killanim && currentFrame().label == 8) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && victim->dead) { escapednum = 0; if (id == 0) { @@ -2647,7 +2647,7 @@ void Person::DoAnimations() } } - if (animTarget == killanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == killanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 9 && victim->dead) { escapednum = 0; if (id == 0) { @@ -2673,7 +2673,7 @@ void Person::DoAnimations() } } - if (animTarget == dropkickanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (animCurrent == dropkickanim && currentFrame().label == 7) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 9 && victim->skeleton.free) { escapednum = 0; if (id == 0) { @@ -2715,7 +2715,7 @@ void Person::DoAnimations() } } - if ((animTarget == crouchstabanim || animTarget == swordgroundstabanim) && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if ((animCurrent == crouchstabanim || animCurrent == swordgroundstabanim) && currentFrame().label == 5) { if (hasvictim) { if (!victim->skeleton.free) { @@ -2812,7 +2812,7 @@ void Person::DoAnimations() } } - if ((animTarget == crouchstabanim || animTarget == swordgroundstabanim) && Animation::animations[animTarget].frames[frameCurrent].label == 6) { + if ((animCurrent == crouchstabanim || animCurrent == swordgroundstabanim) && currentFrame().label == 6) { if (!hasvictim) { emit_sound_at(knifedrawsound, coords, 128); } @@ -2916,7 +2916,7 @@ void Person::DoAnimations() } } - if (animTarget == upunchanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == upunchanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3) { escapednum = 0; if (id == 0) { @@ -2954,7 +2954,7 @@ void Person::DoAnimations() } } - if (animTarget == winduppunchanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == winduppunchanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 2) { escapednum = 0; if (id == 0) { @@ -3001,7 +3001,7 @@ void Person::DoAnimations() } } - if (animTarget == blockhighleftanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == blockhighleftanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 4) { if (victim->id == 0) { camerashake += .4; @@ -3012,7 +3012,7 @@ void Person::DoAnimations() } } - if (animTarget == swordslashparryanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == swordslashparryanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 4) { if (victim->id == 0) { camerashake += .4; @@ -3037,7 +3037,7 @@ void Person::DoAnimations() } } - if (animTarget == knifethrowanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == knifethrowanim && currentFrame().label == 5) { if (weaponactive != -1) { escapednum = 0; XYZ aim; @@ -3052,9 +3052,9 @@ void Person::DoAnimations() } } - if (animTarget == knifeslashstartanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == knifeslashstartanim && currentFrame().label == 5) { if (hasvictim) { - if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 4.5 && /*Animation::animations[victim->animTarget].height!=lowheight&&*/ victim->animTarget != dodgebackanim && victim->animTarget != rollanim) { + if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 4.5 && victim->animTarget != dodgebackanim && victim->animTarget != rollanim) { escapednum = 0; if (!Tutorial::active) { victim->DoBloodBig(1.5 / victim->armorhigh, 225); @@ -3109,7 +3109,7 @@ void Person::DoAnimations() } } } - if (animTarget == swordslashanim && Animation::animations[animTarget].frames[frameCurrent].label == 5 && victim->animTarget != rollanim) { + if (animCurrent == swordslashanim && currentFrame().label == 5 && victim->animTarget != rollanim) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 6.5 && victim->animTarget != dodgebackanim) { if (victim->weaponactive == -1 || normaldotproduct(victim->facing, victim->coords - coords) > 0 || (Random() % 2 == 0)) { award_bonus(id, Slashbonus); @@ -3194,7 +3194,7 @@ void Person::DoAnimations() } } - if (animTarget == staffhitanim && Animation::animations[animTarget].frames[frameCurrent].label == 5 && victim->animTarget != rollanim) { + if (animCurrent == staffhitanim && currentFrame().label == 5 && victim->animTarget != rollanim) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 6.5 && victim->animTarget != dodgebackanim && victim->animTarget != sweepanim) { if (!Tutorial::active) { weapons[weaponids[0]].damage += .4 + float(abs(Random() % 100) - 50) / 250; @@ -3229,7 +3229,7 @@ void Person::DoAnimations() } } - if (animTarget == staffspinhitanim && Animation::animations[animTarget].frames[frameCurrent].label == 5 && victim->animTarget != rollanim) { + if (animCurrent == staffspinhitanim && currentFrame().label == 5 && victim->animTarget != rollanim) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 6.5 && victim->animTarget != dodgebackanim && victim->animTarget != sweepanim) { if (!Tutorial::active) { weapons[weaponids[0]].damage += .6 + float(abs(Random() % 100) - 50) / 250; @@ -3262,7 +3262,7 @@ void Person::DoAnimations() } } - if (animTarget == staffgroundsmashanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == staffgroundsmashanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 6.5) { escapednum = 0; if (!Tutorial::active) { @@ -3314,7 +3314,7 @@ void Person::DoAnimations() } } - if (animTarget == lowkickanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == lowkickanim && currentFrame().label == 5) { if (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3 && Animation::animations[victim->animTarget].height != highheight) { escapednum = 0; if (id == 0) { @@ -3376,7 +3376,7 @@ void Person::DoAnimations() } } - if (animTarget == sweepanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == sweepanim && currentFrame().label == 5) { if ((victim->animTarget != jumpupanim) && (distsq(&coords, &victim->coords) < (scale * 5) * (scale * 5) * 3) && (victim != this->shared_from_this())) { @@ -3438,7 +3438,7 @@ void Person::DoAnimations() } } if (Animation::animations[animTarget].attack == reversal && (!victim->feint || (victim->lastattack == victim->lastattack2 && victim->lastattack2 == victim->lastattack3 && Random() % 2) || animTarget == knifefollowanim)) { - if (animTarget == spinkickreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (animCurrent == spinkickreversalanim && currentFrame().label == 7) { escapednum = 0; if (id == 0) { camerashake += .4; @@ -3483,7 +3483,7 @@ void Person::DoAnimations() } } - if (animTarget == staffhitreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (animCurrent == staffhitreversalanim && currentFrame().label == 5) { escapednum = 0; if (id == 0) { camerashake += .4; @@ -3506,7 +3506,7 @@ void Person::DoAnimations() victim->DoDamage(damagemult * 70 / victim->protectionhigh); } - if (animTarget == staffspinhitreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (animCurrent == staffspinhitreversalanim && currentFrame().label == 7) { escapednum = 0; if (id == 0) { camerashake += .4; @@ -3536,7 +3536,7 @@ void Person::DoAnimations() victim->DoDamage(damagemult * 70 / victim->protectionhigh); } - if (animTarget == upunchreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (animCurrent == upunchreversalanim && currentFrame().label == 7) { escapednum = 0; victim->RagDoll(1); XYZ relative; @@ -3588,7 +3588,7 @@ void Person::DoAnimations() } } - if (animTarget == swordslashreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (animCurrent == swordslashreversalanim && currentFrame().label == 7) { escapednum = 0; victim->RagDoll(1); XYZ relative; @@ -3611,7 +3611,7 @@ void Person::DoAnimations() award_bonus(id, swordreversebonus); } - if (hasvictim && animTarget == knifeslashreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (hasvictim && animCurrent == knifeslashreversalanim && currentFrame().label == 7) { escapednum = 0; if (id == 0) { camerashake += .4; @@ -3639,7 +3639,7 @@ void Person::DoAnimations() award_bonus(id, Reversal); } - if (hasvictim && animTarget == sneakattackanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (hasvictim && animCurrent == sneakattackanim && currentFrame().label == 7) { escapednum = 0; victim->RagDoll(0); victim->skeleton.spinny = 0; @@ -3684,7 +3684,7 @@ void Person::DoAnimations() award_bonus(id, spinecrusher); } - if (hasvictim && (animTarget == knifefollowanim || animTarget == knifesneakattackanim) && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (hasvictim && (animCurrent == knifefollowanim || animCurrent == knifesneakattackanim) && currentFrame().label == 5) { if (weaponactive != -1 && victim->bloodloss < victim->damagetolerance) { escapednum = 0; if (animTarget == knifefollowanim) { @@ -3729,7 +3729,7 @@ void Person::DoAnimations() } } - if (hasvictim && (animTarget == knifefollowanim || animTarget == knifesneakattackanim) && Animation::animations[animTarget].frames[frameCurrent].label == 6) { + if (hasvictim && (animCurrent == knifefollowanim || animCurrent == knifesneakattackanim) && currentFrame().label == 6) { escapednum = 0; victim->velocity = 0; for (unsigned i = 0; i < victim->skeleton.joints.size(); i++) { @@ -3762,7 +3762,7 @@ void Person::DoAnimations() } } - if (hasvictim && (animTarget == swordsneakattackanim) && Animation::animations[animTarget].frames[frameCurrent].label == 5) { + if (hasvictim && (animCurrent == swordsneakattackanim) && currentFrame().label == 5) { if (weaponactive != -1 && victim->bloodloss < victim->damagetolerance) { award_bonus(id, backstab); @@ -3791,7 +3791,7 @@ void Person::DoAnimations() } } - if (hasvictim && animTarget == swordsneakattackanim && Animation::animations[animTarget].frames[frameCurrent].label == 6) { + if (hasvictim && animCurrent == swordsneakattackanim && currentFrame().label == 6) { escapednum = 0; victim->velocity = 0; for (unsigned i = 0; i < victim->skeleton.joints.size(); i++) { @@ -3818,7 +3818,7 @@ void Person::DoAnimations() } } - if (animTarget == sweepreversalanim && Animation::animations[animTarget].frames[frameCurrent].label == 7) { + if (animCurrent == sweepreversalanim && currentFrame().label == 7) { escapednum = 0; if (id == 0) { camerashake += .4; @@ -3880,7 +3880,7 @@ void Person::DoAnimations() victim->velocity = 0; } - if (animTarget == sweepreversalanim && ((Animation::animations[animTarget].frames[frameCurrent].label == 9 && victim->damage < victim->damagetolerance) || (Animation::animations[animTarget].frames[frameCurrent].label == 7 && victim->damage > victim->damagetolerance))) { + if (animCurrent == sweepreversalanim && ((currentFrame().label == 9 && victim->damage < victim->damagetolerance) || (currentFrame().label == 7 && victim->damage > victim->damagetolerance))) { escapednum = 0; victim->RagDoll(0); XYZ relative; @@ -3904,7 +3904,7 @@ void Person::DoAnimations() } //Animation end - if (frameTarget > int(Animation::animations[animCurrent].frames.size()) - 1) { + if (frameTarget >= int(Animation::animations[animCurrent].frames.size())) { frameTarget = 0; if (wasStop()) { animTarget = getIdle(); @@ -4377,6 +4377,11 @@ void Person::DoAnimations() frameCurrent = frameTarget; target = 1; } + + if (frameCurrent >= int(Animation::animations[animCurrent].frames.size())) { + frameCurrent = Animation::animations[animCurrent].frames.size() - 1; + } + oldrot = rot; rot = targetrot * target; yaw += rot - oldrot; @@ -4385,9 +4390,7 @@ void Person::DoAnimations() oldrot = 0; targetrot = 0; } - if (frameCurrent >= int(Animation::animations[animCurrent].frames.size())) { - frameCurrent = Animation::animations[animCurrent].frames.size() - 1; - } + if (animCurrent != oldanimCurrent || animTarget != oldanimTarget || ((frameCurrent != oldframeCurrent || frameTarget != oldframeTarget) && !calcrot)) { //Old rotates for (unsigned i = 0; i < skeleton.joints.size(); i++) { @@ -6507,24 +6510,24 @@ int Person::DrawSkeleton() glMatrixMode(GL_MODELVIEW); glPushMatrix(); if (p1 == abdomen || p2 == abdomen) { - glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportion(1).x, - (v0.y * (1 - morphness) + v1.y * morphness) * getProportion(1).y, - (v0.z * (1 - morphness) + v1.z * morphness) * getProportion(1).z); + glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportionXYZ(1).x, + (v0.y * (1 - morphness) + v1.y * morphness) * getProportionXYZ(1).y, + (v0.z * (1 - morphness) + v1.z * morphness) * getProportionXYZ(1).z); } if (p1 == lefthand || p1 == righthand || p1 == leftwrist || p1 == rightwrist || p1 == leftelbow || p1 == rightelbow || p2 == leftelbow || p2 == rightelbow) { - glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportion(2).x, - (v0.y * (1 - morphness) + v1.y * morphness) * getProportion(2).y, - (v0.z * (1 - morphness) + v1.z * morphness) * getProportion(2).z); + glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportionXYZ(2).x, + (v0.y * (1 - morphness) + v1.y * morphness) * getProportionXYZ(2).y, + (v0.z * (1 - morphness) + v1.z * morphness) * getProportionXYZ(2).z); } if (p1 == leftfoot || p1 == rightfoot || p1 == leftankle || p1 == rightankle || p1 == leftknee || p1 == rightknee || p2 == leftknee || p2 == rightknee) { - glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportion(3).x, - (v0.y * (1 - morphness) + v1.y * morphness) * getProportion(3).y, - (v0.z * (1 - morphness) + v1.z * morphness) * getProportion(3).z); + glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportionXYZ(3).x, + (v0.y * (1 - morphness) + v1.y * morphness) * getProportionXYZ(3).y, + (v0.z * (1 - morphness) + v1.z * morphness) * getProportionXYZ(3).z); } if (p1 == head || p2 == head) { - glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportion(0).x, - (v0.y * (1 - morphness) + v1.y * morphness) * getProportion(0).y, - (v0.z * (1 - morphness) + v1.z * morphness) * getProportion(0).z); + glTranslatef((v0.x * (1 - morphness) + v1.x * morphness) * getProportionXYZ(0).x, + (v0.y * (1 - morphness) + v1.y * morphness) * getProportionXYZ(0).y, + (v0.z * (1 - morphness) + v1.z * morphness) * getProportionXYZ(0).z); } glGetFloatv(GL_MODELVIEW_MATRIX, M); skeleton.drawmodel.vertex[skeleton.muscles[i].vertices[j]].x = M[12] * scale; @@ -6539,24 +6542,24 @@ int Person::DrawSkeleton() glMatrixMode(GL_MODELVIEW); glPushMatrix(); if (p1 == abdomen || p2 == abdomen) { - glTranslatef(v0.x * getProportion(1).x, - v0.y * getProportion(1).y, - v0.z * getProportion(1).z); + glTranslatef(v0.x * getProportionXYZ(1).x, + v0.y * getProportionXYZ(1).y, + v0.z * getProportionXYZ(1).z); } if (p1 == lefthand || p1 == righthand || p1 == leftwrist || p1 == rightwrist || p1 == leftelbow || p1 == rightelbow || p2 == leftelbow || p2 == rightelbow) { - glTranslatef(v0.x * getProportion(2).x, - v0.y * getProportion(2).y, - v0.z * getProportion(2).z); + glTranslatef(v0.x * getProportionXYZ(2).x, + v0.y * getProportionXYZ(2).y, + v0.z * getProportionXYZ(2).z); } if (p1 == leftfoot || p1 == rightfoot || p1 == leftankle || p1 == rightankle || p1 == leftknee || p1 == rightknee || p2 == leftknee || p2 == rightknee) { - glTranslatef(v0.x * getProportion(3).x, - v0.y * getProportion(3).y, - v0.z * getProportion(3).z); + glTranslatef(v0.x * getProportionXYZ(3).x, + v0.y * getProportionXYZ(3).y, + v0.z * getProportionXYZ(3).z); } if (p1 == head || p2 == head) { - glTranslatef(v0.x * getProportion(0).x, - v0.y * getProportion(0).y, - v0.z * getProportion(0).z); + glTranslatef(v0.x * getProportionXYZ(0).x, + v0.y * getProportionXYZ(0).y, + v0.z * getProportionXYZ(0).z); } glGetFloatv(GL_MODELVIEW_MATRIX, M); @@ -6595,24 +6598,24 @@ int Person::DrawSkeleton() glMatrixMode(GL_MODELVIEW); glPushMatrix(); if (p1 == abdomen || p2 == abdomen) { - glTranslatef(v0.x * getProportion(1).x, - v0.y * getProportion(1).y, - v0.z * getProportion(1).z); + glTranslatef(v0.x * getProportionXYZ(1).x, + v0.y * getProportionXYZ(1).y, + v0.z * getProportionXYZ(1).z); } if (p1 == lefthand || p1 == righthand || p1 == leftwrist || p1 == rightwrist || p1 == leftelbow || p1 == rightelbow || p2 == leftelbow || p2 == rightelbow) { - glTranslatef(v0.x * getProportion(2).x, - v0.y * getProportion(2).y, - v0.z * getProportion(2).z); + glTranslatef(v0.x * getProportionXYZ(2).x, + v0.y * getProportionXYZ(2).y, + v0.z * getProportionXYZ(2).z); } if (p1 == leftfoot || p1 == rightfoot || p1 == leftankle || p1 == rightankle || p1 == leftknee || p1 == rightknee || p2 == leftknee || p2 == rightknee) { - glTranslatef(v0.x * getProportion(3).x, - v0.y * getProportion(3).y, - v0.z * getProportion(3).z); + glTranslatef(v0.x * getProportionXYZ(3).x, + v0.y * getProportionXYZ(3).y, + v0.z * getProportionXYZ(3).z); } if (p1 == head || p2 == head) { - glTranslatef(v0.x * getProportion(0).x, - v0.y * getProportion(0).y, - v0.z * getProportion(0).z); + glTranslatef(v0.x * getProportionXYZ(0).x, + v0.y * getProportionXYZ(0).y, + v0.z * getProportionXYZ(0).z); } glGetFloatv(GL_MODELVIEW_MATRIX, M); skeleton.drawmodelclothes.vertex[skeleton.muscles[i].verticesclothes[j]].x = M[12] * scale;