protected sResult read_WZ_Structures(BinaryReader File, List<WZBJOUnit> WZUnits) { var returnResult = new sResult(); returnResult.Success = false; returnResult.Problem = ""; string strTemp = null; UInt32 version = 0; UInt32 uintTemp = 0; var a = 0; var wzBJOUnit = default(WZBJOUnit); try { strTemp = IOUtil.ReadOldTextOfLength(File, 4); if ( strTemp != "stru" ) { returnResult.Problem = "Unknown struct.bjo identifier."; return returnResult; } version = File.ReadUInt32(); if ( version != 8U ) { if ( MessageBox.Show("struct.bjo version is unknown. Continue?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK ) { returnResult.Problem = "Aborted."; return returnResult; } } uintTemp = File.ReadUInt32(); for ( a = 0; a <= (Convert.ToInt32(uintTemp)) - 1; a++ ) { wzBJOUnit = new WZBJOUnit(); wzBJOUnit.ObjectType = UnitType.PlayerStructure; wzBJOUnit.Code = IOUtil.ReadOldTextOfLength(File, 40); wzBJOUnit.Code = wzBJOUnit.Code.Substring(0, wzBJOUnit.Code.IndexOf('\0')); wzBJOUnit.ID = File.ReadUInt32(); wzBJOUnit.Pos.Horizontal.X = (int)(File.ReadUInt32()); wzBJOUnit.Pos.Horizontal.Y = (int)(File.ReadUInt32()); wzBJOUnit.Pos.Altitude = (int)(File.ReadUInt32()); wzBJOUnit.Rotation = File.ReadUInt32(); wzBJOUnit.Player = File.ReadUInt32(); File.ReadBytes(56); WZUnits.Add(wzBJOUnit); } } catch ( Exception ex ) { returnResult.Problem = ex.Message; logger.ErrorException("Got an exception", ex); return returnResult; } returnResult.Success = true; return returnResult; }
protected sResult read_WZ_Droids(BinaryReader File, List<WZBJOUnit> WZUnits) { var ReturnResult = new sResult(); ReturnResult.Success = false; ReturnResult.Problem = ""; string strTemp = null; UInt32 Version = 0; UInt32 uintTemp = 0; var A = 0; var WZBJOUnit = default(WZBJOUnit); try { strTemp = IOUtil.ReadOldTextOfLength(File, 4); if ( strTemp != "dint" ) { ReturnResult.Problem = "Unknown dinit.bjo identifier."; return ReturnResult; } Version = File.ReadUInt32(); if ( Version > 19U ) { if ( MessageBox.Show("dinit.bjo version is unknown. Continue?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK ) { ReturnResult.Problem = "Aborted."; return ReturnResult; } } uintTemp = File.ReadUInt32(); for ( A = 0; A <= (Convert.ToInt32(uintTemp)) - 1; A++ ) { WZBJOUnit = new WZBJOUnit(); WZBJOUnit.ObjectType = UnitType.PlayerDroid; WZBJOUnit.Code = IOUtil.ReadOldTextOfLength(File, 40); WZBJOUnit.Code = WZBJOUnit.Code.Substring(0, WZBJOUnit.Code.IndexOf('\0')); WZBJOUnit.ID = File.ReadUInt32(); WZBJOUnit.Pos.Horizontal.X = (int)(File.ReadUInt32()); WZBJOUnit.Pos.Horizontal.Y = (int)(File.ReadUInt32()); WZBJOUnit.Pos.Altitude = (int)(File.ReadUInt32()); WZBJOUnit.Rotation = File.ReadUInt32(); WZBJOUnit.Player = File.ReadUInt32(); File.ReadBytes(12); WZUnits.Add(WZBJOUnit); } } catch ( Exception ex ) { ReturnResult.Problem = ex.Message; logger.ErrorException("Got an exception", ex); return ReturnResult; } ReturnResult.Success = true; return ReturnResult; }