Cleanup fancy printing, add and use configuration

Former-commit-id: 638a7a3d363b0e8566c54dd5ca462b8a5aa0c56f
This commit is contained in:
Phillip Stephens 2023-12-18 20:29:47 -08:00
parent 30bd0f60a0
commit 5f259dd384
2 changed files with 28 additions and 13 deletions

View File

@ -137,8 +137,15 @@ config.ldflags = [
"-fp hardware", "-fp hardware",
"-nodefaults", "-nodefaults",
] ]
config.progress_all = False config.progress_all = False
config.progress_modules = False config.progress_modules = False
config.progress_use_fancy = True
config.progress_code_fancy_frac = 1499
config.progress_code_fancy_item = "Energy"
config.progress_data_fancy_frac = 250
config.progress_data_fancy_item = "Missiles"
config.build_rels = False config.build_rels = False
# Base flags, common to most GC/Wii games. # Base flags, common to most GC/Wii games.

View File

@ -65,6 +65,13 @@ class ProjectConfig:
True # Include individual modules, disable for large numbers of modules True # Include individual modules, disable for large numbers of modules
) )
# Progress fancy printing
self.progress_use_fancy = False
self.progress_code_fancy_frac = 0
self.progress_code_fancy_item = ""
self.progress_data_fancy_frac = 0
self.progress_data_fancy_item = ""
def validate(self): def validate(self):
required_attrs = [ required_attrs = [
"build_dir", "build_dir",
@ -897,12 +904,12 @@ def calculate_progress(config):
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
self.code_total = 0 self.code_total = 0
self.code_fancy_frac = 1499 self.code_fancy_frac = config.progress_code_fancy_frac
self.code_fancy_item = "energy" self.code_fancy_item = config.progress_code_fancy_item
self.code_progress = 0 self.code_progress = 0
self.data_total = 0 self.data_total = 0
self.data_fancy_frac = 250 self.data_fancy_frac = config.progress_data_fancy_frac
self.data_fancy_item = "missiles" self.data_fancy_item = config.progress_data_fancy_item
self.data_progress = 0 self.data_progress = 0
self.objects_progress = 0 self.objects_progress = 0
self.objects_total = 0 self.objects_total = 0
@ -976,16 +983,17 @@ def calculate_progress(config):
) )
print(f" Code: {unit.code_progress} / {unit.code_total} bytes") print(f" Code: {unit.code_progress} / {unit.code_total} bytes")
print(f" Data: {unit.data_progress} / {unit.data_total} bytes") print(f" Data: {unit.data_progress} / {unit.data_total} bytes")
print( if config.progress_use_fancy:
"\nYou have {} out of {} {} and collected {} out of {} {}.".format( print(
math.floor(code_frac * unit.code_fancy_frac), "\nYou have {} out of {} {} and collected {} out of {} {}.".format(
unit.code_fancy_frac, math.floor(code_frac * unit.code_fancy_frac),
unit.code_fancy_item, unit.code_fancy_frac,
math.floor(data_frac * unit.data_fancy_frac), unit.code_fancy_item,
unit.data_fancy_frac, math.floor(data_frac * unit.data_fancy_frac),
unit.data_fancy_item, unit.data_fancy_frac,
unit.data_fancy_item,
)
) )
)
if all_progress: if all_progress:
print_category(all_progress) print_category(all_progress)