diff --git a/src/clientextras.mm b/src/clientextras.mm index 96c08da..1a37bd8 100644 --- a/src/clientextras.mm +++ b/src/clientextras.mm @@ -80,15 +80,13 @@ extern int democlientnum; void renderclients() { - size_t i = 0; - for (id player in players) { + [players enumerateObjectsUsingBlock:^(id player, size_t i, bool *stop) { if (player != [OFNull null] && (!demoplayback || i != democlientnum)) renderclient(player, isteam(player1.team, [player team]), @"monster/ogro", false, 1.0f); - i++; - } + }]; } // creation of scoreboard pseudo-menu diff --git a/src/clientgame.mm b/src/clientgame.mm index b261021..527c686 100644 --- a/src/clientgame.mm +++ b/src/clientgame.mm @@ -198,22 +198,21 @@ extern int democlientnum; void otherplayers() { - size_t i = 0; - for (id player in players) { - if (player != [OFNull null]) { - const int lagtime = lastmillis - [player lastupdate]; - if (lagtime > 1000 && [player state] == CS_ALIVE) { - [player setState:CS_LAGGED]; - i++; - continue; - } - if (lagtime && [player state] != CS_DEAD && - (!demoplayback || i != democlientnum)) - // use physics to extrapolate player position - moveplayer(player, 2, false); + [players enumerateObjectsUsingBlock:^(id player, size_t i, bool *stop) { + if (player == [OFNull null]) + return; + + const int lagtime = lastmillis - [player lastupdate]; + if (lagtime > 1000 && [player state] == CS_ALIVE) { + [player setState:CS_LAGGED]; + return; } - i++; - } + + if (lagtime && [player state] != CS_DEAD && + (!demoplayback || i != democlientnum)) + // use physics to extrapolate player position + moveplayer(player, 2, false); + }]; } void diff --git a/src/server.mm b/src/server.mm index c15ce04..e56753c 100644 --- a/src/server.mm +++ b/src/server.mm @@ -429,17 +429,16 @@ serverslice(int seconds, checkintermission(); if (interm && seconds > interm) { interm = 0; - size_t i = 0; - for (Client *client in clients) { + [clients enumerateObjectsUsingBlock:^( + Client *client, size_t i, bool *stop) { if (client.type != ST_EMPTY) { // ask a client to trigger map reload send2(true, i, SV_MAPRELOAD, 0); mapreload = true; - break; + *stop = true; + return; } - - i++; - } + }]; } resetserverifempty(); diff --git a/src/serverbrowser.mm b/src/serverbrowser.mm index 4ac0b31..39e4ade 100644 --- a/src/serverbrowser.mm +++ b/src/serverbrowser.mm @@ -274,10 +274,10 @@ refreshservers() if (lastmillis - lastinfo >= 5000) pingservers(); [servers sort]; - int maxmenu = 16; - size_t i = 0; - for (ServerInfo *si in servers) { + __block int maxmenu = 16; + [servers enumerateObjectsUsingBlock:^( + ServerInfo *si, size_t i, bool *stop) { if (si.address.host != ENET_HOST_ANY && si.ping != 9999) { if (si.protocol != PROTOCOL_VERSION) si.full = [[OFString alloc] @@ -306,9 +306,7 @@ refreshservers() if (!--maxmenu) return; - - i++; - } + }]; } void diff --git a/src/weapon.mm b/src/weapon.mm index 8cae8cd..d6e2411 100644 --- a/src/weapon.mm +++ b/src/weapon.mm @@ -345,7 +345,7 @@ shootv(int gun, OFVector3D &from, OFVector3D &to, DynamicEntity *d, bool local) void hitpush(int target, int damage, DynamicEntity *d, DynamicEntity *at, - OFVector3D &from, OFVector3D &to) + const OFVector3D &from, const OFVector3D &to) { hit(target, damage, d, at); vdist(dist, v, from, to); @@ -355,7 +355,7 @@ hitpush(int target, int damage, DynamicEntity *d, DynamicEntity *at, void raydamage( - DynamicEntity *o, OFVector3D &from, OFVector3D &to, DynamicEntity *d, int i) + DynamicEntity *o, const OFVector3D &from, const OFVector3D &to, DynamicEntity *d, int i) { if (o.state != CS_ALIVE) return; @@ -424,12 +424,10 @@ shoot(DynamicEntity *d, const OFVector3D &targ) if (guns[d.gunselect].projspeed) return; - size_t i = 0; - for (id player in players) { + [players enumerateObjectsUsingBlock:^(id player, size_t i, bool *stop) { if (player != [OFNull null]) raydamage(player, from, to, d, i); - i++; - } + }]; for (DynamicEntity *monster in getmonsters()) if (monster != d)