Build 1794
SVN-
General
Fix editor picking with swapped bottomwalls.
SVN handles and Git names are merged into one person.
Fix editor picking with swapped bottomwalls.
Fix the lighting model so that lights don't get the modulated diffuse (defeats the purpose if they do, since you wouldn't be able to light a fully shaded room). That means the highpal lookup has to be performed twice now, once with the modulated diffuse to apply to the result and once with no modulation to make a diffuse that the lighting code can use. That means that lighting isn't 100% accurate with respect to the highpal result, but that's the best approach I could think of.
Fix more MinGW warnings.
Don't include compat.h from protocol.c and define UNREFERENCED_PARAMETER directly instead to fix the MinGW build.
Fix all the remaining warnings (except the warn_unused_result stuff, pass -Wno-unused-result).
Fix a problem with model skins introduced by highpal. Liztroops would turn blue on death.
Fix editor picking in Polymer; sorry!
Fix build.
Get the glTexImage3D function pointer from the ICD, not from dlsym/GetProcAddress. This fixes OpenGL on Windows since opengl32.dll only has version 1.1 symbols.
Fix release builds.
Fix the build for everything else; it looks like the macro definition for
ATTRIBUTE was just missing from helixhorned's change.
Fix a bug where having two or more lighting passes on a multi-surface mdsprite would leak some GL state and disable blending for all but the first surface.
Works around a bug with newer NVIDIA GL drivers where creating a GL context
would remove write access to our code sections. bugs 3086185 and 3104646
SDL and menu joystick fixes by NY00123 (thanks!).
Fix wrong interpretation of SPREXT_NOTMD that would cause it to assume the flag was set whenever any flag was set, causing the models to switch on and off in Duke Plus with Polymer.
Reorganize a little code so that lightmaps can be used when a spotlight isn't currently casting a shadow. This fixes the problem where the window lights in the E1L1 apartment secret would jump between square and circle-shaped depending on the shadowcount and the view angle.
Fix build.
Fix multiplayer.
This should fix the build on unix platforms.
Fix classic mode (typo broke it).
%esi gets modified by swapchar2 but isn't listed as an output operand for the GCC extended assembly version. This causes the compiler to fail to restore it after swapchar2 executes, causing crashes if used in a loop. This change fixes the security camera crash when using GCC 4.4.x or 4.5.0.
Fail gracefully when processing (some) corrupt models instead of corrupting the heap and possibly crashing.
Model specular map support and polymer fix for the OSX/ATI driver.