Commit graph

2073 commits

Author SHA1 Message Date
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