From 8a94022f5df76fafd9b96c45508c335387b2fc15 Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Thu, 30 Dec 2021 22:04:00 +1100 Subject: [PATCH] - Duke: - Duke: Replace `FireProj` position and velocity variables with vectors. --- source/games/duke/src/actors_d.cpp | 12 +++++------- source/games/duke/src/savegame.cpp | 12 ++++++------ source/games/duke/src/types.h | 3 +-- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index 2253b1283..cbb2b3edb 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -1452,19 +1452,17 @@ static bool movefireball(DDukeActor* actor) if (trail) { FireProj* proj = &trail->fproj; - ball->spr.pos.X = proj->x; - ball->spr.pos.Y = proj->y; - ball->spr.pos.Z = proj->z; - ball->spr.xvel = proj->xv; - ball->spr.yvel = proj->yv; - ball->spr.zvel = proj->zv; + ball->spr.pos = proj->pos; + ball->spr.xvel = proj->vel.X; + ball->spr.yvel = proj->vel.Y; + ball->spr.zvel = proj->vel.Z; } } ball->spr.yrepeat = ball->spr.xrepeat = (uint8_t)(actor->spr.xrepeat * siz); ball->spr.cstat = actor->spr.cstat; ball->spr.extra = 0; - ball->fproj = { ball->spr.pos.X, ball->spr.pos.Y, ball->spr.pos.Z, ball->spr.xvel, ball->spr.yvel, ball->spr.zvel }; + ball->fproj = { ball->spr.pos, { ball->spr.xvel, ball->spr.yvel, ball->spr.zvel } }; ChangeActorStat(ball, STAT_PROJECTILE); } diff --git a/source/games/duke/src/savegame.cpp b/source/games/duke/src/savegame.cpp index 3bfc6a665..1afe87e98 100644 --- a/source/games/duke/src/savegame.cpp +++ b/source/games/duke/src/savegame.cpp @@ -51,12 +51,12 @@ static FSerializer& Serialize(FSerializer& arc, const char* key, FireProj& p, Fi { if (arc.BeginObject(key)) { - arc("x", p.x) - ("y", p.y) - ("z", p.z) - ("xv", p.xv) - ("yv", p.yv) - ("zv", p.zv) + arc("x", p.pos.X) + ("y", p.pos.Y) + ("z", p.pos.Z) + ("xv", p.vel.X) + ("yv", p.vel.Y) + ("zv", p.vel.Z) .EndObject(); } return arc; diff --git a/source/games/duke/src/types.h b/source/games/duke/src/types.h index f5db1ba8a..0e6e5014a 100644 --- a/source/games/duke/src/types.h +++ b/source/games/duke/src/types.h @@ -23,8 +23,7 @@ struct STATUSBARTYPE struct FireProj { - int x, y, z; - int xv, yv, zv; + vec3_t pos, vel; }; class DDukeActor : public DCoreActor