Asyranok wrote:I went straight in and made all the fixes to that to cut out unnecessary code. Although, I'm embarrassed to admit that your suggestion for the dumprow function are falling on amateur ears. I have no idea how to read that and figure out what is going on there, and no way to replace my code with that so that it all works. 
Basically, I just saw the pattern in your code. You had this (one case):
if (Rod 1A.position = False and Rod 1B.position = False ) {
msg (("{img:rodA.png} {img:rodB.png}"))
}
if (Rod 1A.position = True and Rod 1B.position = True) {
msg (("{img:rodC.png} {img:rodD.png}"))
}
if (Rod 1A.position = True and Rod 1B.position = False ) {
msg (("{img:rodC.png} {img:rodB.png}"))
}
if (Rod 1A.position = False and Rod 1B.position = True) {
msg (("{img:rodA.png} {img:rodD.png}"))
}
You have two rod positions and two image slots. And if you study the above, you'll see that you always generate a row (so at least one "if" will always hit - two yes/no values make four choices). And for that, the image in slot A is rodA whenever the "A" position is false, else it's rodC. (So A position = false implies graphic is rodA, etc). And the same applies to the B slot - you get B or D for position being false or true, respectively.
I'm not sure if that helps at all. lol Basically, instead of writing out all possible cases, it just builds the string from (I assume) the same rules that generated all the if's to begin with. But by using the rules directly instead of the end results, and by letting the code generate the string for you, it can be written more concisely and, ultimately, more clearly, because you can see *why* those if's got written the way they did.