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

subspark

And to the kind gent / madam who takes Alan's request on, I have another to add: For Garry's sakes please rename "winsetup.exe" to something more universal. "Config.exe" was a popular suggestion back in '08 but I'm now thinking that both compiled executables could be reconfigurable inside AGS/General Settings along with their name and icon.

AGS could even bake the program icon into the exe from the sprite editor. That would be one neat way to handle that stuff!  :)

Alan v.Drake

AGS Draconian r6 beta (June 02, 2012) DOWNLOAD
  • Improved D3D speed at reading the screen (needs further testing)
  • VSync for D3D on by default
  • VSync capability for windowed software mode re-enabled (if it does worse to you, just disable it)
  • Added an enum for directions to ChangeRoom(...) to make your life easier

monkey0506

Hey Drake, you seem to have your hands free with a recent release. :P

So maybe you can help out with the following notes I've taken about limitations in the editor plugin API:

THINGS THE EDITOR PLUGIN API NEEDS:

- Update project tree (Scripts node at minimum!) (can be accomplished via reflection, but a public function would be nice)
- Check for script modified in editor (Script.Modified needs to be updated more regularly)
- Refresh open script editor contents from disk. (we can use the IScriptEditorControl.Text property to do this, but we would need a reference to the open script editors to avoid having to reflect into the editor's own copy of this info, which is already being tracked)
- GUIControl.OwningGUI?? (I know the editor itself doesn't strictly need this reference, but it can be useful to plugins if there's a way to implement it)
- Notification if GUI(Control) is added, removed, or renamed. (to keep plugin data up-to-date)
- GUI.ScriptName, GUIControl.ScriptName (since Name can be null/empty) (this could be the script name, or referenced using the global gui array and Controls property, and always represents a script-safe reference to the GUI/control)

Alan v.Drake

Sorry monkey_05_06 but I don't speak API. I'm sure there are more qualified people to make these changes.
I just wanted to fix those annoying hangs on d3d mode, because I have an autosave feature on Wretcher and everything kept freezing up at room's change when the save (with screenshot) was performed.


- Alan

Yeppoh

I'm curious to know how you managed to make the GetBackBuffer() function to work. I passed evenings to figure out why I only got a black surface. Not to avail. Please enlighten me to spot my embarassing mistake.

Until now (for my personal use for the moment) I set-up a 255 scale transparency for Overlays and D3D RGB style tinting aside from the backward compatible Direct Draw one. I wonder to integrate these modifications into yours.

Alan v.Drake

Quote from: Nefasto on Mon 04/06/2012 13:18:18
I'm curious to know how you managed to make the GetBackBuffer() function to work. I passed evenings to figure out why I only got a black surface. Not to avail. Please enlighten me to spot my embarassing mistake.

Until now (for my personal use for the moment) I set-up a 255 scale transparency for Overlays and D3D RGB style tinting aside from the backward compatible Direct Draw one. I wonder to integrate these modifications into yours.

I made the backbuffer lockable using the proper flag, then commented the code used to cut away the game window from the FrontBuffer, and it worked. Check the diffs to see what I changed.

Of course if it works properly to everyone is still to be seen, heh.

- Alan


Yeppoh

#106
Okay ! I see what you did there that I didn't. Though I notice the StretchRect() function in the render loop. Was the size of the surface not the right one before being presented?

It's cool this way seems to works. Though it might not work with 8 bits depth games from what I know. But I guess at this point 8 bits depth games are far more better off with DD5.

Alan v.Drake

That was there since before, and I did not dare touch too much. I was pretty much surprised it actually worked.

- Alan

Crimson Wizard

I tried the Editor out, I do like the colour scheme more, but there's this terrible blinking when I change from one pane to another (best noticeable when changing between two script files)! Hurts me. :(
It's like Editor paints the pane with white first and uses gray only after.

Alan v.Drake

I believe thats due the editor pane being just a flat white area before scintilla does its magic.
It doesn't matter though, with Tzach's dockin panes there seems to be no blinking at all.

- Alan

Yeppoh

#110
Testing the hell out of this build of the Engine and Editor, I found a bug that seems linked to the Calin's true alpha blending add-up.

If I draw an image with an alpha channel, over a surface with no alpha channel - like for instance the background or part of it -, it seems to draw the image as if it has a 1 bit alpha channel instead of a 8 bits alpha channel, even if the alpha flag is checked as true in a function like DynamicSprite.CreateFromExistingSprite(spriteSlot, hasAlpha = true).

I didn't get very far to fix this in the source at the moment.

Other than that, I didn't find any other problem with this good build insofar.

EDIT: I made a quick fix of the glitch seemingly due from how the background bitmap is dealed by the engine - not sure, but there's a mixup between 24 and 32 bits depth at some point. Anyhow the fix works for now, though I wish to find a more elegant than the one I decided to go for.

abstauber

Just a quick question: what happens if I move over to the Draconian side of AGS? Will I ever be able to switch back, once you (hopefully not) get tired of this branch? Or will I be stuck with this forever? VSync is just sooo intriguing ;)

Crimson Wizard

Although this is up to Alan to make this decision in the end, I assume all good stuff will be eventually merged into main development branch.

BTW, Alan already copied some of his code to github, forking from my refactored branch.

Alan v.Drake

Yes, I should finish merging my features, but at the moment I'm somewhat busy and don't feel like coding.
Of course, there's nothing stopping other people from porting over the remaining changes, but that seems unlikely to happen.

The plan is to switch over to CW's refactored code and tzach's bells-and-whistles improved editor  :-D

I wish I had more free time for doing stuff!

@nefasto: So, where was the faulty piece of code ?

abstauber

Great, thanks for the clarification. (And also thanks for your work on improving AGS)

Yeppoh

#115
At present I did this fix :
Code: C++
void Manual_Draw(BITMAP *src, BITMAP *dest, int destx, int desty, int trans, int hasAlphaChannel = true)
.
.
.
  if (hasAlphaChannel)
	desta =  geta32(destlongbuffer[destyy][destxx]);
  else 
	desta = 255;
.
.
.
void DrawingSurface_DrawImage(ScriptDrawingSurface* sds, int xx, int yy, int slot, int trans, int width, int height)
.
.
.
Manual_Draw(sourcePic, dest, xx, yy, trans, sds->hasAlphaChannel);


I don't like it very much, because the alpha channel issue with backgrounds is still there, but it does the trick. I tried to set the default hasAlpha flag as true for DynamicSprite_CreateFromBackground(), but it only returns a blank alpha channel.

Now for something that might interest some people, I added some little feature for the AudioChannel.SetRoomLocation() function for the ambient sounds. I added a radius parameter so you can change the sound earshot and automatic panning depending of the player position relative to the sound location.

dbuske

I like this version of the editor.  I am using it for the SCIENCE FICTION Game.
I especially like the highlighting in the dialog editor.
What if your blessings come through raindrops
What if your healing comes through tears...

magintz

Hey, it'd also be nice to have some font support for .OTF. Monkey might have written some code last year for this, but don't think it ever got committed to core.
When I was a little kid we had a sand box. It was a quicksand box. I was an only child... eventually.

Tamanegi

#118
While running my game, I got an error:

Quote
(ACI version 3.21.1115)
Unable to create local script: Runtime error: unresolved import 'Character::ChangeRoom^3'
Apparently, it happens when you try to "changeroom" a character to a non-existing room number (like -1 or 0, to get him out of the way and have the game know he's not there as opposed to invisible), which causes no problems in vanilla AGS.
Don't Look! MAGS 12-2010
Mediocre Expectations Current development blog

Crimson Wizard

#119
Quote from: Tamanegi on Mon 08/10/2012 21:46:08
While running my game, I got an error:

Quote
(ACI version 3.21.1115)
Unable to create local script: Runtime error: unresolved import 'Character::ChangeRoom^3'
Apparently, it happens when you try to "changeroom" a character to a non-existing room number (like -1 or 0, to get him out of the way and have the game know he's not there as opposed to invisible), which causes no problems in vanilla AGS.

This is a VERY WELL known problem with Draconian edition. :D
In fact Alan fixed it, but in development version that is not yet released (long story, not interesting).
I don't know why he won't fix it here though, that would be most reasonable thing to do.

The reason of this problem is that this function ChangeRoom now wants 4 parameters instead of 3. 4th parameter is face direction.

SMF spam blocked by CleanTalk