Commit graph

1158 commits

Author SHA1 Message Date
Christoph Oelckers
c847180bdc - reinstated the sector light clamping threshold from before version 3.3.
It turned out that without the clamping the feature does not work well, thanks to a poorly chosen scale of the original arguments.
2018-11-04 20:57:18 +01:00
Christoph Oelckers
0d54d335c4 - use a saner data structure to store the BrokenLines.
Calling the old method with a pointer to an array of unspecified length 'dirty' would be an understatement.
Now it uses a TArray to store the single elements
2018-10-31 19:13:54 +01:00
Christoph Oelckers
ff69d945e1 - fixed: A global variable was used to pass MeansOfDeath to ClientObituary.
The problem here is that this affects the public scripting interface so it cannot be committed to master without further adjustments.

# Conflicts:
#	src/p_interaction.cpp
2018-07-29 17:00:05 +02:00
Christoph Oelckers
0ed1077f29 - correct checks for HasDynamicLights 2018-06-26 08:51:21 +02:00
Christoph Oelckers
d73d89762d Don't let DEarthquake depend on r_viewpoint.
The ticFrac value should be passed as a parameter, especially since this gets called from code that sets up r_viewpoint.
2018-06-19 08:32:25 +02:00
Christoph Oelckers
bd1525eb9d - fixed: ADynamicLight's shadowmap index must be reset when loading a savegame. 2018-06-10 22:57:34 +02:00
Christoph Oelckers
1648fc6a07 Fixed initialization issues with dynamic lights.
Actors get initialized from their defaults so anything done in the constructor or some explicit member initialization will be overwritten.
They must use their properties for setting up configurable fields and do the rest in BeginPlay.
2018-04-25 09:14:01 +02:00
alexey.lysiuk
2ae8d39441 Removed all superfluous #include's
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
alexey.lysiuk
3212da8fcf Cleaned up #include's in dynamic lights code 2018-04-19 11:12:29 +03:00
Christoph Oelckers
f57c804a5a store shadow map index in the light actor instead of a separate TMap
This frees another file of a direct renderer dependency and generally also should be faster
2018-04-16 08:42:37 +02:00
Christoph Oelckers
df4f435952 - merged vid_renderer, swtruecolor and r_polyrender into one CVAR to reduce menu clutter.
- with renderers freely switchable, some shortcuts in the 3D floor code had to be removed, because now the hardware renderer can get FF_THISINSIDE-flagged 3D floors.
- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned. For the software renderer the light needs to retain its original values.
2018-04-07 23:30:28 +02:00
Christoph Oelckers
adbeb3f251 Merge remote-tracking branch 'remotes/origin/master' into 2D_Refactor 2018-04-07 18:50:24 +02:00
alexey.lysiuk
b6f184491b Restored vanilla behavior of lightning for original Hexen
https://forum.zdoom.org/viewtopic.php?t=60103
2018-04-04 16:46:01 +03:00
Christoph Oelckers
853903bb7e - removed the border refresh counter.
This was just a relic of DirectDraw as main backend and is no longer needed.
2018-04-03 00:50:40 +02:00
Christoph Oelckers
1fc4c9801b - moved all GLDEFS parsing into a dedicated source file.
- split gl_postprocessshader.h in two so that the hardware independent part can be used by GLDEFS without pulling in all of OpenGL.
2018-04-02 12:28:20 +02:00
Christoph Oelckers
7083103a0e - moved dynlightdata to r_data 2018-04-02 09:51:51 +02:00
Christoph Oelckers
6d6196388e - made SPROFS a more usable feature.
This was originally invented to fix the sprite offsets for the hardware renderer.
Changed it so that it doesn't override the original offsets but acts as a second set.
A new CVAR has been added to allow controlling the behavior per renderer.
2018-03-31 10:37:46 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
2541bd93fc - made DHUDMessageBase non-abstract. 2018-03-03 09:52:34 +01:00
Christoph Oelckers
b327aa737a Merge remote-tracking branch 'remotes/origin/materials' 2018-03-03 08:54:04 +01:00
Christoph Oelckers
bb16e34bf4 - exposed the HUD message interface to ZScript.
Note that this is just the bare abstract interface. It is up to content makers to define usable HUD message classes and optionally contribute them to the engine.
2018-03-01 11:45:19 +01:00
Christoph Oelckers
dd893b6a0c - split off the interface part of DHUDMessage into an abstract base class.
The purpose is to allow creating custom message types in ZScript.
2018-03-01 10:33:03 +01:00
Magnus Norddahl
c7ec489846 Merge remote-tracking branch 'origin/master' into materials 2018-01-23 20:16:32 +01:00
Magnus Norddahl
f3c55c01c8 Add material definition to GLDEFS 2018-01-20 16:28:24 +01:00
Magnus Norddahl
5f36b86013 - Add dynamic spot lights 2018-01-04 17:58:11 +01:00
alexey.lysiuk
8f7ca00d19 Added optional angles to player's coordinates display
Set hud_showangles CVAR to display pitch, yaw, roll below player's coordinates
2017-12-30 12:10:39 +02:00
Major Cooke
10465c1d27 - Fade cancelling should only always be active for A_SetBlend fades, not always for everything else (such as ACS fades). 2017-12-27 23:34:44 -05:00
Major Cooke
fa0082aef6 Added ability to perform reverse fades with A_SetBlend 2017-12-27 20:51:13 -05:00
Christoph Oelckers
f0dc619b5b - fixed bad use of FScanner::GetNumber and GetFloat in code inherited from ZDoomGL.
This could lead to bad error messages if some malformed definitions were used.
2017-11-19 15:30:45 +01:00
alexey.lysiuk
2e33165edf Moved freeing of data stored in HUD message objects to OnDestroy() function
https://forum.zdoom.org/viewtopic.php?t=57163
2017-07-10 10:41:50 +03:00
Christoph Oelckers
3b024c347b - use a dedicated flag word for the dynamic light flags instead of piggybacking on some flags4 bits. 2017-06-18 10:15:31 +02:00
Christoph Oelckers
afa2888acb - fixed size clamping of sector lights to use 1024 as maximum, not 255 as inherited from ZDoomGL. 2017-05-31 10:41:43 +02:00
alexey.lysiuk
43fc5633af Fixed player falling through narrow notch upon unmorphing
https://forum.zdoom.org/viewtopic.php?t=56230
2017-05-02 17:22:50 +03:00
Rachael Alexanderson
8c992647de - fixed: "vid_renderer" should NEVER be referenced outside of the hardware code. This may fix a crash when changing modes with vid_renderer not matching actual renderer 2017-04-30 16:11:34 -04:00
Christoph Oelckers
3ccd4aa0d1 - fixed: The powerup icons did not blink when expiring. 2017-04-21 18:08:30 +02:00
Christoph Oelckers
57d703236b - changed Doom source license to GPL in all subdirectories and fixed missing licenses in a few other files. 2017-04-17 12:27:19 +02:00
Christoph Oelckers
4f67dc4f01 - fixed: DCorpsePointer's constructor was doing nasty stuff while the object wasn't fully set up yet. 2017-04-15 19:07:13 +02:00
Major Cooke
259e3127fe - Fixed crash with corpse queueing. 2017-04-15 16:43:40 +02:00
Christoph Oelckers
329c168cc2 - added a distance parameter to A_SprayDecal. 2017-04-14 16:28:54 +02:00
Christoph Oelckers
cd180d29c7 - block direct use of 'new' for DObjects.
This is to ensure that the Class pointer can be set right on creation. ZDoom had always depended on handling this lazily which poses some problems for the VM.
So now there is a variadic Create<classtype> function taking care of that, but to ensure that it gets used, direct access to the new operator has been blocked.

This also neccessitated making DArgs a regular object because they get created before the type system is up. Since the few uses of DArgs are easily controllable this wasn't a big issue.

- did a bit of optimization on the bots' decision making whether to pick up a health item or not.
2017-04-14 13:31:58 +02:00
Christoph Oelckers
522ce59be2 - use in-class initialization for FLightDefaults to avoid uninitialized variables in the future. 2017-04-13 12:50:43 +02:00
alexey.lysiuk
cced9e014b Fixed issue with actors occasionally unaffected by dynamic lights
https://mantis.zdoom.org/view.php?id=536
2017-04-13 13:14:33 +03:00
Christoph Oelckers
6599e2c425 - moved the VM types into their own file and only include it where really needed. 2017-04-13 01:12:04 +02:00
Christoph Oelckers
80801d11b1 - removed some redundant static_casts. 2017-04-12 10:29:04 +02:00
Christoph Oelckers
0e0eca0e0f - replaced some dyn_casts with calls to FindActor.
- fixed type checks in A_Morph.
2017-04-12 01:29:51 +02:00
Christoph Oelckers
311ce2362a - started moving stuff out of PClassActor into meta data.
This reinstates the old FActorInfo as part of the meta data a class can have so that the class descriptor itself can be freed from any data not directly relevant for managing the class's type information.
2017-04-11 19:37:56 +02:00
alexey.lysiuk
175e784b67 Fixed applying of powerup effects after (un)morph
https://mantis.zdoom.org/view.php?id=556
2017-04-10 15:46:30 +03:00
Christoph Oelckers
f95c29ad28 cleaned up the scaling options.
- all 5 settings affected by uiscale have been changed to have the exact same semantics: -1, if supported means special scaling, this is available for HUD and status bar, 0 means to use uiscale, any larger value is a direct scaling factor.
- scaling is cut off when the factor is larger than screenwidth/320 or screenheight/200 because anything larger will definitely not fit.
- a lot of code has been cleaned up and consolidated. Especially the message code had an incredible amount of redundancy.
- all scaling options have been moved into a submenu. This menu is not complete, though - it still requires a special menu widget to convey the intended information without confusing the user.
2017-03-30 02:16:23 +02:00
nashmuhandes
99d1581c27 Added "DontLightActors" flag for dynamic lights. Actors will not be illuminated by lights that are given this flag. 2017-03-28 21:33:16 +02:00
Christoph Oelckers
a112b29c43 - implemented the inventory bar. This object is a bit special because it requires a lot of parameters, most of which are easily set to defaults. To make handling easier, most are passed through a container object which does some processing up front.
- finished work on the Doom status bar. I also took the opportunity to fix the layout of the inventory bar which is a bit broken in SBARINFO.
- tuned the selection rules for deciding what creates the status bar, so that the most recent definition that can be found is chosen.
2017-03-27 01:02:10 +02:00