Alrighty then, I tested this file on Doom II MAP02:
Code: Select all
[enu default]
PD_BLUEC = "\ccA \chBLUE \cckeycard is required to open this door.";
PD_REDC = "\ccA \cgRED \cckeycard is required to open this door.";
PD_YELLOWC = "\ccA \ckYELLOW \cckeycard is required to open this door.";
PD_BLUEO = "\ccA \chBLUE \cckeycard is required to open this object.";
PD_REDO = "\ccA \cgRED \cckeycard is required to open this object.";
PD_YELLOWO = "\ccA \ckYELLOW \cckeycard is required to open this object.";
PD_BLUEK = "\ccA \chBLUE \cckey is required to open this door.";
PD_REDK = "\ccA \cgRED \cckey is required to open this door.";
PD_YELLOWK = "\ccA \ckYELLOW \cckey is required to open this door.";
PD_BLUES = "\ccA \chBLUE \ccskull key is required to open this door.";
PD_REDS = "\ccA \cgRED \ccskull key is required to open this door.";
PD_YELLOWS = "\ccA \ckYELLOW \ccskull key is required to open this door.";
I added the [enu default] line at the start so that it knows to override the English language strings and the default strings. I also completed the set with the keys and the skull keys strings. Then I added semi-colons at the end of every line because GZDoom refused to load the file otherwise (I forgot semi-colons were needed and just copied your stuff at first).
The red bars at the start print the PD_REDO string correctly, with "RED" being in red. The blue door at the exit properly prints the PD_BLUEK string, with "BLUE" being in blue. Since vanilla levels don't use card-only or skull-only checks, I didn't test the *C and *S versions of the message, but I assume they work.
You get the *O version for any sort of remote locked doors, meaning doors that are opened based on a sector tag. Local doors are those that work on the line's back sector. A remote door is remote even if its tagged sector is its back sector, as long as the line is tag based it's remote.