28 lines
905 B
Python
28 lines
905 B
Python
from typing import Any
|
|
|
|
from lib.archive import *
|
|
|
|
|
|
def decode(
|
|
reader: FArchiveReader, type_name: str, size: int, path: str
|
|
) -> dict[str, Any]:
|
|
if type_name != "ArrayProperty":
|
|
raise Exception(f"Expected ArrayProperty, got {type_name}")
|
|
value = reader.property(type_name, size, path, allow_custom=False)
|
|
debug_bytes = value["value"]["values"]
|
|
if len(debug_bytes) > 0:
|
|
debug_str = "".join(f"{b:02x}" for b in debug_bytes)
|
|
# if debug_str != "00000000000000000000000000000000":
|
|
print(debug_str)
|
|
# print(bytes(debug_bytes))
|
|
return value
|
|
|
|
|
|
def encode(
|
|
writer: FArchiveWriter, property_type: str, properties: dict[str, Any]
|
|
) -> int:
|
|
if property_type != "ArrayProperty":
|
|
raise Exception(f"Expected ArrayProperty, got {property_type}")
|
|
del properties["custom_type"]
|
|
return writer.property_inner(property_type, properties)
|