AGS Draconian Edition 3.4.11 r10 (December 31, 2017)

Started by Alan v.Drake, Mon 26/09/2011 01:24:41

Previous topic - Next topic

Alan v.Drake

The Draconian new year's eve edition.
Updated to 3.4.11 + cleanup branch with many legacy things removed.

AGS Draconian 3.4.11 r10 (December 31, 2017) DOWNLOAD

Important:
Since I've built this version on top of the cleanup branch with many legacy features removed, you will have to open and save your old project with vanilla AGS 3.4.11 before being able to import it on the Draconian edition.
Some default templates might not be working, upgrade them with vanilla AGS instead.


Improvements to the Editor:
  • Dark text-editor theme, to preserve your sight
  • Checker pattern on the sprite import window background
  • Multi-sprite replace (select multiple sprites and start a tiled import with "replace selected sprites from file")




    Improvements to the Engine:
  • Sounds generated by Character views are now automatically panned relatively to their position on the screen
  • 3 new Software filters: Scanlines 2x, TV CRT 4x and PC CRT 4x
  • Gamma for windowed mode (Only for brightening up, though)
  • Directional sounds are now panned as well
  • Blend modes



    Experimental features:
  • bool Room.Exists(int room): returns true if "room" exists
  • void Game.SetDirectionRatio(float ratio): change how AGS should decide which direction to face (1.0 default, 1.3 2.0 is good for perspective)
  • Character/Object/Overlay/GUI.BlendMode(enum BlendMode): change the blend mode (only supports 32bit sprites)


    Source: https://github.com/AlanDrake/ags-draconian/tree/ags4draconian



    Previous versions

    AGS Draconian 3.4.1 r9 (October 16, 2016) DOWNLOAD

    AGS Draconian r8 (October 02, 2016) DOWNLOAD

    AGS Draconian r7 (November 28, 2012) DOWNLOAD (fixed)[/size] (Note: this version doesn't have Calin changes to DrawingSurface because the one who requested it had trouble with them)
    HOTFIX 2 for DefaultVolume being ignored + Audio not repeating on load (April 11, 2013)

    AGS Draconian r6 beta (June 02, 2012) DOWNLOAD

    AGS Editor Night theme  (vanilla-compatible): DOWNLOAD.

    AGS Draconian r5 beta (April 13, 2012) DOWNLOAD

    AGS Draconian r4 (April 06, 2012) DOWNLOAD

    AGS Draconian r1: DOWNLOAD
    Note: These mods can be used separately, if you only want the improvement on the Scintilla interface only copy "AGS.Controls.dll", if you want to be able to use #region/endregion copy "AGS.CScript.Compiler.dll" or if you're only interested in the engine's change "acwin.exe"



    - Alan


monkey0506

Looks sexy. What are these vertical indentation guides??

Do regions show up in the drop-down at the top of the script? I'd very much like them to if nobody else thinks I'm insane for suggesting it. :=

Alan v.Drake

Quote from: monkey_05_06 on Mon 26/09/2011 04:54:49
Looks sexy. What are these vertical indentation guides??

Do regions show up in the drop-down at the top of the script? I'd very much like them to if nobody else thinks I'm insane for suggesting it. :=

No they don't show up in the dropdown list.
About the indentation thing look at the picture closely, there are vertical dots between the while brackets, are they too bright ? I didn't want them to bee to much of a eye sore.


- Alan

monkey0506

#3
I see what you mean about the indentation guides. It works (and shows up) especially well when you have multiple levels of indentation.

One thing I've noticed about the regions is that autocomplete is still showing up. I suppose some people might want it to work for preprocessor evaluations, so that their macros will show up, but could you look into disabling it if the first three letters of the line are "#re"?

Also, I'm not sure how easy it might be to modify the Scintilla control's folding further, but I really hate the way that it collapses things. If it's too much work then just ignore me, but the way Visual Studio does it is very nice. Basically it would look more like:
[-] void OhMyGod()
 |  {
 |    // fancier folding
[-]  while (true)
 |    {
 |      // Indentation guides
 |-   }
 |- }
...and when collapsed...
[+] void OhMyGod() [ { ... } ]
So instead of collapsing from the opening brace, it would collapse from the corresponding function name or if or while statement, and instead of that hideous line underneath showing that there is hidden code, it would show a greyed out bit of text. Again, if that's not really feasible then just feel free to ignore this bit.

Oh, and more graphics filters! Invent new ones, I don't care, just give me moreeeee! ;D

Oh, oh, and...Dual will love you for making it so he can click on the line numbers to select the text again. He hated the tedious act of having to click on the line, press End, hold Shift, and press Home. I mean, what is this, the Stone Age? :P

Alan v.Drake

Quote
One thing I've noticed about the regions is that autocomplete is still showing up. I suppose some people might want it to work for preprocessor evaluations, so that their macros will show up, but could you look into disabling it if the first three letters of the line are "#re"?

I guess it could be done, but I don't think it's worth the hassle. But if you want to try and do it yourself, the place to look at should be inside ScintillaWrapper.cs, private void ShowAutoCompleteIfAppropriate(int minimumLength)

Quote
So instead of collapsing from the opening brace, it would collapse from the corresponding function name or if or while statement, and instead of that hideous line underneath showing that there is hidden code, it would show a greyed out bit of text. Again, if that's not really feasible then just feel free to ignore this bit.

Not feasible, Scintilla can't do that, sorry.

Quote
Oh, and more graphics filters! Invent new ones, I don't care, just give me moreeeee! ;D

Suggest a proper one and I shall evaluate.

Quote
Oh, oh, and...Dual will love you for making it so he can click on the line numbers to select the text again. He hated the tedious act of having to click on the line, press End, hold Shift, and press Home. I mean, what is this, the Stone Age? :P

What do you mean ? It always worked and still does. Is Duals clicking on the breakpoint area instead of the numbers ?



By the way, I made a dark colored version of the editor for people who aren't too thrilled of coding with white backgrounds.



Download: http://www.mediafire.com/?6r3fw4xtw5dwtoh


- Alan



Ryan Timothy B

#5
Something that bothered me a few days ago, is there any chance that enums could show as a different color?
Like  eRepeat  should show up as blue or something that isn't used already. That way it keeps it distinguishable from an int variable or something.

I really like the dark background for scripting. That's something I'd definitely use if the colors are setup nicely.

Edit: I'm still waiting for someone to tackle the alpha blending dynamic sprites. That would be super nice. Or someone to change the way GUI's work with alpha buttons and such to work just like layers in Photoshop regardless of what background image the GUI is using.

Calin Leafshade

Quote from: Ryan Timothy on Tue 27/09/2011 15:08:39
Edit: I'm still waiting for someone to tackle the alpha blending dynamic sprites. That would be super nice. Or someone to change the way GUI's work with alpha buttons and such to work just like layers in Photoshop regardless of what background image the GUI is using.

Would you accept an OOP plugin? Or do you distrust plugins?

Ryan Timothy B

#7
Well, for Journey of Iesir being a commercial game, I'd prefer to not use a plugin. For that I'd still prefer it built into AGS. I know you've already used it for Eternally Us and out of the 16,000 downloads, no one has reported an issue. Perhaps one day I'll crack, but the project isn't near complete yet and I've left all my code ready to be able to swap over to alpha blending dynamic sprites. So either AGS will get this built-in before the project is complete, or I'll just eventually use your plugin.

Also you can still make that Box2d plugin of yours. I'd name my future babies after you, and hopefully my daughter would be just as cute as you too. ;)


Edit: Also another feature I'd like to see added to the editor. Being able to press the back button on your mouse to go back to the last thing you were at, or last line in a script. So if I was in the globalscript and moved to the room editor. If I pressed the back button I'd like it to go back to the globalscript at the line I was working on. Or if I scroll up the list in the globalscript and edit something near the top, pressing the back button should take me back to where I last was. The C# editor has this feature.

Alan v.Drake

What's the deal with DynamicSprites ? I only used them once, give me a demo or something with examples and comments of what should happen and we'll see what can be done.

Enum colors: that stuff involves the lexer which lacks a proper keyword for them and implementations and whatnot. I'm not touching that for now.

Mouse back button: I don't have back buttons on my mouse and I don't have any idea how to code that properly. But it would be nice to have bookmarks.

By the way, is there any of you using that beta 3.2.2 verison of the editor with docking panels ? Does it work proper ?
I'd like to make my changes over there, if there aren't any weird bugs.

- Alan

Dualnames

monkey05_06: LOLOLOLOLOLO.

Also I've just been used to click there so much, now it's hard not to click on the breakpoint area. AND YES, we're not on the Stone Age, I mean, yeah, pixel shaders are great, but wouldn't be great not to script on my own the following stuff I've been using over in my games.

Character. Face (enum direction);
eEventAfterFadeIn
Character. Position (int x, int y); (this is to help testing a lot)
Character. ChangeSpeed (int tospeed); (This is to avoid doing all the tedious stop moving and shit)
Abs(int number);

And the list is practically endless.


Worked on Strangeland, Primordia, Hob's Barrow, The Cat Lady, Mage's Initiation, Until I Have You, Downfall, Hunie Pop, and every game in the Wadjet Eye Games catalogue (porting)

Calin Leafshade

The DynamicSprite problem is actually trivial to fix if you take the drawing code from AGSBlend and put it in the DrawImage function with some catches for non 32-bit cases.

I just havent been arsed to fix it yet.

monkey0506

Quote from: Alan v.Drake on Tue 27/09/2011 14:39:53
Quote
One thing I've noticed about the regions is that autocomplete is still showing up. I suppose some people might want it to work for preprocessor evaluations, so that their macros will show up, but could you look into disabling it if the first three letters of the line are "#re"?

I guess it could be done, but I don't think it's worth the hassle. But if you want to try and do it yourself, the place to look at should be inside ScintillaWrapper.cs, private void ShowAutoCompleteIfAppropriate(int minimumLength)

Just from glancing at that file, wouldn't it simply be as easy as returning from the function without showing the autocomplete window if the current line starts with "#re"? The Scintilla control has methods for getting the contents of the current line. You might have to manually trim whitespace, but I'm pretty sure there's a built-in function on C#'s String type for that, isn't there? So I don't see where "the hassle" would be at to write a few lines of code. If you're typing out the name of a #region in the AGS Editor then the only way to stop the autocomplete from replacing things that remotely match is to press the Esc key at every word. It would seem much more of a hassle to me to deal with that than to have to write the exception into the wrapper code.

Regarding the collapsing, is there at least a way to make it not look so hideous? Even if you can't collapse to the parent token, it still just looks aesthetically horrible.

Ryan Timothy B

Quote from: monkey_05_06 on Tue 27/09/2011 22:20:15
Even if you can't collapse to the parent token, it still just looks aesthetically horrible.
I agree. I also write my code with the opening brace below the function call or if/while statement. It looks terrible and sets off my OCD alarm with a single brace there with no visible closing brace. That's one reason why I never use the collapsing features.

tzachs

Well done Alan, it looks really nice!

About the vertical guide lines, I don't know if you did it already, but if you didn't, then it would be nice if each vertical nesting level had each own color. I have it in visual studio via an addon, and it really helps things look nice and neat.

And regarding the dark skin you did, it would be great if users would be given the option to create their own skin, though probably a lot of dirty work to code that.

Khris

Great work; love the new folding.

Since I put my {s at the end of the same line (which is way prettier anyway :=) folding looks just fine.

Alan v.Drake

#15
Guys! How the heck do I add commands so the AGS compiler recognizes them ?
I'm attempting at make a Tint(R,g,b, s, l) for regions, but the AGS compiler still believes it should have 4 parameters.
Where am I supposed to make changes ? I was guessing agsdefns.sh, but obviously I was wrong.


- Alan

EDIT: txtspelling my arse!

Calin Leafshade

The compiler is in the native DLL which isnt open sourced yet. So sorry, no new commands.

EDIT: Actually thats not true. In the platform.cpp file you should see all the functions. You could add one there and also add the definition in the agsdefs file.

Alan v.Drake

#17
Oh well,it turns out it was my fault, I had made the change in the wrong place inside agsdefns.sh, on a obsolete function instead of the right one.
All's well that ends well.

EDIT: Ah, yes! At last it appears to work. I'll do extensive tests tomorrow. Obviously it'll break compatibility.

- Alan

Ryan Timothy B

Do you think you'd be able to make a Character.LightLevel property? AGS already uses light level with the regions to darken/lighten a character, but it was never added as manual function.

Calin Leafshade

It has just occurred to me that its possible to make new functions and stuff *without* the compiler being open.

We cant add keywords like switch or ternary operations but functions we definitely can.

This needs investigating..

SMF spam blocked by CleanTalk