void LevelDot::draw(DrawingContext& gc) { Vector2i mpos = gc.screen_to_world(Vector2i(Input::Controller::current()->get_pointer(Input::STANDARD_POINTER)->get_pos())); float x = static_cast<float>(mpos.x) - pos.x; float y = static_cast<float>(mpos.y) - pos.y; bool highlight = false; if (Math::sqrt(x*x + y*y) < 30.0f) highlight = true; Savegame* savegame = SavegameManager::instance()->get(plf.get_resname()); if (savegame && (savegame->get_status() == Savegame::FINISHED || savegame->get_status() == Savegame::ACCESSIBLE)) { if (savegame->get_status() == Savegame::FINISHED) if (highlight) { gc.draw (highlight_green_dot_sur, pos); } else { gc.draw (green_dot_sur, pos); } else if (highlight) gc.draw (highlight_red_dot_sur, pos); else gc.draw (red_dot_sur, pos); } else { gc.draw (inaccessible_dot_sur, pos); } }