Pretty close to the original binary except for the first loop, which generates differently. (TODO comment added) There are also some questionable double address calculations, which hopfully clear up when the loop is fixed as well.
Also added enums `inv_body_loc` and `inv_xy_slot` to clean up a lot of magic numbers.