Я вижу это так:
1) Реализовать для сцены абстрактный класс обработки событий, в который будут передаваться события и устанавливаться сцена, возможно еще какие данные.
Для каждого режима реализовать свои классы, унаследованные от абстрактного.
Устанавливать в сцену экземпляр нужного класса. (brankovic предложил выше)
или
2) Реализовать один менеджер, в который вынести режимы и обработку событий.
+
Это обычный паттерн стратегия (абстрактный класс обработки событий для сцены). Добавляется новый режим - добавляется новая стратегия. Всякие if/switch в любом месте это уход от полиморфизма.