diff --git a/TR5Main/Scripting/GameScriptPosition.cpp b/TR5Main/Scripting/GameScriptPosition.cpp index 838994043..b2caa84a7 100644 --- a/TR5Main/Scripting/GameScriptPosition.cpp +++ b/TR5Main/Scripting/GameScriptPosition.cpp @@ -1,59 +1,36 @@ #include "framework.h" #include "GameScriptPosition.h" #include +#include "phd_global.h" void GameScriptPosition::Register(sol::state* state) { state->new_usertype("Position", sol::constructors(), - "X", sol::property(&GameScriptPosition::GetX, &GameScriptPosition::SetX), - "Y", sol::property(&GameScriptPosition::GetY, &GameScriptPosition::SetY), - "Z", sol::property(&GameScriptPosition::GetZ, &GameScriptPosition::SetZ) + "X", &GameScriptPosition::x, + "Y", &GameScriptPosition::y, + "Z", &GameScriptPosition::z ); } -GameScriptPosition::GameScriptPosition(int x, int y, int z) +GameScriptPosition::GameScriptPosition(int aX, int aY, int aZ) { - SetX(x); - SetY(y); - SetZ(z); + x = aX; + y = aY; + z = aZ; } -int GameScriptPosition::GetX() const +GameScriptPosition::GameScriptPosition(PHD_3DPOS const& pos) { - return x; + x = pos.xPos; + y = pos.yPos; + z = pos.zPos; } -void GameScriptPosition::SetX(int x) +void GameScriptPosition::StoreInPHDPos(PHD_3DPOS& pos) const { - if (x < INT_MIN || x > INT_MAX) - return; - else - this->x = x; + pos.xPos = x; + pos.yPos = y; + pos.zPos = z; } -int GameScriptPosition::GetY() const -{ - return y; -} - -void GameScriptPosition::SetY(int y) -{ - if (y < INT_MIN || y > INT_MAX) - return; - else - this->y = y; -} - -int GameScriptPosition::GetZ() const -{ - return z; -} - -void GameScriptPosition::SetZ(int z) -{ - if (z < INT_MIN || z > INT_MAX) - return; - else - this->z = z; -} \ No newline at end of file diff --git a/TR5Main/Scripting/GameScriptPosition.h b/TR5Main/Scripting/GameScriptPosition.h index 429d68911..4253001a0 100644 --- a/TR5Main/Scripting/GameScriptPosition.h +++ b/TR5Main/Scripting/GameScriptPosition.h @@ -5,21 +5,17 @@ namespace sol { class state; } +struct PHD_3DPOS; class GameScriptPosition { -private: +public: int x; int y; int z; public: GameScriptPosition(int x, int y, int z); + GameScriptPosition(PHD_3DPOS const& pos); static void Register(sol::state*); - - int GetX() const; - void SetX(int x); - int GetY() const; - void SetY(int y); - int GetZ() const; - void SetZ(int z); -}; \ No newline at end of file + void StoreInPHDPos(PHD_3DPOS& pos) const; +}; diff --git a/TR5Main/Scripting/GameScriptRotation.cpp b/TR5Main/Scripting/GameScriptRotation.cpp index 840b53684..8ff6758a5 100644 --- a/TR5Main/Scripting/GameScriptRotation.cpp +++ b/TR5Main/Scripting/GameScriptRotation.cpp @@ -1,58 +1,35 @@ #include "framework.h" #include "GameScriptRotation.h" +#include "phd_global.h" void GameScriptRotation::Register(sol::state* state) { state->new_usertype("Rotation", sol::constructors(), - "X", sol::property(&GameScriptRotation::GetX, &GameScriptRotation::SetX), - "Y", sol::property(&GameScriptRotation::GetY, &GameScriptRotation::SetY), - "Z", sol::property(&GameScriptRotation::GetZ, &GameScriptRotation::SetZ) - ); + "X", &GameScriptRotation::x, + "Y", &GameScriptRotation::y, + "Z", &GameScriptRotation::z + ); } -GameScriptRotation::GameScriptRotation(int x, int y, int z) +GameScriptRotation::GameScriptRotation(int aX, int aY, int aZ) { - SetX(x); - SetY(y); - SetZ(z); + x = aX; + y = aY; + z = aZ; } -int GameScriptRotation::ConvertRotation(int a) +void GameScriptRotation::StoreInPHDPos(PHD_3DPOS& pos) const { - short component = std::clamp(a, -359, 359); - component = static_cast(lround((component/360.0f) * std::numeric_limits::max())); - component = component - std::numeric_limits::max(); - return component; + pos.xRot = x; + pos.yRot = y; + pos.zRot = z; } -int GameScriptRotation::GetX() const +GameScriptRotation::GameScriptRotation(PHD_3DPOS const & pos) { - return x; + x = pos.xRot; + y = pos.yRot; + z = pos.zRot; } - -void GameScriptRotation::SetX(int x) -{ - this->x = ConvertRotation(x); -} - -int GameScriptRotation::GetY() const -{ - return y; -} - -void GameScriptRotation::SetY(int y) -{ - this->y = ConvertRotation(y); -} - -int GameScriptRotation::GetZ() const -{ - return z; -} - -void GameScriptRotation::SetZ(int z) -{ - this->z = ConvertRotation(z); -} \ No newline at end of file diff --git a/TR5Main/Scripting/GameScriptRotation.h b/TR5Main/Scripting/GameScriptRotation.h index 9a044d0b7..21571b8f9 100644 --- a/TR5Main/Scripting/GameScriptRotation.h +++ b/TR5Main/Scripting/GameScriptRotation.h @@ -5,22 +5,17 @@ namespace sol { class state; } +struct PHD_3DPOS; class GameScriptRotation { -private: +public: int x; int y; int z; - int ConvertRotation(int a); public: GameScriptRotation(int x, int y, int z); static void Register(sol::state*); - - int GetX() const; - void SetX(int x); - int GetY() const; - void SetY(int y); - int GetZ() const; - void SetZ(int z); -}; \ No newline at end of file + void StoreInPHDPos(PHD_3DPOS& pos) const; + GameScriptRotation(PHD_3DPOS const& pos); +};