<feed xmlns='http://www.w3.org/2005/Atom'>
<title>botw/src/KingSystem/Physics/RigidBody, branch master</title>
<subtitle>Decompilation of The Legend of Zelda: Breath of the Wild (Switch v1.5.0)</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/'/>
<entry>
<title>ksys/phys: move motionTypeFromText to physUtil</title>
<updated>2026-10-15T23:18:41+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-15T23:18:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=ef164cc8aac3a4d1729d3cbf722dec9b30a0c147'/>
<id>ef164cc8aac3a4d1729d3cbf722dec9b30a0c147</id>
<content type='text'>
motionTypeFromText isn't part of physDefines: its "Keyframed" string
(only used there) sits between the StaticCompound and PlayReport strings
in .rodata, far from physDefines' enum text, and the function is linked
right after the contact listener's inline virtuals, so it most likely
starts a new TU at 0x7100fd069c.

Nothing separates it from getMaterialMaskFromShape and the other helpers
in physUtil, so it goes in the same file and its declaration moves to
physUtil.h. That part is a guess: neither function has data that would
show a boundary.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
motionTypeFromText isn't part of physDefines: its "Keyframed" string
(only used there) sits between the StaticCompound and PlayReport strings
in .rodata, far from physDefines' enum text, and the function is linked
right after the contact listener's inline virtuals, so it most likely
starts a new TU at 0x7100fd069c.

Nothing separates it from getMaterialMaskFromShape and the other helpers
in physUtil, so it goes in the same file and its declaration moves to
physUtil.h. That part is a guess: neither function has data that would
show a boundary.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: rename physStaticCompoundUtil to physUtil</title>
<updated>2026-10-16T15:51:17+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-10-16T15:51:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=7286390beae272d1f8201e45ecf725d75241a84d'/>
<id>7286390beae272d1f8201e45ecf725d75241a84d</id>
<content type='text'>
Most of these helpers have nothing to do with StaticCompound: they look
up material masks and collision filter info from shapes and collidables.
physUtil also fits the link order, between physUserTag and physWorld,
and it's what the function groups already call this block.

(AI assisted using Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of these helpers have nothing to do with StaticCompound: they look
up material masks and collision filter info from shapes and collidables.
physUtil also fits the link order, between physUserTag and physWorld,
and it's what the function groups already call this block.

(AI assisted using Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: rearrange the folder layout to match link order</title>
<updated>2026-10-13T00:55:29+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-28T01:39:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=89322a8d0cb0c1aaab509ab653a9368a2ae5dea9'/>
<id>89322a8d0cb0c1aaab509ab653a9368a2ae5dea9</id>
<content type='text'>
A folder's files are linked before its subfolders, and the rigid body
files are linked as one flat sequence. ListShape is the one file that
does not fit this order.

| Old | New |
|---|---|
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;Shape.cpp | RigidBody/Shape/phys&lt;Kind&gt;Shape.cpp |
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;RigidBody.cpp | RigidBody/physRigidBody&lt;Kind&gt;.cpp |
| RigidBody/Shape/List/physListShapeRigidBody.cpp | RigidBody/physRigidBodyListShape.cpp |
| physHavokMemoryAllocator.cpp | System/physHavokMemoryAllocator.cpp |
| StaticCompound/physStaticCompound{,Mgr,RigidBodyGroup,Util}.cpp | System/ |
| StaticCompound/physStaticCompound{Info,Autogen}.cpp | System/physStaticCompoundInfo.cpp |

The original has the type infos' cleanup functions just before
StaticCompoundInfo's functions, so the merged file defines the
reflection data first, with plain static cleanup functions as in
Havok's generated reflection code. Template instantiations would be
emitted after the rest of the file.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A folder's files are linked before its subfolders, and the rigid body
files are linked as one flat sequence. ListShape is the one file that
does not fit this order.

| Old | New |
|---|---|
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;Shape.cpp | RigidBody/Shape/phys&lt;Kind&gt;Shape.cpp |
| RigidBody/Shape/&lt;Kind&gt;/phys&lt;Kind&gt;RigidBody.cpp | RigidBody/physRigidBody&lt;Kind&gt;.cpp |
| RigidBody/Shape/List/physListShapeRigidBody.cpp | RigidBody/physRigidBodyListShape.cpp |
| physHavokMemoryAllocator.cpp | System/physHavokMemoryAllocator.cpp |
| StaticCompound/physStaticCompound{,Mgr,RigidBodyGroup,Util}.cpp | System/ |
| StaticCompound/physStaticCompound{Info,Autogen}.cpp | System/physStaticCompoundInfo.cpp |

The original has the type infos' cleanup functions just before
StaticCompoundInfo's functions, so the merged file defines the
reflection data first, with plain static cleanup functions as in
Havok's generated reflection code. Template instantiations would be
emitted after the rest of the file.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Name placeholder declarations after the IDB</title>
<updated>2026-10-06T01:19:37+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2026-09-28T01:39:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=7bc225838a580adea925fd56421f520db4c5d393'/>
<id>7bc225838a580adea925fd56421f520db4c5d393</id>
<content type='text'>
Keeps source and CSV from drifting from the IDB. Names are read from the
bodies, e.g. ActionBase::applyParams is what all 13 non-stub overrides
of that slot do.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Keeps source and CSV from drifting from the IDB. Names are read from the
bodies, e.g. ActionBase::applyParams is what all 13 non-stub overrides
of that slot do.

(AI assisted using Claude Fable 5.1 and Claude Opus 5.5)
</pre>
</div>
</content>
</entry>
<entry>
<title>Update agl, nnSdk, sead</title>
<updated>2024-08-28T12:41:29+00:00</updated>
<author>
<name>ThePixelGamer</name>
<email>thepixelmaster2354@gmail.com</email>
</author>
<published>2024-08-28T00:03:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=878f95dffbc967c2d6f3ae5de14b46c4d7c8aceb'/>
<id>878f95dffbc967c2d6f3ae5de14b46c4d7c8aceb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update libraries and adjust code to match again</title>
<updated>2024-07-26T23:00:57+00:00</updated>
<author>
<name>ThePixelGamer</name>
<email>thepixelmaster2354@gmail.com</email>
</author>
<published>2024-07-26T23:00:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=de0fd08acc676caad7dd2f445f221473d7cd4b75'/>
<id>de0fd08acc676caad7dd2f445f221473d7cd4b75</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>lib: Update sead</title>
<updated>2022-12-20T00:58:44+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2022-12-19T17:13:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=e9790f83eb0e02d329b9d0a920387310fa3b2964'/>
<id>e9790f83eb0e02d329b9d0a920387310fa3b2964</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: Clarify EntityCollisionMask structure and names</title>
<updated>2022-12-18T17:58:23+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2022-12-18T17:36:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=20be3a197a8296b0e3d7f07f87c2bc6d526aa203'/>
<id>20be3a197a8296b0e3d7f07f87c2bc6d526aa203</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: Finish RagdollRigidBody and add more RagdollController functions</title>
<updated>2022-12-18T00:24:44+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2022-12-17T21:15:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=30368facc0c1f0700f3c49806a20b95333048163'/>
<id>30368facc0c1f0700f3c49806a20b95333048163</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ksys/phys: Use named bools in RigidBody to improve call site readability</title>
<updated>2022-12-17T21:10:38+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2022-12-17T21:10:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/botw/commit/?id=7934e14ad675f27d6e7da2dff9b3175e1419dbc7'/>
<id>7934e14ad675f27d6e7da2dff9b3175e1419dbc7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
