Back to Supersonic RC Revive
SOURCE / PINNED RELEASE

Made of little things.

Supersonic RC Revive

Release
1ba42f1ca1d6…
Author-recorded commit
baecad10b1cd…
License
LICENSE
Author’s source reference
nostr://npub1ye5ptcxfyyxl5vjvdjar2ua3f0hynkjzpx552mu5snj3qmx5pzjscpknpr/wss%3A%2F%2Fgit.napplet.soy%2F/n-143146b0d6f

Archive hash verified: 90d22b206672eba4…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

tools/patches/macromelt-node-user-props.patch
diff --git a/src/chunks.rs b/src/chunks.rs
index 4e661e3..65edaa8 100644
--- a/src/chunks.rs
+++ b/src/chunks.rs
@@ -587,7 +587,8 @@ impl XmedFile {
 fn parse_transform(input: &[u8]) -> IResult<&[u8], TransformNode> {
     let (input, name) = parse_string(input)?;
     let (input, parent) = parse_string(input)?;
-    let (input, _pad) = take(2usize)(input)?;
+    // Node user-data string (3ds Max user properties, e.g. Havok settings); usually empty.
+    let (input, _user_props) = parse_string(input)?;
     let (input, matrix) = parse_matrix(input)?;
     Ok((
         input,
@@ -603,7 +604,8 @@ fn parse_transform(input: &[u8]) -> IResult<&[u8], TransformNode> {
 fn parse_mesh_node(input: &[u8]) -> IResult<&[u8], MeshNode> {
     let (input, name) = parse_string(input)?;
     let (input, parent) = parse_string(input)?;
-    let (input, _pad) = take(2usize)(input)?;
+    // Node user-data string (3ds Max user properties, e.g. Havok settings); usually empty.
+    let (input, _user_props) = parse_string(input)?;
     let (input, matrix) = parse_matrix(input)?;
     let (input, mesh_ref) = parse_string(input)?;
     let (input, resource_ref) = parse_string(input)?;