Commit graph

2106 commits

Author SHA1 Message Date
Chronos Ouroboros
0aefc61f86 Fixed weapon bob jittering. 2020-11-14 14:34:09 -03:00
Rachael Alexanderson
6e3a4c590d - fix missing SKILLP property in zscript code 2020-11-04 01:29:40 -05:00
Christoph Oelckers
e6c96bcb75 - move VM exports to the proper class. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
783d532bbe - moved the script exports to the base class as wello. 2020-10-31 12:24:14 +01:00
Christoph Oelckers
be5d25a7b1 - moved all shareable script sources to their own folder in gzdoom.pk3. 2020-10-31 12:24:13 +01:00
Christoph Oelckers
3f61ab7fbf - moved FormatNumber to the generic base class. 2020-10-31 12:24:13 +01:00
Christoph Oelckers
fd6b7f9274 - split out the generic parts of the crosshair drawer. 2020-10-31 12:24:12 +01:00
alexey.lysiuk
46b980c213 - fixed warnings in image scroller core script
Script warning, "gzdoom.pk3:zscript/ui/menu/imagescroller.zs" line 113:
Truncation of floating point value
Script warning, "gzdoom.pk3:zscript/ui/menu/imagescroller.zs" line 122:
Truncation of floating point value
2020-10-30 14:58:50 +02:00
Christoph Oelckers
f25896021e - added the missing image scroller class.
MENUDEF handling was already present for it but the implementation was not.
2020-10-28 07:23:42 +01:00
nashmuhandes
6e692e5571 Allow retrieval of the custom Crush state in WorldThingGround 2020-10-25 20:10:52 +01:00
nashmuhandes
7285c5aca8 Added WorldThingGround event to hook into the actor at exact moment its corpse spawns gibs upon being crushed. 2020-10-25 20:10:52 +01:00
Christoph Oelckers
f67d5edbbf - fixed option menu positioning.
Calculations are done in screen space, so the clean multiplier here was wrong.
2020-10-25 16:42:03 +01:00
Major Cooke
7477dfa922 Converted scale and pivot to vectors, and rotation to an angle. 2020-10-25 15:42:12 +01:00
Major Cooke
a6bbddf167 Finished implementing PSprite interpolation for vertices.
- Setting WOF_INTERPOLATE on any of the functions with flags (except A_OverlayFlags) will enable one tic for interpolating.
- Setting PSPF_INTERPOLATE with A_OverlayFlags will permanently enable it for that layer, but requires manual calling.
2020-10-25 15:42:11 +01:00
Major Cooke
7c4c0163a3 Added A_OverlayPivotAlign and A_OverlayVertexOffset.
A_OverlayPivotAlign(int layer, int halign, int valign)
- Aligns the pivot point origin to a corner of the PSprite before applying offsets.
- - halign: Horizontal. Applicable constants are PSPA_<LEFT/CENTER/RIGHT>.
- - valign: Vertical. Applicable constants are PSPA_<TOP/CENTER/BOTTOM>.
- - Default is top left.

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

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

Nearly ready now. Just some final testing needed.
2020-10-25 15:42:11 +01:00
Major Cooke
f9f6e896f3 - Added functionality to WOF_Relative. Untested until the relative code from GetWeaponRect is taken out.
- Fixed A_OverlayPivot carrying over copying of X to Y if Y is zero. This is meant to be exclusive to A_OverlayScale only.
- Added WOF_ZeroY to prevent copying X to Y for A_OverlayScale when desired, mirroring A_SetScale's behavior.
2020-10-25 15:42:09 +01:00
Major Cooke
4a3a5c3877 Replaced PSPF_PIVOTOFFSETREL with WOF_RELATIVE.
The idea behind this is to outright remove the relative position adding from the engine side and let it happen with A_OverlayOffset instead. Still more work to do.
2020-10-25 15:42:09 +01:00
Major Cooke
8f74cebd44 Added code for rotating the PSprite, courtesy of IvanDobrovski.
- However, the XY offsets are relative as a result.This must be made toggleable.
2020-10-25 15:42:09 +01:00
Major Cooke
e5ca3caa6c Setting everything up. 2020-10-25 15:42:08 +01:00
Christoph Oelckers
194824f810 - some fixes for the console.
* it is now possible to switch back to the main intro loop from the fullscreen console.
* do not distort the background of the fullscreen console. Always draw the console on top of what the main loop currently displays with a translucent black overlay.
* do not use the CONPIC for the fullscreen console as it tends to be more of a distraction than an asset when filling the entire screen.
* cleaned up c_console.cpp and moved several pieces of code unrelated to actual console management out of it.
2020-10-25 09:17:31 +01:00
azamorapl
7676ed641c Expose changing sidedef wallpart flags to zscript 2020-10-25 06:27:20 +01:00
Christoph Oelckers
bc2b0a0252 - added flag option menu item by Accensus. 2020-10-24 17:49:56 +02:00
drfrag
36189027b0 - Fixed wrong number of lines displayed in the menu. 2020-10-24 12:34:49 +02:00
Christoph Oelckers
8901929305 - fixed placement of "PAR" text on statistics screen. 2020-10-24 12:23:54 +02:00
alexey.lysiuk
0b2588190a - fixed floating point value truncation warning
Script warning, "gzdoom.pk3:zscript/ui/menu/messagebox.zs" line 128:
Truncation of floating point value

https://forum.zdoom.org/viewtopic.php?t=70258
2020-10-17 17:47:06 +03:00
Christoph Oelckers
4fdbe81a13 - fixed infinite loop with list menus that have no selectable item. 2020-10-17 15:21:20 +02:00
Christoph Oelckers
14e94aa6c1 - added localization fallback handling for the BigFont in menu items and captions. 2020-10-17 14:00:29 +02:00
Christoph Oelckers
0478838a9d fixed side_t::SetSpecialColor.
This never set the needed flags to make the color appear.
2020-10-17 12:28:22 +02:00
Christoph Oelckers
3b45f1ceb8 - reinstated accidentally deleted AddTranslation declaration. 2020-10-17 11:43:49 +02:00
Major Cooke
60f0d35477 Added ThruBits. 2020-10-17 09:51:24 +02:00
Christoph Oelckers
adf306d5b2 - added a new 'Translate' struct which wraps the native methods of 'Translation'.
This is for use in actors where the name 'Translation' is shadowed by a local member variable.
2020-10-17 09:22:27 +02:00
Christoph Oelckers
34c3a851b7 - fixed some floating point truncation warnings. 2020-10-17 09:09:59 +02:00
Christoph Oelckers
824d4bd9e3 - fixed: MenuDelegateBase.DrawCaption did not check the 'drawit' flag. 2020-10-17 08:48:24 +02:00
Christoph Oelckers
e636c8044d - fixed menu sound. 2020-10-16 23:25:28 +02:00
Christoph Oelckers
ef7a7cc39d - moved console command line buffer tab completion into their own files.
- layout fixes in load/save menu and confirmation screen.
2020-10-16 22:57:30 +02:00
Christoph Oelckers
4deb7593b5 - final update of menu code from Raze. 2020-10-16 22:57:30 +02:00
Christoph Oelckers
fa4ab53e7c - script side support for menu transitions. 2020-10-16 22:57:29 +02:00
Christoph Oelckers
62138decfe - use Raze's layout for load and save game menus.
This has a lot less black void on screen.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
b8281f4758 - Backend update from Raze. 2020-10-16 22:57:28 +02:00
Christoph Oelckers
3ea0658449 - split the savegame manager into a game dependent and a reusable game indepenent part.
- added menu/advance sound alias.
2020-10-16 22:57:28 +02:00
Christoph Oelckers
6336e0e168 - resorted base.zs and constants.zs so that all pure engine content but nothing else is in base.zs, 2020-10-16 22:57:27 +02:00
Christoph Oelckers
f99ac8b28b - allow struct extensions in zscript.
This is mainly for splitting the Doom specific content off the main definitions for easier reuse.
2020-10-16 22:57:27 +02:00
Christoph Oelckers
a08d87beb3 - added a customization hook class for the menu.
Currently the only thing it does is abstracting the menu caption, but more can be added here.
Not exposed to modding yet, though, that's for later.
2020-10-16 22:57:26 +02:00
Christoph Oelckers
35ff0a42a6 - restructured the option menu drawer for easier replacement of the caption handler. 2020-10-16 22:57:26 +02:00
Christoph Oelckers
cc9cadfac1 - moved compatibility cruft out of main implementation file. 2020-10-16 22:57:26 +02:00
Christoph Oelckers
0b317b432e - split the Doom specific menu extensions into their own file. 2020-10-16 22:57:24 +02:00
Christoph Oelckers
e0d8241a50 - use the backend's GameTicRate in the scripts where applicable.
This should replace TICRATE globally as it is the backend's actual ticking speed (still locked to 35, though.)
2020-10-16 22:57:24 +02:00
Nash Muhandes
cfbf115c4b
Change A_OverlayTranslation to accept a named translation instead. (#1215)
For more advanced use cases, the Translation member of PSprite can be written to directly.
2020-10-12 11:43:37 -04:00
Nash Muhandes
7bea14e6b2
- Add A_OverlayTranslation to set PSprite translations (#1202)
- Added PSPF_PLAYERTRANSLATED support to the software renderer
2020-10-11 17:14:06 -04:00
Player701
7da9f33cf9 - Fixed truncation warnings in playerdisplay.zs 2020-10-11 09:02:14 +02:00
Player701
4670819ec8 - Fixed a lift in Double Impact E1M7 that could not be used more than twice from the lower area. 2020-10-09 18:40:01 +02:00
Christoph Oelckers
756caede51 - fixed misnamed variable and removed restriction for draw pass in GetFullscreenRect. 2020-10-05 18:32:16 +02:00
Christoph Oelckers
497c474fee - transform mouse coordinates for menu with fullscreen scale 2020-10-05 00:03:00 +02:00
Christoph Oelckers
63a338fd73 - changed display in key binding menu to list all bound keys for an action, not just the first two. 2020-10-04 19:28:20 +02:00
Christoph Oelckers
f3d75469c9 - moved two native player menu functions out of the main menu class.
These manipulate entries of that menu and have no business being called from anywhere else than this menu and its subclasses.
2020-10-04 19:08:14 +02:00
Christoph Oelckers
43eb7d61e7 - helper function for setting up the summary screen. 2020-10-04 15:14:30 +02:00
Christoph Oelckers
f1b0f32786 - add an option to the ListMenu class to draw to a fixed virtual screen size.
This allows proper dimensions in the stock menus and should make menu layout for mods a lot easier because coordinates are more predictable than with the clean factors.
The feature is opt-in for custom content. As long as only stock elements are used, the menu will be able to switch between both on its own, but as soon as custom classes or custom elements are used, the virtual size must be declared explicitly, defaulting to clean scaling.
2020-10-04 15:03:29 +02:00
Christoph Oelckers
acd71f7019 - groundwork for menus with a fixed virtual screen size. 2020-10-04 09:16:20 +02:00
Player701
ffb4c52c96 - Added NORANDOMPUFFZ flag to A_Saw 2020-10-04 08:07:13 +02:00
nashmuhandes
56a387ac82 - Fix weapon bobbing interpolation
There was a visual issue where the weapon bobbing would only start interpolating after the player's movement velocity exceeds a certain value.

(Thanks to @Doom2fan for the solution)
2020-10-04 08:06:34 +02:00
Christoph Oelckers
2016f56a7e - added a new scaling mode to the level summary screen to scale to a given size.
In this mode the clean scaling factors are ignored and content is always scaled to fit the screen as efficently as possible.
For the default summary screens an option was added to use this mode, which is a lot closer to the original look of this screen.
It is not 100% identical because it still factors in the author, if given and long level names that may be broken into multiple lines of text.
2020-10-03 13:32:18 +02:00
Christoph Oelckers
c1e04b29d1 - AActor size reduction
* a few shorter fields were moved into alignment gaps
* the visible angles are now stored as floats. Since these are only used for rendering the loss of precision is negligible, but this shortens AActor by 16 bytes alone.
2020-10-03 08:23:36 +02:00
Nikolay Ambartsumov
a72fdd7e3e Add MaxSlopeSteepness actor property 2020-10-03 07:53:55 +02:00
nashmuhandes
f467e4bc33 Add grayed-out support to sliders 2020-09-30 18:27:50 +02:00
makise-homura
5720a54da4 Add species parameter to A_RadiusThrust
This is the last parameter for A_RadiusThrust() DECORATE function.
If it is omitted or none, then A_RadiusThrust will behave as usual.

If it is set for some species name, it witt thrust only that species.
Of course, these species should be +VULNERABLE to be thrustable.
2020-09-27 13:58:22 +02:00
Christoph Oelckers
dbf2d4d7d7 - backported all new scaling and rotation options for the 2D drawer from Raze.
With proper scaling and viewport support, things should become a lot easier now. The 2D drawer now also can rotate content by arbitrary angles.
2020-09-27 09:17:41 +02:00
Christoph Oelckers
399388d177 - transmit the actual run mode in BT_RUN, because BT_SPEED was poorly designed. 2020-09-26 22:26:26 +02:00
Christoph Oelckers
d304e86354 - fixed: Artiflash is not translatable. 2020-09-26 19:22:17 +02:00
Player701
734b15e412 Exported FLevelLocals::ChangeLevel to ZScript 2020-09-20 23:12:01 +02:00
Rachael Alexanderson
7073bd8f5f - add missing SPAC constants 2020-09-18 19:52:03 -04:00
Marisa Kirisame
58f5c030fe
Add Travelled virtual for PlayerPawn, akin to the same function for Inventory. (#1169) 2020-09-02 06:12:58 -04:00
Marisa Kirisame
e0aa8db616 Add Pre/PostTeleport virtuals, for special handling of actor teleportation. 2020-09-02 12:02:09 +02:00
Maarten Lensink
5ef02df827 Count up to level time only 2020-08-31 18:48:20 +02:00
Maarten Lensink
90f40bd8eb Display own and total in coop alt hud 2020-08-30 19:41:17 +02:00
Rachael Alexanderson
0868f65199 Merge commit 'refs/pull/1168/head' of https://github.com/coelckers/gzdoom
# Conflicts:
#	wadsrc/static/zscript/ui/statscreen/statscreen_coop.zs
2020-08-30 09:43:03 -04:00
Maarten Lensink
34dd9625fc
Display other kills in coop tally screen (#1167)
* Display other kills in coop tally screen

* Showing other when skipping counter
2020-08-30 09:34:53 -04:00
Maarten Lensink
c81370a9ec Showing time when skipping counter 2020-08-30 15:40:26 +03:00
Maarten Lensink
2e0289e501 Making use of String.Format 2020-08-30 15:12:23 +03:00
Maarten Lensink
005f13b853 Time in coop tally 2020-08-30 03:53:05 +03:00
MajorCooke
eaba63e13b
View Angles (Part 1 - Redux) (#1002)
* Added ViewAngle/Pitch/Roll properties to actors.

- These are offsets for camera angles that allow turning the camera without affecting aim or movement direction.
- Added A_SetView<Angle/Pitch/Roll>, which will set the view direction.
- Added ABSVIEWANGLES flag, used to make the view absolute instead of an offset.

* Converted functions to be direct-native.
2020-08-27 13:03:06 -04:00
3saster
5803b78147
Implemented Clock Class (#977)
* Simplified some stuff, made up-to-date

* Dealt with DST problems

* Made SystemTime.Format clearscope, as there is no reason for this function to be limited to the ui
2020-08-27 12:43:50 -04:00
MajorCooke
85759e3bd0
Added A_SpriteOffset. (#895)
- Coordinates work akin to A_OverlayOffset: +X shifts to the right, +Y shifts down.
2020-08-27 12:43:09 -04:00
alexey.lysiuk
c20a7f53c9 - do not report missing camera target if its TID is zero
This handles the case with setting TID of thing to follow after camera spawning, e.g. via ACS

https://forum.zdoom.org/viewtopic.php?t=69690
2020-08-27 11:57:25 +03:00
Nash Muhandes
09a7a0d944
Allow conversation menu cursor graphic replacement. (#1134)
If "graphics/DialogReplyCursor.png" is present, it will be used for the reply cursor. Otherwise, the default ConFont cursor is used.
2020-08-25 11:55:43 -04:00
Sterling Parker
d2a9de0012
Add PlayerSpawned() event (#1118)
* Add PlayerSpawned() event

* add playerspawned to DStaticEventHandler

* Define PlyerSpawned() correctly
2020-08-25 11:54:20 -04:00
Kevin Caccamo
b6f0c4071d
Fix the health bar on Strife status bar (#1080)
* Fix the health bar on Strife status bar

Now, if the player's health is above 100, the green health bar won't be shortened any more.

* Fix the bar properly

Now, the blue and green bars don't overlap. Also, health above 100 goes from right to left, like in Strife: Veteran Edition.
2020-08-08 01:26:59 -04:00
Blue Shadow
7179eaacda - fixed: the minotaur spawned its floor flames regardless of the setting of compat_minotaur
A_MinotaurAtk3 was checking against the CVAR instead of the compatibility flag constant.
2020-07-28 12:25:35 +02:00
Rachael Alexanderson
383f3e5fd6 - change recent /0 fix to conform to UDMF specs 2020-06-25 09:30:52 -04:00
Christoph Oelckers
486e07300c - fixed: Inventory items that are terminated by GoAwayAndDie must be removed from the blockmap and sector lists.
Since they were just scheduled for delayed deletion any map related action they can trigger is unwanted.
2020-06-16 01:11:08 +02:00
Christoph Oelckers
90befff479 - moved out the Doom specific parts from menu.cpp and messagebox.cpp. 2020-06-13 22:43:35 +02:00
Christoph Oelckers
d739587f6b - let blastradius work without an effect actor. 2020-06-12 23:14:58 +02:00
Christoph Oelckers
3a23cc69d6 - since we already got lots of CVAR descriptions from the menu's content, let's use that as CVAR description if none is explicitly provided.
This also necessitated localization support for CVAR descriptions because menu content is multi-language.
2020-06-08 23:37:22 +02:00
Kevin Caccamo
79426c028b Fix Bag of Holding not increasing Firemace ammo capacity 2020-06-08 15:07:31 +03:00
alexey.lysiuk
f58027311e - fixed incomplete disabling of number field menu option
https://forum.zdoom.org/viewtopic.php?t=68075
2020-06-07 15:50:10 +03:00
Alexander Kromm
928c738e19 make various getter and pure-math methods clearscope, and where applicable, const
Original PR: https://github.com/coelckers/gzdoom/pull/532

Status of the original PR

1. Actor
- [already in] deltaangle
- [already in] absangle
- [already in] AngleToVector
- [already in] RotateVector
- [already in] Normalize180
- [already in] BobSin
- [already in] GetDefaultSpeed
- [this PR] GetBobOffset
- [this PR] InStateSequence
- [already in] FindState
- [already in] GetDropItems
- [this PR] DistanceBySpeed
- [this PR] AccuracyFactor
- [not in original PR, for PlayerInfo.isTotallyFrozen] isFrozen

2. PlayerInfo
- [this PR] GetUserName
- [this PR] GetColor
- [this PR] GetDisplayColor
- [this PR] GetColorSet
- [this PR] GetPlayerClassNum
- [this PR] GetSkin
- [this PR] GetNeverSwitch
- [this PR] GetGender
- [this PR] GetTeam
- [this PR] GetAutoaim
- [this PR] GetNoAutostartMap
- [this PR] GetClassicFlight
- [this PR] IsTotallyFrozen

3. C++ methods, to match ZScript:

- [scriptified] AActor::AccuracyFactor() to Actor.AccuracyFactor
- [this PR] AActor::DistanceBySpeed(AActor *, double) — it is a combination of getter and pure math
- [this PR] AActor::Distance2D(AActor *, bool) — called by DistanceBySpeed
- [this PR] AActor::Distance2D(AActor *, double, double, bool) — called by DistanceBySpeed
- [not in original PR, for PlayerInfo.isTotallyFrozen] AActor::isFrozen
2020-06-07 09:39:30 +02:00
Christoph Oelckers
903ca15af2 - manually merged PR for kill count in Requiem MAP23. 2020-06-06 16:25:51 +02:00
Christoph Oelckers
1d1331289a - there is no mace ammo in the bag of holding. 2020-06-06 16:19:11 +02:00
Christoph Oelckers
9f6d244016 - advanced coordinate control for overlays over DTA_Fullscreen images. 2020-06-06 12:51:03 +02:00
Christoph Oelckers
09d163cb2f - fixed: the last frame of the intermission screen wasn't rendered. 2020-06-06 10:38:35 +02:00
Christoph Oelckers
794a53f0c9 - fixed font selection on intermission screen. 2020-06-06 09:39:14 +02:00
Christoph Oelckers
5151dff03c - added a compatibility option for a bad teleporter in the final Strife map. 2020-06-04 14:30:56 +02:00
Christoph Oelckers
328d9c75c4 - redid mouse control for the conversation menu.
Since the page operates on different coordinate systems, the only working way to check the mouse is to store the real coordinates when drawing and check the mouse position against those.
2020-06-04 14:11:36 +02:00
Hugo Locurcio
80c5b4d37b Add a cvar to control weapon bobbing while firing
This simulates a feature found in Crispy Doom, which keeps the
weapon bobbing while firing. This leads to a "smoother" appearance
which may look a bit prettier to some people.

The default value of 0 preserves the old behavior.
2020-05-31 23:12:11 +02:00
Christoph Oelckers
6444a7535c - fixed use of Powerup.Strength in PowerInvisibility.
An integer division made the feature useless.
2020-05-25 16:43:01 +02:00
alexey.lysiuk
1fd2ea46d2 - fixed aiming camera that didn't follow target
https://forum.zdoom.org/viewtopic.php?t=68600
2020-05-18 14:00:48 +03:00
alexey.lysiuk
0631670a66 - restored warning about missing aiming camera target 2020-05-18 13:58:22 +03:00
Major Cooke
079e7ee4e9 Enforce the reflective flag as well. 2020-05-10 10:48:32 +02:00
Major Cooke
b70bc2b152 Fixed an issue where multiple invulnerability powerups could cancel each other out from just one expiring. 2020-05-10 10:48:32 +02:00
Mekboss
4807f4240b Fix MSVS compile bug and add offset parameter for SprayDecal 2020-05-07 09:35:48 +02:00
Mekboss
0e9ca3c850 Replace function variables to DVector3 2020-05-07 09:35:48 +02:00
Mekboss
ba43244764 Add optional direction parameters for SprayDecal and its A_SprayDecal zscript counterpart 2020-05-07 09:35:48 +02:00
alexey.lysiuk
331f3d85d6 - fixed secondary ammo display in strife status bar
https://forum.zdoom.org/viewtopic.php?t=68315
2020-04-30 16:26:12 +03:00
Cacodemon345
4b4ff8dd0e
Fix bouncing missiles not dealing damage when hitting top/bottom (#1068)
* Fix bouncing missiles not dealing damage when hitting top/bottom
2020-04-30 08:55:09 +02:00
nashmuhandes
d563b0339c Apply alpha to the background texture in DrawBar 2020-04-29 21:01:13 -03:00
nashmuhandes
f65a97322e Add an alpha parameter to StatusBar.DrawBar 2020-04-29 21:01:13 -03:00
Skepticist
3377486b8e Added a number of maps that can make use of the MTF_NOCOUNT flag
All but the Hell Revealed case are thanks to Skepticist from Doomworld
2020-04-27 20:30:37 +02:00
PaulyB
573b2958c6 Added MTF_NOCOUNT to spawn flags 2020-04-27 20:30:37 +02:00
alexey.lysiuk
62d4bbbe65 - restored Wads.GetNumLumps() scripted function
https://forum.zdoom.org/viewtopic.php?t=68300
2020-04-21 10:07:24 +03:00
Christoph Oelckers
4fb6b7c7d4 - block off the Substitute function by making it private to the 3 classes that really need it. 2020-04-19 21:08:24 +02:00
Christoph Oelckers
e63871d6f5 - made 3D floor damage transfers optional by adding a new flag bit (2048) and made that mode automatic for the old ZDoom-based light only transfer special. 2020-04-19 13:40:21 +02:00
Major Cooke
a56177f178 Begin TICRATE conversion.
- Moved TICRATE from Thinker to Object in ZScript so status bars have access to it.
2020-04-12 22:43:33 +02:00
Christoph Oelckers
3454314bb1 - separated the Doom specific parts from the compiler backend into a separate file, these parts now get invoked via callback hooks. 2020-04-11 20:20:55 +02:00
Christoph Oelckers
32300f7d26 - use translation slot 0 for reserved content, like font translations. 2020-04-11 20:20:39 +02:00
Christoph Oelckers
80c6d5b276 - renamed more stuff and also moved the Strife teaser voice handling out of the file system. 2020-04-11 14:00:19 +02:00
Erick Tenorio
b2a17dfdc2
- REQUIEM.WAD fixes (#1050)
Fixes for various maps in the Requiem megawad.

Idgames: https://www.doomworld.com/idgames/levels/doom2/megawads/requiem
2020-04-02 05:35:51 -04:00
nashmuhandes
cb6514cc05 Added Actor.CopyBloodColor to copy another existing actor's blood color. 2020-03-23 21:04:59 +01:00
Christoph Oelckers
828cba13a1 - changed translation management so that the fonts also use translation IDs. 2020-03-16 17:23:30 +01:00
Christoph Oelckers
a50a5101bc - fixed another typo. 2020-03-15 15:56:35 +01:00
Christoph Oelckers
0c04cddd28 - allow specifying full palettes in translation definitions. 2020-03-15 10:22:42 +01:00
nashmuhandes
7a141f3aa3 Add help messages for most of the deprecated stuff in ZScript. 2020-03-14 12:56:03 +02:00
alexey.lysiuk
f46e80e2b4 - fixed FLineTraceData scripting definition
https://forum.zdoom.org/viewtopic.php?t=67795
2020-03-14 12:51:06 +02:00
Christoph Oelckers
4201c4fbb5 - fixed A_FireCGun. 2020-03-11 19:47:23 +01:00
Christoph Oelckers
a638cfbd6e - fixed: player_t::GetPSprite cannot guarantee success
As a consequence it must return null in the failure case instead of asserting and all calls to this function must check for the failure case.
2020-03-11 00:56:29 +01:00
Alexander Kromm
3607ffaf66 fix Dictionary and DictionaryIterator memory leaks 2020-03-08 18:46:37 +01:00
Major Cooke
70f9b649aa Changed Pre/Post(Un)Morph to take the other actor and a boolean indicating direction.
- 'current' is true for the actor that is the new body, false for the old body.
2020-03-08 15:29:09 +01:00
Major Cooke
33b343ef31 Added Pre(Un)Morph and Post(Un)Morph functions.
- cls: The other class's cast type which the actor is transitioning from/to.
2020-03-08 15:29:09 +01:00
Rachael Alexanderson
178cf40428 - fix debug assertion, cleanup vestigial A_PlaySound addition 2020-03-03 22:50:01 -05:00
Rachael Alexanderson
3d3a29979b - remove addition from deprecated A_PlaySound 2020-03-02 22:15:37 +01:00
Rachael Alexanderson
1b80b7bf2f - ported over Nash's startTime for A_StartSound 2020-03-02 22:15:37 +01:00
Major Cooke
4cf7c6351d Added A_StopSounds(int chanmin, int chanmax).
- If both channels are 0, completely silences the actor.
- Adapted A_StopAllSounds to call A_StopSounds(0,0);
2020-03-01 19:42:21 +01:00
Major Cooke
55284d46bf Added A_StopAllSounds. 2020-02-29 19:19:51 +01:00
Chronos Ouroboros
bb42d58427 Revert "Added support for standard DamageFactor property on Armor, PowerProtection and PowerDamage items."
This reverts commit e781cb4043.
2020-02-10 15:38:12 -03:00
Major Cooke
e781cb4043 Added support for standard DamageFactor property on Armor, PowerProtection and PowerDamage items. 2020-02-09 19:07:52 +01:00
Major Cooke
39a9a48ad6 Added source, inflictor and damage flags to AbsorbDamage. 2020-02-09 19:07:52 +01:00
Chronos Ouroboros
b453c87b72 Merge pull request #683 from ZippeyKeys12/clearscopeindex
Clearscope Index()
2020-02-08 03:07:06 -03:00
alexey.lysiuk
081cf814b0 - fixed wrong arguments of a few A_StartSound() calls
https://forum.zdoom.org/viewtopic.php?t=67074
2020-01-24 11:57:01 +02:00
3saster
729ff8fa8f Plutonia 2 Compatibility Fixes (#1026)
* Plutonia 2 MAP20 fix

* Plutonia 2 MAP27 fix

* Plutonia 2 MAP05 fix

* Plutonia 2 MAP23 fix

* Plutonia 2 MAP24 fix
2020-01-22 07:47:17 +01:00
alexey.lysiuk
3b8ddb6b9b - fixed resetting of music volume after closing dialogue
https://forum.zdoom.org/viewtopic.php?t=67035
2020-01-20 22:05:15 +01:00
alexey.lysiuk
0d758014dd - exposed Level.MusicVolume to ZScript 2020-01-20 22:05:15 +01:00
Alexander Kromm
1f011cda7f make enter key toggle Option Search mode too 2020-01-16 17:53:28 +01:00
Christoph Oelckers
3e9a43d7f0 - added missing render style constants to ZScript. 2020-01-12 12:02:26 +01:00
Christoph Oelckers
4646273569 - fixed: menu sounds no longer got the CHANF_UI flag. 2020-01-04 19:36:22 +01:00
Christoph Oelckers
c0b9bb6e76 - bumped ZScript version to 4.3 and silenced the remaining deprecation warnings. 2020-01-04 14:25:56 +01:00
Christoph Oelckers
4a67bfcddb - deprecated A_PlaySound for real and transitoned the internal scripts to A_StartSound 2020-01-04 14:25:55 +01:00
Christoph Oelckers
b7e1a35e6f - cleaned up the parameters of A_StartSound.
There were two booleans that could be merged into the flag word.
This also fixes a bug with CHAN_NOSTOP not working for local sounds because it checked the wrong sound source for the playing sound.
2020-01-04 14:25:55 +01:00
Alexander Kromm
60026ba4f2 export dictionary iterator 2020-01-01 08:39:25 +01:00
Christoph Oelckers
f647f3c132 - added the Dehacked extensions from Crispy/Doom Retro.
All empty placeholders for mods to fill in, no new functionality.
2019-12-31 21:13:18 +01:00
Chronos Ouroboros
b4ba7dfec2 Fixed a regression in DoTakeInventory. (the C++ code just ignored the null pointer, but ZScript can't do that) 2019-12-30 12:37:33 -03:00
Alexander Kromm
bd1892120d add Dictionary.Remove(String key) function 2019-12-30 14:57:37 +01:00
Cacodemon345
7fd27bc925 Add PSPF_PLAYERTRANSLATED flag (makes a PSprite layer translated to the user's color) 2019-12-30 13:05:38 +01:00
Christoph Oelckers
d08bb93b84 - elimintated all cases from the ZScript code where channel indices and flags were combined into one parameter and removed all remnants of CHAN_PICKUP. 2019-12-30 09:47:25 +01:00
Alexander Kromm
703686beee export TMap<FString, FString> to ZScript 2019-12-29 13:37:38 +01:00
Christoph Oelckers
77469e0512 - fixed the colorization parser. 2019-12-29 12:11:16 +01:00
Christoph Oelckers
9b9fd35107 - hooked up the colorization feature.
It can now be used from UDMF and ZScript.
To avoid clutter it doesn't allow setting the values individually but requires definition of a data record in TEXTURES.

colorization
{
    DesaturationFactor <float>
    Invert
    AddColor <color>
    ModulateColor <color>
    BlendColor <color>, <mode> [, <alpha>]
}

Mode for BlendColor can be Alpha (normal translucent blending), as well as 3 special values taken from Build engine games: Screen, Overlay and HardLight.
2019-12-29 11:30:37 +01:00
Christoph Oelckers
bb8db9422f - scaled down the texture colorization feature for easier usability.
It makes little sense exposing every minute detail of this through UDMF.
Setting it up that way is far too complicated. Using virtual textures that map to a real texture plus a colorization record should be far easier to use by mappers.
This also doesn't piggyback on the Doom64 color feature anymore and is completely separate, despite some redundancies.
This is still missing the texture definition part, though.
2019-12-20 22:25:10 +01:00
Christoph Oelckers
3a249cb06f - added high level interface to the new properties, i.e. UDMF and ZScript. 2019-12-20 18:02:42 +01:00
alexey.lysiuk
59f09d4893 - move setting status bar defaults to proper location
BaseStatusBar.Init() method isn't suitable for this because it will override SBarInfoWrapper setup done in native code

https://forum.zdoom.org/viewtopic.php?t=66676
https://forum.zdoom.org/viewtopic.php?t=66339
2019-12-18 15:40:39 +02:00
Christoph Oelckers
136ab4f48a - renamed IsActorPlayingSomething to IsActorPlayingSound and made it clearscope. 2019-12-17 09:58:50 +01:00
Christoph Oelckers
e82565373f - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.
2019-12-16 23:52:39 +01:00
alexey.lysiuk
1a19dbb52f - added 'damageonland' property to terrain definition
This property helps to replicate vanilla Hexen behavior of damaging player right after touching lava floor

https://forum.zdoom.org/viewtopic.php?t=66512
2019-12-12 15:14:30 +01:00
Ed the Bat
f1a0345c57 More compat fixes for Swan Fox maps (#982)
* More compat fixes for Swan Fox maps

Found some more issues on maps that already have compat fixes in place

* Missed a dud line

At least I'd commented it out so it was benign, but still...
2019-12-09 07:51:02 -05:00
Rachael Alexanderson
d44a4f428e - add line_horizon on HOM line in Sapphire.wad 2019-12-09 01:56:42 -05:00
Christoph Oelckers
b9582cc98e - continued refactoring on sound code.
The game independent part of the code has been mostly isolated.
2019-12-08 21:22:53 +01:00
Christoph Oelckers
6023b69693 - added null check to the dialogue lines array so that it doesn't crash if the text is never word wrapped. 2019-11-30 22:04:26 +01:00
alexey.lysiuk
e21c9e0ef8 - made most of AltHud class functions virtual
This allows arbitrary customization of alternative HUD
2019-11-26 15:45:18 +02:00
alexey.lysiuk
a7f2df4fef - added ability to set custom alternative HUD
Use GAMEINFO key 'althudclass' to specify own class derived from AltHud

https://forum.zdoom.org/viewtopic.php?t=66422
2019-11-26 15:45:18 +02:00
alexey.lysiuk
20d3752fdd - exported several Wads.GetLump...() methods to ZScript
* GetLumpName() returns 8-characters lump name
* GetLumpFullName() returns full name with path and extension
* GetLumpNamespace() returns lump's namespace
* GetNumLumps() returns total number of lumps

https://forum.zdoom.org/viewtopic.php?t=66285
2019-11-25 17:37:56 +02:00
Ed the Bat
4d8dfd2437 More level_compatibility map fixes
These maps have actors not marked for any game mode (single, cooperative, deathmatch). That works in Zandronum, but GZDoom requires this fix.
2019-11-24 23:55:52 +01:00
Rachael Alexanderson
2e0f7a0979 - fixed a compatibility fix that used 'FlipLine' 2019-11-24 06:42:03 -05:00
Rachael Alexanderson
2489ea2e45 - rename 'FlipLine' to 'FlipLineVertexes' to clarify what it does
- add function 'FlipLineCompletely' which calls both 'FlipLineVertexes' and 'FlipLineSideRefs'
2019-11-24 06:40:01 -05:00
Player701
db1359f98e - Implemented scale parameter for BaseStatusBar::DrawString 2019-11-24 10:45:07 +01:00
Ed the Bat
f941c98c1e Compatibility fixes for Clavicula Nox
https://www.doomworld.com/idgames/levels/doom2/Ports/a-c/clavnoxr

This Vavoom mod was unplayable in G/ZDoom without cheating, due to how swimmable water was implemented. This finally fixes it to work.
2019-11-22 17:47:11 +01:00
Ed the Bat
826c3c4221 Update level_compatibility.zs (#973)
* Update level_compatibility.zs

Map fixes for some older mods

* Formatting changes

Spaces around commas and comment markers, to better match the rest of the file
2019-11-20 14:02:14 -05:00
Rachael Alexanderson
4d66e9a8bb - remove SetLineSideRefs - this actually cannot be exported right now, due to the fact that both sides and lines have backreferences to themselves and their ancestry, and that linedefs have forward references to the sectors on their respective sides.
- made FlipLineSideRefs native, due to the SetLineSideRefs removal
- fixed a bug with FlipLineSideRefs that rendered upper and lower textures incorrectly due to incorrect sector references
- FlipLineSideRefs now should only work on single-sided lines
2019-11-14 14:32:20 -05:00
Rachael Alexanderson
b0751db552 - add native SetLineSideRefs(line, side1idx, side2idx)
- add scripted FlipLineSideRefs(line)
2019-11-14 09:20:16 -05:00
Rachael Alexanderson
21a74dfb13 - new zscript function 'SetLineVertexes(line, v1, v2)'
- scriptify 'FlipLine' completely using new function, remove native version
2019-11-12 08:08:35 -05:00
Marisa Kirisame
12bbb5b6f9 Localize level/author strings on intermission startup, fixes misalignments. 2019-11-10 18:14:42 +01:00
Rachael Alexanderson
1098a13fdb - add 'FlipLine' to 'LevelPostProcessor' 2019-11-10 09:04:30 -05:00
alexey.lysiuk
82c248854d - extended level post-processing with special string arguments 2019-11-10 11:37:02 +02:00
alexey.lysiuk
00ff4083d2 - extended level post-processing with thing IDs 2019-11-10 11:37:02 +02:00
alexey.lysiuk
098b1c5973 - level post-processor cleanup 2019-11-10 11:37:02 +02:00
alexey.lysiuk
c5237ce58f - level post-processor can now add new things 2019-11-10 11:37:02 +02:00
alexey.lysiuk
1e29444152 - extended level post-processing with specials and arguments 2019-11-10 11:37:02 +02:00
alexey.lysiuk
79880b2bd9 - extended level post-processing with editor numbers and angles 2019-11-10 11:37:02 +02:00
alexey.lysiuk
a2a50f34d5 - 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
2019-11-10 11:37:02 +02:00
alexey.lysiuk
59bdebb20a - added generic level post-processing script class
It was extracted from LevelCompatibility class, and native code was moved accordingly
2019-11-10 11:37:02 +02:00
alexey.lysiuk
093901a561 - set meaningful defaults on initialization of BaseStatusBar
https://forum.zdoom.org/viewtopic.php?t=66339
2019-11-09 15:00:03 +02:00
alexey.lysiuk
ad89f1381c - fixed missing fullbright for Berserk
https://forum.zdoom.org/viewtopic.php?t=66307
2019-11-05 15:32:00 +02:00
alexey.lysiuk
857d0175b5 - fixed broken walkthrough of Restoring Deimos MAP07 2019-11-02 14:38:41 +02:00
alexey.lysiuk
10078f519a - 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 11:32:27 +03:00
PaulyB
a601350db6 Scythe MAP22 Compatibility fix 2019-10-21 08:19:17 +02:00
Christoph Oelckers
8b10d231cd - 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-20 14:02:28 +02:00
alexey.lysiuk
1dd08a73ed - fixed broken walkthrough of Skulldash MAP04 2019-10-20 10:00:44 +03:00
alexey.lysiuk
3d557b68b0 - fixed broken walkthrough of Restoring Deimos MAP03 2019-10-20 10:00:44 +03:00
alexey.lysiuk
89ecd7a964 - fixed: pickup flash didn't fade out if player was killed by pickup
https://forum.zdoom.org/viewtopic.php?t=66135
2019-10-16 18:13:01 +03:00
MajorCooke
8bf4522174 Compatibility for Hellbound MAP29 (#951)
* 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.

* Remove the cyberdemons instead of raising the ceilings.
2019-10-11 10:10:37 -04:00
Colton G. Rushton
3a54b10697 Remove Illusory E3M7 key door changes
Removed the red key door compat patch for Illusions of Home E3M7 because a switch (the computer panel, rather) already opened that door as it was, therefore the original change was unnecessary.
2019-10-10 09:04:05 -04:00
Alexander
0c2ed71cdd 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 20:04:44 +02:00
alexey.lysiuk
ef7a356644 - fixed inventory scroll arrows in alternative HUD
https://forum.zdoom.org/viewtopic.php?t=65976
2019-09-29 16:07:25 +03:00
Marisa Kirisame
bcef440511 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 08:19:19 +03:00
PaulyB
0535961a7a 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:02:39 +02:00
PaulyB
223b62aa59 Wrong offset on Fighter's Fist 2019-09-10 18:52:17 +02:00
alexey.lysiuk
31ebeaf833 - removed useless conditions from options menu 2019-09-08 10:01:10 +03:00
alexey.lysiuk
526a576d89 - fixed VM abort when entering search menu
https://forum.zdoom.org/viewtopic.php?t=65833
2019-09-08 09:52:16 +03:00
alexey.lysiuk
37fa2e1b67 - 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 12:20:13 +02:00
Alexander
d6396e79fb 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-08-31 21:34:09 +02:00
PaulyB
7de1b796ba Level compatibility additions for Scythe 2 and Hell Revealed 2019-08-31 20:29:39 +02:00
PaulyB
78c5a8ae92 Fix typo in Heretic status bar 2019-08-31 03:46:05 -04:00
Colton G. Rushton
07f8b7f61a Fix ILLUSORY/ilusory1 E3M7 some more (#918)
* Fix ILLUSORY/ilusory1 E3M7 some more
2019-08-28 18:16:24 +02:00
Colton G. Rushton
5a3441a2c6 Fix tag for ILLUSORY/ilusory1 E3M4 patch (#917)
The tag was set incorrectly in the E3M4 patch for Illusions of Home, and this PR fixes that. This ties into #916.
2019-08-27 13:49:22 +02:00
Colton G. Rushton
d80816a0d9 Fix issues in ILLUSORY/ilusory1 (#916)
* Fix issues in ILLUSORY/ilusory1

Added some compatibility patches for Illusions of Home E1M6, E3M4, and E3M7 (this fixes minor issues to all of these maps)
E1M8 requires a MAPINFO of some sort to have work correctly in the state it's in, unfortunately.

* Minor tweak to ILLUSORY/ilusory1 fix

Didn't need the activation reset as it was already set to begin with.

* Made the fixes consistent

Made the fixes consistent with the rest of the fixes for the other WADs already in this file
2019-08-27 12:19:38 +02:00
Rachael Alexanderson
9456eeb8ec - oops, this didn't get through 2019-08-23 05:56:10 -04:00
PaulyB
179e526981 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-23 05:54:39 -04:00
Marisa Kirisame
14dc288f22 Allow custom status bars to override notifications, centered prints and chat prompt. 2019-08-19 11:19:36 +02:00
alexey.lysiuk
1bd249677b - fixed core script warnings with developer CVAR set to 2 or greater
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 159:
Truncation of floating point value
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 161:
Truncation of floating point value
2019-08-13 14:48:40 +03:00
Rachael Alexanderson
c029f02b90 - add missing break statements 2019-08-11 03:23:50 -04:00
Rachael Alexanderson
9c3cdd1462 - 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 03:22:00 -04:00
Christoph Oelckers
cf74118d53 - 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 09:00:29 +02:00
alexey.lysiuk
07a2331ca3 - exposed Append() method to ZScript dynamic array
https://forum.zdoom.org/viewtopic.php?t=65570
2019-08-10 16:37:40 +03:00
Christoph Oelckers
34c2c65bb6 - 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 08:26:55 +02:00
Christoph Oelckers
3b4184816b - do not blur the background for portrait-less conversations. 2019-08-09 15:22:52 +02:00
Christoph Oelckers
bf9c5849e8 - merged all useful parts from https://github.com/coelckers/gzdoom/pull/725 2019-08-08 08:09:31 +02:00
Christoph Oelckers
352d5d098d - fixed mouse coordinate checks when using the generic VGA font with Strife conversations. 2019-08-07 20:24:45 +02:00
Christoph Oelckers
43041c21d8 - made author names work with title patches.
Most importantly, specifying a patch may optionally disallow showing the autor's name - this is for cases where a styled patch gets used for English but text-based translations of the map name should still be possible.
2019-08-07 12:09:47 +02:00
Zain Aamer
3447904541 Clearscope Index()
For Vertex, Side, Line and Sector
2019-08-06 12:32:24 -05:00
Christoph Oelckers
be0478972a Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-08-05 19:15:16 +02:00
Blue Shadow
5abffabb56 - moved GetSaveAmount() from the base armor class 2019-08-03 11:14:03 +03:00
Blue Shadow
479a992a3e - fixed buggy ArmorFactor behavior when set to a value other than 1.0 2019-08-02 15:10:06 +03:00
Christoph Oelckers
3e99216967 - 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.
2019-08-02 09:11:40 +02:00
Christoph Oelckers
154af34cd9 - added an option to always display the log and the subtitles with the generic font.
If this is on it will disable the status bar's pop screen for the log and always use the HUD overlay instead.
2019-07-31 17:02:39 +02:00
Christoph Oelckers
c36dc137ba - 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.
2019-07-30 10:53:02 +02:00
Christoph Oelckers
1dd98a5c89 - when using the VGA font, confine the speaker's text in Strife dialogues to the backdrop picture.
This looks a lot better. Unfortunately for the regular SmallFont this would severely reduce the available space for the text so it isn't done here, even though for shorter texts the formatting would look better as well.
2019-07-27 09:35:45 +02:00
Christoph Oelckers
86d2742798 - allow switching the Strife conversation screen to the VGA font for all languages by a CVAR.
This is for readability purposes because the styled SmallFont may be problematic for some players.
2019-07-26 20:23:46 +02:00
alexey.lysiuk
222dfd17b7 - 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 20:11:42 +02:00
Christoph Oelckers
b4aacb7be5 - 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-25 20:42:41 +02:00
Major Cooke
15eabfd055 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.
2019-07-24 20:15:24 +02:00
Christoph Oelckers
95349822c4 - for the map name on the automap, fall back to the original SmallFont if the actual one cannot print it.
This is mainly for mods which provide a new font but do not alter the automap texts, a good example is Hell Revealed 2.
2019-07-17 20:28:07 +02:00
Christoph Oelckers
b360f04e28 - 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-17 20:08:43 +02:00
alexey.lysiuk
9603a09f82 - added PSprite.bMirror flag to ZScript class definition
https://forum.zdoom.org/viewtopic.php?t=65372
2019-07-17 12:20:05 +03:00
Christoph Oelckers
c64aedb262 - reimplemented the Harmony status bar in ZScript
* the Doom status bar has been partially virtualized to allow overriding specific parts of it, most notably the ammo display
* the internal Harmony status bar has been removed because it only works with the now disabled Dehacked patch.
* the SBARINFO definition has been removed, instead it uses a ZScript-based status bar now which overrides the ammo display to use the new ammo types instead.
2019-07-17 00:36:38 +02:00
Rachael Alexanderson
f7c110698f - add +ZDOOMTRANS to BFGExtra in order to force classic transparency per user setting. 2019-07-16 16:52:30 -04:00
Christoph Oelckers
cd7438c02e - made some adjustments to the text spacing on the level summary screen.
With the extended fonts some parts here caused too large gaps.
2019-07-14 12:44:42 +02:00
Christoph Oelckers
32dd6b049c - offset text in statscreen if it gets too wide.
German and Hungarian were creating problems in Hacx here, others could also become too wide with huge amounts of monsters.
2019-07-14 10:03:50 +02:00
Christoph Oelckers
2fd170b06e - allow setting the font used for the status screen's content text.
This was needed to give Hacx's screen the proper colors.
2019-07-14 09:08:19 +02:00
Christoph Oelckers
8b4d85f0d7 - tested and fixed the attachable lights. 2019-07-07 09:50:02 +02:00
Christoph Oelckers
5df8919b90 Merge branch 'master' into userlights 2019-07-07 08:11:09 +02:00
Major Cooke
b66b4ae0ec 'Fixed' spacing. 2019-07-03 18:01:45 +02:00
Major Cooke
7b698b4a0e Added RenderUnderlay.
- Works exactly like RenderOverlay, but is drawn behind the status bar/huds instead.
2019-07-03 18:01:45 +02:00
Christoph Oelckers
1dcbe43d95 - User definable dynamic lights
This hasn't been tested yet!
2019-06-28 12:35:42 +02:00
alexey.lysiuk
d5d509ea10 - 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-16 15:05:36 +02:00
alexey.lysiuk
cc5bff6c9c - 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-16 15:05:36 +02:00
Alexander
c161635cca localize custom menu titles in option search results 2019-06-12 17:37:29 +02:00
Gutawer
324a720d56 - added a linear transformation system to Shape2D so that things like rotations and scales can be changed without having to clear and push a large amount of data 2019-06-08 14:05:32 +02:00
alexey.lysiuk
5c0562ca7a - check for presence of fonts in message box menu
https://forum.zdoom.org/viewtopic.php?t=64958
2019-06-07 11:49:01 +03:00
Blue Shadow
b026b7a880 - fixed PlaySpawnSound call in A_ThrowGrenade 2019-06-05 11:28:59 +03:00
Christoph Oelckers
61ead74492 - made the colorset names and the texts in the color picker localizable. 2019-05-19 18:57:39 +02:00
Christoph Oelckers
04334aa0fe - implemented subtitle display for Blackbird's voiceover messages. 2019-05-19 12:16:42 +02:00
alexey.lysiuk
7298ba2707 - do not show par time when it's zero
https://forum.zdoom.org/viewtopic.php?t=64551
2019-05-13 11:04:55 +03:00
player701
32109a75a7 - Fixed random generation of friendly obituaries 2019-05-04 21:06:09 +02:00
alexey.lysiuk
6d1a85af3c - fixed deprecation warnings in core scripts
Script warning, "gzdoom.pk3:zscript/ui/statscreen/statscreen.zs" line 24:
Call to deprecated function CharAt
Script warning, "gzdoom.pk3:zscript/ui/statscreen/statscreen.zs" line 24:
Accessing deprecated function CharAt - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 64:
Call to deprecated function ToLower
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 64:
Accessing deprecated function ToLower - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 65:
Call to deprecated function ToLower
Script warning, "gzdoom.pk3:zscript/ui/menu/search/query.zs" line 65:
Accessing deprecated function ToLower - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 202:
Call to deprecated function CharAt
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 202:
Accessing deprecated function CharAt - deprecated since 4.1.0
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 235:
Call to deprecated function CharAt
Script warning, "gzdoom.pk3:zscript/ui/menu/conversationmenu.zs" line 235:
Accessing deprecated function CharAt - deprecated since 4.1.0
2019-04-28 11:26:01 +03:00
Christoph Oelckers
03828bb759 - removed the leftovers of the removed savedamount variable. 2019-04-26 12:00:58 +02:00
Christoph Oelckers
3bb42aaff7 - removed the MaxAmount fudging from MaxHealth. 2019-04-26 09:58:58 +02:00
Christoph Oelckers
23e2b1c0c0 - use Obituary for both Demon and Spectre. 2019-04-23 10:49:18 +02:00
Christoph Oelckers
5122aa0571 - fixed the internal name of the original SmallFont to be different from the real SmallFont. This necessitated creating a separate font object, even if it has the same contents.
- added an OriginalBigFont as well.
2019-04-23 09:34:28 +02:00
Christoph Oelckers
e0d57e5464 - added smarter font replacement logic to the confirmation screen. 2019-04-23 08:47:06 +02:00
Christoph Oelckers
8357f2b16b - re-enabled code block commented out for testing. 2019-04-22 18:52:21 +02:00
Christoph Oelckers
6f3982865f - refinement of font substitution logic. 2019-04-22 10:23:28 +02:00
Christoph Oelckers
e0a0be4f7b - added a CanPrint function to FFont and used that to handle the statistics display on the automap HUD to only replace the font when actually needed, not based on the language. 2019-04-22 09:08:43 +02:00
Christoph Oelckers
13841655aa - add color remapping for NewSmallFont as well. 2019-04-21 10:49:27 +02:00
Christoph Oelckers
fcbde757c9 - do not mix game-specified fonts with the extensions for the stock version.
This generally doesn't look good when different colors are mixed or the mismatch in color ranges causes bad translations to be generated.
2019-04-21 08:09:31 +02:00
Christoph Oelckers
cbc3bc500f - fixed inverted logic for displaying the generic log in Strife. 2019-04-20 09:04:31 +02:00
Christoph Oelckers
23412a4f28 - fixed a few developer warnings. 2019-04-19 09:08:31 +02:00
Christoph Oelckers
a5d743cc3b - fixed: The color sliders in the player setup menu may not be selected when inactive. 2019-04-19 07:50:52 +02:00
Christoph Oelckers
68597da75d - removed debug output. 2019-04-19 07:24:23 +02:00
Christoph Oelckers
35186e9fd7 - adjustments to the player menu so that the display isn't cut off on the smallest screen sizes. 2019-04-18 00:16:09 +02:00
Christoph Oelckers
2a329950f6 - fixed menu caption for languages which use the VGA font. 2019-04-17 23:40:05 +02:00
Christoph Oelckers
c45c7cdb4b - reimplemented 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.
2019-04-14 14:03:24 +02:00
Player701
ad23726cb6 - Fixed conditions tested for when checking whether "Force respawn" or "Respawn protection" dmflags are enabled 2019-04-14 05:40:23 -04:00
Player701
8ab6747d77 - Added "const" qualifiers to the new UTF-8-aware string methods 2019-04-13 22:13:52 +02:00
Player701
747906730c 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-04-13 18:10:58 +02:00
Christoph Oelckers
d73f8faafa - added monospacing support to Screen.DrawText and its native counterparts. 2019-04-13 12:17:38 +02:00
Christoph Oelckers
3938119192 - added CharUpper and CharLower functions to ZScript.
These, like MakeUpper and MakeLower, use the internal Unicode case conversion tables.
2019-04-13 10:26:55 +02:00
Christoph Oelckers
f7561f25d6 - 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-04-13 10:12:33 +02:00
Christoph Oelckers
bcf7bc8d34 - 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-04-13 09:31:36 +02:00
Christoph Oelckers
c0b322c51a - make the switch between game and generic fonts automatic by adding a key value to the language table 2019-04-12 00:20:42 +02:00
Christoph Oelckers
1090c4b345 - added generic font support to the dialogue system. 2019-04-11 18:56:13 +02:00
Christoph Oelckers
9f5b0001fe - handle generic fonts on the summary screen. 2019-04-11 02:00:51 +02:00
Christoph Oelckers
9fddc38030 - allow all list menu items to fall back on the Unicode font for languages which are not supported by the bitmap font.
This allows the primary menus to display Korean text without any further special handling.
2019-04-10 22:25:31 +02:00
Christoph Oelckers
b423caa8d6 - removed the rather pointless hud_althudfont CVAR and the tiny piece of code it activated.
This was meant for using the VGA font in the alternative HUD but this never went beyond the Kill/Item/Secret display which isn't useful for localization.
2019-04-10 21:57:24 +02:00
Christoph Oelckers
5e5780dd65 - allow using the VGA font for map name display on the alternative HUD. 2019-04-10 21:21:33 +02:00
Christoph Oelckers
31d1f8ba50 - fixed redundant map name display on alternative HUD's automap HUD. 2019-04-10 20:56:24 +02:00
Christoph Oelckers
1b077c560d - removed unused mSmallFont. 2019-04-10 20:43:00 +02:00
Christoph Oelckers
9e096c62fd - allow the automap HUD to use the VGA font. 2019-04-10 20:39:15 +02:00
Christoph Oelckers
939815d6bf - added VGA font support to the MessageBoxMenu class
This is optional, of course.
2019-04-10 01:33:02 +02:00
Christoph Oelckers
f1105f2e13 - further work on generic HUD
Some reorganization to avoid code duplication plus making the log screen capable of using the generic font. This also means that the popup for the log in Strife's status bar will be disabled when in generic mode - this popup with its special font would be a bit problematic.
2019-04-10 00:45:32 +02:00
Christoph Oelckers
7a01b6b0d4 - use Unicode font for deathmatch summary screen to bring it in line with the coop version. 2019-04-09 20:15:40 +02:00
Christoph Oelckers
aed9c458db Revert "- initial layout for new player setup menu."
This reverts commit 1567bc5911.
2019-04-05 12:25:16 +02:00
Christoph Oelckers
2a6cdc7a6a Merge branch 'master' of https://github.com/coelckers/gzdoom 2019-04-04 17:40:52 +02:00
Christoph Oelckers
55e00f350b - 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-04-01 00:27:43 +02:00
Christoph Oelckers
1567bc5911 - initial layout for new player setup menu. 2019-03-31 13:34:55 +02:00
Christoph Oelckers
4b40e266f1 - use the proper virtual methods for setting and retrieving the string in OptionMenuItemTextField.
Without this the class cannot be properly subclassed.
2019-03-31 10:33:46 +02:00
Christoph Oelckers
a08cc2b477 - switched the input grid to the new font. Also use the same scale as the rest of the menus. 2019-03-31 10:08:09 +02:00
Marisa Kirisame
659de5d2d8 Silence "truncation of floating point value" warnings in gzdoom.pk3. 2019-03-31 09:50:59 +02:00
Christoph Oelckers
8919a991a7 - fixed: The on-screen keyboard did not properly delete the last character of the input string. 2019-03-31 09:48:15 +02:00
Christoph Oelckers
a768500afa - do not use CalcIndent for 320x200. 2019-03-31 09:02:11 +02:00
Christoph Oelckers
f5ad144934 - fixed: air_finished was sometimes checked against level.time, sometimes against level.maptime.
For a per-level effect it needs to always check against level.maptime.
2019-03-30 18:52:32 +01:00
Christoph Oelckers
f48e0280d8 - fixed: OptionMenuItemSafeCommand did not allow unsafe commands. 2019-03-30 09:25:48 +01:00
player701
2766b5ab2b - Fixed misplaced vertex on Community Chest MAP16 2019-03-28 18:55:32 +01:00
alexey.lysiuk
c4ef8ce465 - fixed level progression of titan-426 map on easy skill
https://www.doomworld.com/idgames/levels/doom2/Ports/s-u/titan426
2019-03-27 13:18:33 +02:00
Rachael Alexanderson
1dd0909ec2 - fix a missing texture in strife map21 2019-03-27 06:57:41 -04:00
Christoph Oelckers
0341a3d75b - 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.
2019-03-26 00:38:54 +01:00
Rachael Alexanderson
ddc67fb1bc - fix missing texture in Strife MAP15 2019-03-25 23:54:01 -04:00
alexey.lysiuk
6c91d15b0a - fixed adjustment of options menu slider with mouse
https://forum.zdoom.org/viewtopic.php?t=64063
2019-03-25 12:59:36 +02:00
Christoph Oelckers
dc67355e95 - 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.
2019-03-24 12:42:57 +01:00
Christoph Oelckers
6d82e6f5f5 - 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-03-20 21:50:27 +01:00
Christoph Oelckers
0b84d6b204 - added a compatibility handler for a badly constructed crossbeam bridge in Unholy Realms MAP17. 2019-03-20 21:39:53 +01:00
Christoph Oelckers
9f6b8cd323 - fixed spacing of Strife's merchant's texts. 2019-03-20 00:49:00 +01:00
Christoph Oelckers
cdc109fbc0 - fixed space calculations for option menu sliders. 2019-03-20 00:01:12 +01:00
Christoph Oelckers
6e0e221804 - 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-03-19 19:54:46 +01:00
Christoph Oelckers
0abd9d4aec - fixed slider scaling. 2019-03-19 18:50:38 +01:00
Christoph Oelckers
a1acc4adc4 - 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-03-19 17:46:59 +01:00
Christoph Oelckers
cda248df66 - localized some user-facing texts that were still string literals. 2019-03-19 00:37:43 +01:00
Christoph Oelckers
8f93dcc884 - fixed the option menu indentation.
This was yet another piece of code that essentially was unworkable thanks to the limited screen space with the old bitmap fonts.
With the new font there is enough screen space to do this properly.
2019-03-18 10:54:26 +01:00
Christoph Oelckers
54f5076b0f - fixed option menu selector and slider bar positioning. 2019-03-17 22:00:28 +01:00
Christoph Oelckers
13f3bf2331 - add an option to print the kill, item and secret stats on the alternative HUD with the NewSmallFont.
This has to be set in the console, the default is still the regular small font. Mainly added because some mods have really hard to read fonts where it is not easy to decipher the numbers.
2019-03-17 21:35:33 +01:00
Christoph Oelckers
b839da45ec - Found two more unlocalized texts in the color picker. Due to space constraints a proper localization is not possible so these were replaced by a non-text. 2019-03-17 20:56:49 +01:00
Alexander
dbb93d6c08 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-03-17 20:28:38 +01:00
Christoph Oelckers
b515ac662e - cleaned up the coop summary screen.
This was one of the pieces that suffered badly from the proportions of the game provided SmallFonts, so now it uses the NewSmallFont.
2019-03-17 20:28:12 +01:00
Christoph Oelckers
478eef5628 - fixed positioning of "no files" message on load game screen. 2019-03-17 19:10:25 +01:00
Christoph Oelckers
95adbc58a8 - fixed the spacing for the sliders.
- moved the scroll indicators in the menu to the right and use a brighter color for them - the old ones were only barely visible.
2019-03-17 18:32:55 +01:00
Christoph Oelckers
a6051c8231 - moved the flag display in the gameplay and compatibility menus down below the headline. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
59f0a377d4 - consolidate the dependencies on the font in the option menu. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
2227c15010 - create a second font based on the VGA glyphs that is stylistically more similar to the SmallFont and use that for the option menus. 2019-03-17 18:32:48 +01:00
Christoph Oelckers
2e260c6367 - use the new console font for the options menu to gain space and better character support.
So far this is just an experiment, this needs a bit of work to become viable.
2019-03-17 18:32:47 +01:00
Alexander
73d81d3983 added option search menu 2019-03-16 18:40:13 +01:00
Christoph Oelckers
04281d4a0b - fixed positoning issues in the load/save menu. 2019-03-15 20:22:40 +01:00
Rachael Alexanderson
fd4295b38c - add some /0 guards in the load/save menu to prevent VM aborts 2019-03-11 20:19:40 -04:00
Christoph Oelckers
c0d333ee56 - adjusted the script-side MidPrint calls to honor the con_midconsolefont CVAR. 2019-03-11 22:44:28 +01:00
Christoph Oelckers
8b4690bc44 - 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-03-11 21:21:37 +01:00
Christoph Oelckers
22cf35c1c7 - reworked the load/save menu to use the new console font.
Parts of this menu suffered badly from lack of screen space to convey the intended information due to the oversized fonts. With the new font this is a lot less problematic (unless using 320x200, of course)
2019-03-11 20:59:43 +01:00
Christoph Oelckers
5a891f3b0a - fixed color of status screen text. 2019-03-09 17:50:23 +01:00
Christoph Oelckers
392ba7ed2e - properly construct the reply texts for Strife's merchants. 2019-03-09 13:34:47 +01:00
Sterling Parker
cabe0c583e Add LookScale property
As requested by @coelckers.
2019-03-07 21:22:33 +01:00
Sterling Parker
ae1a1df02d Add LookScale variable on weapon
This variable allows a weapon to set a custom look sensitivity multiplier without fiddling with FOVScale / DesiredFOV hacks.
2019-03-07 21:22:33 +01:00
Alexander
77cb9ae866 added MakeScreenShot and MakeAutoSave functions to FLevelLocals 2019-03-04 19:16:51 +01:00
Major Cooke
6327734659 Added CanTouchItem virtual.
- Allows an actor with +PICKUP flag to determine if it can pick up specific items or not.
2019-03-04 13:15:27 +01:00
Christoph Oelckers
735e1d1a44 - allow localization of the fallback string "Person".
The corresponding text is in the translation spreadsheet which isn't part of the repo yet.
2019-03-03 09:16:21 +01:00
Christoph Oelckers
5682b1b5bb -corrected text placement on load+save menu. 2019-03-02 16:03:56 +01:00
Christoph Oelckers
0febe20a08 - fixed: Unmorphing a monster did not clear its UNMORPHED flag. 2019-03-02 13:15:38 +01:00
Christoph Oelckers
805cf6c098 - moved the sprite box on the player menu up a bit because this was badly overlapping with some long texts in most languages. 2019-03-02 12:20:58 +01:00
Christoph Oelckers
cad2f49ceb - use BigUpper font for option menu captions. 2019-02-28 22:19:53 +01:00
Major Cooke
b48f7da43e Renamed to musplaying. 2019-02-28 18:47:28 +01:00
Major Cooke
210af0d414 Exported MusPlayingInfo to ZScript.
- Allows grabbing the currently playing song, base order, and loop properties.
2019-02-28 18:47:28 +01:00
Christoph Oelckers
b542d1371d - reorganized the ZScript content in gzdoom.pk3 and changed the files' extensions to something unique for easier syntax highlighting. 2019-02-23 12:08:27 +01:00
Christoph Oelckers
48fcdacf06 - more work on graphics substitutiion
* added a CVAR that sets how localizable graphics need to be dealt with.
* pass the substitution string to OkForLocalization so that proper checks can be performed.
* increased item spacing on Doom's list menus to 18 from 16 pixels, because otherwise the diacritic letters would not fit. 20 would have been more ideal but 18 was the limit without compromising its visual style
* added a second text-only main menu because here the spacing cannot be changed. Doing so would render any single-patch main menu non-functional. So here the rules are that if substitution takes place, it will swap out the entire menu class.
* fixed some issues with the summary screen's "entering" and "finished" graphics.
2019-02-21 00:35:27 +01:00
Christoph Oelckers
a0c10df387 - made some adjustments so that the BigFont works as intended.
The auto-calculated height of 24 is too tall, this requires a manual setting here. Also fix the space calculations for the "finished" graphic.
2019-02-21 01:13:42 +01:00
Christoph Oelckers
7ea2f135df - did not save the latest changes. 2019-02-21 00:23:49 +01:00
Christoph Oelckers
8bdbd2e915 - fixed layout of summary screen. 2019-02-21 00:16:48 +01:00
Christoph Oelckers
6a742f8d34 - 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-02-20 20:20:06 +01:00
Christoph Oelckers
74f5211046 - fixed accidental commit of incomplete test code. 2019-02-20 18:54:29 +01:00
Christoph Oelckers
a6a091c83a - reworked summary screen to use consistent contents, either all patches or all text but not mixed 2019-02-20 00:44:17 +01:00
Christoph Oelckers
9f59a84a37 - allow text substitution for StaticPatch items in ListMenus 2019-02-20 00:43:31 +01:00
Christoph Oelckers
5e7fb16d05 - preparation work for substituting the menu and intermission screen text graphics for localization 2019-02-19 01:22:12 +01:00
Christoph Oelckers
91206f12be - changed zstrformat to allow %c to emit non-ASCII characters as UTF-8. 2019-02-19 00:27:47 +01:00
Christoph Oelckers
b29975503d - 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.
2019-02-19 00:08:23 +01:00
Christoph Oelckers
aa550310f6 - 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.
2019-02-15 00:29:24 +01:00
Christoph Oelckers
d39a624942 - 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-02-16 22:57:02 +01:00
Christoph Oelckers
deb233677e - 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-02-16 21:29:46 +01:00
Christoph Oelckers
914818cb88 - fixed run health clamping.
This didn't scale the move factors properly.
2019-02-13 20:12:13 +01:00
Christoph Oelckers
6ff6a6af00 - 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-02-13 14:59:55 +01:00
alexey.lysiuk
d4d010ac32 - added compatibility flag for buggy CheckSwitchRange behavior
https://forum.zdoom.org/viewtopic.php?t=63008
https://forum.zdoom.org/viewtopic.php?t=63650
2019-02-11 17:57:03 +01:00
Christoph Oelckers
3c0c076226 - 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-02-09 09:25:29 +01:00
Christoph Oelckers
3d3f260137 - exported LevelLocals's compatibility flags to scripting and fixed all places where access to combined compatibility flags is needed. 2019-02-09 09:17:57 +01:00
Major Cooke
acc510dfb3 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-02-08 20:07:49 +01:00
Christoph Oelckers
5af5717cf1 - 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-02-07 09:42:51 +01:00
Christoph Oelckers
a0042fd653 - removed bad character from A_CustomPunch definition. 2019-02-04 14:08:34 +01:00
Christoph Oelckers
53162a8a5c Merge branch 'master' into new_level_refactor
# Conflicts:
#	src/am_map.cpp
2019-02-03 09:20:13 +01:00
Christoph Oelckers
25071e26e5 - fixed: The CheckEnvironmant call in PlayerThink can already invalidate the PlayerPawn so even the calls to CheckUndoMorph and CheckUse need to get the pawn through the PlayerInfo. 2019-02-03 09:11:33 +01:00
Nemrtvi
4af80fa43b Fixed “Finished:” and “Now entering” in Heretic
The text file
gzdoom/wadsrc/static/zscript/statscreen/statscreen.txt
is set to use strings called “$ENTERING” and “$FINISHED”, located in the language files, in intermission screens between levels in Heretic. However, these strings are named incorrectly in the language files, instead being written as “$WI_ENTERING” and “$WI_FINISHED” for some reason I’m unaware of. After renaming the original script, the ingame text shows up through what is written in the language files, as intended.

On a miscellaneous note: in GZDoom, the text between levels in Heretic says “Entering:”. In the DOS version, it says “Now entering:”. This is accurately reflected in the English language file, though, and thus faithful to the original when displayed ingame.
2019-02-02 18:29:33 +01:00
Christoph Oelckers
1dbbb56a1b Merge branch 'master' into new_level_refactor
# Conflicts:
#	src/p_user.cpp
2019-02-02 16:58:30 +01:00
Christoph Oelckers
235c4c0499 - allow localization of Strife's log text. 2019-02-02 16:56:58 +01:00
Christoph Oelckers
45dc9a7b47 - renamed the level variables.
currentUILevel is now primaryLevel.
For ZScript, currentVMLevel was added. This is also exported as 'level' and will change as needed.
This also means that no breaking deprecations will be needed in the future, because in order to sandbox a level only 4 variables need to be handled: level, players, playeringame and consoleplayer.
The remaining global variables are not relevant for the level state.

The static 'level' has been mostly removed from the code except some places that still need work.
2019-02-02 00:25:51 +01:00
Major Cooke
695eced81a Added Inventory UNCLEARABLE flag.
- Allows prevention of ClearInventory without stopping it from being dropped.
2019-02-01 18:29:31 +01:00
Christoph Oelckers
ff903da19a Merge remote-tracking branch 'remotes/origin/master' into new_level_refactor 2019-01-31 20:43:24 +01:00
Major Cooke
b1c508fa6c 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-01-31 19:05:44 +01:00
Erick Tenorio
b9e71d6db3 - DOOM.WAD fixes 2019-01-31 19:03:57 +01:00
Christoph Oelckers
cfa35f548f - make the file name of savegame nodes read only. 2019-01-31 17:57:39 +01:00
Christoph Oelckers
68bff17d63 - this was missing 2019-01-31 03:29:45 +01:00
Christoph Oelckers
ddab2c3e78 - 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.
2019-01-31 03:29:25 +01:00
Christoph Oelckers
b12de04258 - fixed the remaining deprecation warnings in the base script.
All these required access to the sector's Level reference.
The remaining references to the global 'level' variable are all in deprecated functions which is ok.
2019-01-30 00:58:44 +01:00
Christoph Oelckers
6451b7d592 - moved the combined compatibility flags into FLevelLocals. 2019-01-29 19:28:22 +01:00
Christoph Oelckers
14101fa447 - health groups and software rendering textures freed of 'level'
Edited cherry-pick of an older commit.
2019-01-29 16:06:17 +01:00
Christoph Oelckers
f9239f6e0f - added a compiler-side workaround for the formerly static methods of FLevelLocals.
LevelLocals on the left side of.a function call will now always be remapped to 'Level', which will either remap to the same-named instance variable or the global deprecated one.

In a few degenerate cases where there is a conflicting local variable named 'level' it may error out but that is unavoidable here but this is very unlikely.
2019-01-29 02:04:31 +01:00
Christoph Oelckers
60873bc5d6 Moved the PointInSector functions into FLevelLocals 2019-01-29 01:30:41 +01:00
Christoph Oelckers
259ae41774 - 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.
2019-01-28 20:15:48 +01:00
Christoph Oelckers
3721771934 - forgot to save this. 2019-01-28 18:44:42 +01:00
Christoph Oelckers
3c14a7db76 - use map time, not hub time for map actions. 2019-01-28 18:42:56 +01:00
Christoph Oelckers
66695ac6a0 - made most of the player spawn spot handliing functions members of FLevelLocals. 2019-01-28 02:44:05 +01:00
Christoph Oelckers
b4acb857ad - the final batch of easy level replacements.
What's left will require a bit more work...
2019-01-27 21:59:19 +01:00
Christoph Oelckers
73ea59179c - fixed some deprecation warnings about 'level'. 2019-01-27 14:48:35 +01:00
Christoph Oelckers
84baa5bb4d - deprecated the global 'level' variable.
This will currently output 9 warnings for the UDMF property getters. To silence these a bit more work is needed.
2019-01-27 14:33:02 +01:00
Christoph Oelckers
05830455e7 - made the automap an object.
This simplifies handling a lot because it allows to make the level the owner of its map.
2019-01-26 15:21:20 +01:00
Christoph Oelckers
10feb446fa - made most of the EV_* functions part of FLevelLocals. 2019-01-26 08:28:45 +01:00
Christoph Oelckers
4e052f2857 - use a separate variable pointing to the current level for the UI code.
UI always runs on the primary level, so this does not need the ability to operate on multiple levels. Additionally, this can later be set to null when running play code so that scope violations result in an abort.
2019-01-25 18:31:40 +01:00
Christoph Oelckers
bf3dc2f99b Merge branch 'rolling_back' into new_level_refactor 2019-01-25 00:57:01 +01:00
Christoph Oelckers
b2ee99c7cc - 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.
2019-01-25 00:56:15 +01:00
Christoph Oelckers
3cef56249d - moved most functions of portals.cpp into FLevelLocals.
Much of this is used during level init and needs to be independent of the current level.
2019-01-25 00:30:55 +01:00
Christoph Oelckers
0e5986769e - moved the tid hash into FLevelLocals and adjusted the interface to the iterators. 2019-01-24 19:28:40 +01:00
Christoph Oelckers
1f2162fea8 - moved the scripted creation functions for tag iterators to LevelLocals
The old static methods are now deprecated, this was done to clarify the relationships at play here.
2019-01-24 02:17:10 +01:00
Christoph Oelckers
5c8ae72453 - fixed: ScriptUtil.PlayerAmmo must be declared static. 2019-01-23 21:50:11 +01:00
Christoph Oelckers
477560e1ef - swapped order of checks for picking up an item.
Failure must take precedence over the morph check because this does not return a proper toucher.
2019-01-23 21:50:10 +01:00
Christoph Oelckers
f6ce5f59ae - fixed armor bonus giving in A_CustomPunch 2019-01-23 21:49:18 +01:00
alexey.lysiuk
12db808307 - fixed 'missing interpolation point' warning 2019-01-23 21:46:46 +01:00
alexey.lysiuk
7d4765b5cd - workaround code generation issue in PlayerPawn.FindMostRecentWeapon()
Multiple values in returned from a subfunction cannot be used directly as a function result

https://forum.zdoom.org/viewtopic.php?t=63284
2019-01-23 21:41:03 +01:00
alexey.lysiuk
8aa47e664e - fixed disappearing inventory after morphing pickup
When player is picked up item that does morph, the corresponding toucher actor is changed in process
Previously, morhing item was removed from original actor leaving player's inventory in inconsistent state

https://forum.zdoom.org/viewtopic.php?t=63124
2019-01-23 21:40:44 +01:00
Christoph Oelckers
5e4ef04a4d - allow assignment of line IDs through LevelCompatbility. 2019-01-23 21:40:19 +01:00
alexey.lysiuk
c6ee8e084c - fixed condition to produce blood splatter during line attack
https://forum.zdoom.org/viewtopic.php?t=63186
2019-01-23 21:23:35 +01:00
Marrub
af06d7cb9e Make LevelLocals::ExecuteSpecial return int
# Conflicts:
#	wadsrc/static/zscript/base.txt
2019-01-23 21:15:33 +01:00
Christoph Oelckers
4126f8ce72 - 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-01-23 21:12:23 +01:00
Christoph Oelckers
a1ae01e392 - fixed last PR.
The result of GetPointer must be null checked as well!
2019-01-23 20:43:23 +01:00
Cacodemon345
70a07e154c Move receiver NULL check above the orresult check (#695)
This is to prevent a VM abort from happening here if orresult is false.
2019-01-23 20:42:41 +01:00
Christoph Oelckers
c651045ed3 - let RunHealth clamping respect the newly added global properties. 2019-01-05 15:37:14 +01:00
Christoph Oelckers
dab68184f5 - moved the global spot state into FLevelLocals.
This way it doesn't even have to be a thinker.
2019-01-05 10:04:27 +01:00
Christoph Oelckers
d898cadda5 - fixed: Trying to remove the first item in an actor's inventory would lose all owned items. 2019-01-04 18:56:14 +01:00
Christoph Oelckers
f9ff097457 - fixed A_Chase default detection. 2019-01-03 23:43:15 +01:00
Christoph Oelckers
9521b6cd1f - 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-01-03 22:05:49 +01:00
Christoph Oelckers
c18e895272 - exported all native components of APlayerPawn.
Only the class definition itself remains and needs to be taken care of.
2019-01-03 18:01:58 +01:00
Christoph Oelckers
3314a1efe5 - scriptified the remaining PlayerPawn methods. 2019-01-03 14:35:17 +01:00
Christoph Oelckers
2258a71c36 - took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places. 2019-01-03 13:59:46 +01:00
Christoph Oelckers
23146f1af2 - scriptified PlayerPawn.ResetAirSupply. 2019-01-03 13:04:48 +01:00
Christoph Oelckers
badacbb968 - scriptified APlayerPawn's DamageFade handling. 2019-01-03 12:47:34 +01:00
Christoph Oelckers
2bd72478ee - 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-01-03 11:57:20 +01:00
Christoph Oelckers
9e5c5b68c5 - did some more lightening on the PlayerPawn class. 4 more properties and one native member function have been handled. 2019-01-03 10:06:45 +01:00
Christoph Oelckers
c753d59a72 - scriptified A_SkullPop and ObtainInventory.
These were the last relevant items to access PlayerPawn.InvFirst.
2019-01-03 00:35:56 +01:00
Christoph Oelckers
6eb8ded471 - made ColorRangeStart and ColorRangeEnd meta properties of APlayerPawn.
These are only used during initialization and they should have been readonly from the start.
2019-01-02 22:13:57 +01:00
Christoph Oelckers
bc47fdfa78 - scriptified useflechette CCMD's item finding code. 2019-01-02 11:58:26 +01:00
Marrub
3e3d21cd35 Fix A_CustomBulletAttack's spawnofs_xy parameter
The current behaviour offsets to the front of the actor rather than the side, due to an oversight in the code, which oddly is not present in the A_FireBullets equivalent.
2019-01-02 08:13:53 +01:00
Christoph Oelckers
dc612703d5 - scriptified the declaration of AmbientSound
Most of the code is still native, but this means that PlayerPawn is the last remaining child of AActor.
2019-01-02 01:05:20 +01:00
Player701
68091db598 - Since GetParentAmmo is now virtual, BackpackItem and the "give ammo" cheat should call GetParentAmmo to determine base ammo classes. 2019-01-01 22:00:35 +01:00
Christoph Oelckers
d654e02dea - 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.
2019-01-01 19:35:55 +01:00
alexey.lysiuk
99479d84b1 - fixed everlasting fast projectile after hitting ceiling
Without the test for ceiling hit fast projectile could enter its Death state every tick infinitely

https://forum.zdoom.org/viewtopic.php?t=63023
2019-01-01 08:14:28 +01:00
Christoph Oelckers
0b2a919bbe - fixed crash in AutoUseStrifeHealth
The loop never checked if the item was still valid and would continue to try to use it, even after it was removed from the inventory and destroyed.
As native code this just failed silently, but with the VM it needs to be explicitly checked.
2018-12-31 19:03:02 +01:00
Major Cooke
8d9d71f55f - Fixed: SXF_CLEARCALLERSPECIAL cleared the spawned actor's special instead of the caller. 2018-12-30 19:01:31 +01:00
alexey.lysiuk
36896a1224 - fixed ammo check for weapon with 'uses both' flags
https://forum.zdoom.org/viewtopic.php?t=63047
2018-12-29 13:36:10 +02:00
alexey.lysiuk
8e684f9687 - fixed missing attack sound in A_CustomPunch
See 7bb3855439/src/p_actionfunctions.cpp (L1729)

https://forum.zdoom.org/viewtopic.php?t=63049
2018-12-29 12:34:38 +02:00
Christoph Oelckers
dd3dba2ef1 - made PlayerPawn.TweakSpeeds virtual. 2018-12-29 08:43:36 +01:00
Christoph Oelckers
3559f7dffb Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-12-28 23:14:22 +01:00
Christoph Oelckers
5f303859e9 - made some changes to how the compatibility code works to allow removing the last remaining global variables of the map loading code.
Everything temporary is now part of the MapLoader class.
2018-12-28 23:14:11 +01:00
Erick Tenorio
0a6ec054d2 - TNT.WAD fixes 2018-12-27 20:52:08 +01:00
Erick Tenorio
9ee0271320 - Have Plutonia MAP16 pit kill player 2018-12-27 18:59:29 +01:00
Kevin Caccamo
e04fc026ff 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
2018-12-26 16:58:27 +01:00
Kevin Caccamo
286886e161 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.
2018-12-26 16:58:27 +01:00
Kevin Caccamo
0773e6a98e 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
2018-12-26 16:58:27 +01:00
Kevin Caccamo
758cd77e55 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
2018-12-26 16:58:27 +01:00
Major Cooke
6372cdaa41 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.
2018-12-26 11:55:42 +01:00
alexey.lysiuk
0584ecf65e - declared Actor's Morph() and UnMorph() functions virtual
They are expected to be virtual on C++ side
2018-12-25 16:27:33 +02:00
Christoph Oelckers
fcfccfe739 - fixed random number generation in SpawnFizzle.
This should now produce the same value range as Hexen's original code.
2018-12-23 12:40:26 +01:00
Christoph Oelckers
c1a86e9a4d - fixed bad attempt at restoring position in A_CustomBulletAttack. 2018-12-23 12:13:53 +01:00
Christoph Oelckers
9208fb9b77 - missed this. 2018-12-22 19:12:34 +01:00
Christoph Oelckers
36058df025 - gave the strifehumanoid's burn states dynamic lights.
Unlike everything else from the IWADs this had to use the 'light' keyword in ZScript because this is merely a base class for many others and the light definitions here need to be inheritable.
2018-12-22 16:11:18 +01:00
Christoph Oelckers
5e086ec384 - renamed back arguments of A_FireProjectile. 2018-12-22 16:11:18 +01:00
Christoph Oelckers
f6d9110c70 - removed the redundant GetOffsetPosition export and added direct native support to its existing variants 2018-12-21 13:52:30 +01:00
Christoph Oelckers
0770c0022c - cleaned up use of the random function in script files.
Many uses of random() & value have been turned into random(0, value).
This is not only more efficient, it also ensures better random distribution because the parameter-less variant only returns values between 0 and 255.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
1deedd5671 - fixed PlayerInfo.FindMostRecentWeapon
returning multiple values from a subfunction is currently not working so this has to add an indirection.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
9fab5f3b2c - fixed: For an initial weapon pickup, sv_unlimited_pickup wasn't checked for the included ammo. 2018-12-21 08:59:37 +01:00
Cacodemon345
789941f24d Export P_GetOffsetPosition and ADynamicLight::SetOffset to ZScript 2018-12-20 22:54:45 +01:00
Player701
d049b3b3eb - Fixed the position of the soul sphere within one of the secret areas (sector 324) of Alien Vendetta MAP28. 2018-12-20 19:03:15 +01:00
Christoph Oelckers
3291d8e9ac - made Ammo.GetParentAmmo virtual 2018-12-19 18:18:15 +01:00
Chronos Ouroboros
bb8fcd63c4 Added a function for triggering use/push specials for usage in custom monster AI. 2018-12-18 21:09:13 +01:00
Chronos Ouroboros
e7118804ba Exported P_CheckFor3DFloorHit and P_CheckFor3DCeilingHit to ZScript. 2018-12-18 21:09:13 +01:00
Christoph Oelckers
462fe891bd - 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. 2018-12-18 20:38:25 +01:00
Christoph Oelckers
ab624c8c5a Merge branch 'master' into Texture_Cleanup
# Conflicts:
#	src/textures/hires/hqresize.cpp
2018-12-11 20:27:24 +01:00
Christoph Oelckers
f6aa16947a - re-added PlayerInfo.BringUpWeapon. 2018-12-11 00:35:53 +01:00
Rachael Alexanderson
28516c2def - split gl_texture_hqresize into two variables - one for mode, one for multiplier. 2018-12-10 14:25:29 -05:00
Christoph Oelckers
79a0f76801 - replaced TexMan.operator() with two functions.
This was done to make reviewing easier, again because it is virtually impossible to search for the operators in the code.

Going through this revealed quite a few places where texture animations were on but shouldn't and even more places that did not check PASLVERS, although they were preparing some paletted rendering.
2018-12-07 02:53:18 +01:00
Christoph Oelckers
32e245f2b9 - moved the software rendering specific parts of the sky setup to r_skyplane.cpp. 2018-12-06 20:52:03 +01:00
Christoph Oelckers
d500dc99ea - handle the Harmony status bar icon scaling a bit more robustly.
Considering that the physical texture size should be abstracted away from modding this needs to be done differently.
Doing any calculations with physical texture sizes on the mod side is only going to cause errors so this had been changed to always return scaled size.
2018-12-06 20:21:33 +01:00
Christoph Oelckers
494a113920 - 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.
2018-12-05 20:10:44 +01:00
Christoph Oelckers
2e7e6cba9d - scriptified P_CheckMeleeRange2. 2018-12-05 18:58:15 +01:00
Christoph Oelckers
de5ab0b4b6 - deprecated a few functions that depend on AAPTR_* to be useful. 2018-12-05 18:33:59 +01:00
Christoph Oelckers
6c9d0b166a Added direct native entry points to a larger number of functions. 2018-12-05 17:34:11 +01:00
Christoph Oelckers
fd801ca91b - fixed: SlotPriority must be a float.
It was a fixed before but I missed that when refactoring it into an automatic property.
2018-12-05 08:13:52 +01:00
Christoph Oelckers
33db5792b4 - moved a large part of the VM thunks out of p_mobj.cpp. 2018-12-05 00:21:16 +01:00
Christoph Oelckers
45d7e5a038 - scriptified ASpecialSpot.
This only had two simple native methods so the class is not fully scripted.
2018-12-04 18:21:48 +01:00
Christoph Oelckers
5e4b366724 Removed all native components from AInventory. 2018-12-04 18:06:09 +01:00
Christoph Oelckers
d66516ec82 - scriptified A_SpawnSingleItem, which was the last piece of native code still referencing AInventory 2018-12-04 17:55:45 +01:00
Christoph Oelckers
44e43c48b5 - scriptified A_SelectWeapon 2018-12-04 17:31:25 +01:00
Christoph Oelckers
9348baeeb1 Removed all remaining references to AInventory
What remains is the class definition and one single reference that will be scriptified.
2018-12-04 17:11:36 +01:00
Christoph Oelckers
99a87f62b6 - The 'A' prefix has no meaning in class names on the script side - even in comments. 2018-12-04 00:23:52 +01:00
Christoph Oelckers
9e70701e50 - fixed max. ammo display on AltHud. 2018-12-03 23:34:23 +01:00
Christoph Oelckers
b6d0492478 - 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.
2018-12-03 18:51:24 +01:00
Christoph Oelckers
0e095b0c05 - removed all direct references of AInventory::Owner and AInventory::Amount from the C++ code. 2018-12-03 17:41:05 +01:00
Marisa Kirisame
d6d3dd038e Fix RemoveInventory not calling DetachFromOwner when an item is the first in the owner's inventory.
Fix CheckAddToSlots not working because it uses GetReplacement incorrectly.
2018-12-03 17:29:08 +01:00
Christoph Oelckers
d96d505520 - fixed accidentally misnamed parameter in A_Explode. 2018-12-02 21:39:28 +01:00
Christoph Oelckers
807df33e1a - 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.
2018-12-02 20:58:15 +01:00
Christoph Oelckers
2e383073e8 - 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.
2018-12-02 19:45:45 +01:00
Christoph Oelckers
3182569fb8 - 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.
2018-12-02 18:43:38 +01:00
Christoph Oelckers
93f91d1039 - scriptified P_DropItem. 2018-12-02 18:31:18 +01:00
Christoph Oelckers
a5fc26b37c - scriptified the no-spawn flag check for armor and health items. 2018-12-02 18:04:44 +01:00
Christoph Oelckers
ee08412e49 - scriptified G_PlayerFinishLevel.
Outside of SBARINFO this was the biggest remaining piece of code that referenced AInventory internals.
2018-12-02 16:26:02 +01:00
Christoph Oelckers
1f33ba2c4d - fixed incomplete null checks in A_RadiusThrust. 2018-12-02 16:06:04 +01:00
Christoph Oelckers
719598aae4 - scriptified AActor::ClearInventory 2018-12-02 15:24:44 +01:00
Christoph Oelckers
d11b33e8fd - 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.
2018-12-02 14:34:10 +01:00
Christoph Oelckers
ba905321b0 - scriptified the main drawer for the in-game HUD and removed all intermediate VM calls from the native source. 2018-12-02 14:34:09 +01:00
Christoph Oelckers
fe39236ee1 - scriptified the AltHUD'S powerup drawer. 2018-12-02 14:34:09 +01:00
Christoph Oelckers
ddaab4d2ab - 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.
2018-12-02 14:34:09 +01:00
Christoph Oelckers
4431ec06fd - scriptified the AltHUD's inventory drawer and fixed the InvPrev CCMD. 2018-12-02 14:34:09 +01:00
Christoph Oelckers
714ca9b2ce - scriptified the AltHUD's weapon drawer. 2018-12-02 14:34:08 +01:00
Christoph Oelckers
1406c11f8e - 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.
2018-12-02 14:34:08 +01:00
Christoph Oelckers
fbc441673a - AltHUD ammo drawer scriptified. 2018-12-02 14:34:08 +01:00
Christoph Oelckers
4a1f011dc1 - Alt HUD scriptification, part 1. 2018-12-02 14:34:08 +01:00
Major Cooke
49f2a38799 Fixed A_JumpIfNoAmmo not working. 2018-12-02 07:28:20 +01:00
Christoph Oelckers
a291ed21fe - fixed the AngleToVector calls in stateprovider.txt.
This looks like a search & replace gone wrong.
2018-12-02 00:41:23 +01:00
Major Cooke
e9df56198c - Restored A_SpawnItemEx's "chance" to "failchance" to prevent mod breakage from named parameters. 2018-12-01 23:39:54 +01:00
Christoph Oelckers
577af8860c - scriptified invnext and invprev CCMDs. 2018-12-01 22:37:12 +01:00
Christoph Oelckers
5c647de70c - moved ValidateInvFirst to the script side because this was one of the major functions that directly reference AInventory. 2018-12-01 17:46:20 +01:00
Christoph Oelckers
bc1990b6d7 - moved AInventory::DoRespawn fully to the script side. 2018-12-01 17:29:37 +01:00
Christoph Oelckers
a14b0c58bf - 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
2018-12-01 17:20:52 +01:00
Christoph Oelckers
7301bbc58e - scriptified GiveAmmo and the one remaining piece of native code still using it. 2018-12-01 17:20:23 +01:00
Christoph Oelckers
2c59172c42 - scriptified DropInventory. 2018-12-01 17:18:26 +01:00
Christoph Oelckers
09129e0113 - scriptified UseInventory and several functions using the already scriptified ones, 2018-12-01 17:17:08 +01:00
Christoph Oelckers
588ddd185b - scriptified TakeInventory, including the ACS/FS interfaces. 2018-12-01 17:11:09 +01:00
Christoph Oelckers
023efc7685 - scriptified RemoveInventory and Inventory.OnDestroy. 2018-12-01 17:09:23 +01:00
Christoph Oelckers
eb47fb9adc - 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.
2018-12-01 17:07:09 +01:00
Christoph Oelckers
a426655d61 - scriptified AddInventory. 2018-12-01 17:03:58 +01:00
Christoph Oelckers
aa32acae25 - a bit of code reordering for adding direct native entry points.
- offloaded key list generation for alternative HUD to non-UI parts.

This change also revealed a problem with handling empty sprites in the key list so this got fixed, too.
2018-12-01 14:18:28 +01:00
Christoph Oelckers
03015896d6 - seems there are two versions of Hacx's MAP05. 2018-12-01 10:30:50 +01:00
Christoph Oelckers
a0c0e8bdfe Merge remote-tracking branch 'remotes/origin/weapon_scriptification' into asmjit
# Conflicts:
#	src/g_inventory/a_pickups.cpp
2018-11-30 21:28:44 +01:00
Christoph Oelckers
8e46cb3a21 Merge remote-tracking branch 'remotes/origin/master' into asmjit 2018-11-30 18:49:28 +01:00
Player701
927d333063 - Exported AActor::Grind to ZScript. 2018-11-29 23:46:47 +01:00
Christoph Oelckers
ef2c433a8b - fixed declaration of ChangeStatNum. 2018-11-29 20:15:24 +01:00
Christoph Oelckers
ba2b9430f8 ChangeStatNum must not be virtual
Overriding this would make the engine vulnerable to  badly behaving mods. Intercepting this and altering the behavior can render the entire game inoperable, especially if more internal code gets scriptified later. So even at the risk of breaking some carelsss mods this must be blocked.
2018-11-29 19:00:25 +01:00
Christoph Oelckers
3acd9c8116 Made all virtual base functions for the event handler scripted
This was by far the largest block of native virtuals, and they were only native to be able to allow checking if the event was implemented for the current handler. This can easily be done by looking at the byte code, just like VMCall also does but in turn it removes more than half of the existing native virtuals from the interface.
2018-11-29 18:46:28 +01:00
Christoph Oelckers
f43f0b9bd4 - added a few more direct native entry points. 2018-11-29 00:27:09 +01:00
Christoph Oelckers
a5a9ab07af Merge branch 'master' into asmjit 2018-11-28 18:44:42 +01:00
Christoph Oelckers
7ff0cd70ad - explicitly declare the constructor and destructor methods of FCheckPosition so that they get a working prototype. 2018-11-28 17:33:37 +01:00
Player701
91ea22e85a - Fixed textures on the two switches that rise from the floor in the eastern area of TNT MAP31 2018-11-27 21:14:52 +01:00
Christoph Oelckers
5e4e9e2c2b Merge branch 'master' into asmjit 2018-11-27 19:53:22 +01:00
Alexander
4a85e24228 fixed spelling (mostly comments) 2018-11-27 19:44:06 +01:00
Christoph Oelckers
47b1fa774d Merge branch 'asmjit' into weapon_scriptification
# Conflicts:
#	src/gi.cpp
#	wadsrc/static/zscript/base.txt
2018-11-26 00:14:44 +01:00