This block of code and needsReset (should be bNeedsReset) is rather pointless - why not just set them to nil (as if you didn't see any runes) and run object.checkRunes() - which will populate the runes tables again?
Just seems like extra code, because checkRunes() is going to do this.