Exemplo n.º 1
0
 public M64File(M64Gui gui)
 {
     _gui   = gui;
     Header = new M64Header(this, gui);
     Inputs = new BindingList <M64InputFrame>();
     Stats  = new M64Stats(this);
 }
Exemplo n.º 2
0
        public M64Manager(M64Gui gui)
        {
            _gui = gui;

            _gui.ButtonSave.Click         += (sender, e) => Save();
            _gui.ButtonSaveAs.Click       += (sender, e) => SaveAs();
            _gui.ButtonResetChanges.Click += (sender, e) => _m64File.ResetChanges();
            _gui.ButtonOpen.Click         += (sender, e) => Open();
            _gui.ButtonClose.Click        += (sender, e) => Close();

            _gui.ButtonGoto.Click += (sender, e) => Goto();
            _gui.TextBoxGoto.AddEnterAction(() => Goto());

            _gui.ButtonSetUsRom.Click += (sender, e) => SetHeaderRomVersion(RomVersion.US);
            _gui.ButtonSetJpRom.Click += (sender, e) => SetHeaderRomVersion(RomVersion.JP);
            _gui.ButtonCopyRom.Click  += (sender, e) => CopyHeaderRomVersion();
            _gui.ButtonPasteRom.Click += (sender, e) => PasteHeaderRomVersion();

            _gui.DataGridViewInputs.DataError        += (sender, e) => _gui.DataGridViewInputs.CancelEdit();
            _gui.DataGridViewInputs.SelectionChanged += (sender, e) => UpdateSelectionTextboxes();
            _gui.DataGridViewInputs.CellContentClick += (sender, e) =>
            {
                if (e.ColumnIndex >= 4)
                {
                    _gui.DataGridViewInputs.ClearSelection();
                    _gui.DataGridViewInputs.Parent.Focus();
                }
            };

            _m64File = new M64File(_gui);
            _gui.DataGridViewInputs.DataSource = _m64File.Inputs;
            UpdateTableSettings();
            _gui.PropertyGridHeader.SelectedObject = _m64File.Header;
            _gui.PropertyGridHeader.Refresh();
            _gui.PropertyGridStats.SelectedObject = _m64File.Stats;
            _gui.PropertyGridStats.Refresh();
            _gui.PropertyGridStats.ContextMenuStrip      = _m64File.Stats.CreateContextMenuStrip();
            _gui.TabControlDetails.SelectedIndexChanged += TabControlDetails_SelectedIndexChanged;

            _gui.ButtonTurnOffRowRange.Click   += (sender, e) => SetValuesOfSelection(CellSelectionType.RowRange, false);
            _gui.ButtonTurnOffInputRange.Click += (sender, e) => SetValuesOfSelection(CellSelectionType.PartialRowRange, false);
            _gui.ButtonTurnOffCells.Click      += (sender, e) => SetValuesOfSelection(CellSelectionType.Cells, false);
            _gui.ButtonTurnOnInputRange.Click  += (sender, e) => SetValuesOfSelection(CellSelectionType.PartialRowRange, true);
            _gui.ButtonTurnOnCells.Click       += (sender, e) => SetValuesOfSelection(CellSelectionType.Cells, true);

            _gui.ButtonDeleteRowRange.Click += (sender, e) => DeleteRows();

            _gui.ButtonCopyInputRange.Click += (sender, e) => CopyData(false);
            _gui.ButtonCopyRowRange.Click   += (sender, e) => CopyData(true);
            _gui.ButtonPasteInsert.Click    += (sender, e) => PasteData(true);
            _gui.ButtonPasteOverwrite.Click += (sender, e) => PasteData(false);

            _gui.ListBoxCopied.Items.Add(M64CopiedData.OneEmptyFrame);
            _gui.ListBoxCopied.SelectedItem = M64CopiedData.OneEmptyFrame;
            _gui.ListBoxCopied.KeyDown     += (sender, e) => ListBoxCopied_KeyDown();

            _gui.ComboBoxFrameInputRelation.DataSource   = Enum.GetValues(typeof(FrameInputRelationType));
            _gui.ComboBoxFrameInputRelation.SelectedItem = M64Config.FrameInputRelation;

            _gui.ButtonQuickDuplicationDuplicate.Click += (sender, e) => PerformQuickDuplication();
            _gui.ButtonAddPauseBufferFrames.Click      += (sender, e) => AddPauseBufferFrames();

            _gui.ProgressBar.Visible      = false;
            _gui.LabelProgressBar.Visible = false;
        }
Exemplo n.º 3
0
        public M64Manager(M64Gui gui)
        {
            _gui = gui;

            _gui.ButtonSave.Click         += (sender, e) => Save();
            _gui.ButtonSaveAs.Click       += (sender, e) => SaveAs();
            _gui.ButtonResetChanges.Click += (sender, e) => _m64File.ResetChanges();
            _gui.ButtonOpen.Click         += (sender, e) => Open();
            _gui.ButtonClose.Click        += (sender, e) => Close();

            _gui.ButtonGoto.Click += (sender, e) => Goto();
            _gui.TextBoxGoto.AddEnterAction(() => Goto());

            _gui.ButtonSetUsRom.Click += (sender, e) => SetHeaderRomVersion(RomVersion.US);
            _gui.ButtonSetJpRom.Click += (sender, e) => SetHeaderRomVersion(RomVersion.JP);
            _gui.ButtonCopyRom.Click  += (sender, e) => CopyHeaderRomVersion();
            _gui.ButtonPasteRom.Click += (sender, e) => PasteHeaderRomVersion();

            _gui.DataGridViewInputs.DataError        += (sender, e) => _gui.DataGridViewInputs.CancelEdit();
            _gui.DataGridViewInputs.SelectionChanged += (sender, e) => UpdateSelectionTextboxes();
            _gui.DataGridViewInputs.CellContentClick += (sender, e) =>
            {
                if (e.ColumnIndex >= 4)
                {
                    _gui.DataGridViewInputs.ClearSelection();
                    _gui.DataGridViewInputs.Parent.Focus();
                }
            };
            ControlUtilities.SetTableDoubleBuffered(_gui.DataGridViewInputs, true);
            _gui.DataGridViewInputs.DragOver += (object sender, DragEventArgs e) =>
            {
                e.Effect = DragDropEffects.Copy;
            };
            _gui.DataGridViewInputs.DragDrop += (object sender, DragEventArgs e) =>
            {
                string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop, false);
                if (filePaths.Length == 0)
                {
                    return;
                }
                string filePath = filePaths[0];
                string fileName = Path.GetFileName(filePath);
                Open(filePath, fileName);
            };

            _m64File = new M64File(_gui);
            _gui.DataGridViewInputs.DataSource = _m64File.Inputs;
            UpdateTableSettings();
            _gui.PropertyGridHeader.SelectedObject = _m64File.Header;
            _gui.PropertyGridHeader.Refresh();
            _gui.PropertyGridStats.SelectedObject = _m64File.Stats;
            _gui.PropertyGridStats.Refresh();
            _gui.PropertyGridStats.ContextMenuStrip      = _m64File.Stats.CreateContextMenuStrip();
            _gui.TabControlDetails.SelectedIndexChanged += TabControlDetails_SelectedIndexChanged;

            _gui.ButtonTurnOffRowRange.Click   += (sender, e) => SetValuesOfSelection(CellSelectionType.RowRange, false);
            _gui.ButtonTurnOffInputRange.Click += (sender, e) => SetValuesOfSelection(CellSelectionType.PartialRowRange, false);
            _gui.ButtonTurnOffCells.Click      += (sender, e) => SetValuesOfSelection(CellSelectionType.Cells, false);
            _gui.ButtonTurnOnInputRange.Click  += (sender, e) => SetValuesOfSelection(CellSelectionType.PartialRowRange, true);
            _gui.ButtonTurnOnCells.Click       += (sender, e) => SetValuesOfSelection(CellSelectionType.Cells, true);

            _gui.ButtonDeleteRowRange.Click += (sender, e) => DeleteRows();

            _gui.ButtonCopyInputRange.Click += (sender, e) => CopyData(false);
            _gui.ButtonCopyRowRange.Click   += (sender, e) => CopyData(true);
            _gui.ButtonPasteInsert.Click    += (sender, e) => PasteData(true);
            _gui.ButtonPasteOverwrite.Click += (sender, e) => PasteData(false);

            _gui.ListBoxCopied.Items.Add(M64CopiedData.OneEmptyFrame);
            _gui.ListBoxCopied.SelectedItem = M64CopiedData.OneEmptyFrame;
            _gui.ListBoxCopied.KeyDown     += (sender, e) => ListBoxCopied_KeyDown();

            _gui.ComboBoxFrameInputRelation.DataSource   = Enum.GetValues(typeof(FrameInputRelationType));
            _gui.ComboBoxFrameInputRelation.SelectedItem = M64Config.FrameInputRelation;

            _gui.ButtonQuickDuplicationDuplicate.Click += (sender, e) => PerformQuickDuplication();
            _gui.ButtonAddPauseBufferFrames.Click      += (sender, e) => AddPauseBufferFrames();
            _gui.ButtonCopyClipboardForJoystick.Click  += (sender, e) => CopyClipboardForJoystick(null);
            ControlUtilities.AddContextMenuStripFunctions(
                _gui.ButtonCopyClipboardForJoystick,
                new List <string>()
            {
                "Use X Only", "Use Y Only"
            },
                new List <Action>()
            {
                () => CopyClipboardForJoystick(true),
                () => CopyClipboardForJoystick(false),
            });

            _gui.ProgressBar.Visible      = false;
            _gui.LabelProgressBar.Visible = false;
        }
Exemplo n.º 4
0
        private void CreateManagers()
        {
            Config.MapGui = new MapGui()
            {
                GLControlMap2D             = glControlMap2D,
                GLControlMap3D             = glControlMap3D,
                flowLayoutPanelMapTrackers = flowLayoutPanelMapTrackers,

                checkBoxMapOptionsTrackMario         = checkBoxMapOptionsTrackMario,
                checkBoxMapOptionsTrackHolp          = checkBoxMapOptionsTrackHolp,
                checkBoxMapOptionsTrackCamera        = checkBoxMapOptionsTrackCamera,
                checkBoxMapOptionsTrackGhost         = checkBoxMapOptionsTrackGhost,
                checkBoxMapOptionsTrackSelf          = checkBoxMapOptionsTrackSelf,
                checkBoxMapOptionsTrackPoint         = checkBoxMapOptionsTrackPoint,
                checkBoxMapOptionsTrackFloorTri      = checkBoxMapOptionsTrackFloorTri,
                checkBoxMapOptionsTrackWallTri       = checkBoxMapOptionsTrackWallTri,
                checkBoxMapOptionsTrackCeilingTri    = checkBoxMapOptionsTrackCeilingTri,
                checkBoxMapOptionsTrackUnitGridlines = checkBoxMapOptionsTrackUnitGridlines,

                checkBoxMapOptionsEnable3D = checkBoxMapOptionsEnable3D,
                checkBoxMapOptionsDisableHitboxHackTris  = checkBoxMapOptionsDisableHitboxHackTris,
                checkBoxMapOptionsEnableOrthographicView = checkBoxMapOptionsEnableOrthographicView,
                checkBoxMapOptionsEnableCrossSection     = checkBoxMapOptionsEnableCrossSection,
                checkBoxMapOptionsEnablePuView           = checkBoxMapOptionsEnablePuView,
                checkBoxMapOptionsReverseDragging        = checkBoxMapOptionsReverseDragging,
                checkBoxMapOptionsScaleIconSizes         = checkBoxMapOptionsScaleIconSizes,

                labelMapOptionsGlobalIconSize    = labelMapOptionsGlobalIconSize,
                textBoxMapOptionsGlobalIconSize  = textBoxMapOptionsGlobalIconSize,
                trackBarMapOptionsGlobalIconSize = trackBarMapOptionsGlobalIconSize,

                buttonMapOptionsAddNewTracker    = buttonMapOptionsAddNewTracker,
                buttonMapOptionsClearAllTrackers = buttonMapOptionsClearAllTrackers,

                comboBoxMapOptionsLevel      = comboBoxMapOptionsLevel,
                comboBoxMapOptionsBackground = comboBoxMapOptionsBackground,

                groupBoxMapControllersScale  = groupBoxMapControllersScale,
                groupBoxMapControllersCenter = groupBoxMapControllersCenter,
                groupBoxMapControllersAngle  = groupBoxMapControllersAngle,

                radioButtonMapControllersScaleCourseDefault = radioButtonMapControllersScaleCourseDefault,
                radioButtonMapControllersScaleMaxCourseSize = radioButtonMapControllersScaleMaxCourseSize,
                radioButtonMapControllersScaleCustom        = radioButtonMapControllersScaleCustom,
                textBoxMapControllersScaleCustom            = textBoxMapControllersScaleCustom,

                textBoxMapControllersScaleChange  = textBoxMapControllersScaleChange,
                buttonMapControllersScaleMinus    = buttonMapControllersScaleMinus,
                buttonMapControllersScalePlus     = buttonMapControllersScalePlus,
                textBoxMapControllersScaleChange2 = textBoxMapControllersScaleChange2,
                buttonMapControllersScaleDivide   = buttonMapControllersScaleDivide,
                buttonMapControllersScaleTimes    = buttonMapControllersScaleTimes,

                radioButtonMapControllersCenterBestFit = radioButtonMapControllersCenterBestFit,
                radioButtonMapControllersCenterOrigin  = radioButtonMapControllersCenterOrigin,
                radioButtonMapControllersCenterMario   = radioButtonMapControllersCenterMario,
                radioButtonMapControllersCenterCustom  = radioButtonMapControllersCenterCustom,
                textBoxMapControllersCenterCustom      = textBoxMapControllersCenterCustom,

                checkBoxMapControllersCenterChangeByPixels = checkBoxMapControllersCenterChangeByPixels,
                checkBoxMapControllersCenterUseMarioDepth  = checkBoxMapControllersCenterUseMarioDepth,
                textBoxMapControllersCenterChange          = textBoxMapControllersCenterChange,
                buttonMapControllersCenterUp        = buttonMapControllersCenterUp,
                buttonMapControllersCenterUpRight   = buttonMapControllersCenterUpRight,
                buttonMapControllersCenterRight     = buttonMapControllersCenterRight,
                buttonMapControllersCenterDownRight = buttonMapControllersCenterDownRight,
                buttonMapControllersCenterDown      = buttonMapControllersCenterDown,
                buttonMapControllersCenterDownLeft  = buttonMapControllersCenterDownLeft,
                buttonMapControllersCenterLeft      = buttonMapControllersCenterLeft,
                buttonMapControllersCenterUpLeft    = buttonMapControllersCenterUpLeft,
                buttonMapControllersCenterIn        = buttonMapControllersCenterIn,
                buttonMapControllersCenterOut       = buttonMapControllersCenterOut,

                radioButtonMapControllersAngle0           = radioButtonMapControllersAngle0,
                radioButtonMapControllersAngle16384       = radioButtonMapControllersAngle16384,
                radioButtonMapControllersAngle32768       = radioButtonMapControllersAngle32768,
                radioButtonMapControllersAngle49152       = radioButtonMapControllersAngle49152,
                radioButtonMapControllersAngleMario       = radioButtonMapControllersAngleMario,
                radioButtonMapControllersAngleCamera      = radioButtonMapControllersAngleCamera,
                radioButtonMapControllersAngleCentripetal = radioButtonMapControllersAngleCentripetal,
                radioButtonMapControllersAngleCustom      = radioButtonMapControllersAngleCustom,
                textBoxMapControllersAngleCustom          = textBoxMapControllersAngleCustom,

                textBoxMapControllersAngleChange = textBoxMapControllersAngleChange,
                buttonMapControllersAngleCCW     = buttonMapControllersAngleCCW,
                buttonMapControllersAngleCW      = buttonMapControllersAngleCW,
                buttonMapControllersAngleUp      = buttonMapControllersAngleUp,
                buttonMapControllersAngleDown    = buttonMapControllersAngleDown,

                labelMapDataMapName             = labelMapDataMapName,
                labelMapDataMapSubName          = labelMapDataMapSubName,
                labelMapDataPuCoordinateValues  = labelMapDataPuCoordinateValues,
                labelMapDataQpuCoordinateValues = labelMapDataQpuCoordinateValues,
                labelMapDataIdValues            = labelMapDataIdValues,
                labelMapDataYNormValue          = labelMapDataYNormValue,

                watchVariablePanelMapVars = watchVariablePanelMapVars,

                groupBoxMapCameraPosition  = groupBoxMapCameraPosition,
                groupBoxMapFocusPosition   = groupBoxMapFocusPosition,
                groupBoxMapCameraSpherical = groupBoxMapCameraSpherical,
                groupBoxMapFocusSpherical  = groupBoxMapFocusSpherical,
                groupBoxMapCameraFocus     = groupBoxMapCameraFocus,

                textBoxMapFov  = textBoxMapFov,
                trackBarMapFov = trackBarMapFov,
            };


            M64Gui m64Gui = new M64Gui()
            {
                LabelFileName       = labelM64FileName,
                LabelNumInputsValue = labelM64NumInputsValue,

                ComboBoxFrameInputRelation = comboBoxM64FrameInputRelation,
                CheckBoxMaxOutViCount      = checkBoxMaxOutViCount,

                ButtonSave         = buttonM64Save,
                ButtonSaveAs       = buttonM64SaveAs,
                ButtonResetChanges = buttonM64ResetChanges,
                ButtonOpen         = buttonM64Open,
                ButtonClose        = buttonM64Close,
                ButtonGoto         = buttonM64Goto,
                TextBoxGoto        = textBoxM64Goto,

                DataGridViewInputs = dataGridViewM64Inputs,
                PropertyGridHeader = propertyGridM64Header,
                PropertyGridStats  = propertyGridM64Stats,

                TabControlDetails = tabControlM64Details,
                TabPageInputs     = tabPageM64Inputs,
                TabPageHeader     = tabPageM64Header,
                TabPageStats      = tabPageM64Stats,

                ProgressBar      = progressBarM64,
                LabelProgressBar = labelM64ProgressBar,

                ButtonSetUsRom = buttonM64SetUsRom,
                ButtonSetJpRom = buttonM64SetJpRom,
                ButtonCopyRom  = buttonM64CopyRom,
                ButtonPasteRom = buttonM64PasteRom,

                TextBoxOnValue = textBoxM64OnValue,

                TextBoxSelectionStartFrame = textBoxM64SelectionStartFrame,
                TextBoxSelectionEndFrame   = textBoxM64SelectionEndFrame,
                TextBoxSelectionInputs     = textBoxM64SelectionInputs,

                ButtonTurnOffRowRange   = buttonM64TurnOffRowRange,
                ButtonTurnOffInputRange = buttonM64TurnOffInputRange,
                ButtonTurnOffCells      = buttonM64TurnOffCells,
                ButtonDeleteRowRange    = buttonM64DeleteRowRange,
                ButtonTurnOnInputRange  = buttonM64TurnOnInputRange,
                ButtonTurnOnCells       = buttonM64TurnOnCells,
                ButtonCopyRowRange      = buttonM64CopyRowRange,
                ButtonCopyInputRange    = buttonM64CopyInputRange,

                ListBoxCopied            = listBoxM64Copied,
                ButtonPasteInsert        = buttonM64PasteInsert,
                ButtonPasteOverwrite     = buttonM64PasteOverwrite,
                TextBoxPasteMultiplicity = textBoxM64PasteMultiplicity,

                TextBoxQuickDuplication1stIterationStart = textBoxM64QuickDuplication1stIterationStart,
                TextBoxQuickDuplication2ndIterationStart = textBoxM64QuickDuplication2ndIterationStart,
                TextBoxQuickDuplicationTotalIterations   = textBoxM64QuickDuplicationTotalIterations,
                ButtonQuickDuplicationDuplicate          = buttonM64QuickDuplicationDuplicate,

                ButtonAddPauseBufferFrames = buttonM64AddPauseBufferFrames,
            };

            // Create managers
            Config.MapManager = new MapManager(@"Config/MapVars.xml");

            Config.ModelManager        = new ModelManager(tabPageModel);
            Config.ActionsManager      = new ActionsManager(@"Config/ActionsData.xml", watchVariablePanelActions, tabPageActions);
            Config.WaterManager        = new WaterManager(@"Config/WaterData.xml", watchVariablePanelWater);
            Config.SnowManager         = new SnowManager(@"Config/SnowData.xml", watchVariablePanelSnow, tabPageSnow);
            Config.InputManager        = new InputManager(@"Config/InputData.xml", tabPageInput, watchVariablePanelInput, _inputImageGuiList);
            Config.MarioManager        = new MarioManager(@"Config/MarioData.xml", tabPageMario, WatchVariablePanelMario);
            Config.HudManager          = new HudManager(@"Config/HudData.xml", tabPageHud, watchVariablePanelHud);
            Config.MiscManager         = new MiscManager(@"Config/MiscData.xml", watchVariablePanelMisc, tabPageMisc);
            Config.CameraManager       = new CameraManager(@"Config/CameraData.xml", tabPageCamera, watchVariablePanelCamera);
            Config.TriangleManager     = new TriangleManager(tabPageTriangles, @"Config/TrianglesData.xml", watchVariablePanelTriangles);
            Config.DebugManager        = new DebugManager(@"Config/DebugData.xml", tabPageDebug, watchVariablePanelDebug);
            Config.PuManager           = new PuManager(@"Config/PuData.xml", tabPagePu, watchVariablePanelPu);
            Config.TasManager          = new TasManager(@"Config/TasData.xml", tabPageTas, watchVariablePanelTas);
            Config.FileManager         = new FileManager(@"Config/FileData.xml", tabPageFile, watchVariablePanelFile, _fileImageGui);
            Config.MainSaveManager     = new MainSaveManager(@"Config/MainSaveData.xml", tabPageMainSave, watchVariablePanelMainSave);
            Config.AreaManager         = new AreaManager(tabPageArea, @"Config/AreaData.xml", watchVariablePanelArea);
            Config.QuarterFrameManager = new QuarterFrameManager(@"Config/QuarterFrameData.xml", watchVariablePanelQuarterFrame);
            Config.CustomManager       = new CustomManager(@"Config/CustomData.xml", tabPageCustom, watchVariablePanelCustom);
            Config.VarHackManager      = new VarHackManager(tabPageVarHack, varHackPanel);
            Config.CamHackManager      = new CamHackManager(@"Config/CamHackData.xml", tabPageCamHack, watchVariablePanelCamHack);
            Config.ObjectManager       = new ObjectManager(@"Config/ObjectData.xml", tabPageObject, WatchVariablePanelObject);
            Config.OptionsManager      = new OptionsManager(@"Config/OptionsData.xml", tabPageOptions, watchVariablePanelOptions, pictureBoxCog);
            Config.TestingManager      = new TestingManager(tabPageTesting);
            Config.MemoryManager       = new MemoryManager(tabPageMemory, watchVariablePanelMemory, @"Config/ObjectData.xml");
            Config.SearchManager       = new SearchManager(tabPageSearch, watchVariablePanelSearch);
            Config.CellsManager        = new CellsManager(@"Config/CellsData.xml", tabPageCells, watchVariablePanelCells);
            Config.CoinManager         = new CoinManager(tabPageCoin);
            Config.GfxManager          = new GfxManager(tabPageGfx, watchVariablePanelGfx);
            Config.PaintingManager     = new PaintingManager(@"Config/PaintingData.xml", watchVariablePanelPainting, tabPagePainting);
            Config.MusicManager        = new MusicManager(@"Config/MusicData2.xml", watchVariablePanelMusic, tabPageMusic);
            Config.ScriptManager       = new ScriptManager(@"Config/ScriptData.xml", tabPageScript, watchVariablePanelScript);
            Config.SoundManager        = new SoundManager(tabPageSound);
            Config.WarpManager         = new WarpManager(@"Config/WarpData.xml", tabPageWarp, watchVariablePanelWarp);

            Config.DisassemblyManager = new DisassemblyManager(tabPageDisassembly);
            Config.InjectionManager   = new InjectionManager(_scriptParser, checkBoxUseRomHack);
            Config.HackManager        = new HackManager(_romHacks, Config.ObjectAssociations.SpawnHacks, tabPageHacks);
            Config.M64Manager         = new M64Manager(m64Gui);

            // Create Object Slots
            Config.ObjectSlotsManager = new ObjectSlotsManager(Config.ObjectSlotManagerGui, tabControlMain);
        }
Exemplo n.º 5
0
        private void CreateManagers()
        {
            // Create map manager
            Config.MapGui = new MapGui()
            {
                // Main controls
                GLControl = glControlMap,
                MapTrackerFlowLayoutPanel = flowLayoutPanelMapTrackers,
                TabControlView            = tabControlMap,

                // Controls in options tab
                TabPageOptions               = tabPageMapOptions,
                CheckBoxTrackMario           = checkBoxMapControlsTrackMario,
                CheckBoxTrackHolp            = checkBoxMapControlsTrackHolp,
                CheckBoxTrackCamera          = checkBoxMapControlsTrackCamera,
                CheckBoxTrackFloorTriangle   = checkBoxMapControlsTrackFloorTriangle,
                CheckBoxTrackWallTriangle    = checkBoxMapControlsTrackWallTriangle,
                CheckBoxTrackCeilingTriangle = checkBoxMapControlsTrackCeilingTriangle,
                CheckBoxTrackAllObjects      = checkBoxMapControlsTrackAllObjects,
                CheckBoxTrackGridlines       = checkBoxMapControlsTrackGridlines,

                ButtonAddNewTracker        = buttonMapControlsAddNewTracker,
                ButtonClearAllTrackers     = buttonMapControlsClearAllTrackers,
                ButtonTrackSelectedObjects = buttonMapControlsTrackSelectedObjects,

                ComboBoxLevel      = comboBoxMapOptionsLevel,
                ComboBoxBackground = comboBoxMapOptionsBackground,

                // Controls in 2D tab
                TabPage2D = tabPageMap2D,
                RadioButtonScaleCourseDefault = radioButtonMapControlsScaleCourseDefault,
                RadioButtonScaleMaxCourseSize = radioButtonMapControlsScaleMaxCourseSize,
                RadioButtonScaleCustom        = radioButtonMapControlsScaleCustom,
                TextBoxScaleCustom            = betterTextboxMapControlsScaleCustom,

                ButtonCenterScaleChangeMinus = buttonMapControlsScaleChangeMinus,
                ButtonCenterScaleChangePlus  = buttonMapControlsScaleChangePlus,
                TextBoxScaleChange           = betterTextboxMapControlsScaleChange,

                RadioButtonCenterBestFit = radioButtonMapControlsCenterBestFit,
                RadioButtonCenterOrigin  = radioButtonMapControlsCenterOrigin,
                RadioButtonCenterCustom  = radioButtonMapControlsCenterCustom,
                TextBoxCenterCustom      = betterTextboxMapControlsCenterCustom,

                ButtonCenterChangeUp        = buttonMapControlsCenterChangeUp,
                ButtonCenterChangeDown      = buttonMapControlsCenterChangeDown,
                ButtonCenterChangeLeft      = buttonMapControlsCenterChangeLeft,
                ButtonCenterChangeRight     = buttonMapControlsCenterChangeRight,
                ButtonCenterChangeUpLeft    = buttonMapControlsCenterChangeUpLeft,
                ButtonCenterChangeUpRight   = buttonMapControlsCenterChangeUpRight,
                ButtonCenterChangeDownLeft  = buttonMapControlsCenterChangeDownLeft,
                ButtonCenterChangeDownRight = buttonMapControlsCenterChangeDownRight,

                RadioButtonAngle0      = radioButtonMapControlsAngle0,
                RadioButtonAngle16384  = radioButtonMapControlsAngle16384,
                RadioButtonAngle32768  = radioButtonMapControlsAngle32768,
                RadioButtonAngle49152  = radioButtonMapControlsAngle49152,
                RadioButtonAngleCustom = radioButtonMapControlsAngleCustom,
                TextBoxAngleCustom     = betterTextboxMapControlsAngleCustom,

                ButtonAngleChangeCounterclockwise = buttonMapControlsAngleChangeCounterclockwise,
                ButtonAngleChangeClockwise        = buttonMapControlsAngleChangeClockwise,
                TextBoxAngleChange = betterTextboxMapControlsAngleChange,

                // Controls in the 3D map tab
                TabPage3D = tabPageMap3D,
                CheckBoxMapGameCamOrientation = checkBoxMapGameCamOrientation,
                ComboBoxMapColorMethod        = comboBoxMapColorMethod
            };

            Map2Gui map2Gui = new Map2Gui()
            {
                GLControl                   = glControlMap2,
                MapIdLabel                  = labelMap2Id,
                MapNameLabel                = labelMap2Name,
                MapSubNameLabel             = labelMap2SubName,
                PuValueLabel                = labelMap2PuValue,
                QpuValueLabel               = labelMap2QpuValue,
                MapIconSizeTrackbar         = trackBarMap2IconSize,
                MapShowInactiveObjects      = checkBoxMap2ShowInactive,
                MapShowMario                = checkBoxMap2ShowMario,
                MapShowHolp                 = checkBoxMap2ShowHolp,
                MapShowIntendedNextPosition = checkBoxMap2ShowIntendedNextPosition,
                MapShowCamera               = checkBoxMap2ShowCamera,
                MapShowFloorTriangle        = checkBoxMap2ShowFloor,
                MapShowCeilingTriangle      = checkBoxMap2ShowCeiling,

                MapBoundsUpButton        = buttonMap2BoundsUp,
                MapBoundsDownButton      = buttonMap2BoundsDown,
                MapBoundsLeftButton      = buttonMap2BoundsLeft,
                MapBoundsRightButton     = buttonMap2BoundsRight,
                MapBoundsUpLeftButton    = buttonMap2BoundsUpLeft,
                MapBoundsUpRightButton   = buttonMap2BoundsUpRight,
                MapBoundsDownLeftButton  = buttonMap2BoundsDownLeft,
                MapBoundsDownRightButton = buttonMap2BoundsDownRight,
                MapBoundsPositionTextBox = textBoxMap2BoundsPosition,

                MapBoundsZoomInButton  = buttonMap2BoundsZoomIn,
                MapBoundsZoomOutButton = buttonMap2BoundsZoomOut,
                MapBoundsZoomTextBox   = textBoxMap2BoundsZoom,

                MapArtificialMarioYLabelTextBox = textBoxMap2ArtificialMarioYLabel
            };

            M64Gui m64Gui = new M64Gui()
            {
                LabelFileName       = labelM64FileName,
                LabelNumInputsValue = labelM64NumInputsValue,

                ComboBoxFrameInputRelation = comboBoxM64FrameInputRelation,
                CheckBoxMaxOutViCount      = checkBoxMaxOutViCount,

                ButtonSave         = buttonM64Save,
                ButtonSaveAs       = buttonM64SaveAs,
                ButtonResetChanges = buttonM64ResetChanges,
                ButtonOpen         = buttonM64Open,
                ButtonClose        = buttonM64Close,
                ButtonGoto         = buttonM64Goto,
                TextBoxGoto        = textBoxM64Goto,

                DataGridViewInputs = dataGridViewM64Inputs,
                PropertyGridHeader = propertyGridM64Header,
                PropertyGridStats  = propertyGridM64Stats,

                TabControlDetails = tabControlM64Details,
                TabPageInputs     = tabPageM64Inputs,
                TabPageHeader     = tabPageM64Header,
                TabPageStats      = tabPageM64Stats,

                ProgressBar      = progressBarM64,
                LabelProgressBar = labelM64ProgressBar,

                ButtonSetUsRom = buttonM64SetUsRom,
                ButtonSetJpRom = buttonM64SetJpRom,
                ButtonCopyRom  = buttonM64CopyRom,
                ButtonPasteRom = buttonM64PasteRom,

                TextBoxOnValue = textBoxM64OnValue,

                TextBoxSelectionStartFrame = textBoxM64SelectionStartFrame,
                TextBoxSelectionEndFrame   = textBoxM64SelectionEndFrame,
                TextBoxSelectionInputs     = textBoxM64SelectionInputs,

                ButtonTurnOffRowRange   = buttonM64TurnOffRowRange,
                ButtonTurnOffInputRange = buttonM64TurnOffInputRange,
                ButtonTurnOffCells      = buttonM64TurnOffCells,
                ButtonDeleteRowRange    = buttonM64DeleteRowRange,
                ButtonTurnOnInputRange  = buttonM64TurnOnInputRange,
                ButtonTurnOnCells       = buttonM64TurnOnCells,
                ButtonCopyRowRange      = buttonM64CopyRowRange,
                ButtonCopyInputRange    = buttonM64CopyInputRange,

                ListBoxCopied            = listBoxM64Copied,
                ButtonPasteInsert        = buttonM64PasteInsert,
                ButtonPasteOverwrite     = buttonM64PasteOverwrite,
                TextBoxPasteMultiplicity = textBoxM64PasteMultiplicity,

                TextBoxQuickDuplication1stIterationStart = textBoxM64QuickDuplication1stIterationStart,
                TextBoxQuickDuplication2ndIterationStart = textBoxM64QuickDuplication2ndIterationStart,
                TextBoxQuickDuplicationTotalIterations   = textBoxM64QuickDuplicationTotalIterations,
                ButtonQuickDuplicationDuplicate          = buttonM64QuickDuplicationDuplicate,

                ButtonAddPauseBufferFrames = buttonM64AddPauseBufferFrames,
            };

            // Create managers
            Config.MapManager  = new MapManager();
            Config.Map2Manager = new Map2Manager(map2Gui);

            Config.ModelManager        = new ModelManager(tabPageModel);
            Config.ActionsManager      = new ActionsManager(@"Config/ActionsData.xml", watchVariablePanelActions, tabPageActions);
            Config.WaterManager        = new WaterManager(@"Config/WaterData.xml", watchVariablePanelWater);
            Config.SnowManager         = new SnowManager(@"Config/SnowData.xml", watchVariablePanelSnow);
            Config.InputManager        = new InputManager(@"Config/InputData.xml", tabPageInput, watchVariablePanelInput, _inputImageGuiList);
            Config.MarioManager        = new MarioManager(@"Config/MarioData.xml", tabPageMario, WatchVariablePanelMario);
            Config.HudManager          = new HudManager(@"Config/HudData.xml", tabPageHud, watchVariablePanelHud);
            Config.MiscManager         = new MiscManager(@"Config/MiscData.xml", watchVariablePanelMisc, tabPageMisc);
            Config.CameraManager       = new CameraManager(@"Config/CameraData.xml", tabPageCamera, watchVariablePanelCamera);
            Config.TriangleManager     = new TriangleManager(tabPageTriangles, @"Config/TrianglesData.xml", watchVariablePanelTriangles);
            Config.DebugManager        = new DebugManager(@"Config/DebugData.xml", tabPageDebug, watchVariablePanelDebug);
            Config.PuManager           = new PuManager(@"Config/PuData.xml", tabPagePu, watchVariablePanelPu);
            Config.TasManager          = new TasManager(@"Config/TasData.xml", tabPageTas, watchVariablePanelTas);
            Config.FileManager         = new FileManager(@"Config/FileData.xml", tabPageFile, watchVariablePanelFile, _fileImageGui);
            Config.MainSaveManager     = new MainSaveManager(@"Config/MainSaveData.xml", tabPageMainSave, watchVariablePanelMainSave);
            Config.AreaManager         = new AreaManager(tabPageArea, @"Config/AreaData.xml", watchVariablePanelArea);
            Config.QuarterFrameManager = new DataManager(@"Config/QuarterFrameData.xml", watchVariablePanelQuarterFrame);
            Config.CustomManager       = new CustomManager(@"Config/CustomData.xml", tabPageCustom, watchVariablePanelCustom);
            Config.VarHackManager      = new VarHackManager(tabPageVarHack, varHackPanel);
            Config.CamHackManager      = new CamHackManager(@"Config/CamHackData.xml", tabPageCamHack, watchVariablePanelCamHack);
            Config.ObjectManager       = new ObjectManager(@"Config/ObjectData.xml", tabPageObject, WatchVariablePanelObject);
            Config.OptionsManager      = new OptionsManager(tabPageOptions, pictureBoxCog);
            Config.TestingManager      = new TestingManager(tabPageTesting);
            Config.MemoryManager       = new MemoryManager(tabPageMemory, watchVariablePanelMemory, @"Config/ObjectData.xml");
            Config.CoinManager         = new CoinManager(tabPageCoin);
            Config.ScriptManager       = new ScriptManager(tabPageScripts);
            Config.GfxManager          = new GfxManager(tabPageGfx, watchVariablePanelGfx);

            Config.DisassemblyManager = new DisassemblyManager(tabPageDisassembly);
            Config.DecompilerManager  = new DecompilerManager(tabPageDecompiler);
            Config.InjectionManager   = new InjectionManager(_scriptParser, checkBoxUseRomHack);
            Config.HackManager        = new HackManager(_romHacks, Config.ObjectAssociations.SpawnHacks, tabPageHacks);
            Config.M64Manager         = new M64Manager(m64Gui);

            // Create Object Slots
            _slotManagerGui.TabControl          = tabControlMain;
            _slotManagerGui.LockLabelsCheckbox  = checkBoxObjLockLabels;
            _slotManagerGui.FlowLayoutContainer = WatchVariablePanelObjects;
            _slotManagerGui.SortMethodComboBox  = comboBoxSortMethod;
            _slotManagerGui.LabelMethodComboBox = comboBoxLabelMethod;
            Config.ObjectSlotsManager           = new ObjectSlotsManager(_slotManagerGui, tabControlMain);
        }