This fixes the irregular dark fringes around light text when not exactly pixel-aligned that are caused by independent interpolation of color and alpha. It also makes calculations simpler for things to come.
In addition to being a prerequisite for shadowed text, this also fixes an issue sometimes seen at the bottom of the mini KI player list where characters with a descender were missing.
plAudioCore needs to know whether we intend to build the plugin, so
the change introduced in 978edc1 was causing compilation to fail when
building the plugin.
This moves detection and definition back into the root CMakeList,
but preserves the behavior of only looking for the SDK if needed.
fix plVault LogMsg calls + remove useless wide char usage
fix usage of plAvatarMgr::FindAvatar() and plLinkEffectsTriggerMsg::SetLinkKey() with temporary variables
plNetServerSessionInfo.h need std::string
fix plProgressMgr.h: NumLoadingFrames() have an useless class context information
fix plSocket usage of non-standard NULL
VS12 provides math functions which were conflicting with ones defined
in texutil.h. This removes the reliance on texutil.h and uses the
standard library's math in its place.
There were two terrible things here:
* Some nasty pointer-based casting
* Storing references to temporaries
Unfortunately, storing addrs of temps was happening through a helper
function, so VS won't warn here. I think I caught all the cases where
those functions were being used wrongly, but I can't be sure until
coverity runs on this commit.
This reduces the amount of redundant #includes in the plMessage headers.
Still need to check over the actual source files and do some work to
remove pnUtils (ugh) from one message.
plMouseDevice::HideCursor can crash if it is called before the cursor is
created. This happens if the client pops up a disconnected dialog before
initialization is complete. I've seen it happen!