EDIT: I fixed a couple things. Notably, I added the constant MAX_AMP, so that the stored amplitude is always positive. This prevents the loss of information and saves memory. When retrieving the amplitude from the map(x,y), we can just take the length of the vector and subtract the MAX_AMP.
I’M GLARING AT YOU PROGRAMMERS!
I’ll read it over tomorrow when I’m not starving to catch any mistakes.
NOTE: Yes, I know that the ripple source doesn’t go on forever and remains the same amplitude (never decays). This is to remain consistent with the rules we need the ripples to follow, but is not physically accurate.