Commit graph

14760 commits

Author SHA1 Message Date
Jan Engelhardt
02ca2b7c4a Make the build work with fluidsynth 2.x. 2019-09-01 00:09:15 +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
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
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
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
Christoph Oelckers
f1126bf70e - removed unnecessary variable clear.
It actually broke multiplayer since "replaced the assignment operator in player_t with a named function." (drfrag)
2019-06-28 00:03:37 +02:00
Christoph Oelckers
7d168c0146 - removed UTF-8 marker. 2019-06-26 14:28:03 +02:00
Rachael Alexanderson
1215653941 - add missing newline to PrintMiscActorInfo 2019-06-26 14:27:51 +02:00
drfrag
82d7419d34 - Hopefully fixed dithering in the present shader so it works on older hardware. 2019-06-26 11:46:11 +02:00
alexey.lysiuk
102cd3855c - fixed: endgame menu no longer resets player's userinfo
User CVARs can be stored in member variables for quicker access
Unconditional call to G_CheckDemoStatus() destructs and recreates such CVARs
Dangling pointers could be accessed during the last game tick, e.g. from event handlers

https://forum.zdoom.org/viewtopic.php?t=65150
2019-06-23 18:52:45 +02:00
Kevin Caccamo
3923a92f11 Expand UDMF and ZScript API for side's own additive colors
Add 'useowncoloradd_{top,mid,bottom}' sidedef properties to the UDMF 
spec
Only use side's additive colors if 'useowncoloradd_(top|mid|bottom)' is 
set.
Rename UseOwnColors flag to UseOwnSpecialColors
Add UseOwnAdditiveColor flag to side_t::part
Add EnableAdditiveColor to side_t
Add Side.EnableAdditiveColor to ZScript API
2019-06-23 14:11:08 +02:00
Kevin Caccamo
2c08a77f2c Minor fixes for additive colour ZScript API
Sector.SetAdditiveColor actually called Sector.SetSpecialColor
Add use boolean property, used to determine whether or not to override the sector's additive wall colour with the side's additive colour.
2019-06-23 14:11:06 +02:00
Kevin Caccamo
6ae47bad88 Rework implementation as per the new specification
The new specification is more flexible, and allows assigning additive
colors to individual parts of a sector (walls, sprites, flats) and even
individual parts of a side (top, middle, bottom)

Add AdditiveColors arrays to sector_t and side_t::part
Initialize AdditiveColors arrays to 0
Export AdditiveColors to ZScript
Save AdditiveColors in saved game files
Use colors from AdditiveColors arrays when setting the additive color
for the render state
Add code to parse the new UDMF additive color properties
Remove additive color slot from sector color/part enum
Add SetAdditiveColor to sector_t and side_t
Add GetAdditiveColor to side_t
Export new methods and additive color arrays to ZScript

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_walls.cpp
#	src/hwrenderer/scene/hw_weapon.cpp

# Conflicts:
#	src/gl/scene/gl_walls_draw.cpp
#	src/gl/scene/gl_weapon.cpp
#	src/hwrenderer/scene/hw_flats.cpp
#	src/r_defs.h
2019-06-23 14:10:41 +02:00
Kevin Caccamo
1a29fb9616 Change some of the names of the additive color properties 2019-06-23 13:40:19 +02:00
drfrag
e7ecdc9f9e - Fixed compilation but i don't think this will work. 2019-06-23 13:39:24 +02:00
Kevin Caccamo
866c6e13a6 Implement additive colours on HUD sprites
Also, make sure the alpha for the additive colour is 255.

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_walls.cpp
#	src/hwrenderer/scene/hw_weapon.cpp

# Conflicts:
#	src/gl/scene/gl_weapon.cpp
2019-06-23 12:50:19 +02:00
Kevin Caccamo
16a52cd8c8 Implement additive colour on walls and sprites
Also, don't modify the alpha channel when adding the additive colour.

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/hwrenderer/scene/hw_walls.cpp
#	src/hwrenderer/scene/hw_weapon.cpp

# Conflicts:
#	src/gl/scene/gl_weapon.cpp
2019-06-23 12:46:54 +02:00
Kevin Caccamo
edb3f8a448 Forcibly assign 0 to the additive special color 2019-06-23 11:46:59 +02:00
Kevin Caccamo
575b660b20 Rename ColorAdd to AddColor, and use it ingame
Rename ColorAdd to AddColor
Add AddColor to FRenderState
Tweak SpecialColors array in ZScript to include the additive color
Add uAddColor to the shader compiler
Add uAddColor to the texel

# Conflicts:
#	src/gl/shaders/gl_shader.cpp
#	src/hwrenderer/scene/hw_flats.cpp
#	src/hwrenderer/scene/hw_renderstate.h
#	src/hwrenderer/utility/hw_draw2d.cpp

# Conflicts:
#	src/gl/scene/gl_flats.cpp
#	src/hwrenderer/scene/hw_flats.cpp
2019-06-23 11:45:03 +02:00
Kevin Caccamo
8dd306a081 Initial work on Doom64-style fade/glow
# Conflicts:
#	src/hwrenderer/scene/hw_renderstate.h

# Conflicts:
#	src/r_defs.h
2019-06-23 11:30:29 +02:00
Christoph Oelckers
5f231473fd - defaulted a few empty constructors.
# Conflicts:
#	src/gamedata/g_mapinfo.h
2019-06-21 17:51:39 +02:00
drfrag
9585ae9c6e - Code cleanup. 2019-06-21 14:26:18 +02:00
Magnus Norddahl
98607f594e - use the exact sRGB->linear transfer function in HDR mode as the 2.2 gamma approximation is visibly inaccurate in this case
# Conflicts:
#	src/rendering/gl/renderer/gl_postprocess.cpp
#	src/rendering/gl/renderer/gl_stereo3d.cpp
#	src/rendering/hwrenderer/postprocessing/hw_postprocess.h
#	src/rendering/vulkan/renderer/vk_postprocess.cpp
#	wadsrc/static/shaders/glsl/present.fp

# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/stereo3d/gl_interleaved3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2019-06-21 14:21:03 +02:00
Magnus Norddahl
011176668a - Add missing screenshot sRGB gamma when vid_hdr is active
# Conflicts:
#	src/gl/system/gl_framebuffer.cpp

# Conflicts:
#	src/gl/system/gl_framebuffer.cpp
2019-06-21 13:02:18 +02:00
alexey.lysiuk
a6038dc773 - creation of dither texture no longer affects active unit
Red checkerboard was rendered upon startup instead of
* the first saved game's thumbnail
* the first game frame
2019-06-20 22:13:16 +02:00
Rachael Alexanderson
1a26946e5b - Allow specifying monitor bits-per-channel for dithering output. Not all displays are created equal, so this option is actually important for specifying the exact amount for your display.
# Conflicts:
#	src/gl/renderer/gl_stereo3d.cpp
#	wadsrc/static/menudef.txt

# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/stereo3d/gl_interleaved3d.cpp
2019-06-20 22:12:48 +02:00
Magnus Norddahl
7021e612b0 - add gl_dither for toggling dithered output on and off
# Conflicts:
#	src/gl/renderer/gl_stereo3d.cpp
#	wadsrc/static/menudef.txt

# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/stereo3d/gl_interleaved3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2019-06-20 21:27:17 +02:00
Magnus Norddahl
4cd535b3b6 - add vid_hdr cvar that enables higher than 8bpc output for monitors that support it
# Conflicts:
#	src/v_video.cpp
#	src/win32/win32glvideo.cpp

# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
2019-06-20 20:48:42 +02:00
Christoph Oelckers
73ed375b6f Make dither texture data constant 2019-06-20 19:29:14 +02:00
Rachael Alexanderson
fd83903841 - replace dither texture with a hand pre-calculated table) 2019-06-20 19:29:12 +02:00
drfrag
0b76305e8e - Fixed compilation. 2019-06-20 19:28:24 +02:00
Magnus Norddahl
888fba12ea - use a texture for the dither matrix
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/renderer/gl_renderbuffers.h

# Conflicts:
#	wadsrc/static/shaders/glsl/present.fp
2019-06-20 18:20:33 +02:00
drfrag
7fdf558ad6 Revert "- add gl_dither for toggling dithered output on and off"
This reverts commit 770c676ac9.

# Conflicts:
#	wadsrc/static/menudef.txt
2019-06-20 18:04:30 +02:00
drfrag
8b7c5242cb Revert "Revert "- add dithering to present shader""
This reverts commit c2a3895bfe.

# Conflicts:
#	wadsrc/static/menudef.txt
2019-06-20 18:03:24 +02:00
Christoph Oelckers
300f4adea8 - fixed incorrect implementation of "episode = clear" in UMAPINFO. 2019-06-19 21:59:56 +02:00
alexey.lysiuk
a334d08a7b - fixed incomplete parsing of UMAPINFO when map already exists
https://forum.zdoom.org/viewtopic.php?t=65100
2019-06-19 21:59:53 +02:00
alexey.lysiuk
8ec249077d - fixed missing skill menu for episodes defined by UMAPINFO
https://forum.zdoom.org/viewtopic.php?t=65096
2019-06-19 21:59:51 +02:00
alexey.lysiuk
633900ef15 - fixed: all UMAPINFO definitions were applied to default map slot
https://forum.zdoom.org/viewtopic.php?t=65102
2019-06-19 21:59:48 +02:00
Christoph Oelckers
bf767dd560 - give UMAPINFO the ability to disable cluster-based exit texts.
# Conflicts:
#	src/g_level.cpp
#	src/gamedata/g_mapinfo.h
2019-06-19 21:59:46 +02:00
alexey.lysiuk
8735dd18ad - exported unconditional level exit to ZScript
Exit_Normal and Exit_Secret specials imply addition conditions to make a decision about proceeding to the next map
A few scriptified actors require a bypass of these conditions in order to work properly
2019-06-17 22:03:28 +02:00
drfrag
336a9f9015 - More helpful unsupported version error message. 2019-06-16 14:44:28 +02:00
Chronos Ouroboros
65a3322166 Fixed "if (!(lhs ~== rhs))" breaking with vectors. 2019-06-14 13:34:06 +02:00
drfrag
a7bcd8ff52 - Take vanilla light mode into account for MAPINFO but they never worked. 2019-06-14 13:33:28 +02:00
Rachael Alexanderson
fb326b2780 - add nullptr checks for double-frame model interpolation 2019-06-13 15:54:17 +02:00
Christoph Oelckers
06c0dbe71e - on second thought, better call M_ClearMenus instead of calling Destroy directly. 2019-06-10 20:58:38 +02:00
Christoph Oelckers
96d857cd78 - fixed: DeinitMenus must explicitly destroy the active menu before taking down the descriptors.
Otherwise the menu will only be collected by the garbage collector and no longer find all relevant data.
2019-06-10 20:58:34 +02:00
drfrag
36020225eb - Added DEG2RAD function. 2019-06-10 20:54:47 +02:00
alexey.lysiuk
1e496d2d6f - fixed compilation of Cocoa backend
src/posix/cocoa/i_main.mm:225:12: error: Objective-C declarations may only appear in global scope
src/posix/cocoa/i_main.mm:247:17: error: Objective-C declarations may only appear in global scope
src/posix/cocoa/i_main.mm:545:2: error: expected '}'
2019-06-10 20:52:50 +02:00
Christoph Oelckers
b473fc936c - consolidated the 3 atterm implementations.
Each platform had its own copy. Why?

# Conflicts:
#	src/CMakeLists.txt
#	src/dobjtype.cpp
#	src/g_mapinfo.cpp
#	src/g_statusbar/sbarinfo.cpp
#	src/i_net.cpp
#	src/menu/menudef.cpp
#	src/p_setup.cpp
#	src/posix/cocoa/i_video.mm
#	src/posix/i_system.h
#	src/posix/sdl/i_main.cpp
#	src/r_utility.cpp
#	src/s_advsound.cpp
#	src/s_sound.cpp
#	src/v_video.cpp
#	src/win32/i_input.cpp
#	src/win32/i_system.h

# Conflicts:
#	src/CMakeLists.txt
#	src/doomtype.h
#	src/i_net.cpp
#	src/posix/sdl/i_system.cpp
#	src/win32/i_system.cpp
#	src/win32/win32video.cpp
2019-06-10 20:52:02 +02:00
alexey.lysiuk
d76c7306ca - removed explicit self null tests from dynarray native wrappers
They are useless since d3e6ed3c9b in which generation of implicit self null pointer check was added to JIT
2019-06-10 20:12:03 +02:00
drfrag
4e3f294453 - Extended fake Shape2D. 2019-06-10 20:07:47 +02:00
Gutawer
9df4683056 - cleaned up SDL mouse event handling
* Right/middle clicking no longer cancels out the mouse motion events
* The events for the side mouse buttons (EV_GUI_BackButtonDown/Up, EV_GUI_FwdButtonDown/Up) were never fired
* The EV_GUI_WheelRight/Left events were never fired
* The key bindings for mouse buttons above 3 (from 4-8) were broken - pressing MOUSE4 would bind to MOUSE6, for example
2019-06-08 13:11:00 +02:00
alexey.lysiuk
b3f18e5e47 - report implicitly initialized variable in code generator once
Vectors are no longer reported several times
Previously, warnings were issued per every register
2019-06-08 13:10:58 +02:00
alexey.lysiuk
279bac7fe9 - fixed access to wrong event data in SDL backend
Wrong button state event data were read on mouse motion

https://forum.zdoom.org/viewtopic.php?t=64950
2019-06-08 13:10:55 +02:00
alexey.lysiuk
f0b156c5e1 - added implicit initialization of reused register variables in ZScript 2019-06-07 20:23:31 +02:00
alexey.lysiuk
0103f9976e - added null check for self pointer before calling a native function
With JIT enabled, an implicit test for null self pointer is added to generated code
This has no effect without JIT as VM verifies a pointer before calling a native method

https://forum.zdoom.org/viewtopic.php?t=64961
2019-06-07 20:23:28 +02:00
alexey.lysiuk
977eac8672 - fixed hires texture lookup in Doomsday style .pk3
IWAD wasn't detected properly, and wrong texture can be picked as a hires replacement (e.g., SLADRIP1 from Ultimate Doom instead of TNT)

https://forum.zdoom.org/viewtopic.php?t=64915
2019-06-06 18:43:27 +02:00
Christoph Oelckers
4b598d4976 - fixed the write barriers for the HUD message linked list.
To ensure that no broken relations occur, any change in the list must be handled by a write barrier, not just the single message that gets added.

# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
2019-06-06 18:43:26 +02:00
drfrag
b0d98425a6 - Fixed Strife dialogues. 2019-06-06 18:43:24 +02:00
Chronos Ouroboros
e4f0c366c4 Really fixed arrays of dynarrays this time. 2019-06-05 12:47:01 +02:00
William Breathitt Gray
666bf57d5f Cephes code is released under BSD license
The Cephes Mathematical Library author Steve Moshier has released the
Cephes Mathematical Library under the BSD license. This patch patch
replaces the cephes license with the BSD license for all Cephes
Mathematical Library code.

See also: https://bugs.gentoo.org/687276
See also: https://lists.debian.org/debian-legal/2004/12/msg00295.html
See also: https://github.com/deepmind/torch-cephes/blob/master/LICENSE.txt
See also: https://github.com/nearform/node-cephes/blob/master/LICENSE

# Conflicts:
#	src/math/readme.txt
2019-06-05 12:46:59 +02:00
Rachael Alexanderson
c6c8f514fb - added a third state for cl_blockcheats. ==2 now blocks them silently. 2019-06-05 12:46:57 +02:00
Alexander
3e3097fe71 added native double round(double) function 2019-06-05 12:46:56 +02:00
alexey.lysiuk
ff92b4b5d7 - reset internal console state on clear CCMD
'last line needs update' flag cannot be set when console is empty as there are no lines at all in this case

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

# Conflicts:
#	src/c_consolebuffer.cpp
2019-06-03 12:47:29 +02:00
drfrag
6dd1d5eb38 - Fixed uninitialized variable in case GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS does not exist.
Old graphics, like mine (Intel Sandybridge Mobile, GL 3.0 Mesa) do not support this, therefore most of the time RFL_SHADER_STORAGE_BUFFER wasn't unset (I found no consequence of this on my machine, but better safe than sorry).

Found out by Valgrind. (patch by edward-san)
2019-06-02 22:01:18 +02:00
Edoardo Prezioso
768dc56ac0 - Fixed a buffer overflow with Timidity++ when playing Sigil e5m5 music.
See https://forum.zdoom.org/viewtopic.php?f=2&t=64910 .
2019-06-02 22:01:01 +02:00
Kevin Caccamo
9e9bc7fb7f Fix OBJ face normal direction
https://forum.zdoom.org/viewtopic.php?f=2&t=64740
2019-06-02 22:00:59 +02:00
drfrag
5153d19af0 - Fixed compilation with gcc and clang. 2019-05-30 12:23:38 +02:00
alexey.lysiuk
a45c2ed9b6 - adjusted condition for ZScript global variable deprecation warning
The message is always printed for any use of deprecated global variable
If such variable is accessed inside a deprecated function from a core script lump, the message is printed only when verbosity level is set to highest

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

# Conflicts:
#	src/scripting/backend/codegen.cpp
2019-05-30 11:37:30 +02:00
drfrag
dd4807a6ee - Added new great icons by Tormentor667. 2019-05-30 00:05:02 +02:00
alexey.lysiuk
6f2102ae1d - fixed: version wasn't set for ZScript global variables
https://forum.zdoom.org/viewtopic.php?t=64830
2019-05-29 22:14:48 +02:00
alexey.lysiuk
6fbb1596e7 - fixed code generation for ternary operator with vector result types
https://forum.zdoom.org/viewtopic.php?t=64831
2019-05-29 22:14:46 +02:00
alexey.lysiuk
f44a9c8453 - fixed crash on message output during decorate parsing
Script position is now initialized at the very beginning of decorate parsing process
Script position no longer contains uninitialized file name

https://forum.zdoom.org/viewtopic.php?t=64836
2019-05-29 22:14:43 +02:00
alexey.lysiuk
b8e483166b - fixed conversation links with pages referenced by name
https://forum.zdoom.org/viewtopic.php?t=64177

# Conflicts:
#	src/p_usdf.cpp
2019-05-27 11:58:19 +02:00
alexey.lysiuk
1b0d8391c4 - fixed 'Pause by <playername>' message in multiplayer
https://forum.zdoom.org/viewtopic.php?t=64765

# Conflicts:
#	src/d_main.cpp
2019-05-27 11:58:06 +02:00
alexey.lysiuk
dc18200339 - fixed wrong native call for Actor.Vec2Offset()
https://forum.zdoom.org/viewtopic.php?t=64810
2019-05-27 11:58:03 +02:00
drfrag
1c593d0f67 - fixed character position assignment for multi-lump fonts
https://forum.zdoom.org/viewtopic.php?t=64741#p1104427
(patch by _mental_)
2019-05-27 11:57:44 +02:00
David Carlier
5add93d60a Fixing crash when loaded module, using proper function liberate them. 2019-05-27 11:57:32 +02:00
Christoph Oelckers
d8c13bed5e - Fixed loading of folder based fonts and added a config lump per font.
This is done by putting a font.inf file into the folder.
Current options are "Kerning", "Scale", "FontHeight" and "SpaceWidth"

# Conflicts:
#	src/textures/textures.h
#	src/v_font.cpp

# Conflicts:
#	src/v_font.cpp
2019-05-26 21:38:08 +02:00
Christoph Oelckers
1252042e33 - cleanup of font init to have less special cases
To make things easier, DBIGFONT, SBIGFONT and HBIGFONT will now be renamed in the lump directory to make things a bit easier to handle.

Another change is to make font folders atomic units to prevent cross-pollution between incompatible fonts. The only exception to this are the def* folders because they need to piece together their fonts from both zd_extra.pk3 and the IWADs.
2019-05-26 21:31:46 +02:00
Christoph Oelckers
1edf0a001b - changed font loader to detect fonts in folders and to find all default fonts in folders.
# Conflicts:
#	src/v_font.cpp
2019-05-26 21:17:44 +02:00
Christoph Oelckers
32c24038b0 - reworked font loader to make adding multi-lump fonts easier.
A multi-lump font can be created by putting all characters into a subdirectory of fonts/ with the intended name. Each character needs to be named by its character index as hex number.
So far this is only active for the predefined small fonts

# Conflicts:
#	src/v_font.cpp
2019-05-26 21:17:16 +02:00
drfrag
b62973d190 - Fixed compilation with old gcc and clang. 2019-05-23 00:05:16 +02:00
Rachael Alexanderson
d54c1a7af1 - add some debugging information for GZSDF pagenames feature
# Conflicts:
#	src/p_usdf.cpp
2019-05-22 19:57:26 +02:00
alexey.lysiuk
d1298e2a71 - do not pass TObjPtr<> instances as ScriptUtil::Exec() arguments
There was no read barrier inserted for AActor object while it's a subject of garbage collection
Pointer stored in TObjPtr<> was reinterpreted as void* because of vararg function

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

# Conflicts:
#	src/dobjgc.h
#	src/p_acs.cpp
2019-05-22 19:57:24 +02:00
Christoph Oelckers
75f5318b00 - fixed text color setup for added console message. 2019-05-22 19:57:22 +02:00
drfrag
14981adb6a - Greek Sigma character fallback
The lowercase Sigma letter in Greek has two different forms (σ and ς), which changes depending on its placement in a word, but in uppercase and smallcaps contexts, it only has one look regardless of word positioning. If the character ς is missing, it should fall back to σ.
(patch by Graf & Nemrtvi)
2019-05-22 19:57:19 +02:00
Alexander
9191a33d82 made "netevent cannot be used outside of a map" message a warning 2019-05-18 14:09:01 +02:00
Alexander
fa42357891 added a crosshair on/off toggle
# Conflicts:
#	wadsrc/static/menudef.txt
2019-05-18 14:08:59 +02:00
drfrag
fcdc296ec7 - Missing casting, even when that function is deprecated. 2019-05-15 19:13:01 +02:00
drfrag
1186bccca0 - Fixed crash with dummy texture inside FTexture::FillBuffer in software mode.
Caused by The following GameInfo line in Doom Tournament:
 Border = 0,0,"","","","","","","",""
2019-05-15 18:41:11 +02:00
alexey.lysiuk
b0398273e2 - fixed compilation with GCC and Clang
src/g_mapinfo.cpp:840:58: error: cannot pass objects of non-trivially-copyable type ‘class FString’ through ‘...’
2019-05-14 20:13:16 +02:00
drfrag
369233c2cf - fixed 'I' to 'i' upper-to-lower mapping
https://forum.zdoom.org/viewtopic.php?t=64526
(patch by _mental_)
2019-05-14 20:13:13 +02:00
Player701
f55ad14663 Added support for monospacing alignment modes to HUDFont / BaseStatusBar.DrawString (#810)
* - Added support for monospacing alignment modes to HUDFont / BaseStatusBar.DrawString

* - added underlying type declaration for EMonospacing

* - replaced "#include v_video.h" with a declaration of EMonospacing
2019-05-14 19:50:43 +02:00
Christoph Oelckers
a6491c71b5 - added monospacing support to Screen.DrawText and its native counterparts.
# Conflicts:
#	src/g_statusbar/shared_sbar.cpp
#	src/v_draw.cpp
#	src/v_video.h

Without the HUD modifications. (drfrag)

# Conflicts:
#	src/v_draw.cpp
#	wadsrc/static/zscript/base.zs
2019-05-14 19:50:25 +02:00
Christoph Oelckers
2887bc6afc - do proper checks for chat string length.
The counter variable was not only used incorrectly, it was completely redundant.
This still has a byte limit due to how the network code works so for non-Latin languages may result in shorter strings.
2019-05-14 19:47:12 +02:00
Player701
405ece578a - Added "const" qualifiers to the new UTF-8-aware string methods 2019-05-14 19:39:09 +02:00
Christoph Oelckers
0c36ab0651 - added CharUpper and CharLower functions to ZScript.
These, like MakeUpper and MakeLower, use the internal Unicode case conversion tables.

# Conflicts:
#	src/scripting/vmthunks.cpp
2019-05-14 19:37:49 +02:00
Christoph Oelckers
1e0228c13a - added Unicode aware MakeUpper/MakeLower functions to FString and ZScript's String and deprecated ToUpper/ToLower because their semantics did not allow fixing them. 2019-05-14 19:37:47 +02:00
drfrag
f2a43353c4 - Exported some types to fontinternals.h. 2019-05-14 19:37:44 +02:00
Christoph Oelckers
6caf1f60c6 - added some UTF-8 utilities to FString.
This deprecated CharAt and CharCodeAt for being unsuitable for text processing and in the case of CharCodeAt also for being buggy.
A new replacement, ByteAt has been added that reads a string byte by byte, as well as CodePointCount, which counts the amount of Unicode code points in a string and GetNextCodePoint which reads the string code point by code point.
Note that while this woll work as intended with the currently supported languages as a means to read single characters, there is no guarantee that this will remain so if Unicode support gets extended to things which break the "one code point == one character" assumption.
2019-05-14 19:35:21 +02:00
drfrag
77f2497ecf - added a few more character fallbacks and fixed the StringWidth function
This checked character size without substituting missing characters, resulting in bad return values.
(patch by Graf)
2019-05-14 19:34:12 +02:00
Christoph Oelckers
344c6a380b - fixed: The WideString conversion function was missing a null check. 2019-05-14 19:10:27 +02:00
Christoph Oelckers
52b8c02fdf - use the Unicode version of GetCommandLine for the crash log. 2019-05-14 19:09:24 +02:00
alexey.lysiuk
d85fb785eb - fixed missing command line in crash reports
https://forum.zdoom.org/viewtopic.php?t=64149
2019-05-14 19:09:22 +02:00
Alexander
dc666203b7 added option search menu
# Conflicts:
#	src/g_cvars.cpp
#	wadsrc/static/menudef.txt

# Conflicts:
#	src/menu/menu.cpp
2019-05-14 18:59:10 +02:00
Christoph Oelckers
f026198a8d - set a Unicode capable font for the Windows console.
The default raster font only contains the OEM 437 code page which is quite useless.
2019-05-14 18:42:33 +02:00
drfrag
a31c9273dd - do not use iswspace to check raw UTF-8.
At least under MSVC this function reports 0x85 as whitespace, but it is a continuation byte for UTF-8 sequences and may not be treated as whitespace.
(patch by Graf)
2019-05-14 18:41:40 +02:00
drfrag
8a9ffb3031 - added a fallback mapping for the typographic upper quotation mark to the generic form.
- added lowercase->uppercase mapping for ß.
(patch by Graf)
2019-05-14 18:39:00 +02:00
Christoph Oelckers
d47d1f248b - fixed: The command line parser of the console was incapable of handling non-ASCII characters. 2019-05-14 18:31:02 +02:00
Christoph Oelckers
182846c9a0 - fixed character counting in TypeOn HUD message.
# Conflicts:
#	src/g_shared/hudmessages.cpp
2019-05-14 18:29:11 +02:00
Christoph Oelckers
c7101b6b32 - reformat the intermission screen if the text is very long.
This will ensure better visibility on widescreen displays, at least.

# Conflicts:
#	src/intermission/intermission.cpp
2019-05-14 18:04:22 +02:00
Christoph Oelckers
5bd6b6758c - fixed utf8_decode.
This function was written for already validated UTF-8 but not for text that can be mixed with ISO-8859-1.
To handle that properly it needs to do a bit more validation to avoid mangling its output and instead reject invalid input.
2019-05-14 18:01:46 +02:00
Christoph Oelckers
2ea80429a7 - fixed the status bar string drawers which weren't UTF-8 capable yet.
# Conflicts:
#	src/g_statusbar/sbarinfo.cpp
#	src/g_statusbar/shared_sbar.cpp
2019-05-14 18:00:54 +02:00
Christoph Oelckers
d2959760dc - fixed chat input.
# Conflicts:
#	src/ct_chat.cpp
2019-05-14 17:49:05 +02:00
Christoph Oelckers
4561eaf093 - Fixed the character substitution logic.
For pure uppercase fonts it makes no sense to try a lowercase substitution as a first step.

# Conflicts:
#	src/gamedata/fonts/font.cpp
#	src/v_font.h
2019-05-14 17:46:42 +02:00
Christoph Oelckers
3127a28e35 - fixed reading of exit text replacements and display of intermission text screens for Unicode. 2019-05-14 17:40:12 +02:00
Christoph Oelckers
cf818fbe10 - changed zstrformat to allow %c to emit non-ASCII characters as UTF-8. 2019-05-14 17:38:45 +02:00
drfrag
4c7eb79d72 - Fixed MinGW compilation. 2019-05-14 17:30:58 +02:00
Christoph Oelckers
d51728c7c3 - did a bit of fine tuning to the character replacement mappings:
* prefer accent-less lower case over uppercase letters if an accented lower case letter cannot be found.
* added accent-less mappings for Latin Extended 1 (0x100-0x17f) and some easy to handle characters between 0x200 and 0x220. This should allow to display all Eastern European text without empty gaps for missing letters.

# Conflicts:
#	src/v_font.cpp
2019-05-14 17:28:16 +02:00
Christoph Oelckers
b14a48d2dc - fixed Windows startup.
* the window class name was still ASCII, thanks to some totally pointless and ultimately dangerous type cast to LPCTSTR which rendered all type checks ineffective.
* use wWinMain instead of WinMain so that a Unicode argv gets created. For whatever reason, the ANSI startup leaves this variable empty.
* added a 'disablecrashlog' CCMD for Windows. It is a lot more useful with a debugger present to get the standard crash notification from the system which allows opening a debugger than the crash log and no option to open a debugger.
2019-05-14 17:20:30 +02:00
Christoph Oelckers
163d3395b8 - fixed crash log display.
This still contained pieces where a multibyte string was passed through SendMessage and WM_SETTEXT. All these have been replaced with SetWindowTextW.
This commit also removes the never used crash log upload code and all associated assets because it is extremely unlikely that such a feature will ever be implemented.
2019-05-14 17:20:17 +02:00
Christoph Oelckers
1e9a65e673 - fixed the player name display.
This was broken by several small unicode-incompatible code fragments.
This commit also removes the input limit for the player name and the savegame description. With multibyte encoding, limiting them to a fixed length did not work right.
Currently these will just overflow the fields if the text becomes too long, this needs some additional work.
2019-05-14 17:19:34 +02:00
Christoph Oelckers
f790d48041 - made the menu's text input handler Unicode capable.
Also make sure that the savegame description remains readable. Unlike in-game text this can be done without double-encoding existing UTF-8.
2019-05-14 17:19:19 +02:00
Christoph Oelckers
d067c55cff - made the chat input Unicode-capable.
Also changed this to use the console font because it is far better equipped with special characters than the small font.

# Conflicts:
#	src/ct_chat.cpp

# Conflicts:
#	src/ct_chat.cpp
2019-05-14 17:17:41 +02:00
Rachael Alexanderson
9b8ec98f78 - fix building in 32 bit windows 2019-05-14 17:16:15 +02:00
Christoph Oelckers
c7877388a9 - made the console Unicode-capable.
This also necessitated some character remapping in the console font to move the Windows-1252 extra characters to their proper Unicode code points.

# Conflicts:
#	src/CMakeLists.txt
#	src/posix/sdl/i_input.cpp
#	src/scripting/backend/codegen.cpp
#	src/v_font.cpp

# Conflicts:
#	src/c_console.cpp
2019-05-14 17:12:18 +02:00
Christoph Oelckers
9030289e1e - use the Unicode version of Windows's clipboard functions. 2019-05-14 17:10:00 +02:00
Christoph Oelckers
4c9e6853b1 - made Windows backend parts of the console Unicode capable.
# Conflicts:
#	src/c_console.cpp
#	src/v_font.cpp
#	src/win32/i_system.cpp
2019-05-14 17:05:40 +02:00
drfrag
77498e2740 Revert "- Applied some Blzut3 patches to compile with MinGW."
This reverts commit ad5959b827.

Compilation with vanilla MinGW is broken since the changes to the HQ resize modes anyway.
2019-05-14 16:32:39 +02:00
Christoph Oelckers
8d157f3ced - switched the Windows backend to use the Windows Unicode API.
With localization for non-Latin languages on the support list the multibyte API doesn't cut it anymore. It neither can handle system text output outside the local code page nor can an ANSI window receive text input outside its own code page.
Similar problems exist for file names. With the multibyte API it is impossible to handle any file containing characters outside the active local code page.

So as of now, everything that may pass along some Unicode text will use the Unicode API with some text conversion functions. The only places where calls to the multibyte API were left are those where known string literals are passed or where the information is not used for anything but comparing it to other return values from the same API.

# Conflicts:
#	src/rendering/hwrenderer/postprocessing/hw_postprocess.h
#	src/win32/base_sysfb.cpp
#	src/win32/i_main.cpp
#	src/win32/win32basevideo.cpp
#	src/win32/win32glvideo.cpp

# Conflicts:
#	src/version.h
#	src/win32/i_main.cpp
#	src/win32/i_system.cpp
#	src/win32/optwin32.h
#	src/win32/win32gliface.cpp
#	wadsrc/static/language.enu
2019-05-14 16:17:05 +02:00
Christoph Oelckers
e27efa5a2e - fixed DHudMessageTypeOnFadeOut's character counter to be UTF-8 compatible.
This was reading the string by byte and not by character and could end up printing incomplete UTF-8 data.
2019-05-14 13:31:23 +02:00
Christoph Oelckers
18253b5203 - added some character counting utilities to FString. 2019-05-14 13:31:07 +02:00
Christoph Oelckers
8626dd665c pass full Unicode characters to EV_GUI_Char for Linux and macOS.
The Linux backend looked like it didn't handle anything non-ASCII at all, but this all needs to be tested.
Windows will be a bit more work because it requires using the Unicode API for creating the main window.
2019-05-14 13:30:52 +02:00
drfrag
b041e629ac - fixed lowercase handling of non-basic-latin characters.
The added table may be overkill but this way the font engine is prepared for things to come.
Currently the text placement in the menu seems a bit broken, that's a task for later.
(patch by Graf)

# Conflicts:
#	src/v_font.cpp
2019-05-14 13:11:10 +02:00
drfrag
eb0b3f3d53 - Changed ToLong and ToULong prototypes. 2019-05-14 13:02:04 +02:00
alexey.lysiuk
5e2a4345ba - removed useless assertions
https://forum.zdoom.org/viewtopic.php?t=64616#p1103673

# Conflicts:
#	src/p_sight.cpp
2019-05-13 14:34:35 +02:00
XxMiltenXx
c8398d5cf3 Fixes for Door_AnimatedClose (#838)
* Fixes for Door_AnimatedClose

- Fixing that Door_AnimatedClose would be activated on an already closed door (playing the sound and the 1st frame of the animation)
- There was no check if the Door is already Animated when a tag was used with Door_AnimatedClose

* Removed doubled "door->StartClosing();".
2019-05-12 20:23:06 +02:00
alexey.lysiuk
2fb48f30ff - made setting actor TID more explicit
Now it's no longer possible to manipulate TID hash from arbitrary location
For example, this prevents linking of destroyed object into the hash
TID member is still public but writing to it is limited to a few very specific cases like serialization and player traveling between levels

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

# Conflicts:
#	src/actor.h
#	src/maploader/maploader.cpp
2019-05-10 12:41:29 +02:00
drfrag
ab24128049 - Missed some things regarding software threads.
(with help from dpJudas)
2019-05-10 11:27:12 +02:00
alexey.lysiuk
8c81888471 - removed obsolete snd_flipstereo CVAR
https://forum.zdoom.org/viewtopic.php?t=64630
2019-05-09 16:27:40 +02:00
alexey.lysiuk
93b7f16e8d - added missing compat flag CVAR for Strife railing
https://forum.zdoom.org/viewtopic.php?t=64627
2019-05-09 16:27:37 +02:00
drfrag
88e8034db1 - Fall back to two threads for software and add a warning if the number of cores cannot be determined. 2019-05-09 15:06:22 +02:00
alexey.lysiuk
6efd03bbcd - fixed compilation of Cocoa backend
src/posix/cocoa/i_input.mm:487:30: error: no member named 'GetTrueHeight' in 'DFrameBuffer'
2019-05-09 11:01:51 +03:00
drfrag
7763698166 Revert "- Add stack protection for MinGW."
This reverts commit 9d3326d847.

Forgot to revert this, made it crash on 64 bit windows.
2019-05-06 14:25:10 +02:00
alexey.lysiuk
60748c16e4 - improved handling of HUDMSG_TYPEON
This includes the following changes
* Validation of serialized values
* Proper fix for message cut off after an empty line, part of https://forum.zdoom.org/viewtopic.php?t=63935, which appeared to be broken again with dbf06fc
* No crash with an empty HUD message, https://forum.zdoom.org/viewtopic.php?t=63761 and https://forum.zdoom.org/viewtopic.php?t=64569

# Conflicts:
#	src/g_shared/hudmessages.cpp
2019-05-05 23:42:51 +02:00
drfrag
819b9f972d - Added "-zsvoverride" command line switch to override mod ZScript version requirement. 2019-05-03 19:09:17 +02:00
drfrag
f7268fadd8 - This didn't work with only one light. 2019-05-03 15:26:08 +02:00
alexey.lysiuk
2e0185373f - fixed missing null checks in JIT generated code
https://forum.zdoom.org/viewtopic.php?t=64307
2019-05-02 19:59:13 +02:00
alexey.lysiuk
2b65cbf687 - fixed crash on JIT allocations over 1 MB
https://forum.zdoom.org/viewtopic.php?t=64383
2019-05-02 19:59:10 +02:00
Alexander
c147990452 added MakeScreenShot and MakeAutoSave functions to FLevelLocals
# Conflicts:
#	src/g_game.h
#	wadsrc/static/zscript/base.zs
2019-05-02 19:53:42 +02:00
Christoph Oelckers
9ef338282d - fixed allocation mismatch in WildMidi. 2019-05-02 19:52:06 +02:00
Christoph Oelckers
a36aa185db - reinstated the old clean scaling factor calculation just for the status bar.
Some mods took the lack of validation in this code for granted.
2019-05-02 19:29:38 +02:00
drfrag
d697d4dc2a - Bumped ZScript version. 2019-05-02 19:27:12 +02:00
drfrag
47c9fce26a - More castings. 2019-05-02 19:26:47 +02:00
Christoph Oelckers
18bf8d65ba - fixed radius use in dynamic light traversal for models.
# Conflicts:
#	src/hwrenderer/scene/hw_spritelight.cpp

# Conflicts:
#	src/gl/scene/gl_spritelight.cpp
2019-05-02 18:00:43 +02:00
drfrag
411169bc46 - fixed: GetDisplayDeviceName must always pick a valid monitor.
There is no default here, so if vid_adapter is invalid for whatever reason the engine would crash without a defined setting.
(patch by Graf)
2019-05-02 17:28:25 +02:00
Magnus Norddahl
5d469a532b - add r_ticstability for a smoother experience playing mods with high think times 2019-05-02 17:27:53 +02:00
alexey.lysiuk
aa7a7474ba - added message about missing texture for material definition
https://forum.zdoom.org/viewtopic.php?t=64234
2019-05-02 16:58:15 +02:00
alexey.lysiuk
42b3518266 - fixed crash in GLDEFS parser caused by missing texture
https://forum.zdoom.org/viewtopic.php?t=64234
2019-05-02 16:54:21 +02:00
Christoph Oelckers
9d70b8436a - changed the filter name for Doom IWADs
It's "doom.id.doom1/2" instead of "doom.doom1/2" now.
The config file's content will be renamed and for lump filtering a fallback has been added - note that you cannot combine both naming schemes! The old one has to be considered deprecated now.

This also removes the duplicated content necessitated by the old naming scheme.

# Conflicts:
#	src/version.h
2019-05-01 01:01:35 +02:00
Christoph Oelckers
5eebffd7b5 - fixed: ACS's APROP_ViewHeight needs to check if a real player is attached to a PlayerPawn. 2019-05-01 00:59:20 +02:00
Christoph Oelckers
943991ff89 - the resuming of the conversation interrupted by a slideshow must be performed by the game action handler
If this is done within the intermission code, both intermission and menu will write to the same global variables and destroy their data, this became very apparent when it altered the screen scale for the conversation.

# Conflicts:
#	src/g_game.cpp
2019-05-01 00:58:45 +02:00
pkubaj
25fc00f64c Remove bad BigLong variants 2019-05-01 00:43:11 +02:00
pkubaj
ff670651ec Fix build on big-endian platforms
GCC 8 complains that it can't find relevant functions:
/wrkdirs/usr/ports/games/gzdoom/work/gzdoom-g3.7.2/src/m_png.cpp:669:42: error: call of overloaded 'BigLong(uint32_t)' is ambiguous
     chunklen = BigLong((unsigned int)x[1]);
                                          ^
In file included from /wrkdirs/usr/ports/games/gzdoom/work/gzdoom-g3.7.2/src/m_png.cpp:44:
/wrkdirs/usr/ports/games/gzdoom/work/gzdoom-g3.7.2/src/m_swap.h:212:15: note: candidate: 'long unsigned int BigLong(long unsigned int)' <deleted>
 unsigned long BigLong(unsigned long) = delete;
               ^~~~~~~
/wrkdirs/usr/ports/games/gzdoom/work/gzdoom-g3.7.2/src/m_swap.h:213:6: note: candidate: 'long int BigLong(long int)' <deleted>
 long BigLong(long) = delete;

This is on FreeBSD/powerpc64.
2019-05-01 00:43:09 +02:00
alexey.lysiuk
fac9cb1bbd - fixed crash with push/insert to null dynarray when JIT is on
https://forum.zdoom.org/viewtopic.php?t=64148
2019-05-01 00:43:07 +02:00
Christoph Oelckers
6ec2ddb702 - use a more reliable menu check for the player menu items.
This needs to ensure that it only allows modification from within a menu's event handlers and nowhere else.
2019-05-01 00:42:31 +02:00
drfrag
52ee76c66e - removed obsolete hack for Hexen main menu dimming
https://forum.zdoom.org/viewtopic.php?t=64122
(patch by _mental_)
2019-05-01 00:39:48 +02:00
Christoph Oelckers
9ca41daf15 - removed the NetUpdate calls from the software renderer.
These can cause highly dangerous recursions and execute play code deep inside the renderer and since the hardware renderer does not have these, there is very little point for the software renderer to retain them.

# Conflicts:
#	src/polyrenderer/poly_renderer.cpp
#	src/rendering/swrenderer/line/r_walldraw.cpp

# Conflicts:
#	src/swrenderer/line/r_renderdrawsegment.cpp
2019-05-01 00:07:08 +02:00
Christoph Oelckers
a2e81167b9 - reverted D_GenderToInt to check full words instead of merely initial letters. 2019-04-29 20:06:53 +02:00
alexey.lysiuk
92343ec2ba - made gender string to integer conversion case insensitive
https://forum.zdoom.org/viewtopic.php?t=64109
2019-04-29 20:06:44 +02:00
Christoph Oelckers
dd916932e1 - removed unused (now always active) gl_trimsprites option from the menu.
# Conflicts:
#	src/gl/system/gl_menu.cpp
2019-04-29 19:56:19 +02:00
Christoph Oelckers
82fac693d8 - made the gross railing hack for Strife a compatibility option and restricted it to MAP04
The side effects here broke other maps and this is really too glitchy to be turned on unless really necesasary.

# Conflicts:
#	src/gamedata/g_mapinfo.h
#	src/gamedata/stringtable.cpp
#	src/maploader/maploader.cpp
#	src/p_map.cpp
#	src/p_udmf.cpp
2019-04-29 19:51:43 +02:00
usernameak
c6778628a3 Fixed postprocess shaders with 2 or more textures 2019-04-29 19:36:29 +02:00
Christoph Oelckers
a488791add - added A_Explode compatibility options.
There are two options here - one only disables the vertical thrust and the other goes back fully to the original non-z-aware code.
Both options are settable through MAPINFO.
For the compatibility presets, the normal ones only disable the vertical thrust, the strict ones force use of the old code entirely.

# Conflicts:
#	wadsrc/static/language.csv
2019-04-29 19:30:06 +02:00
drfrag
18a17c4e1f - changed Strife dialogue setup so that STRIFE00 is being processed and the random texts explicitly excluded.
This fixes the stray "Peasant" in this file.
(patch by Graf)
2019-04-29 19:27:35 +02:00
Christoph Oelckers
3f96ec7955 - fixed bad default for scaleoverride. 2019-04-29 19:04:09 +02:00
Christoph Oelckers
6c14fe7202 - fixed lifetime of ScaleOverrider for Strife dialogues. 2019-04-29 19:03:34 +02:00
Christoph Oelckers
963d1b682c - fixed layout issues with Strife's dialogues.
They were using some settings from the option menu which they never should have used to begin with.
2019-04-29 19:03:23 +02:00
Christoph Oelckers
34ac0f0985 - localize 'By' 2019-04-29 18:53:37 +02:00
Christoph Oelckers
f57ebacae6 - localized some user-facing texts that were still string literals. 2019-04-29 18:53:22 +02:00
Christoph Oelckers
508b65bdd8 - fixed: A pusher thinker must destroy itself if the point pusher/puller thing is gone. 2019-04-29 18:52:57 +02:00
Christoph Oelckers
0e4f868281 - fixed: The software renderer was destroying global state when initializing a camera texture.
As a result the HUD wasn't drawn.
2019-04-29 18:52:40 +02:00
Christoph Oelckers
7d49fec477 - fixed: SpawnShootDecal tried to get the current level from a value that could point to actor defaults which do not have a level. 2019-04-29 18:52:11 +02:00
Christoph Oelckers
cdcc8996a7 - make the clean scaling system more consistent.
Now, all menus will use the same scale, i.e. it only depends on the screen width and a base size of 640. This nearly universally yields better results than trying to make a 320x200 screen fit.
The only exceptions to this are the intermission screens and the level summary. These, unlike the menu need to try to make a 320x200 screen fit, but without all the hackery that was present to adjust the menu display.
Note that since this affects globally visible script variables, both the intermission and summary drawers will not use their own set but instead temporarily override the global setting as long as they run their own code.
Changing the use of variables here might cause much worse problems with menu code so it wasn't attempted

# Conflicts:
#	src/v_video.cpp
2019-04-29 18:51:44 +02:00
Christoph Oelckers
5bac765849 - replaced the "or" in the keybind menu with a darker comma so that this part is language neutral. 2019-04-29 18:13:47 +02:00
Christoph Oelckers
3158826ec0 - removed the automatic system language detection for Windows.
Default language is now always American English, just like on Linux and macOS.

# Conflicts:
#	src/g_cvars.cpp
#	src/gamedata/stringtable.cpp
#	src/textures/texturemanager.cpp

# Conflicts:
#	src/win32/i_system.cpp
2019-04-29 17:42:54 +02:00
Christoph Oelckers
e70810cfdc - disabled the error message spam from the demo loop
These messages are useful for the playdemo CCMD, but since the demo loop is mostly non-functional anyway they better be disabled there.
2019-04-29 00:06:54 +02:00
alexey.lysiuk
37a82e08dc - fixed crash on startup inside userinfo_t::GetGender()
This function is required for localization handling but when it's called userinfo_t may not be fully initialized yet

https://forum.zdoom.org/viewtopic.php?t=63959
2019-04-29 00:06:02 +02:00
Christoph Oelckers
af3ba712b2 - fixed: player_t::GetGender needs to check if the CVAR exists.
This function can get called before the player's userinfo is available
2019-04-29 00:06:00 +02:00
Chronos Ouroboros
6617edfe97 Fixed arrays of dynamic arrays causing a compilation error. 2019-04-29 00:05:58 +02:00
Chronos Ouroboros
3a8f602875 Fixed nested dynamic array indexing causing a compilation error. 2019-04-29 00:05:55 +02:00
Christoph Oelckers
1e587a7f1d - fixed: The FFont* serializer was unable to handle null pointers. 2019-04-28 23:55:58 +02:00
Christoph Oelckers
3583cb1fe5 - use international date format for all places that print a date.
The most important one is the autosave tagging. This was done because the old printout was missing the year and printed the month as a 3 character English string, sabotaging any attempt to sort the autosaves by anything meaningful.
2019-04-28 23:54:06 +02:00
Christoph Oelckers
3dcbee6747 - fixed: IsPointInLevel must explicitly check for minisegs, which can be one-sided on maps with unclosed sectors.
Obviously, in such a case it is impossible to decide whether a point is really inside the map, so if this happens, behavior is undefined.
2019-04-28 23:14:38 +02:00
Sterling Parker
47b5378a62 Fix faulty multiplication logic for LookScale
Turns out the entire thing was getting shortcutted because FOVScale is 0 unless set explicitly or via A_ZoomFactor.
2019-04-28 23:01:59 +02:00
Sterling Parker
8ce7da0a5e Add LookScale variable on weapon
This variable allows a weapon to set a custom look sensitivity multiplier without fiddling with FOVScale / DesiredFOV hacks.
2019-04-28 23:01:57 +02:00
Christoph Oelckers
99d1047332 - process escape sequences for episode and skill names
For these, colorization is a desirable feature.
2019-04-28 23:01:37 +02:00
alexey.lysiuk
0d968d0943 - replaced all usages of insecure vsprintf() function 2019-04-28 22:58:48 +02:00
Rachael Alexanderson
86e8bf3b28 - fix building on FreeBSD 2019-04-28 22:57:25 +02:00
Christoph Oelckers
bc10c3e5bb - replaced the assignment operator in player_t with a named function.
This didn't behave like an assignment operator so it shouldn't be one, especially since the two places where it got called need different functionality.
2019-04-28 22:57:06 +02:00
Magnus Norddahl
f78e8cb71c - fix typo 2019-04-28 22:57:04 +02:00
Christoph Oelckers
ff21cee842 - fixed: SBARInfo's Tick function was using actor references from its last Draw operation.
Between these two calls these can change so these need to be retrieved each time either Draw or Tick are called.
2019-04-28 22:53:06 +02:00
Christoph Oelckers
c7b9781c57 - fixed: ACS's LocalAmbientSound did not check the activator before calling its methods.
# Conflicts:
#	src/p_acs.cpp
2019-04-28 22:50:54 +02:00
Christoph Oelckers
06f84d2420 - reject all DMX sounds shorter than or equal 8 bytes.
8 bytes is the minimum header size for DMX, so for one byte of sample data it has to be 9 bytes.
This was causing access to invalid memory when trying to read the header of something too short.
For other file formats this is of no concern because none has a header this short.
2019-04-28 22:50:21 +02:00
Christoph Oelckers
a531ca557d - fixed: PlayerStartStomp must check for NOTELEFRAG. 2019-04-28 22:47:04 +02:00
Christoph Oelckers
536c0b7647 - fixed: Unmorphing a monster did not clear its UNMORPHED flag. 2019-04-28 22:47:02 +02:00
Major Cooke
d34108f0e9 Renamed to musplaying.
# Conflicts:
#	wadsrc/static/zscript/base.zs
2019-04-28 22:38:25 +02:00
Major Cooke
43eaa03654 Exported MusPlayingInfo to ZScript.
- Allows grabbing the currently playing song, base order, and loop properties.

# Conflicts:
#	wadsrc/static/zscript/base.zs

# Conflicts:
#	wadsrc/static/zscript/base.zs
2019-04-28 22:37:08 +02:00
nashmuhandes
ddaae8e614 Added a master volume setting.
# Conflicts:
#	wadsrc/static/language.enu
2019-04-28 22:25:50 +02:00
Christoph Oelckers
60e1bb604e - removed unused gl_spritebrightfog CVAR.
# Conflicts:
#	src/gl/system/gl_cvars.h
#	src/gl/system/gl_menu.cpp
2019-04-28 22:25:12 +02:00
Christoph Oelckers
6c869f123d - changed calculation of the scaling value for the option menu.
This was already far too generous and caused space problems, but with localization these became a lot worse, so now it will try to allocate at least 640 virtual pixels for the menu width and only go below that for small resolution ranges where the smaller value would result in too small text.
2019-04-28 22:17:07 +02:00
Christoph Oelckers
7a2b72d2aa - made the text comparison for Dehacked case insensitive so that the contents of the string table can be properly capitalized without breaking old-style string replacements. 2019-04-28 22:14:37 +02:00
Christoph Oelckers
26a698a72a - fixed: empty strings cannot be substituted. 2019-04-28 22:14:27 +02:00
Christoph Oelckers
e245852bff - removed FCriticalSection and replaced all of its uses with std::mutex.
There's really no need for a non-standard solution here anymore with C++11.
This also fixes an unreleased lock in the WildMidi code.

# Conflicts:
#	src/posix/sdl/critsec.cpp
2019-04-28 22:13:36 +02:00
Christoph Oelckers
1e21b44db2 - fixed DHUDMessageTypeOnFadeOut with empty messages. 2019-04-28 21:37:58 +02:00
Christoph Oelckers
bfe3d251f9 - added a kerning option to FONTDEFS
# Conflicts:
#	src/gamedata/fonts/v_font.cpp
2019-04-28 21:29:13 +02:00
Christoph Oelckers
d2d637f431 - fixed the usedcolor array's base type.
The usedcolors array which counts the number of pixels in a given color in a font used bytes as storage, so any color that just happened to have a count that is a multiple of 256 the color was considered not present.

# Conflicts:
#	src/gamedata/fonts/font.cpp
#	src/gamedata/fonts/fontinternals.h
#	src/gamedata/fonts/specialfont.cpp
#	src/gamedata/fonts/v_font.cpp
#	src/v_font.h
2019-04-28 21:28:41 +02:00
Christoph Oelckers
ff0774c2f2 - changed all places which used a localized string as a format template for printf, String.Format et.al.
Passing something non-constant at compile time here is extremely dangerous, especially when users can replace those strings if they like.
It now uses FString::Substitute in all cases where something needs to be inserted into a template string.
2019-04-28 21:25:28 +02:00
Christoph Oelckers
a87e9a0343 - initialize the language right after reading the strings. 2019-04-28 21:24:44 +02:00
Christoph Oelckers
6685238a62 - fixed string checks in dialogue loader. 2019-04-28 21:22:55 +02:00
Christoph Oelckers
0eef6f031f - fixed: The language ID was set before reading the config.
This essentially rendered saving the language CVAR useless.
2019-04-28 21:20:57 +02:00
Major Cooke
31820098a6 Pass the target as the source for active damage modifiers (i.e. PowerDamage) instead of the actual source.
- Getting the victim would be impossible otherwise, and passing in the original source is redundant when there's already the owner.
2019-04-28 20:35:38 +02:00
Rachael Alexanderson
ee5bbdf011 Squashed commit of the following:
- Implement page string names for dialog lumps
    - Create special new GZDoom name space for ZSDF
    - add usdf_gzdoom spec document
    - fixed: restored original behavior with negative conversation id's for the original strife dialog lumps
    - reposition the binary strife fix in a more appropriate location
    - add compatibility fix for negative numbers in responses in USDF/ZSDF (don't know if it's actually necessary)
2019-04-28 20:35:21 +02:00
Robert Cochran
88e1711ff5 Add handling of left and right mousewheel events to the SDL2 input path 2019-04-28 20:34:35 +02:00
Major Cooke
ecdfd92fc8 - Fixed monsters waking up even if all the damage was absorbed without pain causing flags
- Fixed FORCEPAIN not overriding PainThreshold property
2019-04-28 20:06:46 +02:00
Christoph Oelckers
389c27c920 - fixed: 'level.frozen' still needs to be writable and have an effect.
# Conflicts:
#	src/gamedata/g_mapinfo.h
#	src/scripting/vmthunks.cpp

# Conflicts:
#	src/g_levellocals.h
2019-04-28 19:12:39 +02:00
Christoph Oelckers
074ee3238b - sanitized the 'frozen level' code.
This had two different flags that were checked totally inconsistently, and one was not even saved.
Moved everything into a few subfunctions so that these checks do not have to be scattered all over the code.

# Conflicts:
#	src/actorinlines.h
#	src/decallib.cpp
#	src/g_levellocals.h
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/p_mobj.cpp
#	src/p_saveg.cpp
#	src/p_user.cpp
#	src/polyrenderer/scene/poly_particle.cpp
#	src/scripting/vmthunks.cpp
#	src/swrenderer/things/r_particle.cpp
#	wadsrc/static/zscript/actors/player/player.zs
#	wadsrc/static/zscript/base.zs

# Conflicts:
#	src/g_levellocals.h
#	src/hwrenderer/scene/hw_sprites.cpp
#	wadsrc/static/zscript/base.txt
2019-04-28 19:10:52 +02:00
Rachael Alexanderson
197c618dac - Remove "gitversion.h" from "version.h" - should result in faster compiles after a commit in Windows
- Fix zdoom.rc to show the actual git commit tag and id for the Product Version
- Made zdoom.rc "codepage 1252" compliant as dictated by the #pragma (if this needs changed the pragma should be updated, this was messing up the version strings in the final compile)

# Conflicts:
#	src/version.h

# Conflicts:
#	src/win32/zdoom.rc
2019-04-28 15:14:34 +02:00
alexey.lysiuk
842dff300e - fixed automap marks placement with custom fonts
Automap rotation wasn't taken into account when drawing marks

https://forum.zdoom.org/viewtopic.php?t=63693
2019-04-28 15:13:01 +02:00
alexey.lysiuk
f5f1564f69 - added ability to customize font of automap marks
Set am_markfont CVAR to a desired font name
Use am_markcolor to select a text color, has no effect with the default font, AMMNUMx

# Conflicts:
#	src/am_map.cpp
2019-04-28 15:11:43 +02:00
drfrag
e7c37e5f51 - Added FindEx to TArray. 2019-04-28 12:08:17 +02:00
Christoph Oelckers
8a7487ad14 - fixed map name setup
This was broken when localization for Hexen was added.
2019-04-28 12:08:13 +02:00
alexey.lysiuk
9f0eb35b28 - added compatibility flag for buggy CheckSwitchRange behavior
https://forum.zdoom.org/viewtopic.php?t=63008
https://forum.zdoom.org/viewtopic.php?t=63650
2019-04-28 12:03:52 +02:00
Christoph Oelckers
b1b5c851c9 - exported all Hexen map names and intermission texts to the language table.
As IWAD content this is in zd_extra.pk3.

# Conflicts:
#	src/gamedata/g_mapinfo.h
#	src/intermission/intermission_parse.cpp

# Conflicts:
#	src/intermission/intermission_parse.cpp
2019-04-28 11:56:36 +02:00
Christoph Oelckers
c5e607992d Only replace Strife dialogue content if the default strings from zd_extra.pk3 are present.
If not, use the dialogue file's content directly.
2019-04-28 11:55:37 +02:00
Christoph Oelckers
dc47fb807b - removed the special exception for those weird "No..." messages and moved the only one that isn't garbage to the language lump. 2019-04-28 11:53:26 +02:00
Christoph Oelckers
3dffaa3ab7 - exported the character names of Strife's dialogues. 2019-04-28 11:46:59 +02:00
Christoph Oelckers
7540ab01a5 - exported Strife's log texts to the string table.
This is dpne as a two-stage approach. TXT_LOGTEXTxxx will always take precedence over the log lumps, and TXT_ILOGxxx will only replace the original IWAD content.
This is so that PWADs replacing these lumps don't get overridden by the default texts.
2019-04-28 11:46:56 +02:00
Christoph Oelckers
458a97b0f7 - fixed dropoff checks for portals and 3D floors in the same sector. 2019-04-28 11:46:54 +02:00
Christoph Oelckers
736bac7a93 - exported LevelLocals's compatibility flags to scripting and fixed all places where access to combined compatibility flags is needed.
# Conflicts:
#	src/scripting/vmthunks.cpp
#	src/scripting/vmthunks_actors.cpp
#	wadsrc/static/zscript/doom/fatso.txt
#	wadsrc/static/zscript/doom/painelemental.txt
2019-04-28 11:46:26 +02:00
drfrag
3e7e174d36 - Copied global compatibility flags to FLevelLocals. 2019-04-28 11:46:23 +02:00
Major Cooke
68decdddfa Added Z + camera roll relativity for A_QuakeEx's QF_RELATIVE flag. 2019-04-27 23:45:55 +02:00
Major Cooke
47dbc95e2b Added inflictor, source and flag parameters to GetModifiedDamage on actors and ModifyDamage on inventory.
- The flags are used by DamageMobj so modders can determine radius damage, for example, by checking for DMG_EXPLOSION.
2019-04-27 23:45:49 +02:00
alexey.lysiuk
8a5cf4be47 - fixed compilation on POSIX targets
src/p_acs.cpp:3250:75: error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]
src/p_conversation.cpp:354:56: error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]
src/p_conversation.cpp:438:51: error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]
src/p_conversation.cpp:548:58: error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]
src/p_conversation.cpp:572:59: error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]
src/p_conversation.cpp:584:58: error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]

# Conflicts:
#	src/p_acs.cpp
2019-04-27 23:45:45 +02:00
alexey.lysiuk
05b12e8d74 - changed type of Nop expression to void
Control flow statements with constant condition no longer cause misleading fatal errors in ZScript

https://forum.zdoom.org/viewtopic.php?t=63566
2019-04-27 23:45:43 +02:00
Christoph Oelckers
1c410d4050 - rewrote the language table so that it doesn't have to reload everything on a language change.
It now reads everything into a two-dimensional TMap and creates a list of mappings that apply to the current setting.
The constant need for reloading was the main blocker in redesigning how Dehacked strings get inserted. Currently they override everything, but IWAD-based Dehacked text shouldn't block PWAD overrides from PWADs' LANGUAGE lumps and instead be treated as coming from an [en default] block.

This also renames the main block from [enu default] to [en default], because it should be treated as the English default for all English locales and not just make it fall through to the base default as it did before.

# Conflicts:
#	src/doomstat.cpp

# Conflicts:
#	src/stringtable.cpp
2019-04-27 16:13:21 +02:00
drfrag
c9463c6526 Reverted "- fixed: The light defaults were not fully deleted on an engine restart."
This was not applicable: Warning C4150	deletion of pointer to incomplete type 'FLightDefaults'; no destructor called (compiling source file C:\DEV\lzdoom\src\d_main.cpp)
2019-04-27 14:55:18 +02:00
alexey.lysiuk
c0422f95d2 - fixed ambient sounds "leaking" into reverb environment
Set speed of sound to 343.3 and init scale to 1 according to @kcat suggestion

https://forum.zdoom.org/viewtopic.php?t=63185
https://forum.zdoom.org/viewtopic.php?t=63524
2019-04-27 13:47:50 +02:00
alexey.lysiuk
7fecc973f5 - disabled VM JIT completely on unsuported platforms 2019-04-27 13:47:47 +02:00
Christoph Oelckers
1382d79ab1 - exported all texts from Strife's dialogues to the string table.
Now all this content can be localized. However, since this is actual game content it was placed in a secondary file in zd_extra.pk3, so that it won't affect the GPL-compatible status of the main one.

# Conflicts:
#	src/p_conversation.cpp
2019-04-27 13:47:44 +02:00
Christoph Oelckers
ff6881cd7c - fixed display of "Find help" text in Strife. Also moved this piece of code to a place where a real player exists. This was set at a point where the map wasn't loaded yet which caused a few problems.
# Conflicts:
#	src/g_level.cpp
#	src/p_user.cpp
2019-04-27 13:47:42 +02:00
Christoph Oelckers
23a4094080 - allow localization of Hexen's original ACS strings.
This way of looking up strings is intentionally limited to content from Hexen.wad and Hexdd.wad.

# Conflicts:
#	src/maploader/maploader.cpp
#	src/p_acs.cpp
#	src/p_acs.h
2019-04-27 13:47:40 +02:00
Christoph Oelckers
7b754e622c - fixed: The HUD model code did not account for placeholder sprites.
# Conflicts:
#	src/hwrenderer/scene/hw_weapon.cpp
2019-04-27 13:44:55 +02:00
Alexander
8764f88c65 added am_showkeys_always 2019-04-27 13:37:46 +02:00
Christoph Oelckers
40ad9a2584 - allow localization of Strife's log text. 2019-04-27 13:37:44 +02:00
Christoph Oelckers
fc72b50348 - fixed: Retriving a key's color did not work. 2019-04-27 13:37:41 +02:00
Nemrtvi
e97d5281b4 Localized “FIND HELP” in Strife
The very first quest log that appears in Strife, “FIND HELP”, is located in a source file. This moves it to the language files.
2019-04-27 13:37:40 +02:00
alexey.lysiuk
832c462d9a - fixed potentially incomplete list of argument flags for virtual function
https://forum.zdoom.org/viewtopic.php?t=63450
2019-04-27 13:34:28 +02:00
alexey.lysiuk
a7c679e9e0 - fixed compilation of Windows Debug targets
src\sound\mididevices\music_opl_mididevice.cpp(112): error C3861: 'I_DebugPrint': identifier not found
src\sound\mididevices\music_opl_mididevice.cpp(206): error C3861: 'I_DebugPrint': identifier not found
src\sound\mididevices\music_opl_mididevice.cpp(234): error C3861: 'I_DebugPrint': identifier not found
src\sound\mididevices\music_opl_mididevice.cpp(244): error C3861: 'I_DebugPrint': identifier not found
2019-04-27 13:34:26 +02:00
Major Cooke
0adf6a52f5 Added CheckReplacee.
- Allows defining of what actor is replacing another for information.
- If multiple arachnotrons, a modder can attribute them as being a replacer of Arachnotron itself, allowing A_BossDeath and GetReplacee to work with it.
2019-04-27 13:34:25 +02:00
Christoph Oelckers
d513cbf789 - only activate lights if the light actor isn't dormant, and only create a new one if it doesn't already have one.
-
2019-04-27 13:30:21 +02:00
Christoph Oelckers
eebdd6c1bd - moved the menu.h include from oalsound.h to oalsound.cpp.
The menu is a very 'dirty' header, and forcing it to be pulled in with something entirely unrelated is not good - even though only two files include oalsound.h.

# Conflicts:
#	src/sound/i_sound.cpp
2019-04-27 13:30:06 +02:00
Christoph Oelckers
0e7b96681a - replaced DWORD_MAX with UINT_MAX globally.
This was the last remnant of ZDoom's old integer types.
2019-04-27 13:28:22 +02:00
Christoph Oelckers
4daa256e2f - fixed: RecreateAllAttachedLights must activate the lights it creates.
This also removes the gl_attachedlights CVAR because with the new management this doesn't really work anymore.

# Conflicts:
#	src/gl/system/gl_cvars.h
#	wadsrc/static/menudef.txt
2019-04-27 13:20:44 +02:00
Christoph Oelckers
309407ed61 - use map time, not hub time for map actions. 2019-04-27 13:18:08 +02:00
alexey.lysiuk
fa7d01896e - added virtual destructor to FDelayedCommand
src/c_dispatch.cpp:143:5: warning: delete called on 'FDelayedCommand' that is abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor]
src/tarray.h:582:5: warning: delete called on 'FDelayedCommand' that is abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor]
src/tarray.h:574:5: warning: delete called on 'FDelayedCommand' that is abstract but has non-virtual destructor [-Wdelete-non-virtual-dtor]
2019-04-27 13:18:06 +02:00
Christoph Oelckers
9cf9dc1f6b - took the delayed console command execution out of the thinker management.
Doing this intermingled with the thinkers is highly unsafe because there are absolutely no guarantees about order of execution.
Effectively it ran these commands right in the middle of the playsim which could cause all sorts of synchronization issues, because CCMDs are part of the UI, not the playsim.

- pass a const string to AddCommandString.

This function manipulated the input buffer, leading to all sorts of code contortions to make sure that the passed parameter is clean for that.
This function will now create a copy of the passed parameter which it can manipulate without complicating its calling code.

# Conflicts:
#	src/c_dispatch.cpp
2019-04-27 13:18:04 +02:00
Christoph Oelckers
5add7b1cb4 - fixed: When A_SpawnProjectile got fixed, this fix broke the old A_CustomMissile function because the added workaround was overlooked.
This now separates the code more clearly into the twp paths to make the differences easier to see and compare.
2019-04-27 13:09:09 +02:00
nashmuhandes
67513389e7 Missed "Abnt_C2" in the keybind name array. 2019-04-27 13:04:01 +02:00
Rachael Alexanderson
9acfd7a8c5 - add 'cl_blockcheats' - useful for people who use debugging keys, allows a user to consciously turn off cheats without affecting the server 2019-04-27 13:03:59 +02:00
Rachael Alexanderson
784de642d5 - fixed indentations caused by conflict resolution in cherry-picked commit d911fa99a1 2019-04-27 13:03:34 +02:00
alexey.lysiuk
cf3e677c54 - fixed linking of optimized targets
Undefined symbols for architecture x86_64:
  "AActor::Vec3Angle(double, TAngle<double>, double, bool)", referenced from:
      Net_DoCommand(int, unsigned char**, int) in d_net.cpp.o
2019-04-27 13:03:32 +02:00
Christoph Oelckers
ac68316527 - call level compatibility handlers for all levels and pass the map name as a second parameter.
This is for user-made handlers for which the checksum is rather useless both for deciding whether to call the handler and for identifying the map.

# Conflicts:
#	src/compatibility.cpp
#	wadsrc/static/zscript/level_compatibility.txt
2019-04-27 13:02:58 +02:00
nashmuhandes
9e1864b56b Punctuated the input strings in UpperCamelCase format. 2019-04-27 12:43:56 +02:00
Christoph Oelckers
fd772b6dab - fixed code emission for constant ZScript function arguments 2019-04-27 12:43:22 +02:00
Christoph Oelckers
1ab0be9d0c - fixed flicker light selection of light radius. 2019-04-27 12:43:20 +02:00
Christoph Oelckers
242f1458c8 - fixed Identifier resolving for static functions
This entered the code path which warned about ambiguous use of variables in action functions and as a result ran afoul of subsequent error checks.

Since ZScript has no global scope resolution operator, this needs to ignore all non-static class symbols and try to look up any of these as global identifiers.
2019-04-27 12:43:16 +02:00
Christoph Oelckers
81521c2def - removed incorrect assert.
This assert disallowed pointers to non GC'd objects, which on some occasions can happen and must be allowed.
2019-04-27 12:37:51 +02:00
nashmuhandes
fc3769bd7e Move the "time" string in saved game comment into the LANGUAGE lump.
# Conflicts:
#	src/g_game.cpp
2019-04-27 12:37:50 +02:00
drfrag
5c8b0a1e53 - Bumped ZScript version. 2019-04-27 12:35:41 +02:00
alexey.lysiuk
35867a1c29 - fixed 'overriding core lump' error
Wrong container was reported for overriding lump
2019-04-27 12:27:29 +02:00
Christoph Oelckers
0ed3ac740a - fixed: The rail attack only considered the puff's decal if it had ALWAYSPUFF set. 2019-04-27 12:16:34 +02:00
drfrag
e2d24d177f - fixed: application of fake contrast should never result in a light level of 0 unless the sector's own light level is 0.
(patch by Graf)
2019-04-27 12:16:10 +02:00
Christoph Oelckers
9c2a784ca1 - normalize the pitch in ACS's SetActorPitch.
Apparently some people have to pass positive numbers in here to get a negative pitch, e.g. 350.0 instead of -10.0...
This prevents clamping of such out-of-range values that would otherwise constitute valid pitches with the wraparound in place.
2019-04-27 12:10:42 +02:00
Christoph Oelckers
90b57ed808 - fixed: TVector3::Pitch() got the sign inverted.
This caused bad calculations with CMF_OFFSETPITCH. Note that to compensate for the fix, the SphericalCoords function had to have its own inversion of the value removed so that it calculates the same result as before.
2019-04-27 12:10:41 +02:00
alexey.lysiuk
583e1103a0 - workaround MSVC 2015 code generation issue, x64 only
With optimization turned on illegal instructions were generated for turbo CVAR handler function

https://forum.zdoom.org/viewtopic.php?t=63157
2019-04-27 12:09:36 +02:00
drfrag
ea688fc613 - recalculate the line deltas if a nodebuild is needed
One potential cause is moving around vertices in which case these do not match anymore. (patch by Graf)
2019-04-27 12:07:49 +02:00
Christoph Oelckers
e2c2837aa5 - allow assignment of line IDs through LevelCompatibility. 2019-04-27 11:38:41 +02:00
drfrag
a6d5e58886 - Partial port of "made some changes to how the compatibility code works" to allow exporting to ZScript. 2019-04-27 11:38:37 +02:00
Christoph Oelckers
ddf5e009e5 - fixed default alpha for sector colors
It has to be 0, not 255.
2019-04-26 18:18:11 +02:00
alexey.lysiuk
53a1fb5705 - fixed potentially missing event handlers
Event handlers linked list might skip an entry if its order was in a middle of existing handlers

https://forum.zdoom.org/viewtopic.php?t=63258
2019-04-26 18:14:58 +02:00
alexey.lysiuk
db0928be4d - fixed wrong self type in Array.Resize()
https://forum.zdoom.org/viewtopic.php?t=63275
2019-04-26 18:14:56 +02:00
alexey.lysiuk
37ce3e90de - relaxed caller type check for states modified by Dehacked
https://forum.zdoom.org/viewtopic.php?t=63178
2019-04-26 18:14:53 +02:00
alexey.lysiuk
a08bc271fa - fixed script line numbers after multi-line raw string literal
https://forum.zdoom.org/viewtopic.php?t=63210
2019-04-26 18:14:51 +02:00
alexey.lysiuk
a082a09ebe - unary minus operator propagates boolean operand to integer
https://forum.zdoom.org/viewtopic.php?t=63214
2019-04-26 18:14:49 +02:00
Christoph Oelckers
f90dadba44 - fixed some merging issues.
# Conflicts:
#	src/g_shared/a_decals.cpp
2019-04-26 18:12:32 +02:00
alexey.lysiuk
67c4317d54 - fixed compilation errors
src/scripting/decorate/thingdef_parse.cpp:80:11: error: no viable conversion from 'const FName' to 'FString'
src/scripting/zscript/zcc_compile.cpp:1359:26: error: use of undeclared identifier 'Name_globalfreeze'; did you mean 'NAME_globalfreeze'?

# Conflicts:
#	src/scripting/zscript/zcc_compile.cpp
2019-04-26 18:12:31 +02:00
Christoph Oelckers
d0c609eeee - ensure proper emission of deprecations.
For global variables this wasn't implemented.

# Conflicts:
#	src/namedef.h
#	src/scripting/backend/codegen.cpp
#	wadsrc/static/zscript/base.txt
2019-04-26 18:12:29 +02:00
Christoph Oelckers
120069890d - added the fix for BuiltinNew which I missed when cherry-picking. 2019-04-26 18:10:28 +02:00
Christoph Oelckers
21e4f0b817 - made OP_NEW a builtin function instead of an opcode.
The code was present 3 times due to the JIt, and this is not something that benefits from being a real opcode, even in the interpreted case.
2019-04-26 17:23:33 +02:00
Marrub
af27d579ac Make LevelLocals::ExecuteSpecial return int
# Conflicts:
#	wadsrc/static/zscript/base.txt
2019-04-26 17:20:44 +02:00
Marrub
73e174af4d Fix return value of native BuiltinCallLineSpecial 2019-04-26 17:20:42 +02:00
Chronos Ouroboros
e9ca5d6eff Fixed multidimensional array definitions. 2019-04-26 17:20:40 +02:00
alexey.lysiuk
494dc20088 - increased range of valid sound positions and velocities
https://forum.zdoom.org/viewtopic.php?t=61420
2019-04-26 17:20:37 +02:00
alexey.lysiuk
d8d290cd51 - fixed many compilation errors with GCC and Clang
# Conflicts:
#	src/dobjgc.h
2019-04-26 17:14:12 +02:00
Christoph Oelckers
d6b18e5792 - same for the ambient sound
# Conflicts:
#	src/s_advsound.cpp
2019-04-26 17:14:06 +02:00
Christoph Oelckers
381eb7a407 - removed dependency on global time in sound sequence code.
This can better use a countdown timer that doesn't depend on external behavior.
2019-04-26 17:14:04 +02:00
alexey.lysiuk
039b91859a - fixed key number assignment during parsing of locks
https://forum.zdoom.org/viewtopic.php?t=63171
2019-04-26 17:14:02 +02:00
Chronos Ouroboros
56be11bbe3 Added support for implicitly-sized initialized arrays.
Also fixed dynamic arrays not being cleared before initializing.
2019-04-26 17:13:59 +02:00
drfrag
e751476957 - Fixed compilation with MinGW-w64 but now the 64 bit executable crashes. 2019-04-26 17:03:29 +02:00
Major Cooke
f136650e81 Fixed Thing_ProjectileAimed being broken.
- It was calling the fallback aiming in the wrong place when it should have been outside the speed check.
- Credit to _mental_ for the base code, but no gotos involved.
2019-04-26 01:39:56 +02:00
Chronos Ouroboros
df3f074b0a Fixed some issues in the ZScript array compilation code. 2019-04-26 01:33:09 +02:00
Christoph Oelckers
99f6d2a177 - replaced some NULLs with nullptr.
# Conflicts:
#	src/fragglescript/t_script.cpp
2019-04-26 01:33:07 +02:00
Chronos Ouroboros
541fd0097b Implemented compound initializers for arrays. 2019-04-26 01:31:23 +02:00
Christoph Oelckers
ff9fe5f4d0 - changed AFuncDesc initialization to avoid generating initializer functions.
Visual C++ will never statically initialize a class instance where a member field has a default value set, so the DEFINE_ACTION_FUNCTION variants without a direct native call need to be handled differently. The easiest way to do this is to leave out the nullptr default and omit the value in the initializer list. For trailing fields this will always get them nulled.
2019-04-26 01:31:21 +02:00
Player701
99a5f86364 - Fixed spawn height of projectiles created by SpawnPlayerMissile. 2019-04-26 01:31:18 +02:00
Christoph Oelckers
30f55ccf7d - converted the ACS Stringbuilder macros into inline functions. 2019-04-26 01:31:16 +02:00
Christoph Oelckers
b00a039af8 - let RunHealth clamping respect the newly added global properties. 2019-04-26 01:31:12 +02:00
Christoph Oelckers
bb129fd929 - bumped savegame version because the recent scriptification of APlayerPawn will render all old savegames unusable. 2019-04-26 01:31:10 +02:00
Christoph Oelckers
9a99d55896 - made forwardmove and sidemove defaults configurable through the gameinfo section. 2019-04-26 01:31:07 +02:00
Christoph Oelckers
edfb814957 - fixed delete calls on FDynamicLight.
This isn't allocated from the system heap so it cannot be freed by it.
2019-04-26 01:29:03 +02:00
Christoph Oelckers
e6ae9984ff - fixed: GetSoundClass must be able to handle non-players. 2019-04-26 01:29:01 +02:00
Christoph Oelckers
094aa245e6 - fixed: G_StartTravel must remove all dynamic lights from the actors it is about to carry over to the next level. 2019-04-26 01:20:05 +02:00
Christoph Oelckers
251b096b48 - removed all remaining native parts of APlayerPawn.
Unlike the other classes, the places where variables from this class were accessed were quite scattered so there isn't much scriptified code. Instead, most of these places are now using the script variable access methods.
This was the last remaining subclass of AActor, meaning that class Actor can now be opened for user-side extensions.
2019-04-26 01:20:02 +02:00
drfrag
15bcc4c6a1 - Missed some castings. 2019-04-26 01:15:11 +02:00
Christoph Oelckers
8fecfb8f85 - properly handle passing of the light flags.
Since these can be changed on the placed light actor they have to be read from there, so this is now a pointer in FDynamicLight, just like the other properties that can be user-changed.
Also did some cleanup on the interface so that external code doesn't need to dereference the lightflags pointer but can use utility functions for all flags.

# Conflicts:
#	src/hwrenderer/dynlights/hw_dynlightdata.cpp
#	src/swrenderer/line/r_walldraw.cpp

# Conflicts:
#	src/g_level.cpp
#	src/gl/compatibility/gl_20.cpp
2019-04-26 00:42:05 +02:00
Christoph Oelckers
17b13f1a60 - fixed: DeactivateLight called Activate instead of Deactivate. 2019-04-26 00:28:08 +02:00
drfrag
1bb9b3b861 - Fixed compilation of previous commit.
# Conflicts:
#	src/gl/compatibility/gl_20.cpp
2019-04-26 00:27:39 +02:00
Christoph Oelckers
f261ec7d53 - rewrote dynamic lights to not use actors for the internal representation and made DynamicLight a purely scripted class.
This should be less of a drag on the playsim than having each light a separate actor. A quick check with ZDCMP2 showed that the light processing time was reduced to 1/3rd from 0.5 ms to 0.17 ms per tic.
It's also one native actor class less.

# Conflicts:
#	src/g_shared/a_dynlight.cpp
#	src/g_shared/a_dynlight.h
#	src/hwrenderer/dynlights/hw_dynlightdata.cpp
#	src/hwrenderer/dynlights/hw_dynlightdata.h
#	src/hwrenderer/scene/hw_renderhacks.cpp
#	src/namedef.h
#	src/scripting/thingdef_data.cpp
#	src/swrenderer/line/r_walldraw.cpp

# Conflicts:
#	src/d_main.cpp
#	src/g_levellocals.h
#	src/g_shared/a_dynlight.cpp
#	src/g_shared/a_dynlight.h
#	src/gl/dynlights/gl_dynlight.h
#	src/gl/dynlights/gl_dynlight1.cpp
#	src/gl/scene/gl_spritelight.cpp
#	src/gl/scene/gl_walls.cpp
#	src/hwrenderer/dynlights/hw_shadowmap.cpp
#	src/hwrenderer/dynlights/hw_shadowmap.h
#	src/hwrenderer/scene/hw_flats.cpp
#	src/p_setup.cpp
2019-04-26 00:19:03 +02:00
Christoph Oelckers
08c75efb10 - fixed: ADynamicLight's shadowmap index must be reset when loading a savegame. 2019-04-25 21:20:56 +02:00
Christoph Oelckers
bc8af1cab8 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.
2019-04-25 20:59:06 +02:00
alexey.lysiuk
81cb8cb60b Fixed applying of dynamic lights to models
https://forum.zdoom.org/viewtopic.php?t=60301

# Conflicts:
#	src/gl/scene/gl_sprite.cpp
2019-04-25 20:48:17 +02:00
Christoph Oelckers
b3a8dcdbd4 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
2019-04-25 20:14:00 +02:00
drfrag
e335a48009 - Fixed bad merge of "- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned.". 2019-04-25 19:11:40 +02:00
Christoph Oelckers
99dd234d10 - exported all native components of APlayerPawn.
Only the class definition itself remains and needs to be taken care of.

# Conflicts:
#	src/g_statusbar/sbarinfo_commands.cpp
#	src/hu_scores.cpp
#	src/scripting/thingdef_data.cpp

# Conflicts:
#	src/actorinlines.h
#	src/hu_scores.cpp
2019-04-25 17:42:11 +02:00
Christoph Oelckers
94eb0ecdda - scriptified the remaining PlayerPawn methods. 2019-04-25 17:35:44 +02:00
Christoph Oelckers
b28faa6793 - took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places. 2019-04-25 17:34:56 +02:00
Christoph Oelckers
6f2a32ecbe - scriptified PlayerPawn.ResetAirSupply. 2019-04-25 17:34:53 +02:00
Christoph Oelckers
1c577e4c97 - scriptified APlayerPawn's DamageFade handling. 2019-04-25 17:34:51 +02:00
Christoph Oelckers
cf890a24c3 - scriptified P_CalcHeight.
This was the only code using the ViewBob member variable.
This also moves the range check for this variable to its application, because a badly behaved mod can just as easily change it at run time instead of just setting an absurdly large value in the class definition.
2019-04-25 17:34:49 +02:00
Christoph Oelckers
8e376754fc - did some more lightening on the PlayerPawn class. 4 more properties and one native member function have been handled. 2019-04-25 17:34:47 +02:00
Christoph Oelckers
c762757aca - initialize the PlayerPawn members only used by scripts through the script variable interface.
The goal here is to eliminate the native PlayerPawn class, after all, so this will be needed anyway.
2019-04-25 17:34:45 +02:00
Christoph Oelckers
cb2e46a4fe - scriptified A_SkullPop and ObtainInventory.
These were the last relevant items to access PlayerPawn.InvFirst.
2019-04-25 17:34:43 +02:00
Christoph Oelckers
08e2a86f64 - made ColorRangeStart and ColorRangeEnd meta properties of APlayerPawn.
These are only used during initialization and they should have been readonly from the start.
2019-04-25 17:34:41 +02:00
Christoph Oelckers
51499e167d - scriptified useflechette CCMD's item finding code. 2019-04-25 17:34:39 +02:00
Christoph Oelckers
4be9217215 - scriptified the declaration of AmbientSound
Most of the code is still native, but this means that PlayerPawn is the last remaining child of AActor.

# Conflicts:
#	src/g_shared/a_dynlight.cpp
2019-04-25 17:34:37 +02:00
alexey.lysiuk
70e7f9f853 - added missing range checks to level compatibility handler
# Conflicts:
#	src/compatibility.cpp
2019-04-25 16:50:28 +02:00
Christoph Oelckers
990aad3b0c - fixed: The player sound lookup would fail if a sound was only available for the last gender in the list.
This is an ancient bug, but it never registered before - only after making 'other' the default gender for nonsense input it became apparent.
2019-04-25 16:32:19 +02:00
Christoph Oelckers
0c1fc45df8 - fixed A_Chase default detection. 2019-04-25 16:31:58 +02:00
Christoph Oelckers
96d40ac403 - fixed the direct native variant of DynamicLight.SetOffset. 2019-04-25 16:26:40 +02:00
Major Cooke
2e6382f55e - Fixed: NODAMAGE was not accounted for with pain. 2019-04-25 13:10:51 +02:00
Timo Myyrä
b561b72fd0 fix Unix builds without backtrace functions in their libc
backtrace functions are not present in all libc implementations. Cmake has
module to add external libraries into build if needed so use it to fix build on
Unix systems without backtrace in libc.
2019-04-25 13:10:47 +02:00
Christoph Oelckers
1669e10f6e - fixed memory leaks in network code.
ReadString allocates a buffer, so saving it in a local variable and then forgetting it will not free the buffer afterward.
(This should probably be refactored to use some safer methods to read the string than this old-school method...)
2019-04-25 13:10:39 +02:00
player701
77633415f9 - Fixed settings_controller not updating properly when a player becomes the new arbitrator in a netgame. 2019-04-25 13:03:47 +02:00
Christoph Oelckers
6371d3f88b - added missing return in P_RemoveThing. 2019-04-25 13:03:45 +02:00
Christoph Oelckers
d54ef75311 - added missing null pointer check to SBarInfo's inventory bar drawer. 2019-04-25 13:03:42 +02:00
Christoph Oelckers
08dd81ed36 - use a TArray to store the sprite model hash to get rid of one atterm call. 2019-04-25 12:55:22 +02:00
Christoph Oelckers
7259cd44ee - reworked the lock code to remove the 255 locks limit and to allow it to automatically deinitialize.
# Conflicts:
#	src/fragglescript/t_func.cpp
2019-04-25 12:55:19 +02:00
Christoph Oelckers
e4bf84b015 - treat non-existent arrays in the savegame as zero length. 2019-04-25 12:55:13 +02:00
Christoph Oelckers
8c38a7c05f - fixed precaching of switches.
The backwards animation accessed the wrong array which in case of sequences with different length could crash
2019-04-25 12:52:02 +02:00
Major Cooke
5e183d8718 Fixed: IsFakePain received the modified damage instead of the raw, preventing ALLOWPAIN from working as intended. 2019-04-25 12:51:46 +02:00
Christoph Oelckers
f00ec3bfb9 - use TArrays for all local allocations in the map loader.
# Conflicts:
#	src/p_setup.cpp
2019-04-25 12:44:28 +02:00
drfrag
df251be921 - Fixed compilation of previous commit.
# Conflicts:
#	src/textures/textures.h
2019-04-18 20:16:30 +02:00
Christoph Oelckers
f29408e199 - fixed precaching to consider animations and switches 2019-04-18 20:13:35 +02:00
Ijon
50d8993e6e NOFRICTION now applies to Z friction when flying or swimming 2019-04-18 19:57:44 +02:00
alexey.lysiuk
33067deb86 - fixed crash in Actor.Warp() with null destination
https://forum.zdoom.org/viewtopic.php?t=63031
2019-04-18 19:57:30 +02:00
Christoph Oelckers
e4f5160f66 - remove some obsolete bit of cruft from the class type system.
This was a remnant of putting the meta data directly into the class descriptor which turned out to be an unworkable approach
2019-04-18 19:57:28 +02:00
Christoph Oelckers
a82d60bb71 - fixed 3D floor initialization for actor spawning.
Since actors are being spawned before the renderer gets set up this needs to fully initialize the list before spawning the actors, then take it down again for creating the vertex buffer and then recreate it.
2019-04-18 19:57:09 +02:00
Major Cooke
0635dc1416 Reduced redundancy by putting all function aftermath handling in a subfunction. 2019-04-18 19:56:40 +02:00
Major Cooke
662b2ed759 Split off pain chance triggering from ReactToDamage into its own function and gave ZScript access to it.
- TriggerPainChance(Name mod, bool forcedPain)
- One exception: PainThrehold is only checked in ReactToDamage, since this function does not require checking damage amount.
2019-04-18 19:56:38 +02:00
Major Cooke
f98c194431 DamageMobj Refactor
- Split off all reactive functionality (pain, infighting, etc) into its own function, ReactToDamage.
- Refactored all DamageMobj's damage <= 0 values.
 - Any unconditional cancellations now return -1. ReactToDamage will not be called if values < 0.
 - All pain/wound/target changing allowances return 0.
2019-04-18 19:56:36 +02:00
Ijon
49dd94f65a Add NOFRICTION and NOFRICTIONBOUNCE flags
NOFRICTION disables all friction effects on the thing it's set on
(including the speed cap from water/crouching), and NOFRICTIONBOUNCE
disables the "bounce off walls on an icy floor" effect on the thing
it's set on.
2019-04-18 19:56:33 +02:00
Rachael Alexanderson
286eacb088 - set vid_scalefactor to 1 when using vid_setscale 2019-04-18 19:20:28 +02:00
drfrag
708952e615 - initialize the index field for particles.
This won't contribute to sort order so it should be the same for all particles, which it wasn't because it was never set.
(patch by Graf)
2019-04-18 19:02:29 +02:00
Christoph Oelckers
cd8791d68c - fixed sprite sorting in the hardware renderer.
This did no longer sort sprites in the same position reliably since the feature to render sprites which only partially are inside a sector was added.
With this, sprites in the same position are no longer guaranteed to be added to the render list in sequence.
Fixed by adding an 'order' field to AActor which gets incremented with each spawned actor and reset when a new level is started.

The software renderer will also need a variation of this fix but its data no longer has access to the defining actor when being sorted, so a bit more work is needed here.

# Conflicts:
#	src/hwrenderer/scene/hw_drawlist.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
2019-04-18 18:53:10 +02:00
Magnus Norddahl
14f7efece7 - improve softpoly 3d floor drawing somewhat
# Conflicts:
#	src/polyrenderer/scene/poly_plane.cpp
2019-04-18 17:49:41 +02:00
Christoph Oelckers
e6af596af0 - removed the redundant GetOffsetPosition export and added direct native support to its existing variants 2019-04-18 17:01:17 +02:00
Christoph Oelckers
15f78039c3 - fixed the decal translation handler truncated the translation ID
This was yet another of those old misguided 16 bit space 'optimizations'.
2019-04-18 17:01:11 +02:00
Christoph Oelckers
89a17d4257 - fixed: The random sound handler was using 16 bit storage throughout
Changed to use 32 bit and also fixed the random number call which was using the byte value variant of the access operator, effectively limiting the number of choices to 256.
2019-04-18 17:01:09 +02:00
Christoph Oelckers
fcacb80db5 - a few more explicit local buffer allocations removed.
# Conflicts:
#	src/gl/data/gl_setup.cpp
2019-04-18 17:00:20 +02:00
alexey.lysiuk
82d05dce13 - fixed lost settings controller state upon new game
https://forum.zdoom.org/viewtopic.php?t=62959
2019-04-18 16:31:20 +02:00
alexey.lysiuk
25a6ba0e51 - cleaned up player reinitialization upon new game 2019-04-18 16:31:18 +02:00
Magnus Norddahl
a399ce48a9 - fix decals looking blackened due to low lookup table precision when alpha is zero 2019-04-18 16:26:18 +02:00
Cacodemon345
fdd6e3cec9 Export P_GetOffsetPosition and ADynamicLight::SetOffset to ZScript 2019-04-18 16:23:01 +02:00
drfrag
dcdb381f73 - Deleted unused variable. 2019-04-18 15:26:54 +02:00
Christoph Oelckers
91c8177406 - added missing null pointer checks to cheat code. 2019-04-18 15:01:12 +02:00
Christoph Oelckers
f91b24f505 removed the unused DefaultExtension variant taking a char *. 2019-04-18 14:59:34 +02:00
Magnus Norddahl
4d160c8cd1 - fix missing line number for the function throwing the exception and remove the duplicate call stack line 2019-04-18 14:59:32 +02:00
Christoph Oelckers
d80d4bb228 - moved P_OpenMapData and related content out of p_setup.cpp.
# Conflicts:
#	src/g_levellocals.h

# Conflicts:
#	src/g_levellocals.h
2019-04-18 14:52:24 +02:00
Christoph Oelckers
b1452c928a - moved all shutdown handling for sound related resources to I_ShutdownSound instead of registering separate atterm handlers. 2019-04-18 14:34:25 +02:00
Christoph Oelckers
dae3d68cce - added an option to GAMEINFO to either force or disable loading of the default lights and brightmaps.
The mod which prompted me to add this is "The Chosen" which is a Dehacked-based TC and repurposes many original actors for something entirely different.
The stock lights are not usable for this and would make it impossible to add a GAMEINFO lump to it because then there is no way to disable loading of lights in the startup screen.
2019-04-18 14:34:23 +02:00
Magnus Norddahl
f216b42790 - avoid creating labels when they are not used
- remove variable from class as it is only used locally
- set default values in the class
- remove unused field
2019-04-18 14:22:21 +02:00
Magnus Norddahl
640464ad65 - removed marked code for how to create GDB/LLDB debug info as it will probably never be implemented 2019-04-18 14:22:19 +02:00
Magnus Norddahl
837b3d8bd2 - add missing parameter on unix 2019-04-18 14:22:17 +02:00
Chronos Ouroboros
e0d3a5acae Add line numbers to JIT stack traces. (#667) 2019-04-18 14:22:15 +02:00
Magnus Norddahl
bfccfb5e1b - don't include the native frames per default 2019-04-18 14:22:13 +02:00
Magnus Norddahl
175b67c088 - fix linking and some linux things 2019-04-18 14:22:11 +02:00
Christoph Oelckers
d2a86a7051 - fixed misnamed macros.
# Conflicts:
#	src/p_mobj.cpp
2019-04-18 14:22:09 +02:00
Chronos Ouroboros
218b7e95ca Added a function for triggering use/push specials for usage in custom monster AI. 2019-04-18 14:22:07 +02:00
Chronos Ouroboros
803cb16d99 Exported P_CheckFor3DFloorHit and P_CheckFor3DCeilingHit to ZScript. 2019-04-18 14:22:05 +02:00
drfrag
38e682a267 - Fixed compilation of previous commit. 2019-04-18 14:22:03 +02:00
Christoph Oelckers
4d7e945dc1 - fixed: A powered up weapon which shares its ready state with the parent but is currently in a firing sequence may not force-switch the weapon, because that will cause the sequence to run in the wrong weapon's context. 2019-04-18 14:22:02 +02:00
Christoph Oelckers
0c5ca922ba - fixed: 'frame' in GLDEFS light definitions was case sensitive. 2019-04-18 14:00:39 +02:00
drfrag
ecf1402274 - Fixed linking with MinGW-w64. 2019-04-18 14:00:37 +02:00
alexey.lysiuk
9aeeb0dc0f - fixed compilation of POSIX targets
Making callstack resolving operational will require a little bit more effort

src/scripting/vm/jit_runtime.cpp:900:31: error: use of undeclared identifier 'frames'
src/scripting/vm/jit_runtime.cpp:903:23: error: use of undeclared identifier 'cnt'
2019-04-18 14:00:35 +02:00
Magnus Norddahl
a01a468ef8 - add support for writing the native call stack 2019-04-18 14:00:34 +02:00
Magnus Norddahl
e1ed87a64f - improve the stack trace when the jit is active 2019-04-18 14:00:31 +02:00
Christoph Oelckers
77c00d7670 - replaced several explicit allocations with TArrays.
# Conflicts:
#	src/r_data/models/models_voxel.cpp
#	src/textures/formats/jpegtexture.cpp
#	src/textures/formats/pcxtexture.cpp
#	src/textures/formats/tgatexture.cpp

# Conflicts:
#	src/r_data/voxels.cpp
#	src/r_data/voxels.h
2019-04-18 13:58:37 +02:00
drfrag
846f53ba1e - Fixed compilation with MinGW-w64 64 bit. 2019-04-18 13:51:17 +02:00
Christoph Oelckers
f702f6e19e - use TArrays for MD3 storage.
# Conflicts:
#	src/r_data/models/models_md3.cpp
2019-04-18 13:15:00 +02:00
Christoph Oelckers
a9ad3a1e52 - fixed two broken ScriptUtil calls in FraggleScript. 2019-04-18 13:14:51 +02:00
Christoph Oelckers
e87d04d843 - added a 'forceworldpanning' map flag.
Since unfortunately this cannot be set as a general default, let's at least make it as easy as possible to disable that panning+scaling madness without having to edit the texture data.

# Conflicts:
#	src/swrenderer/textures/r_swtexture.h
#	src/textures/texture.cpp

# Conflicts:
#	src/textures/texture.cpp
2019-04-18 13:14:32 +02:00
Christoph Oelckers
c0e9530fd0 - fixed: The light defaults were not fully deleted on an engine restart. 2019-04-18 13:12:55 +02:00
Christoph Oelckers
7e2540732d - store UnchangedSpriteNames in Dehacked in a less hacky manner. 2019-04-18 13:12:53 +02:00
Christoph Oelckers
71e77defa3 - use a TArray to store the particles and remove all 16 bit global variables.
This means one less exit function to deal with - and these days 16 bit variables are a pointless attempt at saving space.
2019-04-18 13:12:51 +02:00
Christoph Oelckers
cee9f52f2f - improved error reporting for badly defined translations.
This needs to be handled by the caller for all use cases because the translation parser lacks the context to do a proper error report.

# Conflicts:
#	src/textures/multipatchtexture.cpp
2019-04-18 13:07:39 +02:00
Christoph Oelckers
ce6b24308e - fixed: sidedef-less GLWalls may not apply per-sidedef render properties.
These always come from open-sector render hacks where the renderer tries to fill in some gaps

# Conflicts:
#	src/hwrenderer/scene/hw_walls.cpp

# Conflicts:
#	src/gl/scene/gl_walls_draw.cpp
2019-04-18 13:05:44 +02:00
Christoph Oelckers
988e8042bb - two more places where explicit allocations could be replaced. 2019-04-18 13:02:23 +02:00
Christoph Oelckers
d4611683a6 - let FxNop have a value type, even if it's just TypeError. 2019-04-18 13:02:21 +02:00
Magnus Norddahl
bafc5e6a3c - add vanilla lightmode that behaves exactly as Doom's original light did
# Conflicts:
#	src/hwrenderer/scene/hw_drawinfo.cpp
#	src/hwrenderer/scene/hw_renderstate.cpp
#	src/hwrenderer/scene/hw_renderstate.h
#	src/hwrenderer/scene/hw_skyportal.cpp
#	src/hwrenderer/scene/hw_weapon.cpp

# Conflicts:
#	src/g_level.cpp
#	src/gl/compatibility/gl_20.cpp
#	src/gl/renderer/gl_lightdata.cpp
#	src/gl/renderer/gl_renderstate.h
#	src/gl/scene/gl_skydome.cpp
#	src/gl/scene/gl_weapon.cpp
#	src/hwrenderer/scene/hw_weapon.cpp
#	src/hwrenderer/utility/hw_lighting.cpp
2019-04-18 12:50:03 +02:00
Rachael Alexanderson
f442d4bd54 - split gl_texture_hqresize into two variables - one for mode, one for multiplier.
# Conflicts:
#	src/textures/hires/hqresize.cpp

# Conflicts:
#	src/gl/textures/gl_hqresize.cpp
#	src/r_videoscale.cpp
2019-04-17 21:04:41 +02:00
Rachael Alexanderson
301246236c - added normal5x and normal6x 2019-04-17 20:59:20 +02:00
drfrag
96f996d8aa Revert "Revert "- update xBRZ upscaler to version 1.6""
This reverts commit 285791622d.

# Conflicts:
#	src/gl/textures/gl_hqresize.cpp
#	wadsrc/static/menudef.txt

Goodbye to TDM-GCC.
2019-04-17 20:33:41 +02:00
Christoph Oelckers
c47549c009 - code simplification. 2019-04-17 20:00:29 +02:00
Christoph Oelckers
4cdfd7ff33 - fixed incorrect alignment of scaled world panned textures combined with per-sidedef scaling in the hardware renderer
This particular case incorrectly factored in the sidedef's scaling factor for how to calculate the offset.
Fortunately this is a very rare case - a quick check yielded no maps depending on it.
Should any map surface that depends on this bug a compatibility option may be needed but it doesn't seem likely that this may be the case.
2019-04-17 20:00:28 +02:00
alexey.lysiuk
a93807833a - disable music playback if WinMM stream cannot be opened
https://forum.zdoom.org/viewtopic.php?t=62888
2019-04-17 19:59:16 +02:00
alexey.lysiuk
ec432beea0 - print VM stack trace on startup abort exception
https://forum.zdoom.org/viewtopic.php?t=62650
2019-04-17 19:57:22 +02:00
Christoph Oelckers
3a3ae0bcd5 - fixed deprecation warnings for member functions not checking the version. 2019-04-17 19:44:10 +02:00
Christoph Oelckers
8ad73d32b8 - fixed: The JIT compiler crashed on missing ArgFlags.
For ad-hoc Dehacked state functions no ArgFlags are created, in this case they can just be assumed to not be relevant here, because none of these function produces reference arguments.
2019-04-17 19:44:07 +02:00
alexey.lysiuk
e6590f6ad9 - fixed return value of native call to dynamic array's Reserve()
https://forum.zdoom.org/viewtopic.php?t=62841
2019-04-17 19:44:05 +02:00
alexey.lysiuk
c4aa2c5e46 - server CVARs can be changed only by settings controller
Initially, settings controller flag was false by default
It was not touched during construction and destruction of player_t instances though
Now, with all members initialized in class definition, this flag must be saved and restored manually

https://forum.zdoom.org/viewtopic.php?t=62830
2019-04-17 19:44:04 +02:00
Magnus Norddahl
e4502de60b - workaround pointer truncation bug in asmjit 2019-04-17 19:44:02 +02:00
alexey.lysiuk
651dce449a - removed erroneous assertion
https://forum.zdoom.org/viewtopic.php?t=62815
2019-04-17 19:44:00 +02:00
alexey.lysiuk
9b49c6777d - fixed Actor.A_StopSound() native call
Wrong function overload was selected by compiler

https://forum.zdoom.org/viewtopic.php?t=62820
2019-04-17 18:44:14 +02:00
Magnus Norddahl
60a35e0bb3 - moved argsCache out of JitCompiler::CreateFuncSignature 2019-04-17 18:44:12 +02:00
Christoph Oelckers
10aea91745 - don't put mutexes into static local variables.
Their initialization semantics are not safe for synchronization objects.
2019-04-17 18:44:08 +02:00
Christoph Oelckers
da8686813d - fixed crash with FraggleScript in Nimrod MAP02. 2019-04-17 18:40:00 +02:00
alexey.lysiuk
84c7a810b1 - fixed broken Z coordinate in Actor.Vec3Angle() native call 2019-04-17 18:39:56 +02:00
alexey.lysiuk
7ba1e5945f - fixed native calls to LevelLocals.GetUDMF*() functions
https://forum.zdoom.org/viewtopic.php?t=62774
2019-04-17 18:39:53 +02:00
Christoph Oelckers
c90e4b773a - this "genuine hack" was totally redundant... 2019-04-17 17:44:07 +02:00
Christoph Oelckers
a6ff1637df - more direct native stuff, this is a week old but was almost forgotten.
# Conflicts:
#	src/hwrenderer/postprocessing/hw_postprocessshader.cpp
2019-04-17 17:42:24 +02:00
Christoph Oelckers
013040eacd - missed one definition for adding a direct native call. 2019-04-17 17:27:42 +02:00
Christoph Oelckers
cf4f573a25 - more direct native entry points.
- disallow bool as a return value for direct native calls because it only sets the lowest 8 bits of the return register.
- changed return type for several functions from bool to int where the return type was the only thing blocking use as direct native call.
2019-04-17 17:27:39 +02:00
Christoph Oelckers
082cb5b656 - scriptified P_CheckMeleeRange2. 2019-04-17 16:24:10 +02:00
Christoph Oelckers
c054389345 - fixed: Direct native functions for the JIT compiler may not return bool.
A bool will only set the al register on x64, but the entire eax needs to be set for the JIT code to deal with it.
2019-04-17 16:24:07 +02:00
Christoph Oelckers
15ab1fb09b - deprecated a few functions that depend on AAPTR_* to be useful.
- fixed wrong name for the LineAttack action function.
2019-04-17 16:24:05 +02:00
alexey.lysiuk
3252390642 - fixed linking of optimized targets
CMakeFiles/zdoom.dir/r_utility.cpp.o: In function `R_SetupFrame(FRenderViewpoint&, FViewWindow&, AActor*)':
/home/travis/build/coelckers/gzdoom/src/r_utility.cpp:832: undefined reference to `AActor::GetCameraHeight() const'
CMakeFiles/zdoom.dir/g_shared/a_action.cpp.o: In function `A_Unblock(AActor*, bool)':
/home/travis/build/coelckers/gzdoom/src/g_shared/a_action.cpp:64: undefined reference to `AActor::GetDropItems() const'
2019-04-17 15:11:26 +02:00
Christoph Oelckers
61b91f4897 - fix it 2019-04-17 15:11:24 +02:00
Christoph Oelckers
792aaa5b88 Added direct native entry points to a larger number of functions.
# Conflicts:
#	src/scripting/vmthunks_actors.cpp
2019-04-17 15:11:22 +02:00
alexey.lysiuk
ab111aa034 - fixed linking of optimized POSIX targets
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_Distance2DSquared(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x6ab): undefined reference to `AActor::PosRelative(AActor const*) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_Distance3DSquared(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x75f): undefined reference to `AActor::PosRelative(AActor const*) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_Vec3To(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x850): undefined reference to `AActor::PosRelative(AActor const*) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_Vec2To(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x930): undefined reference to `AActor::PosRelative(AActor const*) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_DistanceBySpeed(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0xa00): undefined reference to `AActor::PosRelative(AActor const*) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o:vmthunks_actors.cpp:(.text+0xad3): more undefined references to `AActor::PosRelative(AActor const*) const' follow
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_PosRelative(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x1200): undefined reference to `AActor::PosRelative(sector_t*) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_ClearInterpolation(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x127d): undefined reference to `AActor::ClearInterpolation()'
vmthunks_actors.cpp:(.text+0x1298): undefined reference to `AActor::ClearInterpolation()'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_GetBobOffset(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x135a): undefined reference to `AActor::GetBobOffset(double) const'
CMakeFiles/zdoom.dir/scripting/vmthunks_actors.cpp.o: In function `AF_AActor_Distance2D(VMValue*, int, VMReturn*, int)':
vmthunks_actors.cpp:(.text+0x222b): undefined reference to `AActor::PosRelative(AActor const*) const'
2019-04-17 15:11:18 +02:00
Christoph Oelckers
c0c5df0e6e - fixed: ST_FormatMapName did not clear the string it wrote to before appending text. 2019-04-17 15:11:17 +02:00
Christoph Oelckers
22b8bdc02d fixed missing include. 2019-04-17 15:11:15 +02:00
Christoph Oelckers
1fce3298ba - fixed definition of GetUDMFString export. 2019-04-17 15:11:14 +02:00
Rachael Alexanderson
a4e09f1947 - Enforce CheckCheatmode() for cheat-enforced CVARs, allowing them to be changed in normal single player games 2019-04-17 15:11:11 +02:00
drfrag
a235d23c94 - Missing include. 2019-04-17 15:10:11 +02:00
Christoph Oelckers
a5e16e3261 - moved a large part of the VM thunks out of p_mobj.cpp. 2019-04-17 14:55:58 +02:00
Christoph Oelckers
1e4c22f8d4 - more direct native entry points. 2019-04-17 14:55:56 +02:00
Christoph Oelckers
3fb3831843 - fixed: SBar_SetClipRect had a superfluous argument resulting in incorrect behavior 2019-04-17 14:32:19 +02:00
Christoph Oelckers
89e6c400af - missed the header... 2019-04-17 14:32:17 +02:00
Christoph Oelckers
93dedcfd4b - the native APlayerPawn::PlayAttacking2 function is not needed anymore. 2019-04-17 14:32:16 +02:00
Christoph Oelckers
54d1ee2244 - fix bad return type. 2019-04-17 14:32:14 +02:00
Christoph Oelckers
d52889e71e - handle JIT errors in a more user-friendly fashion than aborting.
* use I_Error instead of I_FatalError to abort. I_FatalError is only for things that are not recoverable and should not be handled outside of error cleanup and rethrowing.
* only catch CRecoverableError in JitCompile. Everything else should fall through to the outermost catch block.
* Do not I_FatalError out after handling the exception locally. Just print an error and return null, indicating failure.
2019-04-17 14:32:12 +02:00
Christoph Oelckers
f22aaca74d - scriptified ASpecialSpot.
This only had two simple native methods so the class is not fully scripted.
2019-04-17 14:32:10 +02:00
Christoph Oelckers
92b245d220 - treat REGT_STRING | REGT_ADDROF just like REGT_STRING for direct native functions.
Both pass a reference so there's no need to treat them differently.
2019-04-17 14:32:08 +02:00
Christoph Oelckers
044b635a26 - more direct native function calls. 2019-04-17 14:32:06 +02:00
drfrag
03853930aa - Fixed compilation. 2019-04-17 12:21:08 +02:00
Christoph Oelckers
c87724ef0a Removed all native components from AInventory. 2019-04-16 23:57:22 +02:00
Christoph Oelckers
d40de21bae - scriptified A_SpawnSingleItem, which was the last piece of native code still referencing AInventory 2019-04-16 23:57:19 +02:00
Christoph Oelckers
558c9b48de - scriptified A_SelectWeapon and inlined the last remaining use of APlayerPawn::SelectWeapon. 2019-04-16 23:57:17 +02:00
Christoph Oelckers
d2225040ea - scriptified A_SelectWeapon 2019-04-16 23:57:15 +02:00
Christoph Oelckers
b8e1218645 Removed all remaining references to AInventory
What remains is the class definition and one single reference that will be scriptified.
2019-04-16 23:57:12 +02:00
Christoph Oelckers
b762c0f49c Removed more literal references to AInventory.
# Conflicts:
#	src/hwrenderer/scene/hw_drawinfo.cpp
#	src/v_draw.cpp
2019-04-16 23:57:07 +02:00
Christoph Oelckers
d173ad753f - started removing literal references of AInventory, so far only simple stuff. 2019-04-16 23:57:02 +02:00
drfrag666
ab5e5e0389 - The GetBlend script call is needed in another place as well.
# Conflicts:
#	src/gl/scene/gl_scene.cpp
2019-04-16 22:09:46 +02:00
Christoph Oelckers
e969e8a86b - moved the GetBlend script call to the one single place where it is needed to get rid of one native AInventory method.
# Conflicts:
#	src/g_inventory/a_pickups.cpp
#	src/g_inventory/a_pickups.h
#	src/hwrenderer/scene/hw_drawinfo.cpp
2019-04-16 22:01:08 +02:00
Christoph Oelckers
fa2e2e78b4 - removed all direct access to AInventory's members.
We are getting closer to make class Inventory fully scripted.
2019-04-16 22:01:04 +02:00
Magnus Norddahl
c8b5276981 - gcc/clang didn't like having this in a class 2019-04-16 22:01:01 +02:00
Magnus Norddahl
82a0acbc19 - add bool and unsigned int to the allowed types
- fix one case where floats were used (the JIT always calls with doubles)
2019-04-16 22:00:57 +02:00
Magnus Norddahl
89fd819926 - perform compile time validation of direct native function signatures 2019-04-16 22:00:55 +02:00
Magnus Norddahl
9e432c0c9f - fix VM native calls containing strings and enable them again 2019-04-16 22:00:53 +02:00
Magnus Norddahl
6090e5ec24 - fix compile error 2019-04-16 22:00:50 +02:00
Magnus Norddahl
cd03a487fe - GetInventoryIcon must return an integer for it to work for VM native calls 2019-04-16 22:00:48 +02:00
Christoph Oelckers
a42ece4fb4 - added missing min/max unsigned instructions for the VM. 2019-04-16 22:00:46 +02:00
Rachael Alexanderson
b7d22e2b1e - always apply vid_scalefactor now, even when vid_scalemode is not 0 or 1.
# Conflicts:
#	src/r_videoscale.cpp
2019-04-16 21:57:07 +02:00
Christoph Oelckers
e176410ab6 - fixed crash with weapons which remove themselves from the inventory but continue calling action functions.
This is still an error, so now this throws a meaningful exception.
2019-04-16 21:53:00 +02:00
Christoph Oelckers
d8d52f67b4 - hardened the seg integrity checks against extremely broken mods.
Temple of the Lizardmen 3 has segs lumps in every level that seem to use a different data format and are completely unusable, up to triggering undefined behavior.
2019-04-16 21:52:58 +02:00
Christoph Oelckers
59e0871f00 - fixed: The static variant of PClass::FindFunction may only be used for actual static variables. 2019-04-16 21:52:56 +02:00
Christoph Oelckers
c0686309fc - removed all direct references of AInventory::Owner and AInventory::Amount from the C++ code. 2019-04-16 21:52:53 +02:00
Christoph Oelckers
fc341c901f - fixed issues with Dehacked's ad-hoc script code generation
* The functions had no prototype and caused crashes.
* even after creating a prototype it didn't work because CreateAnonymousFunction was set up incorrectly for the case where a known return type was given.
2019-04-16 21:52:47 +02:00
drfrag
48c2f6451e - disable alpha test on models if the renderstyle isn't STYLE_Normal
- compare against the thing renderstyle since the local copy has been modified
(patches by dpJudas)
2019-04-16 21:51:19 +02:00
Christoph Oelckers
ba0e19f2a2 - made the BUddha checks readable again. 2019-04-16 21:34:55 +02:00
Christoph Oelckers
dc29eee077 - fixed compile warning 2019-04-16 21:34:53 +02:00
Christoph Oelckers
0a36ad0182 - removed assert that got triggered in an edge case that must pass here. 2019-04-16 21:34:51 +02:00
Christoph Oelckers
1bfa1fd5a6 - implemented missing 'exact' parameter for ThinkerIterator.Next. 2019-04-16 21:34:49 +02:00
Christoph Oelckers
5043106e97 - started replacing direct references to class AInventory.
The easiest part was the type checks which could be changed to the name variant with a global search and replace.

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp
2019-04-16 21:34:23 +02:00
Major Cooke
4e8d88f7df - fixed: P_PoisonPlayer and P_PoisonDamage did not check for NODAMAGE.
- fixed: P_PoisonDamage's check for Buddha2 and the Buddha powerup were inverted.
- fixed: P_PoisonDamage checked the modified damage instead of the raw, allowing amplifiers to boost the damage beyond telefrag and circumventing regular buddha.
2019-04-16 21:28:39 +02:00
Christoph Oelckers
9f2b62c99c - scriptified AInventory::Tick.
This was the last bit of code standing in the way of making AInventory a fully scripted class.
All that's left to sort out is some variable accesses - the vast majority of them in SBARINFO.
2019-04-16 21:28:37 +02:00
Magnus Norddahl
abc4406d18 - ptest is a SSE 4.1 instruction 2019-04-16 21:28:35 +02:00
Christoph Oelckers
bdd6d31a63 - scriptified the AutoUseHealth feature.
This again is a piece of code that reads and even writes to inventory items' properties, so better have it on the script side.
2019-04-16 21:28:34 +02:00
Christoph Oelckers
80e3ce735b - scriptified the decision making of the invuseall CCMD.
Custom items had no way to adjust to this - and it also was the last native access to ItemFlags.
2019-04-16 21:28:32 +02:00
Christoph Oelckers
9ff5257ce9 - scriptified P_DropItem. 2019-04-16 21:28:30 +02:00
Christoph Oelckers
17862639a1 - scriptified the no-spawn flag check for armor and health items. 2019-04-16 21:28:29 +02:00
Christoph Oelckers
e9dd8f3e4f - consolidated the check for "is actor an owned inventory item" into a subfunction.
This check occured 9 times in the source, better have it only once.
2019-04-16 21:28:26 +02:00
Christoph Oelckers
e8a6f82682 - scriptified G_PlayerFinishLevel.
Outside of SBARINFO this was the biggest remaining piece of code that referenced AInventory internals.
2019-04-16 21:28:24 +02:00
Christoph Oelckers
9315a217b3 - scriptified AActor::ClearInventory 2019-04-16 21:28:21 +02:00
Christoph Oelckers
a2ffe6327b - took the last methods aside from Tick and Serialize out of AInventory.
# Conflicts:
#	src/g_inventory/a_pickups.cpp
#	src/g_inventory/a_pickups.h
2019-04-16 21:28:19 +02:00
drfrag
8ef732704c - Missing include. 2019-04-16 19:55:28 +02:00
Christoph Oelckers
a1615457ac - properly hook up the alt HUD with the status bar.
# Conflicts:
#	src/d_main.cpp
2019-04-16 19:09:14 +02:00
Christoph Oelckers
0d8975ed31 - scriptified the last components of the alternative HUD.
- moved the ALTHUDCF parser PClass::StaticInit, so that it gets done right after creating the actor definitions.

All left to do is not to reallocate the AltHud object for each frame but store it in a better suited place.

# Conflicts:
#	src/d_main.cpp

# Conflicts:
#	src/info.cpp
2019-04-16 19:03:43 +02:00
Christoph Oelckers
376266b6a0 - scriptified the main drawer for the in-game HUD and removed all intermediate VM calls from the native source. 2019-04-16 19:02:01 +02:00
Christoph Oelckers
9d8dd5c529 - scriptified the AltHUD'S powerup drawer. 2019-04-16 19:01:55 +02:00
Christoph Oelckers
f509fdfdaa - scriptified and cleaned up the AltHUD's DrawCoordinates, DrawTime and DrawLatency functions.
Some backing functionality was moved elsewhere because scripting should not have access to low level system information.
2019-04-16 19:01:53 +02:00
Christoph Oelckers
eb07b8e543 - scriptified the AltHUD's inventory drawer and fixed the InvPrev CCMD. 2019-04-16 19:01:51 +02:00
Christoph Oelckers
e0915877b4 - scriptified the AltHUD's weapon drawer. 2019-04-16 19:01:50 +02:00
Christoph Oelckers
045d6d4355 - added the missing TNT1A0 check for icon-less keys.
Since it tries to get the icon from the spawn state it also has to check if that actually has a valid sprite.
2019-04-16 19:01:48 +02:00
Christoph Oelckers
437c72a089 - AltHUD ammo drawer scriptified. 2019-04-16 19:01:46 +02:00
Christoph Oelckers
cbb92af1db - allow %*d etc. format specifiers in ZScript, but only for numeric types. 2019-04-16 19:01:45 +02:00
Christoph Oelckers
1033dc3b10 - Alt HUD scriptification, part 1. 2019-04-16 19:01:43 +02:00
Magnus Norddahl
08f415bad9 - don't use SSE for integer min/max 2019-04-16 18:46:09 +02:00
Magnus Norddahl
1e533d726c - Use SSE2 for min/max instead 2019-04-16 18:46:07 +02:00
Christoph Oelckers
ca67327d1c - this was wrong... 2019-04-16 18:46:01 +02:00
Christoph Oelckers
ff9eaed1ba - fixed script call in PickNewWeapon. 2019-04-16 18:45:58 +02:00
Christoph Oelckers
53c1614a51 - fixed: P_Massacre without a class restriction no longer worked. 2019-04-16 18:45:56 +02:00
Christoph Oelckers
d18ed18d2e - scriptified invnext and invprev CCMDs. 2019-04-16 18:45:54 +02:00
Christoph Oelckers
081d0bbcca - moved ValidateInvFirst to the script side because this was one of the major functions that directly reference AInventory. 2019-04-16 18:45:52 +02:00
Christoph Oelckers
d021d63d33 - moved AInventory::DoRespawn fully to the script side. 2019-04-16 18:45:49 +02:00
Christoph Oelckers
a7909c16e5 - made CallTryPickup a global function.
This one still gets called in too many places but stands in the way of moving Inventory fully to the script side.
2019-04-16 18:45:47 +02:00
Christoph Oelckers
9981674a27 - re-fixed the massacre fix for Dehacked-modified inventory items.
Instead of overriding the Massacre method it is preferable to clear the flags causing the bad behavior, most notably ISMONSTER.

# Conflicts:
#	src/g_inventory/a_pickups.cpp
#	src/g_inventory/a_pickups.h
2019-04-16 18:45:43 +02:00
Christoph Oelckers
be8d1c950d - scriptified GiveAmmo and the one remaining piece of native code still using it. 2019-04-16 18:45:41 +02:00
Christoph Oelckers
f1bf1cc44e - scriptified DropInventory. 2019-04-16 18:45:38 +02:00
Christoph Oelckers
a614f2a81e - scriptified UseInventory and several functions using the already scriptified ones,
# Conflicts:
#	src/g_statusbar/sbar.h
2019-04-16 18:45:36 +02:00
Christoph Oelckers
e7c798f58f - scriptified TakeInventory, including the ACS/FS interfaces. 2019-04-16 18:45:03 +02:00
Christoph Oelckers
390f8ef209 - code consolidation in invnext and invprev. 2019-04-16 18:45:01 +02:00
Christoph Oelckers
d2741813ab - scriptified RemoveInventory and Inventory.OnDestroy. 2019-04-16 18:44:59 +02:00
Christoph Oelckers
8609e2ba68 - scriptified GiveInventory and made the interface a bit more configurable by mods.
Now a child type can decide for itself how to treat 'amount'.
The scripting interfaces to this function in ACS and FraggleScript have been consolidated and also scriptified.
2019-04-16 18:44:56 +02:00
Christoph Oelckers
2a192cde92 - scriptified AddInventory. 2019-04-16 18:44:53 +02:00
Christoph Oelckers
de6916756b - disabled direct native functions for now until the problems with string arguments are fixed. 2019-04-16 18:44:50 +02:00