PropSnapShot CapturePropSnapShot() { PropSnapShot s = new PropSnapShot(); int maidNumber = 0; Maid maid = GameMain.Instance.CharacterMgr.GetMaid(maidNumber); if (maid == null) { return(s); } foreach (MPN mpn in Enum.GetValues(typeof(MPN))) { try { MaidProp maidProp = maid.GetProp(mpn); if (maidProp != null) { s[mpn] = maidProp; } } catch (Exception) { } } MaidParts maidParts = maid.Parts; MaidParts.PartsColor[] newMaidParts = null; using (MemoryStream ms = new MemoryStream()) { BinaryWriter bw = new BinaryWriter(ms); maidParts.Serialize(bw); bw.Flush(); ms.Position = 0; using (BinaryReader br = new BinaryReader(ms)) { newMaidParts = MaidParts.DeserializePre(br); } } for (int i = 0; i < (int)MaidParts.PARTS_COLOR.MAX; i++) { MaidParts.PARTS_COLOR col = (MaidParts.PARTS_COLOR)i; s.SetColor(col, newMaidParts[i]); } return(s); }