From 210ebefd3dd12d407188a47945a6c694bbf6d102 Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Sun, 29 Oct 2023 21:05:44 +1100 Subject: [PATCH] - Consolidate player coord stat/CCMD into `coreplayer.cpp`. --- source/core/coreplayer.cpp | 60 ++++++++++++++++++++++++++++++++++++++ source/core/coreplayer.h | 1 + source/core/gamecvars.cpp | 19 ------------ source/core/gameinput.cpp | 29 ------------------ 4 files changed, 61 insertions(+), 48 deletions(-) diff --git a/source/core/coreplayer.cpp b/source/core/coreplayer.cpp index 1cbd26fa7..fc47b6a1a 100644 --- a/source/core/coreplayer.cpp +++ b/source/core/coreplayer.cpp @@ -272,3 +272,63 @@ void DCorePlayer::doRollInput(const bool bUnderwater) actor->spr.Angles.Roll += cmd.ucmd.ang.Roll * gameInput.SyncInput(); } } + + +//--------------------------------------------------------------------------- +// +// Stat for console player's position/angles. +// +//--------------------------------------------------------------------------- + +ADD_STAT(coord) +{ + FString out; + const auto p = PlayerArray[myconnectindex]; + if (const auto pActor = p->GetActor()) + { + out.AppendFormat("X: %.4f ", pActor->spr.pos.X); + out.AppendFormat("Y: %.4f ", pActor->spr.pos.Y); + out.AppendFormat("Z: %.4f\n", pActor->spr.pos.Z); + out.AppendFormat("Yaw: %.4f ", pActor->spr.Angles.Yaw.Degrees()); + out.AppendFormat("Pitch: %.4f ", pActor->spr.Angles.Pitch.Degrees()); + out.AppendFormat("Roll: %.4f\n", pActor->spr.Angles.Roll.Degrees()); + out.AppendFormat("View Yaw: %.4f ", p->ViewAngles.Yaw.Degrees()); + out.AppendFormat("View Pitch: %.4f ", p->ViewAngles.Pitch.Degrees()); + out.AppendFormat("View Roll: %.4f\n", p->ViewAngles.Roll.Degrees()); + } + return out; +} + + +//--------------------------------------------------------------------------- +// +// CCMD to warp console player to the given coordinates. +// +//--------------------------------------------------------------------------- + +CCMD(warptocoords) +{ + if (netgame) + { + Printf("warptocoords cannot be used in multiplayer.\n"); + return; + } + if (argv.argc() < 4) + { + Printf("warptocoords [x] [y] [z] [yaw] (optional) [pitch] (optional): warps the player to the specified coordinates\n"); + return; + } + if (gamestate != GS_LEVEL) + { + Printf("warptocoords: must be in a level\n"); + return; + } + + if (const auto pActor = PlayerArray[myconnectindex]->GetActor()) + { + pActor->spr.pos = DVector3(atof(argv[1]), atof(argv[2]), atof(argv[3])); + if (argv.argc() > 4) pActor->spr.Angles.Yaw = DAngle::fromDeg(atof(argv[4])); + if (argv.argc() > 5) pActor->spr.Angles.Pitch = DAngle::fromDeg(atof(argv[5])); + pActor->backuploc(); + } +} diff --git a/source/core/coreplayer.h b/source/core/coreplayer.h index 88682d282..d9385409c 100644 --- a/source/core/coreplayer.h +++ b/source/core/coreplayer.h @@ -2,6 +2,7 @@ #include "d_net.h" #include "packet.h" +#include "gamestate.h" #include "gamefuncs.h" class DCorePlayer : public DObject diff --git a/source/core/gamecvars.cpp b/source/core/gamecvars.cpp index 033c3c82c..2cd98356d 100644 --- a/source/core/gamecvars.cpp +++ b/source/core/gamecvars.cpp @@ -249,25 +249,6 @@ ADD_STAT(fps) return gi->statFPS(); } -ADD_STAT(coord) -{ - FString out; - const auto p = PlayerArray[myconnectindex]; - if (const auto pActor = p->GetActor()) - { - out.AppendFormat("X: %.4f ", pActor->spr.pos.X); - out.AppendFormat("Y: %.4f ", pActor->spr.pos.Y); - out.AppendFormat("Z: %.4f\n", pActor->spr.pos.Z); - out.AppendFormat("Yaw: %.4f ", pActor->spr.Angles.Yaw.Degrees()); - out.AppendFormat("Pitch: %.4f ", pActor->spr.Angles.Pitch.Degrees()); - out.AppendFormat("Roll: %.4f\n", pActor->spr.Angles.Roll.Degrees()); - out.AppendFormat("View Yaw: %.4f ", p->ViewAngles.Yaw.Degrees()); - out.AppendFormat("View Pitch: %.4f ", p->ViewAngles.Pitch.Degrees()); - out.AppendFormat("View Roll: %.4f\n", p->ViewAngles.Roll.Degrees()); - } - return out; -} - CUSTOM_CVARD(Int, r_showfps, 0, 0, "show the frame rate counter") { if (self < 0 || self > 3) self = 1; diff --git a/source/core/gameinput.cpp b/source/core/gameinput.cpp index 6b6af357f..fb2cb9b9b 100644 --- a/source/core/gameinput.cpp +++ b/source/core/gameinput.cpp @@ -22,9 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. //------------------------------------------------------------------------- #include "menu.h" -#include "gamestate.h" #include "gameinput.h" -#include "coreplayer.h" #include "g_input.h" //--------------------------------------------------------------------------- @@ -439,33 +437,6 @@ CCMD(holsterweapon) gameInput.SendAction(SB_HOLSTER); } -CCMD(warptocoords) -{ - if (netgame) - { - Printf("warptocoords cannot be used in multiplayer.\n"); - return; - } - if (argv.argc() < 4) - { - Printf("warptocoords [x] [y] [z] [yaw] (optional) [pitch] (optional): warps the player to the specified coordinates\n"); - return; - } - if (gamestate != GS_LEVEL) - { - Printf("warptocoords: must be in a level\n"); - return; - } - - if (const auto pActor = PlayerArray[myconnectindex]->GetActor()) - { - pActor->spr.pos = DVector3(atof(argv[1]), atof(argv[2]), atof(argv[3])); - if (argv.argc() > 4) pActor->spr.Angles.Yaw = DAngle::fromDeg(atof(argv[4])); - if (argv.argc() > 5) pActor->spr.Angles.Pitch = DAngle::fromDeg(atof(argv[5])); - pActor->backuploc(); - } -} - CCMD(third_person_view) { gi->ToggleThirdPerson();