RTSEngine.Data.Team.RTSBuildingData.Deserialize C# (CSharp) Method

Deserialize() public static method

public static Deserialize ( BinaryReader s, GameState state, int index ) : RTSBuildingData
s System.IO.BinaryReader
state GameState
index int
return RTSBuildingData
        public static RTSBuildingData Deserialize(BinaryReader s, GameState state, int index)
        {
            RTSBuildingData data = new RTSBuildingData(index);
            data.FriendlyName = s.ReadString();
            data.InfoFile = s.ReadString();
            data.Health = s.ReadInt32();
            data.CapitalCost = s.ReadInt32();
            data.PopCapChange = s.ReadInt32();
            data.MaxCount = s.ReadInt32();
            data.IsResource = s.ReadBoolean();
            data.Impact = s.ReadInt32();
            data.BuildAmount = s.ReadInt32();
            data.Depositable = s.ReadBoolean();
            data.SightRadius = s.ReadInt32();
            data.GridSize = s.ReadPoint();
            CollisionType ct = (CollisionType)s.ReadInt32();
            Vector2 cc = s.ReadVector2();
            bool cs = s.ReadBoolean();
            switch(ct) {
                case CollisionType.Circle:
                    float cr = s.ReadSingle();
                    data.ICollidableShape = new CollisionCircle(cr, cc, cs);
                    break;
                case CollisionType.Rectangle:
                    float cw = s.ReadSingle();
                    float cd = s.ReadSingle();
                    data.ICollidableShape = new CollisionRect(cw, cd, cc, cs);
                    break;
                default:
                    throw new Exception("Nonexistent Collision Type");
            }
            data.BBox.Min = s.ReadVector3();
            data.BBox.Max = s.ReadVector3();
            data.DefaultActionController = state.Scripts[s.ReadString()];
            return data;
        }

Usage Example

Example #1
0
        public static RTSRace Deserialize(BinaryReader s, GameState state)
        {
            RTSRace race = new RTSRace();

            race.FriendlyName = s.ReadString();
            int c = s.ReadInt32();

            for (int i = 0; i < c; i++)
            {
                int ui = s.ReadInt32();
                race.Units[ui] = RTSUnitData.Deserialize(s, state, ui);
            }
            race.UpdateActiveUnits();
            c = s.ReadInt32();
            for (int i = 0; i < c; i++)
            {
                int bi = s.ReadInt32();
                race.Buildings[bi] = RTSBuildingData.Deserialize(s, state, bi);
            }
            race.UpdateActiveBuildings();
            race.SCAction    = state.Scripts[s.ReadString()];
            race.SCMovement  = state.Scripts[s.ReadString()];
            race.SCTargeting = state.Scripts[s.ReadString()];
            return(race);
        }