Files
Loki Rautio 087b7e7abf Revert "Project modernization (#630)"
This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.

This reverts commit a9be52c41a.
2026-03-07 21:12:22 -06:00

62 lines
1.1 KiB
C++

#include "stdafx.h"
#include "Entity.h"
#include "EntityPos.h"
EntityPos::EntityPos(double x, double y, double z, float yRot, float xRot)
{
this->x = x;
this->y = y;
this->z = z;
this->yRot = yRot;
this->xRot = xRot;
rot = true;
move = true;
}
EntityPos::EntityPos(double x, double y, double z)
{
yRot = xRot = 0.0f;
this->x = x;
this->y = y;
this->z = z;
move = true;
rot = false;
}
EntityPos::EntityPos(float yRot, float xRot)
{
x = y = z = 0.0;
this->yRot = yRot;
this->xRot = xRot;
rot = true;
move = false;
}
EntityPos *EntityPos::lerp(shared_ptr<Entity> e, float f)
{
double xd = e->x+(x-e->x)*f;
double yd = e->y+(y-e->y)*f;
double zd = e->z+(z-e->z)*f;
float yrdd = Mth::wrapDegrees(yRot - e->yRot);
float xrdd = Mth::wrapDegrees(xRot - e->xRot);
float yrd = Mth::wrapDegrees(e->yRot + yrdd * f);
float xrd = Mth::wrapDegrees(e->xRot + xrdd * f);
if (rot && move)
{
return new EntityPos(xd, yd, zd, yrd, xrd);
}
if (move)
{
return new EntityPos(xd, yd, zd);
}
if (rot)
{
return new EntityPos(yrd, xrd);
}
return NULL;
}