From edb21d16ce3185cff6514bef0bdad21de0f41dd0 Mon Sep 17 00:00:00 2001 From: auria Date: Tue, 24 May 2011 00:41:07 +0000 Subject: [PATCH] Tweak the algorithm that chooses the number of rows in a ribbon, hopefully gives better results at high resolutions now in kart screen git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/trunk@8689 178a84e3-b1eb-0310-8ba1-8eac791a3b58 --- data/gui/karts.stkgui | 2 +- src/guiengine/widgets/dynamic_ribbon_widget.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/data/gui/karts.stkgui b/data/gui/karts.stkgui index 0e55e2223..aa1eb3a49 100644 --- a/data/gui/karts.stkgui +++ b/data/gui/karts.stkgui @@ -15,7 +15,7 @@ + child_width="90" child_height="90" max_rows="3"/> diff --git a/src/guiengine/widgets/dynamic_ribbon_widget.cpp b/src/guiengine/widgets/dynamic_ribbon_widget.cpp index b4610dccc..422988847 100644 --- a/src/guiengine/widgets/dynamic_ribbon_widget.cpp +++ b/src/guiengine/widgets/dynamic_ribbon_widget.cpp @@ -226,9 +226,9 @@ void DynamicRibbonWidget::add() // get a better score. A number of rows that allows showing very few items // will be penalized. A configuration that makes items much smaller than // requested in the XML file will also be penalized. + float ratio = (float)item_height / (float)m_child_height; const int score = int(log(2.0f*visible_items) * - std::min((float)item_height / (float)m_child_height, 1.0f) * - taken_area); + std::min(ratio, 1.0f) * taken_area); //std::cout << " " << row_count << " rows : " << visible_items << " visible items; area = " // << taken_area << "; size penalty = " << std::min((float)item_height / (float)m_child_height, 1.0f)