From 5e908b99368c75819d030a6b643448e1505d35fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BChler?= Date: Tue, 11 Aug 2009 19:13:18 +0200 Subject: [PATCH] Redo some list foreach loops --- game.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/game.c b/game.c index 8558d70..90f3f69 100644 --- a/game.c +++ b/game.c @@ -521,14 +521,11 @@ static void killplayer(player *pl) { } static void processgenerics(void) { - generic *gen,*gen2; + generic *gen, *next; - gen = (generic*) activegeneric.next; - while ((listhead*) gen != &activegeneric) { - gen2 = gen; - gen = (generic*) gen->list.next; - ++(gen2->timer); - gen2->process(gen2); + foreach_list_safe(&activegeneric, gen, next) { + ++(gen->timer); + gen->process(gen); } } @@ -765,13 +762,10 @@ static void doplayer(player *pl) { } static void processplayers(void) { - player *pl, *pl2; + player *pl, *next; - pl = (player*) activeplayers.next; - while ((listhead*) pl != &activeplayers) { - pl2 = pl; - pl = (player*) pl->list.next; - doplayer(pl2); + foreach_list_safe(&activeplayers, pl, next) { + doplayer(pl); } } @@ -858,7 +852,7 @@ static int iterate(void) { drawplayers(); plotsprites(); copyup(); - if (activegeneric.next == &activegeneric) { + if (list_empty(&activegeneric)) { player *pl; int deadplayers = 0;