mirror of
https://github.com/encounter/Petari.git
synced 2026-03-30 11:34:15 -07:00
92 lines
2.3 KiB
C++
92 lines
2.3 KiB
C++
#include "Game/Scene/SceneObjHolder.hpp"
|
|
#include "Game/AreaObj/AreaObjContainer.hpp"
|
|
#include "Game/Gravity/PlanetGravityManager.hpp"
|
|
#include "Game/Map/PlanetMapCreator.hpp"
|
|
#include "Game/Map/StageSwitch.hpp"
|
|
#include "Game/NameObj/NameObj.hpp"
|
|
#include "Game/NameObj/MovementOnOffGroupHolder.hpp"
|
|
#include "Game/LiveActor/AllLiveActorGroup.hpp"
|
|
#include "Game/LiveActor/ClippingDirector.hpp"
|
|
#include "Game/LiveActor/SensorHitChecker.hpp"
|
|
#include "Game/Scene/StageDataHolder.hpp"
|
|
#include "Game/MapObj.hpp"
|
|
#include "Game/Util.hpp"
|
|
#include <revolution.h>
|
|
|
|
SceneObjHolder::SceneObjHolder() {
|
|
for (s32 i = 0; i < 0x7B; i++) {
|
|
mSceneObjs[i] = 0;
|
|
}
|
|
}
|
|
|
|
NameObj* SceneObjHolder::create(int objID) {
|
|
NameObj* obj = mSceneObjs[objID];
|
|
if (obj) {
|
|
return obj;
|
|
}
|
|
|
|
NameObj* newObj = newEachObj(objID);
|
|
newObj->initWithoutIter();
|
|
mSceneObjs[objID] = newObj;
|
|
return newObj;
|
|
}
|
|
|
|
NameObj* SceneObjHolder::getObj(int objID) const {
|
|
return mSceneObjs[objID];
|
|
}
|
|
|
|
bool SceneObjHolder::isExist(int objID) const {
|
|
return mSceneObjs[objID] != 0;
|
|
}
|
|
|
|
namespace MR {
|
|
NameObj* createSceneObj(int objID) {
|
|
return MR::getSceneObjHolder()->create(objID);
|
|
}
|
|
};
|
|
|
|
/*
|
|
// fill me in as we go
|
|
NameObj* SceneObjHolder::newEachObj(int objID) {
|
|
switch(objID) {
|
|
case 0:
|
|
return new SensorHitChecker("センサー当たり");
|
|
|
|
case 2:
|
|
return new ClippingDirector();
|
|
|
|
case 8:
|
|
return new StageDataHolder(MR::getCurrentStageName(), 0, true);
|
|
|
|
case 10:
|
|
return new StageSwitchContainer();
|
|
|
|
case 13:
|
|
return new AreaObjContainer("エリアオブジェクトコンテナ管理");
|
|
|
|
case 15:
|
|
return new MovementOnOffGroupHolder("Movementグループ管理");
|
|
|
|
case 24:
|
|
return new NameObjGroup("IgnorePauseNameObj", 0x10);
|
|
|
|
case 48:
|
|
return new AllLiveActorGroup();
|
|
|
|
case SceneObj_PlanetGravityManager:
|
|
return new PlanetGravityManager("重力");
|
|
|
|
case 57:
|
|
return new AirBubbleHolder("空気アワ管理");
|
|
|
|
case 88:
|
|
return new NameObjExecuteHolder(0x1000);
|
|
|
|
case 116:
|
|
return new PlanetMapCreator("惑星クリエイタ");
|
|
}
|
|
|
|
return nullptr;
|
|
}
|
|
*/
|