fix: Fixes expansion flags for animations (#1009)
This commit is contained in:
parent
d1a3c9b0c7
commit
8f1240d25e
4 changed files with 29 additions and 80 deletions
|
|
@ -100,16 +100,17 @@ namespace Server.Json
|
|||
{
|
||||
writer.WriteStartObject();
|
||||
var underlyingType = Enum.GetUnderlyingType(typeof(T));
|
||||
var size = GetUnderlyingTypeLength(Type.GetTypeCode(underlyingType)) - 1;
|
||||
var intValue = ConvertToUInt64(underlyingType, value);
|
||||
|
||||
foreach (var flagName in Enum.GetNames(typeof(T)))
|
||||
{
|
||||
var flagValue = Enum.Parse<T>(flagName, false);
|
||||
var flag = ConvertToUInt64(underlyingType, flagValue);
|
||||
if (flag == 0 || (flag & size) == 0)
|
||||
|
||||
// Do not write out multi-bit values. This is a custom behavior
|
||||
if (flag > 0 && (flag & (flag - 1)) == 0)
|
||||
{
|
||||
writer.WriteBoolean(flagName, (intValue & flag) != 0);
|
||||
writer.WriteBoolean(flagName, (intValue & flag) == flag);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue