Commit graph

877 commits

Author SHA1 Message Date
Christoph Oelckers
ba9cf02385 - added a user reserved range of statnums from 70-90 2017-08-12 13:08:11 +02:00
Christoph Oelckers
7cbf45d76d - let PlayerPawn.ForwardThrust use its angle parameter. 2017-08-12 12:35:01 +02:00
alexey.lysiuk
33beca6e6f Exposed ToLower() and ToUpper() string functions to ZScript
https://forum.zdoom.org/viewtopic.php?t=57515
2017-08-07 15:24:18 +03:00
Jonathan Russell
03640a16ea - removed ZScript DrawLine palcolor arg 2017-08-03 02:09:48 +01:00
Jonathan Russell
941d89042a - externalise DCanvas::DrawLine to ZScript 2017-08-03 01:20:55 +01:00
Rachael Alexanderson
91ff447a90 - fixed compile from last commit
- refactored the zscript hookup a bit, made it actually work
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
9a9fe7c133 - implemented GetCaps() for OpenGL
- renamed RFF_FRAGMENTSHADER to RFF_MATSHADER
- D_Display now calls Renderer->GetCaps() and stores it in a global variable for later use.
2017-07-29 17:03:43 -04:00
Rachael Alexanderson
64deba45a3 - added another render filter 2017-07-29 17:03:43 -04:00
Rachael Alexanderson
80bb1d908a - basic groundwork for render feature visibility flags. I haven't gotten very far with it yet, but since I am taking a break I am going to commit what I have and continue it later.
todo:
* call a render class function in D_Main that enumerates the capabilities of the current renderer into a global variable to be accessed later
* add a debug-specific cvar to always show all actors, regardless of these filters
* put in checks in the renderer themselves that check both flagsets and reject rendering of any sprite/model that does not fit the definition's criteria
2017-07-29 17:03:43 -04:00
alexey.lysiuk
c56cd245ac Added IndexOf() and LastIndexOf() functions to ZScript string type
https://forum.zdoom.org/viewtopic.php?t=57313
2017-07-22 10:54:32 +03:00
alexey.lysiuk
b1d1ac13b6 Fixed serpent staff's alternate attack against shielding centaur
https://forum.zdoom.org/viewtopic.php?t=57305
2017-07-21 11:17:50 +03:00
Magnus Norddahl
00893763ed Merge branch 'custom_postprocess' into qzdoom 2017-07-08 14:44:30 +02:00
Magnus Norddahl
a38de996e7 - Move uniform declarations to the GLDEFS lump to make it Vulkan safe (a vulkan implementation can then declare them in an uniform block)
- Change SetUniform functions to be clearscope as they can be safely called from both play and ui
- Add PlayerInfo argument to SetUniform functions to force the modder to take network play into account
- Add enabled flag on custom postprocess shaders
- Removed custom texture support until a more clean implementation is written
2017-07-08 14:44:07 +02:00
Rachael Alexanderson
a63a7b9b29 Merge remote-tracking branch 'gzdoom/master' 2017-07-03 17:17:47 -04:00
Rachael Alexanderson
2bfd7859e4 Merge remote-tracking branch 'origin/custom_postprocess' 2017-07-03 17:17:17 -04:00
Magnus Norddahl
e161bba146 - Specify shader uniforms from ZScript 2017-07-03 22:30:49 +02:00
Christoph Oelckers
60cb457c4c - fixed incorrect MinMissileChance of SpiderMastermind. 2017-07-03 09:58:40 +02:00
Rachael Alexanderson
9001009fcf Merge https://github.com/coelckers/gzdoom 2017-06-22 01:42:33 -04:00
Christoph Oelckers
a6b7ce00c2 - made DropItem fully read-only by changing the two places which messed around with DropItem.Amount to use a local variable instead.
The pointers themselves should have been declared read-only from the start but for that it is too late, so now all its members are.
2017-06-21 11:39:59 +02:00
Rachael Alexanderson
ff257fcfd7 Merge https://github.com/coelckers/gzdoom 2017-06-20 09:39:12 -04:00
Rachael Alexanderson
f65c651ffd - applied Maulotaur obituary text from https://forum.zdoom.org/viewtopic.php?f=2&t=56959 2017-06-19 04:16:09 -04:00
Rachael Alexanderson
d454fafc9e Merge https://github.com/coelckers/gzdoom 2017-06-19 03:22:23 -04:00
alexey.lysiuk
9b446e41fc Fixed applying of flags on fullscreen inventory bar
DI_ALWAYSSHOWCOUNTERS and DI_DRAWCURSORFIRST flags are no longer ignored in BaseStatusBar.DrawInventoryBar() function
https://forum.zdoom.org/viewtopic.php?t=56798
2017-06-18 16:57:05 +03:00
Christoph Oelckers
3b024c347b - use a dedicated flag word for the dynamic light flags instead of piggybacking on some flags4 bits. 2017-06-18 10:15:31 +02:00
Rachael Alexanderson
c70dac2d7f Merge https://github.com/coelckers/gzdoom 2017-06-16 13:27:03 -04:00
alexey.lysiuk
478d72b37b Fixed resetting of activation failed flag on pickup
https://forum.zdoom.org/viewtopic.php?t=56896
2017-06-14 22:13:40 +03:00
Rachael Alexanderson
a148212215 Merge commit 'f1ad42c' 2017-06-12 00:22:59 -04:00
alexey.lysiuk
8a300b99e9 Fixed interpolation points chaining
Ambush flag cannot be used for marking visited points because HandleSpawnFlags() is no longer virtual
See E1M4 from Rise Of The Wool Ball v1.1 as example of broken chain
2017-06-10 15:50:44 +03:00
Rachael Alexanderson
a48203ef1d Merge https://github.com/coelckers/gzdoom 2017-06-10 01:00:38 -04:00
alexey.lysiuk
99d89f0730 Fixed position of Targeter's markers during wearing out
https://forum.zdoom.org/viewtopic.php?t=56811
2017-06-09 15:08:01 +03:00
Rachael Alexanderson
f8ba5c7b1f - fixed: Updating your sigil (Strife) should not override the number of 'deselect' pieces you have when swapping to another weapon. 2017-06-09 06:22:31 -04:00
Rachael Alexanderson
63d9148604 Merge https://github.com/coelckers/gzdoom 2017-06-09 05:57:10 -04:00
Christoph Oelckers
6b3093d7ad Another sound with wrong attenuation 2017-06-08 17:13:36 +02:00
Christoph Oelckers
68e17eb0c6 Create alienspectres.txt
fixed attenuation for Strife's 'killed a spectre' message.
2017-06-08 16:23:35 +02:00
Rachael Alexanderson
077cd09d8d Merge https://github.com/coelckers/gzdoom 2017-06-06 16:40:21 -04:00
Christoph Oelckers
a210aaea3e - fixed: All melee functions calling TraceBleed after DamageMobj must first copy the target member to a local variable.
DamageMobj can destroy the damaged actor if the death state sequence has zero duration. But Actor.target is a garbage collected member variable, i.e. it will be null, once the actor it points to gets destroyed.
This was originally done correctly in the C++ code but during the scriptification all those 'AActor *target = self->target' lines were removed because they looked redundant, but were not.
2017-06-06 09:12:58 +02:00
Rachael Alexanderson
5d40b2c36c Merge https://github.com/coelckers/gzdoom 2017-06-04 21:04:33 -04:00
alexey.lysiuk
a797db74da Silenced scripting warning from main .pk3
Script warning, "gzdoom.pk3:zscript/menu/playercontrols.txt" line 526:
Truncation of floating point value
2017-06-04 16:21:10 +03:00
Rachael Alexanderson
11741846c6 - fixed: missed the teleport fog 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
10a9d087f1 - fixed: missed the golden wand puff for the +ZDOOMTRANS flag 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
2997f31f9f - removed ZDOOMADD and updated actors in question with ZDOOMTRANS 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
a937f709aa - Added +ZDOOMADD to all Heretic, Hexen, and Strife actors that needed it (that I know of...)
- this developer's insanity level increased another 21%
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
89b372cb01 - Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
c252b5d753 - fixed: forgot to assign +ZDOOMTRANS to rockets 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
01f88cfb16 - Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
64b22f6cb3 Merge https://github.com/coelckers/gzdoom 2017-06-03 22:34:13 -04:00
jplebreton
2c7a0c87c8 add FloatBobStrength Actor property, a multiplier on Z offset created by FloatBob behavior. default of 1.0 is current behavior, set higher/lower for more/less extreme bobbing. 2017-06-03 18:02:27 +02:00
Rachael Alexanderson
9b3d11ae19 - fixed: missed the teleport fog 2017-06-02 12:41:25 -04:00
Rachael Alexanderson
7d7b1b3b97 - fixed: missed the golden wand puff for the +ZDOOMTRANS flag 2017-06-02 01:10:46 -04:00
Rachael Alexanderson
bf12d38afd - removed ZDOOMADD and updated actors in question with ZDOOMTRANS 2017-06-02 01:10:46 -04:00
Rachael Alexanderson
b4dea12a4f - Added +ZDOOMADD to all Heretic, Hexen, and Strife actors that needed it (that I know of...)
- this developer's insanity level increased another 21%
2017-06-02 01:10:46 -04:00
Rachael Alexanderson
aa93990d3b - Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-02 01:10:46 -04:00
Rachael Alexanderson
45d7401885 - fixed: forgot to assign +ZDOOMTRANS to rockets 2017-06-02 01:10:46 -04:00
Rachael Alexanderson
813b321c45 - Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle 2017-06-02 01:10:45 -04:00
Rachael Alexanderson
2f7d512acf Merge commit 'refs/pull/335/head' of https://github.com/coelckers/gzdoom 2017-05-29 04:53:39 -04:00
alexey.lysiuk
f759e1155a Damage factor on armor is no longer ignored
https://forum.zdoom.org/viewtopic.php?t=56632
2017-05-28 17:41:44 +03:00
Major Cooke
a111c59286 Added PSPF_MIRROR.
- Flips the sprite's drawing and position over entirely. Automatically implies PSPF_FLIP.
2017-05-25 19:46:36 -05:00
Christoph Oelckers
42e62d9005 - fixed: Harmony requires special scaling treatment for the fullscreen HUD's icons. 2017-05-21 21:30:46 +02:00
Christoph Oelckers
4388d97db6 - PlayerPawn.PlayerThink needs to consider the possibility of the player getting unmorphed and must call any function after a potential unmorph through 'player.mo' instead of 'self'. 2017-05-20 20:56:43 +02:00
svdijk
8ece6dff6a Menu: Never treat keys with no "Char" as hotkeys. 2017-05-18 21:29:08 +02:00
svdijk
4b8f4212ef Menu: Hotkeys should only select selectable items. 2017-05-18 21:29:08 +02:00
Major Cooke
bb1e927c46 Give the parameter a better name to associate by. 2017-05-17 23:03:22 +02:00
Major Cooke
65f13b0927 - Added a Z offsetting parameter to the ZScript LineAttack function.
- Added LAF_OVERRIDEZ flag to LineAttack. Disregards all internal offsetting aside the actor's Z position before adding the offset parameter.
2017-05-17 23:03:22 +02:00
svdijk
ebf3a37394 Menu: Fix mouse handling for the autoaim slider. 2017-05-16 23:06:57 +02:00
Rachael Alexanderson
625fc73f28 - Missed a few CF_POWERBUDDHA references. 2017-05-16 04:13:25 -04:00
Major Cooke
795f8f0578 - Added a separate cheat flag to handle buddha powerups. Currently, Buddha powerups could interfere and disable the actual player cheat unintentionally, when the player may not want their actual cheat to be turned off.
- Set some overlooked 1000000 damage points to TELEFRAG_DAMAGE inside the falling damage code.
2017-05-14 17:22:46 +02:00
Major Cooke
49e4c8968f - Fixed: Powerups failed to expire when the EffectTics was set directly to 0 since the variable is always subtracted first before the check. 2017-05-14 17:21:48 +02:00
alexey.lysiuk
60fe34349e Fixed applying of speed factor to player
Part of https://forum.zdoom.org/viewtopic.php?t=56333
2017-05-08 16:54:22 +03:00
Christoph Oelckers
2edae42822 - fixed display of WIPAR lump on Doom intermission screen. 2017-05-07 10:29:58 +02:00
alexey.lysiuk
78b724e280 Par time on stat screen doesn't need tics-to-seconds adjustment
Fixes https://forum.zdoom.org/viewtopic.php?t=56307
There was no such adjustment before scriptification of stat screen
2017-05-07 10:10:26 +03:00
Christoph Oelckers
ce0547aacb - fixed: The player speed factor was only retrieved from the topmost item in the inventory. 2017-05-06 10:58:16 +02:00
Christoph Oelckers
bb12dabe2b - added a 'protrusion' property to SBARINFO so that the map name display can properly be handled here as well. Until now it was only working for scripted status bars. 2017-05-05 19:32:37 +02:00
Christoph Oelckers
7308979c44 - fixed bad state label in A_SerpentHeadCheck. 2017-05-04 22:53:14 +02:00
Christoph Oelckers
5bbf173b4e - fixed: SBARINFO based status bars got the wrong color for automap HUD highlights when playing Doom. 2017-05-04 11:37:36 +02:00
Christoph Oelckers
0877539315 - fixed: The Talisman powerup for SVE was given to the wrong actor. 2017-05-03 22:07:33 +02:00
Christoph Oelckers
050acc9271 - added rudimentary support for SVE.wad from the Strife Veteran edition so that the extended single player campaign is usable:
* all new things got either an sctor definition or are explicitly deleted through the 'doomednums' section in MAPINFO. CTC related actors are non-functional!
* added a 'noskillflags' option to 'doomednums' so that the lightmap definition things in the maps can be repurposed as dynamic lights.
* added the new dagger powerup.
* added MAPINFO entries for the added maps.
2017-05-01 21:25:54 +02:00
Christoph Oelckers
b84f7bcada - scriptified the weapon firing logic. 2017-05-01 01:55:35 +02:00
Christoph Oelckers
abee2805cb - the last scriptified bits of P_PlayerThink. 2017-05-01 00:27:58 +02:00
Christoph Oelckers
6e25c34fda - more player code exported 2017-04-30 22:17:51 +02:00
Christoph Oelckers
10deb5ce56 - exported P_PlayerThink to ZScript. 2017-04-30 22:17:50 +02:00
Christoph Oelckers
c3f9b4a5ee - silenced a few float truncation warnings that get printed in developer mode. 2017-04-27 10:23:31 +02:00
alexey.lysiuk
cc786bada6 Fixed crash when mouse is moved right after saving of game has been triggered
https://forum.zdoom.org/viewtopic.php?t=56060
https://forum.zdoom.org/viewtopic.php?t=49369&start=105#p992821
https://forum.drdteam.org/viewtopic.php?t=7607
2017-04-25 10:57:55 +03:00
Christoph Oelckers
3ccd4aa0d1 - fixed: The powerup icons did not blink when expiring. 2017-04-21 18:08:30 +02:00
Christoph Oelckers
1852079142 - removed alpha parameter from BaseStatusBar.DrawBar because this cannot be used with this function. 2017-04-21 10:56:34 +02:00
Christoph Oelckers
b5f87aa86f - typo in last commit. 2017-04-21 10:45:27 +02:00
Christoph Oelckers
5cb5d26bf8 - fixed the item stats positioning on the automap. 2017-04-21 10:44:02 +02:00
ZZYZX
29402ff685 ZScript version of SetCameraToTexture 2017-04-19 11:20:17 +02:00
Major Cooke
316af5a400 - fixed: DrawBar never checked maxval for dividing by 0. 2017-04-19 11:18:58 +02:00
Christoph Oelckers
8180d34765 - added user configurable menus where soundfonts, patch sets or Timidity EXEs can be selected from lists being stored in the config file to reduce the hassle of testing MIDIs with different settings. 2017-04-18 16:43:07 +02:00
Christoph Oelckers
96d328de9b - removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files.
For some files that had the Doom Source license attached but saw heavy external contributions over the years I added a special note to license all original ZDoom code under BSD.
2017-04-17 13:33:19 +02:00
Christoph Oelckers
1ee9256842 - did a complete workover of the weapon sprite translucency code that got inherited from QZDoom.
This was very poorly done without ever addressing the issues a composite render style can bring, it merely dealt with the known legacy render styles.
The same, identical code was also present in two different places.
The oversight that AlterWeaponSprite overrode even forced styles was also fixed.

OpenGL is not implemented yet but with the problems eliminated should be doable now.
2017-04-15 16:41:00 +02:00
Christoph Oelckers
0ebf4958b9 - fixed pitch calculation for camera actors. For compatibility with Hexen format they need to treat the pitch arg as a signed byte. 2017-04-15 00:48:22 +02:00
Christoph Oelckers
edebea4f8d - allow specifying a custom class for message box display. 2017-04-14 23:28:54 +02:00
Christoph Oelckers
d03c33f393 - added Translation.GetID. 2017-04-14 17:40:05 +02:00
Christoph Oelckers
cde450dd8a - some enhancements for PowerReflection. 2017-04-14 16:51:11 +02:00
Christoph Oelckers
329c168cc2 - added a distance parameter to A_SprayDecal. 2017-04-14 16:28:54 +02:00
Christoph Oelckers
92acbdc625 - made GetClassName an intrinsic and expanded it to also work on class types. 2017-04-14 16:14:27 +02:00
Christoph Oelckers
b1057cee36 - fixed: do not draw armor on the fullscreen HUD if the amount is 0. 2017-04-13 20:43:17 +02:00
Major Cooke
29394da7ed Static functions cannot have const. 2017-04-13 19:43:41 +02:00
Major Cooke
523b31a16a Made several string functions const. 2017-04-13 19:43:41 +02:00
Christoph Oelckers
1c8d698121 - added WeaponState enum for ZScript. 2017-04-13 02:42:31 +02:00
Christoph Oelckers
1712667ce2 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-04-13 02:18:16 +02:00
Christoph Oelckers
fc9e304189 - separated class descriptors from VM types.
Combining these two groups of data has been the cause of many hard to detect errors because it allowed liberal casting between types that are used for completely different things.
2017-04-12 22:46:49 +02:00
alexey.lysiuk
d8d7dc973c Added check for selected item in save/load menu
https://mantis.zdoom.org/view.php?id=570
2017-04-12 17:15:12 +03:00
Christoph Oelckers
6a3ddaa8fa - moved Restricted/ForbiddenToPlayerClass fully to the script side.
This required some fixes for allowing to read from metadata arrays.
2017-04-11 15:11:13 +02:00
alexey.lysiuk
b0a0c62af1 Fixed state selection for weapon secondary fire
https://mantis.zdoom.org/view.php?id=552
2017-04-09 13:04:32 +03:00
Christoph Oelckers
5935dc706d - prevent infinite recursion in PlayerPawn.GetObituary when the inflictor is the same as the origin for the kill. 2017-04-09 00:06:23 +02:00
Christoph Oelckers
74faacd218 - fixed: FxVMFunctionCall::GetDirectFunction did not perform any checks on the function's self pointer and failed to report a mismatch as an error.
- also fixed two places in the code where the above caused some incorrect definitions not to be detected.
2017-04-06 20:52:38 +02:00
alexey.lysiuk
ca4888eb3d Added CVar.GetCVar() function to do player-dependent console variables lookup 2017-04-06 10:51:36 +03:00
alexey.lysiuk
26e4b74261 Restored initial behavior of CVar.FindCVar()
https://mantis.zdoom.org/view.php?id=537
2017-04-06 10:50:40 +03:00
Christoph Oelckers
4b127c7fcc - draw Doom weapon numbers one pixel lower. 2017-04-03 09:37:52 +02:00
Christoph Oelckers
e074c75609 - added a generic TransformRect to the status bar so that the proper transformations can be applied to draw operations that require special parameters not supported by the stock functions. 2017-04-02 12:58:31 +02:00
alexey.lysiuk
1033976158 Fixed typo in status bar function name
https://mantis.zdoom.org/view.php?id=519
2017-04-02 11:47:10 +03:00
Christoph Oelckers
553906b186 - fixed: BaseStatusbar::GetAmount returned the default item's amount if the player held none of the given type. This should only be done for MaxAmount. 2017-04-01 13:33:42 +02:00
Christoph Oelckers
7dae43bf7f - fixed: The health chain in Hexen wasn't drawn on the main status bar. Did some reordering to ensure it won't get skipped. 2017-04-01 13:18:19 +02:00
Christoph Oelckers
699d4882d5 - fixed: The ammo display in Doom should not be drawn if the current weapon does not use ammo. 2017-04-01 13:08:45 +02:00
Christoph Oelckers
51d89740e3 - fixed mouse input for scale slider. 2017-03-30 20:12:39 +02:00
Christoph Oelckers
3a1228bf95 - exported the clipping rectangle to scripting and added a statusbar scaling wrapper for it.
- fixed: BaseStatusBar.Fill did not pass its flags parameter to the native function.
2017-03-30 12:13:28 +02:00
Christoph Oelckers
a3ef711d1d - added a special slider type for the scaling options that prints a descriptive text instead of the slider for the special settings.
- fixed the adaptive scale calculation in GetUIScale which had the coordinates mixed up.
2017-03-30 11:30:09 +02:00
Christoph Oelckers
1dcc017daf - reimplemented the position display, but changed its position a bit upward.
- activated the RenderOverlay event, now that it can be called from the correct spot, i.e. right after the top level HUD messages are drawn. The system's status output will still be drawn on top of them.
2017-03-29 23:51:53 +02:00
Christoph Oelckers
7011010ff2 - fixed the drain callback.
- changed the effect spawn prevention of the Hexen flame strike weapon and reverted the attempt to fix this in FastProjectile.

This cannot be fixed in the base class, which was doing everything right. It's the flame missile that was doing undefined things by stopping its movement without clearing its missile flag. This cannot work because missiles are given some minimal forced velocity to ensure collision detection and any attempt to address this without clearing the missile flag is doomed to fail.
2017-03-29 22:50:13 +02:00
Christoph Oelckers
b38934b532 - fixed declaration of ACS getters for status bar.
- fixed some uninitialized variables in font print code.
2017-03-29 21:54:11 +02:00
Christoph Oelckers
01b095c911 - added colorization for untranslated fonts. This uses the light color of the vertices. The software rendered 2D code will ignore this infomation.
- added a virtual OnRetrun method to menus.
2017-03-29 21:22:05 +02:00
Christoph Oelckers
d36f656caf - added a callback for when damage is drained from a target. 2017-03-29 20:25:54 +02:00
Christoph Oelckers
1d4ab0cc2a - implemented proper scaling for the status bar itself.
This allows using the UI scale or its own value, like all other scaling values.
In addition there is a choice between preserving equal pixel size or aspect ratio because the squashed non-corrected versions tend to look odd, but since proper scaling requires ununiform pixel sizes it is an option.

- changed how status bar sizes are being handled.

This has to recalculate all scaling and positioning factors, which can cause problems if the drawer leaves with some temporary values that do not reflect the status bar as a whole.
Changed it so that the status bar stores the base values and restores them after drawing is complete.
2017-03-29 19:23:40 +02:00
Christoph Oelckers
87479d3c2f -use the proper functions to calculate the position of the popup screen in Strife. 2017-03-29 14:28:46 +02:00
Christoph Oelckers
7ba6860102 - scriptified the automap HUD and made it obey hud_scale instead of always being fully scaled. 2017-03-29 14:20:22 +02:00
Christoph Oelckers
2f06c09681 - fixed map name display on the automap HUD
This would cut off overlong names and the handling for status bars with protruding elements was far too simplistic and worse, making assumptions based on game mode.
It now uses a virtual function to query the status bar itself for returning this information so it can be overridden and uses V_BreakLines to split the text if it is wider than the display.
2017-03-29 10:36:16 +02:00
Christoph Oelckers
fabf8451e7 - use Fill to draw Strife's health bars. 2017-03-29 02:24:04 +02:00
Christoph Oelckers
598523a1de - moved all coordinate adjustment for the status bar mode into one function and use this function in all places where status bar related coordinate adjustments need to be performed, also in SBARINFO.
- fixed unscaled status bar placement.
- fixed inventory count display for Doom status bar.
2017-03-29 01:59:03 +02:00
Christoph Oelckers
19e7d60275 - removed DSBarInfo::Scaled because it tended to disagree with StatusBar->Scaled. 2017-03-29 00:35:35 +02:00
Christoph Oelckers
fa893c082b - changed the default for hud_scale to 0 (i.e. use uiscale)
- allow calling Menu.SetMenu from play code so that in-game menus can be opened.
2017-03-28 22:51:37 +02:00
Christoph Oelckers
d5772ff895 - fixed: SafeCommand did not work anymore because it failed the abuse prevention check for DoCommand. 2017-03-28 22:34:12 +02:00
Christoph Oelckers
224219dd66 - made ListMenuItem.DrawSelector virtual. 2017-03-28 21:39:03 +02:00
Christoph Oelckers
6870efe134 - added a GetCVarString ZScript/DECORATE function.
- fixed: loading a savegame triggered PlayerEntered events.
2017-03-28 21:37:43 +02:00
Christoph Oelckers
bdf761e457 - moved th player resurrection code into a player_t method. 2017-03-28 21:29:14 +02:00
Christoph Oelckers
6816902a09 - forgot to save doom_sbar.txt 2017-03-28 13:27:59 +02:00
Christoph Oelckers
e2e17f575c - added safeguards to all 2D drawing functions to throw an exception if used outside a valid 2D draw context.
This is necessary because the hardware accelerated renderers will hide the problem, but with pure software rendering to a locked hardware surface, like DirectDraw can result in a crash.
Note that ANY mod that gets caught in this did something wrong!
2017-03-28 13:25:17 +02:00
Christoph Oelckers
b9485d4edf - ported the Hexen status bar to zscript.
Note that DrawBar with a background texture does not work yet because the clipping rectangle is not done yet.
2017-03-28 11:00:05 +02:00
Christoph Oelckers
bac464f2b7 - added the inventory bar on Heretic's status bar. 2017-03-27 21:30:05 +02:00
Christoph Oelckers
a6bf93c624 - implemented the Heretic status bar. 2017-03-27 21:01:40 +02:00
Christoph Oelckers
0fdd118906 - change statusbar drawers to use the top left of the virtual screen as origin, not the top left of the actual status bar, to bring this in line with SBARINFO.
The Strife status bar which was still native code had it differently and that was used as the initial guideline.
2017-03-27 09:52:30 +02:00
Christoph Oelckers
a112b29c43 - implemented the inventory bar. This object is a bit special because it requires a lot of parameters, most of which are easily set to defaults. To make handling easier, most are passed through a container object which does some processing up front.
- finished work on the Doom status bar. I also took the opportunity to fix the layout of the inventory bar which is a bit broken in SBARINFO.
- tuned the selection rules for deciding what creates the status bar, so that the most recent definition that can be found is chosen.
2017-03-27 01:02:10 +02:00
Christoph Oelckers
e791c957d9 - implemented the regular Doom status bar.
The DOOM status bar and HUD are complete, except the inventory bar.
2017-03-26 22:04:58 +02:00
Christoph Oelckers
08b3c38304 - simplified the parameters of the HUD draw functions by moving all booleans into one flags word and ordering them so that the less likely ones to be used can be made optional.
- got rid of the image list in the Doom status bar. The cost of the texture lookup is mostly irrelevant here so clearer and shorter code is preferrable.
- moved the box fitting code from DrawTexture into the native function to have all coordinate calculations in one place which is necessary to implement proper alignment default handling. Without higher level functions altering positioning the default can be set to automatic alignment determination, i.e. the value's sign decides where something is placed. Of course for special cases this can be overridden.
- use ANIMDEFS to animate the inventory arrow,
2017-03-26 18:41:24 +02:00
Christoph Oelckers
1c71d038dd - Doom keybar is working.
I did not implement an equivalent to SBARINFO's DrawKeyBar. This is too limiting because it needs to consider any possibility. It really is easier to let a mod implement this itself and custom adjust it to its needs.

- fixed some stuff, in particular use DrawInventoryIcon to get smarter icon lookup.
2017-03-25 23:43:19 +01:00
Christoph Oelckers
488fface50 - started port of Doom status bar to ZScript.
Fullscreen HUD done with the exception of key and inventory bar. I also used the opportunity to make it a bit more resistant against badly designed inventory icons.
2017-03-25 21:40:17 +01:00
Christoph Oelckers
3e67a8bafa - let hud_scale act like an override to uiscale, just like con_scale does.
- better handling of ForceScale for the fullscreen HUD that doesn't mess around with CVARs.
- moved the mug shot into the status bar, because this is global state that needs to be shared between different pieces of code which want to display a mug shot.
- SBARINFO should work off the current status bar settings instead of the ones stored in its script object
2017-03-25 18:32:47 +01:00
Christoph Oelckers
bdb9275f8c - made the mugshot accessible to ZScript.
Note that there is no direct access, all this exposes is a single function to get the current face's texture which then can be drawn using the existing functions.
2017-03-25 01:22:42 +01:00
Christoph Oelckers
2d17594f6f - converted the Strife status bar to use the new HUD specific draw functions so that it also can benefit from coming changes.
Note that the pop screens are special because they are not subject to scaling - they will always be drawn with the current resolutions clean scale. As a result they cannot use the HUD drawers but instead continue to use the low level draw functions directly.
2017-03-25 00:35:19 +01:00