mirror of
https://github.com/DrBeef/Raze.git
synced 2025-02-01 05:20:43 +00:00
- floatified WarpToCoords
This commit is contained in:
parent
38a2d31907
commit
f4d8ccf7b9
10 changed files with 22 additions and 21 deletions
|
@ -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"); }
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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); }
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue