SuperMarioOdysseyOnline/include/al/scene/SceneObjHolder.h

35 lines
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;
};
};