When is it you want the rune index to advance? In looking at your code, it looks like you only want the rune index to advance when there is an error. If that's not what you intended, then you might want to rework your "to_sheep" sub.
Also, in this sub:
sub to_sheep
set %currentBookID %_runebook . %currentSet
GoSub TM_TravelFromNamedRunebook %travel_method %currentRune %currentRune Sheep ;%currentBookID
if #result ;error
{
gosub calc_next_location
goto _main_loop
}
return
you are going to "_main_loop" but if you look at your code, that label doesn't exist. However you don't want to goto out of your sub anyhow. So because of that typo, it will actually work ok.
But in summary, because of what you've written, the next location will only advance if there is an error that comes from the runebook subs. I doubt that's what you had in mind..