SuperMarioOdysseyOnline/include/al/scene/SceneObjHolder.h

35 lines
834 B
C
Raw Normal View History

2022-06-16 21:33:18 +00:00
#pragma once
#include "ISceneObj.h"
namespace al {
typedef al::ISceneObj* (*SceneObjCreator)(int);
2022-06-16 21:33:18 +00:00
class SceneObjHolder {
public:
SceneObjHolder(SceneObjCreator, int);
2022-06-16 21:33:18 +00:00
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;
2022-06-16 21:33:18 +00:00
};
static_assert(sizeof(SceneObjHolder) == 0x18, "SceneObjHolder Size");
2022-06-16 21:33:18 +00:00
class IUseSceneObjHolder
{
public:
virtual al::SceneObjHolder* getSceneObjHolder() const = 0;
static const char* sSceneObjName;
};
};