fix cache versions check

This commit is contained in:
DCFApixels 2025-03-31 11:58:16 +08:00
parent 90746306f1
commit 2b4ec6377f

View File

@ -125,6 +125,7 @@ namespace DCFApixels.DragonECS.Core
_maskInc = mask._incs;
_maskExc = mask._excs;
_count = 1 + mask._incs.Length + mask._excs.Length;
_versions = UnmanagedArrayUtility.NewAndInit<long>(_count);
}
public bool Check()
@ -181,7 +182,9 @@ namespace DCFApixels.DragonECS.Core
long* versionsPtr = _versions;
var slots = _world._poolSlots;
bool result = _count != 1;
// Так как проверки EXC работают не правильно при отсутсвии INC,
// то проверки без INC должны всегда возвращать false.
bool result = _maskInc.Length > 0;
foreach (var slotIndex in _maskInc)
{
versionsPtr++;
@ -193,14 +196,12 @@ namespace DCFApixels.DragonECS.Core
}
foreach (var slotIndex in _maskExc)
{
return false; //TODO hotfix, не правильная логика проверки версия для EXC, потому сейчас она скипается
//versionsPtr++;
//if (*versionsPtr != slots[slotIndex].version)
//{
// result = false;
// *versionsPtr = slots[slotIndex].version;
//}
versionsPtr++;
if (*versionsPtr != slots[slotIndex].version)
{
result = false;
*versionsPtr = slots[slotIndex].version;
}
}
return result;
}