because people are too afraid to use a real OS
Pfft. Well, Linux-Windows bits aside, I found the cause of the problem. Unfortunately, I do not have a solution (aside from disabling a feature).
Edit: Turns out it was wrong. It's CvCity.cpp causing the headaches, in line 4302:
iHappiness += std::max(0, GC.getCultureLevelInfo(getCultureLevel()).getCultureHappiness());
Compare this to CvGameTextMgr.cpp line 8706:
iHappy = GC.getCultureLevelInfo(city.getCultureLevel()).getCultureHappiness();
which works just fine. Gonna try tweaking a few more things.
Edit: Did some tweaking. For whatever reason, I cannot get this working. When I replace the nonworking line above with:
iHappiness += std::max(0, getCultureLevel());
I get an error in compiling stating that std::max() requires 3 arguments, which makes no sense.