Done. I've tested shops, taverns, crewmember's time skip, just sitting at sea, and moving on the worldmap. All work.
I haven't played long enough to check whether the morale drop works. I see no particular reason for it not to, assuming it worked before.
Notes on the implementation:
I wasn't sure what will happen if I interrupt
InitInterface halfway through, so I've left the check for zero payment where it was.
Because of that I replace
InitInterface with
InitInterface_I. I know the sum anyway, so why not to pass it down.
That eliminates half of "Calculate" form
CalculateInfoData. And removing that unnecessary global var eliminates the second half. So that function doesn't really calculate anything at present. Still, it's doing some work so I left it be.
Even after reading
@Levis' "Programming102" I have no idea what those
"1", 0 arguments to PostEvent do (not much, if I'm to guess), but they worked well enough for mutiny, so I've just copy-pasted them.
There is a bit of commented out code in worldmap_events.c (everything related to "Event_CheckMoneyData"), that I think can be removed completely. But it's commented out and I wasn't making any other changes to that file, so I left it there.