Build 1623
SVN-
General
Fail gracefully when processing (some) corrupt models instead of corrupting the heap and possibly crashing.
SVN handles and Git names are merged into one person.
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.
Add proper DEF tokens for normal scale/bias in model skins.
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.
Model normal mapping support. This calculates the averaged texture-tangent basis for every face of every model when loading them, so this change will make startup times a lot worse until we implement a way to cache the computed models to disk.
Properly invert the tangent space matrix instead of transposing it (after all, model tangent space isn't guaranteed to be orthogonal) and do so offline. This removes a little strain from the GPU.
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).
This should be the correct type for aGlobalMemoryStatusEx.
Don't process the SDL_mixer effect if we're not done initializing.
Annnnnd revert something I didn't mean to commit.
Fences access to common resources between the possible SDL_mixer effect thread and the rest of the audio code.
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.
Changing S_TestSoundCallback() back to what it was before revision 1490 since calling into MultiVoc from the DirectSound buffer worker thread can cause deadlocks. TODO: make the callback value accurately point to the sound instance. Maybe change the type to intptr_t and directly pass a pointer?
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.