Subversion Repositories eduke32


Show changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff
4554 2291d 19h hendricks266 /polymer/eduke32/Makefile.msvc Delete empty folders and update ignore properties.

4553 2291d 20h hendricks266 /polymer/eduke32/Makefile.msvc MSVC build system consolidation.

4543 2292d 20h hendricks266 /polymer/eduke32/Makefile.msvc Ball-busting Makefile restructure.

4532 2309d 3h terminx /polymer/eduke32/Makefile.msvc MSVC build fix  
4326 2453d 19h hendricks266 /polymer/eduke32/Makefile.msvc MSVC: Set up support for SDL2. DONT_BUILD.  
4320 2454d 16h hendricks266 /polymer/eduke32/Makefile.msvc MSVC: Add support for x64 building and all synthesis libs (libpng/zlib, libvpx, libFLAC).

External ogg/vorbis are no longer required.
3834 2708d 20h hendricks266 /polymer/eduke32/Makefile.msvc Dynamicsoundremap.  
3615 2775d 1h terminx /polymer/eduke32/Makefile.msvc Read and Steam Duke3D install paths from the registry instead of hard-coding the default paths.  
3551 2797d 23h terminx /polymer/eduke32/Makefile.msvc Directory cleanup. Move the "Apple", "Windows", and "Wii" directories to a new "platform" dir, move the contents of "psd" to "rsrc/source", move eobj* and obj* directories so that they're under the "source" dir.  
3330 2862d 22h terminx /polymer/eduke32/Makefile.msvc Fix DirectSound in MSVC builds and remove the dependency on the DirectX SDK  
3297 2875d 23h terminx /polymer/eduke32/Makefile.msvc Remove a few old references to the duke3d_w32.exe wrapper we once shipped
to facilitate compatibility with stuff like Dukester X years ago
3282 2877d 10h terminx /polymer/eduke32/Makefile.msvc Change a few paths in various MSVC Makefiles to better suit my current dev environment. This doesn't really affect anyone else since these paths need to be customized to fit whatever machine by anyone building with MSVC anyway.  
3278 2879d 0h hendricks266 /polymer/eduke32/Makefile.msvc Win64 support! (Meaning it works, not that we recommend it for everyday use.)

This includes a complete Windows header and library refresh, including the addition of 64-bit compiled libs:
*libogg 1.3.0
*libvorbis 1.3.3
*zlib 1.2.7
*libpng 1.5.13
*libvpx 9a3de881c0e681ba1a79a166a86308bbc84b4acd
*SDL_mixer 1.2.12 (for RENDERTYPE=SDL)
*DirectX import libraries: dsound and dxguid (now included)

To build in 64-bit, you essentially need MinGW's MSYS (but not MinGW itself) and MinGW-w64 at the top of your PATH. The target is automatically detected using `$(CC) -dumpmachine`. The EDukeWiki will get detailed instrucitons.

All compiler and linker warnings when building in 64-bit mode have been fixed.

Remaining 64-bit to-do:
- The ebacktrace dll does not build under 64-bit. It uses code specific to the format of 32-bit executables and will have to be ported to work with 64-bit executables. A future 64-bit version will be named ebacktrace1-64.dll.
- RENDERTYPE=SDL crashes in SDL_mixer's Mix_Linked_Version().
- DirectInput gives an error and does not function. This only affects joysticks, and the error never happens without any plugged in.
- Port the classic renderer ASM to 64-bit. (Just kidding, this is way out of my league.)

This commit includes a fair bit of Makefile development spanning all platforms, including simplifying the SDLCONFIG code, fixing build on Mac OS X (thanks rhoenie!), globally factoring Apple brew/port inclusion, enforcing that all -L come before all -l, and ensuring that $(shell ) is always :='d.

In addition, I have resurrected the old GCC_MAJOR and GCC_MINOR detection using `$(CC) -dumpversion`, but I have made it failsafe in case the command fails or the version is manually specified. I have applied this new fine-grained detection where applicable, including allowing LTO, and restraining -W's to versions that support them.
3193 2905d 11h terminx /polymer/eduke32/Makefile.msvc Remove xdelta3 since it doesn't fit in with our current networking plans anymore  
3166 2906d 13h helixhorned /polymer/eduke32/Makefile.msvc Split r3159..r3161, part 1: Makefile and MSVC project file changes.  
3165 2906d 13h helixhorned /polymer/eduke32/Makefile.msvc Revert "Fix the warnings when building with C++, add MSVC C++ build support."

This reverts r3159..r3161.

(Handled so that r3163's changes are kept applied.)
3159 2907d 4h terminx /polymer/eduke32/Makefile.msvc Fix the warnings when building with C++, add MSVC C++ build support. This also changes the internal type of lotags, hitags and cstat type fields to uint16_t instead of int16_t to clean up some dubious behavior wherein the code was using a value of 32768 as a flag in these fields for certain types of things, like invisible sprites (using the value as if it was uint16_t) where it was elsewhere checking if the value was < 0 (using the value as if it was int16_t). This change may break a few specific effects if any part of the relevant code was missed when looking for areas that needed to be addressed.

I think there's also a fix for the CON precache system breakage in here (lost it in my local tree when I started getting the C++ build working in MSVC, sorry!)
2728 3071d 11h hendricks266 /polymer/eduke32/Makefile.msvc Massive menu input control revamp/cleanup/factor. (added: input.[ch])

New Wii control defaults for the Wii Remote + Nunchuk and the Classic Controller. This includes new code added just so that the Home key brings up the menu in-game, reducing the need for a USB keyboard.

On the technical side, raw joystick access (comparable to what is available for keyboard and mouse) is now present in jmact, on the game side. (added: joystick.[ch])

Using this new raw joystick access, I replaced tueidj's hack to map A and B to LMB/RMB and D-Pad Up/Down to the scrollwheel.

I made the menus more friendly to mouse and joystick browsing by adding and unifying checks and clears for various buttons and gamefuncs. In fact, the majority of the time spent on this commit was tracking down problems that appeared with the factoring and trying to understand the menu system and the way input checks are precariously executed.

In addition, "Press any key or button to continue" now truly means what it says.

As a result of incorporating proper raw access into control.c instead of it directly accessing the implementaiton, the program *may* no longer be affected by joystick input when it is out of focus. This follows the pattern set by the mouse, and I think this is a positive change.

A small bonus: In the classic/old keyboard preset, the key for Show_Console has been changed from '`' to 'C' because '`' is taken by Quick_Kick.
2664 3088d 3h terminx /polymer/eduke32/Makefile.msvc WIP multiplayer changes, still completely broken.  
2577 3135d 3h plagman /polymer/eduke32/Makefile.msvc Fix the MSVC build, common.c was only added to the GNU Makefile.  

Show All