Commit graph

303 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
ac7767986a Updated synthesis script, moved some non-essential files around, updated license headers on all non-BUILDLIC files, added memory cache on top of texcache to improve load times, moved some duplicated keyboard handling stuff from winlayer/sdlayer to baselayer, fixed keypad / in Mapster32 tile selector, fixed bug where p->rotscrnang and p->look_ang never reset to 0, added support for reloading maphack based polymer lights after mode changes/savegame loads, other minor changes
git-svn-id: https://svn.eduke32.com/eduke32@1652 1a8010ca-5511-0410-912e-c29ae57300e0
2010-05-25 10:56:00 +00:00
terminx
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
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
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
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
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
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
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
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
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
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
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
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
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
20c028b2e9 Memory cleanups, use Bm/c/realloc/free everywhere (configured as nedmalloc version in compat.h), add large page support for Vista/7, tweak nedmalloc settings, add support for projecting textures from SE50 spotlights placed in maps via sprite owner member (manipulated through CONs via sprite htpicnum member), fix building Mapster32 with MSVC, increase PR_MAXLIGHTS to 1024
git-svn-id: https://svn.eduke32.com/eduke32@1527 1a8010ca-5511-0410-912e-c29ae57300e0
2009-10-07 06:47:35 +00:00
terminx
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
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
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
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
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