Commit graph

16093 commits

Author SHA1 Message Date
Conn O'Griofa
457dc8b5a9 Use signal handler to invoke call_terms() before exit when possible
It's not advisable to rely on atexit() to invoke SDL_Quit(), as it
causes a segmentation fault on exit for the SDL2 KMSDRM driver due to
a conflict with the Mesa drivers* which upstream Mesa may not elect to fix.

The issue can be resolved by replacing the atexit() call with a signal
handler that will interrupt the D_DoomMain() and D_DoomLoop()
functions, then invoke call_terms() within the main thread before exiting.

We can leave the atexit() hook intact to handle edge cases such as abnormal
process exit, or exit methods which do not produce signals such as Alt+F4 or
window close via GUI (neither of which are possible in a KMS context, so
should not affect KMSDRM sessions).

Fixes a segmentation fault/uninterruptible application hang on exit
for all KMS targets, including Raspberry Pi 4B, 3B and Intel i965.

* See: https://bugzilla.libsdl.org/show_bug.cgi?id=4530 and
https://lists.freedesktop.org/archives/mesa-users/2019-March/001519.html
2019-09-12 23:34:17 +02:00
drfrag
b2aa973396 - Fixed warnings. 2019-09-11 14:34:09 +02:00
Marisa Kirisame
aa06b2f62c Squashed commit of the following:
commit 6ecd831eb45a8258995c02664450c3ca8cfe5b48
Merge: a4fb1f61c afbd7f7a2
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sun Jul 28 22:02:19 2019 +0200

    Merge branch 'master' of github.com:coelckers/gzdoom into f3dfloor_export

commit a4fb1f61c0532d3a6051d4c1fca4ac72ec33e060
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Fri Jul 12 15:43:25 2019 +0200

    Renamed EFFloorType enum in ZScript to the more descriptive EF3DFloorFlags

commit 9ad1c3b5625d53c06229be2a94d44fa0f36f41fd
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sun Jul 7 20:25:31 2019 +0200

    Add bounds checks to Get3DFloor/GetAttached

commit dd2a7956a887b92ed24ce5e79f10b1a445664d6c
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sun Jul 7 17:13:44 2019 +0200

    Correct handling of 3d floor plane texture getting.

commit 9b748287892c8fdee9ac67019bf1f66bc4b69eab
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sun Jul 7 16:14:45 2019 +0200

    Implemented requested changes to F3DFloor exports.
    * Getters for ffloors/attached arrays.
    * Getter for 3D floor top/bottom texture.

commit 6a1482bb0637a70890629e4c13e8759c7a3673f3
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sat Jul 6 13:42:52 2019 +0200

    Renamed exported extsector pointer in Sector struct to something more descriptive.

commit 7c6783d43b898cbd7a01fb2191fd401ed8e8c300
Merge: ff64e04b2 8d36f0a0c
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Mon Apr 29 12:40:44 2019 +0200

    Merge branch 'master' into f3dfloor_export

commit ff64e04b251f23325d2f72bc25c59f34b4cab6fa
Merge: a90947392 5b6bae409
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sun Apr 21 16:56:18 2019 +0200

    Merge branch 'master' into f3dfloor_export

commit a90947392a27eb1c2dac7005614592ec2f410274
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Mon Feb 4 17:47:25 2019 +0100

    Export F3DFloor structure and related data.
    Small changes to Trace code to better use this struct.
2019-09-11 14:18:28 +02:00
PaulyB
245326b5ac Added Armor to Hexen fullscreen display
Since the armor icon is much larger than the flask icon, both have been moved to the right slightly
2019-09-11 00:27:25 +02:00
PaulyB
52a9b9d600 Wrong offset on Fighter's Fist 2019-09-10 23:04:56 +02:00
drfrag
4aa8243adc - Allow disabling mirrors for the GL renderer as some maps abuse them and portals are much slower in the old renderer. Also reduce the number of default recursions since in software mirrors are less demanding. 2019-09-10 14:52:31 +02:00
Christoph Oelckers
d1859d363a - give P_ExplodeMissile a damage type when being called from P_DamageMobj 2019-09-09 16:49:22 +02:00
Christoph Oelckers
5999d7508f - rename sprite names with '^' in the hires namespace. 2019-09-09 14:43:33 +02:00
drfrag
ccadafb5df - Disabled enhanced nightvision by default, some mods use a different effect. 2019-09-08 21:43:10 +02:00
alexey.lysiuk
3081dbca13 - removed useless conditions from options menu 2019-09-08 10:11:23 +02:00
alexey.lysiuk
015f57ed52 - fixed VM abort when entering search menu
https://forum.zdoom.org/viewtopic.php?t=65833
2019-09-08 10:11:21 +02:00
drfrag
38d6008149 - Missed this. 2019-09-08 10:06:31 +02:00
Christoph Oelckers
9097f23286 - the Doom status bar has been partially virtualized to allow overriding specific parts of it, most notably the ammo display
# Conflicts:
#	wadsrc/static/zscript/ui/statusbar/doom_sbar.zs
#	wadsrc/static/zscript/ui/statusbar/harm_sbar.zs
2019-09-08 00:08:50 +02:00
Christoph Oelckers
f95f0257b0 - reinstated the old scriptwait implementation as a compatibility option.
Daedalus's MAP19 needs this.
2019-09-07 12:44:43 +02:00
drfrag
fad4a4d829 - Missing strings. 2019-09-07 12:44:40 +02:00
Christoph Oelckers
b894d5d04c - use correct label for "No" text. 2019-09-07 12:44:37 +02:00
drfrag
e94d18ab02 - Change how render cull sliders work: only allow reasonable values. 2019-09-06 20:58:59 +02:00
drfrag
6879817cd8 - Enabled gl_sprite_distance_cull and added slider to menu. 2019-09-04 22:31:56 +02:00
drfrag
ba835a14a4 - Added GL version of sprite distance culling. 2019-09-04 22:14:44 +02:00
drfrag
d47af90a56 - Enabled gl_line_distance_cull and added slider to menu. 2019-09-04 17:13:11 +02:00
drfrag
2b27cb0bba - Fill the gaps with the sky or ceiling texture. 2019-09-04 16:39:51 +02:00
Rachael Alexanderson
47c51f437e - make GL version of line distance culling use a separate CVAR, which, for now, is turned off. 2019-09-03 13:47:42 +02:00
Rachael Alexanderson
373870787f - activate r_line_distance_cull in the hardware renderer
# Conflicts:
#	src/gl/scene/gl_bsp.cpp
2019-09-03 13:19:01 +02:00
Christoph Oelckers
358718de05 - removed the playernum parameter from CheckLocalView
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.

In particular, this makes no real sense in case of secondary maps where it should always return false.

# Conflicts:
#	src/fragglescript/t_func.cpp
#	src/g_inventory/a_keys.cpp
#	src/p_acs.cpp
#	src/p_mobj.cpp
#	src/p_user.cpp
#	src/r_data/r_interpolate.cpp
#	src/r_data/r_interpolate.h
2019-09-02 21:17:19 +02:00
alexey.lysiuk
79eadafa6b - fixed initial setup for dynamic light actors
They are attached and actived explicitly during usual actor initialization sequence
Postponed processing applicable to so called user dynamic lights must be skipped for them
RECREATELIGHTS flag handling for dynamic light actors had the opposite effect of deactivating them

https://forum.zdoom.org/viewtopic.php?t=65683
2019-09-02 13:58:49 +02:00
drfrag
32184dbca2 - Fixed and updated Appveyor configuration. 2019-09-01 11:35:53 +02:00
Alexander
9f8241865b add empty line after standard options
Rationale:
When a mod adds a custom option menu, it adds a space before it, like this:
```
AddOptionMenu OptionsMenu
{
  StaticText ""
  Submenu "$MYTITLE", MyOptions
}
```
to prevent custom option menu being in the same block as the last entries in the
standard options list. It's okay.

But when more than one such mod is loaded, each one of them adds a space before
their option menu entry, and Options Menu becomes unnecessary bloated.

This simple edit allows mods to not add a space, still be separated from
standard options.
2019-09-01 00:09:18 +02:00
Jan Engelhardt
02ca2b7c4a Make the build work with fluidsynth 2.x. 2019-09-01 00:09:15 +02:00
PaulyB
955c71c773 Level compatibility additions for Scythe 2 and Hell Revealed
# Conflicts:
#	wadsrc/static/zscript/level_compatibility.zs
2019-09-01 00:09:11 +02:00
alexey.lysiuk
f212220dcd - do thinker profiling of internal dynlights only when they are present
There is no point to output zero calls and/or handle such case in profiling stats calculation

# Conflicts:
#	src/dthinker.cpp
2019-09-01 00:05:31 +02:00
drfrag
99c7be3f2e - Fixed compilation for non windows targets. 2019-08-31 19:23:06 +02:00
PaulyB
016d7e5293 Fix typo in Heretic status bar 2019-08-31 10:08:25 +02:00
alexey.lysiuk
338e599de8 - fixed: saving game to read-only file was erroneously reported as succeeded 2019-08-29 20:21:26 +02:00
hdr88
f27afdb0d2 Add current, max and average velocity as stat (#912)
* Add current, max and average velocity as stat

# Conflicts:
#	src/p_setup.cpp
#	src/p_tick.cpp

# Conflicts:
#	src/p_setup.cpp
#	src/statistics.cpp
2019-08-28 21:51:55 +02:00
alexey.lysiuk
a2d52f4958 - added ability to specify deprecation messages in ZScript
It's an optional extension of deprecated keyword:
    deprecated("2.4", "use ModernFunction instead") int OldFunction();
    deprecated("3.5", "use ModernVariable instead") int OldVariable;

Usage of such members will produce the following report:
    Script warning, ":zscript.txt" line 123:
    Accessing deprecated function OldFunction - deprecated since 2.4.0, use ModernFunction instead
    Script warning, ":zscript.txt" line 456:
    Accessing deprecated member variable OldVariable - deprecated since 3.5.0, use ModernVariable instead

# Conflicts:
#	src/scripting/zscript/zcc_compile.cpp
2019-08-28 21:49:20 +02:00
Vitaly Novichkov
ff78550895 GME update with bug-fixes
- True fix for infinite loops [please verify!]
- True fix for KSS silence
- Fix for HES distorted and unstable/random tempo
2019-08-26 00:51:45 +02:00
Rachael Alexanderson
df2eab612d - oops, this didn't get through 2019-08-26 00:51:44 +02:00
PaulyB
8e78f973d0 Let Hexen Cleric and Mage use unique health chains
- (changed slightly by Rachelle)

Hexen's characters incorrectly only used the Fighter's health chain previously.
2019-08-26 00:51:43 +02:00
Christoph Oelckers
4cae269d83 - changed license of portal.cpp to GPLv3
- list Eternity Engine as a source of some code in the main README.
2019-08-26 00:38:13 +02:00
Marisa Kirisame
7792a435d7 The wrong pointer was passed to ProcessMidPrint, which resulted in a crash. 2019-08-21 15:03:04 +02:00
drfrag
d299576eb0 - Fixed vanilla light mode being available for GL2 when it's not supported without shaders. 2019-08-21 14:17:59 +02:00
drfrag
45abf1a5c9 - Added support for up to 4 DirectInput joysticks at the same time for fake splitscreen. But with more than 32 buttons per device they will overlap as before and you'll get wrong labels. 2019-08-21 14:06:29 +02:00
Petr Kobalicek
275ecb2623 AsmJit update
# Conflicts:
#	.gitignore
2019-08-20 13:08:18 +02:00
Marisa Kirisame
b08ba350d3 Allow custom status bars to override notifications, centered prints and chat prompt.
# Conflicts:
#	src/c_console.cpp
#	src/ct_chat.cpp
2019-08-20 13:06:52 +02:00
drfrag
f63f833ed1 - Consolidated C_MidPrint and C_MidPrintBold. 2019-08-20 13:06:48 +02:00
drfrag
488627d3b2 Revert "- Changed default GL sprite billboard mode to X/Y axis."
This reverts commit 5b76d7563b.
2019-08-20 10:17:25 +02:00
Christoph Oelckers
e7d5b85234 - changed colors for crosshair health display to keep this in line with other health indicators on the HUD.
Use green for 100% health, not 200% and move toward blue for higher health.
2019-08-19 00:25:05 +02:00
Hugo Locurcio
1c8c8224be Improve crosshair health color to be more informative
With `crosshairhealth 2`, the crosshair will now
go from white to yellow, then yellow to red as the player's health
decreases. As the player's health increases up to 200, the crosshair
will also go from white to green to indicate overheal.
This is similar to the implementation in games like Xonotic.

The old behavior (`crosshairhealth 1`) is still the default.
2019-08-19 00:25:03 +02:00
Christoph Oelckers
0b1b78c725 - fixed the PR.
# Conflicts:
#	src/g_game.cpp
2019-08-19 00:25:00 +02:00
cuttlefish
a516b2c872 - Converts keyboard turnspeeds into global CVars
# Conflicts:
#	src/g_cvars.cpp
2019-08-19 00:24:57 +02:00