mirror of
https://github.com/qwerfd2/Groove_Coaster_2_Server.git
synced 2026-02-24 02:12:40 +00:00
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
import struct
|
|
import openpyxl
|
|
|
|
def write_uvdata(input_excel, output_file):
|
|
wb = openpyxl.load_workbook(input_excel)
|
|
ws = wb.active
|
|
|
|
sections = []
|
|
for row in ws.iter_rows(values_only=True):
|
|
if row[0]:
|
|
sections.append(bytes.fromhex(row[0]))
|
|
|
|
num_sections = len(sections)
|
|
offsets = []
|
|
current_offset = 6 + num_sections * 4 + 4 # Additional header repeat
|
|
|
|
for section in sections:
|
|
offsets.append(current_offset)
|
|
current_offset += len(section)
|
|
|
|
with open(output_file, 'wb') as f:
|
|
file_length = struct.pack('>I', current_offset)
|
|
num_sections_packed = struct.pack('>H', num_sections)
|
|
f.write(file_length + num_sections_packed)
|
|
|
|
for offset in offsets:
|
|
f.write(struct.pack('>I', offset))
|
|
|
|
f.write(file_length)
|
|
|
|
for section in sections:
|
|
f.write(section)
|
|
|
|
print(f"Packed {num_sections} sections into {output_file}")
|
|
|
|
write_uvdata('uvdata.xlsx', 'out_uvdata.dat') |