From 455b4027316a6deaa0de8081ddb35bf676ff90c4 Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 23 Nov 2023 00:44:30 -0800 Subject: [PATCH] SidewaysFreezeThruster::init: fix infinite loop under MinGW --- src/objects/frost-thrower.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/objects/frost-thrower.cpp b/src/objects/frost-thrower.cpp index b5ef3e290..bd200a64d 100644 --- a/src/objects/frost-thrower.cpp +++ b/src/objects/frost-thrower.cpp @@ -276,12 +276,20 @@ struct SidewaysFreezeThruster : Mobj Vec2 h_vector = angle_vector(an); // spawn the pipes: - for (int i = 0; i < 4; ++i) + auto spawn_pipe = [&](int i) { angle_t v_an = ANGLE_45 + (ANGLE_90 * i); Vec2 v_vector = vector(v_an) * 32; spawn_piece({h_vector * v_vector.y, v_vector.x}, angle, 2); - } + }; + + // This is unrolled because when it was a for loop, + // it ran infinitely, but only under MinGW. + // Tested: gcc.exe (Rev2, Built by MSYS2 project) 13.2.0 (32-bit version) + spawn_pipe(0); + spawn_pipe(1); + spawn_pipe(2); + spawn_pipe(3); // spawn the icons: Vec2 v = vector(an) * 32;