From 22afbfce151329eafe14d53577a990026a658f13 Mon Sep 17 00:00:00 2001 From: Kp Date: Fri, 28 Aug 2020 00:18:45 +0000 Subject: [PATCH] Use zip for kc_set_exclusive_binding iteration --- similar/main/kconfig.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/similar/main/kconfig.cpp b/similar/main/kconfig.cpp index 1a6612fff..a8b6f873a 100644 --- a/similar/main/kconfig.cpp +++ b/similar/main/kconfig.cpp @@ -74,6 +74,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. #include "compiler-range_for.h" #include "d_array.h" #include "d_zip.h" +#include "partial_range.h" using std::min; using std::max; @@ -284,6 +285,18 @@ static void kconfig_start_changing(kc_menu &menu) menu.changing = 1; } +static void kc_set_exclusive_binding(kc_menu &menu, kc_mitem &mitem, const unsigned type, const unsigned value) +{ + const auto nitems = menu.nitems; + for (auto &&[iterate_mitem, iterate_item] : zip(unchecked_partial_range(menu.mitems, nitems), unchecked_partial_range(menu.items, nitems))) + { + if (&iterate_mitem != &mitem && iterate_mitem.value == value && iterate_item.type == type) + iterate_mitem.value = 255; + } + mitem.value = value; + menu.changing = 0; +} + } } @@ -863,19 +876,6 @@ static void kc_drawinput(grs_canvas &canvas, const grs_font &cv_font, const kc_i } } -static void kc_set_exclusive_binding(kc_menu &menu, kc_mitem &mitem, unsigned type, unsigned value) -{ - for (unsigned i=0; i < menu.nitems; i++ ) - { - if ( (&menu.mitems[i] != &mitem) && (menu.items[i].type==type) && (menu.mitems[i].value==value) ) - { - menu.mitems[i].value = 255; - } - } - mitem.value = value; - menu.changing = 0; -} - static void kc_change_key( kc_menu &menu,const d_event &event, kc_mitem &mitem ) { ubyte keycode = 255;