Better fix for rain drawing

Last time I fixed rain drawing for offset viewports, I managed to get it so that squares only got rained on if they were visible from a centered viewport. This is the PROPER fix, which makes it so that rain's distribution is based on where the viewport is, rather than where the player is.

While I was at it, I also renamed two of those arcane two-letter variable names ("cx" and "cy") so that the next person who needs to look at relevant code will hopefully not need to read the function body.