Commit graph

13206 commits

Author SHA1 Message Date
Christoph Oelckers
ea1d6634f7 - moved the Zones array into FLevelLocals.
- replaced TStaticArray with regular TArrays.

They had incomplete implementations preventing proper cleanup of the level loading code. It makes more sense to add the missing methods to the regular TArray and use that.
This also makes some changes to how the game nodes are used to avoid creating a copy: If the head node's pointer is stored in a separate variable, no code needs to check which of the two arrays gets used.
2017-03-17 12:11:37 +01:00
alexey.lysiuk
c1b774e809 Fixed compilation with GCC/Clang
src/p_glnodes.cpp:670:3: error: cannot jump from this goto statement to its label
src/p_glnodes.cpp:682:4: error: cannot jump from this goto statement to its label
2017-03-17 12:34:05 +02:00
Christoph Oelckers
309d086a15 - GCC complained about this part. 2017-03-17 10:16:04 +01:00
Christoph Oelckers
39b329e3f7 - this was accidentally left in. 2017-03-17 10:12:47 +01:00
Magnus Norddahl
fc0f2292ab - add non-sse version of the sprite drawers
- fix some typos
2017-03-17 08:44:33 +01:00
Magnus Norddahl
1435832b09 - added non-sse span drawers 2017-03-17 07:36:02 +01:00
Magnus Norddahl
5644b2c0fd Create non-sse version of the wall drawers 2017-03-17 06:58:36 +01:00
Magnus Norddahl
a6e47b571f - change _mm_load_ss to _mm_set_ss just in case compilers are really dumb 2017-03-17 06:19:26 +01:00
Christoph Oelckers
fea4079b7c - moved nodes into FLevelLocals. 2017-03-17 01:42:37 +01:00
Christoph Oelckers
f818d25542 - last commit deleted a small piece of code. 2017-03-17 00:31:15 +01:00
Christoph Oelckers
f201dab534 - moved the subsectors into FLevelLocals. 2017-03-17 00:22:52 +01:00
Christoph Oelckers
59b684bdbc - moved the segs array into FLevelLocals. 2017-03-16 21:34:04 +01:00
Christoph Oelckers
2b2c986bd0 - cleanup of GL renderer interface and improper header use in software renderer. 2017-03-16 21:34:03 +01:00
Christoph Oelckers
245a9ef80c - fixed MenuItemBase.OnMenuCreated was not declared virtual. 2017-03-16 21:34:03 +01:00
Magnus Norddahl
1f109a5deb - fix wrong particle Y offset 2017-03-16 19:15:42 +01:00
Rachael Alexanderson
55b95e68db - Restored a file that apparently worked fine back at a certain commit (0176c29). 2017-03-16 13:55:10 -04:00
Magnus Norddahl
dbea29e02c - added missing memory barrier 2017-03-16 17:58:41 +01:00
Magnus Norddahl
f1b03b48e9 - add thread safety to GetSpecialLights 2017-03-16 17:53:12 +01:00
Christoph Oelckers
b529b1e3a7 - removed several unneeded GL headers from the software renderer's sources.
- consolidated the code to calculate a sprite's display angle for all 3 renderers.

As it turned out, they all differed in their feature support because they had always been updated independently by different people.
2017-03-16 13:49:34 +01:00
Christoph Oelckers
005e6871f9 - increased the snd_channels default and minimum.
The values were still 8 and 32 respectively which applied to hardware from last decade, but for modern mods these are simply too low. New values are 64 as minimum and 128 as default.

- added script access to a sector's colormap and specialcolors fields. (Writing only through dedicated functions because these fields are render state which may need to trigger some form of refresh if the renderer changes.)
2017-03-16 10:38:56 +01:00
alexey.lysiuk
889a2ae6aa Fixed compilation with GCC/Clang 2017-03-16 11:13:02 +02:00
Christoph Oelckers
3aa7687d91 - made 'nocoloredspritelighting' a global option and also implemented it in the software renderer. 2017-03-16 00:56:03 +01:00
Christoph Oelckers
91da8aecdb - fixed fog init for SW Truecolor. 2017-03-15 23:38:12 +01:00
Christoph Oelckers
76d3ae5ba2 made the sector's color_* properties work in the software renderer.
With no 3D floors this appears to be ok, but there are so many places where colormaps are being set in the software renderer that I cannot guarantee that I got all of them correct. This will need some testing.
2017-03-15 23:24:53 +01:00
Christoph Oelckers
921bc763fb - separated the software-renderer-specific parts of colormap processing from the common parts.
- moved testcolor and test fades into SWRenderer files.

These CCMDs work by hacking the default colormap and were never implemented for hardware rendering because they require many checks throughout the code.
2017-03-15 22:04:59 +01:00
Christoph Oelckers
cd015f9340 - make the colormap comparison against NormalLight inline because this is by far the most frequent case and any cycle being saved here counts. 2017-03-15 22:04:59 +01:00
Christoph Oelckers
9a24771a7d - refactored FDynamicColormap out of sector_t.
This has increasingly become an obstacle with the hardware renderer, so now the values are being stored as plain data in the sector, with the software renderer getting the actual color tables when needed. While this is a bit slower than storing the pregenerated colormap, in realistic situations the added time is mostly negligible in the microseconds range.
2017-03-15 22:04:59 +01:00
Rachael Alexanderson
a2fc2fb707 - Add new drawer: AddClampShadedSprite
- fixed: AddShaded did not have a drawer associated with it in the software renderer - used new drawer for this purpose.
2017-03-15 14:40:22 -04:00
Christoph Oelckers
d0c77d7264 - added a GetRenderStyle function to Actor, so that the internal render style can be retrieved in a format suitable for scripting. 2017-03-15 10:36:41 +01:00
Magnus Norddahl
fea2361815 - fix broken voxel palette colors when using the game palette 2017-03-15 04:33:01 +01:00
Magnus Norddahl
225ce82a5a - turned r_scene_multithreaded back off as zdcmp2 revealed some problems 2017-03-15 04:01:28 +01:00
Magnus Norddahl
366d1637ce - enable r_scene_multithreaded 2017-03-15 03:01:43 +01:00
Magnus Norddahl
80f9c81e36 - move PrepareTexture out of the inner drawer loops 2017-03-15 02:59:33 +01:00
Christoph Oelckers
64bdc8c495 - fixed some incomplete checks for static arrays.
- made AActor::OkaytoSwitchTarget scripted virtual.
2017-03-15 01:39:59 +01:00
Christoph Oelckers
d283beb063 - implemented static constant arrays in class scope. 2017-03-14 23:55:30 +01:00
Magnus Norddahl
93908bc2ef - fix crash if a worker thread is the first thread to queue drawer commands 2017-03-14 23:47:41 +01:00
Magnus Norddahl
3838ec3edc - allow drawer queues to run immediately to improve r_scene_multithreaded performance
- removed unused pass ranges in DrawerThread
2017-03-14 23:03:14 +01:00
Christoph Oelckers
6926875b21 - allow parsing of static constant arrays in class scope.
This is only the parsing part, the arrays are not yet getting evaluated.
This required quite a hacky workaround because the gramma couldn't be made to accept the rule. The scanner will check if a 'static' token is immediately followed by a 'const' token and will combine both to a new 'staticconst' token that does not create conflicts with other rules.
2017-03-14 20:22:37 +01:00
Christoph Oelckers
539af96b8e - fixed variable size mismatch and some warnings for 32 bit builds. 2017-03-14 18:48:51 +01:00
Christoph Oelckers
d86bd470e5 - moved two MAPINFO settings that are not exclusively used by the OpenGL renderer to the common code. 2017-03-14 18:31:11 +01:00
alexey.lysiuk
e1cd034698 Fixed compilation with GCC/Clang 2017-03-14 18:24:34 +02:00
Christoph Oelckers
3c6e9f361c - fixed typo in fog boundary check. 2017-03-14 16:13:00 +01:00
alexey.lysiuk
6b8ea7ead3 Fixed comparison of class names for functions and fields
https://mantis.zdoom.org/view.php?id=426
2017-03-14 15:50:05 +01:00
Christoph Oelckers
44a087554f - moved the OpenGL fog properties to FLevelLocals to simplify their handling.
- added access to the glow properties for ZSCript and ACS.
2017-03-14 13:54:24 +01:00
Christoph Oelckers
72ecaba50a - fixed: When vr_quadbuffering is on and context creation fails, first retry without it before falling back on the compatibility handler. 2017-03-14 13:50:33 +01:00
Christoph Oelckers
0ebe98d1e0 - added support for reading JASC palette files. I hope it's correct, considering I have no such files to test. The format should be simple enough, though. 2017-03-14 12:16:42 +01:00
Christoph Oelckers
f70d0a6ced - added a setinv cheat CCMD. 2017-03-14 11:44:21 +01:00
Christoph Oelckers
dd8963142f - fixed: P_RailAttack must send DMG_PLAYERATTACK if the attack originates from a player. 2017-03-14 11:13:52 +01:00
Christoph Oelckers
6db355a947 - added a callback to menu items for when a new menu gets created.
- added a StartSlideshow ACS and ZScript command and extended the functionality to specify the slideshow's name when starting it.

This is for triggering any kind of intermission definition in the middle of a level - keep in mind that this may not be set up to loop!
2017-03-14 10:41:13 +01:00
Christoph Oelckers
fbcf1b2c45 - restored a line of accidentally deleted code in the animated door thinker. 2017-03-14 10:08:43 +01:00