Does it work?
In general in cases like this:
if (DoorCloseWarn == true) {
Warn(); // go to the Warn function
Booleans can only be true or false, so testing for "== true" is a bit redundant. How about:
if (DoorCloseWarn) {
Warn(); // go to the Warn function