else return 0;
}
-void SolidHitBonus(){
- if(bonustime<1.5&&(bonus==fourxcombo||bonus==megacombo)){
- award_bonus(0, megacombo);
- }
- else if(bonustime<1.5&&bonus==threexcombo){
- award_bonus(0, fourxcombo);
- }
- else if(bonustime<1.5&&bonus==twoxcombo){
- award_bonus(0, threexcombo);
- }
- else if(bonustime<1.5&&bonus==solidhit){
- award_bonus(0, twoxcombo);
- }
- else {
- award_bonus(0, solidhit);
- }
+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){
victim->spurt=1;
victim->DoBloodBig(1/victim->armorhead,210);
}
- award_bonus(id, TackleBonus);
- if(id==0){
- if(victim->aitype==gethelptype)bonusvalue=50;
- }
+ award_bonus(id, TackleBonus,
+ victim->aitype == gethelptype ? 50 : 0);
}
}
victim->Puff(head);
victim->DoDamage(damagemult*100/victim->protectionhead);
- if(id==0){
- SolidHitBonus();
- }
+ SolidHitBonus(id);
}
}
victim->Puff(head);
victim->DoDamage(damagemult*150/victim->protectionhead);
- if(victim->damage>victim->damagetolerance){
+ if(victim->damage>victim->damagetolerance)
award_bonus(id, style);
- }
- else if(id==0){
- SolidHitBonus();
- }
+ else
+ SolidHitBonus(id);
}
}
victim->Puff(head);
victim->DoDamage(damagemult*150/victim->protectionhead);
- if(victim->damage>victim->damagetolerance){
+ if(victim->damage>victim->damagetolerance)
award_bonus(id, style);
- }
- else if(id==0){
- SolidHitBonus();
- }
+ else
+ SolidHitBonus(id);
}
}
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);
}
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];
}
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];
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);
- OPENAL_3D_SetAttributes(channels[heavyimpactsound], gLoc, vel);
- OPENAL_SetVolume(channels[heavyimpactsound], 128);
- OPENAL_SetPaused(channels[heavyimpactsound], false);
- }
- }
- else {
- if(tutoriallevel!=1){
- PlaySoundEx( landsound2, samp[landsound2], NULL, true);
- OPENAL_3D_SetAttributes(channels[landsound2], gLoc, vel);
- OPENAL_SetVolume(channels[landsound2], 256);
- OPENAL_SetPaused(channels[landsound2], false);
- }
+ if(tutoriallevel!=1){
+ PlaySoundEx( heavyimpactsound, samp[heavyimpactsound], NULL, true);
+ OPENAL_3D_SetAttributes(channels[heavyimpactsound], gLoc, vel);
+ OPENAL_SetVolume(channels[heavyimpactsound], 128);
+ OPENAL_SetPaused(channels[heavyimpactsound], false);
}
- //if(!victim->isIdle()||victim->damage>victim->damagetolerance-60)
victim->RagDoll(0);
XYZ relative;
relative=victim->coords-coords;
victim->Puff(abdomen);
victim->DoDamage(damagemult*60/victim->protectionhigh);
- if(id==0){
- SolidHitBonus();
- }
+ SolidHitBonus(id);
}
}
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);
victim->Puff(abdomen);
victim->DoDamage(damagemult*60/victim->protectionhigh);
- if(id==0){
- SolidHitBonus();
- }
+ SolidHitBonus(id);
}
}
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);
- //}
award_bonus(id, Slicebonus);
if(tutoriallevel!=1){
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;
relative.y=0;
Normalise(&relative);
- if(id==0){
- SolidHitBonus();
- }
+ SolidHitBonus(id);
if(animation[victim->targetanimation].height==lowheight){
if(Random()%2){
victim->DoDamage(damagemult*30/victim->protectionlow);
}
- if(id==0){
- SolidHitBonus();
- }
+ SolidHitBonus(id);
}
}
//DoDamage(100);
RagDoll(0);
skeleton.spinny=0;
- if(id!=0)SolidHitBonus();
+ SolidHitBonus(!id); // FIXME: tricky id
}
if(feint){
escapednum++;
//DoDamage(100);
RagDoll(0);
skeleton.spinny=0;
- if(id!=0)SolidHitBonus();
+ SolidHitBonus(!id); // FIXME: tricky id
}
if(feint){
escapednum++;
}
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();
bled=0;
if(!dead&&creature==wolftype){
- bonus=Wolfbonus;
- bonustime=0;
- bonusvalue=300;
+ award_bonus(0, Wolfbonus);
}
if(unconscioustime<.1&&(bonus!=spinecrusher||bonustime>1)&&(bonus!=FinishedBonus||bonustime>1)&&bloodloss<damagetolerance)
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;
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;
lefthandmorphend=0;
targetlefthandmorphness=1;
}
- //s}
if(headmorphend!=3&&headmorphend!=5&&headmorphstart!=3&&headmorphstart!=5&&headmorphend!=0&&headmorphness==targetheadmorphness){
headmorphness=0;
(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)
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();
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){
- //}
}
}
}