garcia / simfile

A modern simfile parsing & editing library for Python 3
MIT License
62 stars 7 forks source link

Multi-value properties aren't handled correctly in SSC #28

Closed garcia closed 1 year ago

garcia commented 1 year ago

Two bugs in simfile 2.0.0–2.1.0's SSC implementation break multi-value properties, causing them to be truncated or mangled past the first value:

  1. When opening an SSC file, the DISPLAYBPM and ATTACKS properties of both simfiles and charts stop parsing at the first :. For DISPLAYBPM, this means a BPM range of min:max will be incorrectly parsed as a static BPM of min. ATTACKS are completely broken as they use colon as a separator.
  2. The aforementioned properties are incorrectly serialized with colons escaped from SSCChart. This has the same effects described above, but this only affects values with colons that were written to the chart object manually (e.g. chart.displaybpm = "120:240") since the first bug shadows this bug during deserialization.