X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomrogue%2Fgame.py;h=ff761556e0da3f4299411ad0ae27051db7957a3f;hb=31951696faf591c6d92236c70a9637c7620111e5;hp=453ee30dd84f968b6f3555b09f6d428722bb31c3;hpb=018bb0242ebd2b7e9fde170fae830376dea55e16;p=plomrogue2
diff --git a/plomrogue/game.py b/plomrogue/game.py
index 453ee30..ff76155 100755
--- a/plomrogue/game.py
+++ b/plomrogue/game.py
@@ -203,7 +203,23 @@ class Game(GameBase):
"""Send out game state data relevant to clients."""
self.io.send('TURN ' + str(self.turn))
- for c_id in self.sessions:
+ from plomrogue.mapping import FovMap
+ import multiprocessing
+ pool = multiprocessing.Pool()
+ players = []
+ c_ids = [c_id for c_id in self.sessions]
+ for c_id in c_ids:
+ players += [self.get_player(c_id)]
+ player_fovs = []
+ for player in players:
+ player.prepare_multiprocessible_fov_stencil()
+ player_fovs += [player._fov]
+ new_fovs = pool.map(FovMap.init_terrain, [fov for fov in player_fovs])
+ for i in range(len(players)):
+ players[i]._fov = new_fovs[i]
+ pool.close()
+ pool.join()
+ for c_id in c_ids:
player = self.get_player(c_id)
visible_terrain = player.fov_stencil_map()
self.io.send('FOV %s' % quote(player.fov_stencil.terrain), c_id)