SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
MovementOnOffGroupHolder.cpp
1#include "Game/NameObj/MovementOnOffGroupHolder.hpp"
2#include "Game/Util.hpp"
3
4MovementOnOffGroupHolder::MovementOnOffGroupHolder(const char *pName) : NameObj(pName) {
5 mCount = 0;
6}
7
8NameObjGroup* MovementOnOffGroupHolder::joinToGroup(const char *pName, NameObj *pobj, u32 a3) {
9 NameObjGroup* group = findGroupFromName(pName);
10
11 if (!group) {
12 group = createGroup(pName, a3);
13 }
14
15 group->registerObj(pobj);
16 return group;
17}
18
19void MovementOnOffGroupHolder::onMovementGroup(const char *pGroupName) {
20 NameObjGroup* group = findGroupFromName(pGroupName);
21
22 for (s32 i = 0; i < group->mObjectCount; i++) {
23 MR::requestMovementOn(group->mObjects[i]);
24 }
25}
26
27NameObjGroup* MovementOnOffGroupHolder::createGroup(const char *pGroupName, u32 count) {
28 NameObjGroup* group = new NameObjGroup(pGroupName, count);
29 group->initWithoutIter();
30 s32 c = mCount;
31 mCount = c + 1;
32 mGroups[c] = group;
33 return group;
34}
35
36NameObjGroup* MovementOnOffGroupHolder::findGroupFromName(const char *pName) const {
37 for (u32 i = 0; i < mCount; i++) {
38 NameObjGroup* cur = mGroups[i];
39 if (MR::isEqualString(cur->mName, pName)) {
40 return mGroups[i];
41 }
42 }
43
44 return 0;
45}
46
47MovementOnOffGroupHolder::~MovementOnOffGroupHolder() {
48
49}
Class that can contain multiple NameObj instances stored in a group.
The most basic form of an object.
Definition NameObj.hpp:11
void initWithoutIter()
Initializes a NameObj without a JMapInfoIter instance.
Definition NameObj.cpp:41
const char * mName
A string to identify the NameObj.
Definition NameObj.hpp:38