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)); }