SW: Use Q16.16 for angle.

This commit is contained in:
Mitchell Richters 2020-03-29 19:03:00 +11:00 committed by Christoph Oelckers
parent f07a0ae01e
commit 1ecc74c2ec
20 changed files with 229 additions and 229 deletions

View file

@ -437,13 +437,13 @@ void computergetinput(int snum, SW_PACKET *syn)
myx = p->posx;
myy = p->posy;
myz = p->posz;
myang = p->pang;
myang = fix16_to_int(p->q16ang);
mycursectnum = p->cursectnum;
// Reset input bits
syn->vel = 0;
syn->svel = 0;
syn->angvel = 0;
syn->q16avel = 0;
syn->q16horz = 0;
syn->bits = 0;
@ -451,7 +451,7 @@ void computergetinput(int snum, SW_PACKET *syn)
y1 = p->posy;
z1 = p->posz;
damyang = p->pang;
damyang = fix16_to_int(p->q16ang);
damysect = sprite[p->PlayerSprite].sectnum;
if ((numplayers >= 2) && (snum == myconnectindex))
{ x1 = myx; y1 = myy; z1 = myz+PLAYER_HEIGHT; damyang = myang; damysect = mycursectnum; }
@ -648,9 +648,9 @@ void computergetinput(int snum, SW_PACKET *syn)
daang = NORM_ANGLE((daang-64) + STD_RANDOM_RANGE(128));
// Below formula fails in certain cases
//syn->angvel = min(max((((daang+1024-damyang)&2047)-1024)>>1,-MAXANGVEL),MAXANGVEL); //was 127
p->pang = daang;
syn->q16horz = min(max((zang-fix16_to_int(p->q16horiz))>>1,-PLAYER_HORIZ_MAX),PLAYER_HORIZ_MAX);
//syn->q16avel = fix16_from_int(min(max((((daang+1024-damyang)&2047)-1024)>>1,-MAXANGVEL),MAXANGVEL)); //was 127
p->q16ang = fix16_from_int(daang);
syn->q16horz = fix16_from_int(min(max((zang-fix16_to_int(p->q16horiz))>>1,-PLAYER_HORIZ_MAX),PLAYER_HORIZ_MAX));
// Sets type of aiming, auto aim for bots
syn->bits |= (1<<SK_AUTO_AIM);
return;
@ -806,7 +806,7 @@ void computergetinput(int snum, SW_PACKET *syn)
daang = getangle(x2-x1,y2-y1);
syn->vel += (x2-x1)*2047/dist;
syn->svel += (y2-y1)*2047/dist;
syn->angvel = min(max((((daang+1024-damyang)&2047)-1024)>>3,-MAXANGVEL),MAXANGVEL);
syn->q16avel = fix16_from_int(min(max((((daang+1024-damyang)&2047)-1024)>>3,-MAXANGVEL),MAXANGVEL));
}
else
goalsprite[snum] = -1;
@ -869,7 +869,7 @@ void computergetinput(int snum, SW_PACKET *syn)
daang = ((getangle(wall[wall[goalwall[snum]].point2].x-wall[goalwall[snum]].x,wall[wall[goalwall[snum]].point2].y-wall[goalwall[snum]].y)+1536)&2047);
syn->vel += (x2-x1)*2047/dist;
syn->svel += (y2-y1)*2047/dist;
syn->angvel = min(max((((daang+1024-damyang)&2047)-1024)>>3,-MAXANGVEL),MAXANGVEL);
syn->q16avel = fix16_from_int(min(max((((daang+1024-damyang)&2047)-1024)>>3,-MAXANGVEL),MAXANGVEL));
}
@ -890,7 +890,7 @@ void computergetinput(int snum, SW_PACKET *syn)
daang = ((getangle(wall[wall[goalwall[snum]].point2].x-wall[goalwall[snum]].x,wall[wall[goalwall[snum]].point2].y-wall[goalwall[snum]].y)+1536)&2047);
syn->vel += (x2-x1)*2047/dist;
syn->svel += (y2-y1)*2047/dist;
syn->angvel = min(max((((daang+1024-damyang)&2047)-1024)>>3,-MAXANGVEL),MAXANGVEL);
syn->q16avel = fix16_from_int(min(max((((daang+1024-damyang)&2047)-1024)>>3,-MAXANGVEL),MAXANGVEL));
}
*/
}