615 {
616
617 string exact = enumType.EnumToString(enumType, value);
618 if (exact != "unknown")
619 return exact;
620
621
622 if (value == 0)
623 {
624 string zeroName = enumType.EnumToString(enumType, 0);
625 if (zeroName !=
string.
Empty)
626 return zeroName;
627 else
628 return "unknown";
629 }
630
631
632 int remaining = value;
633 array<string> parts = {};
634 int bit = 1;
635
636
637 for (int i = 0; i < 32 && remaining != 0; ++i)
638 {
639 bit <<= 1;
640 if ((value & bit) != 0)
641 {
642 string name = enumType.EnumToString(enumType, bit);
643 if (
name !=
"unknown")
644 {
646 remaining &= ~bit;
647 }
648 }
649 }
650
651
652 if (remaining != 0)
653 parts.Insert(string.Format("0x%1", remaining.ToHex()));
654
655 if (parts.Count() == 0)
656 {
657
658 return string.Format("0x%1", value.ToHex());
659 }
660
661 return string.Join("|", parts);
662 }
PlayerSpawnPresetDiscreteItemSetSlotData name
one set for cargo