mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-20 00:41:20 +00:00
91 lines
2.3 KiB
C#
Executable file
91 lines
2.3 KiB
C#
Executable file
using FSO.Files.Utils;
|
|
using System;
|
|
using System.IO;
|
|
|
|
namespace FSO.Files.Formats.tsodata
|
|
{
|
|
public class BulletinItem
|
|
{
|
|
public static int CURRENT_VERSION = 1;
|
|
public int Version = CURRENT_VERSION;
|
|
public uint ID;
|
|
public uint NhoodID;
|
|
public uint SenderID;
|
|
|
|
public string Subject;
|
|
public string Body;
|
|
public string SenderName;
|
|
|
|
public long Time;
|
|
|
|
public BulletinType Type;
|
|
public BulletinFlags Flags;
|
|
|
|
public uint LotID; //optional: for lot advertisements.
|
|
|
|
public BulletinItem()
|
|
{
|
|
|
|
}
|
|
|
|
public BulletinItem(Stream stream)
|
|
{
|
|
Read(stream);
|
|
}
|
|
|
|
public void Save(Stream stream)
|
|
{
|
|
using (var writer = IoWriter.FromStream(stream))
|
|
{
|
|
writer.WriteCString("FSOB", 4);
|
|
writer.WriteInt32(Version);
|
|
writer.WriteUInt32(ID);
|
|
writer.WriteUInt32(NhoodID);
|
|
writer.WriteUInt32(SenderID);
|
|
|
|
writer.WriteLongPascalString(Subject);
|
|
writer.WriteLongPascalString(Body);
|
|
writer.WriteLongPascalString(SenderName);
|
|
writer.WriteInt64(Time);
|
|
writer.WriteInt32((int)Type);
|
|
writer.WriteInt32((int)Flags);
|
|
|
|
writer.WriteUInt32(LotID);
|
|
}
|
|
}
|
|
|
|
public void Read(Stream stream)
|
|
{
|
|
using (var reader = IoBuffer.FromStream(stream))
|
|
{
|
|
var magic = reader.ReadCString(4);
|
|
Version = reader.ReadInt32();
|
|
ID = reader.ReadUInt32();
|
|
NhoodID = reader.ReadUInt32();
|
|
SenderID = reader.ReadUInt32();
|
|
|
|
Subject = reader.ReadLongPascalString();
|
|
Body = reader.ReadLongPascalString();
|
|
SenderName = reader.ReadLongPascalString();
|
|
Time = reader.ReadInt64();
|
|
Type = (BulletinType)reader.ReadInt32();
|
|
Flags = (BulletinFlags)reader.ReadInt32();
|
|
|
|
LotID = reader.ReadUInt32();
|
|
}
|
|
}
|
|
}
|
|
|
|
public enum BulletinType
|
|
{
|
|
Mayor = 0,
|
|
System = 1,
|
|
Community = 2,
|
|
}
|
|
|
|
[Flags]
|
|
public enum BulletinFlags
|
|
{
|
|
PromotedByMayor = 1
|
|
}
|
|
}
|