diff options
-rw-r--r-- | lib/evendoors.rb | 4 | ||||
-rw-r--r-- | lib/evendoors/room.rb | 13 |
2 files changed, 7 insertions, 10 deletions
diff --git a/lib/evendoors.rb b/lib/evendoors.rb index e8d7047..bf7a99b 100644 --- a/lib/evendoors.rb +++ b/lib/evendoors.rb @@ -20,12 +20,10 @@ module EvenDoors LNK_CONDV = 'edoors_lnk_condv'.freeze # ERROR_FIELD = 'edoors_error'.freeze - ERROR_ROUTE_NDN = 'routing error: no door name'.freeze - ERROR_ROUTE_NMD = 'routing error: no more destination'.freeze + ERROR_ROUTE_NS = 'routing error: no source'.freeze ERROR_ROUTE_RRWD = 'routing error: right room, wrong door'.freeze ERROR_ROUTE_RRNDD = 'routing error: right room, no drill down'.freeze ERROR_ROUTE_TRWR = 'routing error: top room, wrong room'.freeze - ERROR_ROUTE_NDNS = 'routing error: no destination, no source'.freeze ERROR_ROUTE_NDNL = 'routing error: no destination, no link'.freeze ERROR_ROUTE_SND = 'routing error: system no destination'.freeze ERROR_ROUTE_SNDNA = 'routing error: system no door, no action'.freeze 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 |