mirror of
https://github.com/zeldaret/oot.git
synced 2025-06-08 01:21: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
|
||||
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):
|
||||
return f"&{self.symbol_name}[{resource_offset}]"
|
||||
|
||||
|
|
|
@ -275,6 +275,15 @@ class TextureResource(Resource):
|
|||
self.width_name = f"{self.symbol_name}_WIDTH"
|
||||
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):
|
||||
return (
|
||||
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
|
||||
|
||||
def get_as_xml(self):
|
||||
return f"""\
|
||||
<DList Name="{self.symbol_name}" Offset="0x{self.range_start:X}"/>"""
|
||||
|
||||
def get_c_declaration_base(self):
|
||||
if hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES:
|
||||
length = (self.range_end - self.range_start) // 8
|
||||
|
|
|
@ -164,7 +164,11 @@ class LegacyAnimationResource(CDataResource):
|
|||
lambda file, offset: LegacyJointKeyArrayResource(
|
||||
file,
|
||||
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)
|
||||
|
|
|
@ -65,6 +65,10 @@ class StandardLimbResource(CDataResource):
|
|||
def set_enum_member_name(self, enum_member_name: str):
|
||||
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):
|
||||
return f"StandardLimb {self.symbol_name}"
|
||||
|
||||
|
@ -101,6 +105,10 @@ class LODLimbResource(CDataResource):
|
|||
def set_enum_member_name(self, enum_member_name: str):
|
||||
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):
|
||||
return f"LodLimb {self.symbol_name}"
|
||||
|
||||
|
@ -241,7 +249,11 @@ class SkeletonResourceABC(SkeletonResourceBaseABC):
|
|||
lambda file, offset: resource.limbs_array_type(
|
||||
file,
|
||||
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(
|
||||
|
|
Loading…
Add table
Reference in a new issue