Fix compilation as a result of hsWindows. Also, add precompiled header
support (this shaves off 9 seconds on my machine) and fix some warnings.
As we saw in the PCH-ization of pfPython, includes were untangled (to some
extent) and forward declarations were introduced where appropriate.
This is a huge, complicated project. Therefore, this untangling is not as
comprehensive as the others. It should compile faster and be a little bit
neater, but that's it. Don't expect the headers to look much better!
As pointed out in #225, Pch.cpp looks suspiciously like a garbage file
when precompiled headers are disabled in cmake. To solve that, I have
changed the precompiled header function to add the Pch source files only
when pch is enabled. This should prevent future accidents.
This is the beginning of efforts to reduce the scope of Windows.h. I have
shuttled it into hsWindows.h (again) and fixed the compilation of the
major apps. There is still some scope work that needs to be done, and the
Max plugin has not yet been addressed.
Win32's GetCurrentTime and plUnifiedTime::GetCurrentTime collided. Rather
than hacking around the solution by undefining GetCurrentTime, we rename
plUnifiedTime::GetCurrentTime to plUnifiedTime::GetCurrent. This fix is
less fiddly than an undef hack.
In particular, the intro movie now exits immediately again rather than staying indefinitely.
The important difference is to send the completion callback in plBinkPlayer::NextFrame(), i.e. act as if we had reached the end of the movie.
Storing the filename is to keep plClient::IHandleMovieMsg() from deleting and recreating the plBinkPlayer on every message.
The changed return values are just to better match the previous behavior and probably don’t matter.
Replace a weird error string stack with direct calls to the
LocalizationMgr log and its associated formatting helper. In cases where
indirection was needed, plString was introduced. This makes the code
cleaner and faster.
Now we test the file we're trying to write to. We still support legacy
xTEA BriceIsSmart/whatdoyousee files, but we will always make new files
unencrypted.