public void Serialize(IO.BitStream s, GameEngineMegaloVariant megalo) { megalo.StreamStringTableIndexReference(s, ref NameStringIndex); megalo.StreamStringTableIndexReference(s, ref DescriptionStringIndex); s.Stream(ref IsRangeValue); if (IsRangeValue) { s.Stream(ref Value, 10, signExtend: true); // min, max if (s.IsReading) { ValuesRead(s, megalo, 2, IsRangeValue); } else if (s.IsWriting) { ValuesWrite(s, megalo, IsRangeValue); } } else { megalo.StreamUserDefinedValueIndex(s, ref DefaultValueIndex); if (s.IsReading) { ValuesRead(s, megalo, TypeExtensions.kNone, IsRangeValue); } else if (s.IsWriting) { int count = Values.Count; megalo.StreamUserDefinedValuesCount(s, ref count); ValuesWrite(s, megalo, IsRangeValue); } } }
public void Serialize(IO.BitStream s, GameEngineMegaloVariant megalo, bool isRangeValue) { s.Stream(ref Value, 10, signExtend: true); if (!isRangeValue) { megalo.StreamStringTableIndexReference(s, ref NameStringIndex); megalo.StreamStringTableIndexReference(s, ref DescriptionStringIndex); } }