mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-17 00:45:10 +00:00
35 lines
No EOL
834 B
C++
35 lines
No EOL
834 B
C++
#pragma once
|
|
|
|
#include "ISceneObj.h"
|
|
|
|
namespace al {
|
|
|
|
typedef al::ISceneObj* (*SceneObjCreator)(int);
|
|
|
|
class SceneObjHolder {
|
|
public:
|
|
SceneObjHolder(SceneObjCreator, int);
|
|
|
|
ISceneObj *tryGetObj(int) const; // unsafe get still
|
|
void setSceneObj(al::ISceneObj *,int);
|
|
bool isExist(int) const;
|
|
void initAfterPlacementSceneObj(struct ActorInitInfo const&);
|
|
ISceneObj *getObj(int) const;
|
|
void create(int);
|
|
|
|
SceneObjCreator mObjCreator;
|
|
al::ISceneObj **mSceneObjs;
|
|
int mMaxObjCount;
|
|
|
|
};
|
|
|
|
static_assert(sizeof(SceneObjHolder) == 0x18, "SceneObjHolder Size");
|
|
|
|
class IUseSceneObjHolder
|
|
{
|
|
public:
|
|
virtual al::SceneObjHolder* getSceneObjHolder() const = 0;
|
|
|
|
static const char* sSceneObjName;
|
|
};
|
|
}; |