Beispiel #1
0
        private unsafe bool CompareData(CharacterEquipment rhs)
        {
            var structSizeEights = (2 + EquipmentSlots * sizeof(CharacterArmor) + WeaponSlots * sizeof(CharacterWeapon)) / 8;

            fixed(CharacterWeapon *data1 = &MainHand, data2 = &rhs.MainHand)
            {
                var ptr1 = ( ulong * )data1;
                var ptr2 = ( ulong * )data2;

                for (var end = ptr1 + structSizeEights; ptr1 != end; ++ptr1, ++ptr2)
                {
                    if (*ptr1 != *ptr2)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
Beispiel #2
0
 public bool CompareAndUpdate(CharacterEquipment rhs)
 => CompareAndOverwrite(rhs);
Beispiel #3
0
 public bool Equal(CharacterEquipment rhs)
 => CompareData(rhs);