Commit graph

17079 commits

Author SHA1 Message Date
alexey.lysiuk
112640e6c0 - fixed compilation warnings reported by GCC and Clang
src/common/menu/menudef.cpp:785:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
src/playsim/p_pspr.cpp:178:3: warning: field 'processPending' will be initialized after field 'HAlign' [-Wreorder]
2020-10-31 13:37:51 +02:00
Christoph Oelckers
841a9b3017 - 4.6 pre 2020-10-31 12:29:47 +01:00
Christoph Oelckers
53a6b9ee59 - moved status bar base class to 'common'. 2020-10-31 12:24:15 +01:00
Christoph Oelckers
e6c96bcb75 - move VM exports to the proper class. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
1169922bf0 - building the new base class. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
783d532bbe - moved the script exports to the base class as wello. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
196d3c32bb - moved the drawing utilities to the abstact base statusbar function. 2020-10-31 12:24:13 +01:00
Christoph Oelckers
3f61ab7fbf - moved FormatNumber to the generic base class. 2020-10-31 12:24:13 +01:00
Christoph Oelckers
fd6b7f9274 - split out the generic parts of the crosshair drawer. 2020-10-31 12:24:12 +01:00
Player701
08302146d7 - Extended AddOptionMenu to allow inserting items before or after a specific menu item 2020-10-29 11:21:39 +01:00
Player701
e276431336 - Implemented AddListMenu MENUDEF directive to allow extending list menus.
Syntax: AddListMenu "MenuName" [<before|after> "SubMenuName"] { ... }

By default, new items will be added to the end of the menu. Specifying before/after allows inserting items before or after a specific submenu item.
2020-10-28 21:45:04 +01:00
Christoph Oelckers
d4d187e27b - removed the limiter flags again and addressed the underlying problem properly.
The real issue is that the number of unattenuated sounds was unchecked and the near limit never kicked in.
To do this properly it is necessary to adjust the limit distance by the attenuation - zero attenuation must mean infinite distance and for high attenuations the distance must be lowered for limiting to work as intended.
The limit for the Doom boss sounds was increased to 4 to compensate for this change.

# Conflicts:
#	src/common/audio/sound/oalsound.cpp
2020-10-28 21:30:25 +01:00
alexey.lysiuk
2ebf38c9c9 - removed duplicated line of code 2020-10-28 09:52:56 +02:00
Rachael Alexanderson
ef47abda74 - remove the IWADINFO definition to fix an un-offsetted status bar, since it's done unconditionally now 2020-10-28 06:27:30 +01:00
Christoph Oelckers
fb0a40e0f0 - enable OpenAL's sound volume normalizer. 2020-10-27 20:36:17 +01:00
Christoph Oelckers
0b7fb453ab - normalize line endings. 2020-10-27 18:47:53 +01:00
Rachael Alexanderson
34c57ab6be - add 'loadwidescreen' to gameinfo, works exactly like 'loadbrightmaps' or 'loadlights' 2020-10-26 10:08:34 -04:00
Rachael Alexanderson
7479648083 - add widescreen loader, and a bare pk3 2020-10-26 09:56:58 -04:00
Marisa Kirisame
c933d02034
Linetrace properly reports 3D line hits as "middle" part (#1228)
* Linetrace properly reports 3D line hits as "middle" part, as was intended.

* Typo fix
2020-10-26 04:24:04 -04:00
Rachael Alexanderson
5b03e86a2b - add 'sv_alwaysspawnmulti' dmflags2 2020-10-26 03:33:02 -04:00
Christoph Oelckers
d850ca6a0e - fixed: MENUDEF did not take recusive parsing into account when checking the default scaling mode. 2020-10-26 06:27:24 +01:00
Christoph Oelckers
6a9bfa2cb3 - do not use the border flat for the fullscreen console. 2020-10-26 06:15:13 +01:00
Rachael Alexanderson
b3e020c087 - fixed: accidentally unconditional multiplayer spawns 2020-10-25 17:10:57 -04:00
nashmuhandes
6e692e5571 Allow retrieval of the custom Crush state in WorldThingGround 2020-10-25 20:10:52 +01:00
nashmuhandes
7285c5aca8 Added WorldThingGround event to hook into the actor at exact moment its corpse spawns gibs upon being crushed. 2020-10-25 20:10:52 +01:00
Christoph Oelckers
54f85d4caa - made the sinmple options menu switchable.
Also ensure that custom mods pick up the simple version if enabled.
2020-10-25 17:07:03 +01:00
Nikolay Ambartsumov
10c833f37e Raise SNDSEQ limit to 4096 sequences 2020-10-25 15:58:30 +01:00
Christoph Oelckers
3bd365f934 - Added the usable parts of Rachael's 'Spawnmulti' spawn flag PR.
This needed a small fix in SpawnMapThing to apply the correct flags for Hexen format maps.
2020-10-25 15:57:43 +01:00
Major Cooke
38eb6db9ce Disabled vertice off-screen check, but fixed it at the same time. If it's desired, the solution is simply commented out in the event its desired. 2020-10-25 15:42:12 +01:00
Major Cooke
18e7b56bdc Restored A_OverlayOffset's ability to cancel out interpolation without the interpolate/add flags. 2020-10-25 15:42:12 +01:00
Major Cooke
7477dfa922 Converted scale and pivot to vectors, and rotation to an angle. 2020-10-25 15:42:12 +01:00
Major Cooke
a6bbddf167 Finished implementing PSprite interpolation for vertices.
- Setting WOF_INTERPOLATE on any of the functions with flags (except A_OverlayFlags) will enable one tic for interpolating.
- Setting PSPF_INTERPOLATE with A_OverlayFlags will permanently enable it for that layer, but requires manual calling.
2020-10-25 15:42:11 +01:00
Major Cooke
c41733e436 Added support for PSPF_FLIP flag and cleaned up. 2020-10-25 15:42:11 +01:00
Major Cooke
7c4c0163a3 Added A_OverlayPivotAlign and A_OverlayVertexOffset.
A_OverlayPivotAlign(int layer, int halign, int valign)
- Aligns the pivot point origin to a corner of the PSprite before applying offsets.
- - halign: Horizontal. Applicable constants are PSPA_<LEFT/CENTER/RIGHT>.
- - valign: Vertical. Applicable constants are PSPA_<TOP/CENTER/BOTTOM>.
- - Default is top left.

A_OverlayVertexOffset(int layer, int index, double x, double y, int flags)
- Allows offsetting the corners of the psprite, granting modders the ability to skew weapon sprites as they see fit.
- - index: The index of the vertice. Valid ranges are between [0,3].
- - x/y: Offsets of vertices.
- - flags: Takes WOF_ flags.

Other changes:
- Removed pivot point interpolation since it's pointless.
- Removed PSPF_PIVOTSCREEN due to complications with it having relativity. This will be revisited either later or in another submission.
- Added ResetPSprite() to be called with BringUpWeapon(), A_Lower(), and morph weapon raising to reset all the new properties to 0.

Nearly ready now. Just some final testing needed.
2020-10-25 15:42:11 +01:00
Major Cooke
42902959a8 - Removed relativity from GetWeaponRect.
- Fixed PSPF_PIVOTPERCENT not being applied at start by default.
- Pivots now start in the upper left corner. Alignment flags are planned next for pivot point starting.

Significant progress made, but more testing still required.
2020-10-25 15:42:10 +01:00
Major Cooke
06b3e384a8 Apply WOF_Relative to A_Overlay/WeaponOffset as well if specified. 2020-10-25 15:42:10 +01:00
Major Cooke
f9f6e896f3 - Added functionality to WOF_Relative. Untested until the relative code from GetWeaponRect is taken out.
- Fixed A_OverlayPivot carrying over copying of X to Y if Y is zero. This is meant to be exclusive to A_OverlayScale only.
- Added WOF_ZeroY to prevent copying X to Y for A_OverlayScale when desired, mirroring A_SetScale's behavior.
2020-10-25 15:42:09 +01:00
Major Cooke
4a3a5c3877 Replaced PSPF_PIVOTOFFSETREL with WOF_RELATIVE.
The idea behind this is to outright remove the relative position adding from the engine side and let it happen with A_OverlayOffset instead. Still more work to do.
2020-10-25 15:42:09 +01:00
Major Cooke
8f74cebd44 Added code for rotating the PSprite, courtesy of IvanDobrovski.
- However, the XY offsets are relative as a result.This must be made toggleable.
2020-10-25 15:42:09 +01:00
Major Cooke
e5ca3caa6c Setting everything up. 2020-10-25 15:42:08 +01:00
Christoph Oelckers
14776aebb6 - some minor adjustments to the console init interface. 2020-10-25 15:41:30 +01:00
Major Cooke
e3d21d09c9 Renamed flag to ALLOWTHRUBITS and rearranged the checks so the flag comes after.
- Since most will have 0 for the property, this will not check for the flag unless the mask fits.
2020-10-25 15:37:15 +01:00
Major Cooke
85a121ad28 ThruBits is now opt-in for convenience with the +THRUBITS flag. 2020-10-25 15:37:15 +01:00
Christoph Oelckers
66abbf647c - this was in the wrong branch 2020-10-25 14:50:45 +01:00
Christoph Oelckers
964417947f - use the border flat as console fallback instead of the title pic.
This tends to work a lot better because it has far lower contrast.
2020-10-25 14:37:29 +01:00
Christoph Oelckers
0e4625867e - moved c_console.cpp to 'common'. 2020-10-25 13:25:31 +01:00
Christoph Oelckers
f912712f9d - cleaned up c_console.cpp to be moved into 'common'. 2020-10-25 13:14:19 +01:00
Christoph Oelckers
59701ddd81 - preparations for separating the notify buffer from the console. 2020-10-25 10:23:54 +01:00
Christoph Oelckers
840b8451bd - moved checks whether to draw the notify buffer out of the class into the calling function. 2020-10-25 09:29:01 +01:00
Christoph Oelckers
194824f810 - some fixes for the console.
* it is now possible to switch back to the main intro loop from the fullscreen console.
* do not distort the background of the fullscreen console. Always draw the console on top of what the main loop currently displays with a translucent black overlay.
* do not use the CONPIC for the fullscreen console as it tends to be more of a distraction than an asset when filling the entire screen.
* cleaned up c_console.cpp and moved several pieces of code unrelated to actual console management out of it.
2020-10-25 09:17:31 +01:00
azamorapl
7676ed641c Expose changing sidedef wallpart flags to zscript 2020-10-25 06:27:20 +01:00
Christoph Oelckers
eab3289043 - only return at the end of the MAP07SPECIAL block. 2020-10-24 21:19:52 +02:00
Christoph Oelckers
838733af4a - do not use the GetFullscreenRect function as a native scripting function 2020-10-24 21:19:20 +02:00
Christoph Oelckers
bc2b0a0252 - added flag option menu item by Accensus. 2020-10-24 17:49:56 +02:00
Christoph Oelckers
8872f863d4 - refinement of the statusbar offset fix to only affect unscaled textures. 2020-10-24 17:11:44 +02:00
Christoph Oelckers
79944ca76a - made status bar offset fixing unconditional.
I think it is inevitable that such status bars will appear in mods sooner or later and with the old code it is virtually impossible to create a wide status bar that displays properly but gets subjected to this code.
2020-10-24 16:59:57 +02:00
Christoph Oelckers
ce17f1aa49 - made the vertical scroller widescreen aware as well. 2020-10-24 15:47:13 +02:00
Christoph Oelckers
e1af278b37 - adapt the bunny scroller to widescreen images.
This only concerns the actual horizontal scroller. The vertical one still needs work and the "The End" screen only works if the second picture of the scroller is the full widescreen image because this page is done as a regular single image page which does not know anything about widescreen asset replacements.
2020-10-24 15:31:45 +02:00
Christoph Oelckers
30e71c7c16 - fixed: Crushing generic floors must use crush mode 2.
This is how Doom always worked. Mode 1 is not useful for one-time crushing effects.
2020-10-24 13:14:00 +02:00
Christoph Oelckers
148e7cd361 - fixed edge case where both Mancubus and Arachnotron have the same replacement and trigger a boss action. 2020-10-24 12:57:41 +02:00
Christoph Oelckers
54ddb400a5 - fixed fullscreen scaling for narrow aspect ratios. 2020-10-24 12:07:05 +02:00
Christoph Oelckers
74925783aa - default to fullscreen mode 3.
The option still remains for cases where it does not work but the cases where mode 3 causes real problems are rare.
All I could find were a handful of poor intermission pics in some old mods which aren't worth keeping this artificial limitation.
2020-10-24 11:36:50 +02:00
Player701
63035d5031 - Prevent calling abstract functions via Super or parent class name qualifiers at compile time 2020-10-19 11:20:50 +02:00
Player701
761dea8640 - Implemented ZScript abstract functions 2020-10-19 08:24:43 +02:00
Nikolay Ambartsumov
628d23a688 Fix crossing multiple lineportals on same tic 2020-10-19 08:21:08 +02:00
alexey.lysiuk
34a8a9302f - removed obsolete probing of C++ standard for GCC and Clang
CMake try_compile() function still requires explicit command line option
2020-10-18 11:34:39 +03:00
Nikolay Ambartsumov
5ece08d12e Make bMaskRotation angles portal-aware 2020-10-18 07:35:10 +02:00
Christoph Oelckers
565a5acd85 - changed order of identifier types to be checked to what it was in 4.3 2020-10-17 15:13:14 +02:00
Christoph Oelckers
28a12d2597 - fixed update check for shadow map tree.
This should only flag the tree as new if it is different from the last one.
This not only caused issues with dynamic updates but also made the renderer recreate the tree's data structures repeatedly.
2020-10-17 15:01:05 +02:00
Christoph Oelckers
14e94aa6c1 - added localization fallback handling for the BigFont in menu items and captions. 2020-10-17 14:00:29 +02:00
Christoph Oelckers
473072d556 - doubled the default for horizontal mouse sensitivity.
This seems to fit more systems.
2020-10-17 13:10:09 +02:00
Christoph Oelckers
fb8bc9876c - clear the button state when entering chat mode.
Since the game cannot be controlled while typing a chat the state must be reset to prevent residual state from triggering actions afterward.
2020-10-17 13:07:30 +02:00
alexey.lysiuk
d4bb2fa418 - fixed detection of Apple's Clang 2020-10-17 13:33:22 +03:00
Christoph Oelckers
0478838a9d fixed side_t::SetSpecialColor.
This never set the needed flags to make the color appear.
2020-10-17 12:28:22 +02:00
Christoph Oelckers
38df70f4bc - clear intermediate entries when inserting an object beyond the end of an array. 2020-10-17 12:08:55 +02:00
Christoph Oelckers
0526e0e04e - fixed: Array.Insert must zero all elements before the new one if something gets inserted outside the existing range. 2020-10-17 11:40:51 +02:00
Christoph Oelckers
d6e962c91e - upgraded code base to C++17.
Mainly to allow using 'if constexpr'.
Older CI compiler setups like GCC 5 for Linux were removed as a consequence.
Windows 32 bit was also removed because there are no plans to do any more 32 bit releases of GZDoom.
2020-10-17 11:39:59 +02:00
Christoph Oelckers
a89afe61f2 - use a few static asserts instead of runtime asserts in the VM's type code. 2020-10-17 10:18:37 +02:00
Christoph Oelckers
4ac7588488 - did a bit of AActor reshuffling so that the new thruBits can be placed into a previously existing alignment gap. 2020-10-17 09:54:31 +02:00
Major Cooke
60f0d35477 Added ThruBits. 2020-10-17 09:51:24 +02:00
Player701
69da5c23a3 - Fixed: Server CVars did not immediately revert to their saved values upon loading a save file.
https://forum.zdoom.org/viewtopic.php?f=2&t=70190
2020-10-17 09:23:39 +02:00
Christoph Oelckers
8e1b091cf3 - disabled negative gravity check.
According to reports on the forum this does not cause bad behavior.
2020-10-17 09:11:44 +02:00
Christoph Oelckers
e636c8044d - fixed menu sound. 2020-10-16 23:25:28 +02:00
Christoph Oelckers
65c52b9825 - Backend update. 2020-10-16 23:25:18 +02:00
Christoph Oelckers
ef7a7cc39d - moved console command line buffer tab completion into their own files.
- layout fixes in load/save menu and confirmation screen.
2020-10-16 22:57:30 +02:00
Christoph Oelckers
a6842b6482 - ensure that sfxinfo_t is always fully initialized, regardless how the setup is performed.
The recent pitch additions did not do this on all possible paths.
2020-10-16 22:57:30 +02:00
Christoph Oelckers
4deb7593b5 - final update of menu code from Raze. 2020-10-16 22:57:30 +02:00
Christoph Oelckers
fa4ab53e7c - script side support for menu transitions. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
cf7518fe43 - added two more system callbacks for menu customization. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
881a77b3a1 - backport of menu transition code from Raze. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
62138decfe - use Raze's layout for load and save game menus.
This has a lot less black void on screen.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
b8281f4758 - Backend update from Raze. 2020-10-16 22:57:28 +02:00
Christoph Oelckers
3ea0658449 - split the savegame manager into a game dependent and a reusable game indepenent part.
- added menu/advance sound alias.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
504f85e6d4 - moved date code to its own file. 2020-10-16 22:57:27 +02:00
Christoph Oelckers
f99ac8b28b - allow struct extensions in zscript.
This is mainly for splitting the Doom specific content off the main definitions for easier reuse.
2020-10-16 22:57:27 +02:00
Christoph Oelckers
3a81c07ecf - moved language switching code to 'common'. 2020-10-16 22:57:27 +02:00
Christoph Oelckers
a08d87beb3 - added a customization hook class for the menu.
Currently the only thing it does is abstracting the menu caption, but more can be added here.
Not exposed to modding yet, though, that's for later.
2020-10-16 22:57:26 +02:00
Christoph Oelckers
4b77064fc4 - moved most of the menu code into the backend. 2020-10-16 22:57:25 +02:00
Christoph Oelckers
f6240ef428 - merged string table callbacks with system callbacks. 2020-10-16 22:57:25 +02:00
Christoph Oelckers
f30285b0ce - route menu's CheckGame call through SysCallbacks.
Needed to be able to move the menu into the backend.
2020-10-16 22:57:25 +02:00