Skip to content

Match & link CAssetFactory, CCharacterFactory 95% - #176

Merged
henriquegemignani merged 3 commits into
mainfrom
claude/ccharfactory
Sep 27, 2026
Merged

henriquegemignani merged 3 commits into
mainfrom
claude/ccharfactory

Conversation

@henriquegemignani

Copy link
Copy Markdown
Contributor

🤖 Generated with Claude Code

@decomp-dev

decomp-dev Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Report for G2MP01 (30ca1fa - da0516d)

No changes

Report for R32J01 (30ca1fa - da0516d)

No changes

Report for R3MP01 (30ca1fa - da0516d)

No changes

Report for G2ME01 (30ca1fa - da0516d)

📈 Matched code: 14.87% (+0.29%, +19104 bytes)
📈 Linked code: 8.02% (+0.15%, +9948 bytes)
📈 Matched data: 26.79% (+0.04%, +272 bytes)
📈 Linked data: 33.98% (+0.03%, +176 bytes)

✅ 112 new matches
Unit Item Bytes Before After
main/MetroidPrime/Factories/CCharacterFactory CCharacterFactory::CDummyFactory::Build(const SObjectTag&, const CVParamTransfer&) +1196 0.00% 100.00%
main/MetroidPrime/Factories/CCharacterFactory CCharacterFactory::CreateCharacter(int, bool, const TLockedToken<CCharacterFactory>&, int) const +980 0.00% 100.00%
main/MetroidPrime/CAnimationDatabaseGame rstl::vector<CPrimitive, rstl::rmemory_allocator>::insert_into<rstl::red_black_tree<CPrimitive, CPrimitive, 0, rstl::identity<CPrimitive>, rstl::less<CPrimitive>, rstl::rmemory_allocator>::iterator>(rstl::pointer_iterator<CPrimitive, rstl::vector<CPrimitive, rstl::rmemory_allocator>, rstl::rmemory_allocator>, int, rstl::red_black_tree<CPrimitive, CPrimitive, 0, rstl::identity<CPrimitive>, rstl::less<CPrimitive>, rstl::rmemory_allocator>::iterator) +772 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame CTransitionDatabaseGame::CTransitionDatabaseGame(const rstl::vector<CTransition, rstl::rmemory_allocator>&, const rstl::vector<CHalfTransition, rstl::rmemory_allocator>&, rstl::rc_ptr<IMetaTrans>) +692 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::__sort3<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::pair_sorter_finder<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>>(rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>&, rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>&, rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>&, rstl::pair_sorter_finder<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>) +640 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::sort<rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>>(rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>) +588 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::sort<rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>>(rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>) +488 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::__sort3<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::pair_sorter_finder<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>>(rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>&, rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>&, rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>&, rstl::pair_sorter_finder<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>) +428 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::__insertion_sort<rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>>(rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>) +380 0.00% 100.00%
main/MetroidPrime/Factories/CAssetFactory CCharacterFactoryBuilder::CDummyFactory::Build(const SObjectTag&, const CVParamTransfer&) +324 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::__insertion_sort<rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>>(rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pair_sorter_finder<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>) +304 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::iter_swap<rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>>(rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>) +284 0.00% 100.00%
main/MetroidPrime/CAnimationDatabaseGame CAnimationDatabaseGame::CAnimationDatabaseGame(const rstl::vector<CAnimation, rstl::rmemory_allocator>&) +276 0.00% 100.00%
main/MetroidPrime/Factories/CCharacterFactory CCharacterFactory::~CCharacterFactory() +272 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::swap<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>>(rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>&, rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>&) +268 0.00% 100.00%
main/MetroidPrime/Factories/CCharacterFactory CCharacterFactory::GetCharLayoutInfoDB(CSimplePool&, const rstl::vector<CCharacterInfo, rstl::rmemory_allocator>&) +260 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::iter_swap<rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>>(rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>, rstl::pointer_iterator<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, rstl::rmemory_allocator>) +260 0.00% 100.00%
main/MetroidPrime/CAnimationDatabaseGame CAnimationDatabaseGame::GetAllUniquePrimitives(rstl::vector<CPrimitive, rstl::rmemory_allocator>&) const +252 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::find_by_key<rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>(const rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>&, const rstl::pair<unsigned int, unsigned int>&, const @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer&) +252 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::swap<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>>(rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>&, rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>&) +244 0.00% 100.00%
main/MetroidPrime/CAnimData CCharacterInfo::CCharacterInfo(const CCharacterInfo&) +224 0.00% 100.00%
main/MetroidPrime/Factories/CCharacterFactory rstl::vector<TToken<CCharLayoutInfo>, rstl::rmemory_allocator>::reserve(int) +212 0.00% 100.00%
main/MetroidPrime/Factories/CCharacterFactory .data +200 0.00% 100.00%
main/MetroidPrime/Factories/CAssetFactory CFactoryFnReturn::CFactoryFnReturn<CCharacterFactory>(CCharacterFactory*) +196 0.00% 100.00%
main/MetroidPrime/CAnimationDatabaseGame rstl::vector<CPrimitive, rstl::rmemory_allocator>::reserve(int) +192 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>::reserve(int) +192 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::vector<rstl::pair<rstl::pair<unsigned int, unsigned int>, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>::reserve(int) +192 0.00% 100.00%
main/MetroidPrime/CTransitionDatabaseGame rstl::find_by_key<rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>, @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer>(const rstl::vector<rstl::pair<unsigned int, rstl::rc_ptr<IMetaTrans>>, rstl::rmemory_allocator>&, const unsigned int&, const @unnamed@CTransitionDatabaseGame_cpp@::uint_comparer&) +192 0.00% 100.00%
main/MetroidPrime/Factories/CCharacterFactory CTransitionDatabaseGame::~CTransitionDatabaseGame() +184 0.00% 100.00%
main/MetroidPrime/CAnimationDatabaseGame rstl::vector<rstl::rc_ptr<IMetaAnim>, rstl::rmemory_allocator>::reserve(int) +184 0.00% 100.00%

...and 82 more new matches

📈 8 improvements in unmatched items
Unit Item Bytes Before After
main/MetroidPrime/Factories/CCharacterFactory CCharacterFactory::CCharacterFactory(CSimplePool&, const TLockedToken<CAnimCharacterSet>&, unsigned int) +1374 0.00% 99.91%
main/MetroidPrime/Factories/CCharacterFactory rstl::vector<rstl::pair<unsigned int, CAdditiveAnimationInfo>, rstl::rmemory_allocator>::vector(const rstl::vector<rstl::pair<unsigned int, CAdditiveAnimationInfo>, rstl::rmemory_allocator>&) +294 0.00% 96.97%
main/MetroidPrime/Factories/CCharacterFactory rstl::vector<TToken<CCharLayoutInfo>, rstl::rmemory_allocator>::vector(const rstl::vector<TToken<CCharLayoutInfo>, rstl::rmemory_allocator>&) +185 0.00% 98.68%
main/MetroidPrime/Factories/CAssetFactory .data +46 0.00% 96.19%
main/MetroidPrime/CAnimationDatabaseGame .data +30 0.00% 95.90%
main/MetroidPrime/CTransitionDatabaseGame .data +14 0.00% 88.57%
main/MetroidPrime/CTransitionDatabaseGame .sbss +12 0.00% 80.00%
main/MetroidPrime/CMemoryCard CMemoryCard::InitializePump() 0 94.60% 94.61%

Report for R3ME01 (30ca1fa - da0516d)

No changes

Report for G2MJ01 (30ca1fa - da0516d)

No changes

Comment thread src/MetroidPrime/Factories/CCharacterFactory.cpp
@henriquegemignani
henriquegemignani merged commit 102a79c into main Sep 27, 2026
6 checks passed
@henriquegemignani
henriquegemignani deleted the claude/ccharfactory branch September 27, 2026 21:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant