Exemple #1
0
        public void LoadConfig(LoadingForm loadingForm)
        {
            int statusNum = 0;

            // Read configuration
            loadingForm.UpdateStatus("Loading main configuration", statusNum++);
            XmlConfigParser.OpenConfig(@"Config/Config.xml");
            loadingForm.UpdateStatus("Loading Miscellaneous Data", statusNum++);
            _miscData = XmlConfigParser.OpenWatchVarData(@"Config/MiscData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Object Data", statusNum++);
            _objectData = XmlConfigParser.OpenWatchVarData(@"Config/ObjectData.xml", "ObjectDataSchema.xsd", "objectOffset");
            loadingForm.UpdateStatus("Loading Object Associations", statusNum++);
            _objectAssoc = XmlConfigParser.OpenObjectAssoc(@"Config/ObjectAssociations.xml", _slotManagerGui);
            loadingForm.UpdateStatus("Loading Mario Data", statusNum++);
            _marioData = XmlConfigParser.OpenWatchVarData(@"Config/MarioData.xml", "MarioDataSchema.xsd", "marioOffset");
            loadingForm.UpdateStatus("Loading Camera Data", statusNum++);
            _cameraData = XmlConfigParser.OpenWatchVarData(@"Config/CameraData.xml", "CameraDataSchema.xsd");
            loadingForm.UpdateStatus("Loading HUD Data", statusNum++);
            _triangleData = XmlConfigParser.OpenWatchVarData(@"Config/TrianglesData.xml", "TrianglesDataSchema.xsd", "triangleOffset");
            loadingForm.UpdateStatus("Loading Triangles Data", statusNum++);
            _hudData = XmlConfigParser.OpenWatchVarData(@"Config/HudData.xml", "HudDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Map Associations", statusNum++);
            _mapAssoc = XmlConfigParser.OpenMapAssoc(@"Config/MapAssociations.xml");
            loadingForm.UpdateStatus("Loading Scripts", statusNum++);
            _scriptParser = XmlConfigParser.OpenScripts(@"Config/Scripts.xml");
            loadingForm.UpdateStatus("Loading Hacks", statusNum++);
            _romHacks = XmlConfigParser.OpenHacks(@"Config/Hacks.xml");

            loadingForm.UpdateStatus("Finishing", statusNum);
        }
Exemple #2
0
        public MapManager(ProcessStream stream, MapAssociations mapAssoc, ObjectAssociations objAssoc,
                          MapGui mapGui)
        {
            _stream  = stream;
            MapAssoc = mapAssoc;
            _mapGui  = mapGui;

            _marioMapObj = new MapObject(objAssoc.MarioMapImage, 1);
            _marioMapObj.UsesRotation = true;

            _holpMapObj = new MapObject(objAssoc.HolpImage, 2);

            _cameraMapObj = new MapObject(objAssoc.CameraMapImage, 1);
            _cameraMapObj.UsesRotation = true;
            _floorTriangleMapObj       = new TriangleMapObject(Color.FromArgb(200, Color.Yellow), 3);
        }
Exemple #3
0
        public MapManager(MapAssociations mapAssoc, MapGui mapGui)
        {
            MapAssoc = mapAssoc;
            _mapGui  = mapGui;

            _marioMapObj = new MapObject(Config.ObjectAssociations.MarioMapImage, 1);
            _marioMapObj.UsesRotation = true;

            _holpMapObj = new MapObject(Config.ObjectAssociations.HolpImage, 2);
            _intendedNextPositionMapObj = new MapObject(Config.ObjectAssociations.IntendedNextPositionImage, 2);
            _intendedNextPositionMapObj.UsesRotation = true;

            _cameraMapObj = new MapObject(Config.ObjectAssociations.CameraMapImage, 1);
            _cameraMapObj.UsesRotation = true;
            _floorTriangleMapObj       = new TriangleMapObject(Color.FromArgb(200, Color.Cyan), 3);
            _ceilingTriangleMapObj     = new TriangleMapObject(Color.FromArgb(200, Color.Red), 2);
        }
Exemple #4
0
        public void LoadConfig(LoadingForm loadingForm)
        {
            int statusNum = 0;

            // Read configuration
            loadingForm.UpdateStatus("Loading main configuration", statusNum++);
            XmlConfigParser.OpenConfig(@"Config/Config.xml");
            loadingForm.UpdateStatus("Loading Miscellaneous Data", statusNum++);
            _miscData = XmlConfigParser.OpenWatchVarData(@"Config/MiscData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Object Data", statusNum++);
            _objectData = XmlConfigParser.OpenWatchVarData(@"Config/ObjectData.xml", "ObjectDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Object Associations", statusNum++);
            Config.ObjectAssociations = XmlConfigParser.OpenObjectAssoc(@"Config/ObjectAssociations.xml", _slotManagerGui);
            loadingForm.UpdateStatus("Loading Mario Data", statusNum++);
            _marioData = XmlConfigParser.OpenWatchVarData(@"Config/MarioData.xml", "MarioDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Camera Data", statusNum++);
            _cameraData = XmlConfigParser.OpenWatchVarData(@"Config/CameraData.xml", "CameraDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Actions Data", statusNum++);
            _actionsData = XmlConfigParser.OpenWatchVarData(@"Config/ActionsData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Water Data", statusNum++);
            _waterData = XmlConfigParser.OpenWatchVarData(@"Config/WaterData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Input Data", statusNum++);
            _inputData = XmlConfigParser.OpenWatchVarData(@"Config/InputData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Input Image Associations", statusNum++);
            XmlConfigParser.OpenInputImageAssoc(@"Config/InputImageAssociations.xml", _inputImageGui);
            loadingForm.UpdateStatus("Loading File Data", statusNum++);
            _fileData = XmlConfigParser.OpenWatchVarData(@"Config/FileData.xml", "FileDataSchema.xsd");
            loadingForm.UpdateStatus("Loading File Image Associations", statusNum++);
            XmlConfigParser.OpenFileImageAssoc(@"Config/FileImageAssociations.xml", _fileImageGui);
            loadingForm.UpdateStatus("Loading Quarter Frame Data", statusNum++);
            _quarterFrameData = XmlConfigParser.OpenWatchVarData(@"Config/QuarterFrameData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Camera Hack Data", statusNum++);
            _camHackData = XmlConfigParser.OpenWatchVarData(@"Config/CamHackData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Triangles Data", statusNum++);
            _triangleData = XmlConfigParser.OpenWatchVarData(@"Config/TrianglesData.xml", "TrianglesDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Debug Data", statusNum++);
            _debugData = XmlConfigParser.OpenWatchVarData(@"Config/DebugData.xml", "MiscDataSchema.xsd");
            loadingForm.UpdateStatus("Loading HUD Data", statusNum++);
            _hudData = XmlConfigParser.OpenWatchVarData(@"Config/HudData.xml", "HudDataSchema.xsd");
            loadingForm.UpdateStatus("Loading Map Associations", statusNum++);
            _mapAssoc = XmlConfigParser.OpenMapAssoc(@"Config/MapAssociations.xml");
            loadingForm.UpdateStatus("Loading Scripts", statusNum++);
            _scriptParser = XmlConfigParser.OpenScripts(@"Config/Scripts.xml");
            loadingForm.UpdateStatus("Loading Hacks", statusNum++);
            var hacksConfig = XmlConfigParser.OpenHacks(@"Config/Hacks.xml");

            Config.Hacks = hacksConfig.Item1;
            _romHacks    = hacksConfig.Item2;
            loadingForm.UpdateStatus("Loading Mario Actions", statusNum++);
            Config.MarioActions            = XmlConfigParser.OpenActionTable(@"Config/MarioActions.xml");
            Config.MarioAnimations         = XmlConfigParser.OpenAnimationTable(@"Config/MarioAnimations.xml");
            Config.PendulumSwings          = XmlConfigParser.OpenPendulumSwingTable(@"Config/PendulumSwings.xml");
            Config.RacingPenguinWaypoints  = XmlConfigParser.OpenWaypointTable(@"Config/RacingPenguinWaypoints.xml");
            Config.KoopaTheQuick1Waypoints = XmlConfigParser.OpenWaypointTable(@"Config/KoopaTheQuick1Waypoints.xml");
            Config.KoopaTheQuick2Waypoints = XmlConfigParser.OpenWaypointTable(@"Config/KoopaTheQuick2Waypoints.xml");
            Config.Missions   = XmlConfigParser.OpenMissionTable(@"Config/Missions.xml");
            Config.CourseData = XmlConfigParser.OpenCourseDataTable(@"Config/CourseData.xml");
            Config.FlyGuyData = new FlyGuyDataTable();

            loadingForm.UpdateStatus("Finishing", statusNum);
        }
Exemple #5
0
        public static MapAssociations OpenMapAssoc(string path)
        {
            var assoc    = new MapAssociations();
            var assembly = Assembly.GetExecutingAssembly();

            // Create schema set
            var schemaSet = new XmlSchemaSet()
            {
                XmlResolver = new ResourceXmlResolver()
            };

            schemaSet.Add("http://tempuri.org/ReusableTypes.xsd", "ReusableTypes.xsd");
            schemaSet.Add("http://tempuri.org/MapAssociationsSchema.xsd", "MapAssociationsSchema.xsd");
            schemaSet.Compile();

            // Load and validate document
            var doc = XDocument.Load(path);

            doc.Validate(schemaSet, Validation);

            foreach (XElement element in doc.Root.Elements())
            {
                switch (element.Name.ToString())
                {
                case "Config":
                    foreach (XElement subElement in element.Elements())
                    {
                        switch (subElement.Name.ToString())
                        {
                        case "ImageDirectory":
                            assoc.FolderPath = subElement.Value;
                            break;

                        case "DefaultImage":
                            var defaultMap = new Map()
                            {
                                ImagePath = subElement.Value
                            };
                            assoc.DefaultMap = defaultMap;
                            break;

                        case "DefaultCoordinates":
                            float dx1          = float.Parse(subElement.Attribute(XName.Get("x1")).Value);
                            float dx2          = float.Parse(subElement.Attribute(XName.Get("x2")).Value);
                            float dz1          = float.Parse(subElement.Attribute(XName.Get("z1")).Value);
                            float dz2          = float.Parse(subElement.Attribute(XName.Get("z2")).Value);
                            var   dCoordinates = new RectangleF(dx1, dz1, dx2 - dx1, dz2 - dz1);
                            assoc.DefaultMap.Coordinates = dCoordinates;
                            break;
                        }
                    }
                    break;

                case "Map":
                    byte   level        = byte.Parse(element.Attribute(XName.Get("level")).Value);
                    byte   area         = byte.Parse(element.Attribute(XName.Get("area")).Value);
                    ushort?loadingPoint = element.Attribute(XName.Get("loadingPoint")) != null ?
                                          (ushort?)ushort.Parse(element.Attribute(XName.Get("loadingPoint")).Value) : null;
                    ushort?missionLayout = element.Attribute(XName.Get("missionLayout")) != null ?
                                           (ushort?)ushort.Parse(element.Attribute(XName.Get("missionLayout")).Value) : null;
                    string imagePath   = element.Element(XName.Get("Image")).Attribute(XName.Get("path")).Value;
                    string bgImagePath = (element.Element(XName.Get("BackgroundImage")) != null) ?
                                         element.Element(XName.Get("BackgroundImage")).Attribute(XName.Get("path")).Value : null;

                    var   coordinatesElement = element.Element(XName.Get("Coordinates"));
                    float x1 = float.Parse(coordinatesElement.Attribute(XName.Get("x1")).Value);
                    float x2 = float.Parse(coordinatesElement.Attribute(XName.Get("x2")).Value);
                    float z1 = float.Parse(coordinatesElement.Attribute(XName.Get("z1")).Value);
                    float z2 = float.Parse(coordinatesElement.Attribute(XName.Get("z2")).Value);
                    float y  = (coordinatesElement.Attribute(XName.Get("y")) != null) ?
                               float.Parse(coordinatesElement.Attribute(XName.Get("y")).Value) : float.MinValue;

                    string name    = element.Attribute(XName.Get("name")).Value;
                    string subName = (element.Attribute(XName.Get("subName")) != null) ?
                                     element.Attribute(XName.Get("subName")).Value : null;

                    var coordinates = new RectangleF(x1, z1, x2 - x1, z2 - z1);

                    Map map = new Map()
                    {
                        Level       = level, Area = area, LoadingPoint = loadingPoint, MissionLayout = missionLayout,
                        Coordinates = coordinates, ImagePath = imagePath, Y = y, Name = name, SubName = subName, BackgroundPath = bgImagePath
                    };

                    assoc.AddAssociation(map);
                    break;
                }
            }

            return(assoc);
        }