Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions UnityPy/files/SerializedFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,20 +319,20 @@ def read_type_tree(self):
level_stack[-1][1] -= 1

type_tree_node = TypeTreeNode(
m_Level = level,
m_Type = self.reader.read_string_to_null(),
m_Name = self.reader.read_string_to_null(),
m_ByteSize = self.reader.read_int()
m_Level=level,
m_Type=self.reader.read_string_to_null(),
m_Name=self.reader.read_string_to_null(),
m_ByteSize=self.reader.read_int(),
)

type_tree.append(type_tree_node)
if self.header.version == 2:
type_tree_node.m_VariableCount = self.reader.read_int()

if self.header.version != 3:
type_tree_node.m_Index = self.reader.read_int()

type_tree_node.m_IsArray = bool(self.reader.read_int())
type_tree_node.m_TypeFlags = self.reader.read_int()
type_tree_node.m_Version = self.reader.read_int()
if self.header.version != 3:
type_tree_node.m_MetaFlag = self.reader.read_int()
Expand All @@ -347,11 +347,11 @@ def read_type_tree_blob(self):
number_of_nodes = self.reader.read_int()
string_buffer_size = self.reader.read_int()

type = f"{reader.endian}hb?IIiii"
type = f"{reader.endian}hBBIIiii"
keys = [
"m_Version",
"m_Level",
"m_IsArray",
"m_TypeFlags",
"m_TypeStrOffset",
"m_NameStrOffset",
"m_ByteSize",
Expand Down Expand Up @@ -553,7 +553,7 @@ def save_type_tree(self, nodes: list, writer: EndianBinaryWriter):
if self.header.version != 3:
writer.write_int(node.m_Index)

writer.write_int(node.m_IsArray)
writer.write_int(node.m_TypeFlags)
writer.write_int(node.m_Version)
if self.header.version != 3:
writer.write_int(node.m_MetaFlag)
Expand Down Expand Up @@ -591,7 +591,7 @@ def save_type_tree5(self, nodes: list, writer: EndianBinaryWriter, str_data=b"")
# level
writer.write_byte(node.m_Level)
# is array
writer.write_boolean(node.m_IsArray)
writer.write_u_byte(node.m_TypeFlags)
# type str offfset
writer.write_u_int(strings_values[i][0])
# name str offset
Expand Down
4 changes: 2 additions & 2 deletions UnityPy/helpers/TypeTreeHelper.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class TypeTreeNode(object):
__slots__ = (
"m_Version",
"m_Level",
"m_IsArray",
"m_TypeFlags",
"m_ByteSize",
"m_Index",
"m_MetaFlag",
Expand All @@ -32,7 +32,7 @@ class TypeTreeNode(object):
m_TypeStrOffset: int
m_NameStrOffset: int
m_RefTypeHash: str
m_IsArray: int
m_TypeFlags: int
m_VariableCount: int

def __init__(self, data: Union[dict, Iterable[Tuple]] = None, **kwargs):
Expand Down
10 changes: 5 additions & 5 deletions UnityPyBoost/TypeTreeHelper.c
Original file line number Diff line number Diff line change
Expand Up @@ -613,7 +613,7 @@ TypeTreeNode_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
self->m_Version = 0;
self->m_Level = 0;
self->m_IsArray = 0;
self->m_TypeFlags = 0;
self->m_ByteSize = 0;
self->m_Index = 0;
self->m_MetaFlag = 0;
Expand All @@ -640,7 +640,7 @@ TypeTreeNode_init(TypeTreeNodeObject *self, PyObject *args, PyObject *kwds)
"m_Level", // uint8
"m_MetaFlag", // int32
"m_Version", // int16
"m_IsArray", // char
"m_TypeFlags", // int32
"m_ByteSize", // int
"m_Index", // int
"m_TypeStrOffset", // unsigned int
Expand All @@ -653,14 +653,14 @@ TypeTreeNode_init(TypeTreeNodeObject *self, PyObject *args, PyObject *kwds)
if (!PyArg_ParseTupleAndKeywords(
args,
kwds,
"|zzbihbiiIIKi",
"|zzbihiiiIIKi",
kwlist,
&name,
&type,
&self->m_Level,
&self->m_MetaFlag,
&self->m_Version,
&self->m_IsArray,
&self->m_TypeFlags,
&self->m_ByteSize,
&self->m_Index,
&self->m_TypeStrOffset,
Expand Down Expand Up @@ -732,7 +732,7 @@ static PyMemberDef TypeTreeNode_members[] = {
//{"m_Name", T_STRING, offsetof(TypeTreeNodeObject, m_Name), 0, ""},
{"m_ByteSize", T_INT, offsetof(TypeTreeNodeObject, m_ByteSize), 0, ""},
{"m_Index", T_INT, offsetof(TypeTreeNodeObject, m_Index), 0, ""},
{"m_IsArray", T_BOOL, offsetof(TypeTreeNodeObject, m_IsArray), 0, ""},
{"m_TypeFlags", T_INT, offsetof(TypeTreeNodeObject, m_TypeFlags), 0, ""},
{"m_Version", T_SHORT, offsetof(TypeTreeNodeObject, m_Version), 0, ""},
{"m_MetaFlag", T_INT, offsetof(TypeTreeNodeObject, m_MetaFlag), 0, ""},
{"m_Level", T_UBYTE, offsetof(TypeTreeNodeObject, m_Level), 0, ""},
Expand Down
2 changes: 1 addition & 1 deletion UnityPyBoost/TypeTreeHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ typedef struct TypeTreeNodeObject{
PyObject_HEAD
short m_Version;
unsigned char m_Level;
char m_IsArray;
int m_TypeFlags;
int m_ByteSize;
int m_Index;
int m_MetaFlag;
Expand Down