public CLevelMetaObject Clone(CLevelMetaObject MetaObject, int Id) { CLevelMetaObject meta = (CLevelMetaObject)MetaObject.MemberwiseClone(); meta.mGOB = null; meta.mID = Id; return(meta); }
public override void Deserialize(BinaryReader R) { base.Deserialize(R); int version = R.ReadInt32(); if (version == 4 || version == 5) { mBackgroundColor.r = R.ReadSingle(); mBackgroundColor.g = R.ReadSingle(); mBackgroundColor.b = R.ReadSingle(); for (int iX = 0; iX < 100; ++iX) { for (int iY = 0; iY < 100; ++iY) { Color32 tileCol; tileCol.r = R.ReadByte(); tileCol.g = R.ReadByte(); tileCol.b = R.ReadByte(); tileCol.a = 255; mTileColors[iX, iY] = tileCol; mWallX[iX, iY] = R.ReadInt32(); mWallZ[iX, iY] = R.ReadInt32(); } } } if (version == 5) { mObjects.Clear(); int metaCount = R.ReadInt32(); for (int i = 0; i < metaCount; ++i) { CLevelMetaObject meta = new CLevelMetaObject(); mObjects.Add(meta); meta.mID = R.ReadInt32(); meta.mType = (CLevelMetaObject.EType)R.ReadInt32(); meta.mSubtype = R.ReadInt32(); meta.mOwner = R.ReadInt32(); meta.mIdentifier = R.ReadString(); meta.mData = R.ReadInt32(); meta.mPositionA = CUtility.ReadVec3(R); meta.mPositionB = CUtility.ReadVec3(R); meta.mRotation = R.ReadInt32(); meta.mOrientation = CUtility.ReadVec3(R); meta.mExtraIntData = R.ReadInt32(); meta.mExtraFloatData = R.ReadSingle(); meta.mExtraBoolData = R.ReadBoolean(); meta.mColor = CUtility.ReadColor(R); } } }
public CLevelMetaObject(CLevelMetaObject MetaObject, int Id) { mGOB = null; mID = Id; mType = MetaObject.mType; mSubtype = MetaObject.mSubtype; mOwner = MetaObject.mOwner; mIdentifier = MetaObject.mIdentifier; mData = MetaObject.mData; mPositionA = MetaObject.mPositionA; mPositionB = MetaObject.mPositionB; mRotation = MetaObject.mRotation; mOrientation = MetaObject.mOrientation; mExtraIntData = MetaObject.mExtraIntData; mExtraFloatData = MetaObject.mExtraFloatData; mExtraBoolData = MetaObject.mExtraBoolData; mColor = MetaObject.mColor; }
public override void Serialize(BinaryWriter W) { base.Serialize(W); W.Write(VERSION); W.Write(mBackgroundColor.r); W.Write(mBackgroundColor.g); W.Write(mBackgroundColor.b); for (int iX = 0; iX < 100; ++iX) { for (int iY = 0; iY < 100; ++iY) { W.Write(mTileColors[iX, iY].r); W.Write(mTileColors[iX, iY].g); W.Write(mTileColors[iX, iY].b); W.Write(mWallX[iX, iY]); W.Write(mWallZ[iX, iY]); } } W.Write(mObjects.Count); for (int i = 0; i < mObjects.Count; ++i) { CLevelMetaObject meta = mObjects[i]; W.Write(meta.mID); W.Write((int)meta.mType); W.Write(meta.mSubtype); W.Write(meta.mOwner); W.Write(meta.mIdentifier); W.Write(meta.mData); CUtility.WriteVec3(W, meta.mPositionA); CUtility.WriteVec3(W, meta.mPositionB); W.Write(meta.mRotation); CUtility.WriteVec3(W, meta.mOrientation); W.Write(meta.mExtraIntData); W.Write(meta.mExtraFloatData); W.Write(meta.mExtraBoolData); CUtility.WriteColor(W, meta.mColor); } }