diff options
| author | Dragorn421 <Dragorn421@users.noreply.github.com> | 2025-05-25 18:33:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-25 12:33:24 -0400 |
| commit | eeeaa77d3fb1d5c428ab2ace8f88f415192c6060 (patch) | |
| tree | 3f7d06cabd0c95b452829b1c4f50ac299de83437 /tools | |
| parent | b44ff69ded55eeda1f17a6d3989bc350a10d4543 (diff) | |
Introduce TEX_LEN macro for texture arrays lengths (#2541)
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/assets/extract/extase_oot64/dlist_resources.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/assets/extract/extase_oot64/dlist_resources.py b/tools/assets/extract/extase_oot64/dlist_resources.py index 63e8635a6..ad470c33a 100644 --- a/tools/assets/extract/extase_oot64/dlist_resources.py +++ b/tools/assets/extract/extase_oot64/dlist_resources.py @@ -275,12 +275,19 @@ class TextureResource(Resource): self.width_name = f"{self.symbol_name}_WIDTH" self.height_name = f"{self.symbol_name}_HEIGHT" + def check_declare_length(self): + return ( + hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES + ) and not self.is_tlut() + def get_c_declaration_base(self): if hasattr(self, "HACK_IS_STATIC_ON") and self.is_tlut(): raise NotImplementedError - if hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES: - if not self.is_tlut(): - return f"{self.elem_type} {self.symbol_name}[{self.height_name} * {self.width_name} * {self.siz.bpp} / 8 / sizeof({self.elem_type})]" + if self.check_declare_length(): + return ( + f"{self.elem_type} {self.symbol_name}" + f"[TEX_LEN({self.elem_type}, {self.width_name}, {self.height_name}, {self.siz.bpp})]" + ) return f"{self.elem_type} {self.symbol_name}[]" def get_c_reference(self, resource_offset: int): @@ -518,7 +525,10 @@ class TextureResource(Resource): super().write_c_declaration(h) def get_h_includes(self): - return ("ultra64.h",) + return ( + "ultra64.h", + *(("tex_len.h",) if self.check_declare_length() else ()), + ) @reprlib.recursive_repr() def __repr__(self): |
