player[0].scale = atof(args) * .2;
}
-static int find_closest()
-{
- int closest = 0;
- float closestdist = std::numeric_limits<float>::max();
-
- for (int i = 1; i < numplayers; i++) {
- float distance;
- distance = findDistancefast(&player[i].coords,&player[0].coords);
- if (distance < closestdist) {
- closestdist = distance;
- closest = i;
+static int findClosestPlayer(){
+ int closest = -1;
+ float closestdist = std::numeric_limits<float>::max();
+
+ for(int i=1; i<numplayers; i++){
+ float distance = distsq(&player[i].coords, &player[0].coords);
+ if(distance < closestdist){
+ closestdist = distance;
+ closest = i;
+ }
}
- }
- return closest;
+ return closest;
+}
+
+static int findClosestObject(){
+ int closest = -1;
+ float closestdist = std::numeric_limits<float>::max();
+
+ for(int i=0; i<objects.numobjects; i++){
+ float distance = distsq(&objects.position[i], &player[0].coords);
+ if(distance < closestdist){
+ closestdist = distance;
+ closest = i;
+ }
+ }
+ return closest;
}
static void ch_sizenear(const char *args)
{
- int closest = find_closest();
-
- if (closest)
+ int closest = findClosestPlayer();
+ if(closest>=0)
player[closest].scale = atof(args) * .2;
}
static void ch_proportionnear(const char *args)
{
- int closest = find_closest();
- if (closest)
+ int closest = findClosestPlayer();
+ if(closest>=0)
set_proportion(closest, args);
}
static void ch_protectionnear(const char *args)
{
- int closest = find_closest();
- if (closest)
+ int closest = findClosestPlayer();
+ if(closest>=0)
set_protection(closest, args);
}
static void ch_armornear(const char *args)
{
- int closest = find_closest();
- if (closest)
+ int closest = findClosestPlayer();
+ if(closest>=0)
set_armor(closest, args);
}
static void ch_noclothesnear(const char *args)
{
- int closest = find_closest();
- if (closest)
+ int closest = findClosestPlayer();
+ if(closest>=0)
set_noclothes(closest, args);
}
static void ch_clothesnear(const char *args)
{
- int closest = find_closest();
- if (closest)
+ int closest = findClosestPlayer();
+ if(closest>=0)
set_clothes(closest, args);
}
player[participantfocus[whichdialogue][i]].yaw=participantyaw[whichdialogue][participantfocus[whichdialogue][i]];
player[participantfocus[whichdialogue][i]].targetyaw=participantyaw[whichdialogue][participantfocus[whichdialogue][i]];
player[participantfocus[whichdialogue][i]].velocity=0;
- player[participantfocus[whichdialogue][i]].targetanimation=player[participantfocus[whichdialogue][i]].getIdle();
- player[participantfocus[whichdialogue][i]].targetframe=0;
+ player[participantfocus[whichdialogue][i]].animTarget=player[participantfocus[whichdialogue][i]].getIdle();
+ player[participantfocus[whichdialogue][i]].frameTarget=0;
}
directing=0;
float tempdist;
//~ int whichclosest;
for(int i=0;i<objects.numobjects;i++){
- tempdist=findDistancefast(&objects.center,&objects.position[i]);
+ tempdist=distsq(&objects.center,&objects.position[i]);
if(tempdist>maxdistance){
//~ whichclosest=i;
maxdistance=tempdist;
player[i].DoMipmaps();
}
- player[i].currentanimation=bounceidleanim;
- player[i].targetanimation=bounceidleanim;
- player[i].currentframe=0;
- player[i].targetframe=1;
+ player[i].animCurrent=bounceidleanim;
+ player[i].animTarget=bounceidleanim;
+ player[i].frameCurrent=0;
+ player[i].frameTarget=1;
player[i].target=0;
player[i].speed=1+(float)(Random()%100)/1000;
if(difficulty==0)
break; case 4: if(player[0].forwardkeydown||player[0].backkeydown||player[0].leftkeydown||player[0].rightkeydown)tutorialsuccess+=multiplier;
break; case 5: if(player[0].jumpkeydown)tutorialsuccess=1;
break; case 6: if(player[0].isCrouch())tutorialsuccess=1;
- break; case 7: if(player[0].targetanimation==rollanim)tutorialsuccess=1;
- break; case 8: if(player[0].targetanimation==sneakanim)tutorialsuccess+=multiplier;
- break; case 9: if(player[0].targetanimation==rabbitrunninganim||player[0].targetanimation==wolfrunninganim)tutorialsuccess+=multiplier;
+ break; case 7: if(player[0].animTarget==rollanim)tutorialsuccess=1;
+ break; case 8: if(player[0].animTarget==sneakanim)tutorialsuccess+=multiplier;
+ break; case 9: if(player[0].animTarget==rabbitrunninganim||player[0].animTarget==wolfrunninganim)tutorialsuccess+=multiplier;
break; case 11: if(player[0].isWallJump())tutorialsuccess=1;
- break; case 12: if(player[0].targetanimation==flipanim)tutorialsuccess=1;
- break; case 15: if(player[0].targetanimation==upunchanim||player[0].targetanimation==winduppunchanim)tutorialsuccess=1;
- break; case 16: if(player[0].targetanimation==winduppunchanim)tutorialsuccess=1;
- break; case 17: if(player[0].targetanimation==spinkickanim)tutorialsuccess=1;
- break; case 18: if(player[0].targetanimation==sweepanim)tutorialsuccess=1;
- break; case 19: if(player[0].targetanimation==dropkickanim)tutorialsuccess=1;
- break; case 20: if(player[0].targetanimation==rabbitkickanim)tutorialsuccess=1;
+ break; case 12: if(player[0].animTarget==flipanim)tutorialsuccess=1;
+ break; case 15: if(player[0].animTarget==upunchanim||player[0].animTarget==winduppunchanim)tutorialsuccess=1;
+ break; case 16: if(player[0].animTarget==winduppunchanim)tutorialsuccess=1;
+ break; case 17: if(player[0].animTarget==spinkickanim)tutorialsuccess=1;
+ break; case 18: if(player[0].animTarget==sweepanim)tutorialsuccess=1;
+ break; case 19: if(player[0].animTarget==dropkickanim)tutorialsuccess=1;
+ break; case 20: if(player[0].animTarget==rabbitkickanim)tutorialsuccess=1;
break; case 21: if(bonus==cannon)tutorialsuccess=1;
break; case 22: if(bonus==spinecrusher)tutorialsuccess=1;
- break; case 23: if(player[0].targetanimation==walljumprightkickanim||player[0].targetanimation==walljumpleftkickanim)tutorialsuccess=1;
- break; case 24: if(player[0].targetanimation==rabbittacklinganim)tutorialsuccess=1;
- break; case 25: if(player[0].targetanimation==backhandspringanim)tutorialsuccess=1;
- break; case 28: if(animation[player[0].targetanimation].attack==reversed&&player[0].feint)tutorialsuccess=1;
+ break; case 23: if(player[0].animTarget==walljumprightkickanim||player[0].animTarget==walljumpleftkickanim)tutorialsuccess=1;
+ break; case 24: if(player[0].animTarget==rabbittacklinganim)tutorialsuccess=1;
+ break; case 25: if(player[0].animTarget==backhandspringanim)tutorialsuccess=1;
+ break; case 28: if(animation[player[0].animTarget].attack==reversed&&player[0].feint)tutorialsuccess=1;
break; case 29:
if(player[0].escapednum==2) {
tutorialsuccess=1;
cananger=0;
player[1].aitype=passivetype;
}
- break; case 33: if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- break; case 34: if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
+ break; case 33: if(animation[player[0].animTarget].attack==reversal)tutorialsuccess=1;
+ break; case 34: if(animation[player[0].animTarget].attack==reversal)tutorialsuccess=1;
break; case 35:
- if(animation[player[0].targetanimation].attack==reversal){
+ if(animation[player[0].animTarget].attack==reversal){
tutorialsuccess=1;
reversaltrain=0;
cananger=0;
}
break; case 40: if(player[0].num_weapons>0)tutorialsuccess=1;
break; case 41: if(player[0].weaponactive==-1&&player[0].num_weapons>0)tutorialsuccess=1;
- break; case 43: if(player[0].targetanimation==knifeslashstartanim)tutorialsuccess=1;
- break; case 44: if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- break; case 45: if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
- break; case 46: if(animation[player[0].targetanimation].attack==reversal)tutorialsuccess=1;
+ break; case 43: if(player[0].animTarget==knifeslashstartanim)tutorialsuccess=1;
+ break; case 44: if(animation[player[0].animTarget].attack==reversal)tutorialsuccess=1;
+ break; case 45: if(animation[player[0].animTarget].attack==reversal)tutorialsuccess=1;
+ break; case 46: if(animation[player[0].animTarget].attack==reversal)tutorialsuccess=1;
break; case 49: if(player[1].weaponstuck!=-1)tutorialsuccess=1;
break; default: break;
}
}
if(Input::isKeyPressed(SDLK_x)&&Input::isKeyDown(SDLK_LSHIFT)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(closest!=-1){
+ int closest=findClosestPlayer();
+ if(closest>=0){
if(player[closest].num_weapons){
if(weapons[player[closest].weaponids[0]].getType()==sword)
weapons[player[closest].weaponids[0]].setType(staff);
}
if(Input::isKeyDown(SDLK_u)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- player[closest].yaw+=multiplier*50;
- player[closest].targetyaw=player[closest].yaw;
+ int closest=findClosestPlayer();
+ if(closest>=0){
+ player[closest].yaw+=multiplier*50;
+ player[closest].targetyaw=player[closest].yaw;
+ }
}
if(Input::isKeyPressed(SDLK_o)&&!Input::isKeyDown(SDLK_LSHIFT)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(Input::isKeyDown(SDLK_LCTRL))closest=0;
+ int closest=findClosestPlayer();
+ if(Input::isKeyDown(SDLK_LCTRL))
+ closest=0;
- if(closest!=-1){
+ if(closest>=0){
player[closest].whichskin++;
if(player[closest].whichskin>9)
player[closest].whichskin=0;
}
if(Input::isKeyPressed(SDLK_o)&&Input::isKeyDown(SDLK_LSHIFT)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(closest!=-1){
+ int closest=findClosestPlayer();
+ if(closest>=0){
if(player[closest].creature==wolftype){
headprop=player[closest].proportionhead.x/1.1;
bodyprop=player[closest].proportionbody.x/1.1;
if(((Input::isKeyPressed(SDLK_i)&&!Input::isKeyDown(SDLK_LSHIFT)))){
- int closest=-1;
- float closestdist=-1;
- float distance;
+ int closest = -1;
+ float closestdist = std::numeric_limits<float>::max();
+
+ for(int i=1; i<numplayers; i++){
+ float distance = distsq(&player[i].coords, &player[0].coords);
+ if(!player[i].headless)
+ if(distance < closestdist){
+ closestdist = distance;
+ closest = i;
+ }
+ }
+
XYZ flatfacing2,flatvelocity2;
XYZ blah;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(distance<144&&!player[i].headless)
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- blah = player[i].coords;
- }
- }
-
- if(closest!=-1){
+ if(closest!=-1 && distsq(&player[closest].coords, &player[0].coords)<144){
+ blah = player[closest].coords;
XYZ headspurtdirection;
//int i = player[closest].skeleton.jointlabels[head];
Joint& headjoint= player[closest].getJointFor(head);
}
if(((Input::isKeyPressed(SDLK_i)&&Input::isKeyDown(SDLK_LSHIFT)))){
- int closest=-1;
- float closestdist=-1;
- float distance;
+ int closest=findClosestPlayer();
XYZ flatfacing2,flatvelocity2;
XYZ blah;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(distance<144)
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- blah=player[i].coords;
- }
- }
-
- if(closest!=-1){
+ if(closest>=0 && distsq(&player[closest].coords,&player[0].coords)<144){
+ blah=player[closest].coords;
emit_sound_at(splattersound, blah);
-
emit_sound_at(breaksound2, blah);
for(int i=0;i<player[closest].skeleton.num_joints; i++){
XYZ temppos;
for(int j=0;j<numplayers; j++){
if(j!=closest){
- if(findDistancefast(&player[j].coords,&player[closest].coords)<25){
- player[j].DoDamage((25-findDistancefast(&player[j].coords,&player[closest].coords))*60);
+ if(distsq(&player[j].coords,&player[closest].coords)<25){
+ player[j].DoDamage((25-distsq(&player[j].coords,&player[closest].coords))*60);
if(player[j].skeleton.free==2)
player[j].skeleton.free=1;
player[j].skeleton.longdead=0;
player[j].RagDoll(0);
for(int i=0;i<player[j].skeleton.num_joints; i++){
temppos=player[j].skeleton.joints[i].position+player[j].coords;
- if(findDistancefast(&temppos,&player[closest].coords)<25){
+ if(distsq(&temppos,&player[closest].coords)<25){
flatvelocity2=temppos-player[closest].coords;
Normalise(&flatvelocity2);
- player[j].skeleton.joints[i].velocity+=flatvelocity2*((20-findDistancefast(&temppos,&player[closest].coords))*20);
+ player[j].skeleton.joints[i].velocity+=flatvelocity2*((20-distsq(&temppos,&player[closest].coords))*20);
}
}
}
if(editorenabled){
if(Input::isKeyPressed(SDLK_DELETE)&&Input::isKeyDown(SDLK_LSHIFT)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(numplayers>1)
- for(int i=1;i<numplayers;i++){
- distance=findDistancefast(&player[i].coords,&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(closestdist>0&&closest>=0){
+ int closest=findClosestPlayer();
+ if(closest>=0){
//player[closest]=player[numplayers-1];
//player[closest].skeleton=player[numplayers-1].skeleton;
numplayers--;
}
if(Input::isKeyPressed(SDLK_DELETE)&&Input::isKeyDown(SDLK_LCTRL)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- if(max_objects>1)
- for(int i=1;i<max_objects;i++){
- distance=findDistancefast(&objects.position[i],&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(closestdist>0&&closest>=0){
+ int closest=findClosestObject();
+ if(closest>=0)
objects.position[closest].y-=500;
- }
}
if(Input::isKeyPressed(SDLK_m)&&Input::isKeyDown(SDLK_LSHIFT)){
player[numplayers].skeleton.drawmodelclothes.textureptr.load(":Data:Textures:Belt.png",1,1);
player[numplayers].power=1;
player[numplayers].speedmult=1;
- player[numplayers].currentanimation=bounceidleanim;
- player[numplayers].targetanimation=bounceidleanim;
- player[numplayers].currentframe=0;
- player[numplayers].targetframe=1;
+ player[numplayers].animCurrent=bounceidleanim;
+ player[numplayers].animTarget=bounceidleanim;
+ player[numplayers].frameCurrent=0;
+ player[numplayers].frameTarget=1;
player[numplayers].target=0;
player[numplayers].bled=0;
player[numplayers].speed=1+(float)(Random()%100)/1000;
connected=0;
if(numpathpoints>1)
for(int i=0;i<numpathpoints;i++){
- if(findDistancefast(&pathpoint[i],&player[0].coords)<.5&&i!=pathpointselected&&!connected){
+ if(distsq(&pathpoint[i],&player[0].coords)<.5&&i!=pathpointselected&&!connected){
alreadyconnected=0;
for(int j=0;j<numpathpointconnect[pathpointselected];j++){
if(pathpointconnect[pathpointselected][j]==i)alreadyconnected=1;
if(editorpitch<-.01)editorpitch=-.01;
}
if(Input::isKeyPressed(SDLK_DELETE)&&objects.numobjects&&Input::isKeyDown(SDLK_LSHIFT)){
- int closest=-1;
- float closestdist=-1;
- float distance;
- for(int i=0;i<objects.numobjects;i++){
- distance=findDistancefast(&objects.position[i],&player[0].coords);
- if(closestdist==-1||distance<closestdist){
- closestdist=distance;
- closest=i;
- }
- }
- if(closestdist>0&&closest>=0)objects.DeleteObject(closest);
+ int closest=findClosestObject();
+ if(closest>=0)
+ objects.DeleteObject(closest);
}
}
}
if(i==k)continue;
if( player[k].skeleton.free==0&&
player[i].skeleton.oldfree==0&&
- (player[i].targetanimation==jumpupanim||
- player[k].targetanimation==jumpupanim)&&
+ (player[i].animTarget==jumpupanim||
+ player[k].animTarget==jumpupanim)&&
(player[i].aitype==playercontrolled||
player[k].aitype==playercontrolled)&&
(player[i].aitype==attacktypecutoff&&player[i].stunned<=0||
player[k].aitype==attacktypecutoff&&player[k].stunned<=0)){
- if( findDistancefast(&player[i].coords,&player[k].coords)<10*sq((player[i].scale+player[k].scale)*2.5)&&
- findDistancefastflat(&player[i].coords,&player[k].coords)<2*sq((player[i].scale+player[k].scale)*2.5)){
+ if( distsq(&player[i].coords,&player[k].coords)<10*sq((player[i].scale+player[k].scale)*2.5)&&
+ distsqflat(&player[i].coords,&player[k].coords)<2*sq((player[i].scale+player[k].scale)*2.5)){
//TODO: refactor two huge similar ifs
- if(player[i].targetanimation==jumpupanim&&
- player[k].targetanimation!=getupfrombackanim&&
- player[k].targetanimation!=getupfromfrontanim&&
- animation[player[k].targetanimation].height==middleheight&&
+ if(player[i].animTarget==jumpupanim&&
+ player[k].animTarget!=getupfrombackanim&&
+ player[k].animTarget!=getupfromfrontanim&&
+ animation[player[k].animTarget].height==middleheight&&
normaldotproduct(player[i].velocity,player[k].coords-player[i].coords)<0&&
(player[k].aitype==playercontrolled&&player[k].attackkeydown||
player[k].aitype!=playercontrolled)){
player[i].victim=&player[k];
player[i].velocity=0;
- player[i].currentanimation=jumpreversedanim;
- player[i].targetanimation=jumpreversedanim;
- player[i].currentframe=0;
- player[i].targetframe=1;
+ player[i].animCurrent=jumpreversedanim;
+ player[i].animTarget=jumpreversedanim;
+ player[i].frameCurrent=0;
+ player[i].frameTarget=1;
player[i].targettilt2=0;
player[k].victim=&player[i];
player[k].velocity=0;
- player[k].currentanimation=jumpreversalanim;
- player[k].targetanimation=jumpreversalanim;
- player[k].currentframe=0;
- player[k].targetframe=1;
+ player[k].animCurrent=jumpreversalanim;
+ player[k].animTarget=jumpreversalanim;
+ player[k].frameCurrent=0;
+ player[k].frameTarget=1;
player[k].targettilt2=0;
if(player[i].coords.y<player[k].coords.y+1){
- player[i].currentanimation=rabbitkickreversedanim;
- player[i].targetanimation=rabbitkickreversedanim;
- player[i].currentframe=1;
- player[i].targetframe=2;
- player[k].currentanimation=rabbitkickreversalanim;
- player[k].targetanimation=rabbitkickreversalanim;
- player[k].currentframe=1;
- player[k].targetframe=2;
+ player[i].animCurrent=rabbitkickreversedanim;
+ player[i].animTarget=rabbitkickreversedanim;
+ player[i].frameCurrent=1;
+ player[i].frameTarget=2;
+ player[k].animCurrent=rabbitkickreversalanim;
+ player[k].animTarget=rabbitkickreversalanim;
+ player[k].frameCurrent=1;
+ player[k].frameTarget=2;
}
player[i].target=0;
player[k].oldcoords=player[k].coords;
if(player[k].aitype==attacktypecutoff)
player[k].stunned=.5;
}
- if(player[k].targetanimation==jumpupanim&&
- player[i].targetanimation!=getupfrombackanim&&
- player[i].targetanimation!=getupfromfrontanim&&
- animation[player[i].targetanimation].height==middleheight&&
+ if(player[k].animTarget==jumpupanim&&
+ player[i].animTarget!=getupfrombackanim&&
+ player[i].animTarget!=getupfromfrontanim&&
+ animation[player[i].animTarget].height==middleheight&&
normaldotproduct(player[k].velocity,player[i].coords-player[k].coords)<0&&
((player[i].aitype==playercontrolled&&player[i].attackkeydown)||
player[i].aitype!=playercontrolled)){
player[k].victim=&player[i];
player[k].velocity=0;
- player[k].currentanimation=jumpreversedanim;
- player[k].targetanimation=jumpreversedanim;
- player[k].currentframe=0;
- player[k].targetframe=1;
+ player[k].animCurrent=jumpreversedanim;
+ player[k].animTarget=jumpreversedanim;
+ player[k].frameCurrent=0;
+ player[k].frameTarget=1;
player[k].targettilt2=0;
player[i].victim=&player[k];
player[i].velocity=0;
- player[i].currentanimation=jumpreversalanim;
- player[i].targetanimation=jumpreversalanim;
- player[i].currentframe=0;
- player[i].targetframe=1;
+ player[i].animCurrent=jumpreversalanim;
+ player[i].animTarget=jumpreversalanim;
+ player[i].frameCurrent=0;
+ player[i].frameTarget=1;
player[i].targettilt2=0;
if(player[k].coords.y<player[i].coords.y+1){
- player[k].targetanimation=rabbitkickreversedanim;
- player[k].currentanimation=rabbitkickreversedanim;
- player[i].currentanimation=rabbitkickreversalanim;
- player[i].targetanimation=rabbitkickreversalanim;
- player[k].currentframe=1;
- player[k].targetframe=2;
- player[i].currentframe=1;
- player[i].targetframe=2;
+ player[k].animTarget=rabbitkickreversedanim;
+ player[k].animCurrent=rabbitkickreversedanim;
+ player[i].animCurrent=rabbitkickreversalanim;
+ player[i].animTarget=rabbitkickreversalanim;
+ player[k].frameCurrent=1;
+ player[k].frameTarget=2;
+ player[i].frameCurrent=1;
+ player[i].frameTarget=2;
}
player[k].target=0;
player[i].oldcoords=player[i].coords;
if((player[k].isRun()&&
((player[k].targetyaw!=rabbitrunninganim&&
player[k].targetyaw!=wolfrunninganim)||
- player[k].targetframe==4))||
- player[k].targetanimation==removeknifeanim||
- player[k].targetanimation==crouchremoveknifeanim||
- player[k].targetanimation==flipanim||
- player[k].targetanimation==fightsidestep||
- player[k].targetanimation==walkanim){
+ player[k].frameTarget==4))||
+ player[k].animTarget==removeknifeanim||
+ player[k].animTarget==crouchremoveknifeanim||
+ player[k].animTarget==flipanim||
+ player[k].animTarget==fightsidestep||
+ player[k].animTarget==walkanim){
player[k].yaw=stepTowardf(player[k].yaw, player[k].targetyaw, multiplier*player[k].turnspeed);
}
if(player[k].isStop()||
player[k].isLanding()||
- player[k].targetanimation==staggerbackhighanim||
- (player[k].targetanimation==sneakanim&&player[k].currentanimation==sneakanim)||
- player[k].targetanimation==staggerbackhardanim||
- player[k].targetanimation==backhandspringanim||
- player[k].targetanimation==dodgebackanim||
- player[k].targetanimation==rollanim||
- (animation[player[k].targetanimation].attack&&
- player[k].targetanimation!=rabbitkickanim&&
- (player[k].targetanimation!=crouchstabanim||player[k].hasvictim)&&
- (player[k].targetanimation!=swordgroundstabanim||player[k].hasvictim))){
+ player[k].animTarget==staggerbackhighanim||
+ (player[k].animTarget==sneakanim&&player[k].animCurrent==sneakanim)||
+ player[k].animTarget==staggerbackhardanim||
+ player[k].animTarget==backhandspringanim||
+ player[k].animTarget==dodgebackanim||
+ player[k].animTarget==rollanim||
+ (animation[player[k].animTarget].attack&&
+ player[k].animTarget!=rabbitkickanim&&
+ (player[k].animTarget!=crouchstabanim||player[k].hasvictim)&&
+ (player[k].animTarget!=swordgroundstabanim||player[k].hasvictim))){
player[k].yaw=stepTowardf(player[k].yaw, player[k].targetyaw, multiplier*player[k].turnspeed*2);
}
- if(player[k].targetanimation==sneakanim&&player[k].currentanimation!=sneakanim){
+ if(player[k].animTarget==sneakanim&&player[k].animCurrent!=sneakanim){
player[k].yaw=stepTowardf(player[k].yaw, player[k].targetyaw, multiplier*player[k].turnspeed*4);
}
- /*if(player[k].aitype!=passivetype||(findDistancefast(&player[k].coords,&viewer)<viewdistance*viewdistance))*/
+ /*if(player[k].aitype!=passivetype||(distsq(&player[k].coords,&viewer)<viewdistance*viewdistance))*/
player[k].DoStuff();
if(player[k].immobile&&k!=0)
player[k].coords=player[k].realoldcoords;
//if player's position has changed (?)
- if(findDistancefast(&player[k].coords,&player[k].realoldcoords)>0&&
+ if(distsq(&player[k].coords,&player[k].realoldcoords)>0&&
!player[k].skeleton.free&&
- player[k].targetanimation!=climbanim&&
- player[k].targetanimation!=hanganim){
+ player[k].animTarget!=climbanim&&
+ player[k].animTarget!=hanganim){
XYZ lowpoint,lowpointtarget,lowpoint2,lowpointtarget2,lowpoint3,lowpointtarget3,lowpoint4,lowpointtarget4,lowpoint5,lowpointtarget5,lowpoint6,lowpointtarget6,lowpoint7,lowpointtarget7,colpoint,colpoint2;
int whichhit;
bool tempcollide=0;
objects.scale[i]>.5&&player[k].aitype==playercontrolled||
objects.position[i].y>player[k].coords.y){
lowpoint=player[k].coords;
- if(player[k].targetanimation!=jumpupanim&&
- player[k].targetanimation!=jumpdownanim&&
+ if(player[k].animTarget!=jumpupanim&&
+ player[k].animTarget!=jumpdownanim&&
!player[k].isFlip())
lowpoint.y+=1.25;
else
//wall jumps
//TODO: refactor four similar blocks
if(player[k].aitype==playercontrolled&&
- (player[k].targetanimation==jumpupanim||
- player[k].targetanimation==jumpdownanim||
+ (player[k].animTarget==jumpupanim||
+ player[k].animTarget==jumpdownanim||
player[k].isFlip())&&
!player[k].jumptogglekeydown&&
player[k].jumpkeydown){
player[k].collide=1;
tempcollide=1;
- if(player[k].targetanimation==jumpdownanim||player[k].isFlip()){
+ if(player[k].animTarget==jumpdownanim||player[k].isFlip()){
//flipped into a rock
- if(player[k].isFlip()&&animation[player[k].targetanimation].label[player[k].targetframe]==7)
+ if(player[k].isFlip()&&animation[player[k].animTarget].label[player[k].frameTarget]==7)
player[k].RagDoll(0);
- if(player[k].targetanimation==jumpupanim){
+ if(player[k].animTarget==jumpupanim){
player[k].jumppower=-4;
- player[k].targetanimation=player[k].getIdle();
+ player[k].animTarget=player[k].getIdle();
}
player[k].target=0;
- player[k].targetframe=0;
+ player[k].frameTarget=0;
player[k].onterrain=1;
if(player[k].id==0){
}
//landing
- if((player[k].targetanimation==jumpdownanim||player[k].isFlip())&&!player[k].wasLanding()){
+ if((player[k].animTarget==jumpdownanim||player[k].isFlip())&&!player[k].wasLanding()){
if(player[k].isFlip())
player[k].jumppower=-4;
- player[k].targetanimation=player[k].getLanding();
+ player[k].animTarget=player[k].getLanding();
emit_sound_at(landsound, player[k].coords, 128.);
if(k==0){
envsound[numenvsounds]=player[k].coords;
lowpoint.y+=1.35;
if(objects.type[i]!=rocktype)
if(player[k].SphereCheck(&lowpoint,1.33,&colpoint,&objects.position[i],&objects.yaw[i],&objects.model[i])!=-1){
- if(player[k].targetanimation!=jumpupanim&&
- player[k].targetanimation!=jumpdownanim&&
+ if(player[k].animTarget!=jumpupanim&&
+ player[k].animTarget!=jumpdownanim&&
player[k].onterrain)
player[k].avoidcollided=1;
player[k].coords=lowpoint;
player[k].collide=1;
if((player[k].grabdelay<=0||player[k].aitype!=playercontrolled)&&
- (player[k].currentanimation!=climbanim&&
- player[k].currentanimation!=hanganim&&
+ (player[k].animCurrent!=climbanim&&
+ player[k].animCurrent!=hanganim&&
!player[k].isWallJump()||
- player[k].targetanimation==jumpupanim||
- player[k].targetanimation==jumpdownanim)){
+ player[k].animTarget==jumpupanim||
+ player[k].animTarget==jumpdownanim)){
lowpoint=player[k].coords;
objects.model[i].SphereCheckPossible(&lowpoint, 1.5, &objects.position[i], &objects.yaw[i]);
lowpoint=player[k].coords;
whichhit=objects.model[i].LineCheckPossible(&lowpoint,&lowpointtarget,&colpoint,&objects.position[i],&objects.yaw[i]);
if(objects.friction[i]>.5)
if(whichhit!=-1){
- if(whichhit!=-1&&player[k].targetanimation!=jumpupanim&&player[k].targetanimation!=jumpdownanim)
+ if(whichhit!=-1&&player[k].animTarget!=jumpupanim&&player[k].animTarget!=jumpdownanim)
player[k].collided=1;
if(checkcollide(lowpoint7,lowpointtarget7)==-1)
if(checkcollide(lowpoint6,lowpointtarget6)==-1)
lowpointtarget=lowpoint+facing*1.4;
if(objects.model[i].LineCheckPossible(&lowpoint,&lowpointtarget,
&colpoint2,&objects.position[i],&objects.yaw[i])==-1){
- if(j<=6||j<=25&&player[k].targetanimation==jumpdownanim)
+ if(j<=6||j<=25&&player[k].animTarget==jumpdownanim)
break;
- if(player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim){
+ if(player[k].animTarget==jumpupanim||player[k].animTarget==jumpdownanim){
lowpoint=DoRotation(objects.model[i].facenormals[whichhit],0,objects.yaw[k],0);
lowpoint=player[k].coords;
lowpoint.y+=(float)j/13;
player[k].currentoffset=(flatfacing-player[k].coords)/player[k].scale;
if(j>10||!player[k].isRun()){
- if(player[k].targetanimation==jumpdownanim||player[k].targetanimation==jumpupanim){
+ if(player[k].animTarget==jumpdownanim||player[k].animTarget==jumpupanim){
if(k==0)
pause_sound(whooshsound);
}
player[k].velocity=0;
//climb ledge (?)
- if(player[k].targetanimation==jumpupanim){
- player[k].targetanimation=climbanim;
+ if(player[k].animTarget==jumpupanim){
+ player[k].animTarget=climbanim;
player[k].jumppower=0;
player[k].jumpclimb=1;
}
player[k].transspeed=6;
player[k].target=0;
- player[k].targetframe=1;
+ player[k].frameTarget=1;
//hang ledge (?)
if(j>25){
player[k].setAnimation(hanganim);
if(player[k].collide<=0){
//in the air
if(!player[k].onterrain&&
- player[k].targetanimation!=jumpupanim&&
- player[k].targetanimation!=jumpdownanim&&
- player[k].targetanimation!=climbanim&&
- player[k].targetanimation!=hanganim&&
+ player[k].animTarget!=jumpupanim&&
+ player[k].animTarget!=jumpdownanim&&
+ player[k].animTarget!=climbanim&&
+ player[k].animTarget!=hanganim&&
!player[k].isWallJump()&&
!player[k].isFlip()){
- if(player[k].currentanimation!=climbanim&&
- player[k].currentanimation!=tempanim&&
- player[k].targetanimation!=backhandspringanim&&
- (player[k].targetanimation!=rollanim||
- player[k].targetframe<2||
- player[k].targetframe>6)){
+ if(player[k].animCurrent!=climbanim&&
+ player[k].animCurrent!=tempanim&&
+ player[k].animTarget!=backhandspringanim&&
+ (player[k].animTarget!=rollanim||
+ player[k].frameTarget<2||
+ player[k].frameTarget>6)){
//stagger off ledge (?)
- if(player[k].targetanimation==staggerbackhighanim||player[k].targetanimation==staggerbackhardanim)
+ if(player[k].animTarget==staggerbackhighanim||player[k].animTarget==staggerbackhardanim)
player[k].RagDoll(0);
player[k].setAnimation(jumpdownanim);
!oldattackkey&&
!player[0].backkeydown){
for(int k=0;k<numplayers;k++){
- if((player[k].targetanimation==swordslashanim||
- player[k].targetanimation==staffhitanim||
- player[k].targetanimation==staffspinhitanim)&&
- player[0].currentanimation!=dodgebackanim&&
+ if((player[k].animTarget==swordslashanim||
+ player[k].animTarget==staffhitanim||
+ player[k].animTarget==staffspinhitanim)&&
+ player[0].animCurrent!=dodgebackanim&&
!player[k].skeleton.free)
player[k].Reverse();
}
for(int k=0;k<numplayers;k++){
if(indialogue!=-1)player[k].attackkeydown=0;
- if(player[k].targetanimation!=rabbitrunninganim&&player[k].targetanimation!=wolfrunninganim){
+ if(player[k].animTarget!=rabbitrunninganim&&player[k].animTarget!=wolfrunninganim){
if(player[k].aitype!=playercontrolled)
player[k].victim=&player[0];
//attack key pressed
if(player[k].attackkeydown){
//dodge backward
if(player[k].backkeydown&&
- player[k].targetanimation!=backhandspringanim&&
+ player[k].animTarget!=backhandspringanim&&
(player[k].isIdle()||
player[k].isStop()||
player[k].isRun()||
- player[k].targetanimation==walkanim)){
+ player[k].animTarget==walkanim)){
if(player[k].jumppower<=1){
player[k].jumppower-=2;
}else{
for(int i=0;i<numplayers;i++){
if(i==k)continue;
- if(player[i].targetanimation==swordslashanim||
- player[i].targetanimation==knifeslashstartanim||
- player[i].targetanimation==staffhitanim||
- player[i].targetanimation==staffspinhitanim)
- if(findDistancefast(&player[k].coords,&player[i].coords)<6.5&&!player[i].skeleton.free){
+ if(player[i].animTarget==swordslashanim||
+ player[i].animTarget==knifeslashstartanim||
+ player[i].animTarget==staffhitanim||
+ player[i].animTarget==staffspinhitanim)
+ if(distsq(&player[k].coords,&player[i].coords)<6.5&&!player[i].skeleton.free){
player[k].setAnimation(dodgebackanim);
player[k].targetyaw=roughDirectionTo(player[k].coords,player[i].coords);
player[k].targettilt2=pitchTo(player[k].coords,player[i].coords);
}
}
- if(player[k].targetanimation!=dodgebackanim){
+ if(player[k].animTarget!=dodgebackanim){
if(k==0)numflipped++;
player[k].setAnimation(backhandspringanim);
player[k].targetyaw=-yaw+180;
}
}
//attack
- if(!animation[player[k].targetanimation].attack&&
+ if(!animation[player[k].animTarget].attack&&
!player[k].backkeydown&&
(player[k].isIdle()||
player[k].isRun()||
- player[k].targetanimation==walkanim||
- player[k].targetanimation==sneakanim||
+ player[k].animTarget==walkanim||
+ player[k].animTarget==sneakanim||
player[k].isCrouch())){
const int attackweapon=player[k].weaponactive==-1?0:weapons[player[k].weaponids[player[k].weaponactive]].getType();
//normal attacks (?)
for(int i=0;i<numplayers;i++){
if(i==k||!(k==0||i==0))continue;
if(!player[k].hasvictim)
- if(animation[player[k].targetanimation].attack!=reversal){
+ if(animation[player[k].animTarget].attack!=reversal){
//choose an attack
- const float distance=findDistancefast(&player[k].coords,&player[i].coords);
+ const float distance=distsq(&player[k].coords,&player[i].coords);
if(distance<4.5&&
!player[i].skeleton.free&&
player[i].howactive<typedead1&&
- player[i].targetanimation!=jumpreversedanim&&
- player[i].targetanimation!=rabbitkickreversedanim&&
- player[i].targetanimation!=rabbitkickanim&&
- player[k].targetanimation!=rabbitkickanim&&
- player[i].targetanimation!=getupfrombackanim&&
- (player[i].targetanimation!=staggerbackhighanim&&
- (player[i].targetanimation!=staggerbackhardanim||
- animation[staggerbackhardanim].label[player[i].targetframe]==6))&&
- player[i].targetanimation!=jumpdownanim&&
- player[i].targetanimation!=jumpupanim&&
- player[i].targetanimation!=getupfromfrontanim){
+ player[i].animTarget!=jumpreversedanim&&
+ player[i].animTarget!=rabbitkickreversedanim&&
+ player[i].animTarget!=rabbitkickanim&&
+ player[k].animTarget!=rabbitkickanim&&
+ player[i].animTarget!=getupfrombackanim&&
+ (player[i].animTarget!=staggerbackhighanim&&
+ (player[i].animTarget!=staggerbackhardanim||
+ animation[staggerbackhardanim].label[player[i].frameTarget]==6))&&
+ player[i].animTarget!=jumpdownanim&&
+ player[i].animTarget!=jumpupanim&&
+ player[i].animTarget!=getupfromfrontanim){
player[k].victim=&player[i];
player[k].hasvictim=1;
if(player[k].aitype==playercontrolled){ //human player
//sweep
if(distance<2.5*sq(player[k].scale*5)&&
player[k].crouchkeydown&&
- animation[player[i].targetanimation].height!=lowheight)
- player[k].targetanimation=sweepanim;
+ animation[player[i].animTarget].height!=lowheight)
+ player[k].animTarget=sweepanim;
//winduppunch
else if(distance<1.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight&&
+ animation[player[i].animTarget].height!=lowheight&&
!player[k].forwardkeydown&&
!player[k].leftkeydown&&
!player[k].rightkeydown&&
!player[k].crouchkeydown&&
!attackweapon&&
!reversaltrain)
- player[k].targetanimation=winduppunchanim;
+ player[k].animTarget=winduppunchanim;
//upunch
else if(distance<2.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight&&
+ animation[player[i].animTarget].height!=lowheight&&
!player[k].forwardkeydown&&
!player[k].leftkeydown&&
!player[k].rightkeydown&&
!player[k].crouchkeydown&&
!attackweapon)
- player[k].targetanimation=upunchanim;
+ player[k].animTarget=upunchanim;
//knifefollow
else if(distance<2.5*sq(player[k].scale*5)&&
player[i].staggerdelay>0&&
attackweapon==knife&&
player[i].bloodloss>player[i].damagetolerance/2)
- player[k].targetanimation=knifefollowanim;
+ player[k].animTarget=knifefollowanim;
//knifeslashstart
else if(distance<2.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight&&
+ animation[player[i].animTarget].height!=lowheight&&
!player[k].forwardkeydown&&
!player[k].leftkeydown&&
!player[k].rightkeydown&&
!player[k].crouchkeydown&&
attackweapon==knife&&
player[k].weaponmissdelay<=0)
- player[k].targetanimation=knifeslashstartanim;
+ player[k].animTarget=knifeslashstartanim;
//swordslash
else if(distance<4.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight&&
+ animation[player[i].animTarget].height!=lowheight&&
!player[k].crouchkeydown&&
attackweapon==sword&&
player[k].weaponmissdelay<=0)
- player[k].targetanimation=swordslashanim;
+ player[k].animTarget=swordslashanim;
//staffhit
else if(distance<4.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight&&
+ animation[player[i].animTarget].height!=lowheight&&
!player[k].crouchkeydown&&
attackweapon==staff&&
player[k].weaponmissdelay<=0&&
!player[k].leftkeydown&&
!player[k].rightkeydown&&
!player[k].forwardkeydown)
- player[k].targetanimation=staffhitanim;
+ player[k].animTarget=staffhitanim;
//staffspinhit
else if(distance<4.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight&&
+ animation[player[i].animTarget].height!=lowheight&&
!player[k].crouchkeydown&&
attackweapon==staff&&
player[k].weaponmissdelay<=0)
- player[k].targetanimation=staffspinhitanim;
+ player[k].animTarget=staffspinhitanim;
//spinkick
else if(distance<2.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height!=lowheight)
- player[k].targetanimation=spinkickanim;
+ animation[player[i].animTarget].height!=lowheight)
+ player[k].animTarget=spinkickanim;
//lowkick
else if(distance<2.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height==lowheight&&
- animation[player[k].targetanimation].attack!=normalattack)
- player[k].targetanimation=lowkickanim;
+ animation[player[i].animTarget].height==lowheight&&
+ animation[player[k].animTarget].attack!=normalattack)
+ player[k].animTarget=lowkickanim;
} else { //AI player
if(distance<4.5*sq(player[k].scale*5)){
randattack=abs(Random()%5);
if(!attackweapon&&distance<2.5*sq(player[k].scale*5)){
//sweep
- if(randattack==0&&animation[player[i].targetanimation].height!=lowheight)
- player[k].targetanimation=sweepanim;
+ if(randattack==0&&animation[player[i].animTarget].height!=lowheight)
+ player[k].animTarget=sweepanim;
//upunch
- else if(randattack==1&&animation[player[i].targetanimation].height!=lowheight&&
+ else if(randattack==1&&animation[player[i].animTarget].height!=lowheight&&
!attackweapon)
- player[k].targetanimation=upunchanim;
+ player[k].animTarget=upunchanim;
//spinkick
- else if(randattack==2&&animation[player[i].targetanimation].height!=lowheight)
- player[k].targetanimation=spinkickanim;
+ else if(randattack==2&&animation[player[i].animTarget].height!=lowheight)
+ player[k].animTarget=spinkickanim;
//lowkick
- else if(animation[player[i].targetanimation].height==lowheight)
- player[k].targetanimation=lowkickanim;
+ else if(animation[player[i].animTarget].height==lowheight)
+ player[k].animTarget=lowkickanim;
}
if(attackweapon){
//sweep
if((tutoriallevel!=1||!attackweapon)&&
distance<2.5*sq(player[k].scale*5)&&
randattack==0&&
- animation[player[i].targetanimation].height!=lowheight)
- player[k].targetanimation=sweepanim;
+ animation[player[i].animTarget].height!=lowheight)
+ player[k].animTarget=sweepanim;
//knifeslashstart
else if(distance<2.5*sq(player[k].scale*5)&&
attackweapon==knife&&
player[k].weaponmissdelay<=0)
- player[k].targetanimation=knifeslashstartanim;
+ player[k].animTarget=knifeslashstartanim;
//swordslash
else if(!(player[0].victim==&player[i]&&
player[0].hasvictim&&
- player[0].targetanimation==swordslashanim)&&
+ player[0].animTarget==swordslashanim)&&
attackweapon==sword&&
player[k].weaponmissdelay<=0)
- player[k].targetanimation=swordslashanim;
+ player[k].animTarget=swordslashanim;
//staffhit
else if(!(player[0].victim==&player[i]&&
player[0].hasvictim&&
- player[0].targetanimation==swordslashanim)&&
+ player[0].animTarget==swordslashanim)&&
attackweapon==staff&&
player[k].weaponmissdelay<=0&&
randattack<3)
- player[k].targetanimation=staffhitanim;
+ player[k].animTarget=staffhitanim;
//staffspinhit
else if(!(player[0].victim==&player[i]&&
player[0].hasvictim&&
- player[0].targetanimation==swordslashanim)&&
+ player[0].animTarget==swordslashanim)&&
attackweapon==staff&&
player[k].weaponmissdelay<=0&&
randattack>=3)
- player[k].targetanimation=staffspinhitanim;
+ player[k].animTarget=staffspinhitanim;
//spinkick
else if((tutoriallevel!=1||!attackweapon)&&
distance<2.5*sq(player[k].scale*5)&&
randattack==1&&
- animation[player[i].targetanimation].height!=lowheight)
- player[k].targetanimation=spinkickanim;
+ animation[player[i].animTarget].height!=lowheight)
+ player[k].animTarget=spinkickanim;
//lowkick
else if(distance<2.5*sq(player[k].scale*5)&&
- animation[player[i].targetanimation].height==lowheight&&
- animation[player[k].targetanimation].attack!=normalattack)
- player[k].targetanimation=lowkickanim;
+ animation[player[i].animTarget].height==lowheight&&
+ animation[player[k].animTarget].attack!=normalattack)
+ player[k].animTarget=lowkickanim;
}
}
}
//upunch becomes wolfslap
- if(player[k].targetanimation==upunchanim&&player[k].creature==wolftype)
- player[k].targetanimation=wolfslapanim;
+ if(player[k].animTarget==upunchanim&&player[k].creature==wolftype)
+ player[k].animTarget=wolfslapanim;
}
//sneak attacks
if((k==0)&&(tutoriallevel!=1||tutorialstage==22)&&
player[i].howactive<typedead1&&
distance<1.5*sq(player[k].scale*5)&&
!player[i].skeleton.free&&
- player[i].targetanimation!=getupfrombackanim&&
- player[i].targetanimation!=getupfromfrontanim&&
+ player[i].animTarget!=getupfrombackanim&&
+ player[i].animTarget!=getupfromfrontanim&&
(player[i].stunned>0&&player[k].madskills||
player[i].surprised>0||
player[i].aitype==passivetype||
normaldotproduct(player[i].facing,player[i].coords-player[k].coords)>0){
//sneakattack
if(!attackweapon){
- player[k].currentanimation=sneakattackanim;
- player[k].targetanimation=sneakattackanim;
- player[i].currentanimation=sneakattackedanim;
- player[i].targetanimation=sneakattackedanim;
+ player[k].animCurrent=sneakattackanim;
+ player[k].animTarget=sneakattackanim;
+ player[i].animCurrent=sneakattackedanim;
+ player[i].animTarget=sneakattackedanim;
player[k].oldcoords=player[k].coords;
player[k].coords=player[i].coords;
}
//knifesneakattack
if(attackweapon==knife){
- player[k].currentanimation=knifesneakattackanim;
- player[k].targetanimation=knifesneakattackanim;
- player[i].currentanimation=knifesneakattackedanim;
- player[i].targetanimation=knifesneakattackedanim;
+ player[k].animCurrent=knifesneakattackanim;
+ player[k].animTarget=knifesneakattackanim;
+ player[i].animCurrent=knifesneakattackedanim;
+ player[i].animTarget=knifesneakattackedanim;
player[i].oldcoords=player[i].coords;
player[i].coords=player[k].coords;
}
//swordsneakattack
if(attackweapon==sword){
- player[k].currentanimation=swordsneakattackanim;
- player[k].targetanimation=swordsneakattackanim;
- player[i].currentanimation=swordsneakattackedanim;
- player[i].targetanimation=swordsneakattackedanim;
+ player[k].animCurrent=swordsneakattackanim;
+ player[k].animTarget=swordsneakattackanim;
+ player[i].animCurrent=swordsneakattackedanim;
+ player[i].animTarget=swordsneakattackedanim;
player[i].oldcoords=player[i].coords;
player[i].coords=player[k].coords;
}
player[k].victim=&player[i];
player[k].hasvictim=1;
player[i].targettilt2=0;
- player[i].targetframe=1;
- player[i].currentframe=0;
+ player[i].frameTarget=1;
+ player[i].frameCurrent=0;
player[i].target=0;
player[i].velocity=0;
player[k].targettilt2=player[i].targettilt2;
- player[k].currentframe=player[i].currentframe;
- player[k].targetframe=player[i].targetframe;
+ player[k].frameCurrent=player[i].frameCurrent;
+ player[k].frameTarget=player[i].frameTarget;
player[k].target=player[i].target;
player[k].velocity=0;
player[k].targetyaw=player[i].yaw;
player[i].targetyaw=player[i].yaw;
}
}
- if(animation[player[k].targetanimation].attack==normalattack&&
+ if(animation[player[k].animTarget].attack==normalattack&&
player[k].victim==&player[i]&&
(!player[i].skeleton.free)){
oldattackkey=1;
- player[k].targetframe=0;
+ player[k].frameTarget=0;
player[k].target=0;
player[k].targetyaw=roughDirectionTo(player[k].coords,player[i].coords);
player[k].targettilt2=pitchTo(player[k].coords,player[i].coords);
player[k].lastattack3=player[k].lastattack2;
player[k].lastattack2=player[k].lastattack;
- player[k].lastattack=player[k].targetanimation;
+ player[k].lastattack=player[k].animTarget;
}
- if(player[k].targetanimation==knifefollowanim&&
+ if(player[k].animTarget==knifefollowanim&&
player[k].victim==&player[i]){
oldattackkey=1;
player[k].targetyaw=roughDirectionTo(player[k].coords,player[i].coords);
player[k].targettilt2=pitchTo(player[k].coords,player[i].coords);
player[k].victim=&player[i];
player[k].hasvictim=1;
- player[i].targetanimation=knifefollowedanim;
- player[i].currentanimation=knifefollowedanim;
+ player[i].animTarget=knifefollowedanim;
+ player[i].animCurrent=knifefollowedanim;
player[i].targettilt2=0;
player[i].targettilt2=player[k].targettilt2;
- player[i].targetframe=1;
- player[i].currentframe=0;
+ player[i].frameTarget=1;
+ player[i].frameCurrent=0;
player[i].target=0;
player[i].velocity=0;
- player[k].currentanimation=knifefollowanim;
- player[k].targetanimation=knifefollowanim;
+ player[k].animCurrent=knifefollowanim;
+ player[k].animTarget=knifefollowanim;
player[k].targettilt2=player[i].targettilt2;
- player[k].currentframe=player[i].currentframe;
- player[k].targetframe=player[i].targetframe;
+ player[k].frameCurrent=player[i].frameCurrent;
+ player[k].frameTarget=player[i].frameTarget;
player[k].target=player[i].target;
player[k].velocity=0;
player[k].oldcoords=player[k].coords;
for(int i=0;i<numplayers;i++){
if(i==k)continue;
if((playerrealattackkeydown||player[i].dead||!hasstaff)&&
- animation[player[k].targetanimation].attack==neutral){
- const float distance=findDistancefast(&player[k].coords,&player[i].coords);
+ animation[player[k].animTarget].attack==neutral){
+ const float distance=distsq(&player[k].coords,&player[i].coords);
if(!player[i].dead||!realthreat||(!attackweapon&&player[k].crouchkeydown))
if(player[i].skeleton.free)
if(distance<3.5*sq(player[k].scale*5)&&
if(attackweapon&&tutoriallevel!=1){
//crouchstab
if(player[k].crouchkeydown&&attackweapon==knife&&distance<1.5*sq(player[k].scale*5))
- player[k].targetanimation=crouchstabanim;
+ player[k].animTarget=crouchstabanim;
//swordgroundstab
if(player[k].crouchkeydown&&distance<1.5*sq(player[k].scale*5)&&attackweapon==sword)
- player[k].targetanimation=swordgroundstabanim;
+ player[k].animTarget=swordgroundstabanim;
//staffgroundsmash
if(distance<3.5*sq(player[k].scale*5)&&attackweapon==staff)
- player[k].targetanimation=staffgroundsmashanim;
+ player[k].animTarget=staffgroundsmashanim;
}
if(distance<2.5&&
player[k].crouchkeydown&&
- player[k].targetanimation!=crouchstabanim&&
+ player[k].animTarget!=crouchstabanim&&
!attackweapon&&
player[i].dead&&
player[i].skeleton.free&&
player[i].skeleton.longdead>1000){
- player[k].targetanimation=killanim;
+ player[k].animTarget=killanim;
//TODO: refactor this out, what does it do?
for(int j=0;j<terrain.numdecals;j++){
if((terrain.decaltype[j]==blooddecal||terrain.decaltype[j]==blooddecalslow)&&
player[k].lastattack!=spinkickanim&&
player[i].skeleton.free)&&
(!player[i].dead||musictype!=stream_fighttheme)){
- player[k].targetanimation=dropkickanim;
+ player[k].animTarget=dropkickanim;
for(int j=0;j<terrain.numdecals;j++){
if((terrain.decaltype[j]==blooddecal||terrain.decaltype[j]==blooddecalslow)&&
terrain.decalalivetime[j]<2){
}
}
}
- if(animation[player[k].targetanimation].attack==normalattack&&
+ if(animation[player[k].animTarget].attack==normalattack&&
player[k].victim==&player[i]&&
(!player[i].skeleton.free||
- player[k].targetanimation==killanim||
- player[k].targetanimation==crouchstabanim||
- player[k].targetanimation==swordgroundstabanim||
- player[k].targetanimation==staffgroundsmashanim||
- player[k].targetanimation==dropkickanim)){
+ player[k].animTarget==killanim||
+ player[k].animTarget==crouchstabanim||
+ player[k].animTarget==swordgroundstabanim||
+ player[k].animTarget==staffgroundsmashanim||
+ player[k].animTarget==dropkickanim)){
oldattackkey=1;
- player[k].targetframe=0;
+ player[k].frameTarget=0;
player[k].target=0;
XYZ targetpoint=player[i].coords;
- if(player[k].targetanimation==crouchstabanim||
- player[k].targetanimation==swordgroundstabanim||
- player[k].targetanimation==staffgroundsmashanim){
+ if(player[k].animTarget==crouchstabanim||
+ player[k].animTarget==swordgroundstabanim||
+ player[k].animTarget==staffgroundsmashanim){
targetpoint+=(player[i].getJointFor(abdomen).position+
player[i].getJointFor(neck).position)/2*
player[i].scale;
player[k].targetyaw=roughDirectionTo(player[k].coords,targetpoint);
player[k].targettilt2=pitchTo(player[k].coords,targetpoint);
- if(player[k].targetanimation==crouchstabanim||player[k].targetanimation==swordgroundstabanim){
+ if(player[k].animTarget==crouchstabanim||player[k].animTarget==swordgroundstabanim){
player[k].targetyaw+=(float)(abs(Random()%100)-50)/4;
}
- if(player[k].targetanimation==staffgroundsmashanim)
+ if(player[k].animTarget==staffgroundsmashanim)
player[k].targettilt2+=10;
player[k].lastattack3=player[k].lastattack2;
player[k].lastattack2=player[k].lastattack;
- player[k].lastattack=player[k].targetanimation;
+ player[k].lastattack=player[k].animTarget;
- if(player[k].targetanimation==swordgroundstabanim){
+ if(player[k].animTarget==swordgroundstabanim){
player[k].targetyaw+=30;
}
}
if(i==k||!(i==0||k==0))continue;
if(!player[i].skeleton.free){
if(player[k].hasvictim){
- if(findDistancefast(&player[k].coords,&player[i].coords)<
- findDistancefast(&player[k].coords,&player[k].victim->coords))
+ if(distsq(&player[k].coords,&player[i].coords)<
+ distsq(&player[k].coords,&player[k].victim->coords))
player[k].victim=&player[i];
}else{
player[k].victim=&player[i];
player[k].isRun()&&
player[k].wasRun()&&
((player[k].hasvictim&&
- findDistancefast(&player[k].coords,&player[k].victim->coords)<12*sq(player[k].scale*5)&&
- findDistancefast(&player[k].coords,&player[k].victim->coords)>7*sq(player[k].scale*5)&&
+ distsq(&player[k].coords,&player[k].victim->coords)<12*sq(player[k].scale*5)&&
+ distsq(&player[k].coords,&player[k].victim->coords)>7*sq(player[k].scale*5)&&
!player[k].victim->skeleton.free&&
- player[k].victim->targetanimation!=getupfrombackanim&&
- player[k].victim->targetanimation!=getupfromfrontanim&&
- animation[player[k].victim->targetanimation].height!=lowheight&&
+ player[k].victim->animTarget!=getupfrombackanim&&
+ player[k].victim->animTarget!=getupfromfrontanim&&
+ animation[player[k].victim->animTarget].height!=lowheight&&
player[k].aitype!=playercontrolled&& //wat???
normaldotproduct(player[k].facing,player[k].victim->coords-player[k].coords)>0&&
player[k].rabbitkickenabled)||
player[k].setAnimation(rabbitkickanim);
}
//update counts
- if(animation[player[k].targetanimation].attack&&k==0){
+ if(animation[player[k].animTarget].attack&&k==0){
numattacks++;
switch(attackweapon){
case 0: numunarmedattack++; break;
for(int k=0;k<numplayers;k++)
for(int i=k+1;i<numplayers;i++){
//neither player is part of a reversal
- if((animation[player[i].targetanimation].attack!=reversed&&
- animation[player[i].targetanimation].attack!=reversal&&
- animation[player[k].targetanimation].attack!=reversed&&
- animation[player[k].targetanimation].attack!=reversal)||(i!=0&&k!=0))
- if((animation[player[i].currentanimation].attack!=reversed&&
- animation[player[i].currentanimation].attack!=reversal&&
- animation[player[k].currentanimation].attack!=reversed&&
- animation[player[k].currentanimation].attack!=reversal)||(i!=0&&k!=0))
+ if((animation[player[i].animTarget].attack!=reversed&&
+ animation[player[i].animTarget].attack!=reversal&&
+ animation[player[k].animTarget].attack!=reversed&&
+ animation[player[k].animTarget].attack!=reversal)||(i!=0&&k!=0))
+ if((animation[player[i].animCurrent].attack!=reversed&&
+ animation[player[i].animCurrent].attack!=reversal&&
+ animation[player[k].animCurrent].attack!=reversed&&
+ animation[player[k].animCurrent].attack!=reversal)||(i!=0&&k!=0))
//neither is sleeping
if(player[i].howactive<=typesleeping&&player[k].howactive<=typesleeping)
if(player[i].howactive!=typesittingwall&&player[k].howactive!=typesittingwall)
player[i].whichpatchz==player[k].whichpatchz&&
player[k].skeleton.oldfree==player[k].skeleton.free&&
player[i].skeleton.oldfree==player[i].skeleton.free&&
- player[i].targetanimation!=climbanim&&
- player[i].targetanimation!=hanganim&&
- player[k].targetanimation!=climbanim&&
- player[k].targetanimation!=hanganim)
+ player[i].animTarget!=climbanim&&
+ player[i].animTarget!=hanganim&&
+ player[k].animTarget!=climbanim&&
+ player[k].animTarget!=hanganim)
//players are close (bounding box test)
if(player[i].coords.y>player[k].coords.y-3)
if(player[i].coords.y<player[k].coords.y+3)
if(player[i].coords.z>player[k].coords.z-3)
if(player[i].coords.z<player[k].coords.z+3){
//spread fire from player to player
- if(findDistancefast(&player[i].coords,&player[k].coords)
+ if(distsq(&player[i].coords,&player[k].coords)
<3*sq((player[i].scale+player[k].scale)*2.5)){
if(player[i].onfire||player[k].onfire){
if(!player[i].onfire)player[i].CatchFire();
tempcoords2.y+=player[k].getJointFor(abdomen).position.y*player[k].scale;
collisionradius=1.2*sq((player[i].scale+player[k].scale)*2.5);
if(player[0].hasvictim)
- if(player[0].targetanimation==rabbitkickanim&&(k==0||i==0)&&!player[0].victim->skeleton.free)
+ if(player[0].animTarget==rabbitkickanim&&(k==0||i==0)&&!player[0].victim->skeleton.free)
collisionradius=3;
if((!player[i].skeleton.oldfree||!player[k].skeleton.oldfree)&&
- (findDistancefast(&tempcoords1,&tempcoords2)<collisionradius||
- findDistancefast(&player[i].coords,&player[k].coords)<collisionradius)){
+ (distsq(&tempcoords1,&tempcoords2)<collisionradius||
+ distsq(&player[i].coords,&player[k].coords)<collisionradius)){
//jump down on a dead body
if(k==0||i==0){
int l=i?i:k;
- if(player[0].targetanimation==jumpdownanim&&
+ if(player[0].animTarget==jumpdownanim&&
!player[0].skeleton.oldfree&&
!player[0].skeleton.free&&
player[l].skeleton.oldfree&&
player[l].dead&&
player[0].lastcollide<=0&&
fabs(player[l].coords.y-player[0].coords.y)<.2&&
- findDistancefast(&player[0].coords,&player[l].coords)<.7*sq((player[l].scale+player[0].scale)*2.5)){
+ distsq(&player[0].coords,&player[l].coords)<.7*sq((player[l].scale+player[0].scale)*2.5)){
player[0].coords.y=player[l].coords.y;
player[l].velocity=player[0].velocity;
player[l].skeleton.free=0;
(player[k].skeleton.oldfree==1&&findLengthfast(&player[k].velocity)>1)||
(player[i].skeleton.oldfree==0&&player[k].skeleton.oldfree==0)){
rotatetarget=player[k].velocity-player[i].velocity;
- if((player[i].targetanimation!=getupfrombackanim&&player[i].targetanimation!=getupfromfrontanim||
+ if((player[i].animTarget!=getupfrombackanim&&player[i].animTarget!=getupfromfrontanim||
player[i].skeleton.free)&&
- (player[k].targetanimation!=getupfrombackanim&&player[k].targetanimation!=getupfromfrontanim||
+ (player[k].animTarget!=getupfrombackanim&&player[k].animTarget!=getupfromfrontanim||
player[k].skeleton.free))
if((((k!=0&&findLengthfast(&rotatetarget)>150||
k==0&&findLengthfast(&rotatetarget)>50&&player[0].rabbitkickragdoll)&&
normaldotproduct(rotatetarget,player[k].coords-player[i].coords)>0)&&
(k==0||
- k!=0&&player[i].skeleton.oldfree==1&&animation[player[k].currentanimation].attack==neutral||
- /*i!=0&&*/player[k].skeleton.oldfree==1&&animation[player[i].currentanimation].attack==neutral))||
- (player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip())&&
- (player[k].targetanimation==jumpupanim||player[k].targetanimation==jumpdownanim||player[k].isFlip())&&
+ k!=0&&player[i].skeleton.oldfree==1&&animation[player[k].animCurrent].attack==neutral||
+ /*i!=0&&*/player[k].skeleton.oldfree==1&&animation[player[i].animCurrent].attack==neutral))||
+ (player[i].animTarget==jumpupanim||player[i].animTarget==jumpdownanim||player[i].isFlip())&&
+ (player[k].animTarget==jumpupanim||player[k].animTarget==jumpdownanim||player[k].isFlip())&&
k==0&&!player[i].skeleton.oldfree&&!player[k].skeleton.oldfree){
//If hit by body
if( (i!=0||player[i].skeleton.free)&&
(k!=0||player[k].skeleton.free)||
- (animation[player[i].targetanimation].height==highheight&&
- animation[player[k].targetanimation].height==highheight)){
+ (animation[player[i].animTarget].height==highheight&&
+ animation[player[k].animTarget].height==highheight)){
if(tutoriallevel!=1){
emit_sound_at(heavyimpactsound, player[i].coords);
}
}
}
- if( (animation[player[i].targetanimation].attack==neutral||
- animation[player[i].targetanimation].attack==normalattack)&&
- (animation[player[k].targetanimation].attack==neutral||
- animation[player[k].targetanimation].attack==normalattack)){
+ if( (animation[player[i].animTarget].attack==neutral||
+ animation[player[i].animTarget].attack==normalattack)&&
+ (animation[player[k].animTarget].attack==neutral||
+ animation[player[k].animTarget].attack==normalattack)){
//If bumped
if(player[i].skeleton.oldfree==0&&player[k].skeleton.oldfree==0){
- if(findDistancefast(&player[k].coords,&player[i].coords)<.5*sq((player[i].scale+player[k].scale)*2.5)){
+ if(distsq(&player[k].coords,&player[i].coords)<.5*sq((player[i].scale+player[k].scale)*2.5)){
rotatetarget=player[k].coords-player[i].coords;
Normalise(&rotatetarget);
player[k].coords=(player[k].coords+player[i].coords)/2;
}
//jump down on player
if(hostile){
- if(k==0&&i!=0&&player[k].targetanimation==jumpdownanim&&
+ if(k==0&&i!=0&&player[k].animTarget==jumpdownanim&&
!player[i].isCrouch()&&
- player[i].targetanimation!=rollanim&&
+ player[i].animTarget!=rollanim&&
!player[k].skeleton.oldfree&&!
player[k].skeleton.free&&
player[k].lastcollide<=0&&
player[k].lastcollide=1;
award_bonus(k, AboveBonus);
}
- if(i==0&&k!=0&&player[i].targetanimation==jumpdownanim&&
+ if(i==0&&k!=0&&player[i].animTarget==jumpdownanim&&
!player[k].isCrouch()&&
- player[k].targetanimation!=rollanim&&
+ player[k].animTarget!=rollanim&&
!player[i].skeleton.oldfree&&
!player[i].skeleton.free&&
player[i].lastcollide<=0&&
player[i].stunned=1;
player[i].pause=0;
- if(findDistancefastflat(&player[0].coords,&player[i].coords)<30&&
+ if(distsqflat(&player[0].coords,&player[i].coords)<30&&
player[0].coords.y>player[i].coords.y+2&&
!player[0].onterrain)
player[i].pause=1;
closest=-1;
closestdistance=-1;
for(int j=0;j<numpathpoints;j++)
- if(closest==-1||findDistancefast(&player[i].finalfinaltarget,&pathpoint[j])<closestdistance){
- closestdistance=findDistancefast(&player[i].finalfinaltarget,&pathpoint[j]);
+ if(closest==-1||distsq(&player[i].finalfinaltarget,&pathpoint[j])<closestdistance){
+ closestdistance=distsq(&player[i].finalfinaltarget,&pathpoint[j]);
closest=j;
player[i].finaltarget=pathpoint[j];
}
if(player[i].lastpathfindpoint==-1){
for(int j=0;j<numpathpoints;j++){
if(j!=player[i].lastpathfindpoint)
- if(closest==-1||(findDistancefast(&player[i].coords,&pathpoint[j])<closestdistance)){
- closestdistance=findDistancefast(&player[i].coords,&pathpoint[j]);
+ if(closest==-1||(distsq(&player[i].coords,&pathpoint[j])<closestdistance)){
+ closestdistance=distsq(&player[i].coords,&pathpoint[j]);
closest=j;
}
}
player[i].lookyaw=player[i].targetyaw;
//reached target point
- if(findDistancefastflat(&player[i].coords,&pathpoint[player[i].targetpathfindpoint])<.6){
+ if(distsqflat(&player[i].coords,&pathpoint[player[i].targetpathfindpoint])<.6){
player[i].lastpathfindpoint4=player[i].lastpathfindpoint3;
player[i].lastpathfindpoint3=player[i].lastpathfindpoint2;
player[i].lastpathfindpoint2=player[i].lastpathfindpoint;
player[i].lastpathfindpoint4=player[i].lastpathfindpoint3;
player[i].targetpathfindpoint=-1;
}
- if( findDistancefastflat(&player[i].coords,&player[i].finalfinaltarget)<
- findDistancefastflat(&player[i].coords,&player[i].finaltarget)||
- findDistancefastflat(&player[i].coords,&player[i].finaltarget)<.6*sq(player[i].scale*5)||
+ if( distsqflat(&player[i].coords,&player[i].finalfinaltarget)<
+ distsqflat(&player[i].coords,&player[i].finaltarget)||
+ distsqflat(&player[i].coords,&player[i].finaltarget)<.6*sq(player[i].scale*5)||
player[i].lastpathfindpoint==player[i].finalpathfindpoint) {
player[i].aitype=passivetype;
}
if(player[i].avoidcollided>.8 && !player[i].jumpkeydown && player[i].collided<.8)
player[i].targetyaw+=90*(player[i].whichdirection*2-1);
- if(player[i].collided<1||player[i].targetanimation!=jumpupanim)
+ if(player[i].collided<1||player[i].animTarget!=jumpupanim)
player[i].jumpkeydown=0;
if((player[i].collided>.8&&player[i].jumppower>=5))
player[i].jumpkeydown=1;
if((tutoriallevel!=1||cananger)&&
hostile&&
!player[0].dead&&
- findDistancefast(&player[i].coords,&player[0].coords)<400&&
+ distsq(&player[i].coords,&player[0].coords)<400&&
player[i].occluded<25){
- if(findDistancefast(&player[i].coords,&player[0].coords)<12&&
- animation[player[0].targetanimation].height!=lowheight&&
+ if(distsq(&player[i].coords,&player[0].coords)<12&&
+ animation[player[0].animTarget].height!=lowheight&&
!editorenabled&&
(player[0].coords.y<player[i].coords.y+5||player[0].onterrain))
player[i].aitype=attacktypecutoff;
- if(findDistancefast(&player[i].coords,&player[0].coords)<30&&
- animation[player[0].targetanimation].height==highheight&&
+ if(distsq(&player[i].coords,&player[0].coords)<30&&
+ animation[player[0].animTarget].height==highheight&&
!editorenabled)
player[i].aitype=attacktypecutoff;
player[i].losupdatedelay=.2;
for(int j=0;j<numplayers;j++)
if(j==0||player[j].skeleton.free||player[j].aitype!=passivetype)
- if(abs(Random()%2)||animation[player[j].targetanimation].height!=lowheight||j!=0)
- if(findDistancefast(&player[i].coords,&player[j].coords)<400)
+ if(abs(Random()%2)||animation[player[j].animTarget].height!=lowheight||j!=0)
+ if(distsq(&player[i].coords,&player[j].coords)<400)
if(normaldotproduct(player[i].facing,player[j].coords-player[i].coords)>0)
if(player[j].coords.y<player[i].coords.y+5||player[j].onterrain)
if(!player[j].isWallJump()&&-1==checkcollide(
*player[i].scale+player[i].coords,
DoRotation(player[j].getJointFor(head).position,0,player[j].yaw,0)
*player[j].scale+player[j].coords)||
- (player[j].targetanimation==hanganim&&
+ (player[j].animTarget==hanganim&&
normaldotproduct(player[j].facing,player[i].coords-player[j].coords)<0)){
player[i].aitype=searchtype;
player[i].lastchecktime=12;
player[i].lookyaw=player[i].targetyaw;
player[i].aiupdatedelay=.05;
- if(findDistancefastflat(&player[i].coords,&player[i].waypoints[player[i].waypoint])<1){
+ if(distsqflat(&player[i].coords,&player[i].waypoints[player[i].waypoint])<1){
if(player[i].waypointtype[player[i].waypoint]==wppause)
player[i].pausetime=4;
player[i].waypoint++;
float leftdist,rightdist;
leftpos = player[i].coords+DoRotation(player[i].facing,0,90,0);
rightpos = player[i].coords-DoRotation(player[i].facing,0,90,0);
- leftdist = findDistancefast(&leftpos, &player[i].avoidwhere);
- rightdist = findDistancefast(&rightpos, &player[i].avoidwhere);
+ leftdist = distsq(&leftpos, &player[i].avoidwhere);
+ rightdist = distsq(&rightpos, &player[i].avoidwhere);
if(leftdist<rightdist)
player[i].targetyaw+=90;
else
}
}
}
- if(player[i].collided<1||player[i].targetanimation!=jumpupanim)
+ if(player[i].collided<1||player[i].animTarget!=jumpupanim)
player[i].jumpkeydown=0;
if((player[i].collided>.8&&player[i].jumppower>=5))
player[i].jumpkeydown=1;
if(numenvsounds>0&&(tutoriallevel!=1||cananger)&&hostile)
for(int j=0;j<numenvsounds;j++){
float vol=player[i].howactive==typesleeping?envsoundvol[j]-14:envsoundvol[j];
- if(vol>0&&findDistancefast(&player[i].coords,&envsound[j])<
+ if(vol>0&&distsq(&player[i].coords,&envsound[j])<
2*(vol+vol*(player[i].creature==rabbittype)*3))
player[i].aitype=attacktypecutoff;
}
if(player[i].howactive<typesleeping&&
((tutoriallevel!=1||cananger)&&hostile)&&
!player[0].dead&&
- findDistancefast(&player[i].coords,&player[0].coords)<400&&
+ distsq(&player[i].coords,&player[0].coords)<400&&
player[i].occluded<25){
- if(findDistancefast(&player[i].coords,&player[0].coords)<12&&
- animation[player[0].targetanimation].height!=lowheight&&!editorenabled)
+ if(distsq(&player[i].coords,&player[0].coords)<12&&
+ animation[player[0].animTarget].height!=lowheight&&!editorenabled)
player[i].aitype=attacktypecutoff;
- if(findDistancefast(&player[i].coords,&player[0].coords)<30&&
- animation[player[0].targetanimation].height==highheight&&!editorenabled)
+ if(distsq(&player[i].coords,&player[0].coords)<30&&
+ animation[player[0].animTarget].height==highheight&&!editorenabled)
player[i].aitype=attacktypecutoff;
//wolf smell
windsmell=windvector;
Normalise(&windsmell);
windsmell=windsmell*2+player[j].coords;
- if(findDistancefast(&player[i].coords,&windsmell)<smelldistance&&!editorenabled)
+ if(distsq(&player[i].coords,&windsmell)<smelldistance&&!editorenabled)
player[i].aitype=attacktypecutoff;
}
}
player[i].losupdatedelay=.2;
for(int j=0;j<numplayers;j++){
if(j==0||player[j].skeleton.free||player[j].aitype!=passivetype){
- if(abs(Random()%2)||animation[player[j].targetanimation].height!=lowheight||j!=0)
- if(findDistancefast(&player[i].coords,&player[j].coords)<400)
+ if(abs(Random()%2)||animation[player[j].animTarget].height!=lowheight||j!=0)
+ if(distsq(&player[i].coords,&player[j].coords)<400)
if(normaldotproduct(player[i].facing,player[j].coords-player[i].coords)>0)
if((-1==checkcollide(
DoRotation(player[i].getJointFor(head).position,0,player[i].yaw,0)*
DoRotation(player[j].getJointFor(head).position,0,player[j].yaw,0)*
player[j].scale+player[j].coords)&&
!player[j].isWallJump())||
- (player[j].targetanimation==hanganim&&
+ (player[j].animTarget==hanganim&&
normaldotproduct(player[j].facing,player[i].coords-player[j].coords)<0)){
player[i].lastseentime-=.2;
- if(j==0&&animation[player[j].targetanimation].height==lowheight)
+ if(j==0&&animation[player[j].animTarget].height==lowheight)
player[i].lastseentime-=.4;
else
player[i].lastseentime-=.6;
player[i].aiupdatedelay=.05;
player[i].forwardkeydown=1;
- if(findDistancefastflat(&player[i].coords,&player[i].lastseen)<1*sq(player[i].scale*5)||player[i].lastchecktime<0){
+ if(distsqflat(&player[i].coords,&player[i].lastseen)<1*sq(player[i].scale*5)||player[i].lastchecktime<0){
player[i].forwardkeydown=0;
player[i].aiupdatedelay=1;
player[i].lastseen.x+=(float(Random()%100)-50)/25;
float leftdist,rightdist;
leftpos = player[i].coords+DoRotation(player[i].facing,0,90,0);
rightpos = player[i].coords-DoRotation(player[i].facing,0,90,0);
- leftdist = findDistancefast(&leftpos, &player[i].avoidwhere);
- rightdist = findDistancefast(&rightpos, &player[i].avoidwhere);
+ leftdist = distsq(&leftpos, &player[i].avoidwhere);
+ rightdist = distsq(&rightpos, &player[i].avoidwhere);
if(leftdist<rightdist)player[i].targetyaw+=90;
else player[i].targetyaw-=90;
}
}
}
- if(player[i].collided<1||player[i].targetanimation!=jumpupanim)
+ if(player[i].collided<1||player[i].animTarget!=jumpupanim)
player[i].jumpkeydown=0;
if((player[i].collided>.8&&player[i].jumppower>=5))
player[i].jumpkeydown=1;
if(numenvsounds>0&&((tutoriallevel!=1||cananger)&&hostile))
for(int k=0;k<numenvsounds;k++){
- if(findDistancefast(&player[i].coords,&envsound[k])<2*(envsoundvol[k]+envsoundvol[k]*(player[i].creature==rabbittype)*3)){
+ if(distsq(&player[i].coords,&envsound[k])<2*(envsoundvol[k]+envsoundvol[k]*(player[i].creature==rabbittype)*3)){
player[i].aitype=attacktypecutoff;
}
}
player[i].occluded<2&&
((tutoriallevel!=1||cananger)&&hostile)){
player[i].losupdatedelay=.2;
- if(findDistancefast(&player[i].coords,&player[0].coords)<4&&animation[player[i].targetanimation].height!=lowheight){
+ if(distsq(&player[i].coords,&player[0].coords)<4&&animation[player[i].animTarget].height!=lowheight){
player[i].aitype=attacktypecutoff;
player[i].lastseentime=1;
}
- if(abs(Random()%2)||animation[player[i].targetanimation].height!=lowheight)
+ if(abs(Random()%2)||animation[player[i].animTarget].height!=lowheight)
//TODO: factor out canSeePlayer()
- if(findDistancefast(&player[i].coords,&player[0].coords)<400)
+ if(distsq(&player[i].coords,&player[0].coords)<400)
if(normaldotproduct(player[i].facing,player[0].coords-player[i].coords)>0)
if((checkcollide(
DoRotation(player[i].getJointFor(head).position,0,player[i].yaw,0)*
player[i].scale+player[i].coords,
DoRotation(player[0].getJointFor(head).position,0,player[0].yaw,0)*
player[0].scale+player[0].coords)==-1)||
- (player[0].targetanimation==hanganim&&normaldotproduct(
+ (player[0].animTarget==hanganim&&normaldotproduct(
player[0].facing,player[i].coords-player[0].coords)<0)){
/* //TODO: changed j to 0 on a whim, make sure this is correct
- (player[j].targetanimation==hanganim&&normaldotproduct(
+ (player[j].animTarget==hanganim&&normaldotproduct(
player[j].facing,player[i].coords-player[j].coords)<0)
*/
player[i].aitype=attacktypecutoff;
player[k].howactive<typedead1&&
!player[k].skeleton.free&&
player[k].aitype==passivetype) {
- float distance=findDistancefast(&player[i].coords,&player[k].coords);
+ float distance=distsq(&player[i].coords,&player[k].coords);
if(closestdist==-1||distance<closestdist) {
closestdist=distance;
closest=k;
player[i].aiupdatedelay=.05;
player[i].forwardkeydown=1;
- if(findDistancefastflat(&player[i].coords,&player[player[i].ally].coords)<3){
+ if(distsqflat(&player[i].coords,&player[player[i].ally].coords)<3){
player[i].aitype=searchtype;
player[i].lastseentime=12;
player[player[i].ally].aitype=searchtype;
float leftdist,rightdist;
leftpos = player[i].coords+DoRotation(player[i].facing,0,90,0);
rightpos = player[i].coords-DoRotation(player[i].facing,0,90,0);
- leftdist = findDistancefast(&leftpos, &player[i].avoidwhere);
- rightdist = findDistancefast(&rightpos, &player[i].avoidwhere);
+ leftdist = distsq(&leftpos, &player[i].avoidwhere);
+ rightdist = distsq(&rightpos, &player[i].avoidwhere);
if(leftdist<rightdist)
player[i].targetyaw+=90;
else
player[i].crouchkeydown=0;
player[i].attackkeydown=0;
}
- if(player[i].collided<1||player[i].targetanimation!=jumpupanim)
+ if(player[i].collided<1||player[i].animTarget!=jumpupanim)
player[i].jumpkeydown=0;
if(player[i].collided>.8&&player[i].jumppower>=5)
player[i].jumpkeydown=1;
float closestdist=-1;
for(int k=0;k<weapons.size();k++)
if(weapons[k].owner==-1){
- float distance=findDistancefast(&player[i].coords,&weapons[k].position);
+ float distance=distsq(&player[i].coords,&weapons[k].position);
if(closestdist==-1||distance<closestdist){
closestdist=distance;
closest=k;
if(!player[0].dead)
if(player[i].ally>=0){
if(weapons[player[i].ally].owner!=-1||
- findDistancefast(&player[i].coords,&weapons[player[i].ally].position)>16){
+ distsq(&player[i].coords,&weapons[player[i].ally].position)>16){
player[i].aitype=attacktypecutoff;
player[i].lastseentime=1;
}
float leftdist,rightdist;
leftpos = player[i].coords+DoRotation(player[i].facing,0,90,0);
rightpos = player[i].coords-DoRotation(player[i].facing,0,90,0);
- leftdist = findDistancefast(&leftpos, &player[i].avoidwhere);
- rightdist = findDistancefast(&rightpos, &player[i].avoidwhere);
+ leftdist = distsq(&leftpos, &player[i].avoidwhere);
+ rightdist = distsq(&rightpos, &player[i].avoidwhere);
if(leftdist<rightdist)
player[i].targetyaw+=90;
else
player[i].attackkeydown=0;
player[i].throwkeydown=1;
player[i].crouchkeydown=0;
- if(player[i].targetanimation!=crouchremoveknifeanim&&
- player[i].targetanimation!=removeknifeanim)
+ if(player[i].animTarget!=crouchremoveknifeanim&&
+ player[i].animTarget!=removeknifeanim)
player[i].throwtogglekeydown=0;
player[i].drawkeydown=0;
}
- if(player[i].collided<1||player[i].targetanimation!=jumpupanim)
+ if(player[i].collided<1||player[i].animTarget!=jumpupanim)
player[i].jumpkeydown=0;
if((player[i].collided>.8&&player[i].jumppower>=5))
player[i].jumpkeydown=1;
player[i].aiupdatedelay-=multiplier;
//dodge or reverse rabbit kicks, knife throws, flips
if(player[i].damage<player[i].damagetolerance*2/3)
- if((player[0].targetanimation==rabbitkickanim||
- player[0].targetanimation==knifethrowanim||
+ if((player[0].animTarget==rabbitkickanim||
+ player[0].animTarget==knifethrowanim||
(player[0].isFlip()&&
normaldotproduct(player[0].facing,player[0].coords-player[i].coords)<0))&&
!player[0].skeleton.free&&
player[i].attackkeydown=0;
if(player[i].isIdle())
player[i].crouchkeydown=1;
- if(player[0].targetanimation!=rabbitkickanim&&player[0].weaponactive!=-1){
+ if(player[0].animTarget!=rabbitkickanim&&player[0].weaponactive!=-1){
if(weapons[player[0].weaponids[0]].getType()==knife){
if(player[i].isIdle()||player[i].isCrouch()||player[i].isRun()||player[i].isFlip()){
if(abs(Random()%2==0))
player[i].targetyaw+=90*(abs(Random()%2)*2-1);
player[i].wentforweapon=0;
}
- if(player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim)
+ if(player[i].animTarget==jumpupanim||player[i].animTarget==jumpdownanim)
player[i].setAnimation(flipanim);
}
}
//get confused by flips
if(player[0].isFlip()&&
!player[0].skeleton.free&&
- player[0].targetanimation!=walljumprightkickanim&&
- player[0].targetanimation!=walljumpleftkickanim){
- if(findDistancefast(&player[0].coords,&player[i].coords)<25)
+ player[0].animTarget!=walljumprightkickanim&&
+ player[0].animTarget!=walljumpleftkickanim){
+ if(distsq(&player[0].coords,&player[i].coords)<25)
if((1-player[i].damage/player[i].damagetolerance)>.5)
player[i].stunned=1;
}
weapons[i].velocity.x==0&&
weapons[i].velocity.z==0&&
weapons[i].velocity.y==0){
- if(findDistancefast(&player[i].coords,&weapons[k].position)<16) {
+ if(distsq(&player[i].coords,&weapons[k].position)<16) {
player[i].wentforweapon++;
player[i].lastchecktime=6;
player[i].aitype=getweapontype;
}
//dodge/reverse walljump kicks
if(player[i].damage<player[i].damagetolerance/2)
- if(animation[player[i].targetanimation].height!=highheight)
+ if(animation[player[i].animTarget].height!=highheight)
if(player[i].damage<player[i].damagetolerance*.5&&
- ((player[0].targetanimation==walljumprightkickanim||
- player[0].targetanimation==walljumpleftkickanim)&&
+ ((player[0].animTarget==walljumprightkickanim||
+ player[0].animTarget==walljumpleftkickanim)&&
((player[i].aiupdatedelay<.15&&
difficulty==2)||
(player[i].aiupdatedelay<.08&&
}
//lose sight of player in the air (?)
if(player[0].coords.y>player[i].coords.y+5&&
- animation[player[0].targetanimation].height!=highheight&&
+ animation[player[0].animTarget].height!=highheight&&
!player[0].onterrain){
player[i].aitype=pathfindtype;
player[i].finalfinaltarget=player[i].waypoints[player[i].waypoint];
}
//it's time to think (?)
if(player[i].aiupdatedelay<0&&
- !animation[player[i].targetanimation].attack&&
- player[i].targetanimation!=staggerbackhighanim&&
- player[i].targetanimation!=staggerbackhardanim&&
- player[i].targetanimation!=backhandspringanim&&
- player[i].targetanimation!=dodgebackanim){
+ !animation[player[i].animTarget].attack&&
+ player[i].animTarget!=staggerbackhighanim&&
+ player[i].animTarget!=staggerbackhardanim&&
+ player[i].animTarget!=backhandspringanim&&
+ player[i].animTarget!=dodgebackanim){
//draw weapon
if(player[i].weaponactive==-1&&player[i].num_weapons>0)
player[i].drawkeydown=Random()%2;
//chase player
XYZ rotatetarget=player[0].coords+player[0].velocity;
XYZ targetpoint=player[0].coords;
- if(findDistancefast(&player[0].coords,&player[i].coords)<
- findDistancefast(&rotatetarget,&player[i].coords))
+ if(distsq(&player[0].coords,&player[i].coords)<
+ distsq(&rotatetarget,&player[i].coords))
targetpoint+=player[0].velocity*
findDistance(&player[0].coords,&player[i].coords)/findLength(&player[i].velocity);
player[i].targetyaw=roughDirectionTo(player[i].coords,targetpoint);
player[i].lookyaw=player[i].targetyaw;
player[i].aiupdatedelay=.2+fabs((float)(Random()%100)/1000);
- if(findDistancefast(&player[i].coords,&player[0].coords)>5&&(player[0].weaponactive==-1||player[i].weaponactive!=-1))
+ if(distsq(&player[i].coords,&player[0].coords)>5&&(player[0].weaponactive==-1||player[i].weaponactive!=-1))
player[i].forwardkeydown=1;
- else if((findDistancefast(&player[i].coords,&player[0].coords)>16||
- findDistancefast(&player[i].coords,&player[0].coords)<9)&&
+ else if((distsq(&player[i].coords,&player[0].coords)>16||
+ distsq(&player[i].coords,&player[0].coords)<9)&&
player[0].weaponactive!=-1)
player[i].forwardkeydown=1;
else if(Random()%6==0||(player[i].creature==wolftype&&Random()%3==0))
player[i].attackkeydown=1;
else
player[i].attackkeydown=0;
- if(player[i].isRun()&&Random()%6&&findDistancefast(&player[i].coords,&player[0].coords)>7)
+ if(player[i].isRun()&&Random()%6&&distsq(&player[i].coords,&player[0].coords)>7)
player[i].attackkeydown=0;
//TODO: wat
Random()%2==0&&difficulty==2||
Random()%4==0&&difficulty==1||
Random()%8==0&&difficulty==0||
- player[j].lastattack2==player[j].targetanimation&&
- player[j].lastattack3==player[j].targetanimation&&
+ player[j].lastattack2==player[j].animTarget&&
+ player[j].lastattack3==player[j].animTarget&&
(Random()%2==0||difficulty==2)||
(player[i].isIdle()||player[i].isRun())&&
player[j].weaponactive!=-1||
- player[j].targetanimation==swordslashanim&&
+ player[j].animTarget==swordslashanim&&
player[i].weaponactive!=-1||
- player[j].targetanimation==staffhitanim||
- player[j].targetanimation==staffspinhitanim))
- if(findDistancefast(&player[j].coords,&player[j].victim->coords)<4&&
+ player[j].animTarget==staffhitanim||
+ player[j].animTarget==staffspinhitanim))
+ if(distsq(&player[j].coords,&player[j].victim->coords)<4&&
player[j].victim==&player[i]&&
- (player[j].targetanimation==sweepanim||
- player[j].targetanimation==spinkickanim||
- player[j].targetanimation==staffhitanim||
- player[j].targetanimation==staffspinhitanim||
- player[j].targetanimation==winduppunchanim||
- player[j].targetanimation==upunchanim||
- player[j].targetanimation==wolfslapanim||
- player[j].targetanimation==knifeslashstartanim||
- player[j].targetanimation==swordslashanim&&
- (findDistancefast(&player[j].coords,&player[i].coords)<2||
+ (player[j].animTarget==sweepanim||
+ player[j].animTarget==spinkickanim||
+ player[j].animTarget==staffhitanim||
+ player[j].animTarget==staffspinhitanim||
+ player[j].animTarget==winduppunchanim||
+ player[j].animTarget==upunchanim||
+ player[j].animTarget==wolfslapanim||
+ player[j].animTarget==knifeslashstartanim||
+ player[j].animTarget==swordslashanim&&
+ (distsq(&player[j].coords,&player[i].coords)<2||
player[i].weaponactive!=-1))){
if(target>=0)
target=-1;
if(player[i].collided<1)
player[i].jumpkeydown=0;
if(player[i].collided>.8&&player[i].jumppower>=5||
- findDistancefast(&player[i].coords,&player[0].coords)>400&&
+ distsq(&player[i].coords,&player[0].coords)>400&&
player[i].onterrain&&
player[i].creature==rabbittype)
player[i].jumpkeydown=1;
//TODO: why are we controlling the human?
if(normaldotproduct(player[i].facing,player[0].coords-player[i].coords)>0)
player[0].jumpkeydown=0;
- if(player[0].targetanimation==jumpdownanim&&
- findDistancefast(&player[0].coords,&player[i].coords)<40)
+ if(player[0].animTarget==jumpdownanim&&
+ distsq(&player[0].coords,&player[i].coords)<40)
player[i].crouchkeydown=1;
if(player[i].jumpkeydown)
player[i].attackkeydown=0;
player[i].lastseentime=1;
}
}
- if(animation[player[0].targetanimation].height==highheight&&
+ if(animation[player[0].animTarget].height==highheight&&
(player[i].aitype==attacktypecutoff||
player[i].aitype==searchtype))
if(player[0].coords.y>terrain.getHeight(player[0].coords.x,player[0].coords.z)+10){
}
}
+extern SDL_Rect **resolutions;
+
void MenuTick(){
//menu buttons
selected=Menu::getSelected(mousecoordh*640/screenwidth,480-mousecoordv*480/screenheight);
bool isCustomResolution,found;
switch(selected){
case 0:
- extern SDL_Rect **resolutions;
isCustomResolution = true;
found = false;
for(int i = 0; (!found) && (resolutions[i]); i++) {
talkdelay=1;
talkdelay-=multiplier;
- if(talkdelay<=0&&indialogue==-1&&animation[player[0].targetanimation].height!=highheight)
+ if(talkdelay<=0&&indialogue==-1&&animation[player[0].animTarget].height!=highheight)
for(int i=0;i<numdialogues;i++){
int realdialoguetype;
bool special;
realdialoguetype>0&&
(dialoguegonethrough[i]==0||!special)&&
(special||Input::isKeyPressed(attackkey))){
- if(findDistancefast(&player[0].coords,&player[realdialoguetype].coords)<6||
+ if(distsq(&player[0].coords,&player[realdialoguetype].coords)<6||
player[realdialoguetype].howactive>=typedead1||
dialoguetype[i]>40&&dialoguetype[i]<50){
whichdialogue=i;
player[participantfocus[whichdialogue][j]].yaw=participantyaw[whichdialogue][participantfocus[whichdialogue][j]];
player[participantfocus[whichdialogue][j]].targetyaw=participantyaw[whichdialogue][participantfocus[whichdialogue][j]];
player[participantfocus[whichdialogue][j]].velocity=0;
- player[participantfocus[whichdialogue][j]].targetanimation=player[participantfocus[whichdialogue][j]].getIdle();
- player[participantfocus[whichdialogue][j]].targetframe=0;
+ player[participantfocus[whichdialogue][j]].animTarget=player[participantfocus[whichdialogue][j]].getIdle();
+ player[participantfocus[whichdialogue][j]].frameTarget=0;
}
directing=0;
indialogue=0;
player[0].jumptogglekeydown=0;
}
if(player[0].jumpkeydown&&
- player[0].targetanimation!=jumpupanim&&
- player[0].targetanimation!=jumpdownanim&&
+ player[0].animTarget!=jumpupanim&&
+ player[0].animTarget!=jumpdownanim&&
!player[0].isFlip())
player[0].jumptogglekeydown=1;
oldtargetyaw=player[i].targetyaw;
if(i==0&&indialogue==-1){
//TODO: refactor repetitive code
- if(!animation[player[0].targetanimation].attack&&
- player[0].targetanimation!=staggerbackhighanim&&
- player[0].targetanimation!=staggerbackhardanim&&
- player[0].targetanimation!=crouchremoveknifeanim&&
- player[0].targetanimation!=removeknifeanim&&
- player[0].targetanimation!=backhandspringanim&&
- player[0].targetanimation!=dodgebackanim&&
- player[0].targetanimation!=walljumprightkickanim&&
- player[0].targetanimation!=walljumpleftkickanim){
+ if(!animation[player[0].animTarget].attack&&
+ player[0].animTarget!=staggerbackhighanim&&
+ player[0].animTarget!=staggerbackhardanim&&
+ player[0].animTarget!=crouchremoveknifeanim&&
+ player[0].animTarget!=removeknifeanim&&
+ player[0].animTarget!=backhandspringanim&&
+ player[0].animTarget!=dodgebackanim&&
+ player[0].animTarget!=walljumprightkickanim&&
+ player[0].animTarget!=walljumpleftkickanim){
if(cameramode)
player[0].targetyaw=0;
else
player[i].targetheadpitch=pitch;
}
if(i!=0&&player[i].aitype==playercontrolled&&indialogue==-1){
- if(!animation[player[i].targetanimation].attack&&
- player[i].targetanimation!=staggerbackhighanim&&
- player[i].targetanimation!=staggerbackhardanim&&
- player[i].targetanimation!=crouchremoveknifeanim&&
- player[i].targetanimation!=removeknifeanim&&
- player[i].targetanimation!=backhandspringanim&&
- player[i].targetanimation!=dodgebackanim&&
- player[i].targetanimation!=walljumprightkickanim&&
- player[i].targetanimation!=walljumpleftkickanim){
+ if(!animation[player[i].animTarget].attack&&
+ player[i].animTarget!=staggerbackhighanim&&
+ player[i].animTarget!=staggerbackhardanim&&
+ player[i].animTarget!=crouchremoveknifeanim&&
+ player[i].animTarget!=removeknifeanim&&
+ player[i].animTarget!=backhandspringanim&&
+ player[i].animTarget!=dodgebackanim&&
+ player[i].animTarget!=walljumprightkickanim&&
+ player[i].animTarget!=walljumpleftkickanim){
player[i].targetyaw=-player[i].lookyaw+180;
}
//avoid flaming things
for(int j=0;j<objects.numobjects;j++)
if(objects.onfire[j])
- if(findDistancefast(&player[i].coords,&objects.position[j])<sq(objects.scale[j])*200)
- if( findDistancefast(&player[i].coords,&objects.position[j])<
- findDistancefast(&player[i].coords,&player[0].coords)){
+ if(distsq(&player[i].coords,&objects.position[j])<sq(objects.scale[j])*200)
+ if( distsq(&player[i].coords,&objects.position[j])<
+ distsq(&player[i].coords,&player[0].coords)){
player[i].collided=0;
player[i].avoidcollided=1;
if(player[i].avoidsomething==0||
- findDistancefast(&player[i].coords,&objects.position[j])<
- findDistancefast(&player[i].coords,&player[i].avoidwhere)){
+ distsq(&player[i].coords,&objects.position[j])<
+ distsq(&player[i].coords,&player[i].avoidwhere)){
player[i].avoidwhere=objects.position[j];
player[i].avoidsomething=1;
}
//avoid flaming players
for(int j=0;j<numplayers;j++)
if(player[j].onfire)
- if(findDistancefast(&player[j].coords,&player[i].coords)<sq(0.3)*200)
- if( findDistancefast(&player[i].coords,&player[j].coords)<
- findDistancefast(&player[i].coords,&player[0].coords)){
+ if(distsq(&player[j].coords,&player[i].coords)<sq(0.3)*200)
+ if( distsq(&player[i].coords,&player[j].coords)<
+ distsq(&player[i].coords,&player[0].coords)){
player[i].collided=0;
player[i].avoidcollided=1;
if(player[i].avoidsomething==0||
- findDistancefast(&player[i].coords,&player[j].coords)<
- findDistancefast(&player[i].coords,&player[i].avoidwhere)){
+ distsq(&player[i].coords,&player[j].coords)<
+ distsq(&player[i].coords,&player[i].avoidwhere)){
player[i].avoidwhere=player[j].coords;
player[i].avoidsomething=1;
}
doAI(i);
- if(animation[player[i].targetanimation].attack==reversed){
+ if(animation[player[i].animTarget].attack==reversed){
//player[i].targetyaw=player[i].yaw;
player[i].forwardkeydown=0;
player[i].leftkeydown=0;
player[i].aitype==attacktypecutoff&&
!player[i].dead&&
!player[i].skeleton.free&&
- animation[player[i].targetanimation].attack==neutral)
+ animation[player[i].animTarget].attack==neutral)
numresponded=1;
if(!player[i].throwkeydown)
player[i].num_weapons<2&&
(player[i].isIdle()||
player[i].isCrouch()||
- player[i].targetanimation==sneakanim||
- player[i].targetanimation==rollanim||
- player[i].targetanimation==backhandspringanim||
+ player[i].animTarget==sneakanim||
+ player[i].animTarget==rollanim||
+ player[i].animTarget==backhandspringanim||
player[i].isFlip()||
player[i].isFlip()||
player[i].aitype!=playercontrolled)){
player[i].aitype==playercontrolled)&&
weapons[j].owner==-1&&
player[i].weaponactive==-1)
- if(findDistancefastflat(&player[i].coords,&weapons[j].position)<2){
- if(findDistancefast(&player[i].coords,&weapons[j].position)<2){
+ if(distsqflat(&player[i].coords,&weapons[j].position)<2){
+ if(distsq(&player[i].coords,&weapons[j].position)<2){
if(player[i].isCrouch()||
- player[i].targetanimation==sneakanim||
+ player[i].animTarget==sneakanim||
player[i].isRun()||
player[i].isIdle()||
player[i].aitype!=playercontrolled){
player[i].targetyaw=roughDirectionTo(player[i].coords,weapons[j].position);
player[i].hasvictim=0;
}
- if(player[i].targetanimation==rollanim||player[i].targetanimation==backhandspringanim){
+ if(player[i].animTarget==rollanim||player[i].animTarget==backhandspringanim){
player[i].throwtogglekeydown=1;
player[i].hasvictim=0;
weapons[j].owner==-1||
player[i].victim&&
weapons[j].owner==player[i].victim->id)
- if(findDistancefastflat(&player[i].coords,&weapons[j].position)<2&&player[i].weaponactive==-1)
- if(findDistancefast(&player[i].coords,&weapons[j].position)<1||player[i].victim){
+ if(distsqflat(&player[i].coords,&weapons[j].position)<2&&player[i].weaponactive==-1)
+ if(distsq(&player[i].coords,&weapons[j].position)<1||player[i].victim){
if(weapons[j].getType()!=staff)
emit_sound_at(knifedrawsound, player[i].coords, 128.);
}else if((player[i].isIdle()||
player[i].isFlip()||
player[i].aitype!=playercontrolled)&&
- findDistancefast(&player[i].coords,&weapons[j].position)<5&&
+ distsq(&player[i].coords,&weapons[j].position)<5&&
player[i].coords.y<weapons[j].position.y){
if(!player[i].isFlip()){
player[i].throwtogglekeydown=1;
weapons[k].owner==-1||
player[i].victim&&
weapons[k].owner==player[i].victim->id)
- if(findDistancefastflat(&player[i].coords,&weapons[k].position)<3&&
+ if(distsqflat(&player[i].coords,&weapons[k].position)<3&&
player[i].weaponactive==-1){
if(weapons[k].getType()!=staff)
emit_sound_at(knifedrawsound, player[i].coords, 128.);
}
}
if(player[i].isCrouch()||
- player[i].targetanimation==sneakanim||
+ player[i].animTarget==sneakanim||
player[i].isRun()||
- player[i].isIdle()||player[i].targetanimation==rollanim||
- player[i].targetanimation==backhandspringanim){
+ player[i].isIdle()||player[i].animTarget==rollanim||
+ player[i].animTarget==backhandspringanim){
if(numplayers>1)
for(int j=0;j<numplayers;j++){
if(player[i].weaponactive==-1)
if(j!=i)
if(player[j].num_weapons&&
player[j].skeleton.free&&
- findDistancefast(&player[i].coords,&player[j].coords)<2/*&&player[j].dead*/&&
+ distsq(&player[i].coords,&player[j].coords)<2/*&&player[j].dead*/&&
(((player[j].skeleton.forward.y<0&&
player[j].weaponstuckwhere==0)||
(player[j].skeleton.forward.y>0&&
player[j].weaponstuckwhere==1))||
player[j].weaponstuck==-1||
player[j].num_weapons>1)){
- if(player[i].targetanimation!=rollanim&&player[i].targetanimation!=backhandspringanim){
+ if(player[i].animTarget!=rollanim&&player[i].animTarget!=backhandspringanim){
player[i].throwtogglekeydown=1;
player[i].victim=&player[j];
player[i].hasvictim=1;
player[i].setAnimation(crouchremoveknifeanim);
player[i].targetyaw=roughDirectionTo(player[i].coords,player[j].coords);
}
- if(player[i].targetanimation==rollanim||player[i].targetanimation==backhandspringanim){
+ if(player[i].animTarget==rollanim||player[i].animTarget==backhandspringanim){
player[i].throwtogglekeydown=1;
player[i].victim=&player[j];
player[i].hasvictim=1;
if(player[i].isIdle()||
player[i].isRun()||
player[i].isCrouch()||
- player[i].targetanimation==sneakanim||
+ player[i].animTarget==sneakanim||
player[i].isFlip())
if(numplayers>1)
for(int j=0;j<numplayers;j++){
if(tutoriallevel!=1||tutorialstage==49)
if(hostile)
if(normaldotproduct(player[i].facing,player[i].coords-player[j].coords)<0&&
- findDistancefast(&player[i].coords,&player[j].coords)<100&&
- findDistancefast(&player[i].coords,&player[j].coords)>1.5&&
+ distsq(&player[i].coords,&player[j].coords)<100&&
+ distsq(&player[i].coords,&player[j].coords)>1.5&&
!player[j].skeleton.free&&
-1==checkcollide(DoRotation(player[j].getJointFor(head).position,0,player[j].yaw,0)*player[j].scale+player[j].coords,DoRotation(player[i].getJointFor(head).position,0,player[i].yaw,0)*player[i].scale+player[i].coords)){
if(!player[i].isFlip()){
}
}
if(player[i].weaponactive!=-1&&player[i].aitype==playercontrolled){
- if(player[i].isCrouch()||player[i].targetanimation==sneakanim){
+ if(player[i].isCrouch()||player[i].animTarget==sneakanim){
player[i].throwtogglekeydown=1;
weapons[player[i].weaponids[0]].owner=-1;
weapons[player[i].weaponids[0]].velocity=player[i].velocity*.2;
}
movekey=0;
//Do controls
- if(!animation[player[i].targetanimation].attack&&
- player[i].targetanimation!=staggerbackhighanim&&
- player[i].targetanimation!=staggerbackhardanim&&
- player[i].targetanimation!=backhandspringanim&&
- player[i].targetanimation!=dodgebackanim){
+ if(!animation[player[i].animTarget].attack&&
+ player[i].animTarget!=staggerbackhighanim&&
+ player[i].animTarget!=staggerbackhardanim&&
+ player[i].animTarget!=backhandspringanim&&
+ player[i].animTarget!=dodgebackanim){
if(!player[i].forwardkeydown)
player[i].forwardstogglekeydown=0;
if(player[i].crouchkeydown){
if(numplayers>1)
for(int j=0;j<numplayers;j++)
if(j!=i&&!player[j].skeleton.free&&player[j].aitype==passivetype)
- if(findDistancefast(&player[j].coords,&player[i].coords)<16)
+ if(distsq(&player[j].coords,&player[i].coords)<16)
player[i].superruntoggle=0;
}
if(numplayers>1)
for(int j=0;j<numplayers;j++){
if(j!=i&&!player[j].skeleton.free&&player[j].victim&&player[i].lowreversaldelay<=0){
- if(findDistancefast(&player[j].coords,&player[j].victim->coords)<3&&
+ if(distsq(&player[j].coords,&player[j].victim->coords)<3&&
player[j].victim==&player[i]&&
- (player[j].targetanimation==sweepanim||
- player[j].targetanimation==upunchanim||
- player[j].targetanimation==wolfslapanim||
- ((player[j].targetanimation==swordslashanim||
- player[j].targetanimation==knifeslashstartanim||
- player[j].targetanimation==staffhitanim||
- player[j].targetanimation==staffspinhitanim)&&
- findDistancefast(&player[j].coords,&player[i].coords)<2))){
+ (player[j].animTarget==sweepanim||
+ player[j].animTarget==upunchanim||
+ player[j].animTarget==wolfslapanim||
+ ((player[j].animTarget==swordslashanim||
+ player[j].animTarget==knifeslashstartanim||
+ player[j].animTarget==staffhitanim||
+ player[j].animTarget==staffspinhitanim)&&
+ distsq(&player[j].coords,&player[i].coords)<2))){
if(target>=0)
target=-1;
else
}
if(!player[i].crouchkeydown){
//Uncrouch
- if(!player[i].isRun()&&player[i].targetanimation!=sneakanim&&i==0)player[i].superruntoggle=0;
+ if(!player[i].isRun()&&player[i].animTarget!=sneakanim&&i==0)player[i].superruntoggle=0;
target=-2;
if(player[i].isCrouch()){
if(numplayers>1)
!player[j].skeleton.free&&
player[j].victim&&
player[i].highreversaldelay<=0){
- if(findDistancefast(&player[j].coords,&player[j].victim->coords)<3&&
+ if(distsq(&player[j].coords,&player[j].victim->coords)<3&&
player[j].victim==&player[i]&&
- (player[j].targetanimation==spinkickanim)&&
+ (player[j].animTarget==spinkickanim)&&
player[i].isCrouch()){
if(target>=0)
target=-1;
if(player[i].isCrouch()){
if(!player[i].wasCrouch()){
- player[i].currentanimation=player[i].getCrouch();
- player[i].currentframe=0;
+ player[i].animCurrent=player[i].getCrouch();
+ player[i].frameCurrent=0;
}
player[i].setAnimation(player[i].getIdle());
player[i].transspeed=10;
}
}
- if(player[i].targetanimation==sneakanim){
+ if(player[i].animTarget==sneakanim){
player[i].setAnimation(player[i].getIdle());
player[i].transspeed=10;
}
(player[i].isStop()&&
player[i].targetyaw==player[i].yaw)||
(player[i].isLanding()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown)||
(player[i].isLandhard()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown&&
player[i].crouchkeydown)){
if(player[i].aitype==passivetype)
player[i].setAnimation(player[i].getRun());
}
if(player[i].isCrouch()){
- player[i].targetanimation=sneakanim;
+ player[i].animTarget=sneakanim;
if(player[i].wasCrouch())
player[i].target=0;
- player[i].targetframe=0;
+ player[i].frameTarget=0;
}
- if(player[i].targetanimation==hanganim/*&&(!player[i].forwardstogglekeydown||player[i].aitype!=playercontrolled)*/){
+ if(player[i].animTarget==hanganim/*&&(!player[i].forwardstogglekeydown||player[i].aitype!=playercontrolled)*/){
player[i].setAnimation(climbanim);
- player[i].targetframe=1;
+ player[i].frameTarget=1;
player[i].jumpclimb=1;
}
- if(player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip()){
+ if(player[i].animTarget==jumpupanim||player[i].animTarget==jumpdownanim||player[i].isFlip()){
player[i].velocity+=absflatfacing*5*multiplier;
}
player[i].forwardstogglekeydown=1;
(player[i].isStop()&&
player[i].targetyaw==player[i].yaw)||
(player[i].isLanding()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown)||
(player[i].isLandhard()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown&&
player[i].crouchkeydown)){
player[i].setAnimation(player[i].getRun());
}
if(player[i].isCrouch()){
- player[i].targetanimation=sneakanim;
+ player[i].animTarget=sneakanim;
if(player[i].wasCrouch())
player[i].target=0;
- player[i].targetframe=0;
+ player[i].frameTarget=0;
}
- if(player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip()){
+ if(player[i].animTarget==jumpupanim||player[i].animTarget==jumpdownanim||player[i].isFlip()){
player[i].velocity+=DoRotation(absflatfacing*5*multiplier,0,-90,0);
}
player[i].targetyaw-=90;
(player[i].isStop()&&
player[i].targetyaw==player[i].yaw)||
(player[i].isLanding()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown)||
(player[i].isLandhard()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown&&
player[i].crouchkeydown)){
player[i].setAnimation(player[i].getRun());
}
if(player[i].isCrouch()){
- player[i].targetanimation=sneakanim;
+ player[i].animTarget=sneakanim;
if(player[i].wasCrouch())
player[i].target=0;
- player[i].targetframe=0;
+ player[i].frameTarget=0;
}
- if(player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip()){
+ if(player[i].animTarget==jumpupanim||player[i].animTarget==jumpdownanim||player[i].isFlip()){
player[i].velocity-=DoRotation(absflatfacing*5*multiplier,0,-90,0);
}
player[i].targetyaw+=90;
(player[i].isStop()&&
player[i].targetyaw==player[i].yaw)||
(player[i].isLanding()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown)||
(player[i].isLandhard()&&
- player[i].targetframe>0&&
+ player[i].frameTarget>0&&
!player[i].jumpkeydown&&
player[i].crouchkeydown)){
player[i].setAnimation(player[i].getRun());
}
if(player[i].isCrouch()){
- player[i].targetanimation=sneakanim;
+ player[i].animTarget=sneakanim;
if(player[i].wasCrouch())
player[i].target=0;
- player[i].targetframe=0;
+ player[i].frameTarget=0;
}
- if(player[i].targetanimation==jumpupanim||player[i].targetanimation==jumpdownanim||player[i].isFlip()){
+ if(player[i].animTarget==jumpupanim||player[i].animTarget==jumpdownanim||player[i].isFlip()){
player[i].velocity-=absflatfacing*5*multiplier;
}
- if(player[i].targetanimation==hanganim){
- player[i].currentanimation=jumpdownanim;
- player[i].targetanimation=jumpdownanim;
+ if(player[i].animTarget==hanganim){
+ player[i].animCurrent=jumpdownanim;
+ player[i].animTarget=jumpdownanim;
player[i].target=0;
- player[i].currentframe=0;
- player[i].targetframe=1;
+ player[i].frameCurrent=0;
+ player[i].frameTarget=1;
player[i].velocity=0;
player[i].velocity.y+=gravity;
player[i].coords.y-=1.4;
movekey=1;
}
if((player[i].jumpkeydown&&!player[i].jumpclimb)||player[i].jumpstart){
- if((((player[i].isLanding()&&player[i].targetframe>=3)||
+ if((((player[i].isLanding()&&player[i].frameTarget>=3)||
player[i].isRun()||
- player[i].targetanimation==walkanim||
+ player[i].animTarget==walkanim||
player[i].isCrouch()||
- player[i].targetanimation==sneakanim)&&
+ player[i].animTarget==sneakanim)&&
player[i].jumppower>1)&&
- ((player[i].targetanimation!=rabbitrunninganim&&
- player[i].targetanimation!=wolfrunninganim)||i!=0)){
+ ((player[i].animTarget!=rabbitrunninganim&&
+ player[i].animTarget!=wolfrunninganim)||i!=0)){
player[i].jumpstart=0;
player[i].setAnimation(jumpupanim);
player[i].yaw=player[i].targetyaw;
if(numplayers>1)
for(int j=0;j<numplayers;j++){
if(j!=i&&!player[j].skeleton.free&&player[j].victim){
- if(findDistancefast(&player[j].coords,&player[j].victim->coords)<3&&
+ if(distsq(&player[j].coords,&player[j].victim->coords)<3&&
player[j].victim==&player[i]&&
- (player[j].targetanimation==sweepanim)){
+ (player[j].animTarget==sweepanim)){
if(target>=0)target=-1;
else target=j;
}
}
if((player[i].isIdle())&&player[i].jumppower>1){
player[i].setAnimation(player[i].getLanding());
- player[i].targetframe=2;
+ player[i].frameTarget=2;
player[i].landhard=0;
player[i].jumpstart=1;
player[i].tempdeltav=deltav;
}
- if(player[i].targetanimation==jumpupanim&&
+ if(player[i].animTarget==jumpupanim&&
(((!floatjump&&
!editorenabled)||
!debugmode)||
}
if(!movekey){
- if(player[i].isRun()||player[i].targetanimation==walkanim)
+ if(player[i].isRun()||player[i].animTarget==walkanim)
player[i].setAnimation(player[i].getStop());
- if(player[i].targetanimation==sneakanim){
- player[i].targetanimation=player[i].getCrouch();
- if(player[i].currentanimation==sneakanim)
+ if(player[i].animTarget==sneakanim){
+ player[i].animTarget=player[i].getCrouch();
+ if(player[i].animCurrent==sneakanim)
player[i].target=0;
- player[i].targetframe=0;
+ player[i].frameTarget=0;
}
}
- if(player[i].targetanimation==walkanim&&
+ if(player[i].animTarget==walkanim&&
(player[i].aitype==attacktypecutoff||
player[i].aitype==searchtype||
(player[i].aitype==passivetype&&
player[i].setAnimation(player[i].getStop());
}
}
- if(player[i].targetanimation==rollanim)
+ if(player[i].animTarget==rollanim)
player[i].targetyaw=oldtargetyaw;
}
}
//stop to turn in right direction
- if(fabs(player[k].yaw-player[k].targetyaw)>90&&(player[k].isRun()||player[k].targetanimation==walkanim))
+ if(fabs(player[k].yaw-player[k].targetyaw)>90&&(player[k].isRun()||player[k].animTarget==walkanim))
player[k].setAnimation(player[k].getStop());
- if(player[k].targetanimation==backhandspringanim||player[k].targetanimation==dodgebackanim)
+ if(player[k].animTarget==backhandspringanim||player[k].animTarget==dodgebackanim)
player[k].targettilt=0;
- if(player[k].targetanimation!=jumpupanim&&
- player[k].targetanimation!=backhandspringanim&&
- player[k].targetanimation!=jumpdownanim&&
+ if(player[k].animTarget!=jumpupanim&&
+ player[k].animTarget!=backhandspringanim&&
+ player[k].animTarget!=jumpdownanim&&
!player[k].isFlip()){
player[k].targettilt=0;
if(player[k].jumppower<0&&!player[k].jumpkeydown)
oldtemp=temp;
oldtemp2=temp2;
if(tutorialstage>=51)
- if(findDistancefast(&temp,&player[0].coords)>=findDistancefast(&temp,&temp2)-1||findDistancefast(&temp3,&player[0].coords)<4){
+ if(distsq(&temp,&player[0].coords)>=distsq(&temp,&temp2)-1||distsq(&temp3,&player[0].coords)<4){
OPENAL_StopSound(OPENAL_ALL); // hack...OpenAL renderer isn't stopping music after tutorial goes to level menu...
OPENAL_SetFrequency(OPENAL_ALL, 0.001);
flash();
}
if(tutorialstage<51)
- if(findDistancefast(&temp,&player[0].coords)>=findDistancefast(&temp,&temp2)-1||findDistancefast(&temp3,&player[0].coords)<4){
+ if(distsq(&temp,&player[0].coords)>=distsq(&temp,&temp2)-1||distsq(&temp3,&player[0].coords)<4){
emit_sound_at(fireendsound, player[0].coords);
player[0].coords=(oldtemp+oldtemp2)/2;
flash();
}
if(tutorialstage>=14&&tutorialstage<50)
- if(findDistancefast(&temp,&player[1].coords)>=findDistancefast(&temp,&temp2)-1||findDistancefast(&temp3,&player[1].coords)<4){
+ if(distsq(&temp,&player[1].coords)>=distsq(&temp,&temp2)-1||distsq(&temp3,&player[1].coords)<4){
emit_sound_at(fireendsound, player[1].coords);
for(int i=0;i<player[1].skeleton.num_joints;i++){
player[i].aitype==gethelptype||
player[i].aitype==searchtype)&&
!player[i].dead/*&&player[i].surprised<=0*/&&
- (player[i].targetanimation!=sneakattackedanim&&
- player[i].targetanimation!=knifesneakattackedanim&&
- player[i].targetanimation!=swordsneakattackedanim)){
+ (player[i].animTarget!=sneakattackedanim&&
+ player[i].animTarget!=knifesneakattackedanim&&
+ player[i].animTarget!=swordsneakattackedanim)){
musictype=stream_fighttheme;
realthreat=1;
}
winhotspot=false;
for(int i=0;i<numhotspots;i++)
if(hotspottype[i]==-1)
- if(findDistancefast(&player[0].coords,&hotspot[i])<hotspotsize[i])
+ if(distsq(&player[0].coords,&hotspot[i])<hotspotsize[i])
winhotspot=true;
int numalarmed=0;
viewerfacing=facing;
if(!cameramode){
- if((animation[player[0].targetanimation].attack!=3&&animation[player[0].currentanimation].attack!=3)||player[0].skeleton.free)target=player[0].coords+player[0].currentoffset*(1-player[0].target)*player[0].scale+player[0].targetoffset*player[0].target*player[0].scale-player[0].facing*.05;
+ if((animation[player[0].animTarget].attack!=3&&animation[player[0].animCurrent].attack!=3)||player[0].skeleton.free)target=player[0].coords+player[0].currentoffset*(1-player[0].target)*player[0].scale+player[0].targetoffset*player[0].target*player[0].scale-player[0].facing*.05;
else target=player[0].oldcoords+player[0].currentoffset*(1-player[0].target)*player[0].scale+player[0].targetoffset*player[0].target*player[0].scale-player[0].facing*.05;
target.y+=.1;
if(player[0].skeleton.free){
if(findLengthfast(&player[0].velocity)>400){
cameraspeed=20+(findLength(&player[0].velocity)-20)*.96;
}
- if(player[0].skeleton.free==0&&player[0].targetanimation!=hanganim&&player[0].targetanimation!=climbanim)target.y+=1.4;
+ if(player[0].skeleton.free==0&&player[0].animTarget!=hanganim&&player[0].animTarget!=climbanim)target.y+=1.4;
coltarget=target-cameraloc;
if(findLengthfast(&coltarget)<multiplier*multiplier*400)cameraloc=target;
else {
Normalise(&coltarget);
- if(player[0].targetanimation!=hanganim&&player[0].targetanimation!=climbanim&&player[0].currentanimation!=climbanim&&player[0].currentoffset.x==0)cameraloc=cameraloc+coltarget*multiplier*cameraspeed;
+ if(player[0].animTarget!=hanganim&&player[0].animTarget!=climbanim&&player[0].animCurrent!=climbanim&&player[0].currentoffset.x==0)cameraloc=cameraloc+coltarget*multiplier*cameraspeed;
else cameraloc=cameraloc+coltarget*multiplier*8;
}
if(editorenabled)cameraloc=target;
if(findLengthfast(&player[0].velocity)>400){
cameraspeed=20+(findLength(&player[0].velocity)-20)*.96;
}
- if(player[0].skeleton.free==0&&player[0].targetanimation!=hanganim&&player[0].targetanimation!=climbanim)target.y+=1.4;
+ if(player[0].skeleton.free==0&&player[0].animTarget!=hanganim&&player[0].animTarget!=climbanim)target.y+=1.4;
cameradist+=multiplier*5;
if(cameradist>3.3)cameradist=3.3;
coltarget=target-cameraloc;
else if(findLengthfast(&coltarget)>1)
{
Normalise(&coltarget);
- if(player[0].targetanimation!=hanganim&&player[0].targetanimation!=climbanim&&player[0].currentanimation!=climbanim&&player[0].currentoffset.x==0)cameraloc=cameraloc+coltarget*multiplier*cameraspeed;
+ if(player[0].animTarget!=hanganim&&player[0].animTarget!=climbanim&&player[0].animCurrent!=climbanim&&player[0].currentoffset.x==0)cameraloc=cameraloc+coltarget*multiplier*cameraspeed;
else cameraloc=cameraloc+coltarget*multiplier*8;
}
if(editorenabled)cameraloc=target;