From 2dc20ea5c1bf72e996e99d60b42d4e71d04d2462 Mon Sep 17 00:00:00 2001 From: Jérémy Zurcher Date: Wed, 9 May 2012 10:25:10 +0200 Subject: Room: do not route orphan particles, doorless particles get the boomerang effect --- lib/evendoors/room.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'lib/evendoors') diff --git a/lib/evendoors/room.rb b/lib/evendoors/room.rb index 99e9139..358d53c 100644 --- a/lib/evendoors/room.rb +++ b/lib/evendoors/room.rb @@ -93,18 +93,17 @@ module EvenDoors # def send_p p puts " * send_p #{(p.next_dst.nil? ? 'no dst' : p.next_dst)} ..." if EvenDoors::Twirl.debug - if p.next_dst + if p.src.nil? + # do not route orphan particles !! + p.error! EvenDoors::ERROR_ROUTE_NS, space + elsif p.next_dst p.split_dst! if p.door - p.src = space if p.src.nil? # send error to space if needed route_p p - elsif p.src - p.dst_routed! p.src else - p.error! EvenDoors::ERROR_ROUTE_NDNS, space + # boomerang + p.dst_routed! p.src end - elsif p.src.nil? - p.error! EvenDoors::ERROR_ROUTE_NDNS, space elsif not try_links p p.error! EvenDoors::ERROR_ROUTE_NDNL end -- cgit v1.2.3