Commit graph

1421 commits

Author SHA1 Message Date
drfrag
4977e6af1f - add native FlipLineSideRefs(line)
- FlipLineSideRefs should only work on single-sided lines
(patch by Rachael)
2019-11-16 14:01:47 +01:00
Rachael Alexanderson
4878da381b - new zscript function 'SetLineVertexes(line, v1, v2)'
- scriptify 'FlipLine' completely using new function, remove native version

# Conflicts:
#	src/maploader/postprocessor.cpp
2019-11-13 19:34:39 +01:00
Marisa Kirisame
50a7db6fa3 Localize level/author strings on intermission startup, fixes misalignments.
# Conflicts:
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
2019-11-13 19:34:31 +01:00
drfrag
44aeb56932 - add 'FlipLine' to 'LevelPostProcessor'
(patch by Rachael)
2019-11-13 19:34:28 +01:00
alexey.lysiuk
05f36cafc8 - extended level post-processing with special string arguments
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:26 +01:00
alexey.lysiuk
dca15d56c8 - extended level post-processing with thing IDs
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:23 +01:00
alexey.lysiuk
814483f5b8 - level post-processor cleanup
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:21 +01:00
alexey.lysiuk
7f1166e833 - level post-processor can now add new things
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:18 +01:00
alexey.lysiuk
05f0b76f8e - extended level post-processing with specials and arguments
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:16 +01:00
alexey.lysiuk
09e7fe5fb4 - extended level post-processing with editor numbers and angles
# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:13 +01:00
alexey.lysiuk
20098ca90b - added things related getters to level post-processing
New functions cover existing interface only
Unsigned integers are now used instead signed for indices and bitfields

# Conflicts:
#	src/maploader/maploader.cpp
2019-11-13 19:34:11 +01:00
drfrag
91859bc6fa - added generic level post-processing script class
It was extracted from LevelCompatibility class, and native code was moved accordingly
(original patch by _mental_)

# Conflicts:
#	src/compatibility.cpp
2019-11-13 19:33:49 +01:00
drfrag
033f0ca43e Revert "- add 'flipline' function to levelcompatibility"
This reverts commit 1a85206983.

Revert "- implement the following functions under LevelCompatibility:"

This reverts commit 6537eca669.
2019-11-13 19:31:42 +01:00
alexey.lysiuk
81010b4fbf - fixed missing fullbright for Berserk
https://forum.zdoom.org/viewtopic.php?t=66307
2019-11-06 17:51:03 +01:00
alexey.lysiuk
c41a44176f - fixed broken walkthrough of Restoring Deimos MAP07 2019-11-02 21:22:19 +01:00
drfrag
9ea43c4b14 - Fixed taking screenshots in menus with Space when Sys_Rq is set as screenshot key.
Thanks randi!
2019-10-31 17:05:33 +01:00
alexey.lysiuk
941a5f37a5 - fixed missing frames for axe attack without mana
The target state to jump is S_FAXEATK_5 in the original Hexen, but we were jumping to S_FAXEATK_7
5329fb5d75/src/hexen/info.c (L1298-L1299)

https://forum.zdoom.org/viewtopic.php?t=66216
2019-10-26 12:14:58 +02:00
drfrag
0907972c2f Revert "- allow the language table to supersede the title patches, if appropriate"
This reverts commit 2b51e8d5dd.

# Conflicts:
#	src/g_hub.cpp
#	src/g_level.cpp
#	src/p_setup.cpp
#	src/wi_stuff.cpp
#	src/wi_stuff.h
#	wadsrc/static/zscript/ui/statscreen/types.zs

Revert "- fixed: The wbstartstruct that gets passed to the level summary screen needs to be static"

This reverts commit 4a563f449d.

# Conflicts:
#	src/g_level.cpp

Revert "- Fixed compilation."

This reverts commit 149a294a49.

# Conflicts:
#	src/g_level.cpp

Revert "- Fixed game finales not being shown after the intermission."

This reverts commit 55af0b11c6.

All this didn't make sense without localization and caused problems with intermissions and endings, it was incompatible with the old code without the level refactor.
2019-10-25 16:23:42 +02:00
PaulyB
c9075cc481 Scythe MAP22 Compatibility fix 2019-10-22 10:59:19 +02:00
Christoph Oelckers
f15a52b1e7 - when adding some minmum lateral movement to trigger collision detection, do not just set Vel.X but actually use a vector pointing in the proper facing direction of the actor. 2019-10-22 10:59:13 +02:00
alexey.lysiuk
af3fce739d - fixed broken walkthrough of Skulldash MAP04 2019-10-20 11:31:57 +02:00
alexey.lysiuk
f41c0eca12 - fixed broken walkthrough of Restoring Deimos MAP03
# Conflicts:
#	wadsrc/static/zscript/level_compatibility.zs
2019-10-20 11:31:53 +02:00
alexey.lysiuk
0b16eb2cbb - fixed: pickup flash didn't fade out if player was killed by pickup
https://forum.zdoom.org/viewtopic.php?t=66135
2019-10-16 20:56:41 +02:00
Major Cooke
60b6b31542 Added compatibility for Hellbound MAP29
- Some of the ceilings in the monster closets weren't high enough to allow the cyberdemons to pass, making 100% kills impossible. This is caused by the floors not going down far enough and stopping at a certain height above the next closest floor.
2019-10-12 14:35:31 +02:00
Alexander
b4d10d2f5b fix bug when down arrow gave no result after mouse move in main menu
Steps to reproduce:
1. Load game.
2. Press any key to bring up the main menu.
3. Move the mouse anywhere out of the menu entries.
4. Press Down arrow.

Expected result: the menu cursor sound is played, the first menu element is selected.
Actual result: the menu cursor sound is played, no menu element is selected.

Repeated Down arrow pressing doesn't give any result, either.

If on step 4 Up arrow is pressed, the last element in the menu is selected.
2019-09-30 21:38:48 +02:00
alexey.lysiuk
df05187229 - fixed inventory scroll arrows in alternative HUD
https://forum.zdoom.org/viewtopic.php?t=65976
2019-09-29 18:16:10 +02:00
Rachael Alexanderson
6537eca669 - implement the following functions under LevelCompatibility:
GetNumMapThings, GetMapThingPos, GetMapThingAngle, SetMapThingAngle

# Conflicts:
#	src/maploader/compatibility.cpp
2019-09-28 15:01:23 +02:00
Rachael Alexanderson
1a85206983 - add 'flipline' function to levelcompatibility
# Conflicts:
#	src/maploader/compatibility.cpp
2019-09-28 14:56:12 +02:00
drfrag
a1e19657f9 - Added support for PrtSc and cosmetic changes. 2019-09-22 19:34:56 +02:00
Alexander
6535f837b7 implement taking screen shots in menus
# Conflicts:
#	wadsrc/static/zscript/ui/menu/menu.zs
2019-09-22 12:45:32 +02:00
Marisa Kirisame
aa06b2f62c Squashed commit of the following:
commit 6ecd831eb45a8258995c02664450c3ca8cfe5b48
Merge: a4fb1f61c afbd7f7a2
Author: Marisa Kirisame <marisa@sayachan.org>
Date:   Sun Jul 28 22:02:19 2019 +0200

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

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

    Renamed EFFloorType enum in ZScript to the more descriptive EF3DFloorFlags

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

    Add bounds checks to Get3DFloor/GetAttached

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

    Correct handling of 3d floor plane texture getting.

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

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

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

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

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

    Merge branch 'master' into f3dfloor_export

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

    Merge branch 'master' into f3dfloor_export

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

    Export F3DFloor structure and related data.
    Small changes to Trace code to better use this struct.
2019-09-11 14:18:28 +02:00
PaulyB
245326b5ac Added Armor to Hexen fullscreen display
Since the armor icon is much larger than the flask icon, both have been moved to the right slightly
2019-09-11 00:27:25 +02:00
PaulyB
52a9b9d600 Wrong offset on Fighter's Fist 2019-09-10 23:04:56 +02:00
alexey.lysiuk
3081dbca13 - removed useless conditions from options menu 2019-09-08 10:11:23 +02:00
alexey.lysiuk
015f57ed52 - fixed VM abort when entering search menu
https://forum.zdoom.org/viewtopic.php?t=65833
2019-09-08 10:11:21 +02:00
Christoph Oelckers
9097f23286 - the Doom status bar has been partially virtualized to allow overriding specific parts of it, most notably the ammo display
# Conflicts:
#	wadsrc/static/zscript/ui/statusbar/doom_sbar.zs
#	wadsrc/static/zscript/ui/statusbar/harm_sbar.zs
2019-09-08 00:08:50 +02:00
Christoph Oelckers
358718de05 - removed the playernum parameter from CheckLocalView
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.

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

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

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

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

This simple edit allows mods to not add a space, still be separated from
standard options.
2019-09-01 00:09:18 +02:00
PaulyB
955c71c773 Level compatibility additions for Scythe 2 and Hell Revealed
# Conflicts:
#	wadsrc/static/zscript/level_compatibility.zs
2019-09-01 00:09:11 +02:00
PaulyB
016d7e5293 Fix typo in Heretic status bar 2019-08-31 10:08:25 +02:00
Rachael Alexanderson
df2eab612d - oops, this didn't get through 2019-08-26 00:51:44 +02:00
PaulyB
8e78f973d0 Let Hexen Cleric and Mage use unique health chains
- (changed slightly by Rachelle)

Hexen's characters incorrectly only used the Fighter's health chain previously.
2019-08-26 00:51:43 +02:00
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
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
Rachael Alexanderson
7adda0e47a - fix a couple issues with sigil.wad:
- e5m2: floating skulls disappear on lower skill levels
- e5m4: the platform with the baron of hell that led to the invulnerability secret had a missing texture
2019-08-11 14:32:37 +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
994bdc0b03 - fixed: Do not use BasicArmor's save percentage when no armor present.
This function is only for the Hexen status bar and printed incorrect values.
2019-08-10 12:47:57 +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
drfrag
61bd1d614a - More fake generic font support. 2019-08-08 00:39:22 +02:00
drfrag
25c890d91c - Fixed bad return value. 2019-08-07 13:42:03 +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
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
Blue Shadow
b9a9e3f8b7 - moved GetSaveAmount() from the base armor class 2019-08-05 13:29:02 +02:00
Blue Shadow
80c561a056 - fixed buggy ArmorFactor behavior when set to a value other than 1.0 2019-08-05 13:29:01 +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
865d1581dd - Extended the fake generic font support for the dialogue system. 2019-07-27 12:56:32 +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
Christoph Oelckers
768959af45 - fixed: The numcommands value in A_KoraxCommand needs to be decremented by one because the max parameter of the random function is inclusive. 2019-07-26 14:15:57 +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
Christoph Oelckers
136e828de9 - use proper interface calls to give the initial BasicArmor to the player.
The old code didn't check if giving the item was proper and just went ahead adding it to the inventory unconditionally.
2019-07-18 14:30:09 +02:00
alexey.lysiuk
f38c83f96c - added PSprite.bMirror flag to ZScript class definition
https://forum.zdoom.org/viewtopic.php?t=65372
2019-07-18 14:30:05 +02:00
Rachael Alexanderson
264f1d875f - add +ZDOOMTRANS to BFGExtra in order to force classic transparency per user setting. 2019-07-18 13:57:59 +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
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
02ee44772c - fake VGA font support to the MessageBoxMenu class 2019-07-17 23:58:12 +02:00
drfrag
8c941ba1cf - A few more missing things for compatibility.
# Conflicts:
#	wadsrc/static/language.enu
2019-07-17 23:58:09 +02:00
drfrag
b702a5a514 - fake generic font support for the dialogue system. 2019-07-17 23:49:47 +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
3000e15aec - Adjustments to the new player setup menu. 2019-07-16 01:53:29 +02:00
drfrag
a66bb6ad16 - Cosmetic changes. 2019-07-15 20:38:44 +02:00
Christoph Oelckers
f77336b25c - fixed: The color sliders in the player setup menu may not be selected when inactive. 2019-07-15 20:38:29 +02:00
Christoph Oelckers
ce7920727c - removed debug output. 2019-07-15 20:38:28 +02:00
Christoph Oelckers
2577c0843e - adjustments to the player menu so that the display isn't cut off on the smallest screen sizes. 2019-07-15 20:38:26 +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
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
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
drfrag
08cd080597 - Added DrawOptionText function for the options menu. 2019-07-10 23:04:40 +02:00
drfrag
a6429a1ae1 - Added some dummy functions for the option menu. 2019-07-10 22:59:53 +02:00
Major Cooke
7bf370dd63 'Fixed' spacing. 2019-07-03 21:48:06 +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
Erick Tenorio
ce0b4b1ead - DOOM2.WAD fixes 2019-07-02 14:50:15 +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
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
alexey.lysiuk
b0ac9e66a7 - switched to unconditional level exit in scriptified actors
Action special may not work properly in a very specific setup
E.g., exit to the next level within a hub via boss brain death was broken
2019-06-17 22:03:32 +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
Alexander
b19284cea9 localize custom menu titles in option search results 2019-06-13 15:54:19 +02:00
drfrag
4e3f294453 - Extended fake Shape2D. 2019-06-10 20:07:47 +02:00
Blue Shadow
6b3a7ace0b - fixed PlaySpawnSound call in A_ThrowGrenade 2019-06-05 12:47:03 +02:00
Christoph Oelckers
38fd06656d - made the colorset names and the texts in the color picker localizable.
# Conflicts:
#	wadsrc/static/language.csv
2019-05-19 20:40:22 +02:00
drfrag
59633d8c72 - Changed deprecations. 2019-05-14 20:10:58 +02:00
alexey.lysiuk
1577da4186 - fixed deprecation warnings in core scripts
Actually no warnings here (drfrag)

# Conflicts:
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
2019-05-14 20:07:55 +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
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
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
Alexander
73a0275cf6 option search improvements
1. Top-level menu names are now properly handled.
2. Changing "Any or All terms" option now immediately updates the results.
3. Reformatted menu.zs to have tabs instead of spaces.
2019-05-14 19:01:25 +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
cf818fbe10 - changed zstrformat to allow %c to emit non-ASCII characters as UTF-8. 2019-05-14 17:38:45 +02:00
Christoph Oelckers
0153a42240 - fixed issues with text entering
* entering a savegame description did not work anymore
* the length check was too restrictive and always underestimated the available space
* use the console font for entering a savegame description. This has more characters and better contrast for this content.
* the interface to the text enterer used bad measurements.

# Conflicts:
#	wadsrc/static/zscript/ui/menu/optionmenuitems.zs
2019-05-14 17:38:21 +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
player701
cb57c712cb - Fixed random generation of friendly obituaries 2019-05-05 23:44:01 +02:00
Christoph Oelckers
aafb781d76 - removed the leftovers of the removed savedamount variable. 2019-05-02 19:56:24 +02:00
Christoph Oelckers
d599e2738d - removed the MaxAmount fudging from MaxHealth. 2019-05-02 19:55:35 +02:00
Christoph Oelckers
c258e60340 - use Obituary for both Demon and Spectre. 2019-05-02 19:54:19 +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
Player701
d30c749d02 - Fixed conditions tested for when checking whether "Force respawn" or "Respawn protection" dmflags are enabled 2019-05-02 17:10:16 +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
Christoph Oelckers
85efd1fa0f - use the proper virtual methods for setting and retrieving the string in OptionMenuItemTextField.
Without this the class cannot be properly subclassed.

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

# Conflicts:
#	wadsrc/static/zscript/ui/menu/optionmenuitems.zs
2019-05-01 00:29:19 +02:00
Christoph Oelckers
9ea041897c - fixed: OptionMenuItemSafeCommand did not allow unsafe commands. 2019-04-29 20:05:08 +02:00
player701
95f4d626c7 - Fixed misplaced vertex on Community Chest MAP16 2019-04-29 19:51:53 +02:00
alexey.lysiuk
4711ced89b - fixed level progression of titan-426 map on easy skill
https://www.doomworld.com/idgames/levels/doom2/Ports/s-u/titan426
2019-04-29 19:51:51 +02:00
Rachael Alexanderson
08e5ca62b7 - fix a missing texture in strife map21 2019-04-29 19:51:48 +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
Rachael Alexanderson
55e43293c5 - fix missing texture in Strife MAP15 2019-04-29 19:51:39 +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
Christoph Oelckers
aeef28f544 - fix some holes the player can fall in for darken2 MAP12.
This map went a bit too far with lighting hacks depending on holes in the floor.
2019-04-29 19:26:43 +02:00
Christoph Oelckers
8a155b7452 - added a compatibility handler for a badly constructed crossbeam bridge in Unholy Realms MAP17. 2019-04-29 19:26:41 +02:00
Christoph Oelckers
b5fb443258 - fixed spacing of Strife's merchant's texts. 2019-04-29 19:06:21 +02:00
Christoph Oelckers
d96473c74a - give Hexen's PoisonCloud the OLDRADIUSDMG flag.
This actor has such oddball semantics that it's better not subjected to the revised radius damage code.
2019-04-29 19:04:07 +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
f57ebacae6 - localized some user-facing texts that were still string literals. 2019-04-29 18:53:22 +02:00
Christoph Oelckers
7a9b881299 - properly construct the reply texts for Strife's merchants. 2019-04-28 23:12:02 +02:00
Sterling Parker
c2bdeb7da1 Add LookScale property
As requested by @coelckers.
2019-04-28 23:02:01 +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
Major Cooke
fc510a7d89 Added CanTouchItem virtual.
- Allows an actor with +PICKUP flag to determine if it can pick up specific items or not.
2019-04-28 22:57:40 +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
Christoph Oelckers
961a6fe211 - reorganized the ZScript content in gzdoom.pk3 and changed the files' extensions to something unique for easier syntax highlighting.
# Conflicts:
#	wadsrc/static/zscript.txt
2019-04-28 22:14:34 +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
drfrag
171517f430 - Exported missing ZScript functions and added workaround for different syntax without the level refactor. 2019-04-28 20:04:35 +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
Christoph Oelckers
5b78d7faaa - fixed run health clamping.
This didn't scale the move factors properly.
2019-04-28 15:09:25 +02:00
Christoph Oelckers
30512f8fe3 - made gameaction read only
The script side cannot do anything useful with this, because most actions require parameters in global variables, so this is a first grade candidate for rogue mods to make the engine misbehave.
2019-04-28 15:09:22 +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
2cad60d9e9 - removed extraneous parameter in SpawnPlayerMissile call in A_FireProjectile.
The native variant has a MissileActor out parameter in this place, but in ZScript that's a secondary return value.
2019-04-28 11:46:51 +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
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
Christoph Oelckers
0a7027489e - added a compatibility fix for KDiZD Z1M3 and fixed some tagging issues in the compatibility handler.
One sector in an underwater area of KDIZD Z1M3 got tagged with an incorrect Transfer_Heights effect which caused render glitches in that area.
There were also a few AddSectorTag calls without first clearing the sector's tags leading to potentially undefined behavior.
2019-04-27 23:45:47 +02:00
Christoph Oelckers
3b631ca766 - removed bad character from A_CustomPunch definition. 2019-04-27 13:47:37 +02:00