Skip to content

Scaffold CGameCollision - #178

Merged
henriquegemignani merged 1 commit into
mainfrom
codex/game-collision-scaffold
Sep 27, 2026
Merged

henriquegemignani merged 1 commit into
mainfrom
codex/game-collision-scaffold

Conversation

@henriquegemignani

@henriquegemignani henriquegemignani commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

No description provided.

@henriquegemignani
henriquegemignani added this pull request to stack #179 September 27, 2026 19:54
Base automatically changed from claude/cworld to main September 27, 2026 21:02
@henriquegemignani
henriquegemignani force-pushed the codex/game-collision-scaffold branch from ec2f59a to a1bc86b Compare September 27, 2026 21:02
@decomp-dev

decomp-dev Bot commented Sep 27, 2026

Copy link
Copy Markdown

Report for R3MP01 (30ca1fa - a1bc86b)

No changes

Report for G2MJ01 (30ca1fa - a1bc86b)

No changes

Report for R3ME01 (30ca1fa - a1bc86b)

No changes

Report for G2MP01 (30ca1fa - a1bc86b)

No changes

Report for R32J01 (30ca1fa - a1bc86b)

No changes

Report for G2ME01 (30ca1fa - a1bc86b)

📈 Matched code: 14.72% (+0.14%, +9376 bytes)
📈 Linked code: 7.86% (+0.00%, +128 bytes)
📈 Matched data: 26.75% (+0.01%, +32 bytes)
📈 Linked data: 33.96% (+0.00%, +16 bytes)

✅ 96 new matches
Unit Item Bytes Before After
main/MetroidPrime/CWorld CWorld::~CWorld() +624 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<int, rstl::rmemory_allocator>::vector(CInputStream&, const rstl::rmemory_allocator&) +536 0.00% 100.00%
main/MetroidPrime/CWorld CWorld::CWorld(IObjectStore&, CResFactory&, unsigned int) +492 0.00% 100.00%
main/MetroidPrime/CWorld CWorldLayers::ReadWorldLayers(CInputStream&, int, unsigned int) +324 0.00% 100.00%
main/MetroidPrime/CWorld CDummyWorld::CDummyWorld(unsigned int, bool) +312 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<rstl::auto_ptr<CDummyGameArea>, rstl::rmemory_allocator>::reserve(int) +220 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<rstl::auto_ptr<CGameArea>, rstl::rmemory_allocator>::reserve(int) +220 0.00% 100.00%
main/MetroidPrime/CWorld CDummyWorld::~CDummyWorld() +220 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::rmemory_allocator>::reserve(int) +208 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CRELFileToken, rstl::rmemory_allocator>::reserve(int) +204 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CRelay, rstl::rmemory_allocator>::vector(CInputStream&, const rstl::rmemory_allocator&) +204 0.00% 100.00%
main/MetroidPrime/CWorld rstl::optional_object<TLockedToken<CModel>>::operator=(const rstl::optional_object<TLockedToken<CModel>>&) +200 0.00% 100.00%
main/MetroidPrime/CWorld CWorld::UnloadAllAreasExcept(CStateManager&, TAreaId&) +192 0.00% 100.00%
main/MetroidPrime/CWorld CWorld::StopSounds() +188 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CRelay, rstl::rmemory_allocator>::reserve(int) +184 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CWorldLayers::Area, rstl::rmemory_allocator>::reserve(int) +180 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<rstl::basic_string<char, rstl::char_traits<char>, rstl::rmemory_allocator>, rstl::rmemory_allocator>::vector(CInputStream&, const rstl::rmemory_allocator&) +180 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<int, rstl::rmemory_allocator>::reserve(int) +164 0.00% 100.00%
main/MetroidPrime/CWorld CDummyGameArea::~CDummyGameArea() +164 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CRELFileToken, rstl::rmemory_allocator>::~vector() +160 0.00% 100.00%
main/MetroidPrime/CGameCollision CGameCollision::DetectDynamicCollisionBoolean(const CCollisionPrimitive&, const CTransform4f&, const rstl::reserved_vector<TUniqueId, 1024>&, const CStateManager&) +152 0.00% 100.00%
main/MetroidPrime/CWorld CWorld::CancelLayerRelUnload(TAreaId&, TLayerId&) +136 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CRelay, rstl::rmemory_allocator>::~vector() +132 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<IGameArea::Dock::SDockReference, rstl::rmemory_allocator>::~vector() +132 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<IGameArea::Dock, rstl::rmemory_allocator>::~vector() +132 0.00% 100.00%
main/MetroidPrime/CWorld rstl::optional_object<TLockedToken<CModel>>::operator=(const TLockedToken<CModel>&) +132 0.00% 100.00%
main/MetroidPrime/CWorld CWorld::StopGlobalSound(unsigned short) +132 0.00% 100.00%
main/MetroidPrime/CWorld rstl::reserved_vector<rstl::pair<unsigned short, CSfxHandle>, 10>::erase(rstl::pair<unsigned short, CSfxHandle>*) +128 0.00% 100.00%
main/MetroidPrime/CWorld CWorld::ScheduleAreaToLoad(CGameArea*, CStateManager&) +124 0.00% 100.00%
main/MetroidPrime/CWorld rstl::vector<CRELFileToken, rstl::rmemory_allocator>::clear() +124 0.00% 100.00%

...and 66 more new matches

📈 54 improvements in unmatched items
Unit Item Bytes Before After
main/MetroidPrime/CWorld CWorld::CheckWorldComplete(CStateManager*, TAreaId, unsigned int) +2008 0.00% 99.82%
main/MetroidPrime/CWorld CDummyWorld::ICheckWorldComplete() +1364 0.00% 99.78%
main/MetroidPrime/CWorld CWorld::Update(float) +1193 0.00% 98.84%
main/MetroidPrime/CGameCollision CGameCollision::DetectStaticCollision_Cached_Moving(const CStateManager&, CAreaCollisionCache&, const CCollisionPrimitive&, const CTransform4f&, const CMaterialFilter&, const CVector3f&, CCollisionInfo&, double&) +1100 0.00% 72.79%
main/MetroidPrime/CWorld CWorld::TravelToArea(const TAreaId&, CStateManager&, CWorld::EAreaTravelType) +948 0.00% 95.21%
main/MetroidPrime/CGameCollision CGameCollision::CollideWithDynamicBodyNoRot(CPhysicsActor&, CPhysicsActor&, const CCollisionInfo&, float, bool) +912 0.00% 77.05%
main/MetroidPrime/CGameCollision CGameCollision::PushActorAwayFromWalls(CStateManager&, CPhysicsActor&, float, float, float, float, int, float) +676 0.00% 41.32%
main/MetroidPrime/CGameCollision CGameCollision::DetectStaticCollision(const CStateManager&, const CCollisionPrimitive&, const CTransform4f&, const CMaterialFilter&, CCollisionInfoList&) +566 0.00% 82.79%
main/MetroidPrime/CGameCollision CGameCollision::RayStaticIntersection(const CStateManager&, const CVector3f&, const CVector3f&, float, const CMaterialFilter&) +562 0.00% 86.86%
main/MetroidPrime/CGameCollision CGameCollision::DetectStaticCollisionBoolean(const CStateManager&, const CCollisionPrimitive&, const CTransform4f&, const CMaterialFilter&) +562 0.00% 81.32%
main/MetroidPrime/CGameCollision CGameCollision::DetectStaticCollisionBoolean_Cached(const CStateManager&, CAreaCollisionCache&, const CCollisionPrimitive&, const CTransform4f&, const CMaterialFilter&) +536 0.00% 66.09%
main/MetroidPrime/CGameCollision CGameCollision::DetectStaticCollision_Cached(const CStateManager&, CAreaCollisionCache&, const CCollisionPrimitive&, const CTransform4f&, const CMaterialFilter&, CCollisionInfoList&) +522 0.00% 65.97%
main/MetroidPrime/CGameCollision CGameCollision::SendScriptMessages(CStateManager&, CActor&, CActor*, const CCollisionInfoList&) +498 0.00% 69.22%
main/MetroidPrime/CWorld CWorld::DrawSky(const CTransform4f&, bool) const +487 0.00% 99.90%
main/MetroidPrime/CGameCollision CGameCollision::CollideWithStaticBodyNoRot(CPhysicsActor&, const CMaterialList&, const CMaterialList&, const CUnitVector3f&, float, bool) +453 0.00% 92.08%
main/MetroidPrime/CGameCollision CGameCollision::DetectDynamicCollisionMoving(const CCollisionPrimitive&, const CTransform4f&, const rstl::reserved_vector<TUniqueId, 1024>&, const CVector3f&, TUniqueId&, CCollisionInfo&, double&, const CStateManager&) +409 0.00% 97.52%
main/MetroidPrime/CGameCollision CGameCollision::RayDynamicIntersection(const CStateManager&, TUniqueId&, const CVector3f&, const CVector3f&, float, const CMaterialFilter&, const rstl::reserved_vector<TUniqueId, 1024>&) +399 0.00% 88.40%
main/MetroidPrime/CWorld rstl::vector<CWorldLayers::Area, rstl::rmemory_allocator>::vector(CInputStream&, const rstl::rmemory_allocator&) +355 0.00% 98.83%
main/MetroidPrime/CGameCollision CGameCollision::RayDynamicLineOfSightTest(const CStateManager&, const CVector3f&, const CVector3f&, float, const CMaterialFilter&, const rstl::reserved_vector<TUniqueId, 1024>&, const CActor*) +296 0.00% 85.17%
main/MetroidPrime/CGameCollision CGameCollision::RayStaticLineOfSightTest(const CStateManager&, const CVector3f&, const CVector3f&, float, const CMaterialFilter&) +275 0.00% 89.48%
main/MetroidPrime/CGameCollision CGameCollision::GetMinExtentForCollisionPrimitive(const CCollisionPrimitive&) +264 0.00% 91.97%
main/MetroidPrime/CGameCollision CGameCollision::RayWorldIntersection(const CStateManager&, TUniqueId&, const CVector3f&, const CVector3f&, float, const CMaterialFilter&, const rstl::reserved_vector<TUniqueId, 1024>&) +243 0.00% 93.58%
main/MetroidPrime/CGameCollision CGameCollision::BuildAreaCollisionCache(const CStateManager&, CAreaCollisionCache&) +217 0.00% 83.66%
main/MetroidPrime/CGameCollision CGameCollision::GetActorRelativeVelocities(const CPhysicsActor*, const CPhysicsActor*) +207 0.00% 96.11%
main/MetroidPrime/CWorld .data +206 0.00% 99.06%
main/MetroidPrime/CGameCollision CGameCollision::RayStaticLineOfSightTest(const CGameArea&, const CVector3f&, const CVector3f&, float, const CMaterialFilter&) +195 0.00% 69.76%
main/MetroidPrime/CGameCollision CGameCollision::DetectDynamicCollision(const CCollisionPrimitive&, const CTransform4f&, const CPhysicsActor&, CCollisionInfoList&) +191 0.00% 91.85%
main/MetroidPrime/CGameCollision CGameCollision::DetectDynamicCollisionMoving(const CCollisionPrimitive&, const CTransform4f&, const CPhysicsActor&, const CVector3f&, CCollisionInfo&, double&) +184 0.00% 92.00%
main/MetroidPrime/CGameCollision CGameCollision::DetectDynamicCollision(const CCollisionPrimitive&, const CTransform4f&, const rstl::reserved_vector<TUniqueId, 1024>&, TUniqueId&, CCollisionInfoList&, const CStateManager&) +182 0.00% 99.13%
main/MetroidPrime/CWorld rstl::vector<CRELFileToken, rstl::rmemory_allocator>::operator=(const rstl::vector<CRELFileToken, rstl::rmemory_allocator>&) +179 0.00% 99.56%

...and 24 more improvements in unmatched items

📉 3 regressions in unmatched items
Unit Item Bytes Before After
main/MetroidPrime/ScriptObjects/CScriptPickup CScriptPickup::Touch(CActor&, CStateManager&) -20 71.43% 69.85%
main/Kyoto/Particles/CElementGen CElementGen::RenderModelParticle(CElementGen::SModelRenderState&, const CColor&, const CElementGen::CParticle&) -8 91.48% 90.55%
main/MetroidPrime/CAutoMapper CAutoMapper::Draw(const CStateManager&, const CTransform4f&, float) const -3 93.94% 93.89%

@henriquegemignani
henriquegemignani merged commit 24b5b03 into main Sep 27, 2026
6 checks passed
@henriquegemignani
henriquegemignani deleted the codex/game-collision-scaffold 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