Calling code from another language

Does anyone know how Bob Bates integrated the map functionality in Thaumistry? That doesn’t look like anything TADS can do out of the box. Can TADS3 somehow call scripts or code from other languages? I’d like to play around with the concept of a map that only shows locations you’ve been to so far… I could imagine going about that in C++ code, but using TADS and/or an IF interpreter, I wouldn’t know where to start. Are there even any graphic facilities more complex than displaying an img src tag? But Thaumistry did it somehow… Thanks if you can help!

2 Likes

Yes and no. There is no convenient Foreign Function Interface like there is in, say, Python. But you can extend the interpreter with a custom set of intrinsic functions, as explained here: TADS3 - Connection to external (C#/C++)-Libraries? - #3 by RealNC

4 Likes

Thanks a lot for the link!

1 Like

For mapping purposes, you could also take a look at the TADS3 cartographer library by @Tomas. I haven’t tried it myself, but it seems that you can show an in-game map (as well as export to an external file) and can set an option to only show visited rooms.

Links: Tads3 cartographer extension (Thread), GitHub - toerob/t3cartographer: A library for the Tads3 programming language that creates an in-game graphical map from a tads3 objects and outputs it in either ascii, svg, graphviz dot or html.

4 Likes

Thanks for that info, I’ll take a look!

2 Likes

It looks like a great extension, but it doesn’t render my map correctly out of the box and can’t crawl my whole map without runtime errors. Based on the volume of modifications I’d have to make, I’ll probably revisit it if I give up on trying to add intrinsic functions to call C++ code…