From b7122a882d55890a8dec1596d2136409beb0e5f3 Mon Sep 17 00:00:00 2001 From: Andrei Drexler Date: Mon, 8 Aug 2022 15:18:16 +0300 Subject: [PATCH] Simplify scaling in R_AddEfrags and R_CullModelForEntity --- Quake/gl_refrag.c | 10 ++-------- Quake/gl_rmain.c | 24 ++++++++++-------------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/Quake/gl_refrag.c b/Quake/gl_refrag.c index 146452c2..21158d39 100644 --- a/Quake/gl_refrag.c +++ b/Quake/gl_refrag.c @@ -182,14 +182,8 @@ void R_AddEfrags (entity_t *ent) scalefactor = ENTSCALE_DECODE(ent->scale); if (scalefactor != 1.0f) { - vec3_t boundVec, scaledVec; - VectorCopy (entmodel->mins, boundVec); - VectorScale (boundVec, scalefactor, scaledVec); - VectorAdd (ent->origin, scaledVec, r_emins); - - VectorCopy (entmodel->maxs, boundVec); - VectorScale (boundVec, scalefactor, scaledVec); - VectorAdd (ent->origin, scaledVec, r_emaxs); + VectorMA (ent->origin, scalefactor, entmodel->mins, r_emins); + VectorMA (ent->origin, scalefactor, entmodel->maxs, r_emaxs); } else { diff --git a/Quake/gl_rmain.c b/Quake/gl_rmain.c index 5310f494..0aa056ac 100644 --- a/Quake/gl_rmain.c +++ b/Quake/gl_rmain.c @@ -293,34 +293,30 @@ R_CullModelForEntity -- johnfitz -- uses correct bounds based on rotation */ qboolean R_CullModelForEntity (entity_t *e) { - vec3_t mins, maxs, minbounds, maxbounds; - vec_t scalefactor; + vec3_t mins, maxs; + vec_t scalefactor, *minbounds, *maxbounds; if (e->angles[0] || e->angles[2]) //pitch or roll { - VectorCopy (e->model->rmins, minbounds); - VectorCopy (e->model->rmaxs, maxbounds); - + minbounds = e->model->rmins; + maxbounds = e->model->rmaxs; } else if (e->angles[1]) //yaw { - VectorCopy (e->model->ymins, minbounds); - VectorCopy (e->model->ymaxs, maxbounds); + minbounds = e->model->ymins; + maxbounds = e->model->ymaxs; } else //no rotation { - VectorCopy (e->model->mins, minbounds); - VectorCopy (e->model->maxs, maxbounds); + minbounds = e->model->mins; + maxbounds = e->model->maxs; } scalefactor = ENTSCALE_DECODE(e->scale); if (scalefactor != 1.0f) { - vec3_t scaledVec; - VectorScale (minbounds, scalefactor, scaledVec); - VectorAdd (e->origin, scaledVec, mins); - VectorScale (maxbounds, scalefactor, scaledVec); - VectorAdd (e->origin, scaledVec, maxs); + VectorMA (e->origin, scalefactor, minbounds, mins); + VectorMA (e->origin, scalefactor, maxbounds, maxs); } else {