Build 1747
SVN-
General
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.
SVN handles and Git names are merged into one person.
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.
This is an attempt to fix r1595.
- pr_resetlights() was exported but polymer.c wasn't changed to reflect that. This also broke the gcc build so I'm not sure how this was missed. - commented code was laying around in the middle of polymer.h - savegame.c using a bunch of C99 non-constant initializers. Please keep in mind that MSVC is one of the supported compilers and doesn't know C99. - savegame.c using localtime_r, which doesn't exist on Win32. - demo playback calling resetlights and drawrooms without ever calling pr_loadboard(). - this change makes the game run very choppy here.
This should correctly compute the normal of all BUILD floors and walls. Fixes bug 2806174 (E1L1 projection room floor not affected by light and parallaxing artifacts).
Annnnnd revert something I didn't mean to commit.
Fixes a bug when you can't enable music from the sounds menu. Not sure why this line had a multiplayer-related check before rev 1574 yet.
Adds code to disable the Vista/7 DWM when setting OpenGL modes. This buys some OpenGL performance in windowed mode and works around an ATI OpenGL driver bug.
Hook the polymer map selection code to a few more places in the editor code. This will fix the screen turning greenish when selecting a pal with Alt-P. I could just drop the selection from these cases since the cursor can't actually move, but then people would ask why the FPS gets higher in this occurrences.
Revert part of revision 1540 which broke E2L4 and parts of E2L5.