mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-11-22 11:15:15 +00:00
310 lines
No EOL
13 KiB
C++
310 lines
No EOL
13 KiB
C++
/**
|
|
* @file GameDataFile.h
|
|
* @brief Holds data for an individual save file.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "al/scene/SceneObjHolder.h"
|
|
#include "types.h"
|
|
#include "UniqueObjInfo.h"
|
|
|
|
#include "sead/math/seadVector.h"
|
|
#include "sead/stream/seadStream.h"
|
|
|
|
namespace al {
|
|
class ActorInitInfo;
|
|
class PlacementInfo;
|
|
class PlacementId;
|
|
}
|
|
|
|
class GameDataHolder;
|
|
class ShineInfo;
|
|
|
|
class GameDataFile
|
|
{
|
|
public:
|
|
GameDataFile(GameDataHolder *);
|
|
void initializeData(void);
|
|
void tryReadByamlData(uchar const*);
|
|
void tryFindCoinCollectInfo(char const*,char const*);
|
|
void tryFindShineIndexByUniqueId(int);
|
|
void tryFindCoinCollectIndexByUniqueId(int);
|
|
void buyDefaultItem(void);
|
|
void unlockAchievementShineName(void);
|
|
void updateWorldMapIndex(void);
|
|
void updateWorldWarpIndex(void);
|
|
void initializeCheckpointTable(void);
|
|
void generateSaveDataIdForPrepo(void);
|
|
void resetMapIcon(void);
|
|
void wearDefault(void);
|
|
void initializeHintList(void);
|
|
void initializeCoinCollectList(void);
|
|
void resetTempData(void);
|
|
void addPlayTime(int,al::IUseSceneObjHolder const*);
|
|
void updateSaveTime(void);
|
|
void updateSaveTimeForDisp(void);
|
|
void updateSaveInfoForDisp(void);
|
|
void generateSaveDataIdForPrepoForWrite(void);
|
|
void resetSaveDataIdForPrepoForWrite(void);
|
|
void startStage(char const*,int);
|
|
void checkIsHomeStage(char const*);
|
|
void setGameClear(void);
|
|
void startDemoStage(char const*);
|
|
void changeNextStage(struct ChangeStageInfo const*,int);
|
|
void returnPrevStage(void);
|
|
void changeNextStageWithDemoWorldWarp(char const*);
|
|
void changeNextStageWithWorldWarpHole(char const*);
|
|
void restartStage(void);
|
|
void calcNextScenarioNo(void);
|
|
void tryGetStageNameCurrent(void);
|
|
void changeWipeType(char const*);
|
|
void setRestartPointId(al::PlacementId const*);
|
|
void clearStartId(void);
|
|
void tryGetRestartPointIdString(void);
|
|
void endStage(void);
|
|
void missAndRestartStage(void);
|
|
void checkGotShine(char const*);
|
|
void tryGetNextMainScenarioLabel(sead::BufferedSafeString *,sead::BufferedSafeString *);
|
|
void tryGetNextMainScenarioPos(sead::Vector3f *);
|
|
void tryFindNextMainScenarioInfo(void);
|
|
void addPayShine(int);
|
|
void addPayShineCurrentAll(void);
|
|
void addKey(int);
|
|
void addOpenDoorLockNum(int);
|
|
void tryFindSaveObjS32(al::PlacementId const*);
|
|
void addSessionMember(struct SessionMusicianType const&);
|
|
void addCoinCollect(al::PlacementId const*);
|
|
void useCoinCollect(int);
|
|
void tryFindExistCoinCollectStageName(int);
|
|
void payCoinToSphinx(void);
|
|
void answerCorrectSphinxQuiz(void);
|
|
void answerCorrectSphinxQuizAll(void);
|
|
void talkLocalLanguage(void);
|
|
void saveWorldTravelingStatus(char const*);
|
|
void startWorldTravelingPeach(void);
|
|
void setGrowFlowerTime(al::PlacementId const*,ulong);
|
|
void addGrowFlowerGrowLevel(al::PlacementId const*,uint);
|
|
void findGrowFlowerPotIdFromSeedId(al::PlacementId const*);
|
|
void addCoin(int);
|
|
void addPlayerJumpCount(void);
|
|
void addPlayerThrowCapCount(void);
|
|
void readFromStream(sead::ReadStream *,uchar *);
|
|
void tryReadByamlDataFromStream(sead::ReadStream *,uchar *,int);
|
|
void writeToStream(sead::WriteStream *,sead::Heap *);
|
|
void tryWriteByByaml(sead::WriteStream *,sead::Heap *);
|
|
void calcCheckpointIndexInScenario(int);
|
|
void changeNextSceneByGotCheckpoint(int);
|
|
void changeNextSceneByWarp(void);
|
|
void changeNextSceneByHome(void);
|
|
void startYukimaruRace(void);
|
|
void startYukimaruRaceTutorial(void);
|
|
void startRaceManRace(void);
|
|
void registerCheckpointTrans(al::PlacementId const*,sead::Vector3f const&);
|
|
void calcGetCheckpointNum(void);
|
|
void calcRestHintNum(void);
|
|
void unlockHint(void);
|
|
void unlockHintImpl(int);
|
|
void unlockHintAmiibo(void);
|
|
void unlockHintAddByMoonRock(void);
|
|
void calcHintNum(void);
|
|
void calcHintTrans(int);
|
|
void findHint(int);
|
|
void calcHintTransMostEasy(void);
|
|
void findHintInfoMostEasy(void);
|
|
void calcHintMoonRockNum(void);
|
|
void calcHintMoonRockTrans(int);
|
|
void findHintMoonRock(int);
|
|
void tryUnlockShineName(int,int);
|
|
void calcShineIndexTableNameAvailable(int *,int *,int);
|
|
void calcShineIndexTableNameUnlockable(int *,int *,int);
|
|
void unlockWorld(int);
|
|
void noPlayDemoWorldWarp(void);
|
|
void calcWorldWarpHoleThroughNum(void);
|
|
void enteredStage(void);
|
|
//void buyItem(ShopItem::ItemInfo const*,bool);
|
|
//void tryFindItemList(ShopItem::ItemInfo const*);
|
|
void calcHaveClothNum(void);
|
|
void calcHaveCapNum(void);
|
|
void calcHaveStickerNum(void);
|
|
void calcHaveGiftNum(void);
|
|
void buyItemAll(void);
|
|
void wearCostume(char const*);
|
|
void wearCap(char const*);
|
|
void addHackDictionary(char const*);
|
|
void findShine(int,int);
|
|
void calcShineNumInOneShine(int,int);
|
|
void checkAchievementShine(int,int);
|
|
void winRace(void);
|
|
void findRaceRecord(char const*);
|
|
void incrementRaceLoseCount(int);
|
|
void setUpdateJumpingRopeScoreFlag(void);
|
|
void setVolleyballBestCount(int);
|
|
void setUpdateVolleyballScoreFlag(void);
|
|
void setAmiiboNpcTrans(sead::Vector3f const&);
|
|
void setTimeBalloonNpcTrans(sead::Vector3f const&);
|
|
void setPoetterTrans(sead::Vector3f const&);
|
|
void setShopNpcTrans(sead::Vector3f const&,char const*,int);
|
|
void setMoonRockTrans(sead::Vector3f const&);
|
|
void setMiniGameInfo(sead::Vector3f const&,char const*);
|
|
void calcMiniGameNum(void);
|
|
void showExplainCheckpointFlag(void);
|
|
void calcShopNum(void);
|
|
void talkKakku(void);
|
|
void talkWorldTravelingPeach(void);
|
|
void talkCollectBgmNpc(void);
|
|
void noFirstNetwork(void);
|
|
void calcIsGetMainShineAll(al::IUseSceneObjHolder const*);
|
|
void calcIsGetShineAllInWorld(int);
|
|
void tryFindLinkedShineIndex(al::ActorInitInfo const&,al::IUseSceneObjHolder const*);
|
|
void tryFindLinkedShineIndex(al::ActorInitInfo const&,int,al::IUseSceneObjHolder const*);
|
|
void tryFindLinkedShineIndexByLinkName(al::IUseSceneObjHolder const*,al::ActorInitInfo const&,char const*);
|
|
void calcLinkedShineNum(al::ActorInitInfo const&);
|
|
void tryFindShineIndex(al::ActorInitInfo const&);
|
|
void tryFindShineIndex(char const*,char const*);
|
|
void disableHintById(int);
|
|
void enableHintById(int);
|
|
void setHintTrans(int,sead::Vector3f const&);
|
|
void resetHintTrans(int);
|
|
void registerShineInfo(ShineInfo const*,sead::Vector3f const&);
|
|
void calcRestShineInStageWithWorldProgress(char const*);
|
|
// void calcGetShineNumByObjectNameOrOptionalId(char const*, GameDataFile::CountType);
|
|
void calcGetShineNumByObjectNameWithWorldId(char const*,int);
|
|
void calcAllShineNumByObjectNameOrOptionalId(char const*);
|
|
void calcGetShineNumByStageName(char const*);
|
|
void tryFindAndInitShineInfoByOptionalId(ShineInfo *,char const*);
|
|
void tryFindUniqueId(ShineInfo const*);
|
|
void findUnlockShineNumCurrentWorld(bool *);
|
|
void trySetCollectedBgm(char const*,char const*);
|
|
// void setGotShine(GameDataFile::HintInfo const*);
|
|
// void tryWriteByByaml(al::ByamlWriter *);
|
|
|
|
int getTotalShineNum(void);
|
|
void getCollectBgmByIndex(int);
|
|
u8 getMainScenarioNoCurrent(void) const;
|
|
int getStartShineNextIndex(void);
|
|
void getTokimekiMayorNpcFavorabilityRating(void);
|
|
void getShopNpcIconNumMax(void);
|
|
void getShopNpcTrans(int);
|
|
void getPoetterTrans(void);
|
|
void getTimeBalloonNpcTrans(void);
|
|
void getMiniGameNumMax(void);
|
|
void getRaceLoseCount(int);
|
|
int getWorldTotalShineNum(int);
|
|
int getWorldWarpHoleThroughNumMax(void);
|
|
void getCheckpointObjIdInWorld(int);
|
|
void getCheckpointNumMaxInWorld(void);
|
|
void getPlayerThrowCapCount(void);
|
|
void getPlayerJumpCount(void);
|
|
void getGrowFlowerGrowLevel(al::PlacementId const*);
|
|
void getGrowFlowerTime(al::PlacementId const*);
|
|
void getWorldTravelingStatus(void);
|
|
void getCoinCollectNum(void);
|
|
void getKeyNum(void);
|
|
int getPayShineNum(int);
|
|
int getShineNum(void);
|
|
void getAchievement(char const*);
|
|
void getPlayerStartId(void);
|
|
void getStageNameNext(void);
|
|
void getStageNameCurrent(void);
|
|
void getPlayerHitPointData(void);
|
|
void getLastUpdateTime(void);
|
|
void getPlayTimeTotal(void);
|
|
void getMainScenarioNo(int);
|
|
void getCollectedBgmMaxNum(void);
|
|
int getScenarioNo(void) const;
|
|
void getMiniGameName(int);
|
|
void getWorldTotalShineNumMax(int);
|
|
void getCheckpointTransInWorld(char const*);
|
|
void getCoinCollectGotNum(void);
|
|
void getTotalPayShineNum(void);
|
|
void getShineNum(int);
|
|
int getScenarioNo(int worldIndex) const;
|
|
void getCollectedBgmNum(void);
|
|
void getScenarioNoPlacement(void);
|
|
void getMiniGameTrans(int);
|
|
void getCoinCollectGotNum(int);
|
|
void getTotalShopShineNum(void);
|
|
|
|
void setGotShine(int);
|
|
void setMainScenarioNo(int);
|
|
void setStartShine(ShineInfo const*);
|
|
void setKidsMode(bool);
|
|
void setTokimekiMayorNpcFavorabilityRating(int);
|
|
void setFlagOnTalkMessageInfo(int);
|
|
void setJangoTrans(sead::Vector3f const&);
|
|
void setJumpingRopeBestCount(int);
|
|
void setGrowFlowerTime(al::PlacementId const*,al::PlacementId const*,ulong);
|
|
void setSaveObjS32(al::PlacementId const*,int);
|
|
void setStartedObj(al::PlacementId const*);
|
|
void setGotShine(ShineInfo const*);
|
|
void setMissRestartInfo(al::PlacementInfo const&);
|
|
void setCheckpointId(al::PlacementId const*);
|
|
void setActivateHome(void);
|
|
void setOriginalHintTrans(int);
|
|
|
|
bool isUnlockedWorld(int) const;
|
|
bool isAlreadyGoWorld(int) const;
|
|
bool isFirstTimeNextWorld(void) const;
|
|
bool isGotShine(ShineInfo const*) const;
|
|
bool isGotShine(int) const;
|
|
bool isStartedObj(char const*,char const*) const;
|
|
bool isAnswerCorrectSphinxQuizAll(int) const;
|
|
bool isTalkAlreadyLocalLanguage(void) const;
|
|
bool isBuyItem(char const*,sead::FixedSafeString<64> const*) const;
|
|
bool isOpenShineName(int,int) const;
|
|
bool isExistPoetter(void) const;
|
|
bool isAlreadyShowExplainCheckpointFlag(void) const;
|
|
bool isFlagOnTalkMessageInfo(int) const;
|
|
bool isTalkKakku(void) const;
|
|
bool isNextMainShine(struct QuestInfo const*) const;
|
|
bool isNextMainShine(int) const;
|
|
bool isMainShine(int) const;
|
|
bool isLatestGetMainShine(ShineInfo const*) const;
|
|
bool isEnableOpenMoonRock(int) const;
|
|
bool isCollectedBgm(char const*,char const*) const;
|
|
bool isPlayScenarioCamera(struct QuestInfo const*) const;
|
|
bool isFirstNetwork(void) const;
|
|
bool isTalkCollectBgmNpc(void) const;
|
|
bool isTalkWorldTravelingPeach(void) const;
|
|
bool isClearWorldMainScenario(int) const;
|
|
bool isShopSellout(int) const;
|
|
bool isExistTimeBalloonNpc(void) const;
|
|
bool isExistJango(void) const;
|
|
bool isGotShine(int,int) const;
|
|
bool isExistInHackDictionary(char const*) const;
|
|
// bool isBuyItem(ShopItem::ItemInfo const*) const;
|
|
bool isUnlockAchievementShineName(void) const;
|
|
bool isOpenMoonRock(int) const;
|
|
bool isEnableUnlockHint(void) const;
|
|
bool isGotCheckpoint(al::PlacementId *) const;
|
|
bool isGotCheckpointInWorld(int) const;
|
|
bool isPlayDemoPlayerDownForBattleKoopaAfter(void) const;
|
|
bool isUsedGrowFlowerSeed(al::PlacementId const*) const;
|
|
bool isStartWorldTravelingPeach(void) const;
|
|
bool isFirstWorldTravelingStatus(void) const;
|
|
bool isAnswerCorrectSphinxQuiz(int) const;
|
|
bool isPayCoinToSphinx(void) const;
|
|
bool isGotCoinCollect(al::PlacementId const*) const;
|
|
bool isExistSessionMember(struct SessionMusicianType const&) const;
|
|
bool isStartedObj(al::PlacementId const*,char const*) const;
|
|
bool isPayShineAllInAllWorld(void) const;
|
|
bool isUseMissRestartInfo(void) const;
|
|
bool isGoToCeremonyFromInsideHomeShip(void) const;
|
|
bool isRaceStart(void) const;
|
|
bool isGameClear(void) const;
|
|
bool isEmpty(void) const;
|
|
bool isKidsMode(void) const;
|
|
|
|
undefined padding[0x5C8];
|
|
UniqObjInfo** mUniqueInfo; // 0x5C8
|
|
void *unkPtr1; // 0x5D0
|
|
void *unkPtr2; // 0x5D8
|
|
void *unkPtr3; // 0x5E0
|
|
void* unkPtr4; // 0x5E8
|
|
void* unkPtr5; // 0x5F0
|
|
bool unkBool1; // 0x5F8
|
|
bool unkBool2; // 0x5F9
|
|
bool mIsCapEnable; // 0x5FA
|
|
};
|
|
|