Watch out, it is still broken and will bomb if fired up.
Actually, I was able to run it without too many issues. Only one picture was not loaded, the others loaded fine. This is no different than the original version.
Exactly, because I didn't compile the modified source codes to an executable file, which I could have enclosed, but did left the old, SAS/C compiled executable file intact. I should have removed it. My bad. :\
Here on my system no image was loaded at all with this SAS/C compiled executable file; I've worked around it, then it crashed immediately after having loaded the image in question, then, after a few more fixes, it displayed the image but wasn't anymore able to refer the input to the main window. Because I didn't have had and have the time to fix all of the mistakes, I decided to upload what I've achieved so far, even it is not really ready/useable yet.
Well, considering the version number (0.2) I'm not too surprised there are problems. Like a lot of stuff found on Aminet, somebody got started on a good idea and never finished it. It's still of interest to me.
Well, for me it isn't an excuse at all to make such mistakes; creating in a sub-routine a local array where something gets remembered/set up and then passing this array's address to the callee is a mistake that isn't excuseable. It's just careless programming without respecting the basics.
I am still surprised that it runs under other systems than mine to some degree. If you take a closer look at the source codes it comes close to a miracle... Nonetheless, it can be a starting point, but it really requires a lot of work.
I can't get MUIPlusPlus or APlusPlus to compile even though APlusPlus comes with SasC icons and I haven't figured out how to use OOP4A as it doesn't exactly look like C++, so, right now, AFrames still my best "choice."
Okay, but then please remove these self-made lists and nodes and replace them by Exec's list and nodes. They are far more robust.
Next, local arrays on the stack are taboo. Use 'new' or something else.
The message handling must be rewritten; save what was sent by Intuition (im_Class, im_Code and so on) and reply this message instantly, and just then react upon what was backed up. BTW.: Is the GadTools toolkit used or do you plan to use it? - then use GT_GetIMsg() and GT_ReplyIMsg() instead of the Exec's counterparts; same for Intuition's BeginRefresh()/EndRefresh(), use the GadTools equivalents GT_BeginRefresh()/GT_EndRefresh().
For anything that gets opened/allocated a counterpart must exist.
Don't test pointers to objects but examine the 'list' whether the object in question is still there (alive).
I can only guess, but I would speculate that a lot of Enforcer/Mungwall hits must have occurred after an object died, even on your machine!
I am willing to lend you a helping hand in case you want to develop AFrame further, but please note that my spare time is very limited, like yours, too. My situation will hopefully change with the new year.
Would you mind critiquing me then? A few years back I updated a Blackjack game on AmiNet to be a little more "modern." That game still has a couple issues, such as memory leaks and problems with idcmp flags. You don't have to do this if you don't want to, I just thought I'd ask just in case you were willing.
I would be happy to help you, in case you're not in a hurry. I have myself a couple of projects that I have to develop further, and I am already two month late. This wouldn't mean that I could take a look at these source codes in two month at the earliest, but it means that I need a couple of days.
It can be found here.
First step taken; I've downloaded it.

Regards