From b254cb186b5cae2f234e933af9eb28517ced04b0 Mon Sep 17 00:00:00 2001 From: sphere Date: Wed, 22 Apr 2020 20:38:58 +0200 Subject: [PATCH] Fix a mistake with P_SpawnEmeraldHunt and make it more concise. --- src/p_setup.c | 45 +++++++++++++-------------------------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/src/p_setup.c b/src/p_setup.c index 50df3c01a..9bc334ff0 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -691,58 +691,39 @@ void P_ScanThings(INT16 mapnum, INT16 wadnum, INT16 lumpnum) } #endif -static void P_SpawnEmeraldHunt(void) +static void P_SpawnEmeraldHunt(int amount) { - INT32 emer1, emer2, emer3; + INT32 emer[amount]; INT32 timeout = 0; // keeps from getting stuck fixed_t x, y, z; - emer1 = emer2 = emer3 = 0; - //increment spawn numbers because zero is valid. - emer1 = (P_RandomKey(numhuntemeralds)) + 1; + emer[0] = (P_RandomKey(numhuntemeralds)) + 1; while (timeout++ < 100) { - emer2 = (P_RandomKey(numhuntemeralds)) + 1; + emer[1] = (P_RandomKey(numhuntemeralds)) + 1; - if (emer2 != emer1) + if (emer[1] != emer[0]) break; } timeout = 0; while (timeout++ < 100) { - emer3 = (P_RandomKey(numhuntemeralds)) + 1; + emer[2] = (P_RandomKey(numhuntemeralds)) + 1; - if (emer3 != emer2 && emer3 != emer1) + if (emer[2] != emer[1] && emer[2] != emer[0]) break; } //decrement spawn values to the actual number because zero is valid. - if (emer1--) + for (int i = 0; i < amount; i++) { - x = huntemeralds[emer1]->x<y<x<y<x<y<x<y<