AGSEditor: New features (Source code now available)

Started by tzachs, Sun 31/10/2010 23:48:35

Previous topic - Next topic

tzachs

Like Calin, I have a beta ready to test some new features I added.
The features are desperate to be tested, the more feedback the better!

THIS IS BETA. TEST ONLY ON A BACKUP OF YOUR GAME!!!

Features Added:

- Loop editing capabilities in View Editor.
 You can now: copy loop, cut loop, paste loop, paste loop flipped, flip all frames in loop and
 quick import loop from folder (the first sprite you select in the folder will be the first sprite
 in the loop, followed by the rest until the end of the folder).
 To access these capabilities, right click next to the loop you want to edit.

- Enhanced Find/Replace
 * Added an option to choose between find/replace in current document, or in current
    project (until now it was always current document).
 * Added a Find All (Ctrl+Shift+F or from the menu) & Replace All (Ctrl+Shift+E or from the
    menu). The "Find All" will open a list box with all of the findings, double clicking an item
    in the list will navigate you to the appropritate line.
 * Added Auto-Complete to the combo boxes for Find/Replace that completes from the
    previous searches.
 * Find/Replace will also work in dialogs now.
 * Find window will not take focus. So that you can find a certain keyword, off click from  
    the Find window, edit the line in the script editor and continue with the Find window.


- Find All Usages (pretty basic for now though)
 Right click on a member in the script, and select "Find All Usages" to get a list of all
 usages of this member. Double clicking an item in the list will navigate you to the
 appropriate line.

- Fixed this bug.

Known Issues:

This should be fixed in the new release.
- Find All Usages on a member which was defined in the scope of a single file, will find
 usages of members with the same name on different files as well.


- Find All Usages on a member of a struct will find usages of members with the same name
 of different structs as well.

- Since the Auto Complete for ComboBox in dot net is apparently not case sensitive and
 can't be configured to be (WTF?), this causes the following problem:
 If you enter a new name to find/replace (for example "string"), you won't be able to enter
 the same name but with a different capitalization (for example "String"), it will be
 considered as the first one. Now, I don't see anyway to fix that besides implementing a
 new combo box which I don't want to do, so tell me if you find this bug critical (or know
 how to fix it). I can roll back the auto complete feature if you think this is a critical bug.

Download

EDIT BY CJ: removed download links, get 3.2.1 beta 1 instead which integrates these changes

monkey0506

w00t for Find/Replace in entire project.

Matti

Quote from: monkey_05_06 on Sun 31/10/2010 23:58:43
w00t for Find/Replace in entire project.

Seconded! The loop stuff is pretty cool too. No time to check it out right now though..

Knox

--All that is necessary for evil to triumph is for good men to do nothing.

Dualnames

"- Loop editing capabilities in View Editor.
  You can now: copy loop, cut loop, paste loop, paste loop flipped, flip all frames in loop and
  quick import loop from folder (the first sprite you select in the folder will be the first sprite
  in the loop, followed by the rest until the end of the folder).
  To access these capabilities, right click next to the loop you want to edit."

This beats any addition ever made for AGS in the future to come (including porn, pink, kim kardashian)!!!

The Find/Replace beats the above addition.
Tzachs you flight of the concord you!! :D
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

Dual, I'm pretty sure you were saying in IRC that "AGS doesnt need to be changed" and "It's not AGS if CJ didnt do it"

Make up your damn mind.

Dualnames

Quote from: Calin Leafshade on Mon 01/11/2010 14:12:24
Dual, I'm pretty sure you were saying in IRC that "AGS doesnt need to be changed" and "It's not AGS if CJ didnt do it"

Make up your damn mind.

I just never needed to move my gui controls with the keyboard that's all. But I've been using find and search long-time, and it's been a pain at times.
The real reason is I'm too goddamn cool to make up my mind. Or just retarded.
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)

Ryan Timothy B

I haven't downloaded this, but if you're working on the Find/Replace, it would be nice if the window didn't take focus. So that you can find a certain keyword, off click from the Find window, edit the line in the script editor and continue with the Find window.

It would be super cool if the window would be at half transparency or something when you're off clicked from it.

cianty

I don't have the time to test it now but those features are AWESOME and I hope to take advantage of them in the future. Very very useful!
ca. 70% completed

tzachs

Thank you all (better than porn, really?)  :)

Quote from: Ryan Timothy on Mon 01/11/2010 17:16:02
I haven't downloaded this, but if you're working on the Find/Replace, it would be nice if the window didn't take focus. So that you can find a certain keyword, off click from the Find window, edit the line in the script editor and continue with the Find window.

It would be super cool if the window would be at half transparency or something when you're off clicked from it.

That's a nice suggestion, I'll see if I can implement it.

Lt. Smash

Quote from: tzachs on Mon 01/11/2010 18:47:49
Quote from: Ryan Timothy on Mon 01/11/2010 17:16:02
I haven't downloaded this, but if you're working on the Find/Replace, it would be nice if the window didn't take focus. So that you can find a certain keyword, off click from the Find window, edit the line in the script editor and continue with the Find window.

It would be super cool if the window would be at half transparency or something when you're off clicked from it.

That's a nice suggestion, I'll see if I can implement it.
Or (better), like the find window in Firefox, that actually isn't a window, but integrated into the GUI ;)

Shane 'ProgZmax' Stevens

tzachs- does the find-replace stuff work in dialog scripts now?  If not, it would be nice to introduce this functionality to dialogs since they have pretty much the same functionality of other scripts.

tzachs

No, I didn't implement it for the dialogs (and in fact, I didn't know it didn't work on them already).
I'll see if I can include the dialogs as well, thanks for the tip.

tzachs

Bump!
New version is available, and the source code is now available too, the links are in the first post.

New additions:
- Fixed Ryan Timothy's reported bug
Ryan, if you can test that the fix works, I will be grateful.

- Implemented Ryan Timothy's suggestion, so that the find window will not take the focus. (Sorry Lt. Smash, I felt it was more easy and appropriate to keep the find as a seperate window).

- Implemented ProgZMax suggestion, about supporting Find/Replace in Dialogs too.

- Fixed the following issue in Find All Usages:
Find All Usages on a member which was defined in the scope of a single file, will find
usages of members with the same name on different files as well.


Ryan Timothy B

#14
Excellent stuff. I really like the search window. Only thing I felt may be a little odd was that when there isn't anything by the string you're searching for, once you click ok on the popup, it closes the search. Not a big issue.

As for the annoying popup thing, it's pretty much fixed. The only issue is when you hover the mouse over the drop-down thing at the top. The one that allows you to quickly move to different functions in the script. Once you hover over that, the popup will show up and stay visible.

But it's not often that someone will hold their mouse above the drop-down without actually using the drop-down.


Also I'm not sure if this is relevant to what you've done, or perhaps AGS has always said this and I've never read it. At the bottom it says:
AutoComplete error: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

No idea what it means. :P It doesn't say it anymore now that I've closed it and reopened it. Odd. Not sure what I would have done to have that show up.

tzachs

Thank you Ryan, I uploaded a new version with fixes.

Quote from: Ryan Timothy on Sat 18/12/2010 23:56:14
Excellent stuff. I really like the search window. Only thing I felt may be a little odd was that when there isn't anything by the string you're searching for, once you click ok on the popup, it closes the search. Not a big issue.
Fixed!

Quote
As for the annoying popup thing, it's pretty much fixed. The only issue is when you hover the mouse over the drop-down thing at the top. The one that allows you to quickly move to different functions in the script. Once you hover over that, the popup will show up and stay visible.

But it's not often that someone will hold their mouse above the drop-down without actually using the drop-down.
Fixed!

Quote
Also I'm not sure if this is relevant to what you've done, or perhaps AGS has always said this and I've never read it. At the bottom it says:
AutoComplete error: Invoke or BeginInvoke cannot be called on a control until the window handle has been created.

No idea what it means. :P It doesn't say it anymore now that I've closed it and reopened it. Odd. Not sure what I would have done to have that show up.
I'm not sure if it's related to something I did or not.
I added a dump in case that happens again.
So, if you encounter this again (with this version), you should hopefully find a file in the AGS folder named "AutoComplete Dump.txt", and if you'll send me the file I'll see if I can figure it out.

subspark

Any chance someone out there can fix these?



Cheers,
Sparky.

Shane 'ProgZmax' Stevens

I don't actually encounter those alignment problems myself, subspark.  Are you using really large windows fonts or something?

tzachs

subspark, it seems that you don't have the latest version (basing that on the fact that you don't have a "Find" button in the color finder window), and that possibly some of these problems are already fixed.

I went through all of the problems you indicated, and like ProgZMax, I don't encounter most of them.
I still see the problem with the Lip Synch and the Color number label, but that's it.
In the dialog window I have a scrollbar so I can access the buttons, and all the rest look fine on my monitor.
Oh, and I didn't find the "Hotspot marker" window anywhere, maybe that's obsolete...

Shane 'ProgZmax' Stevens

Yeah, if it's one of the older versions of the editor CJ had reported problems with the window panes and such but fixed it in the next version.  This may be one of the 3.0 releases?

subspark

Yeah sorry guys, this is an old fix request originally sent to Mr Jones. ::) I'm still getting many of these glitchy bugs with 120dpi fonts so I thought now might be a good time to relay this info to you so that it might be fixed.
Windows offers two essential dpi defaults, 96 (for small and moderately sized monitors) and 120 (for larger monitors such as the one I use). Would you be kind enough to look into this, tzachs/Calin? - If you find a spare moment for perfection?

Happy new year guys!
Was Santa kind to you all this year? :P

Cheers,
Sparky.

tzachs

Actually I'm running with 120 dpi as well, so maybe that's not the issue.
I guess I could move stuff around, but I fear that it will ruin it for other computer configurations,
so I'd rather not touch it, and leave it to somebody who might understand this topic better.

subspark

Also a general export mask option for the Room Editor would be nice. I often create walkable areas, hotspots and walk-behinds for rooms that I tend to later invalidate by moving things around/altering room width, etc.
An export mask feature would allow me to edit the raw bitmap and save me manually printing screen on my Apple Keyboard. ;)

Cheers,
Sparky.

Calin Leafshade

Guys, I think we need to seriously think about organising this into some kind of cohesive 'thing'.

There are lack-luster feature requests over 3 threads now which seems rather unfocused.

The problem is that I know nothing about programming and source control and project-managing stuff. (only the little i have taught myself in the past 12 months or so) so someone with alot more experience would need to coordinate it. (I nominate Tzach ^_^)

CJ hasnt logged in for about 5 weeks now so perhaps we should organise ourselves and maybe submit out 'organisation' to him for approval or something.

tzachs

Well, I basically agree with Calin and think we need a bunch of stuff (listed below),
where source control is the most urgent (IMO), and I also have no problem on taking an
organizational role on myself.
However, since CJ has already declared that he's planning on creating a source control system
himself, and that this is still his baby and he just released the source of the editor to test the waters,
I think we are maybe a bit ahead of ourselves, and need to give him some time.

Here's the stuff I think we need:
1. Source control system.
The manual merge that Calin did to create the integrated version is
error prone and wouldn't hold in the long term.

2. Issue tracker.
We will be able to report issues & feature requests, categorize them, prioritize them
according to popular demand, and developers would be able to voluntarily assign themselves to issues,
thus assuring that an issue will not be worked on by two developers at a time.

3. Find ways to make the code more accessible for other developers.
As luck would have it, CJ is an excellent programmer and organized,
so the code is a lot more organized and clear than what I expected from a project that was
developed for years by a single person.
But still, since this is a pretty large code-base, we need to learn it and create help files for code,
class diagrams, point out the main classes and their roles, so the top level design of the application
will be clear and out in the open.

4. Have a subforum for AGS development (this also relates to #3).
We need to discuss and make some decisions, and point out some basic rules.
For instance, we need to agree on a set of coding style guidances (well, CJ has kept a consistent
coding style, we just need to assemble it into a sticky post with all the rules a developer has to adhere to).
We also need to decide on the general directions we want to take the code to, and on what is allowed and what
isn't allowed. For instance, I decided on myself to target dotnet 3.5, but maybe the community doesn't agree with me?
Also, am I allowed to integrate other source control projects? etc etc.

subspark

Yeah totally agree guys. On all points. One important thing your missing however is naming conventions. This has saved our production in the past and many before it. Strict, logical naming conventions are key to quickly gaining a deep understanding a project hierarchy. I created and continue to manage Screen 7's source control for Indiana Jones and the Fountain of Youth and I'm a master of project management. If you guys need a hand with anything, please don't hesitate to ask. I'll be happy to help you where I can, if necessary at all.

Best of luck goes to you in mounting this effort.

Cheers,
Sparky.

Pumaman

#26
Sorry for my long absence!

Progz, tzachs and Calin, great work on taking on board the editor code and making improvements! I think I've now been persuaded that open-sourcing the whole of AGS (including the engine code) under the same model is a workable way forward.

Is it correct that the latest version of the editor code with all your combined changes is this one that Calin posted?
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=42092.msg563260#msg563260
Calin -- could you please upload the source for this Christmas release, so I can merge it into my trunk?

However, there are some things I need to do before we proceed:
1. Source control server. I need to set this up, and will take care of merging in you guys latest changes when I've got it working.
2. Officially release 3.2. I need to take stock of what issues are preventing this from going "official" -- is it just the background import crash? Can somebody provide a reproducible GUI file that causes this?
Bearing in mind the work you guys have done, I might skip releasing 3.2 to the website, and create a 3.2.1 Beta 1 release that includes your latest changes plus a couple of engine bug fixes that I can do. Then, release 3.2.1 ASAP.

Quote4. Have a subforum for AGS development (this also relates to #3).
We need to discuss and make some decisions, and point out some basic rules.
For instance, we need to agree on a set of coding style guidances (well, CJ has kept a consistent
coding style, we just need to assemble it into a sticky post with all the rules a developer has to adhere to).
We also need to decide on the general directions we want to take the code to, and on what is allowed and what
isn't allowed. For instance, I decided on myself to target dotnet 3.5, but maybe the community doesn't agree with me?

Yes, this is important. For example, at the moment the AGS source code is built with VS2008 and targetted to .NET 2.0.
I would like it to remain like this for now, because:
* VS2008 -- while upgrading the C# editor code to VS2010 is trivial, the Native assembly contains code specific to the C++ compiler in VS2008 and would need some work to update it all to work with the latest version. Therefore please leave this alone and use VC# Express 2008.
* .NET 2.0 -- I want AGS to have a low barrier to entry, ie. people shouldn't be put off downloading it because it requires 3.5. While there are some nice 3.5 features like LINQ that it would be nice to use, at the moment I'd prefer to keep it with 2.0 which practically everyone has installed anyway.


In terms of open-sourcing the rest of the code, there are a couple of issues:
* It's C++ code. The editor C# code that I've already released is reasonably structured and organised, and you guys seem to have been working with it no problem.
However, the C++ code has a legacy that dates back 10 years and is in a totally incomparable state. Just getting your head around the control flow and how it manages to work at all is something that would take a significant amount of time -- not to mention the fact that C++ as a language is more complex than C# (memory needs to be freed, pointers to pointers, etc).
* The editor's Native DLL is a mixed-mode managed and native assembly, which is not supported by the free VS Express editions. Therefore you would only be able to compile it with the full paid-for version of VS2008. This is another reason why I didn't include it in the initial code release.

Joseph DiPerla

Hey CJ, this is what I use on adventurestockpile.com to host user projects, maybe this might be useful for you as well:
http://projectfork.net/
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

tzachs

Quote from: Pumaman on Mon 03/01/2011 17:35:17
Sorry for my long absence!

Progz, tzachs and Calin, great work on taking on board the editor code and making improvements! I think I've now been persuaded that open-sourcing the whole of AGS (including the engine code) under the same model is a workable way forward.
Awesome, this is very encouraging to know, thank you!  :D

Quote
Is it correct that the latest version of the editor code with all your combined changes is this one that Calin posted?
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=42092.msg563260#msg563260
Yes as far as I know, but Calin needs to confirm.

Quote
* VS2008 -- while upgrading the C# editor code to VS2010 is trivial, the Native assembly contains code specific to the C++ compiler in VS2008 and would need some work to update it all to work with the latest version. Therefore please leave this alone and use VC# Express 2008.
Hmmm, I think both ProgZ and Calin used VS2010, so you might have a problem opening it with VS2008...
Quote
* .NET 2.0 -- I want AGS to have a low barrier to entry, ie. people shouldn't be put off downloading it because it requires 3.5. While there are some nice 3.5 features like LINQ that it would be nice to use, at the moment I'd prefer to keep it with 2.0 which practically everyone has installed anyway.
I was afraid you'd say that.
Unfortunately, I used dot net 3.5 for my changes, since my opinion differs from yours, for these reasons:
* I believe that today dot net 3.5 is considered to be a low barrier, and the vast majority alreay have this installed (unfortunately I don't know how this can be measured).
* I think that staying with 2.0 might actually put off potential editor developers, that are used to work with 3.5 (yep, some people are spoiled these days).
* LINQ is simply awesome! It both saves hours of work, and improves the code quality. There isn't a day goes by that I don't use linq in my day job...

Calin Leafshade

Thats actually not the latest version. The latest version includes syntax highlighting for dialog scripts and a half-finished spell check but i havent released it yet ^_^

However its all in a VS2010 Express solution so I will need to get hold of a version of VS2008 to downgrade it i'm afraid. Unless CJ can do this quicker than me?

I do agree with Tzach re:.NET however.

Figures I could find suggest that only 10% of users have less than version 3 of the framework so I really dont think its an issue and the benefits outweigh the costs.

I will upload the source this evening.

Wyz

Well since I'm an old-school C++ programmer releasing for the engine itself is music to my ears. I can't wait to dig into the source! :D

Btw, If you static link the .net libs users will not get messages about missing dlls. It increases the size of the binaries a bit but that's really not that bad.
Life is like an adventure without the pixel hunts.

Pumaman

Quote from: Joseph DiPerla on Mon 03/01/2011 17:43:41
Hey CJ, this is what I use on adventurestockpile.com to host user projects, maybe this might be useful for you as well:
http://projectfork.net/

Looks interesting, thanks!

QuoteHowever its all in a VS2010 Express solution so I will need to get hold of a version of VS2008 to downgrade it i'm afraid. Unless CJ can do this quicker than me?

Don't worry about downgrading it, I can do that easily enough when I merge the code.

QuoteUnfortunately, I used dot net 3.5 for my changes, since my opinion differs from yours, for these reasons:
* I believe that today dot net 3.5 is considered to be a low barrier, and the vast majority alreay have this installed (unfortunately I don't know how this can be measured).

From the AGS anonymous usage stats (I knew they'd come in handy one day!) I can tell you that 88% of AGS users already have 3.5 installed. 12% don't, which is 300 people that would have to upgrade their framework version.

However, of these 300 people, 10 are still using Windows 2000 on which .NET 3.5 is not supported. That would mean that those 10 people could no longer use AGS.

Therefore, if we take the decision to go to 3.5 it's something that we should consider carefully rather than just make on a whim. So for this AGS version I'd like to stick with .NET 2.0, but I'm certainly open to moving to 3.5 for the next version (3.2.2 or whatever), unless those 10 people come up with a heart-wrenching story of the problems it would cause them to no longer be able to use new versions.

Quote* LINQ is simply awesome! It both saves hours of work, and improves the code quality. There isn't a day goes by that I don't use linq in my day job...

I have no arguments with that!

Sslaxx

Quote from: Pumaman on Mon 03/01/2011 23:40:45However, of these 300 people, 10 are still using Windows 2000 on which .NET 3.5 is not supported. That would mean that those 10 people could no longer use AGS.
I suspect I'd appear as one of those ten, at least some of the time. It'd be a minor inconvenience for me (having to reboot into XP as opposed to launching the 2K VM), but it wouldn't make me not want to use AGS, so if switching to NET 3.5 offers the potential for new features then I (for whatever it is worth) would support it.
Stuart "Sslaxx" Moore.


tzachs

Quote from: Pumaman on Mon 03/01/2011 23:40:45
From the AGS anonymous usage stats (I knew they'd come in handy one day!) I can tell you that 88% of AGS users already have 3.5 installed. 12% don't, which is 300 people that would have to upgrade their framework version.

However, of these 300 people, 10 are still using Windows 2000 on which .NET 3.5 is not supported. That would mean that those 10 people could no longer use AGS.

Therefore, if we take the decision to go to 3.5 it's something that we should consider carefully rather than just make on a whim. So for this AGS version I'd like to stick with .NET 2.0, but I'm certainly open to moving to 3.5 for the next version (3.2.2 or whatever), unless those 10 people come up with a heart-wrenching story of the problems it would cause them to no longer be able to use new versions.
Interesting statistics, it's awesome that you have this information handy, and I can live with waiting for 3.2.2.

Monsieur OUXX

Quote from: Pumaman on Mon 03/01/2011 17:35:17
However, there are some things I need to do before we proceed:
1. Source control server. I need to set this up, and will take care of merging in you guys latest changes when I've got it working.

Yeah, I think that's REALLY critical, because once the initial enthusiasm for tweaks in the Editor (and possibly Engine) will have faded away, you might end up in the same situation as MAME or MUGEN -- that is, plenty of branches in the versions, with nobody knowing which one is the latest one, and most of them abandonned. and that will add a lot of inertia for new improvements.
I'm exagerating, of course, but... you know what I mean.
AGS's worth it! :)
 

Pumaman

Quote from: Calin Elephantsittingonface on Tue 04/01/2011 03:19:14
I present: source!

http://www.thethoughtradar.com/AGS/Editor/AGSEditorsrc.zip

Great, thanks!

I've now created an SVN repository. I've uploaded the original 3.2 editor code (basically the contents of the source code zip file I uploaded, but with some fixes to remove the post-build event and include the IrrKLang DLL so you don't need to download it).
It is here (username: guest, no password)
https://svn.adventuregamestudio.co.uk:7743/svn/ags/
Could a couple of you try this out and make sure you can connect with SVN and get the code. It should be read-only so you shouldn't be able to change anything, I will then create individual logins for people who are contributing.

I will now take the latest source uploaded by Calin and merge this in to what's in SVN.

Sslaxx

Quote from: Pumaman on Tue 04/01/2011 20:27:05
Quote from: Calin Elephantsittingonface on Tue 04/01/2011 03:19:14
I present: source!

http://www.thethoughtradar.com/AGS/Editor/AGSEditorsrc.zip

Great, thanks!

I've now created an SVN repository. I've uploaded the original 3.2 editor code (basically the contents of the source code zip file I uploaded, but with some fixes to remove the post-build event and include the IrrKLang DLL so you don't need to download it).
It is here (username: guest, no password)
https://svn.adventuregamestudio.co.uk:7743/svn/ags/
Could a couple of you try this out and make sure you can connect with SVN and get the code. It should be read-only so you shouldn't be able to change anything, I will then create individual logins for people who are contributing.

I will now take the latest source uploaded by Calin and merge this in to what's in SVN.
Any plans for when the engine release is to be added?
Stuart "Sslaxx" Moore.

Joseph DiPerla

Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

kaputtnik

I can connect and look at things I don't understand just fine, even though Firefox gives the usual warnings of dangerous self-signed certificates and other black magic.
I, object.

Calin Leafshade


Pumaman

Thanks for checking, guys.

I'm currently reviewing and merging the latest code into my trunk; there are a couple of things I need to refactor (for example, you can't add new methods to the IEditorComponent interface, because it breaks compatibility with plugins; also, the new GlobalGame class in the AGS.Types assembly isn't really the right thing to do). Anyway, I'll fix these things and put the final code into SVN in a couple of days when I'm done.

Quote from: Sslaxx on Tue 04/01/2011 20:36:24
Any plans for when the engine release is to be added?

The engine code is much more complicated because it has dependencies on various statically linked libraries, so I need to sit down and spend some time sorting it out so that it can be compiled easily on other machines. That's not my top priority at the moment, I'll take a look at it in a few weeks once we have this editor development process sorted.

Calin Leafshade

Quote from: Pumaman on Tue 04/01/2011 23:26:06
The new GlobalGame class in the AGS.Types assembly isn't really the right thing to do

I did think this was a rather bad idea and made little sense from an OO perspective.

Quote from: Pumaman on Tue 04/01/2011 23:26:06
You can't add new methods to the IEditorComponent interface, because it breaks compatibility with plugins

I think that was tzach for the find/replace.
How would one add things to an interface then? If you need to expand functionality without breaking compatibility with older plugins?

Knox

Even though I havent contributed much to the AGS community up to date (mostly asking questions :P) I would like to say that this is SO encouraging + exciting that a few good guys are working on the editor + new engine features (in the long run now that the engine might become open source)...anyways, just wanted to say a big thanks to you guys! Really awesome...
;D
--All that is necessary for evil to triumph is for good men to do nothing.

Shane 'ProgZmax' Stevens

So does this mean we need to get 2008 express if we want to continue contributing edits, CJ?  At this point I'm pretty satisfied with my additions and can't think of anything I'd add except, perhaps, folder support for characters and rooms which I'm sure anyone could do in a pinch, or maybe ellipsis shape support for the room edit drawing tools.  Basically, there just isn't a whole lot I feel needs improvement from my perspective to the editor.

Pumaman

Ok, I have merged the code, done some refactoring, and checked the result into SVN.

Can you guys please get the latest version and make sure it still builds for you, and test that the new stuff still works correctly?
Assuming that it does, I'll do a proper build of this code and release it as 3.2.1 Beta 1.

Comments on the code changes

I haven't had as much time to review the changes as I'd have liked, but just a few general comments to bear in mind for future changes:
* Please avoid making changes which are purely personal preference. For example, someone changed some of the fonts and colours in the script editor; please remember that AGS is used by 3000 people who are used to the current editor and change may be confusing. In this example, a proper solution would be to add a GUI to the editor to allow everybody to customize the script editor to their own preferences.
* Please maintain consistency with the existing code. While you personally may prefer "GuiGroup" to "GUIGroup", the existing code has "GUIControl", "GUIButton" etc so let's keep it consistent.
* If you are making a change that is complex and aren't sure of the best way to do something, please just ask on the forum here! Any changes which are 'architectural' in nature can be discussed and we can agree the best way to do something. It'll avoid having to refactor things later on.

Once again, thanks guys for all your hard work in adding these initial changes, and please don't take any of my comments as criticism; we're just starting out with open source AGS so we need to discover the best ways of working together.

QuoteHow would one add things to an interface then? If you need to expand functionality without breaking compatibility with older plugins?

Interfaces which are only used by plugins can have new methods added to them no problem. It's only interfaces which are implemented by plugins (of which I think IEditorComponent is in fact the only one) that can't be changed, because the plugin class has to match the interface exactly.

In this case an alternative solution was to use an event (which I have done), alternatively you could add a second interface with the new methods on it.

Quote from: ProgZmax on Wed 05/01/2011 05:02:52
So does this mean we need to get 2008 express if we want to continue contributing edits, CJ?

That would be best, yes. You can still use VC#2010 but would have to be careful when commiting changes, that you didn't check in a VS2010 version of the project file.

Calin Leafshade

#46
Exception:

Code: ags

System.Collections.Generic.KeyNotFoundException was unhandled by user code
  Message=The given key was not present in the dictionary.
  Source=mscorlib
  StackTrace:
       at System.ThrowHelper.ThrowKeyNotFoundException()
       at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
       at AGS.Types.BaseListSelectTypeConverter`1.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType) in C:\Users\Steve\Documents\ags\trunk\Editor\AGS.Types\PropertyGridExtras\BaseListSelectTypeConverter.cs:line 73
       at System.ComponentModel.TypeConverter.ConvertToString(ITypeDescriptorContext context, Object value)
       at System.Windows.Forms.PropertyGridInternal.GridEntry.GetPropertyTextValue(Object value)
  InnerException: 


As far as I can tell it happens when the property grid tries to get a string value for room 0 for a character (should return none).
I'm not sure if this is specific to my game files and somehow a character got its room set to 0 somehow.

I fixed it by editing my games XML file but it might be an editor issue.

tzachs

It seems that the Replace/Replace All functionality is broken in this version (it works in my original version).
Replace in document now replaces the first line of the file always.
Replace all in document now freezes the application (and from a quick debugging session, it seems to replace the same line all over again endlessly).

The rest of the features I put in seem to be working fine.

Quote from: Pumaman on Sat 08/01/2011 01:55:57
* If you are making a change that is complex and aren't sure of the best way to do something, please just ask on the forum here! Any changes which are 'architectural' in nature can be discussed and we can agree the best way to do something. It'll avoid having to refactor things later on.

That's good to know, the reason that I didn't ask is because I remember you saying that the code is provided as is without any support, so I didn't want to bother you (and nobody else has enough knowledge of the code as of now, I'm sure this will improve in the future).

Pumaman

Quote from: Calin Elephantsittingonface on Sat 08/01/2011 02:46:45
System.Collections.Generic.KeyNotFoundException was unhandled by user code
  Message=The given key was not present in the dictionary.

As far as I can tell it happens when the property grid tries to get a string value for room 0 for a character (should return none).
I'm not sure if this is specific to my game files and somehow a character got its room set to 0 somehow.

Actually this seems to be a pre-existing AGS 3.2 bug where it crashes if you delete/exclude a room that a character is set to start in. I've checked a fix in to SVN.

QuoteIt seems that the Replace/Replace All functionality is broken in this version (it works in my original version).
Replace in document now replaces the first line of the file always.
Replace all in document now freezes the application (and from a quick debugging session, it seems to replace the same line all over again endlessly).

Thanks for testing, I've now checked in a fix for this.
Can you please get the latest and make sure it's now working ok; also I slightly changed the way the standard Replace works to be more consistent with how VS does it.

QuoteThat's good to know, the reason that I didn't ask is because I remember you saying that the code is provided as is without any support, so I didn't want to bother you (and nobody else has enough knowledge of the code as of now, I'm sure this will improve in the future).

Well, it's not only me that can give feedback. Lately I've been quite bad at keeping up my appearances on this forum, but I'm confident that if I'm not around you guys can agree on the way to do things. In particular more experienced C# developers like yourself can provide guidance to less experienced C# devs which would be very useful.

Generally my opinion is that the most important thing is to keep consistency with the existing code. The editor architecture is not perfect by any means, but rather than everyone going off in different directions and adding bits in different ways, if we just keep within the patterns used in the existing code it'll be easier for everyone to follow.

Those of you that have contributed so far (is that just tzachs, Calin, progz?) can you please:
1. let me know under what name you'd like to be credited
2. post a quick list of your changes here so that I can assembly an accurate changelog

Sslaxx

Quote from: Pumaman on Tue 04/01/2011 23:26:06
Quote from: Sslaxx on Tue 04/01/2011 20:36:24Any plans for when the engine release is to be added?

The engine code is much more complicated because it has dependencies on various statically linked libraries, so I need to sit down and spend some time sorting it out so that it can be compiled easily on other machines. That's not my top priority at the moment, I'll take a look at it in a few weeks once we have this editor development process sorted.
Consider that id Software released the source code for the original Doom in an initially non-compilable state due to its use of proprietary libraries. It certainly did not stop people from getting it working, and there are people here who I am sure could get the code for the AGS runtime to work in a similar fashion (eventually, at least - I'd not doubt in the slightest it'd be hard going).
Stuart "Sslaxx" Moore.

tzachs

Quote from: Pumaman on Sat 08/01/2011 15:07:11
Thanks for testing, I've now checked in a fix for this.
Can you please get the latest and make sure it's now working ok; also I slightly changed the way the standard Replace works to be more consistent with how VS does it.
Tested and the fix works.

Quote
Well, it's not only me that can give feedback. Lately I've been quite bad at keeping up my appearances on this forum, but I'm confident that if I'm not around you guys can agree on the way to do things. In particular more experienced C# developers like yourself can provide guidance to less experienced C# devs which would be very useful.

Generally my opinion is that the most important thing is to keep consistency with the existing code. The editor architecture is not perfect by any means, but rather than everyone going off in different directions and adding bits in different ways, if we just keep within the patterns used in the existing code it'll be easier for everyone to follow.
I totally agree.
My only gripe here, is that experience in c# is not enough. Every code base tells its own story and requires understanding of its inner structure & patterns, a thing which only you fully understands at this point of time.
The rest of us will get there too eventually, but for now I don't feel we're really equipped to give advice on how things are suppose to work and how classes are supposed to interact with each other, we can only give advice on the technical side.
It doesn't mean we won't try though, but you can count on us making a lot more mistakes in the near future that stem from not fully understanding the design.
Not much to do about it, then let time run its course (and maybe also what I mentioned earlier, of doing a study of the code and writing some help documents with class diagrams etc).

I actually do have another somewhat related question, what are your feelings about integrating other open source projects (assuming they're stable and known-to-work)?
Quote
Those of you that have contributed so far (is that just tzachs, Calin, progz?) can you please:
1. let me know under what name you'd like to be credited
2. post a quick list of your changes here so that I can assembly an accurate changelog
Actually, I believe that helios123 also made a change to the editor.
Anyway, my name for credits sake is Tzach Shabtay, the entire list of my changes is in the first post in this thread, under "Features Added".

Calin Leafshade

Ok well, in the spirit of asking for help here is something i consider fairly urgent:

we need to reform the user properties system.

Currently the properties system is very set in stone and not easy to add to. It's just a form with alot of radio buttons essentially.

Really it should be closer to the VS system of a property grid to which editor components can add and get properties on the fly.
(or alternatively a tree + pane system similar to the editor itself)

What would be the best way to tackle this and how should the classes be integrated with the current class structure?

As for credit and stuff:

Steven Poulton
And I did:

GUIEditor -
Control snapping
Control alignment/distribution
Control grouping
Control locking
Anything else related to the gui editor

I added coordinates when dragging characters and objects in the room editor.

I coded the scintilla lexer for the dialog editor.

Shane 'ProgZmax' Stevens

#52
I don't care about or need any credit.  My additions were motivated purely by a desire to have these things in the editor; it's as simple as that.

As for specific changes/additions:

1.  Altered the character and gui color properties to display color values as a visible RGB swatch that can be easily customized and set directly without using the color picker in the editor.  This includes support for legacy AGS colors 0-31 (0,0,8*1, 0,0,8*2, 0,0,8*3, etc).

2.  Added support to view characters in room edit and adjust their placement accurately from the bottom-center of the sprite.  This was changed without any prior discussion by Calin to a separate checkbox property, which is fine.  Can also copy their coordinates to the clipboard via a right-click menu like objects.

3.  Cleaned up the arrangement of the Room Edit interface to comfortably fit in the mouse coordinates, the zoom and transparency sliders, with room
for new elements.

4.  Coordinates now display properly based on whether or not hi or low-res coordinates are enabled (and will copy to the clipboard correctly).

5.  Added a quick fix for a bug occurring for some imported games with no background images for guis that would load with -1 (instead of 0=transparent).  This led to a crash when running the game and seems to have been fixed (reported by Le Woltaire).  This should be 100% compatible with your acwin fix as all it does is check the gui background images as they load and change any negative values to zero in the editor.

6.  Disabled warnings when guis are larger than a room's dimensions.  Since room dimensions can vary widely, and because no harm is caused by an oversized gui, this warning seems unnecessary.  This was a fix we both agreed on in the wishlist thread but wasn't a high priority.

7.  New characters and characters without any frames in loop 0 of their normalview could generate a crash.  Now, instead of demanding an image the editor will display SPRITE 0 from the sprite list if loop 0 is empty.  

8.  By request, I made the middle mouse button function as a 'copy coordinates to clipboard' menu for all modes except Edges as it was suggested to me
that copying the coordinates when viewing regions/walkable areas and hotspots is very desirable, and because the right mouse has incompatible functionality in those modes with a menu (erase, hotspot/region/walkable area select).


I think that's about it.

Calin Leafshade

Quote from: ProgZmax on Sun 09/01/2011 10:40:23
2.  Added support to view characters in room edit and adjust their placement accurately from the bottom-center of the sprite.  This was changed without any prior discussion by Calin to a separate checkbox property, which is fine.  Can also copy their coordinates to the clipboard via a right-click menu like objects.

Ideally this needs to be moved to the user properties. A checkbox is a poor solution but dragging from the bottom centre is not standard behaviour.
Gui controls dont drag from their top left, nor do objects so why should characters drag from bottom centre?
The whole point of dragging a character in this manner is to do it by eye. If you wanted to do it with coordinates then you would do so in the property grid.

In any event, I didnt reverse your edit, merely made it non-compulsory.

Pumaman

QuoteConsider that id Software released the source code for the original Doom in an initially non-compilable state due to its use of proprietary libraries. It certainly did not stop people from getting it working, and there are people here who I am sure could get the code for the AGS runtime to work in a similar fashion (eventually, at least - I'd not doubt in the slightest it'd be hard going).

I could do, but why? What's the great hurry? I'd much rather take some time to sort it out into a proper working state than give people something uncompilable and have them waste time trying to make it work (and possibly generate invalid/crashing builds of the engine as a result).

QuoteTested and the fix works.

Thanks for testing.

QuoteMy only gripe here, is that experience in c# is not enough. Every code base tells its own story and requires understanding of its inner structure & patterns, a thing which only you fully understands at this point of time.

This is true, yes. I'll do my best to be around to answer any questions about it, but at the same time if I'm not around at the time then I don't want that to halt anything being done.

QuoteI actually do have another somewhat related question, what are your feelings about integrating other open source projects (assuming they're stable and known-to-work)?

Depends on various factors, such as the license (eg. I don't want to use any GPL code, but LGPL is ok), the usefulness of the library, etc. Do you have a specific example in mind?

QuoteActually, I believe that helios123 also made a change to the editor.

Ah thanks, I'll take a look at that.

Quote
we need to reform the user properties system.

Currently the properties system is very set in stone and not easy to add to. It's just a form with alot of radio buttons essentially.

Really it should be closer to the VS system of a property grid to which editor components can add and get properties on the fly.
(or alternatively a tree + pane system similar to the editor itself)

Are you talking about Custom Properties, or the editor's User Preferences dialog?

Quote1.  Altered the character and gui color properties to display color values as a visible RGB swatch that can be easily customized and set directly without using the color picker in the editor.  This includes support for legacy AGS colors 0-31 (0,0,8*1, 0,0,8*2, 0,0,8*3, etc).

By the way, I had to change this code to work with 8-bit games, since they can't have an AGS Colour Number greater than 255, and the palette needs to be scanned to find the nearest colour to the one chosen.
Something to bear in mind for future editor changes, anything dealing with colours needs to work with all colour depths.

I also made the ColourNumber property visible because with 8-bit games you quite often want to set this manually; and with hi-colour games it's useful to be able to see it.

QuoteIdeally this needs to be moved to the user properties. A checkbox is a poor solution but dragging from the bottom centre is not standard behaviour.
Gui controls dont drag from their top left, nor do objects so why should characters drag from bottom centre?

I agree with this, I'm not sure I see the point of having an option to make the bottom-centre jump to the mouse position. In what situations is this useful?


Going forward, we need a process for adding things to the AGS code. Just because somebody has a great idea for the editor, we don't want them just diving in and changing everything, when it might not be a feature that other people would find useful -- and might in fact break other things in the process.

So we need to decide on a way that people can propose a change, we can agree whether or not to approve it (or whether it might be better as a plugin, for example), and then if approved they can go ahead and do it.

kaputtnik

Quote from: Pumaman on Sun 09/01/2011 18:00:02
So we need to decide on a way that people can propose a change, we can agree whether or not to approve it (or whether it might be better as a plugin, for example), and then if approved they can go ahead and do it.


Since at the moment it seems that AGS development is heading towards a more or less structured model of a group of steady collaborators who have access to the code base, it might be a good idea to set up a bug tracker and a feature/feature request tracker. The active AGS community is quite large, and I guess we could accumulate lots of useful bug reports and maybe gather and choose from a list of features that make sense if people used a tracker, rather than posting on the forums. And the group of developers can split the workload much easier.
I, object.

Calin Leafshade

Quote from: Pumaman on Sun 09/01/2011 18:00:02
Quote
we need to reform the user properties system.

Currently the properties system is very set in stone and not easy to add to. It's just a form with alot of radio buttons essentially.

Really it should be closer to the VS system of a property grid to which editor components can add and get properties on the fly.
(or alternatively a tree + pane system similar to the editor itself)

Are you talking about Custom Properties, or the editor's User Preferences dialog?

I mean the editor user preferences.

If someone wants to edit or add a feature to the editor then its very likely that there would be some preferences associated with that feature.

As such it should be possible for an editor component to register new user preferences to some kind of dictionary and get those preferences

For instance, with the gui editor:

It is conceivable that a user might not like the control snapping. They find it an annoyance and its not applicable for the way they use the editor.

The gui controller should be able to query all the panes on the start up and register their preferences in the global preferences dialog for users to change.
and then the panes should be able to query the gui controller for those preferences and act accordingly.

tzachs

Quote from: Pumaman on Sun 09/01/2011 18:00:02
Depends on various factors, such as the license (eg. I don't want to use any GPL code, but LGPL is ok), the usefulness of the library, etc. Do you have a specific example in mind?

Yes!
It's called DockPanel Suite and provides docking abilities to panels a-la visual studio.

I'm not really good with licensing issues, so I'm not sure if it's GPL, LGPL or something else...
Here are the terms and conditions (copied & pasted from the documentation):

DockPanel suite is provided as free software with source code provided. You can freely use it in your applications (commercial or non-commercial). Weifen Luo, The author of the control, owns the copyright of the control, and is NOT responsible for any damage in your application caused by using this control, directly or indirectly.
Weifen Luo will feel honored if his name appears somewhere in your applications using this control (about box, documentation, etc).

mike_conley

Hey all - hope it's OK if I jump in here.

Quote from: PumamanGoing forward, we need a process for adding things to the AGS code. Just because somebody has a great idea for the editor, we don't want them just diving in and changing everything, when it might not be a feature that other people would find useful -- and might in fact break other things in the process.

You might be interested in a code review tool, like Review Board:

http://www.reviewboard.org/

The idea:  patches for AGS can be submitted for review, and commented on.  People put their eyes all over it, ask questions, etc.  When the review request gets the green light (or the "Ship it"), the review requester (or the project maintainer) can then apply the patch.

Screenshots
A demo instance to play with
List of happy users

Review Board is open-source, free to use, and MIT licensed.

I worked on Review Board for a Google Summer of Code project last Summer.  I still contribute in my spare time.  I'm also a huge fan of adventure games and AGS:  I'm really excited to hear that you're opening up the code!

Anyhow, I just thought I'd suggest RB.  You might find it useful.  No worries if it's not the direction you want to go.  But if you want to set it up, let me know, and I can help out.

All the best,

-Mike

Gilbert

Quote from: Pumaman on Sat 08/01/2011 01:55:57
Assuming that it does, I'll do a proper build of this code and release it as 3.2.1 Beta 1.

BTW, as V3.2 is not "officially officially" released yet (i.e. not announced on main page and the installer-less version is not available), would you just skip it and make V3.2.1 the "real" official version? Besides the changes in the editor, there're a couple of bug fixes in the engine, so would it be better to have V3.2 released first (with the less buggy engine), or just wait for yet another version?

Pumaman

QuoteSince at the moment it seems that AGS development is heading towards a more or less structured model of a group of steady collaborators who have access to the code base, it might be a good idea to set up a bug tracker and a feature/feature request tracker.

Yes, I definitely think this is important. We already have the bug/feature tracker here:
http://www.adventuregamestudio.co.uk/Newsite/BugTracker.aspx

Do we think that's useful enough for this, or do we need a more comprehensive bug tracking system?

QuoteI mean the editor user preferences.

If someone wants to edit or add a feature to the editor then its very likely that there would be some preferences associated with that feature.

As such it should be possible for an editor component to register new user preferences to some kind of dictionary and get those preferences

This is a good point, and I agree.
I'm not sure if it would be better to allow each component to provide a Windows.Forms.UserControl with the contents of its preferences options, or just to standardize everything as a PropertyGrid.

QuoteIt's called DockPanel Suite and provides docking abilities to panels a-la visual studio.

I'm not really good with licensing issues, so I'm not sure if it's GPL, LGPL or something else...
Here are the terms and conditions (copied & pasted from the documentation):

Interesting, I think I looked at that when first writing the AGS 3 editor, but there was a reason that I didn't use it. Can't remember what that was now though...
That license looks fine; if you'd like to experiment with using that in the editor, please do so.

Quote
You might be interested in a code review tool, like Review Board:
The idea:  patches for AGS can be submitted for review, and commented on.  People put their eyes all over it, ask questions, etc.  When the review request gets the green light (or the "Ship it"), the review requester (or the project maintainer) can then apply the patch.

Interesting. I think we need to discuss ideas earlier in the process though, not wait until someone has already written the code for them. We should be discussing whether to do the work, before somebody has actually gone ahead and done it.

QuoteBTW, as V3.2 is not "officially officially" released yet (i.e. not announced on main page and the installer-less version is not available), would you just skip it and make V3.2.1 the "real" official version? Besides the changes in the editor, there're a couple of bug fixes in the engine, so would it be better to have V3.2 released first (with the less buggy engine), or just wait for yet another version?

Yes, I plan to skip 3.2 and make 3.2.1 the real official version. That's why I'm not planning any more changes for 3.2.1, but just to ship it in its Beta 1 state if no bugs are found.

kaputtnik

Quote from: Pumaman on Mon 10/01/2011 19:38:08
Yes, I definitely think this is important. We already have the bug/feature tracker here:
http://www.adventuregamestudio.co.uk/Newsite/BugTracker.aspx

Do we think that's useful enough for this, or do we need a more comprehensive bug tracking system?

Hm, I didn't even know about that bug tracker - did you or strazer generate this list manually (or semi-manually) from forum entries, or how do you go about entering a bug or feature request? The feature requests in there might actually be a repository of good ideas, but aren't some of them slightly outdated?

Well, I'm not sure what this tracker can do, so I don't know if a more comprehensive bug tracking system is needed - but setting up a more powerful tracker like Mantis (or any other bug tracker) is quickly and easily done. Mantis at least has a lot of import functions, so the content of the old tracker could be migrated easily and organized to fit the current project needs. There is no (out-of-the.box) working integration with the SMF authentication system, unfortunately, maybe another bug tracker can do this? Any experts around?
I, object.

Joseph DiPerla

I personally like the Mantis bug tracker. As far as the old tracker... Thats been around a while. There were five us moderating it (Including myself). But I think over the years it has been neglected as CJ was implementing more features and fixing bugs faster than it could get posted on that tracker, lol.
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

Shane 'ProgZmax' Stevens

QuoteIn what situations is this useful?

When placing a character, people may want to see visually where the character collision point is and having the mouse locked to that area makes it easy, both for placement and aligning with walkable areas/walkbehinds.  I've found it quite useful myself and have no problem just implementing it for my own use without it being an official part of the editor, so no worries.

As far as 8-bit color mode, I forgot to add support because I never use it  :-X .  Shouldn't have required much work to adapt it, though.

tzachs

The tracker seems nice overall.
What I'm missing is an "Assigned to" field, so that devs would be able to assign themselves to bugs\features and let the others know that they're working on it.
Also sorting & filtering would be nice additions.
I'm not familiar with Mantis, if it has those options (and this tracker doesn't) then it's something to think about.

Calin Leafshade

Quote from: ProgZmax on Mon 10/01/2011 23:27:13
When placing a character, people may want to see visually where the character collision point is.

This seems reasonable, but i think drawing a cross at the origin point might be a better solution.
Snapping something to the mouse like that is not something computer users are trained to expect, for better or worse.

Kweepa

Quote from: tzachs on Mon 10/01/2011 23:34:14
I'm not familiar with Mantis, if it has those options (and this tracker doesn't) then it's something to think about.
Mantis does indeed have assignment, sorting and filtering.
It gets kind of slow with thousands of bugs, but I think it would work well for AGS.
Still waiting for Purity of the Surf II

Pumaman

Quote from: kaputtnik on Mon 10/01/2011 22:16:39
Hm, I didn't even know about that bug tracker - did you or strazer generate this list manually (or semi-manually) from forum entries, or how do you go about entering a bug or feature request? The feature requests in there might actually be a repository of good ideas, but aren't some of them slightly outdated?

This bug tracker goes back a long way, we need to review it and see which of the entries are now obsolete.
Something like Mantis might well be a good idea, or we can just spend a bit of time on the existing bug tracker bringing it up to scratch.

Also, since I seem incapable of finishing the new website release I was thinking about open-sourcing that as well so that it might actually get done; anyone interested in this?

AGS Manual

I have added the source for the manual to SVN in /trunk/Manual

Because AGS goes back a long time, the manual is built using a rather obscure tool called tex2rtf, and there are a couple of hacky utils that I wrote to mix in html pages like the tutorials.

Please can you guys try getting it from SVN, run the "run.cmd" file and see if it produces a valid AGS.CHM output file for you?
I'm not sure if I've included all the necessary dependencies, or if it might be using something else installed on my machine somewhere.

The main body of the manual is in the AGS.TEX file, edit this with a good text editor and you should get an idea of how it is formatted.

Joseph DiPerla

Do you use a CMS for the site? PHP? Your own PHP CMS System?
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

tzachs

Quote from: Pumaman on Wed 12/01/2011 22:10:46
Please can you guys try getting it from SVN, run the "run.cmd" file and see if it produces a valid AGS.CHM output file for you?
I'm not sure if I've included all the necessary dependencies, or if it might be using something else installed on my machine somewhere.

Didn't work for me.
I ran the "run.cmd" command and got:

hhc.exe - Unable To Locate Component
The application has failed to start because HHA.dll was not found.

subspark

QuoteI was thinking about open-sourcing that as well so that it might actually get done; anyone interested in this?
I'm more than happy to offer my time to produce the bitmaps necessary for a design refresh. I'm not sure what kind of work has been done on the design front but if one does not exist, I'm certainly happy to volunteer.
That is if you folks would like a modern'ed up refresh, exactly like what I'm doing for the AGS Editor.

Cheers,
Sparky.

Calin Leafshade

Wouldn't it be a good idea to update the manual format if it uses one that is obsolete?

Does anyone know of any good help systems? Literally every app i've tried has online help.

Wonkyth

There's nothing wrong with online help, just as long as the online help is shipped with it, so as not to require the online part.   :P
"But with a ninja on your face, you live longer!"

Calin Leafshade

Open sourcing the website seems like a very good idea.

We have some very talented graphic/web designers here so I am behind that.

As for myself, i'm a *terrible* graphic designer but my PHP is pretty good so i'd be happy to help in that department.

Pumaman

QuoteDo you use a CMS for the site? PHP? Your own PHP CMS System?

No, it is custom web pages.

Quotehhc.exe - Unable To Locate Component
The application has failed to start because HHA.dll was not found.

Thanks, for testing. I've committed HHA.DLL to SVN, could you try again?

QuoteI'm more than happy to offer my time to produce the bitmaps necessary for a design refresh.

We don't need a design done, we already did that, it's here:
http://www.adventuregamestudio.co.uk/Newsite/Home.aspx
I just need to finish off coding the bits that are missing like Search on the Games page.

QuoteWouldn't it be a good idea to update the manual format if it uses one that is obsolete?

Possibly, though I'm in no hurry to given that it works as it is, why break it.

QuoteAs for myself, i'm a *terrible* graphic designer but my PHP is pretty good so i'd be happy to help in that department.

The new site is ASP.NET written in C#, to try and get rid of all the messy PHP.

tzachs

Quote from: Pumaman on Thu 13/01/2011 19:27:49
Thanks, for testing. I've committed HHA.DLL to SVN, could you try again?

Tried again, it gave me an error but the file was created successfully.
The error was on the command: hhc ags.hhp

I get:

HHC6003: Error: The file Itircl.dll has not been registered correctly.
Microsoft HTML Help Compiler 4.74.8702

And one more thing, I opened the chm file, it seems that on my computer, the contents are alligned right-to-left.

kaputtnik

Quote from: tzachs on Fri 14/01/2011 13:46:44
And one more thing, I opened the chm file, it seems that on my computer, the contents are alligned right-to-left.

It aligns just fine here. Is there any chance the chm takes its alignment from the OS default (if you are using an OS that is set to Hebrew)?
I, object.

tzachs

Yes, it's probably related to me having Hebrew support (although the OS itself is in English).
The interesting thing here is that the official released chm alligns fine, it's just the one that I compiled internally that is messed up, that's why I mentioned it, I think that there is some small bug with the compilation.

Sslaxx

#78
Interestingly enough, with MonoDevelop 2.4 (Ubuntu 10.10) it appears to be crashing the compiler instead of calling an error message properly when it gets to try to handle AGS.Native.dll. Presumably due to it being, well, not .NET/Mono I'd imagine. This is with the trunk version, though the 3.2.1 branch behaves the same way. SVN revision 28.

Quote
** (/usr/lib/mono/2.0/gmcs.exe:28814): WARNING **: The following assembly referenced from /home/stuart/CVS/AdventureGameStudio/trunk/Editor/References/AGS.Native.dll could not be loaded:
    Assembly:   AGS.Types    (assemblyref_index=1)
    Version:    3.2.1.105
    Public Key: (none)
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/stuart/CVS/AdventureGameStudio/trunk/Editor/References/).


** (/usr/lib/mono/2.0/gmcs.exe:28814): WARNING **: Could not load file or assembly 'AGS.Types, Version=3.2.1.105, Culture=neutral, PublicKeyToken=null' or one of its dependencies.
/home/stuart/CVS/AdventureGameStudio/trunk/Editor/AGS.Editor/Components/DialogsComponent.cs(206,20): warning CS0219: The variable `dialog' is assigned but its value is never used
/home/stuart/CVS/AdventureGameStudio/trunk/Editor/AGS.Editor/ImportExport.cs(279,21): warning CS0219: The variable `weAreOwner' is assigned but its value is never used
/home/stuart/CVS/AdventureGameStudio/trunk/Editor/AGS.Editor/ImportExport.cs(278,21): warning CS0219: The variable `permissions' is assigned but its value is never used
/home/stuart/CVS/AdventureGameStudio/trunk/Editor/AGS.Editor/Panes/ScintillaWrapper.cs(1763,20): warning CS0219: The variable `scriptExtract' is assigned but its value is never used

Unhandled Exception: Mono.CSharp.InternalErrorException: /home/stuart/CVS/AdventureGameStudio/trunk/Editor/AGS.Editor/NativeProxy.cs(54,17): AGS.Editor.NativeProxy.NativeProxy() ---> System.TypeLoadException: Could not load type 'AGS.Native.NativeMethods' from assembly 'AGS.Native, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'.
 at (wrapper managed-to-native) System.MonoType:GetMethodsByName (string,System.Reflection.BindingFlags,bool,System.Type)
 at System.MonoType.GetMethods (BindingFlags bindingAttr) [0x00000] in <filename unknown>:0
 at Mono.CSharp.MemberCache.AddMethods (BindingFlags bf, System.Type type) [0x00000] in <filename unknown>:0
 at Mono.CSharp.MemberCache.AddMethods (System.Type type) [0x00000] in <filename unknown>:0
 at Mono.CSharp.MemberCache..ctor (IMemberContainer container) [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeHandle..ctor (System.Type type) [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeHandle.GetTypeHandle (System.Type t) [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeHandle.GetMemberCache (System.Type t) [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeManager.MemberLookup_FindMembers (System.Type t, MemberTypes mt, BindingFlags bf, System.String name, System.Boolean& used_cache) [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeManager.RealMemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeManager.MemberLookup (System.Type invocation_type, System.Type qualifier_type, System.Type queried_type, MemberTypes mt, BindingFlags original_bf, System.String name, IList almost_match) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Expression.MemberLookup (Mono.CSharp.CompilerContext ctx, System.Type container_type, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Expression.MemberLookupFinal (Mono.CSharp.ResolveContext ec, System.Type qualifier_type, System.Type queried_type, System.String name, MemberTypes mt, BindingFlags bf, Location loc) [0x00000] in <filename unknown>:0
 at Mono.CSharp.New.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Assign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.SimpleAssign.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.ExpressionStatement.ResolveStatement (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.StatementExpression.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in <filename unknown>:0
 at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent, Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md) [0x00000] in <filename unknown>:0
 --- End of inner exception stack trace ---
 at Mono.CSharp.TypeContainer.EmitConstructors () [0x00000] in <filename unknown>:0
 at Mono.CSharp.TypeContainer.EmitType () [0x00000] in <filename unknown>:0
 at Mono.CSharp.RootContext.EmitCode () [0x00000] in <filename unknown>:0
 at Mono.CSharp.Driver.Compile () [0x00000] in <filename unknown>:0
 at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] in <filename unknown>:0
Stuart "Sslaxx" Moore.

Pumaman

QuoteHHC6003: Error: The file Itircl.dll has not been registered correctly.
Microsoft HTML Help Compiler 4.74.8702

Hmm ok, rather than me uploading loads of random DLLs, it's probably better if I just ask you guys to install HTML Help Workshop which should get it working.

QuoteYes, it's probably related to me having Hebrew support (although the OS itself is in English).
The interesting thing here is that the official released chm alligns fine, it's just the one that I compiled internally that is messed up, that's why I mentioned it, I think that there is some small bug with the compilation.

Interesting, yeah there must be some sort of setting in the INI file that can override this. Maybe the HTML Help Workshop docs have something about this?

QuoteInterestingly enough, with MonoDevelop 2.4 (Ubuntu 10.10) it appears to be crashing the compiler instead of calling an error message properly when it gets to try to handle AGS.Native.dll. Presumably due to it being, well, not .NET/Mono I'd imagine. This is with the trunk version, though the 3.2.1 branch behaves the same way. SVN revision 28.

Maybe the mono compiler needs a copy of AGS.Types to be in the References folder too?
Anyway, we know it won't work on Mono because of the native DLL, so this isn't something I'm going to investigate.

subspark

Hey, I'm going out on a bit of a limb here, but if anyone would like the latest revision of the SCUMMC and GLUMOL repositories to see if they could cross-pollinate SCUMM/AGS, I have them available and have posted a thread about it here.
Obviously the title must have confused the mod as it ended up being thrown into the non-AGS related chat. If the good mod is reading, my thread was directly intended for the AGS open-source movement. So.. Shove shove !  :)

Anyway the thread is over here, for now:
http://www.adventuregamestudio.co.uk/yabb/index.php?topic=42631.0

Sparky.

SMF spam blocked by CleanTalk