player.c: factor out a repeated 3-liner into safeldist(), remove some commented code.

git-svn-id: https://svn.eduke32.com/eduke32@3462 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
helixhorned 2013-02-07 21:00:58 +00:00
parent 2c3ffa291c
commit 9bf6115d1f

View file

@ -324,6 +324,12 @@ static int32_t CheckShootSwitchTile(int32_t pn)
pn == HANDSWITCH || pn == HANDSWITCH+1; pn == HANDSWITCH || pn == HANDSWITCH+1;
} }
static int32_t safeldist(int32_t spritenum1, const spritetype *s2)
{
int32_t dst = ldist(&sprite[spritenum1], s2);
return dst ? dst : 1;
}
// flags: // flags:
// 1: do sprite center adjustment (cen-=(8<<8)) for GREENSLIME or ROTATEGUN // 1: do sprite center adjustment (cen-=(8<<8)) for GREENSLIME or ROTATEGUN
// 2: do auto getangle only if not RECON (if clear, do unconditionally) // 2: do auto getangle only if not RECON (if clear, do unconditionally)
@ -370,10 +376,7 @@ static int32_t GetAutoAimAngle(int32_t i, int32_t p, int32_t atwith,
} }
} }
dst = ldist(&sprite[g_player[p].ps->i], &sprite[j]); dst = safeldist(g_player[p].ps->i, &sprite[j]);
if (dst == 0)
dst++;
*zvel = ((spr->z - srcvect->z - cen)*vel) / dst; *zvel = ((spr->z - srcvect->z - cen)*vel) / dst;
if (!(flags&2) || sprite[j].picnum != RECON) if (!(flags&2) || sprite[j].picnum != RECON)
@ -516,10 +519,7 @@ static void A_PreFireHitscan(const spritetype *s, vec3_t *srcvect, int32_t *zvel
const int32_t j = A_FindPlayer(s, &dummydist); const int32_t j = A_FindPlayer(s, &dummydist);
const DukePlayer_t *targetps = g_player[j].ps; const DukePlayer_t *targetps = g_player[j].ps;
int32_t d = ldist(&sprite[targetps->i], s); int32_t d = safeldist(targetps->i, s);
if (d == 0)
d++;
*zvel = ((targetps->pos.z-srcvect->z)<<8) / d; *zvel = ((targetps->pos.z-srcvect->z)<<8) / d;
srcvect->z -= (4<<8); srcvect->z -= (4<<8);
@ -1060,10 +1060,6 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
if (proj->workslike & PROJECTILE_RPG) if (proj->workslike & PROJECTILE_RPG)
{ {
/* if(tile[atwith].proj.workslike & PROJECTILE_FREEZEBLAST)
sz += (3<<8);*/
if (s->extra >= 0) s->shade = proj->shade; if (s->extra >= 0) s->shade = proj->shade;
vel = proj->vel; vel = proj->vel;
@ -1076,7 +1072,6 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
if (j < 0) if (j < 0)
zvel = (100-ps->horiz-ps->horizoff)*(proj->vel/8); zvel = (100-ps->horiz-ps->horizoff)*(proj->vel/8);
// zvel = (100-ps->horiz-ps->horizoff)*81;
if (proj->sound >= 0) if (proj->sound >= 0)
A_PlaySound(proj->sound,i); A_PlaySound(proj->sound,i);
@ -1088,9 +1083,7 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
j = A_FindPlayer(s,&x); j = A_FindPlayer(s,&x);
sa = getangle(g_player[j].ps->opos.x-srcvect.x,g_player[j].ps->opos.y-srcvect.y); sa = getangle(g_player[j].ps->opos.x-srcvect.x,g_player[j].ps->opos.y-srcvect.y);
l = ldist(&sprite[g_player[j].ps->i],s); l = safeldist(g_player[j].ps->i, s);
if (l == 0)
l++;
zvel = ((g_player[j].ps->opos.z-srcvect.z)*vel) / l; zvel = ((g_player[j].ps->opos.z-srcvect.z)*vel) / l;
if (A_CheckEnemySprite(s) && (s->hitag&face_player_smart)) if (A_CheckEnemySprite(s) && (s->hitag&face_player_smart))
@ -1098,18 +1091,12 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
} }
} }
if (p >= 0 && j >= 0) if (p >= 0 && j >= 0)
l = j; l = j;
else l = -1; else l = -1;
if (numplayers > 1 && g_netClient) return -1; if (numplayers > 1 && g_netClient) return -1;
/* j = A_InsertSprite(sect,
sx+(sintable[(348+sa+512)&2047]/448),
sy+(sintable[(sa+348)&2047]/448),
sz-(1<<8),atwith,0,14,14,sa,vel,zvel,i,4);*/
if (actor[i].shootzvel) zvel = actor[i].shootzvel; if (actor[i].shootzvel) zvel = actor[i].shootzvel;
j = A_InsertSprite(sect, j = A_InsertSprite(sect,
srcvect.x+(sintable[(348+sa+512)&2047]/proj->offset), srcvect.x+(sintable[(348+sa+512)&2047]/proj->offset),
@ -1119,7 +1106,6 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
sprite[j].xrepeat=proj->xrepeat; sprite[j].xrepeat=proj->xrepeat;
sprite[j].yrepeat=proj->yrepeat; sprite[j].yrepeat=proj->yrepeat;
if (proj->extra_rand > 0) if (proj->extra_rand > 0)
sprite[j].extra += (krand()&proj->extra_rand); sprite[j].extra += (krand()&proj->extra_rand);
if (!(proj->workslike & PROJECTILE_BOUNCESOFFWALLS)) if (!(proj->workslike & PROJECTILE_BOUNCESOFFWALLS))
@ -1128,21 +1114,9 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
{ {
if (proj->bounces >= 1) sprite[j].yvel = proj->bounces; if (proj->bounces >= 1) sprite[j].yvel = proj->bounces;
else sprite[j].yvel = g_numFreezeBounces; else sprite[j].yvel = g_numFreezeBounces;
// sprite[j].xrepeat >>= 1;
// sprite[j].yrepeat >>= 1;
sprite[j].zvel -= (2<<4); sprite[j].zvel -= (2<<4);
} }
/*
if(p == -1)
{
if(!(tile[atwith].proj.workslike & PROJECTILE_BOUNCESOFFWALLS))
{
sprite[j].xrepeat = tile[atwith].proj.xrepeat; // 30
sprite[j].yrepeat = tile[atwith].proj.yrepeat;
sprite[j].extra >>= 2;
}
}
*/
if (proj->cstat >= 0) sprite[j].cstat = proj->cstat; if (proj->cstat >= 0) sprite[j].cstat = proj->cstat;
else sprite[j].cstat = 128; else sprite[j].cstat = 128;
if (proj->clipdist != 255) sprite[j].clipdist = proj->clipdist; if (proj->clipdist != 255) sprite[j].clipdist = proj->clipdist;
@ -1153,9 +1127,6 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
Bmemcpy(&SpriteProjectile[j], &ProjectileData[picnum], sizeof(projectile_t)); Bmemcpy(&SpriteProjectile[j], &ProjectileData[picnum], sizeof(projectile_t));
} }
// sa = s->ang+32-(krand()&63);
// zvel = oldzvel+512-(krand()&1023);
return j; return j;
} }
@ -1306,8 +1277,7 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
j = A_FindPlayer(s,&x); j = A_FindPlayer(s,&x);
// sa = getangle(g_player[j].ps->opos.x-sx,g_player[j].ps->opos.y-sy); // sa = getangle(g_player[j].ps->opos.x-sx,g_player[j].ps->opos.y-sy);
sa += 16-(krand()&31); sa += 16-(krand()&31);
hit.pos.x = ldist(&sprite[g_player[j].ps->i],s); hit.pos.x = safeldist(g_player[j].ps->i, s);
if (hit.pos.x == 0) hit.pos.x++;
zvel = ((g_player[j].ps->opos.z - srcvect.z + (3<<8))*vel) / hit.pos.x; zvel = ((g_player[j].ps->opos.z - srcvect.z + (3<<8))*vel) / hit.pos.x;
} }
if (actor[i].shootzvel) zvel = actor[i].shootzvel; if (actor[i].shootzvel) zvel = actor[i].shootzvel;
@ -1390,9 +1360,7 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
srcvect.z += 24<<8; srcvect.z += 24<<8;
} }
l = ldist(&sprite[g_player[j].ps->i],s); l = safeldist(g_player[j].ps->i, s);
if (l == 0)
l++;
zvel = ((g_player[j].ps->opos.z-srcvect.z)*vel) / l; zvel = ((g_player[j].ps->opos.z-srcvect.z)*vel) / l;
if (A_CheckEnemySprite(s) && (s->hitag&face_player_smart)) if (A_CheckEnemySprite(s) && (s->hitag&face_player_smart))
@ -1595,9 +1563,7 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
{ {
j = A_FindPlayer(s,&x); j = A_FindPlayer(s,&x);
srcvect.z -= (4<<8); srcvect.z -= (4<<8);
hit.pos.x = ldist(&sprite[g_player[j].ps->i], s); hit.pos.x = safeldist(g_player[j].ps->i, s);
if (hit.pos.x == 0)
hit.pos.x++;
zvel = ((g_player[j].ps->pos.z-srcvect.z) <<8) / hit.pos.x; zvel = ((g_player[j].ps->pos.z-srcvect.z) <<8) / hit.pos.x;
zvel += 128-(krand()&255); zvel += 128-(krand()&255);
sa += 32-(krand()&63); sa += 32-(krand()&63);
@ -1666,9 +1632,7 @@ int32_t A_Shoot(int32_t i, int32_t atwith)
else if (s->statnum != STAT_EFFECTOR) else if (s->statnum != STAT_EFFECTOR)
{ {
j = A_FindPlayer(s,&x); j = A_FindPlayer(s,&x);
l = ldist(&sprite[g_player[j].ps->i],s); l = safeldist(g_player[j].ps->i, s);
if (l == 0)
l++;
zvel = ((g_player[j].ps->opos.z-srcvect.z)*512) / l ; zvel = ((g_player[j].ps->opos.z-srcvect.z)*512) / l ;
} }
else zvel = 0; else zvel = 0;