public LootOwner Read(DAIIO io)
 {
     xLength             = io.ReadBit2(LengthBits);
     BluePrint           = new BluePrint().Read(io);
     IndexUsedByUniqueId = io.ReadInt32();
     TransForm           = new byte[4][];
     for (int i = 0; i < 4; i++)
     {
         TransForm[i] = new byte[0xc];
         for (int j = 0; j < 0xc; j++)
         {
             TransForm[i][j] = (byte)io.ReadByte();
         }
     }
     return(this);
 }
 public ItemAsset Read(DAIIO io)
 {
     IsNull = io.ReadBoolean();
     if (!IsNull)
     {
         Value1     = io.ReadInt32();
         Value2     = io.ReadInt32();
         DataIsNull = io.ReadBoolean();
         if (!DataIsNull)
         {
             DataBytes = new byte[0x10];
             for (int i = 0; i < 0x10; i++)
             {
                 DataBytes[i] = (byte)io.ReadByte();
             }
         }
     }
     return(this);
 }
 public BluePrint Read(DAIIO io)
 {
     IsNull = io.ReadBoolean();
     if (!IsNull)
     {
         Value1  = io.ReadInt32();
         Value2  = io.ReadInt32();
         IsEmpty = io.ReadBoolean();
         if (!IsEmpty)
         {
             DataBytes = new byte[0x10];
             for (int i = 0; i < 0x10; i++)
             {
                 DataBytes[i] = (byte)io.ReadByte();
             }
         }
     }
     return(this);
 }
 public ControllableCreate Read(DAIIO io)
 {
     xLength         = io.ReadBit2(LengthBits);
     HasControllable = io.ReadBoolean();
     if (HasControllable)
     {
         Controllable = new Controllable().Read(io);
         if (Controllable.ShouldSave)
         {
             TransForm = new byte[4][];
             for (int i = 0; i < 4; i++)
             {
                 TransForm[i] = new byte[0xc];
                 for (int j = 0; j < 0xc; j++)
                 {
                     TransForm[i][j] = (byte)io.ReadByte();
                 }
             }
             IndexUsedByUniqueId = io.ReadInt16();
         }
     }
     return(this);
 }