diff --git a/similar/main/gamecntl.cpp b/similar/main/gamecntl.cpp index 77b253f6f..878b730ec 100644 --- a/similar/main/gamecntl.cpp +++ b/similar/main/gamecntl.cpp @@ -250,9 +250,8 @@ static void do_weapon_n_item_stuff() } if (Controls.state.select_weapon > 0) { - Controls.state.select_weapon--; - do_weapon_select(Controls.state.select_weapon>4?Controls.state.select_weapon-5:Controls.state.select_weapon,Controls.state.select_weapon>4?1:0); - Controls.state.select_weapon = 0; + const auto select_weapon = exchange(Controls.state.select_weapon, 0) - 1; + do_weapon_select(select_weapon > 4 ? select_weapon - 5 : select_weapon, select_weapon > 4); } #if defined(DXX_BUILD_DESCENT_II) if (auto &headlight = Controls.state.headlight)