OdysseyDecomp icon indicating copy to clipboard operation
OdysseyDecomp copied to clipboard

System: Implement `GameDataFunction`

Open 0f-0b opened this issue 6 months ago β€’ 2 comments

Needs open-ead/agl#19. Hacks were used to force a match in getShopItemInfoList and getWorldIdForNewReleaseShop.


This change is Reviewable


Report for 1.0 (bf48978 - 392cfb4)

πŸ“ˆ Matched code: 9.66% (+0.18%, +22960 bytes)

βœ… 462 new matches
Unit Function Bytes Before After
System/GameDataFunction GameDataFunction::makeTextureSaveDataFileName(sead::BufferedSafeStringBase<char>*, nn::g3d::ResFile const*, GameDataHolder const*, int) +1068 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkIsComplete(al::IUseSceneObjHolder const*, int) +544 0.00% 100.00%
System/GameDataFunction GameDataFunction::wearCostumeRandom(al::IUseSceneObjHolder*) +476 0.00% 100.00%
System/GameDataFunction GameDataFunction::wearCapRandom(al::IUseSceneObjHolder*) +476 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryFindShineMessage(al::LayoutActor const*, int, int) +356 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryFindShineMessage(al::LiveActor const*, al::IUseMessageSystem const*, int, int) +348 0.00% 100.00%
System/GameDataFunction GameDataFunction::getWorldIdForNewReleaseShop(GameDataHolderAccessor, int) +328 0.00% 100.00%
System/GameDataFunction GameDataFunction::getWorldNumForNewReleaseShop(GameDataHolderAccessor) +264 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetWorldNameByFileId(al::LayoutActor const*, int) +260 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetWorldNameCurrent(al::LayoutActor const*) +252 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetRegionNameCurrent(al::LayoutActor const*) +252 0.00% 100.00%
System/GameDataFunction GameDataFunction::isPlayerStartLinkedObj(al::LiveActor const*, al::ActorInitInfo const&, char const*) +244 0.00% 100.00%
System/GameDataFunction GameDataFunction::calcHintTransMostNear(sead::Vector3<float>*, GameDataHolderAccessor, sead::Vector3<float> const&) +228 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetWorldName(al::LayoutActor const*, int) +224 0.00% 100.00%
System/GameDataFunction GameDataFunction::findAreaAndChangeNextStage(GameDataHolderWriter, al::LiveActor const*, sead::Vector3<float> const*) +212 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkIsNewWorldInAlreadyGoWorld(GameDataHolderAccessor) +204 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkEnableUnlockWorldSpecial1(al::LiveActor const*) +204 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkEnableUnlockWorldSpecial2(al::LiveActor const*) +196 0.00% 100.00%
System/GameDataFunction GameDataFunction::getCurrentShineNum(GameDataHolderAccessor) +192 0.00% 100.00%
System/GameDataFunction GameDataFunction::isForwardWorldWarpDemo(GameDataHolderAccessor) +176 0.00% 100.00%
System/GameDataFunction GameDataFunction::isRemovedCapByJango(al::LiveActor const*) +176 0.00% 100.00%
System/GameDataFunction GameDataFunction::isGetCapFromJango(al::LiveActor const*) +176 0.00% 100.00%
System/GameDataFunction GameDataFunction::removeCapByJango(al::LiveActor const*) +172 0.00% 100.00%
System/GameDataFunction GameDataFunction::getCapFromJango(al::LiveActor const*) +172 0.00% 100.00%
System/GameDataFunction GameDataFunction::setCostumeRandomMode(al::IUseSceneObjHolder*) +164 0.00% 100.00%
System/GameDataFunction GameDataFunction::setCapRandomMode(al::IUseSceneObjHolder*) +164 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkShineSeaOfTreeForShineList(al::LayoutActor const*, int, int) +156 0.00% 100.00%
System/GameDataFile GameDataFile::HintInfo::isEnableUnlock(int, bool, int, bool) const +150 25.00% 100.00%
System/GameDataFunction GameDataFunction::tryFindExistCoinCollectStagePosExcludeHomeStageInCurrentWorld(sead::Vector3<float>*, char const**, GameDataHolderAccessor) +144 0.00% 100.00%
System/GameDataFunction GameDataFunction::isPlayerStartObj(al::LiveActor const*, al::ActorInitInfo const&) +140 0.00% 100.00%

...and 432 more new matches

0f-0b avatar Jun 17 '25 11:06 0f-0b

@ShishuTheDragon Also, since you are working on GameDataFileβ€”I did an incomplete decompilation of this class a while ago. Please feel free to base your work on that.

0f-0b avatar Jul 10 '25 13:07 0f-0b

Report for 1.0 (0db3e9a - 15f1cc8)

πŸ“ˆ Matched code: 9.55% (+0.18%, +22960 bytes)

βœ… 462 new matches
Unit Function Bytes Before After
System/GameDataFunction GameDataFunction::makeTextureSaveDataFileName(sead::BufferedSafeStringBase<char>*, nn::g3d::ResFile const*, GameDataHolder const*, int) +1068 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkIsComplete(al::IUseSceneObjHolder const*, int) +544 0.00% 100.00%
System/GameDataFunction GameDataFunction::wearCostumeRandom(al::IUseSceneObjHolder*) +476 0.00% 100.00%
System/GameDataFunction GameDataFunction::wearCapRandom(al::IUseSceneObjHolder*) +476 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryFindShineMessage(al::LayoutActor const*, int, int) +356 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryFindShineMessage(al::LiveActor const*, al::IUseMessageSystem const*, int, int) +348 0.00% 100.00%
System/GameDataFunction GameDataFunction::getWorldIdForNewReleaseShop(GameDataHolderAccessor, int) +328 0.00% 100.00%
System/GameDataFunction GameDataFunction::getWorldNumForNewReleaseShop(GameDataHolderAccessor) +264 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetWorldNameByFileId(al::LayoutActor const*, int) +260 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetWorldNameCurrent(al::LayoutActor const*) +252 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetRegionNameCurrent(al::LayoutActor const*) +252 0.00% 100.00%
System/GameDataFunction GameDataFunction::isPlayerStartLinkedObj(al::LiveActor const*, al::ActorInitInfo const&, char const*) +244 0.00% 100.00%
System/GameDataFunction GameDataFunction::calcHintTransMostNear(sead::Vector3<float>*, GameDataHolderAccessor, sead::Vector3<float> const&) +228 0.00% 100.00%
System/GameDataFunction GameDataFunction::tryGetWorldName(al::LayoutActor const*, int) +224 0.00% 100.00%
System/GameDataFunction GameDataFunction::findAreaAndChangeNextStage(GameDataHolderWriter, al::LiveActor const*, sead::Vector3<float> const*) +212 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkIsNewWorldInAlreadyGoWorld(GameDataHolderAccessor) +204 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkEnableUnlockWorldSpecial1(al::LiveActor const*) +204 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkEnableUnlockWorldSpecial2(al::LiveActor const*) +196 0.00% 100.00%
System/GameDataFunction GameDataFunction::getCurrentShineNum(GameDataHolderAccessor) +192 0.00% 100.00%
System/GameDataFunction GameDataFunction::isForwardWorldWarpDemo(GameDataHolderAccessor) +176 0.00% 100.00%
System/GameDataFunction GameDataFunction::isRemovedCapByJango(al::LiveActor const*) +176 0.00% 100.00%
System/GameDataFunction GameDataFunction::isGetCapFromJango(al::LiveActor const*) +176 0.00% 100.00%
System/GameDataFunction GameDataFunction::removeCapByJango(al::LiveActor const*) +172 0.00% 100.00%
System/GameDataFunction GameDataFunction::getCapFromJango(al::LiveActor const*) +172 0.00% 100.00%
System/GameDataFunction GameDataFunction::setCostumeRandomMode(al::IUseSceneObjHolder*) +164 0.00% 100.00%
System/GameDataFunction GameDataFunction::setCapRandomMode(al::IUseSceneObjHolder*) +164 0.00% 100.00%
System/GameDataFunction GameDataFunction::checkShineSeaOfTreeForShineList(al::LayoutActor const*, int, int) +156 0.00% 100.00%
System/GameDataFile GameDataFile::HintInfo::isEnableUnlock(int, bool, int, bool) const +150 25.00% 100.00%
System/GameDataFunction GameDataFunction::tryFindExistCoinCollectStagePosExcludeHomeStageInCurrentWorld(sead::Vector3<float>*, char const**, GameDataHolderAccessor) +144 0.00% 100.00%
System/GameDataFunction GameDataFunction::isPlayerStartObj(al::LiveActor const*, al::ActorInitInfo const&) +140 0.00% 100.00%

...and 432 more new matches

decomp-dev[bot] avatar Aug 23 '25 20:08 decomp-dev[bot]