private static void DumpMoveReq(object sender, CommandEventArgs e) { var gates = ResourceCache.Instance.GetGates(); var moves = gates .Where(x => x.Value.Move != -1) .OrderBy(x => x.Value.Move) .Select(x => x.Value); using (var fs = new FileStream("./MoveReq.bmd", FileMode.Create)) { var num = BitConverter.GetBytes(moves.Count()); fs.Write(num, 0, 4); var data = new byte[0xFA0]; using (var ms = new MemoryStream(data)) { foreach (var mov in moves) { var bmdData = new MoveReqBMD { Gate = mov.Number, Level = mov.ReqLevel, MoveNumber = mov.Move, Zen = mov.ReqZen, ClientName = mov.Name, ServerName = mov.Name, }; Serializer.Serialize(ms, bmdData); } } MakeXOR(data, 0, 80); fs.Write(data, 0, data.Length); } }
private static void DumpMoveReq(object sender, CommandEventArgs e) { var gates = ResourceCache.Instance.GetGates(); var moves = gates .Where(x => x.Value.Move != -1) .OrderBy(x => x.Value.Move) .Select(x => x.Value); using (var fs = new FileStream("./MoveReq.bmd", FileMode.Create)) { var num = BitConverter.GetBytes(moves.Count()); fs.Write(num, 0, 4); var data = new byte[0xFA0]; using (var ms = new MemoryStream(data)) { foreach (var mov in moves) { var bmdData = new MoveReqBMD { Gate = mov.Number, Level = mov.ReqLevel, MoveNumber = mov.Move, Zen = mov.ReqZen, ClientName = mov.Name, ServerName = mov.Name, }; Serializer.Serialize(ms, bmdData); } } MakeXOR(data, 0, 80); fs.Write(data, 0, data.Length); } Log.Information("MoveReq.bmd Created"); using (var fs = new FileStream("./Gate.bmd", FileMode.Create)) { var num = BitConverter.GetBytes(moves.Count()); //fs.Write(num, 0, 4); var data = new byte[7168]; using (var ms = new MemoryStream(data)) { foreach (var mov in moves) { var bmdData = new GateBMD { Flag = mov.GateType, Map = mov.Map, Dir = mov.Dir, Level = mov.ReqLevel, X1 = (byte)mov.Door.Left, Y1 = (byte)mov.Door.Top, X2 = (byte)mov.Door.Right, Y2 = (byte)mov.Door.Bottom, GateNumber = (ushort)mov.Number, BZLevel = 400, BZone = 1, }; Serializer.Serialize(ms, bmdData); } } MakeXOR(data, 0, 14); fs.Write(data, 0, data.Length); } Log.Information("Gate.bmd Created"); }