Dealing with conflicts in Vorple for I6

Hello,

I’m having some difficulties integrating Vorple for I6 into La zona, a small IF I’ve created for a mythological-themed Jam in Spanish.

On the one hand, Vorple uses Roger Firth’s JustEnoughGlulx extension, which makes use of InitGlkWindow and IdentifyGlkObject entry points. This causes me conflicts because La zona also uses these entry points. On the other hand I also have conflicts with Verblib’s Banner and L__M routines, as both La zona and vorple.h redefine these routines.

I was wondering if anyone could advise me on the best way to deal with these difficulties.

Thank you very much in advance! as always.

Hello!

For Banner and L__M, the routines are indeed replaced to add a little functionality; basically, the Banner routine is renamed OldBanner, and the L__M is renamed OldLM. Inside the (new) routines, you get a few lines of code, then a call to the old routines (see lines 693 and 714). If you want to use your own version of Banner or L__M, you could either :

  • Change those calls directly in vorple.h (write the name of your banner routine instead of OldBanner() on line 714, or write the name of your L__M routine instead of OldLM in line 693) ;
  • or instead, change line 28 and 29 so that the new names are something else (OldBanner1 and OldLM1 will do), then call your routines OldBanner and OldLM, so they’re called instead of the old ones.

Either way, I think you need to change vorple.h a little bit; I don’t really see another way to do it…

As for the functions in JustEnoughGlulx, my memory is foggy; I think that, in the end, the only function of this extension which is used in Vorple is bp_output_stream. So in theory (not tested!), you could remove those two routines from the JustEnoughGlulx.h file and see your game still works. Again, I don’t remember why I used this extension; I’ll flag it on the Vorple I6 issue tracker, and when I have a chance I’ll test to see if I can just find a way to remove the dependency on this extension.

I hope this helps! Please let me know!