Commit Graph

106 Commits

Author SHA1 Message Date
terminx 0e713e698f Separate art tile related functions out from engine.c and into tiles.c
git-svn-id: https://svn.eduke32.com/eduke32@5801 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:25 +00:00
terminx e1fc28776c Fix MSVC build
git-svn-id: https://svn.eduke32.com/eduke32@5797 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:34:03 +00:00
terminx 32450bdd68 Relocate maphack related code into mhk.c.
This commit also relocates clipping related code into clip.c and makes a few other minor changes, because I fucked up and merged the commits together. God damn it.

git-svn-id: https://svn.eduke32.com/eduke32@5792 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:30 +00:00
terminx cb2382285f Separate screen capture code from engine.c into screenshot.c
git-svn-id: https://svn.eduke32.com/eduke32@5791 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:19 +00:00
terminx 3eb979f8da Split 2d mode editor stuff that remained in engine.c into 2d.c.
git-svn-id: https://svn.eduke32.com/eduke32@5790 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:14 +00:00
terminx 205a757109 Move palette related functionality from engine.c to palette.c/h.
git-svn-id: https://svn.eduke32.com/eduke32@5789 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:33:06 +00:00
terminx cdcc983a22 Move hash table stuff out of engine.c and into hash.c/h.
git-svn-id: https://svn.eduke32.com/eduke32@5788 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-21 00:32:53 +00:00
hendricks266 3dba49a1e3 Replace uses of the HAVE_DS and HAVE_SDL preprocessor macros with MIXERTYPEWIN and MIXERTYPESDL.
git-svn-id: https://svn.eduke32.com/eduke32@5780 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-15 07:08:45 +00:00
hendricks266 8ef2032035 Makefile: Revamp setup of all things SDL.
Highlights:
*Building with msys2 can now take advantage of sdl-config and sdl2-config if present.
*Add a header check to error out if SDL_mixer's major version does not match SDL.
*Building with frameworks on OS X works again.

Notes:
*Those cross compiling, particularly targeting Windows, may need to invoke make with SDLCONFIG='' to avoid bringing in libs and headers from the host.

git-svn-id: https://svn.eduke32.com/eduke32@5778 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-15 07:08:35 +00:00
hendricks266 0434a87e3a Remove trailing whitespace from anything we don't need to rebase from an upstream.
git-svn-id: https://svn.eduke32.com/eduke32@5768 1a8010ca-5511-0410-912e-c29ae57300e0
2016-06-05 04:46:28 +00:00
terminx 6f6762edfa VS project and MSVC Makefile updates. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5651 1a8010ca-5511-0410-912e-c29ae57300e0
2016-03-14 00:06:45 +00:00
terminx dbbc7b1e13 Break out screen drawing stuff from game.c into screens.c and command line processing stuff into cmdline.c
git-svn-id: https://svn.eduke32.com/eduke32@5618 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-13 21:05:57 +00:00
terminx 023bc40020 Break all of the text printing stuff out of game.c and into a separate screentext.c/h
git-svn-id: https://svn.eduke32.com/eduke32@5614 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-07 02:38:23 +00:00
terminx 5b7a4a9a78 Break out status bar code into sbar.c/h
git-svn-id: https://svn.eduke32.com/eduke32@5613 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-07 02:38:16 +00:00
terminx 51bc13a9d7 Break cheat code stuff out of game.c and into cheats.c/h. Remove unnecessary header includes from several modules (all relevant headers are already pulled in by duke3d.h).
git-svn-id: https://svn.eduke32.com/eduke32@5611 1a8010ca-5511-0410-912e-c29ae57300e0
2016-02-07 02:38:03 +00:00
hendricks266 3a8d53573c Remove actors_inline, game_inline, and sector_inline objects, and move their code into other headers, set up to be compiled into well-fitting objects if inlining them is disabled.
git-svn-id: https://svn.eduke32.com/eduke32@5529 1a8010ca-5511-0410-912e-c29ae57300e0
2016-01-08 01:33:35 +00:00
terminx 49bc51a56d Add colmatch object to MSVC Makefile. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5386 1a8010ca-5511-0410-912e-c29ae57300e0
2015-10-20 07:14:56 +00:00
hendricks266 eed78085bc Merge compat-from-mingw-w64 into compat-to-msvc since we dropped support for mainline MinGW32, and add dll_dependency.S so we don't need to build the libs with "-fno-stack-check -fno-stack-protector -mno-stack-arg-probe".
git-svn-id: https://svn.eduke32.com/eduke32@5341 1a8010ca-5511-0410-912e-c29ae57300e0
2015-09-08 02:58:03 +00:00
terminx 1054a60183 Disable FLAC in MSVC builds for now until I have time to build new libraries that are compatible with VS2015. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5287 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-10 07:56:41 +00:00
terminx babb9d9d61 Android and MSVC build fixes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5259 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-30 23:31:59 +00:00
hendricks266 b7b23310e3 Revert recent icon changes.
git-svn-id: https://svn.eduke32.com/eduke32@5253 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:46:44 +00:00
hendricks266 e9655f8469 Add SW to our build system and make relevant changes to avoid fatal build errors.
git-svn-id: https://svn.eduke32.com/eduke32@5197 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-19 21:56:03 +00:00
terminx 50c30ab790 Animation system overhaul part 1. This allows for an unlimited number of .anm/.ivf files to be defined via duke3d.def and played back at any time with the new CON commands. Syntax is currently as follows, but may change:
cutscene "somefile.anm" { delay 10 } // defines somefile.anm with a delay of 10 120Hz tics between frames. a more typical framerate method may come later, but this is how the originals worked.

Once defined, they can be played through CON with the new playback command, also called "cutscene". It works like this:

definequote 12345 somefile.anm
define ANIM_SOMEFILE 12345

...

cutscene ANIM_SOMEFILE // halts game execution and immediately plays cutscene, resuming execution when finished

...

Sounds can be played during animations (and tiles can be overlaid, etc) like this:

onevent EVENT_CUTSCENE
    ifcutscene ANIM_SOMEFILE
    {
        ifvare RETURN 12 // frame 12
            sound FLY_BY
        rotatesprite ...
    }
endevent

The value of the RETURN var at the end of EVENT_CUTSCENE determines the next frame to play. This can be used for looping, etc. Attempting to play animations backwards outright is not advised as animations only seek in one direction (so rewinding requires running it through from frame 0 again). This is will WIP and hasn't been heavily tested at all, so please try it out.

git-svn-id: https://svn.eduke32.com/eduke32@4987 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:07 +00:00
hendricks266 3f846bdde3 Reinstate MD4.
git-svn-id: https://svn.eduke32.com/eduke32@4883 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-08 15:13:28 +00:00
terminx 999f789438 Fix a couple of Makefile errors Helixhorned noticed. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4713 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:34:49 +00:00
terminx 683a4fb728 Nuke unused lzwnew.c/h
git-svn-id: https://svn.eduke32.com/eduke32@4663 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:31:12 +00:00
terminx 4263626f97 Misc additional optimizations, mostly to polymost/mdsprite. Also separate voxmodel into its own source file and object. This commit is pretty large because I was hitting the limit of what could realistically be carved up into smaller patches. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4639 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:18:43 +00:00
terminx 76ad1ce07e Move USE_LIBVPX definition to correct location in Makefile.msvc
git-svn-id: https://svn.eduke32.com/eduke32@4598 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:03:54 +00:00
hendricks266 b310eaef2c Fix MSVC build.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4566 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-28 09:00:28 +00:00
hendricks266 a7fb2721e4 Move code non-specific to Duke Nukem 3D from astub.c to a new m32common.c.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4561 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-28 06:44:37 +00:00
hendricks266 5237346f5b Move code non-specific to Duke Nukem 3D from source/common.c to a new build/src/common.c.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4559 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-28 06:43:46 +00:00
hendricks266 b48f3b44e3 Progress towards KenBuild Editor, part 1.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4558 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-28 06:43:16 +00:00
hendricks266 4e5788a32d Delete empty folders and update ignore properties.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4554 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-23 07:58:03 +00:00
hendricks266 e79a2fe828 MSVC build system consolidation.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4553 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-23 07:21:29 +00:00
hendricks266 b332189ae5 Ball-busting Makefile restructure.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4543 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-22 07:25:54 +00:00
terminx 330119f482 MSVC build fix
git-svn-id: https://svn.eduke32.com/eduke32@4532 1a8010ca-5511-0410-912e-c29ae57300e0
2014-07-06 00:11:11 +00:00
hendricks266 70caa24f24 MSVC: Set up support for SDL2. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4326 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-11 07:39:09 +00:00
hendricks266 8f9ffcf23f MSVC: Add support for x64 building and all synthesis libs (libpng/zlib, libvpx, libFLAC).
External ogg/vorbis are no longer required.

git-svn-id: https://svn.eduke32.com/eduke32@4320 1a8010ca-5511-0410-912e-c29ae57300e0
2014-02-10 10:59:42 +00:00
hendricks266 4297507c8f Dynamicsoundremap.
git-svn-id: https://svn.eduke32.com/eduke32@3834 1a8010ca-5511-0410-912e-c29ae57300e0
2013-06-01 06:55:30 +00:00
terminx 7e22c6d81c Read GOG.com and Steam Duke3D install paths from the registry instead of hard-coding the default paths.
git-svn-id: https://svn.eduke32.com/eduke32@3615 1a8010ca-5511-0410-912e-c29ae57300e0
2013-03-27 01:39:18 +00:00
terminx 3e4ea93b20 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.
git-svn-id: https://svn.eduke32.com/eduke32@3551 1a8010ca-5511-0410-912e-c29ae57300e0
2013-03-04 04:14:19 +00:00
terminx 0ae2d9ad60 Fix DirectSound in MSVC builds and remove the dependency on the DirectX SDK
git-svn-id: https://svn.eduke32.com/eduke32@3330 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-29 05:22:39 +00:00
terminx af4ca16ddd Remove a few old references to the duke3d_w32.exe wrapper we once shipped
to facilitate compatibility with stuff like Dukester X years ago

git-svn-id: https://svn.eduke32.com/eduke32@3297 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-16 04:04:16 +00:00
terminx ba8d1a5c1e 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.
git-svn-id: https://svn.eduke32.com/eduke32@3282 1a8010ca-5511-0410-912e-c29ae57300e0
2012-12-14 17:13:17 +00:00
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
terminx 2ab811cd9b Remove xdelta3 since it doesn't fit in with our current networking plans anymore
git-svn-id: https://svn.eduke32.com/eduke32@3193 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-16 15:40:28 +00:00
helixhorned f20a001618 Split r3159..r3161, part 1: Makefile and MSVC project file changes.
git-svn-id: https://svn.eduke32.com/eduke32@3166 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-15 14:27:49 +00:00
helixhorned 1cd11d06ef Revert "Fix the warnings when building with C++, add MSVC C++ build support."
This reverts r3159..r3161.

Conflicts:
	eduke32/build/include/compat.h
(Handled so that r3163's changes are kept applied.)

git-svn-id: https://svn.eduke32.com/eduke32@3165 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-15 14:27:45 +00:00
terminx 3ff46c02b2 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!)


git-svn-id: https://svn.eduke32.com/eduke32@3159 1a8010ca-5511-0410-912e-c29ae57300e0
2012-11-14 23:32:43 +00:00
hendricks266 d3a3c74112 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.

git-svn-id: https://svn.eduke32.com/eduke32@2728 1a8010ca-5511-0410-912e-c29ae57300e0
2012-06-03 16:11:22 +00:00