mirror of
https://github.com/zeldaret/oot.git
synced 2025-06-08 09:31:52 +00:00
Better automatic names for Limbs and JointKeys, and implement more get_as_xml (#2590)
This commit is contained in:
parent
747006fdd4
commit
b84d1afc67
4 changed files with 35 additions and 2 deletions
|
@ -1110,6 +1110,10 @@ class BinaryBlobResource(Resource):
|
||||||
# Nothing specific to do
|
# Nothing specific to do
|
||||||
return RESOURCE_PARSE_SUCCESS
|
return RESOURCE_PARSE_SUCCESS
|
||||||
|
|
||||||
|
def get_as_xml(self):
|
||||||
|
return f"""\
|
||||||
|
<Blob Name="{self.symbol_name}" Size="0x{self.range_end - self.range_start:X}" Offset="0x{self.range_start:X}"/>"""
|
||||||
|
|
||||||
def get_c_reference(self, resource_offset):
|
def get_c_reference(self, resource_offset):
|
||||||
return f"&{self.symbol_name}[{resource_offset}]"
|
return f"&{self.symbol_name}[{resource_offset}]"
|
||||||
|
|
||||||
|
|
|
@ -275,6 +275,15 @@ class TextureResource(Resource):
|
||||||
self.width_name = f"{self.symbol_name}_WIDTH"
|
self.width_name = f"{self.symbol_name}_WIDTH"
|
||||||
self.height_name = f"{self.symbol_name}_HEIGHT"
|
self.height_name = f"{self.symbol_name}_HEIGHT"
|
||||||
|
|
||||||
|
def get_as_xml(self):
|
||||||
|
tlut_offset_attr = (
|
||||||
|
f' TlutOffset="0x{self.resource_tlut.range_start:X}"'
|
||||||
|
if self.resource_tlut
|
||||||
|
else ""
|
||||||
|
)
|
||||||
|
return f"""\
|
||||||
|
<Texture Name="{self.symbol_name}" Format="{self.fmt.name.lower()}{self.siz.bpp}" Width="{self.width}" Height="{self.height}" Offset="0x{self.range_start:X}"{tlut_offset_attr}/>"""
|
||||||
|
|
||||||
def check_declare_length(self):
|
def check_declare_length(self):
|
||||||
return (
|
return (
|
||||||
hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES
|
hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES
|
||||||
|
@ -1347,6 +1356,10 @@ class DListResource(Resource, can_size_be_unknown=True):
|
||||||
|
|
||||||
return RESOURCE_PARSE_SUCCESS
|
return RESOURCE_PARSE_SUCCESS
|
||||||
|
|
||||||
|
def get_as_xml(self):
|
||||||
|
return f"""\
|
||||||
|
<DList Name="{self.symbol_name}" Offset="0x{self.range_start:X}"/>"""
|
||||||
|
|
||||||
def get_c_declaration_base(self):
|
def get_c_declaration_base(self):
|
||||||
if hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES:
|
if hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES:
|
||||||
length = (self.range_end - self.range_start) // 8
|
length = (self.range_end - self.range_start) // 8
|
||||||
|
|
|
@ -164,7 +164,11 @@ class LegacyAnimationResource(CDataResource):
|
||||||
lambda file, offset: LegacyJointKeyArrayResource(
|
lambda file, offset: LegacyJointKeyArrayResource(
|
||||||
file,
|
file,
|
||||||
offset,
|
offset,
|
||||||
f"{self.name}_{address_jointKey:08X}_JointKeys",
|
(
|
||||||
|
f"{self.symbol_name.removesuffix('Anim')}JointKeys"
|
||||||
|
if self.symbol_name.endswith("Anim")
|
||||||
|
else f"{self.symbol_name}_{address_jointKey:08X}_JointKeys"
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
resource_jointKey.set_length(self.cdata_unpacked["limbCount"] + 1)
|
resource_jointKey.set_length(self.cdata_unpacked["limbCount"] + 1)
|
||||||
|
|
|
@ -65,6 +65,10 @@ class StandardLimbResource(CDataResource):
|
||||||
def set_enum_member_name(self, enum_member_name: str):
|
def set_enum_member_name(self, enum_member_name: str):
|
||||||
self.enum_member_name = enum_member_name
|
self.enum_member_name = enum_member_name
|
||||||
|
|
||||||
|
def get_as_xml(self) -> str:
|
||||||
|
return f"""\
|
||||||
|
<Limb Name="{self.symbol_name}" LimbType="Standard" EnumName="{self.enum_member_name}" Offset="0x{self.range_start:X}"/>"""
|
||||||
|
|
||||||
def get_c_declaration_base(self):
|
def get_c_declaration_base(self):
|
||||||
return f"StandardLimb {self.symbol_name}"
|
return f"StandardLimb {self.symbol_name}"
|
||||||
|
|
||||||
|
@ -101,6 +105,10 @@ class LODLimbResource(CDataResource):
|
||||||
def set_enum_member_name(self, enum_member_name: str):
|
def set_enum_member_name(self, enum_member_name: str):
|
||||||
self.enum_member_name = enum_member_name
|
self.enum_member_name = enum_member_name
|
||||||
|
|
||||||
|
def get_as_xml(self):
|
||||||
|
return f"""\
|
||||||
|
<Limb Name="{self.symbol_name}" LimbType="LOD" EnumName="{self.enum_member_name}" Offset="0x{self.range_start:X}"/>"""
|
||||||
|
|
||||||
def get_c_declaration_base(self):
|
def get_c_declaration_base(self):
|
||||||
return f"LodLimb {self.symbol_name}"
|
return f"LodLimb {self.symbol_name}"
|
||||||
|
|
||||||
|
@ -241,7 +249,11 @@ class SkeletonResourceABC(SkeletonResourceBaseABC):
|
||||||
lambda file, offset: resource.limbs_array_type(
|
lambda file, offset: resource.limbs_array_type(
|
||||||
file,
|
file,
|
||||||
offset,
|
offset,
|
||||||
f"{resource.name}_{address:08X}_Limbs",
|
(
|
||||||
|
f"{resource.name.removesuffix('Skel')}Limbs"
|
||||||
|
if resource.name.endswith("Skel")
|
||||||
|
else f"{resource.name}_{address:08X}_Limbs"
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
resource_limbs.set_length(
|
resource_limbs.set_length(
|
||||||
|
|
Loading…
Add table
Reference in a new issue