private static object ReadAny(BinaryReader reader, LuaContext context)
        {
            var type = reader.ReadByte();

            reader.ReadByte();
            switch (type)
            {
            case 0:
                return(null);

            case 1:
                return(reader.ReadBoolean());

            case 2:
                return(reader.ReadDouble());

            case 3:
                return(ReadString(reader));

            case 4:
                var count = reader.ReadInt32();
                var arr   = context.NewTable();
                for (var i = 0; i < count; i++)
                {
                    ReadString(reader);
                    arr[i + 1] = ReadAny(reader, context);
                }
                return(arr);

            case 5:
                count = reader.ReadInt32();
                var table = context.NewTable();
                for (var i = 0; i < count; i++)
                {
                    table[ReadString(reader)] = ReadAny(reader, context);
                }
                return(table);

            default:
                throw new NotSupportedException("Unknown type");
            }
        }
 public static object ReadModSettings(BinaryReader reader, LuaContext context)
 {
     reader.ReadInt64();
     reader.ReadBoolean();
     return(ReadAny(reader, context));
 }