AGS Development > Editor Development

New editor version for testing

(1/12) > >>

tzachs:
Please backup your game before using this version!!!!!!!!

Download here!
Edit: replaced with a new version that also fixes the bug described here

Edit 2: replaced with a newer version that fixes a bug and implements a few suggestions, both described here

Edit 3: replaced with a newer version that fixes a crash when clicking "go to definition", described here

Edit 4 (18/7/12): More fixes described here!

Edit 5 (20/7/12): More fixes described here!

Edit 6 (21/7/12): More fixes & improvements described here!

Edit 7 (22/7/12): Fixed the crash described here!

Edit 8 (29/7/12): Committed the changes to the 3.2.2 branch.

Hi, I've added a few features for the editor.
Please test and/or provide feedback.
Once I see everything is well I'll commit to 3.2.2 development branch.

The features:

Folders:
Added folders for characrers, dialogs, inventory items, guis, rooms, scripts and views.
Added new menu items for all folders to move up/down,
and the ability to drag/drop files to be before other files.

For scripts:
- Script and header files are now combined into one and can be expanded/collapsed, similar to room settings & script.
- I removed the ability to move files up/down, this can now be done with normal drag/drop (and not only for scripts).
- Also removed the "exclude script" option, it made things a mess and I couldn't understand why it is needed.
If anybody knows, please tell me.
- The order of the scripts (for script dependencies) is the same as it was before, a script can use all the scripts
above it.

For rooms:
- The "Sort room by number" now sorts within folders. I actually don't understand why this feature is needed, if anyone
knows please tell me.

Find all usages:
Added a menu item to find all usages for characters, dialogs, views, inventory items and global variables.
It won't actually find scripts that use the character id (or dialog/view id), just scripts that use the actual
script name of that specific object.


An example of the folders and the "Find all usages" menu item

Navigate (in tree):
Added a menu item for almost all document tabs, to navigate to their node on the project tree
(can be useful for large projects).


An example of the "Navigate" feature.

Goto Line:
In script editor, pressing Ctrl+G will now open the "Goto line" dialog, you can select a line number and the
editor will jump to that line. Since "Ctrl+G" was already used as a shortcut to open the global script,
I replaced that shortcut with Ctrl+Shift+G (and also replaced the shortcut to open the global header
from Ctrl+H to Ctrl+Shift+H for consistency).


An example of the "Goto Line" feature

Mono:
I've refactored some code to make it more Mono-compatible, so that it could run properly when compiled with Mono
(cross platform implementation of .Net).
There's still a lot more work to be done (even without mentioning the native dll), but it's at least a step
in the right direction.

The changes I've done-

* I replaced in tons of places the hard-coded "\" used as a directory separator with the directory separator of the OS,
so that it'll also work on Linux machines.
* I switched the code that detects Shift & Ctrl keyboard presses with a managed solution, that should be supported
by MONO- this is used when selecting colors in the palette, for example.
* I switched the code that detects when the Room Designer is focused (used when pressing the up/down arrows to pan
the working area) to a managed solution, that should be supported by MONO.
* I switched the code that copies arrays in memory to a managed solution (used when loading a sprite from file).
* I partially disabled some features only when running with Mono, since I couldn't see a way to code them without the
Win API:
   - Breaking in debug will not automatically set the editor to the foreground, the user might have to click on the window
   - Notifying the user on file changes externally if the editor is in focus will not happen. It will happen when
     the window is activated, so I hope it won't be too annoying.

Ryan Timothy B:
Sounds like a lot of good contributions.

Speaking of the "Find all usages", would it be possible to use your code to also have a "Refactor > Rename" ability? Where it actually changes all instances in script of that old object name to the new name.

Crimson Wizard:
Looks really good.


--- Quote from: tzachs on 08 Jul 2012, 22:43 ---For rooms:
- The "Sort room by number" now sorts within folders. I actually don't understand why this feature is needed, if anyone
knows please tell me.

--- End quote ---
"Sort room by number" is useful if you added rooms with lower number after rooms with higher number. But with folders it will be obviously easier to group them. Actually I hope one day it will be possible to reference rooms by script name, rather than number.

Ryan Timothy B:
In all honesty everything should be accessible via script names. Completely eliminating the hard-coded numbering.

tzachs:

--- Quote from: Ryan Timothy on 08 Jul 2012, 23:32 ---Speaking of the "Find all usages", would it be possible to use your code to also have a "Refactor > Rename" ability? Where it actually changes all instances in script of that old object name to the new name.

--- End quote ---
Yes, this could be done. Feel free to add an issue to the new tracker...
I'm a bit concerned though, since the current implementation of "Find All Usages" is not as sophisticated as it should be and might cause undesired behaviors in some edge cases, so we probably should add a preview window that shows all changes with a check box list so you'd be able to uncheck unwanted changes.


--- Quote from: Crimson Wizard on 09 Jul 2012, 00:47 ---"Sort room by number" is useful if you added rooms with lower number after rooms with higher number. But with folders it will be obviously easier to group them.

--- End quote ---

Ahh, thanks, I forgot about being able to create rooms with high numbers..

Navigation

[0] Message Index

[#] Next page

Go to full version