SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
JMapUtil.hpp
1#pragma once
2
3#include "Game/Util/JMapInfo.hpp"
4#include "JSystem/JGeometry.hpp"
5#include <revolution.h>
6
7namespace MR {
8 bool isValidInfo(const JMapInfoIter &rIter);
9 bool isObjectName(const JMapInfoIter &rIter, const char *pName);
10 bool getJMapInfoArgNoInit(const JMapInfoIter &rIter, const char *pFieldName, s32 *);
11 bool getJMapInfoArgNoInit(const JMapInfoIter &rIter, const char *pFieldName, f32 *);
12 bool getJMapInfoArgNoInit(const JMapInfoIter &rIter, const char *pFieldName, bool *);
13 bool getJMapInfoTrans(const JMapInfoIter &rIter, TVec3f *);
14 bool getJMapInfoRotate(const JMapInfoIter &rIter, TVec3f *);
15 bool getJMapInfoMatrixFromRT(const JMapInfoIter &rIter, TPos3f *);
16 bool getJMapInfoArg0WithInit(const JMapInfoIter &rIter, s32 *);
17 bool getJMapInfoArg0WithInit(const JMapInfoIter &rIter, f32 *);
18 bool getJMapInfoArg0WithInit(const JMapInfoIter &rIter, bool *);
19 bool getJMapInfoArg1WithInit(const JMapInfoIter &rIter, f32 *);
20 bool getJMapInfoArg1WithInit(const JMapInfoIter &rIter, bool *);
21 bool getJMapInfoArg2WithInit(const JMapInfoIter &rIter, f32 *);
22 bool getJMapInfoArg2WithInit(const JMapInfoIter &rIter, bool *);
23 bool getJMapInfoArg3WithInit(const JMapInfoIter &rIter, f32 *);
24 bool getJMapInfoArg3WithInit(const JMapInfoIter &rIter, bool *);
25 bool getJMapInfoArg4WithInit(const JMapInfoIter &rIter, bool *);
26 bool getJMapInfoArg7WithInit(const JMapInfoIter &rIter, bool *);
27 bool getJMapInfoArg0NoInit(const JMapInfoIter &rIter, s32 *);
28 bool getJMapInfoArg0NoInit(const JMapInfoIter &rIter, f32 *);
29 bool getJMapInfoArg0NoInit(const JMapInfoIter &rIter, bool *);
30 bool getJMapInfoArg1NoInit(const JMapInfoIter &rIter, s32 *);
31 bool getJMapInfoArg1NoInit(const JMapInfoIter &rIter, f32 *);
32 bool getJMapInfoArg1NoInit(const JMapInfoIter &rIter, bool *);
33 bool getJMapInfoArg2NoInit(const JMapInfoIter &rIter, s32 *);
34 bool getJMapInfoArg2NoInit(const JMapInfoIter &rIter, f32 *);
35 bool getJMapInfoArg2NoInit(const JMapInfoIter &rIter, bool *);
36 bool getJMapInfoArg3NoInit(const JMapInfoIter &rIter, s32 *);
37 bool getJMapInfoArg3NoInit(const JMapInfoIter &rIter, f32 *);
38 bool getJMapInfoArg3NoInit(const JMapInfoIter &rIter, bool *);
39 bool getJMapInfoArg4NoInit(const JMapInfoIter &rIter, s32 *);
40 bool getJMapInfoArg4NoInit(const JMapInfoIter &rIter, f32 *);
41 bool getJMapInfoArg4NoInit(const JMapInfoIter &rIter, bool *);
42 bool getJMapInfoArg5NoInit(const JMapInfoIter &rIter, s32 *);
43 bool getJMapInfoArg5NoInit(const JMapInfoIter &rIter, f32 *);
44 bool getJMapInfoArg5NoInit(const JMapInfoIter &rIter, bool *);
45 bool getJMapInfoArg6NoInit(const JMapInfoIter &rIter, s32 *);
46 bool getJMapInfoArg6NoInit(const JMapInfoIter &rIter, f32 *);
47 bool getJMapInfoArg6NoInit(const JMapInfoIter &rIter, bool *);
48 bool getJMapInfoArg7NoInit(const JMapInfoIter &rIter, s32 *);
49 bool getJMapInfoArg7NoInit(const JMapInfoIter &rIter, f32 *);
50 bool getJMapInfoArg7NoInit(const JMapInfoIter &rIter, bool *);
51 bool isEqualObjectName(const JMapInfoIter &rIter, const char *);
52 s32 getDemoGroupID(const JMapInfoIter &rIter);
53 s32 getDemoGroupLinkID(const JMapInfoIter &rIter);
54 bool getJMapInfoRailArg(const JMapInfoIter &rIter, const char *, s32 *);
55 bool getJMapInfoRailArg0NoInit(const JMapInfoIter &rIter, s32 *);
56 bool getRailId(const JMapInfoIter &rIter, s32 *);
57 bool getObjectName(const char **pDest, const JMapInfoIter &rIter);
58 bool isExistJMapArg(const JMapInfoIter &rIter);
59 bool getJMapInfoShapeIdWithInit(const JMapInfoIter &rIter, s32 *);
60 bool getJMapInfoTransLocal(const JMapInfoIter &rIter, TVec3f *);
61 bool getJMapInfoRotateLocal(const JMapInfoIter &rIter, TVec3f *);
62 bool getJMapInfoScale(const JMapInfoIter &rIter, TVec3f *);
63 bool getJMapInfoV3f(const JMapInfoIter &rIter, const char *, TVec3f *);
64 bool getJMapInfoArg1WithInit(const JMapInfoIter &rIter, s32 *);
65 bool getJMapInfoArg2WithInit(const JMapInfoIter &rIter, s32 *);
66 bool getJMapInfoArg3WithInit(const JMapInfoIter &rIter, s32 *);
67 bool getJMapInfoArg4WithInit(const JMapInfoIter &rIter, s32 *);
68 bool getJMapInfoArg5WithInit(const JMapInfoIter &rIter, s32 *);
69 bool getJMapInfoArg6WithInit(const JMapInfoIter &rIter, s32 *);
70 bool getJMapInfoArg7WithInit(const JMapInfoIter &rIter, s32 *);
71 bool getJMapInfoFollowID(const JMapInfoIter &rIter, s32 *);
72 bool getJMapInfoGroupID(const JMapInfoIter &rIter, s32 *);
73 bool getJMapInfoClippingGroupID(const JMapInfoIter &rIter, s32 *);
74 bool getJMapInfoDemoGroupID(const JMapInfoIter &rIter, s32 *);
75 bool getJMapInfoLinkID(const JMapInfoIter &rIter, s32 *);
76 bool isConnectedWithRail(const JMapInfoIter &rIter);
77 bool isExistStageSwitchA(const JMapInfoIter &rIter);
78 bool isExistStageSwitchB(const JMapInfoIter &rIter);
79 bool isExistStageSwitchAppear(const JMapInfoIter &rIter);
80 bool isExistStageSwitchDead(const JMapInfoIter &rIter);
81 bool isExistStageSwitchSleep(const JMapInfoIter &rIter);
82 bool getJMapInfoCameraSetID(const JMapInfoIter &rIter, s32 *);
83 bool getJMapInfoViewGroupID(const JMapInfoIter &rIter, s32 *);
84 bool getJMapInfoMessageID(const JMapInfoIter &rIter, s32 *);
85 s32 getDemoCastID(const JMapInfoIter &rIter);
86 const char* getDemoName(const JMapInfoIter &rIter);
87 const char* getDemoSheetName(const JMapInfoIter &rIter);
88 bool getNextLinkRailID(const JMapInfoIter &rIter, s32 *);
89 bool isEqualRailUsage(const JMapInfoIter &rIter, const char *);
90 void getRailPointPos0(const JMapInfoIter &rIter, TVec3f *);
91 void getRailPointPos1(const JMapInfoIter &rIter, TVec3f *);
92 void getRailPointPos2(const JMapInfoIter &rIter, TVec3f *);
93 bool isLoopRailPathIter(const JMapInfoIter &rIter);
94
95 template<typename T>
96 inline bool getValue(const JMapInfoIter &rIter, const char *pName, T *pOut) {
97 return rIter.getValue<T>(pName, pOut);
98 }
99
100 inline s32 getMessageID(const JMapInfoIter &rIter) {
101 s32 msgId;
102 getJMapInfoMessageID(rIter, &msgId);
103 return msgId;
104 }
105
106 inline bool checkJMapDataEntries(const JMapInfoIter &rIter) {
107 bool flag;
108 bool ret;
109
110 ret = false;
111 flag = false;
112
113 if (rIter.mInfo != nullptr && rIter._4 >= 0) {
114 flag = true;
115 }
116
117 if (flag) {
118 s32 numEntries;
119
120 if (rIter.mInfo->mData != nullptr) {
121 numEntries = rIter.mInfo->mData->mNumEntries;
122 } else {
123 numEntries = 0;
124 }
125
126 if (rIter._4 < numEntries) {
127 ret = true;
128 }
129 }
130
131 return ret;
132 }
133};