Commit graph

1540 commits

Author SHA1 Message Date
helixhorned
51eb2c7cd3 Too much stuff for one commit.
engine:
* sector-like sprite clipping now works with x- xor y-flipped actual sprites

mapster32:
* corruption checker has been hooked up to loading/saving routines to inform/warn the user
* also warn if mouse pointer is over corrupt wall which is shown in pink then: you should not move such a wall!
* faster map loading by deferring polymer_loadboard to 3d mode entrance (also removes some 'glGetTexLevelParameteriv returned GL_FALSE' warnings)
* more logical maphack light handling, the logic is still a bit dodgy though
* some menu and misc. function fixup
* redundancy elimination...

API:
* added consts various for 'char *filename' parameters
* loadboard() now accepts bit 4 for flags (formerly 'fromwhere')

git-svn-id: https://svn.eduke32.com/eduke32@1760 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 00:23:39 +00:00
plagman
8d01b7f403 Fix a problem with model skins introduced by highpal. Liztroops would turn blue on death.
git-svn-id: https://svn.eduke32.com/eduke32@1759 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-14 19:50:01 +00:00
plagman
07ca533c4d Fix editor picking in Polymer; sorry!
git-svn-id: https://svn.eduke32.com/eduke32@1758 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-12 17:10:41 +00:00
plagman
1ececc94ea Perform the highpal lookup after the diffuse modulation and detail to hit more range in the highpalookup map. This shuffles a fair bit of lighting model around, so I wouldn't be surprised if I broke something.
git-svn-id: https://svn.eduke32.com/eduke32@1757 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-12 02:31:50 +00:00
plagman
e4d8e53a5a Hook highpal to model skins.
git-svn-id: https://svn.eduke32.com/eduke32@1756 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-12 02:06:51 +00:00
helixhorned
4bc5ed0e83 have gltexcompr option in mapster32; fix prhighpal.py script
git-svn-id: https://svn.eduke32.com/eduke32@1755 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-09 22:49:50 +00:00
helixhorned
e66bec5e31 Make mapster32 know r_downsize parameter. For best caching performance, this and glusetexcache should be the same as for the game. Highpalookup script can now generate maps equivalent to the current PHRP tint defs.
git-svn-id: https://svn.eduke32.com/eduke32@1754 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-09 18:53:06 +00:00
plagman
69feee634b Move the highpalookup python helper scripts somewhere that makes sense and
that's packaged by synthesis source snapshots (zebioman request).



git-svn-id: https://svn.eduke32.com/eduke32@1753 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-07 01:50:23 +00:00
plagman
e1a6dcbe94 Fix build.
git-svn-id: https://svn.eduke32.com/eduke32@1752 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-03 23:50:20 +00:00
helixhorned
e745f3abf9 A bunch of mutually unrelated updates.
First, there's a new script for the generation of highpalookup images. Python 2.6, NumPy and PIL are required.
Next, the map corruption checker has been ported to C. This is so that Mapster32 will be able to take decisions more cleverly based on the corruptness of the map. It also catches a few more issues like inconsistent nextwall/nextsector tags now.
Finally, link the executables with --large-address-aware on Windows. This gives a gig more private virtual memory on XP when booting with /3GB. YMMV, but I can play IW2 with Polymer now.

git-svn-id: https://svn.eduke32.com/eduke32@1751 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-03 22:04:20 +00:00
helixhorned
79a52e1bc5 Make deferred polymer model processing not crash; make tile name search case-insensitive.
git-svn-id: https://svn.eduke32.com/eduke32@1750 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-01 18:35:59 +00:00
helixhorned
002ac54ca8 (ATM broken) support for PNG highpal files; their dimensions must be the same as the TGA ones.
git-svn-id: https://svn.eduke32.com/eduke32@1749 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-31 01:35:00 +00:00
plagman
3d2bcbfba8 Highpalookup support is more or less ready, also checked in sample script to
generate the highpalookup maps offline (only with a few incomplete pals right
now).

New DEF token: highpalookup [pal] [filename]
New cvar: r_pr_highpalookups



git-svn-id: https://svn.eduke32.com/eduke32@1748 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-30 08:13:37 +00:00
plagman
b3231e5c9b Get the glTexImage3D function pointer from the ICD, not from dlsym/GetProcAddress. This fixes OpenGL on Windows since opengl32.dll only has version 1.1 symbols.
git-svn-id: https://svn.eduke32.com/eduke32@1747 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-29 20:46:11 +00:00
plagman
1467c7b0b6 Fix release builds.
git-svn-id: https://svn.eduke32.com/eduke32@1746 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-29 09:17:48 +00:00
plagman
5582d41553 Highpalookup maps implementation on the renderer side. Currently set to a hardcoded highpalookup of 6:6:6->RGB and causes a noticeable quality drop. Use the debug1 cvar to toggle ingame.
git-svn-id: https://svn.eduke32.com/eduke32@1745 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-29 06:23:49 +00:00
helixhorned
d3a17f62a2 Split MD3 model post-processing into common and Polymer parts and defer the latter if the game is started with a different renderer. This has the benefit of faster startup times and much less memory consumption in that case. When the user switches to Polymer later in-game, all processing is done in one run. I've observed crashes due to the music system if it takes too long, so the it may be unreliable. Also some calloc->malloc where the clearing is unnecessary.
git-svn-id: https://svn.eduke32.com/eduke32@1744 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-24 15:44:37 +00:00
helixhorned
b3194b18cd d'oh
git-svn-id: https://svn.eduke32.com/eduke32@1743 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-20 16:55:37 +00:00
plagman
c2768ccf98 Fix the build for everything else; it looks like the macro definition for
ATTRIBUTE was just missing from helixhorned's change.



git-svn-id: https://svn.eduke32.com/eduke32@1742 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-20 03:34:18 +00:00
terminx
b75261d41b fix r1740 msvc build breakage
git-svn-id: https://svn.eduke32.com/eduke32@1741 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-19 23:00:11 +00:00
helixhorned
92223c2c85 Atrributify various function declarations. Right now the attributes used are noreturn, nonnull and format, the latter allowing us to catch silly printf errors. Again, these range from relatively benign to disastrous.
git-svn-id: https://svn.eduke32.com/eduke32@1740 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-19 22:47:10 +00:00
helixhorned
00fbd8267e Strip out most duplicated Makefile stuff into Makefile.common -- this should make configuration and maintenance much less troublesome. Attention to everyone who builds their own Edukes: you may have to re-set some paths like the one to the DirectX SDK.
git-svn-id: https://svn.eduke32.com/eduke32@1739 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-19 22:29:01 +00:00
helixhorned
2fec586906 Revert the four Makefiles to have a base version in case I screw up again...
git-svn-id: https://svn.eduke32.com/eduke32@1738 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-19 18:15:36 +00:00
plagman
a0269f6dac getcwd with NULL gives us memory allocated from the system, so don't try to use nedmalloc to free it.
git-svn-id: https://svn.eduke32.com/eduke32@1737 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-19 02:04:59 +00:00
helixhorned
4a5e89f0dd Fixes former crash in drawline16 and swaps drawpixel with the unsafe variant there; fixes potential sector[-1] access in sliding Star Trek doors; make CC overridable in Makefiles so that other toolchains or static analyzers like scan-build/clang can be used; with its help, fix some issues, some more severe than others.
git-svn-id: https://svn.eduke32.com/eduke32@1736 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-17 14:22:15 +00:00
plagman
e043431060 Fix a bug where having two or more lighting passes on a multi-surface mdsprite would leak some GL state and disable blending for all but the first surface.
git-svn-id: https://svn.eduke32.com/eduke32@1735 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-17 03:56:25 +00:00
helixhorned
efc0f2ec75 This commit doesn't add anything interesting for anyone not interested in tracing down completely absurd bugs.
git-svn-id: https://svn.eduke32.com/eduke32@1734 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-07 19:05:55 +00:00
helixhorned
7bd0e9709a More sensible dragging in side view mode. When pasting walls in 3D mode, match the actual pixel width of the source wall.
git-svn-id: https://svn.eduke32.com/eduke32@1733 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-05 17:39:52 +00:00
terminx
92fc1d3566 Fix digitalnumberz spacing and saving/loading of screen size
git-svn-id: https://svn.eduke32.com/eduke32@1732 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-03 06:50:16 +00:00
helixhorned
234ac1b9bb Adds chselshade (change selected shade) to a.m32
git-svn-id: https://svn.eduke32.com/eduke32@1731 1a8010ca-5511-0410-912e-c29ae57300e0
2010-12-01 22:07:46 +00:00
helixhorned
639cabc0e6 A week worth of Mapster hacking: first, there is an experimental side view mode toggled with [F3]. Nav keys are {QWAZ}, MMB and RMB. Use with care because it is still in construction. The sector selection routines have been rewritten -- it is now possible to paste the selection into a room and a new inner loop will be added automatically (MickyC's idea). Adds m32script commands drawline16z and drawcircle16z.
git-svn-id: https://svn.eduke32.com/eduke32@1730 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-27 22:12:24 +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
helixhorned
07ecd3eede Set union ['] and difference [;] for sector selection in Mapster32; probably fix for crash on clipshape-init; replace tabs in doc/build*.txt with three spaces.
git-svn-id: https://svn.eduke32.com/eduke32@1728 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-20 16:47:18 +00:00
helixhorned
a633e8baa6 Makefile: pass NEDMALLOC variable to build/Makefile
git-svn-id: https://svn.eduke32.com/eduke32@1727 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-12 18:16:42 +00:00
helixhorned
93c749f2de a.m32 corruption checker: also handle out-of-range picnum
git-svn-id: https://svn.eduke32.com/eduke32@1726 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-10 21:11:55 +00:00
helixhorned
f3e992b0c8 Use posix_memalign in fork/exec midi player when not using nedmalloc. This fixes compilation in this case for me.
git-svn-id: https://svn.eduke32.com/eduke32@1725 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-09 21:10:26 +00:00
plagman
2751ea0c5d Works around a bug with newer NVIDIA GL drivers where creating a GL context
would remove write access to our code sections.

bugs 3086185 and 3104646



git-svn-id: https://svn.eduke32.com/eduke32@1724 1a8010ca-5511-0410-912e-c29ae57300e0
2010-11-08 04:56:10 +00:00
helixhorned
8206978b8a Delete _clipshape_.map. Easy to forget if it's not on the file system anymore...
git-svn-id: https://svn.eduke32.com/eduke32@1723 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-31 19:59:13 +00:00
helixhorned
a38307a54f Fixes quite a few nasty bugs with the new clipping code, including the crash. Clip shapes are now loaded from _clipshape0.map through _clipshape9.map (no break like when loading tiles, just see if each is present). Mapster32: insert some safety code for sprites with sectnum<0. Because this is still a bad thing, have the m32script corruption checker catch this and run it periodically from EVENT_DRAW2DSCREEN. Also draw such sprites in 2D mode with a blood-red color, and make them draggable. Remove set[sector,wall,sprite] commands.
git-svn-id: https://svn.eduke32.com/eduke32@1722 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-31 19:54:03 +00:00
helixhorned
4fa07ed4af New sprite clipping for hitscan; crude debugging code for tracing down the crash that Commander is getting and I can reproduce only in real Windows with the synthesis build.
git-svn-id: https://svn.eduke32.com/eduke32@1721 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-30 20:32:06 +00:00
helixhorned
998bdb3a8b Fix crash. Reason was obsolete code.
git-svn-id: https://svn.eduke32.com/eduke32@1720 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-29 12:51:10 +00:00
helixhorned
f1caa980d0 Sector-like sprite clipping. Check samples/spriteclip.txt.
git-svn-id: https://svn.eduke32.com/eduke32@1719 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-28 20:17:22 +00:00
helixhorned
47be9ff8ce Temporarily replace drawpixels by a bounds-checked version in engine.c.
git-svn-id: https://svn.eduke32.com/eduke32@1718 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-24 21:52:21 +00:00
helixhorned
b126f6f6c8 Don't reset extra tags before loading map in Mapster32.
git-svn-id: https://svn.eduke32.com/eduke32@1717 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-22 23:12:59 +00:00
plagman
a925d39273 SDL and menu joystick fixes by NY00123 (thanks!).
git-svn-id: https://svn.eduke32.com/eduke32@1716 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-21 02:20:40 +00:00
Plagman
e0588e4a70 Pull in backtrace.c (pre-compiled as backtrace.dll and MinGW dependencies) from http://code.google.com/p/backtrace-mingw. When running debugging snapshots, this will print out a helpful backtrace in eduke32.crashlog. I had to disable stack protectors for debug builds as this was pulling in a dependency that I assume most people won't have. If anyone feels like merging that code into EDuke32 itself and find a way to remove the ugly libintl dependencies, be my guest. In the meantime, sorry for the awful commit.
git-svn-id: https://svn.eduke32.com/eduke32@1715 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-19 05:42:21 +00:00
plagman
ee6548e6a9 Link debug builds with -rdynamic in order to get symbol names when printing backtraces from the signal handler.
git-svn-id: https://svn.eduke32.com/eduke32@1713 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-19 03:41:32 +00:00
helixhorned
e0874390ff New aspect determination code for classic/Polymost, controlled with r_usenewaspect and r_screenaspect cvars; print stack traces with SDL/GCC; change signature of app_main in game.c to match declarations found in other places and return different positive values on init error.
git-svn-id: https://svn.eduke32.com/eduke32@1712 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-17 14:49:39 +00:00
helixhorned
cb321a9d76 New CON command 'clipmovenoslide', doing the same as clipmove but stopping at collisions before sliding calculations. Fixes a problem with Mapster32 where names.h was tried to be read before setting up the search path.
git-svn-id: https://svn.eduke32.com/eduke32@1711 1a8010ca-5511-0410-912e-c29ae57300e0
2010-10-09 22:59:17 +00:00
helixhorned
036a88736c Mapster32: make sector keep old firstwall when adding inner loop, rewrite setfirstwall to use malloc'ed memory for temp storage instead of end of sector[], reintroduce correct searchwall determination in Polymer mouse picker (intersection of xy projection of aiming ray with wall); added commands to m32script: shiftvarvar[lr], ifhighlighted, ifin3dmode, updatehighlight, sethighlight; coded prototype terrain helper based on isolines and triangle strips.
git-svn-id: https://svn.eduke32.com/eduke32@1710 1a8010ca-5511-0410-912e-c29ae57300e0
2010-09-30 23:05:40 +00:00