public List <string> packedItems = new List <string>(); // For display purposes public static InterpretedMotionState read(BinaryReader binaryReader) { InterpretedMotionState newObj = new InterpretedMotionState(); newObj.bitfield = binaryReader.ReadUInt32(); if ((newObj.bitfield & (uint)PackBitfield.current_style) != 0) { newObj.current_style = (uint)command_ids[binaryReader.ReadUInt16()]; newObj.packedItems.Add(PackBitfield.current_style.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.forward_command) != 0) { newObj.forward_command = (uint)command_ids[binaryReader.ReadUInt16()]; newObj.packedItems.Add(PackBitfield.forward_command.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.sidestep_command) != 0) { newObj.sidestep_command = (uint)command_ids[binaryReader.ReadUInt16()]; newObj.packedItems.Add(PackBitfield.sidestep_command.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.turn_command) != 0) { newObj.turn_command = (uint)command_ids[binaryReader.ReadUInt16()]; newObj.packedItems.Add(PackBitfield.turn_command.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.forward_speed) != 0) { newObj.forward_speed = binaryReader.ReadSingle(); newObj.packedItems.Add(PackBitfield.forward_speed.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.sidestep_speed) != 0) { newObj.sidestep_speed = binaryReader.ReadSingle(); newObj.packedItems.Add(PackBitfield.sidestep_speed.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.turn_speed) != 0) { newObj.turn_speed = binaryReader.ReadSingle(); newObj.packedItems.Add(PackBitfield.turn_speed.ToString()); } uint num_actions = (newObj.bitfield >> 7) & 0x1F; newObj.packedItems.Add("num_actions = " + num_actions); for (int i = 0; i < num_actions; ++i) { newObj.actions.Add(ActionNode.read(binaryReader)); } Util.readToAlign(binaryReader); return(newObj); }
public static RawMotionState read(BinaryReader binaryReader) { RawMotionState newObj = new RawMotionState(); newObj.packedItems = new List <string>(); newObj.bitfield = binaryReader.ReadUInt32(); if ((newObj.bitfield & (uint)PackBitfield.current_holdkey) != 0) { newObj.current_holdkey = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.current_holdkey.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.current_style) != 0) { newObj.current_style = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.current_style.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.forward_command) != 0) { newObj.forward_command = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.forward_command.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.forward_holdkey) != 0) { newObj.forward_holdkey = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.forward_holdkey.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.forward_speed) != 0) { newObj.forward_speed = binaryReader.ReadSingle(); newObj.packedItems.Add(PackBitfield.forward_speed.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.sidestep_command) != 0) { newObj.sidestep_command = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.sidestep_command.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.sidestep_holdkey) != 0) { newObj.sidestep_holdkey = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.sidestep_holdkey.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.sidestep_speed) != 0) { newObj.sidestep_speed = binaryReader.ReadSingle(); newObj.packedItems.Add(PackBitfield.sidestep_speed.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.turn_command) != 0) { newObj.turn_command = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.turn_command.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.turn_holdkey) != 0) { newObj.turn_holdkey = (uint)binaryReader.ReadUInt32(); newObj.packedItems.Add(PackBitfield.turn_holdkey.ToString()); } if ((newObj.bitfield & (uint)PackBitfield.turn_speed) != 0) { newObj.turn_speed = binaryReader.ReadSingle(); newObj.packedItems.Add(PackBitfield.turn_speed.ToString()); } uint num_actions = (newObj.bitfield >> 11); newObj.packedItems.Add("num_actions = " + num_actions); newObj.actions = new List <ActionNode>(); for (int i = 0; i < num_actions; ++i) { newObj.actions.Add(ActionNode.read(binaryReader)); } Util.readToAlign(binaryReader); return(newObj); }