Commit graph

18685 commits

Author SHA1 Message Date
Christoph Oelckers
ec04a95929 - validate the buffer size in HWViewpointBuffer::Set2D.
This was causing crashes in Dragon Sector when writing past the buffer's end.
2023-01-27 18:25:13 +01:00
CandiceJoy
70d355cfa3 Fixed a bug where calling an invalid virtual function would cause a crash. 2023-01-26 08:52:23 -05:00
Hugo Locurcio
ad49d52b1c Add cvars to sprite shadows progressively according to thing <-> floor distance
This also adds the `r_actorspriteshadowalpha` and `r_actorspriteshadowfadeheight`
cvars for greater control (only effective in hardware renderers).
These are set to 0.5 and 0 by default, which means this fading behavior
is disabled by default.

When enabled, this has two benefits:

- It becomes easier for the player to judge an entity's height since
  the shadow opacity now gives this information.
- Entities that are far high above the ground no longer cast a shadow,
  which looked strange.
2023-01-25 17:43:04 -05:00
Boondorl
2d94321887 Added OnEngineInitialize() for static event handlers 2023-01-25 17:41:48 -05:00
Ricardo Luís Vaz Silva
4c7e9c6193 Change CheckValue to multi-return, due to unsupported out int/bool 2023-01-25 17:32:54 +01:00
CandiceJoy
1e39202484 Added check for invalid class on in-VM instantiation
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-24 22:10:34 +01:00
Emanuele Disco
faaf938b18 refactor: add some logs to help understand what is happening during soundfont selection.
It helps understand what soundfont is currently used

refs: https://github.com/ZDoom/ZMusic/pull/44
2023-01-24 07:19:23 -05:00
Ricardo Luís Vaz Silva
b47aa37919 Add missing methods (GetIfExists/CheckValue) to Map pseudo-generics 2023-01-23 17:15:08 +01:00
Hugo Locurcio
2fa88aa5a7 Implement antialiasing for automap lines
This implements a bruteforce approach for 2D line antialiasing.
It's not perfect by any means, but it seems to do its job well enough.
Since it draws 9 lines instead of 1 line per segment, it's significantly
more expensive but should still be usable on modern hardware (except
on very complex maps).

Automap line antialiasing is disabled by default and can be enabled
with the `am_lineantialiasing 1` cvar.
2023-01-21 11:40:25 -05:00
Ricardo Luís Vaz Silva
a397a93c25 Add Missing Read Barriers to Map Get Functions 2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
fed2d11be5 Fix iterator invalidation for Map::Get 2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
decba68225 Map::GetIfExists and Map::CheckValue 2023-01-21 16:40:47 +01:00
Ricardo Luís Vaz Silva
ed6384edc6 Add internal variable support to files outside gzdoom.pk3 2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
d4e9438273 rename CheckWritable to IsWritable, and invert its output since it's always negated 2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
da06212134 Add mDefFileNo to Fields 2023-01-20 22:34:26 +01:00
Ricardo Luís Vaz Silva
5ba1e96d29 Add mDefFileNo to Classes/Structs 2023-01-20 22:34:26 +01:00
Boondorl
f6128f0e9e Fixed global TerrainDef array not being exported correctly 2023-01-20 22:33:12 +01:00
Rachael Alexanderson
20eb821acb - indicate in the startup window title when GZDoom is compiled for ARM64 Windows 2023-01-17 02:36:21 -05:00
Sally Coolatta
45796505de Fix two different portable names
M_GetConfigPath uses GAMENAMELOWERCASE_portable.ini, but IsPortable() checks for GAMENAME_portable.ini. Doesn't have much of an impact on base GZDoom since it's case-insensitive, but can matter for engine forks -- IMO it should just be consistent either way.
2023-01-16 23:22:36 -05:00
Marisa Heit
258f4b6786 Check all ACS functions for minimum number of arguments.
Also fixes SpawnForced not respecting the minimum declared in zspecial.acs. (https://forum.zdoom.org/viewtopic.php?t=77027)
2023-01-16 16:53:10 +01:00
Boondorl
dd7cb8649f Exported LinePortals
Added helper functions for lines related to portals
2023-01-15 22:01:37 +01:00
Christoph Oelckers
3ea49a66d1 - cleaned up the pitch management in the sound backend.
This now treats all pitch methods equally instead of the preferential treatment of Doom's original pitch hack. Most importantly, the sound channel now stores the pitch as a floating point value instead of 9.7 fixed point.
snd_pitched now also gets checked in the sound engine, not the low level interface.
2023-01-15 14:01:37 +01:00
Christoph Oelckers
5b7826f68b - set lightblendmode to 0 when setting up a 2D viewpoint.
2D never uses dynamic lights so this should always be 0 - and eliminates another place in the backend referencing game data.
2023-01-15 09:21:01 +01:00
Christoph Oelckers
1561616498 - pass colormap to MakeGoodRemap as parameter.
Removes a Doom dependency and avoids double reading of the COLORMAP lump.
2023-01-15 08:34:32 +01:00
Christoph Oelckers
bafd6be342 - removed backend dependencies on game data. 2023-01-15 08:23:26 +01:00
Christoph Oelckers
c8b3d95d6f - backend update from Raze. 2023-01-15 08:23:26 +01:00
Kevin Caccamo
26518f8660 Fix Y position of characters in monospace fonts
The issue was either a typo, or a false assumption that all monospace font characters would be in squares on the sheet. Fixes #1937
2023-01-15 07:41:54 +01:00
Ricardo Luís Vaz Silva
5e464d3e93 expose WallMask and ignore actor, allow disabling Actor Tracing for LineTracer::Trace 2023-01-14 11:33:22 -05:00
inkoalawetrust
458142eb8b Added flags to SetPlayerProperty.
Added all of the missing player cheats to the SetPlayerProperty special.
2023-01-14 11:32:21 -05:00
inkoalawetrust
6f4a29b5e5 Added APROP_WaterDepth. 2023-01-14 11:31:22 -05:00
Major Cooke
aed72f58f3 Converted A_Quake(Ex) intensity parameters from ints to doubles. 2023-01-14 11:30:00 -05:00
Ricardo Luís Vaz Silva
9468ff85a2 Add missing error for mapinfo tonemap 2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
1ebd4f0d41 Add Tonemap support for Unclamped lighting mode 2023-01-14 11:29:12 -05:00
Ricardo Luís Vaz Silva
8e7897233e Add Alternate Light Blending Options 2023-01-14 11:29:12 -05:00
Rachael Alexanderson
aa061562cd - manually reimplement pull request #1850 2023-01-14 11:23:10 -05:00
yqco
e0275df931 CCMD listmaps: Colorize maps loaded from pwads in blue text
Colorize maps added from pwads differently so they stand out better
2023-01-14 07:58:16 +01:00
Ricardo Luís Vaz Silva
80d1c61714 Fix MapIterator<X, String>::GetValue 2023-01-14 00:30:43 +01:00
Boondorl
3dce874621 Exported bounce functions 2023-01-12 17:44:28 +01:00
CandiceJoy
955a841884 Fixed a bug where static events would fail to halt propagation.
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-12 17:43:09 +01:00
Marisa the Magician
81e7d77b44 Fix diffuse-only material shaders not applying. 2023-01-12 17:01:59 +01:00
Rachael Alexanderson
cb3662dc24 - fix nullptr crash 2023-01-11 13:33:02 -05:00
Boondorl
769796800d Minor tweaks to no player clipping 2023-01-09 12:31:08 -05:00
Rachael Alexanderson
af0f84183a - fix a few errors in last commit 2023-01-09 12:02:41 -05:00
Rachael Alexanderson
5aba0c144c - optimize P_ShouldPassThroughPlayer checks - move down in the check list, move thing->player check out of the function 2023-01-09 11:53:24 -05:00
Rachael Alexanderson
9777cfd500 - change P_ShouldPassThroughPlayer to static inline to improve performance on repeated calls 2023-01-08 22:12:37 -05:00
nashmuhandes
2fa2533982 - enable DM support for sv_noplayerclip
- fixed voodoo dolls with sv_noplayerclip
- fixed autoaim working incorrectly with sv_noplayerclip
2023-01-08 22:55:10 +08:00
nashmuhandes
3d6cc47dc1 Add sv_noplayerclip to allow players to walk through and shoot each other (only in coop) 2023-01-08 19:10:49 +08:00
Christoph Oelckers
aceafecce6 - optimized sheet font texture generation.
Instead of reloading the base image over and over again, let's cache it so that less time is needed for each single character.
2023-01-07 19:12:19 +01:00
Christoph Oelckers
4c751db489 - silence some warnings. 2023-01-07 18:35:30 +01:00
Christoph Oelckers
1a0aa95ff4 - changed return value of CreatePalettedPixels.
The new struct will allpw return of static pixel data without reallocation and copying.
2023-01-07 17:55:55 +01:00
Christoph Oelckers
4e4642d0ed - fixed buffer size checks for raw textures. 2023-01-07 16:15:32 +01:00
Marisa the Magician
0e5c6e37b1 Prevent important messages from being accidentally filtered. 2023-01-04 17:54:09 +01:00
Boondorl
0d23816179 Added FlyBob Multiplier for Player 2023-01-02 08:14:24 +01:00
Boondorl
73159dac3e Added WaterClimbSpeed Property to Players 2023-01-02 08:13:13 +01:00
CandiceJoy
b61be581d9 Fixed custom height and width not saving.
Signed-off-by: CandiceJoy <candice@candicejoy.com>
2023-01-01 22:52:55 -05:00
CandiceJoy
269431575b Fixed implicit cast from bool to double. 2022-12-26 16:45:54 -05:00
Marisa the Magician
6f8901ea87 Rename ValidLock to IsLockDefined (more descriptive). 2022-12-23 22:48:01 +01:00
Marisa the Magician
b85add01c7 Additional lock-related ZScript functions.
* Key.ValidLock: returns whether a lock number is valid (can be unlocked) or belongs to a "does not work" door.
* Key.GetMapColorForLock: returns the automap color for a lock number (or -1 if the lock isn't valid).
* Key.GetMapColorForKey: likewise, but for a specific key.
2022-12-23 17:47:31 +01:00
Ricardo Luís Vaz Silva
6072260b3f Fix FxMultiAssignDecl type 2022-12-23 15:54:23 +01:00
Rachael Alexanderson
adfef56fd8 - fix OpenGL ES selection on the windows startup dialog 2022-12-21 11:04:41 -05:00
Ricardo Luís Vaz Silva
c8fe074041 Multi-Assign Declarations 2022-12-20 23:22:37 +01:00
CandiceJoy
7b9a36c8fd Fixed the ACS PLAYERINFO_FVIEWBOB to be a bool instead of a double. 2022-12-20 00:58:30 -05:00
Magnus Norddahl
7b864fd665 Add vulkan pipeline cache 2022-12-19 17:40:27 +01:00
Marisa the Magician
e99bf2b036 Update and clean up UE1 model loader. 2022-12-19 14:00:43 +01:00
Ricardo Luís Vaz Silva
43880bbbe1 Expose StripLeft and StripLeftRight to ZScript 2022-12-19 14:00:09 +01:00
Ricardo Luís Vaz Silva
3ffbda5526 Fix StripLeftRight 2022-12-19 14:00:09 +01:00
Ricardo Luís Vaz Silva
fb33a29400 Error out instead of crashing for vector out variables 2022-12-18 19:46:22 +01:00
Christoph Oelckers
941c0850ba - Backend update from Raze.
Mainly optimizations for the sound system and texture manager.
2022-12-18 16:19:18 +01:00
Christoph Oelckers
79a38f1f3a Merge branch 'master' of https://github.com/coelckers/gzdoom 2022-12-18 15:21:42 +01:00
Boondorl
0d4d5587b5 Added FOV Interpolation 2022-12-18 08:23:19 +01:00
Rachael Alexanderson
b08295e7e1 - fix spacing 2022-12-16 20:40:05 -05:00
CandiceJoy
0fdb740ac7
Added toggle control for weapon bob while flying 2022-12-16 17:12:03 -06:00
Ricardo Luís Vaz Silva
de65d1b96f Misc Fixes for BobWeapon3D
- Fix inverted Y axis for offset/old BobWeapon
- finish adding PSPF_MIRROR
- fix missing pivot
2022-12-12 15:23:12 +01:00
Christoph Oelckers
e17e6868e6 - removed bogus errno check from Dehacked parser.
This checked errno without first confirming that there has been an error, it is also pointless because the value range check will automatically catch the error case as well.
2022-12-11 21:08:22 +01:00
Ricardo Luís Vaz Silva
46d36cf5c7 add BobWeapon3D 2022-12-09 21:49:38 +01:00
Boondorl
9a1e666303 Exposed Box and PointOnLineSide 2022-12-08 20:33:11 +01:00
Ricardo Luís Vaz Silva
dce456783d Add support for Vector types as properties 2022-12-08 18:12:27 +01:00
Christoph Oelckers
68f48f3830 - removed bogus errno check from Dehacked parser.
This checked errno without first confirming that there has been an error, it is also pointless because the value range check will automatically catch the error case as well.
2022-12-08 09:50:06 +01:00
Ricardo Luís Vaz Silva
b610f4206f Fix wrong assumptions about actor initialization in Map/MapIterator 2022-12-05 19:23:42 +01:00
Rachael Alexanderson
911d27148b g4.11pre 2022-12-05 10:31:11 -05:00
Christoph Oelckers
aedf0e3ce5 - fixed GC::FullGC not collecting everything anymore.
With the delayed handling of internal references of destroyed objects the function now returned without making sure that it really got everything.
Repeating until it cannot delete anything new anymore makes it work again as intended.
2022-12-05 12:29:03 +01:00
Magnus Norddahl
449501c75b Fix compile error on macOS 2022-12-05 07:49:43 +01:00
Magnus Norddahl
4c85f461b1 Avoid calling vulkan functions before the instance has been created 2022-12-05 07:49:43 +01:00
Magnus Norddahl
0a80ad3b83 Add missing forward declarations 2022-12-05 07:49:43 +01:00
Magnus Norddahl
cc96742d18 Add missing include statement 2022-12-05 07:49:43 +01:00
Magnus Norddahl
03ab65ab1e Fix linux compile errors from the zvulkan switch 2022-12-05 07:49:43 +01:00
Magnus Norddahl
6a005e3a2a Switch vulkan backend to use the zvulkan library 2022-12-05 07:49:43 +01:00
Ricardo Luís Vaz Silva
854c57611f Fix Quicksave Rotation 2022-12-05 07:48:51 +01:00
Magnus Norddahl
7ae07d614e Add all the functionality from the win32 startup window to the GTK version 2022-12-05 07:48:21 +01:00
Ricardo Luís Vaz Silva
24d27a6746 Fix PMapValueReader warning on Clang/GCC 2022-12-04 23:53:51 +01:00
Ricardo Luís Vaz Silva
92761feee1 Add casts to F32 Map/MapIterator functions to get rid of double to float conversion warnings 2022-12-04 21:15:46 +01:00
Mitchell Richters
6629944d39 - Make the new scaled angle changes at frame rate opt-in behind new flag SPF_SCALEDNOLERP.
* This will still test whether the game needs to lerp and will force `SPF_INTERPOLATE` if needed.
2022-12-04 15:11:17 +01:00
Mitchell Richters
cf1ac82da3 - Set up interpolated camera angle changes to occur at framerate when all conditions in P_NoInterpolation() are met. 2022-12-04 15:11:17 +01:00
Mitchell Richters
20bf9e89f5 - Split insane interpolation test if statement into a function, we'll need this elsewhere later on. 2022-12-04 15:11:17 +01:00
Mitchell Richters
9f9c1eb18a - Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame.
* As view angles are an offset, there's no reason why these cannot lerp separately.
2022-12-04 15:11:17 +01:00
Mitchell Richters
6594ec0750 - Remove local angle truncation in R_InterpolateView().
* Genuinely see no need for this. If the local angle is BAM, why not just use it to its maximum precision?
2022-12-04 15:11:17 +01:00
Mitchell Richters
c99b18dc45 - Bring in interpolatedvalue() for TRotator<> objects from Raze.
* Would have come in eventually but I may need it.
2022-12-04 15:11:17 +01:00
Ricardo Luís Vaz Silva
8b6a714d41 Map<K,V> and MapIterator<K,V> for ZScript 2022-12-04 15:11:00 +01:00
Christoph Oelckers
1e5e65546d Revert "- add support for not localizing some text functions, and modify menu text fields to use this"
This reverts commit 91d3c4b606.

This completely breaks the menus, so it needs to go.
2022-12-04 08:13:04 +01:00
Ricardo Luís Vaz Silva
cd46f97dcc Structified A_SpawnParticle/Ex 2022-12-03 23:54:52 +01:00
Marisa the Magician
9ad7b8a048 Look up named frames using the Animation ID (if any). 2022-12-03 23:30:59 +01:00
Gutawer
91d3c4b606 - add support for not localizing some text functions, and modify menu text fields to use this 2022-12-03 23:30:38 +01:00
Ricardo Luís Vaz Silva
f666edc60c Allow Disabling of XY Billboard for Particles 2022-12-03 23:27:46 +01:00
Boondorl
964534f4b0 Added Method For Getting Portal Group Count 2022-12-03 23:27:01 +01:00
Boondorl
ad80593cb7 Allow Getting Portal Group Offsets 2022-12-03 23:27:01 +01:00
Christoph Oelckers
e8d7e0227b - fixed two memory leaks. 2022-12-03 20:39:54 +01:00
Shiny Metagross
169139c22c Fixed A_Changemodel crash from invalid modeldef names
- Invalid modeldef names no longer result in a crash

https://forum.zdoom.org/viewtopic.php?t=76810
2022-11-30 18:26:26 +01:00
Kevin Caccamo
6cf3dc045f Fix SNDINFO $rolloff always changing global rolloff
I investigated the issue a bit more by copying the grenade sounds from Wolfenstein: Blade of Agony and the definitions for the sounds from its SNDINFO lump, and then copying the entire SNDINFO lump from Wolfenstein: Blade of Agony into a small test mod, and disabling tags like $volume and $rolloff using sed. It turns out disabling $rolloff tags fixed the issue, and looking into the code, it seems as though the global rolloff was always being changed, or that rolloff was picking up a garbage pointer.

Fixes #1849
2022-11-27 21:02:07 +01:00
Ricardo Luís Vaz Silva
1a7a56ce39 Fix GC ignoring DynArrays inside fixed Arrays 2022-11-27 08:19:41 +01:00
Marisa the Magician
f256e7bb3d Fix UV "fix" for OBJ models. 2022-11-25 23:57:44 +01:00
Marisa Heit
70df34674b AST debug cleanup
- Add ArrayIterationStmt printer.
- Mark ZCC_TreeNodes as const for the AST printers.
- Use static_assert to catch missing printers without needing to run with -dumpast.
2022-11-25 19:20:24 +01:00
Christoph Oelckers
4103b282bb - fixed: The raw texture caching in the texture manager did not work.
This erroneously checked for FrontSkyLayer.
Also including some change here that allows explicit setting of the RawTexture (not used yet.)
2022-11-25 12:29:36 +01:00
Christoph Oelckers
28f8d4570d - silence compiler warning 2022-11-25 12:27:54 +01:00
Christoph Oelckers
473221bb33 - fixed SoundEngine::isValidSoundId.
This never accounted for linked and random sounds. It never got noticed because it never was used to validate anything essential before.
2022-11-25 10:28:18 +01:00
Marisa the Magician
8206c29edf Allow assigning IQM frames by animation name plus frame offset. 2022-11-25 08:12:23 +01:00
Boondorl
f322792783 Added animation support for OptionMenus
Adds Animated and AnimatedTransition MENUDEF instructions for OptionMenus. Added DontDim and DontBlur MENUDEF instructions for all menus.
2022-11-25 00:39:05 +01:00
Marisa the Magician
b002d5b8ec Fix crash if Animation is not explicitly assigned in MODELDEF. 2022-11-25 00:37:38 +01:00
Christoph Oelckers
ffdd0a11ea - fixed memory leak in ZScript backend.
This allocated some memory and never freed it again. A TArray would have been better - but since we know the maximum size is 4 we may just use a static array here to keep things as efficient as possible.
2022-11-24 23:52:53 +01:00
Christoph Oelckers
65a26d6779 - removed the string constructors from FSoundID.
Due to C++ conversion rules this was a bit too volatile. There's really not enough places where being able to pass a string directly into the sound API was beneficial - the two most frequent functions now got overloaded variants.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
b89c4affae - removed the string assignment operators.
These all caught literal 0's as well
2022-11-24 23:52:52 +01:00
Christoph Oelckers
d173c0453c - handle all remaining places of sound ID conversions after removing the conversion operators. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
160633a4a2 - migrate a large part of the sound code to FSoundIDs.
This has always been a wild mixture of IDs and ints.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
1a6da52961 - use FSoundID in SoundEngine's interface. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
d13f12cc37 - this should take care of the S_* interface. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
7e8de9d1ba - made more use of FSoundID. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
225399a1ef - use TMap for the playersound hashtable. 2022-11-24 23:52:51 +01:00
Christoph Oelckers
4d1b44d9e3 - eliminated GetSounds from the sound engine's interface. 2022-11-24 23:52:51 +01:00
Christoph Oelckers
419e593a4c - allow SNDINFO to declare sound mappings by using 'sounda = soundfle'.
This works similar to MAPINFO: The first definition in a file declares the format, all later ones must be the same.
This change in syntax increases robustness significantly because it avoids the problems with the original syntax not being able to detect badly formatted names.
2022-11-24 23:52:51 +01:00
Rachael Alexanderson
f7f67114ed - move posix I_GetGogPaths() stub to program-specific code for use later 2022-11-24 17:40:26 -05:00
Gutawer
8db4c5ea71 - process events every frame as well to ensure that menus can run at any framerate 2022-11-24 00:56:44 +01:00
Marisa the Magician
eab675c0cb Make model stretch fix opt-in with a flag. 2022-11-22 17:58:32 +01:00
Marisa the Magician
0509d3a4e7 Fix incorrect pixelratio handling on rotated models. 2022-11-22 07:44:22 +01:00
Boondorl
599b00f2ea Extended MENUDEF Functionality
*Added Font and TextureID types to Option and Image Scroller items (List items already have these)
*Added "Class" instruction for Image Scrollers
*Added ability for Option items to read in their OptionMenuDescriptor (List and Image Scroller items already have this)
*Added "ForceList" instruction for Lists so that skill, playerclass, and episode menus don't get overridden
2022-11-22 07:43:23 +01:00
Gutawer
63c2d93033 - quaternion improvements 2022-11-21 07:20:43 +01:00
Gutawer
9f0c518be9 - add remaining quaternion function implementations 2022-11-21 07:20:43 +01:00
RaveYard
540f778047 Quaternion structure and math ops 2022-11-21 07:20:43 +01:00
Ricardo Luís Vaz Silva
802f77ab19 Fix checking of wrong variable in String..Float concatenation 2022-11-19 23:55:17 +01:00
Rachael Alexanderson
b082ad9cef - fix colormap remapping when colormap entries may have fullbright entries which should not be considered duplicates
- this should address the "fullbright teeth" issue with the imps in KDiKDiZD: https://forum.zdoom.org/viewtopic.php?t=76790
2022-11-18 07:42:09 +01:00
Christoph Oelckers
eb97346b0e - stop all sound before showing ENDOOM. 2022-11-16 17:08:11 +01:00
Christoph Oelckers
d0c86952ee - disabled shortcutting the intermission code if no summary screen is wanted.
This also disabled all cutscenes being attached to the completed map.
2022-11-16 16:29:02 +01:00
Christoph Oelckers
29b4418c3a - added 'foreach' loop to ZScript.
Syntax:

foreach(variable : array)
{
}

the variable's type is automatically deducted.
2022-11-15 21:34:45 +01:00
Christoph Oelckers
4994e114c8 - backported Vector*::Sum() from Raze. 2022-11-14 19:49:37 +01:00
RaveYard
31ac1bd414 Initial implementation of Quaternion type in ZScript 2022-11-13 22:48:19 +01:00
Emile Belanger
f41f393e91 GLES: Added IQM bone support. 2022-11-13 21:19:54 +01:00
Boondorl
7517b64aee Updated to Interface Event
Changed SendConsoleEvent to SendInterfaceEvent to make functionality clearer. Added InterfaceProcess virtual to EventHandlers. Added CCMD for sending interface events.
2022-11-13 21:04:38 +01:00
Boondorl
b4a8b1278f SendConsoleEvent function for EventHandlers 2022-11-13 21:04:38 +01:00
Major Cooke
a483ad20be Replaced memset for particles as recommended by dpJudas 2022-11-13 21:02:59 +01:00
Major Cooke
f044695d28 Future-proof particles by resetting them completely when replaced. 2022-11-13 21:02:59 +01:00
Christoph Oelckers
1047b766df - added PlusZ intrinsic to Vector3 and ToVector intrinsic to numeric values.
These just mirror features of the internal vector classes.
2022-11-13 08:07:20 +01:00
Christoph Oelckers
f3b33f7cf8 - added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter. 2022-11-13 08:07:12 +01:00
Christoph Oelckers
54f1cabed9 - backend update from Raze.
Progdir stuff for POSIX.
2022-11-13 07:44:36 +01:00
UnizoneDev
a21d0c70e4 Mark the PushSound property as meta 2022-11-13 07:38:07 +01:00
UnizoneDev
b66433478c Simplify sliding objects for now 2022-11-13 07:38:07 +01:00
UnizoneDev
9af664d117 Add PushSound property and Slide state
First Commit, hip hip hooray!
2022-11-13 07:38:07 +01:00
Major Cooke
2a9e28d949 Added PS_REPLACE flag for A_SpawnParticle(Ex).
- When used, new particles that spawn when the limit is reached will replace the oldest particle.
2022-11-12 09:13:37 +01:00
RaveYard
31db5847cc Finish Vector4 implementation 2022-11-12 09:04:38 +01:00
Shiny Metagross
a525233914 Attempted to add Vector4 to ZScript 2022-11-12 09:04:38 +01:00
Christoph Oelckers
31d8a23046 - avoid infinite portal recursion. 2022-11-12 09:00:18 +01:00
Boondorl
fc7bb4a7e6 Exposed LevelLocals' LookupString functionality 2022-11-11 07:32:56 +01:00
Boondorl
aea346f1f3 Improved Slam functionality:
*Added ONLYSLAMSOLID flag to ignore non-solid Actors that aren't shootable while SKULLFLY is on.
*Added Slam state that gets entered when slamming an Actor.
2022-11-10 22:55:43 +01:00
Yukita Mayako
15e00f22e8 Normalize angle in AngleToACS
Fixes GetActorAngle returning negative or large values with no range limit.
2022-11-10 07:20:28 +01:00
Ricardo Luís Vaz Silva
31ded6dd8a Enable ANIMDEFS for particles 2022-11-08 23:56:03 -05:00
Rachael Alexanderson
a0786253c7 - add some more blacklisted cvars to defcvars 2022-11-08 14:51:41 -05:00
Christoph Oelckers
c39b7c7c7b - fixed background setup for intermissions to apply tiling only where intended. 2022-11-08 20:50:08 +01:00
Christoph Oelckers
df7a58d756 - missed one BaseBlend use. 2022-11-08 12:01:34 +01:00
Christoph Oelckers
706d465781 - removed the unused BaseBlend* variables and the testblend CCMD.
When this was still working it was software rendering only anyway so no real loss here.
2022-11-08 11:46:13 +01:00
Christoph Oelckers
dab61709f8 - added a compile option to fully disable the software renderer.
This is mainly for new games which have been designed for hardware rendering.
Note that this does not remove the software renderer's code - all it does is to disable the vid_rendermode CVAR by turning it into a static constant with the value 4.
2022-11-08 11:24:35 +01:00
Rachael Alexanderson
c860e2d732 - add the following command line parameters:
- -noextras: disable loading of any extras (lights, brightmaps, widescreen)
- -nolights: disable loading of lights
- -nobrightmaps: disable loading of brightmaps
- -nowidescreen: disable loading of included widescreen assets
2022-11-08 00:13:30 -05:00
Christoph Oelckers
d422737a7e - fixed statistics code to do proper checks for OpenGL's capabilities. 2022-11-06 23:29:29 +01:00
Marisa Heit
f34d4d2033 Fix compilation on Linux 2022-11-06 12:50:51 -06:00
Marisa Heit
7f899bd412 GC fixes/improvements
- Have a real finalizer stage for destroying objects instead of mixing them
  in to the sweep stage.
- Base GC rate on a running average of the allocation rate instead of basing
  it on the amount of time taken since the last sweep started.
- More GC stats for better tweaking.
2022-11-06 19:39:00 +01:00
Christoph Oelckers
5ea57a6c64 - when converting to a portable install, flag the current session accordingly. 2022-11-06 10:59:33 +01:00
Christoph Oelckers
4ebcff8573 - remaining changes for moving bone data to the backend 2022-11-06 10:59:33 +01:00
Christoph Oelckers
c2f64b3a90 - removed one more redundant include. 2022-11-06 10:43:58 +01:00
Christoph Oelckers
8cc3099bd0 - movrf DBoneComponents into the backend as this needs to be shared. 2022-11-06 10:41:16 +01:00
Christoph Oelckers
0e111ae151 - changed CalculateBones to receive the bone component data directly instead of the owning actor.
Since the backend also gets used by Raze it may not access Doom game data.
2022-11-06 10:27:17 +01:00
Christoph Oelckers
3e405c5215 - fixed quaternion multiply-assign operator.
This must go through a temporary because otherwise it'd overwrite its own factors.
2022-11-06 08:49:26 +01:00
Christoph Oelckers
c55dfbcddd - Backend update from Raze. 2022-11-06 08:49:25 +01:00
Jan Engelhardt
53c2ac79e1 build: unbreak compilation on Linux
gzdoom/src/d_anonstats.cpp:14:10: fatal error: i_mainwindow.h: No such file or directory
   14 | #include "i_mainwindow.h"
      |          ^~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [src/CMakeFiles/zdoom.dir/build.make:1441: src/CMakeFiles/zdoom.dir/d_anonstats.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:959: src/CMakeFiles/zdoom.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

gzdoom/src/d_anonstats.cpp:126:17: error: ‘actor’ was not declared in this scope; did you mean ‘AActor’?
  126 |                 actor->         return false; // no host, disable
      |                 ^~~~~
      |                 AActor

$ find . -name "i_mainw*"
./src/common/platform/win32/i_mainwindow.h
./src/common/platform/win32/i_mainwindow.cpp

Fixes: g4.5pre-1327-g6670bc09b
Fixes: g4.9pre-359-g082818405
2022-11-05 19:48:46 -04:00
Christoph Oelckers
eb369b24c3 - fixed FileExists check for -loadgame.
This was done before the current savegame path was known so it always errored out.
2022-11-05 23:25:10 +01:00
Rachael Alexanderson
35f07008cf - create g4.10pre tag 2022-11-05 18:04:50 -04:00
Shiny Metagross
9063bc8ef6 IQM 4.9 Last patch
- Improved performance of YZ axis swap matrix calculations by calculating them with the initial matrix calculations.
- IQMs with no bones will no longer crash
2022-11-05 19:22:19 +01:00
Christoph Oelckers
303e751a81 - fixed definition of "msg" CVAR. 2022-11-05 18:26:54 +01:00
Christoph Oelckers
4e72281fc6 - Better messages on migration requester. 2022-11-05 13:31:22 +01:00
Christoph Oelckers
ff37d710e2 - overhaul of savegame path management.
* use a different subfolder for each IWAD's saves.
* do not allow load and save CCMDs to escape the save folder. Absolute paths and '..' are being blocked now.
* unified savegame path and filename generation in one single function. All ad-hoc file name generation was replaced.
* -loadgame will also use the designated savegame folder now.
2022-11-05 13:28:31 +01:00
Christoph Oelckers
f0601a49a2 - changed save and load commands to work within the 'save' directory.
Escaping via absolute paths and '..' is blocked now.
2022-11-05 13:28:31 +01:00
Christoph Oelckers
33afe45dda - changed Windows config and game data storage to prefer known folders over the program directory.
This matches modern software design standards, if a portable install is desired a config named "gzdoom_portable.ini" needs to be created in the program directory.
This may be an empty file for a first launch.
2022-11-05 13:28:31 +01:00
Marisa the Magician
2bb0dcca13 Fix print color of level load message. 2022-11-05 13:08:51 +01:00
Marisa the Magician
a75a96d993 Level name printout on load shouldn't be sent to the HUD. 2022-11-05 13:08:51 +01:00
Christoph Oelckers
0828184055 - did some cleanup on the statistics code. 2022-11-05 12:11:36 +01:00
Christoph Oelckers
72aa6fe3b8 - did some cleanup on p_mobj.cpp
* deleting some unused code
* turned several class methods into static local functions in cases where they never were used outside this file.
* inlined the dangerous assignment operator in the only place where it was used.
2022-11-05 12:00:43 +01:00
Christoph Oelckers
b8821eb6da - declare C++ class AActor as final.
This is not supposed to be inherited from anymore so let's take this optimization opportunity.
2022-11-05 10:46:25 +01:00
Christoph Oelckers
500e2d6c5a Revert software renderer parts of "- sprite lightlevel cleanup and fixes."
This code had some issues which are not easily fixed, so it's better to just undo it all.
2022-11-05 09:55:25 +01:00
Christoph Oelckers
435e7dddcd - fixed: P_SpawnMapThing may not call playsim code.
There was one special case allowing to let an actor die on spawn, but this could call script code on an incompletely set up map which resulted in crashes.
2022-11-05 09:43:06 +01:00
Christoph Oelckers
ec1525b0c4 - added PARAM_NULLCHECK to the block iterator creation functions. 2022-11-05 09:16:55 +01:00
Christoph Oelckers
9c75a38ec3 - added [[noreturn]] to several functions that always throw exceptions. 2022-11-05 09:09:00 +01:00
Ricardo Luís Vaz Silva
7d81417829 Particle Rolling 2022-11-01 22:30:16 +01:00
Ricardo Luís Vaz Silva
b6202ffc4c Add Textured Particles 2022-11-01 21:25:31 +01:00
crashmahoney
0ca868d93f Fix HUD models not drawing if MODELDEF has been changed with A_ChangeModel 2022-11-01 11:48:16 +01:00
Shiny Metagross
bea6d2434e Update p_actionfunctions.cpp 2022-10-31 11:34:55 +01:00
Shiny Metagross
f7c3615d3b IQM Refactor Milestone
- Removed bone manipulation code
- Implemented an index in calculateBones to optimize multi-armature actors
- Moved the bone storage object's creation to RenderModels so that the armature array can be sized there
2022-10-31 11:34:55 +01:00
Shiny Metagross
7092971331 Bone manipulation updates
- Factored in parent bone rotations to check if a bone needs updating
- Implemented multiply Quaternion functions to TVector4
- Converted Euler rotations in A_ManipulateBone to degrees
2022-10-31 11:34:55 +01:00
Shiny Metagross
28444d4cfd Bone manipulation start
- Bone manipulation is largely finished, but I need to figure out how to multiply quaternions
2022-10-31 11:34:55 +01:00
Shiny Metagross
317e163fcf Update models_iqm.cpp
- Swapped YZ axis of IQM models
- Cleaned up some leftovers
- Now just prints a benign error message if a model has no joint data
2022-10-31 11:34:55 +01:00
Shiny Metagross
3f3cc5bbc3 IQM Refactor start
- Refactored IQM and calculateBones to process TRS at runtime which resolves some of the faulty animations with large rotations. Will also make bone manipulations much easier to do
2022-10-31 11:34:55 +01:00
Marisa the Magician
c36da35e37 Fix inconsistent distance and hit position on traces that skip everything.
As it currently stood, only traces that never found anything in traversal had their distance and final position corrected.
Meanwhile, traces that skipped everything would return the distance and position of the last thing they crossed instead.
This change makes both cases consistent by "filling out" the remainder of the trace line for the latter.
2022-10-30 15:20:01 +01:00
Magnus Norddahl
181eda0a83 Fix canvas textures getting clipped by wrong scissor box 2022-10-28 18:01:59 -04:00
Magnus Norddahl
1a1adc5c29 Fix vulkan backend clearing the canvas textures to undefined contents 2022-10-28 14:53:05 -04:00
Christoph Oelckers
4ce0ef41b5 - made DMover and subclasses non-abstract so they can be inherited from.
This is needed for interpolated custom floor/ceiling movers.
2022-10-26 17:45:02 +02:00
Christoph Oelckers
6eab875ec2 - added option to show hub and episode names on the alt HUD.
Still very much work in progress because few mods have set this up.
CVARs default to off and are not exposed to the menu.
2022-10-26 17:44:51 +02:00
Christoph Oelckers
7cd7630dbd - deleted some obsolete settings from project. 2022-10-26 17:44:51 +02:00
Christoph Oelckers
7e0084f56b - Backend update from Raze. 2022-10-25 07:02:45 +02:00
Christoph Oelckers
2b805e196d - do two-step init of CVARs to ensure that flag and mask vars always find their master CVar. 2022-10-24 19:27:04 +02:00
alexey.lysiuk
da33b0f9c3 - removed obsolete defaults from Cocoa backend
This legacy code from the time of exclusive fullscreen mode began to crash after changes in console variables handling
2022-10-24 09:57:36 +03:00
Christoph Oelckers
671b8696bb - made CVar declarations type safe again. 2022-10-22 09:29:38 +02:00
Christoph Oelckers
453688ccc6 - reworked CVARs to not use a linked list and to be initialized manually.
This solves two problems:

* The linked list is too slow, a map is better. A map cannot be used with statically allocated CVARs because order of initialization is undefined.
* The current CVAR system is an unordered mishmash of static variables and dynamically allocated ones and the means of identification are unsafe. With this everything is allocated on the heap so it can all be handled the same by the cleanup code.
2022-10-21 18:56:43 +02:00
Christoph Oelckers
ef887403cf - marked a few Printf calls in critical error paths as PRINT_NONOTIFY. 2022-10-20 23:55:29 +02:00
Christoph Oelckers
07f08de474 - fixed some warnings. 2022-10-20 22:22:30 +02:00
Christoph Oelckers
7abe718abb - removed some stuff from CMake that no longer applies. 2022-10-20 22:16:34 +02:00
Christoph Oelckers
0ba5803111 - two more CMake checks that are not needed anymore.
Neither of these function is in use so we do not need to check for them.
2022-10-20 21:19:01 +02:00
Christoph Oelckers
9e76faff1f - removed some 32bit only CMake code. 2022-10-20 21:11:18 +02:00
Christoph Oelckers
5a52f61096 - fixed: R_LoadVoxelDef did not fully initialize the voxel descriptor it creates. 2022-10-20 20:23:35 +02:00
Christoph Oelckers
96e98fc4a8 - use field initializers for VoxelOptions 2022-10-20 20:17:14 +02:00
Christoph Oelckers
70df444660 - Backend update from Raze
* fix for serializing vector arrays.
* a few adjustments for asan on Windows.
* NOMUSICCUTOFF flag for movie player.
* a bit of cleanup.
2022-10-20 20:12:06 +02:00
Christoph Oelckers
ca8897028f - stupid typo... 2022-10-20 19:06:07 +02:00
Christoph Oelckers
ba8a334862 - removed two bogus asserts from the script compiler. 2022-10-20 18:39:51 +02:00
Christoph Oelckers
1855edba37 - don't crash on null pointers in V_GetFont. 2022-10-20 18:18:22 +02:00
Christoph Oelckers
4686d10f41 - zero the velocity of crunched sprites.
Since their size is zeroed, they are no longer subject to collision detection and may slide out of the level otherwise.
2022-10-20 17:12:43 +02:00
Christoph Oelckers
6ba4295136 - don't crash when destroying incomplete textures.
This can happen during TEXTURES parsing in case of an error.
2022-10-20 17:12:43 +02:00
Christoph Oelckers
b6c5232fea - try to keep the engine stable for as long as possible if a VM exception occurs in OnDestroy while running a cleanup.
This will still crash, but run long enough for the exception message to be visible.
2022-10-20 17:12:43 +02:00
Christoph Oelckers
936e89e3d4 - fixed F2DDrawer::SetClipRect. 2022-10-20 17:12:43 +02:00
Christoph Oelckers
54e0201204 - added vanilla donut handling to compat_floormove. 2022-10-20 17:12:43 +02:00
nashmuhandes
8394de00ca Fixed: voxel models pitch/roll properties weren't initialized correctly 2022-10-20 08:05:14 -04:00
Christoph Oelckers
457b9b71d9 - disable the native part of coronas as well. 2022-10-20 07:50:53 +02:00
nashmuhandes
80a31b074d Disable coronas for now 2022-10-19 22:52:27 +02:00
inkoalawetrust
29421e6975 Added QF_SHAKEONLY
The QF_SHAKEONLY flag changes the behavior of earthquakes with a damage radius, so that they only shake actors around, without also harming them.
2022-10-19 22:50:50 +02:00
inkoalawetrust
457ad97553 Added QF_AFFECTACTORS.
The QF_AFFECTACTORS flag makes the thrusting and harming of damaging earthquakes also affect monsters. Monsters with DONTTHRUST will not be flung around by earthquakes.
2022-10-19 22:50:50 +02:00
inkoalawetrust
05a5a4be51 Added the QF_GROUNDONLY flag.
The QF_GROUNDONLY flag makes earthquakes only shake the player while they are standing on the ground.
2022-10-19 22:50:50 +02:00
Shiny Metagross
7722784de6 Voxels did not have an animationID causing a crash
- Needed to assign -1 to the first index of animations for voxels or a crash occurs
2022-10-19 22:48:57 +02:00
Shiny Metagross
7972afc350 Revert "Before moving boneSelector from unsigned complete"
This reverts commit 8f2b8fa878.
2022-10-19 22:48:57 +02:00
Shiny Metagross
ee7c467a17 Before moving boneSelector from unsigned complete
- boneSelector being unsigned might be the reason why gles is having a hard time. Just stashing this commit here as a bookmark in case I need it
2022-10-19 22:48:57 +02:00
Shiny Metagross
13edabac19 Fixed crash on Intel cards with less than 64 uniform block align
- This should fix the crash with Intel cards. Sprite blinking appears to not occur either
2022-10-19 22:48:57 +02:00
Shiny Metagross
a8bab6a21d Intel fix
- GZDoom can launch for Intel users - IQMs work for Intel too
2022-10-19 22:48:57 +02:00
Shiny Metagross
5b60118af2 HUD models now render properly
- IQM HUD Models will now render properly
2022-10-19 22:48:57 +02:00
Shiny Metagross
6564adf310 Fixed a couple bugs
- MODELSAREATTACHMENTS was basically being applied anyways
- Fixed a crash related to using an animation that never had the vertex buffer drawn because it was never used as a model
2022-10-19 22:48:57 +02:00
Shiny Metagross
be9a671217 Update models_iqm.cpp
- Fixed an issue with IQMs exported from blender that caused some issues in the blend weights
2022-10-19 22:48:57 +02:00
Shiny Metagross
ab7be9b4a4 This fixes models without animation clips
- IQMs lacking animation clips would not appear
2022-10-19 22:48:57 +02:00
Shiny Metagross
b7c1c53eb0 Almost done with To-Dos
- The compile errors should be fixed
- Implemented a way for skeletal models using the MODELSAREATTACHMENTS flag to not upload duplicate bones to the bone buffer
2022-10-19 22:48:57 +02:00
Shiny Metagross
3f8141ed04 I'm not done with this
- I need to figure out how I'm gonna reference the same boneStartIndex between the indices. Maybe some property in smf? The problem is that even though the bone calculations are done just once per instance of the actor when the flag is enabled, the bone buffers are being copied still, and if there's too much data, some will quit uploading because it's full. Besides doing this, I may just see about increasing the buffer size if possible. It's really just not very big.
2022-10-19 22:48:57 +02:00
Shiny Metagross
3c9a1ffe5e Give a fatal error when no mesh data is loaded
- Part of having mesh data in an IQM includes joints. If a model doesn't have any mesh data to it, it won't have joints, and those are necessary. Poses are a different story however.
2022-10-19 22:48:57 +02:00
Shiny Metagross
5f0bf8eda6 Update models.cpp
- Removed an unnecessary bool
2022-10-19 22:48:57 +02:00
Shiny Metagross
5670e6f54c Some of the to-dos
- Implemented Animation parameters for A_ChangeModel
- Made a modeldef flag to treat additional model indices as just attachments, meaning they will use armature data from index 0
- Fixed an issue with A_ChangeModel where generated indices lower than smf frame amounts could not actually generate anything
2022-10-19 22:48:57 +02:00
Shiny Metagross
e9e919b54c Changes before To-Dos
- Removed redundant AttachAnimationData functions from derived model classes
- Fixed indentation in IQM loader
- Fixed a merging issue in the MD3 FindFrame
- Fixed a formatting issue in FindFrame in Model.h?
2022-10-19 22:48:57 +02:00
Shiny Metagross
08f520f1c6 IQM Support Implemented
More info to come
2022-10-19 22:48:57 +02:00
Christoph Oelckers
dbd6a9dea1 - fixed DrawLine commands by giving them a consistent floating point interface. 2022-10-19 20:39:41 +02:00
Christoph Oelckers
57add9a45c - fixed some warnings and updated vectors.h 2022-10-15 12:10:01 +02:00
Christoph Oelckers
1241b277f3 - fixed direct native interface for Draw(Thick)Line. 2022-10-15 09:10:49 +02:00
Christoph Oelckers
c0c9f8e15c - Backend update from Raze. 2022-10-14 20:11:05 +02:00
Christoph Oelckers
169053587c - fixed: The main loop never checked the cutscene flag for disabling wipes. 2022-10-14 07:10:15 +02:00
Chris Robinson
9aee7415eb Sync movie video playback to the audio, when possible 2022-10-14 07:10:06 +02:00
Christoph Oelckers
f34ba48e3e - constant update. 2022-10-12 19:30:16 +02:00
Magnus Norddahl
37039721bd Fix washed out colors in Vulkan HDR mode 2022-10-11 00:10:02 +02:00
Chris Robinson
d2f8c57136 Make frame timing consistent between movie players 2022-10-10 08:33:23 +02:00
Chris Robinson
bf2e7c210d Use a MovieAudioTrack for synchronized audio with MvePlayer 2022-10-10 08:33:23 +02:00
Chris Robinson
573784b37f Handle the SoundStream in MvePlayer instead of InterplayDecoder 2022-10-10 08:33:23 +02:00
Chris Robinson
bf933b3904 Decode audio and video separately in InterplayDecoder 2022-10-10 08:33:23 +02:00
Chris Robinson
fa2cea3e5b Read whole chunks at a time from Interplay MVE files 2022-10-10 08:33:23 +02:00
Chris Robinson
80bf62cb3c Start the VPX audio track on the first frame
MoviePlayer::Start is called about a second (potentially) before
MoviePlayer::Frame starts getting called to actually play the video, causing
the audio to start early and require significant synchronization adjustment.
This isn't ideal to constantly check if the audio track needs to play in
MoviePlayer::Frame, but it's better than starting prematurely.
2022-10-10 08:33:23 +02:00
Chris Robinson
5e465a65e2 Make a common class to help with movie audio streams 2022-10-10 08:33:23 +02:00
Chris Robinson
d11e2ef1ac Always output 16-bit samples from SmackerDecoder 2022-10-10 08:33:23 +02:00
Chris Robinson
3b6723e6f2 Better report the number of Smacker audio tracks 2022-10-10 08:33:23 +02:00
Chris Robinson
1a692f5c28 Synchronize Smacker movie audio tracks 2022-10-10 08:33:23 +02:00
Chris Robinson
5d00b96e5f Read Smacker video and audio data separately 2022-10-10 08:33:23 +02:00
Chris Robinson
19a4eb79aa Read in full packets at a time from smacker files 2022-10-10 08:33:23 +02:00
Chris Robinson
7401e02a14 Include the source latency for movie audio synchronization 2022-10-10 08:33:23 +02:00
Chris Robinson
23fff7791e Update and use OpenAL Soft's extension headers 2022-10-10 08:33:23 +02:00
Chris Robinson
c825ff3543 Use a more reasonable buffer size for the movie audio stream 2022-10-10 08:33:23 +02:00
Chris Robinson
a2f0c1aee6 Update the audio offset when skipping a full update 2022-10-10 08:33:23 +02:00
Chris Robinson
1a233b08c3 Synchronize the VPX "soundtrack" with the frame clock 2022-10-10 08:33:23 +02:00
Chris Robinson
78f40fe99c Add a method to retrieve the play position of a SoundStream 2022-10-10 08:33:23 +02:00
Chris Robinson
c808aad595 Play the VPX "soundtrack" as a SoundStream 2022-10-10 08:33:23 +02:00
Christoph Oelckers
94b249172a - normalize the timer with the app start, not the epoch.
This ensures smaller values and less wraparounds with integer values in scripts.
2022-10-09 14:52:08 +02:00
Christoph Oelckers
b225a910a0 - Backend update from Raze 2022-10-09 13:44:43 +02:00
Kevin Caccamo
83373d117d Fix compilation on POSIX (Linux/macOS) systems 2022-10-02 22:04:40 +02:00
Christoph Oelckers
2c29a93f1f - fixed compile. 2022-10-02 20:45:00 +02:00
Christoph Oelckers
519005ff4d - snd_reset cannot be shared. 2022-10-02 20:22:23 +02:00
Christoph Oelckers
00bb258d58 - moved some stuff from wipe.h to wipe.cpp. 2022-10-02 19:26:23 +02:00
Christoph Oelckers
207913bced - added a config getter to the interface.
Now the only external reference left in the backend code is the call to GameMain.
2022-10-02 18:42:08 +02:00
Christoph Oelckers
e6615629b3 - move two more backend->frontend calls to the interface 2022-10-02 18:29:57 +02:00
Christoph Oelckers
b19b0db150 - moved language CVAR to backend. 2022-10-02 17:59:39 +02:00
Christoph Oelckers
73142ef2cf - handle menu customization via callbacks. 2022-10-02 17:49:39 +02:00
Christoph Oelckers
a084667bed - move hud scale CVARs to the backend. 2022-10-02 17:33:49 +02:00
Christoph Oelckers
9076145319 - handle autoload flags in startup through function parameters instead of directly accessing the CVARs. 2022-10-02 17:12:34 +02:00
Christoph Oelckers
f63d4d8a12 - handle Build tiles via explicit callback to the init function. 2022-10-02 16:54:43 +02:00
Christoph Oelckers
8aaab153fa - add a system interface for CheckCheatmode and moved some sound code to the backend. 2022-10-02 16:48:56 +02:00
Christoph Oelckers
75afc69306 - moved IWAD CVARs to backend. 2022-10-02 14:42:26 +02:00
Christoph Oelckers
c596095fe0 - minor cleanup. 2022-10-02 14:36:49 +02:00
Christoph Oelckers
8e6bdd72fa - moved UpdateVRModes, AppActive and gamestate into the backend. 2022-10-02 14:28:40 +02:00
Christoph Oelckers
65f6e788eb - moved gitinfo.h into the backend 2022-10-02 14:20:15 +02:00
Christoph Oelckers
307ff4e163 - pass filename to I_WriteIniFailed as parameter.
This accessed game data from the backend.
2022-10-02 14:08:07 +02:00
Christoph Oelckers
34f30ee70b - remove gi.h includes in backend code. 2022-10-02 14:04:24 +02:00
Christoph Oelckers
01f8131969 - moved chatmodeon to the backend. 2022-10-02 14:01:43 +02:00
Christoph Oelckers
12adee5256 - fixed a few includes 2022-10-02 13:57:36 +02:00
Player701
78360c1888 - Exported GetDisplayTopOffset for font characters to ZScript 2022-09-30 10:07:41 +02:00
inkoalawetrust
69b9f107f0 Added support for BLOCKLANDMONSTERS in Line_SetBlocking.
This PR was written by MrRaveYard
2022-09-28 07:56:12 +02:00
inkoalawetrust
502c9fef5c Added APROP_FriendlySeeBlocks to Set/GetActorProperty 2022-09-24 16:44:11 -04:00
ZZYZX
662027f429 Fix typo that was always calling SetXOffset even in SetYOffset 2022-09-20 15:08:02 -04:00
ZZYZX
a4a4e4e9f9 Fix planeval; add direct sector slope manipulation 2022-09-20 15:08:02 -04:00
ZZYZX
f049421831 Modify to have one GetVertexZ rather than IsVertexZSet / GetVertexZ 2022-09-20 15:08:02 -04:00
ZZYZX
a58acfc625 Add vertex height manipulation functions to LevelPostProcessor 2022-09-20 15:08:02 -04:00
Alison Watson
18a67cfdb2 use constexpr constructor for PARAM_COLOR_AT 2022-09-16 20:50:33 +02:00
Alison Watson
c6d6322494 use PalEntry instead of int for ParseDrawTextureTags 2022-09-16 20:50:33 +02:00
Alison Watson
fb32ff45dd fix Screen.DrawShapeFill not properly setting renderstyle 2022-09-16 20:50:33 +02:00
Chronos Ouroboros
12995b84c7 - fixed FDynArray_Obj not performing write barriers properly. 2022-09-16 20:45:39 +02:00
nashmuhandes
7ce364bf0f Add sv_noextraammo. When set to true, disables that weird hardcoded behavior from original Doom that gives extra ammo when picking up weapons in deathmatch 2022-09-15 20:41:16 -04:00
Christoph Oelckers
c87e87365d - fixed: all script methods adding an object to a dynamic array must perform a write barrier. 2022-09-08 13:30:00 +02:00
Christoph Oelckers
175c91308a - move BobSin to game side. 2022-09-04 09:01:57 +02:00
Christoph Oelckers
8cba80a2cd Revert "- fixed allocation size when constructing a string from a file system entry."
This reverts commit 513d8cea8d.

This change broke voxel loading and possibly other things as well
2022-09-04 08:58:45 +02:00
inkoalawetrust
664ccf8a7c - fix bug with 06ee21c51d - if (!pl) should always return false 2022-09-03 19:06:46 -04:00
Rachael Alexanderson
ca6a2152b9 - add freezetics actor property 2022-09-03 17:58:16 -04:00
Rachael Alexanderson
06ee21c51d
- allow notification of actor goal is reached inside of a SECF_NOATTACK sector 2022-09-03 17:37:48 -04:00
Emile Belanger
ba83879e99 GLES2: Fix anistropic filtering 2022-08-30 18:33:52 -04:00
Christoph Oelckers
c7e425f759 - make TAngle::Degrees() constexpr. 2022-08-26 18:32:23 +02:00
Christoph Oelckers
7ad09c7a77 - fixed sky cap color handling
Backported from Raze
2022-08-26 18:17:02 +02:00
Christoph Oelckers
ed5287ef23 - added Q16 and Build angle converters to TAngle
To have full coverage. Q16 is what ACS uses and Build angles are needed in Raze.
2022-08-26 18:09:39 +02:00
Christoph Oelckers
4032576519 - blocked off direct access to TAngle’s internal storage. 2022-08-26 18:09:29 +02:00
Christoph Oelckers
3d2578820b - block direct comparisons of TAngle with floats 2022-08-26 18:01:52 +02:00
Christoph Oelckers
f0fbdba593 - disable implicit conversions from float to TAngle 2022-08-26 18:01:26 +02:00
Rachael Alexanderson
8468f712e0 - fix arti teleport and arti teleother not respecting useplayerstartz mapflag 2022-08-26 04:11:29 -04:00
Marisa the Magician
8c0ad50db3 UE1 models now handle frame index -1 properly. 2022-08-24 19:56:07 +02:00
Yarn366
f27acfa6b2 Add support for the GOG releases of the Unity versions of Doom and Doom II. 2022-08-19 08:00:53 +02:00
Rachael Alexanderson
0eae1b9be2 - change the Linux/BSD version of system call to std::system 2022-08-18 00:42:27 -04:00
Christoph Oelckers
4bdb8edea6 - removed redundant argument. 2022-08-18 00:06:40 +02:00
Christoph Oelckers
03c725c0da - use NSFileManager on macOS to handle the current directory. 2022-08-17 23:43:56 +02:00
Christoph Oelckers
532a493752 - get_current_dir_name apparently does not exist on macOS 2022-08-17 22:57:30 +02:00
Christoph Oelckers
7f3c09c918 - use get_current_dir_name for I_GetCWD on POSIX. 2022-08-17 22:51:39 +02:00
Rachael Alexanderson
e261132db0 - use char* get_current_dir_name() in Mac/Linux to save the cwd in the shell open function 2022-08-17 16:32:09 -04:00
Christoph Oelckers
a2369b945c - fixed custom obituary lookup. 2022-08-17 21:35:59 +02:00
Christoph Oelckers
1940527dba - carry over the tiling flag from the finished to the entering screen 2022-08-17 21:28:52 +02:00
Ed the Bat
88674b5ea0 Prevent Keyconf from adding duplicate playerclass 2022-08-17 21:12:10 +02:00
Christoph Oelckers
513d8cea8d - fixed allocation size when constructing a string from a file system entry.
The internal allocator already added space for the terminazing \0, so the string's size was one character too large.
2022-08-17 21:10:15 +02:00
Christoph Oelckers
8d3c1adf05 - do not use POSIX directory functions in common code.
For Windows these need to redirect to Unicode system functions to properly handle paths not representable in 8 bit encodings.
2022-08-17 10:02:25 +02:00
Christoph Oelckers
c5f4967871 - cleanup of Windows's I_OpenShell* functions
* do not use deprecated library features (wstring_convert was deorecated in C++17) - instead use the existing WideString utility.
* do proper calculation of the current directory's path length.
* remove the mostly redundant I_OpenShellFile function and instead use ExtractFilePath to get the config's path.
2022-08-17 00:31:22 +02:00
Rachael Alexanderson
64824430fa - make shell folder functions unicode aware 2022-08-16 22:10:09 -04:00
Rachael Alexanderson
ee132372d8 - patch for this note: 03d76027cf (commitcomment-81265953) 2022-08-15 21:35:36 -04:00
Rachael Alexanderson
a9cadd345d - change the way posix folders are opened - fixes issue #1707 2022-08-14 18:38:20 -04:00
Rachael Alexanderson
03d76027cf - fix issue #1708 - respect user preferences when specifying custom save/config/screenshot paths 2022-08-14 15:03:20 -04:00
Rachael Alexanderson
dd07f6513f - encapsulate folder/file names in quotes on Windows too 2022-08-14 10:38:15 -04:00
Rachael Alexanderson
259a8e0f74 - fixed: encapsulate folders for shell commands in quotes for Linux/Mac 2022-08-12 23:20:30 -04:00
Christoph Oelckers
e27e3453f9 - fixed obituary string generation 2022-08-12 21:24:09 +02:00
Yarn366
6489f5ebf0 Add detection for the Final Doom WADs that were recently added to the Steam version of Doom II.
Also add detection for the Steam Unity versions of Doom and Doom II to posix/i_steam.cpp, which was apparently missed by whoever added it to the win32 version.
2022-08-12 11:39:41 +02:00
Christoph Oelckers
1b43575580 - new method to define obituaries without modifying actors.
Adding strings to the language file named OBITUARY_{classname}_{damagetype} or OBITUARY_{classname} will now be detected automatically and override all other definitions.
This not only allows damage type aware obituaries but also makes it easier to retroactively add them to mods that have none defined.
2022-08-11 23:46:09 +02:00
Christoph Oelckers
c89ae6358e - Backend update from Raze, mostly maintenance changes without new functionality. 2022-08-11 22:51:19 +02:00
Christoph Oelckers
283c5d688c Merge branch 'master' of https://github.com/coelckers/gzdoom 2022-08-11 22:39:53 +02:00
Rachael Alexanderson
8e50c59301 - remove latch flag from sv_cheats 2022-08-11 15:43:22 -04:00
nashmuhandes
50d16c75d9 Add corona actor 2022-08-11 20:38:24 +08:00
Rachael Alexanderson
04a6fa321b - use FString instead of std::string in the Windows shell functions 2022-08-10 18:13:49 -04:00
Rachael Alexanderson
f2df781b76 - add menu entries 2022-08-10 13:10:13 -04:00
Rachael Alexanderson
82d0376520 - add openscreenshots opensaves and openconfig console commands on Windows and Linux and Mac 2022-08-10 13:00:33 -04:00
Christoph Oelckers
4710a40fb5 - reapply PR 1512 which was accidentally deleted 2022-08-09 10:48:00 +02:00
Christoph Oelckers
735c2a9545 - pass clip rect as pointer to F2DDrawer::AddLine. 2022-08-05 21:13:47 +02:00
Marisa the Magician
931211b9db Export FindLumpFullName to ZScript. 2022-08-05 20:25:02 +02:00
Marisa Heit
4c6d0e4209 Better error message for unknown nested types 2022-08-04 07:42:46 +02:00
Marisa Heit
66460bfeb8 Add support for nested user types
The grammar already understood these constructs. Now the compiler does too.
2022-08-04 07:42:46 +02:00
Christoph Oelckers
ef0e9c025e - fixed comparison checks. 2022-08-03 10:58:37 +02:00
Christoph Oelckers
3563c99ead - made adjustments for proper int type promotion to allow internal ZScript to compile with it on.
* Emit a warning when relational comparisons are made between signed and unsigned ints.
* Handle shift operators so that they do not fail for constant definitions.
* changed return type of Array::Size() to signed int as most code out there is using it this way and would otherwise drown in warnings.
* fixed a few deprecation warnings.
2022-08-03 10:26:29 +02:00
Christoph Oelckers
388a5cb481 - ZScript: fixed integer type promotion for shift operator
* the first operand must never be sign-changed.
* the second operand should always be made unsigned. Shift by negative values is undefined and may produce undefined behavior on some systems.
2022-08-03 09:03:03 +02:00
Christoph Oelckers
8eabaf61c9 - version-restrict int to uint promotion.
Some mods depend on this not happening.
2022-08-03 08:45:37 +02:00
Christoph Oelckers
5cee2b5803 - fixed: The compile context for constant evaluation did not initialize its Version member. 2022-08-03 08:44:38 +02:00
Marisa Heit
f7f9746a0f Don't throw away unsignedness when passing unsigned constants to the codegen 2022-08-02 07:48:21 +02:00
Marisa Heit
7ce29fe855 Add signed->unsigned promotion for binary operators
The C-style rules for integer promotion are that when you have a signed int and an unsigned int, if you can't promote to a wider type, then the signed type is promoted to an unsigned type.
2022-08-02 07:48:21 +02:00
Christoph Oelckers
15c5728f01 - fixes and improvements for survey code.
Check for Windows on ARM and do proper checks for GLES.
32 bit checks are still retained to catch non-official builds that disable the compile check.
2022-07-31 17:49:21 +02:00
Christoph Oelckers
4422f9079c - fix menu commands with semicolon separated commands
C_DoCommand only executes one command, to do full processing AddCommandString is needed.
2022-07-29 08:38:34 +02:00
Christoph Oelckers
ee2c775bd8 - fix last commit 2022-07-29 08:36:26 +02:00
Christoph Oelckers
5bae588f80 - get rid of M_Malloc call in WriteSavePic
Use TArray instead
2022-07-29 08:25:55 +02:00
Marisa Heit
b9501a7291 Fix definition order of ZScript structs
Do a first pass over the Structs array in CompileAllFields() to reorder them such that if a struct uses other structs, those structs will be resolved first.
2022-07-29 08:17:33 +02:00
Magnus Norddahl
742ae8c907 Fix viewpoint buffer not getting cleared when in the menus 2022-07-28 13:52:09 +02:00
Christoph Oelckers
aae85a1b91 - backported KDE detection from Raze. 2022-07-28 10:52:26 +02:00
Christoph Oelckers
5a63044141 - Project fix for Softpoly removal. 2022-07-28 10:51:55 +02:00
Christoph Oelckers
93e934c8d0 - removed the Softpoly backend.
Its only relevant use case has been to use the software renderer on hardware not capable of OpenGL 3.3, but a large chunk of that can now be serviced with GLES.
In addition it has ceased further development and has not received any of the recent 2D render features which further reduces its viability.
2022-07-28 10:31:56 +02:00
Marisa the Magician
9eb8d65cb1 Fix another incorrect mapping of texture indices for UE1 models. 2022-07-27 10:21:29 +02:00
Shiny Metagross
83077b6f95 Update models.cpp
- Removed a useless bool
- Fixed an issue with model containers having less models than their smf total models amount using the smaller amount
2022-07-27 07:38:50 +02:00
Magnus Norddahl
e2778ba442 Move TexMan.GetCanvas and GetTextureCanvas to common 2022-07-25 18:50:16 +02:00
Magnus Norddahl
753822359e Add support for multiple 2d drawer viewpoints in the same frame 2022-07-25 18:50:16 +02:00
Magnus Norddahl
6c3fd3cc4d Fix softpoly null pointer crash 2022-07-25 18:50:16 +02:00
Magnus Norddahl
fe3751a502 Fix renderdoc error message about not all textures getting bound 2022-07-25 18:50:16 +02:00
Magnus Norddahl
b8569fa29f Fix GC shutdown crash due to canvas objects not getting GC'ed at the end
Fix typo in Draw2D and add support for specifying the viewport size directly
2022-07-25 18:50:16 +02:00
Magnus Norddahl
6137ea12d1 Fix typo 2022-07-25 18:50:16 +02:00
Magnus Norddahl
bb503950df Add canvastexture definition to animdefs.
Split canvas texture rendering from camera texture rendering.
2022-07-25 18:50:16 +02:00
Magnus Norddahl
aa083604e1 Fix variable arg bindings
Always clear the drawer
2022-07-25 18:50:16 +02:00
Magnus Norddahl
0049fea8d6 Add missing DrawText binding 2022-07-25 18:50:16 +02:00
Magnus Norddahl
4f0b02b396 Add a 2d drawer to canvas textures 2022-07-25 18:50:16 +02:00
Marisa the Magician
cd20d707d4 Fix incorrect mapping of texture indices for UE1 models. 2022-07-25 13:52:46 +02:00
nashmuhandes
351a4c9a5a Added PitchFromMomentum, UseActorPitch and UseActorRoll to VOXELDEF. Behaves exactly like their 3D model counterparts. Hardware renderer only. 2022-07-25 08:06:44 +02:00
Ricardo Luís Vaz Silva
12660b0015 Add special case for relative includes from top-level files 2022-07-24 09:05:16 +02:00
Rachael Alexanderson
27d4fc28db - implement fix as suggested by user 'axet' fixes issue #1621 2022-07-23 19:00:59 -04:00
Christoph Oelckers
9875850c19 - got rid of the state variables in the model class entirely.
This is *not* the right way to reduce function parameter count. The data in question is far easier evaluated at the calling site and passed as a parameter.
2022-07-23 10:35:01 +02:00
Christoph Oelckers
76c8214d67 - fixed destructive logic and memory allocation issues in RenderFrameModels.
This completely avoids modification of the model data, instead using local variables.
2022-07-23 10:10:15 +02:00
Shiny Metagross
9ab6557822 A_ChangeModel now has generatorIndex
- To really take advantage of this function, I thought it would be useful to be able to add additional models if the user wants to. Let's say you got a player model at index 0. Your gun model has the same frames, but you don't want to duplicate the modeldef data. With generator index, you don't need to duplicate the data, just tell generator index to clone frame data from index 0.
- Implemented a little something to check if a negative skin or model index were passed, and prevent modders from pulling that off.
2022-07-22 17:11:59 +02:00
Shiny Metagross
fa6dfdf64c Update p_actionfunctions.cpp
Woah, this didn't work with custom inventory chains!
2022-07-22 17:11:59 +02:00
Shiny Metagross
69ee1eb0a2 Surfaceskin modification
- Made it so when rendering a model, it clones an smf to use so that data isn't overwritten
- Reimplemented the skin index property. This changes the behavior of this index if CMDL_USESURFACESKIN is activated
2022-07-22 17:11:59 +02:00
Shiny Metagross
ec3d81a34f More fixes
- Let's fill the holes of serialized data so it can properly be removed instead of leaving undefined behavior behind.
- Added CMDL_HIDEMODEL flag. This makes a model index invisible.
2022-07-22 17:11:59 +02:00
Shiny Metagross
11f342795b I did a no no
- This should fix it
2022-07-22 17:11:59 +02:00
Shiny Metagross
9805851bd8 Update p_actionfunctions.cpp
Uhh, maybe this is why mac builds failed
2022-07-22 17:11:59 +02:00
Shiny Metagross
9f2c7c850d Update p_actionfunctions.cpp
- Let's fix some of the compile warnings
- We don't want to include models that were already parsed by modelDef, or already in savedModelFiles
2022-07-22 17:11:59 +02:00
Shiny Metagross
6d00e4a3f3 Finished serializing
- Implemented an FString TArray which goes into save files that saves a model file and path, and when the game is loaded, spits back out the model to be Loaded when loading a save file
2022-07-22 17:11:59 +02:00
Shiny Metagross
5b8789977a Another fix, most serialization is working
- Changed some logic when giving an actor that doesn't have a modeldef a modeldef to make sure it knows it doesn't have one when cleared
- Fixed the serialization for modelData. Only problem now is that I was right about needing to push the models on load
2022-07-22 17:11:59 +02:00
Shiny Metagross
83a23c6525 Other updates
- Moved modelDef to modelData
- Replaced TArray.Deletes with TArray.Pop
- Made a few other optimizations in other places in the action function
2022-07-22 17:11:59 +02:00
Shiny Metagross
e827e9b086 TArrays to TObjPtr
- Made the 2 TArrays into a class called DActorModelData.
- Removed the skinindex and now just uses one index
- Replaced a bunch of nullptr for modelDef checking with NAME_None
- Added some garbage cleanup to A_ChangeModel itself, as well as removing memory of modelData that is no longer needed
- Attempted serialize code, putting up for review
2022-07-22 17:11:59 +02:00
Shiny Metagross
c304a8f974 Changed static arrays to TArrays
- Made the models and skins arrays TArrays
- The issue I described with models not always reverting to default properly was caused by the fact I was unintentionally overwriting smf data. Now intermediate TArrays store the data before the loop instead of overwriting anything
2022-07-22 17:11:59 +02:00
Shiny Metagross
5abadd3aab A_ChangeModeldef
-Added A_ChangeModelDef
A_ChangeModel(modeldef, modelpath, model, modelindex, skinpath, skin, skinid, flags)

This can change the modeldef, model and skins of an actor.

Currently, modelindex and skinindex accept indices from 0-15.

An actor MUST have a modeldef in order to use this function, either defined from modeldef, or given one through the modeldef parameter. You can pass "" to use the same modeldef. Likewise, passing "" for model or skin will just revert to the default model.

Available flags:
CMDL_WEAPONTOPLAYER - If used on a weapon, this instead change's the model on the player instead.

One issue I am aware of right now is that clearing a model by "" sort of works but is buggy. For now you can just manually set the model back using the names explicitly. However, I am stumped and I think getting more eyes on it would help.
2022-07-22 17:11:59 +02:00
Christoph Oelckers
e649357d4e - fixed return values of FTextureAnimator::AddAnim 2022-07-22 08:35:56 +02:00
Rachael Alexanderson
f4f701a45c - add longsavemessages to simple menu. set longsavemessages default to false. 2022-07-21 13:22:52 -04:00
Christoph Oelckers
d2454d4b3b - DirectInput cleanup
Removing ancient code that's only useful on pre-XP OSs.
2022-07-20 14:41:06 +02:00
Christoph Oelckers
f13e95ccbe - also allocate FDoorAnimation's frame table from the texture manager's memory arena.
The same lifetime rules as for the regular animations apply here.
2022-07-17 10:22:48 +02:00
Christoph Oelckers
6d635ce715 - optimized storage for animation definitions.
Instead of allocating everything on the heap as single blocks, use a value TArray and allocate the frame arrays from the texture manager's memory arena, since lifetime of the data is identical.
Most importantly this avoids using a variable size array at the end of the struct.
2022-07-17 10:15:09 +02:00
Magnus Norddahl
89f5428a9a Fixes vulkan crash when multisampling is enabled 2022-07-16 17:51:44 +02:00
Christoph Oelckers
e4485b01f8 - removed redundant extern declarations from platform code. 2022-07-16 15:12:06 +02:00
Omar Polo
0f0b4b7620 fix gzdoom.pk3 not found error
Move the initialization before BaseFileSearch is called, otherwise
GameConfig is used not initialized and it doesn't find the gzdoom.pk3
file.

GameConfig used uninitalized was spotted by @LoneFox78.
2022-07-16 15:04:13 +02:00
Gutawer
937c22ff14
- add a method for filling a shape2d instead of using a texture (#1661)
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-07-16 14:57:22 +02:00
Gutawer
ee0d90a983
- add stencil buffer support for 2d drawing (#1660)
Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-07-16 14:56:28 +02:00
Gutawer
1e27fac288 - add a system for setting all of 2D drawing's transform, not just shapes 2022-07-16 14:53:07 +02:00
nashmuhandes
c6ae73d6d2 - Expose ConsoleState to scripts
- Make ConsoleState uint8_t sized
2022-07-16 14:38:47 +02:00
Magnus Norddahl
69778667aa Minor cleanup of some vulkan rtx code 2022-07-16 08:55:57 +02:00
Christoph Oelckers
0e90098de8 - rewrote Windows console code for Windows 10's new terminal.
This allows dumping a lot of shit code using deprecated Windows functionality and bringing the code in line with Microsoft's roadmap for terminal/console functionality.
Note that this will cause garbled output of non-ASCII characters on Windows 7 and 8.1, but proper handling on these declining systems is of far lesser importance than future-proofing the feature.
2022-07-15 13:04:02 +02:00
Christoph Oelckers
595975fcc7 - did a test compile as C++20 and fixed all warnings that got emitted. 2022-07-15 09:17:50 +02:00
Kevin Caccamo
ffd8b5ed5a Address Graf's comment 2022-07-15 07:43:57 +02:00
Kevin Caccamo
a89d32c850 Attempt to fix #1654 2022-07-15 07:43:57 +02:00
Christoph Oelckers
2c7761926e - removed volatile type punning for clipping against line portals.
This now uses a common base for line_t and HWLinePortal.
2022-07-14 10:39:11 +02:00
Christoph Oelckers
fbd604b725 - fixed handling of *dive and *surface sounds.
The old water level needs to be retrieved before handling splashes, because SplashCheck already updates the waterlevel.
This was swapped around by a recent PR.
2022-07-14 08:13:54 +02:00
Rachael Alexanderson
e3238cd5b7 - always print GZDoom version in the startup log 2022-07-13 14:16:41 -04:00
Ricardo Luís Vaz Silva
365131e1e3 rename PrintString to PrintfEx and make it a vararg function 2022-07-11 19:35:51 +02:00
Ricardo Luís Vaz Silva
03c8da8a44 Expose Print Flags to ZScript 2022-07-11 19:35:51 +02:00
Christoph Oelckers
aae1d1439a - reverted AActor::scale to a DVector2.
This was causing comparison precision issues with existing script code.
2022-07-11 12:20:34 +02:00
Emile Belanger
edc8204a61 If the system uses very high memory addresses this error will be hit 2022-07-10 22:26:57 +02:00
Rachael Alexanderson
9050ded1c2 - version.h update 2022-07-07 08:27:33 -04:00
Christoph Oelckers
7847a55d67 - do not include game specific stuff in the backend. 2022-07-02 10:26:17 +02:00
Christoph Oelckers
9002cdb61d - fixed bad use of local variable. 2022-07-02 10:24:51 +02:00
Christoph Oelckers
35f8aab6bf - fixed names for A_PlaySoundEx
These need to be contiguous because the implementation depends on it.
2022-06-30 21:45:59 +02:00
nashmuhandes
8da4f2a212 ZDRay UDMF key update (per-surface sampling distance https://github.com/dpjudas/ZDRay/pull/36) 2022-06-29 09:12:18 +02:00
Christoph Oelckers
44a15bebea - fixed background tiling for summary screen.
Since the background object gets recycled it must clear this flag before loading a new background.
2022-06-29 08:36:01 +02:00
RaveYard
9a083d2d13 Fix FVector to Vector comparison 2022-06-24 21:38:14 +02:00
alexey.lysiuk
59458cf463 - fixed compilation without JIT
src/common/scripting/vm/vmframe.cpp:674:16: error: call to 'JitCaptureStackTrace' is ambiguous
2022-06-23 13:26:36 +03:00
RaveYard
4c588077c2 Fix FVector incompatible operands errors 2022-06-23 10:54:31 +02:00
Christoph Oelckers
2d10ad9d2d - removed incorrect assert.
This may fail if a narrow data type is negated.
2022-06-23 10:43:43 +02:00
Christoph Oelckers
124d71a7be - let the "abort" button on the network pane of the startup screen do a hard exit on Windows.
This merely posted a quit message which did not get properly processed and let the game run into other code with incompletely set up data.
2022-06-23 09:35:45 +02:00
Sally Coolatta
67127e4cce Bugfix for retro software mode mirrors not working 2022-06-23 07:47:04 +02:00
Christoph Oelckers
8c244f6f85 - use static_assert to make 32 bit builds fail. 2022-06-22 11:11:29 +02:00
Christoph Oelckers
aaf9618e61 - make sure ticdup is initialized.
Apparently sometimes it still does not happen.
2022-06-22 10:30:09 +02:00
nashmuhandes
593627f049 Add +ONLYVISIBLEINMIRRORS and +INVISIBLEINMIRRORS actor flags. The former makes the actor only visible in reflections, while the latter makes the actor not cast reflections in mirrors. 2022-06-22 09:36:04 +02:00