The operator**() method is apparently broken, in that it does not appear to be called when the exponentiation operator is overloaded and it seems to cause some sort of internal error that messes up execution of the code it's in. Refer to the snippet below and the explanation for details.
Numbered Steps to Reproduce Problem:
Code Snippet (if applicable) to Reproduce Problem:
foo/proc/operator**(a)
world << "Test output."
return 1
mob/Login()
..()
sleep(5)
var/foo/F = new
world << F ** 2
Expected Results:
We have the output:
"Test output."
1
Actual Results:
Neither of the above appear, so it seems that the overload method is not called, and additionally for some reason the output of the result is suppressed. There also seems to be some sort of internal error going on. If that sleep(5) line is removed then (at least on my system), DS will not open correctly and only the Options and Messages window will appear.
Workarounds:
None as far as I can tell, except not overloading the exponentiation operator.