From f4d8ccf7b90164f4db0b7ee453743c612bb8e3b1 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 30 Aug 2022 22:17:08 +0200 Subject: [PATCH] - floatified WarpToCoords --- source/core/gamestruct.h | 2 +- source/core/inputstate.cpp | 2 +- source/games/blood/src/blood.h | 2 +- source/games/blood/src/osdcmd.cpp | 9 +++++---- source/games/duke/src/ccmds.cpp | 6 +++--- source/games/duke/src/duke3d.h | 2 +- source/games/exhumed/src/exhumed.h | 2 +- source/games/exhumed/src/osdcmds.cpp | 8 ++++---- source/games/sw/src/game.h | 2 +- source/games/sw/src/osdcmds.cpp | 8 ++++---- 10 files changed, 22 insertions(+), 21 deletions(-) diff --git a/source/core/gamestruct.h b/source/core/gamestruct.h index b1f828d70..b5049ddac 100644 --- a/source/core/gamestruct.h +++ b/source/core/gamestruct.h @@ -112,7 +112,7 @@ struct GameInterface virtual fixed_t playerHorizMin() { return IntToFixed(-200); } virtual fixed_t playerHorizMax() { return IntToFixed(200); } virtual int playerKeyMove() { return 0; } - virtual void WarpToCoords(int x, int y, int z, int a, int h) {} + virtual void WarpToCoords(double x, double y, double z, DAngle a, int h) {} virtual void ToggleThirdPerson() { } virtual void SwitchCoopView() { Printf("Unsupported command\n"); } virtual void ToggleShowWeapon() { Printf("Unsupported command\n"); } diff --git a/source/core/inputstate.cpp b/source/core/inputstate.cpp index 661333a5a..b14002e9c 100644 --- a/source/core/inputstate.cpp +++ b/source/core/inputstate.cpp @@ -387,7 +387,7 @@ CCMD(warptocoords) horiz = atoi(argv[5]); } - gi->WarpToCoords(x, y, z, ang, horiz); + gi->WarpToCoords(x, y, z, DAngle::fromDeg(ang), horiz); } CCMD(third_person_view) diff --git a/source/games/blood/src/blood.h b/source/games/blood/src/blood.h index 2dbef79e7..6e948b2b0 100644 --- a/source/games/blood/src/blood.h +++ b/source/games/blood/src/blood.h @@ -138,7 +138,7 @@ struct GameInterface : public ::GameInterface fixed_t playerHorizMin() override { return IntToFixed(-180); } fixed_t playerHorizMax() override { return IntToFixed(120); } int playerKeyMove() override { return 1024; } - void WarpToCoords(int x, int y, int z, int a, int h) override; + void WarpToCoords(double x, double y, double z, DAngle a, int h) override; void ToggleThirdPerson() override; void SwitchCoopView() override; void ToggleShowWeapon() override; diff --git a/source/games/blood/src/osdcmd.cpp b/source/games/blood/src/osdcmd.cpp index 29a305df9..ae7622b32 100644 --- a/source/games/blood/src/osdcmd.cpp +++ b/source/games/blood/src/osdcmd.cpp @@ -31,20 +31,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_BLD_NS -void GameInterface::WarpToCoords(int x, int y, int z, int ang, int horz) +void GameInterface::WarpToCoords(double x, double y, double z, DAngle ang, int horz) { PLAYER* pPlayer = &gPlayer[myconnectindex]; VIEW* pView = &gPrevView[myconnectindex]; + gView->actor->spr.pos.XY() = { x , y }; pPlayer->actor->spr.pos.XY() = gView->actor->spr.pos.XY(); pView->x = gView->actor->int_pos().X; pView->y = gView->actor->int_pos().Y; pPlayer->zView = pView->viewz = gView->zView = z; - if (ang != INT_MIN) + if (ang != DAngle::fromDeg(INT_MIN)) { - pPlayer->angle.oang = pPlayer->angle.ang = gView->angle.ang = DAngle::fromBuild(ang); - pView->angle = DAngle::fromBuild(ang); + pPlayer->angle.oang = pPlayer->angle.ang = gView->angle.ang = ang; + pView->angle = ang; } if (horz != INT_MIN) diff --git a/source/games/duke/src/ccmds.cpp b/source/games/duke/src/ccmds.cpp index 7ab62daa6..4d0ed129e 100644 --- a/source/games/duke/src/ccmds.cpp +++ b/source/games/duke/src/ccmds.cpp @@ -111,16 +111,16 @@ static int ccmd_spawn(CCmdFuncPtr parm) return CCMD_OK; } -void GameInterface::WarpToCoords(int x, int y, int z, int ang, int horz) +void GameInterface::WarpToCoords(double x, double y, double z, DAngle ang, int horz) { player_struct* p = &ps[myconnectindex]; p->pos = DVector3(x, y, z); p->backupxyz(); - if (ang != INT_MIN) + if (ang != DAngle::fromDeg(INT_MIN)) { - p->angle.oang = p->angle.ang = DAngle::fromBuild(ang); + p->angle.oang = p->angle.ang = ang; } if (horz != INT_MIN) diff --git a/source/games/duke/src/duke3d.h b/source/games/duke/src/duke3d.h index 9da798feb..475e8d295 100644 --- a/source/games/duke/src/duke3d.h +++ b/source/games/duke/src/duke3d.h @@ -52,7 +52,7 @@ struct GameInterface : public ::GameInterface void LevelCompleted(MapRecord* map, int skill) override; bool DrawAutomapPlayer(int mx, int my, int x, int y, const double z, const DAngle a, double const smoothratio) override; int playerKeyMove() override { return 40; } - void WarpToCoords(int x, int y, int z, int a, int h) override; + void WarpToCoords(double x, double y, double z, DAngle ang, int horz) override; void ToggleThirdPerson() override; void SwitchCoopView() override; void ToggleShowWeapon() override; diff --git a/source/games/exhumed/src/exhumed.h b/source/games/exhumed/src/exhumed.h index ce53e51cb..f49e1d805 100644 --- a/source/games/exhumed/src/exhumed.h +++ b/source/games/exhumed/src/exhumed.h @@ -234,7 +234,7 @@ struct GameInterface : public ::GameInterface fixed_t playerHorizMin() override { return IntToFixed(-150); } fixed_t playerHorizMax() override { return IntToFixed(150); } int playerKeyMove() override { return 6; } - void WarpToCoords(int x, int y, int z, int a, int h) override; + void WarpToCoords(double x, double y, double z, DAngle ang, int horz) override; void ToggleThirdPerson() override; vec3_t chaseCamPos(DAngle ang, fixedhoriz horiz) { return vec3_t(int(-ang.Cos() * 1536.), int(-ang.Sin() * 1536.), (horiz.asq16() * 3) >> 10); } void processSprites(tspriteArray& tsprites, int viewx, int viewy, int viewz, DAngle viewang, double smoothRatio) override; diff --git a/source/games/exhumed/src/osdcmds.cpp b/source/games/exhumed/src/osdcmds.cpp index 352077a06..0aeca0549 100644 --- a/source/games/exhumed/src/osdcmds.cpp +++ b/source/games/exhumed/src/osdcmds.cpp @@ -33,16 +33,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_PS_NS -void GameInterface::WarpToCoords(int x, int y, int z, int ang, int horz) +void GameInterface::WarpToCoords(double x, double y, double z, DAngle ang, int horz) { Player *nPlayer = &PlayerList[nLocalPlayer]; - nPlayer->pActor->set_int_pos({ x, y, z }); + nPlayer->pActor->spr.pos = DVector3(x, y, z); nPlayer->pActor->backuppos(); - if (ang != INT_MIN) + if (ang != DAngle::fromDeg(INT_MIN)) { - nPlayer->angle.oang = nPlayer->angle.ang = DAngle::fromBuild(ang); + nPlayer->angle.oang = nPlayer->angle.ang = ang; } if (horz != INT_MIN) diff --git a/source/games/sw/src/game.h b/source/games/sw/src/game.h index ed0e00a7f..e1ca3787a 100644 --- a/source/games/sw/src/game.h +++ b/source/games/sw/src/game.h @@ -2050,7 +2050,7 @@ struct GameInterface : public ::GameInterface void NewGame(MapRecord *map, int skill, bool) override; bool DrawAutomapPlayer(int mx, int my, int x, int y, const double z, const DAngle a, double const smoothratio) override; int playerKeyMove() override { return 35; } - void WarpToCoords(int x, int y, int z, int a, int h) override; + void WarpToCoords(double x, double y, double z, DAngle ang, int horz) override; void ToggleThirdPerson() override; void SwitchCoopView() override; vec3_t chaseCamPos(DAngle ang, fixedhoriz horiz) { return vec3_t(int(-ang.Cos() * 2048.), int(-ang.Sin() * 2048.), horiz.asq16() >> 8); } diff --git a/source/games/sw/src/osdcmds.cpp b/source/games/sw/src/osdcmds.cpp index 3dff06875..8feaea51f 100644 --- a/source/games/sw/src/osdcmds.cpp +++ b/source/games/sw/src/osdcmds.cpp @@ -48,15 +48,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_SW_NS -void GameInterface::WarpToCoords(int x, int y, int z, int ang, int horz) +void GameInterface::WarpToCoords(double x, double y, double z, DAngle ang, int horz) { - Player->set_int_ppos({x,y,z}); + Player->pos = DVector3(x,y,z); Player->opos = Player->pos; - if (ang != INT_MIN) + if (ang != DAngle::fromDeg(INT_MIN)) { - Player->angle.oang = Player->angle.ang = DAngle::fromBuild(ang); + Player->angle.oang = Player->angle.ang = ang; } if (horz != INT_MIN)