public static Object DeserializeSlime(byte[] bytes) { SerializeSlimeData data = new SerializeSlimeData(); //SATK byte[] mySATKByt = new byte[4]; Array.Copy(bytes, 0, mySATKByt, 0, mySATKByt.Length); if (BitConverter.IsLittleEndian) { Array.Reverse(mySATKByt); } data.myPSlime.setAtk(BitConverter.ToInt32(mySATKByt, 0)); //SDEF byte[] mySDEFByt = new byte[4]; Array.Copy(bytes, 4, mySDEFByt, 0, mySDEFByt.Length); if (BitConverter.IsLittleEndian) { Array.Reverse(mySDEFByt); } data.myPSlime.setDef(BitConverter.ToInt32(mySDEFByt, 0)); //SSPD byte[] mySSPDByt = new byte[4]; Array.Copy(bytes, 8, mySSPDByt, 0, mySSPDByt.Length); if (BitConverter.IsLittleEndian) { Array.Reverse(mySSPDByt); } data.myPSlime.setSpd(BitConverter.ToInt32(mySSPDByt, 0)); //SOELEM byte[] mySOELEMByt = new byte[4]; Array.Copy(bytes, 12, mySOELEMByt, 0, mySOELEMByt.Length); if (BitConverter.IsLittleEndian) { Array.Reverse(mySOELEMByt); } data.myPSlime.setElement(BitConverter.ToInt32(mySOELEMByt, 0)); //PName byte[] myNameBytes = new byte[bytes.Length - 16]; if (myNameBytes.Length > 0) { Array.Copy(bytes, 16, myNameBytes, 0, myNameBytes.Length); if (BitConverter.IsLittleEndian) { Array.Reverse(myNameBytes); } data.myPSlime.setNme(Encoding.UTF8.GetString(myNameBytes)); } else { data.myPSlime.setNme(string.Empty); } return(data); }
public static byte[] SerializeSlime(Object slimeobj) { SerializeSlimeData data = (SerializeSlimeData)slimeobj; //SlimeName byte[] SNameByte = Encoding.ASCII.GetBytes(data.myPSlime.getNme()); if (BitConverter.IsLittleEndian) { Array.Reverse(SNameByte); } //SlimeAttack byte[] SAtkByte = BitConverter.GetBytes(data.myPSlime.getAtk()); if (BitConverter.IsLittleEndian) { Array.Reverse(SAtkByte); } //SlimeDefense byte[] SDefByte = BitConverter.GetBytes(data.myPSlime.getDef()); if (BitConverter.IsLittleEndian) { Array.Reverse(SDefByte); } //SlimeSpeed byte[] SSpdByte = BitConverter.GetBytes(data.myPSlime.getSpd()); if (BitConverter.IsLittleEndian) { Array.Reverse(SSpdByte); } //SlimeElement //own byte[] SOElemByte = BitConverter.GetBytes(data.myPSlime.getElement().OwnElement); if (BitConverter.IsLittleEndian) { Array.Reverse(SOElemByte); } return(JoinBytes(SAtkByte, SDefByte, SSpdByte, SOElemByte, SNameByte)); }