1#include "Game/System/GalaxyStatusAccessor.hpp"
2#include "Game/System/GameDataFunction.hpp"
3#include "Game/System/GameDataConst.hpp"
4#include "Game/System/ScenarioDataParser.hpp"
5#include "Game/Util.hpp"
7GalaxyStatusAccessor::GalaxyStatusAccessor(
const ScenarioData *pScenarioData) {
8 mScenarioData = pScenarioData;
11const char* GalaxyStatusAccessor::getName()
const {
12 return mScenarioData->mGalaxyName;
15u32 GalaxyStatusAccessor::getScenarioNum()
const {
16 return mScenarioData->getScenarioNum();
19u32 GalaxyStatusAccessor::getPowerStarNum()
const {
20 return mScenarioData->getPowerStarNum();
23u32 GalaxyStatusAccessor::getZoneNum()
const {
24 return mScenarioData->getZoneNum();
27u32 GalaxyStatusAccessor::getZoneId(
const char *pZone)
const {
28 return mScenarioData->getZoneId(pZone);
31const char* GalaxyStatusAccessor::getZoneName(
int zoneId)
const {
32 return mScenarioData->getZoneName(zoneId);
35const char* GalaxyStatusAccessor::getCometName(s32 scenario)
const {
36 const char *pCometName =
nullptr;
38 if (mScenarioData->getValueString(
"Comet", scenario, &pCometName)) {
46bool GalaxyStatusAccessor::isValidNormalComet(s32 scenario)
const {
49 if (isExistAnyComet() && scenario == getNormalCometScenarioNo()) {
56bool GalaxyStatusAccessor::isCometStar(s32 scenario)
const {
59 if (isExistAnyComet() && scenario == getNormalCometScenarioNo() || isValidCoin100(scenario)) {
66bool GalaxyStatusAccessor::isExistGrandStar()
const {
67 for (s32 i = 1; i <= mScenarioData->getPowerStarNum(); i++) {
68 if (GameDataConst::isGrandStar(mScenarioData->mGalaxyName, i)) {
77bool GalaxyStatusAccessor::isExistAnyComet()
const {
80 for (s32 i = 1; i <= mScenarioData->getScenarioNum(); i++) {
83 if (mScenarioData->getValueString(
"Comet", i, &pComet)) {
99s32 GalaxyStatusAccessor::getNormalCometScenarioNo()
const {
102 for (s32 i = 1; i <= mScenarioData->getScenarioNum(); i++) {
103 const char *pIsNormal =
nullptr;
105 if (mScenarioData->getValueString(
"Comet", i, &pIsNormal)) {
112 if (pNormal && !isValidCoin100(i)) {
120s32 GalaxyStatusAccessor::getCoin100CometScenarioNo()
const {
121 const char *pPurpleComet;
123 for (s32 i = 1; i <= mScenarioData->getScenarioNum(); i++) {
124 const char *pCometName =
nullptr;
126 if (mScenarioData->getValueString(
"Comet", i, &pCometName)) {
127 pPurpleComet = pCometName;
130 pPurpleComet =
nullptr;
133 if (pPurpleComet && isValidCoin100(i)) {
141bool GalaxyStatusAccessor::canOpen()
const {
142 if (mScenarioData->getPowerStarNum()) {
146 return GameDataFunction::canOnGameEventFlag(mScenarioData->mGalaxyName);
150bool GalaxyStatusAccessor::isOpened()
const {
151 if (mScenarioData->getPowerStarNum() == 0) {
155 return GameDataFunction::isOnGameEventFlag(mScenarioData->mGalaxyName);
159bool GalaxyStatusAccessor::isCompleted()
const {
160 if (mScenarioData->getPowerStarNum() == 0) {
164 return getPowerStarNumOwned() == mScenarioData->getPowerStarNum();
167s32 GalaxyStatusAccessor::getPowerStarNumOwned()
const {
168 if (!mScenarioData->getPowerStarNum()) {
169 return GameDataFunction::getPowerStarNumOwned(mScenarioData->mGalaxyName);
176bool GalaxyStatusAccessor::hasPowerStar(s32 Scenario)
const {
177 if (mScenarioData->getPowerStarNum() == 0) {
181 return GameDataFunction::hasPowerStar(mScenarioData->mGalaxyName, Scenario);
185s32 GalaxyStatusAccessor::getNormalScenarioNum()
const {
186 const char *pCometName;
189 for (s32 i = 0; i < mScenarioData->getScenarioNum(); i++) {
190 const char *pScenarioComet =
nullptr;
192 if (mScenarioData->getValueString(
"Comet", i + 1, &pScenarioComet)) {
193 pCometName = pScenarioComet;
196 pCometName =
nullptr;
207const char* GalaxyStatusAccessor::getAppearPowerStarObjName(s32 scenario)
const {
208 const char *pObjName;
209 bool ret = mScenarioData->getValueString(
"AppearPowerStarObj", scenario, &pObjName);
211 if (isValidCoin100(scenario)){
222u32 GalaxyStatusAccessor::getActivePowerStarId(s32 scenario)
const {
225 if (mScenarioData->getValueU32(
"PowerStarId", scenario, &powerStarId)) {
233bool GalaxyStatusAccessor::isValidCoin100(s32 scenario)
const {
234 const char *pPurpleComet;
235 const char *pCometName =
nullptr;
237 if (mScenarioData->getValueString(
"Comet", scenario, &pCometName)) {
238 pPurpleComet = pCometName;
241 pPurpleComet =
nullptr;
244 return (pPurpleComet && MR::isEqualString(pPurpleComet,
"Purple") || MR::isEqualString(pPurpleComet,
"Black"));
247bool GalaxyStatusAccessor::isHiddenStar(s32 scenario)
const {
248 bool isHidden =
false;
249 mScenarioData->getValueBool(
"IsHidden", scenario, &isHidden);
255 return ScenarioDataFunction::getScenarioDataParser()->makeAccessor(pGalaxyName);
259 return ScenarioDataFunction::getScenarioDataParser()->makeAccessor(MR::getCurrentStageName());