From 8a8f2a0ebe1eeff55760a81aae58ed6e85b09294 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Wed, 16 Dec 2020 17:17:38 +0100 Subject: [PATCH] Fix bug of server not sending map data to player due to sound processing. --- plomrogue/things.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plomrogue/things.py b/plomrogue/things.py index ef50a63..a3d622a 100644 --- a/plomrogue/things.py +++ b/plomrogue/things.py @@ -92,7 +92,17 @@ class Thing(ThingBase): lowered_nick = lower_msg_by_volume(name, volume, largest_audible_distance) symbol = '' - if listener.fov_test(self.position[0], self.position[1]): + # if listener.fov_test(self.position[0], self.position[1]): + # TODO: We might want to only show chat faces of players that are + # in the listener's FOV. However, if we do a fov_test here, + # this might set up a listener._fov where previously there was None, + # with ._fov = None serving to Game.send_gamestate() as an indicator + # that map view data for listener might be subject to change and + # therefore needs to be re-sent. If we generate an un-set ._fov + # here, this inhibits send_gamestate() from sending new map view + # data to listener. We need to re-structure this whole process + # if we want to use a FOV test on listener here. + if listener_distance < largest_audible_distance / 2: self.game.io.send('CHATFACE %s' % self.id_, c_id) if self.type_ == 'Player' and hasattr(self, 'thing_char'): symbol = '/@' + self.thing_char @@ -490,9 +500,6 @@ class ThingAnimate(Thing): self.multiprocessible_fov_stencil() return self._fov - def fov_stencil_make(self): - self._fov.make() - def fov_test(self, big_yx, little_yx): test_position = self.fov_stencil.target_yx(big_yx, little_yx) if self.fov_stencil.inside(test_position): -- 2.30.2