Reworked room absorbtion code

fixes #361