Hello sir!!
These subs are staples in all of my projects requiring this functionality, thanks SO much!
I was working on integrating these subs into a project today when I was really supposed to be working and I had a couple of thoughts/questions...
First, I see that your attached file is called 2.6 however your version Change Control states changes only up to 2.5. Is the attached really 2.6 and, if so, what is the difference from 2.5? Just want to make sure I stay consistent with your updates.
The other question is really a series of thoughts. Have you considered (or would you consider) changing the TravelFromRunebook subs to return more detail than #TRUE if error or #FALSE if success in order to allow for the development of more ellaborate error checking routines? Just thinking about how that could make for more decisioning options returning from the subs. For example, #TRUE gets returned if a) the travel method is not one of those listed (coder error), b) the rune number is not 1-16 (coder error) c) location is blocked (script logic change could allow for next rune in book), d) spirit_lacks (script logic change could simply try again), etc. If different issues allowed for different return status then appropriate logic could be adopted by the coder. This could be further augmented by putting limitations on the number of RE/GA/SJ attempts each time as well (rather than fizzling for eternity for example if, come to find out, you really can't cast Gate Travel with 22.6 Magery) with another return value ("return skill2low").
Does that make sense? I was thinking about just going and modifying the sub for my needs but I really don't want to "dirty your code" with my feebleness and, frankly, I don't want to have to track my customizations for recoding every time you update your subs

(so selfish, I know)!!
You could also simply pass this off as the ramblings of a rapidly aging wannabe with OCD and that would be ok too, hehe.
Let me know whatcha think.
XII