Commit graph

14193 commits

Author SHA1 Message Date
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
Christoph Oelckers
20e574058e - removed the internal WildMidi player object cleanup code.
This was solely meant for the original WildMidi player but got seriously in the way of how this code gets used by GZDoom. In GZDoom the player object is owned by the MIDI devive which should be the only instance which is allowed to destroy it.
2019-08-19 00:24:54 +02:00
Christoph Oelckers
163d26ff2b - fixed bad default alpha for 3D floors.
This is a byte value, therefore the default must be 255, not 65536.
2019-08-19 00:24:51 +02:00
Christoph Oelckers
ac484634b3 - fixed attached dynamic light setup.
This was only run on a state change and missed every external light change.
Any place which wants to flag a light change now only will set a flag and at the end of the thinker loop all flagged actors will be processed.
For performance reasons this was merged with the P_RunEffects iterator loop.

# Conflicts:
#	src/p_effect.cpp
#	src/p_effect.h
#	src/p_tick.cpp

# Conflicts:
#	src/p_mobj.cpp
2019-08-18 21:33:42 +02:00
drfrag
6b20de2b63 - Block scaling for the classic software renderer, it didn't work and caused some serious glitches. 2019-08-18 13:07:24 +02:00
alexey.lysiuk
7dd227bde0 - added missing space character to script parser's message 2019-08-17 13:29:42 +02:00
alexey.lysiuk
f2e034b969 - added check for multiple parsing of the same MAPINFO
Warning message is issued when such case is detected

# Conflicts:
#	src/g_mapinfo.cpp
2019-08-17 13:29:40 +02:00
alexey.lysiuk
3eb96eeeff - remove '... is already the default skill' error 2019-08-17 13:29:37 +02:00
drfrag
9639956fa4 - Now the quicksave slot must be selected explicitly like in original Doom. 2019-08-16 17:28:34 +02:00
alexey.lysiuk
7b8754c740 - added ability to enter main menu from credits screen via controller
There was only one way to enter main menu (by pressing Escape button) from the last intermission screen after episode's end
Controller's buttons that are usually assigned to this action, Start and Back by default, now open main menu as well

https://forum.zdoom.org/viewtopic.php?t=65632
2019-08-16 12:25:40 +02:00
Rachael Alexanderson
35d0bcb1d5 - fix typo 2019-08-16 12:25:36 +02:00
alexey.lysiuk
12dee6ca91 - fixed doubling of deprecation warnings for ZScript code
https://forum.zdoom.org/viewtopic.php?t=65617
2019-08-15 21:12:10 +02:00
drfrag
54d0ed23e9 - Fixed compilation. 2019-08-15 12:48:11 +02:00
alexey.lysiuk
728390ce48 - exposed xBRZ scaler options as CVARs
Added 5 xbrz_... CVARs to control various settings of upscaling process

Added xbrz_colorformat CVAR for buffered (zero) and unbuffered (any other value) color format
The first one requires a restart because settings are applied once to a precalculated buffer
The second one has reduced performance with ability to apply settings on-the-fly
2019-08-15 12:43:49 +02:00
alexey.lysiuk
e93d8395bc - updated xBRZ scaler to version 1.7
https://sourceforge.net/projects/xbrz/
https://sourceforge.net/projects/xbrz/files/xBRZ/xBRZ_1.7.zip

https://forum.zdoom.org/viewtopic.php?t=65596
2019-08-15 12:43:45 +02:00
alexey.lysiuk
6b70620bb9 - removed type punning from xBRZ scaler integration
it was a hack that wouldn't work with xBRZ 1.7
2019-08-15 12:43:41 +02:00
drfrag
67fb719a7c Revert "- Now the quicksave slot must be selected explicitly like in original Doom."
This reverts commit 9f0d5ac113.

Else you'd need to select it twice.
2019-08-14 14:17:39 +02:00
drfrag
b3c4e24b58 - Fall back to D3D for software on systems without GL2 support. 2019-08-13 22:04:05 +02:00
drfrag
9f0d5ac113 - Now the quicksave slot must be selected explicitly like in original Doom. 2019-08-13 21:15:09 +02:00
drfrag
1f7c241eb8 - Changed how the old quicksave works. Now you select the slot using quicksave like in original Doom. 2019-08-13 20:32:41 +02:00
Christoph Oelckers
13ee3e3484 - added checks for the special hacky quicksave marker. 2019-08-11 18:51:35 +02:00
Christoph Oelckers
d13499d2b7 - fixed the extremely long standing bug that Lost Souls didn't reacquire their target when slamming into something.
This was one of that annoying old design mistakes where Doom and Heretic features were poorly merged together. The Heretic Gargoyle uses very similar coding but performs a subtly different action when actually hitting another actor. This different action was made the default, even for the Lost Soul.
It has now been changed that both monsters use their original action, being distinguished by an actor flag. For compatibility with custom definitions Heretic's behavior, which has been the default in ZDoom will be the preferred one. The one of the Lost Soul can be reactivated by a flag.
2019-08-11 14:28:51 +02:00
alexey.lysiuk
e4ef998dc2 - exposed Append() method to ZScript dynamic array
https://forum.zdoom.org/viewtopic.php?t=65570
2019-08-11 00:09:51 +02:00
Christoph Oelckers
1161a17f00 - do not blur the background for portrait-less conversations.
- Fixed the mHasBackdrop flag. (drfrag)

# Conflicts:
#	wadsrc/static/zscript/ui/menu/conversationmenu.zs

# Conflicts:
#	src/menu/menu.cpp
2019-08-10 12:47:41 +02:00
Christoph Oelckers
d6e7e68bfa - fixed: The frozen state was not reset when the global level variable was reset.
# Conflicts:
#	src/g_level.cpp
2019-08-09 13:16:27 +02:00
drfrag
2c014e63ac - Unicode fix.
(patch by Graf)
2019-08-09 13:16:24 +02:00
Christoph Oelckers
d9f3fdd293 - fixed handling of the "ouch" face.
This depended on order of execution, taking the health values to compare from variables which were not synchronized properly.
Now both the last and current health being used here are being retrieved in the same place so that further changes cannot break this again.

But here it worked. (drfrag)
2019-08-09 13:16:22 +02:00
Christoph Oelckers
61a849b439 - fixed an inconsistency with missiles bouncing off actors.
They exploded when hitting a side but not when hitting top or bottom. Changed so that they always explode now.
2019-08-09 13:16:19 +02:00
Christoph Oelckers
15cf157877 - removed the ActiveSequences counter.
It was only used to avoid traversing the list if all sequences were paused which is an exceptional situation.
On the other hand, the way it counted was not correct so rather than fixing it it seemed more appropriate to remove it entirely.

# Conflicts:
#	src/g_levellocals.h
#	src/s_sndseq.cpp
2019-08-09 13:16:17 +02:00
Christoph Oelckers
9a4959c82e - fixed incorrect write barrier in sound sequence code.
# Conflicts:
#	src/s_sndseq.cpp
2019-08-09 13:16:14 +02:00
Christoph Oelckers
f6234d08fa - optionally disallow showing the autor's name
# Conflicts:
#	src/g_level.cpp
#	src/gamedata/g_mapinfo.h
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
2019-08-07 13:42:05 +02:00
Christoph Oelckers
78fa0a6f95 - added option to print a map author's name on the summary screen
For now only with font-printed map names. Allowing this with titlepatches will require more work and an option to disable.

# Conflicts:
#	src/g_level.cpp
#	src/gamedata/g_mapinfo.h
#	src/gi.cpp
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
2019-08-06 18:46:23 +02:00
drfrag
149a294a49 - Fixed compilation. 2019-08-06 17:27:12 +02:00
Christoph Oelckers
4a563f449d - fixed: The wbstartstruct that gets passed to the level summary screen needs to be static
This variable is needed long after the function which sets it up will be exited. So this either needs to be dynamically allocated or static, and in this case using a static variable is simpler.  However, unlike before, it is only being accessed in the one function that needs to initialize it and pass to the summary screen and nowhere else.

# Conflicts:
#	src/g_level.cpp
2019-08-06 17:13:30 +02:00
Christoph Oelckers
2b51e8d5dd - allow the language table to supersede the title patches, if appropriate
For the Doom IWADs the provided font looks almost identical to the characters used on the title patches. So, for any level name that got replaced in some language, it will now check if the retrieved name comes from the default table, and if not, ignore the title patch and print the name with the specified font.

This also required removing the 'en' label from the default table,  because with this present, the text would always be picked from 'en' instead of 'default'. Since 'en' and 'default' had the same contents, in any English locale the 'default' table was never hit, so this won't make any difference for the texts being chosen.

Last but not least, wminfo has been made a local variable in G_DoCompleted. There were two places where this was accessed from outside the summary screen or its setup code, and both were incorrect.

# Conflicts:
#	src/g_hub.cpp
#	src/g_level.cpp
#	src/gamedata/g_mapinfo.h
#	src/gi.h
#	src/p_setup.cpp
#	src/stringtable.cpp
#	src/stringtable.h
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
#	wadsrc_extra/static/iwadinfo.txt

# Conflicts:
#	src/gi.h
#	wadsrc_extra/static/iwadinfo.txt
2019-08-06 17:13:21 +02:00
drfrag
2172b1bd63 - Changed GAMEINFO flags to an enum. 2019-08-06 17:08:33 +02:00
Christoph Oelckers
070dde2e2b - made adjustments to the text placement on the summary screen.
With extended fonts much of the old code did not work anymore, this needed more precise checks for the sources of the printed texts.

Without the adjustments, just added GetMaxAscender for compatibility. (drfrag)

# Conflicts:
#	src/gamedata/fonts/font.cpp
#	src/scripting/vmthunks.cpp
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
2019-08-05 13:28:43 +02:00
drfrag
dadbc828dc - Take quicksave slots into account for the new savegame list order. 2019-07-29 20:12:04 +02:00
Kevin Hutchins
ac238545fd Adds option to use a rotation of quicksaves instead of having one quicksave slot that needs to be manually created. 2019-07-29 18:54:43 +02:00
Christoph Oelckers
6a647afff1 - changed subtitle duration to last at least 7 seconds, even for shorter sounds so that there is sufficient time to read them. 2019-07-26 21:59:46 +02:00
alexey.lysiuk
c7516a0fc5 - added ability to specify display duration of subtitles
Duration of sound playback and subtitles display will be synchronized if sound id is specified
For existing Strife messages this works out of the box

https://forum.zdoom.org/viewtopic.php?t=65379
2019-07-26 21:59:43 +02:00
drfrag
1f54466e33 - Fixed fuzz style fallback not working in GL legacy mode.
- Changed default since software style was too expensive on old cards.
2019-07-26 14:08:18 +02:00
Christoph Oelckers
c31b4f0b9b - fixed line breaking on non-spaces for multi-byte UTF-8 characters.
This needs to backtrack the entire code point, not just one byte.

# Conflicts:
#	src/gamedata/fonts/v_text.cpp
2019-07-25 00:06:14 +02:00
Major Cooke
7f5a2d3a11 Added A_SoundPitch and an optional pitch parameter to A_PlaySound and S_Sound.
- Note: Because sound channels are not in zscript, there's no way to modify a sound made by S_Sound.

# Conflicts:
#	src/s_sound.cpp
#	wadsrc/static/zscript/base.zs
2019-07-25 00:06:12 +02:00
alexey.lysiuk
4f56ab45ad - fixed crash on player unmorph after falling death
Rearranged conditions to avoid accessing player from obsolete morphed pawn
Unmorphing upon death resets player in morphed actor, so player alive state should be tested first
Removed duplicate health check as well

https://forum.zdoom.org/viewtopic.php?t=65429
2019-07-25 00:06:08 +02:00
drfrag
77c5ec0e23 - New version. 2019-07-19 13:30:41 +02:00
Christoph Oelckers
6999c89cbb - moved several IWAD dependent files into the game_support resource
* sprite offset definitions, which are IWAD dependent
* Freedoom's decal overrides
* conversation ID definitions for the Strife teasers
* the fallback BigFont now can also be loaded by IWADs which declare themselves as GAME_Heretic or GAME_Hexen.

# Conflicts:
#	src/gamedata/fonts/v_font.cpp
2019-07-18 14:28:40 +02:00
Christoph Oelckers
1d8f735a27 - renamed zd_extra.pk3 to game_support.pk3
# Conflicts:
#	src/version.h
2019-07-18 14:28:35 +02:00
Christoph Oelckers
cf88ecf36a - remove test code. 2019-07-18 13:53:24 +02:00
Christoph Oelckers
7757798d22 - moved iwadinfo.txt to zd_extra.pk3.
This was done for two reasons:

1. It forces loading of zd_extra.pk3 for the stock IWADs, eliminating a certain kind of user error.
2. It removes the stock IWAD definitions for custom games that distribute the engine along with their data, so that it doesn't pick up on Steam and GOG installations and shows an inappropriate IWAD picker.
2019-07-18 13:53:20 +02:00
Christoph Oelckers
e51f9a6c13 - allow setting the font used for the status screen's content text.
But only works partially for Raven games (hacked). (drfrag)

# Conflicts:
#	src/gi.cpp
#	wadsrc/static/mapinfo/chex.txt
#	wadsrc/static/mapinfo/doomcommon.txt
#	wadsrc/static/mapinfo/heretic.txt
#	wadsrc/static/mapinfo/hexen.txt
#	wadsrc/static/mapinfo/mindefaults.txt
#	wadsrc/static/mapinfo/strife.txt
#	wadsrc/static/zscript/ui/statscreen/statscreen_sp.zs
#	wadsrc_hacxextra/static/zmapinfo.txt
2019-07-18 13:22:44 +02:00
alexey.lysiuk
2b3d0467e7 - fixed: subtitles background renains visible on new game
https://forum.zdoom.org/viewtopic.php?t=65366

# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
2019-07-18 12:35:01 +02:00
Christoph Oelckers
fd3c760244 - fixed: The countdown for the subtitles display was never counted down so the messages remained forever. 2019-07-18 12:34:36 +02:00
Christoph Oelckers
65a054ba88 - implemented subtitle display for Blackbird's voiceover messages.
# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
2019-07-18 12:33:48 +02:00
drfrag
b92ceac25f - Fixed compilation.
# Conflicts:
#	src/c_console.cpp
2019-07-18 12:32:33 +02:00
Christoph Oelckers
1fb5361a82 - implemented subtitles for intermission slideshows.
# Conflicts:
#	src/d_main.cpp
#	wadsrc/static/language.csv
2019-07-18 12:30:19 +02:00
drfrag
74d8fa8a28 - added printlocalized CCMD to check strings in-game.
(patch by Graf)
2019-07-18 00:10:25 +02:00
Rachael Alexanderson
c992604b7f - set language cvar to global config, it should not be game-specific
# Conflicts:
#	src/g_cvars.cpp
2019-07-18 00:10:23 +02:00
alexey.lysiuk
fa7dae2676 - fixed compilation error with GCC and Clang
src/intermission/intermission_parse.cpp:941:2: error: no matching function for call to 'F_StartFinale'
2019-07-18 00:10:18 +02:00
Christoph Oelckers
b6799e7843 - added a 'testfinale' CCMD, so that the layout of finale texts can be tested more easily
# Conflicts:
#	src/gamedata/stringtable.cpp
#	src/gamedata/stringtable.h

# Conflicts:
#	src/intermission/intermission_parse.cpp
2019-07-18 00:10:14 +02:00
drfrag
ef1047db20 - Changes to the language table.
(patch by Graf)
2019-07-18 00:04:31 +02:00
drfrag
8c941ba1cf - A few more missing things for compatibility.
# Conflicts:
#	wadsrc/static/language.enu
2019-07-17 23:58:09 +02:00
alexey.lysiuk
cedc5a9702 - fixed UMAPINFO episode parsing
* bounds checking for accessing episode tokens
* support empty tokens in episode definition
* handle upper cased episode shortcut

https://forum.zdoom.org/viewtopic.php?t=65364

# Conflicts:
#	src/gamedata/umapinfo.cpp
2019-07-17 18:15:09 +02:00
alexey.lysiuk
95f0f7eadd - cleaned up language detection leftovers
# Conflicts:
#	src/posix/sdl/i_system.cpp
2019-07-17 18:14:53 +02:00
Christoph Oelckers
9c25d75f65 - removed a few obsolete definitions from basictypes.h
# Conflicts:
#	src/win32/i_specialpaths.cpp
2019-07-17 17:54:30 +02:00
Christoph Oelckers
1697e6ff3a - eliminated dependency of CVar code on AActor.
As a low level feature, the CVAR management should not access game structures like actors, just to retrieve a player index. The index should be calculated by the calling code instead and passed into the function.

# Conflicts:
#	src/win32/i_specialpaths.cpp

# Conflicts:
#	src/p_acs.cpp
2019-07-17 17:54:28 +02:00
alexey.lysiuk
bb946348da - fixed compilation with GCC 5 and newer
src/r_data/a_dynlightdata.cpp:72:44: error: no matching function for call to ‘FSerializer::Array(const char [5], int [5], int, std::nullptr_t)’
2019-07-17 17:54:08 +02:00
Christoph Oelckers
26863bfd94 - tested and fixed the attachable lights.
# Conflicts:
#	src/g_shared/a_dynlight.cpp
2019-07-17 17:53:43 +02:00
Christoph Oelckers
0c4fc385cc - User definable dynamic lights
This hasn't been tested yet!

# Conflicts:
#	src/g_shared/a_dynlight.h

# Conflicts:
#	src/g_shared/a_dynlightdata.cpp
2019-07-17 17:51:28 +02:00
drfrag
7b3d02dfec Revert "- fixed layout issues with Strife's dialogues."
This reverts commit 963d1b682c.

Partial revert.
2019-07-16 00:00:58 +02:00
drfrag
25ffe28abe Revert "- fixed lifetime of ScaleOverrider for Strife dialogues."
This reverts commit 6c14fe7202.
2019-07-15 23:23:55 +02:00
drfrag
87e8200277 Revert "- changed calculation of the scaling value for the option menu."
This reverts commit 6c869f123d.
2019-07-15 23:23:53 +02:00
drfrag
40875d1697 Revert "- make the clean scaling system more consistent."
This reverts commit cdcc8996a7.
2019-07-15 23:23:52 +02:00
Christoph Oelckers
bba2854796 - reimplemented new player setup menu as an OptionsMenu.
This is both for consistency and better localizability. The old code is retained to ensure that mods inheriting from the old menu continue to work.

# Conflicts:
#	src/menu/menudef.cpp
#	src/namedef.h
#	wadsrc/static/zscript/ui/menu/optionmenu.zs
2019-07-15 20:37:36 +02:00
Christoph Oelckers
3700b0c7b8 - replaced the procedural backdrop texture with some warped noise texture.
This was done because the backdrop as implemented was the only texture in the entire game that had to be deleted and recreated each frame.
However, with Vulkan this would have necessitated quite a bit of synchronization with the render pipeline which wasn't really feasible just for this one single texture.
Now the texture manager can assume that once a texture was created it will be immutable and never has to change.

# Conflicts:
#	src/CMakeLists.txt
#	src/textures/backdroptexture.cpp
#	src/v_2ddrawer.cpp
2019-07-15 19:55:51 +02:00
alexey.lysiuk
15dbacca01 - added validation for presence of drop item classes
https://forum.zdoom.org/viewtopic.php?t=65307
2019-07-12 22:11:54 +02:00
drfrag
19df6559a8 - Print a warning instead of error out on unsupported ZScript version. 2019-07-11 18:20:57 +02:00
drfrag
1d77f880a4 - Fixed hack: CanPrint must return 0 or it'd signal to the mods that NO FONT can print the text (what Graf said). 2019-07-11 14:07:47 +02:00
drfrag
e5f7bf068c - Some ugly hackery to try to make it more compatible. 2019-07-11 14:07:20 +02:00
Christoph Oelckers
da5c1c90dc - let IWAD and PWAD BigFonts override BigUpper for consistency.
# Conflicts:
#	src/gamedata/fonts/font.cpp
#	src/gamedata/fonts/singlelumpfont.cpp
#	src/gamedata/fonts/v_font.cpp
2019-07-11 13:41:45 +02:00
Christoph Oelckers
8ff421104d - fixed: The lump renaming was not performed for Doom, even for those pieces where needed. 2019-07-11 13:26:37 +02:00
Christoph Oelckers
d14a48f8f4 - use BigUpper font for option menu captions.
# Conflicts:
#	src/gamedata/fonts/v_font.cpp

There's actually no BigUpper font here. (drfrag)
2019-07-11 13:24:40 +02:00
alexey.lysiuk
660d930cf6 - do not set crouch player sprites on voodoo dolls
https://forum.zdoom.org/viewtopic.php?t=65257
2019-07-10 22:04:20 +02:00
alexey.lysiuk
c4780495e1 - fixed linking without DYN_FLUIDSYNTH defined
Undefined symbols for architecture x86_64:
  "CreateFluidSynthMIDIDevice(char const*, int)", referenced from:
      MIDIStreamer::CreateMIDIDevice(EMidiDevice, int) in music_midistream.o
2019-07-09 22:58:11 +02:00
Christoph Oelckers
d018b430f7 - made the class definitions of the MIDI devices private to the implementations. 2019-07-09 22:58:08 +02:00
alexey.lysiuk
a646b9cfa2 - fixed crash on starting ACS script without level
https://forum.zdoom.org/viewtopic.php?t=65287
2019-07-08 13:56:45 +02:00
alexey.lysiuk
0dbf2e3df7 - fixed LevelLocals.isFrozen() return value with JIT disabled
No more 'Number of parameters returned differs from what was expected by the caller' assertion failures
2019-07-08 13:56:35 +02:00
drfrag
ca9967d13b - Made automatic level compatibility optional.
As Enjay requested and Rachael suggested.
 I don't think i'm opening Pandora's box, what could go wrong?
2019-07-05 14:45:01 +02:00
alexey.lysiuk
9d8b4f6c05 - fixed missing dive and surface player sounds
https://forum.zdoom.org/viewtopic.php?t=65233
2019-07-05 13:33:55 +02:00
Major Cooke
e332d405f6 Re-ordered drawing a little.
# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
2019-07-03 21:48:04 +02:00
Major Cooke
dfe8f19dd5 Added RenderUnderlay.
- Works exactly like RenderOverlay, but is drawn behind the status bar/huds instead.

# Conflicts:
#	src/events.cpp
#	src/events.h
2019-07-03 21:48:01 +02:00
drfrag
c3482b75fc - Make joystick input in the background CVAR controlled. 2019-07-03 20:52:03 +02:00
alexey.lysiuk
f340d411c3 - added validation of LevelCompatibility.Apply() signature
# Conflicts:
#	src/compatibility.cpp
2019-07-03 13:49:36 +02:00
drfrag
29264b764b - Allow background gamepad input on linux as well. 2019-07-02 13:54:05 +02:00
drfrag
3f9643e1ca - Clarify ZScript version error message. 2019-07-01 11:35:54 +02:00
Magnus Norddahl
fc38b6bbf9 - fix querying for the wrong interface when the UNICODE define is set 2019-06-30 21:41:28 +02:00
Magnus Norddahl
36b7a7d189 - remove dead code 2019-06-30 21:41:25 +02:00
alexey.lysiuk
d90d590484 - added detection of macOS Catalina 2019-06-29 13:09:27 +02:00
drfrag
ed0890c7b6 - Allow acquiring DirectInput joysticks in the background for fake splitscreen. 2019-06-28 02:47:42 +02:00