Commit Graph

1462 Commits

Author SHA1 Message Date
helixhorned 99e08bf441 legibility improvements: rotatesprite(..., 0,0,xdim-1,ydim-1) -> rotatesprite_fs
git-svn-id: https://svn.eduke32.com/eduke32@2308 1a8010ca-5511-0410-912e-c29ae57300e0
2012-02-02 17:35:05 +00:00
helixhorned 20741efd3b Fix a sector[-1] access when starting to draw a wall in an empty map.
git-svn-id: https://svn.eduke32.com/eduke32@2305 1a8010ca-5511-0410-912e-c29ae57300e0
2012-02-01 21:51:26 +00:00
helixhorned 021126045f Mapster32: tweak dragging a single sprite so that they can be dragged 'uphill'.
The implementation uses the recently introduced updatesector_onlynextwall when
setspritez fails.

git-svn-id: https://svn.eduke32.com/eduke32@2302 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-30 18:25:13 +00:00
helixhorned a32872276d kplib.c without asm: I see an uninitialized access here, valgrind does not?
git-svn-id: https://svn.eduke32.com/eduke32@2293 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-28 14:37:08 +00:00
helixhorned 0f36ef92ee A couple of Makefile tweaks for clang 3.1 from SVN, and a workaround
for an assertion failure with clang. Really ought to file a bug report instead.

git-svn-id: https://svn.eduke32.com/eduke32@2292 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-28 14:36:52 +00:00
helixhorned 3a0734a7b0 Lunatic: fix for running with static main engine arrays.
git-svn-id: https://svn.eduke32.com/eduke32@2291 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-28 14:36:34 +00:00
helixhorned 95e5d1e29d In Mapster32, register the 'vidmode' OSD command in non-GL builds.
git-svn-id: https://svn.eduke32.com/eduke32@2289 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-27 15:03:34 +00:00
helixhorned 2c2adee5e9 Two tweaks for USE_OPENGL=0 builds.
- Always parse 'animsounds' defs
- don't print "ignored frame/animation definition" warnings

git-svn-id: https://svn.eduke32.com/eduke32@2288 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-27 15:03:18 +00:00
helixhorned de2cbbfb47 Fix USE_OPENGL=0 build; squelch one warning.
git-svn-id: https://svn.eduke32.com/eduke32@2287 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-27 15:03:02 +00:00
helixhorned a6158ac3f6 Fix building with GCC 4.6 link-time optimization.
It looks like GCC doesn't honor the 'used' attribute with LTO. This is
"fixed" by declaring the variables in question with external linkage
(i.e. removing the 'static').  I consider such behavior a GCC bug, though.

git-svn-id: https://svn.eduke32.com/eduke32@2286 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-27 15:02:45 +00:00
helixhorned 6c405100ac Make sdlayer.c's timerticspersec an 'int32_t' to match the declaration.
git-svn-id: https://svn.eduke32.com/eduke32@2285 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-27 15:02:25 +00:00
helixhorned 98ffd6f00c Rearrange 'struct hicreplc_t' members so that no padding is inserted on x64.
git-svn-id: https://svn.eduke32.com/eduke32@2282 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-26 21:58:25 +00:00
helixhorned 143ec24cb4 engine.c cleanup, making some variables static mostly
git-svn-id: https://svn.eduke32.com/eduke32@2281 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-26 21:58:08 +00:00
helixhorned c657588658 Fix a potential sector[-1] access when drawing a masked wall in Polymost.
git-svn-id: https://svn.eduke32.com/eduke32@2280 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-26 21:57:51 +00:00
helixhorned f96cc343a2 Fix the insert cicle wall-points bug reported by Norvak.
git-svn-id: https://svn.eduke32.com/eduke32@2279 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-24 18:07:36 +00:00
helixhorned d95511ed1d Fix sprite[] access with indices > MAXSPRITES in Polymer model drawing code.
Internally, updateanimation() now takes a third parameter 'lpal'.

git-svn-id: https://svn.eduke32.com/eduke32@2277 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-22 17:18:49 +00:00
helixhorned 775eff0344 Mapster32: make sector flipping (X/Y) work properly with TROR.
git-svn-id: https://svn.eduke32.com/eduke32@2276 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-20 22:12:11 +00:00
helixhorned 661e85155b Mapster32: always show highlighted sprites in 2D mode, even in a gray sector.
git-svn-id: https://svn.eduke32.com/eduke32@2274 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-20 22:11:40 +00:00
helixhorned bb1070b795 Fix a potential wall[-1] access in Mapster32.
git-svn-id: https://svn.eduke32.com/eduke32@2273 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-20 15:48:03 +00:00
helixhorned 7a893b8ec4 minor engine cleanup.
- enclose glbuild.h in #idndef ... sentinels
- engine.c: remove unused variable 'pageoffset', make 'lastx' static
- formatting

git-svn-id: https://svn.eduke32.com/eduke32@2272 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-20 13:24:15 +00:00
helixhorned db94366657 Use ATTRIBUTE((used)) for symbols used only in inline asm.
This may fix compilation for optimized builds with GCC or clang where
the compiler would otherwise decide that those symbols are unused.

git-svn-id: https://svn.eduke32.com/eduke32@2271 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-20 13:23:53 +00:00
helixhorned d0acd40ff8 Inreased debugging level for catching oob accesses to 'main' arrays.
If enabled, this makes the following arrays be allocated statically:
spriteext, spritesmooth, sector, wall, sprite, tsprite, while
necessarily disabling the clipshape feature (because it relies on
setting sector/wall to different malloc'd block temporarily).

To compile, pass DEBUGANYWAY=1 in addition to RELEASE=0 to 'make',
and it's really only useful with CC=clang, of course.

git-svn-id: https://svn.eduke32.com/eduke32@2270 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-19 23:17:34 +00:00
helixhorned a61052f807 Double MAXTILES to 30720, reduce EXTRATILES (models w/ custom pal skin) to 3840
I'm decreasing EXTRATILES because I feel that it's way overcommitted. It's the
max number of model-tiles that have their own skin for a certain palette,
like the slimer egg in the HRP.

git-svn-id: https://svn.eduke32.com/eduke32@2267 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-19 21:58:06 +00:00
helixhorned cd89fce9aa less trivial stuff
- fix one bound-checking line
- rewrite two lines in astub.c to potentially not overflow an int16
- make tiletovox[] an array of int16's

git-svn-id: https://svn.eduke32.com/eduke32@2266 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-19 21:57:46 +00:00
helixhorned 2e1e2345af trivial tweaks: make stuff static, remove unused stuff, formatting...
git-svn-id: https://svn.eduke32.com/eduke32@2265 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-19 21:57:22 +00:00
hendricks266 426ef1494e Add the 'yoffset' token to model definitions to allow models to compensate for ART tiles with large yoffsets, such as #603. Under normal circumstances the existing 'zadd' parameter should be used instead. Special thanks to Supertanker.
git-svn-id: https://svn.eduke32.com/eduke32@2264 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-17 04:31:59 +00:00
helixhorned 031da6280d Remove the allocache() allocation type for 'intptr_t *lookups'.
Always malloc that buffer.  This allows us to remove suckcache() from
cache1d.c, which I believe to be buggy (see comments in the source).

git-svn-id: https://svn.eduke32.com/eduke32@2261 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-15 22:39:59 +00:00
helixhorned 260bbc1f92 cleanup:
- 'whitecol' was defined in the engine and in build.c, use only the engine one
 - make cachesize, artsize, artversion static in engine.c
 - undo some formatting havoc presumably done by astyle

git-svn-id: https://svn.eduke32.com/eduke32@2260 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-15 22:39:38 +00:00
helixhorned 340b2f7647 Increase the number of maximum art files from 64 to 256 and tweak loadpics().
It is likely that this is the value it used to have at some point, because
the MAXTILEFILES macro equals 256 and is as old as the Duke3D source.
loadpics() now refuses to load an ART file with localtilestart or localtileend
out of bounds, or if localtileend<=localtilestart (i.e. no tiles in ART file, or
nonsense). Also, on 'invalid art file version', continue instead of returning.

Note: this does not increase the maximum number of tiles, which is still 15360,
it only gives a bit more freedom to arrange them (well, into more art files).
Also, I don't see what anyone keeps off from packing any number of tiles (from
1 to 15360) into an art file. Old EDITART limits?

git-svn-id: https://svn.eduke32.com/eduke32@2259 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-15 22:39:10 +00:00
helixhorned 480690aa1d Fix the Polymer hitches first encountered with Parkade.
The cause was a combination of many factors. First, Polymer requires the
start-drawing position to be inside the sector to draw (deviations lead to
incorrect drawing).  This was violated by the game, because it interpolated
the current and next tic position without updating the sectnum, leading to
inconsistencies especially when passing through narrow sectors.  Polymer
worked around it by doing an updatesector() each frame, however this works
poorly for maps with overlapping geometry such as SoS or RoR.

The solution to this is to add a new engine function,
updatesector_onlynextwalls(), which searches the sectors (via nextsector)
in breadth-first fashion instead of from 0 to numsectors-1, like updatesector
does when it fails for the *immediate* nextwall neighbors.

Internally, the breadt-first search helpers are moved into the engine.

git-svn-id: https://svn.eduke32.com/eduke32@2256 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-14 14:48:30 +00:00
helixhorned 87ac6b8406 winlayer.c: in WM_PALETTECHANGED handling code ("someone stole the palette
so try and steal it back"), prevent calling IDirectDrawSurface_SetPalette()
with NULL arguments, causing a crash.  It's happened for me on Vista, when
initially changing from 8-bit to 32-bit mode.

git-svn-id: https://svn.eduke32.com/eduke32@2255 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:49:50 +00:00
helixhorned a57b566c0b Add Makefile option to use the DMALLOC (debug malloc) library.
I didn't have much success in finding bugs using it, but it works
out-of-the-box on my setup, so it may be useful in the future.

git-svn-id: https://svn.eduke32.com/eduke32@2254 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:49:34 +00:00
helixhorned 300fee62da sdlayer.c: formatting of preprocessor lines
git-svn-id: https://svn.eduke32.com/eduke32@2253 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:49:15 +00:00
helixhorned 9617227a87 Support for the first "thumb" mouse button, called MOUSE4 in the menu.
The second one is passed to the 'mouseb' variable, but the game currently
can't map it since ud.config.MouseFunctions[] would have to be enlarged,
breaking savegame compatibility.
Works both for the Windows and SDL layers. For the latter, instead of using
the SDL_BUTTON_X1/X2 macro constants, I'm using 8 and 9, since that is what
SDL (and incidentally or not, xev) gives me for those buttons.

git-svn-id: https://svn.eduke32.com/eduke32@2252 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:48:57 +00:00
helixhorned 80949930bd Temporarily disable the 'model thinning-out' feature intended to save memory.
It turns out that with model interpolation, out-of-bounds frame numbers may
be generated with thinned out models, so disable it until I can sort out
what's wrong with it.
Also, minor code cleanup.

git-svn-id: https://svn.eduke32.com/eduke32@2251 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:48:38 +00:00
helixhorned 5f50c30ac2 polymer.c: "Compiling GPU program with bits (octal) %o" for easier reading.
Also, for debugging builds, show this message from verbosity level 1 on.

git-svn-id: https://svn.eduke32.com/eduke32@2250 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:48:17 +00:00
helixhorned 7e6f712ad1 more internal cleanup...
the only visible change is that polymost_trytexcache (formerly two
instances of nearly duplicate code) now prints a diagnostic after
a cache miss.  The one that one is most likely to encounter is
"r_downsize doesn't match", meaning that this setting likely differs
between Mapster and the game.

git-svn-id: https://svn.eduke32.com/eduke32@2248 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-12 20:47:41 +00:00
helixhorned e3150b2801 a couple more trivial tweaks
git-svn-id: https://svn.eduke32.com/eduke32@2247 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-10 23:45:34 +00:00
helixhorned fa6f2d9ca2 md4.c/h: add consts to appropriate arguments
git-svn-id: https://svn.eduke32.com/eduke32@2246 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-10 23:45:08 +00:00
helixhorned 3095b09773 trivial formatting / removing of old cruft / adding comments
git-svn-id: https://svn.eduke32.com/eduke32@2244 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-10 23:44:35 +00:00
helixhorned 6a37636bb0 Possibility of specifying sounds for a VPX anim-replacement via DEF.
The syntax is as follows:
  animsounds <anim> { frame1 sound1  frame2 sound2 ... }

<anim> has to be one of the tokens: cineov2, cineov3, RADLOGO, DUKETEAM,
logo, vol41a, vol42a, vol4e1, vol43a, vol4e2, or vol4e3, corresponding
to hard-coded Duke3D anims.

The frameN's (1-based frame numbers) have to be in ascending order (but not
necessarily strictly ascending, so that a frame may have more than one sound).

Example: for Duke3D's XBLA nuke logo animation (IVF extracted from nuke.webm),
the following definition overlays the video with a sound sequence similar
(identical save for timing) to the original nuke animation:

// frame 1: FLY_BY, frame 64: PIPEBOMB_EXPLODE
animsounds logo { 1 244  64 14 }

git-svn-id: https://svn.eduke32.com/eduke32@2242 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-10 23:43:54 +00:00
helixhorned a86dfe661b maint: make the following static in polymost.c:
- texcacheindex *firstcacheindex, *curcacheindex
 - trytexcache(), gloadtile_cached()
- Factor out duplicated code into clear_cache_internal()

git-svn-id: https://svn.eduke32.com/eduke32@2240 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-10 23:43:18 +00:00
helixhorned 114d8e4a36 When defining a model with the 'model' token and there were errors, don't
let it hang around causing trouble later on; delete it right now and inform
the user.
Add a couple of 'static's to some functions and file scope data in mdsprite.c

git-svn-id: https://svn.eduke32.com/eduke32@2237 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-07 17:48:55 +00:00
helixhorned b926e2a496 - When saving game, clear all polymer lights before. Not doing this makes
the SE ones douple, triple, ... after each save.  Maphack lights are reloaded
with polymer_resetlights() (though I've had them disappearing after load, I
couldn't reproduce it afterwards).
- in debugging builds, print a message when polymer_resetlight is called on a
nonexistent one.  The problem is not so much the call itself (it's guarded),
but the fact that resources on the caller side may not have been freed if it
thinks that those lights do in fact exist. Right now, it's not the case though.
- add 'loaded map hack' messages after some other successful loadmaphack calls

git-svn-id: https://svn.eduke32.com/eduke32@2236 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-05 21:58:23 +00:00
helixhorned 76d210c4b8 Patch up access of malloc'd buffer one byte beyond its size in kplib's
JPEG decoder (unearthed by valgrind).

git-svn-id: https://svn.eduke32.com/eduke32@2231 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-03 19:55:55 +00:00
hendricks266 e9aec2a65b Comment ldcty[12] array from kpegrend() to remove last of set-but-unused warnings. I don't see any reason to leave this alone.
git-svn-id: https://svn.eduke32.com/eduke32@2228 1a8010ca-5511-0410-912e-c29ae57300e0
2012-01-01 04:12:37 +00:00
helixhorned 8ec15480c0 Besides the performance issues, there's another reason why changing the palette
'frequently' isn't such a good idea.  Assume an actor constantly changes the
palette to some value and you're attacked by a newbeast at the same time. Then
the pain tinting would be reset each time the actor's code is run.  This commit
adds a new flag 16 to setbrightness(), meaning "don't reset the fade tinting".
Its only use right now is from CON's setgamepalette command (and there, always).
The change is done in the engine and thus affects all platforms.

git-svn-id: https://svn.eduke32.com/eduke32@2225 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-28 20:36:01 +00:00
helixhorned d5a934f9ba Trivial tweaks of setbrightness. Add an assertion that bits 1 and 4 are clear,
mainly.  Also remove setvgapalette() from source.

git-svn-id: https://svn.eduke32.com/eduke32@2224 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-28 20:35:44 +00:00
helixhorned 92e5d8214d SDL layer: don't call SDL_SetGammaRamp() if there would be no change.
This is in the similar vein as the set-palette deferring and it's this
that fixes the low FPS in the radioactively contaminated area in AMC TC:
Megabase (since setgamma() is called from setbrightness()).

Again, update issues might be expected, but changing focus between EDuke32
and the desktop and back seems to restore the gamma settings properly on
Kubuntu. Looks like X (or whatever above handles this stuff) maintains it
on a per-application basis.

git-svn-id: https://svn.eduke32.com/eduke32@2222 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-28 20:34:57 +00:00
helixhorned 4ae50ef22a SDL layer: in 8-bit mode, defer setting the palette until showing the next frame.
CON code sometimes uses 'setgamepalette' from withing actors, which is a bit too
frequent.  Deferring the actual palette updating means that multiple requests in
between two screen redraws are coalesced into one, which is desirable for
performance reasons and for the reduction of 'tearing' artefacts (but not
prevention, since the drawing isn't synced to the screen refresh rate with
vsync off).

(Did-not-)update issues might be introduced.

Windows isn't touched because
 - I expect it to be more brittle, especially in light of the ATI HW gamma
   problems.
 - I haven't tested whether the particular performance penalty that lead to this
   change ('gas' in AMC TC) exists there too

git-svn-id: https://svn.eduke32.com/eduke32@2221 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-28 20:34:41 +00:00
helixhorned 9e1399ec14 screenshots: remove the old inversion and PCX code from the source
git-svn-id: https://svn.eduke32.com/eduke32@2220 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-28 20:34:26 +00:00
helixhorned 98bcc0e60c screenshots: if compiled with USE_LIBPNG, always use PNG, even for
color-inversed shots. For both PNG and TGA, change the way they're
done in 8-bit mode: instead of XORing every byte with 15, save the
inverse palette (each component taken 255-x).

git-svn-id: https://svn.eduke32.com/eduke32@2219 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-28 20:34:10 +00:00
helixhorned 7c245875cb engine: make smoststart[] (which saves starting "smostcnt"s) an array of int32's
instead of shorts. This fixes their values' overflow in AMC TC megabase and
probably a couple of other large maps.

git-svn-id: https://svn.eduke32.com/eduke32@2216 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-27 14:22:45 +00:00
helixhorned b30711586b patch up another out-of-bounds access in the voxel drawing code, though
I'm not sure whether the increased array size is enough.

git-svn-id: https://svn.eduke32.com/eduke32@2213 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-26 15:44:09 +00:00
helixhorned b3474c75b2 Rewrite the savegame format in terms of the generic saving/loading system.
This makes savegames practically the same as the initial snapshot of a demo.
Saves are now named 'dukesavX.esv' (demos: 'edemoX.edm').
Additionally, many changes that couldn't/needn't be cleanly separated are added
with this commit:
 - make spriteext_t have the same size across 32/64 bit platforms (actor_t partially)
 - prevent saving/loading in MP games (it certainly didn't work and still doesn't)
 - it's time we start using assertions! Define NDEBUG for releasse builds.
 - reset savegame major and minor versions (we have a new magic string, so no conflict)

git-svn-id: https://svn.eduke32.com/eduke32@2207 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-25 15:34:06 +00:00
helixhorned 9f2153d0ea Beauty tweaks; revert s_buildDate since we don't want windows builds to pull
snapshots in the current development state now.

git-svn-id: https://svn.eduke32.com/eduke32@2205 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-25 15:33:24 +00:00
helixhorned 664e0dcb9b Fix non-TROR build and add a warning that such a build is only useful for
debugging, i.e. savegames and the like will break.

git-svn-id: https://svn.eduke32.com/eduke32@2204 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-25 15:33:02 +00:00
helixhorned 60fa7d9f00 Remove a few unused variables from global.[ch], update build date string.
git-svn-id: https://svn.eduke32.com/eduke32@2196 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-25 15:30:50 +00:00
helixhorned 2f7851336b Fix out-of-bounds write when passing a map filename to Mapster32.
git-svn-id: https://svn.eduke32.com/eduke32@2194 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-21 18:43:24 +00:00
helixhorned 6b913a39aa some more clearbuf -> memset in gamedef.c plus add a forgotten keystatus
reset in the editor

git-svn-id: https://svn.eduke32.com/eduke32@2191 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-21 18:42:32 +00:00
helixhorned 8e54a3febf Preliminary commoning of actor[].t_data[10] to an array of int32's on both
32- and 64-bit platforms. Also, make struct type actor_t also have a common
size of 128 bytes. New code currently disabled and #ifdef'd for comparison.

This requires certain t_data[] entries ([1]: move ptr, [4]: action ptr and
[5]: ai ptr with actors) to be converted to script offsets instead of pointers,
breaking savegame and net packet compatibility (we could in theory try hard not
to, but it would be too much trouble).

git-svn-id: https://svn.eduke32.com/eduke32@2185 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-21 18:40:47 +00:00
helixhorned 9b0ea0366e Add new actor[].flags flag 2048 (SPRITE_NOCLIP), for 'spriteflags' CON usage.
Actors are always moved such that _they_ clip against blocking sprites, even
if their blocking bit is clear. Setting the new bit make them not clip against
anything.  The promary use of this is for decorative moving sprites that are
spawned in masses, such as rain or snow.

git-svn-id: https://svn.eduke32.com/eduke32@2184 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-17 18:51:50 +00:00
helixhorned 60bb16693b engine.c, in engine_addtsprite: if we can't add more tsprites because we
already have MAXSPRITESONSCREEN of them, return 1 to signal that the caller
should break out of the loop.

git-svn-id: https://svn.eduke32.com/eduke32@2183 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-17 18:51:29 +00:00
helixhorned 8f92cb024d Tweaks to compile the release build with clang. Now if it only would not
generate curious code like this one (Ubuntu 11.10's clang 2.9 on i386):

   0x080a57ea <+538>:   xor    %al,%al
   0x080a57ec <+540>:   test   %al,%al
   0x080a57ee <+542>:   jnz    0x80a57f2 <initgroupfile+546>
=> 0x080a57f0 <+544>:   jmp    0x80a57f0 <initgroupfile+544>
   0x080a57f2 <+546>:   shl    $0x4,%edi

git-svn-id: https://svn.eduke32.com/eduke32@2182 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-15 22:43:01 +00:00
helixhorned df94c55eab Patch up out-of-bounds access in some voxel drawing code.
git-svn-id: https://svn.eduke32.com/eduke32@2181 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-15 22:42:42 +00:00
helixhorned 84867ee620 Mapster32: Rudimentary support for auto-aligning along TROR nextwalls.
Usage: press the ['] (quote) modifier together with the PERIOD key.
Aligns only the immediate upper and lower neighbors of each wall that got
aligned by following point2s or nextwalls.  Doesn't play well with Alt
(carry over xrepeat) yet, might need two subsequent alignment passes.

git-svn-id: https://svn.eduke32.com/eduke32@2178 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-12 23:18:35 +00:00
helixhorned 2f14c6dbed checkdefs.sh script: hackish support for CON files, only 'include *.con' and
'definesound ... *.(voc|wav|ogg)' commands (missing: 'music', something else?).

git-svn-id: https://svn.eduke32.com/eduke32@2176 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-12 23:18:00 +00:00
helixhorned 3ca41992dd Fix sintable[] access with out-of-bounds values in core engine functions
(getzrange, hitscan, clipmove, drawmapview).
They're reproducible with DNE1.3D;  Since these angle values most likely come
from CON code, my suggestion would be to bit-and all values representing angles
with 2047 when setting the from CON, but I'd have to think about potential
side-effects of doing this.

git-svn-id: https://svn.eduke32.com/eduke32@2170 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:11:47 +00:00
helixhorned 151287168c - Fix invalid polymer light array access originating from game's cleanup
callback 'G_Polymer_UnInit'.
- In astub.c, reset spritelightid to -1 when nulling the spritelightptr of
  a sprite  (no crashes observed, just precaution)
- In sdlayer.c, catch SIGILLs with our signal handler too, since illegal
  instructions are what the instrumented debug builds will execute when
  attempting to carry out an undefined (per C) operation.

git-svn-id: https://svn.eduke32.com/eduke32@2169 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:11:31 +00:00
helixhorned 20d303ed15 engine.c: fix shift by negative value in parascan().
git-svn-id: https://svn.eduke32.com/eduke32@2168 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:11:08 +00:00
helixhorned b85b4d7b7c polymer.c: fix out-of-bounds picanm[] read.
git-svn-id: https://svn.eduke32.com/eduke32@2167 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:10:51 +00:00
helixhorned b7aacd242a Fix shift by values greater than 31 in some voxel loading code.
git-svn-id: https://svn.eduke32.com/eduke32@2165 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:10:21 +00:00
helixhorned f39429fa96 kplib.c: patch up negative array access, dunno how to really fix this at
the root.

git-svn-id: https://svn.eduke32.com/eduke32@2164 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:10:03 +00:00
helixhorned a950232046 Mapster32: fix AWFUL out-of-bounds WRITE with sector highlighting.
How in the name of hell this could pass undetected for so long is a
mystery to me.

git-svn-id: https://svn.eduke32.com/eduke32@2163 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:09:45 +00:00
helixhorned c7aa4592c2 polymost_printext256: fix oob read when passing negative 'col' or 'backcol'
values;  check the color index that is potentially gotten from the string to
be printed.

git-svn-id: https://svn.eduke32.com/eduke32@2162 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:09:29 +00:00
helixhorned 6dc17eec1b Makefiles: disable a few warning categories and other switches when compiling
with clang to prevent spamming the output.

git-svn-id: https://svn.eduke32.com/eduke32@2159 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:08:47 +00:00
helixhorned 6fc7e5b683 Remove some warnings with clang, code-side changes.
git-svn-id: https://svn.eduke32.com/eduke32@2158 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-09 19:08:29 +00:00
helixhorned 775d652d7d Lunatic: more Makefile tweaks; spriteext
git-svn-id: https://svn.eduke32.com/eduke32@2148 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-04 18:09:50 +00:00
helixhorned c0b86bae3a Mapster32: When failing to extend a collection of sectors because one of
them has a different height, print the sectnums of two differing sectors
to so that the mapper can find and examine them with Ctrl-J.

git-svn-id: https://svn.eduke32.com/eduke32@2146 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-03 13:13:44 +00:00
helixhorned bbc6db465e Mapster32: new cfg var 'glusememcache', the same as r_memcache cvar.
git-svn-id: https://svn.eduke32.com/eduke32@2145 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-03 13:13:28 +00:00
helixhorned 324510f40d Mapster32: when having some sectors highlighted, also show how many walls
they contain in total.

git-svn-id: https://svn.eduke32.com/eduke32@2144 1a8010ca-5511-0410-912e-c29ae57300e0
2011-12-03 13:13:08 +00:00
helixhorned 59881f50e0 Revert r2141 functionality because it was a stupid-ass hack and breaks E3L5.
The texture warping mode will need to be set depending on whether we're
actually drawing a parallaxed sky or not.

git-svn-id: https://svn.eduke32.com/eduke32@2142 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-27 12:02:41 +00:00
helixhorned 2a73b7fc9b Upload sky textures with s wrapping set to GL_CLAMP{_TO_EDGE}.
This fixes the vertical (~1 texel wide) stripes that are especially
noticable with tiled art skies and Polymost with r_parallaxskyclamp=1
or Polymer (which always uploads skies with repeating s and t coords).
What constitutes a sky tile is currently hardcoded to be >=78 and <=99.

git-svn-id: https://svn.eduke32.com/eduke32@2141 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 22:41:09 +00:00
helixhorned 0414072838 Remove old duplicate_selected_sectors() function and copysector(), which
was only used there, from the source.

git-svn-id: https://svn.eduke32.com/eduke32@2139 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 22:40:39 +00:00
helixhorned 2ce07bdcd2 Rewrite sector duplication (Insert or C) in terms of backup_highlighted_sector
and restore_highlighted_sector functions. What this means is that TROR bunches
are now correctly duplicated too (only if all sectors of a given bunch are
highlighted).

git-svn-id: https://svn.eduke32.com/eduke32@2138 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 22:40:23 +00:00
helixhorned 54c109168d New modifier for RAlt. When RShift is depressed while highlighting sectors
(i.e. first press RAlt, then hold RShift to make it active), consider all
sectors, even the grayed out ones.
This makes 6 modifier keys in 4 categories for RAlt. Can you name them all?

Also spell out the labels that get drawn near the reticle when applying
some of the modifiers and make them not show when not actually selecting
(e.g. pressed RShift alone, but have highlighted sectors)

git-svn-id: https://svn.eduke32.com/eduke32@2137 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 22:40:07 +00:00
helixhorned 2675334a60 In backing up highlighted sectors code: also back up TROR information so
that bunches and nextwall links are restores, too.  Now, to coalesce two
TROR maps (e.g. for a CBP), one could
  do for i allsectors, sethighlightsector i 1
on the console, and then load the 'other' map to copy over the contents
of the first, including all TROR stuff. Note that neither selecting
all sectors with RAlt, nor duplicating them with Insert would lead to
the desired effect (yet).

Internally,
 - yax_setbunch() now has different behavior for bunchnums -1, -2 and -3
   (it either clears the nextwalls or not)
 - build.c has a helper function free_n_ptrs(). This could be handy in
   other situations where many blocks of memory must be allocated
   consecutively and freed in case of failure

git-svn-id: https://svn.eduke32.com/eduke32@2136 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 22:39:50 +00:00
helixhorned b461dc5fb9 When restoring temporarily backed up map, clear all TROR bunches. This is
suboptimal, but at least 'correct' and won't produce the aforementioned
corruptions anymore.

git-svn-id: https://svn.eduke32.com/eduke32@2135 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 14:12:59 +00:00
helixhorned e76341f4f3 Backing up and restoring highlighted portion of map: calculate new
next{wall,sector} indices instead of using checksectorpointer() so
that the nextwalls will be restored exactly as they were (provided
that they are copied).  Also fix tweaking the sectnums of sprites.

git-svn-id: https://svn.eduke32.com/eduke32@2132 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-26 14:12:15 +00:00
helixhorned 235a82f13d Fix two bugs with the loop punching code that made it practically useless.
git-svn-id: https://svn.eduke32.com/eduke32@2131 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 13:46:48 +00:00
helixhorned ee30112c38 Ability to duplicate an inner loop in a neighboring TROR sector.
Called 'loop punching'. In addition to duplicating the loop, the inner
portions of the original and cloned loop are made into a new bunch, and
the loop walls are made to be neighbors, linking their movement to each
other. This gives a way to create island sectors with a differing
bunchnum in the midst of an already extended area.

Usage:
For an extended sector containing a CCW inner loop, select its points
using Ctrl+Shift. Press Ctrl-E to be queried whether to duplicate the
points into the upper or lower extension (even if it's unambiguous).
A number of conditions must be met for a successful 'punch', which
should hopefully be more or less obvious. Among them:
 - loop walls should all be red
 - the starting wall is only considered among the non-grayed-out ones
 - the neighboring sector must not contain points inside or at the loop

git-svn-id: https://svn.eduke32.com/eduke32@2130 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:53:07 +00:00
helixhorned f4d81d7975 "Sloped extended sectors cannot be split", oops. Also fix a glitch that
would break out of the 2D mode loop when splitting a sector would exceed
limits.

git-svn-id: https://svn.eduke32.com/eduke32@2129 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:52:52 +00:00
helixhorned 98ad4d7132 Factor out high-level 'add loop to sector' code into own function.
git-svn-id: https://svn.eduke32.com/eduke32@2128 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:52:37 +00:00
helixhorned c196e27ee9 in 'adding new loop to sector': use local 'firstwall' instead of ovh.suckwall
git-svn-id: https://svn.eduke32.com/eduke32@2127 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:52:22 +00:00
helixhorned 53bbb48675 Three Mapster32 changes (2 wall-drawing related, 1 crash fix)
- Don't crash when sector joining fails under certain circumstances.
- Increase the point lock (Manhattan) distance from 1/16th to 1/8th
  of the grid square length, making it easier to snap to vertices not
  lying at the grid points with grid lock on
- When drawing walls, don't snap to any of them except the first drawn

git-svn-id: https://svn.eduke32.com/eduke32@2126 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:52:08 +00:00
helixhorned 45bcc11f46 Batch-insertion of many points at once using line drawing and ENTER.
When having drawn N new points (and having one 'free') and pressing
ENTER, the N line segments between the new points are checked one by
one for intersection with every non-grayed-out wall and a wall vertex
is inserted at every intersecting point.  This may be viewed as a
prerequisite for a 'cutter' style tool.

git-svn-id: https://svn.eduke32.com/eduke32@2125 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:51:53 +00:00
helixhorned 24edef5c63 Warn user if pressing Ctrl+Shift+ENTER (check all wall pointers) in TROR map.
git-svn-id: https://svn.eduke32.com/eduke32@2124 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:51:36 +00:00
helixhorned 2d308625ff Factor out high-level point inserting code into M32_InsertPoint().
This function only handles the actual insertion, also taking care of
constrained TROR walls. Anything around the inserting such as backing up
drawn walls or snapping the x/y position to the grid is handled outside.

git-svn-id: https://svn.eduke32.com/eduke32@2123 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:51:21 +00:00
helixhorned 39314586ac Somewhat largish commit with various keyboard tinkering for Mapster.
The main change consist of adding a key press (and release) callback
whose only purpose is to be used from m32script as EVENT_KEYPRESS.
When entering that event, the RETURN variable will be set to the
keystatus code of the key, and whether it was pressed or released can
be checked by looking at keystatus[] at that code (ifholdkey and
ifhitkey do this). The purpose of this, then, is to be able to remap
keys in a more general (and complicated) fashion than is possible with
the mapster32.cfg 'remap' option. Various other additions build around
this central one:

- add an example EVENT_KEYPRESS to a.m32, among other things emulating
  the keypad arrows with Alt-<normal arrows> for notebook convenience;
  disabled initially
- a.m32: set 'owner' with Alt-KP2: now Alt-Shift-KP2, because of
  collision with the above
- new m32script command: setkey <keycode>, setting keystatus[<keycode>]
  to 1 (note: may be restricted to use in EVENT_KEYPRESS only in the
  future)
- fix indexing an m32script array with a defined label, there used to
  be a 'not a gamevar' error instead
- add the following constant labels for some key codes:
  KEY_SCROLL, KEY_F1 .. KEY_F12

git-svn-id: https://svn.eduke32.com/eduke32@2122 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:51:06 +00:00
helixhorned 9a8603d01e - Make old-nextwalls invalid on the following two occasions: ovh_whiteoutgrab
with no highlighted sectors; and when entering 3D mode, even if there are
  highlighted sectors. This should have almost no effect, but I find it cleaner
  that way.
- Check map for corruption every time an editing change is done. This was
  accidentally disabled when commenting out the undo code (which I've yet
  to debug).

git-svn-id: https://svn.eduke32.com/eduke32@2121 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:50:40 +00:00
helixhorned a1864b6a2e Make it impossible to start drawing walls when having a circle-wall
selected. (There was a corner case where this was possible.)

git-svn-id: https://svn.eduke32.com/eduke32@2120 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:50:21 +00:00
helixhorned 57e132a044 Remove after_handleevents_hook and its only user, the keystatus-level clearing
of SPACE and C when in side-view mode. Now, this is accomplished by checking
directly in the overheadeditor code.

git-svn-id: https://svn.eduke32.com/eduke32@2119 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:50:07 +00:00
helixhorned 568a7e1243 Eliminate potential malloc(0) calls when loading (converting) md2 models
with no skins or no GL comands.

git-svn-id: https://svn.eduke32.com/eduke32@2118 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-25 09:49:40 +00:00
helixhorned 997b3426b5 Remove the -nopause switch of r2108, since it didn't help at all.
git-svn-id: https://svn.eduke32.com/eduke32@2114 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-17 21:09:49 +00:00
helixhorned b2d789731a A couple of Mapster changes related to saving.
- new mapster32.cfg and OSD variable 'fixmaponsave_sprites', telling the
  editor whether to 'fix' the sprite sectnums on saving and entering 3D
  mode. Note that a) sprite sectnums are never fixed when 'script_expertmode'
  is enabled, as before, and b) sprites that have out-of-bounds sectnums
  are still fixed if a proper sector is found
- if saving and some sprite sectnums have thus been tweaked, inform the
  mapper on the status line and print the changes in the OSD
- fix update issue similar to an earlier one: when 'saving as', the astub.c-
  based file name is now updated too, so saving with Ctrl-S now saves into
  the one save with 'save as' (and not the old one)
- don't attempt to recheck wall pointers from scratch (when saving and running
  with -check) if it's a TROR map

git-svn-id: https://svn.eduke32.com/eduke32@2110 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-11 20:05:29 +00:00
helixhorned e18ef2ccc8 Oops. Revert the *alloc wrapping to catch them being called with bad values.
This was meant for debugging only.

git-svn-id: https://svn.eduke32.com/eduke32@2109 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-10 21:47:42 +00:00
helixhorned a67af55153 On Windows, add command-line switch -nopause, disabling the pause key.
Hopefully this fixes the periodic pausing/unpausing that a few people
have been experiencing.
Also fix build with GCC 3.

git-svn-id: https://svn.eduke32.com/eduke32@2108 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-10 21:47:26 +00:00
helixhorned e1e09cd978 Also print file name of cache file in case of failure to open it.
git-svn-id: https://svn.eduke32.com/eduke32@2106 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-08 16:50:10 +00:00
helixhorned 3690f25944 Fix the 'displayrandvar{var}' CON and m32script commands for environments
with RAND_MAX > 32767 (everything except Windows?). The 'displayrand' command
now returns values from 0 to 32767 inclusive, across all platforms.

git-svn-id: https://svn.eduke32.com/eduke32@2105 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-05 12:13:50 +00:00
helixhorned 3713e3db9b Fix another dragpoint() bug that was wrongly omitting walls.
This one could have only happened with TROR maps, I think.

git-svn-id: https://svn.eduke32.com/eduke32@2097 1a8010ca-5511-0410-912e-c29ae57300e0
2011-11-01 22:01:35 +00:00
helixhorned 4322bae14c Oops. That last one wasn't supposed to be committed. Here's the log for the
last one + this one:

A couple of tweaks against accidental overwriting of maps.
- first, fix a bug where the map name wasn't reset to 'newboard.map' when starting a
  new map
- When saving with Ctrl-S, query the user for confirmation and also show the file name
  where the map will be written
- when going into the ESC-menu, print the file name where the map will be written
  on pressing 'S' above the '(S)ave' text

git-svn-id: https://svn.eduke32.com/eduke32@2096 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-31 19:50:06 +00:00
helixhorned 004b98e2b3 A couple of tweaks against accidental overwriting of maps.
- first, fix a bug where

git-svn-id: https://svn.eduke32.com/eduke32@2095 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-31 19:49:43 +00:00
helixhorned 3dd39c118d Fix an init issue with the earlier ATI workaround.
git-svn-id: https://svn.eduke32.com/eduke32@2094 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 21:48:57 +00:00
helixhorned 4d40d32014 When joining sectors and there's more than one non-grayed-out sector under the
cursor, query the mapper to pick one. The joining can still fail afterwards,
which makes it only a semi-automatic helper feature.

git-svn-id: https://svn.eduke32.com/eduke32@2092 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 19:48:29 +00:00
helixhorned 51b31c5445 This fixes the aforementioned TROR corruption. It happened because Mapster32
allowed circle-walls started on the unconstrained _other_ side of a constrained
wall. Also fix a potential invalid wall access when inserting a point (pretty
serious, that!)

git-svn-id: https://svn.eduke32.com/eduke32@2091 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 19:48:13 +00:00
helixhorned 78cf620036 (Almost) correct insertion of points in the midst of having some walls drawn,
also for make-circle (C, SPACE). There's still a TROR corruption happening
probably when inserting on constrained walls, but I've yet to get behind the
real cause.

git-svn-id: https://svn.eduke32.com/eduke32@2090 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 19:47:58 +00:00
helixhorned cd8fc5328e Make deleting points correct while having some walls drawn. For that,
some wall drawing state is ripped out from overheadeditor() into a
a file-scope struct (even if we don't yet need it there). If the deleting
touches the first drawn point, the walls drawn so far are cleared.

git-svn-id: https://svn.eduke32.com/eduke32@2089 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 19:47:42 +00:00
helixhorned 48ac042ca4 Eliminate one malloc(0) when corrupt-checking an empty map, clean up
overheadeditor() by allocating temp variables in the blocks where they
are needed.

git-svn-id: https://svn.eduke32.com/eduke32@2088 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 19:47:26 +00:00
helixhorned d37ef521fb A couple of small tweaks:
- fix arg checking in checkdefs.sh
 - some tilenum and quote ID validation in the CON interpreter
 - G_DrawDigiNum and friends: eliminate redundant strlen calls

git-svn-id: https://svn.eduke32.com/eduke32@2086 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-30 19:46:51 +00:00
helixhorned 35a151d2cd Workaround (two, actually) for the hardware gamma bug in 8-bit fullscreen with
ATI cards.
From the time of OpenGL initialization, gamma lookup in classic/fullscreen
will be done in software. Before that, always do a setgamma() after setting the
palette, since this is what resets the HW gamma. However, this may lead to
unappealing artifacts with portions of the scene being sent to the screen with
different gammas.

git-svn-id: https://svn.eduke32.com/eduke32@2085 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-27 13:14:22 +00:00
helixhorned f938e0bc11 Bash helper script to find wrongly-cased file names in DEFs and
maybe replace them with the proper names.

Usage:
checkdefs.sh <some.def> [[<some_dir>] -patch]

<some_dir> is taken to be the base directory of the search path.
-patch uses 'sed -i' to replace the offending findings

git-svn-id: https://svn.eduke32.com/eduke32@2081 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-27 13:13:22 +00:00
plagman 9018359a9e glbuild: tell gl.h not to include the system's glext.h
We pack our own copy of glext.h to avoid build breakages on older environments,
and having gl.h include its own was defeating all that.

git-svn-id: https://svn.eduke32.com/eduke32@2080 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-23 05:02:57 +00:00
helixhorned aae60f64c2 Eliminate all 'variable ... set but not used [-Wunused-but-set-variable]'
warnings with GCC 4.6 except one in kplib.c

git-svn-id: https://svn.eduke32.com/eduke32@2079 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-17 18:42:10 +00:00
helixhorned 026e1f44e9 Make Polymer's FOV depend viewingrange variable in a 'tangent-linear'
fashion. Among other things, this makes the FOV widening when shrunk
work. User CON code should always check the initial viewingrange value
when attempting to do FOV effects like zoom, because it is not guaranteed
to be 65536 due to different screen aspect ratios etc.

git-svn-id: https://svn.eduke32.com/eduke32@2078 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-17 18:41:38 +00:00
helixhorned d540f18ef4 OSX build: don't include startup window (where the hell is the nib file?); makefile bits for libpng from maxports (dynamically linked, not enabled); update osxbuild.sh so that the 64-bit build links (statically) to libvpx
git-svn-id: https://svn.eduke32.com/eduke32@2076 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-11 16:53:52 +00:00
helixhorned 9196bdbd81 fix osx build: looks like it doesn't have the GL debugging functions
git-svn-id: https://svn.eduke32.com/eduke32@2073 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-11 16:52:53 +00:00
helixhorned 2a4a7cd731 Fix dragpoint()!!! There was a bug that omitted setting the new position of certain wall-points since the TROR introduction.
git-svn-id: https://svn.eduke32.com/eduke32@2070 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-03 17:43:51 +00:00
helixhorned 48c49e751f Initialize prlights[lighti].flags.invalidate with 0 when calling
polymer_addlight().  I have no idea whether it's the 'right' thing,
but it fixes this:

Conditional jump or move depends on uninitialised value(s)
  at polymer_updatelights (polymer.c:5090)
  by polymer_drawrooms (polymer.c:938)
              . . .
Uninitialised value was created by a stack allocation
  at loadmaphack (engine.c:9482)

Fix another uninitialized access when rendering jpegs.

git-svn-id: https://svn.eduke32.com/eduke32@2069 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-03 17:43:36 +00:00
helixhorned 6cfdc2b376 Delete maphack lights when changing from Polymer to another renderer.
This fixes a crash when loading a map afterwards.

Tweak a few debugging messages and some whitespace.

git-svn-id: https://svn.eduke32.com/eduke32@2068 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-03 17:43:16 +00:00
plagman f08610b6c8 Polymer: support for creating a debugging context in winlayer
This also fixes a warning when building for Windows.

git-svn-id: https://svn.eduke32.com/eduke32@2067 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-03 00:14:56 +00:00
helixhorned a0b928583b Show fake TROR texture when show-invisibility [I] is on in Mapster32/Polymer.
Also move a 'int16_t editstatus' declaration from polymost.c to engine_priv.h.

git-svn-id: https://svn.eduke32.com/eduke32@2066 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 22:38:09 +00:00
helixhorned eba8de3007 kextract <groupfile> (without further filenames) lists all files in the GRP.
git-svn-id: https://svn.eduke32.com/eduke32@2065 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 22:37:51 +00:00
helixhorned b63f7e558b maint: refactor closing cache files and removing duplicate pointers into their own functions
git-svn-id: https://svn.eduke32.com/eduke32@2064 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 22:37:33 +00:00
hendricks266 885b9a46fd remove two instances of duplicate USE_OPENGL preprocessor checks missed by the removal of the POLYMOST definition
git-svn-id: https://svn.eduke32.com/eduke32@2060 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 07:18:17 +00:00
hendricks266 05cf720c4d move Electric Fence (EFENCE) handling from build/Makefile to Makefile.common
git-svn-id: https://svn.eduke32.com/eduke32@2059 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 07:16:57 +00:00
plagman dee99139f5 Polymer: constantly get the textures handle for projective spotlights
Getting the texture handles without requiring invalidation means we can
handle ART-animating tilenums without impacting performance too much.

git-svn-id: https://svn.eduke32.com/eduke32@2058 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 07:09:15 +00:00
plagman 93b4d6182e Polymer: preliminary support for GL_ARB_debug_output
This won't actually do anything until the a debug bit is added when
creating the context, but that requires support for GLX_create_context
which SDL doesn't support. I'll add support for WGL_create_context to
winlayer in a bit as a stopgap.

Also updates our local copy of glext.h with a fresh one from the
Khronos registry.

git-svn-id: https://svn.eduke32.com/eduke32@2056 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 05:56:35 +00:00
plagman e7c735418f Polymer: Fix upside-down projective textures
We need to Y-invert the projection texcoords when sampling
from the lightmap.

git-svn-id: https://svn.eduke32.com/eduke32@2055 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 03:09:20 +00:00
plagman 7c4b84a8f2 Polymer: apply ART animation to spotlight lightmaps.
git-svn-id: https://svn.eduke32.com/eduke32@2054 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 01:44:54 +00:00
plagman 98b6be4fed Polymer: Discard cached sprite planes on texinvalidate
Sprites would stick with their old material on global palette change.
This goes through all prsprites and clobbers their CRCs so that an
alternate skin / tint / highpal can be applied accordingly.

git-svn-id: https://svn.eduke32.com/eduke32@2053 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 01:00:14 +00:00
plagman a6d349c90a Polymer: account for model flipping for backface culling.
The winding order of faces is different if only flipping about X or Y,
and we were unconditionally culling CW faces.

git-svn-id: https://svn.eduke32.com/eduke32@2052 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 00:32:00 +00:00
plagman 6863a463b4 polymer: fix leading whitespace in polymer_drawmdsprite
git-svn-id: https://svn.eduke32.com/eduke32@2051 1a8010ca-5511-0410-912e-c29ae57300e0
2011-10-02 00:31:46 +00:00
helixhorned b3f1bd409c fix for the fix
git-svn-id: https://svn.eduke32.com/eduke32@2049 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-30 14:02:13 +00:00
helixhorned 64ead0a130 When X- or Y-flipping a selection of highlighted sectors, also handle setting
the nextwall pointers correctly;  Add some 'asksave=1' and 'make old-nextwalls
invalid'.

git-svn-id: https://svn.eduke32.com/eduke32@2048 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-30 13:52:02 +00:00
helixhorned 58fc90f77d Sanitize drawing sprites at different levels with TROR/classic. This should fix
most problems where sprites appear to be drawn through walls.

git-svn-id: https://svn.eduke32.com/eduke32@2046 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-28 20:30:41 +00:00
helixhorned bb72f803c4 Two tweaks to make the precaching more efficient/less redundant in the game.
First, if we're in Polymer, don't precache tinted tiles that have a highpal
for that certain pal.  Second, don't precache tiles for palnum 251 (the last
non-reserved one, which is used as a crosshair pal). Assuming that there are
no other tints, this cuts the initial precache time and cache size on disk in
half.

git-svn-id: https://svn.eduke32.com/eduke32@2045 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-28 20:30:24 +00:00
helixhorned 04d1ebb010 When inserting a new sprite and determining its picnum by frequency count
of the picnums of all sprites, omit the newly inserted sprite itself!

git-svn-id: https://svn.eduke32.com/eduke32@2043 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-25 15:11:28 +00:00
helixhorned 86345f2b00 backtrace.c: add flags to open() so that the log file is opened user-r/w.
This way, crashlogs will really be appended. Additionally, print a time
 at the end of each backtrace.

winlayer.c: load ebacktrace1.dll instead of the old one
Makefile.common: when building with DEBUGANYWAY=1, don't omit frame pointers
 This will let us get a stack trace for crashes with the release build code.

git-svn-id: https://svn.eduke32.com/eduke32@2040 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-22 16:52:55 +00:00
helixhorned 98ac0c2edc When searching a nextwall for a white wall after dragging a point,
exclude grayed out walls.

git-svn-id: https://svn.eduke32.com/eduke32@2039 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-22 16:52:32 +00:00
helixhorned 1203b4b213 Fix
http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__st__480
(I think, didn't test it)

git-svn-id: https://svn.eduke32.com/eduke32@2035 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-20 19:12:42 +00:00
plagman 03429e8f2e Polymer: sanitize backface culling
Keep track of which side is getting culled, swap around mirrors, swap
around model drawing.

git-svn-id: https://svn.eduke32.com/eduke32@2032 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-18 07:18:50 +00:00
helixhorned 6f4fedb7fe fix picking
git-svn-id: https://svn.eduke32.com/eduke32@2031 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-17 15:26:52 +00:00
helixhorned b486f3aa0d More natural mouse picking in software mode, closer to "what's under the cursor
is picked" but still not perfect. In particular, sometimes a wrong wall is
selected, and sprites don't get picked through portals. As a rule of thumb,
don't be too far away from the objects you're modifying in 3D mode.

git-svn-id: https://svn.eduke32.com/eduke32@2030 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-17 14:26:02 +00:00
helixhorned 19ebd8feb3 In the textured 2D mode of Mapster32, only texture non-grayed out sectors.
git-svn-id: https://svn.eduke32.com/eduke32@2029 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-17 14:25:42 +00:00
helixhorned 9b1d384723 Three-way clipping in Mapster32 (still toggled with 'N): on and off as
before, and additionally a mode that doesn't clip against masked walls
and sprites.

git-svn-id: https://svn.eduke32.com/eduke32@2028 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-16 19:17:48 +00:00
helixhorned 9b70a2efbf In the editor, when rescaling the texture after dragging a wall-point, also
traverse the TROR neighbors.

git-svn-id: https://svn.eduke32.com/eduke32@2027 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 19:31:44 +00:00
helixhorned 7582b86237 Add high-resolution timers C API for profiling. The functions are called
uint64_t gethiticks() and gethitickspersec().  For SDL 1.2, the timer
has the same resolution as getticks (1000 Hz). For Windows and SDL 1.3,
the resolution of the underlying perf-timers is used.  The only user of
these functions right now is some TROR on-screen debugging code.

Revert an earlier change regarding r_preview_mouseaim.  We can't do the
check because editstatus is set later.

git-svn-id: https://svn.eduke32.com/eduke32@2026 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:05:00 +00:00
helixhorned cc7110c18f - Add new trueror1.map that showcases the functionality and limitations of
the additional rendering pass
- Remove r_preview_mouseaim cvar from the game, since it's only for Mapster
- sdlmusic.c: (Failed) attempt to fix a call of waitpid() with a non-existent
  process ID in the external MIDI playing code. I think there's a race there...

git-svn-id: https://svn.eduke32.com/eduke32@2025 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:04:37 +00:00
helixhorned 2415b03c79 Support for drawing 'island sectors' for TROR/classic (and with limited
functionality, Polymost).

The new feature can be enabled/disabled with the 'r_tror_nomaskpass' cvar.

The basic idea is that when drawing lower or upper levels, a first pass
is performed that ignores all red walls for which the TROR nextwall link
'towards' the viewer arrives at a red wall.  Thus, in the worst case, there
can be up to twice as many rendering passes now (when it is discovered that
the no-mask-pass isn't different that what would be drawn with the ordinary
one, the latter is skipped, since we've already drawn all needed geometry).

Hovever, this kind of multi-pass splitting is only suitable for simple scenes,
like the upper subway in the TROR test map.  In particular, multiple islands
shouldn't 'see' each other.

Two issues are worth mentioning: first, care needs to be taken for translucent
ceilings or floors, since drawing them twice isn't the same as drawing them
once. This is done for classic, but not for Polymost.  Second, sprites (which
are always drawn _after_ the geometry for a given pass) are still clipped to
the geometry of the ordinary pass, resulting in their disappearance from
certain angles.
--

Additionaly, a change made it into this commit that fixes redundant collection
of sprites in TROR:classic/Polymost.

git-svn-id: https://svn.eduke32.com/eduke32@2024 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:04:14 +00:00
helixhorned 701c69fecc misc. cleanup:
- remove 'imageSize' global which was always yres*bytesperline and only used once
- some clearbuf() -> Bmemset() because I find the latter easier to read
- remove some clearbufs to 0 of some global arrays on init

git-svn-id: https://svn.eduke32.com/eduke32@2023 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:03:50 +00:00
helixhorned 9fd471a56a Make uninitialization sequence more consistent across the editor code. It's
always like this now:
  ExtUninit -> (writesetup, misc.)
  uninitengine -> (uninitsystem -> (uninit timers, mouse, ...))
  exit()
Some paths still lead to a plain exit(), like failures in cache1d.c or mdsprite.c

git-svn-id: https://svn.eduke32.com/eduke32@2022 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:03:29 +00:00
helixhorned 96283fdf5e Make a couple of variables static in the engine; don't initialize umost/dmost
with other than base levels, since the y*most arrays are copied there later.

git-svn-id: https://svn.eduke32.com/eduke32@2020 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:02:52 +00:00
helixhorned 24cbd241d7 - In the editor, make bunch-equal-making [J] stricter, because the way it was
handled could lead to a bunch whose floors and ceilings covered different
  areas. A fix for the reduced functionality arising from this change is
  underway.
- Rewrite a small portion of code using yax_vnextsec() in game.c.

git-svn-id: https://svn.eduke32.com/eduke32@2019 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:02:35 +00:00
helixhorned 7f1133a493 Engine: add funtion 'yax_vnextsec(wall, cf)' to C API. It's often useful when
dealing with sectors on the two sides of a bunch.  Make yax_globallev and
yax_globalbunch variables non-static.
Rewrite a TROR-related bit in the engine code using the new function.

git-svn-id: https://svn.eduke32.com/eduke32@2018 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-15 17:02:12 +00:00
helixhorned 3b634f28ae fix a couple of editor issues:
- one reported by Micky:
http://forums.duke4.net/topic/3911-true-room-over-room/page__view__findpost__p__106610
- malloc(0) call when saving a map with no sprites
- update 'asksave' after Alt-S and corrupt-check on starting a new map

git-svn-id: https://svn.eduke32.com/eduke32@2017 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-12 15:03:51 +00:00
helixhorned e166895c90 engine: In setbrightness() and qsetmodeany(), call setpalette() only if the
palette changed from the last one (either globally or within the last call of
one of the function). This fixes the ugly OSD flickering in 8-bit mode when
a screen tint effect is in action (such as when being hurt or snotted on).

git-svn-id: https://svn.eduke32.com/eduke32@2015 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-10 15:45:11 +00:00
helixhorned 01676d7431 A couple of trivial/cleanup changes. setvgapalette() is removed from the
engine, since it had no users.

git-svn-id: https://svn.eduke32.com/eduke32@2014 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-10 15:44:53 +00:00
helixhorned 9c16dc7873 sdlayer.c: also SDL_WarpMouse() in debugging builds. This has at least three
effects:
1) Mouse turning works with SDL 1.3
2) The mouse pointer can't leave the window area with the console up, so that
   focus always stays with the application
3) Menu selection using the mouse doesn't work. Not dramatic IMO.

git-svn-id: https://svn.eduke32.com/eduke32@2011 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-06 17:46:50 +00:00
helixhorned 843689f8a0 polymer.c: Fix a potential zero-size calloc call when a two-walled sector
is present (like in E4L1).  Also sneak in a trivial change in cache1d.c

git-svn-id: https://svn.eduke32.com/eduke32@2010 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-06 17:46:34 +00:00
helixhorned dc02ff5654 Using this dynamic checking tool: http://embed.cs.utah.edu/ubc/,
fix two issues with signed integer overflow. One is related to clipping
and the other to Polymost mouse-picking for overlong walls. Many more
remain especially in the 8-bit rendering code, but I expect many of
them to be intended.

git-svn-id: https://svn.eduke32.com/eduke32@2009 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-06 17:46:17 +00:00
helixhorned 727be94eb5 Tweak the source so that it can be built by clang. The only necessary change
is to remove a couple of 'inline's for functions with external linkage, which
seems to be a GCC convenience.

git-svn-id: https://svn.eduke32.com/eduke32@2008 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-06 17:46:00 +00:00
helixhorned 08f5290f4f mdsprite.c: prevent a couple of float divides by zero and save model file
name into m->head.nam after loading (but before preprocessing for Polymer)

git-svn-id: https://svn.eduke32.com/eduke32@2007 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-06 17:45:39 +00:00
helixhorned a145cc93bc Make Polymer declare a callback function G_Polymer_UnInit() that is called
whenever we change to another renderer etc. and define it for the game and
editor.  The purpose of the function is to clean up references to Polymer
resources like lights.
This fixes 1) all lights becoming spot lights in the game and 2)
an issue with maphack lights in the editor (can't recall which exactly).

git-svn-id: https://svn.eduke32.com/eduke32@2006 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-06 17:45:21 +00:00
helixhorned b3d3fd9a39 Better handling of tsprites that are duplicated through TROR portals.
Specifically, now also consider the sprite tile's yoffset, and fix an
issue when a tsprite got duplicated 'toward' the viewer. Also add a
couple of tests in trueror1.map.

git-svn-id: https://svn.eduke32.com/eduke32@2004 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-04 19:44:51 +00:00
helixhorned a3e83fbe0c Unbreak zip support as another means to group files. Using 16-bit integers to
hold file lengths is certainly very frownworthy.

git-svn-id: https://svn.eduke32.com/eduke32@2003 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-04 19:44:24 +00:00
helixhorned a23504822d Prepare polymost.c for proper umost/dmost clipping of TROR passes. No real functional changes.
git-svn-id: https://svn.eduke32.com/eduke32@2002 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-04 19:44:07 +00:00
helixhorned 962910ce32 Move the fixspritesectors call and the start sector updating into ExtPreSaveMap().
This makes the latter also correct when testing a map from the editor.

git-svn-id: https://svn.eduke32.com/eduke32@2001 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-04 19:43:48 +00:00
helixhorned decb2a0db1 use updatesectorz instead of updatesector for the startsectnum updating when saving a map.
git-svn-id: https://svn.eduke32.com/eduke32@2000 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-02 22:15:43 +00:00
helixhorned 99ce725b60 Much more elegant solution to updating the player's sectnum when passing through
TROR portals that works with a little help from updatesectorz() (change not visible
from CON code). Relies only on the presence of an extension whose portal isn't
blocked and also plays nicely with corner cases like being shrunk and enabling
the jetpack. This should fix the upward moving platforms in WGR2.

git-svn-id: https://svn.eduke32.com/eduke32@1996 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-01 18:38:13 +00:00
helixhorned b72d351f20 * game and editor: emit a warning when a search-path directory specified
on the command-line isn't found (instead of saying nothing)
* editor: Move inconsistent (stat&2)/heinum detection into the corruption
  checker. This makes a lot of original maps spew countless 'errors', but
  it's preferable for new maps since such floors and ceilings could behave
  strangely with TROR.

git-svn-id: https://svn.eduke32.com/eduke32@1995 1a8010ca-5511-0410-912e-c29ae57300e0
2011-09-01 18:37:53 +00:00
helixhorned 317aca0093 polymost.c: remove the rest of the rendmode 1 and 2 code from the build
git-svn-id: https://svn.eduke32.com/eduke32@1994 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-28 17:31:08 +00:00
plagman c17818aa6e Polymer: fix leak of GL query objects
In cases where performing occlusion queries for multiple red walls
leading to the same sector, we would sometimes leak a number of
query objects. This was apparently harmless on NVIDIA drivers, but
would leak tons of memory on ATI.

git-svn-id: https://svn.eduke32.com/eduke32@1993 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-28 04:42:27 +00:00
plagman 95d6c6f281 Polymer: fix sector masks translucency.
The code was using the Polymer-cached version of the sector cstat to
determine the translucency of its diffuse material, meaning it would
never get it right on the first try; that's what you get for having
completely different variables named 's' and 'sec'.

git-svn-id: https://svn.eduke32.com/eduke32@1991 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-21 19:41:34 +00:00
plagman 458ad8fa04 Polymer: Don't draw back faces of sector masks.
We normally enable backface culling always, but turn it off for
two-sided sprites; we need to make sure it's re-enabled after that
as sector masks are drawn after.

git-svn-id: https://svn.eduke32.com/eduke32@1990 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-21 19:41:22 +00:00
hendricks266 6cbc6a1a0c add support for the include command to names.h loaded by Mapster32, and names.h no longer requires # in front of commands for CON compatibility
git-svn-id: https://svn.eduke32.com/eduke32@1987 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 23:28:14 +00:00
plagman 8e5bf7a89c Polymer: fix external view.
Some of the ROR code was operating under the assumption that drawasks
always correspond to one call of polymer_displarooms(), but that's not
necessarily the case; external view draws all sectors from the top
polymer_drawrooms(), which was causing crashes. Just ignore the sector
mask queues in external view mode, we already don't draw masked walls.

git-svn-id: https://svn.eduke32.com/eduke32@1982 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:06:00 +00:00
plagman 0423ff8184 Polymer: propagate lights across vertical boundaries.
Check all the bunch siblings if we get a floor/ceiling hit and walk
them if their own planes hit.

git-svn-id: https://svn.eduke32.com/eduke32@1981 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:05:49 +00:00
plagman 8250e5f3e8 Polymer: add preliminary support for sector masks.
When walking the sectors in displayrooms, detect floor/sector masks to
place them in a mask queue. The queues are allocated on the heap, but
a stack pointer is maintained by the displayrooms to allow it to play
nice with mirror recursion.

Right now the masks are drawn after all of drawmasks is finished; that
means you can see sprites and wall masks through sector masks, but not
the opposite. There is a slight attempt at blending far to near, but
nothing too conclusive yet; that means that in some cases some sector
masks won't be visible through other sector masks, but it should work
for trivial cases.

The next step would be to copy all the drawmasks logic into Polymer
and have it (attempt to) properly interleave sector masks where they
belong in the blending order.

git-svn-id: https://svn.eduke32.com/eduke32@1980 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:05:38 +00:00
plagman e77548d42a Polymer: Don't draw 1-way walls twice.
Previously they would get counted both as 1-way walls for immediate
drawing and as mask walls for delayed drawing.

git-svn-id: https://svn.eduke32.com/eduke32@1979 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:05:24 +00:00
plagman 98061f3a38 Polymer: Don't bother fogcalc()ing invisible planes.
Doesn't actually matter that much.

git-svn-id: https://svn.eduke32.com/eduke32@1978 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:05:14 +00:00
plagman 5b379decc6 Polymer: handle floor/ceiling translucency.
Assigns the right alpha value to floor/ceiling planes if their
translucency bits are set and make sure that changing the cstat now
triggers an update of the material for editing purposes.

This doesn't do anything by itself, but will be needed to correctly
draw floor/ceiling masks.

git-svn-id: https://svn.eduke32.com/eduke32@1977 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:05:04 +00:00
plagman e7fc03ed33 Polymer: Reorganize main displayrooms loop a bit.
When walking the sectors, put more drawing work between queuing and
reaping the occlusion queries to potentially make them more efficient.

git-svn-id: https://svn.eduke32.com/eduke32@1976 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:04:53 +00:00
plagman 936147e33b Polymer: Correct(er) TROR walking.
Enumerate the vertical siblings of each walked sector and check them
against the current frustum. No occlusion queries yet, but that should
correct any missing sectors until a flaw in that logic is discovered.

git-svn-id: https://svn.eduke32.com/eduke32@1975 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:04:42 +00:00
plagman 6de59ef085 Polymer skeleton cleanup.
Reorganize polymer.c a bit to match the order of prototypes from the
header, move macros from the middle into the header.

git-svn-id: https://svn.eduke32.com/eduke32@1974 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 21:04:28 +00:00
helixhorned c8bf3682e0 disable undo/redo editor feature until I can debug the disappearing sprites
git-svn-id: https://svn.eduke32.com/eduke32@1973 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-20 11:54:16 +00:00
helixhorned 4d8d392bbf slight tweak for software renderer sprite picking: don't pick them if they're behind a TROR portal from the current position.
git-svn-id: https://svn.eduke32.com/eduke32@1971 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-18 22:01:18 +00:00
helixhorned 5c2be94bff Make Ctrl-Alt-A also remove gray walls in the side-view mode. This makes TROR-heavy maps look much less cramped when used in conjunction with Ctrl-A.
git-svn-id: https://svn.eduke32.com/eduke32@1970 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-18 22:01:01 +00:00
helixhorned 5262a0f24c Various cleanup work:
- fix an earlier 'oops': make highpals load correctly again
 - maphack lights shouldn't be double-loaded now
 - slight tweak to the loading screen fadein/out timing
 - two bound checks
 - make some variables static in engine.c

git-svn-id: https://svn.eduke32.com/eduke32@1969 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-17 18:52:54 +00:00
helixhorned 5d79003e60 Take a stab at hidden model switch handling. There are at least two ways by
which switches have been hidden in the original and user maps. One is to make
it face a wall, and another is to 'embed' it in e.g. the floor, like the
monitor with the burning fuse in E4L1. Both kinds show up when the switches
are rendered as models, revealing the secrets that the mapper sought to hide.
My proposal, implemented in this commit, is to apply a heuristic for such
switches at premap and make them invisible (set cstat bit 32768). The
conditions are re-checked during the game in case there is a switch coming
out of the floor, for example. A new spriteext bit is used for this feature.

git-svn-id: https://svn.eduke32.com/eduke32@1968 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-17 18:52:16 +00:00
plagman 58ba283c45 Fix colored fog in Polymer.
This fixes a ridiculous interaction problem between non-black fog and
additive lighting passes. Plagman is stupid.

git-svn-id: https://svn.eduke32.com/eduke32@1965 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-15 03:41:42 +00:00
helixhorned 1dbcae56d5 fix rotscrnang weirdness for any r_usenewaspect
git-svn-id: https://svn.eduke32.com/eduke32@1962 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-11 21:49:18 +00:00
helixhorned fbb6cc5e7e make r_usenewaspect imply NOT glwidescreen (i.e. disable r_anamorphic there, because that would be redundant). r_projectionhack is still active, but doesn't seem to do much.
git-svn-id: https://svn.eduke32.com/eduke32@1961 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-10 11:58:59 +00:00
helixhorned 26a25bdce5 * Address http://forums.duke4.net/topic/3911-true-room-over-room/page__view__findpost__p__103306
by using setspritez() instead of setsprite() for the sectnum updating.
* Change 'yax-nextwall(0/1)' to 'upwall/downwall' in the corruption checker, makes it much nicer to read.

git-svn-id: https://svn.eduke32.com/eduke32@1959 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-09 16:03:56 +00:00
helixhorned 3ca7ed1c2e don't crash wall alignment with void-tiled walls
git-svn-id: https://svn.eduke32.com/eduke32@1958 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-08 19:30:24 +00:00
helixhorned b6d729a553 * skip grayed out sectors when changing tags in 2d mode
* make Ctrl-Alt-A (formerly 'toggle inner gray walls') now remove all gray walls entirely in 2d mode
* make r_usenewaspect enabled by default

git-svn-id: https://svn.eduke32.com/eduke32@1957 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-06 11:50:45 +00:00
helixhorned aa8b2e4e05 Lots of M32script tweaks:
* fix breaking out of 'switch' blocks and compilation of the 'default' case
* Have a way of assigning 'special function' menu [' F] entries to script states. Writing a string literal after the state name will register the state under that name. Menu names are limited to 24 characters and it's possible to have up to 16 of them.
* new branching command 'ifinteractive', true if a state runs from the menu mentioned above.
* new command: getnumberfromuser <<retvar>> "query_string" <maxnum> <flags>

See 'state collect_teleporting_sectors' in a.m32 for a combined usage of the new functionality.

git-svn-id: https://svn.eduke32.com/eduke32@1955 1a8010ca-5511-0410-912e-c29ae57300e0
2011-08-03 17:22:25 +00:00
helixhorned 80d9badb9b Patch up this issue:
http://forums.duke4.net/topic/4685-glitch-on-keyboard-customization-page/
by setting the key_names[] characters in the non-ASCII range to '?' on Windows

git-svn-id: https://svn.eduke32.com/eduke32@1953 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-30 20:36:04 +00:00
helixhorned 0713c44219 * a.m32: new state 'correctslopes' which will check all ceilings and floors for a stat&2 and heinum mismatch and correct accordingly (the result isn't visible, but such an inconsistency can prevent planes from TROR-joining)
* helper feature: when shade preview is enabled, the ceilings and floors of highlighted sectors are shown in pal 6. This makes it possible to highlight the TROR-joining candidate sectors in 3D mode using e.g. 'sethighlightsector searchsector 1' while aiming at the respective ceilings and floors, and get visual feedback.
* when failing TROR-joining early ('no consistent joining combinations found'), print to the console why it failed.
* more Makefile.deps updating

git-svn-id: https://svn.eduke32.com/eduke32@1952 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-30 13:03:07 +00:00
helixhorned 13dde60ccd More fog/visibility tweaking. This makes Polymost's not depend on the screen width.
git-svn-id: https://svn.eduke32.com/eduke32@1944 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-24 18:40:10 +00:00
helixhorned 7e9b2eae0f * Clean up after myself. It seems that Polymost isn't very clean with handling texture IDs sometimes, so switching between the two GL renderers could mess them up with the last revision. This is fixed now by always uninitializing Polymer when changing from it to another renderer.
* New shade/visibility calculation code, which is activated with 'r_usenewshading' (on by default), and is closer to the classic look. Also tweak the FOGSCALE macro to have approximately the same fog distance with all renderers.

* Mapster32: END modifier to RShift. If it's pressed when RShift is released, sprites which are in grayed out sectors are also selected;  Make changing shade affect all highlighted sprites in 3D mode (when aiming at one of them).

* some debug code to watch out for suspicious glGenTexture/glDeleteTextures calls, not active.


git-svn-id: https://svn.eduke32.com/eduke32@1943 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-24 15:15:57 +00:00
helixhorned 793aadebc5 Janitorial work part 2, perfect for a rainy day. This fixes a lot of leaks, both on the client side as well as for memory allocated by OpenGL. If you had crashes after a few times of restartvid'ing in Polymer, this should fix it.
git-svn-id: https://svn.eduke32.com/eduke32@1942 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-22 22:00:53 +00:00
helixhorned d4f234b09f A bit of cleanup with memory issues.
First, it is now possible to disable the memcache (which is there to cache the texcache) by setting the new cvar 'r_memcache' to 0. Do this if you're constrained on memory or getting crashes when e.g. doing vidrestart often. Also, the memcache will disable itself (and free its storage, if it's there) the first time it fails to allocate.

Fix a strcpy with identical arguments in game.c and a couple of uninitialized mem accesses related to Polymer lights.


git-svn-id: https://svn.eduke32.com/eduke32@1941 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-22 13:32:01 +00:00
hendricks266 8b5761c14d My first commit!
The main feature is the addition of -mx and -mh command-line parameters to EDuke32 and Mapster32. These parameters include a con and def "module" respectively. This translates into essentially including the file from the bottom of the compiled script.

I fixed the classic buggy behavior of the BROKEHYDROPLANT and REACTOR2 sprites.

I also fixed a small, long-standing bug where FRAMEEFFECT1 blurs are not affected by sector floorpal. You can see one example of this by shrinking the Enforcer on the upper inside of the toppled building in E3L11: Freeway.

I tweaked the Makefile so that it would automatically regenerate the keep.me files in the $(OBJ) and $(EOBJ) directories after they are deleted for cleaning.

One final change is a slight positioning cleanup of both programs' --help dialog boxes.

git-svn-id: https://svn.eduke32.com/eduke32@1937 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-21 22:39:29 +00:00
helixhorned 563d42856e Build fix for OSX/PowerPC
git-svn-id: https://svn.eduke32.com/eduke32@1935 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-20 23:04:20 +00:00
helixhorned a9290a0d29 Make useractor's <actortype> bit 4 mean 'this actor will not move by itself' to make it possible to have it in a rotating sector with full rounding correction. No token name is provided because the three others come from CON and I don't want to clutter the namespace; fix the editor issue where the box wasn't shown on occasion in the tile selector (8-bit)
git-svn-id: https://svn.eduke32.com/eduke32@1934 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-20 22:08:05 +00:00
helixhorned 8b6857b360 VP8 video playback as (side-by-side) replacement of ANM moving pictures.
Usage: For an ANM file <somefile>.anm/ANM, EDuke32 looks for <somefile>.ivf, which is the VP8 stream transported by an IVF container. It can be extracted from a WebM file with e.g.

  mkvextract tracks <filename>.webm 1:<filename>.ivf
  (part of Mkvtoolnix, the Matroska toolset)

Libvpx is required, and the 'YUV'-->RGB conversion is implemented using a fragment shader, so it's for OpenGL modes only. Also, this commit doesn't enable the code.

Unfinished: sound, aspect correction for fullscreen w/ non-square pixels, ... ?
---

Make MAXNODESPERLINE in engine_priv.h actually a macro that depends on MAXYSAVES and MAXDIM instead of using the obsolete precomputed value. I think this might have been the cause for the latest patched-up overhead view crash.


git-svn-id: https://svn.eduke32.com/eduke32@1933 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-18 19:06:29 +00:00
helixhorned 24dcfc6633 Make smostcnt an int32 to prevent overflow (and subsequent crash) with too many saved positions; In Mapster, make it possible to bunch-join an extended with a non-extended floor inner to the first one, so that inner sectors created out of loops can be deleted by joining the sectors then.
git-svn-id: https://svn.eduke32.com/eduke32@1932 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-13 16:42:29 +00:00
helixhorned a15d8bfb98 * new editor cfg options: corruptcheck_noalreadyrefd (silinces 'already referenced warning'), r_usenewaspect, r_screenxy
* Read-only CON access to sector bunchnums by adding the labels '.ceilingbunch' and '.floorbunch' to the CON sector structure

git-svn-id: https://svn.eduke32.com/eduke32@1931 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-10 15:39:21 +00:00
helixhorned 606589f605 * Join-bunch functionality in 2d mode ('J'). When applied to two adjacent extended floors with different bunchnums, this makes them equal so that their sectors can be joined in a next step if their ceiling bunchnums are equal. The two floors also must be non-sloped and at the same height.
* slightly tweaked status line, now also displaying the number of bunches
* fix a couple of issues unearthed by valgrind and a TROR nextwall corruption when joining sectors

git-svn-id: https://svn.eduke32.com/eduke32@1930 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-09 17:36:02 +00:00
helixhorned 57379654a7 Addresses posts #180 and #181 of the TROR thread. Specifically,
* it is now possible to paste (and have an outer red wall automatically) highlighted sectors into a sector that is extended on one side and non-sloped on the other. For this, the highlighted sectors must be in one connected component.
* Make it possible to not display inner gray walls, toggled with Ctrl-Alt-A, but only when no manual grayout (Ctrl-R) is in effect.

* bugfix: don't clear original TROR-nextwall link when duplicating extended highlighted sector
* m32script: protect wall members relevant to TROR
* save autogray (Ctrl-A) and showinnergray (see above) to mapster32.cfg


git-svn-id: https://svn.eduke32.com/eduke32@1928 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-04 21:20:59 +00:00
helixhorned ee4d060b1f * New m32script commands:
- sethighlightsector <sectnum> <on?>
 - updatehighlightsector
 - collectsectors <<array_to_collect_sectnums>> <initial_sector> <<num_collected_sectors>> <sector_filtering_state>

The latter does a breadth-first search starting from an initial sector and collects nextsectors only when the filtering state, given a sectnum as RETURN input, writes a nonzero value into RETURN. As a usage example, a.m32 includes the state 'collect_teleporting_sectors', that collects all sectors containing an SE7 and highlights them afterwards. This way, it should be possible to retrofit old maps with TROR by distributing small scripts that do most of the work (right now, joining has to be done by hand, though).


* corruption checker: for the 'nextwall inconsistent with nextsector' corruption, suggest an alternative fix by searching fitting nextwalls and changing the nextwall of the corrupt wall (as opposed to the nextsector). It will display with a leading '?' in the listing, and can be demanded by suffixing 'corruptcheck tryfix' with it. For example,

corruptcheck tryfix 9-21 ?

would fix some corruptions in Billy Boy's cranium.map without introducing drawing errors.


* fix demo playback (tueidj figured this out)


git-svn-id: https://svn.eduke32.com/eduke32@1927 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-03 22:51:28 +00:00
helixhorned 43ecbb1019 * We cansee() now through TROR portals, making enemies recognize you from above and below
* fixed subway roof interpolation; also small tweak to make this possible: http://forums.duke4.net/topic/3911-true-room-over-room/page__view__findpost__p__99099
* API change: Sect_{Set,Clear}Interpolation now takes sectnums directly


git-svn-id: https://svn.eduke32.com/eduke32@1926 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-01 17:15:07 +00:00
helixhorned 4e0da757ef fix MSVC build
git-svn-id: https://svn.eduke32.com/eduke32@1925 1a8010ca-5511-0410-912e-c29ae57300e0
2011-07-01 12:22:12 +00:00
helixhorned 6a713133cf * Fix usage of uninitialized array (\!), which could result in TROR connections being deleted at random when deleting sectors. I guess this is a sign of approaching senility :(
* When dragging highlighted sprites, do a setsprite() after each position update. This way, they won't end up on the wrong level
* TROR support for SE 31 and 32 in-game, example provided in test map
* some uncommited stuff for TROR: SE 6/14


git-svn-id: https://svn.eduke32.com/eduke32@1924 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-29 19:57:05 +00:00
helixhorned 1eec50be5f make min. resolution 320x200 (Hendricks266's request)
git-svn-id: https://svn.eduke32.com/eduke32@1923 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-27 10:55:08 +00:00
helixhorned 87f726bfd7 fix highlighted sector deleting and probably a couple of other inconsistencies stemming from that bug
git-svn-id: https://svn.eduke32.com/eduke32@1922 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-26 23:29:51 +00:00
helixhorned 83ab50d66e * Make destructable ceilings and floors (SE 13 pointing down) behave well with TROR; also carry sprites and players on the roof of a subway. The latter uses t_data[9] on the pivot sprite.
* Make the minimum resolution possible 640x480. Sometimes you'd accidentally enter something like 'vidmode 800 60' and crashes would ensue...
* fix a warning


git-svn-id: https://svn.eduke32.com/eduke32@1921 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-26 21:59:42 +00:00
helixhorned 3bc56d267c Polymost: crash prevention for bad pal sprites (and warning in Mapster 3D mode)
git-svn-id: https://svn.eduke32.com/eduke32@1920 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-26 13:00:31 +00:00
plagman 0bc508eecd Polymer ROR support, but no support for masked floor/ceilings yet.
git-svn-id: https://svn.eduke32.com/eduke32@1919 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-26 08:54:02 +00:00
helixhorned ffde01b0ca fix NOASM=1 build
git-svn-id: https://svn.eduke32.com/eduke32@1912 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-20 21:07:47 +00:00
helixhorned 51fb860650 * Thin out models in memory by removing unused frames. This saves 200MB with DNE on Polymer.
* fix memory corruption when loading a Polymer savegame using another renderer and then change to Polymer
* fix possible crash in OSD_Exec() and uninitialized mem access in game config reader
* move makeasmwriteable() to baselayer.c


git-svn-id: https://svn.eduke32.com/eduke32@1910 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-19 18:30:32 +00:00
terminx ef61e48c25 Patch from Hendricks266 and whatever changes happened to be in my tree. I hope they work ;)
"The most noticeable change is the addition of the "includedefault" CON and DEF command, which will attempt to include eduke.con (or nam.con, or ww2gi.con), then game.con, or duke3d.def, or nam.def, or ww2gi.def. This is useful for TCs like my add-ons, where for my pseudo-mutators I currently say "include EDUKE.CON", but I also have to juggle this terrible order of paths, so that I can have an EDUKE.CON file in my HRP which says "include GAME.CON" to allow the mainline game to actually run, but also allow DukePlus to load its EDUKE.CON file (since it uses that and not an -x switch), and also allow any custom EDUKE.CON files in the root to be used."


git-svn-id: https://svn.eduke32.com/eduke32@1909 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-19 00:11:52 +00:00
helixhorned 5a632bc1f0 * Tighter y[ud]most clamping in TROR/classic. This fixes the overdraw bug when standing on the rails in the test map.
* Voxel tweaks: horizontally scale wall-aligned ones by 5/4, make them ignore per-tile yoffset in classic (i.e. emulate Polymost; I think this is more sensible since they're not clipped to floors/ceilings anyway), make Polymost know the voxel scale
* Always cull back-facing, one-sided, wall-aligned sprites (classic/Polymost), irrespective of whether it's a sprite, voxel or model. This can lead to falsely not drawing them in certain circumstances, but IMO that's preferable to visible hidden switches etc.
* Change defaults for r_novoxmips to 1 and lazytileselector to 0


git-svn-id: https://svn.eduke32.com/eduke32@1908 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-18 13:02:08 +00:00
helixhorned fdcfd8db0f also fix eduke32 on x86 and include a script for compiling all four versions, packing each into a fat binary and zipping the whole pack.
git-svn-id: https://svn.eduke32.com/eduke32@1907 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-17 13:11:19 +00:00
helixhorned 043c756676 A couple more OSX tweaks: pull in 'nibless' SDLMain.m into tree for future hacking, fix backspace ('delete') key in OSD, almost everything to make x86 binaries actually run.
git-svn-id: https://svn.eduke32.com/eduke32@1905 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-17 11:53:41 +00:00
helixhorned 116ab2ed99 Fix mapster's command-line parsing and copy over some of the 'custom mod dir' logic, currently used in the sound board to also find files outside of GRPs.
git-svn-id: https://svn.eduke32.com/eduke32@1904 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-16 19:39:22 +00:00
helixhorned dd355636ff A couple of OSX fixes: one 64-bit cleanup, compilation fix on ppc (is that ever used?), nasm command line fix for x86
git-svn-id: https://svn.eduke32.com/eduke32@1903 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-15 10:38:12 +00:00
helixhorned e1d868dc20 A couple of tweaks for easier work with TROR:
* When TROR-joining and sectors reachable through former red walls could need displacement, ask the user; if something is wrong with the walls of the two components to join, jump to that place and print coordinates of offending wall and its point2 in the OSD
 * Ctrl-TAB in 2D mode now toggles filling of the currently aimed-at sector; it's not very in sync with the rest of the controls though (e.g. some commands will potentially affect each sector that contains the crosshair)
 * Fill sectors slightly different so that highlighted sectors above each other are easier to distinguish
 * In the editor, always clear the screen to a 'rainbow' of the palette before each frame. This makes no-draw ('HOM') and accidental translucency glitches stand out more clearly
 * a few misc. tweaks, consistency checks, and fixes


git-svn-id: https://svn.eduke32.com/eduke32@1901 1a8010ca-5511-0410-912e-c29ae57300e0
2011-06-04 00:06:08 +00:00
helixhorned d3a9dec77c -- TROR:
* Mapster32 now makes sandwiches, too: select all floors of a bunch and 'extend them below'. This will put a new sector between the highlighted ones and the their lower neighbors and displace the z's accordingly. Make sure you have enough headroom.
 * To facilitate the above, RAlt now has two more modifier keys (checked at release time, as usual): for every sector that would be selected, END will select all sectors whose floor bunchnum equals the first (this is useful for sandwiching), and HOME will select all sectors whose ceiling bunchnum equals it (not very useful, but provided for completeness).
 * Sloping extended sectors is now checked more rigorously

-- misc:
 * When deleting highlighted sectors with DEL, pressing LShift will now always delete them irrespective whether the mouse pointer is over one of them. This is useful for the cleanup of corrupted maps.
 * 2D drawing is slightly tweaked so that active walls always display over inactive ones


git-svn-id: https://svn.eduke32.com/eduke32@1900 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-29 23:10:51 +00:00
helixhorned 95a33b72bd editor: tweak RShift so that unnecessary gray walls aren't selected; fix ugly bug with TROR joining
game: when entering/leaving water or slime, delay changing palette by one game tic to make it look right


git-svn-id: https://svn.eduke32.com/eduke32@1899 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-29 12:30:38 +00:00
helixhorned 480df8187b set op support for loop highlighting with RCtrl-RShift
git-svn-id: https://svn.eduke32.com/eduke32@1896 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-24 21:46:51 +00:00
helixhorned 68dff06533 TROR: join sectors to a new bunch. For this, highlight exactly two connected components having the same outline and being TROR-consistent (same height etc.) and press Ctrl-J. Any ambiguity (connect c/f with f/c?, move which component?) is resolved by asking the user. Warning: hot off the keyboard and likely buggy
git-svn-id: https://svn.eduke32.com/eduke32@1895 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-23 22:42:39 +00:00
helixhorned 4fb043483d Increase default tile cache size to 24M in Mapster32 and add a command-line parameter '-cachesize <kilobytes>'
git-svn-id: https://svn.eduke32.com/eduke32@1894 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-23 18:07:45 +00:00
helixhorned 5f8cc046cc fix: loop joining/sector splitting with TROR'ed sectors, rendering bugs due to slopes. change keys: [I] toggles invisibility preview, ['I] toggles sprite invisibility bit
git-svn-id: https://svn.eduke32.com/eduke32@1893 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-23 14:22:32 +00:00
helixhorned e92099b2f7 Polymost:
* rudimentary TROR support
 * free mixing of multi- and single-tile pskies
 * Don't cull models behind you. That is, treat them like floor sprites in that respect. This way large models like corpses don't disappear from the view unexpectedly.

Classic:
 * tweak the last row and column of the translucency table so that e.g. a transparent sprite against a FANSPRITE wall doesn't show up purple (only if Duke3D table is found)

Misc.:
 * fixes TROR-nextwall corruption when deleting sectors
 * tile selector 'goto' now has also completion
 * I forgot a file for the non-OpenGL build last time


git-svn-id: https://svn.eduke32.com/eduke32@1892 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-22 21:52:22 +00:00
helixhorned 0c190bfa55 * Auto-grayout for plain old sectors toggled with Ctrl-A. When it is in effect, _all_ sectors which fall outside the [min ceiling z, max floor z] bounds of all active extended sectors are deactivated.
* make it possible to duplicate from extended sectors; all extensions are cleared from them
* lazy hightile loading in tile selector can now be disabled in mapster32.cfg
* fixes USE_OPENGL=0 build


git-svn-id: https://svn.eduke32.com/eduke32@1890 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-18 22:44:09 +00:00
helixhorned 219dc6dd26 Translucent slope texture mapping; make overhead view always display grayed-out walls instead of only non-TRORed ones
git-svn-id: https://svn.eduke32.com/eduke32@1889 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-17 21:48:13 +00:00
helixhorned 137cb06bd6 ~-_-~-_-~ lift the curtain for... ~-_-~-_-~
True  Room
            over
            Room
    (also known as PROR)
  (or YAX)

 ~-_-~-_-~ ~~~~~~~~~~~~~~~~~~~~~~~ ~-_-~-_-~


git-svn-id: https://svn.eduke32.com/eduke32@1887 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-15 23:16:37 +00:00
helixhorned 873375025f * Include file cleanup by dragging most declarations into editor.h
* more useful auto-red wall feature: if no structure-changing operations have been applied after highlighting and duplicating, now also paste 'visual' fields of outer walls (this is one example of the use of a system that temporarily keeps track of nextwalls for former red lines)
* multi-pkies now have individual parallaxyscale


git-svn-id: https://svn.eduke32.com/eduke32@1886 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-15 22:37:24 +00:00
helixhorned 98456aefe3 -- engine:
* support for free mixing of multi- and single-tile parallaxed skies in classic
* make visibility independent of yxaspect and viewingrange in OpenGL modes

-- editor:
* when dragging walls, restore pixel width after that (only for the left and right walls of pointhighlight, and its nextwalls, if any)
* pasting on walls and auto-aligning them now carries over a few more fields

-- fixes:
* visibility in OpenGL modes wasn't incremented gradually (regression due to making 'clamp' an inline function instead of a macro)
* memory corruption due to calling qlz_compress with less than the recommended surplus storage of 400 bytes
* decorative sprites in the mirror showing non-flipped
* make the subway SE message (much) more helpful by showing which sector the game considers to be the track sector


git-svn-id: https://svn.eduke32.com/eduke32@1882 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-12 23:31:13 +00:00
plagman 8c5492ec2e Fix two warnings I introduced a while back.
git-svn-id: https://svn.eduke32.com/eduke32@1880 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-11 22:14:06 +00:00
plagman bfd38b4a89 Fixes for building on OpenBSD. Doesn't break Linux, pending Win32 synthesis
results.



git-svn-id: https://svn.eduke32.com/eduke32@1879 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-11 21:58:19 +00:00
helixhorned 203cf0b7b1 A crapload of random stuff.
* Polymer light access to m32script (light[<lightidx>].<field>). As an application, provide a state 'insertlights' that takes the currently active lights and puts them into the map as SEs (e.g. for maphack recovery).
* Prototype of a mechanism to gray out certain portion of a map, making them inactive to various, but not all, editing operations. Highlighting a set of sectors and pressing Ctrl-R will make the Z bounds be [(least ceiling z), (greatest floor z)] of all selected ones, pressing Ctrl-R when no sectors are highlighted will reset them. Not sure if it's for production use at this stage...
* The 'align walls' feature [.] now has three independently toggleable behaviours: recurse nextwalls (toggled when Ctrl is pressed), iterate point2s (disabled when Shift is pressed), and also copy pixel width (toggled when Alt is pressed).
* Make shades clamp instead of overflowing in the editor

Fixes:
* crash when carrying out certain operations on walls with xrepeat 0
* the Pause key on linux. Also make demo recording start on Shift-ScrollLock because ScrollLock alone is too easily pressed when pausing


git-svn-id: https://svn.eduke32.com/eduke32@1877 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-07 18:23:34 +00:00
helixhorned 367afadf39 tweak point deleting for less checksectorpointer calls
git-svn-id: https://svn.eduke32.com/eduke32@1875 1a8010ca-5511-0410-912e-c29ae57300e0
2011-05-02 16:58:11 +00:00
helixhorned 9c3889e59b Fix more overheadmap crashes, this time with 'Last Pissed Time'. Mapster32 now asks to jump to a sector, wall, sprite, or coordinates with 'J. Also fix crash when pressing '-' (not KP-) when aiming at something with tile 0.
git-svn-id: https://svn.eduke32.com/eduke32@1874 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-28 21:28:33 +00:00
plagman c7280a140b Fix the bug where Mapster32 tile selection would display the detail map of a
tile.



git-svn-id: https://svn.eduke32.com/eduke32@1873 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-27 14:30:48 +00:00
helixhorned d9a047df8a Fix two overheadmap-related crashes.
git-svn-id: https://svn.eduke32.com/eduke32@1872 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-25 19:50:08 +00:00
helixhorned 9a0aa6f81e ahem...
git-svn-id: https://svn.eduke32.com/eduke32@1870 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-22 22:51:03 +00:00
helixhorned 243e50db4b Insert two divide-by-zero checks that seem to fix the overhead map crash, but only with NOASM=1. Fix a couple of Mapster32 bugs and prettify some code there. Fix EDuke32 bug where the demo system overwrote boardname[] while using the file picker, making navigation between directories impossible.
git-svn-id: https://svn.eduke32.com/eduke32@1869 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-22 22:48:06 +00:00
helixhorned e35be69a0c fix compilation warning
git-svn-id: https://svn.eduke32.com/eduke32@1868 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-17 17:37:20 +00:00
helixhorned 64e22b9c6f * Support for entering names instead of numbers in various contexts (TAB-autocompletion included): first, when querying for a tile number, and second:
* Tag labeling system for 'link'-type tags, including saving and restoring the tag labels to a separate file '<mapname>.maptags'.  Whether a tag is eligible for linking, is determined by a hardcoded (but extensible via m32script) function.


git-svn-id: https://svn.eduke32.com/eduke32@1867 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-17 17:01:20 +00:00
helixhorned a2b3b6006c * Correctly draw floor-aligned sprites with non-power-of-two textures in classic renderer.
* Sprite cstat 2048 ('use own shade', [N]) now works more or less. (Issues may arise when combined with sector light effects.)
* Begin work on 'smart' tag labeling system for Mapster32.  Right now, it only displays a '+' after tags with linking semantics.
* 


git-svn-id: https://svn.eduke32.com/eduke32@1866 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-14 20:48:08 +00:00
helixhorned 1e937bb5aa slightly better linehighlight handling in 2d side-view mode
git-svn-id: https://svn.eduke32.com/eduke32@1865 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-11 22:28:58 +00:00
helixhorned 76a7799d7c Revise shade preview; fix PGUP/PGDN with selected sectors; allow INS/DEL in 2D side-view mode; 64-bit printf cleanup
git-svn-id: https://svn.eduke32.com/eduke32@1860 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-09 13:27:08 +00:00
terminx 1fdafcdad6 Cleaning out my tree... mostly internal changes. Adds workaround to disable texture compression with the crappy fglrx driver on Linux, fixes FIRE sprites so that they don't render at their sector's floorz all the time, changes CON compiler around a bit to use a loop instead of calling C_ParseCommand() 10 million times.
git-svn-id: https://svn.eduke32.com/eduke32@1857 1a8010ca-5511-0410-912e-c29ae57300e0
2011-04-07 01:16:29 +00:00
helixhorned 958c207622 editor and makefile tweaks
git-svn-id: https://svn.eduke32.com/eduke32@1856 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-25 11:42:07 +00:00
helixhorned 46964b322b * Lazy hightile loading in Mapster32 tile selector (first display all as lowtiles, then load each one while allowing movement)
* Consolidate the various, slightly different, methods of bounding a sprite between a sector's ceiling and floor into one common function
* Fixes for accumulated bugs: shade preview, r_shadescale_unbounded, and a couple of unreported ones
* Yaks, gnus, and bisons...


git-svn-id: https://svn.eduke32.com/eduke32@1854 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-23 17:41:01 +00:00
helixhorned 06afc4dcc5 * Comment out some practically dead code (rendmode 1 and 2, pcx screenshots), cutting some 8k from the release binary.
* Refactor two nearly identical chunks in polymost.c into one function in the hope of getting some more, but interestingly that did nothing at all. At least it's more readable this way...
* Commit, but don't enable, code for writing PNG screenshots (I'm tired of converting them every time). Requires libpng which in turn requires zlib.

git-svn-id: https://svn.eduke32.com/eduke32@1852 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-19 18:07:12 +00:00
terminx cfd4661b0b Don't return the "out of memory" error code from daskinloader() if kplib reports either of the dimensions are 0. Instead, return the generic failure code.
git-svn-id: https://svn.eduke32.com/eduke32@1851 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-19 18:01:13 +00:00
helixhorned 4dba12a5d3 Tweakery in various places.
Engine stuff:
 * Add 'r_shadescale_unbounded' cvar. When set to 0, OpenGL renderers should never
   draw completely black objects (currently only implemented for Polymost)

Mapster32:
 * Add 'r_shadescale' to config
 * In 3D mode, make SPACE behave the same as holding down a mose button: the
   currently pointed-at object is locked. Required some modification of a.m32
   to play well (i.e. not reset SPACE). This is useful by itself but more so
   in conjunction with the next point
 * make Alt behave as a modifier with PGUP/PGDN: when aiming at a 2-sided wall,
   move the other side's sector's ceiling or floor (only this is new).
 * Auto-alignment of walls can be controlled in a finer grained fashion now:
   When pressing '.', only the immediate neighbors get aligned. Use Ctrl-. for
   the old behaviour.
 * When inserting a point in 2D mode, auto-align the neighboring wall


git-svn-id: https://svn.eduke32.com/eduke32@1848 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-17 23:37:38 +00:00
plagman 9a51ea8b95 Don't warp mouse if DEBUGGINGAIDS is enabled; this'll make us ignore events if
they happen to exactly go the the center of the screen, but not that big of a
deal.



git-svn-id: https://svn.eduke32.com/eduke32@1847 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-17 01:27:24 +00:00
helixhorned bdc993bb3c fix getnumber256 crash
git-svn-id: https://svn.eduke32.com/eduke32@1846 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-14 20:00:13 +00:00
helixhorned 900a115b5a fix lone sector drawing
git-svn-id: https://svn.eduke32.com/eduke32@1845 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-14 17:36:46 +00:00
terminx faead764ad SDL 1.3 fixes
git-svn-id: https://svn.eduke32.com/eduke32@1844 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-14 03:10:25 +00:00
helixhorned 16557ff1bb fixes: various ones accumulated in the forum (falling into infinity, stuck in doors), crash in polymer mouse picker when in void space, creation of surplus loops on sector split when sector has weird geometry.
addition: disable sprite sectnum checking with m32script expert mode enabled.

git-svn-id: https://svn.eduke32.com/eduke32@1843 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-13 11:59:32 +00:00
terminx 44ab4b6ca1 Disable texture compression when ATI's horrible OpenGL implementation is detected
git-svn-id: https://svn.eduke32.com/eduke32@1841 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-12 16:37:45 +00:00
plagman ebfb0b1ad6 MD3 export script for Blender, based off the XReal hosted one and modified to
not prompt you for shader paths, collapsed into a single file and to avoid
transforming normals. This might break for rotations, but I don't think such
transforms should happen with a straight import from ASE -> export to MD3.


git-svn-id: https://svn.eduke32.com/eduke32@1839 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-11 08:01:43 +00:00
plagman f1c2dcaef8 Blender ASE: fix animation import.
git-svn-id: https://svn.eduke32.com/eduke32@1838 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-11 04:55:02 +00:00
helixhorned b158521449 Besides catching a few more corner cases, there's better mouselook handling and a warning (but no fix) for a rare and bad corruption when splitting a sector in this revision.
git-svn-id: https://svn.eduke32.com/eduke32@1836 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-08 23:02:38 +00:00
plagman c4f613e021 Add animation support to the ASE import script.
git-svn-id: https://svn.eduke32.com/eduke32@1835 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-08 06:54:48 +00:00
plagman 7034f78413 Checking in ASE import script for Blender, improved with vertex normal support.
git-svn-id: https://svn.eduke32.com/eduke32@1834 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-08 05:46:33 +00:00
helixhorned 2f5a8a0f6b minor fixes
git-svn-id: https://svn.eduke32.com/eduke32@1833 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-07 22:56:00 +00:00
helixhorned 148f3cadef mapster32: new command-line switch '-namesfile <filename>' for overriding NAMES.H; new 'drawlabel <quotenum> <x> <y> <z> <col> <backcol>' m32script command for drawing small labels, see end of a.m32 for an example; some special handling for sprites whose tile yoffset is greater or equal their pixel height.
git-svn-id: https://svn.eduke32.com/eduke32@1832 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-07 16:30:06 +00:00
helixhorned e782dbca61 Make RShift/RAlt-selection and various sector operations available in side-view mode. Adds yet another modifier, this time to RShift: if RCtrl is pressed at release time, select only sprites. (If no box drawn, old behaviour of selecting wall-points of line-highlighted wall's loop.)
git-svn-id: https://svn.eduke32.com/eduke32@1830 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-05 12:59:27 +00:00
terminx 8dde3b2548 Fix a couple of warnings when building with SDL 1.3
git-svn-id: https://svn.eduke32.com/eduke32@1829 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-05 07:17:00 +00:00
terminx bcc3682af0 Update nedmalloc.dll and fix undesirable FIRE/FIRE2 and COOLEXPLOSION1 behavior from http://forums.duke4.net/index.php?showtopic=2961&st=90&start=90
git-svn-id: https://svn.eduke32.com/eduke32@1827 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-05 03:57:15 +00:00
terminx ec88a5269f Add the svn revision to the version string in Mapster32
git-svn-id: https://svn.eduke32.com/eduke32@1824 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-04 18:47:06 +00:00
terminx cdd800890f Add a couple more resolutions to the table in baselayer.c and add the compile date and time to eduke32.log
git-svn-id: https://svn.eduke32.com/eduke32@1823 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-04 10:09:12 +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
plagman 012b620cae Move hardcoded windowed resolution list to baselayer (based off winlayer ones + 1366x768).
git-svn-id: https://svn.eduke32.com/eduke32@1819 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-04 07:04:42 +00:00
plagman b4f5da1141 Adds r_pr_overridemodelscale to help with getting models in-game, also works with HUD models.
git-svn-id: https://svn.eduke32.com/eduke32@1818 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-04 05:33:35 +00:00
helixhorned 0fbd035e54 New sector selection mode in 2d mode: if RCtrl is pressed when releasing RAlt, then instead of the sector having to be contained in the rectangle, the mouse pointer must be inside a sector to be selected. This way it's easy to select sectors with arbitrary shapes. Set ops work independently of it, too. Also some annoyance fixes with sprite movement.
git-svn-id: https://svn.eduke32.com/eduke32@1816 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-02 21:21:47 +00:00
helixhorned 0c9618bc44 fix sprite ornamentation
git-svn-id: https://svn.eduke32.com/eduke32@1815 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-01 19:50:05 +00:00
plagman 4430b3ca3f Add custom FOV support for HUD model definitions with the 'fov' DEF token (in build angles). Also adds an r_pr_overridehud cvar in order to preview DEF token changes in-game using the r_pr_hud* cvars.
git-svn-id: https://svn.eduke32.com/eduke32@1814 1a8010ca-5511-0410-912e-c29ae57300e0
2011-03-01 05:52:33 +00:00
helixhorned 219c136f24 more m32 fixes
git-svn-id: https://svn.eduke32.com/eduke32@1813 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-28 18:37:49 +00:00
plagman 423263330c Add Polymer support to rotatesprite, which hooks up highpal amongst other things.
git-svn-id: https://svn.eduke32.com/eduke32@1812 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-28 03:56:37 +00:00
helixhorned 12748c894f m32 fixery. random z position of inserted sprites is bad!
git-svn-id: https://svn.eduke32.com/eduke32@1811 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-27 23:21:20 +00:00
plagman 4f9699e03b Fix the build with USE_OPENGL=0.
git-svn-id: https://svn.eduke32.com/eduke32@1810 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-27 22:11:39 +00:00
plagman fedab48ad2 Fix warnings when building with POLYMER=0.
git-svn-id: https://svn.eduke32.com/eduke32@1809 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-27 21:07:37 +00:00
helixhorned 619d3c8c9e Final round of Mapster32 hardening. Going over the limits should now always produce an error message instead of corrupting the data. Also fixes crash in defs.c (thanks for the crashlog, LeoD).
git-svn-id: https://svn.eduke32.com/eduke32@1808 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-27 19:13:44 +00:00
terminx bcadbd372b MSVC build fix
git-svn-id: https://svn.eduke32.com/eduke32@1806 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-26 23:38:18 +00:00
helixhorned bf01b5b474 Allocate some extra space after static wall[] and sector[] for the editor.
git-svn-id: https://svn.eduke32.com/eduke32@1804 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-25 22:49:56 +00:00
helixhorned 73d6ad1d04 Oops, r1801 crashed Mapster in the undo system. Also less/better automatic wall[].xrepeat resizing on things like attaching a wall to another.
git-svn-id: https://svn.eduke32.com/eduke32@1803 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-25 22:10:25 +00:00
terminx 043bb208b3 Multiplayer improvements
git-svn-id: https://svn.eduke32.com/eduke32@1802 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-25 21:50:19 +00:00
helixhorned 48d15c23c6 Mapster32 cleanup. The biggest visible change should be the more robust editing near the limits (still not perfect though).
git-svn-id: https://svn.eduke32.com/eduke32@1801 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-24 20:40:27 +00:00
helixhorned 71d5dc5e59 Selective auto-correction option for the corruption checker. 'corruptcheck now' will print numbered tags for each warning, which can then be used like this: 'corruptcheck tryfix 20 34-64'. General cleanup; make mapster32 not depend on enet objects.
git-svn-id: https://svn.eduke32.com/eduke32@1799 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-21 23:08:21 +00:00
helixhorned 348474dd14 Mundane Mapster Maintenance Melee, Part 2
git-svn-id: https://svn.eduke32.com/eduke32@1797 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-15 21:02:43 +00:00
plagman 65ad201c39 Fix shade updating for swapped bottomwalls.
git-svn-id: https://svn.eduke32.com/eduke32@1796 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-13 23:37:35 +00:00
plagman afc266f8d2 Fix editor picking with swapped bottomwalls.
git-svn-id: https://svn.eduke32.com/eduke32@1794 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-13 23:16:56 +00:00
helixhorned 8e4def18ba use sprite's cstat bit 2048 for approximately the same effect as spritenoshade; some side-view and other editor tweaks
git-svn-id: https://svn.eduke32.com/eduke32@1793 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-13 21:48:22 +00:00
helixhorned 86eaeaa727 temporarily bump the additional space after wall[] to 1024 walltypes in the editor; display map corruption status in upper left corner in the corrupt case.
git-svn-id: https://svn.eduke32.com/eduke32@1792 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-13 15:15:37 +00:00
helixhorned 2428b11152 More OSX build fixery and printf/scanf cleanup for 64-bit systems
git-svn-id: https://svn.eduke32.com/eduke32@1791 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-12 13:25:24 +00:00
helixhorned cf9e3fd3f6 * Fix a serious logic mistake with checksectorpointer. Previously, a white wall could 'connect' to a red one, leaving the reverse link intact and creating a situation like this: w_new <-> w <-- w_old.
* Have the corruption checker catch this case among a few other new ones. Rename OSD command 'autocorruptcheck' to simply 'corruptcheck' with options 'corruptcheck <seconds>', 'corruptcheck now' and 'corruptcheck tryfix'.
* When pasting sector selection into valid player space (releasing AltGr), ask whether a surrounding outer loop should be created since this is probably not always desired.

git-svn-id: https://svn.eduke32.com/eduke32@1790 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-10 23:15:02 +00:00
helixhorned f4b4234ce1 fix some issues with compilation on mac osx; make B, N, M keys behave the same as KP1, KP2, KP3 when pointing at a polymer light (hack around keyboard strangeness)
git-svn-id: https://svn.eduke32.com/eduke32@1789 1a8010ca-5511-0410-912e-c29ae57300e0
2011-02-06 22:57:32 +00:00
terminx 76e1ac5e08 Patch from bioman to fix an issue with static linking GTK and to correct the alignment of the fullscreen checkbox in the startup window when building with POLYMER=0
git-svn-id: https://svn.eduke32.com/eduke32@1785 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-31 04:13:53 +00:00
helixhorned e24a1058f5 print 'cached tile' messages only from 5 ms up so as not to flood the OSD/log; quit on out of mem in one more place; new tool md2tool to query MD2 model info or change the scale/translate fields so that desired bounds are produced
git-svn-id: https://svn.eduke32.com/eduke32@1784 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-30 11:02:28 +00:00
plagman 32d58b3839 Change highpal maps to 6-bit and add corresponding scale and bias to bypass linear interpolation around the borders.
git-svn-id: https://svn.eduke32.com/eduke32@1783 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-27 07:57:52 +00:00
plagman 87b71fd3da Hook basepal up to highpal.
git-svn-id: https://svn.eduke32.com/eduke32@1782 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-27 07:05:12 +00:00
plagman b6dce8a559 Move the new basepal table one step further so that the engine is now aware of it.
git-svn-id: https://svn.eduke32.com/eduke32@1781 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-27 06:35:52 +00:00
helixhorned f3bf6b542e With the help of Coccinelle, eliminate a few sector[-1] accesses and calculations of &sector[-1] (bound checking code not committed).
git-svn-id: https://svn.eduke32.com/eduke32@1780 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-23 15:30:28 +00:00
helixhorned b3cd9a73fe fix non-Polymer build
git-svn-id: https://svn.eduke32.com/eduke32@1778 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-20 21:46:15 +00:00
helixhorned 1a661b4d23 Fix clipshape bug reported by DeeperThought. Reason was absent-mindedness while coding :/
git-svn-id: https://svn.eduke32.com/eduke32@1777 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-20 19:00:12 +00:00
helixhorned 801845fa3b fix false save failure message and clean up begindrawing/enddrawing pairs
git-svn-id: https://svn.eduke32.com/eduke32@1776 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-20 10:52:33 +00:00
plagman 658c3b66f1 Fix the lighting model so that lights don't get the modulated diffuse (defeats the purpose if they do, since you wouldn't be able to light a fully shaded room). That means the highpal lookup has to be performed twice now, once with the modulated diffuse to apply to the result and once with no modulation to make a diffuse that the lighting code can use. That means that lighting isn't 100% accurate with respect to the highpal result, but that's the best approach I could think of.
git-svn-id: https://svn.eduke32.com/eduke32@1773 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-18 01:34:39 +00:00
plagman cdad4ea850 Fix more MinGW warnings.
git-svn-id: https://svn.eduke32.com/eduke32@1768 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 03:57:44 +00:00
plagman 15c94e6fa2 Fix all the remaining warnings (except the warn_unused_result stuff, pass -Wno-unused-result).
git-svn-id: https://svn.eduke32.com/eduke32@1766 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 03:53:27 +00:00
plagman 8da4e5cc58 Remove some warnings.
git-svn-id: https://svn.eduke32.com/eduke32@1764 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 03:33:48 +00:00
terminx 7cef706c7c Add "Bstrstr" to compat header
git-svn-id: https://svn.eduke32.com/eduke32@1763 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 02:51:22 +00:00
terminx ef912658a0 Run engine source through new version of astyle, add printf() call to OSD_Printf() to facilitate console access through stdin/stdout for dedicated server mode, minor changes to sdlayer to allow operating without actually initializing SDL
git-svn-id: https://svn.eduke32.com/eduke32@1762 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 02:50:27 +00:00
terminx 1579d2edd3 Switch back to using GL_COMPRESSED_RGB_ARB and GL_COMPRESSED_RGBA_ARB instead of explicitly asking for DXT1 and DXT5 (maybe fix white boxes on ATI?), change check for Radeon X1xxx cards to work on mobile cards with different GL_RENDERER strings
git-svn-id: https://svn.eduke32.com/eduke32@1761 1a8010ca-5511-0410-912e-c29ae57300e0
2011-01-16 02:45:54 +00:00
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
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
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
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
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 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
helixhorned 91250f081c New CON commands:
* sectsetinterpolation <sector>
 * sectclearinterpolation <sector>
 * clipmove <<ret>> <<x>> <<y>> <z> <<sectnum>> <xvect> <yvect> <walldist> <floordist> <ceildist> <clipmask>
 * lineintersect  <x1> <y1> <z1>  <x2> <y2> <z2>  <x3> <y3>  <x4> <y4>  <<intx>> <<inty>> <<intz>> <<ret>>
 * rayintersect <x1> <y1> <z1>  <xv> <yv> <zv>  <x3> <y3>  <x4> <y4>  <<intx>> <<inty>> <<intz>> <<ret>>
 * calchypotenuse <<ret>> <x> <y>
(all except *interpolation also in m32script). Also fixes Sect_ClearInterpolation to be symmetrical to its Set counterpart (shouldnt change anything since it was unused). Added "-conversion YYYYMMDD" switch for keyword-compatibility with old mods.
Mapster32: invisible sprite preview with Quote-i.

git-svn-id: https://svn.eduke32.com/eduke32@1708 1a8010ca-5511-0410-912e-c29ae57300e0
2010-09-27 21:52:04 +00:00
helixhorned fec84e6dbb mapster32 fixes: aiming crash in polymer, more accurate aiming in polymost + calibration/replacement crosshair via "r_preview_mouseaim", 2 other crashes; fix "S" in tile selector, make read-only variable overridable with "script_expertmode", misc. beautifying.
git-svn-id: https://svn.eduke32.com/eduke32@1706 1a8010ca-5511-0410-912e-c29ae57300e0
2010-09-06 23:08:35 +00:00
terminx a7c95286c2 msvc compile fix
git-svn-id: https://svn.eduke32.com/eduke32@1705 1a8010ca-5511-0410-912e-c29ae57300e0
2010-09-01 02:35:36 +00:00
plagman ed17c7af80 Re-tie initial SDL mouse grabbing to DEBUGGINGAIDS.
git-svn-id: https://svn.eduke32.com/eduke32@1704 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-26 15:27:57 +00:00
plagman 1d28272c4a Correctly (I hope) handle the zoom argument of rotatesprite when drawing HUD models in Polymer.
git-svn-id: https://svn.eduke32.com/eduke32@1703 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-26 15:27:16 +00:00
plagman 3d31f645fb Add a few debug cvars for development purposes.
git-svn-id: https://svn.eduke32.com/eduke32@1702 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-26 15:24:12 +00:00
helixhorned 399a822fd7 Fixes various issues with selecting: sectors and duplicating them many times in a row, sprites and then deleting some of them (also adds set union ['] and difference [;] to RSHIFT); adds the ability to move all selected sprites in the XY plane in 3d mode with SHIFT-LMB and align to the grid in an absolute fashion with CTRL.
git-svn-id: https://svn.eduke32.com/eduke32@1701 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-26 13:50:09 +00:00
plagman f5bd9e4ac5 Fix wrong interpretation of SPREXT_NOTMD that would cause it to assume the flag was set whenever any flag was set, causing the models to switch on and off in Duke Plus with Polymer.
git-svn-id: https://svn.eduke32.com/eduke32@1700 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-21 19:04:37 +00:00
plagman 99415a625f Polymost-style HUD model support for Polymer. It properly displays all HRP HUD models as far as I can tell.
git-svn-id: https://svn.eduke32.com/eduke32@1699 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-21 07:39:12 +00:00
helixhorned 917b924a0d Fixes crash in 2d map drawing where sector[-1] was accessed; added commands a2xy and ah2xyz to m32script, coded 2d preview of swinging and sliding doors; added "samprate" setting to configuration, useful if the default one gives jittering/echoey audio
git-svn-id: https://svn.eduke32.com/eduke32@1697 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-17 20:00:44 +00:00
helixhorned b2988abb54 Search for named tile in tile selector ('S'); various bugfixes (among other things with PR-override vars)
git-svn-id: https://svn.eduke32.com/eduke32@1696 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-16 13:56:49 +00:00
helixhorned c354695d60 bugfixes; mark tiles in tile selector for later grouping (press SPACE on a tile); a.m32: convert to CRLF and add [xyz]vel query in 3d mode (Alt-KP1), also different keys for Polymer override var tweaking; some CRLF->LF in LF-only files.
git-svn-id: https://svn.eduke32.com/eduke32@1695 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-14 21:32:28 +00:00
terminx 9ca26d9736 don't link build utils to all the libs needed for the actual engine itself
git-svn-id: https://svn.eduke32.com/eduke32@1694 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-13 06:45:38 +00:00
helixhorned 5e3d6ca527 Makefile cleanups: fixed building with GCC 3, made tabs into spaces where outside command context; Windows: make startup window stay 3 seconds if there was an error -- this way you won't mistake yourself forgetting to copy game data for a crash *d'oh*
git-svn-id: https://svn.eduke32.com/eduke32@1693 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-12 21:06:51 +00:00
helixhorned 6185aedded Fixes compilation for now. Now if my executable would start...
git-svn-id: https://svn.eduke32.com/eduke32@1692 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-12 13:38:37 +00:00
helixhorned 71e59a5502 A bunch of m32script additions, fixes and general stuff, among them: local vars/arrays, inline quotes and prettier error messages.
git-svn-id: https://svn.eduke32.com/eduke32@1691 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-11 22:37:45 +00:00
terminx ca382a894a Remove detection of sprites outside of sectors at map load and fix green sprites in Mapster32 with Polymer
git-svn-id: https://svn.eduke32.com/eduke32@1689 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-07 23:15:35 +00:00
helixhorned fff9bbadd9 added m32_autoexec.cfg execution on startup of mapster32 (like autoexec.cfg for the game); in 3d mode: shift-pgup/pgdn -> alt-pgup/pgdn for 2-sided walls
git-svn-id: https://svn.eduke32.com/eduke32@1682 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-03 17:45:44 +00:00
plagman d9092fcd2b Implement 'away1' and 'away2' maphacks in Polymer.
git-svn-id: https://svn.eduke32.com/eduke32@1681 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-03 15:19:01 +00:00
plagman 10830a7f3f Respect the 'notmd' maphack when deciding to draw models in Polymer.
git-svn-id: https://svn.eduke32.com/eduke32@1680 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-03 15:06:24 +00:00
helixhorned a1a5f9cb5a Partially fixes bug #3034382 and a few other ones.
git-svn-id: https://svn.eduke32.com/eduke32@1679 1a8010ca-5511-0410-912e-c29ae57300e0
2010-08-02 18:59:59 +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 e1649ec722 Polymer performance improvement and some game related bug fixes. Improves Polymer framerate by about 25% in most cases and fixes problems causing Duke Caribbean doors to malfunction.
git-svn-id: https://svn.eduke32.com/eduke32@1676 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-26 22:36:45 +00:00
plagman abbe41e97d Reorganize a little code so that lightmaps can be used when a spotlight isn't currently casting a shadow. This fixes the problem where the window lights in the E1L1 apartment secret would jump between square and circle-shaped depending on the shadowcount and the view angle.
git-svn-id: https://svn.eduke32.com/eduke32@1674 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-25 02:16:22 +00:00
terminx 1102b74a35 mostly multiplayer fixes among other things
git-svn-id: https://svn.eduke32.com/eduke32@1672 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-19 15:14:00 +00:00
terminx 7be36ebcd4 fix some crap
git-svn-id: https://svn.eduke32.com/eduke32@1666 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-05 01:45:29 +00:00
terminx 013ac85e2d Emit RPG_EXPLODE, PIPEBOMB_EXPODE and LASERTRIP_EXPLODE from the actual EXPLOSION2 sprite instead of whatever spawned EXPLOSION2, to prevent the sound from being owned by whatever sprite happens to spawn with the ID the RPG/pipebomb/whatever had before it was removed
Add brightness/gamma/contrast cvars to Mapster32

Fix bug with WEAPON_SEMIAUTO flag for custom weapons

Fix VM error with starttrack when specifying an invalid music track

Fix detection of 0x1a EOF characters in CON files

Fix a couple of additional sound issues

Fix crash in pushmove()

Fix Mapster32 textured 2D mode display being a few pixels off from the actual lines drawn

Fix crash when clicking "cancel" in Mapster32 startup window

Add Makefile detection to build with -march=pentium3 -mtune=generic on i686


git-svn-id: https://svn.eduke32.com/eduke32@1665 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-03 08:53:57 +00:00
plagman a346acfccb Make the "Start" button of the GTK start-up window the default button of the window, which means pressing Enter now works at you'd expect.
git-svn-id: https://svn.eduke32.com/eduke32@1664 1a8010ca-5511-0410-912e-c29ae57300e0
2010-07-02 01:26:56 +00:00
helixhorned 386c50d41c SDL/non-Windows: external midi playing with fork/exec and signals; double initprintf internal buffers since they got too long for the --help text; warn on replacing empty tile with a hightile; fix a keypad issue in Mapster32
git-svn-id: https://svn.eduke32.com/eduke32@1663 1a8010ca-5511-0410-912e-c29ae57300e0
2010-06-27 10:08:58 +00:00
terminx 0b5de0800a Final round (I hope!) of sound fixes. Should also fix the crash on exit on Windows and the REACTOR sprite size bug.
git-svn-id: https://svn.eduke32.com/eduke32@1662 1a8010ca-5511-0410-912e-c29ae57300e0
2010-06-26 08:51:42 +00:00
helixhorned 1905a1cf02 m32script: infinite loop safety halt (send a SIGINT), saved input history, states can be invoked without "state" keyword when in OSD
git-svn-id: https://svn.eduke32.com/eduke32@1661 1a8010ca-5511-0410-912e-c29ae57300e0
2010-06-25 23:01:54 +00:00
terminx 068d3c0e52 This is mostly just build fixes for USE_OPENGL=0, POLYMOST=0 and POLYMER=0. Also updated the precompiled libogg/libvorbis/libvorbisfile that are supplied for MinGW.
git-svn-id: https://svn.eduke32.com/eduke32@1660 1a8010ca-5511-0410-912e-c29ae57300e0
2010-06-23 04:20:46 +00:00
terminx 9143833fc8 rotatesprite and multivoc have a rape baby
No, seriously.  Adds widescreen aware rotatesprite and works out half a dozen huge problems in the sound system, among other things.


git-svn-id: https://svn.eduke32.com/eduke32@1658 1a8010ca-5511-0410-912e-c29ae57300e0
2010-06-22 21:50:01 +00:00
terminx 4c3c64286a shading changes and fixes for a few crashes
git-svn-id: https://svn.eduke32.com/eduke32@1657 1a8010ca-5511-0410-912e-c29ae57300e0
2010-06-07 09:03:16 +00:00
terminx d76817a361 Fix a couple of stupid typos and remove some dead code from Mapster32
git-svn-id: https://svn.eduke32.com/eduke32@1656 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-29 05:03:02 +00:00
helixhorned ad0284b00c check limits in more places when drawing walls in 2d mode.
git-svn-id: https://svn.eduke32.com/eduke32@1655 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-28 23:08:32 +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
helixhorned 011a3ba327 forgot a file
git-svn-id: https://svn.eduke32.com/eduke32@1650 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-22 23:42:37 +00:00
helixhorned 02379ee1d2 More of them. Includes the possiblity of typing m32script commands directly into the OSD (without "do", see osdtryscript in mapster32.cfg) and improved diagnostics.
git-svn-id: https://svn.eduke32.com/eduke32@1649 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-22 23:41:18 +00:00
helixhorned 30877e925a more polymer-override variable twiddling in m32script, fixes and beautifying.
git-svn-id: https://svn.eduke32.com/eduke32@1648 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-22 14:04:47 +00:00
terminx 8120821f8d fix some breakage with the "load last game" screen that pops up when you die
git-svn-id: https://svn.eduke32.com/eduke32@1647 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-21 05:53:21 +00:00
terminx 7c3efce4cc fixes crashes when a bad model name is specified due to a typo I didn't notice after a find/replace
git-svn-id: https://svn.eduke32.com/eduke32@1646 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-20 06:05:46 +00:00
terminx 45052b8273 minor changes from my tree that I'm committing to test automated synthesis builds
git-svn-id: https://svn.eduke32.com/eduke32@1645 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-19 10:02:35 +00:00
helixhorned 8077dcd633 Mapster32 maintenance pack #1
The bulk of this commit is "code rape"--or rather, caressing, rewritten for readability.
Actual changes/fixes:
  - fixed "walking" in 2d mode
  - fixed DELETE key in OSD in SDL build
  - main loop in general (timeout for event wait after 200 ms so that highlights blink)
  - access to some pr_override* variables in m32script (suggested by Roma Loom)
  - API cleanup (added statics and consts here and there)

git-svn-id: https://svn.eduke32.com/eduke32@1644 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-18 05:14:17 +00:00
terminx 21192dfb48 Make nedmalloc a compile time option and add support for loading an external nedmalloc.dll at run time if it isn't compiled in
git-svn-id: https://svn.eduke32.com/eduke32@1643 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-18 00:30:30 +00:00
terminx 65b29ab092 win32 stuck input fix among other minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1642 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-16 22:53:08 +00:00
helixhorned b1ffbfda36 Fixes some problems with mapster zooming; reset keystatus[] after playtesting.
git-svn-id: https://svn.eduke32.com/eduke32@1637 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-10 21:23:30 +00:00
terminx 6b5ec5b3f6 fix a few more reported issues
git-svn-id: https://svn.eduke32.com/eduke32@1635 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-09 22:12:29 +00:00
terminx 3514722a74 fix input when using vsync
git-svn-id: https://svn.eduke32.com/eduke32@1634 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-09 08:51:25 +00:00
terminx a6b614f6bf fix mouse positioning issue when using alt+tab on win32 and fix game speed at low framerates
git-svn-id: https://svn.eduke32.com/eduke32@1633 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-08 20:15:24 +00:00
terminx bb21e1c05f Fixes anim playback, mouse lag with low fps, keyboard setup menu
git-svn-id: https://svn.eduke32.com/eduke32@1632 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-07 20:45:40 +00:00
terminx e1649b9d0b git-svn-id: https://svn.eduke32.com/eduke32@1631 1a8010ca-5511-0410-912e-c29ae57300e0 2010-05-05 07:31:38 +00:00
terminx c82a6b7ab0 fix a couple of issues with the new keyboard code
git-svn-id: https://svn.eduke32.com/eduke32@1629 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-03 10:32:38 +00:00
terminx e665b96d1b MinGW build fix
git-svn-id: https://svn.eduke32.com/eduke32@1627 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-03 08:30:25 +00:00
terminx b2baba827c git-svn-id: https://svn.eduke32.com/eduke32@1626 1a8010ca-5511-0410-912e-c29ae57300e0 2010-05-03 01:03:06 +00:00
terminx 45d93544a6 Source code "cleanup," herein referred to as "rape"
git-svn-id: https://svn.eduke32.com/eduke32@1625 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-02 23:27:30 +00:00
plagman 4ba108994c %esi gets modified by swapchar2 but isn't listed as an output operand for the GCC extended assembly version. This causes the compiler to fail to restore it after swapchar2 executes, causing crashes if used in a loop. This change fixes the security camera crash when using GCC 4.4.x or 4.5.0.
git-svn-id: https://svn.eduke32.com/eduke32@1624 1a8010ca-5511-0410-912e-c29ae57300e0
2010-04-26 04:55:42 +00:00
plagman b0a27e4c34 Fail gracefully when processing (some) corrupt models instead of corrupting the heap and possibly crashing.
git-svn-id: https://svn.eduke32.com/eduke32@1623 1a8010ca-5511-0410-912e-c29ae57300e0
2010-04-26 00:51:44 +00:00
helixhorned f7154d8c78 Various mapster32 fixes: check wall limits in sector drawing; don't count BACKSPACEing there as a new revision (probably fixes undo-related crashes). Also a patch-fix for a crash I couldn't pin down exactly and a corruption checker for m32script.
git-svn-id: https://svn.eduke32.com/eduke32@1622 1a8010ca-5511-0410-912e-c29ae57300e0
2010-04-19 21:22:26 +00:00
helixhorned 32a86d8fce m32: have default grid size in configuration
git-svn-id: https://svn.eduke32.com/eduke32@1621 1a8010ca-5511-0410-912e-c29ae57300e0
2010-04-11 13:04:53 +00:00
terminx 0c63340d4a Fix building engine utils w/ nedmalloc
git-svn-id: https://svn.eduke32.com/eduke32@1620 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-26 02:53:22 +00:00
helixhorned 8854ea2dbb Save last rendered texture tempoarily in memory when precaching. This cuts about 10 percent on initial precaching time on the average (E1-3 L1-4, current HRP). Also don't precache special palettes that the user hasn't chosen to render (saves a few % maybe) or models (can be substantial).
git-svn-id: https://svn.eduke32.com/eduke32@1610 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-11 23:35:22 +00:00
plagman e7c9ce8624 Model specular map support and polymer fix for the OSX/ATI driver.
git-svn-id: https://svn.eduke32.com/eduke32@1609 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-07 01:09:39 +00:00
plagman 2b734bb6d0 Add proper DEF tokens for normal scale/bias in model skins.
git-svn-id: https://svn.eduke32.com/eduke32@1608 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-07 00:09:00 +00:00
terminx da1bdf711c Better mouse fix?
git-svn-id: https://svn.eduke32.com/eduke32@1606 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-03 01:43:34 +00:00
terminx e00aeef384 Fix for mouse stalls at < 10 fps
git-svn-id: https://svn.eduke32.com/eduke32@1603 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-02 22:44:12 +00:00
terminx abee6af03e force r_vbos to 0 for Polymost on ATI R520
git-svn-id: https://svn.eduke32.com/eduke32@1602 1a8010ca-5511-0410-912e-c29ae57300e0
2010-03-01 09:13:25 +00:00
terminx c369aec8cc Minor formatting changes, fix nedmalloc on BSD, fix win32 joystick detection issue, fix for ambient sounds, possible fix for stopsound malfunctioning after extended play time, add CON compilation error for duplicate "break" in switch statement
git-svn-id: https://svn.eduke32.com/eduke32@1599 1a8010ca-5511-0410-912e-c29ae57300e0
2010-02-23 18:13:46 +00:00
helixhorned 512535c53f EDuke32: new demo system should be stable now; Made the $EDUKE32_MUSIC_CMD env var work (SDL only).
Mapster32: Helper feature -- pressing SHIFT on a 2-sided wall makes the PGUP/PGDN etc. commands operate on the sector at the other end of the wall; replaced searchstat numbers by #defined names and eliminated the worst cases of code duplication in astub.c

git-svn-id: https://svn.eduke32.com/eduke32@1598 1a8010ca-5511-0410-912e-c29ae57300e0
2010-02-13 21:46:42 +00:00
plagman 386a93c366 This is an attempt to fix r1595.
- pr_resetlights() was exported but polymer.c wasn't changed to reflect that. This also broke the gcc build so I'm not sure how this was missed.
 - commented code was laying around in the middle of polymer.h
 - savegame.c using a bunch of C99 non-constant initializers. Please keep in mind that MSVC is one of the supported compilers and doesn't know C99.
 - savegame.c using localtime_r, which doesn't exist on Win32.
 - demo playback calling resetlights and drawrooms without ever calling pr_loadboard().
 - this change makes the game run very choppy here.

git-svn-id: https://svn.eduke32.com/eduke32@1596 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-25 01:11:34 +00:00
helixhorned eb5f59ca7f Improved demo system. Kick ass and watch :)\
Features:  * start recording in mid-game (ScrollLock)
           * saves interleaved diffs for later sync correction
           * supports fast-forward/rewind

Some work still needed to trace down remaining sync problems. Also be sure to check the demo* cvars.

git-svn-id: https://svn.eduke32.com/eduke32@1595 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-24 23:33:17 +00:00
plagman 0d6dc3a531 Model normal mapping support. This calculates the averaged texture-tangent basis for every face of every model when loading them, so this change will make startup times a lot worse until we implement a way to cache the computed models to disk.
git-svn-id: https://svn.eduke32.com/eduke32@1594 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-24 05:57:43 +00:00
terminx e65891aad6 Very few actual changes... mostly formatting fixes from astyle
git-svn-id: https://svn.eduke32.com/eduke32@1593 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-23 22:12:02 +00:00
terminx addf597188 More nedmalloc updates, possibly fix win32 mouse death at ~10 fps or less, fix dummytile crash, more untested multiplayer changes... different enet channels for different types of traffic in order to eliminate latency due to the occasional reliable packet getting dropped, therefore causing a hitch in the flow of unreliable movement packets on the same channel, remove mmulti API from engine in favor of having everything in game land
git-svn-id: https://svn.eduke32.com/eduke32@1592 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-21 10:02:04 +00:00
plagman f3802b7897 Properly invert the tangent space matrix instead of transposing it (after all, model tangent space isn't guaranteed to be orthogonal) and do so offline. This removes a little strain from the GPU.
git-svn-id: https://svn.eduke32.com/eduke32@1591 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-21 05:52:19 +00:00
terminx 11c9195317 Fix building with MSVC
git-svn-id: https://svn.eduke32.com/eduke32@1590 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-18 11:40:40 +00:00
plagman 80b6a96901 This should correctly compute the normal of all BUILD floors and walls. Fixes bug 2806174 (E1L1 projection room floor not affected by light and parallaxing artifacts).
git-svn-id: https://svn.eduke32.com/eduke32@1589 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-18 07:07:22 +00:00
plagman 86fefa266d This should be the correct type for aGlobalMemoryStatusEx.
git-svn-id: https://svn.eduke32.com/eduke32@1588 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-17 20:08:03 +00:00
terminx 15b9665dc6 Update nedmalloc, fix loading tiles from .art files contained in a .zip, workaround GCC 4.4.x squarerotatetile() miscompilation issue
git-svn-id: https://svn.eduke32.com/eduke32@1586 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-16 20:17:33 +00:00
plagman 9642d027d3 Annnnnd revert something I didn't mean to commit.
git-svn-id: https://svn.eduke32.com/eduke32@1584 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-11 17:26:44 +00:00
plagman f0be341352 Fences access to common resources between the possible SDL_mixer effect thread and the rest of the audio code.
git-svn-id: https://svn.eduke32.com/eduke32@1583 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-11 17:25:47 +00:00
terminx 4917be2439 more semi-tested multiplayer changes and sound callback fix
git-svn-id: https://svn.eduke32.com/eduke32@1582 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-05 21:53:14 +00:00
plagman 3bc78ac5d4 Adds code to disable the Vista/7 DWM when setting OpenGL modes. This buys some OpenGL performance in windowed mode and works around an ATI OpenGL driver bug.
git-svn-id: https://svn.eduke32.com/eduke32@1578 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-04 06:01:34 +00:00
plagman 9b1d03d2cc Hook the polymer map selection code to a few more places in the editor code. This will fix the screen turning greenish when selecting a pal with Alt-P. I could just drop the selection from these cases since the cursor can't actually move, but then people would ask why the FPS gets higher in this occurrences.
git-svn-id: https://svn.eduke32.com/eduke32@1577 1a8010ca-5511-0410-912e-c29ae57300e0
2010-01-02 17:29:31 +00:00
plagman 5621ad5983 This fixes a small problem with the mapster32 polymer selection code.
git-svn-id: https://svn.eduke32.com/eduke32@1575 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-31 10:00:21 +00:00
terminx 8c015f48f3 Cleaning out tree in case I can't work on anything for a while... more multiplay fixes
git-svn-id: https://svn.eduke32.com/eduke32@1573 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-17 11:17:48 +00:00
terminx 2bb322377e more multiplayer crap
git-svn-id: https://svn.eduke32.com/eduke32@1572 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-15 05:53:15 +00:00
plagman e38f060ce8 This fixes a renderer crash with external view + lights.
git-svn-id: https://svn.eduke32.com/eduke32@1569 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-14 07:08:21 +00:00
terminx b46bd5fa19 A bunch of multiplayer improvements
git-svn-id: https://svn.eduke32.com/eduke32@1567 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-14 05:23:29 +00:00
plagman 3c018e64ce Fix the San Andreas texture fix in some cases.
git-svn-id: https://svn.eduke32.com/eduke32@1565 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-13 01:54:29 +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
plagman a5eb3903b2 Correct an error with rev 1556 that would cause drawing problems with parallaxed ceilings.
git-svn-id: https://svn.eduke32.com/eduke32@1563 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-12 22:06:41 +00:00
plagman 923eeb6f06 Change the BUILD Makefiles to properly link the tools against nedmalloc.
git-svn-id: https://svn.eduke32.com/eduke32@1562 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-12 20:14:13 +00:00
terminx 952fc43e3c multiplayer fixes
git-svn-id: https://svn.eduke32.com/eduke32@1560 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-12 11:07:59 +00:00
plagman 173edd4b3f Port of the San Andreas fault texture alignment fix from Hunter_rus to Polymer. I have no idea what it does, but it works and the last thing I want to do is to mess with build texture alignment ever again.
git-svn-id: https://svn.eduke32.com/eduke32@1559 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-09 07:03:25 +00:00
plagman 8733c63e5b Remove some dead code. Cstat 16384 was properly implemented at the top of polymer_drawsprite(), so no need for this hack anymore.
git-svn-id: https://svn.eduke32.com/eduke32@1558 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-08 06:02:58 +00:00
plagman 9f62cf5cb4 Don't cache sector parallaxing information in _prwalls. This fixes a bug where setting floor/ceiling parallaxing bits in the editor doesn't parallax the corresponding walls right away.
git-svn-id: https://svn.eduke32.com/eduke32@1556 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-07 07:17:33 +00:00
plagman 0888dbc38e Correct ceiling palette and shade validation in Polymer. That fix prevents changes to a ceiling palettes or shade from being ignored until the sector gets otherwise invalidated.
git-svn-id: https://svn.eduke32.com/eduke32@1555 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-07 07:04:57 +00:00
plagman 905abc3091 Proper editor picking code for Polymer. Also fixes a bunch of tabs that MSVC snuck in polymer.c.
git-svn-id: https://svn.eduke32.com/eduke32@1554 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-07 07:01:44 +00:00
terminx 44575d7e2c Ball-busting true client-server multiplayer prototype/alpha/whatever
git-svn-id: https://svn.eduke32.com/eduke32@1552 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-05 09:22:43 +00:00
plagman 0bd458fa42 Don't rely on repeating texture samplers to flip polymer sprites and request clamped textures for sprite textures. Fixes bug 2869362.
git-svn-id: https://svn.eduke32.com/eduke32@1551 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-03 07:37:34 +00:00
plagman 20cade406c Make polymer impervious to corrupt maps (for the tenth time..). Fixes bug 2869996.
git-svn-id: https://svn.eduke32.com/eduke32@1550 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-03 06:21:39 +00:00
plagman a8cbeaa0f7 Don't save the OpenGL driver max texture size to the config file and remove some remaining instrumentation from rev 1546.
git-svn-id: https://svn.eduke32.com/eduke32@1549 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-03 05:38:09 +00:00
plagman 179997f969 Don't overflow scantoasc[] with high scancodes. This makes the 'T' key work in the console on my laptop.
git-svn-id: https://svn.eduke32.com/eduke32@1548 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-03 04:41:09 +00:00
plagman 4d3b7501f0 Fixes a compressed texture cache bug where the background menu tile would sometime get replaced with another tile.
git-svn-id: https://svn.eduke32.com/eduke32@1546 1a8010ca-5511-0410-912e-c29ae57300e0
2009-12-03 03:07:04 +00:00
terminx 1770c60af6 Second gtk startup window patch from bioman, other random fixes I can't be bothered to remember
git-svn-id: https://svn.eduke32.com/eduke32@1544 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-18 01:17:56 +00:00
terminx 094079d8dd fix glaring oversight in new multiplayer random ID generation scheme
git-svn-id: https://svn.eduke32.com/eduke32@1543 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-16 03:57:31 +00:00
helixhorned b468afc867 fixes wall drawing (bug introduced in r1540)
git-svn-id: https://svn.eduke32.com/eduke32@1542 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-15 20:01:33 +00:00
terminx 7199818841 lower memory use for tilefromtexture by way of lzf compression, untested
git-svn-id: https://svn.eduke32.com/eduke32@1541 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-15 09:10:50 +00:00
terminx 2c9aeac2d5 A bunch of crap I meant to commit days ago... gtk startup window patch from bioman, nedmalloc REPLACE_SYSTEM_ALLOCATOR fix (related code uses #ifdef REPLACE_SYSTEM_ALLOCATOR so defining it to 0 was still satisfying the condition), slightly lower CPU usage in Mapster 2D mode, fix an ancient bug causing the player to not make vent footstep sounds on sprite based vents, fix map save state cvars, add "skill" cvar to console, fix saving the game while CON_SHOWVIEW is in use
git-svn-id: https://svn.eduke32.com/eduke32@1540 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-14 02:30:47 +00:00
qbix79 1573ee6e17 Fix 64 bit problems after viewing a security cam.
git-svn-id: https://svn.eduke32.com/eduke32@1539 1a8010ca-5511-0410-912e-c29ae57300e0
2009-11-04 08:11:21 +00:00
terminx 784e919941 Change multiplayer random ID generation scheme and remove some dead code
git-svn-id: https://svn.eduke32.com/eduke32@1537 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-29 22:22:44 +00:00
helixhorned d6f525b44b crude demo fast-forward/rewind; more m32script goodness
git-svn-id: https://svn.eduke32.com/eduke32@1536 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-25 23:25:38 +00:00
terminx 4e4ef98ae6 clean up "renderer setup" menu a bit so we can put polymer shit in it later
git-svn-id: https://svn.eduke32.com/eduke32@1534 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-17 09:33:32 +00:00
plagman cfc8b8d3da Don't override the system allocator with nedmalloc and remove the unused nedmalloc code from polymer.c. This should fix a few crashes caused by ALSA and Mesa picking up memory allocator symbols from eduke32.
git-svn-id: https://svn.eduke32.com/eduke32@1533 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-17 06:27:46 +00:00
terminx a6dec44579 Fixes mouse on win32 and some other relatively minor issues, drops win9x support, adds BUILD_NOLARGEPAGES and BUILD_WIN9X environment var support to disable large page support and force 9x to pass OS version check, fixes issue with crosshair turning white during the next run after starting the game with a new cfg but quitting at the menu instead of entering a level
git-svn-id: https://svn.eduke32.com/eduke32@1532 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-15 23:08:47 +00:00
helixhorned 256c729910 relocated some key events
git-svn-id: https://svn.eduke32.com/eduke32@1530 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-11 20:13:16 +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
plagman 58194cb281 Fix specpower and specfactor definitions for diffuse maps.
git-svn-id: https://svn.eduke32.com/eduke32@1526 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-04 15:41:40 +00:00
helixhorned 40d655100c m32script: stuff for fiddling with polymer lights
git-svn-id: https://svn.eduke32.com/eduke32@1521 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-03 13:20:31 +00:00
helixhorned 540962f35c another one...
git-svn-id: https://svn.eduke32.com/eduke32@1520 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-01 20:14:36 +00:00
helixhorned 8ac8615034 small m32 changes
git-svn-id: https://svn.eduke32.com/eduke32@1519 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-01 19:43:15 +00:00
terminx c030768d71 More corrupt map fixes
fuck ebase.map


git-svn-id: https://svn.eduke32.com/eduke32@1511 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-01 00:50:20 +00:00
terminx ecb3e90817 Corrupt map fixes
Specifically seems to fix ebase.map by msandt


git-svn-id: https://svn.eduke32.com/eduke32@1510 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-01 00:28:40 +00:00
terminx dcd7c3c9fe update nedmalloc to r1116
git-svn-id: https://svn.eduke32.com/eduke32@1509 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-30 22:19:57 +00:00
plagman dee579c030 Custom aspect ratio support for Polymer: r_pr_customaspect. Implements bug 2799107.
git-svn-id: https://svn.eduke32.com/eduke32@1507 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-30 14:32:11 +00:00
plagman 13873b985c Checks for required GPU/OpenGL functionality when initializing Polymer and fallbacks to Polymost if appropriate. This should prevent crashes when trying to run Polymer on older GPUs/drivers.
git-svn-id: https://svn.eduke32.com/eduke32@1506 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-30 01:26:13 +00:00
plagman 10913b51f2 Fix mirrors with screen resizing.
git-svn-id: https://svn.eduke32.com/eduke32@1505 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-30 01:00:49 +00:00
plagman d1e22bae52 Polymer screen resizing support. Fixes misaligned crosshair with full HUD.
git-svn-id: https://svn.eduke32.com/eduke32@1504 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-30 00:51:45 +00:00
terminx 577e3bd124 Misc
git-svn-id: https://svn.eduke32.com/eduke32@1502 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-28 00:01:06 +00:00
helixhorned 1d6058ecef small additions and fixes
git-svn-id: https://svn.eduke32.com/eduke32@1501 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-20 15:43:09 +00:00
helixhorned 293367e844 mapster-script stuff
git-svn-id: https://svn.eduke32.com/eduke32@1500 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-18 21:44:46 +00:00
helixhorned e7acafc9e7 some more functions for m32-script
git-svn-id: https://svn.eduke32.com/eduke32@1499 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-17 22:08:37 +00:00
helixhorned 198ac24152 drawing functions and key access for m32-script; misc. fixes
git-svn-id: https://svn.eduke32.com/eduke32@1497 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-16 22:24:24 +00:00
helixhorned 3be58d63d0 indirect constants for m32-script alongside with other changes
git-svn-id: https://svn.eduke32.com/eduke32@1496 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-14 22:11:37 +00:00
helixhorned ea0e088da5 Initial checkin of m32-script.
git-svn-id: https://svn.eduke32.com/eduke32@1493 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-12 23:03:15 +00:00
terminx fe6e27e819 Use C versions of divscale##() instead of asm to work around an overflow with drawmapview(), get rid of leftover custom 'int64' type in favor of int64_t, other minor fixes
git-svn-id: https://svn.eduke32.com/eduke32@1492 1a8010ca-5511-0410-912e-c29ae57300e0
2009-09-09 07:19:14 +00:00
helixhorned 4e4e2f16d8 4x bigger max. zoom in 2d mode at Gambini's request
git-svn-id: https://svn.eduke32.com/eduke32@1491 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-31 13:43:13 +00:00
terminx a9c8d071a6 Couple weeks worth of random bs changes
git-svn-id: https://svn.eduke32.com/eduke32@1490 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-28 23:08:00 +00:00
plagman fe7f09105c Don't request alpha bits for the first FBO. It'll prevent the FBO from getting complete when running 16-bits.
git-svn-id: https://svn.eduke32.com/eduke32@1489 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-12 17:43:17 +00:00
terminx dbd9e63d00 Fix a couple of minor issues
git-svn-id: https://svn.eduke32.com/eduke32@1488 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-09 05:32:17 +00:00
terminx 0358aee38e git-svn-id: https://svn.eduke32.com/eduke32@1487 1a8010ca-5511-0410-912e-c29ae57300e0 2009-08-06 10:12:13 +00:00
helixhorned b2e2ba8868 make mapster slightly less cpu-hungry under linux. Also a (temporary?) fix for a crash
git-svn-id: https://svn.eduke32.com/eduke32@1486 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-05 22:37:48 +00:00
helixhorned 53418727e9 little debugging helper for linux
git-svn-id: https://svn.eduke32.com/eduke32@1485 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-03 22:15:53 +00:00
helixhorned a43f31e46c m32: "ported" searchwall determination when aiming at floor or ceiling to polymost
git-svn-id: https://svn.eduke32.com/eduke32@1484 1a8010ca-5511-0410-912e-c29ae57300e0
2009-08-02 20:20:26 +00:00
helixhorned 03d92eb1d1 m32 aim: fixes a bug with polymer overwalls
git-svn-id: https://svn.eduke32.com/eduke32@1483 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-31 20:44:28 +00:00
helixhorned 0da3edba58 model handling for new m32 aim; adapted gradients in astub.c
git-svn-id: https://svn.eduke32.com/eduke32@1482 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-31 14:00:52 +00:00
terminx 3964ca6766 fixes... mostly sound fuckery
git-svn-id: https://svn.eduke32.com/eduke32@1481 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-31 11:45:29 +00:00
terminx e5d6d9694f git-svn-id: https://svn.eduke32.com/eduke32@1479 1a8010ca-5511-0410-912e-c29ae57300e0 2009-07-29 21:56:56 +00:00
terminx 2ffda08128 fixes
git-svn-id: https://svn.eduke32.com/eduke32@1477 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-29 10:33:56 +00:00
helixhorned da8e401298 mapster32: more logical "bottom walls swapped"-bit handling; misc. cleanups
git-svn-id: https://svn.eduke32.com/eduke32@1466 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-25 20:16:22 +00:00
terminx 98a359f3e1 Clean out tree... misc changes
git-svn-id: https://svn.eduke32.com/eduke32@1465 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-24 02:31:34 +00:00
helixhorned ce3d64d971 new m32 aiming: changed the way distance is determined, so it also handles parallaxed sectors.
git-svn-id: https://svn.eduke32.com/eduke32@1464 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-20 22:01:44 +00:00
helixhorned 8f0da12b76 new mapster aiming now handles planar sprites
git-svn-id: https://svn.eduke32.com/eduke32@1463 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-18 20:37:20 +00:00
helixhorned c25ee18b98 new mapster mouse aiming: now handles masked walls, fixed searchwall determination when aiming at ceiling/floor
git-svn-id: https://svn.eduke32.com/eduke32@1462 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-17 21:47:04 +00:00
terminx 3504c0bf97 Misc minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1458 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-12 23:41:16 +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
helixhorned a3c0bee4a3 Improved mouse aiming for Mapster32 (not yet in action)
git-svn-id: https://svn.eduke32.com/eduke32@1456 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-11 22:20:15 +00:00
terminx 402221cad3 Replace LibLZF with FastLZ (http://www.fastlz.org/lzf.htm)
git-svn-id: https://svn.eduke32.com/eduke32@1455 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-09 03:54:18 +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 ad0179da42 Fixes a couple of gameplay bugs introduced with ROR, fixes a MSVC compile issue with the newer version of kplib.c and updates nedmalloc with changes from the latest version in their svn
git-svn-id: https://svn.eduke32.com/eduke32@1452 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-07 00:42:06 +00:00
helixhorned 28e5528417 safety check when copying sectors; a suggestion to bypass a strange bug
git-svn-id: https://svn.eduke32.com/eduke32@1449 1a8010ca-5511-0410-912e-c29ae57300e0
2009-07-03 13:01:52 +00:00
plagman 5cdc55591b Adds r_pr_ati_nodepthoffset and the proper detection code to winlayer and sdlayer to make polymer run properly on R520-class Radeon chips. A bug needs to be filed to AMD.
git-svn-id: https://svn.eduke32.com/eduke32@1446 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-28 21:16:11 +00:00
plagman 9556762493 Changes r_pr_atiworkaround to r_pr_ati_fboworkaround and ports the detection code to SDLayer.
git-svn-id: https://svn.eduke32.com/eduke32@1445 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-28 21:03:50 +00:00
terminx 6f6f0900c8 Fix multiplayer switches casting light in single player
git-svn-id: https://svn.eduke32.com/eduke32@1443 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-27 08:20:09 +00:00
qbix79 234e54d5b1 Restore old __int64 typedef. Restore former 64 bit fixes. Add a new one.
git-svn-id: https://svn.eduke32.com/eduke32@1442 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-26 17:06:09 +00:00
qbix79 f38c6ceea7 Keep maxbins in sync with max threaded cache. Fixes memory corruption and out of bounds access
git-svn-id: https://svn.eduke32.com/eduke32@1441 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-26 17:04:46 +00:00
terminx 3d0c34863d Generic non-descript commit message
git-svn-id: https://svn.eduke32.com/eduke32@1440 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-24 08:20:10 +00:00
terminx 5fcbdf3dd1 Fix r1438 crash on win32
git-svn-id: https://svn.eduke32.com/eduke32@1439 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-22 20:48:56 +00:00
qbix79 072527fff5 Fix building on my pc
git-svn-id: https://svn.eduke32.com/eduke32@1438 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-22 09:52:30 +00:00
terminx 64f4c975c2 CON stuff
git-svn-id: https://svn.eduke32.com/eduke32@1436 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-19 01:10:10 +00:00
terminx cc58eafd29 Fix for stupid con programmers making stupid con errors and a couple of other extremely minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1435 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-18 05:57:10 +00:00
terminx dea9f18232 Mostly just Mapster fixes
git-svn-id: https://svn.eduke32.com/eduke32@1434 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-16 22:11:13 +00:00
plagman fb5811855d Adds cstat 8192 for sprites that do not cast shadows and documents it in build.h.
git-svn-id: https://svn.eduke32.com/eduke32@1433 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-14 13:35:19 +00:00
plagman 0f01a72fae Sanitizes cstat 16384 and documents it in build.h.
git-svn-id: https://svn.eduke32.com/eduke32@1432 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-14 13:02:10 +00:00
terminx 47a9332a16 More memory pool crap, startup window log update fixes, gameland light changes and minor polymer fixes
git-svn-id: https://svn.eduke32.com/eduke32@1430 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-13 21:06:45 +00:00
plagman 980534075a Use polymer_invalidatelights().
git-svn-id: https://svn.eduke32.com/eduke32@1429 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-10 11:12:56 +00:00
plagman 8982670fbc Sanitizes prsector and prwall flags, fixes a mempool crash when exiting the game before the engine gets initialized, and adds polymer_texinvalidate() to fix water/nightvision global palette change. SwissCM is still an asshole.
git-svn-id: https://svn.eduke32.com/eduke32@1428 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-09 09:32:23 +00:00
terminx 9cf34f9d4f Damn cat
git-svn-id: https://svn.eduke32.com/eduke32@1427 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-09 08:31:38 +00:00
terminx 7c1950f9d2 Fix building on linux
git-svn-id: https://svn.eduke32.com/eduke32@1426 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-09 06:43:10 +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 fab4638ca8 nedmalloc, from http://www.nedprod.com/programs/portable/nedmalloc/
greatly speeds up memory allocations


git-svn-id: https://svn.eduke32.com/eduke32@1424 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-09 02:12:35 +00:00
terminx 9973478a9d Fix rendmode != 4 SE light crashes
git-svn-id: https://svn.eduke32.com/eduke32@1423 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-08 00:31:53 +00:00
plagman 4e635849e1 Fixes y-flipping on the bottom side of some doors (see E1L3 security doors). Also, fuck you SwissCM.
git-svn-id: https://svn.eduke32.com/eduke32@1422 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-08 00:29:29 +00:00
plagman 4a6bc850c0 Fixes full-screen tinting effects to bypass the material cache and apply instantly.
git-svn-id: https://svn.eduke32.com/eduke32@1421 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 23:35:11 +00:00
plagman 4f18c11c27 Don't loop against MAXLIGHTS when invalidating or removing a light from a plane.
git-svn-id: https://svn.eduke32.com/eduke32@1420 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 21:23:26 +00:00
plagman 6a7fe88d68 This adds a fast light culling test for non-sloped floors and ceilings (TerminX suggested that change).
git-svn-id: https://svn.eduke32.com/eduke32@1419 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 20:27:45 +00:00
plagman e8cbecf935 This adds support for animated, palettized and shaded skies.
git-svn-id: https://svn.eduke32.com/eduke32@1418 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 18:38:13 +00:00
plagman 9cd0c6e6a0 Re-hooks pr_lighting.
git-svn-id: https://svn.eduke32.com/eduke32@1417 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 13:17:55 +00:00
plagman f30fdef695 Don't go through multiple lighting passes when rendering the shadow maps.
git-svn-id: https://svn.eduke32.com/eduke32@1416 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 13:07:04 +00:00
plagman 2482b74012 Formatting fix.
git-svn-id: https://svn.eduke32.com/eduke32@1415 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 12:58:40 +00:00
plagman a8cd07d692 Fixes light culling.
git-svn-id: https://svn.eduke32.com/eduke32@1413 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 12:51:00 +00:00
terminx aca5dc80e3 git-svn-id: https://svn.eduke32.com/eduke32@1412 1a8010ca-5511-0410-912e-c29ae57300e0 2009-06-07 07:36:15 +00:00
terminx 92372d50d6 Misc minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1411 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 06:23:33 +00:00
terminx 6c3ed1ec9c More light crap
git-svn-id: https://svn.eduke32.com/eduke32@1410 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-07 03:13:55 +00:00
terminx 0744452216 More light stuff... most gameland lights should be working again now
git-svn-id: https://svn.eduke32.com/eduke32@1409 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 22:30:53 +00:00
plagman 0688522507 Adds r_pr_shadowfiltering and r_pr_atiworkaround cvars.
git-svn-id: https://svn.eduke32.com/eduke32@1408 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 16:00:48 +00:00
plagman f46e3b44f4 Using memcpy with clearly overlapping blocks is sad.
git-svn-id: https://svn.eduke32.com/eduke32@1407 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 14:22:17 +00:00
plagman 2186154dac Avoid a square root in the point light GPU program by comparing squared lengths. This changes the lighting model a bit since the attenuation calculation is based against these lengths.
git-svn-id: https://svn.eduke32.com/eduke32@1406 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 13:48:52 +00:00
plagman b112e1d3c3 Re-implements the old light priority system, removes applylights() and optimizes the light invalidation code.
git-svn-id: https://svn.eduke32.com/eduke32@1405 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 13:40:15 +00:00
plagman dbb84c7ee8 Reverts the priority change and removes applylights.
git-svn-id: https://svn.eduke32.com/eduke32@1404 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 13:12:29 +00:00
terminx d4bca26bd9 Light stuff
git-svn-id: https://svn.eduke32.com/eduke32@1402 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-06 10:20:00 +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
plagman 2547739ff4 This prevents shadows from flooding the OSD and killing performance.
git-svn-id: https://svn.eduke32.com/eduke32@1398 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-01 21:11:26 +00:00
plagman a23c9c23ba This overhauls the light culling/management code. Note: this renders the current gameland dynamic light code useless, to it'll have to be ported before they're back. Please don't complain on the forums.
git-svn-id: https://svn.eduke32.com/eduke32@1397 1a8010ca-5511-0410-912e-c29ae57300e0
2009-06-01 20:55:36 +00:00
plagman 930689d468 More corrupt map checks.
git-svn-id: https://svn.eduke32.com/eduke32@1395 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-31 18:16:14 +00:00
plagman 2997d1e0f5 Light pathing tweak.
git-svn-id: https://svn.eduke32.com/eduke32@1394 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-31 18:10:09 +00:00
terminx 4e5bde3a79 git-svn-id: https://svn.eduke32.com/eduke32@1393 1a8010ca-5511-0410-912e-c29ae57300e0 2009-05-28 02:55:46 +00:00
helixhorned d897eca725 fancy gradient at a few more places; minor corrections
git-svn-id: https://svn.eduke32.com/eduke32@1392 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-25 21:47:08 +00:00
helixhorned d4641adc03 mapster32: fix when rotating sprite; fancy gradient in sprite search
git-svn-id: https://svn.eduke32.com/eduke32@1391 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-24 22:18:40 +00:00
terminx 8474211c95 Misc small fixes
git-svn-id: https://svn.eduke32.com/eduke32@1390 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-22 23:49:25 +00:00
plagman 82211327e8 Work around ATI driver bug (that's there since Cat 8.10 according to the intertubes).
git-svn-id: https://svn.eduke32.com/eduke32@1389 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-20 22:30:18 +00:00
plagman 515451e45f Speed up polymer_init a little.
git-svn-id: https://svn.eduke32.com/eduke32@1388 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-17 21:55:50 +00:00
plagman 5eae5cdc50 Moves editorselect and clearmapdata to non-external function categories, makes them static and prototypes them in the header.
git-svn-id: https://svn.eduke32.com/eduke32@1387 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-17 16:12:53 +00:00
terminx 5209d30f13 Missed one
git-svn-id: https://svn.eduke32.com/eduke32@1386 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-16 22:32:23 +00:00
terminx bc4d262216 Fixes most polymer memory leaks
git-svn-id: https://svn.eduke32.com/eduke32@1385 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-16 22:26:40 +00:00
terminx 6285f8b2e2 Misc crap
git-svn-id: https://svn.eduke32.com/eduke32@1384 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-16 04:07:09 +00:00
plagman 747a242b80 Unbreak specular maps (were broken because of mirror unbreaking).
git-svn-id: https://svn.eduke32.com/eduke32@1383 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-16 01:33:04 +00:00
plagman b1f358de6f Unbreak mirrors.
git-svn-id: https://svn.eduke32.com/eduke32@1382 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-16 01:28:42 +00:00
plagman 854c72263c More tweaks to the specular lighting model.
git-svn-id: https://svn.eduke32.com/eduke32@1381 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-16 00:50:30 +00:00
plagman 396256b6e0 Tweak the lighting model so that specular highlights ignore the diffuse map value when a specular map is defined.
git-svn-id: https://svn.eduke32.com/eduke32@1380 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-15 14:23:08 +00:00
qbix79 77703ce68a Fix a warning. Nobody seems to use this field though?
git-svn-id: https://svn.eduke32.com/eduke32@1379 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-14 12:35:13 +00:00
plagman a5f8978a9f Spotlightmaps.
git-svn-id: https://svn.eduke32.com/eduke32@1377 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-12 20:08:38 +00:00
plagman 1b948be858 Corrects polymost rotation offset scale (didn't match build units before) and a bug in the polymer offset code (bug 2783065).
git-svn-id: https://svn.eduke32.com/eduke32@1376 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-10 19:19:25 +00:00
plagman 77e873b476 Adds pitch/roll script rotation for mdsprites (bug 2783065).
git-svn-id: https://svn.eduke32.com/eduke32@1375 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-10 17:51:00 +00:00
plagman 3cd91a1832 Parallax the parallax skies (bug 2783074).
git-svn-id: https://svn.eduke32.com/eduke32@1374 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-09 11:04:10 +00:00
plagman 72721c1663 Mirror skies (bug 2783066).
git-svn-id: https://svn.eduke32.com/eduke32@1373 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-09 10:42:57 +00:00
helixhorned ca81a4e40b mapster32: fixes crash in linux
git-svn-id: https://svn.eduke32.com/eduke32@1372 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-08 23:13:12 +00:00
plagman 0f95655e27 Fixes floor-aligned sprite and flipping/1-way interaction (bug 2783071).
git-svn-id: https://svn.eduke32.com/eduke32@1371 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-08 19:15:14 +00:00
terminx 87c2ab5cc6 bleh
git-svn-id: https://svn.eduke32.com/eduke32@1370 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-08 18:26:10 +00:00
plagman 3b5cf1310a Fixes floor-aligned sprites being affected by the real center cstat bit (bug #2783389).
git-svn-id: https://svn.eduke32.com/eduke32@1369 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-08 18:04:02 +00:00
qbix79 5aeddd2aa1 Fastcall is not 64 bit.
git-svn-id: https://svn.eduke32.com/eduke32@1368 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-07 18:55:33 +00:00
plagman d097ebc8e3 Fix the build with USE_OPENGL=0 and/or POLYMER=0.
git-svn-id: https://svn.eduke32.com/eduke32@1365 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-07 16:00:49 +00:00
terminx ec159726a0 Mapster fixes and a new 8x8 pixel font I've been playing around with
git-svn-id: https://svn.eduke32.com/eduke32@1364 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-06 23:58:53 +00:00
terminx e47b890189 undo improvements
git-svn-id: https://svn.eduke32.com/eduke32@1363 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-05 21:25:06 +00:00
terminx 024edae792 Use LZF for undo/redo snapshots
git-svn-id: https://svn.eduke32.com/eduke32@1362 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-05 20:01:23 +00:00
terminx f3d93e8406 Undo/redo support for Mapster32 and some other minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1361 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-05 16:21:33 +00:00
terminx c585380de6 Mapster fixes
git-svn-id: https://svn.eduke32.com/eduke32@1360 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-01 19:28:57 +00:00
terminx 0ee75ced2a Widescreen-friendly Mapster32 2D mode
git-svn-id: https://svn.eduke32.com/eduke32@1359 1a8010ca-5511-0410-912e-c29ae57300e0
2009-05-01 06:35:27 +00:00
terminx f3fbf8d9a3 Add support for cvars of type 'double', fix vid_gamma/brightness/contrast cvars, save cvars to eduke32_binds.cfg at shutdown, better method for drawing the floor textures in Mapster32 2D mode, slightly more yellow/orange lights on fire/rockets/lasers/etc
git-svn-id: https://svn.eduke32.com/eduke32@1358 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-30 21:09:44 +00:00
terminx 493d621eb0 More cvar shit
git-svn-id: https://svn.eduke32.com/eduke32@1357 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-30 01:07:08 +00:00
terminx d11e8789e3 git-svn-id: https://svn.eduke32.com/eduke32@1356 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-29 20:20:57 +00:00
terminx 30a649c86f Some more cvar stuff
git-svn-id: https://svn.eduke32.com/eduke32@1355 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-29 19:43:51 +00:00
terminx c222341417 Clean up polymost vars
git-svn-id: https://svn.eduke32.com/eduke32@1354 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-29 07:47:10 +00:00
terminx e11dbd7428 Unify cvar handling between the engine and game sides of things
git-svn-id: https://svn.eduke32.com/eduke32@1352 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-29 06:20:07 +00:00
terminx 3938de1f22 test versions of new startup dialog images
git-svn-id: https://svn.eduke32.com/eduke32@1351 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-29 00:51:03 +00:00
terminx ec0a8f2033 Modified priority system to use 6 priority levels instead of 3, added proper def syntax "specular" and "normal" which work identically to "detail" and "glow" for defining normals and specular maps (defining these with pals 100 and 101 will no longer work)
git-svn-id: https://svn.eduke32.com/eduke32@1350 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-28 22:56:43 +00:00
helixhorned c6ed542a98 various input enhancements for mapster32
git-svn-id: https://svn.eduke32.com/eduke32@1348 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-26 20:51:00 +00:00
plagman 5a090e84bc Couple of fixes for corrupt maps.
git-svn-id: https://svn.eduke32.com/eduke32@1347 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-26 17:47:08 +00:00
terminx 7c036eb073 Remove jmact/types.h in favor of standardized inttypes.h stuff
git-svn-id: https://svn.eduke32.com/eduke32@1346 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-26 05:57:42 +00:00
terminx 26ca7e7fc0 Sprite cstat 16384: invisible w/ shadows
this also adds shadows for the player when in first person


git-svn-id: https://svn.eduke32.com/eduke32@1343 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-24 04:02:39 +00:00
terminx b7b016383f Sector effector based light sources, basic Mapster32 light support, additional sprite/model alpha control, sprite selection in Mapster32 3D mode with Polymer
git-svn-id: https://svn.eduke32.com/eduke32@1341 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-24 02:53:50 +00:00
terminx 9462a17ae7 git-svn-id: https://svn.eduke32.com/eduke32@1340 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-23 21:08:48 +00:00
terminx 4d240d1bea git-svn-id: https://svn.eduke32.com/eduke32@1339 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-23 17:44:55 +00:00
terminx dbb24affe9 git-svn-id: https://svn.eduke32.com/eduke32@1338 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-23 09:30:10 +00:00
terminx 3449ba8bef Revision 1337: fixes the crash on exit with polymer on win32
that's pretty l33t, right?


git-svn-id: https://svn.eduke32.com/eduke32@1337 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-23 09:09:41 +00:00
terminx dba312e61b git-svn-id: https://svn.eduke32.com/eduke32@1336 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-23 07:09:24 +00:00
plagman e48c4c2c87 Really fix concave relative slopes.
git-svn-id: https://svn.eduke32.com/eduke32@1335 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-19 18:00:51 +00:00
plagman 9241ab974a Don't step over the bounds of the plane buffer in buffertoplane (now computeplane).
git-svn-id: https://svn.eduke32.com/eduke32@1334 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-19 17:23:07 +00:00
plagman 711db577ab Fixes a texturing bug with a combination of relative texturing and concave sectors.
git-svn-id: https://svn.eduke32.com/eduke32@1333 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-19 17:03:18 +00:00
plagman ed7157f1e5 Reverts part of 1331 and misc. fixes.
git-svn-id: https://svn.eduke32.com/eduke32@1332 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-19 09:49:27 +00:00
terminx 779eda41da git-svn-id: https://svn.eduke32.com/eduke32@1331 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-17 18:34:55 +00:00
terminx 45897cf581 Fixes a stupid mistake I made and changes mem* calls to Bmem* for consistency with the rest of the codebase
git-svn-id: https://svn.eduke32.com/eduke32@1330 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-16 06:49:29 +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
plagman 6dba1ba1ed Few fixes for the visibility checks.
git-svn-id: https://svn.eduke32.com/eduke32@1328 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-16 06:31:19 +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
plagman 5b3524d621 Message log cleanup for GPU program compilation and removed a GL error.
git-svn-id: https://svn.eduke32.com/eduke32@1324 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-14 13:58:38 +00:00
plagman 2ac7c2dc1e ATI fixes. (sigh)
git-svn-id: https://svn.eduke32.com/eduke32@1323 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-14 12:37:44 +00:00
plagman b006c85790 Update the TODO list and fix the light leaking fix.
git-svn-id: https://svn.eduke32.com/eduke32@1322 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-14 08:39:13 +00:00
plagman 14108f3be9 Don't parse closed sectors.
git-svn-id: https://svn.eduke32.com/eduke32@1320 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-14 07:38:45 +00:00
plagman dfd2a379b1 Don't propagate light through sealed portals.
git-svn-id: https://svn.eduke32.com/eduke32@1318 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-14 07:01:55 +00:00
terminx 8cd5bb68d0 git-svn-id: https://svn.eduke32.com/eduke32@1317 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-14 04:20:37 +00:00
terminx 3d7a6a3572 git-svn-id: https://svn.eduke32.com/eduke32@1316 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-13 06:53:03 +00:00
terminx 22a7ec1b3b git-svn-id: https://svn.eduke32.com/eduke32@1315 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-13 06:01:50 +00:00
plagman f1f13f5eb6 Fix for E3L4 (and possible others) corrupt sectors.
git-svn-id: https://svn.eduke32.com/eduke32@1314 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 22:27:49 +00:00
plagman 6d5571f320 Couple of cleanups.
git-svn-id: https://svn.eduke32.com/eduke32@1313 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 22:23:47 +00:00
terminx ec71eebecb git-svn-id: https://svn.eduke32.com/eduke32@1312 1a8010ca-5511-0410-912e-c29ae57300e0 2009-04-12 21:52:49 +00:00
plagman 39b1908be8 Sanitize wall computation code a bit and fixes a problem with crossing slopes (E1L3 vertical security doors and E2L4 starting door).
git-svn-id: https://svn.eduke32.com/eduke32@1311 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 19:26:02 +00:00
plagman b47ad2bde2 Works around a precision bug that would cause the sloped floor in the E1L1 bathroom vent to have a wrong normal matrix.
git-svn-id: https://svn.eduke32.com/eduke32@1310 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 17:37:35 +00:00
plagman 9152cf3b40 Fix detail mapping on ATI cards.
git-svn-id: https://svn.eduke32.com/eduke32@1309 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 17:29:50 +00:00
plagman 26a9a58af3 Adds a bunch of cvars to tweak polymer.
git-svn-id: https://svn.eduke32.com/eduke32@1307 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 17:14:18 +00:00
plagman 82153bd763 Clean up a bit of dead code.
git-svn-id: https://svn.eduke32.com/eduke32@1306 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 16:39:54 +00:00
plagman b7449a87b9 Light priority system.
git-svn-id: https://svn.eduke32.com/eduke32@1305 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 16:28:20 +00:00
plagman 567c0bdd86 Per-frame lights cleanup.
git-svn-id: https://svn.eduke32.com/eduke32@1304 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 13:51:43 +00:00
plagman 80670cac29 Game-tic lights and recon car headlights.
git-svn-id: https://svn.eduke32.com/eduke32@1303 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 13:02:36 +00:00
plagman 6477b236b2 Minshade and maxshade parameters for dynamic lighthacks.
git-svn-id: https://svn.eduke32.com/eduke32@1302 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 12:32:50 +00:00
plagman 35691be969 Fixes models after modeswitches on Windows and removes warnings.
git-svn-id: https://svn.eduke32.com/eduke32@1301 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 10:46:31 +00:00
plagman b73cc663eb Correctly invalidate the GPU programs and skybox VBO on modeswitches.
git-svn-id: https://svn.eduke32.com/eduke32@1300 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-12 09:57:25 +00:00
plagman 652262626a Polymost-like shading.
git-svn-id: https://svn.eduke32.com/eduke32@1298 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-11 18:01:39 +00:00
helixhorned ba394b0bcf added some mapster32 config vars; fixed mapster32 crash in linux; DEBUGANYWAY for Makefiles
git-svn-id: https://svn.eduke32.com/eduke32@1296 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-07 18:56:22 +00:00
plagman e9821ccb35 That looks more correct.
git-svn-id: https://svn.eduke32.com/eduke32@1295 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-02 17:49:10 +00:00
plagman 2994614501 Reduce near-clipping range and fixes a bug with one-way walls that are also map limits.
git-svn-id: https://svn.eduke32.com/eduke32@1294 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-02 17:17:24 +00:00
plagman 68cad843f6 Adds pr_maxlightpasses cvar.
git-svn-id: https://svn.eduke32.com/eduke32@1293 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-01 18:52:15 +00:00
plagman 82605aa44c Don't prepare shadows of lights that aren't in view.
git-svn-id: https://svn.eduke32.com/eduke32@1292 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-01 18:34:11 +00:00
plagman 8181b1141d Fixes the bug where the renderer would get in "external view" mode on slopes.
git-svn-id: https://svn.eduke32.com/eduke32@1291 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-01 18:11:01 +00:00
plagman a4c5af4d37 Fixes shadow bug.
git-svn-id: https://svn.eduke32.com/eduke32@1290 1a8010ca-5511-0410-912e-c29ae57300e0
2009-04-01 17:58:22 +00:00
plagman 6209446b1f Lighthacks.
git-svn-id: https://svn.eduke32.com/eduke32@1288 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-31 23:23:06 +00:00
plagman 13033e9c29 Fix mirrors and model animation.
git-svn-id: https://svn.eduke32.com/eduke32@1287 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-29 21:08:52 +00:00
plagman 74a9338243 E1L2 door fix.
git-svn-id: https://svn.eduke32.com/eduke32@1286 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-29 19:31:24 +00:00
plagman 3d6b06e958 pr_specularoverride and less retarded default values for the parallax overrides.
git-svn-id: https://svn.eduke32.com/eduke32@1285 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-29 17:14:41 +00:00
plagman 9b4dae022d 4-step Iterative parallax mapping, parallaxscale and parallaxbias DEF tokens for normal maps, support for floating-point cvars, pr_overrideparallax cvar to fine-tune the scale and bias settings.
git-svn-id: https://svn.eduke32.com/eduke32@1284 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-29 15:16:33 +00:00
plagman 73149ef78b Faster normal mapping.
git-svn-id: https://svn.eduke32.com/eduke32@1283 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 18:25:30 +00:00
plagman 13243ffeae Tie mirror map reflections to specular map texels.
git-svn-id: https://svn.eduke32.com/eduke32@1282 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 16:50:46 +00:00
plagman 33d75c0cc7 Specular maps (pal 101).
git-svn-id: https://svn.eduke32.com/eduke32@1281 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 16:14:10 +00:00
plagman fe8775cb21 Sanitize texture coordinate usage in the GPU program. That allows normal and glow maps to benefit from the diffuse map scale.
git-svn-id: https://svn.eduke32.com/eduke32@1280 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 15:54:25 +00:00
plagman 83fc79300e Adds specpower and specfactor tokens for model skins.
git-svn-id: https://svn.eduke32.com/eduke32@1279 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 15:19:44 +00:00
plagman 50af4984ad Adds specpower and specfactor definition tokens for textures.
git-svn-id: https://svn.eduke32.com/eduke32@1278 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 12:14:37 +00:00
plagman df26ab3c7d Sanitize terminology a bit.
git-svn-id: https://svn.eduke32.com/eduke32@1277 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-28 11:43:16 +00:00
terminx 8f1ae6bacc git-svn-id: https://svn.eduke32.com/eduke32@1275 1a8010ca-5511-0410-912e-c29ae57300e0 2009-03-27 21:54:55 +00:00
plagman 6e13967287 Hack to avoid horizontal shadow maps.
git-svn-id: https://svn.eduke32.com/eduke32@1274 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-27 13:46:40 +00:00
plagman 0cd0afa945 Cast light on models and self-shadowing.
git-svn-id: https://svn.eduke32.com/eduke32@1273 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-27 12:56:42 +00:00
plagman 1d2a7c2982 Don't mirror stuff when drawing the shadow maps and don't cast shadows on models for now.
git-svn-id: https://svn.eduke32.com/eduke32@1272 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-27 11:39:10 +00:00
plagman 5a843f0fd1 Sprite and model shadows.
Also fixes a bug with shadows and mirrors.

git-svn-id: https://svn.eduke32.com/eduke32@1271 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-27 10:39:18 +00:00
plagman f285ad903c Fix blinkiness.
git-svn-id: https://svn.eduke32.com/eduke32@1270 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-26 17:45:12 +00:00
plagman 88c7967d02 Shadow fix.
git-svn-id: https://svn.eduke32.com/eduke32@1269 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-26 16:41:06 +00:00
plagman ed3198b65f Shadows.
git-svn-id: https://svn.eduke32.com/eduke32@1268 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-26 16:32:00 +00:00
plagman b2e3b85e6d Spotlight frustum caculation and culling.
git-svn-id: https://svn.eduke32.com/eduke32@1267 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-25 21:14:51 +00:00
plagman bd69a9a286 Spotlights.
git-svn-id: https://svn.eduke32.com/eduke32@1266 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-25 19:48:27 +00:00
plagman 53bbdc9cd7 Optimize lighting model a bit.
git-svn-id: https://svn.eduke32.com/eduke32@1265 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-25 13:23:35 +00:00
plagman a4070de923 Corrects E1L7 rotating lava bug and minor indentation quirk.
git-svn-id: https://svn.eduke32.com/eduke32@1264 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-24 16:25:20 +00:00
plagman 6e2bac1c92 Little multi-light optimization.
git-svn-id: https://svn.eduke32.com/eduke32@1263 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-24 10:24:33 +00:00
plagman a11513c907 Fixes a problem where mirrors and masked walls wouldn't display under certain circumstances.
git-svn-id: https://svn.eduke32.com/eduke32@1262 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-24 10:09:53 +00:00
plagman 8a2916c2cc Fixes a texture bug.
git-svn-id: https://svn.eduke32.com/eduke32@1261 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-24 09:37:30 +00:00
plagman b5c4b521f7 Render targets, FBO mirrors with normal displacement, fix for masked walls with animated walls, various cleanups.
git-svn-id: https://svn.eduke32.com/eduke32@1255 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-23 14:18:20 +00:00
plagman 68866d606e Do a depth only pass before actual rendering and only occlusion check for map boundary sectors.
git-svn-id: https://svn.eduke32.com/eduke32@1252 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-18 15:05:58 +00:00
terminx fb8ccf22af git-svn-id: https://svn.eduke32.com/eduke32@1245 1a8010ca-5511-0410-912e-c29ae57300e0 2009-03-14 02:55:39 +00:00
plagman f982323443 Bump mapping (hardcoded to palette 100 for now, will do the defs glue later to make it more convenient to package the source for public releases).
TODO: use the inverse TBN on a world-space light vector instead of transforming every fragment interpolated normal into eye-space with the TBN * the view matrix.

git-svn-id: https://svn.eduke32.com/eduke32@1244 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-13 15:18:46 +00:00
plagman 62d3116325 Reorganize point light GPU program a bit.
git-svn-id: https://svn.eduke32.com/eduke32@1243 1a8010ca-5511-0410-912e-c29ae57300e0
2009-03-12 21:20:01 +00:00