public static StringTable Create(CSVCMsg_CreateStringTable proto) { var flags = MultiFlag.None; if ((proto.flags & (uint) MultiFlag.Precache) > 0) { flags |= MultiFlag.Precache; } if ((proto.flags & (uint) MultiFlag.What) > 0) { flags |= MultiFlag.What; } if ((proto.flags & (uint) MultiFlag.FixedLength) > 0) { flags |= MultiFlag.FixedLength; } return new StringTable(proto.name, (uint) proto.max_entries, proto.user_data_fixed_size, (uint) proto.user_data_size, (uint) proto.user_data_size_bits, flags); }
private Events? Handle(CSVCMsg_CreateStringTable message) { var table = StringTable.Create(message); state.StringsIndex[message.name] = state.Strings.Count; state.Strings.Add(table); stringTableUpdater.Update(table, message.num_entries, message.string_data); return null; }