Inheritance: AGS.Types.UnloadedRoom, IChangeNotification, ILoadedRoom
 public CharactersEditorFilter(Panel displayPanel, Room room, Game game)
 {
     _room = room;
     _panel = displayPanel;
     _game = game;
     _propertyObjectChangedDelegate = new GUIController.PropertyObjectChangedHandler(GUIController_OnPropertyObjectChanged);
 }
 public ObjectsEditorFilter(Panel displayPanel, Room room)
 {
     _room = room;
     _panel = displayPanel;
     _selectedObject = null;
     _propertyObjectChangedDelegate = new GUIController.PropertyObjectChangedHandler(GUIController_OnPropertyObjectChanged);
 }
Beispiel #3
0
        public static bool CreateInteractionScripts(Room room, CompileMessages errors)
        {
            Script theScript = room.Script;
            bool convertedSome = CreateScriptsForInteraction("room", theScript, room.Interactions, errors);

            foreach (RoomHotspot hotspot in room.Hotspots)
            {
                if (hotspot.Name.Length < 1)
                {
                    hotspot.Name = "hHotspot" + hotspot.ID;
                }
                convertedSome |= CreateScriptsForInteraction(hotspot.Name, theScript, hotspot.Interactions, errors);
            }
            foreach (RoomObject obj in room.Objects)
            {
                if (obj.Name.Length < 1)
                {
                    obj.Name = "oObject" + obj.ID;
                }
                convertedSome |= CreateScriptsForInteraction(obj.Name, theScript, obj.Interactions, errors);
            }
            foreach (RoomRegion region in room.Regions)
            {
                string useName = "region" + region.ID;
                convertedSome |= CreateScriptsForInteraction(useName, theScript, region.Interactions, errors);
            }
            return convertedSome;
        }
Beispiel #4
0
 public ScriptEditor(Script scriptToEdit, AGSEditor agsEditor, Action<Script> showMatchingScript)
 {
     _showMatchingScript = showMatchingScript;
     _agsEditor = agsEditor;
     Init(scriptToEdit);
     _room = null;
     _roomNumber = 0;
 }
Beispiel #5
0
        public RoomSettingsEditor(Room room)
        {
            this.SetStyle(ControlStyles.Selectable, true);

            InitializeComponent();
            _room = room;
            if (_room.Resolution == RoomResolution.LowRes)
            {
                _state.ScaleFactor = 2;
            }
            else
            {
                _state.ScaleFactor = 1;
            }
            sldZoomLevel.Value = _state.ScaleFactor;
            _state.ScrollOffsetX = 0;
            _state.ScrollOffsetY = 0;
            _state.CurrentCursor = Cursors.Default;

            _filters.Add(new EmptyEditorFilter(bufferedPanel1, _room));
            _filters.Add(new EdgesEditorFilter(bufferedPanel1, _room));
            _filters.Add(new CharactersEditorFilter(bufferedPanel1, _room, Factory.AGSEditor.CurrentGame));
            _filters.Add(new ObjectsEditorFilter(bufferedPanel1, _room));
            _filters.Add(new HotspotsEditorFilter(bufferedPanel1, _room));
            _filters.Add(new WalkableAreasEditorFilter(bufferedPanel1, _room));
            _filters.Add(new WalkBehindsEditorFilter(bufferedPanel1, _room));
            _filters.Add(new RegionsEditorFilter(bufferedPanel1, _room));
            _filter = _filters[0];
            _filter.FilterOn();

            cmbViewType.Items.Add("Nothing");
            cmbViewType.Items.Add("Edges");
            cmbViewType.Items.Add("Characters");
            cmbViewType.Items.Add("Objects");
            cmbViewType.Items.Add("Hotspots");
            cmbViewType.Items.Add("Walkable areas");
            cmbViewType.Items.Add("Walk-behinds");
            cmbViewType.Items.Add("Regions");

            cmbViewType.SelectedIndex = 0;

            RepopulateBackgroundList(0);
            UpdateScrollableWindowSize();
            this.MouseWheel += new MouseEventHandler(RoomSettingsEditor_MouseWheel);
            this.bufferedPanel1.MouseWheel += new MouseEventHandler(RoomSettingsEditor_MouseWheel);

            _editorConstructed = true;
        }
        public HotspotsEditorFilter(Panel displayPanel, Room room)
        {
            if (!_registeredIcons)
            {
                Factory.GUIController.RegisterIcon("DrawLineIcon", Resources.ResourceManager.GetIcon("drawline.ico"));
                Factory.GUIController.RegisterIcon("DrawFreehandIcon", Resources.ResourceManager.GetIcon("drawfree.ico"));
                Factory.GUIController.RegisterIcon("DrawFillIcon", Resources.ResourceManager.GetIcon("drawfill.ico"));
                _registeredIcons = true;
                _toolbarIcons = new List<MenuCommand>();
                _toolbarIcons.Add(new MenuCommand(DRAW_LINE_COMMAND, "Line tool", "DrawLineIcon"));
                _toolbarIcons.Add(new MenuCommand(DRAW_FREEHAND_COMMAND, "Freehand tool", "DrawFreehandIcon"));
                _toolbarIcons.Add(new MenuCommand(DRAW_FILL_COMMAND, "Fill area", "DrawFillIcon"));
                _toolbarIcons[0].Checked = true;
            }

            _room = room;
            _panel = displayPanel;
            CreateAlphaTranslucentImageMatrix();
            _propertyObjectChangedDelegate = new GUIController.PropertyObjectChangedHandler(GUIController_OnPropertyObjectChanged);
        }
Beispiel #7
0
        public BaseAreasEditorFilter(Panel displayPanel, Room room, bool highResMask)
        {
            if (!_registeredIcons)
            {
                Factory.GUIController.RegisterIcon("SelectAreaIcon", Resources.ResourceManager.GetIcon("findarea.ico"));
                Factory.GUIController.RegisterIcon("DrawLineIcon", Resources.ResourceManager.GetIcon("drawline.ico"));
                Factory.GUIController.RegisterIcon("DrawFreehandIcon", Resources.ResourceManager.GetIcon("drawfree.ico"));
				Factory.GUIController.RegisterIcon("DrawRectIcon", Resources.ResourceManager.GetIcon("drawrect.ico"));
				Factory.GUIController.RegisterIcon("DrawFillIcon", Resources.ResourceManager.GetIcon("drawfill.ico"));
                Factory.GUIController.RegisterIcon("ImportMaskIcon", Resources.ResourceManager.GetIcon("importmask.ico"));
                Factory.GUIController.RegisterIcon("CopyWalkableAreaMaskIcon", Resources.ResourceManager.GetIcon("copymask.ico"));
				Factory.GUIController.RegisterIcon("GreyedOutMasksIcon", Resources.ResourceManager.GetIcon("greymasks.ico"));
				_selectCursor = Resources.ResourceManager.GetCursor("findarea.cur");
                _registeredIcons = true;
            }

            _tooltip = new ToolTip();
            _tooltip.IsBalloon = true;
            _highResMask = highResMask;
            _toolbarIcons = new List<MenuCommand>();
            _toolbarIcons.Add(new MenuCommand(SELECT_AREA_COMMAND, "Select area (Ctrl+C)", "SelectAreaIcon"));
            _toolbarIcons.Add(new MenuCommand(DRAW_LINE_COMMAND, "Line tool (Ctrl+N)", "DrawLineIcon"));
            _toolbarIcons.Add(new MenuCommand(DRAW_FREEHAND_COMMAND, "Freehand tool (Ctrl+D)", "DrawFreehandIcon"));
			_toolbarIcons.Add(new MenuCommand(DRAW_RECTANGLE_COMMAND, "Rectangle tool (Ctrl+E)", "DrawRectIcon"));
			_toolbarIcons.Add(new MenuCommand(DRAW_FILL_COMMAND, "Fill area (Ctrl+F)", "DrawFillIcon"));
            _toolbarIcons.Add(new MenuCommand(UNDO_COMMAND, "Undo (Ctrl+Z)", "UndoIcon"));
			_toolbarIcons.Add(new MenuCommand(IMPORT_MASK_COMMAND, "Import mask from file", "ImportMaskIcon"));
            _toolbarIcons.Add(new MenuCommand(COPY_WALKABLE_AREA_MASK_COMMAND, "Copy walkable area mask to regions", "CopyWalkableAreaMaskIcon"));
			_toolbarIcons.Add(new MenuCommand(GREYED_OUT_MASKS_COMMAND, "Show non-selected masks greyed out", "GreyedOutMasksIcon"));
			_toolbarIcons[(int)_drawMode].Checked = true;
			_toolbarIcons[TOOLBAR_INDEX_GREY_OUT_MASKS].Checked = _greyedOutMasks;

            _room = room;
            _panel = displayPanel;
            _propertyObjectChangedDelegate = new GUIController.PropertyObjectChangedHandler(GUIController_OnPropertyObjectChanged);
            UpdateUndoButtonEnabledState();
        }
Beispiel #8
0
 public void ImportBackground(Room room, int backgroundNumber, Bitmap bmp, bool useExactPalette, bool sharePalette)
 {
     _native.ImportBackground(room, backgroundNumber, bmp, useExactPalette, sharePalette);
 }
Beispiel #9
0
 public void RestoreFromUndoBuffer(Room room, RoomAreaMaskType mask)
 {
     _native.RestoreFromUndoBuffer(room, mask);
 }
Beispiel #10
0
 public Bitmap GetBitmapForBackground(Room room, int backgroundNumber)
 {
     return _native.GetBitmapForBackground(room, backgroundNumber);
 }
Beispiel #11
0
 public void ImportAreaMask(Room room, RoomAreaMaskType mask, Bitmap bmp)
 {
     _native.ImportAreaMask(room, mask, bmp);
 }
Beispiel #12
0
 public void DrawRoomBackground(IntPtr hDC, Room room, int x, int y, int backgroundNumber, float scaleFactor, RoomAreaMaskType maskType, int selectedArea, int maskTransparency)
 {
     _native.DrawRoomBackground((int)hDC, room, x, y, backgroundNumber, scaleFactor, maskType, selectedArea, maskTransparency);
 }
Beispiel #13
0
 public int GetAreaMaskPixel(Room room, RoomAreaMaskType mask, int x, int y)
 {
     int pixel = _native.GetAreaMaskPixel(room, mask, x, y);
     // if it lies outside the bitmap, just return 0
     if (pixel < 0)
     {
         pixel = 0;
     }
     return pixel;
 }
Beispiel #14
0
        private void UnloadCurrentRoom()
        {
            if (_roomSettings != null)
            {
                ((RoomSettingsEditor)_roomSettings.Control).SaveRoom -= new RoomSettingsEditor.SaveRoomHandler(RoomEditor_SaveRoom);
                ((RoomSettingsEditor)_roomSettings.Control).AbandonChanges -= new RoomSettingsEditor.AbandonChangesHandler(RoomsComponent_AbandonChanges);
            }
            DisposePane(_roomSettings);
            _roomSettings = null;

            if (_loadedRoom != null)
            {
                _loadedRoom.RoomModifiedChanged -= _modifiedChangedHandler;
            }
            _loadedRoom = null;
        }
Beispiel #15
0
 private Dictionary<string, object> ConstructPropertyObjectList(Room room)
 {
     Dictionary<string, object> list = new Dictionary<string, object>();
     list.Add(room.PropertyGridTitle, room);
     return list;
 }
Beispiel #16
0
 public HotspotsEditorFilter(Panel displayPanel, Room room) : base(displayPanel, room, false)
 {
 }
Beispiel #17
0
        private void AppendRoomObjectsAndHotspotsToHeader(StringBuilder sb, Room room)
        {
            foreach (RoomObject obj in room.Objects)
            {
                if (obj.Name.Length > 0)
                {
                    sb.AppendLine("import Object " + obj.Name + ";");
                }
            }

            foreach (RoomHotspot hotspot in room.Hotspots)
            {
                if (hotspot.Name.Length > 0)
                {
                    sb.AppendLine("import Hotspot " + hotspot.Name + ";");
                }
            }
        }
Beispiel #18
0
 public void CopyWalkableAreaMaskToRegions(Room room)
 {
     _native.CopyWalkableMaskToRegions(room);
 }
Beispiel #19
0
        private bool HookUpInteractionVariables(Room room)
        {
            bool changedScript = false;
            int index;
            while ((index = room.Script.Text.IndexOf("__INTRVAL$")) > 0)
            {
                int endIndex = room.Script.Text.IndexOf('$', index + 10) + 1;
                string intrVariableNumber = room.Script.Text.Substring(index + 10, (endIndex - index) - 11);
                int variableNumber = Convert.ToInt32(intrVariableNumber);
                string replacementText;

                if (variableNumber >= OldInteractionVariable.LOCAL_VARIABLE_INDEX_OFFSET)
                {
                    variableNumber -= OldInteractionVariable.LOCAL_VARIABLE_INDEX_OFFSET;
                    if (variableNumber >= room.OldInteractionVariables.Count)
                    {
                        replacementText = "UNKNOWN_ROOM_VARIABLE_" + variableNumber;
                    }
                    else
                    {
                        replacementText = room.OldInteractionVariables[variableNumber].ScriptName;
                    }
                }
                else
                {
                    if (variableNumber >= _agsEditor.CurrentGame.OldInteractionVariables.Count)
                    {
                        replacementText = "UNKNOWN_INTERACTION_VARIABLE_" + variableNumber;
                    }
                    else
                    {
                        replacementText = _agsEditor.CurrentGame.OldInteractionVariables[variableNumber].ScriptName;
                    }
                }

                room.Script.Text = room.Script.Text.Replace(room.Script.Text.Substring(index, (endIndex - index)), replacementText);
                changedScript = true;
            }

            if ((changedScript) && (room.OldInteractionVariables.Count > 0))
            {
                foreach (OldInteractionVariable var in room.OldInteractionVariables)
                {
                    room.Script.Text = string.Format("int {0} = {1};{2}", var.ScriptName, var.Value, Environment.NewLine) + room.Script.Text;
                }
                room.Script.Text = "// Automatically converted interaction variables" + Environment.NewLine + room.Script.Text;
            }

            return changedScript;
        }
Beispiel #20
0
 private void EnsureScriptNamesAreUnique(Room room, CompileMessages errors)
 {
     foreach (RoomHotspot hotspot in room.Hotspots)
     {
         if (_agsEditor.CurrentGame.IsScriptNameAlreadyUsed(hotspot.Name, hotspot))
         {
             errors.Add(new CompileError("Hotspot '" + hotspot.Name + "' script name conflicts with other game item"));
         }
     }
     foreach (RoomObject obj in room.Objects)
     {
         if (_agsEditor.CurrentGame.IsScriptNameAlreadyUsed(obj.Name, obj))
         {
             errors.Add(new CompileError("Object '" + obj.Name + "' script name conflicts with other game item"));
         }
     }
 }
Beispiel #21
0
 public void SaveRoom(Room roomToSave)
 {
     _native.SaveRoomFile(roomToSave);
 }
Beispiel #22
0
        private void SaveRoomButDoNotShowAnyErrors(Room room, CompileMessages errors, string pleaseWaitText)
        {
            lock (_roomLoadingOrSavingLock)
            {
                if (room != _loadedRoom)
                {
                    errors.Add(new CompileError("Attempted to save room " + room.Number + " which is not loaded"));
                    return;
                }

                PerformPreSaveChecks(room);

                if (!_agsEditor.AttemptToGetWriteAccess(room.FileName))
                {
                    errors.Add(new CompileError("Unable to open file " + room.FileName + " for writing"));
                    return;
                }

                if (PreSaveRoom != null)
                {
                    PreSaveRoom(room, errors);
                }

                EnsureScriptNamesAreUnique(room, errors);
                try
                {
                    if (!errors.HasErrors)
                    {
                        BusyDialog.Show(pleaseWaitText, new BusyDialog.ProcessingHandler(SaveRoomOnThread), room);
                    }
                }
                catch (CompileMessage ex)
                {
                    errors.Add(ex);
                }
                catch (AGSEditorException ex)
                {
                    errors.Add(new CompileError(ex.Message, ex));
                }
            }
        }
Beispiel #23
0
 public void CreateUndoBuffer(Room room, RoomAreaMaskType mask)
 {
     _native.CreateUndoBuffer(room, mask);
 }
Beispiel #24
0
        private bool AddPlayMusicCommandToPlayerEntersRoomScript(Room room, CompileMessages errors)
        {
            bool scriptModified = false;

            if (room.PlayMusicOnRoomLoad > 0)
            {
                AudioClip clip = _agsEditor.CurrentGame.FindAudioClipForOldMusicNumber(null, room.PlayMusicOnRoomLoad);
                if (clip == null)
                {
                    errors.Add(new CompileWarning("Room " + room.Number + ": Unable to find aMusic" + room.PlayMusicOnRoomLoad + " which was set as this room's start music"));
                    return scriptModified;
                }

                string scriptName = room.Interactions.GetScriptFunctionNameForInteractionSuffix(Room.EVENT_SUFFIX_ROOM_LOAD);
                if (string.IsNullOrEmpty(scriptName))
                {
                    scriptName = "Room_" + Room.EVENT_SUFFIX_ROOM_LOAD;
                    room.Interactions.SetScriptFunctionNameForInteractionSuffix(Room.EVENT_SUFFIX_ROOM_LOAD, scriptName);
                    room.Script.Text += Environment.NewLine + "function " + scriptName + "()" +
                        Environment.NewLine + "{" + Environment.NewLine +
                        "}" + Environment.NewLine;
                    scriptModified = true;
                }
                int functionOffset = room.Script.Text.IndexOf(scriptName);
                if (functionOffset < 0)
                {
                    errors.Add(new CompileWarning("Room " + room.Number + ": Unable to find definition for " + scriptName + " to add Room Load music " + room.PlayMusicOnRoomLoad));
                }
                else
                {
                    functionOffset = room.Script.Text.IndexOf('{', functionOffset);
                    functionOffset = room.Script.Text.IndexOf('\n', functionOffset) + 1;
                    string newScript = room.Script.Text.Substring(0, functionOffset);
                    newScript += "  " + clip.ScriptName + ".Play();" + Environment.NewLine;
                    newScript += room.Script.Text.Substring(functionOffset);
                    room.Script.Text = newScript;
                    room.PlayMusicOnRoomLoad = 0;
                    scriptModified = true;
                }
            }

            return scriptModified;
        }
Beispiel #25
0
        public Script RegenerateScriptHeader(Game game, Room currentRoom)
        {
            StringBuilder sb = new StringBuilder(10000);
            //            sb.AppendLine("#define AGS_MAX_CHARACTERS " + Game.MAX_CHARACTERS);
            sb.AppendLine("#define AGS_MAX_INV_ITEMS " + Game.MAX_INV_ITEMS);
            //            sb.AppendLine("#define AGS_MAX_GUIS " + Game.MAX_GUIS);
            sb.AppendLine("#define AGS_MAX_CONTROLS_PER_GUI " + GUI.MAX_CONTROLS_PER_GUI);
            //            sb.AppendLine("#define AGS_MAX_VIEWS " + Game.MAX_VIEWS);
            //            sb.AppendLine("#define AGS_MAX_LOOPS_PER_VIEW " + AGS.Types.View.MAX_LOOPS_PER_VIEW);
            //            sb.AppendLine("#define AGS_MAX_FRAMES_PER_LOOP " + ViewLoop.MAX_FRAMES_PER_LOOP);
            sb.AppendLine("#define AGS_MAX_OBJECTS " + Room.MAX_OBJECTS);
            sb.AppendLine("#define AGS_MAX_HOTSPOTS " + Room.MAX_HOTSPOTS);
            sb.AppendLine("#define AGS_MAX_REGIONS " + Room.MAX_REGIONS);

            AppendCursorsToHeader(sb, game.Cursors);

            AppendFontsToHeader(sb, game.Fonts);

            AppendCharactersToHeader(sb, game.Characters, game);

            AppendAudioClipTypesToHeader(sb, game.AudioClipTypes);

            AppendAudioClipsToHeader(sb, game.RootAudioClipFolder);

            sb.AppendLine("import Hotspot hotspot[" + Room.MAX_HOTSPOTS + "];");
            sb.AppendLine("import Region region[" + Room.MAX_REGIONS + "];");

            AppendInventoryToHeader(sb, game.InventoryItems);

            AppendDialogsToHeader(sb, game.Dialogs);

            AppendGUIsToHeader(sb, game.GUIs);

            AppendViewsToHeader(sb, game.RootViewFolder);

            if (currentRoom != null)
            {
                AppendRoomObjectsAndHotspotsToHeader(sb, currentRoom);
            }

            return new Script(AUTO_GENERATED_HEADER_NAME, sb.ToString(), true);
        }
Beispiel #26
0
 public void DeleteBackground(Room room, int backgroundNumber)
 {
     _native.DeleteBackground(room, backgroundNumber);
 }
Beispiel #27
0
 public void RegenerateScriptHeader(Room currentRoom)
 {
     _autoGeneratedHeader = _tasks.RegenerateScriptHeader(_game, currentRoom);
     AutoComplete.ConstructCache(_autoGeneratedHeader);
 }
Beispiel #28
0
 public void DrawFillOntoMask(Room room, RoomAreaMaskType mask, int x1, int y1, int color)
 {
     _native.DrawFillOntoMask(room, mask, x1, y1, color);
 }
Beispiel #29
0
        public ScriptEditor(Script scriptToEdit, AGSEditor agsEditor)
        {
            InitializeComponent();
            _agsEditor = agsEditor;

            _autocompleteUpdateHandler = new AutoComplete.BackgroundCacheUpdateStatusChangedHandler(AutoComplete_BackgroundCacheUpdateStatusChanged);
            AutoComplete.BackgroundCacheUpdateStatusChanged += _autocompleteUpdateHandler;
            _fileChangedHandler = new EditorEvents.FileChangedInGameFolderHandler(Events_FileChangedInGameFolder);
            Factory.Events.FileChangedInGameFolder += _fileChangedHandler;
            _mainWindowActivatedHandler = new EventHandler(GUIController_OnMainWindowActivated);
            Factory.GUIController.OnMainWindowActivated += _mainWindowActivatedHandler;

            _toolbarIcons.Add(new MenuCommand(CUT_COMMAND, "Cut", "CutIcon"));
            _toolbarIcons.Add(new MenuCommand(COPY_COMMAND, "Copy", "CopyIcon"));
            _toolbarIcons.Add(new MenuCommand(PASTE_COMMAND, "Paste", "PasteIcon"));
            _toolbarIcons.Add(new MenuCommand(UNDO_COMMAND, "Undo", "UndoIcon"));
            _toolbarIcons.Add(new MenuCommand(REDO_COMMAND, "Redo", "RedoIcon"));
            _extraMenu.Commands.Add(new MenuCommand(UNDO_COMMAND, "Undo", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Z, "UndoMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(REDO_COMMAND, "Redo", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Y, "RedoMenuIcon"));
            _extraMenu.Commands.Add(MenuCommand.Separator);
            _extraMenu.Commands.Add(new MenuCommand(CUT_COMMAND, "Cut", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.X, "CutMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(COPY_COMMAND, "Copy", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C, "CopyMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(PASTE_COMMAND, "Paste", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.V, "PasteMenuIcon"));
            _extraMenu.Commands.Add(MenuCommand.Separator);
            _extraMenu.Commands.Add(new MenuCommand(FIND_COMMAND, "Find...", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F, "FindMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(FIND_NEXT_COMMAND, "Find next", System.Windows.Forms.Keys.F3, "FindNextMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(REPLACE_COMMAND, "Replace...", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E));
            _extraMenu.Commands.Add(MenuCommand.Separator);
            _extraMenu.Commands.Add(new MenuCommand(FIND_ALL_COMMAND, "Find All...", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.F, "FindMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(REPLACE_ALL_COMMAND, "Replace All...", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.E));
            _extraMenu.Commands.Add(MenuCommand.Separator);
            _extraMenu.Commands.Add(new MenuCommand(SHOW_AUTOCOMPLETE_COMMAND, "Show Autocomplete", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Space, "ShowAutocompleteMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(TOGGLE_BREAKPOINT_COMMAND, "Toggle Breakpoint", System.Windows.Forms.Keys.F9, "ToggleBreakpointMenuIcon"));
            _extraMenu.Commands.Add(new MenuCommand(MATCH_BRACE_COMMAND, "Match Brace", System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.B));

            scintilla.SetKeyWords(Constants.SCRIPT_KEY_WORDS);
            UpdateStructHighlighting();

            // pressing ( [ or . will auto-complete
            scintilla.SetFillupKeys(Constants.AUTOCOMPLETE_ACCEPT_KEYS);

            scintilla.EnableLineNumbers();

            scintilla.IsModifiedChanged += new EventHandler(scintilla_IsModifiedChanged);
            scintilla.AttemptModify += new ScintillaWrapper.AttemptModifyHandler(scintilla_AttemptModify);
            scintilla.UpdateUI += new EventHandler(scintilla_UpdateUI);
            scintilla.TextModified += new ScintillaWrapper.TextModifiedHandler(scintilla_TextModified);
            scintilla.ConstructContextMenu += new ScintillaWrapper.ConstructContextMenuHandler(scintilla_ConstructContextMenu);
            scintilla.ActivateContextMenu += new ScintillaWrapper.ActivateContextMenuHandler(scintilla_ActivateContextMenu);
            scintilla.ToggleBreakpoint += new EventHandler<Scintilla.MarginClickEventArgs>(scintilla_ToggleBreakpoint);
            this.Resize += new EventHandler(ScriptEditor_Resize);

            if (!scriptToEdit.IsHeader)
            {
                scintilla.SetAutoCompleteSource(scriptToEdit);
            }

            scintilla.SetKeyWords(Constants.SCRIPT_KEY_WORDS);
            UpdateStructHighlighting();

            this.Script = scriptToEdit;
            _room = null;
            _roomNumber = 0;
        }
Beispiel #30
0
 public void DrawLineOntoMask(Room room, RoomAreaMaskType mask, int x1, int y1, int x2, int y2, int color)
 {
     _native.DrawLineOntoMask(room, mask, x1, y1, x2, y2, color);
 }