]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Person.cpp
Remove comments that confuse Vim
[lugaru.git] / Source / Person.cpp
index 5f2a2d94815126ddd59fd9bd74bbc40e2ac3f316..90fdabe8beb97bdf89f9c1f322c0ffe80ede4b41 100644 (file)
@@ -24,6 +24,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "openal_wrapper.h"
 #include "Animation.h"
 #include "Sounds.h"
+#include "Awards.h"
+#include "Game.h"
 
 extern float multiplier;
 extern int channels[100];
@@ -51,11 +53,8 @@ extern float terraindetail;
 extern float viewdistance;
 extern float blackout;
 extern int difficulty;
-extern Weapons weapons;
 extern bool decals;
 extern float fadestart;
-extern Person player[maxplayers];
-extern int numplayers;
 extern bool freeze;
 extern bool winfreeze;
 extern float flashamount,flashr,flashg,flashb;
@@ -73,10 +72,6 @@ extern XYZ envsound[30];
 extern float envsoundvol[30];
 extern float envsoundlife[30];
 extern int numenvsounds;
-extern int bonus;
-extern float bonusvalue;
-extern float bonustotal;
-extern float bonustime;
 extern int tutoriallevel;
 extern float smoketex;
 extern int tutorialstage;
@@ -84,24 +79,9 @@ extern bool reversaltrain;
 extern bool canattack;
 extern bool cananger;
 extern float damagedealt;
-extern float damagetaken;
 extern int hostile;
 extern float hostiletime;
 
-extern int numfalls;
-extern int numflipfail;
-extern int numseen;
-extern int numswordattack;
-extern int numknifeattack;
-extern int numunarmedattack;
-extern int numescaped;
-extern int numflipped;
-extern int numwallflipped;
-extern int numthrowkill;
-extern int numafterkill;
-extern int numreversals;
-extern int numattacks;
-extern int maxalarmed;
 extern int indialogue;
 
 extern bool gamestarted;
@@ -161,13 +141,7 @@ void Person::CheckKick(){
                                                skeleton.free=0;
                                                if(id==0)OPENAL_SetPaused(channels[whooshsound], false);
 
-                                               //if(victim->damage>victim->damagetolerance){
-                                               if(id==0){
-                                                       bonus=cannon;
-                                                       bonustime=0;
-                                                       bonusvalue=100;
-                                               }
-                                               //}
+                                               award_bonus(id, cannon);
                                        }
                                        else if (victim->isCrouch()){
                                                targetanimation=rabbitkickreversedanim;
@@ -383,33 +357,13 @@ bool Person::isWallJump(){
        else return 0;
 }
 
-void SolidHitBonus();
-void SolidHitBonus(){
-       if(bonustime<1.5&&(bonus==fourxcombo||bonus==megacombo)){
-               bonus=megacombo;
-               bonustime=0;
-               bonusvalue=160;
-       }
-       else if(bonustime<1.5&&bonus==threexcombo){
-               bonus=fourxcombo;
-               bonustime=0;
-               bonusvalue=80;
-       }
-       else if(bonustime<1.5&&bonus==twoxcombo){
-               bonus=threexcombo;
-               bonustime=0;
-               bonusvalue=40;
-       }
-       else if(bonustime<1.5&&bonus==solidhit){
-               bonus=twoxcombo;
-               bonustime=0;
-               bonusvalue=20;
-       }
-       else {
-               bonus=solidhit;
-               bonustime=0;
-               bonusvalue=10;
-       }
+static void
+SolidHitBonus(int playerid)
+{
+  if (bonustime < 1.5 && bonus >= solidhit && bonus <= megacombo)
+    award_bonus(playerid, bonus == megacombo ? bonus : bonus + 1);
+  else
+    award_bonus(playerid, solidhit);
 }
 
 void Person::DoBlood(float howmuch,int which){
@@ -1404,9 +1358,7 @@ void Person::DoDamage(float howmuch){
                slomodelay=.2;
                }*/
                if(!dead&&creature==wolftype){
-                       bonus=Wolfbonus;
-                       bonustime=0;
-                       bonusvalue=300;
+                 award_bonus(0, Wolfbonus);
                }
                dead=2;
                coords=20;
@@ -1858,12 +1810,8 @@ void     Person::DoAnimations(){
                                                victim->spurt=1;
                                                victim->DoBloodBig(1/victim->armorhead,210);
                                        }
-                                       if(id==0){
-                                               bonus=TackleBonus;
-                                               bonustime=0;
-                                               bonusvalue=5;
-                                               if(victim->aitype==gethelptype)bonusvalue=50;
-                                       }
+                                       award_bonus(id, TackleBonus,
+                                                   victim->aitype == gethelptype ? 50 : 0);
                                }
                        }
 
@@ -2338,9 +2286,7 @@ void      Person::DoAnimations(){
                                                                                victim->Puff(head);
                                                                                victim->DoDamage(damagemult*100/victim->protectionhead);
 
-                                                                               if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               SolidHitBonus(id);
                                                                        }
                                                                }
 
@@ -2432,16 +2378,10 @@ void    Person::DoAnimations(){
                                                                                victim->Puff(head);
                                                                                victim->DoDamage(damagemult*150/victim->protectionhead);
 
-                                                                               if(victim->damage>victim->damagetolerance){
-                                                                                       if(id==0){
-                                                                                               bonus=style;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=150;
-                                                                                       }
-                                                                               }
-                                                                               else if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               if(victim->damage>victim->damagetolerance)
+                                                                                 award_bonus(id, style);
+                                                                               else
+                                                                                 SolidHitBonus(id);
                                                                        }
                                                                }
 
@@ -2487,16 +2427,10 @@ void    Person::DoAnimations(){
                                                                                victim->Puff(head);
                                                                                victim->DoDamage(damagemult*150/victim->protectionhead);
 
-                                                                               if(victim->damage>victim->damagetolerance){
-                                                                                       if(id==0){
-                                                                                               bonus=style;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=150;
-                                                                                       }
-                                                                               }
-                                                                               else if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               if(victim->damage>victim->damagetolerance)
+                                                                                 award_bonus(id, style);
+                                                                               else
+                                                                                 SolidHitBonus(id);
                                                                        }
                                                                }
 
@@ -2656,9 +2590,8 @@ void      Person::DoAnimations(){
                                                                                for(i=0;i<victim->skeleton.num_joints;i++){
                                                                                        victim->skeleton.joints[i].velocity+=relative*damagemult*20;
                                                                                }
-                                                                               if(id==0&&!victim->dead){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               if(!victim->dead)
+                                                                                 SolidHitBonus(id);
 
                                                                                victim->Puff(abdomen);
                                                                                victim->DoDamage(damagemult*20/victim->protectionhigh);
@@ -2671,7 +2604,6 @@ void      Person::DoAnimations(){
                                                                }
 
                                                                if((targetanimation==crouchstabanim||targetanimation==swordgroundstabanim)&&animation[targetanimation].label[currentframe]==5){
-                                                                       // if(findDistancefast(&coords,&victim->coords)<(scale*5)*(scale*5)*9){
                                                                        //if(id==0)camerashake+=.4;
                                                                        float gLoc[3];
                                                                        float vel[3];
@@ -2736,11 +2668,8 @@ void     Person::DoAnimations(){
                                                                                        if(whichtri!=-1){
                                                                                                if(victim->dead!=2){
                                                                                                        victim->DoDamage(abs((victim->damagetolerance-victim->permanentdamage)*2));
-                                                                                                       if(id==0&&!victim->dead){
-                                                                                                               bonus=FinishedBonus;
-                                                                                                               bonustime=0;
-                                                                                                               bonusvalue=200;
-                                                                                                       }
+                                                                                                       if (!victim->dead)
+                                                                                                         award_bonus(id, FinishedBonus);
                                                                                                }
                                                                                                if(bloodtoggle)weapons.bloody[weaponids[weaponactive]]=2;
 
@@ -2775,7 +2704,6 @@ void      Person::DoAnimations(){
                                                                }
 
                                                                if((targetanimation==crouchstabanim||targetanimation==swordgroundstabanim)&&animation[targetanimation].label[currentframe]==6){
-                                                                       // if(findDistancefast(&coords,&victim->coords)<(scale*5)*(scale*5)*9){
                                                                        //if(id==0)camerashake+=.4;
                                                                        float gLoc[3];
                                                                        float vel[3];
@@ -2900,7 +2828,6 @@ void      Person::DoAnimations(){
                                                                                vel[0]=velocity.x;
                                                                                vel[1]=velocity.y;
                                                                                vel[2]=velocity.z;
-                                                                               //if(!victim->isIdle()||victim->damage>victim->damagetolerance-60){
                                                                                if(1==1){
                                                                                        if(tutoriallevel!=1){
                                                                                                PlaySoundEx( heavyimpactsound, samp[heavyimpactsound], NULL, true);
@@ -2939,9 +2866,7 @@ void      Person::DoAnimations(){
                                                                                victim->Puff(abdomen);
                                                                                victim->DoDamage(damagemult*60/victim->protectionhigh);
 
-                                                                               if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               SolidHitBonus(id);
                                                                        }
                                                                }
 
@@ -2958,7 +2883,6 @@ void      Person::DoAnimations(){
                                                                                vel[0]=velocity.x;
                                                                                vel[1]=velocity.y;
                                                                                vel[2]=velocity.z;
-                                                                               //if(!victim->isIdle()||victim->damage>victim->damagetolerance-60){
                                                                                if(victim->damage<=victim->damagetolerance-60&&normaldotproduct(victim->facing,victim->coords-coords)<(scale*5)*(scale*5)*0&&animation[victim->targetanimation].height!=lowheight){
                                                                                        if(tutoriallevel!=1){
                                                                                                PlaySoundEx( thudsound, samp[thudsound], NULL, true);
@@ -3006,9 +2930,7 @@ void      Person::DoAnimations(){
                                                                                victim->Puff(abdomen);
                                                                                victim->DoDamage(damagemult*60/victim->protectionhigh);
 
-                                                                               if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               SolidHitBonus(id);
                                                                        }
                                                                }
 
@@ -3096,15 +3018,9 @@ void     Person::DoAnimations(){
                                                                        if(hasvictim)
                                                                                if(findDistancefast(&coords,&victim->coords)<(scale*5)*(scale*5)*4.5&&/*animation[victim->targetanimation].height!=lowheight&&*/victim->targetanimation!=dodgebackanim&&victim->targetanimation!=rollanim){
                                                                                        escapednum=0;
-                                                                                       //if(Random()%2){
                                                                                        if(tutoriallevel!=1)victim->DoBloodBig(1.5/victim->armorhigh,225);
-                                                                                       //}
 
-                                                                                       if(id==0){
-                                                                                               bonus=Slicebonus;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=10;
-                                                                                       }
+                                                                                       award_bonus(id, Slicebonus);
                                                                                        if(tutoriallevel!=1){
                                                                                                float gLoc[3];
                                                                                                float vel[3];
@@ -3161,11 +3077,7 @@ void     Person::DoAnimations(){
                                                                if(targetanimation==swordslashanim&&animation[targetanimation].label[currentframe]==5&&victim->targetanimation!=rollanim){
                                                                        if(findDistancefast(&coords,&victim->coords)<(scale*5)*(scale*5)*6.5&&victim->targetanimation!=dodgebackanim){
                                                                                if(victim->weaponactive==-1||normaldotproduct(victim->facing,victim->coords-coords)>0||(Random()%2==0)){
-                                                                                       if(id==0){
-                                                                                               bonus=Slashbonus;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=40;
-                                                                                       }
+                                                                                       award_bonus(id, Slashbonus);
                                                                                        escapednum=0;
                                                                                        if(tutoriallevel!=1){
                                                                                                if(normaldotproduct(victim->facing,victim->coords-coords)<0)victim->DoBloodBig(2/victim->armorhigh,190);
@@ -3185,16 +3097,12 @@ void    Person::DoAnimations(){
                                                                                                OPENAL_SetPaused(channels[swordslicesound], false);
                                                                                        }
                                                                                        //victim->skeleton.joints[victim->skeleton.jointlabels[abdomen]].velocity+=relative*damagemult*200;
-                                                                                       //if(animation[victim->targetanimation].attack){
-                                                                                       //if(victim->creature==rabbittype){
                                                                                        if(tutoriallevel!=1){
                                                                                                victim->targetframe=0;
                                                                                                victim->targetanimation=staggerbackhardanim;
                                                                                                victim->targetrotation=targetrotation+180;
                                                                                                victim->target=0;
                                                                                        }
-                                                                                       //}
-                                                                                       //}
 
                                                                                        if(tutoriallevel!=1){
                                                                                                if(bloodtoggle&&!weapons.bloody[weaponids[weaponactive]])weapons.bloody[weaponids[weaponactive]]=1;
@@ -3329,11 +3237,7 @@ void     Person::DoAnimations(){
                                                                                if(tutoriallevel!=1){
                                                                                        victim->DoDamage(damagemult*120/victim->protectionhigh);
 
-                                                                                       if(id==0){
-                                                                                               bonus=solidhit;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=30;
-                                                                                       }
+                                                                                       award_bonus(id, solidhit, 30);
                                                                                }
                                                                        }
                                                                }
@@ -3375,11 +3279,7 @@ void     Person::DoAnimations(){
                                                                                victim->Puff(head);
                                                                                if(tutoriallevel!=1){victim->DoDamage(damagemult*350/victim->protectionhead);
 
-                                                                               if(id==0){
-                                                                                       bonus=solidhit;
-                                                                                       bonustime=0;
-                                                                                       bonusvalue=60;
-                                                                               }
+                                                                               award_bonus(id, solidhit, 60);
                                                                                }
                                                                        }
                                                                }
@@ -3443,11 +3343,7 @@ void     Person::DoAnimations(){
                                                                                if(tutoriallevel!=1){victim->DoDamage(damagemult*100/victim->protectionhigh);
 
                                                                                if(!victim->dead){
-                                                                                       if(id==0){
-                                                                                               bonus=solidhit;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=40;
-                                                                                       }
+                                                                                 award_bonus(id, solidhit, 40);
                                                                                }
                                                                                }
                                                                        }
@@ -3470,9 +3366,7 @@ void      Person::DoAnimations(){
                                                                                relative.y=0;
                                                                                Normalise(&relative);
 
-                                                                               if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               SolidHitBonus(id);
 
                                                                                if(animation[victim->targetanimation].height==lowheight){
                                                                                        if(Random()%2){
@@ -3597,9 +3491,7 @@ void      Person::DoAnimations(){
                                                                                        victim->DoDamage(damagemult*30/victim->protectionlow);
                                                                                }
 
-                                                                               if(id==0){
-                                                                                       SolidHitBonus();
-                                                                               }
+                                                                               SolidHitBonus(id);
 
                                                                        }
                                                                }
@@ -3648,11 +3540,7 @@ void     Person::DoAnimations(){
                                                                        victim->Puff(abdomen);
                                                                        victim->DoDamage(damagemult*150/victim->protectionhigh);
 
-                                                                       if(id==0){
-                                                                               bonus=Reversal;
-                                                                               bonustime=0;
-                                                                               bonusvalue=60;
-                                                                       }
+                                                                       award_bonus(id, Reversal);
                                                                }
 
                                                                if((targetanimation==swordslashreversalanim||targetanimation==knifeslashreversalanim||targetanimation==staffhitreversalanim||targetanimation==staffspinhitreversalanim)&&animation[targetanimation].label[currentframe]==5){
@@ -3725,11 +3613,7 @@ void     Person::DoAnimations(){
                                                                        vel[1]=velocity.y;
                                                                        vel[2]=velocity.z;
 
-                                                                       if(id==0){
-                                                                               bonus=staffreversebonus;
-                                                                               bonustime=0;
-                                                                               bonusvalue=100;
-                                                                       }
+                                                                       award_bonus(id, staffreversebonus);
 
                                                                        if(tutoriallevel!=1){
                                                                                PlaySoundEx( heavyimpactsound, samp[heavyimpactsound], NULL, true);
@@ -3738,11 +3622,7 @@ void     Person::DoAnimations(){
                                                                                OPENAL_SetPaused(channels[heavyimpactsound], false);
                                                                        }
                                                                        victim->RagDoll(0);
-                                                                       if(id==0){
-                                                                               bonus=staffreversebonus;
-                                                                               bonustime=0;
-                                                                               bonusvalue=100;
-                                                                       }
+                                                                       award_bonus(id, staffreversebonus); // Huh, again?
 
                                                                        XYZ relative;
                                                                        relative=victim->coords-oldcoords;
@@ -3782,11 +3662,7 @@ void     Person::DoAnimations(){
                                                                        victim->Puff(abdomen);
                                                                        victim->DoDamage(damagemult*90/victim->protectionhigh);
 
-                                                                       if(id==0){
-                                                                               bonus=Reversal;
-                                                                               bonustime=0;
-                                                                               bonusvalue=60;
-                                                                       }
+                                                                       award_bonus(id, Reversal);
 
                                                                        bool doslice;
                                                                        doslice=0;
@@ -3844,30 +3720,7 @@ void     Person::DoAnimations(){
                                                                        victim->skeleton.joints[victim->skeleton.jointlabels[rightelbow]].velocity*=.5-1;
                                                                        victim->skeleton.joints[victim->skeleton.jointlabels[rightshoulder]].velocity*=.7-1;
 
-                                                                       if(id==0){
-                                                                               bonus=swordreversebonus;
-                                                                               bonustime=0;
-                                                                               bonusvalue=100;
-                                                                       }
-                                                                       //victim->DoDamage(90);
-
-                                                                       /*if(weaponactive!=-1){
-                                                                       float gLoc[3];
-                                                                       float vel[3];
-                                                                       gLoc[0]=victim->coords.x;
-                                                                       gLoc[1]=victim->coords.y;
-                                                                       gLoc[2]=victim->coords.z;
-                                                                       vel[0]=velocity.x;
-                                                                       vel[1]=velocity.y;
-                                                                       vel[2]=velocity.z;
-                                                                       victim->DoBloodBig(2,225);
-                                                                       PlaySoundEx( knifeslicesound, samp[knifeslicesound], NULL, true);
-                                                                       OPENAL_3D_SetAttributes(channels[knifeslicesound], gLoc, vel);
-                                                                       OPENAL_SetVolume(channels[knifeslicesound], 512);
-                                                                       OPENAL_SetPaused(channels[knifeslicesound], false);
-                                                                       if(bloodtoggle&&!weapons.bloody[weaponids[weaponactive]])weapons.bloody[weaponids[weaponactive]]=1;
-                                                                       weapons.blooddrip[weaponids[weaponactive]]+=3;
-                                                                       }*/
+                                                                       award_bonus(id, swordreversebonus);
                                                                }
 
                                                                if(hasvictim&&targetanimation==knifeslashreversalanim&&animation[targetanimation].label[currentframe]==7){
@@ -3905,11 +3758,7 @@ void     Person::DoAnimations(){
                                                                        victim->Puff(abdomen);
                                                                        victim->DoDamage(damagemult*30/victim->protectionhigh);
 
-                                                                       if(id==0){
-                                                                               bonus=Reversal;
-                                                                               bonustime=0;
-                                                                               bonusvalue=60;
-                                                                       }
+                                                                       award_bonus(id, Reversal);
                                                                }
 
                                                                if(hasvictim&&targetanimation==sneakattackanim&&animation[targetanimation].label[currentframe]==7){
@@ -3959,11 +3808,7 @@ void     Person::DoAnimations(){
                                                                                        victim->DoBloodBig(2,175);
                                                                                }
                                                                        }
-                                                                       if(id==0){
-                                                                               bonus=spinecrusher;
-                                                                               bonustime=0;
-                                                                               bonusvalue=100;
-                                                                       }
+                                                                       award_bonus(id, spinecrusher);
                                                                }
 
                                                                if(hasvictim&&(targetanimation==knifefollowanim||targetanimation==knifesneakattackanim)&&animation[targetanimation].label[currentframe]==5){
@@ -3989,20 +3834,10 @@ void    Person::DoAnimations(){
                                                                                        Sprite::MakeSprite(bloodflamesprite, footpoint,footvel*5, 1,1,1, .3, 1);
                                                                                        Sprite::MakeSprite(bloodflamesprite, footpoint,footvel*2, 1,1,1, .3, 1);
                                                                                        victim->DoBloodBig(200,195);
-                                                                                       if(id==0){
-                                                                                               bonus=tracheotomy;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=100;
-                                                                                       }
-
-                                                                                       //victim->neckspurtamount=5;
+                                                                                       award_bonus(id, tracheotomy);
                                                                                }
                                                                                if(targetanimation==knifefollowanim){
-                                                                                       if(id==0){
-                                                                                               bonus=Stabbonus;
-                                                                                               bonustime=0;
-                                                                                               bonusvalue=40;
-                                                                                       }
+                                                                                       award_bonus(id, Stabbonus);
                                                                                        XYZ footvel,footpoint;
                                                                                        footvel=0;
                                                                                        footpoint=weapons.tippoint[weaponids[0]];
@@ -4075,11 +3910,7 @@ void     Person::DoAnimations(){
 
                                                                if(hasvictim&&(targetanimation==swordsneakattackanim)&&animation[targetanimation].label[currentframe]==5){
                                                                        if(weaponactive!=-1&&victim->bloodloss<victim->damagetolerance){
-                                                                               if(id==0){
-                                                                                       bonus=backstab;
-                                                                                       bonustime=0;
-                                                                                       bonusvalue=100;
-                                                                               }
+                                                                               award_bonus(id, backstab);
 
                                                                                escapednum=0;
 
@@ -4194,11 +4025,7 @@ void     Person::DoAnimations(){
                                                                                }
                                                                        }
 
-                                                                       if(id==0){
-                                                                               bonus=Reversal;
-                                                                               bonustime=0;
-                                                                               bonusvalue=60;
-                                                                       }
+                                                                       award_bonus(id, Reversal);
 
                                                                        victim->Puff(neck);
 
@@ -4238,11 +4065,7 @@ void     Person::DoAnimations(){
 
                                                                if(hasvictim&&(targetanimation==spinkickreversalanim||targetanimation==sweepreversalanim||targetanimation==rabbitkickreversalanim||targetanimation==upunchreversalanim||targetanimation==jumpreversalanim||targetanimation==swordslashreversalanim||targetanimation==knifeslashreversalanim||targetanimation==rabbittacklereversal||targetanimation==wolftacklereversal||targetanimation==staffhitreversalanim||targetanimation==staffspinhitreversalanim))
                                                                        if(victim->damage>victim->damagetolerance&&bonus!=reverseko){
-                                                                               if(id==0){
-                                                                                       bonus=reverseko;
-                                                                                       bonustime=0;
-                                                                                       bonusvalue=100;
-                                                                               }
+                                                                         award_bonus(id, reverseko);
                                                                        }
                                                        }
 
@@ -4628,7 +4451,7 @@ void      Person::DoAnimations(){
                                                                                //DoDamage(100);
                                                                                RagDoll(0);
                                                                                skeleton.spinny=0;
-                                                                               if(id!=0)SolidHitBonus();
+                                                                               SolidHitBonus(!id); // FIXME: tricky id
                                                                        }
                                                                        if(feint){
                                                                                escapednum++;
@@ -4651,7 +4474,7 @@ void      Person::DoAnimations(){
                                                                                //DoDamage(100);
                                                                                RagDoll(0);
                                                                                skeleton.spinny=0;
-                                                                               if(id!=0)SolidHitBonus();
+                                                                               SolidHitBonus(!id); // FIXME: tricky id
                                                                        }
                                                                        if(feint){
                                                                                escapednum++;
@@ -4800,14 +4623,12 @@ void    Person::DoAnimations(){
                }
 
                if(isLanding()&&landhard){
-                       //if(abs(velocity.y)>fast_sqrt(velocity.x*velocity.x*velocity.z*velocity.z)){
                        if(id==0)camerashake+=.4;
                        targetanimation=getLandhard();
                        targetframe=0;
                        target=0;
                        landhard=0;
                        transspeed=15;
-                       //}
                }
        }
        //skeleton.DoConstraints();
@@ -5011,9 +4832,7 @@ void      Person::DoStuff(){
                        }
 
                        if(!dead&&creature==wolftype){
-                               bonus=Wolfbonus;
-                               bonustime=0;
-                               bonusvalue=300;
+                         award_bonus(0, Wolfbonus);
                        }
                        dead=2;
                        if(targetanimation==knifefollowedanim&&!skeleton.free){
@@ -5388,9 +5207,7 @@ void      Person::DoStuff(){
                unconscioustime=0;
 
                if(creature==wolftype){
-                       bonus=Wolfbonus;
-                       bonustime=0;
-                       bonusvalue=300;
+                 award_bonus(0, Wolfbonus);
                }
 
                RagDoll(0);
@@ -5478,16 +5295,11 @@ void    Person::DoStuff(){
                bled=0;
 
                if(!dead&&creature==wolftype){
-                       bonus=Wolfbonus;
-                       bonustime=0;
-                       bonusvalue=300;
+                 award_bonus(0, Wolfbonus);
                }
 
-               if(id!=0&&unconscioustime<.1&&(bonus!=spinecrusher||bonustime>1)&&(bonus!=FinishedBonus||bonustime>1)&&bloodloss<damagetolerance){
-                       bonus=touchofdeath;
-                       bonustime=0;
-                       bonusvalue=150;
-               }
+               if(unconscioustime<.1&&(bonus!=spinecrusher||bonustime>1)&&(bonus!=FinishedBonus||bonustime>1)&&bloodloss<damagetolerance)
+                 award_bonus(id, touchofdeath);
                if(id!=0&&unconscioustime>.1){
                        numafterkill++;
                }
@@ -5537,11 +5349,8 @@ void     Person::DoStuff(){
                skeleton.DoGravity(&scale);
                float damageamount;
                damageamount=skeleton.DoConstraints(&coords,&scale)*5;
-               if(id!=0&&damage>damagetolerance-damageamount&&!dead&&(bonus!=spinecrusher||bonustime>1)&&(bonus!=style||bonustime>1)&&(bonus!=cannon||bonustime>1)){
-                       bonus=deepimpact;
-                       bonustime=0;
-                       bonusvalue=50;
-               }
+               if(damage>damagetolerance-damageamount&&!dead&&(bonus!=spinecrusher||bonustime>1)&&(bonus!=style||bonustime>1)&&(bonus!=cannon||bonustime>1))
+                 award_bonus(id, deepimpact);
                DoDamage(damageamount/((protectionhigh+protectionhead+protectionlow)/3));
 
                average=0;
@@ -5665,12 +5474,8 @@ void     Person::DoStuff(){
                                if(terrainnormal.z<0)targetrotation=180-targetrotation;
                                rotation=targetrotation;
 
-                               //if(skeleton.forward.y<0){
                                targetframe=0;
-                               //}
-                               //if(skeleton.forward.y>-.3){
                                //      targetframe=2;
-                               //}
                                targetanimation=flipanim;
                                crouchtogglekeydown=1;
                                target=0;
@@ -6102,7 +5907,6 @@ void      Person::DoStuff(){
 
                                if(targetanimation==bounceidleanim||targetanimation==wolfidle||targetanimation==walkanim||targetanimation==drawrightanim||targetanimation==crouchdrawrightanim||targetanimation==drawleftanim||targetanimation==fightidleanim||targetanimation==fightsidestep||targetanimation==hanganim||isCrouch()||targetanimation==backhandspringanim){
                                        //open hands and close mouth
-                                       //if(targetanimation!=wolfidle){
                                        if(righthandmorphend!=0&&righthandmorphness==targetrighthandmorphness){
                                                righthandmorphness=0;
                                                righthandmorphend=0;
@@ -6114,7 +5918,6 @@ void      Person::DoStuff(){
                                                lefthandmorphend=0;
                                                targetlefthandmorphness=1;
                                        }
-                                       //s}
 
                                        if(headmorphend!=3&&headmorphend!=5&&headmorphstart!=3&&headmorphstart!=5&&headmorphend!=0&&headmorphness==targetheadmorphness){
                                                headmorphness=0;
@@ -6904,24 +6707,18 @@ int Person::DrawSkeleton(){
                                                                                (skeleton.model[start].vertex[skeleton.muscles[i].vertices[j]].z*(1-morphness)+skeleton.model[endthing].vertex[skeleton.muscles[i].vertices[j]].z*morphness)*proportionhead.z);
                                                                        glGetFloatv(GL_MODELVIEW_MATRIX,M);
                                                                        //if(!isnormal(M[12])||!isnormal(M[13])||!isnormal(M[14]))test=0;
-                                                                       //if(isnormal(M[12])&&isnormal(M[13])&&isnormal(M[14])){
                                                                        //if(!isnormal(scale))test=1;
-                                                                       //if(isnormal(scale)){
                                                                        skeleton.drawmodel.vertex[skeleton.muscles[i].vertices[j]].x=M[12]*scale;
                                                                        skeleton.drawmodel.vertex[skeleton.muscles[i].vertices[j]].y=M[13]*scale;
                                                                        skeleton.drawmodel.vertex[skeleton.muscles[i].vertices[j]].z=M[14]*scale;
                                                                        //test=2;
-                                                                       //}
-                                                                       //}
                                                                glPopMatrix();
-                                                               //}
                                                        }
                                                }
                                                if(!playerdetail||skeleton.free==3)
                                                {
                                                        for(j=0;j<skeleton.muscles[i].numverticeslow;j++)
                                                        {
-                                                               //if(skeleton.muscles[i].verticeslow[j]<skeleton.modellow.vertexNum&&skeleton.muscles[i].verticeslow[j]>=0){
                                                                glMatrixMode(GL_MODELVIEW);                                                     // Select The Modelview Matrix
                                                                glPushMatrix();
                                                                        if(skeleton.muscles[i].parent1->label==abdomen||skeleton.muscles[i].parent2->label==abdomen)
@@ -6946,7 +6743,6 @@ int Person::DrawSkeleton(){
                                                                        skeleton.drawmodellow.vertex[skeleton.muscles[i].verticeslow[j]].y=M[13]*scale;
                                                                        skeleton.drawmodellow.vertex[skeleton.muscles[i].verticeslow[j]].z=M[14]*scale;
                                                                glPopMatrix();
-                                                               //}
                                                        }
                                                }
                                        glPopMatrix();
@@ -7359,8 +7155,6 @@ int Person::DrawSkeleton(){
                                        if(weaponstuckwhere==0)weapons.smallrotation[i]=180;
                                        else weapons.smallrotation[i]=0;
                                        weapons.smallrotation2[i]=10;
-                                       //if(animation[targetanimation].height==lowheight&&animation[targetanimation].attack==neutral){
-                                       //}
                                }
                        }
                }