From cb1ae027d326adefc3292e79f7c4b8ec9f183cf9 Mon Sep 17 00:00:00 2001 From: mos9527 Date: Tue, 11 Feb 2025 19:35:42 +0800 Subject: [PATCH 1/2] Add missing `size` argument in `read_value_array` --- UnityPy/helpers/TypeTreeHelper.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/UnityPy/helpers/TypeTreeHelper.py b/UnityPy/helpers/TypeTreeHelper.py index 22e3a66c..1c4e38a0 100644 --- a/UnityPy/helpers/TypeTreeHelper.py +++ b/UnityPy/helpers/TypeTreeHelper.py @@ -84,7 +84,9 @@ def copy(self) -> TypeTreeConfig: return TypeTreeConfig(self.as_dict, self.assetsfile, self.has_registry) -def get_ref_type_node(ref_object: dict, assetfile: SerializedFile) -> Optional[TypeTreeNode]: +def get_ref_type_node( + ref_object: dict, assetfile: SerializedFile +) -> Optional[TypeTreeNode]: typ = ref_object["type"] if isinstance(typ, dict): cls = typ["class"] @@ -209,7 +211,7 @@ def read_value( size = reader.read_int() subtype = node.m_Children[0].m_Children[1] if metaflag_is_aligned(subtype.m_MetaFlag): - value = read_value_array(subtype, reader, config) + value = read_value_array(subtype, reader, config, size) else: value = [read_value(subtype, reader, config) for _ in range(size)] From 9b155b6d81f83088091b0cf74b669fb3b62c4a6c Mon Sep 17 00:00:00 2001 From: mos9527 Date: Tue, 11 Feb 2025 22:28:16 +0800 Subject: [PATCH 2/2] Fix typo in generated classes and `ClassesGenerator.py` --- UnityPy/classes/generated.py | 2 +- generators/ClassesGenerator.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/UnityPy/classes/generated.py b/UnityPy/classes/generated.py index 5a8d209b..7d66e96e 100644 --- a/UnityPy/classes/generated.py +++ b/UnityPy/classes/generated.py @@ -32,7 +32,7 @@ def unitypy_define(cls: T) -> T: which would make type-hinting more tricky, and breaks attrs.define. Therefore this function bypasses the issue - by redifining the bases for problematic classes for the attrs.define call. + by redefining the bases for problematic classes for the attrs.define call. """ bases = cls.__bases__ if bases[0] in (object, Object, ABC): diff --git a/generators/ClassesGenerator.py b/generators/ClassesGenerator.py index b1c6cf0a..f8dc735c 100644 --- a/generators/ClassesGenerator.py +++ b/generators/ClassesGenerator.py @@ -75,7 +75,7 @@ def unitypy_define(cls: T) -> T: which would make type-hinting more tricky, and breaks attrs.define. Therefore this function bypasses the issue - by redifining the bases for problematic classes for the attrs.define call. + by redefining the bases for problematic classes for the attrs.define call. \"\"\" bases = cls.__bases__ if bases[0] in (object, Object, ABC):