Alright, I took another look at the code:
void character::LycanthropyHandler()
{
if(!(RAND() % 2000))
{
if(StateIsActivated(POLYMORPH_CONTROL)
&& !game::TruthQuestion(CONST_S("Do you wish to change into a werewolf? [y/N]")))
return;
Polymorph(werewolfwolf::Spawn(), 1000 + RAND() % 2000);
}
}
As I thought, it doesn't ever check whether the affected character is the player. Since TruthQuestions apply to the game itself, and not a specific character, you're actually seeing the prompt for
another lycanthropic character that has polycontrol.
I just tested it in wizmode: I gave the werewolf from the GC a ring of polycontrol then sat around until he transformed. Sure enough, it prompted me, and selecting yes caused him to change into a werewolf.