* Fixed boats falling and a TP glitch #266 * Replaced every C-style cast with C++ ones * Replaced every C-style cast with C++ ones * Fixed boats falling and a TP glitch #266 * Updated NULL to nullptr and fixing some type issues * Modernized and fixed a few bugs - Replaced most instances of `NULL` with `nullptr`. - Replaced most `shared_ptr(new ...)` with `make_shared`. - Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances. * Fixing more conflicts * Replace int loops with size_t and start work on overrides
62 lines
1.1 KiB
C++
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 nullptr;
|
|
} |