Commit graph

2395 commits

Author SHA1 Message Date
hendricks266
c052540d42 Fix USE_OPENGL=0 build.
git-svn-id: https://svn.eduke32.com/eduke32@5332 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-15 21:28:49 +00:00
hendricks266
4360b89fb5 M32: Add EVENT_PREDRAW2DSCREEN.
git-svn-id: https://svn.eduke32.com/eduke32@5329 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-15 21:28:05 +00:00
helixhorned
607f8e1d1c SDL2 layer: handle all Ctrl+[A-Z] keys passed to OSD_HandleChar().
See that function for a list of what these do in the OSD.

git-svn-id: https://svn.eduke32.com/eduke32@5324 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-09 09:58:45 +00:00
helixhorned
c3fa10ab07 OSD: fix oob write for Ctrl+K ("delete all to end of line").
git-svn-id: https://svn.eduke32.com/eduke32@5323 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-09 09:58:44 +00:00
helixhorned
0dc20f913c Mapster32: call AppGrabMouse() on show/retract OSD like in the game.
This is necessary to hide the mouse cursor in some settings (such as
with the debug build under Xfce). DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@5321 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-08 11:03:07 +00:00
helixhorned
e8623165a7 Mapster32: add config variable 'corruptcheck_heinum'.
With 3 modes:
 0: auto-correction and warning disabled
 1: auto-correction enabled (default, current behavior)
 2: auto-correction and warning enabled

git-svn-id: https://svn.eduke32.com/eduke32@5320 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-08 07:04:14 +00:00
terminx
409b363667 Pragma fuckery. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5317 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-02 08:50:27 +00:00
helixhorned
b408cb641c engine.c: use swapptr() instead of swaplong() in two cases in drawmasks().
git-svn-id: https://svn.eduke32.com/eduke32@5315 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-02 08:40:39 +00:00
helixhorned
2aa732128f Polymost: don't redundantly adjust globalcursectnum in polymost_drawrooms().
See r5024 and the added comment.

git-svn-id: https://svn.eduke32.com/eduke32@5314 1a8010ca-5511-0410-912e-c29ae57300e0
2015-08-01 08:41:14 +00:00
helixhorned
3375bce927 baselayer: add DEBUG_FRAME_LOCKING functionality.
git-svn-id: https://svn.eduke32.com/eduke32@5311 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-25 17:23:21 +00:00
helixhorned
c9949f53a3 engine: fix unbalanced begindrawing()/enddrawing() pair in printext16().
git-svn-id: https://svn.eduke32.com/eduke32@5310 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-25 17:23:20 +00:00
helixhorned
73ca265137 Fix various, but not all warnings.
Except:
 - missing braces around initializer [-Wmissing-braces]: due to union-in-struct
   vec3f_t
 - comparison between signed and unsigned integer expressions [-Wsign-compare]:
   in polymer.c

git-svn-id: https://svn.eduke32.com/eduke32@5309 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-25 17:23:17 +00:00
terminx
1af89e0b1d Mapster32: re-enable changing position in 2d mode with the right mouse button when dragging selected objects
git-svn-id: https://svn.eduke32.com/eduke32@5308 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-23 23:51:30 +00:00
terminx
6f9a9c94ec Mapster32: fix frame locking issue with 2d3d mode, crash when toggling bottom texture swap, issues with drawing certain types of walls.
git-svn-id: https://svn.eduke32.com/eduke32@5307 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-22 02:06:23 +00:00
terminx
9cf3e19d61 Mapster32: fix display of pal 4 sprites in 2d mode.
git-svn-id: https://svn.eduke32.com/eduke32@5306 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-20 20:25:32 +00:00
terminx
dfe614db5c Mapster32: fix 3d mode status messages being overwritten with position/ang/horiz readouts.
git-svn-id: https://svn.eduke32.com/eduke32@5305 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-20 20:25:29 +00:00
terminx
79ac071f5b Mapster32: change default 2d3d position to upper right corner, remove debug printf I accidentally committed.
git-svn-id: https://svn.eduke32.com/eduke32@5303 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-17 03:21:19 +00:00
terminx
480dc0ecaf Mapster32:
-Improved indication of selections in 2d mode. This includes both highlighted objects and multiple object selection.
-2d3d improvements: it's no longer possible to end up with a black view due to the z position being out of range when moving the cursor position to a new area with the right mouse button.
-The middle mouse button can now be used in place of the right alt key when selecting sectors, similar to how the left mouse button can be used in place of the right shift key to select points and sprites.
-2d mode mouse cursor has been changed to a 1 pixel thick red cross with a shadow instead of a 2 pixel thick red cross with no shadow. This improves visibility when working in textured mode with lava sectors and other textures similar in color.
-2d mode palette now changes when working in an underwater sector.
-Misc tweaks

git-svn-id: https://svn.eduke32.com/eduke32@5302 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-17 00:12:48 +00:00
terminx
e676b04687 Engine: misc cleanups, support for drawing transparent lines in 2d mode. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5300 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-17 00:12:40 +00:00
terminx
4bd82ba0ea Fix warnings
git-svn-id: https://svn.eduke32.com/eduke32@5299 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-17 00:12:33 +00:00
Plagman
f6d07d48ae Polymer: upload bucket indices through pinned host memory.
git-svn-id: https://svn.eduke32.com/eduke32@5298 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-15 08:23:00 +00:00
Plagman
ea2cabb8b3 Polymer: fix regression with Y-flipping bit.
git-svn-id: https://svn.eduke32.com/eduke32@5297 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-15 05:14:08 +00:00
Plagman
e237dbafea Polymer: add preliminary support for batching draws.
git-svn-id: https://svn.eduke32.com/eduke32@5296 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-14 07:08:44 +00:00
Plagman
6a6d120d8e Polymer: fix synthesis warning.
git-svn-id: https://svn.eduke32.com/eduke32@5295 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-13 16:01:18 +00:00
Plagman
8212aa11c6 Polymer: store map data in a single buffer with a unified vertex type.
git-svn-id: https://svn.eduke32.com/eduke32@5294 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-13 03:46:35 +00:00
terminx
868afddbc3 Mapster32: further 2d mode performance improvements. Sprites are also now displayed with their xrepeat and yrepeat taken into account. It's not perfect yet... needs more "jiggery-pokery"
git-svn-id: https://svn.eduke32.com/eduke32@5293 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-11 23:07:47 +00:00
helixhorned
e20e6584d6 Mapster32: fix two "variable may be used uninitialized" warnings.
I didn't produce a case when this could actually have happened, but
reading the code, in the case of variable 'j' it seems possible with
an empty map.

git-svn-id: https://svn.eduke32.com/eduke32@5292 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-11 17:06:30 +00:00
helixhorned
0419e64c0a Mapster32: fix a possible oob read via drawspritelabel; sanitize 2d3d mode.
That is, in m32_is2d3dmode(), also check if 2d and 3d mode resultions are
the same. Otherwise, oob writes (e.g. via tileinfo_doprint()) and other
thinkable niceties may ensue.

git-svn-id: https://svn.eduke32.com/eduke32@5291 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-11 14:13:04 +00:00
terminx
21e9125f2d Mapster32: 2d mode performance improvements
git-svn-id: https://svn.eduke32.com/eduke32@5290 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-10 21:19:41 +00:00
terminx
253f0b8771 Mapster32: improve 2d mode sprite label display. I want to test this further, so this is marked as DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5289 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-10 07:56:48 +00:00
terminx
9d1503ac12 Mapster32: fix 3d picture-in-picture when editing a map with TROR.
git-svn-id: https://svn.eduke32.com/eduke32@5286 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-10 07:56:35 +00:00
terminx
c79691bb6f Mapster32: improve diagnostic message.
git-svn-id: https://svn.eduke32.com/eduke32@5285 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-09 05:58:05 +00:00
terminx
3ff2e2155c A couple of Mapster32 tweaks to play nicer with different palettes.
git-svn-id: https://svn.eduke32.com/eduke32@5284 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-09 05:58:00 +00:00
terminx
ff466191cb Address complaints from the "Mapster32 problems and bugs" thread.
git-svn-id: https://svn.eduke32.com/eduke32@5283 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-09 03:55:24 +00:00
terminx
f72dffce07 Mapster32 changes:
-2d mode sprite colors are now automatically generated from the sprite's 8-bit tile.
-Zooming in and out has been smoothed out.
-The 2d mode crosshair cursor is now 1px thick instead of 2.
-The left mouse button can now be used to select multiple wall points and sprites in 2d mode.
-Ctrl-x now skips corrupt maps instead of going into an infinite loop. ;)
-'-L function in 3d mode works again.
-Sprites with a clipdist that has been changed from the default value of 32 will display a circular approximation of the distance in 2d mode. Note that the real clipping distance is actually closer to a square, but a circle looks much less confusing/stupid alongside the display of floor sprites.
-2d mode status bar has been made a few shades lighter.

git-svn-id: https://svn.eduke32.com/eduke32@5282 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:46 +00:00
terminx
86f94d2897 New experimental Mapster32 hybrid 2D/3D mode feature. Pressing F10 in 2D mode enables a picture-in-picture 3D view in the corner of the screen. When moving the mouse over the 3D view, the controls change to 3D mode controls and all 3D mode operations can be performed. The 3D view can be resized with shift + F10 and can be moved to different positions by holding CTRL and using the arrow keys.
This commit also implements a much more useful automatic grid sizing feature and smooths out zooming in and out of the map.

git-svn-id: https://svn.eduke32.com/eduke32@5281 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:42 +00:00
terminx
f784eca65b Very minor OSD cleanups, no functional changes. I was planning on doing more with this but decided to do something else instead, so I want it out of my tree without losing it. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5280 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:37 +00:00
terminx
d47187a92d Enable sector drawing and textured map in Mapster32 sideview mode with a sideview elevation of 512 (straight up and down).
git-svn-id: https://svn.eduke32.com/eduke32@5278 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:31 +00:00
terminx
558c2dae48 Improve r_preview_mouseaim and Polymost Mapster32 3d mode mouse selection. Also adds a display of the current coordinates, angle and horiz when moving around in 3d mode.
git-svn-id: https://svn.eduke32.com/eduke32@5277 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:27 +00:00
terminx
4846c838d5 Slight further Polymost cleanup. Nothing of real importance. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5275 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:20 +00:00
terminx
a4032d234c Fix a bug where the editor was forced into game filesystem mode by default, and add a preference to mapster32.cfg to control the default filesystem mode.
git-svn-id: https://svn.eduke32.com/eduke32@5274 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:16 +00:00
terminx
388fbe041e Fix warning in defs.c. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5271 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:34:00 +00:00
terminx
f0c9019d91 Move swapptr() to pragmas. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5268 1a8010ca-5511-0410-912e-c29ae57300e0
2015-07-08 03:33:43 +00:00
Plagman
684da706f0 Fix automap lines in Polymer mode
git-svn-id: https://svn.eduke32.com/eduke32@5267 1a8010ca-5511-0410-912e-c29ae57300e0
2015-06-14 23:42:52 +00:00
Plagman
18b3984a97 add pr_nullrender variable to toggle drawing and updating GL buffers
git-svn-id: https://svn.eduke32.com/eduke32@5266 1a8010ca-5511-0410-912e-c29ae57300e0
2015-06-14 23:42:31 +00:00
helixhorned
efe3d87cf8 Mapster32: fix an oob write in test_map().
git-svn-id: https://svn.eduke32.com/eduke32@5265 1a8010ca-5511-0410-912e-c29ae57300e0
2015-06-07 09:55:41 +00:00
helixhorned
7b6e47f444 mdsprite.c: from updateanimation(), if m->[cn]frame >= numframes, clear to 0.
This prevents an oob access when rendering, the one observed was at
polymer.c:4255.

git-svn-id: https://svn.eduke32.com/eduke32@5264 1a8010ca-5511-0410-912e-c29ae57300e0
2015-06-07 09:55:40 +00:00
helixhorned
a1c4df267c Fix an out-of-bounds read in getpskyidx().
git-svn-id: https://svn.eduke32.com/eduke32@5263 1a8010ca-5511-0410-912e-c29ae57300e0
2015-06-06 15:04:17 +00:00
terminx
7c139646ca Fix clipshapes, accidentally broken in my vec2_t rotatepoint commit.
git-svn-id: https://svn.eduke32.com/eduke32@5261 1a8010ca-5511-0410-912e-c29ae57300e0
2015-06-04 00:04:00 +00:00
hendricks266
de28d574ec Define the formerly nonsensical combination of orientation bits 256 and 512 to mean "automatically zoom the tile so that the 320x200 coordinate system is vert-minus widescreen instead of horiz-plus".
git-svn-id: https://svn.eduke32.com/eduke32@5258 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:48:22 +00:00
hendricks266
ea82c1d897 Fix warning: narrowing conversion of 'img->vpx_image::d_w' and 'img->vpx_image::d_h' from 'unsigned int' to 'int32_t {aka int}' inside { } is ill-formed in C++11 [-Wnarrowing]
git-svn-id: https://svn.eduke32.com/eduke32@5257 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:48:07 +00:00
hendricks266
f4aca6df5d Defs: Add "multipsky" token.
git-svn-id: https://svn.eduke32.com/eduke32@5256 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:47:50 +00:00
hendricks266
f33887b2f8 Convert multi-psky handling to use dynamically-allocated arrays.
git-svn-id: https://svn.eduke32.com/eduke32@5255 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:47:34 +00:00
hendricks266
410406158a Re-expose kpzbufsiz and set it to zero in uninitengine, preventing potential crashes from successive re-initializations of the engine.
git-svn-id: https://svn.eduke32.com/eduke32@5254 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:47:03 +00:00
hendricks266
d2ed954c20 Defs: Add "texture" convenience token to tilefromtexture, which will also define the image as a texture with implied nocompress and nodownsize flags.
git-svn-id: https://svn.eduke32.com/eduke32@5247 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-27 08:45:13 +00:00
terminx
9898876f27 Add line numbers to a couple of .def parsing warning messages. At some point these should probably all be cleaned up, similar to how they're handled with CON parsing. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5243 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-26 00:48:10 +00:00
terminx
008d845558 Shitcan the nausea-inducing r_projectionhacks mode 2.
git-svn-id: https://svn.eduke32.com/eduke32@5241 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-26 00:48:04 +00:00
terminx
5064e8b8cd Make 'L' key toggle grid lock in 3D mode, because it affects placement of sprites inserted with 'S'.
git-svn-id: https://svn.eduke32.com/eduke32@5240 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-26 00:48:01 +00:00
terminx
54d016902f vec2_t rotatesprite, take 2
git-svn-id: https://svn.eduke32.com/eduke32@5239 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-26 00:47:54 +00:00
helixhorned
1d11b6fdd6 Free alloc'd anims in h_dukeanim. Adds a function hash_loop().
git-svn-id: https://svn.eduke32.com/eduke32@5234 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-25 12:57:49 +00:00
helixhorned
c6f0c467e3 Polymer: fix rendering of middle part of 1-way masked wall.
It does not depend on the "swap bottom wall parts" bit being set.
The fix is by matching up the related code with Polymost.

git-svn-id: https://svn.eduke32.com/eduke32@5230 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-22 12:43:26 +00:00
hendricks266
7a89c58360 Re-expose clipmoveboxtracenum.
git-svn-id: https://svn.eduke32.com/eduke32@5229 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-19 22:11:02 +00:00
hendricks266
93d6d61180 SW: Parallaxed skies.
git-svn-id: https://svn.eduke32.com/eduke32@5211 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-19 22:05:20 +00:00
hendricks266
91d6935c88 Add uint32_t PaletteIndexFullbrights[8] so that Polymost can respect the lack of fullbrights in KenBuild and Shadow Warrior.
git-svn-id: https://svn.eduke32.com/eduke32@5210 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-19 22:04:38 +00:00
hendricks266
acba32caf4 SW: setsprite, setspritez, getzrange, clipmove, pushmove, neartag, dragpoint, screencapture, md_tilehasmodel, preparemirror, saveboard, loadboard, pos
git-svn-id: https://svn.eduke32.com/eduke32@5201 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-19 22:00:38 +00:00
hendricks266
e9655f8469 Add SW to our build system and make relevant changes to avoid fatal build errors.
git-svn-id: https://svn.eduke32.com/eduke32@5197 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-19 21:56:03 +00:00
hendricks266
086a9da9ee iOS: Set up and enable building with USE_OPENGL. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5195 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-16 20:16:27 +00:00
hendricks266
a979fa95a3 Merge glbuild_android into glbuild. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5189 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-16 09:12:12 +00:00
helixhorned
68f52a4257 Mapster32: honor r_usenewaspect, especially it being off.
For this, add a setaspect_new() setup/restore pair in M32_DrawRoomsAndMasks()
like for G_DrawRooms(). With this, changing viewingrange/aspect via m32script
(in a.m32: [7] -- [9] on the upper row) can only be done in r_usenewaspect 0,
though.

git-svn-id: https://svn.eduke32.com/eduke32@5182 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-10 10:55:30 +00:00
hendricks266
f186ecc58a Fix a typo in r5179.
git-svn-id: https://svn.eduke32.com/eduke32@5181 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-05 23:38:19 +00:00
hendricks266
bfc9941101 Defs: Add "artfile" token, which loads an ART file. You can use the "tile" sub-token to overwrite the starting tilenum of the file from def.
artfile { file "whatever.art" } // loads whatever.art just as if it had been named TILES020.ART
artfile { file "whatever.art" tile 2000 } // loads whatever.art starting at index 2000 instead of the tilestart value contained within it

This is useful because ART files will load faster than images loaded through tilefromtexture (which must undergo a color matching process), and because tiles making use of palette indices which have duplicate colors in the stock Duke 3D palette but not in other palettes (such as the 3D Realms screen) are negatively affected by the aforementioned process.

git-svn-id: https://svn.eduke32.com/eduke32@5180 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:05:35 +00:00
hendricks266
6091a842db Add support for ART files containing exactly one tile as an input format for hightile textures and model skins. They are rendered in the global game palette and function as conventional hightile.
git-svn-id: https://svn.eduke32.com/eduke32@5179 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:05:21 +00:00
hendricks266
8b7aa949dd Defs: Allow loading ART files as input to tilefromtexture. Note that they must contain exactly one tile; any more and the entire ART file will be rejected.
git-svn-id: https://svn.eduke32.com/eduke32@5178 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:05:04 +00:00
hendricks266
416ccc076c Restructure and expand some ART loading functionality in the engine.
git-svn-id: https://svn.eduke32.com/eduke32@5177 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:04:49 +00:00
hendricks266
f7c187875c Defs: Factor out dummytile creation code into E_CreateDummyTile and account for the case when a dummytile may be overwriting a faketile from tilefromtexture.
git-svn-id: https://svn.eduke32.com/eduke32@5176 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:04:31 +00:00
hendricks266
40c704babe Separate kpzload into two separate functions, kpzbufload (which now lives in cache1d, regardless of WITHKPLIB) and kpzdecode.
git-svn-id: https://svn.eduke32.com/eduke32@5175 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:04:11 +00:00
hendricks266
b3639ae8e7 Replace most instances of casting byte arrays to wider integral types with the B_(UN)BUF functions in compat.h that were previously used only in the netcode.
I have commented out the versions of these functions that perform bitmasks and shifts and replaced them with versions that cast to and from integral types, pending performance and compatibility research across platforms.

git-svn-id: https://svn.eduke32.com/eduke32@5174 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:03:48 +00:00
hendricks266
5c4622a8ab Replace the bswap function used in kplib with B_SWAP32, and merge the 32-bit MSVC and GCC assembly into compat.h.
TODO: Review the value of the continued use of special cases of these swap functions, including the OS-based variants for BSD and OS X, and this assembly.

git-svn-id: https://svn.eduke32.com/eduke32@5173 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:03:12 +00:00
hendricks266
f141cc71f2 kplib: Replace [LS]SWAPI[BL] macros with the B_(BIG|LITTLE)(16|32) ones defined in compat.h and used everywhere else.
git-svn-id: https://svn.eduke32.com/eduke32@5172 1a8010ca-5511-0410-912e-c29ae57300e0
2015-05-03 07:02:54 +00:00
hendricks266
d313e2531a Set up input so that the menus are navigable under iOS. This also enables the SELECTDIR back button unconditionally instead of restricting it to non-touch devices. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5169 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-28 21:30:42 +00:00
hendricks266
4bf493c76b Don't use #pragma push_macro in buildtypes.h, for compatibility with GCC 4.2. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5167 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-26 00:45:55 +00:00
hendricks266
ce55b4a6fb Add game-side def "globalgameflags" that takes a single value. Flag 1 disables hardcoded pinning of HUD weapons to the side of the screen in widescreen.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@5161 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-24 00:08:46 +00:00
helixhorned
5ae6253a30 Savegame: for non-user level, don't write garbage into h.boardfn, allow per-map ART.
git-svn-id: https://svn.eduke32.com/eduke32@5160 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-20 20:46:42 +00:00
helixhorned
d9c171d499 polymost.c: fix display of floor-aligned sprites ornameted to the ceiling.
git-svn-id: https://svn.eduke32.com/eduke32@5158 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:59:20 +00:00
helixhorned
77c5056f22 polymost.c: split three overlong lines into three each.
This was formerly "fix multi-tile ceiling skies.", but TX beat me to it
and Git automatically figured out how to merge while keeping a linear
history. (Our fixes were identical.) Nice!

git-svn-id: https://svn.eduke32.com/eduke32@5157 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:59:19 +00:00
terminx
53d2e0939e Revert "vec2_t rotatepoint()."
This reverts commit b0eeef385aecf9cea3ec2bd0ee82f59982942ce0.

git-svn-id: https://svn.eduke32.com/eduke32@5154 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:49:36 +00:00
terminx
2a65ba123c Polymost parallax sky fix.
git-svn-id: https://svn.eduke32.com/eduke32@5152 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:37:10 +00:00
terminx
abc53d5006 Further constification. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5151 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:37:07 +00:00
terminx
ce5260e235 vec2_t rotatepoint().
git-svn-id: https://svn.eduke32.com/eduke32@5150 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-18 21:37:01 +00:00
hendricks266
bb4cdeb692 Make all the hictinting_apply blocks consistent. This should fix certain tints types being applied incorrectly in Polymer and the global tints (underwater and nightvision) not being applied to tints and models with certain flags.
git-svn-id: https://svn.eduke32.com/eduke32@5149 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 21:18:08 +00:00
hendricks266
3a26e5b241 Correct the HICTINT_GRAYSCALE calculation for hightile.
git-svn-id: https://svn.eduke32.com/eduke32@5148 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 21:17:52 +00:00
hendricks266
be29f098ab Complete the necessary infrastructure so that more than one precomputed tint on a hightile texture will display.
git-svn-id: https://svn.eduke32.com/eduke32@5147 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 21:17:36 +00:00
hendricks266
40d6aef7fc Tints: Add blending modes Screen, Overlay, and Hard Light, as opposed to the default Multiply. This value is encoded in bits 6 and 7 of the "flags" parameter. In other words, calculate your flags besides these modes, then bitwise OR the resulting value with:
0 - Multiply
64 - Screen
128 - Overlay
192 - Hard Light

Note: These will likely look terrible when combined with the Colorize flag, because of the nature of the Colorize flag.

git-svn-id: https://svn.eduke32.com/eduke32@5146 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 08:08:02 +00:00
hendricks266
09a26dc24f Account for HICTINT_GRAYSCALE, INVERT, and COLORIZE when applying a tint on 8-bit art.
git-svn-id: https://svn.eduke32.com/eduke32@5145 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 08:07:41 +00:00
hendricks266
71f576769b Apply HICTINT_APPLYOVERALTPAL where it should in texcache_fetch.
git-svn-id: https://svn.eduke32.com/eduke32@5144 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 08:07:23 +00:00
hendricks266
d4fb3dfe96 Eliminate a check that a model's sector's floorpal is nonzero before applying a tint.
git-svn-id: https://svn.eduke32.com/eduke32@5143 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 08:07:08 +00:00
hendricks266
68e4248cd2 Polymer: Account for HICTINT_APPLYOVERALTPAL and HICTINT_USEONART.
git-svn-id: https://svn.eduke32.com/eduke32@5142 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-14 08:06:51 +00:00
hendricks266
9a8941ef41 Defs: Add "copytile" token that allows you to copy existing 8-bit tiles from one slot to another, along with their x/yoffsets and flags. ART animation values are not copied.
Examples: (assuming stock Duke palswaps)
copytile 10000 { tile 0 } // tile #10000 is now the same as #0
copytile 10001 { tile 1 pal 8 } // tile #10001 is now #1 with a full-green tint
copytile 0 { pal 1 pal 23 } // tile #0 now has a full-yellow tint

git-svn-id: https://svn.eduke32.com/eduke32@5139 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-12 08:07:30 +00:00
hendricks266
f15199cb79 Instead of keeping the entire contents of ART files loaded from within zips in memory, assimilate them into tilefromtexture's compressed faketiledata.
This involves some refactoring.

git-svn-id: https://svn.eduke32.com/eduke32@5138 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-12 08:07:10 +00:00
hendricks266
c26149fd1f Defs: Expand use of check_tile().
git-svn-id: https://svn.eduke32.com/eduke32@5137 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-12 08:06:51 +00:00
helixhorned
8834dfbc7d SDL2: map SDL_SCANCODE_NONUSBACKSLASH to the same Build code as COMMA.
NONUSBACKSLASH is what is generated for the key between the LShift and 'Z'
here. The aliasing with the actual ',' key is as with the SDL1.2 build.
Fixes the issue reported in
http://forums.duke4.net/topic/8029-cant-bind-key-anymore/

git-svn-id: https://svn.eduke32.com/eduke32@5134 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-11 13:53:09 +00:00
helixhorned
f74b38bcd8 Mapster32/C++ build/non-Lua: probably fix a crash in showsectordata().
Reported in
http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__220722
I could not reproduce it, but it is thinkable that 'searchsector' could have
been out-of-sync with the 'sectnum' local. (For example, the former one could
have been -1, triggering the crash.)

git-svn-id: https://svn.eduke32.com/eduke32@5132 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-11 13:53:07 +00:00
helixhorned
87cae94dab polymost.c: fix an out-of-bounds access in polymost_dorotatesprite().
To reproduce, lower the OSD, for example.

git-svn-id: https://svn.eduke32.com/eduke32@5129 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-11 13:53:04 +00:00
hendricks266
8d906d6d48 Amend previous commit.
git-svn-id: https://svn.eduke32.com/eduke32@5128 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-09 07:56:36 +00:00
hendricks266
1ab930ea28 Defs: Add "undefinetile" and "undefinetilerange".
git-svn-id: https://svn.eduke32.com/eduke32@5127 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-09 07:52:28 +00:00
hendricks266
5c69ae7d11 Allow alpha fade-out for quotes and the menu mouse cursor in 8-bit when the supplied PALETTE.DAT has enough alpha tables to fully display each effect.
git-svn-id: https://svn.eduke32.com/eduke32@5124 1a8010ca-5511-0410-912e-c29ae57300e0
2015-04-09 07:51:48 +00:00
hendricks266
3a081603ae Prevent a crash in mdloadskin() caused by an oversight in r5107.
git-svn-id: https://svn.eduke32.com/eduke32@5113 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-30 05:56:06 +00:00
hendricks266
75801f2e68 Defs: Add token "forcefilter" to textures, skyboxes, and model skins. It forces the use of GL filtering for the resource in question.
git-svn-id: https://svn.eduke32.com/eduke32@5108 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-28 09:49:37 +00:00
hendricks266
8282a7e846 Defs: Add "nocompress" and "nodownsize" tokens to model skin definitions.
git-svn-id: https://svn.eduke32.com/eduke32@5107 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-28 09:49:11 +00:00
hendricks266
0c6de5da3a Re-apply r5053, which got lost in r5079.
git-svn-id: https://svn.eduke32.com/eduke32@5104 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-28 09:48:21 +00:00
hendricks266
f347a52e24 Defs: Add "nofloorpal <value>" to "makepalookup", which, when specified, allows you to set exactly the value of g_noFloorPal that you want.
git-svn-id: https://svn.eduke32.com/eduke32@5101 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-27 12:29:52 +00:00
terminx
e544488283 Fix Polymost issue reported at http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__220265
git-svn-id: https://svn.eduke32.com/eduke32@5095 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-26 21:42:19 +00:00
hendricks266
ab58a33ec6 Menus: Add a Cheats menu to options.
It's old-school.

git-svn-id: https://svn.eduke32.com/eduke32@5084 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 10:49:03 +00:00
terminx
203b795cc9 Additional fix for building with newest MSYS2 packages. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5082 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 03:34:01 +00:00
terminx
a9c32b758d Build fix. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5081 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 03:33:57 +00:00
terminx
9cb68410a0 Engine memory reductions/optimizations:
-faketilesiz[MAXTILES] removed in favor of simple faketile[(MAXTILES+7)>>3] bitfield
-h_xsize/h_ysize (tile size overrides from .def) are now uint16_t instead of int32_t
-hudmem[2][MAXTILES] removed in favor of adding a hudmem ptr to mdmodel_t
-tilefromtexture performance improvements
-more tsectortype/twalltype usage in various engine functions that read but never write
-continued Polymost cleanups and refactors. Please report any odd rendering errors.

git-svn-id: https://svn.eduke32.com/eduke32@5079 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:48 +00:00
terminx
eee8d14a8b Minor kplib optimizations, DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5077 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:40 +00:00
terminx
110b713a64 Win32 debug build filename case checking now uses GetShortPathNameA()/GetLongPathNameA() instead of the slow SHGetFileInfo(). Since this works by requesting the shortened 8.3 filename for a file and then requesting the proper long version of that result, it has the side effect of breaking the functionality on NTFS volumes where the user has explicitly disabled the creation of 8.3 filenames. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5076 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:36 +00:00
terminx
aa4d98982c Large batch of Polymost changes, including:
-lots of stylistic rewrites
-further improvements to anti-fighting code for wall and floor sprites (introduces three new cvars, r_wspr_offset, r_wspr_offset_variance, and r_fspr_offset)
-fixed brief HOM when traversing through a one-way masked wall
-seldomly used "alphahack" feature for hightile textures now represents alpha cutoff internally as a single byte instead of a float
-fixes a handful of issues where geometry failed to draw at certain coordinates from certain angles in certain resolutions
-renames a couple of cvars

git-svn-id: https://svn.eduke32.com/eduke32@5075 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:33 +00:00
terminx
7732db71af int64_t -> uint64_t in swap64bit(). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5073 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:25 +00:00
terminx
112652c5b9 Polymer tsectortype usage. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5072 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:21 +00:00
terminx
8cc2cd8585 Minor stylistic changes, fix FPS counter and other 2D drawing in Polymer.
git-svn-id: https://svn.eduke32.com/eduke32@5071 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:40:18 +00:00
terminx
61f35b827a Remove WeaponChoice* from eduke32.cfg and transition setting to "wchoice" cvar. This commit also removes an Android hack and changes the order of some of the in-game "F" key handling, just because it bugged me that some of them were out of order.
git-svn-id: https://svn.eduke32.com/eduke32@5065 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-24 00:39:52 +00:00
hendricks266
201e353771 Amend "renamefile" def token to ensure its proper use. renamefile <GRP/SSI CRC32> <file number> <new filename>
git-svn-id: https://svn.eduke32.com/eduke32@5064 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-23 08:30:41 +00:00
hendricks266
ddf7720451 Defs: Add token "renamefile", which renames a file in a GRP or SSI file, in memory. 8.3 restrictions apply.
git-svn-id: https://svn.eduke32.com/eduke32@5061 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-23 06:28:08 +00:00
hendricks266
2f0f38b6e6 cache1d: Add support for loading SSI files.
git-svn-id: https://svn.eduke32.com/eduke32@5060 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-23 06:27:49 +00:00
hendricks266
8a2b19dd50 cache1d: Allow loading GRP files from within other GRP files.
git-svn-id: https://svn.eduke32.com/eduke32@5059 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-23 06:27:35 +00:00
hendricks266
496f4582d6 cache1d: Enumify the magic constants for "file is in a zip" and "file is in the filesystem".
git-svn-id: https://svn.eduke32.com/eduke32@5058 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-23 06:27:18 +00:00
hendricks266
97025d9fc7 Add "globalflags" def token. Flag 1 is a kill switch for the tileshades and artmapping features. Flag 2 is kill switch for the GL fullbright rendering pass.
git-svn-id: https://svn.eduke32.com/eduke32@5056 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-09 20:32:36 +00:00
hendricks266
74b264dcb1 Change HICTINT_USEONART so that it applies tints to pal 0 of 8-bit tiles instead of their palswapped selves. Add HICTINT_APPLYOVERPALSWAP which applies tints to palswapped 8-bit tiles. Add HICTINT_APPLYOVERALTPAL, which applies tints to alt-pals of hightile textures.
git-svn-id: https://svn.eduke32.com/eduke32@5055 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-09 20:32:11 +00:00
hendricks266
30669ab8ce Defs: When undefining a model, reset the angadd of its HUD settings to zero.
This fixes weapons not being displayed in Vaca+.

git-svn-id: https://svn.eduke32.com/eduke32@5053 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-09 07:37:23 +00:00
hendricks266
1f93451ea0 Partially revert r5020. It's okay to update totalclocklock in G_DrawRooms(), but we must continue updating it in drawrooms() so as to not break the editor and every other BUILD game.
¿Por qué no los dos?

git-svn-id: https://svn.eduke32.com/eduke32@5051 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-08 23:39:51 +00:00
hendricks266
9079be2e27 Fix a compiler warning with USE_OPENGL=0.
git-svn-id: https://svn.eduke32.com/eduke32@5040 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-08 07:56:29 +00:00
hendricks266
7984d8d6b5 Amend previous commit. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5038 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-02 08:15:28 +00:00
hendricks266
17906349b4 BSD: Build system fixes/improvements. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5037 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-02 07:54:24 +00:00
helixhorned
3ecc8a6962 engine.c: style-cleanup getzrange(). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5035 1a8010ca-5511-0410-912e-c29ae57300e0
2015-03-01 14:15:36 +00:00
helixhorned
b1347517ee Classic/Polymost: factor out update of starting sectnum, use updatesectorbreadth().
The latter means that running perpendicular thin sector is handled better
if there are e.g. TROR sectors in the same x/y space.

git-svn-id: https://svn.eduke32.com/eduke32@5024 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-22 12:43:02 +00:00
helixhorned
850206ef62 Stick update of 'totalclocklock' at beginning of G_DrawRooms() instead of drawrooms().
This fixes engine-side sprite animation in the following scenario: CON code
wants to draw a scene from EVENT_DISPLAYREST, but since it covers the whole
screen, disables the drawing of the 3D scene beforehand (RETURN set to 1 from
EVENT_DISPLAYROOMS). DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@5020 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-19 22:19:05 +00:00
helixhorned
a1a79b001e Under conditions of CLASSIC_Z_DIFF_64 (r4960), make some drawvox() vars 64-bit.
- In drawvox(), make view-relative x and y high-precision on desktops. To a
  large extent (but not completely), this fixes "stray" fake floor shadow
  sprites for voxels.
- In the mouse picking code for voxels, fix a possible integer overflow.
  A new engine.c-private function mulscale_triple30() is added.

DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@5017 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-19 17:41:53 +00:00
terminx
5e0bed4c39 MSVC build fix.
git-svn-id: https://svn.eduke32.com/eduke32@5013 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-18 01:47:12 +00:00
terminx
f3e8ffa714 Fix Polymer when switching from Polymost
git-svn-id: https://svn.eduke32.com/eduke32@5011 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-18 01:47:06 +00:00
terminx
1d30b86db2 Nocompress and nodownsize for skyboxes
git-svn-id: https://svn.eduke32.com/eduke32@5010 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-18 01:47:00 +00:00
helixhorned
4f54c7cf88 Fix swapbufreverse(), adding precondition of count >= 4.
Also, in premap.c:G_CacheMapData(), comment out what was supposedly
intended as a debugging message ("percentage ...").

git-svn-id: https://svn.eduke32.com/eduke32@5009 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-17 16:23:04 +00:00
hendricks266
894407e58b Apple: Update Xcode project and build system. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5005 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-14 07:26:10 +00:00
terminx
139276e6fe Polymost changes to better support running under GL ES. Still need to investigate GL_LINES and GL_QUADS... neither work under either GL -> GL ES wrapper we've tried, so we must be doing something wrong.
git-svn-id: https://svn.eduke32.com/eduke32@5001 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:23:04 +00:00
terminx
40956094d5 More Android work. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@5000 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:59 +00:00
terminx
27e8fcbe57 A whole bunch of mostly insignificant changes that didn't deserve separate commits. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4997 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:48 +00:00
terminx
36a3bab5fc Android SDLayer changes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4992 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:29 +00:00
terminx
31b557ef61 More Android changes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4989 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:19 +00:00
terminx
50c30ab790 Animation system overhaul part 1. This allows for an unlimited number of .anm/.ivf files to be defined via duke3d.def and played back at any time with the new CON commands. Syntax is currently as follows, but may change:
cutscene "somefile.anm" { delay 10 } // defines somefile.anm with a delay of 10 120Hz tics between frames. a more typical framerate method may come later, but this is how the originals worked.

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

definequote 12345 somefile.anm
define ANIM_SOMEFILE 12345

...

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

...

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

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

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

git-svn-id: https://svn.eduke32.com/eduke32@4987 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:22:07 +00:00
terminx
cb2dcdc99e Minor engine cleanup
git-svn-id: https://svn.eduke32.com/eduke32@4984 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:21:53 +00:00
terminx
97f04d8083 Fix program entry point on win32, allows debugging SDL builds under MSVC.
git-svn-id: https://svn.eduke32.com/eduke32@4983 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:21:50 +00:00
terminx
88e0bfd7d3 More twalltype
git-svn-id: https://svn.eduke32.com/eduke32@4981 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-11 05:21:38 +00:00
helixhorned
b9834f9832 mdsprite.c: in md3load(), allocate m->head.surfs with Xcalloc, amending r4952.
And preventing enormous corruption due to a free() called on a garbage (malloc'd)
pointer values this time. DO_BUILD_VERY_FAST_PLEASE!

git-svn-id: https://svn.eduke32.com/eduke32@4980 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-10 19:51:15 +00:00
helixhorned
d915c49935 Mapster32: in build.c, prevent oob of wall[] if joining non-adjacent sectors.
Also, some minor stylistic cleanup.

git-svn-id: https://svn.eduke32.com/eduke32@4973 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-08 18:48:30 +00:00
hendricks266
b980ca7b0b Engine: Remove some conditional disabling of spriteext features when !defined USE_OPENGL.
git-svn-id: https://svn.eduke32.com/eduke32@4971 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-08 08:04:23 +00:00
helixhorned
a7bea4f6bc Classic: fix underallocation of TILE_TILT and tilting at very small resolutions.
Since TILE_TILT is only allocated once, it must be done with the maximum
possible size.

git-svn-id: https://svn.eduke32.com/eduke32@4965 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-07 17:29:15 +00:00
helixhorned
1a7816065c sdlayer.c: minor stylistic simplification of sdlayer_checkversion(). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4964 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-07 17:29:14 +00:00
helixhorned
c6b9fa52d9 osd.c: in OSD_HandleChar() for TAB, fix use of uninitialized osd->editor.buf[i].
Exposed by Valgrind. DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4963 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-07 17:29:13 +00:00
helixhorned
952a723229 Make g_player a +1 offset pointer into 'static g_player_s[1 + MAXPLAYER]'.
This fixes the out-of-bounds read of former g_player[] in VM_EventCommon_().

git-svn-id: https://svn.eduke32.com/eduke32@4961 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-07 17:29:11 +00:00
helixhorned
c3ddf08fd1 Classic: on desktops, handle abs. z diff. of floor/ceiling to camera >= 1<<24.
git-svn-id: https://svn.eduke32.com/eduke32@4960 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-07 17:29:10 +00:00
helixhorned
d95aaa5da5 engine.c: style-cleanup owallmost() and wallmost(). DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4959 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-07 17:29:08 +00:00
helixhorned
c7774f9c43 In DEBUGANYWAY=2/DEBUG_MAIN_ARRAYS build, declare tsprite[] as tspritetype.
Fixing a bunch of warnings. DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4958 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-05 17:17:05 +00:00
helixhorned
910716fa11 mdsprite.c: in md3free(), also free s->geometry for each surface. DONT_BUILD.
This prevents a enormous leak being reported by LeakSanitizer. Not that it
matters much, since we most frequently free models only at exit. (Sometimes one
may be freed earlier though -- if there was an error loading it, AFAICS.)

git-svn-id: https://svn.eduke32.com/eduke32@4952 1a8010ca-5511-0410-912e-c29ae57300e0
2015-02-05 16:30:09 +00:00
hendricks266
b6d625b202 Modularize .mid --> .ogg --> .flac code to apply to sounds as well, and various cleanup in music/sound filename-handling code.
git-svn-id: https://svn.eduke32.com/eduke32@4948 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-25 12:17:59 +00:00
hendricks266
6048f9d766 Simplify the macros used for distinguishing between OS X and iOS.
git-svn-id: https://svn.eduke32.com/eduke32@4942 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-25 12:16:10 +00:00
helixhorned
a50a332933 compat_tools.c: match definition of 'editstatus'to declarations in other places. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4939 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-24 19:14:39 +00:00
helixhorned
038bc1517b engine.c: in qsetmodeany(), call initsmost() after setting xdim and ydim.
This makes sure that the engine arrays have sufficient space allocated for usage
in Mapster32's 2D mode, for example from drawmapview().


git-svn-id: https://svn.eduke32.com/eduke32@4938 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-19 01:54:53 +00:00
helixhorned
038a9f8eb6 Lunatic: fix build and linking. DONT_BUILD.
- t{sector,wall}type are simply typedef'd to the non-t versions
- make FORCE_INLINE unconditional of DISABLE_INLINING (otherwise there are
  multiple definitions of these functions)
- update lunatic/doc/lpeg-lunatic.patch to apply against the LPeg 0.12 I just
  downloaded


git-svn-id: https://svn.eduke32.com/eduke32@4937 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-19 00:11:25 +00:00
helixhorned
ace6087f7b Classic: fix "windowed" modes (r_size >= 12) by reverting r4920; adapt.
In setview(), we now assert windowx2 < xdim. The only calling places where its
non-violation is non-trivial to ascertain are (1) showview from CON and
(2) draw-to-tile for look-sideways in game.c. AFAICS case 1 should be fine.
Case 2 is adapted; see comments there.


git-svn-id: https://svn.eduke32.com/eduke32@4935 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-18 23:16:37 +00:00
helixhorned
451dcfa073 Mapster32: remove unused key* options in mapster32.cfg and corresponding BK_* macros. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4934 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-18 22:11:31 +00:00
helixhorned
3a433130bb Fix bsearch() call for user G_LoadMapHack(): don't access nonexistent storage. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4933 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-18 20:31:37 +00:00
helixhorned
80da69f6a0 polymost.c: fix possible access of wallchanged[-1]. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4932 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-18 20:28:59 +00:00
helixhorned
03be585ff7 engine.c: fix memory leak. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4931 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-18 20:22:25 +00:00
helixhorned
a05cc6ec20 polymost.c: fix C build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4930 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-18 20:21:17 +00:00
hendricks266
86e7a97ef7 Fix a crash exposed by animating the menu back button.
git-svn-id: https://svn.eduke32.com/eduke32@4927 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-17 00:27:46 +00:00
terminx
c98555616d Fix kplib zip support
git-svn-id: https://svn.eduke32.com/eduke32@4925 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-16 06:30:51 +00:00
terminx
b3358a90b2 Fix wildmatch(), resolves errors matching things like "*.zip" with "duke3d.hrp.zip" for example.
git-svn-id: https://svn.eduke32.com/eduke32@4922 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-15 06:45:27 +00:00
terminx
0b1582185e Fix off-by-one error in setview()
git-svn-id: https://svn.eduke32.com/eduke32@4920 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-15 06:45:21 +00:00
terminx
cdaa25ef07 Implement better fade-out for quotes and for the mouse cursor in the menu.
git-svn-id: https://svn.eduke32.com/eduke32@4919 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-15 06:45:14 +00:00
terminx
f67c8fd44b Forgot this file in r4911
git-svn-id: https://svn.eduke32.com/eduke32@4912 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 09:55:12 +00:00
terminx
d70ac064b7 Make dist() and ldist() take void pointers so we can compare spritetype with tspritetype without inserting casts everywhere.
git-svn-id: https://svn.eduke32.com/eduke32@4910 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 09:28:41 +00:00
terminx
19729fc766 Fix Mapster32 sector copying
git-svn-id: https://svn.eduke32.com/eduke32@4909 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 08:44:46 +00:00
terminx
35d72c80c1 Fix compiler warnings
git-svn-id: https://svn.eduke32.com/eduke32@4908 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 01:54:50 +00:00
terminx
41a62ba96b Fix undefined behavior in Polymost
git-svn-id: https://svn.eduke32.com/eduke32@4907 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 01:54:33 +00:00
terminx
0b1433b07c Disable mouse input affecting the menu when the console is down. This code is awful, because I am an awful man.
git-svn-id: https://svn.eduke32.com/eduke32@4906 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 01:54:18 +00:00
terminx
130244a302 Crash fix
git-svn-id: https://svn.eduke32.com/eduke32@4905 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-12 01:53:55 +00:00
terminx
419ea3ed40 Polymost: fix wall and floor sprites clipping into or z-fighting with surfaces (replaces glDepthRange() hacks for sprites), add r_nofog cvar for debugging, reduce the total number of OpenGL calls by only calling glFogi() to set the fog mode when initializing the renderer or changing r_usenewshading.
git-svn-id: https://svn.eduke32.com/eduke32@4904 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:56:58 +00:00
terminx
107bb7a3fa Introduce "twalltype" for temporary uses of walltype where using wall_tracker_hook() would be invalid. This is similar to "tspritetype" and fixes a bunch of problems in the editor that cropped up when changing the tracker sanity checks to an assert that only exists in debug builds (branching upon any write to a sprite, sector or wall had an unacceptable impact on performance).
git-svn-id: https://svn.eduke32.com/eduke32@4903 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:56:38 +00:00
terminx
2928a9dfa9 Fix Mapster32 bug where pressing "O" on a sprite twice would corrupt your map due to unchecked use of hitscan results.
git-svn-id: https://svn.eduke32.com/eduke32@4901 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:55:50 +00:00
terminx
43161e1fd8 Fix distrecip calculation
git-svn-id: https://svn.eduke32.com/eduke32@4899 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:55:23 +00:00
terminx
4911b9a949 Revise C++ structure trackers for performance and introduce "tspritetype", for temporary sprites or other usages where using the trackers would be invalid or undesired. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4898 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:55:07 +00:00
terminx
04527ad08e Support r_windowpositioning in 8-bit.
git-svn-id: https://svn.eduke32.com/eduke32@4896 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:53:59 +00:00
terminx
67d30a18da Minor cleanup and formatting changes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4894 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:53:30 +00:00
terminx
4bc18d631e Make FORCE_INLINE aware of DISABLE_INLINING. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4893 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:53:16 +00:00
terminx
70cd0d2425 Detect running under Wine. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4892 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:53:01 +00:00
terminx
16b9b19e53 Identify Windows 10 in the startup window/log. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4891 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:52:45 +00:00
terminx
c591711fe8 MSVC C++ build fixes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4890 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:52:15 +00:00
terminx
16b617114c Replace hightile grayscale method (usually combined with tints to produce
replacements for the first handful of palette lookups) w8th superior
"luma" method. DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4889 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-11 04:51:41 +00:00
hendricks266
e3de98e2ae Clean up autodetected game install search paths on all platforms that use them.
This should prevent Lunar Apocalypse from becoming Nuclear Winter with Megaton on Linux and Mac.

git-svn-id: https://svn.eduke32.com/eduke32@4886 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-08 15:14:47 +00:00
hendricks266
589c993c39 Implement UserMapHacks.
git-svn-id: https://svn.eduke32.com/eduke32@4884 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-08 15:14:00 +00:00
hendricks266
3f846bdde3 Reinstate MD4.
git-svn-id: https://svn.eduke32.com/eduke32@4883 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-08 15:13:28 +00:00
helixhorned
26683d5bfe engine.c: fix clipmove() against upper part of wall-aligned sprites.
git-svn-id: https://svn.eduke32.com/eduke32@4882 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-06 20:54:49 +00:00
helixhorned
5c4f9b1f14 engine.c: on non-touch devices, roughly double maximum voxel drawing distance.
By setting DISTRECIPSIZ to 131072, as far as I can see the absolute maximum
that's possible with the integer scaling convention of the voxel drawing code.

BUILD_LUNATIC.

git-svn-id: https://svn.eduke32.com/eduke32@4881 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-06 19:56:44 +00:00
helixhorned
b5bb86b8e2 Mapster32: make sprite duplication examples in m32script_ex.map work again.
- Work around a sequencing issue (assignment of searchstat) in
  M32_DrawRoomsAndMasks()
- When having sprites highlighted and changing shade, since r1943 change
  every highlighted sprite's shade if one of them is aimed at. With this
  revision, if SHIFT is pressed while doing that, only change the aimed at
  sprite's shade
- a.m32: Use 'break' from a state instead of 'return'. The former may be
  "sticky" in a way that is not intended. Needs to be debugged later.
- Update instructions in m32script_ex.map

DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4880 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-06 19:56:41 +00:00
helixhorned
431941771d engine.c: prevent multiple collection of same sector in scansector().
Also for polymost_scansector(). These were likely of little consequence
because collection in scansector() is the exception than the rule (see
added comments), and because the redundant drawwalls() would find the
x range done the second and following times.

Also, add a bound check for sectorborder[] (the limit was probably rarely
hit in practice, but the check is mandatory nontheless) and add functions
printscans() and printbunches() in the DEBUGGINGAIDS=2 build.

git-svn-id: https://svn.eduke32.com/eduke32@4877 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-04 18:45:03 +00:00
helixhorned
bc35a5c8d2 engine.c: in drawmasks(), remove sorting sprites by statnum.
There were various issues with that code.
 - It does not seem to be very meaningful to do so.
 - It was carried out on the same range as the sprites sorted by z coordinate
   (those with equal x/y) just a few lines away, effectively overriding it.
   The former is very meaningful, though.
 - It led to inconsistencies between editor and game, see
   http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__214873

git-svn-id: https://svn.eduke32.com/eduke32@4876 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-04 18:45:01 +00:00
helixhorned
17fab4d8ac Cleanup of various engine functions.
- factor out calculation of player-relative and screen+clipped-player-relative
  coordinates into get_rel_coords() and get_screen_coords(), respectively
- the usual beautification stuff, especially since we're now on C99

git-svn-id: https://svn.eduke32.com/eduke32@4875 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-04 18:45:00 +00:00
helixhorned
b0c48eec25 CON: always return non-negative values from 'clipmove' and related.
Previously, the C function clipmove() returned negative values when hit a
wall (32768+wallnum) or sprite (49152+spritenum) because internally,
these values were encoded into a *signed* 16-bit integer. This made no
difference to C code using it, since it always proceeded by bit checks,
but was inconsistent with documentation on CON 'clipmove' on the wiki.

The following commands are affected too, since they use the value returned
by clipmove(): 'clipmovenoslide', 'movesprite'. Also, the value of
actor[].movflag ('htmovflag' from CON).

Also, fix 'clipmove*' in LunaCON and add lunatic/test/checknearwall.con
as an example of how to implement a being-close-to-a-wall checker as
requested in
http://forums.duke4.net/topic/7869-determining-closeness-to-a-wall/

git-svn-id: https://svn.eduke32.com/eduke32@4874 1a8010ca-5511-0410-912e-c29ae57300e0
2015-01-04 18:44:58 +00:00
helixhorned
2daa44ca6a engine.c: fix clipmove() against floor-aligned sprites.
Introduced in r3207. Oops.

git-svn-id: https://svn.eduke32.com/eduke32@4873 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-30 20:05:22 +00:00
helixhorned
5f263f1358 engine.c: prevent an oob read of spriteext[] in drawsprite_classic().
git-svn-id: https://svn.eduke32.com/eduke32@4872 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-30 20:05:20 +00:00
helixhorned
7033205fcf Menus: disable mouse pointer if CROSSHAIR is void. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4862 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-28 19:48:20 +00:00
hendricks266
598e33319c Add the necessary plumbing to sdlayer to detect mousedown, mouseup, and dragging.
git-svn-id: https://svn.eduke32.com/eduke32@4853 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-27 18:36:43 +00:00
hendricks266
bfb3614b92 Introduce preprocessor token EDUKE32_TOUCH_DEVICES that covers both Android and iOS, and replace selected instances of __ANDROID__ with it.
git-svn-id: https://svn.eduke32.com/eduke32@4852 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-27 18:36:14 +00:00
helixhorned
33addad941 Minor cleanup, mostly in engine.c:drawalls().
git-svn-id: https://svn.eduke32.com/eduke32@4846 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-27 17:17:50 +00:00
helixhorned
51fe706907 Tweak the behavior of viewscreens to what is more logical IMO.
- At a given time, at most one viewscreen may display TILE_VIEWSCR, namely
  that one which is g_curViewscreen
- sync kinds of distance to compare against VIEWSCREEN_ACTIVE_DISTANCE (was
  Manhattan vs. dist(), now both the latter)
- fix resetting to VIEWSCREEN tile when player is greater from it than that
  distance. When the player is closer to it again, it is *not* reset to
  TILE_VIEWSCR.
- more sync'd g_curViewscreen and sprite[i].yvel (for 'i' being the viewscreen
  sprite)

Note: in a multiplayer context, this needs to be thought about once more.

git-svn-id: https://svn.eduke32.com/eduke32@4843 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:30:00 +00:00
helixhorned
843894dd57 engine.c: clamp all indices for distrecip[] access, as more OOBs were observed.
git-svn-id: https://svn.eduke32.com/eduke32@4842 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:29:59 +00:00
helixhorned
7da543e4f0 cache1d.c: Revert changes in r4665 unrelated to unrolling, fixing oob write.
Specifically, we must make sure that dasizeof <= LZWSIZE (or so) in
c1d_{read,write}_compressed() (what the assertion in the last commit was about,
and is now redundant). This fixes saving of e.g. large gamearrays with the C-CON
build. Bump BYTEVERSION.

An alternative for setting dasizeof to 1 would be to factor it and keep dividing
as long as it's > LZWSIZE.

git-svn-id: https://svn.eduke32.com/eduke32@4838 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:29:55 +00:00
helixhorned
b7805868f7 cache1d.c: in (de)compr. funcs, add an bound-checking assert that fails w/ AMC TC.
Also, formatting.

git-svn-id: https://svn.eduke32.com/eduke32@4837 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:29:54 +00:00
helixhorned
584ed7982a Convert voxels to models only when starting or changing to Polymost.
Analogously to the way models are processed in a deferred manner for Polymer.

git-svn-id: https://svn.eduke32.com/eduke32@4836 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:29:53 +00:00
helixhorned
bd93fd2aab A couple of miscellaneous cleanups.
defs.c: sync some dup'd code for 'definevoxel' and 'voxel' DEF tokens.
engine.c: factor out PolymerProcessModels().

git-svn-id: https://svn.eduke32.com/eduke32@4835 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:29:52 +00:00
helixhorned
3a6bcdc102 engine.c: style-cleanup drawvox(). Also clean up ALL of voxmodel.c.
No deliberate semantic changes here.

git-svn-id: https://svn.eduke32.com/eduke32@4834 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-26 17:29:48 +00:00
helixhorned
a20a7878bb Polymer: include wall[].ypanning in wall invalidation logic.
Fixes bug reported here:
http://forums.duke4.net/topic/1348-mapster32-problems-and-bugs/page__view__findpost__p__213759

git-svn-id: https://svn.eduke32.com/eduke32@4833 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-21 15:51:51 +00:00
helixhorned
b4472f60d1 Polymer: don't draw masked walls with void tile. DONT_BUILD.
This prevents displaying W_FORCEFIELD+1 masks (as e.g. in front of viewscreens)
completely black with ART mapping. The old behavior, which is inconsistent with
classic, is kept for one-sided masked walls, though.

git-svn-id: https://svn.eduke32.com/eduke32@4830 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-20 13:36:40 +00:00
helixhorned
b716534104 Lunatic: sync MAXJOYAXES, add lunatic/test/sprite_addtv.con. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4829 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-20 13:08:27 +00:00
hendricks266
989f182eb4 Wii: Bump MAXJOYAXES to 9 to avoid menu corruption, and fix _functio.h, CONFIG_FunctionNameToNum, CONFIG_AnalogNameToNum, so that this does not crash.
git-svn-id: https://svn.eduke32.com/eduke32@4827 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-18 18:16:16 +00:00
hendricks266
0869194b60 Wii: Add non-interactive cases to wm_msgbox and wm_ynbox.
git-svn-id: https://svn.eduke32.com/eduke32@4825 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-18 18:15:26 +00:00
hendricks266
c397841cda Wii: Add a custom exception handler that saves the crash information to the log and directs the user to submit it to us. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4821 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-17 13:02:21 +00:00
hendricks266
8d115df01e Wii: Add a console to display startup messages to the screen instead of showing the user a black screen while the game initializes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4820 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-17 13:01:58 +00:00
hendricks266
bd813831b0 Wii: Work around a performance regression caused by r4080. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4819 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-17 13:01:13 +00:00
hendricks266
8ec58a208d Wii: Tweaks.
*Move the FPS display down from the top of the screen, as we do for quotes.
*Don't show a non-functional mouse cursor in the center of the screen.
*Don't display the "Startup window" option in Game Settings.
*Display the IR pointer crosshair in addition to the aiming crosshair, not instead of it.
*Eliminate some assumptions from wiibuild.bat.
*DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4818 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-17 13:00:54 +00:00
helixhorned
01fa7eeabc Makefile.common: in non-release builds, explicitly pass -fno-omit-frame-pointer.
So that stack traces can be gotten with optimized DEBUGANYWAY builds, e.g. for
Linux's 'perf' --> flame graphs. DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4817 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-15 19:50:52 +00:00
helixhorned
d82ca91809 DEF: fix handling of 'remappal' attribute for 'makepalookup'.
git-svn-id: https://svn.eduke32.com/eduke32@4813 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-13 22:33:06 +00:00
helixhorned
50a5e38cb6 Pull setting g_noFloorPal[] further down, into makepalookup().
Now passed as last arg 'noFloorPal' to makepalookup(). Used as follows:
- from loadlookups(): *false*, i.e. do take over floor pal.
- from generatefogpals() [default fog pals] and fillemptylookups(): *true*,
  i.e. don't take over floor pal
- from DEF 'fogpal': true
- from DEF 'makepalookup': take over flag from pal from which we are remapping,
  or set to true if remapping from pal 0
- (CROSSHAIR_PAL: true)

This should make the issue reported in
 http://forums.duke4.net/topic/775-eduke32-20-and-polymer/page__view__findpost__p__197583
resolve in a natural manner.

git-svn-id: https://svn.eduke32.com/eduke32@4812 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-13 22:33:05 +00:00
helixhorned
70cbde87eb Move g_noFloorPal[] to the engine side and adapt other stuff accordingly.
- 'nofloorpalrange' DEF token: now handled for both game and editor (for the
  latter, it's effective only for "shade preview" mode, [']+[X]).
- in generatefogpals(), assign g_noFloorPal[] = 1 for every generated (default)
  fog pal; get rid of its return value / g_firstFogPal

git-svn-id: https://svn.eduke32.com/eduke32@4811 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-13 22:33:04 +00:00
helixhorned
c9943bcde0 engine.c: prevent an oob access of uwall[] in ceilspritescan().
git-svn-id: https://svn.eduke32.com/eduke32@4810 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-13 22:33:02 +00:00
helixhorned
be06b43347 engine.c: style tweaks (tighter var. declaration) in sprite drawing functions.
git-svn-id: https://svn.eduke32.com/eduke32@4809 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-13 22:32:57 +00:00
hendricks266
a1c0d58069 Wii: Fix build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4808 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-09 23:56:54 +00:00
hendricks266
a8455d5caf Fix building the Build Tools. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4806 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-09 22:51:41 +00:00
hendricks266
9f52fb1d21 Fix a warning with Linux/GTK2. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4803 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-08 09:18:29 +00:00
hendricks266
735525758d Refine the previous commit a bit. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4802 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-08 07:32:58 +00:00
hendricks266
0b91499ee0 Mac OS X: Add detection of the Steam and GOG releases of Duke 3D and the Steam release of NAM. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4801 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-08 04:31:57 +00:00
helixhorned
442a9bbfef voxmodel.c: fix Polymost rendering of voxels.
This reverts/corrects two semantic changes of r4639 as far as what is now
voxmodel.c (formerly part of mdsprite.c) is concerned. One correction ends
up having no effect (m->bscale is always 1.f for voxel models, as far as I
can see), but is the proper rewrite.

Also, in osdcmds.c:registerosdcommands(), tweak two help strings.

git-svn-id: https://svn.eduke32.com/eduke32@4800 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-06 21:05:36 +00:00
helixhorned
5e35448560 m32script: fix tilesizx[]/tilesizy[] access. Can also 'copy' from them.
git-svn-id: https://svn.eduke32.com/eduke32@4799 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-06 19:09:53 +00:00
helixhorned
74d99fe2e1 M32Script cleanup. Fixes at least one non-minor and one minor bug.
git-svn-id: https://svn.eduke32.com/eduke32@4798 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-06 19:09:50 +00:00
helixhorned
5e574436e2 engine.c: minor stylistic changes. DONT_BUILD.
Since we're targeting C99/C++ now, we can finally declare variables as close
to their use as possible.

git-svn-id: https://svn.eduke32.com/eduke32@4797 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-05 23:12:36 +00:00
helixhorned
f311631d6e a-c.c: eliminate narrowing int32_t -> uint32_t conversions. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4786 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-01 19:52:08 +00:00
helixhorned
07bf374269 Fix build on platforms not magically #defining UNREFERENCED_PARAMETER. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4785 1a8010ca-5511-0410-912e-c29ae57300e0
2014-12-01 19:21:48 +00:00
terminx
89a9010db1 Fix warnings with VS2013 update 4. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4783 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-30 23:18:57 +00:00
hendricks266
058c3727e3 Fix the crash in the ASM relating to the dynamic allocation of ylookup.
git-svn-id: https://svn.eduke32.com/eduke32@4777 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-29 06:30:42 +00:00
hendricks266
f2fc1a6f15 Make sure the mouse is captured when the main menu transitions into MODE_GAME. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4776 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-29 03:43:11 +00:00
hendricks266
c42516c579 Fix mousewheel under SDL 1.2. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4775 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-29 03:21:56 +00:00
hendricks266
a1ec634dec Restore SDL 1.2 on Windows to a working state. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4774 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-29 03:07:33 +00:00
hendricks266
731e4ffa99 Fix POLYMER=0 GTK C++ build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4773 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-29 02:29:42 +00:00
hendricks266
dc9d552470 Restructure dynamicgtk to comply with C++ casting rules. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4772 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-29 00:32:28 +00:00
hendricks266
9d5a17c93e Eliminate -Wno-narrowing. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4771 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 23:57:21 +00:00
hendricks266
e29e5bfbcb GTK: Fix warnings and errors related to the banners. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4770 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 23:47:46 +00:00
hendricks266
32df15a254 Fix C/GTK2/SDL1.2 build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4769 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 08:30:31 +00:00
hendricks266
4e664fe878 Some minor fixes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4768 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 08:14:00 +00:00
hendricks266
20c7bbbea6 Fix the Wii build with the refactored sdlayer. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4767 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-28 08:12:40 +00:00
hendricks266
9268b9f0b6 Make a bunch of things extern "C". This should fix C++ builds on OS X and with Lunatic. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4766 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-26 04:39:23 +00:00
hendricks266
d89caf5187 Fix Lunatic C build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4765 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-26 04:37:22 +00:00
helixhorned
112d650843 Fix POLYMER=0 build and a couple of unused-variable warnings with it. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4764 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-25 23:46:28 +00:00
hendricks266
4e034e1331 Eliminate the printf_nowarn stuff that has long since been supplanted by TrackerCast. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4763 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-25 21:08:58 +00:00
hendricks266
f22e202d88 Fix some things when building on OS X. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4762 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-24 08:19:50 +00:00
hendricks266
2c7b31958a Fix build with x86_64-MinGW-w64. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4761 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-24 06:30:47 +00:00
helixhorned
cb606b0a11 In Lunatic build, make krand() a proper function again, called from Lua/FFI.
DONT_BUILD.

git-svn-id: https://svn.eduke32.com/eduke32@4759 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 18:37:24 +00:00
helixhorned
b65ae1b741 a-c.c: Compile vlineasm4nlogy() only if CLASSIC_NONPOW2_YSIZE_WALLS is #defined.
Also make three file-scope variables static.

git-svn-id: https://svn.eduke32.com/eduke32@4758 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 18:37:23 +00:00
helixhorned
e919dee00f engine.c: in wallscan(), fix oob of umost[] and dmost[] when x2 == xdim-1.
Analogously treat maskwallscan() and transmaskwallscan(), although I could
not get the respective accesses to be oob, too.

git-svn-id: https://svn.eduke32.com/eduke32@4757 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 18:37:21 +00:00
helixhorned
9907e79a0b Fix C build and build on Linux/SDL2.
- for the first point: 'struct glattribs sdlayer_gl_attributes[]' was defined
  at file scope, but 'glmultisample > 0' is not a compile-time constant.
- for the second point: r4749 changed the meaning of some conditional
  compilation (supposedly, unintentionally). I'm reverting it to pre-r4749
  but keeping the rewritten style. It's concerned with mouse thumb buttons.

git-svn-id: https://svn.eduke32.com/eduke32@4755 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 18:37:16 +00:00
terminx
c77c69d488 Fix MinGW build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4754 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:44:06 +00:00
terminx
52236d79a2 Fixups to sync WIP SDL refactor up with r4738. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4753 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:34:46 +00:00
terminx
d73f7f113d Minor cleanups, mostly just formatting. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4752 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:34:29 +00:00
terminx
2330c61519 WIP refactor of SDL interface. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4749 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:33:47 +00:00
terminx
99e21ffa94 Part 1 of attempting to adhere to C standard section 7.1.3. It turns out it's illegal to use identifiers that begin with _ or have __ anywhere in them. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4747 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:32:56 +00:00
terminx
9b91aac48c Inline krand() when not using KRANDDEBUG. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4744 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:28:52 +00:00
terminx
272ac9abe6 Add FORCE_INLINE to compat.h and apply it to a couple of things we'd strongly prefer be inlined. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4743 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:28:34 +00:00
terminx
2068d993a7 Fix Mapster32 fullscreen video modes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4740 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-22 12:27:57 +00:00
hendricks266
164d9ccb41 Set up mouse cursor display in menus, with idle timeout fully implemented. No functionality yet. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4738 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-17 07:39:12 +00:00
helixhorned
e5923955ef Fix C++ build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4737 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-07 22:07:14 +00:00
helixhorned
b3f55d014e In release builds, #define Xaligned_alloc as xaligned_malloc.
Otherwise, the out-of-memory handler is not called in case of failure.

git-svn-id: https://svn.eduke32.com/eduke32@4736 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-07 22:07:13 +00:00
helixhorned
44373a7698 a-c.c: don't USE_VECTOR_EXT with Clang, since it doesn't compile here.
git-svn-id: https://svn.eduke32.com/eduke32@4733 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-07 22:07:11 +00:00
hendricks266
1f9c37517a Replace DOS box-drawing characters in the ASM with sane ASCII. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4730 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-07 07:53:28 +00:00
helixhorned
f1f90439cf Fix voxels in classic -- my error, confusing divscale() and mulscale() in r4576.
Optimizations are left to the reader :P. I would prefer to look for ways of
giving the compilers hints about loops to unroll instead of having to read
the resulting mess of manual unrolling, though.

git-svn-id: https://svn.eduke32.com/eduke32@4728 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-06 23:43:52 +00:00
helixhorned
737af0387e engine.c: prevent an oob read in drawsprite_classic() w/ floor-aligned sprites.
git-svn-id: https://svn.eduke32.com/eduke32@4726 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-06 23:43:50 +00:00
helixhorned
232e479380 Fix oob write with stepping 'up' in the OSD history.
git-svn-id: https://svn.eduke32.com/eduke32@4725 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-06 23:43:49 +00:00
helixhorned
e8553b5398 baselayer.c: fix an oob write to ylookup[] intoduced in r4695.
On Linux, it started manifesting itself since r4719 as crashes whose
backtraces pointed to malloc() and were not helpful. Valgrind finally
uncovered this.

git-svn-id: https://svn.eduke32.com/eduke32@4724 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-06 23:43:47 +00:00
terminx
502f5dac64 Useless change I forgot. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4723 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:44:27 +00:00
terminx
9c001e6e2e Fix a handful of crash bugs I caused with the 32-bit ASM version of the classic renderer. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4719 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:36:28 +00:00
terminx
3c8034609f Fix a crash I caused with MSVC in OSD_SetLogFile(). Apparently, the behavior of setvbuf() when passed a NULL ptr for a buffer is actually left up to the implementation regarding what it does with the size parameter... DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4718 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:36:05 +00:00
terminx
fca06dc31c Clean up classic renderer header (a.h) a bit. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4717 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:35:50 +00:00
terminx
e516fb0c8a A couple of additional compat.h formatting changes. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4716 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:35:36 +00:00
terminx
2badda6ec4 clang-format a couple of pragma headers. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4715 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:35:22 +00:00
terminx
e677923165 LUT for slope recip calculations in classic. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4714 1a8010ca-5511-0410-912e-c29ae57300e0
2014-11-02 05:35:06 +00:00
helixhorned
8605285f7f compat.h: pedantic whitespace formatting. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4708 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-30 04:59:23 +00:00
terminx
9c1a32c790 CPLUSPLUS mode build fix. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4705 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:07:35 +00:00
terminx
43a759ec07 Try out __restrict in the classic renderer. #define'd for easy removal in case it causes problems or is useless.
git-svn-id: https://svn.eduke32.com/eduke32@4702 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:06:43 +00:00
terminx
9601554320 Fix MSVC warning in Polymer
git-svn-id: https://svn.eduke32.com/eduke32@4701 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:06:20 +00:00
terminx
91e2556ad2 Inline yax_getbunches with old map format. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4700 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:06:05 +00:00
terminx
384aec522a Fix a couple of clang warnings. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4697 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:05:15 +00:00
terminx
eed56532a8 Unify spritesx/spritesy/spritez into a single vec3_t spritesxyz. It still has a stupid name like "spritesxyz" because I wanted references to it to remain easy to find in case of problems.
git-svn-id: https://svn.eduke32.com/eduke32@4696 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:04:43 +00:00
terminx
021d1241eb Get rid of all the static arrays with sizes based on MAXXDIM and MAXYDIM
git-svn-id: https://svn.eduke32.com/eduke32@4695 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:04:28 +00:00
terminx
ca3dc4d629 Minor additional pragma cleanup
git-svn-id: https://svn.eduke32.com/eduke32@4692 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:03:29 +00:00
terminx
59278b5398 Add missing "inline" to const TrackedType()
git-svn-id: https://svn.eduke32.com/eduke32@4691 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:03:06 +00:00
terminx
aa7e3e0c25 Fix a couple warnings, and something I fucked up after reading a loop wrong. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4690 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-29 17:02:50 +00:00
hendricks266
b4ef2d43e8 Improve fine-grained GCC and clang version detection, fixing recently introduced build issues. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4685 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 10:17:35 +00:00
hendricks266
0f62db298c Remove Wii-specific ASM for scale(). Libdivide is likely faster; tests on a real Wii pending. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4683 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 10:17:04 +00:00
terminx
e087ffabfc Re-apply part of r4647. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4681 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:36:50 +00:00
terminx
8934226bb2 Another 5000 lines of pain and tears. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4680 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:36:34 +00:00
terminx
de1d236366 Minor OSD_Exec() tweaks that got lost when chopping up a larger set of changes
git-svn-id: https://svn.eduke32.com/eduke32@4678 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:35:05 +00:00
terminx
0e78bf1eb5 Minor engine optimizations, worth a couple fps
git-svn-id: https://svn.eduke32.com/eduke32@4675 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:34:25 +00:00
terminx
ea929c7e43 Fix warning in dxtfilter
git-svn-id: https://svn.eduke32.com/eduke32@4674 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:34:08 +00:00
terminx
9ca0e4ccc4 vec2f_t drawpoly()
git-svn-id: https://svn.eduke32.com/eduke32@4671 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:33:26 +00:00
terminx
0393b0b015 kplib warning fix. I admit to not testing this, because fuck .gif files.
git-svn-id: https://svn.eduke32.com/eduke32@4670 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:33:11 +00:00
terminx
ecb11010ef Fix warnings in texcache
git-svn-id: https://svn.eduke32.com/eduke32@4669 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:32:57 +00:00
terminx
c8ea7baf72 set_globalpos(), updates both integer (globalposx/y/z) and float (fglobalposx/y/z) representations of the current camera view position. Storing the float representation pre-converted saves us from the delay incurred on ARM when converting an integer and transferring it to the FPU, though this delay is mostly negated already by using the hardfp ABI.
git-svn-id: https://svn.eduke32.com/eduke32@4667 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:32:26 +00:00
terminx
5897c844d2 Minor texcache cleanup. Nukes the hilarious MAXTILES<<1 sized array of pointers in the global texcache struct.
git-svn-id: https://svn.eduke32.com/eduke32@4666 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:32:01 +00:00
terminx
0cf527914f Minor optimizations (loop unrolling) to LZW functions in cache1d, improves throughput ~20% on my i7
git-svn-id: https://svn.eduke32.com/eduke32@4665 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:31:41 +00:00
terminx
d74a6a7e5d Fix some dumbass warnings I caused
git-svn-id: https://svn.eduke32.com/eduke32@4664 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:31:27 +00:00
terminx
683a4fb728 Nuke unused lzwnew.c/h
git-svn-id: https://svn.eduke32.com/eduke32@4663 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:31:12 +00:00
terminx
cbe91be9ff Additional engine cleanups and optimizations. About as generic as it sounds. Also changes internal dummytile/tilefromtexture behavior so that the LZ4 compressed version of a texture is kept and the cache1d entries associated with the tiles can expire, like any other tile.
git-svn-id: https://svn.eduke32.com/eduke32@4661 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:30:38 +00:00
terminx
019315dd59 Rewrite OSD_Exec() to allow executing a .cfg that lives in a .grp or .zip. Use _IOLBF instead of _IONBF for the log in release builds.
git-svn-id: https://svn.eduke32.com/eduke32@4660 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:29:53 +00:00
terminx
6c6b68d534 Various additional optimizations: add CLASSIC_SLICE_BY_4 mode to unroll some of the loops in a-c, replace integer divisions by a divisor unknown at compile time with usage of libdivide, clean up pragmas further by removing more old stuff that wasn't used anywhere. This is another one of those nasty commits that make people cry. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4658 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:29:21 +00:00
terminx
020dc85fd0 Additional Polymost cleanup, attempt to fix enemy shadows (they are still not right)
git-svn-id: https://svn.eduke32.com/eduke32@4656 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:27:35 +00:00
terminx
3a60abfb94 Nuke MFLAGS_NOCONV, hoist a few conditions out of loops in Polymost model drawing
git-svn-id: https://svn.eduke32.com/eduke32@4653 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:26:46 +00:00
terminx
73ecabaff9 Fix z fighting issues with wall and floor sprites. This isn't perfect, and somebody like Plgman or Helixhorned who better understands how the depth buffer positions are calculated will be able to do a much better determination of how much to offset the glDepthRange values based on distance to the sprite.
git-svn-id: https://svn.eduke32.com/eduke32@4652 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:26:31 +00:00
terminx
dedadcb76e That's one hell of a typo
git-svn-id: https://svn.eduke32.com/eduke32@4651 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:26:13 +00:00
terminx
57cc3fe82a Clean up GL background tinting a little bit. Remove access to glRectd in favor of glRecti.
git-svn-id: https://svn.eduke32.com/eduke32@4649 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-25 03:25:35 +00:00
hendricks266
62b37ddb68 Further work on the Xcode project.
git-svn-id: https://svn.eduke32.com/eduke32@4648 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-20 07:37:29 +00:00
hendricks266
8771614f87 Fix the Wii build and clean up remaining warnings. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4647 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-19 00:44:23 +00:00
hendricks266
6ff363a049 OS X: Add a preliminary Xcode project. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4646 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-18 04:50:47 +00:00
hendricks266
295cf82323 Clean up warnings and build issues when building under OS X 10.9. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4644 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-16 21:03:24 +00:00
terminx
706aec5527 Rename crc32() to Bcrc32() to avoid conflicts with the crc32() function in libpng/libz. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4642 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-01 17:09:54 +00:00
terminx
81e9761e50 Set SDL_GL_ACCELERATED_VISUAL to 1
git-svn-id: https://svn.eduke32.com/eduke32@4641 1a8010ca-5511-0410-912e-c29ae57300e0
2014-10-01 17:09:24 +00:00
terminx
9a04065b5e I'm retarded. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4640 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 18:18:15 +00:00
terminx
4263626f97 Misc additional optimizations, mostly to polymost/mdsprite. Also separate voxmodel into its own source file and object. This commit is pretty large because I was hitting the limit of what could realistically be carved up into smaller patches. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@4639 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:18:43 +00:00
terminx
2631da8822 Fix usage of uninitialized value
git-svn-id: https://svn.eduke32.com/eduke32@4638 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:18:07 +00:00
terminx
cb02cdc571 Re-use temporary buffer for tilefromtexture true color -> paletted conversion and free when finished with the .def instead of freeing and re-allocating for every tile
git-svn-id: https://svn.eduke32.com/eduke32@4637 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:17:53 +00:00
terminx
ff74aa613e polymost_invsqrt(), reorganize pthtyp for better member alignment
git-svn-id: https://svn.eduke32.com/eduke32@4636 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:17:37 +00:00
terminx
0f5be25a68 Faster C versions of ksgn() and klabs()
git-svn-id: https://svn.eduke32.com/eduke32@4635 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:17:22 +00:00
terminx
2d0c76e1a9 kplib optimizations and cleanup; faster versions of some functions, #ifdef out support for a couple of useless formats
git-svn-id: https://svn.eduke32.com/eduke32@4634 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:17:06 +00:00
terminx
7c79d2ce80 Blrintf
git-svn-id: https://svn.eduke32.com/eduke32@4632 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:16:35 +00:00
terminx
423b87a707 Faster CRC32 implementation (slicing-by-4 for 32-bit platforms and slicing-by-8 for 64-bit)
git-svn-id: https://svn.eduke32.com/eduke32@4625 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:15:04 +00:00
terminx
144a4798ce More Polymost cleanup, also consolidate tilesizx and tilesizy into a single tilesiz vec2_t to ensure both x and y are always in the same cache line. I may add a new vec2_16t later. Still need to take care of emulating the old flat array for the sake of CON access.
git-svn-id: https://svn.eduke32.com/eduke32@4623 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:14:21 +00:00
terminx
deb196f8a6 Fix build error
git-svn-id: https://svn.eduke32.com/eduke32@4620 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:12:41 +00:00
terminx
3623645815 Clean up the "X" variants of malloc and friends to avoid unncessary function calls and parameter passing
git-svn-id: https://svn.eduke32.com/eduke32@4619 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:12:27 +00:00
terminx
53ed4c619c Make glColor3f() available as bglColor3f()
git-svn-id: https://svn.eduke32.com/eduke32@4618 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:12:09 +00:00
terminx
c5835ef741 Remove "volatile" qualifier from mouse related variables, no longer required after the long ago removal of the hack that polled mouse input in a separate thread
git-svn-id: https://svn.eduke32.com/eduke32@4617 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:11:50 +00:00
terminx
598876e411 Extra files for previous commits
git-svn-id: https://svn.eduke32.com/eduke32@4607 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:06:57 +00:00
terminx
d279344697 Extra files to support previous commits. Change hashing stuff to intptr_t so it can be used as a dictionary of pointers, change brightness/gamma/contrast to float instead of double, other misc changes. None of these commits build on their own so don't even bother.
git-svn-id: https://svn.eduke32.com/eduke32@4606 1a8010ca-5511-0410-912e-c29ae57300e0
2014-09-30 04:06:32 +00:00