diff --git a/Projects/Server.Tests/Tests/Items/DecayRegistrationTests.cs b/Projects/Server.Tests/Tests/Items/DecayRegistrationTests.cs index 597ec7e74..9e71f25ef 100644 --- a/Projects/Server.Tests/Tests/Items/DecayRegistrationTests.cs +++ b/Projects/Server.Tests/Tests/Items/DecayRegistrationTests.cs @@ -276,7 +276,7 @@ public class DecayRegistrationTests } } - // A refusal restarts the countdown; it must not pretend the item moved. + // A refusal restarts the countdown without rewriting LastMoved. [Fact] public void RefusedDecay_DoesNotRewriteLastMoved() { @@ -340,8 +340,7 @@ public class DecayRegistrationTests } } - // Once a real move supersedes the reset stamp, the stamp must be dropped so the item's - // CompactInfo can collapse instead of holding ~40 bytes forever. + // A real move supersedes the reset stamp; it must be dropped so the CompactInfo can collapse. [Fact] public void MovingAnItem_ClearsASupersededDecayResetStamp() { diff --git a/Projects/Server/Items/Item.cs b/Projects/Server/Items/Item.cs index 7cddaaa21..8d2ef21f2 100644 --- a/Projects/Server/Items/Item.cs +++ b/Projects/Server/Items/Item.cs @@ -344,8 +344,7 @@ public partial class Item : IHued, IComparable, ISpawnable, IObjectPropert { _lastMoved = value; - // A move at or past the reset stamp supersedes it; drop the stamp so the - // CompactInfo it lives in can collapse instead of being held forever. + // A move at or past the reset stamp supersedes it; drop it so the CompactInfo can collapse. var info = LookupCompactInfo(); if (info != null && info.m_DecayReset != default && info.m_DecayReset <= value) @@ -1350,8 +1349,7 @@ public partial class Item : IHued, IComparable, ISpawnable, IObjectPropert if (m_Parent == null) { - // A map change is a move; this also enrolls/withdraws the item for decay, - // since nothing else tracks eligibility gained through a raw Map change. + // A map change is a move; nothing else updates decay registration for a raw Map change. SetLastMoved(); } @@ -2386,9 +2384,9 @@ public partial class Item : IHued, IComparable, ISpawnable, IObjectPropert } /// - /// Restarts the decay countdown without pretending the item moved: call when decay eligibility - /// changes state (Movable/Visible/Spawner) or a region refuses a decay. Otherwise a stale - /// makes the scheduler delete the item on its next tick. + /// Restarts the decay countdown without touching : call when decay + /// eligibility changes state (Movable/Visible/Spawner) or a region refuses a decay, where a + /// stale would otherwise decay the item on the next tick. /// Stamps only when that extends the current deadline, then /// updates the scheduler registration. /// @@ -2782,8 +2780,8 @@ public partial class Item : IHued, IComparable, ISpawnable, IObjectPropert { var reset = Core.Now - TimeSpan.FromMinutes(reader.ReadEncodedInt()); - // Minute rounding can land the stamp on LastMoved; only keep it while - // it still extends the deadline, so CompactInfo is not held for nothing. + // Minute rounding can land the stamp on LastMoved; keep it only while it + // extends the deadline. if (reset > LastMoved) { DecayResetTime = reset; diff --git a/Projects/Server/Mobiles/Mobile.cs b/Projects/Server/Mobiles/Mobile.cs index 236f34c1a..0e88449e3 100644 --- a/Projects/Server/Mobiles/Mobile.cs +++ b/Projects/Server/Mobiles/Mobile.cs @@ -5251,9 +5251,8 @@ public partial class Mobile : IHued, IComparable, ISpawnable, IObjectPro item.PlayerConstructed = oldItem.PlayerConstructed; item.Amount = oldAmount - amount; - // A parented remainder gets its map from AddItem below (parent first, then map), which - // keeps the split off the decay scheduler; a ground remainder is placed - and enrolled - - // by the Map setter here. + // A parented remainder gets its map from AddItem (parent first, then map), keeping the + // split off the decay scheduler; a ground remainder is placed and enrolled here. if (oldItem.Parent == null) { item.Map = oldItem.Map;