- Replace scale() calls with Scale() from common.

This commit is contained in:
Mitchell Richters 2021-01-04 23:34:55 +11:00
parent 3c5d553456
commit b36bea7c69
10 changed files with 50 additions and 55 deletions

View file

@ -612,7 +612,7 @@ inline char TestBitString(T *pArray, int nIndex)
// This is to override the namepace prioritization without altering the actual calls. // This is to override the namepace prioritization without altering the actual calls.
inline int scale(int a, int b, int c) inline int scale(int a, int b, int c)
{ {
return ::scale(a, b, c); return ::Scale(a, b, c);
} }
inline int scale(int a1, int a2, int a3, int a4, int a5) inline int scale(int a1, int a2, int a3, int a4, int a5)

View file

@ -262,7 +262,7 @@ EXTERN uint8_t paletteloaded;
inline int shadeToLight(int shade) inline int shadeToLight(int shade)
{ {
shade = clamp(shade, 0, numshades-1); shade = clamp(shade, 0, numshades-1);
int light = scale(numshades-1-shade, 255, numshades-1); int light = Scale(numshades-1-shade, 255, numshades-1);
return PalEntry(255,light,light,light); return PalEntry(255,light,light,light);
} }

View file

@ -10,11 +10,6 @@
#ifndef pragmas_h_ #ifndef pragmas_h_
#define pragmas_h_ #define pragmas_h_
static inline int32_t scale(int32_t eax, int32_t edx, int32_t ecx)
{
return int64_t(eax) * edx / ecx;
}
static inline constexpr int ksgn(int32_t a) { return (a > 0) - (a < 0); } static inline constexpr int ksgn(int32_t a) { return (a > 0) - (a < 0); }
inline int sgn(int32_t a) { return (a > 0) - (a < 0); } inline int sgn(int32_t a) { return (a > 0) - (a < 0); }

View file

@ -330,7 +330,7 @@ static inline int32_t cliptrace(vec2_t const pos, vec2_t * const goal)
return z; return z;
} }
n = { pos.x+scale(diff.x, topu, bot), pos.y+scale(diff.y, topu, bot) }; n = { pos.x+Scale(diff.x, topu, bot), pos.y+Scale(diff.y, topu, bot) };
topu--; topu--;
} while (area.x*(n.y-p1.y) <= (n.x-p1.x)*area.y); } while (area.x*(n.y-p1.y) <= (n.x-p1.x)*area.y);
@ -1187,7 +1187,7 @@ int32_t try_facespr_intersect(uspriteptr_t const spr, vec3_t const in,
if (!bot) return 0; if (!bot) return 0;
vec3_t newpos = { 0, 0, in.z + scale(vz, topt, bot) }; vec3_t newpos = { 0, 0, in.z + Scale(vz, topt, bot) };
int32_t siz; int32_t siz;
int32_t const z1 = sprpos.z + spriteheightofsptr(spr, &siz, 1); int32_t const z1 = sprpos.z + spriteheightofsptr(spr, &siz, 1);
@ -1195,14 +1195,14 @@ int32_t try_facespr_intersect(uspriteptr_t const spr, vec3_t const in,
return 0; return 0;
int32_t const topu = vx * (sprpos.y - in.y) - vy * (sprpos.x - in.x); int32_t const topu = vx * (sprpos.y - in.y) - vy * (sprpos.x - in.x);
vec2_t const off = { scale(vx, topu, bot), scale(vy, topu, bot) }; vec2_t const off = { Scale(vx, topu, bot), Scale(vy, topu, bot) };
int32_t const dist = off.x * off.x + off.y * off.y; int32_t const dist = off.x * off.x + off.y * off.y;
siz = tileWidth(spr->picnum) * spr->xrepeat; siz = tileWidth(spr->picnum) * spr->xrepeat;
if (dist > MulScale(siz, siz, 7)) return 0; if (dist > MulScale(siz, siz, 7)) return 0;
newpos.vec2 = { in.x + scale(vx, topt, bot), in.y + scale(vy, topt, bot) }; newpos.vec2 = { in.x + Scale(vx, topt, bot), in.y + Scale(vy, topt, bot) };
if (abs(newpos.x - in.x) + abs(newpos.y - in.y) + strictly_smaller_than_p > if (abs(newpos.x - in.x) + abs(newpos.y - in.y) + strictly_smaller_than_p >
abs(intp->x - in.x) + abs(intp->y - in.y)) abs(intp->x - in.x) + abs(intp->y - in.y))
@ -1365,8 +1365,8 @@ int32_t hitscan(const vec3_t *sv, int16_t sectnum, int32_t vx, int32_t vy, int32
{ {
//x1,y1,z1 are temp variables //x1,y1,z1 are temp variables
if (vz > 0) z1 = sec->floorz; else z1 = sec->ceilingz; if (vz > 0) z1 = sec->floorz; else z1 = sec->ceilingz;
x1 = sv->x + scale(z1-sv->z,vx,vz); x1 = sv->x + Scale(z1-sv->z,vx,vz);
y1 = sv->y + scale(z1-sv->z,vy,vz); y1 = sv->y + Scale(z1-sv->z,vy,vz);
if (inside(x1,y1,dasector) == 1) if (inside(x1,y1,dasector) == 1)
{ {
hit_set(hit, dasector, -1, -1, x1, y1, z1); hit_set(hit, dasector, -1, -1, x1, y1, z1);
@ -1507,14 +1507,14 @@ int32_t hitscan(const vec3_t *sv, int16_t sectnum, int32_t vx, int32_t vy, int32
// signed overflow is undefined behavior in C), but rather the idiv trap when // signed overflow is undefined behavior in C), but rather the idiv trap when
// the resulting quotient doesn't fit into a *signed* 32-bit integer. // the resulting quotient doesn't fit into a *signed* 32-bit integer.
zz = (uint32_t)(intz-sv->z) * vx; zz = (uint32_t)(intz-sv->z) * vx;
intx = sv->x+scale(zz,1,vz); intx = sv->x+Scale(zz,1,vz);
zz = (uint32_t)(intz-sv->z) * vy; zz = (uint32_t)(intz-sv->z) * vy;
inty = sv->y+scale(zz,1,vz); inty = sv->y+Scale(zz,1,vz);
} }
else else
{ {
intx = sv->x+scale(intz-sv->z,vx,vz); intx = sv->x+Scale(intz-sv->z,vx,vz);
inty = sv->y+scale(intz-sv->z,vy,vz); inty = sv->y+Scale(intz-sv->z,vy,vz);
} }
if (abs(intx-sv->x)+abs(inty-sv->y) > abs((hit->pos.x)-sv->x)+abs((hit->pos.y)-sv->y)) if (abs(intx-sv->x)+abs(inty-sv->y) > abs((hit->pos.x)-sv->x)+abs((hit->pos.y)-sv->y))

View file

@ -1010,7 +1010,7 @@ int32_t renderDrawRoomsQ16(int32_t daposx, int32_t daposy, int32_t daposz,
global100horiz = dahoriz; global100horiz = dahoriz;
// xdimenscale is scale(xdimen,yxaspect,320); // xdimenscale is Scale(xdimen,yxaspect,320);
// normalization by viewingrange so that center-of-aim doesn't depend on it // normalization by viewingrange so that center-of-aim doesn't depend on it
qglobalhoriz = MulScale(dahoriz, DivScale(xdimenscale, viewingrange, 16), 16)+IntToFixed(ydimen>>1); qglobalhoriz = MulScale(dahoriz, DivScale(xdimenscale, viewingrange, 16), 16)+IntToFixed(ydimen>>1);
@ -1235,7 +1235,7 @@ void renderDrawMasks(void)
if (MulScale(labs(xp+yp),xdimen, 24) >= yp) if (MulScale(labs(xp+yp),xdimen, 24) >= yp)
goto killsprite; goto killsprite;
spritesxyz[i].x = scale(xp+yp,xdimen<<7,yp); spritesxyz[i].x = Scale(xp+yp,xdimen<<7,yp);
} }
else if ((tspriteptr[i]->cstat&48) == 0) else if ((tspriteptr[i]->cstat&48) == 0)
{ {
@ -1540,7 +1540,7 @@ void FillPolygon(int* rx1, int* ry1, int* xb1, int32_t npoints, int picnum, int
alpha = GetAlphaFromBlend(maskprops, 0); alpha = GetAlphaFromBlend(maskprops, 0);
} }
int translation = TRANSLATION(Translation_Remap + curbasepal, palette); int translation = TRANSLATION(Translation_Remap + curbasepal, palette);
int light = clamp(scale((numshades - shade), 255, numshades), 0, 255); int light = clamp(Scale((numshades - shade), 255, numshades), 0, 255);
PalEntry pe = PalEntry(uint8_t(alpha*255), light, light, light); PalEntry pe = PalEntry(uint8_t(alpha*255), light, light, light);
twod->AddPoly(tileGetTexture(picnum), points.Data(), points.Size(), indices.data(), indices.size(), translation, pe, rs, clipx1, clipy1, clipx2, clipy2); twod->AddPoly(tileGetTexture(picnum), points.Data(), points.Size(), indices.data(), indices.size(), translation, pe, rs, clipx1, clipy1, clipx2, clipy2);
@ -2085,8 +2085,8 @@ int32_t getangle(int32_t xvect, int32_t yvect)
else if (xvect == -yvect) else if (xvect == -yvect)
rv = 768 + ((xvect > 0) << 10); rv = 768 + ((xvect > 0) << 10);
else if (abs(xvect) > abs(yvect)) else if (abs(xvect) > abs(yvect))
rv = ((radarang[640 + scale(160, yvect, xvect)] >> 6) + ((xvect < 0) << 10)) & 2047; rv = ((radarang[640 + Scale(160, yvect, xvect)] >> 6) + ((xvect < 0) << 10)) & 2047;
else rv = ((radarang[640 - scale(160, xvect, yvect)] >> 6) + 512 + ((yvect < 0) << 10)) & 2047; else rv = ((radarang[640 - Scale(160, xvect, yvect)] >> 6) + 512 + ((yvect < 0) << 10)) & 2047;
return rv; return rv;
} }
@ -2106,8 +2106,8 @@ fixed_t gethiq16angle(int32_t xvect, int32_t yvect)
else if (xvect == -yvect) else if (xvect == -yvect)
rv = IntToFixed(768 + ((xvect > 0) << 10)); rv = IntToFixed(768 + ((xvect > 0) << 10));
else if (abs(xvect) > abs(yvect)) else if (abs(xvect) > abs(yvect))
rv = ((qradarang[5120 + scale(1280, yvect, xvect)] >> 6) + IntToFixed(((xvect < 0) << 10))) & 0x7FFFFFF; rv = ((qradarang[5120 + Scale(1280, yvect, xvect)] >> 6) + IntToFixed(((xvect < 0) << 10))) & 0x7FFFFFF;
else rv = ((qradarang[5120 - scale(1280, xvect, yvect)] >> 6) + IntToFixed(512 + ((yvect < 0) << 10))) & 0x7FFFFFF; else rv = ((qradarang[5120 - Scale(1280, xvect, yvect)] >> 6) + IntToFixed(512 + ((yvect < 0) << 10))) & 0x7FFFFFF;
return rv; return rv;
} }
@ -2897,8 +2897,8 @@ void renderSetAspect(int32_t daxrange, int32_t daaspect)
yxaspect = daaspect; yxaspect = daaspect;
xyaspect = DivScale(1,yxaspect, 32); xyaspect = DivScale(1,yxaspect, 32);
xdimenscale = scale(xdimen,yxaspect,320); xdimenscale = Scale(xdimen,yxaspect,320);
xdimscale = scale(320,xyaspect,xdimen); xdimscale = Scale(320,xyaspect,xdimen);
} }
@ -2990,8 +2990,8 @@ void renderPrepareMirror(int32_t dax, int32_t day, int32_t daz, fixed_t daang, f
int i = ((dax-x)*dx + (day-y)*dy)<<1; int i = ((dax-x)*dx + (day-y)*dy)<<1;
*tposx = (x<<1) + scale(dx,i,j) - dax; *tposx = (x<<1) + Scale(dx,i,j) - dax;
*tposy = (y<<1) + scale(dy,i,j) - day; *tposy = (y<<1) + Scale(dy,i,j) - day;
*tang = ((gethiq16angle(dx, dy) << 1) - daang) & 0x7FFFFFF; *tang = ((gethiq16angle(dx, dy) << 1) - daang) & 0x7FFFFFF;
inpreparemirror = 1; inpreparemirror = 1;
@ -3056,7 +3056,7 @@ int32_t getceilzofslopeptr(usectorptr_t sec, int32_t dax, int32_t day)
int const j = DMulScale(d.x, day-w.y, -d.y, dax-w.x, 3); int const j = DMulScale(d.x, day-w.y, -d.y, dax-w.x, 3);
int const shift = enginecompatibility_mode != ENGINECOMPATIBILITY_NONE ? 0 : 1; int const shift = enginecompatibility_mode != ENGINECOMPATIBILITY_NONE ? 0 : 1;
return sec->ceilingz + (scale(sec->ceilingheinum,j>>shift,i)<<shift); return sec->ceilingz + (Scale(sec->ceilingheinum,j>>shift,i)<<shift);
} }
int32_t getflorzofslopeptr(usectorptr_t sec, int32_t dax, int32_t day) int32_t getflorzofslopeptr(usectorptr_t sec, int32_t dax, int32_t day)
@ -3075,7 +3075,7 @@ int32_t getflorzofslopeptr(usectorptr_t sec, int32_t dax, int32_t day)
int const j = DMulScale(d.x, day-w.y, -d.y, dax-w.x, 3); int const j = DMulScale(d.x, day-w.y, -d.y, dax-w.x, 3);
int const shift = enginecompatibility_mode != ENGINECOMPATIBILITY_NONE ? 0 : 1; int const shift = enginecompatibility_mode != ENGINECOMPATIBILITY_NONE ? 0 : 1;
return sec->floorz + (scale(sec->floorheinum,j>>shift,i)<<shift); return sec->floorz + (Scale(sec->floorheinum,j>>shift,i)<<shift);
} }
void getzsofslopeptr(usectorptr_t sec, int32_t dax, int32_t day, int32_t *ceilz, int32_t *florz) void getzsofslopeptr(usectorptr_t sec, int32_t dax, int32_t day, int32_t *ceilz, int32_t *florz)
@ -3096,9 +3096,9 @@ void getzsofslopeptr(usectorptr_t sec, int32_t dax, int32_t day, int32_t *ceilz,
int const j = DMulScale(d.x,day-wal->y, -d.y,dax-wal->x, 3); int const j = DMulScale(d.x,day-wal->y, -d.y,dax-wal->x, 3);
int const shift = enginecompatibility_mode != ENGINECOMPATIBILITY_NONE ? 0 : 1; int const shift = enginecompatibility_mode != ENGINECOMPATIBILITY_NONE ? 0 : 1;
if (sec->ceilingstat&2) if (sec->ceilingstat&2)
*ceilz += scale(sec->ceilingheinum,j>>shift,i)<<shift; *ceilz += Scale(sec->ceilingheinum,j>>shift,i)<<shift;
if (sec->floorstat&2) if (sec->floorstat&2)
*florz += scale(sec->floorheinum,j>>shift,i)<<shift; *florz += Scale(sec->floorheinum,j>>shift,i)<<shift;
} }
// //
@ -3114,7 +3114,7 @@ void alignceilslope(int16_t dasect, int32_t x, int32_t y, int32_t z)
if (i == 0) if (i == 0)
return; return;
sector[dasect].ceilingheinum = scale((z-sector[dasect].ceilingz)<<8, sector[dasect].ceilingheinum = Scale((z-sector[dasect].ceilingz)<<8,
nsqrtasm(uhypsq(dax,day)), i); nsqrtasm(uhypsq(dax,day)), i);
if (sector[dasect].ceilingheinum == 0) if (sector[dasect].ceilingheinum == 0)
sector[dasect].ceilingstat &= ~2; sector[dasect].ceilingstat &= ~2;
@ -3135,7 +3135,7 @@ void alignflorslope(int16_t dasect, int32_t x, int32_t y, int32_t z)
if (i == 0) if (i == 0)
return; return;
sector[dasect].floorheinum = scale((z-sector[dasect].floorz)<<8, sector[dasect].floorheinum = Scale((z-sector[dasect].floorz)<<8,
nsqrtasm(uhypsq(dax,day)), i); nsqrtasm(uhypsq(dax,day)), i);
if (sector[dasect].floorheinum == 0) if (sector[dasect].floorheinum == 0)
sector[dasect].floorstat &= ~2; sector[dasect].floorstat &= ~2;

View file

@ -451,7 +451,7 @@ public:
framenum++; framenum++;
if (framenum >= numframes) stop = true; if (framenum >= numframes) stop = true;
int soundframe = convdenom ? scale(framenum, convnumer, convdenom) : framenum; int soundframe = convdenom ? Scale(framenum, convnumer, convdenom) : framenum;
if (soundframe > lastsoundframe) if (soundframe > lastsoundframe)
{ {
if (animSnd && soundtrack == -1) for (int i = 0; animSnd[i].framenum >= 0; i++) if (animSnd && soundtrack == -1) for (int i = 0; animSnd[i].framenum >= 0; i++)

View file

@ -336,7 +336,7 @@ DDukeActor* aim(DDukeActor* actor, int aang)
if (sdist > 512 && sdist < smax) if (sdist > 512 && sdist < smax)
{ {
if (s->picnum == TILE_APLAYER) if (s->picnum == TILE_APLAYER)
a = (abs(scale(sp->z - s->z, 10, sdist) - ps[s->yvel].horizon.sum().asbuild()) < 100); a = (abs(Scale(sp->z - s->z, 10, sdist) - ps[s->yvel].horizon.sum().asbuild()) < 100);
else a = 1; else a = 1;
cans = cansee(sp->x, sp->y, sp->z - (32 << 8) + gs.actorinfo[sp->picnum].aimoffset, sp->sectnum, s->x, s->y, s->z - (32 << 8), s->sectnum); cans = cansee(sp->x, sp->y, sp->z - (32 << 8) + gs.actorinfo[sp->picnum].aimoffset, sp->sectnum, s->x, s->y, s->z - (32 << 8), s->sectnum);

View file

@ -1320,13 +1320,13 @@ void CameraView(PLAYERp pp, int *tx, int *ty, int *tz, short *tsectnum, binangle
zdiff = sp->z - *tz; zdiff = sp->z - *tz;
if (labs(sp->x - *tx) > 1000) if (labs(sp->x - *tx) > 1000)
zvect = scale(xvect, zdiff, sp->x - *tx); zvect = Scale(xvect, zdiff, sp->x - *tx);
else if (labs(sp->y - *ty) > 1000) else if (labs(sp->y - *ty) > 1000)
zvect = scale(yvect, zdiff, sp->y - *ty); zvect = Scale(yvect, zdiff, sp->y - *ty);
else if (sp->x - *tx != 0) else if (sp->x - *tx != 0)
zvect = scale(xvect, zdiff, sp->x - *tx); zvect = Scale(xvect, zdiff, sp->x - *tx);
else if (sp->y - *ty != 0) else if (sp->y - *ty != 0)
zvect = scale(yvect, zdiff, sp->y - *ty); zvect = Scale(yvect, zdiff, sp->y - *ty);
else else
zvect = 0; zvect = 0;

View file

@ -299,9 +299,9 @@ FAFcansee(int32_t xs, int32_t ys, int32_t zs, int16_t sects,
if (dist != 0) if (dist != 0)
{ {
if (xe - xs != 0) if (xe - xs != 0)
zvect = scale(xvect, ze - zs, xe - xs); zvect = Scale(xvect, ze - zs, xe - xs);
else if (ye - ys != 0) else if (ye - ys != 0)
zvect = scale(yvect, ze - zs, ye - ys); zvect = Scale(yvect, ze - zs, ye - ys);
else else
zvect = 0; zvect = 0;
} }

View file

@ -8403,7 +8403,7 @@ ComboMissileSeek(int16_t Weapon, int16_t delay_tics, int16_t aware_range/*, int1
oz = u->zchange; oz = u->zchange;
u->zchange = scale(sp->xvel, zh - sp->z, dist); u->zchange = Scale(sp->xvel, zh - sp->z, dist);
u->zchange = (u->zchange + oz*15)/16; u->zchange = (u->zchange + oz*15)/16;
} }
return 0; return 0;
@ -8486,9 +8486,9 @@ VectorMissileSeek(int16_t Weapon, int16_t delay_tics, int16_t turn_speed, int16_
oy = u->ychange; oy = u->ychange;
oz = u->zchange; oz = u->zchange;
u->xchange = scale(sp->xvel, hp->x - sp->x, dist); u->xchange = Scale(sp->xvel, hp->x - sp->x, dist);
u->ychange = scale(sp->xvel, hp->y - sp->y, dist); u->ychange = Scale(sp->xvel, hp->y - sp->y, dist);
u->zchange = scale(sp->xvel, zh - sp->z, dist); u->zchange = Scale(sp->xvel, zh - sp->z, dist);
// the large turn_speed is the slower the turn // the large turn_speed is the slower the turn
@ -8555,9 +8555,9 @@ VectorWormSeek(int16_t Weapon, int16_t delay_tics, int16_t aware_range1, int16_t
oy = u->ychange; oy = u->ychange;
oz = u->zchange; oz = u->zchange;
u->xchange = scale(sp->xvel, hp->x - sp->x, dist); u->xchange = Scale(sp->xvel, hp->x - sp->x, dist);
u->ychange = scale(sp->xvel, hp->y - sp->y, dist); u->ychange = Scale(sp->xvel, hp->y - sp->y, dist);
u->zchange = scale(sp->xvel, zh - sp->z, dist); u->zchange = Scale(sp->xvel, zh - sp->z, dist);
u->xchange = (u->xchange + ox*7)/8; u->xchange = (u->xchange + ox*7)/8;
u->ychange = (u->ychange + oy*7)/8; u->ychange = (u->ychange + oy*7)/8;
@ -14463,10 +14463,10 @@ AimHitscanToTarget(SPRITEp sp, int *z, short *ang, int z_ratio)
if (hp->x - sp->x != 0) if (hp->x - sp->x != 0)
//*z = xvect * ((zh - *z)/(hp->x - sp->x)); //*z = xvect * ((zh - *z)/(hp->x - sp->x));
*z = scale(xvect,zh - *z,hp->x - sp->x); *z = Scale(xvect,zh - *z,hp->x - sp->x);
else if (hp->y - sp->y != 0) else if (hp->y - sp->y != 0)
//*z = yvect * ((zh - *z)/(hp->y - sp->y)); //*z = yvect * ((zh - *z)/(hp->y - sp->y));
*z = scale(yvect,zh - *z,hp->y - sp->y); *z = Scale(yvect,zh - *z,hp->y - sp->y);
else else
*z = 0; *z = 0;
@ -14525,10 +14525,10 @@ WeaponAutoAimHitscan(SPRITEp sp, int *z, short *ang, bool test)
if (hp->x - sp->x != 0) if (hp->x - sp->x != 0)
//*z = xvect * ((zh - *z)/(hp->x - sp->x)); //*z = xvect * ((zh - *z)/(hp->x - sp->x));
*z = scale(xvect,zh - *z,hp->x - sp->x); *z = Scale(xvect,zh - *z,hp->x - sp->x);
else if (hp->y - sp->y != 0) else if (hp->y - sp->y != 0)
//*z = yvect * ((zh - *z)/(hp->y - sp->y)); //*z = yvect * ((zh - *z)/(hp->y - sp->y));
*z = scale(yvect,zh - *z,hp->y - sp->y); *z = Scale(yvect,zh - *z,hp->y - sp->y);
else else
*z = 0; *z = 0;
} }
@ -14564,10 +14564,10 @@ WeaponHitscanShootFeet(SPRITEp sp, SPRITEp hp, int *zvect)
if (hp->x - sp->x != 0) if (hp->x - sp->x != 0)
//*z = xvect * ((zh - *z)/(hp->x - sp->x)); //*z = xvect * ((zh - *z)/(hp->x - sp->x));
*zvect = scale(xvect,zh - z, hp->x - sp->x); *zvect = Scale(xvect,zh - z, hp->x - sp->x);
else if (hp->y - sp->y != 0) else if (hp->y - sp->y != 0)
//*z = yvect * ((zh - *z)/(hp->y - sp->y)); //*z = yvect * ((zh - *z)/(hp->y - sp->y));
*zvect = scale(yvect,zh - z, hp->y - sp->y); *zvect = Scale(yvect,zh - z, hp->y - sp->y);
else else
*zvect = 0; *zvect = 0;
} }