SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
SceneObjHolder.cpp
1#include "Game/Scene/SceneObjHolder.hpp"
2#include "Game/AreaObj/AreaObjContainer.hpp"
3#include "Game/Gravity/PlanetGravityManager.hpp"
4#include "Game/Map/PlanetMapCreator.hpp"
5#include "Game/Map/StageSwitch.hpp"
6#include "Game/NameObj/NameObj.hpp"
7#include "Game/NameObj/MovementOnOffGroupHolder.hpp"
8#include "Game/LiveActor/AllLiveActorGroup.hpp"
9#include "Game/LiveActor/ClippingDirector.hpp"
10#include "Game/LiveActor/SensorHitChecker.hpp"
11#include "Game/Scene/StageDataHolder.hpp"
12#include "Game/MapObj.hpp"
13#include "Game/Util.hpp"
14#include <revolution.h>
15
16SceneObjHolder::SceneObjHolder() {
17 for (s32 i = 0; i < 0x7B; i++) {
18 mSceneObjs[i] = 0;
19 }
20}
21
22NameObj* SceneObjHolder::create(int objID) {
23 NameObj* obj = mSceneObjs[objID];
24 if (obj) {
25 return obj;
26 }
27
28 NameObj* newObj = newEachObj(objID);
29 newObj->initWithoutIter();
30 mSceneObjs[objID] = newObj;
31 return newObj;
32}
33
34NameObj* SceneObjHolder::getObj(int objID) const {
35 return mSceneObjs[objID];
36}
37
38bool SceneObjHolder::isExist(int objID) const {
39 return mSceneObjs[objID] != 0;
40}
41
42namespace MR {
43 NameObj* createSceneObj(int objID) {
44 return MR::getSceneObjHolder()->create(objID);
45 }
46};
47
48/*
49// fill me in as we go
50NameObj* SceneObjHolder::newEachObj(int objID) {
51 switch(objID) {
52 case 0:
53 return new SensorHitChecker("センサー当たり");
54
55 case 2:
56 return new ClippingDirector();
57
58 case 8:
59 return new StageDataHolder(MR::getCurrentStageName(), 0, true);
60
61 case 10:
62 return new StageSwitchContainer();
63
64 case 13:
65 return new AreaObjContainer("エリアオブジェクトコンテナ管理");
66
67 case 15:
68 return new MovementOnOffGroupHolder("Movementグループ管理");
69
70 case 24:
71 return new NameObjGroup("IgnorePauseNameObj", 0x10);
72
73 case 48:
74 return new AllLiveActorGroup();
75
76 case SceneObj_PlanetGravityManager:
77 return new PlanetGravityManager("重力");
78
79 case 57:
80 return new AirBubbleHolder("空気アワ管理");
81
82 case 88:
83 return new NameObjExecuteHolder(0x1000);
84
85 case 116:
86 return new PlanetMapCreator("惑星クリエイタ");
87 }
88
89 return nullptr;
90}
91*/
The most basic form of an object.
Definition NameObj.hpp:11
void initWithoutIter()
Initializes a NameObj without a JMapInfoIter instance.
Definition NameObj.cpp:41