SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
GameDataConst.cpp
1#include "Game/System/GameDataConst.hpp"
2#include "Game/System/GameEventFlag.hpp"
3#include "Game/System/GameEventFlagTable.hpp"
4#include "Game/Util.hpp"
5#include <cstdio>
6
7u32 GameDataConst::getPowerStarNumToOpenGalaxy(const char *pGalaxy) {
8 JMapInfo info;
9 info.attach(&GalaxyIDBCSV);
10 JMapInfoIter element;
11 element = info.findElement<const char *>("name", pGalaxy, 0);
12 u32 powerStarNum = 0;
13 element.getValue<u32>("PowerStarNum", &powerStarNum);
14 return powerStarNum;
15}
16
17bool GameDataConst::isPowerStarGreen(const char *pName, s32 a2) {
18 return isPowerStarSpecial(pName, a2, "SpecialStarGreen");
19}
20
21bool GameDataConst::isPowerStarRed(const char *pName, s32 a2) {
22 return isPowerStarSpecial(pName, a2, "SpecialStarRed");
23}
24
25bool GameDataConst::isPowerStarLuigiHas(const char *pName, s32 a2) {
26 return isPowerStarSpecial(pName, a2, "SpecialStarFindingLuigi");
27}
28
29bool GameDataConst::isGrandStar(const char *pName, s32 a2) {
30 return isPowerStarSpecial(pName, a2, "SpecialStarGrand");
31}
32
33bool GameDataConst::isGalaxyLuigiArrested(const char *pGalaxy, s32 starId) {
34 GameEventFlagAccessor accessor = GameEventFlagTable::makeAccessor("SpecialStarLuigiRescued");
35 bool ret = false;
36 const char* galaxyName = accessor.getGalaxyName();
37
38 if (MR::isEqualString(galaxyName, pGalaxy) && ((starId == -1) || starId == accessor.getStarId())) {
39 ret = true;
40 }
41
42 return ret;
43}
44
45bool GameDataConst::isGalaxyAppearGreenDriver(const char *pGalaxyName) {
46 char buf[0x30];
47 snprintf(buf, 0x30, "Appear%s", pGalaxyName);
48 return !GameEventFlagTable::isExist(buf) ? false : GameEventFlagTable::isDependedAnother(buf, "SpecialStarGreenAll");
49}
50
51u32 GameDataConst::getIncludedGrandGalaxyId(const char *pGalaxy) {
52 JMapInfo info;
53 info.attach(&GalaxyIDBCSV);
54 JMapInfoIter element;
55 element = info.findElement<const char *>("name", pGalaxy, 0);
56 u32 grandGalaxyNo = 0;
57 element.getValue<u32>("GrandGalaxyNo", &grandGalaxyNo);
58 return grandGalaxyNo;
59}