Commit Graph

63 Commits

Author SHA1 Message Date
hendricks266 dac94ce284 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.

git-svn-id: https://svn.eduke32.com/eduke32@3278 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-13 02:37:20 +00:00
hendricks266 be899ba3af 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.

git-svn-id: https://svn.eduke32.com/eduke32@3219 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-24 09:13:29 +00:00
hendricks266 67ed6945fd 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.

git-svn-id: https://svn.eduke32.com/eduke32@2726 1a8010ca-5511-0410-912e-c29ae57300e0
2012-06-03 16:09:33 +00:00
helixhorned b06ce8456a Make g_grpNamePtr memory-clean, extern clearGrpNamePtr().
git-svn-id: https://svn.eduke32.com/eduke32@2563 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-28 19:44:33 +00:00
helixhorned 3deb8d1d99 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.

Specifically:
 - 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).

git-svn-id: https://svn.eduke32.com/eduke32@2561 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-28 19:44:00 +00:00
helixhorned f0885f665b Capitalize numgrpfiles macro to NUMGRPFILES.
git-svn-id: https://svn.eduke32.com/eduke32@2543 1a8010ca-5511-0410-912e-c29ae57300e0
2012-03-26 22:03:40 +00:00
terminx 323008432a 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
git-svn-id: https://svn.eduke32.com/eduke32@1820 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-04 08:50:58 +00:00
terminx c0fd65345e remove obsolete CON compile warnings about affecting multiplayer sync, add -nodinput compatibility parameter to work around DirectInput crash issues on certain systems, fix http://forums.duke4.net/index.php?s=&showtopic=2961&view=findpost&p=60752
git-svn-id: https://svn.eduke32.com/eduke32@1729 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-23 22:30:27 +00:00
terminx a7eb0418d1 Global thermonuclear code rape
git-svn-id: https://svn.eduke32.com/eduke32@1677 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-02 08:13:51 +00:00
terminx ac7767986a 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
git-svn-id: https://svn.eduke32.com/eduke32@1652 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-25 10:56:00 +00:00
terminx 66e7dd15c2 Clean out remaining changes from tree... this is mostly crap like variable name cleanup
git-svn-id: https://svn.eduke32.com/eduke32@1587 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-16 23:08:17 +00:00
plagman ce20870e21 Fix the build with POLYMER=0 or USE_OPENGL=0.
git-svn-id: https://svn.eduke32.com/eduke32@1564 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-13 01:23:44 +00:00
terminx 20c028b2e9 Memory cleanups, use Bm/c/realloc/free everywhere (configured as nedmalloc version in compat.h), add large page support for Vista/7, tweak nedmalloc settings, add support for projecting textures from SE50 spotlights placed in maps via sprite owner member (manipulated through CONs via sprite htpicnum member), fix building Mapster32 with MSVC, increase PR_MAXLIGHTS to 1024
git-svn-id: https://svn.eduke32.com/eduke32@1527 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-07 06:47:35 +00:00
terminx 1538f39289 fix building with MSVC after Helixhorned's commit
fix FastLZ mipmap corruption issue
fix Polymer MSVC warnings
rewrote qsprintf to take up to 32 parameters, either quotes or gamevars
added qstrncat to concatenate n characters of one quote to another
exposed internal sectorofwall() function to CON
changed CON parser to count ( ) ; and , as whitespace so people can make their code more readable
added ACTIVATOR and ACTIVATORLOCKED support to SE49 and SE50
added SPRITE_USEACTIVATOR flag to allow actor execution based on whether a sector is "locked" or not
rearranged a few structures for faster array lookups
fixed EVENT_HOLSTER


git-svn-id: https://svn.eduke32.com/eduke32@1457 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-12 01:55:34 +00:00
terminx 3aaab4b63d Remove dead copy protection and watcom support code, fix structure alignment and packing issues preventing Polymer from working with MSVC, enable link time code generation (whole program optimization) for MSVC builds, fix most warnings showing up in MSVC with /w2, add pulsating dynamic lights when holding the shrinker or expander
git-svn-id: https://svn.eduke32.com/eduke32@1454 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-09 02:29:48 +00:00
terminx 2f86c2a20f Cleaning out tree... some light changes, polymer memory pools, some meaningless optimizations, etc
git-svn-id: https://svn.eduke32.com/eduke32@1425 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-09 06:19:58 +00:00
terminx af5128bcdd MSVC fixes + clean out tree
git-svn-id: https://svn.eduke32.com/eduke32@1399 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-05 20:09:13 +00:00
terminx b1704e8407 Nothing important
git-svn-id: https://svn.eduke32.com/eduke32@1329 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-16 06:41:24 +00:00
terminx 1889e9151b git-svn-id: https://svn.eduke32.com/eduke32@1327 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-15 05:58:38 +00:00
terminx b459bdd1cd git-svn-id: https://svn.eduke32.com/eduke32@1326 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-14 23:34:48 +00:00
terminx 80e2ec8edf git-svn-id: https://svn.eduke32.com/eduke32@1325 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-14 22:55:32 +00:00
terminx 151189efab new version of astyle
git-svn-id: https://svn.eduke32.com/eduke32@1229 1a8010ca-5511-0410-912e-c29ae57300e0
2009-02-19 16:47:54 +00:00
terminx 768f3ad6d6 git-svn-id: https://svn.eduke32.com/eduke32@1221 1a8010ca-5511-0410-912e-c29ae57300e0 2009-02-02 01:49:14 +00:00
terminx d6914ed108 ass rape
git-svn-id: https://svn.eduke32.com/eduke32@1205 1a8010ca-5511-0410-912e-c29ae57300e0
2009-01-09 09:29:17 +00:00
terminx da8e368104 git-svn-id: https://svn.eduke32.com/eduke32@1188 1a8010ca-5511-0410-912e-c29ae57300e0 2008-12-19 00:53:54 +00:00
terminx 0cf8a909d4 git-svn-id: https://svn.eduke32.com/eduke32@1166 1a8010ca-5511-0410-912e-c29ae57300e0 2008-11-26 22:51:56 +00:00
terminx 4910928877 source code rape
git-svn-id: https://svn.eduke32.com/eduke32@1143 1a8010ca-5511-0410-912e-c29ae57300e0
2008-11-20 14:06:36 +00:00
terminx 4efb91b376 git-svn-id: https://svn.eduke32.com/eduke32@1121 1a8010ca-5511-0410-912e-c29ae57300e0 2008-11-05 11:49:13 +00:00
terminx c21b1deae2 git-svn-id: https://svn.eduke32.com/eduke32@1097 1a8010ca-5511-0410-912e-c29ae57300e0 2008-10-11 11:50:02 +00:00
terminx 18f4481d86 Use bit packing for the bytecode pointer map
git-svn-id: https://svn.eduke32.com/eduke32@1064 1a8010ca-5511-0410-912e-c29ae57300e0
2008-09-12 02:07:44 +00:00
terminx 60526dbb26 git-svn-id: https://svn.eduke32.com/eduke32@1062 1a8010ca-5511-0410-912e-c29ae57300e0 2008-09-11 09:24:45 +00:00
terminx 6def1b0a65 Use mod_dir for savegames
git-svn-id: https://svn.eduke32.com/eduke32@994 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-20 09:27:17 +00:00
terminx b411c3b205 Force startup window to be displayed if the cfg wasn't saved with an EDuke32 build of matching BYTEVERSION_JF, and use a wrapper around kopen4load to access files from mod_dir first.
git-svn-id: https://svn.eduke32.com/eduke32@992 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-20 08:39:07 +00:00
terminx 78f205f1a9 Combine game and configuration tabs in the startup window into one. Still needs porting to startgtk.game.c.
git-svn-id: https://svn.eduke32.com/eduke32@991 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-19 13:26:56 +00:00
terminx 28fedd72e8 Ignore r_downsize for textures with nocompress and some other minor crap
git-svn-id: https://svn.eduke32.com/eduke32@990 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-19 11:05:21 +00:00
terminx 1a39458bb5 minor changes
git-svn-id: https://svn.eduke32.com/eduke32@989 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-18 07:20:36 +00:00
terminx 042915f221 ignore texcache dir in startup window mod list
git-svn-id: https://svn.eduke32.com/eduke32@988 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-17 11:40:27 +00:00
terminx da6b206673 Rename definegamename to setgamename and alter the "map" console command to show a listing of all available maps if no map name is given
git-svn-id: https://svn.eduke32.com/eduke32@987 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-17 11:07:28 +00:00
terminx 81d0ea972d git-svn-id: https://svn.eduke32.com/eduke32@985 1a8010ca-5511-0410-912e-c29ae57300e0 2008-08-17 09:25:52 +00:00
terminx 132db81381 Beginnings of support for selecting mods in the startup window... win32 only for now
git-svn-id: https://svn.eduke32.com/eduke32@984 1a8010ca-5511-0410-912e-c29ae57300e0
2008-08-17 09:01:31 +00:00
terminx 11fc1203fa Game name in window title and some other shit
git-svn-id: https://svn.eduke32.com/eduke32@886 1a8010ca-5511-0410-912e-c29ae57300e0
2008-07-22 09:05:34 +00:00
hnt_ts c660bfb129 1. Removed unneeded the svn:executable proprties. These files aren't actually executable.
2. Added the svn:ignore properties to clean up the output of "svn update" so that it doesn't show some unversioned files anymore sush as compiled binaries and object files(*.a).
3. Converted the end-of-line charapter sequences from Windows(CR LF) to Unix format(LF). It used to be a mixture of both styles that often confuse some programs. If some files have to be in Windows format, you should add the svn:eol-style on them(svn propset svn:eol-style native polymer/eduke32/source/thefile.c).


git-svn-id: https://svn.eduke32.com/eduke32@854 1a8010ca-5511-0410-912e-c29ae57300e0
2008-07-12 14:09:52 +00:00
terminx 681e58ccc4 Keep the startup window open when CON compilation fails so people can copy CON errors out of it directly without looking at eduke32.log
git-svn-id: https://svn.eduke32.com/eduke32@851 1a8010ca-5511-0410-912e-c29ae57300e0
2008-07-10 05:37:36 +00:00
terminx 67e2466b0e Patch from hunter_rus
git-svn-id: https://svn.eduke32.com/eduke32@723 1a8010ca-5511-0410-912e-c29ae57300e0
2008-05-10 01:29:37 +00:00
terminx 408ca47fbd git-svn-id: https://svn.eduke32.com/eduke32@654 1a8010ca-5511-0410-912e-c29ae57300e0 2008-03-22 10:23:57 +00:00
terminx 945e1b2357 Remove -Wno-unused from Makefile
git-svn-id: https://svn.eduke32.com/eduke32@649 1a8010ca-5511-0410-912e-c29ae57300e0
2008-03-21 04:01:38 +00:00
terminx 31a901b7eb git-svn-id: https://svn.eduke32.com/eduke32@584 1a8010ca-5511-0410-912e-c29ae57300e0 2007-12-12 17:42:14 +00:00
terminx a2f4bdb2c8 Wanna buy some crack?
git-svn-id: https://svn.eduke32.com/eduke32@563 1a8010ca-5511-0410-912e-c29ae57300e0
2007-08-27 00:20:15 +00:00
terminx ad5c98d66f config file global variable rape
git-svn-id: https://svn.eduke32.com/eduke32@561 1a8010ca-5511-0410-912e-c29ae57300e0
2007-08-26 10:35:52 +00:00
terminx b5a81483f2 git-svn-id: https://svn.eduke32.com/eduke32@559 1a8010ca-5511-0410-912e-c29ae57300e0 2007-08-25 01:05:00 +00:00