CAnimEventLoader: Use unique_ptr more

Makes memory handling a little more robust.
This commit is contained in:
Lioncash
2020-06-11 21:05:14 -04:00
parent ecbd3eb83d
commit 2a5ab1ed32
4 changed files with 19 additions and 15 deletions

View File

@@ -14,6 +14,8 @@
#include "Core/Resource/Model/CModel.h"
#include <Common/BasicTypes.h>
#include <memory>
#include <set>
#include <vector>
// Animation structures
@@ -99,7 +101,7 @@ class CAnimSet : public CResource
float mDefaultAdditiveFadeIn;
float mDefaultAdditiveFadeOut;
std::vector<SHalfTransition> mHalfTransitions;
std::vector<CAnimEventData*> mAnimEvents; // note: these are for MP2, where event data isn't a standalone resource; these are owned by the animset
std::vector<std::unique_ptr<CAnimEventData>> mAnimEvents; // note: these are for MP2, where event data isn't a standalone resource; these are owned by the animset
public:
CAnimSet(CResourceEntry *pEntry = 0)
@@ -124,7 +126,6 @@ public:
for (uint32 iEvent = 0; iEvent < mAnimEvents.size(); iEvent++)
{
ASSERT(mAnimEvents[iEvent] && !mAnimEvents[iEvent]->Entry());
delete mAnimEvents[iEvent];
}
}
@@ -232,7 +233,7 @@ public:
else
{
return (Index < mAnimEvents.size() ? mAnimEvents[Index] : nullptr);
return (Index < mAnimEvents.size() ? mAnimEvents[Index].get() : nullptr);
}
}
};