mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-10 19:20:13 +00:00
62 lines
1.4 KiB
Python
62 lines
1.4 KiB
Python
#! /usr/bin/python3
|
|
|
|
import os
|
|
import re
|
|
import sys
|
|
|
|
script_dir = os.path.dirname(os.path.realpath(__file__))
|
|
root_dir = script_dir + "/../"
|
|
|
|
|
|
def handle_match(match):
|
|
original_text = match.group()
|
|
|
|
match_text = original_text.replace("\\x", "")
|
|
|
|
if match_text.lower() == "1b":
|
|
return original_text
|
|
|
|
end = ""
|
|
if original_text.lower().endswith("\\x1b"):
|
|
end = original_text[-4:]
|
|
match_text = match_text[:-2]
|
|
|
|
try:
|
|
text = bytes.fromhex(match_text).decode("EUC-JP")
|
|
except UnicodeDecodeError:
|
|
return original_text
|
|
|
|
if text[2:].lower() == match_text.lower():
|
|
return original_text
|
|
|
|
return text + end
|
|
|
|
|
|
def process_file(file_path):
|
|
with open(file_path) as f:
|
|
file_text = f.read()
|
|
|
|
new_file_text = re.sub("(\\\\x[0-9a-zA-Z]{2})+", handle_match, file_text)
|
|
|
|
if new_file_text != file_text:
|
|
with open(file_path, "w") as f:
|
|
f.write(new_file_text)
|
|
return True
|
|
return False
|
|
|
|
|
|
def main():
|
|
i = 0
|
|
skip_list = ["z_file_choose.rodata.s", "z_kaleido_scope.rodata.s"]
|
|
for root, dirs, files in os.walk(root_dir):
|
|
for file in files:
|
|
if i == 100:
|
|
return
|
|
if file.endswith(".s") and file not in skip_list:
|
|
path = os.path.join(root, file)
|
|
if process_file(path):
|
|
print("Processed " + path)
|
|
i += 1
|
|
|
|
|
|
main()
|