diff --git a/data/file_list.yml b/data/file_list.yml index 747e5237..d44c2afb 100644 --- a/data/file_list.yml +++ b/data/file_list.yml @@ -94274,6 +94274,8 @@ ModeBalloon/NexRankingUploader.o: label: _ZNSt3__16vectorIN2nn3nex24DataStoreRateObjectParamENS2_12MemAllocatorIS3_EEE21__push_back_slow_pathIRKS3_EEvOT_ status: NotDecompiled lazy: true +ModeBalloon/RankingLocalFunction.h: + '.text': - offset: 0x35c158 size: 16 label: _ZN20RankingLocalFunction27isValidCourceIdYukimaruRaceEi @@ -149756,675 +149758,675 @@ System/GameDataUtil.o: - offset: 0x53174c size: 44 label: _ZN2rs30createSaveObjInfoWriteSaveDataERKN2al13ActorInitInfoE - status: NotDecompiled + status: Matching - offset: 0x531778 size: 44 label: _ZN2rs30createSaveObjInfoWriteSaveDataERKN2al13ActorInitInfoERKNS0_13PlacementInfoE - status: NotDecompiled + status: Matching - offset: 0x5317a4 size: 44 label: _ZN2rs43createSaveObjInfoNoWriteSaveDataInSameWorldERKN2al13ActorInitInfoE - status: NotDecompiled + status: Matching - offset: 0x5317d0 size: 44 label: _ZN2rs43createSaveObjInfoNoWriteSaveDataInSameWorldERKN2al13ActorInitInfoERKNS0_13PlacementInfoE - status: NotDecompiled + status: Matching - offset: 0x5317fc size: 44 label: _ZN2rs56createSaveObjInfoNoWriteSaveDataInSameWorldResetMiniGameERKN2al13ActorInitInfoE - status: NotDecompiled + status: Matching - offset: 0x531828 size: 44 label: _ZN2rs56createSaveObjInfoNoWriteSaveDataInSameWorldResetMiniGameERKN2al13ActorInitInfoERKNS0_13PlacementInfoE - status: NotDecompiled + status: Matching - offset: 0x531854 size: 44 label: _ZN2rs46createSaveObjInfoNoWriteSaveDataInSameScenarioERKN2al13ActorInitInfoE - status: NotDecompiled + status: Matching - offset: 0x531880 size: 44 label: _ZN2rs46createSaveObjInfoNoWriteSaveDataInSameScenarioERKN2al13ActorInitInfoERKNS0_13PlacementInfoE - status: NotDecompiled + status: Matching - offset: 0x5318ac size: 4 label: _ZN2rs30createSaveObjInfoWriteSaveDataERKN2al13ActorInitInfoEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x5318b0 size: 4 label: _ZN2rs43createSaveObjInfoNoWriteSaveDataInSameWorldERKN2al13ActorInitInfoEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x5318b4 size: 4 label: _ZN2rs56createSaveObjInfoNoWriteSaveDataInSameWorldResetMiniGameERKN2al13ActorInitInfoEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x5318b8 size: 4 label: _ZN2rs46createSaveObjInfoNoWriteSaveDataInSameScenarioERKN2al13ActorInitInfoEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x5318bc size: 4 label: _ZN2rs13onSaveObjInfoEP11SaveObjInfo - status: NotDecompiled + status: Matching - offset: 0x5318c0 size: 4 label: _ZN2rs14offSaveObjInfoEP11SaveObjInfo - status: NotDecompiled + status: Matching - offset: 0x5318c4 size: 4 label: _ZN2rs15isOnSaveObjInfoEPK11SaveObjInfo - status: NotDecompiled + status: Matching - offset: 0x5318c8 size: 68 label: _ZN2rs17setGrowFlowerTimeEPKN2al9LiveActorEPKNS0_11PlacementIdES6_m - status: NotDecompiled + status: Matching - offset: 0x53190c size: 52 label: _ZN2rs17setGrowFlowerTimeEPKN2al9LiveActorEPKNS0_11PlacementIdEm - status: NotDecompiled + status: Matching - offset: 0x531940 size: 44 label: _ZN2rs17getGrowFlowerTimeEPKN2al9LiveActorEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x53196c size: 44 label: _ZN2rs20isUsedGrowFlowerSeedEPKN2al9LiveActorEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x531998 size: 52 label: _ZN2rs22addGrowFlowerGrowLevelEPKN2al9LiveActorEPKNS0_11PlacementIdEj - status: NotDecompiled + status: Matching - offset: 0x5319cc size: 44 label: _ZN2rs22getGrowFlowerGrowLevelEPKN2al9LiveActorEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x5319f8 size: 44 label: _ZN2rs29findGrowFlowerPotIdFromSeedIdEPKN2al9LiveActorEPKNS0_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x531a24 size: 44 label: _ZN2rs22isPlayFirstTimeBalloonEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531a50 size: 40 label: _ZN2rs20playTimeBalloonFirstEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531a78 size: 40 label: _ZN2rs17onShortExplainGetEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531aa0 size: 40 label: _ZN2rs17onShortExplainSetEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531ac8 size: 36 label: _ZN2rs17isShortExplainGetEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531aec size: 36 label: _ZN2rs17isShortExplainSetEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531b10 size: 40 label: _ZN2rs21onReactedLuigiCostumeEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531b38 size: 36 label: _ZN2rs21isReactedLuigiCostumeEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531b5c size: 36 label: _ZN2rs13getPlayerRankEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531b80 size: 16 label: _ZN2rs13getPlayerRankE22GameDataHolderAccessor - status: NotDecompiled + status: Matching - offset: 0x531b90 size: 48 label: _ZN2rs13setPlayerRankEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x531bc0 size: 16 label: _ZN2rs13setPlayerRankE22GameDataHolderAccessori - status: NotDecompiled + status: Matching - offset: 0x531bd0 size: 36 label: _ZN2rs14getPrincipalIdEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531bf4 size: 48 label: _ZN2rs14setPrincipalIdEPKN2al9LiveActorEm - status: NotDecompiled + status: Matching - offset: 0x531c24 size: 44 label: _ZN2rs25isAnswerCorrectSphinxQuizE22GameDataHolderAccessorPKc - status: NotDecompiled + status: Matching - offset: 0x531c50 size: 28 label: _ZN2rs23answerCorrectSphinxQuizEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531c6c size: 44 label: _ZN2rs28isAnswerCorrectSphinxQuizAllE22GameDataHolderAccessorPKc - status: NotDecompiled + status: Matching - offset: 0x531c98 size: 28 label: _ZN2rs26answerCorrectSphinxQuizAllEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531cb4 size: 60 label: _ZN2rs26isTalkAlreadyLocalLanguageEPK16NpcEventDirector - status: NotDecompiled + status: Matching - offset: 0x531cf0 size: 28 label: _ZN2rs17talkLocalLanguageEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531d0c size: 64 label: _ZN2rs20getLocalLanguageNameEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531d4c size: 96 label: _ZN2rs20getLocalLanguageNameEPK16NpcEventDirector - status: NotDecompiled + status: Matching - offset: 0x531dac size: 56 label: _ZN2rs34isOnFlagKinopioBrigadeNpcFirstTalkEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531de4 size: 60 label: _ZN2rs32onFlagKinopioBrigadeNpcFirstTalkEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531e20 size: 56 label: _ZN2rs24isOnFlagHintNpcFirstTalkEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531e58 size: 60 label: _ZN2rs22onFlagHintNpcFirstTalkEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x531e94 size: 40 label: _ZN2rs23playScenarioStartCameraEPKN2al9LiveActorEPK9QuestInfo - status: NotDecompiled + status: Matching - offset: 0x531ebc size: 40 label: _ZN2rs23playScenarioStartCameraEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x531ee4 size: 32 label: _ZN2rs17setExistKoopaShipEPK9KoopaShip - status: NotDecompiled + status: Matching - offset: 0x531f04 size: 28 label: _ZN2rs19resetExistKoopaShipEPK9KoopaShip - status: NotDecompiled + status: Matching - offset: 0x531f20 size: 120 label: _ZN2rs16isExistKoopaShipEPK16ShineTowerRocket - status: NotDecompiled + status: Matching - offset: 0x531f98 size: 92 label: _ZN2rs21isExistKoopaShipInSkyEPK16ShineTowerRocket - status: NotDecompiled + status: Matching - offset: 0x531ff4 size: 100 label: _ZN2rs18tryUnlockShineNameEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x532058 size: 116 label: _ZN2rs32calcShineIndexTableNameAvailableEPiS0_PKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5320cc size: 116 label: _ZN2rs33calcShineIndexTableNameUnlockableEPiS0_PKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x532140 size: 312 label: _ZN2rs26calcWorldIdByWorldWarpHoleEPK13WorldWarpHolePKc - status: NotDecompiled + status: Matching - offset: 0x532278 size: 104 label: _ZN2rs39checkIsOpenWorldWarpHoleCurrentScenarioEPK13WorldWarpHole - status: NotDecompiled + status: Matching - offset: 0x5322e0 size: 76 label: _ZN2rs10isKidsModeEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x53232c size: 100 label: _ZN2rs10isKidsModeEPKN2al11LayoutActorE - status: NotDecompiled + status: Matching - offset: 0x532390 size: 100 label: _ZN2rs10isKidsModeEPKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x5323f4 size: 96 label: _ZN2rs10isKidsModeEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x532454 size: 68 label: _ZN2rs10isKidsModeEPK14GameDataHolder - status: NotDecompiled + status: Matching - offset: 0x532498 size: 32 label: _ZN2rs33isEnableCapMessageLifeOneKidsModeEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5324b8 size: 32 label: _ZN2rs32disableCapMessageLifeOneKidsModeEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5324d8 size: 80 label: _ZN2rs20isInvalidChangeStageEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x532528 size: 80 label: _ZN2rs27isSequenceTimeBalloonOrRaceEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x532578 size: 56 label: _ZN2rs27isSequenceTimeBalloonOrRaceEPK14GameDataHolder - status: NotDecompiled + status: Matching - offset: 0x5325b0 size: 80 label: _ZN2rs22isTreasureBoxDeadStageEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x532600 size: 148 label: _ZN2rs14findRaceRecordEPbS0_PiS1_S1_PKN2al9LiveActorEPKc - status: NotDecompiled + status: Matching - offset: 0x532694 size: 168 label: _ZN2rs14findRaceRecordEPbS0_PiS1_S1_PKN2al5SceneEPKc - status: NotDecompiled + status: Matching - offset: 0x53273c size: 236 label: _ZN2rs25findRaceRecordRaceManRaceEPbS0_PiS1_S1_PKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x532828 size: 232 label: _ZN2rs25findRaceRecordRaceManRaceEPbS0_PiS1_S1_PKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x532910 size: 216 label: _ZN2rs36findRaceRecordRaceManRaceWithWorldIdEPbS0_PiS1_S1_PKN2al5SceneEi - status: NotDecompiled + status: Matching - offset: 0x5329e8 size: 204 label: _ZN2rs36findRaceRecordRaceManRaceWithWorldIdEPbS0_PiS1_S1_PKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x532ab4 size: 212 label: _ZN2rs21findRaceRecordRadiconEPbS0_PiS1_S1_PKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x532b88 size: 200 label: _ZN2rs21findRaceRecordRadiconEPbS0_PiS1_S1_PKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x532c50 size: 320 label: _ZN2rs22findRaceRecordYukimaruEPbS0_PiS1_S1_PKN2al5SceneEi - status: NotDecompiled + status: Matching - offset: 0x532d90 size: 308 label: _ZN2rs22findRaceRecordYukimaruEPbS0_PiS1_S1_PKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x532ec4 size: 128 label: _ZN2rs15writeRaceRecordEPKN2al9LiveActorEPKciii - status: NotDecompiled + status: Matching - offset: 0x532f44 size: 152 label: _ZN2rs15writeRaceRecordEPKN2al5SceneEPKciii - status: NotDecompiled + status: Matching - offset: 0x532fdc size: 56 label: _ZN2rs23getJumpingRopeBestCountEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533014 size: 56 label: _ZN2rs23getJumpingRopeBestCountEPKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x53304c size: 64 label: _ZN2rs23setJumpingRopeBestCountEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x53308c size: 64 label: _ZN2rs23setJumpingRopeBestCountEPKN2al5SceneEi - status: NotDecompiled + status: Matching - offset: 0x5330cc size: 56 label: _ZN2rs22getJumpingRopeDayCountEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533104 size: 72 label: _ZN2rs22setJumpingRopeDayCountEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x53314c size: 56 label: _ZN2rs29setJumpingRopeUpdateScoreFlagEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533184 size: 56 label: _ZN2rs24isExistRecordJumpingRopeEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5331bc size: 56 label: _ZN2rs24isExistRecordJumpingRopeEPKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x5331f4 size: 56 label: _ZN2rs29isExistRecordInDayJumpingRopeEPKN2al11LayoutActorE - status: NotDecompiled + status: Matching - offset: 0x53322c size: 56 label: _ZN2rs22getVolleyballBestCountEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533264 size: 56 label: _ZN2rs22getVolleyballBestCountEPKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x53329c size: 64 label: _ZN2rs22setVolleyballBestCountEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x5332dc size: 64 label: _ZN2rs22setVolleyballBestCountEPKN2al5SceneEi - status: NotDecompiled + status: Matching - offset: 0x53331c size: 56 label: _ZN2rs21getVolleyballDayCountEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533354 size: 72 label: _ZN2rs21setVolleyballDayCountEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x53339c size: 56 label: _ZN2rs28setVolleyballUpdateScoreFlagEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5333d4 size: 56 label: _ZN2rs23isExistRecordVolleyballEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x53340c size: 56 label: _ZN2rs23isExistRecordVolleyballEPKN2al5SceneE - status: NotDecompiled + status: Matching - offset: 0x533444 size: 56 label: _ZN2rs28isExistRecordInDayVolleyballEPKN2al11LayoutActorE - status: NotDecompiled + status: Matching - offset: 0x53347c size: 220 label: _ZN2rs26writeRaceRecordRaceManRaceEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533558 size: 32 label: _ZN2rs20isTalkFirstAmiiboNpcEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533578 size: 32 label: _ZN2rs25offFlagTalkFirstAmiiboNpcEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533598 size: 60 label: _ZN2rs35checkGetShineForWorldTravelingPeachE22GameDataHolderAccessorPKc - status: NotDecompiled + status: Matching - offset: 0x5335d4 size: 148 label: _ZN2rs40checkEnableAppearMoonWorldTravelingPeachEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533668 size: 28 label: _ZN2rs26isStartWorldTravelingPeachEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533684 size: 28 label: _ZN2rs24startWorldTravelingPeachEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5336a0 size: 100 label: _ZN2rs19checkGetEnoughShineEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533704 size: 140 label: _ZN2rs33checkGetEnoughShineInCurrentWorldEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533790 size: 36 label: _ZN2rs26setFlagOnStartKoopaCaptureEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5337b4 size: 32 label: _ZN2rs19isStartKoopaCaptureEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5337d4 size: 48 label: _ZN2rs33isAlreadyTalkPrevWorldInWorldWarpEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533804 size: 48 label: _ZN2rs33isAlreadyTalkNextWorldInWorldWarpEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533834 size: 48 label: _ZN2rs34setAlreadyTalkPrevWorldInWorldWarpEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533864 size: 48 label: _ZN2rs34setAlreadyTalkNextWorldInWorldWarpEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533894 size: 180 label: _ZN2rs22checkNeedTalkPrevWorldEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533948 size: 32 label: _ZN2rs20getTipsIdInWorldWarpEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533968 size: 32 label: _ZN2rs20addTipsIdInWorldWarpEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533988 size: 56 label: _ZN2rs25setTalkSpecialInWorldWarpEPKN2al9LiveActorEbb - status: NotDecompiled + status: Matching - offset: 0x5339c0 size: 32 label: _ZN2rs26isTalkFindKoopaInWorldWarpEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5339e0 size: 32 label: _ZN2rs25isTalkBossRaidInWorldWarpEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533a00 size: 152 label: _ZN2rs19isClearMainScenarioEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x533a98 size: 12 label: _ZN2rs22checkAlreadyVisitStageEPK14GameDataHolderPKc - status: NotDecompiled + status: Matching - offset: 0x533aa4 size: 12 label: _ZN2rs10visitStageEPK14GameDataHolderPKc - status: NotDecompiled + status: Matching - offset: 0x533ab0 size: 152 label: _ZN2rs23isSequenceGoToNextWorldEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x533b48 size: 236 label: _ZN2rs37isSequenceCollectShineBeforeGameClearEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x533c34 size: 144 label: _ZN2rs35isSequenceCollectShineForRepairHomeEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x533cc4 size: 228 label: _ZN2rs22isSequenceCollectShineEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x533da8 size: 136 label: _ZN2rs22isSequenceGoToMoonRockEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x533e30 size: 100 label: _ZN2rs23isEnableExplainShopCoinEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533e94 size: 88 label: _ZN2rs15explainShopCoinEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533eec size: 152 label: _ZN2rs30checkShowNewItemAndPrepareSaveEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533f84 size: 36 label: _ZN2rs23isInNormalCoinShopFirstEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533fa8 size: 36 label: _ZN2rs24offInNormalCoinShopFirstEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x533fcc size: 120 label: _ZN2rs21checkExistNewShopItemEPKN2al9LiveActorEiib - status: NotDecompiled + status: Matching - offset: 0x534044 size: 52 label: _ZN2rs21getCapMessageBossDataEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x534078 size: 4 label: _ZN2rs13getYoshiFruitEP11SaveObjInfo - status: NotDecompiled + status: Matching - offset: 0x53407c size: 4 label: _ZN2rs15isGetYoshiFruitEPK11SaveObjInfo - status: NotDecompiled + status: Matching - offset: 0x534080 size: 28 label: _ZN2rs11isTalkKakkuEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x53409c size: 28 label: _ZN2rs9talkKakkuEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5340b8 size: 28 label: _ZN2rs25isTalkWorldTravelingPeachEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5340d4 size: 28 label: _ZN2rs23talkWorldTravelingPeachEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5340f0 size: 28 label: _ZN2rs19isTalkCollectBgmNpcEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x53410c size: 28 label: _ZN2rs17talkCollectBgmNpcEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x534128 size: 28 label: _ZN2rs37getTokimekiMayorNpcFavorabilityRatingEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x534144 size: 44 label: _ZN2rs37setTokimekiMayorNpcFavorabilityRatingEPKN2al9LiveActorEi - status: NotDecompiled + status: Matching - offset: 0x534170 size: 80 label: _ZN2rs20tryFindCoinStackSaveEPiPKN2al9LiveActorEPKNS1_11PlacementIdE - status: NotDecompiled + status: Matching - offset: 0x5341c0 size: 76 label: _ZN2rs13saveCoinStackEPKN2al9LiveActorEPKNS0_11PlacementIdEi - status: NotDecompiled + status: Matching - offset: 0x53420c size: 72 label: _ZN2rs31isCollectedBgmCityWorldCelemonyEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x534254 size: 80 label: _ZN2rs33isCollectedBgmCityWorldCelemony2DEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5342a4 size: 20 label: _ZN2rs27calcGetShineNumCollectedBgmE22GameDataHolderAccessor - status: NotDecompiled + status: Matching - offset: 0x5342b8 size: 120 label: _ZN2rs28checkGetShineCollectedBgmAllEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x534330 size: 48 label: _ZN2rs19checkSavedHintPhotoEPKN2al9LiveActorEPKc - status: NotDecompiled + status: Matching - offset: 0x534360 size: 48 label: _ZN2rs13saveHintPhotoEPKN2al9LiveActorEPKc - status: NotDecompiled + status: Matching - offset: 0x534390 size: 12 label: _ZN2rs12isRideSphinxE22GameDataHolderAccessor - status: NotDecompiled + status: Matching - offset: 0x53439c size: 36 label: _ZN2rs10rideSphinxEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5343c0 size: 12 label: _ZN2rs16isRideMotorcycleE22GameDataHolderAccessor - status: NotDecompiled + status: Matching - offset: 0x5343cc size: 36 label: _ZN2rs14rideMotorcycleEPKN2al9LiveActorE - status: NotDecompiled + status: Matching - offset: 0x5343f0 size: 60 label: _ZN2rs26setShowInformationPoleGrabEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x53442c size: 64 label: _ZN2rs29isNeedShowInformationPoleGrabEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x53446c size: 60 label: _ZN2rs27setShowInformationPoleClimbEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x5344a8 size: 64 label: _ZN2rs30isNeedShowInformationPoleClimbEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x5344e8 size: 60 label: _ZN2rs30setShowInformationPoleClimbTopEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x534524 size: 64 label: _ZN2rs33isNeedShowInformationPoleClimbTopEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x534564 size: 56 label: _ZN2rs25isNeedConfirmNetworkFirstEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching - offset: 0x53459c size: 52 label: _ZN2rs23saveConfirmNetworkFirstEPKN2al18IUseSceneObjHolderE - status: NotDecompiled + status: Matching System/GameProgressData.o: '.text': - offset: 0x5345d0 diff --git a/lib/al/Library/Ranking/IUseRanking.h b/lib/al/Library/Ranking/IUseRanking.h new file mode 100644 index 00000000..e4c442bf --- /dev/null +++ b/lib/al/Library/Ranking/IUseRanking.h @@ -0,0 +1,11 @@ +#pragma once + +namespace al { +class RankingDirector; + +class IUseRanking { +public: + virtual RankingDirector* getRankingDirector() const; + virtual bool isAvailableRanking() const; +}; +} // namespace al diff --git a/src/MapObj/KoopaShip.h b/src/MapObj/KoopaShip.h new file mode 100644 index 00000000..926b06bd --- /dev/null +++ b/src/MapObj/KoopaShip.h @@ -0,0 +1,64 @@ +#pragma once + +#include + +#include "Library/LiveActor/LiveActor.h" + +namespace al { +struct ActorInitInfo; +} +class KoopaShipWeddingPartsInfo; +class Peach; +class PropellerRotateInfo; + +class KoopaShip : public al::LiveActor { +public: + KoopaShip(const char*); + void init(const al::ActorInitInfo&) override; + void onSwitchGateKeeperOpeningDemoStart(); + void onBlurMovie(); + void initAfterPlacement() override; + void offDepthShadow(); + void onDepthShadow(); + void movement() override; + void control() override; + void appear() override; + void kill() override; + void calcAnim() override; + void startClipped() override; + void endClipped() override; + void exeWait(); + void endWait(); + void exeDemo(); + void exeDemoAppear(); + void exeDemoGateKeeper(); + void exeDemoHomeFlyAway(); + void exeDemoHomeFlyAwayAfter(); + void startDemoWait(); + void endDemoWait(Peach*); + void skipGateKeeperOpeningDemo(); + void startDemoHomeFlyAway(); + bool isEnableStartWipeDemoHomeFlyAway() const; + s32 getWipeDemoFlyAwayStep(); + bool isEnableEndDemoHomeFlyAway() const; + static KoopaShip* createForKoopaLv1(al::LiveActor*, Peach*, const al::ActorInitInfo&); + void switchHalfModel(); + +private: + const char* _108; + void* filler_110[9]; + KoopaShipWeddingPartsInfo** _158; + void* filler_160[2]; + sead::Matrix34f _170; + sead::Matrix34f _1a0; + void* filler_1d0[4]; +}; + +namespace KoopaShipFunction { +al::LiveActor* tryCreateLinkKoopaShip(const al::ActorInitInfo&); +s32 getPropellerRotateInfoNum(); +PropellerRotateInfo* getPropellerRotateInfo(s32); +const char* getWeddingPartsInitFileName(); +} // namespace KoopaShipFunction + +static_assert(sizeof(KoopaShip) == 0x1f0); diff --git a/src/MapObj/ShineTowerRocket.h b/src/MapObj/ShineTowerRocket.h new file mode 100644 index 00000000..e9a22285 --- /dev/null +++ b/src/MapObj/ShineTowerRocket.h @@ -0,0 +1,125 @@ +#pragma once + +#include + +#include "Library/Event/IEventFlowEventReceiver.h" +#include "Library/LiveActor/LiveActor.h" + +#include "Demo/IUseDemoSkip.h" + +namespace al { +struct ActorInitInfo; +class HitSensor; +class SensorMsg; +} // namespace al +class ShineTowerCommonKeeper; + +namespace rs { +void setupHomeMeter(al::LiveActor*); +void setupHomeMeterFitherParam(al::LiveActor*, ShineTowerCommonKeeper*); +void setupHomeSticker(al::LiveActor*); +void setupHomeCompLight(al::LiveActor*); +void getHomeArchiveName(const al::LiveActor*); +} // namespace rs + +class ShineTowerRocket : public al::LiveActor, + public al::IEventFlowEventReceiver, + public IUseDemoSkip { +public: + ShineTowerRocket(const char*); + void init(const al::ActorInitInfo&) override; + void onSwitchDither(); + void offSwitchDither(); + void makeActorDead() override; + void makeActorAlive() override; + void initAfterPlacement() override; + void startClipped() override; + void control() override; + bool isActiveDirtyModel() const; + void calcAnim() override; + bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other, + al::HitSensor* self) override; + void attackSensor(al::HitSensor* self, al::HitSensor* other) override; + bool receiveEvent(const al::EventFlowEventData*) override; + void tryStartEntranceCamera(s32); + bool isFirstDemo() const override; + bool isEnableSkipDemo() const override; + void skipDemo() override; + void exeWait(); + void updateParts(); + bool isNearPlayerEntrance() const; + void exeReaction(); + void exeDemoPrepare(); + bool tryStartDemo(); + void tryEndEntranceCamera(); + void exeDemoWalkPlayerToPoint(); + void calcPlayerPoseForPayDemo(); + void tryStartHitReactionDemoStart(); + void exeDemoAppearShine(); + void exeDemoWaitAfterAppearShine(); + bool tryLevelUp(); + void exeDemoWaitBeforeScaleUpDirect(); + void calcCameraMtxMeterUpPrev(); + void exeDemoScaleUp(); + void exeDemoMeterRotate(); + void calcCameraMtx(); + void setupRotateMeter(); + void exeDemoMeterUpPrev(); + void exeDemoMeterUp(); + void exeDemoMeterUpPost(); + void exeDemoTutorialShine(); + void exeDemoSelectGoOtherWorld(); + void exeDemoAwardMoon(); + void exeDemoUpLevelCamera(); + void calcCameraMtxLevelUp(); + void exeDemoUpLevel(); + void exeDemoInformPowerUp(); + void exeDemoInformPowerUpMessage(); + void exeDemoKoopaShip(); + void exeDemoKoopaShipFade(); + void exeDemoUpLevelCloseFade(); + void exeDemoUpLevelWaitFade(); + void exeDemoUpLevelOpenFade(); + void exeDemoInformNewHome(); + void exeDemoInformNewHomeMessage(); + void exeDemoInformPeachCastleCap(); + void exeDemoInformRepairHome(); + void exeDemoInformNewItem(); + void exeDemoInformCompleteShineFadeIn(); + void exeDemoInformCompleteShineFadeWait(); + void exeDemoInformCompleteShineFadeOut(); + void exeDemoInformCompleteShine(); + void exeDemoWarpWorld(); + void exeWaitDemo(); + void exeDemoAppearPlayerFromHome(); + bool isActiveDamageModel() const; + void exeDemoAppearPlayerFromHomeAfter(); + void exeDemoReturnToHome(); + bool isActiveDirtyOrClashModel() const; + void exeDemoWorldTakeoff(); + void exeDemoWorldTakeoffNext(); + void setupWorldTakeoffPose(bool); + void exeDemoAppearFromEntrance(); + void exeDemoWorldTakeoffForDebug(); + void exeNoStart(); + void exeNoStartEarth(); + void exeNoStartEnter(); + void exeBackDoor(); + void exeNoStartAndCoin(); + void exeGoToWorldMapWithCamera(); + void setupWorldMapCameraParam(); + void exeGoToWorldMapWithFade(); + void exeWorldMap(); + void cancelWorldMap(); + void decideWorldMap(s32); + bool isWorldMap() const; + void startDemoAppearPlayerFromHome(); + void startDemoReturnToHome(); + void updatePartsByDamage(); + bool isActiveClashModel() const; + +private: + char filler[0x3c8]; +}; + +static_assert(sizeof(ShineTowerRocket) == 0x4e0); diff --git a/src/MapObj/WorldWarpHole.h b/src/MapObj/WorldWarpHole.h new file mode 100644 index 00000000..6ca0775b --- /dev/null +++ b/src/MapObj/WorldWarpHole.h @@ -0,0 +1,57 @@ +#pragma once + +#include +#include +#include + +#include "Library/LiveActor/LiveActor.h" + +namespace al { +struct ActorInitInfo; +class CameraTicket; +class HitSensor; +class RippleCtrl; +class SensorMsg; +} // namespace al +class CapMessageEnableChecker; +class IUsePlayerPuppet; + +class WorldWarpHole : public al::LiveActor { +public: + WorldWarpHole(const char*); + void init(const al::ActorInitInfo&) override; + void initAfterPlacement() override; + bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other, + al::HitSensor* self) override; + void control() override; + void exeCloseWait(); + void exeOpenWait(); + void exeInvalidStart(); + void exeInvalid(); + void exeInvalidEnd(); + void exeBindStart(); + void exeBind(); + void exeIn(); + void exeInAfter(); + void exeOutBefore(); + void exeOut(); + void exeOutBindRequest(); + +private: + IUsePlayerPuppet* mPlayerPuppet; + const char* mChangeStageId; + CapMessageEnableChecker* mCapMessageEnableChecker; + sead::Vector3f _120; + sead::Quatf _12c; + sead::Vector3f _13c; + bool _148; + bool _149; + s32 mWorldId; + al::CameraTicket* mCameraTicket; + sead::Vector3f _158; + sead::Vector3f _164; + sead::Vector3f _170; + al::RippleCtrl* mRippleCtrl; +}; + +static_assert(sizeof(WorldWarpHole) == 0x188); diff --git a/src/ModeBalloon/NexRankingUploader.h b/src/ModeBalloon/NexRankingUploader.h new file mode 100644 index 00000000..a5327b39 --- /dev/null +++ b/src/ModeBalloon/NexRankingUploader.h @@ -0,0 +1,87 @@ +#pragma once + +#include +#include +#include + +#include "Library/LiveActor/LiveActor.h" +#include "Library/Ranking/IUseRanking.h" + +namespace al { +struct ActorInitInfo; +class IUseDataStore; +class RankingDirector; +class RankingStateUploadCommonData; +class RankingStateUploadScore; +} // namespace al + +namespace nn::nex { +class BufferQueueParam; +class qBuffer; +class DataStoreRatingInitParam; +template +class qMap; +template +class qVector; +} // namespace nn::nex + +namespace TimeBalloon { +class BalloonDataServer; +class NoticeDataServer; +} // namespace TimeBalloon + +enum class RankingCategory : s32; + +class NexRankingUploader : public al::IUseRanking, public al::LiveActor { +public: + NexRankingUploader(const char*, const char*); + virtual ~NexRankingUploader(); + + void init(const al::ActorInitInfo&) override; + al::RankingDirector* getRankingDirector() const override; + bool isAvailableRanking() const override; + void uploadScore(u32, RankingCategory, bool); + void uploadName(const sead::WFixedSafeString<128>&); + void uploadAccountNickname(); + bool tryLoadNickname(); + bool isSuccess() const; + bool isFailure() const; + void exeUploadScore(); + void exeUploadCommonData(); + void exeEnd(); + void requestInitializeNetwork(al::IUseRanking*); + +private: + al::RankingStateUploadScore* _110; + al::RankingStateUploadCommonData* _118; + sead::FixedSafeString<128>* _120; + const char* _128; +}; + +namespace rs { +void restorePrincipalId(u64*, const nn::nex::qBuffer*); +void startUploadTimeBalloonNoticeData(al::IUseDataStore*, const TimeBalloon::NoticeDataServer&); +bool tryEndUploadTimeBalloonNoticeData(bool*, u64*, const al::IUseDataStore*); +bool tryStartAddTimeBalloonHistory(al::IUseDataStore*, u64, u32, u64); +bool tryStartAddTimeBalloonHistoryList(al::IUseDataStore*, + const nn::nex::qVector&, + const nn::nex::qVector&); +bool tryEndAddTimeBalloonHistory(bool*, al::IUseDataStore*); +bool tryStartGetTimeBalloonHistory(al::IUseDataStore*, nn::nex::qVector*, u64, + u32); +bool tryStartGetTimeBalloonHistoryList(al::IUseDataStore*, + const nn::nex::qVector&, + const nn::nex::qVector&); +bool tryEndGetTimeBalloonHistory(bool*, const al::IUseDataStore*); +void startUploadTimeBalloonBalloonData(al::IUseDataStore*, const TimeBalloon::BalloonDataServer&, + nn::nex::qMap*); +bool tryEndUploadTimeBalloonBalloonData(bool*, u64*, const al::IUseDataStore*); +bool tryStartUploadBalloonFindBalloonData( + al::IUseDataStore*, u16, const void*, s32, + const nn::nex::qMap*); +bool tryStartUpdateRatingPlayedBalloon(al::IUseDataStore*, u64, u64, bool); +bool tryStartUpdateRatingBrokeBalloon(al::IUseDataStore*, u64, u64, u64, s32, s32); +bool tryEndUpdateRating(bool*, al::IUseDataStore*); +} // namespace rs + +static_assert(sizeof(NexRankingUploader) == 0x130); diff --git a/src/ModeBalloon/RankingLocalFunction.h b/src/ModeBalloon/RankingLocalFunction.h new file mode 100644 index 00000000..f44b15a0 --- /dev/null +++ b/src/ModeBalloon/RankingLocalFunction.h @@ -0,0 +1,41 @@ +#pragma once + +#include +#include + +enum class alignas(8) RankingCategory : s32; + +namespace RankingLocalFunction { +bool isValidCourceIdYukimaruRace(s32); +RankingCategory getRankingCategoryYukimaruRace(s32); +bool isValidWorldIdRaceManRace(s32); +RankingCategory getRankingCategoryRaceManRace(s32); +bool isRankingCategoryYukimaruRace(RankingCategory); +bool isRankingCategoryRaceManRace(RankingCategory); +s32 getRaceManRaceWorldId(RankingCategory); +bool isRankingCategoryRace(RankingCategory); +bool tryGetRankingCategoryIndex(s32*, RankingCategory, const sead::ObjArray&); +bool isExistRankingCategory(RankingCategory, const sead::ObjArray&); +RankingCategory findRankingCategoryByRaceRecordName(const char*); +bool isRankingUploadableScore(u32, RankingCategory); +} // namespace RankingLocalFunction + +struct RankingDataOneRecord { + void clear(); + + void* filler_0[14]; +}; + +class RankingDataOneCategory { +public: + RankingDataOneCategory(RankingCategory, s32); + void clear(); + void setData(s32, u64, u32, u32, const char16*); + +private: + RankingCategory _0; + void* filler_8[3]; +}; + +static_assert(sizeof(RankingDataOneRecord) == 0x70); +static_assert(sizeof(RankingDataOneCategory) == 0x20); diff --git a/src/Npc/NpcEventDirector.h b/src/Npc/NpcEventDirector.h new file mode 100644 index 00000000..a6e14aae --- /dev/null +++ b/src/Npc/NpcEventDirector.h @@ -0,0 +1,77 @@ +#pragma once + +#include + +#include "Library/Camera/IUseCamera.h" +#include "Library/Collision/IUseCollision.h" +#include "Library/Execute/IUseExecutor.h" +#include "Library/Message/IUseMessageSystem.h" +#include "Library/Nerve/NerveExecutor.h" +#include "Library/Scene/IUseSceneObjHolder.h" + +namespace al { +struct ActorInitInfo; +class CameraDirector; +class CollisionDirector; +class PlayerHolder; +class MessageSystem; +class SceneObjHolder; +class WipeSimple; +} // namespace al +class EventDemoCtrl; +class EventFlowSceneExecuteCtrl; +class NpcEventBalloonInfo; +class NpcEventCtrlInfo; +class NpcEventSceneInfo; +class NpcEventTalkInfo; + +class NpcEventDirector : public al::NerveExecutor, + public al::IUseCamera, + public al::IUseCollision, + public al::IUseExecutor, + public al::IUseMessageSystem, + public al::IUseSceneObjHolder { +public: + NpcEventDirector(const al::PlayerHolder*, al::CameraDirector*, al::CollisionDirector*, + const al::MessageSystem*, EventFlowSceneExecuteCtrl*); + void init(const al::ActorInitInfo& initInfo); + void execute() override; + void updateBalloon(); + void killAllBalloonForSnapshotMode(); + void exeWait(); + void exeDemo(); + void exeDemoWipeClose(); + void exeDemoWipeOpen(); + void exeDemoTalk(); + void endDemoTalk(); + void exeDemoTalkEnd(); + void exeDemoSelectChoiceStart(); + void exeDemoSelectChoice(); + + al::CameraDirector* getCameraDirector() const override { return mCameraDirector; } + + al::CollisionDirector* getCollisionDirector() const override { return mCollisionDirector; } + + const al::MessageSystem* getMessageSystem() const override { return mMessageSystem; } + + al::SceneObjHolder* getSceneObjHolder() const override { return mSceneObjHolder; } + +private: + NpcEventSceneInfo* mNpcEventSceneInfo; + NpcEventCtrlInfo* mNpcEventCtrlInfo; + void* _48; + void* _50; + EventDemoCtrl* mEventDemoCtrl; + EventFlowSceneExecuteCtrl* mEventFlowSceneExecuteCtrl; + al::WipeSimple* mWipeSimple; + s32 mWipeFrames; + NpcEventBalloonInfo* mNpcEventBalloonInfo; + NpcEventTalkInfo* mNpcEventTalkInfo; + const al::PlayerHolder* mPlayerHolder; + al::CameraDirector* mCameraDirector; + al::CollisionDirector* mCollisionDirector; + al::SceneObjHolder* mSceneObjHolder; + const al::MessageSystem* mMessageSystem; +}; + +static_assert(sizeof(NpcEventDirector) == 0xb0); diff --git a/src/Scene/QuestInfo.h b/src/Scene/QuestInfo.h new file mode 100644 index 00000000..a76cf8e0 --- /dev/null +++ b/src/Scene/QuestInfo.h @@ -0,0 +1,44 @@ +#pragma once + +#include +#include + +#include "Library/Scene/IUseSceneObjHolder.h" + +namespace al { +struct ActorInitInfo; +class PlacementInfo; +class SceneObjHolder; +} // namespace al + +class QuestInfo : public al::IUseSceneObjHolder { +public: + QuestInfo(); + void clear(); + void init(const al::ActorInitInfo&); + void init(const al::PlacementInfo&, const al::ActorInitInfo&); + void init(const al::PlacementInfo&, al::SceneObjHolder*); + void setStageName(const char*); + void setLabel(const char*); + void copy(const QuestInfo*); + void end(); + bool isEqual(const QuestInfo*) const; + + al::SceneObjHolder* getSceneObjHolder() const override { return mSceneObjHolder; } + + s32 getQuestNo() const { return mQuestNo; } + +private: + s32 mQuestNo; + void* filler_10; + bool mIsMainQuest; + al::SceneObjHolder* mSceneObjHolder; + sead::SafeString* mScenarioName; + void* filler_30[0x12]; + sead::SafeString* mStageName; + void* filler_c8[0x12]; + bool mIsSingle; + void* filler_160[0x26]; +}; + +static_assert(sizeof(QuestInfo) == 0x290); diff --git a/src/System/CollectBgm.h b/src/System/CollectBgm.h new file mode 100644 index 00000000..9e7a5b47 --- /dev/null +++ b/src/System/CollectBgm.h @@ -0,0 +1,34 @@ +#pragma once + +class CollectBgm { +public: + inline static const char* const cSituationNameList[9] = { + "BossForestBattle3rd", + "BossGolemBattle3rd", + "CollectBgmGiantWanderBoss", + "CollectBgmGiantWanderBoss8Bit", + "CollectBgmWorldMap", + "In2DArea", + "InWater", + "MuteOffPaulineVocal", + "TankZone", + }; + + inline static const char* cCeremonyCollectBgmName = "StmRsBgmCityScenario03Clct"; + inline static const char* cBonusCollectBgmName01 = "StmRsBgmEndRockSpecial"; + inline static const char* cBonusCollectBgmName02 = "StmRsBgmCityScenario03Special"; + inline static const char* cBonusCollectBgmSituationName02 = "MuteOffPaulineVocal"; + + CollectBgm(); + CollectBgm(const char*, const char*, const char*, const char*, const char*); + bool isEqualRequest(const char*, const char*, const char*); + +private: + const char* _0; + const char* _8; + const char* _10; + const char* _18; + const char* _20; +}; + +static_assert(sizeof(CollectBgm) == 0x28); diff --git a/src/System/GameDataFile.h b/src/System/GameDataFile.h index 154c81a7..c367c7dc 100644 --- a/src/System/GameDataFile.h +++ b/src/System/GameDataFile.h @@ -1,7 +1,10 @@ #pragma once +#include #include #include +#include +#include #include