summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorDragorn421 <Dragorn421@users.noreply.github.com>2025-05-23 08:58:20 +0200
committerGitHub <noreply@github.com>2025-05-23 02:58:20 -0400
commit4eceb77128e59cdc561dfcc3484a7cb4ee04c3f4 (patch)
tree46f11f0df7ef137ec0f4fb915a9deb6094470bd4 /tools
parentf456bc6bf8b211d132d07678ae0c2a53f00d396b (diff)
[assets] Explicit size for textures and dlists (#2534)
* Add `conf.EXPLICIT_SIZES = True` for making some array resources declare and define with explicit length * EXPLICIT_DL_AND_TEX_SIZES = True * revert rm line
Diffstat (limited to 'tools')
-rw-r--r--tools/assets/extract/extase_oot64/dlist_resources.py13
1 files changed, 8 insertions, 5 deletions
diff --git a/tools/assets/extract/extase_oot64/dlist_resources.py b/tools/assets/extract/extase_oot64/dlist_resources.py
index c67597f67..63e8635a6 100644
--- a/tools/assets/extract/extase_oot64/dlist_resources.py
+++ b/tools/assets/extract/extase_oot64/dlist_resources.py
@@ -42,6 +42,8 @@ BEST_EFFORT = True
VERBOSE_ColorIndexedTexturesManager = False
VERBOSE_BEST_EFFORT_TLUT_NO_REAL_USER = True
+EXPLICIT_DL_AND_TEX_SIZES = True
+
class MtxResource(CDataResource):
braces_in_source = False
@@ -274,10 +276,11 @@ class TextureResource(Resource):
self.height_name = f"{self.symbol_name}_HEIGHT"
def get_c_declaration_base(self):
- if hasattr(self, "HACK_IS_STATIC_ON"):
- if self.is_tlut():
- raise NotImplementedError
- return f"{self.elem_type} {self.symbol_name}[{self.height_name}*{self.width_name}*{self.siz.bpp}/8/sizeof({self.elem_type})]"
+ 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})]"
return f"{self.elem_type} {self.symbol_name}[]"
def get_c_reference(self, resource_offset: int):
@@ -1335,7 +1338,7 @@ class DListResource(Resource, can_size_be_unknown=True):
return RESOURCE_PARSE_SUCCESS
def get_c_declaration_base(self):
- if hasattr(self, "HACK_IS_STATIC_ON"):
+ if hasattr(self, "HACK_IS_STATIC_ON") or EXPLICIT_DL_AND_TEX_SIZES:
length = (self.range_end - self.range_start) // 8
return f"Gfx {self.symbol_name}[{length}]"
return f"Gfx {self.symbol_name}[]"