Regeneration calculation was overflowing

We need to use integer math here, not fixed, since fixed math can overflow when
any of the components goes above 32k. In this case, *all* of the components can.