fix(core): Fixes several serialization issues (#355)
- [X] Fixes an issue where a buffer smaller than 8 bytes would not double with enough space in some cases. - [X] Fixes an issue with dupe copying the savebuffer reference (ugh). - [X] Streamlines the IGenericWriter API to use better generics. - [X] Streamlines the IGenericReader API to use better generics. - [X] Forces `tidying` of a List/HashSet to be done externally since Writers/Readers should not have side effects. - [X] Fixes an issue where Tidying a list didn't TrimExcess, causing memory leaks. - [X] Reverted the meaning of `World.Running` to specifically refer to any world state post world loading. - NOTE: Do not use this if you want to block on world saves. Instead use checks against `WorldState.Saving` states. - [X] Fixes an issue with serializing negative DateTime deltas. - [X] Fixes a potential issue with serializing non-UTC DateTime. Bumps release version
This commit is contained in:
parent
0888ab9b86
commit
4ddb3de026
162 changed files with 652 additions and 1045 deletions
|
|
@ -201,7 +201,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -292,7 +292,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as AnkhWest;
|
||||
m_Item = reader.ReadEntity<AnkhWest>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -388,7 +388,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
[TypeAlias("Server.Items.AnkhEast+InternalItem")]
|
||||
|
|
@ -481,7 +481,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as AnkhNorth;
|
||||
m_Item = reader.ReadEntity<AnkhNorth>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -210,7 +210,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as DecorativeSwordNorth;
|
||||
m_Item = reader.ReadEntity<DecorativeSwordNorth>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -269,7 +269,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -325,7 +325,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as DecorativeSwordWest;
|
||||
m_Item = reader.ReadEntity<DecorativeSwordWest>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -384,7 +384,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -440,7 +440,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as DecorativeDAxeNorth;
|
||||
m_Item = reader.ReadEntity<DecorativeDAxeNorth>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -499,7 +499,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -555,7 +555,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as DecorativeDAxeWest;
|
||||
m_Item = reader.ReadEntity<DecorativeDAxeWest>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -110,7 +110,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry1N;
|
||||
m_Item = reader.ReadEntity<Tapestry1N>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -169,7 +169,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -225,7 +225,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry2N;
|
||||
m_Item = reader.ReadEntity<Tapestry2N>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -284,7 +284,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -340,7 +340,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry2W;
|
||||
m_Item = reader.ReadEntity<Tapestry2W>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -399,7 +399,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -455,7 +455,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry3N;
|
||||
m_Item = reader.ReadEntity<Tapestry3N>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -514,7 +514,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -570,7 +570,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry3W;
|
||||
m_Item = reader.ReadEntity<Tapestry3W>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -629,7 +629,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -685,7 +685,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry4N;
|
||||
m_Item = reader.ReadEntity<Tapestry4N>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -744,7 +744,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -800,7 +800,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry4W;
|
||||
m_Item = reader.ReadEntity<Tapestry4W>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -859,7 +859,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -915,7 +915,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry5N;
|
||||
m_Item = reader.ReadEntity<Tapestry5N>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -974,7 +974,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -1030,7 +1030,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry5W;
|
||||
m_Item = reader.ReadEntity<Tapestry5W>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1089,7 +1089,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -1145,7 +1145,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry6N;
|
||||
m_Item = reader.ReadEntity<Tapestry6N>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1204,7 +1204,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as InternalItem;
|
||||
m_Item = reader.ReadEntity<InternalItem>();
|
||||
}
|
||||
|
||||
private class InternalItem : Item
|
||||
|
|
@ -1260,7 +1260,7 @@ namespace Server.Items
|
|||
|
||||
var version = reader.ReadInt();
|
||||
|
||||
m_Item = reader.ReadItem() as Tapestry6W;
|
||||
m_Item = reader.ReadEntity<Tapestry6W>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -543,7 +543,7 @@ namespace Server.Items
|
|||
OpenedSound = reader.ReadInt();
|
||||
ClosedSound = reader.ReadInt();
|
||||
Offset = reader.ReadPoint3D();
|
||||
m_Link = reader.ReadItem() as BaseDoor;
|
||||
m_Link = reader.ReadEntity<BaseDoor>();
|
||||
|
||||
m_Timer = new InternalTimer(this);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue