It's strange, there are no hidden conditions for meeting the cat in the script.
IF
NpcLeavesRegion(NPC_Hero, REGION_castle_arhu2)
AND
InRegion(NPC_Hero, REGION_castle_arhu1)
THEN
StartScene(7);

PROC
DoStartScene(7)
THEN
StartScriptFrame(NPC_Arhu, "Arhu castle run by");

IF
NpcSees(NPC_Hero, NPC_Arhu)
AND NOT
Triggered("Arhu meets Hero in castle")
THEN
Triggered("Arhu meets Hero in castle");
ShiftToNpc(NPC_Arhu);
LaunchTimer(ENGINE_GAME, "Arhu meet hero", 30);
LockStarted(4);

PROC
EndLock(4)
THEN
EndScene(7);
GoalCompleted;

IF
TimerFinished(ENGINE_GAME, "Arhu meet hero")
THEN
StartMonologue(ENGINE_GAME, "MONO_psst");

IF
MonologueEvent(ENGINE_GAME, "MONO_psst Ends")
THEN
SetAndStartDialog(NPC_Arhu, DIALOG_Arhu, 0);

IF
DialogEnds(DIALOG_Arhu, _, _)
THEN
ShiftToNpc(NPC_Hero);
EndScene(7);
GoalCompleted;

PROC
PROC_CompleteGoal("Arhu meet hero in castle")
THEN
GoalCompleted;
You've already been to the Dwarven Breath Inn and spoken to Wouter.