mirror of
https://github.com/open-goal/jak-project
synced 2026-05-25 15:25:31 -04:00
4ff2130d55
* deocmp: `plat` finished, `baseplat` started * decomp: finish `baseplat` * decomp: finish `plat-button` * decomp: finish `plat-eco` * decomp: finish `citb-drop-plat-CIT` * decomp: finish `cit-drop-plat-L1` * decomp: finish `plat-flip` * decomp: added a bunch of label defs * decomp: `plat-button` ref test added * stash * decomp: finish `baseplat` * decomp: finish `plat` * decomp: finish `plat-button` * tests: fix offline-test to handle multi-DGO files better * decomp: finish `citb-drop-plat-CIT` * decomp: finish `plat-flip` * decomp: finish `wedge-plats` * tools: fix memory analyzer, skip invalid type * decomp: finish `wall-plat` * fix ordering * fix some casting issues * cleanup after conflict resolution * address reviews
61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
import sys
|
|
from jak1_file_list import file_list
|
|
|
|
import argparse
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--file")
|
|
parser.add_argument("--list", type=int)
|
|
args = parser.parse_args()
|
|
|
|
def update_file(file, hack):
|
|
new_file_contents = []
|
|
print("Next file to decompile is - " + file[0])
|
|
print("Target is - " + "goal_src/" + file[4] + "/" + file[0] + ".gc")
|
|
print("Uses the following CGO / DGO - " + str(file[3]))
|
|
# TODO, update the CGO/DGO
|
|
with open("decompiler\config\jak1_ntsc_black_label.jsonc", "r") as config_file:
|
|
cfg_lines = config_file.readlines()
|
|
for line in cfg_lines:
|
|
if "allowed_objects" in line and hack == False:
|
|
line = " \"allowed_objects\": [\"" + file[0] + "\"],\n"
|
|
elif "allowed_objects" in line and hack == True:
|
|
line = " \"allowed_objects\": [\"" + file[1] + "\"],\n"
|
|
new_file_contents.append(line)
|
|
if len(new_file_contents) > 0:
|
|
with open("decompiler\config\jak1_ntsc_black_label.jsonc", "w") as f:
|
|
f.writelines(new_file_contents)
|
|
print("Allowed objects list updated")
|
|
|
|
if args.file:
|
|
for file in file_list:
|
|
if file[0] == args.file:
|
|
update_file(file, False)
|
|
break
|
|
elif file[1] == args.file:
|
|
# NOTE - kinda a hack, assumes -ag files always come after
|
|
update_file(file, True)
|
|
break
|
|
else:
|
|
list_eligible = []
|
|
for file in file_list:
|
|
if file[2] != 3:
|
|
continue
|
|
if len(list_eligible) > args.list:
|
|
break
|
|
src_path = "goal_src/" + file[4] + "/" + file[0] + ".gc"
|
|
with open(src_path) as f:
|
|
lines = f.readlines()
|
|
if len(lines) <= 7:
|
|
list_eligible.append("{} - Empty".format(file[0]))
|
|
else:
|
|
# Check for TODOs
|
|
count_todos = 0
|
|
for line in lines:
|
|
if "TODO" in line:
|
|
count_todos = count_todos + 1
|
|
if count_todos > 0:
|
|
list_eligible.append("{} - {} TODOs - {}".format(file[0], count_todos, src_path))
|
|
if len(list_eligible) > 0:
|
|
print("The next {} files that need to be addressed:".format(args.list))
|
|
print(*list_eligible, sep = "\n")
|