mirror of
https://github.com/open-goal/jak-project.git
synced 2024-10-20 11:26:18 -04:00
6d99f1bfc1
Reasons for doing so include: 1. This should stop the confusion around editing the wrong config file's flags -- when for example, extracting a level. Common settings can be in one central place, with bespoke overrides being provided for each version 2. Less verbose way of supporting multiple game versions. You don't have to duplicate the entire `type_casts` file for example, just add or override the json objects required. 3. Makes the folder structure consistent, Jak 1's `all-types` is now in a `jak1` folder, etc.
50 lines
1.3 KiB
Python
50 lines
1.3 KiB
Python
import json
|
|
import os
|
|
|
|
jak1_files = None
|
|
jak2_files = None
|
|
|
|
with open('./goal_src/jak1/build/all_objs.json', 'r') as f:
|
|
jak1_files = json.load(f)
|
|
with open('./goal_src/jak2/build/all_objs.json', 'r') as f:
|
|
jak2_files = json.load(f)
|
|
|
|
def get_file_list(game_name):
|
|
if game_name == "jak1":
|
|
return jak1_files
|
|
else:
|
|
return jak2_files
|
|
|
|
def get_gsrc_path_from_filename(game_name, file_name):
|
|
file_list = get_file_list(game_name)
|
|
src_path = ""
|
|
for f in file_list:
|
|
if f[2] != 3:
|
|
continue
|
|
if f[0] == file_name:
|
|
src_path = f[4]
|
|
break
|
|
path = "./goal_src/{}/{}/{}.gc".format(game_name, src_path, file_name)
|
|
if not os.path.exists(path):
|
|
print("{} couldn't find in /goal_src/{}!".format(file_name, game_name))
|
|
exit(1)
|
|
return path
|
|
|
|
def get_alltypes_path_from_game(game_name):
|
|
return "./decompiler/config/{}/all-types.gc".format(game_name)
|
|
|
|
def get_ref_path_from_filename(game_name, file_name, ref_folder):
|
|
file_list = get_file_list(game_name)
|
|
src_path = ""
|
|
for f in file_list:
|
|
if f[2] != 3:
|
|
continue
|
|
if f[0] == file_name:
|
|
src_path = f[4]
|
|
break
|
|
if src_path == "":
|
|
print("couldn't determine ref path for {}:{}!".format(game_name, file_name))
|
|
exit(1)
|
|
path = os.path.join(ref_folder, game_name, src_path, "{}_REF.gc".format(file_name))
|
|
return path
|