Skip to content

2

Rob Nelson requested to merge pull/7851/one into Bleeding-Edge

Created by: 9600bauds

I had my fun. Fixes #7460 (closed)

HOW DID THIS HAPPEN? Way, way back then, there was no visible_message(), only show_message(). show_message() takes a second argument in the form of a number: 2 will only show this message to blind people, 1 will only show it to people who aren't blind . This is how deaf messages were handled before. When visible_message() was implemented, this functionality was combined into making the first argument of visible_message() the non-blind message, and the second argument came to be the blind message. I.E.: Before:

for(var/mob/O in viewers(src, null))
    O.show_message("[src] pings and flashes green!", 1)
    O.show_message("You hear a faint ping.", 2)

After:

visible_message("[src] pings and flashes green!", "You hear a faint ping.")

At some point in time, two things happened:

  • Before the visible_message implementation, someone accidentally made the second argument of show_message() a 3. 3 does nothing, so the message showed just fine. Through some means, the 3 spread, I assume that it happened due to copypaste (oh, what's this 3 doing here? well I'd better leave it in, just in case it's important!). In this way, there were quite a few lines with this superfluous 3, which at the time did nothing.
  • After the visible_message implementation, many show_message() calls were hastily modified to use visible_message() instead. In doing so, the second argument (be it 1, 2, or the improper 3) would have to be removed. I assume what happened here is that some sort of script was used, and it did not account for 3. This resulted in 3 being left in as the second argument, which as you remember, is the blind message.

As a result, most medical machines plus a few odds and ends ended up having 3 as their blind message. Since people are rarely blind (more commonly dead, as I believed at first), this was very subtle, and finding the cause was also rather difficult. I don't think I would have found it if not for to_chat. What's really incredible is the chain of events that allowed for this to come to happen.

Merge request reports