Exemplo n.º 1
0
        /** <summary> Saves the object data to the specified file path. </summary> */
        public static ObjectDataHeader FromFile(string path)
        {
            ObjectDataHeader obj    = new ObjectDataHeader();
            BinaryReader     reader = new BinaryReader(new FileStream(path, FileMode.Open, FileAccess.Read));

            obj.Read(reader);
            return(obj);
        }
Exemplo n.º 2
0
 /** <summary> Constructs the base object data. </summary> */
 internal ObjectData(ObjectDataHeader objectHeader, ChunkHeader chunkHeader)
 {
     this.objectHeader   = objectHeader;
     this.chunkHeader    = chunkHeader;
     this.stringTable    = new StringTable();
     this.groupInfo      = new GroupInfo();
     this.imageDirectory = new ImageDirectory();
     this.graphicsData   = new GraphicsData(this.imageDirectory);
 }
Exemplo n.º 3
0
        /** <summary> Returns an object loaded from the specified stream. </summary> */
        public static ObjectData FromStream(Stream stream, bool quickLoad = false)
        {
            ObjectData       obj          = null;
            ObjectDataHeader objectHeader = new ObjectDataHeader();
            ChunkHeader      chunkHeader  = new ChunkHeader();

            try {
                BinaryReader reader = new BinaryReader(stream, Encoding.Unicode);
                objectHeader.Read(reader);

                byte[] data = null;
                if ((ObjectTypes)(objectHeader.Flags & 0xF) != ObjectTypes.ScenarioText)
                {
                    data = ObjectData.ReadChunk(reader, chunkHeader);
                    reader.Close();
                    reader = new BinaryReader(new MemoryStream(data));
                }

                switch ((ObjectTypes)(objectHeader.Flags & 0xF))
                {
                case ObjectTypes.Attraction: obj = new Attraction(objectHeader, chunkHeader); break;

                case ObjectTypes.SmallScenery: obj = new SmallScenery(objectHeader, chunkHeader); break;

                case ObjectTypes.LargeScenery: obj = new LargeScenery(objectHeader, chunkHeader); break;

                case ObjectTypes.Wall: obj = new Wall(objectHeader, chunkHeader); break;

                case ObjectTypes.PathBanner: obj = new PathBanner(objectHeader, chunkHeader); break;

                case ObjectTypes.Path: obj = new Pathing(objectHeader, chunkHeader); break;

                case ObjectTypes.PathAddition: obj = new PathAddition(objectHeader, chunkHeader); break;

                case ObjectTypes.SceneryGroup: obj = new SceneryGroup(objectHeader, chunkHeader); break;

                case ObjectTypes.ParkEntrance: obj = new ParkEntrance(objectHeader, chunkHeader); break;

                case ObjectTypes.Water: obj = new Water(objectHeader, chunkHeader); break;

                case ObjectTypes.ScenarioText: /*obj = new ScenarioText(objectHeader, chunkHeader);*/ break;

                default: objectHeader.Flags = (uint)ObjectTypes.None; break;         // Set as invalid
                }
                if (obj != null)
                {
                    obj.Read(reader, quickLoad);
                }
                reader.Close();
            }
            catch (System.Exception) {
                objectHeader.Flags = (uint)ObjectTypes.None;
                obj = new ObjectData(objectHeader, chunkHeader);
            }

            return(obj);
        }
Exemplo n.º 4
0
        //========= CONSTRUCTORS =========
        #region Constructors

        /** <summary> Constructs the default track design. </summary> */
        public TrackDesign()
        {
            this.TrackType              = TrackTypes.None;
            this.Unknown0x01            = 0;
            this.SpecialTrackFlags      = 0;
            this.OperatingMode          = OperatingModes.NormalMode;
            this.VehicleColorScheme     = 0;
            this.VehicleColorSpecifiers = new RemapColors[64];

            this.Unknown0x48 = 0;

            this.EntranceType              = EntranceTypes.Normal;
            this.AirTime                   = 0;
            this.DepartureControlFlags     = DepartureControlFlags.UseMaximumTime | DepartureControlFlags.FullLoad;
            this.NumberOfTrains            = 0;
            this.CarsPerTrain              = 0;
            this.MinimumWaitTime           = 10;
            this.MaximumWaitTime           = 60;
            this.PoweredSpeedLapsMaxPeople = 0;
            this.MaximumSpeed              = 0;
            this.AverageSpeed              = 0;
            this.RideLength                = 0;
            this.PositiveGForce            = 0;
            this.NegativeGForce            = 0;
            this.LateralGForce             = 0;
            this.NumberOfInversions        = 0;
            this.NumberOfDrops             = 0;
            this.HighestDrop               = 0;
            this.Excitement                = 0;
            this.Intensity                 = 0;
            this.Nausea = 0;

            this.Unknown0x5E = 0;
            this.Unknown0x5F = 0;

            this.TrackSpineColors   = new RemapColors[4];
            this.TrackRailColors    = new RemapColors[4];
            this.TrackSupportColors = new RemapColors[4];

            this.Unknown0x6C = 0;
            this.Unknown0x6D = 0;
            this.Unknown0x6E = 0;

            this.SixFlagsRide = 0;

            this.ObjectHeader = new ObjectDataHeader();

            this.RideMapWidth  = 0;
            this.RideMapHeight = 0;

            this.VehicleAdditionalColors = new RemapColors[32];
            this.CircuitsChainLiftSpeed  = 0;

            this.MazeTiles   = new List <MazeTile>();
            this.TrackPieces = new List <TrackPiece>();
        }