Subversion Repositories eduke32


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

Filtering Options

Rev Age Author Path Log message Diff
5062 2132d 0h hendricks266 /polymer/eduke32/source/ Add the Duke DC and Duke Caribbean SSI files to the list of group files automatically detected and added to the startup window.  
4541 2377d 21h hendricks266 /polymer/eduke32/source/ Replace the funkily-formatted GNU.TXT with the FSF's official gpl-2.0.txt. Also, update the FSF's address in all source files that contain it.

4317 2537d 19h hendricks266 /polymer/eduke32/source/ Very minor changes after an investigation into the possibility of Polymost on Wii.  
4086 2663d 20h hendricks266 /polymer/eduke32/source/ Windows startup window tweaks:
- Don't print osd.szCSDVersion when it is empty, preventing an extra space between the OS name and version number. (An example of what this field holds is "Service Pack 1".)
- Under SDL, allow the "console" edit field to repaint after "OK" is clicked. Important when a long def file is loading.
3832 2791d 23h hendricks266 /polymer/eduke32/source/ Remove an unused variable from  
3784 2807d 3h terminx /polymer/eduke32/source/ Sanitize hard coded render mode numbers... replace all references to rendmode 0, 3, 4, etc with proper REND_CLASSIC, REND_POLYMOST, REND_POLYMER labels.  
3708 2828d 13h terminx /polymer/eduke32/source/ Support adding custom grps to the selector in the startup window. To use this feature, create a file with a ".grpinfo" extension in your EDuke32 directory, following this template:

name "YourGameName"
scriptname "yourgame.con"
defname "yourgame.def"
size yourgrpsize
dependency DUKE15_CRC
crc yourgrpcrc

The "flags" field can also take the value "GAMEFLAG_DUKE" to define a new base game. Since this is the first commit of a new feature, certain semantics of the implementation and syntax are liable to change as necessary.
3654 2845d 12h terminx /polymer/eduke32/source/ Add support for the versions of Duke it out in D.C., Duke Caribbean: Life's a Beach, and Duke: Nuclear Winter packaged with Duke Nukem 3D: Megaton Edition on Steam. This allows them to be launched directly from the startup window and also adds an "-addon" command line parameter that should allow the duke3d.exe included with Megaton Edition to be replaced with a copy of EDuke32.  
3617 2856d 21h hendricks266 /polymer/eduke32/source/ Fix loading of a user's previous "SelectedGRP" file.  
3278 2962d 4h hendricks266 /polymer/eduke32/source/ 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.
3219 2980d 21h hendricks266 /polymer/eduke32/source/ For novelty, add support for RENDERTYPE=SDL under Windows.

This needs improvements to bring it up to par with winlayer, but it is functional. In particular, a good amount of code from winlayer could be used for both layers, including the profiling timers, the version printing code, and the hInstance and hModule sharing.

Known problems: the mouse cursor is not trapped, and the game starts before the startup window shows options.
2726 3154d 14h hendricks266 /polymer/eduke32/source/ The handling for grp, con, and def filenames has been massively cleaned up and factored into common.c. A new header, common_game.h, was created because common.h was placed in build/include (see r2542) and we need a common header for things that strictly should not be in the engine. RTS file names were also improved but some of the patterned changes were already made in r2420, and they were not factored because they are strictly part of the game, not the editor.

NAM and Napalm can now share their con, def, and rts files if the one for their respective game is not present because the con and rts files are identical.

Also, decapitalize two string literals missed in r2540.
2563 3221d 11h helixhorned /polymer/eduke32/source/ Make g_grpNamePtr memory-clean, extern clearGrpNamePtr().  
2561 3221d 11h helixhorned /polymer/eduke32/source/ Clear up handling of g_*NamePtr in the game.

The primary change is that things have been made memory-clean. Some of these
pointers may point to wildly different places during the course of the program
such as statically or dynamically allocated storage, the buffer returned by
getenv() (which must not be modified according to the docs), or an element of
argv[]. Consequently, we need to strdup, or better, dup_filename them if they
are ever to be passed to a function that modifies their pointed-to data.

- added statics or consts according to usage
- 3 new functions clear{Grp,Def,Script}NamePtr, only 'Def' one extern for now
- in G_CheckCommandLine, don't strip 'const'; use Bstrncpyz where appropriate
- remove multiple declarations

Also, warn if an application parameter has been ignored (not matched).
2543 3223d 8h helixhorned /polymer/eduke32/source/ Capitalize numgrpfiles macro to NUMGRPFILES.  
1820 3611d 22h terminx /polymer/eduke32/source/ Consolidate POLYMOST preprocessor define into USE_OPENGL, remove SUPERBUILD preprocessor define, add additional mode to neartag() to skip sprite searches and speed up processing (and enable for CON_OPERATE), fix issue with nearby single instance sounds not playing due to out of range sounds blocking their playback, fix issue with settings.cfg being reset to default bindings when running a mod that specifies its own cfg base name, improve CON structure member interface read/write performance, fix a bug with CON "move" pointer validation  
1729 3712d 8h terminx /polymer/eduke32/source/ remove obsolete CON compile warnings about affecting multiplayer sync, add -nodinput compatibility parameter to work around DirectInput crash issues on certain systems, fix  
1677 3825d 22h terminx /polymer/eduke32/source/ Global thermonuclear code rape  
1652 3894d 19h terminx /polymer/eduke32/source/ Updated synthesis script, moved some non-essential files around, updated license headers on all non-BUILDLIC files, added memory cache on top of texcache to improve load times, moved some duplicated keyboard handling stuff from winlayer/sdlayer to baselayer, fixed keypad / in Mapster32 tile selector, fixed bug where p->rotscrnang and p->look_ang never reset to 0, added support for reloading maphack based polymer lights after mode changes/savegame loads, other minor changes  
1587 4023d 7h terminx /polymer/eduke32/source/ Clean out remaining changes from tree... this is mostly crap like variable name cleanup  

Show All