diff --git a/extern/rstl/include/rstl/single_ptr.hpp b/extern/rstl/include/rstl/single_ptr.hpp index 0ead33bc2..1de2c71fd 100644 --- a/extern/rstl/include/rstl/single_ptr.hpp +++ b/extern/rstl/include/rstl/single_ptr.hpp @@ -7,12 +7,12 @@ namespace rstl { template < typename T > class single_ptr { - mutable T* x0_ptr; + T* x0_ptr; public: single_ptr() : x0_ptr(nullptr) {} single_ptr(T* ptr) : x0_ptr(ptr) {} - single_ptr(const single_ptr& other) : x0_ptr(other.x0_ptr) { other.x0_ptr = nullptr; } + single_ptr(single_ptr& other) : x0_ptr(other.x0_ptr) { other.x0_ptr = nullptr; } ~single_ptr() { delete x0_ptr; } single_ptr& operator=(single_ptr& other) { if (&other == this) { @@ -32,9 +32,9 @@ class single_ptr { T* get() const { return x0_ptr; } // const T* get() const { return x0_ptr; } - T* operator->() const { return x0_ptr; } + T* const operator->() const { return x0_ptr; } T& operator*() { return *x0_ptr; } - const T& operator*() const { return *x0_ptr; } + T& operator*() const { return *x0_ptr; } bool null() const { return x0_ptr == nullptr; } T* release() { diff --git a/src/Kyoto/Graphics/DolphinCTexture.cpp b/src/Kyoto/Graphics/DolphinCTexture.cpp index 5c271052c..ddd936b9c 100644 --- a/src/Kyoto/Graphics/DolphinCTexture.cpp +++ b/src/Kyoto/Graphics/DolphinCTexture.cpp @@ -277,15 +277,15 @@ void* CTexture::CDumpedBitmapDataReloader::TryBuildReloadedBitmapData(CResFactor SObjectTag tag('TXTR', x4_); rstl::single_ptr< CInputStream > buf = factory.LoadResourceFromMemorySync(tag, x18_.get()); - CInputStream* in = buf.get(); - ETexelFormat format = ETexelFormat(in->ReadInt32()); - const int w = in->ReadInt16(); - const int h = in->ReadInt16(); - const int numMips = in->ReadInt32(); + CInputStream& in = *buf; + ETexelFormat format = ETexelFormat(in.ReadInt32()); + const int w = in.ReadInt16(); + const int h = in.ReadInt16(); + const int numMips = in.ReadInt32(); const int bitsPerPixel = TexelFormatBitsPerPixel(format); if (IsCITextureFormat(format)) { - CGraphicsPalette tmp(*in); + CGraphicsPalette tmp(in); } int bufLen = 0; @@ -305,7 +305,7 @@ void* CTexture::CDumpedBitmapDataReloader::TryBuildReloadedBitmapData(CResFactor len = 256; } - in->Get((char*)ptr + off, len); + in.Get((char*)ptr + off, len); DCFlushRangeNoSync((char*)ptr + off, OSRoundUp32B(len)); } PPCSync(); diff --git a/src/MetroidPrime/CActor.cpp b/src/MetroidPrime/CActor.cpp index 61b9769a5..5db59dffd 100644 --- a/src/MetroidPrime/CActor.cpp +++ b/src/MetroidPrime/CActor.cpp @@ -858,7 +858,8 @@ bool CActor::CanDrawStatic() const { if (!GetActive() || !HasModelData() || static_cast< char >(xb4_drawFlags.GetBlendMode()) > 4) { return false; } - if (GetModelData()->IsNull() || GetModelData()->HasAnimation()) { + const CModelData* modelData = GetModelData(); + if (modelData->IsNull() || modelData->HasAnimation()) { return false; } return true; diff --git a/src/MetroidPrime/Cameras/CBallCamera.cpp b/src/MetroidPrime/Cameras/CBallCamera.cpp index 117a13e84..039cc80b7 100644 --- a/src/MetroidPrime/Cameras/CBallCamera.cpp +++ b/src/MetroidPrime/Cameras/CBallCamera.cpp @@ -1634,8 +1634,7 @@ void CBallCamera::UpdateUsingColliders(float dt, CStateManager& mgr) { } } - camDelta = CVector3f(x294_dampedPos[kDX] - desiredPos[kDX], x294_dampedPos[kDY] - desiredPos[kDY], - x294_dampedPos[kDZ] - desiredPos[kDZ]); + camDelta = x294_dampedPos - desiredPos; float dampDeltaMag = camDelta.Magnitude(); if (camDelta.CanBeNormalized()) { camDelta.Normalize(); diff --git a/src/MetroidPrime/Enemies/CPatterned.cpp b/src/MetroidPrime/Enemies/CPatterned.cpp index ea276656e..9e8e83753 100644 --- a/src/MetroidPrime/Enemies/CPatterned.cpp +++ b/src/MetroidPrime/Enemies/CPatterned.cpp @@ -203,11 +203,7 @@ CPatterned::CPatterned(const EPatternedAI character, const TUniqueId uid, const SetRenderParticleDatabaseInside(false); - bool buildBodyController = false; - if (ModelData() && ModelData()->IsNotNull()) { - buildBodyController = true; - } - if (buildBodyController) { + if (HasModelData()) { x402_27_noXrayModel = !ModelData()->HasModel(CModelData::kWM_XRay); BuildBodyController(body); }