Build 4468
SVN-
General
Update libpng to 1.6.10.
-
General
old menus: Fix parental lock password entry.
SVN handles and Git names are merged into one person.
Update libpng to 1.6.10.
old menus: Fix parental lock password entry.
Tidy menu code in advance of complete redesign.
This replaces all remaining magic numbers with enumerations thereof. It also tweaks the following, even though most will be irrelevant post-rewrite: -Remove unused menus -Properly center the nuke icon in Duke and the star icon in NAM -Fix the multiplayer macro editing menu: --Position the currently editing quote its proper spot instead of beneath the first row --Don't highlight the first quote while editing a different one --Select the quote just edited when finished editing instead of the first one -Fix the cursor of a centered text input field (such as the adult mode password) -Implement proper shade glowing of selected menu entries in Joystick Settings, Joystick Axes, and Joystick Dead Zones -Shift the the Joystick Axes menu down to avoid overlapping the title bar -Change the title of mouse digital axis assignment "Digital Axes Setup" instead of "Advanced Mouse" -Fix the behavior of the Next button in Joystick Dead Zones to not act like a scrollbar
Revert rev.h.
When osdcmd_quit(), OSD_ShowDisplay(0).
DONT_BUILD.
Introduce m32_settings.cfg, analogous to settings.cfg, so that you can save your cvars and aliases for the editor.
One potential use is to add r_togglecomposition "0" if you don't like Aero turning on and off every time you switch between 2D mode and 32-bit 3D mode.
Build system: Detect the SVN revision and generate rev.h directly from the Makefile, if applicable.
Further optimize our SDL_Renderer for 8-bit by making the SDL_Texture SDL_TEXTUREACCESS_STATIC, saving some RAM without any loss of functionality.
Set up support for SDL2. DONT_BUILD.
Fix 32-bit MSVC builds. DONT_BUILD.
Networking updates.
- Added preprocessor value NETVERSION, to be incremented in the source whenever changes are made to the network protocol. - Implemented proper server-side version verification of all clients upon connection. - Implemented connection refusal when we reach MAXPLAYERS. (Should be expanded to implement server player caps.) - Protected against OOB array accesses if an invalid player id is received. - Renamed all "Recieve" to "Receive".
Fix warnings when building in C++11 mode, i.e. with CPLUSPLUS=1 CUSTOMOPT="--std=gnu++11".
Add support for x64 building and all synthesis libs (libpng/zlib, libvpx, libFLAC).
External ogg/vorbis are no longer required.
Full library refresh.
Don't crash if for some reason your CONs don't define actors like SHOTSPARK1, which has its strength value used in hardcoded behavior.
Update commented SDL2 key debug log output.
Print "32-bit"/"64-bit" along with the version number in the log.
Remove "-fpermissive" from C++ builds because we don't need it.
gltexinvalidatetype(INVALIDATE_ART) so that loading or unloading an ART set will take effect when using the OpenGL renderers.
Don't use SDL_Renderer if it is a software fallback, because that would only waste memory and speed.
Eliminate a memory leak when changing resolutions with SDL_Renderer 8-bit mode.
Introduce support for PlayStation CD-XA audio, a simple ADPCM format.
It's functional, but due to the odd 37.8 KHz nature of the format, I will need to add a resampler to the audiolib to prevent the aliasing artifacts that occur at present. I also hear clicks/pops every so often, but I do not know if a resampler would fix these as well or if they are a separate problem. Note that you cannot directly use the four XA files on the Total Meltdown disc because they each contain eight songs. They would need to be split using a utility I wrote that is outside the scope of this SVN.
Fix a harmless C++ warning. (malloc casting, for those interested)
EDuke32 has me so accustomed to straight C... using a template and pass-by-reference makes my day.
Fix the startup window freeze under SDL2+Windows when a Yes/No box was supposed to be displayed.
Reintroduce SDL_Renderer for the classic renderer so that the Steam Overlay can function with it.
Fix a case where the bonus screen would immediately end with an input press because all code between iterations of the bonus screen would execute in less than 1/120th of a second, not leaving any time for totalclock to increment.
EDuke32. Where our code runs so fast, it breaks old code.
Fix the display of the multiplayer results screen.
Run Net_SendClientInfo() after game state creation to properly set up the player's user_name.
Block off hacks for the primitive splitscreen CON mod with SPLITSCREEN_MOD_HACKS so they are no longer compiled.
These hacks could no longer be allowed to co-opt the fake multiplayer mode, used for local testing and mod development. I have half a mind to remove the hacks outright because they could be likened to drilling bolts directly into your car engine just so you could mount a bowling ball as a hood ornament. However, I don't want to take away the splitscreen hack mod from anyone who uses it, and the work done on these hacks should be useful if proper splitscreen were implemented internally using per-player input and multiple renderer/audio passes.
Add Ken's "todo list from the Build days" alongside his other documentation.
For DISABLEINLINING=1, apply __fastcall to make up for the lack of inlining.
Always run tsprites with statnum TSPR_TEMP though EVENT_ANIMATESPRITES, such as the "show opponent's weapon" in multiplayer.
SDK/Samples: Add "startpos.m32", a helper script for spawn points.
You can: -Cycle your position through all DM or coop spawn points. -Jump to the primary spawn point. -Dump full spawn point information to the log file.