Фильтр логиста: отдельная группа «Корм для кур»; призраками - только торговцы игры (NPCCore)
Корм кур - группа 22 в конце (биты старых не сдвинуты); у урн из прошлых сейвов она берёт выбор «Сырого», где корм был раньше. Число групп теперь пишется вторым числом. Призрачный вид - только у точного класса EntityTrader: NPC NPCCore (наследники EntityTrader) становились почти невидимыми (Nexus, Crozekanov, 16.10). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d0f66c784e
commit
1b60cfd627
@@ -168,7 +168,8 @@ namespace NecromancerTome
|
||||
t.Add(HasThreadTo ? 1 : 0);
|
||||
t.Add(ThreadTo.x); t.Add(ThreadTo.y); t.Add(ThreadTo.z);
|
||||
CinerariumWriteHelper.WriteInts(_bw, t.ToArray());
|
||||
CinerariumWriteHelper.WriteInts(_bw, new[] { unchecked((int)GroupMask) });
|
||||
// Второе число - сколько групп было при записи: новые группы (в конец) у старых урн включаются по правилу ниже.
|
||||
CinerariumWriteHelper.WriteInts(_bw, new[] { unchecked((int)GroupMask), CinerariumGroups.Count });
|
||||
}
|
||||
|
||||
public override void Read(PooledBinaryReader _br, StreamModeRead _eStreamMode)
|
||||
@@ -203,6 +204,7 @@ namespace NecromancerTome
|
||||
if (version >= 3)
|
||||
{
|
||||
int n = _br.ReadInt32();
|
||||
int known = 22; // до 17.10 число групп не писалось - их было 22
|
||||
for (int i = 0; i < n; i++)
|
||||
{
|
||||
int v = _br.ReadInt32();
|
||||
@@ -210,6 +212,16 @@ namespace NecromancerTome
|
||||
{
|
||||
GroupMask = unchecked((uint)v);
|
||||
}
|
||||
else if (i == 1)
|
||||
{
|
||||
known = v;
|
||||
}
|
||||
}
|
||||
// Группы, которых урна ещё не знала: корм кур раньше ехал с «Сырым» - берёт его выбор, прочие новые - включены.
|
||||
for (int g = known; g < CinerariumGroups.Count; g++)
|
||||
{
|
||||
bool on = g == CinerariumGroups.ChickenFeed ? (GroupMask & (1u << CinerariumGroups.Raw)) != 0 : true;
|
||||
GroupMask = on ? GroupMask | (1u << g) : GroupMask & ~(1u << g);
|
||||
}
|
||||
}
|
||||
_threadsDirty = true;
|
||||
|
||||
Reference in New Issue
Block a user