Problem Solving Characters by Ron Newcomb (L602)

Is there a L602 compatible version of Problem Solving Characters by Ron Newcomb?

I took a stab at the one in the library because the first error message was easy enough even for me to solve with stuff people have already taught me around here:

To consider (x - a rules based rule) for the reason the action failed:
	follow x for the reason the action failed;

However, the next error is coming from an I6 block that leads down a path I can’t sort out myself I think.

I also have a question just in general, even if there is a compatible version of this extension or someone else works on it. The weird part about that next error is, it is also in a section that has a header that indicates it should only be used without Editable Stored Actions by Ron Newcomb, and I have this included, but yet the contents of this section still run?

Section - (for use without Editable Stored Actions by Ron Newcomb) - unindexed

[ This phrase is safe to use by your game.  It's only unindexed to avoid cluttering the index. ]
To change/now the actor part of (act - a stored action) is (actor - a person):
	(- BlkValueWrite({-pointer-to:act}, 3, {actor}); -)

Shouldn’t that header make it not run? Anyway, even commenting that out just exposes a new error, so I give up on fixing compatibility myself I think, but my question in general about “use without” headers still stands.

Actually, it looks like Ron has shared Problem-Solving Characters version 2 on GitHub, but the error is actually in the dependency After Not Doing Something, also by Ron. It looks like he (you if you are Ron and reading this :slight_smile:), has a version 2 of that as well in the web service, but it doesn’t seem available elsewhere (and I can’t download it from the library directly or don’t know how). I understand this new version is just getting under way, but just asking if it has been released and I am just not looking in the right place.

In general, I am not sure where exactly to look for the latest versions of things that might be compatible with the latest release, so I’m sorry if this is coming across as entitled and annoying. I just think this extension is exactly what I need and looks amazing, but I only have half of it!

It was rather unfortunate that this extension’s release happened just before a new Inform release with breaking changes. I intend to fix this extension properly and officially this autumn. But it’s also dependent on a pair of Jesse’s extensions working as well.

Regarding the section “for use without Editable Stored Actions”: one phrase for ESA actually is required by PSC, but it’s silly to require the entire extension when only one simple phrase is all that is actually needed. Hence that section adds the single needed phrase if the author isn’t already using ESA.

So basically you’re getting an ESA phrase whether you include ESA or not.

I made a version a while ago without the dependency on Dynamic Objects, which worked for the most part (although Bug #1328 caused some problems). I had hoped to get it fully working before posting it, but then I forgot about it. It’s up here if anyone is interested.

Since build 6L38 just came out today, I’ve submitted a version 2 of Problem-Solving Characters to the extensions librarian at who will hopefully get it up soon. I’ve also attached a copy to this post.

But it’s still blocked on getting Dynamic Objects updated.

I know in Dynamic Tables that this line: {-call:Data::Tables::compile_print_table_names} needs to be changed to {-call:Tables::Support::compile_print_table_names} but the issue with DynObj is a little deeper than that.
After not doing something.i7x (2.19 KB)
Problem-Solving Characters.i7x (46.1 KB)

And thank you Draconis for reporting that bug on Mantis earlier this year. I didn’t know about it until today. Any chance you can detangle Jesse’s extension?

Unfortunately no. I tried, but the best I could do was the workaround I posted (there are 50 attempt objects, which are recycled once fulfilled).

I think I found it. In Dynamic Objects, change this line obj.prop = BlkValueCreate(v-->BLK_HEADER_KOV); to this obj.prop = BlkValueCreate(KindAtomic(BlkValueWeakKind(v))); It’s at the very end of the extension, in Fix The Cloned X Property.