writeLevels static method

void writeLevels(
  1. PsBinaryWriter writer,
  2. PsLevels levels
)

Writes levels settings.

Implementation

static void writeLevels(PsBinaryWriter writer, PsLevels levels) {
  if (levels.records.length != PsLevels.standardRecordCount) {
    throw const PsWriteException(message: 'Levels adjustments require exactly 29 standard records');
  }
  writer.writeUint16(levels.version);
  for (final PsLevelRecord record in levels.records) {
    _writeLevelRecord(writer, record);
  }
  if (levels.extendedRecords.isNotEmpty) {
    writer
      ..writeString('Lvls')
      ..writeUint16(levels.extendedVersion)
      ..writeUint16(PsLevels.standardRecordCount + levels.extendedRecords.length);
    for (final PsLevelRecord record in levels.extendedRecords) {
      _writeLevelRecord(writer, record);
    }
  }
  writer.writeBytes(levels.trailingData);
}