- if (controllers.size() >= max_entities) return;
-
- glm::ivec3 chunk(
- (rand() % (chunk_range * 2 + 1)) - chunk_range,
- (rand() % (chunk_range * 2 + 1)) - chunk_range,
- (rand() % (chunk_range * 2 + 1)) - chunk_range
- );
-
- glm::ivec3 pos(
- rand() % Chunk::width,
- rand() % Chunk::height,
- rand() % Chunk::depth
- );
+ if (controllers.size() >= max_entities || model_length == 0) return;
+
+ // select random player to punish
+ auto &players = world.Players();
+ if (players.size() == 0) return;
+ size_t player_num = random.Next<unsigned short>() % players.size();
+ auto i = players.begin(), end = players.end();
+ for (; player_num > 0 && i != end; ++i, --player_num) {
+ }
+ const Player &player = *i;