Refactored situation type checking