mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-23 09:04:21 +00:00
System: Implement GameDataUtil (#759)
This commit is contained in:
parent
fa52a34d88
commit
ca8e7eb87a
|
|
@ -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
|
||||
|
|
|
|||
11
lib/al/Library/Ranking/IUseRanking.h
Normal file
11
lib/al/Library/Ranking/IUseRanking.h
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class RankingDirector;
|
||||
|
||||
class IUseRanking {
|
||||
public:
|
||||
virtual RankingDirector* getRankingDirector() const;
|
||||
virtual bool isAvailableRanking() const;
|
||||
};
|
||||
} // namespace al
|
||||
64
src/MapObj/KoopaShip.h
Normal file
64
src/MapObj/KoopaShip.h
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#pragma once
|
||||
|
||||
#include <math/seadMatrix.h>
|
||||
|
||||
#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);
|
||||
125
src/MapObj/ShineTowerRocket.h
Normal file
125
src/MapObj/ShineTowerRocket.h
Normal file
|
|
@ -0,0 +1,125 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#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);
|
||||
57
src/MapObj/WorldWarpHole.h
Normal file
57
src/MapObj/WorldWarpHole.h
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include <math/seadQuat.h>
|
||||
#include <math/seadVector.h>
|
||||
|
||||
#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);
|
||||
87
src/ModeBalloon/NexRankingUploader.h
Normal file
87
src/ModeBalloon/NexRankingUploader.h
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include <container/seadObjArray.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
|
||||
#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 <typename T1, typename T2>
|
||||
class qMap;
|
||||
template <typename T>
|
||||
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<nn::nex::BufferQueueParam>&,
|
||||
const nn::nex::qVector<nn::nex::qBuffer>&);
|
||||
bool tryEndAddTimeBalloonHistory(bool*, al::IUseDataStore*);
|
||||
bool tryStartGetTimeBalloonHistory(al::IUseDataStore*, nn::nex::qVector<nn::nex::qBuffer>*, u64,
|
||||
u32);
|
||||
bool tryStartGetTimeBalloonHistoryList(al::IUseDataStore*,
|
||||
const nn::nex::qVector<nn::nex::BufferQueueParam>&,
|
||||
const nn::nex::qVector<nn::nex::qBuffer>&);
|
||||
bool tryEndGetTimeBalloonHistory(bool*, const al::IUseDataStore*);
|
||||
void startUploadTimeBalloonBalloonData(al::IUseDataStore*, const TimeBalloon::BalloonDataServer&,
|
||||
nn::nex::qMap<s8, nn::nex::DataStoreRatingInitParam>*);
|
||||
bool tryEndUploadTimeBalloonBalloonData(bool*, u64*, const al::IUseDataStore*);
|
||||
bool tryStartUploadBalloonFindBalloonData(
|
||||
al::IUseDataStore*, u16, const void*, s32,
|
||||
const nn::nex::qMap<s8, nn::nex::DataStoreRatingInitParam>*);
|
||||
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);
|
||||
41
src/ModeBalloon/RankingLocalFunction.h
Normal file
41
src/ModeBalloon/RankingLocalFunction.h
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include <container/seadObjArray.h>
|
||||
|
||||
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<RankingCategory>&);
|
||||
bool isExistRankingCategory(RankingCategory, const sead::ObjArray<RankingCategory>&);
|
||||
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);
|
||||
77
src/Npc/NpcEventDirector.h
Normal file
77
src/Npc/NpcEventDirector.h
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#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);
|
||||
44
src/Scene/QuestInfo.h
Normal file
44
src/Scene/QuestInfo.h
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
|
||||
#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);
|
||||
34
src/System/CollectBgm.h
Normal file
34
src/System/CollectBgm.h
Normal file
|
|
@ -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);
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include <math/seadVector.h>
|
||||
#include <prim/seadBitFlag.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
#include <stream/seadStream.h>
|
||||
#include <time/seadDateTime.h>
|
||||
|
||||
#include "System/UniqObjInfo.h"
|
||||
|
|
@ -9,12 +12,36 @@
|
|||
constexpr s32 sNumWorlds = 20;
|
||||
|
||||
namespace al {
|
||||
struct ActorInitInfo;
|
||||
class ByamlWriter;
|
||||
class IUseSceneObjHolder;
|
||||
class PlacementId;
|
||||
class PlacementInfo;
|
||||
} // namespace al
|
||||
|
||||
namespace ShopItem {
|
||||
struct ItemInfo;
|
||||
}
|
||||
|
||||
class ChangeStageInfo;
|
||||
class CollectBgm;
|
||||
class GameDataHolder;
|
||||
class GameProgressData;
|
||||
class HintPhotoData;
|
||||
struct ItemInfo;
|
||||
class NetworkUploadFlag;
|
||||
class PlayerHitPointData;
|
||||
class QuestInfo;
|
||||
class RaceRecord;
|
||||
class SessionMusicianType;
|
||||
struct ShineInfo;
|
||||
class ShopTalkData;
|
||||
class SphinxQuizData;
|
||||
class TimeBalloonSaveData;
|
||||
class UniqObjInfo;
|
||||
class VisitStageData;
|
||||
class WorldList;
|
||||
class WorldWarpTalkData;
|
||||
|
||||
class GameDataFile {
|
||||
public:
|
||||
|
|
@ -71,6 +98,8 @@ public:
|
|||
bool unkBool3;
|
||||
};
|
||||
|
||||
struct CoinCollectInfo;
|
||||
|
||||
template <typename T, s32 Size>
|
||||
class FixedHeapArray {
|
||||
public:
|
||||
|
|
@ -90,6 +119,19 @@ public:
|
|||
T* mPtr = nullptr;
|
||||
};
|
||||
|
||||
enum class CountType : s32 {
|
||||
Value_0 = 0,
|
||||
Value_1 = 1,
|
||||
Value_2 = 2,
|
||||
};
|
||||
|
||||
GameDataFile(GameDataHolder*);
|
||||
void initializeData();
|
||||
bool tryReadByamlData(const u8*);
|
||||
CoinCollectInfo* tryFindCoinCollectInfo(const u8*, const u8*) const;
|
||||
s32 tryFindShineIndexByUniqueId(s32) const;
|
||||
s32 tryFindCoinCollectIndexByUniqueId(s32) const;
|
||||
void buyDefaultItem();
|
||||
void unlockAchievementShineName();
|
||||
bool isKidsMode() const;
|
||||
void updateWorldMapIndex();
|
||||
|
|
@ -97,83 +139,448 @@ public:
|
|||
s32 getScenarioNo(s32 worldId) const;
|
||||
s32 getMainScenarioNo(s32 worldId) const;
|
||||
bool isEmpty() const;
|
||||
void initializeCheckpointTable();
|
||||
void generateSaveDataIdForPrepo();
|
||||
void resetMapIcon();
|
||||
void wearDefault();
|
||||
void initializeHintList();
|
||||
void initializeCoinCollectList();
|
||||
void resetTempData();
|
||||
bool isGameClear() const;
|
||||
bool isUnlockedWorld(s32 worldId) const;
|
||||
bool isAlreadyGoWorld(s32 worldId) const;
|
||||
void addPlayTime(s32, const al::IUseSceneObjHolder*);
|
||||
s64 getPlayTimeTotal() const;
|
||||
void updateSaveTime();
|
||||
void updateSaveTimeForDisp();
|
||||
void updateSaveInfoForDisp();
|
||||
sead::DateTime getLastUpdateTime() const;
|
||||
void generateSaveDataIdForPrepoForWrite();
|
||||
void resetSaveDataIdForPrepoForWrite();
|
||||
void startStage(const char*, s32);
|
||||
bool isRaceStart() const;
|
||||
bool checkIsHomeStage(const char* stageName) const;
|
||||
void setGameClear();
|
||||
void setOriginalHintTrans(s32);
|
||||
PlayerHitPointData* getPlayerHitPointData() const;
|
||||
void startDemoStage(const char*);
|
||||
void changeNextStage(const char*);
|
||||
void returnPrevStage();
|
||||
void changeNextStageWithDemoWorldWarp(const char*);
|
||||
void changeNextStageWithWorldWarpHole(const char*);
|
||||
void restartStage();
|
||||
s32 calcNextScenarioNo() const;
|
||||
const char* getStageNameCurrent() const;
|
||||
const char* tryGetStageNameCurrent() const;
|
||||
const char* getStageNameNext() const;
|
||||
void changeWipeType(const char*);
|
||||
void setActivateHome();
|
||||
bool isGoToCeremonyFromInsideHomeShip() const;
|
||||
const char* getPlayerStartId() const;
|
||||
void setCheckpointId(const al::PlacementId*);
|
||||
void setRestartPointId(const al::PlacementId*);
|
||||
void clearStartId();
|
||||
const char* tryGetRestartPointIdString() const;
|
||||
void endStage();
|
||||
void missAndRestartStage();
|
||||
void setMissRestartInfo(const al::PlacementInfo&);
|
||||
bool isUseMissRestartInfo(const al::PlacementInfo&) const;
|
||||
bool isFirstTimeNextWorld() const;
|
||||
void getAchievement(const char*);
|
||||
bool isGotShine(const ShineInfo*) const;
|
||||
bool isGotShine(s32) const;
|
||||
bool checkGotShine(const char*) const;
|
||||
void setGotShine(const ShineInfo*);
|
||||
s32 getShineNum() const;
|
||||
s32 getShineNum(s32) const;
|
||||
s32 getTotalShineNum() const;
|
||||
s32 getTotalShopShineNum() const;
|
||||
bool tryGetNextMainScenarioLabel(sead::BufferedSafeStringBase<char>*,
|
||||
sead::BufferedSafeStringBase<char>*) const;
|
||||
bool tryGetNextMainScenarioPos(sead::Vector3f*) const;
|
||||
HintInfo* tryFindNextMainScenarioInfo() const;
|
||||
void addPayShine(s32);
|
||||
void addPayShineCurrentAll();
|
||||
s32 getPayShineNum(s32 worldId = -1) const;
|
||||
s32 getTotalPayShineNum() const;
|
||||
bool isPayShineAllInAllWorld() const;
|
||||
void addKey(s32);
|
||||
s32 getKeyNum() const;
|
||||
void addOpenDoorLockNum(s32);
|
||||
void setStartedObj(const al::PlacementId*);
|
||||
bool isStartedObj(const al::PlacementId*, const char*) const;
|
||||
bool isStartedObj(const char* stageName, const char* objId) const;
|
||||
void setSaveObjS32(const al::PlacementId*, s32);
|
||||
const SaveObjS32* tryFindSaveObjS32(const al::PlacementId* placementId);
|
||||
bool isExistSessionMember(const SessionMusicianType&) const;
|
||||
void addSessionMember(const SessionMusicianType&) const;
|
||||
void addCoinCollect(const al::PlacementId*);
|
||||
bool isGotCoinCollect(const al::PlacementId*) const;
|
||||
s32 getCoinCollectNum() const;
|
||||
s32 getCoinCollectGotNum() const;
|
||||
s32 getCoinCollectGotNum(s32) const;
|
||||
void useCoinCollect(s32 purplesUsed);
|
||||
const char* tryFindCoinCollectStageName(s32) const;
|
||||
void payCoinToSphinx();
|
||||
bool isPayCoinToSphinx() const;
|
||||
void answerCorrectSphinxQuiz();
|
||||
void answerCorrectSphinxQuizAll();
|
||||
bool isAnswerCorrectSphinxQuiz(s32 index) const;
|
||||
bool isAnswerCorrectSphinxQuizAll(s32 index) const;
|
||||
bool isTalkAlreadyLocalLanguage() const;
|
||||
void talkLocalLanguage();
|
||||
bool isFirstWorldTravelingStatus() const;
|
||||
void saveWorldTravelingStatus();
|
||||
const char* getWorldTravelingStatus() const;
|
||||
bool isStartWorldTravelingPeach() const;
|
||||
void startWorldTravelingPeach();
|
||||
void setGrowFlowerTime(const al::PlacementId*, const al::PlacementId*, u64 time);
|
||||
void setGrowFlowerTime(const al::PlacementId*, u64 time);
|
||||
u64 getGrowFlowerTime(const al::PlacementId*) const;
|
||||
void addGrowFlowerGrowLevel(const al::PlacementId*, u32 growLevel);
|
||||
u32 getGrowFlowerGrowLevel(const al::PlacementId*) const;
|
||||
bool isUsedGrowFlowerSeed(const al::PlacementId*) const;
|
||||
const char* findGrowFlowerPotIdFromSeedId(const al::PlacementId*);
|
||||
void addCoin(s32);
|
||||
void addPlayerJumpCount();
|
||||
s32 getPlayerJumpCount() const;
|
||||
void addPlayerThrowCapCount();
|
||||
s32 getPlayerThrowCapCount() const;
|
||||
bool readFromStream(sead::ReadStream*, u8*);
|
||||
bool tryReadByamlDataFromStream(sead::ReadStream*, u8*, s32);
|
||||
void writeToStream(sead::WriteStream*, sead::Heap*) const;
|
||||
bool tryWriteByByaml(sead::WriteStream*, sead::Heap*) const;
|
||||
bool isPlayDemoPlayerDownForBattleKoopaAfter() const;
|
||||
s32 getCheckpointNumMaxInWorld() const;
|
||||
const sead::Vector3f& getCheckpointTransInWorld(const char*) const;
|
||||
bool isGotCheckpointInWorld(s32) const;
|
||||
s32 calcCheckpointIndexInScenario(s32) const;
|
||||
const char* getCheckpointObjIdInWorld(s32) const;
|
||||
bool isGotCheckpoint(al::PlacementId*) const;
|
||||
void changeNextSceneByGotCheckpoint(s32);
|
||||
void changeNextSceneByWarp();
|
||||
void changeNextSceneByHome();
|
||||
void startYukimaruRace();
|
||||
void startYukimaruRaceTutorial();
|
||||
void startRaceManRace();
|
||||
void registerCheckpointTrans(const al::PlacementId*, const sead::Vector3f&);
|
||||
s32 calcGetCheckpointNum() const;
|
||||
bool isEnableUnlockHint() const;
|
||||
s32 calcRestHintNum() const;
|
||||
void unlockHint();
|
||||
void unlockHintImpl(s32);
|
||||
void unlockHintAmiibo();
|
||||
void unlockHintAddByMoonRock();
|
||||
s32 calcHintNum() const;
|
||||
const sead::Vector3f& calcHintTrans(s32) const;
|
||||
HintInfo* findHint(s32) const;
|
||||
const sead::Vector3f& calcHintTransMostEasy() const;
|
||||
HintInfo* findHintInfoMostEasy() const;
|
||||
s32 calcHintMoonRockNum() const;
|
||||
const sead::Vector3f& calcHintMoonRockTrans(s32) const;
|
||||
HintInfo* findHintMoonRock(s32) const;
|
||||
bool tryUnlockShineName(s32, s32);
|
||||
bool isOpenMoonRock(s32) const;
|
||||
void calcShineIndexTableNameAvailable(s32*, s32*, s32);
|
||||
void calcShineIndexTableNameUnlockable(s32*, s32*, s32);
|
||||
bool isUnlockAchievementShineName() const;
|
||||
void unlockWorld(s32);
|
||||
void noPlayDemoWorldWarp();
|
||||
s32 calcWorldWarpHoleThroughNum() const;
|
||||
s32 getWorldWarpHoleThroughNumMax() const;
|
||||
void enteredStage();
|
||||
void buyItem(const ShopItem::ItemInfo*, bool);
|
||||
const sead::FixedSafeString<64>* tryFindItemList(ItemInfo*) const;
|
||||
s32 calcHaveClothNum() const;
|
||||
s32 calcHaveCapNum() const;
|
||||
s32 calcHaveStickerNum() const;
|
||||
s32 calcHaveGiftNum() const;
|
||||
bool isBuyItem(const ShopItem::ItemInfo*) const;
|
||||
bool isBuyItem(const char*, const sead::FixedSafeString<64>*) const;
|
||||
void buyItemAll();
|
||||
void wearCostume(const char* name);
|
||||
void wearCap(const char* name);
|
||||
void addHackDictionary(const char*);
|
||||
bool isExistInHackDictionary(const char*) const;
|
||||
HintInfo* findShine(s32, s32) const;
|
||||
bool isGotShine(s32, s32) const;
|
||||
bool isOpenShineName(s32, s32) const;
|
||||
s32 calcShineNumInOneShine(s32, s32) const;
|
||||
bool checkAchievementShine(s32, s32) const;
|
||||
s32 getWorldTotalShineNum(s32) const;
|
||||
s32 getWorldTotalShineNumMax(s32) const;
|
||||
void winRace();
|
||||
RaceRecord* findRaceRecord(const char*) const;
|
||||
void incrementRaceLoseCount(s32);
|
||||
s32 getRaceLoseCount(s32) const;
|
||||
void setJumpingRopeBestCount(s32);
|
||||
void setUpdateJumpingRopeScoreFlag();
|
||||
void setVolleyballBestCount(s32);
|
||||
void setUpdateVolleyballScoreFlag();
|
||||
bool isExistJango() const;
|
||||
void setJangoTrans(const sead::Vector3f&);
|
||||
void setAmiiboNpcTrans(const sead::Vector3f&);
|
||||
void setTimeBalloonNpcTrans(const sead::Vector3f&);
|
||||
void setPoetterTrans(const sead::Vector3f&);
|
||||
void setShopNpcTrans(const sead::Vector3f&, const char*, s32);
|
||||
void setMoonRockTrans(const sead::Vector3f&);
|
||||
void setMiniGameInfo(const sead::Vector3f&, const char*);
|
||||
s32 calcMiniGameNum() const;
|
||||
s32 getMiniGameNumMax() const;
|
||||
const sead::Vector3f& getMiniGameTrans(s32) const;
|
||||
const char* getMiniGameName(s32) const;
|
||||
bool isExistTimeBalloonNpc() const;
|
||||
const sead::Vector3f& getTimeBalloonNpcTrans() const;
|
||||
bool isExistPoetter() const;
|
||||
const sead::Vector3f& getPoetterTrans() const;
|
||||
bool isAlreadyShowExplainCheckpointFlag() const;
|
||||
void showExplainCheckpointFlag();
|
||||
const sead::Vector3f& getShopNpcTrans(s32) const;
|
||||
bool isShopSellout() const;
|
||||
s32 calcShopNum() const;
|
||||
s32 getShopNpcIconNumMax() const;
|
||||
s32 getScenarioNo() const;
|
||||
s32 getScenarioNoPlacement() const;
|
||||
bool isClearWorldMainScenario(s32) const;
|
||||
bool isFlagOnTalkMessageInfo(s32) const;
|
||||
void setFlagOnTalkMessageInfo(s32);
|
||||
bool isTalkKakku() const;
|
||||
void talkKakku();
|
||||
bool isTalkWorldTravelingPeach() const;
|
||||
void talkWorldTravelingPeach();
|
||||
bool isTalkCollectBgmNpc() const;
|
||||
void talkCollectBgmNpc();
|
||||
s32 getTokimekiMayorNpcFavorabilityRating() const;
|
||||
void setTokimekiMayorNpcFavorabilityRating(s32);
|
||||
bool isFirstNetwork() const;
|
||||
void noFirstNetwork();
|
||||
void setKidsMode(bool);
|
||||
bool isPlayScenarioCamera(const QuestInfo*) const;
|
||||
bool isNextMainShine(const QuestInfo*) const;
|
||||
bool isNextMainShine(s32) const;
|
||||
bool isMainShine(s32) const;
|
||||
bool isLatestGetMainShine(const ShineInfo*) const;
|
||||
bool calcIsGetMainShineAll(const al::IUseSceneObjHolder*) const;
|
||||
bool calcIsGetShineAllInWorld(s32) const;
|
||||
s32 tryFindLinkedShineIndex(const al::ActorInitInfo&, const al::IUseSceneObjHolder*) const;
|
||||
s32 tryFindLinkedShineIndex(const al::ActorInitInfo&, s32, const al::IUseSceneObjHolder*) const;
|
||||
s32 tryFindLinkedShineIndexByLinkName(const al::IUseSceneObjHolder*, const al::ActorInitInfo&,
|
||||
const char*) const;
|
||||
s32 calcLinkedShineNum(const al::ActorInitInfo&) const;
|
||||
s32 tryFindShineIndex(const al::ActorInitInfo&) const;
|
||||
s32 tryFindShineIndex(const char*, const char*) const;
|
||||
void disableHintById(s32 shineIndex);
|
||||
void enableHintById(s32 shineIndex);
|
||||
void setStartShine(const ShineInfo*);
|
||||
s32 getStartShineNextIndex() const;
|
||||
void setHintTrans(s32, const sead::Vector3f&);
|
||||
void resetHintTrans(s32);
|
||||
void registerShineInfo(const ShineInfo*, const sead::Vector3f&);
|
||||
s32 calcRestShineInStageWithWorldProgress(const char*) const;
|
||||
s32 calcGetShineNumByObjectNameOrOptionalId(const char*, CountType) const;
|
||||
s32 calcGetShineNumByObjectNameWithWorldId(const char*, s32) const;
|
||||
s32 calcAllShineNumByObjectNameOrOptionalId(const char*) const;
|
||||
s32 calcGetShineNumByStageName(const char*) const;
|
||||
bool tryFindAndInitShineInfoByOptionalId(ShineInfo*, const char*);
|
||||
s32 tryFindUniqueId(const ShineInfo*) const;
|
||||
s32 findUnlockShineNumCurrentWorld(bool*) const;
|
||||
s32 getMainScenarioNoCurrent() const;
|
||||
void setMainScenarioNo(s32);
|
||||
bool isCollectedBgm(const char*, const char*) const;
|
||||
const CollectBgm* getCollectBgmByIndex(s32) const;
|
||||
bool trySetCollectedBgm(const char*, const char*);
|
||||
s32 getCollectedBgmNum() const;
|
||||
s32 getCollectedBgmNumMax() const;
|
||||
void setGotShine(s32);
|
||||
void setGotShine(const HintInfo*);
|
||||
bool isEnableOpenMoonRock(s32) const;
|
||||
bool tryWriteByByaml(al::ByamlWriter*) const;
|
||||
|
||||
bool isHintNpcFirstTalk() const { return mIsHintNpcFirstTalk; }
|
||||
|
||||
void hintNpcFirstTalk() { mIsHintNpcFirstTalk = true; }
|
||||
|
||||
bool isKinopioBrigadeNpcFirstTalk() const { return mIsKinopioBrigadeNpcFirstTalk; }
|
||||
|
||||
void kinopioBrigadeNpcFirstTalk() { mIsKinopioBrigadeNpcFirstTalk = true; }
|
||||
|
||||
TimeBalloonSaveData* getTimeBalloonSaveData() const { return mTimeBalloonSaveData; }
|
||||
|
||||
bool isTalkFirstAmiiboNpc() const { return mIsTalkFirstAmiiboNpc; }
|
||||
|
||||
void offTalkFirstAmiiboNpc() { mIsTalkFirstAmiiboNpc = false; }
|
||||
|
||||
WorldWarpTalkData* getWorldWarpTalkData() const { return mWorldWarpTalkData; }
|
||||
|
||||
VisitStageData* getVisitStageData() const { return mVisitStageData; }
|
||||
|
||||
NetworkUploadFlag* getNetworkUploadFlag() const { return mNetworkUploadFlag; }
|
||||
|
||||
HintPhotoData* getHintPhotoData() const { return mHintPhotoData; }
|
||||
|
||||
bool isRideSphinx() const { return mIsRideSphinx; }
|
||||
|
||||
void rideSphinx() { mIsRideSphinx = true; }
|
||||
|
||||
bool isRideMotorcycle() const { return mIsRideMotorcycle; }
|
||||
|
||||
void rideMotorcycle() { mIsRideMotorcycle = true; }
|
||||
|
||||
s32 getJumpingRopeBestCount() const { return mJumpingRopeBestCount; }
|
||||
|
||||
s32 getJumpingRopeDayCount() const { return mJumpingRopeDayCount; }
|
||||
|
||||
void setJumpingRopeDayCount(s32 count) { mJumpingRopeDayCount = count; }
|
||||
|
||||
bool isExistRecordJumpingRope() const { return mIsExistRecordJumpingRope; }
|
||||
|
||||
void existRecordJumpingRope() { mIsExistRecordJumpingRope = true; }
|
||||
|
||||
bool isExistRecordInDayJumpingRope() const { return mIsExistRecordInDayJumpingRope; }
|
||||
|
||||
void existRecordInDayJumpingRope() { mIsExistRecordInDayJumpingRope = true; }
|
||||
|
||||
s32 getVolleyballBestCount() const { return mVolleyballBestCount; }
|
||||
|
||||
s32 getVolleyballDayCount() const { return mVolleyballDayCount; }
|
||||
|
||||
void setVolleyballDayCount(s32 count) { mVolleyballDayCount = count; }
|
||||
|
||||
bool isExistRecordVolleyball() const { return mIsExistRecordVolleyball; }
|
||||
|
||||
void existRecordVolleyball() { mIsExistRecordVolleyball = true; }
|
||||
|
||||
bool isExistRecordInDayVolleyball() const { return mIsExistRecordInDayVolleyball; }
|
||||
|
||||
void existRecordInDayVolleyball() { mIsExistRecordInDayVolleyball = true; }
|
||||
|
||||
s32 getCurrentWorldId() const { return mCurrentWorldId; }
|
||||
|
||||
void startKoopaCapture() { mIsStartKoopaCapture = true; }
|
||||
|
||||
bool isStartKoopaCapture() const { return mIsStartKoopaCapture; }
|
||||
|
||||
ShopTalkData* getShopTalkData() const { return mShopTalkData; }
|
||||
|
||||
bool isEnableCapMessageLifeOneKidsMode() const { return mIsEnableCapMessageLifeOneKidsMode; }
|
||||
|
||||
void disableCapMessageLifeOneKidsMode() { mIsEnableCapMessageLifeOneKidsMode = false; }
|
||||
|
||||
private:
|
||||
char _000[24];
|
||||
char _000[0x18];
|
||||
FixedHeapArray<s32, sNumWorlds> mShopShineNum;
|
||||
FixedHeapArray<s32, sNumWorlds> mMainScenarioNo;
|
||||
char _028[768];
|
||||
s32 mStartShineIndex;
|
||||
char _02c[0x98];
|
||||
sead::FixedSafeString<128> mPlayerStartIdForSave;
|
||||
char _15c[0x30];
|
||||
WorldList* mWorldList;
|
||||
char _198[0x60];
|
||||
sead::FixedSafeString<128> mCheckpointName;
|
||||
char _28c[0x98];
|
||||
sead::FixedSafeString<128> mCurrentStageName;
|
||||
char _3c0[160];
|
||||
char _3bc[0xa0];
|
||||
FixedHeapArray<bool, sNumWorlds> mIsWorldWarpHoleThrough;
|
||||
sead::DateTime mSaveTimeForDisp;
|
||||
sead::DateTime mSaveTime;
|
||||
char _478[8];
|
||||
s64 mSaveDataIdForPrepo;
|
||||
s64 mSaveDataIdForPrepoForWrite;
|
||||
FixedHeapArray<UniqObjInfo, 320> mGotCheckpoint;
|
||||
char _490[280];
|
||||
char _490[0x118];
|
||||
FixedHeapArray<s32, sNumWorlds> mPayShineNum;
|
||||
char _5b0[16];
|
||||
bool mIsPayShineInAllWorld;
|
||||
s32 mKeyNum;
|
||||
char _5b8[0x8];
|
||||
FixedHeapArray<UniqObjInfo, 512> mStartedObj;
|
||||
FixedHeapArray<SaveObjS32, 256> mSaveObjS32;
|
||||
char _5d0[24];
|
||||
char _5d0[0x8];
|
||||
s32 mCoinNum;
|
||||
s32 mTotalCoinNum;
|
||||
s32 mPlayerJumpCount;
|
||||
s32 mPlayerThrowCapCount;
|
||||
FixedHeapArray<s32, sNumWorlds> mUseCoinCollectNum;
|
||||
FixedHeapArray<s32, sNumWorlds> mUnlockedWorldId;
|
||||
bool mIsPlayDemoOpening;
|
||||
char _5f9[23];
|
||||
bool mIsEnableCap;
|
||||
char _5fa[0xe];
|
||||
s32 mSessionEventProgress;
|
||||
bool mIsPayCoinToSphinx;
|
||||
SphinxQuizData* mSphinxQuizData;
|
||||
FixedHeapArray<bool, sNumWorlds> mIsTalkLocalLanguage;
|
||||
char _620[115];
|
||||
bool mIsHintNpcFirstTalk;
|
||||
bool mIsKinopioBrigadeNpcFirstTalk;
|
||||
s32 mCapStatusForJango;
|
||||
char _628[0x4];
|
||||
s32 mJangoCount;
|
||||
TimeBalloonSaveData* mTimeBalloonSaveData;
|
||||
sead::FixedSafeString<64> mWorldTravelingStatus;
|
||||
bool mIsStartWorldTravelingPeach;
|
||||
bool mIsPlayAlreadyWorldWarp;
|
||||
bool mIsTalkFirstAmiiboNpc;
|
||||
bool mIsUnlockAchievement;
|
||||
char _694[20];
|
||||
WorldWarpTalkData* mWorldWarpTalkData;
|
||||
VisitStageData* mVisitStageData;
|
||||
GameProgressData* mGameProgressData;
|
||||
char _6b0[96];
|
||||
char _6b0[0x20];
|
||||
NetworkUploadFlag* mNetworkUploadFlag;
|
||||
char _6d8[0x8];
|
||||
HintPhotoData* mHintPhotoData;
|
||||
s64 mPlayTimeTotal;
|
||||
char _6f0[0x20];
|
||||
sead::FixedSafeString<64> mCurrentCostumeName;
|
||||
sead::FixedSafeString<64> mCurrentCapName;
|
||||
char _7c0[24];
|
||||
bool mIsCostumeRandom;
|
||||
bool mIsCapRandom;
|
||||
char _7c2[0xe];
|
||||
bool mIsRideSphinx;
|
||||
bool mIsRideMotorcycle;
|
||||
FixedHeapArray<s32, sNumWorlds> mScenarioNo;
|
||||
char _7e0[72];
|
||||
char _7e0[0x10];
|
||||
s32 mRaceLoseCountLv1;
|
||||
s32 mRaceLoseCountLv2;
|
||||
s32 mJumpingRopeBestCount;
|
||||
s32 mJumpingRopeDayCount;
|
||||
bool mIsExistRecordJumpingRope;
|
||||
bool mIsExistRecordInDayJumpingRope;
|
||||
s32 mVolleyballBestCount;
|
||||
s32 mVolleyballDayCount;
|
||||
bool mIsExistRecordVolleyball;
|
||||
bool mIsExistRecordInDayVolleyball;
|
||||
s32 mNextWorldId;
|
||||
s32 mPrevWorldId;
|
||||
bool mIsPlayDemoPlayerDownForBattleKoopaAfter;
|
||||
char _819[0xf];
|
||||
bool mIsKidsMode;
|
||||
char _829[39];
|
||||
char _829[0x17];
|
||||
bool mIsTalkKakku;
|
||||
bool mIsTalkWorldTravelingPeach;
|
||||
s32 mTokimekiMayorNpcFavorabilityRating;
|
||||
bool mIsFirstNetwork;
|
||||
GameDataHolder* mGameDataHolder;
|
||||
char _858[16];
|
||||
char _858[0x8];
|
||||
PlayerHitPointData* mPlayerHitPointData;
|
||||
sead::BufferedSafeString mNextStageName;
|
||||
char _880[288];
|
||||
char _884[0x11c];
|
||||
FixedHeapArray<HintInfo, 1024> mHintList;
|
||||
char _9a8[72];
|
||||
char _9a8[0x48];
|
||||
s32 mCurrentWorldId;
|
||||
char _9f4[332];
|
||||
s32 mWorldId;
|
||||
char _9f8[0x38];
|
||||
ChangeStageInfo* mChangeStageInfo;
|
||||
char _a38[0x9];
|
||||
bool mIsStartKoopaCapture;
|
||||
char _a42[0x1e];
|
||||
ShopTalkData* mShopTalkData;
|
||||
char _a68[0x8];
|
||||
bool mIsShowExplainCheckpointFlag;
|
||||
char _a71[0xcf];
|
||||
FixedHeapArray<s32, sNumWorlds> mWorldMapIndex;
|
||||
s32 mWorldMapNum;
|
||||
char _b4c[4];
|
||||
FixedHeapArray<s32, sNumWorlds> mWorldWarpIndex;
|
||||
s32 mWorldWarpNum;
|
||||
char _b5c[12];
|
||||
char _b5c[0x9];
|
||||
bool mIsEnableCapMessageLifeOneKidsMode;
|
||||
char _b66[0x2];
|
||||
|
||||
inline s32 getCurrentWorldIdNoDevelop() const;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -221,6 +221,10 @@ public:
|
|||
|
||||
WorldList* getWorldList() const { return mWorldList; }
|
||||
|
||||
bool isExistKoopaShip() const { return mIsExistKoopaShip; }
|
||||
|
||||
void setExistKoopaShip(bool isExistKoopaShip) { mIsExistKoopaShip = isExistKoopaShip; }
|
||||
|
||||
GameSequenceInfo* getSequenceInfo() const { return mSequenceInfo; }
|
||||
|
||||
private:
|
||||
|
|
@ -283,7 +287,7 @@ private:
|
|||
bool mIsSeparatePlay;
|
||||
bool mIsPlayDemoLavaErupt;
|
||||
QuestInfoHolder* mQuestInfoHolder;
|
||||
bool _250; // related to resetTempSaveData
|
||||
bool mIsExistKoopaShip;
|
||||
GameSequenceInfo* mSequenceInfo;
|
||||
TimeBalloonSequenceInfo* mTimeBalloonSequenceInfo;
|
||||
};
|
||||
|
|
|
|||
1036
src/System/GameDataUtil.cpp
Normal file
1036
src/System/GameDataUtil.cpp
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -49,14 +49,16 @@ SaveObjInfo* createSaveObjInfoNoWriteSaveDataInSameScenario(const al::ActorInitI
|
|||
void onSaveObjInfo(SaveObjInfo* saveObjInfo);
|
||||
void offSaveObjInfo(SaveObjInfo* saveObjInfo);
|
||||
bool isOnSaveObjInfo(const SaveObjInfo* saveObjInfo);
|
||||
void setGrowFlowerTime(const al::LiveActor* actor, const al::PlacementId*, const al::PlacementId*,
|
||||
u64 time);
|
||||
void setGrowFlowerTime(const al::LiveActor* actor, const al::PlacementId*, u64 time);
|
||||
u64 getGrowFlowerTime(const al::LiveActor* actor, const al::PlacementId*);
|
||||
bool isUsedGrowFlowerSeed(const al::LiveActor* actor, const al::PlacementId*);
|
||||
void addGrowFlowerGrowLevel(const al::LiveActor* actor, const al::PlacementId*, u32 growLevel);
|
||||
u32 getGrowFlowerGrowLevel(const al::LiveActor* actor, const al::PlacementId*);
|
||||
const char* findGrowFlowerPotIdFromSeedId(const al::LiveActor* actor, const al::PlacementId*);
|
||||
void setGrowFlowerTime(const al::LiveActor* actor, const al::PlacementId* placement1,
|
||||
const al::PlacementId* placement2, u64 time);
|
||||
void setGrowFlowerTime(const al::LiveActor* actor, const al::PlacementId* placement, u64 time);
|
||||
u64 getGrowFlowerTime(const al::LiveActor* actor, const al::PlacementId* placement);
|
||||
bool isUsedGrowFlowerSeed(const al::LiveActor* actor, const al::PlacementId* placement);
|
||||
void addGrowFlowerGrowLevel(const al::LiveActor* actor, const al::PlacementId* placement,
|
||||
u32 growLevel);
|
||||
u32 getGrowFlowerGrowLevel(const al::LiveActor* actor, const al::PlacementId* placement);
|
||||
const char* findGrowFlowerPotIdFromSeedId(const al::LiveActor* actor,
|
||||
const al::PlacementId* placement);
|
||||
bool isPlayFirstTimeBalloon(const al::LiveActor* actor);
|
||||
void playTimeBalloonFirst(const al::LiveActor* actor);
|
||||
void onShortExplainGet(const al::LiveActor* actor);
|
||||
|
|
@ -90,8 +92,8 @@ void resetExistKoopaShip(const KoopaShip* koopaShip);
|
|||
bool isExistKoopaShip(const ShineTowerRocket* shineTowerRocket);
|
||||
bool isExistKoopaShipInSky(const ShineTowerRocket* shineTowerRocket);
|
||||
bool tryUnlockShineName(const al::LiveActor* actor, s32 shineIdx);
|
||||
void calcShineIndexTableNameAvailable(s32*, s32*, const al::LiveActor* actor);
|
||||
void calcShineIndexTableNameUnlockable(s32*, s32*, const al::LiveActor* actor);
|
||||
void calcShineIndexTableNameAvailable(s32* unk, s32* out, const al::LiveActor* actor);
|
||||
void calcShineIndexTableNameUnlockable(s32* unk, s32* out, const al::LiveActor* actor);
|
||||
s32 calcWorldIdByWorldWarpHole(const WorldWarpHole* worldWarpHole, const char* changeStageId);
|
||||
bool checkIsOpenWorldWarpHoleCurrentScenario(const WorldWarpHole* worldWarpHole);
|
||||
bool isKidsMode(const al::LiveActor* actor);
|
||||
|
|
@ -103,31 +105,34 @@ bool isEnableCapMessageLifeOneKidsMode(const al::LiveActor* actor);
|
|||
void disableCapMessageLifeOneKidsMode(const al::LiveActor* actor);
|
||||
bool isInvalidChangeStage(const al::LiveActor* actor);
|
||||
bool isSequenceTimeBalloonOrRace(const al::LiveActor* actor);
|
||||
bool isSequenceTimeBalloonOrRace(const al::LiveActor* actor);
|
||||
bool isSequenceTimeBalloonOrRace(const GameDataHolder* holder);
|
||||
bool isTreasureBoxDeadStage(const al::LiveActor* actor);
|
||||
void findRaceRecord(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::LiveActor* actor, const char* raceName);
|
||||
void findRaceRecord(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::Scene* actor, const char* raceName);
|
||||
void findRaceRecordRaceManRace(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::Scene* scene);
|
||||
void findRaceRecordRaceManRace(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::LiveActor* actor);
|
||||
void findRaceRecordRaceManRaceWithWorldId(bool* isExistRecord, bool*, s32* record, s32*,
|
||||
s32* lapRecord, const al::Scene* scene, s32 worldId);
|
||||
void findRaceRecordRaceManRaceWithWorldId(bool* isExistRecord, bool*, s32* record, s32*,
|
||||
s32* lapRecord, const al::LiveActor* actor, s32 worldId);
|
||||
void findRaceRecordRadicon(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::Scene* scene);
|
||||
void findRaceRecordRadicon(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::LiveActor* actor);
|
||||
void findRaceRecordYukimaru(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::Scene* scene, s32 level);
|
||||
void findRaceRecordYukimaru(bool* isExistRecord, bool*, s32* record, s32*, s32* lapRecord,
|
||||
const al::LiveActor* actor, s32 level);
|
||||
void writeRaceRecord(const al::LiveActor* actor, const char* raceName, s32 record, s32,
|
||||
void findRaceRecord(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::LiveActor* actor, const char* raceName);
|
||||
void findRaceRecord(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::Scene* scene, const char* raceName);
|
||||
void findRaceRecordRaceManRace(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::Scene* scene);
|
||||
void findRaceRecordRaceManRace(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::LiveActor* actor);
|
||||
void findRaceRecordRaceManRaceWithWorldId(bool* isExistRecord, bool* isRecordSet, s32* record,
|
||||
s32* bestRecord, s32* lapRecord, const al::Scene* scene,
|
||||
s32 worldId);
|
||||
void findRaceRecordRaceManRaceWithWorldId(bool* isExistRecord, bool* isRecordSet, s32* record,
|
||||
s32* bestRecord, s32* lapRecord,
|
||||
const al::LiveActor* actor, s32 worldId);
|
||||
void findRaceRecordRadicon(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::Scene* scene);
|
||||
void findRaceRecordRadicon(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::LiveActor* actor);
|
||||
void findRaceRecordYukimaru(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::Scene* scene, s32 level);
|
||||
void findRaceRecordYukimaru(bool* isExistRecord, bool* isRecordSet, s32* record, s32* bestRecord,
|
||||
s32* lapRecord, const al::LiveActor* actor, s32 level);
|
||||
void writeRaceRecord(const al::LiveActor* actor, const char* raceName, s32 record, s32 bestRecord,
|
||||
s32 lapRecord);
|
||||
void writeRaceRecord(const al::Scene* scene, const char* raceName, s32 record, s32 bestRecord,
|
||||
s32 lapRecord);
|
||||
void writeRaceRecord(const al::Scene* scene, const char* raceName, s32 record, s32, s32 lapRecord);
|
||||
s32 getJumpingRopeBestCount(const al::LiveActor* actor);
|
||||
s32 getJumpingRopeBestCount(const al::Scene* scene);
|
||||
void setJumpingRopeBestCount(const al::LiveActor* actor, s32 count);
|
||||
|
|
@ -159,14 +164,15 @@ bool checkGetEnoughShine(const al::LiveActor* actor, s32 count);
|
|||
bool checkGetEnoughShineInCurrentWorld(const al::LiveActor* actor);
|
||||
void setFlagOnStartKoopaCapture(const al::LiveActor* actor);
|
||||
bool isStartKoopaCapture(const al::LiveActor* actor);
|
||||
bool isAlreadyTalkPrevWorldInWorldWarp(const al::LiveActor* actor, s32);
|
||||
bool isAlreadyTalkNextWorldInWorldWarp(const al::LiveActor* actor, s32);
|
||||
void setAlreadyTalkPrevWorldInWorldWarp(const al::LiveActor* actor, s32);
|
||||
void setAlreadyTalkNextWorldInWorldWarp(const al::LiveActor* actor, s32);
|
||||
bool isAlreadyTalkPrevWorldInWorldWarp(const al::LiveActor* actor, s32 worldId);
|
||||
bool isAlreadyTalkNextWorldInWorldWarp(const al::LiveActor* actor, s32 worldId);
|
||||
void setAlreadyTalkPrevWorldInWorldWarp(const al::LiveActor* actor, s32 worldId);
|
||||
void setAlreadyTalkNextWorldInWorldWarp(const al::LiveActor* actor, s32 worldId);
|
||||
bool checkNeedTalkPrevWorld(const al::LiveActor* actor);
|
||||
s32 getTipsIdInWorldWarp(const al::LiveActor* actor);
|
||||
void addTipsIdInWorldWarp(const al::LiveActor* actor);
|
||||
void setTalkSpecialInWorldWarp(const al::LiveActor* actor, bool, bool);
|
||||
void setTalkSpecialInWorldWarp(const al::LiveActor* actor, bool isTalkFindKoopa,
|
||||
bool isTalkBossRaid);
|
||||
bool isTalkFindKoopaInWorldWarp(const al::LiveActor* actor);
|
||||
bool isTalkBossRaidInWorldWarp(const al::LiveActor* actor);
|
||||
bool isClearMainScenario(const al::LiveActor* actor, s32 worldId);
|
||||
|
|
@ -182,7 +188,7 @@ void explainShopCoin(const al::LiveActor* actor);
|
|||
bool checkShowNewItemAndPrepareSave(const al::LiveActor* actor);
|
||||
bool isInNormalCoinShopFirst(const al::LiveActor* actor);
|
||||
void offInNormalCoinShopFirst(const al::LiveActor* actor);
|
||||
bool checkExistNewShopItem(const al::LiveActor* actor, s32, s32, bool);
|
||||
bool checkExistNewShopItem(const al::LiveActor* actor, s32 unk1, s32 unk2, bool unk3);
|
||||
CapMessageBossData* getCapMessageBossData(const al::LiveActor* actor);
|
||||
void getYoshiFruit(SaveObjInfo* saveObjInfo);
|
||||
bool isGetYoshiFruit(const SaveObjInfo* saveObjInfo);
|
||||
|
|
@ -194,8 +200,8 @@ bool isTalkCollectBgmNpc(const al::LiveActor* actor);
|
|||
void talkCollectBgmNpc(const al::LiveActor* actor);
|
||||
s32 getTokimekiMayorNpcFavorabilityRating(const al::LiveActor* actor);
|
||||
void setTokimekiMayorNpcFavorabilityRating(const al::LiveActor* actor, s32 rating);
|
||||
bool tryFindCoinStackSave(s32*, const al::LiveActor* actor, const al::PlacementId*);
|
||||
void saveCoinStack(const al::LiveActor* actor, const al::PlacementId*, s32);
|
||||
bool tryFindCoinStackSave(s32* out, const al::LiveActor* actor, const al::PlacementId* placement);
|
||||
void saveCoinStack(const al::LiveActor* actor, const al::PlacementId* placement, s32 value);
|
||||
bool isCollectedBgmCityWorldCelemony(const al::LiveActor* actor);
|
||||
bool isCollectedBgmCityWorldCelemony2D(const al::LiveActor* actor);
|
||||
s32 calcGetShineNumCollectedBgm(GameDataHolderAccessor accessor);
|
||||
|
|
|
|||
29
src/System/HintPhotoData.h
Normal file
29
src/System/HintPhotoData.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#include "System/ByamlSave.h"
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
class ByamlWriter;
|
||||
} // namespace al
|
||||
|
||||
class GameDataFile;
|
||||
|
||||
class HintPhotoData : public ByamlSave {
|
||||
public:
|
||||
HintPhotoData(const GameDataFile*);
|
||||
void init();
|
||||
void saveHintPhoto(const char*);
|
||||
bool checkSavedHintPhoto(const char*) const;
|
||||
void write(al::ByamlWriter*) override;
|
||||
void read(const al::ByamlIter&) override;
|
||||
|
||||
private:
|
||||
GameDataFile* mGameDataFile;
|
||||
s32 mSize;
|
||||
const char** mNameList;
|
||||
};
|
||||
|
||||
static_assert(sizeof(HintPhotoData) == 0x20);
|
||||
32
src/System/NetworkUploadFlag.h
Normal file
32
src/System/NetworkUploadFlag.h
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#include "System/ByamlSave.h"
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
class ByamlWriter;
|
||||
} // namespace al
|
||||
enum class RankingCategory : s32;
|
||||
|
||||
class NetworkUploadFlag : public ByamlSave {
|
||||
public:
|
||||
NetworkUploadFlag();
|
||||
void init();
|
||||
bool isNeedUpload(const RankingCategory&) const;
|
||||
void upload(const RankingCategory&);
|
||||
void updateScore(const RankingCategory&);
|
||||
void write(al::ByamlWriter*) override;
|
||||
void read(const al::ByamlIter&) override;
|
||||
|
||||
struct Entry {
|
||||
bool isNeedUpload;
|
||||
u64 lastUploadTime;
|
||||
};
|
||||
|
||||
private:
|
||||
Entry* mFlags;
|
||||
};
|
||||
|
||||
static_assert(sizeof(NetworkUploadFlag) == 0x10);
|
||||
|
|
@ -23,6 +23,16 @@ public:
|
|||
void write(al::ByamlWriter* writer) override;
|
||||
void read(const al::ByamlIter& save) override;
|
||||
|
||||
s32 getRecord() const { return mRecord; }
|
||||
|
||||
s32 getBestRecord() const { return mBestRecord; }
|
||||
|
||||
s32 getLapRecord() const { return mLapRecord; }
|
||||
|
||||
bool isExistRecord() const { return mIsExistRecord; }
|
||||
|
||||
bool isRecordSet() const { return mIsRecordSet; }
|
||||
|
||||
private:
|
||||
s32 mRecord = RaceTimeFunction::getRaceTimeMaxCsec();
|
||||
s32 mBestRecord = RaceTimeFunction::getRaceTimeMaxCsec();
|
||||
|
|
|
|||
46
src/System/ShopTalkData.h
Normal file
46
src/System/ShopTalkData.h
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
#include <container/seadPtrArray.h>
|
||||
|
||||
#include "System/ByamlSave.h"
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
class ByamlWriter;
|
||||
} // namespace al
|
||||
|
||||
namespace ShopItem {
|
||||
struct ShopItemInfo;
|
||||
}
|
||||
|
||||
class GameDataHolderAccessor;
|
||||
|
||||
class ShopTalkData : public ByamlSave {
|
||||
public:
|
||||
ShopTalkData(s32, const s32*, s32, const sead::PtrArray<ShopItem::ShopItemInfo>&);
|
||||
void init();
|
||||
bool isEnableExplainShopCoin(s32) const;
|
||||
bool checkShowNewItemAndPrepareSave(const GameDataHolderAccessor&, bool, s32);
|
||||
bool checkExistNewItem(const GameDataHolderAccessor&, s32, s32, bool) const;
|
||||
void write(al::ByamlWriter*) override;
|
||||
void read(const al::ByamlIter&) override;
|
||||
|
||||
bool isInNormalCoinShopFirst() const { return mIsInNormalCoinShopFirst; }
|
||||
|
||||
void resetInNormalCoinShopFirst() { mIsInNormalCoinShopFirst = false; }
|
||||
|
||||
void resetIsEnableExplainShopCoin(s32 worldId) { mIsEnableExplainShopCoin[worldId] = false; }
|
||||
|
||||
private:
|
||||
bool mIsInNormalCoinShopFirst;
|
||||
s32 mSize;
|
||||
bool* mIsEnableExplainShopCoin; // Array of bool of size mSize
|
||||
bool* _18;
|
||||
bool* _20;
|
||||
s32* _28;
|
||||
s32 _30;
|
||||
ShopItem::ShopItemInfo** _38;
|
||||
};
|
||||
|
||||
static_assert(sizeof(ShopTalkData) == 0x40);
|
||||
52
src/System/TimeBalloonSaveData.h
Normal file
52
src/System/TimeBalloonSaveData.h
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#include "System/ByamlSave.h"
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
class ByamlWriter;
|
||||
} // namespace al
|
||||
|
||||
class TimeBalloonSaveData : public ByamlSave {
|
||||
public:
|
||||
TimeBalloonSaveData();
|
||||
void init();
|
||||
void write(al::ByamlWriter*) override;
|
||||
void read(const al::ByamlIter&) override;
|
||||
|
||||
bool isExplainedTutorial() const { return mIsExplainedTutorial; }
|
||||
|
||||
void setExplainedTutorial() { mIsExplainedTutorial = true; }
|
||||
|
||||
bool isReactedLuigiCostume() const { return mIsReactedLuigiCostume; }
|
||||
|
||||
void setReactedLuigiCostume() { mIsReactedLuigiCostume = true; }
|
||||
|
||||
bool isShortExplainGet() const { return mIsShortExplainGet; }
|
||||
|
||||
void setShortExplainGet() { mIsShortExplainGet = true; }
|
||||
|
||||
bool isShortExplainSet() const { return mIsShortExplainSet; }
|
||||
|
||||
void setShortExplainSet() { mIsShortExplainSet = true; }
|
||||
|
||||
s32 getPlayerRank() const { return mPlayerRank; }
|
||||
|
||||
void setPlayerRank(s32 rank) { mPlayerRank = rank; }
|
||||
|
||||
u64 getPrincipalId() const { return mPrincipalId; }
|
||||
|
||||
void setPrincipalId(u64 id) { mPrincipalId = id; }
|
||||
|
||||
private:
|
||||
bool mIsExplainedTutorial;
|
||||
bool mIsReactedLuigiCostume;
|
||||
u64 mPrincipalId;
|
||||
s32 mPlayerRank;
|
||||
bool mIsShortExplainGet;
|
||||
bool mIsShortExplainSet;
|
||||
};
|
||||
|
||||
static_assert(sizeof(TimeBalloonSaveData) == 0x20);
|
||||
26
src/System/VisitStageData.h
Normal file
26
src/System/VisitStageData.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#include "System/ByamlSave.h"
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
class ByamlWriter;
|
||||
} // namespace al
|
||||
|
||||
class VisitStageData : public ByamlSave {
|
||||
public:
|
||||
VisitStageData();
|
||||
void init();
|
||||
bool checkAlreadyVisit(const char*) const;
|
||||
void visit(const char*);
|
||||
void write(al::ByamlWriter*);
|
||||
void read(const al::ByamlIter&);
|
||||
|
||||
private:
|
||||
void* _8;
|
||||
s32 _10;
|
||||
};
|
||||
|
||||
static_assert(sizeof(VisitStageData) == 0x18);
|
||||
37
src/System/WorldWarpTalkData.h
Normal file
37
src/System/WorldWarpTalkData.h
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#pragma once
|
||||
|
||||
#include <basis/seadTypes.h>
|
||||
|
||||
#include "System/ByamlSave.h"
|
||||
|
||||
namespace al {
|
||||
class ByamlIter;
|
||||
class ByamlWriter;
|
||||
} // namespace al
|
||||
|
||||
class WorldWarpTalkData : public ByamlSave {
|
||||
public:
|
||||
WorldWarpTalkData(s32);
|
||||
void init();
|
||||
bool isAlreadyTalkPrevWorld(s32 worldId) const;
|
||||
bool isAlreadyTalkNextWorld(s32 worldId) const;
|
||||
void setAlreadyTalkPrevWorld(s32 worldId);
|
||||
void setAlreadyTalkNextWorld(s32 worldId);
|
||||
s32 getTipsId() const;
|
||||
void addTipsId();
|
||||
void setTalkSpecial(bool isTalkFindKoopa, bool isTalkBossRaid);
|
||||
bool isTalkFindKoopa() const;
|
||||
bool isTalkBossRaid() const;
|
||||
void write(al::ByamlWriter*) override;
|
||||
void read(const al::ByamlIter&) override;
|
||||
|
||||
private:
|
||||
s32 mSize;
|
||||
bool* mPrev; // Array of bools of size mSize
|
||||
bool* mNext; // Array of bools of size mSize
|
||||
s32 mTipsId;
|
||||
bool mIsTalkFindKoopa;
|
||||
bool mIsTalkBossRaid;
|
||||
};
|
||||
|
||||
static_assert(sizeof(WorldWarpTalkData) == 0x28);
|
||||
Loading…
Reference in a new issue