Commit graph

10507 commits

Author SHA1 Message Date
Christoph Oelckers
e7cd5ec2bb - fixed: The conditional operator could clobber a local variable if it was the result of the true expression. 2017-01-02 22:26:36 +01:00
Christoph Oelckers
1a16f664e4 - added a TStaticArray class that allows safe access to resizable static data (like the sectors, linedefs, etc.) for the VM.
- used this to replace the line list in Sector because that gets already used and implemented proper bounds checks for this type of array.
2017-01-02 21:40:52 +01:00
Christoph Oelckers
b31b6589e7 - fixed: PPointer was unable to handle pointers to class types for savegames. 2017-01-02 13:37:09 +01:00
Christoph Oelckers
7c3c886a90 - use the attenuated light definitions from QZDoom.
- apply them also to Freedoom.
- to compensate for the increase in light size required for attenuated lights to look correct, when running in legacy mode, they to be reduced in size to 2/3 of their defined size because the textured lighting method does not support real attenuation.
- removed the ancient size limit of 255 for light sizes which comes from a time when args were bytes.
2017-01-02 13:17:03 +01:00
Christoph Oelckers
6ab8e90911 - parse GLDEFS and its game-specific variants in lump order instead of both names sequentially. 2017-01-02 00:28:30 +01:00
Christoph Oelckers
9948189193 - scriptified PowerProtection and PowerDamage.
- made ModifyDamage calls iterative instead of recursive. With going through the VM they'd be too costly otherwise.
- small optimization: Detect empty VM functions right when entering the VM and shortcut them. This is to reduce the overhead of virtual placeholders, which in a few cases (e.g. CanCollideWith and ModifyDamage) can be called quite frequently.
2017-01-01 23:11:48 +01:00
Christoph Oelckers
1d3afce59b - let SBARINFO treat 'null' as 'untranslated'. Strictly speaking this wasn't a bug but apparently some people tend to use 'null' as a general placeholder for 'nothing', even where not intended. 2017-01-01 22:52:11 +01:00
Christoph Oelckers
5de3d662cb - re-added the glow properties for UDMF which somehow got lost. 2017-01-01 19:36:51 +01:00
Christoph Oelckers
66cc68606f - scriptified the methods of APowerMorph.
- made some changes to PowerMorph to better deal with recursive calls from UndoPlayerMorph. The flag hackery was only needed because the 'alternative' pointers were cleared far too late.
2017-01-01 19:23:43 +01:00
Christoph Oelckers
2d2963ead4 - fixed: The StripRight fix left some code from a previous fix in that no longer applies. 2017-01-01 16:55:45 +01:00
Christoph Oelckers
80effbb547 - fixed: A_M_Refire's 'ignoremissile' parameter lost its default value. 2017-01-01 15:41:40 +01:00
Christoph Oelckers
5d9cea9e0e - fixed: FString::StripRight's space checking counter was broken and would cause deletion of the last valid character in the string. 2017-01-01 14:44:16 +01:00
Christoph Oelckers
356c5f2e08 - removed the ZScript warning. 2017-01-01 12:29:03 +01:00
Christoph Oelckers
d5233c2bd2 - do the same for brightmaps, Doom's original ones also don't really match with Freedoom. 2017-01-01 12:19:15 +01:00
Christoph Oelckers
61a9a308e2 - forgot the filter directory. 2017-01-01 11:58:40 +01:00
Christoph Oelckers
3b30b4d979 - use filter directories for light definitions so that they do not get used for unwanted IWADs using the same game type.
- fixed light definitions for Freedoom to match the graphics.
2017-01-01 11:57:07 +01:00
Edoardo Prezioso
9575715b1e - Added support to GCC/Clang sanitizers. 2017-01-01 00:17:42 +01:00
Christoph Oelckers
e4c63563e3 - fixed: The 3D floor light splitting code for sprites did not copy the sector's fog density.
- fixed: fog calculations for fuzz effects were wrong.
2017-01-01 00:16:53 +01:00
Edoardo Prezioso
6b943043d1 - Update the list of dummy actor flags from Zandronum. 2016-12-31 23:02:01 +01:00
Christoph Oelckers
28d79cc2b0 - added some profiling code to the VM. 2016-12-31 17:59:48 +01:00
Christoph Oelckers
3d61d2c1f4 - reviewd script code for spawn calls that did not check their results.
Nothing should ever assume that spawning an actor is unconditionally successful. There can always be some edge cases where this is not the case.
2016-12-31 15:40:51 +01:00
ZZYZX
c845fc126a Enabled user shader for a cameratexture 2016-12-31 12:17:24 +01:00
Christoph Oelckers
267b1842b4 - scriptified a few more of the simpler powerups. 2016-12-31 01:08:09 +01:00
Christoph Oelckers
3b524cbed4 - scriptified PowerInfiniteAmmo to test the exported functions. 2016-12-31 00:20:02 +01:00
Christoph Oelckers
fe0f19e1e0 - exported Powerup.InitEffect and EndEffect to scripting. 2016-12-30 23:32:43 +01:00
Christoph Oelckers
5e34bad03b - fixed: AActor::Tick must call CallDoEffect, not DoEffect for its inventory items or scripted overrides won't be called. 2016-12-30 21:32:06 +01:00
Christoph Oelckers
a105a08bd6 - restored the original implementation of DONTOVERLAP, because Heretic depends on it being somewhat broken.
A side effect of the incorrect implementation is that Gargoyles hitting other Gargoyles won't call P_DamageMobj.
2016-12-30 20:00:24 +01:00
Christoph Oelckers
a000b57204 - fixed player visibility determination by tracking and translating the actual actor position in addition to the camera position through portals. I hope this fixes the randomly appearing player sprites for good. 2016-12-29 22:19:09 +01:00
Christoph Oelckers
f52744e8a4 - fixed: When looking through a plane mirror the portal plane exclusion logic needs to be flipped, because the mirror inverts the vertical view direction. 2016-12-29 19:54:38 +01:00
Christoph Oelckers
125a30307a Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-29 14:34:13 +01:00
Christoph Oelckers
a3070e8846 - fixed: FGLTexture::CreateTexBuffer needs to be more careful with setting the texture's translucency information.
First, if it has already been determined the value should be left alone and second, for translated textures the generated buffer is inconclusive so in that case it cannot be used at all.
2016-12-29 14:33:53 +01:00
Christoph Oelckers
4f21ff275c - removed duplicate portal_ceil_alpha and portal_floor_alpha UDMF properties.
These already existed as 'alphafloor' and 'alphaceiling' and got accidentally duplicated by Eternity.
2016-12-29 11:44:07 +01:00
Rachael Alexanderson
605a60d1d6 - Removed headers from c_functions.cpp, added forward struct declaration for FTranslatedLineTarget in c_functions.h. 2016-12-29 01:30:54 +01:00
Rachael Alexanderson
cab1b60ffc - Some cleanups for c_cmds.cpp, exported some functions as well as functions used for "print/targetinv" to their own file. 2016-12-29 01:30:54 +01:00
Christoph Oelckers
d748b6ad70 - added explicit fog density as a sector property, accessible through UDMF and ACS.
- allow changing sector glow information through ACS.
2016-12-29 01:12:17 +01:00
Christoph Oelckers
11bea8249a . added SetMusicVolume script function. 2016-12-28 21:41:06 +01:00
Christoph Oelckers
02c3b3613f - added UDMF properties to set glows per sector.
- for explicitly defined glows, use the one for the current animation frame, if an animated texture is active. For default glows it will still use the base texture's to avoid inconsistencies.
2016-12-28 21:35:42 +01:00
Christoph Oelckers
c82189a3d1 fixed: A_JabDagger called S_Sound instead of A_PlaySound. 2016-12-28 18:20:41 +01:00
alexey.lysiuk
5dff3d5af0 Do not apply viewport scaling in fullscreen mode
See https://forum.drdteam.org/viewtopic.php?t=7339
2016-12-28 16:11:24 +02:00
alexey.lysiuk
efaaefcb70 gl_scale_viewport CVAR is now saved to config file
See https://forum.drdteam.org/viewtopic.php?t=7339
2016-12-28 16:11:10 +02:00
ZZYZX
ed2b73833b Enabled simple intermission for hubs 2016-12-28 14:06:28 +01:00
alexey.lysiuk
c03cb2c97a Added support for long lines in config file
Single line key-value pair can now exceed 255 characters
Long path names and additional command line parameters (macOS only) are no longer cut off
2016-12-28 11:38:38 +01:00
alexey.lysiuk
203653b9a1 Updated zlib to version 1.2.8
CMakeLists.txt was intentionally left unchanged
http://zlib.net/zlib-1.2.8.tar.gz
2016-12-28 10:28:33 +01:00
Christoph Oelckers
6322c81719 - added UDMF_fields for sector plane reflectiveness. 2016-12-28 01:09:42 +01:00
Christoph Oelckers
80f1661931 - fixed: The player checking code after loading a savegame was not changed when tracer was replaced with alternative for holding the player's unmorphed version. 2016-12-27 22:44:22 +01:00
Christoph Oelckers
721b2fb21d - fixed: Instant floor movers should disable z-interpolation for all affected actors. 2016-12-27 21:16:42 +01:00
Christoph Oelckers
8708c69f83 - added GetClassName script function. 2016-12-27 19:25:55 +01:00
Christoph Oelckers
2478cd0467 - changed locking mechanism for ACS strings.
It will now store the level numbers that lock a string instead of just incrementing a counter. This should make it more robust because each level can lock a string only once and some possible leftover garbage data won't be able to cause a lock decrease when a savegame is being reloaded.
2016-12-27 18:53:30 +01:00
Christoph Oelckers
e956d19769 - preserve the factor set by I_SetMusicVolume when starting new music. 2016-12-27 15:44:06 +01:00
Christoph Oelckers
4bf19fb665 - don't let monsters block teleports of non-solid inventory items. Doom's code never considered such a possibility and would consider the move blocking, despite the item being non-solid. 2016-12-27 15:34:44 +01:00