diff --git a/src/play_controller.cpp b/src/play_controller.cpp index 040382aa5706..1217252f0296 100644 --- a/src/play_controller.cpp +++ b/src/play_controller.cpp @@ -216,6 +216,7 @@ void play_controller::init(const config& level) resources::game_events = gamestate().events_manager_.get(); resources::lua_kernel = gamestate().lua_kernel_.get(); + gamestate_->ai_manager_.add_observer(this); gamestate_->init(level, *this); resources::tunnels = gamestate().pathfind_manager_.get(); @@ -314,6 +315,7 @@ void play_controller::reset_gamestate(const config& level, int replay_pos) resources::game_events = gamestate().events_manager_.get(); resources::lua_kernel = gamestate().lua_kernel_.get(); + gamestate_->ai_manager_.add_observer(this); gamestate_->init(level, *this); gamestate().set_game_display(gui_.get()); resources::tunnels = gamestate().pathfind_manager_.get(); diff --git a/src/playsingle_controller.cpp b/src/playsingle_controller.cpp index f05d0384c04b..fb74038cbff4 100644 --- a/src/playsingle_controller.cpp +++ b/src/playsingle_controller.cpp @@ -84,8 +84,6 @@ playsingle_controller::playsingle_controller(const config& level, // game may need to start in linger mode linger_ = this->is_regular_game_end(); - ai::manager::get_singleton().add_observer(this); - plugins_context_->set_accessor_string("level_result", std::bind(&playsingle_controller::describe_result, this)); plugins_context_->set_accessor_int("turn", std::bind(&play_controller::turn, this)); }