mirror of
https://github.com/isledecomp/isle-portable.git
synced 2024-11-26 17:36:12 -05:00
Refine MxObjectFactory (#205)
* Refine MxObjectFactory * Change interface of Destroy --------- Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
parent
a24a798c82
commit
c66b6aa123
4 changed files with 13 additions and 11 deletions
|
@ -29,7 +29,7 @@ MxCore *LegoObjectFactory::Create(const char *p_name)
|
|||
}
|
||||
|
||||
// OFFSET: LEGO1 0x1000fb30 STUB
|
||||
void LegoObjectFactory::Destroy(void *p_object)
|
||||
void LegoObjectFactory::Destroy(MxCore *p_object)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ class LegoObjectFactory : public MxObjectFactory
|
|||
public:
|
||||
LegoObjectFactory();
|
||||
virtual MxCore *Create(const char *p_name) override; // vtable 0x14
|
||||
virtual void Destroy(void *p_object) override; // vtable 0x18
|
||||
virtual void Destroy(MxCore *p_object) override; // vtable 0x18
|
||||
private:
|
||||
#define X(V) MxAtomId m_id##V;
|
||||
FOR_LEGOOBJECTFACTORY_OBJECTS(X)
|
||||
|
|
|
@ -29,17 +29,19 @@ MxObjectFactory::MxObjectFactory()
|
|||
MxCore *MxObjectFactory::Create(const char *p_name)
|
||||
{
|
||||
MxAtomId atom(p_name, LookupMode_Exact);
|
||||
MxCore* object = NULL;
|
||||
|
||||
if (0) {
|
||||
#define X(V) } else if (this->m_id##V == atom) { return new V;
|
||||
if (0) {}
|
||||
#define X(V) else if (this->m_id##V == atom) { object = new V; }
|
||||
FOR_MXOBJECTFACTORY_OBJECTS(X)
|
||||
#undef X
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
else {}
|
||||
|
||||
return object;
|
||||
}
|
||||
|
||||
// OFFSET: LEGO1 0x100b1a30 STUB
|
||||
void MxObjectFactory::Destroy(void *p_object) {
|
||||
// FIXME
|
||||
// OFFSET: LEGO1 0x100b1a30
|
||||
void MxObjectFactory::Destroy(MxCore *p_object)
|
||||
{
|
||||
delete p_object;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ class MxObjectFactory : public MxCore
|
|||
}
|
||||
|
||||
virtual MxCore *Create(const char *p_name); // vtable 0x14
|
||||
virtual void Destroy(void *p_object); // vtable 0x18
|
||||
virtual void Destroy(MxCore *p_object); // vtable 0x18
|
||||
private:
|
||||
#define X(V) MxAtomId m_id##V;
|
||||
FOR_MXOBJECTFACTORY_OBJECTS(X)
|
||||
|
|
Loading…
Reference in a new issue