From 3dd325f70833de5a3ddfa89f63fb9496797e8a57 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 19 Jun 2020 00:28:22 -0400 Subject: [PATCH] CDamageableTriggerExtra: Make use of unique_ptr Safer lifetime management. --- src/Core/ScriptExtra/CDamageableTriggerExtra.cpp | 7 ++----- src/Core/ScriptExtra/CDamageableTriggerExtra.h | 3 ++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp b/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp index f5e49a3f..9acc7bcf 100644 --- a/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp +++ b/src/Core/ScriptExtra/CDamageableTriggerExtra.cpp @@ -31,15 +31,12 @@ CDamageableTriggerExtra::CDamageableTriggerExtra(CScriptObject *pInstance, CScen } } -CDamageableTriggerExtra::~CDamageableTriggerExtra() -{ - delete mpMat; -} +CDamageableTriggerExtra::~CDamageableTriggerExtra() = default; void CDamageableTriggerExtra::CreateMaterial() { ASSERT(!mpMat); - mpMat = new CMaterial(mGame, EVertexAttribute::Position | EVertexAttribute::Normal | EVertexAttribute::Tex0); + mpMat = std::make_unique(mGame, EVertexAttribute::Position | EVertexAttribute::Normal | EVertexAttribute::Tex0); // Most values/TEV setup were found from the executable + from graphics debuggers // Animation parameters are estimates from eyeballing the values ingame diff --git a/src/Core/ScriptExtra/CDamageableTriggerExtra.h b/src/Core/ScriptExtra/CDamageableTriggerExtra.h index 0f09fb15..8e5ecdfb 100644 --- a/src/Core/ScriptExtra/CDamageableTriggerExtra.h +++ b/src/Core/ScriptExtra/CDamageableTriggerExtra.h @@ -3,6 +3,7 @@ #include "CScriptExtra.h" #include +#include class CDamageableTriggerExtra : public CScriptExtra { @@ -24,7 +25,7 @@ private: TEnumRef mRenderSide; std::array mTextureAssets; - CMaterial* mpMat = nullptr; + std::unique_ptr mpMat; std::array mpTextures{}; CVector2f mCoordScale;