SCAR Code:
Function LocateFurnaceDoor:Boolean;
Var
TPA: TPointArray;
Temp: T2DPointArray;
h, x, y, MouseSpeed2, z, t, cts: Integer;
begin
If not LoggedIn then Exit;
MouseSpeed2 := MouseSpeed;
MouseSpeed := 25;
MarkTime(t);
cts := ColorToleranceSpeed;
ColorToleranceSpeed(2);
FindColorsSpiralTolerance(x, y, TPA, 1652274, MSX1, MSY1, MSX2, MSY2, 6);
Temp := TPAtoATPAex(TPA, 10, 10);//Don't know how big the door is so change if you need to
SortATPASize(Temp, True);
h := High(Temp);
For z := 0 to h do
Begin
MiddleTPAex(Temp[z], x, y);
MMouse(x, y, 5, 5);
Result := IsUpText('pen');
If Result then
break;
Wait(100);
end;
If Result then
Begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
WriteLN('Found the furnace door in '+IntToStr(TimeFromMark(t)- 100)+' msecs');
end;
If Not Result then
WriteLN('Couldn'#39't find the furnace door');
MouseSpeed := MouseSpeed2;
ColorToleranceSpeed(cts);
end;
Hermpie-style TPA 
I don't know how big this door is so it might not find it properly because I don't know my way around that place. I have absolutely no idea if that would work because I haven't tested it, you could test it and if it doesn't work I'll see what I can do.