| 1 | #pragma once |
| 2 | |
| 3 | #include "Library/LiveActor/LiveActor.h" |
| 4 | |
| 5 | #include "System/GameDataHolder.h" |
| 6 | #include "System/GameDataHolderAccessor.h" |
| 7 | #include "System/GameDataHolderWriter.h" |
| 8 | |
| 9 | struct BindInfo; |
| 10 | class ChangeStageInfo; |
| 11 | class ScenarioStartCamera; |
| 12 | struct ShineInfo; |
| 13 | class Shine; |
| 14 | class RiseMapPartsHolder; |
| 15 | class QuestInfo; |
| 16 | class WorldTravelingNpc; |
| 17 | class HackObjInfo; |
| 18 | class CollectBgm; |
| 19 | |
| 20 | namespace nn::g3d { |
| 21 | class ResFile; |
| 22 | } |
| 23 | |
| 24 | namespace al { |
| 25 | class CameraTicket; |
| 26 | class GameDataHolderBase; |
| 27 | class LayoutActor; |
| 28 | class PlacementId; |
| 29 | class PlacementInfo; |
| 30 | class Scene; |
| 31 | } // namespace al |
| 32 | |
| 33 | namespace ShopItem { |
| 34 | struct ItemInfo; |
| 35 | } |
| 36 | |
| 37 | enum class SessionEventProgress { |
| 38 | Entry = 0, |
| 39 | Wait1stMusician, |
| 40 | Wait2ndMusician, |
| 41 | Wait3rdMusician, |
| 42 | Wait4thMusician, |
| 43 | RequestGoToThePowerPlant, |
| 44 | WaitThePowerPlantWorks, |
| 45 | TheCeremonyIsReady, |
| 46 | GoForTheCeremony, |
| 47 | }; |
| 48 | |
| 49 | namespace GameDataFunction { |
| 50 | GameDataHolder* getGameDataHolder(const al::IUseSceneObjHolder* holder); |
| 51 | GameDataHolder* getGameDataHolder(const al::SceneObjHolder* holder); |
| 52 | GameDataHolder* getGameDataHolder(al::GameDataHolderBase* holder); |
| 53 | GameDataFile* getGameDataFile(GameDataHolderWriter writer); |
| 54 | void setPlayingFileId(GameDataHolderWriter writer, s32 fileId); |
| 55 | void initializeData(GameDataHolderWriter writer, s32 fileId); |
| 56 | bool isPlayDemoOpening(GameDataHolderAccessor accessor); |
| 57 | bool isGameClear(GameDataHolderAccessor accessor); |
| 58 | void setRequireSave(GameDataHolderWriter writer); |
| 59 | void setRequireSaveFrame(GameDataHolderWriter writer); |
| 60 | u64 getPlayTimeTotal(GameDataHolderAccessor accessor); |
| 61 | u64 getPlayTimeAcrossFile(GameDataHolderAccessor accessor); |
| 62 | s64 getSaveDataIdForPrepo(GameDataHolderAccessor accessor); |
| 63 | void startDemoStage(GameDataHolderWriter writer, const char* stageName); |
| 64 | bool tryChangeNextStage(GameDataHolderWriter writer, const ChangeStageInfo* stageInfo); |
| 65 | bool tryChangeNextStageWithStartRaceFlag(GameDataHolderWriter writer, |
| 66 | const ChangeStageInfo* stageInfo); |
| 67 | bool tryChangeNextStageWithStartRaceYukimaru(GameDataHolderWriter writer, |
| 68 | const ChangeStageInfo* stageInfo); |
| 69 | bool tryChangeNextStageWithDemoWorldWarp(GameDataHolderWriter writer, const char* stageName); |
| 70 | bool tryChangeNextStageWithWorldWarpHole(GameDataHolderWriter writer, const char* stageName); |
| 71 | void changeNextStageWithStartTimeBalloon(GameDataHolderWriter writer, s32 scenarioNo); |
| 72 | const char* getCurrentStageName(GameDataHolderAccessor accessor); |
| 73 | void changeNextStageWithEndTimeBalloon(GameDataHolderWriter writer); |
| 74 | void changeNextStageWithCloset(GameDataHolderWriter writer); |
| 75 | void findAreaAndChangeNextStage(GameDataHolderWriter writer, const al::LiveActor* actor, |
| 76 | const sead::Vector3f* actorTrans); |
| 77 | void returnPrevStage(GameDataHolderWriter writer); |
| 78 | bool isTimeBalloonSequence(GameDataHolderAccessor accessor); |
| 79 | const char* getNextStageName(GameDataHolderAccessor accessor); |
| 80 | const char* getCurrentStageName(GameDataHolderAccessor accessor, s32 fileId); |
| 81 | bool isSeaOfTreeStage(GameDataHolderAccessor accessor); |
| 82 | const char* getNextStageName(GameDataHolderAccessor accessor, s32 fileId); |
| 83 | s32 calcNextScenarioNo(GameDataHolderAccessor accessor); |
| 84 | void restartStage(GameDataHolderWriter writer); |
| 85 | void missAndRestartStage(GameDataHolderWriter writer); |
| 86 | bool isMissEndPrevStageForInit(GameDataHolderAccessor accessor); |
| 87 | bool isMissEndPrevStageForSceneDead(GameDataHolderAccessor accessor); |
| 88 | void reenterStage(GameDataHolderWriter writer); |
| 89 | s32 getNextWorldId(GameDataHolderAccessor accessor); |
| 90 | s32 getPrevWorldId(GameDataHolderAccessor accessor); |
| 91 | s32 getWorldNumForNewReleaseShop(GameDataHolderAccessor accessor); |
| 92 | bool isAlreadyGoWorld(GameDataHolderAccessor accessor, s32 worldId); |
| 93 | const char* getWorldDevelopName(GameDataHolderAccessor accessor, s32 worldId); |
| 94 | s32 getWorldIdForNewReleaseShop(GameDataHolderAccessor accessor, s32 worldId); |
| 95 | bool isForwardWorldWarpDemo(GameDataHolderAccessor accessor); |
| 96 | s32 getWorldNum(GameDataHolderAccessor accessor); |
| 97 | bool isFirstTimeNextWorld(GameDataHolderAccessor accessor); |
| 98 | bool checkIsNewWorldInAlreadyGoWorld(GameDataHolderAccessor accessor); |
| 99 | s32 getCurrentWorldIdNoDevelop(GameDataHolderAccessor accessor); |
| 100 | s32 getScenarioNo(const al::LiveActor* actor); |
| 101 | s32 getScenarioNo(const al::LayoutActor* layout); |
| 102 | s32 getScenarioNoPlacement(GameDataHolderAccessor accessor); |
| 103 | bool isEqualScenario(const RiseMapPartsHolder*, s32 scenarioNo); |
| 104 | s32 getMainQuestMin(const al::LiveActor* actor); |
| 105 | s32 getCurrentWorldId(GameDataHolderAccessor accessor); |
| 106 | void clearStartId(GameDataHolderWriter writer); |
| 107 | void setCheckpointId(GameDataHolderWriter writer, const al::PlacementId* checkpointFlag); |
| 108 | void setRestartPointId(GameDataHolderWriter writer, const al::PlacementId* playerRestartInfo); |
| 109 | const char* tryGetRestartPointIdString(GameDataHolderAccessor accessor); |
| 110 | const char* tryGetPlayerStartId(GameDataHolderAccessor accessor); |
| 111 | bool isPlayerStartObj(const al::LiveActor* actor, const al::ActorInitInfo& initInfo); |
| 112 | bool isPlayerStartObj(const al::LiveActor* actor, const al::PlacementInfo& placementInfo); |
| 113 | bool isPlayerStartObj(const al::LiveActor* actor, const char* playerStartId); |
| 114 | bool isPlayerStartLinkedObj(const al::LiveActor* actor, const al::ActorInitInfo& initInfo, |
| 115 | const char* linkName); |
| 116 | void setStartShine(const al::LiveActor* actor, const ShineInfo* shineInfo); |
| 117 | s32 getStartShineNextIndex(GameDataHolderAccessor accessor); |
| 118 | bool isAlreadyShowExplainCheckpointFlag(GameDataHolderAccessor accessor); |
| 119 | bool isEnableShowExplainCheckpointFlag(GameDataHolderAccessor accessor); |
| 120 | void showExplainCheckpointFlag(GameDataHolderAccessor accessor); |
| 121 | void getLifeMaxUpItem(const al::LiveActor* actor); |
| 122 | s32 getPlayerHitPoint(GameDataHolderAccessor accessor); |
| 123 | s32 getPlayerHitPointMaxCurrent(GameDataHolderAccessor accessor); |
| 124 | s32 getPlayerHitPointMaxNormal(GameDataHolderAccessor accessor); |
| 125 | bool isPlayerHitPointMax(GameDataHolderAccessor accessor); |
| 126 | bool isPlayerHitPointMaxWithItem(GameDataHolderAccessor accessor); |
| 127 | void recoveryPlayer(const al::LiveActor* actor); |
| 128 | void recoveryPlayerForDebug(const al::LiveActor* actor); |
| 129 | void recoveryPlayerMax(const al::LiveActor* actor); |
| 130 | void recoveryPlayerForSystem(const GameDataHolder* holder); |
| 131 | void recoveryPlayerMaxForSystem(const GameDataHolder* holder); |
| 132 | void initPlayerHitPointForSystem(const GameDataHolder* holder); |
| 133 | void damagePlayer(GameDataHolderWriter writer); |
| 134 | void killPlayer(GameDataHolderWriter writer); |
| 135 | bool isPlayerLifeZero(GameDataHolderAccessor accessor); |
| 136 | bool isGotShine(GameDataHolderAccessor accessor, const ShineInfo* shineInfo); |
| 137 | bool isGotShine(GameDataHolderAccessor accessor, const al::PlacementId* shine); |
| 138 | bool isGotShine(GameDataHolderAccessor accessor, const char* stageName, const char* objId); |
| 139 | bool isGotShine(GameDataHolderAccessor accessor, s32 shineIdx); |
| 140 | bool isGotShine(const Shine* shineActor); |
| 141 | void setGotShine(GameDataHolderWriter writer, const ShineInfo* shineInfo); |
| 142 | s32 getGotShineNum(GameDataHolderAccessor accessor, s32 fileId = -1); |
| 143 | ShineInfo* getLatestGetShineInfo(GameDataHolderAccessor accessor); |
| 144 | s32 getCurrentShineNum(GameDataHolderAccessor accessor); |
| 145 | s32 getTotalShineNum(GameDataHolderAccessor accessor, s32 fileId = -1); |
| 146 | s32 getTotalShopShineNum(GameDataHolderAccessor accessor, s32 fileId = -1); |
| 147 | bool tryGetNextMainScenarioLabel(sead::BufferedSafeStringBase<char>* scenarioName, |
| 148 | sead::BufferedSafeStringBase<char>* stageName, |
| 149 | const al::IUseSceneObjHolder* holder); |
| 150 | s32 getMainScenarioNumMax(GameDataHolderAccessor accessor); |
| 151 | void setMainScenarioNo(GameDataHolderWriter writer, s32 worldId); |
| 152 | bool tryGetNextMainScenarioPos(sead::Vector3f*, GameDataHolderAccessor accessor); |
| 153 | bool isPlayScenarioCamera(GameDataHolderAccessor accessor, const QuestInfo* questInfo); |
| 154 | bool isPlayAlreadyScenarioStartCamera(GameDataHolderAccessor accessor, s32); |
| 155 | bool isEnterStageFirst(GameDataHolderAccessor accessor); |
| 156 | bool isNextMainShine(GameDataHolderAccessor accessor, s32 shineIdx); |
| 157 | bool isMainShine(GameDataHolderAccessor accessor, s32 shineIdx); |
| 158 | bool isLatestGetMainShine(GameDataHolderAccessor accessor, const ShineInfo* shineInfo); |
| 159 | s32 tryFindLinkedShineIndex(const al::LiveActor* actor, const al::ActorInitInfo& initInfo); |
| 160 | s32 tryFindLinkedShineIndex(const al::LiveActor* actor, const al::ActorInitInfo& initInfo, |
| 161 | s32 linkIdx); |
| 162 | s32 tryFindLinkedShineIndexByLinkName(const al::LiveActor* actor, const al::ActorInitInfo& initInfo, |
| 163 | const char* linkName); |
| 164 | s32 calcLinkedShineNum(const al::LiveActor* actor, const al::ActorInitInfo& initInfo); |
| 165 | s32 tryFindShineIndex(const al::LiveActor* actor, const al::ActorInitInfo& initInfo); |
| 166 | s32 tryFindShineIndex(const al::LiveActor* actor, const char* stageName, const char* objId); |
| 167 | s32 tryFindShineUniqueId(const al::Scene* scene, const ShineInfo* shineInfo); |
| 168 | void disableHintByShineIndex(const al::LiveActor* actor, s32 shineIdx); |
| 169 | void enableHintByShineIndex(const al::LiveActor* actor, s32 shineIdx); |
| 170 | bool calcIsGetMainShineAll(const al::IUseSceneObjHolder* holder); |
| 171 | bool calcIsGetShineAllInWorld(GameDataHolderAccessor accessor, s32 worldId); |
| 172 | bool calcIsGetShineAllInAllWorld(GameDataHolderAccessor accessor); |
| 173 | bool tryFindAndInitShineInfoByOptionalId(ShineInfo* shineInfo, GameDataHolderAccessor accessor, |
| 174 | const char* optionalId); |
| 175 | bool isGotLinkedShineBeforeInitActor(const al::ActorInitInfo& actorInitInfo, const char* linkName); |
| 176 | bool checkIsComplete(const al::IUseSceneObjHolder* holder, s32 fileId); |
| 177 | bool isExistInHackDictionary(GameDataHolderAccessor accessor, const char* hackName, s32 fileId); |
| 178 | s32 getCollectedBgmNum(GameDataHolderAccessor accessor, s32 fileId); |
| 179 | s32 getCollectedBgmMaxNum(GameDataHolderWriter writer); |
| 180 | bool isEnableOpenMoonRock(const al::LiveActor* actor); |
| 181 | void openMoonRock(const al::LiveActor* actor, const al::PlacementId* moonRock); |
| 182 | bool isOpenMoonRock(GameDataHolderAccessor accessor); |
| 183 | bool isEnableShowDemoOpenMoonRockFirst(GameDataHolderAccessor accessor); |
| 184 | bool isEnableShowDemoOpenMoonRockWorld(GameDataHolderAccessor accessor); |
| 185 | void showDemoOpenMoonRockFirst(GameDataHolderAccessor accessor); |
| 186 | void showDemoOpenMoonRockWorld(GameDataHolderAccessor accessor); |
| 187 | s32 calcMoonRockTalkMessageIndex(GameDataHolderAccessor accessor); |
| 188 | void addMoonRockTalkMessageIndex(GameDataHolderWriter writer); |
| 189 | bool isAppearedMoonRockTalkMessage(GameDataHolderAccessor accessor); |
| 190 | void addPayShine(GameDataHolderWriter writer, s32 count); |
| 191 | void addPayShineCurrentAll(GameDataHolderWriter writer); |
| 192 | s32 getPayShineNum(GameDataHolderAccessor accessor); |
| 193 | s32 getPayShineNum(GameDataHolderAccessor accessor, s32 worldId); |
| 194 | s32 getTotalPayShineNum(GameDataHolderAccessor accessor); |
| 195 | s32 getTotalPayShineNumClamp(GameDataHolderAccessor accessor); |
| 196 | bool isPayShineAllInAllWorld(GameDataHolderAccessor accessor); |
| 197 | void addKey(GameDataHolderWriter writer, s32 count); |
| 198 | s32 getKeyNum(GameDataHolderAccessor accessor); |
| 199 | s32 getCurrentKeyNum(GameDataHolderAccessor accessor); |
| 200 | s32 getOpenDoorLockNum(GameDataHolderAccessor accessor); |
| 201 | void openDoorLock(GameDataHolderWriter writer, const al::PlacementId* doorLock); |
| 202 | bool isOpenDoorLock(GameDataHolderAccessor accessor, const al::PlacementId* doorLock); |
| 203 | void setObjStarted(GameDataHolder* holder, const al::PlacementId* obj); |
| 204 | bool isObjStarted(const GameDataHolder* holder, const al::PlacementId* obj); |
| 205 | bool isObjStarted(GameDataHolderAccessor accessor, const char* stageName, const char* objId); |
| 206 | void saveObjS32(GameDataHolderWriter writer, const al::PlacementId* obj, s32 value); |
| 207 | bool tryFindSaveObjS32Value(s32* outValue, GameDataHolderAccessor accessor, |
| 208 | const al::PlacementId* obj); |
| 209 | void onObjNoWriteSaveData(GameDataHolderWriter writer, const al::PlacementId* obj); |
| 210 | void offObjNoWriteSaveData(GameDataHolderWriter writer, const al::PlacementId* obj); |
| 211 | bool isOnObjNoWriteSaveData(GameDataHolderAccessor accessor, const al::PlacementId* obj); |
| 212 | void onObjNoWriteSaveDataResetMiniGame(GameDataHolderWriter writer, const al::PlacementId* obj); |
| 213 | void offObjNoWriteSaveDataResetMiniGame(GameDataHolderWriter writer, const al::PlacementId* obj); |
| 214 | bool isOnObjNoWriteSaveDataResetMiniGame(GameDataHolderAccessor accessor, |
| 215 | const al::PlacementId* obj); |
| 216 | void onObjNoWriteSaveDataInSameScenario(GameDataHolder* holder, const al::PlacementId* obj); |
| 217 | bool isOnObjNoWriteSaveDataInSameScenario(const GameDataHolder* holder, const al::PlacementId* obj); |
| 218 | void setSessionEventProgress(GameDataHolderWriter writer, const SessionEventProgress& progress); |
| 219 | const SessionEventProgress& getSessionEventProgress(GameDataHolderAccessor accessor); |
| 220 | bool isPayCoinToSphinx(const al::LiveActor* actor); |
| 221 | void payCoinToSphinx(const al::LiveActor* actor); |
| 222 | bool isRemovedCapByJango(const al::LiveActor* actor); |
| 223 | bool isMainStage(GameDataHolderAccessor accessor); |
| 224 | bool isGetCapFromJango(const al::LiveActor* actor); |
| 225 | void removeCapByJango(const al::LiveActor* actor); |
| 226 | void getCapFromJango(const al::LiveActor* actor); |
| 227 | void addJangoCount(const al::LiveActor* actor); |
| 228 | s32 getJangoCount(const al::LiveActor* actor); |
| 229 | bool isFirstWorldTravelingStatus(const WorldTravelingNpc* actor); |
| 230 | void saveWorldTravelingStatus(const WorldTravelingNpc* actor, const char* status); |
| 231 | const char* getWorldTravelingStatus(const WorldTravelingNpc* actor); |
| 232 | bool isRaceStart(GameDataHolderAccessor accessor); |
| 233 | bool isRaceStartFlag(GameDataHolderAccessor accessor); |
| 234 | bool isRaceStartYukimaru(GameDataHolderAccessor accessor); |
| 235 | bool isRaceStartYukimaruTutorial(GameDataHolderAccessor accessor); |
| 236 | bool isRaceWin(GameDataHolderAccessor accessor); |
| 237 | bool isRaceWin(GameDataHolderAccessor accessor, s32); |
| 238 | bool isRaceResultSecond(GameDataHolderAccessor accessor); |
| 239 | bool isRaceResultThird(GameDataHolderAccessor accessor); |
| 240 | bool isRaceLose(GameDataHolderAccessor accessor); |
| 241 | bool isRaceCancel(GameDataHolderAccessor accessor); |
| 242 | void winRace(GameDataHolderWriter writer); |
| 243 | void endRaceResultSecond(GameDataHolderWriter writer); |
| 244 | void endRaceResultThird(GameDataHolderWriter writer); |
| 245 | void loseRace(GameDataHolderWriter writer); |
| 246 | s32 getRaceRivalLevel(const al::LiveActor* actor); |
| 247 | s32 getRaceRivalLevel(const al::Scene* scene); |
| 248 | void setRaceRivalLevel(const al::LiveActor* actor, s32 level); |
| 249 | void setLastRaceRanking(GameDataHolderAccessor accessor, s32 ranking); |
| 250 | s32 getLastRaceRanking(GameDataHolderWriter writer); |
| 251 | void incrementRaceLoseCount(const al::Scene* scene, s32 level); |
| 252 | s32 getRaceLoseCount(const al::LiveActor*, s32 level); |
| 253 | void addCoinCollect(GameDataHolderWriter writer, const al::PlacementId* coinCollect); |
| 254 | void useCoinCollect(GameDataHolderWriter writer, s32 count); |
| 255 | bool isGotCoinCollect(GameDataHolderAccessor accessor, const al::ActorInitInfo& coinCollect); |
| 256 | s32 getCoinCollectNum(GameDataHolderAccessor accessor); |
| 257 | s32 getCoinCollectGotNum(GameDataHolderAccessor accessor); |
| 258 | s32 getCoinCollectGotNum(GameDataHolderAccessor accessor, s32 worldId); |
| 259 | s32 getCoinCollectNumMax(GameDataHolderAccessor accessor); |
| 260 | s32 getCoinCollectNumMax(GameDataHolderAccessor accessor, s32 worldId); |
| 261 | bool tryFindExistCoinCollectStagePosExcludeHomeStageInCurrentWorld(sead::Vector3f* pos, |
| 262 | const char**, |
| 263 | GameDataHolderAccessor accessor); |
| 264 | s32 getWorldScenarioNo(GameDataHolderAccessor accessor, s32 worldId); |
| 265 | void addCoin(GameDataHolderWriter writer, s32 count); |
| 266 | void subCoin(GameDataHolderWriter writer, s32 count); |
| 267 | s32 getCoinNum(GameDataHolderAccessor accessor); |
| 268 | s32 getTotalCoinNum(GameDataHolderAccessor accessor); |
| 269 | bool isAppearCourseName(GameDataHolderAccessor accessor); |
| 270 | void setStageHakoniwa(GameDataHolderWriter writer); |
| 271 | bool isEnableCheckpointWarp(GameDataHolderAccessor accessor); |
| 272 | void validateCheckpointWarp(GameDataHolderWriter writer); |
| 273 | void invalidateCheckpointWarp(GameDataHolderWriter writer); |
| 274 | s32 getCheckpointNumMaxInWorld(GameDataHolderAccessor accessor); |
| 275 | const sead::Vector3f& getCheckpointTransInWorld(GameDataHolderAccessor accessor, s32 checkpointIdx); |
| 276 | const char* getCheckpointObjIdInWorld(GameDataHolderAccessor accessor, s32 checkpointIdx); |
| 277 | const sead::Vector3f& getCheckpointTransInWorld(GameDataHolderAccessor accessor, const char* objId); |
| 278 | bool isGotCheckpointInWorld(GameDataHolderAccessor accessor, s32 checkpointIdx); |
| 279 | bool isGotCheckpoint(GameDataHolderAccessor accessor, al::PlacementId* checkpoint); |
| 280 | s32 calcGotCheckpointNumInWorld(GameDataHolderAccessor accessor); |
| 281 | void changeNextSceneByGotCheckpoint(GameDataHolderWriter writer, s32 checkpointIdx); |
| 282 | void changeNextSceneByHome(GameDataHolderWriter writer); |
| 283 | bool isWarpCheckpoint(GameDataHolderAccessor accessor); |
| 284 | const char* getCheckpointWarpObjId(GameDataHolderAccessor accessor); |
| 285 | void registerCheckpointTrans(GameDataHolderWriter writer, const al::PlacementId* checkpoint, |
| 286 | const sead::Vector3f& trans); |
| 287 | bool isEnableUnlockHint(GameDataHolderAccessor accessor); |
| 288 | void unlockHint(GameDataHolderWriter writer); |
| 289 | void unlockHintAmiibo(GameDataHolderWriter writer); |
| 290 | s32 calcHintNum(GameDataHolderAccessor accessor); |
| 291 | s32 calcRestHintNum(GameDataHolderAccessor accessor); |
| 292 | bool checkExistHint(GameDataHolderAccessor accessor); |
| 293 | s32 getHintNumMax(GameDataHolderAccessor accessor); |
| 294 | const sead::Vector3f& calcHintTrans(GameDataHolderAccessor accessor, s32 hintIdx); |
| 295 | const sead::Vector3f& getLatestHintTrans(GameDataHolderAccessor accessor); |
| 296 | bool checkLatestHintSeaOfTree(GameDataHolderAccessor accessor); |
| 297 | s32 calcHintMoonRockNum(GameDataHolderAccessor accessor); |
| 298 | s32 getHintMoonRockNumMax(GameDataHolderAccessor accessor); |
| 299 | const sead::Vector3f& calcHintMoonRockTrans(GameDataHolderAccessor accessor, s32 hintIdx); |
| 300 | void initializeHintList(GameDataHolderWriter writer); |
| 301 | const sead::Vector3f& calcHintTransMostEasy(GameDataHolderAccessor accessor); |
| 302 | bool calcHintTransMostNear(sead::Vector3f* trans, GameDataHolderAccessor accessor, |
| 303 | const sead::Vector3f& pos); |
| 304 | bool checkHintSeaOfTree(GameDataHolderAccessor accessor, s32 hintIdx); |
| 305 | bool checkHintSeaOfTreeMoonRock(GameDataHolderAccessor accessor, s32 hintIdx); |
| 306 | s32 findUnlockShineNum(bool* isGameClear, GameDataHolderAccessor accessor); |
| 307 | s32 findUnlockShineNumByWorldId(bool* isGameClear, GameDataHolderAccessor accessor, s32 worldId); |
| 308 | bool isUnlockedWorld(GameDataHolderAccessor accessor, s32 worldId); |
| 309 | bool isUnlockedNextWorld(GameDataHolderAccessor accessor); |
| 310 | bool isUnlockedAllWorld(GameDataHolderAccessor accessor); |
| 311 | s32 getWorldIndexSpecial2(); |
| 312 | bool isUnlockedCurrentWorld(GameDataHolderAccessor accessor); |
| 313 | bool isCollectShineForNextWorldAndNotUnlockNextWorld(const al::LiveActor* actor); |
| 314 | const char* getMainStageName(GameDataHolderAccessor accessor, s32 worldId); |
| 315 | const char* tryGetCurrentMainStageName(GameDataHolderAccessor accessor); |
| 316 | const char16* tryGetWorldName(const al::LayoutActor* layout, s32 worldId); |
| 317 | const char16* tryGetWorldNameCurrent(const al::LayoutActor* layout); |
| 318 | const char16* tryGetRegionNameCurrent(const al::LayoutActor* layout); |
| 319 | const char* getWorldDevelopNameCurrent(GameDataHolderAccessor accessor); |
| 320 | s32 getWorldScenarioNum(GameDataHolderAccessor accessor, s32 worldId); |
| 321 | const char* findMainStageNameByDevelopName(GameDataHolderAccessor accessor, |
| 322 | const char* developName); |
| 323 | s32 findWorldIdByDevelopName(GameDataHolderAccessor accessor, const char* developName); |
| 324 | s32 tryFindWorldIdByMainStageName(const al::Scene* scene, const char* mainStageName); |
| 325 | s32 tryFindWorldIdByMainStageName(const al::IUseSceneObjHolder* holder, const char* mainStageName); |
| 326 | bool checkEnableUnlockWorldSpecial1(const al::LiveActor* actor); |
| 327 | s32 getWorldIndexSpecial1(); |
| 328 | bool checkEnableUnlockWorldSpecial2(const al::LiveActor* actor); |
| 329 | const char16* tryGetWorldNameByFileId(const al::LayoutActor* layout, s32 fileId); |
| 330 | bool isNewSaveDataByFileId(const al::LayoutActor*, s32 fileId); |
| 331 | u64 getLastUpdateFileTime(const al::LayoutActor*, s32 fileId); |
| 332 | void makeTextureSaveDataFileName(sead::BufferedSafeStringBase<char>* fileName, |
| 333 | const nn::g3d::ResFile* textureSaveData, |
| 334 | const GameDataHolder* holder, s32 fileId); |
| 335 | s32 getWorldIndexPeach(); |
| 336 | s32 getWorldIndexCity(); |
| 337 | bool isCityWorldCeremonyAll(s32 worldId, s32 scenarioNo); |
| 338 | s32 getWorldIndexSea(); |
| 339 | void unlockWorld(GameDataHolderWriter writer, s32 worldId); |
| 340 | s32 getUnlockWorldIdForWorldMap(const al::LayoutActor* layout, s32 worldId); |
| 341 | s32 getUnlockWorldIdForWorldMap(const al::LiveActor* actor, s32 worldId); |
| 342 | s32 getUnlockWorldIdForWorldMap(const al::Scene* scene, s32 worldId); |
| 343 | s32 getUnlockWorldIdForWorldMap(const GameDataHolder* holder, s32 worldId); |
| 344 | s32 getUnlockWorldNumForWorldMap(const al::Scene* scene); |
| 345 | s32 getUnlockWorldNumForWorldMap(const al::LiveActor* actor); |
| 346 | s32 getUnlockWorldNumForWorldMap(const al::LayoutActor* layout); |
| 347 | s32 calcNextLockedWorldIdForWorldMap(const al::LayoutActor* layout, s32 worldId); |
| 348 | s32 calcNextLockedWorldIdForWorldMap(const al::Scene* scene, s32 worldId); |
| 349 | s32 calcNextLockedWorldNumForWorldMap(const al::Scene* scene); |
| 350 | s32 calcNextLockedWorldNumForWorldMap(const al::LayoutActor* layout); |
| 351 | s32 getWorldIdForShineList(const al::LayoutActor* layout, s32 worldId); |
| 352 | s32 calcWorldNumForShineList(const al::LayoutActor* layout); |
| 353 | s32 getLatestUnlockWorldIdForShineTowerMeter(const al::LiveActor* actor); |
| 354 | bool isClearSandWorldScenario1(const al::Scene* scene); |
| 355 | bool isClearCityWorldScenario1(const al::Scene* scene); |
| 356 | bool isClearSkyWorldScenario1(const al::Scene* scene); |
| 357 | bool isCityWorldScenario2(const al::IUseSceneObjHolder* holder); |
| 358 | bool isWorldCity(GameDataHolderAccessor accessor); |
| 359 | s32 calcNextWorldId(GameDataHolderAccessor accessor); |
| 360 | bool isPlayDemoWorldWarp(GameDataHolderAccessor accessor); |
| 361 | bool isPlayDemoWorldWarpHole(GameDataHolderAccessor accessor); |
| 362 | void noPlayDemoWorldWarp(GameDataHolderWriter writer); |
| 363 | bool isPlayDemoReturnToHome(GameDataHolderAccessor accessor); |
| 364 | void requestPlayDemoReturnToHome(GameDataHolderWriter writer); |
| 365 | bool isPlayDemoAwardSpecial(GameDataHolderAccessor accessor); |
| 366 | void requestPlayDemoAwardSpecial(GameDataHolderWriter writer); |
| 367 | bool isPlayDemoLavaErupt(GameDataHolderAccessor accessor); |
| 368 | bool isPlayDemoPlayerDownForBattleKoopaAfter(GameDataHolderAccessor accessor); |
| 369 | void disablePlayDemoPlayerDownForBattleKoopaAfter(GameDataHolderWriter writer); |
| 370 | void enteredStage(GameDataHolderWriter writer); |
| 371 | const char* getCurrentCostumeTypeName(GameDataHolderAccessor accessor); |
| 372 | const char* getCurrentCapTypeName(GameDataHolderAccessor accessor); |
| 373 | void wearCostume(GameDataHolderWriter writer, const char* costumeName); |
| 374 | void wearCap(GameDataHolderWriter writer, const char* capName); |
| 375 | void wearCostumeRandom(al::IUseSceneObjHolder* holder); |
| 376 | void wearCapRandom(al::IUseSceneObjHolder* holder); |
| 377 | void tryWearCostumeRandomIfEnable(al::IUseSceneObjHolder* holder); |
| 378 | bool isCostumeRandomMode(al::IUseSceneObjHolder* holder); |
| 379 | void tryWearCapRandomIfEnable(al::IUseSceneObjHolder* holder); |
| 380 | bool isCapRandomMode(al::IUseSceneObjHolder* holder); |
| 381 | void setCostumeRandomMode(al::IUseSceneObjHolder* holder); |
| 382 | void setCapRandomMode(al::IUseSceneObjHolder* holder); |
| 383 | void resetCostumeRandomMode(al::IUseSceneObjHolder* holder); |
| 384 | void resetCapRandomMode(al::IUseSceneObjHolder* holder); |
| 385 | const sead::PtrArray<ShopItem::ItemInfo>& getShopItemInfoList(GameDataHolderAccessor accessor); |
| 386 | bool isExistHackObjInfo(GameDataHolderAccessor accessor, const char* hackName); |
| 387 | const HackObjInfo& getHackObjInfo(GameDataHolderAccessor accessor, const char* hackName); |
| 388 | void addHackDictionary(GameDataHolderWriter writer, const char* hackName); |
| 389 | bool isExistInHackDictionary(GameDataHolderAccessor accessor, const char* hackName); |
| 390 | bool isShowHackTutorial(GameDataHolderAccessor accessor, const char* hackName, const char* suffix); |
| 391 | void setShowHackTutorial(GameDataHolderWriter writer, const char* hackName, const char* suffix); |
| 392 | bool isShowBindTutorial(GameDataHolderAccessor accessor, const BindInfo& bindInfo); |
| 393 | void setShowBindTutorial(GameDataHolderWriter writer, const BindInfo& bindInfo); |
| 394 | bool isGotShine(GameDataHolderAccessor accessor, s32 worldId, s32 shineIdx); |
| 395 | bool isOpenShineName(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 396 | bool checkAchievementShine(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 397 | s32 calcShineNumInOneShine(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 398 | const char16* tryFindShineMessage(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 399 | const char16* tryFindShineMessage(const al::LiveActor* actor, |
| 400 | const al::IUseMessageSystem* messageSystem, s32 worldId, |
| 401 | s32 shineIdx); |
| 402 | u64 findShineGetTime(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 403 | bool checkMoonRockShineForShineList(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 404 | bool checkUnlockHintByHintNpcForShineList(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 405 | bool checkUnlockHintByAmiiboForShineList(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 406 | bool checkShineSeaOfTreeForShineList(const al::LayoutActor* layout, s32 worldId, s32 shineIdx); |
| 407 | s32 getWorldTotalShineNum(GameDataHolderAccessor accessor, s32 worldId); |
| 408 | s32 getWorldTotalShineNumMax(GameDataHolderAccessor accessor, s32 worldId); |
| 409 | void findShineTrans(sead::Vector3f* trans, GameDataHolderAccessor accessor, s32 worldId, |
| 410 | s32 shineIdx); |
| 411 | const sead::Vector3f& getHomeTrans(GameDataHolderAccessor accessor); |
| 412 | bool isExistHome(GameDataHolderAccessor accessor); |
| 413 | bool isActivateHome(GameDataHolderAccessor accessor); |
| 414 | s32 (GameDataHolderAccessor accessor); |
| 415 | s32 (GameDataHolderAccessor accessor); |
| 416 | const sead::Vector3f& getMiniGameTrans(GameDataHolderAccessor accessor, s32 miniGameIdx); |
| 417 | const char* getMiniGameName(GameDataHolderAccessor accessor, s32 miniGameIdx); |
| 418 | const sead::Vector3f& getRaceStartTrans(GameDataHolderAccessor accessor); |
| 419 | const sead::Vector3f& getRaceGoalTrans(GameDataHolderAccessor accessor); |
| 420 | const sead::Vector3f& getHintNpcTrans(GameDataHolderAccessor accessor); |
| 421 | const sead::Vector3f& getShopNpcTrans(GameDataHolderAccessor accessor, s32 shopNpcIdx); |
| 422 | bool isShopSellout(GameDataHolderAccessor accessor, s32 shopNpcIdx); |
| 423 | s32 calcShopNum(GameDataHolderAccessor accessor); |
| 424 | s32 getShopNpcIconNumMax(GameDataHolderAccessor accessor); |
| 425 | bool isExistRaceStartNpc(GameDataHolderAccessor accessor); |
| 426 | bool isExistHintNpc(GameDataHolderAccessor accessor); |
| 427 | const sead::Matrix34f& getCurrentMapView(GameDataHolderAccessor accessor); |
| 428 | bool isExistJango(GameDataHolderAccessor accessor); |
| 429 | const sead::Vector3f& getJangoTrans(GameDataHolderAccessor accessor); |
| 430 | bool isExistAmiiboNpc(GameDataHolderAccessor accessor); |
| 431 | const sead::Vector3f& getAmiiboNpcTrans(GameDataHolderAccessor accessor); |
| 432 | bool isInInvalidOpenMapStage(GameDataHolderAccessor accessor); |
| 433 | const sead::Vector3f& getStageMapPlayerPos(GameDataHolderAccessor accessor); |
| 434 | bool isExistTimeBalloonNpc(GameDataHolderAccessor accessor); |
| 435 | const sead::Vector3f& getTimeBalloonNpcTrans(GameDataHolderAccessor accessor); |
| 436 | bool isExistPoetter(GameDataHolderAccessor accessor); |
| 437 | const sead::Vector3f& getPoetterTrans(GameDataHolderAccessor accessor); |
| 438 | const sead::Vector3f& getMoonRockTrans(GameDataHolderAccessor accessor); |
| 439 | void setHomeTrans(const al::LiveActor* actor, const sead::Vector3f& trans); |
| 440 | void setRaceStartNpcTrans(const al::LiveActor* actor); |
| 441 | void setRaceStartTrans(const al::LiveActor* actor); |
| 442 | void setRaceGoalTrans(const al::LiveActor* actor); |
| 443 | void setHintNpcTrans(const al::LiveActor* actor); |
| 444 | void setJangoTrans(const al::LiveActor* actor); |
| 445 | void disableJangoTrans(const al::LiveActor* actor); |
| 446 | void setAmiiboNpcTrans(const al::LiveActor* actor); |
| 447 | void setShopNpcTrans(const al::LiveActor* actor, const char* storeName, s32 shopNpcIdx); |
| 448 | void setShopNpcTrans(GameDataHolderAccessor accessor, const al::PlacementInfo& placementInfo); |
| 449 | void setMiniGameInfo(GameDataHolderAccessor accessor, const al::PlacementInfo& placementInfo); |
| 450 | void setTimeBalloonTrans(GameDataHolderAccessor accessor, const sead::Vector3f& trans); |
| 451 | void setPoetterTrans(GameDataHolderAccessor accessor, const sead::Vector3f& trans); |
| 452 | void setStageMapPlayerPos(GameDataHolderWriter writer, const sead::Vector3f& trans); |
| 453 | void setMoonRockTrans(GameDataHolderWriter writer, const sead::Vector3f& trans); |
| 454 | s32 getHomeLevel(GameDataHolderAccessor accessor); |
| 455 | void upHomeLevel(GameDataHolderWriter writer); |
| 456 | void activateHome(GameDataHolderWriter writer); |
| 457 | bool isLaunchHome(GameDataHolderAccessor accessor); |
| 458 | void launchHome(GameDataHolderWriter writer); |
| 459 | bool isCrashHome(GameDataHolderAccessor accessor); |
| 460 | void crashHome(GameDataHolderWriter writer); |
| 461 | bool isRepairHome(GameDataHolderAccessor accessor); |
| 462 | void repairHome(GameDataHolderWriter writer); |
| 463 | bool isBossAttackedHome(GameDataHolderAccessor accessor); |
| 464 | void bossAttackHome(GameDataHolderWriter writer); |
| 465 | bool isRepairHomeByCrashedBoss(GameDataHolderAccessor accessor); |
| 466 | void repairHomeByCrashedBoss(GameDataHolderWriter writer); |
| 467 | bool isFindKoopaNext(GameDataHolderAccessor accessor, s32 worldId); |
| 468 | bool isBossAttackedHomeNext(GameDataHolderAccessor accessor, s32 worldId); |
| 469 | bool isFindKoopa(GameDataHolderAccessor accessor); |
| 470 | void findKoopa(GameDataHolderWriter writer); |
| 471 | bool isEnableCap(GameDataHolderAccessor accessor); |
| 472 | bool isMeetCap(GameDataHolderAccessor accessor); |
| 473 | void enableCap(GameDataHolderWriter writer); |
| 474 | void disableCapByPlacement(const al::LiveActor* actor); |
| 475 | bool isTalkedCapNearHomeInWaterfall(const al::LiveActor* actor); |
| 476 | void talkCapNearHomeInWaterfall(const al::LiveActor* actor); |
| 477 | bool isFlagOnTalkMessageInfo(const al::IUseSceneObjHolder* holder, s32 talkMessageIdx); |
| 478 | void onFlagTalkMessageInfo(const al::IUseSceneObjHolder* holder, s32 talkMessageIdx); |
| 479 | s32 getWorldIndexHat(); |
| 480 | s32 getWorldIndexWaterfall(); |
| 481 | s32 getWorldIndexSand(); |
| 482 | s32 getWorldIndexForest(); |
| 483 | s32 getWorldIndexLake(); |
| 484 | s32 getWorldIndexCloud(); |
| 485 | s32 getWorldIndexClash(); |
| 486 | s32 getWorldIndexSnow(); |
| 487 | s32 getWorldIndexLava(); |
| 488 | s32 getWorldIndexBoss(); |
| 489 | s32 getWorldIndexSky(); |
| 490 | s32 getWorldIndexMoon(); |
| 491 | bool isWorldCap(GameDataHolderAccessor accessor); |
| 492 | bool isWorldWaterfall(GameDataHolderAccessor accessor); |
| 493 | bool isWorldSand(GameDataHolderAccessor accessor); |
| 494 | bool isWorldForest(GameDataHolderAccessor accessor); |
| 495 | bool isWorldLake(GameDataHolderAccessor accessor); |
| 496 | bool isWorldCloud(GameDataHolderAccessor accessor); |
| 497 | bool isWorldClash(GameDataHolderAccessor accessor); |
| 498 | bool isWorldSnow(GameDataHolderAccessor accessor); |
| 499 | bool isWorldSea(GameDataHolderAccessor accessor); |
| 500 | bool isWorldBoss(GameDataHolderAccessor accessor); |
| 501 | bool isWorldSky(GameDataHolderAccessor accessor); |
| 502 | bool isWorldMoon(GameDataHolderAccessor accessor); |
| 503 | bool isWorldPeach(GameDataHolderAccessor accessor); |
| 504 | bool isWorldSpecial1(GameDataHolderAccessor accessor); |
| 505 | bool isWorldSpecial2(GameDataHolderAccessor accessor); |
| 506 | bool isWorldTypeMoon(GameDataHolderAccessor accessor, s32 worldId); |
| 507 | bool isSnowMainScenario1(const al::IUseSceneObjHolder* holder); |
| 508 | bool isSnowMainScenario2(const al::IUseSceneObjHolder* holder); |
| 509 | bool isHomeShipStage(const GameDataHolder* holder); |
| 510 | const char* getHomeShipStageName(); |
| 511 | bool isCityWorldCeremonyAgain(s32 worldId, s32 scenarioNo); |
| 512 | bool isGoToCeremonyFromInsideHomeShip(GameDataHolderAccessor accessor); |
| 513 | void registerScenarioStartCameraInfo(const ScenarioStartCamera* cameraInfo, s32, |
| 514 | al::CameraTicket* ticket); |
| 515 | bool isEnableExplainAmiibo(GameDataHolderAccessor accessor); |
| 516 | void endExplainAmiibo(GameDataHolderWriter writer); |
| 517 | void startSearchHintByAmiibo(GameDataHolderWriter writer); |
| 518 | void endSearchHintByAmiibo(GameDataHolderWriter writer); |
| 519 | void setKidsModeOn(const al::Scene* scene); |
| 520 | void setKidsModeOff(const al::Scene* scene); |
| 521 | bool isCollectedBgm(GameDataHolderAccessor accessor, const char* resourceName, |
| 522 | const char* situationName); |
| 523 | const CollectBgm& getCollectBgmByIndex(GameDataHolderAccessor accessor, s32 bgmIdx); |
| 524 | bool trySetCollectedBgm(GameDataHolderWriter writer, const char* resourceName, |
| 525 | const char* situationName); |
| 526 | s32 getCollectedBgmNum(GameDataHolderWriter writer); |
| 527 | void registerShineInfo(GameDataHolderAccessor accessor, const ShineInfo* shineInfo, |
| 528 | const sead::Vector3f& trans); |
| 529 | void setHintTrans(GameDataHolderAccessor accessor, s32 shineIdx, const sead::Vector3f& trans); |
| 530 | void resetHintTrans(GameDataHolderAccessor accessor, s32 shineIdx); |
| 531 | bool isKoopaLv3(GameDataHolderAccessor accessor); |
| 532 | } // namespace GameDataFunction |
| 533 | |