1
0
mirror of synced 2025-02-17 11:08:36 +01:00

Stop hardcoding song['length']

Instead, rely on len(song['measures') as the single source of truth for measures
This commit is contained in:
Viv 2023-06-29 15:06:49 -04:00
parent 6286a3a78d
commit 0bef98c10d
4 changed files with 3 additions and 6 deletions

View File

@ -221,7 +221,6 @@ def convertTJAToFumen(tja):
tjaConverted['headerMetadata'] = b"".join(i.to_bytes(1, 'little') for i in headerMetadata)
tjaConverted['headerPadding'] = simpleHeaders[0] # Use a basic, known set of header bytes
tjaConverted['order'] = '<'
tjaConverted['length'] = len(tjaConverted['measures'])
tjaConverted['unknownMetadata'] = 0
tjaConverted['branches'] = False
tjaConverted['scoreInit'] = tja['scoreInit']

View File

@ -317,7 +317,6 @@ def readFumen(fumenFile, byteOrder=None):
song['headerPadding'] = fumenHeader[:432]
song['headerMetadata'] = fumenHeader[-80:]
song['order'] = order
song["length"] = totalMeasures
# I am unsure what byte this represents
unknownMetadata = readStruct(file, order, format_string="I", seek=0x204)[0]

View File

@ -13,7 +13,7 @@ def writeFumen(file, song):
# Preallocate space in the file
len_metadata = 8
len_measures = 0
for measureNumber in range(song['length']):
for measureNumber in range(len(song['measures'])):
len_measures += 40
measure = song['measures'][measureNumber]
for branchNumber in range(len(branchNames)):
@ -28,12 +28,12 @@ def writeFumen(file, song):
# Write metadata
writeStruct(file, order, format_string="B", value_list=[putBool(song['branches'])], seek=0x1b0)
writeStruct(file, order, format_string="I", value_list=[song['length']], seek=0x200)
writeStruct(file, order, format_string="I", value_list=[len(song['measures'])], seek=0x200)
writeStruct(file, order, format_string="I", value_list=[song['unknownMetadata']], seek=0x204)
# Write measure data
file.seek(0x208)
for measureNumber in range(song['length']):
for measureNumber in range(len(song['measures'])):
measure = song['measures'][measureNumber]
measureStruct = [measure['bpm'], measure['fumenOffset'], int(measure['gogo']), int(measure['barline'])]
measureStruct.extend([measure['padding1']] + measure['branchInfo'] + [measure['padding2']])

View File

@ -66,7 +66,6 @@ def test_converted_tja_vs_cached_fumen(id_song, tmp_path, entry_point):
assert_song_property(co_song, ca_song, 'branches')
assert_song_property(co_song, ca_song, 'scoreInit')
assert_song_property(co_song, ca_song, 'scoreDiff')
assert_song_property(co_song, ca_song, 'length')
assert_song_property(co_song, ca_song, 'measures', func=len)
# 3. Check measure data
for i_measure, (co_measure, ca_measure) in enumerate(zip(co_song['measures'], ca_song['measures'])):