1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-08-08 07:20:16 +00:00
oot/tools/assets/extract/extase_oot64/misc_resources.py
fig02 28cc9d68cf
Remove "z64" prefix from all headers (#2518)
* z64 - a

* z64 - b

* z64 - c

* z64 - d

* z64 - e

* z64 - f

* z64 - g

* z64 - h

* z64 - i

* z64 - l

* z64 - m

* z64 - o

* z64 - p

* z64 - q

* z64 - r

* z64 - s

* z64 - t

* z64 - v

* restore file

* fix merge

* fix merge

---------

Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
2025-06-04 14:38:33 -04:00

63 lines
1.8 KiB
Python

# SPDX-FileCopyrightText: © 2025 ZeldaRET
# SPDX-License-Identifier: CC0-1.0
import struct
from ..extase import (
RESOURCE_PARSE_SUCCESS,
File,
Resource,
)
from tools import csdis
class CutsceneResource(Resource, can_size_be_unknown=True):
def __init__(self, file: File, range_start: int, name: str):
super().__init__(file, range_start, None, name)
def try_parse_data(self, memory_context):
assert self.range_start % 4 == 0
data = self.file.data[self.range_start :]
num_bytes = len(data)
if num_bytes % 4 != 0:
data = data[: -(num_bytes % 4)]
data_words = [unpacked[0] for unpacked in struct.iter_unpack(">I", data)]
size_words, cs_source = csdis.disassemble_cutscene(data_words)
self.range_end = self.range_start + 4 * size_words
self.cs_source = cs_source
return RESOURCE_PARSE_SUCCESS
def get_c_reference(self, resource_offset: int):
if resource_offset == 0:
return self.symbol_name
else:
raise ValueError
extracted_path_suffix = ".inc.c"
def get_filename_stem(self):
return f"{self.name}.csdata"
def write_extracted(self, memory_context):
with self.extract_to_path.open("w") as f:
if not self.braces_in_source:
f.write("{\n")
f.write(self.cs_source)
if not self.braces_in_source:
f.write("}\n")
def get_c_declaration_base(self):
return f"CutsceneData {self.symbol_name}[]"
def get_c_includes(self):
return (
"cutscene_commands.h",
# TODO these are not always needed:
"ocarina.h", # for OCARINA_ACTION_*
"player.h", # for PLAYER_CUEID_*
)
def get_h_includes(self):
return ("cutscene.h",)