Commit graph

18285 commits

Author SHA1 Message Date
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
Christoph Oelckers
e3d7afa2d5 - added missing return 2022-06-22 09:26:53 +02:00
Magnus Norddahl
a0259e8e00 Hide experimental ray query behind vk_raytrace 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ed134c9b19 Improve the builder syntax so that fewer temp variables are required to build vulkan objects 2022-06-22 07:55:19 +02:00
Magnus Norddahl
7fc579c8b2 Add some helpers 2022-06-22 07:55:19 +02:00
Magnus Norddahl
c7fe3de4b0 Avoid creating new descriptor pools every frame 2022-06-22 07:55:19 +02:00
Magnus Norddahl
5aa0fb536f Only define SUPPORTS_RAYTRACING if it was detected 2022-06-22 07:55:19 +02:00
Magnus Norddahl
e0907f62d5 Use a black lightmap texture rather than an undefined one (NV and AMD differ on the contents of undefined textures) 2022-06-22 07:55:19 +02:00
Magnus Norddahl
f1775ee64b Fix null pointer crash if shader fails to compile during startup 2022-06-22 07:55:19 +02:00
Magnus Norddahl
5446e37874 Add debug names to some buffers 2022-06-22 07:55:19 +02:00
Magnus Norddahl
5cc21c5a4a Upgrade glslang to 11.10.0 2022-06-22 07:55:19 +02:00
Magnus Norddahl
32d059e432 Tell the debug layer what the name of the shader is
Always bind both buffer descriptor sets
2022-06-22 07:55:19 +02:00
Magnus Norddahl
821bd3b460 Adjust some init/deinit code and rename some things 2022-06-22 07:55:19 +02:00
Magnus Norddahl
4644221454 Make sure everything has finished rendering or uploading before changing the render buffers 2022-06-22 07:55:19 +02:00
Magnus Norddahl
24bf0c685c Remove GetVulkanFrameBuffer() so nobody is tempted to call it in the future 2022-06-22 07:55:19 +02:00
Magnus Norddahl
1c4798f059 Move lightmap and shadowmap textures to VkTextureManager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
3d43819a3f Move null texture to the texture manager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
63d40ffbf9 Avoiding adding empty objects to the delete list 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ba88303527 Move more code into the correct managers 2022-06-22 07:55:19 +02:00
Magnus Norddahl
69cfadf411 Manage buffers in VkBufferManager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ef802b85e7 Manage postprocess texture lifetimes in the same way as for hw textures 2022-06-22 07:55:19 +02:00
Magnus Norddahl
b3316fbe21 Let VkTextureManager manage the VkHardwareTexture resources
Let VkDescriptorSetManager manage the VkMaterial resources
Add the resources to the delete list instead of freeing them immediately as the backend cannot rely on exactly when the hardware renderer decides to destroy them
2022-06-22 07:55:19 +02:00
Magnus Norddahl
298c023b1d Add buffer and texture managers for handling object lifetimes 2022-06-22 07:55:19 +02:00
Magnus Norddahl
8004532cba Begin detaching internal vulkan object lifetimes from the hardware renderer layer 2022-06-22 07:55:19 +02:00
Magnus Norddahl
8ebad1003b Split postprocess part into more files 2022-06-22 07:55:19 +02:00
Magnus Norddahl
ecd2dc6300 Move command buffers out of vk_framebuffer and into its own manager class 2022-06-22 07:55:19 +02:00
Magnus Norddahl
a4e82766d7 Move inlined builder functions to the cpp file and remove FixedVector (none of it is on the critical path anyway) 2022-06-22 07:55:19 +02:00
Magnus Norddahl
3f28a7e5e4 Add some more pipeline barriers hoping it will make any difference to Nvidia drivers crashing on a worker thread (yay, nvidia!) 2022-06-22 07:55:19 +02:00
Magnus Norddahl
8517c9713a Move descriptor sets from VkRenderPassManager into a new class called VkDescriptorSetManager 2022-06-22 07:55:19 +02:00
Magnus Norddahl
e26fb04adf Some minor bug fixes 2022-06-22 07:55:19 +02:00
Magnus Norddahl
138d3e86ce Fix null pointer crash when writing debug messages 2022-06-22 07:55:19 +02:00
Magnus Norddahl
0c1aab074c Hook up the acceleration structure to the shader and start shooting some rays! 2022-06-22 07:55:19 +02:00
Magnus Norddahl
e08965b0b3 Improve vk_debug output a lot by throwing away the useless parts of the message and limit the callstack to the first 5 gzdoom calls 2022-06-22 07:55:19 +02:00
Magnus Norddahl
0c90a72c66 Upgrade SPV and GLSL version if using Vulkan 1.2 2022-06-22 07:55:19 +02:00
Magnus Norddahl
97073410c4 Upload acceleration structures for the level mesh 2022-06-22 07:55:19 +02:00
Magnus Norddahl
bf1732904f Enable vulkan 1.2 and ray tracing extensions, if available 2022-06-22 07:55:19 +02:00
Magnus Norddahl
c6416a2afe Update volk to a newer version 2022-06-22 07:55:19 +02:00
Christoph Oelckers
d5888dfa0a - validate fountaincolor before using it. 2022-06-21 19:47:08 +02:00
Jan Engelhardt
3213f046c2 Resolve build failure on i686-linux
gcc had to say:
gzdoom-g4.8.0/src/common/engine/stats.h:83:13: error: 'CPU' was not declared in this scope
   83 |         if (CPU.bRDTSC)
2022-06-19 07:53:21 +02:00
alexey.lysiuk
cd998edf86 - added detection of macOS Ventura 2022-06-18 13:14:48 +03:00
Christoph Oelckers
14fc2a011e - ZScript: don't allow multiple assignment syntax with only one element. 2022-06-16 10:47:11 +02:00
Christoph Oelckers
316b9305a2 - fixed type of third argument of MBF21's MonsterMeleeAttack function.
This is a sound, not an int.
2022-06-16 10:31:39 +02:00
Christoph Oelckers
de4627a477 - added an override for NOTAUTOAIMED flag when using P_AimLineAttack for informative CCMDs.
The flag is explicitly blocked for script use.
2022-06-16 10:07:22 +02:00
Christoph Oelckers
74866c28ce - allow taking screenshots in cutscenes. 2022-06-16 09:51:09 +02:00
Christoph Oelckers
18115ef455 - fixed JIT target function for GetTimeFrac.
I_GetTimeFrac has default parameters so it cannot be used directly.
2022-06-16 09:34:40 +02:00
Christoph Oelckers
c5eec7b8bb - fixed: For cutscenes the alternative clean scaling factors need to be activated.
This setting was at odds with the internals of the intermission and summary screen handlers.
2022-06-16 09:18:27 +02:00
Christoph Oelckers
e62fe65d00 - silenced a few more float conversion warnings. 2022-06-16 08:21:27 +02:00
Christoph Oelckers
355219d614 - fixed several scale related floating point conversion warnings. 2022-06-15 22:15:36 +02:00
Christoph Oelckers
431c47c957 - fixed setup of ready state with Dehacked.
This needs to emulate the hard coded chainsaw sound when weapon states get reassigned.
2022-06-15 22:04:01 +02:00
nashmuhandes
972e9cba09 Standardize and finalize the naming conventions for the new UDMF keys to everything lightmap-related to use an "lm_" prefix. 2022-06-15 20:20:16 +02:00
nashmuhandes
004a962ed5 Actually parse the new ZDRayInfo keys 2022-06-15 13:48:57 +02:00
nashmuhandes
ac5e969759 Update ZDRay keywords 2022-06-15 11:30:21 +02:00
Magnus Norddahl
34f1b23c3f Fix the discolored sky bug 2022-06-13 21:34:30 -04:00
Christoph Oelckers
be2fe0f304 - check point pushers/pullers by inheritance, not absiolute match 2022-06-13 00:08:34 +02:00
Christoph Oelckers
851a211be2 - fixed some warnings 2022-06-13 00:08:08 +02:00
RaveYard
519f9f4298 Fix JIT pointer offsets 2022-06-12 17:57:44 +02:00
RaveYard
f9bf6f9311 Implement FVector ZScript for Actor Scale 2022-06-12 17:57:44 +02:00
Rachael Alexanderson
0344462684 - set i_pauseinbackground to match !(i_soundinbackground) for all configs before this commit. 2022-06-09 04:11:44 -04:00
Christoph Oelckers
013f2003e8 Revert "-got rid of shared_ptr in postprocessing system"
This reverts commit 40872a2b21.

This crashed on Vulkan in a very weird way.
2022-06-09 09:16:58 +02:00
Christoph Oelckers
86a5545fa8 - fixed division by zero with unvalidated ticdup values. 2022-06-09 08:36:11 +02:00
Christoph Oelckers
eb56eb380e - reinstated con_scale. 2022-06-08 16:42:32 +02:00
Christoph Oelckers
07a8701f8d - make sure the last notch on the start screen is rendered. 2022-06-07 23:14:17 +02:00
Ricardo Luís Vaz Silva
121045e48d move relative path resolution earlier, to prevent problems with include deduplication 2022-06-07 20:16:50 +02:00
Ricardo Luís Vaz Silva
6f6942609c fix relative include path when loading folders 2022-06-07 10:02:12 -04:00
Christoph Oelckers
9454ba1009 - eliminated more unneeded shared_ptr’s. 2022-06-07 14:09:00 +02:00
Christoph Oelckers
40872a2b21 -got rid of shared_ptr in postprocessing system 2022-06-07 13:59:00 +02:00
Christoph Oelckers
c7798d5503 - use a unique_ptr for the GL debug object.
This doesn’t get shared and the containing class doesn’t need to be copied so this is sufficient.
2022-06-07 00:11:56 +02:00
Christoph Oelckers
989dcfcf1c - avoid storing texture pointers in longer lived data
* these circumvented all internal texture replacement logic. Texture objects should only be resolved right before drawing them
* added an explicit ‚tilebackground‘ option for the summary screen to fix problems with bad decision logic based on incorrect texture type checks. Automatic tiling no longer depends on texture type, but solely on size.
* added a DrawTexture variant that can be passed a texture ID instead of a pointer
2022-06-07 00:00:54 +02:00
Christoph Oelckers
21b6f722be - actually GCC is really dumb. 2022-06-06 20:11:01 +02:00
Christoph Oelckers
f4d240b05d - this behaves a little better on OpenGL. 2022-06-06 19:50:10 +02:00
Christoph Oelckers
90def7e8b0 - GCC is dumb 2022-06-06 19:49:57 +02:00
Christoph Oelckers
d1caf3a471 - made TObjPtr as trivial as possible.
Mainly to avoid problems with Raze, but eliminating this constructor lets us catch erroneous local definitions via 'auto', which can cause major problems if left undetected.
2022-06-06 15:19:31 +02:00
Christoph Oelckers
71ce8aa79a - block wipes when streaming movies are playing.
For synchronization purposes they cannot be interrupted by the wipe loop.
This also groups the cutscene state in a struct for readability purposes.
2022-06-06 12:30:47 +02:00
Christoph Oelckers
c62e14d2c1 - Backend update from Raze
Mostly cleanup and better separation of game/backend concerns.
2022-06-06 12:09:29 +02:00
Christoph Oelckers
7e57aeb24a - re-enabled translation initialization.
This had been commented out for testing and was forgotten.
2022-06-06 08:50:27 +02:00
Christoph Oelckers
4cb7c70e27 - restored accidentally deleted line of code. 2022-06-05 16:43:12 +02:00
Christoph Oelckers
efd4a0b33a - the chat should use the console's scaling, not the one for the messages printed with the small font. 2022-06-05 16:29:42 +02:00
Christoph Oelckers
a59436c4c2 - fixed auto-scaling for console. 2022-06-05 12:34:22 +02:00
Christoph Oelckers
e266fb1c16 - removed all vid_fps offsetting.
To compensate there is now also a "stat fps" which displays the FPS rate in the lower left corner. This had to go because unconditionally altering positions was causing problems with custom HUDs.
2022-06-05 12:16:56 +02:00
Christoph Oelckers
24a275804c - HUD scaling for automap HUD. 2022-06-05 12:16:15 +02:00
Christoph Oelckers
efaaa3c118 - added Raze-style HUD scaling. 2022-06-05 10:57:21 +02:00
Christoph Oelckers
0ee1cc85ec - fixed: The IVF decoder never accounted for odd dimensions when applying the UV subsampling.
To simplify the code the 'optimized' loop was replaced with one iterating over all pixels - even in the worst of cases the little savings are hardly performance relevant.
2022-06-05 08:09:50 +02:00
Christoph Oelckers
6f22eeac00 - added a few more names to the reserved names for main folder detection.
Also consolidated the access into a single function to avoid indexing errors.
2022-06-04 22:11:14 +02:00
Christoph Oelckers
3c96f7e21c - added handling for start-of-episode cutscenes. 2022-06-04 21:58:46 +02:00
Christoph Oelckers
c597ba2fef - made cutscenes at engine startup work. 2022-06-04 21:31:19 +02:00
Christoph Oelckers
ab856e4f6a - consider "fonts" and "models" reserved folder names. 2022-06-04 18:49:31 +02:00
Christoph Oelckers
26a377c009 - fixed undefined behavior with Dehacked's value parser.
From the looks of it MSVC's strtoul function does parse negative values, while GCC's does not. Since negative values are allowed for some properties this now uses strtoll and stores the value with 64 bit to preserve both the value range of signed int and unsigned int.
2022-06-04 09:23:46 +02:00
Christoph Oelckers
df74288f7b - use the same rules for cutscenes as for old intermissions when travelling in a hub 2022-06-03 00:30:34 +02:00
Christoph Oelckers
608b387e04 - use correct mapping for IBM437’s lower characters
For use on text screens these need to be mapped to the printable characters they represent on screen, not the control characters of ASCII.
2022-06-03 00:12:45 +02:00
Christoph Oelckers
99d98cf79d - added cutscene creation code 2022-06-03 00:03:57 +02:00
Christoph Oelckers
15a5554f8d - fixed fast crushers going out of sync if something is being crushed by them. 2022-06-02 16:48:07 +02:00
Christoph Oelckers
05c846c4eb - fixed: the last column of a text-type start screen was not rendered. 2022-06-02 08:32:39 +02:00
Christoph Oelckers
092eb1eb6f - use StartupTexture, not HeaderTexture to clear the screen.
HeaderTexture does not exist for the Endoom screen.
2022-06-01 18:00:03 +02:00
Christoph Oelckers
b615019715 - fixed: sound must be initialized before the start screen. 2022-06-01 17:44:07 +02:00
Christoph Oelckers
c11729c2bb - fixed: Vulkan descriptor sets must check the real translation, not just the translation ID.
In particular the one for the menu's player sprite and ACS translations can alter a translation ID's actual translation at run time, these changes never triggered a descriptor set change.
2022-06-01 16:47:54 +02:00
Christoph Oelckers
298407aaf3 - workaround for clearing the start screen in Vulkan.
There seems to be a bug in the backend, but I have no idea what's wrong.
Clearing the start screen with a ClearRect call renders the 2D drawer in an unstable state. So for now, clear the screen by rendering a texture, but with light color black, which produces the same effect without later breaking stuff.
2022-06-01 16:02:24 +02:00
Rachael Alexanderson
c8156fa581 - add keybinds for F17-F24 2022-06-01 10:23:08 +02:00
Christoph Oelckers
3b87c19b5b - fixed startuo screen creation 2022-06-01 10:20:32 +02:00
Christoph Oelckers
2d901eca7f - added missing #include. 2022-06-01 09:34:07 +02:00
Christoph Oelckers
7787a410ea - Startscreen fixes.
* for Strife the game palette must be loaded before the start screen.
* increase update frequency of start screen to roughly 35 fps
* fixed Strife's laser sprite names.
* do not show the native progress bar if a graphical start screen is used.
2022-06-01 09:30:20 +02:00
Christoph Oelckers
344c6348fd - sprite lightlevel cleanup and fixes.
* consolidated the getter functions on the game data side
* better handling of per-sprite lighting with fog
* allow negative values for additive per-sprite lighting.
* also fixed return type of UpdateWaterDepth.
2022-06-01 08:37:13 +02:00
Christoph Oelckers
da30b6f6f0 - fixed some GCC warnings 2022-06-01 08:37:00 +02:00
Christoph Oelckers
077aa6b0ae - cleaned out some duplicates in Posix platform code 2022-06-01 08:37:00 +02:00
Christoph Oelckers
59cddf1601 - hooked up graphical start screens with the in-game renderer. 2022-06-01 08:37:00 +02:00
Christoph Oelckers
79f4a9c0f3 - removed the native graphical startup screens.
ENDOOM is already working with this commit, the start screens still require some work to connect them.
2022-06-01 08:37:00 +02:00
Christoph Oelckers
d6886ed44f - route the StartScreen#::Net... functions through a global interface.
These will require different treatment later, so best only have one place where each method is called.
2022-06-01 08:37:00 +02:00
Christoph Oelckers
21c60c931e - warning fixes and cleanup from old startscreen branch. 2022-06-01 08:36:59 +02:00
Christoph Oelckers
1aa3a5ea16 - platform independent classes for start screen rendering.
These use the internal 2D drawer. Not hooked up yet.
2022-06-01 08:36:59 +02:00
Christoph Oelckers
e42256c7a8 - added texture class for handling the start. screen 2022-06-01 08:36:59 +02:00
Christoph Oelckers
3b3a3a31e8 - Win32 i_main.cpp cleanup
Moved SetWndowTitle into the menu class
Removed the dead Windows session code
Removed the unused modules for Win32 core DLLs.
removed dynamic function calls for post-XP features
2022-06-01 08:36:59 +02:00
Magnus Norddahl
6670bc09b9 Create a MainWindow class that manages the main win32 window of the application 2022-06-01 08:36:59 +02:00
Major Cooke
3d14cec191 Added ADDLIGHTLEVEL to add the sector light level to an actor's own defined light level, if desired. 2022-05-31 21:00:31 +02:00
Major Cooke
9ef202db26 LightLevel now works with fog. 2022-05-31 21:00:31 +02:00
Major Cooke
d5e448671d Added LightLevel.
- Setting it to any value > -1 will override the sector's light level.
2022-05-31 21:00:31 +02:00
nashmuhandes
f235dcc38e Squashed commit of the following:
commit 553c4c12abd15e5f8fa02496ccfde81bdfdb53b0
Merge: cb03de5d2 add4ff12a
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Mon Feb 14 18:55:52 2022 +0800

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

commit cb03de5d2fdcba8a32b83be32579be935c8b6600
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Tue Jan 25 12:54:33 2022 +0800

    Re-add WaterDepth to the custom namedef file

commit 8d1ff3c16018dd7c73c8950aa4c51f2bc0207837
Merge: f201e6307 a9eaae074
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Tue Jan 25 12:52:57 2022 +0800

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

    # Conflicts:
    #	src/common/engine/namedef.h

commit f201e630706fc0ea7628b8a32bd5d88afb712208
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Sun Jan 16 20:45:27 2022 +0800

    Fix compile error (MAX() -> max())

commit fe292ebd4312afe34b1e35e4c1eafba0dc168920
Merge: 3f9150c4e 12ed24d06
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Sun Jan 16 20:37:58 2022 +0800

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

    # Conflicts:
    #	src/playsim/p_mobj.cpp

commit 3f9150c4eae1c5c5510e8f9b1c4bfaab46a96b8f
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Sat May 29 05:32:54 2021 +0800

    - Implement virtual Actor.FallAndSink for scriptable falling and water physics
    - Added Actor.WaterDepth to retrieve how submerged and actor is, in map units

    Original work credited to "gzdoomthrowaway"
2022-05-31 18:57:38 +02:00
Christoph Oelckers
cda6394a95 - added cutscene data parser
This covers:

game start
episode start
cluster start/end
level start/end
2022-05-31 15:02:52 +02:00
Sally Cochenour
bb42e541e9
MASTERNOSEE flag (#1601)
Makes it so that if an actor's master is invisible due to camera/mirror/portal shenanigans, then the actor will also be invisible. Name based off of an Unreal Engine flag that does the exact same thing.

Co-authored-by: Christoph Oelckers <coelckers@users.noreply.github.com>
2022-05-31 12:34:15 +02:00
Christoph Oelckers
2c69afa118 - fixed SDL version check 2022-05-31 11:00:10 +02:00
Major Cooke
748156c846 Optimized CanCrossLine.
- Remove P_PointOnLineSide check
- Made CanCrossLine opt-in by requiring the CROSSLINECHECK flag.
2022-05-31 10:46:06 +02:00
Major Cooke
5afd14fd4d Added a vector to CanCrossLine to indicate the next position the actor will be in if the move succeeds. 2022-05-31 10:46:06 +02:00
Major Cooke
b5b2dd0903 Added CanCrossLine virtual for actors.
- Called last after all other line checks occur. Returning false means the actor cannot cross that line.
2022-05-31 10:46:06 +02:00
Sally Coolatta
a98c1efc26 Add WorldOffset field
Adjusts the thing's 3D position on render side. This allows for adjusting a thing's visual position without impacting their hitbox.

# Conflicts:
#	src/playsim/p_mobj.cpp
2022-05-31 10:14:32 +02:00
Christoph Oelckers
6b7ef697be - compacted AActor a bit by eliminating alignment gaps 2022-05-31 10:10:53 +02:00
Major Cooke
bf6849d184 This was missing in the commit. 2022-05-31 09:12:59 +02:00
Major Cooke
31fa78d7c9 Added the following GL Light flags:
- `DontLightOthers`: Acts as the inverse of `DontLightSelf`, where it won't light actors that aren't the owner.
- `DontLightMap`: The light doesn't affect the map.
2022-05-31 09:12:59 +02:00
RicardoLuis0
d6516f5c3b Relative Includes for ZScript 2022-05-31 09:09:42 +02:00
Rachael Alexanderson
f1ad0961be - remove m_filter and simplify related code 2022-05-29 17:58:06 +02:00
Christoph Oelckers
b218b8de6a - removed the unused SCREENPITCH #define 2022-05-23 15:52:30 +02:00
Christoph Oelckers
a9cba90647 - fixed MF_SHADOW handling for MBF21
This needs to alter the render style as well.
2022-05-23 00:10:59 +02:00
Christoph Oelckers
77a4bc16cf - fixed handling of automap sprites with negative scale. 2022-05-23 00:08:33 +02:00
Christoph Oelckers
dce6456994 - fix dynamic light setup.
The level’s global flag is unreliable and cannot be used. The operation this was initially supposed to skip cannot be skipped anyway so the impact should be minor.
2022-05-23 00:01:49 +02:00
Marisa the Magician
2aa79bd538 Allow SendNetworkEvent during title level. 2022-05-20 13:00:17 +02:00
Christoph Oelckers
c6092ef07e - don't play empty intermissions. 2022-05-20 09:12:27 +02:00
Rachael Alexanderson
f87c7b538a - add sv_ammofactor to change the skill adjustment for ammo 2022-05-18 15:09:13 -04:00
Christoph Oelckers
3ad6793ba3 - fixed yet another index issue in the shader code. 2022-05-18 20:14:43 +02:00
Christoph Oelckers
1d9da40f5b - fixed user shader compilation in OpenGL 2022-05-15 11:37:46 +02:00
Christoph Oelckers
648dc87101 - fixed two index out of range issues in Vulkan's shader compiler code. 2022-05-15 09:12:30 +02:00
Christoph Oelckers
7057b7cdf1 - extended the read buffer for the 'secret' CCMD. 2022-05-14 21:47:15 +02:00
Christoph Oelckers
c95b1b0149 - fixed shader selection logic in OpenGL. 2022-05-14 12:08:31 +02:00
Christoph Oelckers
c23abd1930 - silenced some warnings. 2022-05-14 11:55:56 +02:00
Christoph Oelckers
2be13e1b9f - changed shader loader to load only one shader at a time
This is merely preparation - the actual loading is still in one uninterrupted piece.
2022-05-13 08:22:22 +02:00
Magnus Norddahl
1452dd06a7 Fix that vk_debug doesn't output anything for newer versions of the vulkan sdk 2022-05-13 08:18:17 +02:00
Emile Belanger
3bedf79222 Fix crash when loading Strife dialog with latest Clang compiler and optimisation on 2022-05-12 22:36:50 +02:00
Christoph Oelckers
beeb5f00aa - added JPEG YCCK decoding.
Just for completeness - the formula was pieced together from stb_image's handling.
2022-05-12 12:14:14 +02:00
Christoph Oelckers
e639030276 - fixed music in intermissions.
The starting of the first screen's music must be delayed until the playback of this screen actually starts.
Since the controller objects are created up front it cannot be done in the Init() method anymore.
2022-05-11 09:06:57 +02:00
Rachael Alexanderson
30a0177352 - add libvpx for arm64 2022-05-10 18:18:06 -04:00
Rachael Alexanderson
c9e01353b0 - define ARM64's endianness in rapidjson 2022-05-10 16:43:57 -04:00
inkoalawetrust
dbf707b83b Added MF8_SEEFRIENDLYMONSTERS.
Non-friendly monsters with this flag on will be able to attack friendly monsters on sight.
2022-05-10 08:25:30 -04:00
Christoph Oelckers
2c75e2cac9 - fixed Hexen stair builder
To work as intended the first sector must also have its validcount set.
2022-05-09 00:07:17 +02:00
Major Cooke
9dea7cbaf9 Added QF_3D flag for quakes. When used, the quake thinker will perform a 3D distance check instead of 2D. 2022-05-08 07:52:07 +02:00
Christoph Oelckers
47c7734042 - add -compatmode for setting a compatibility mode on startup
As a replacement for +compatmode not working as intended.
2022-05-06 08:35:34 +02:00
Christoph Oelckers
3fb292ac71 Revert "- added a bit of hackery so that compatmode CVAR can be set up on startup"
This reverts commit c4408d8536.

This does not work. It always overwrites the saved compatibility settings with the current compatmode.
2022-05-06 08:31:16 +02:00
temx
0dfa632d29 Fix off-by-one in Vulkan multisample sample count selection 2022-05-04 18:19:29 +02:00
Christoph Oelckers
c86d9f60d0 - added handlers to load Strife’s startup screen images as textures 2022-05-03 00:04:28 +02:00
Christoph Oelckers
73abb2dfac - added image source handlers for Hexen’s special startup image types 2022-05-02 00:28:56 +02:00
Christoph Oelckers
265122bb97 - removed all remaining code for handling 4 bpp startup screens. 2022-05-01 15:04:58 +02:00
Christoph Oelckers
3f2374c0f9 - use 8 bit for Hexen start up as well. 2022-05-01 14:59:12 +02:00
Christoph Oelckers
82fe5b8150 - use 8 bit bitmaps for Heretic's startup screen. 2022-05-01 14:46:09 +02:00
Christoph Oelckers
010f41a3aa - load the hex font as early as possible. 2022-05-01 14:12:21 +02:00
Christoph Oelckers
7832ada2fc - use the hex font for the Heretic/Endoom text screens. 2022-05-01 13:41:03 +02:00
Christoph Oelckers
f1d017d0fa - compat_corpsegibs is still needed as a dummy MAPINFO flag. 2022-04-30 23:39:02 +02:00
Christoph Oelckers
2235b42993 - fixed setup of files to load on startup.
Order of addition was not correct and one function had a bad parameter type.
2022-04-30 23:26:51 +02:00
Christoph Oelckers
0a208597c6 - fixed return type of MSTimeF script function. 2022-04-30 12:13:20 +02:00
Christoph Oelckers
70c0b6a9a6 - moved -rngseed init to D_InitGame 2022-04-29 02:25:29 +02:00
Christoph Oelckers
72be9bcc27 - pass ´hashfile´ to filesystem as parameter
Avoid global variables, also check args as late as possible.
2022-04-29 02:20:35 +02:00
Christoph Oelckers
ac1cfa6027 - cleaned up the startup code a bit.
Mainly splitting up D_DoomMain_Internal to put all the actual initialization from game data into a subfunction
2022-04-29 02:17:21 +02:00
Christoph Oelckers
65a37856ec -fix TArray::Append with rvalue parameter
This must clear the source array to obey move rules.
2022-04-29 02:10:43 +02:00
Christoph Oelckers
ff58e4ec6f - fixed Playdemo and Timedemo check
The assumption that D_DoomLoop never returns does not apply anymore. Let it fall through to the end instead where this is properly handled.
2022-04-29 01:40:28 +02:00
Christoph Oelckers
2bc787b1cc - only check „allowduplicates“ for the final file system init
The other calls to InitMultipleFiles should not use it.

Also fix the check to not skip some entries.
2022-04-29 01:36:06 +02:00
Christoph Oelckers
18912d1ee9 - removed all leftover x87 configuration voodoo
x86 32 bit without SSE2 hasn’t been a supported target for several years, none of this is still needed
2022-04-29 01:30:16 +02:00
Christoph Oelckers
6bce14b86f - added ‚repeat‘ option to SetLineActivation ACS function 2022-04-29 00:58:07 +02:00
Christoph Oelckers
bd885977e8 - added MSTimef script function
This also deprecates MSTime due to value range / overflow issues.
2022-04-29 00:47:06 +02:00
Christoph Oelckers
c83344f5c2 - removed all remains of the corpsegibs flag and made vileghosts interactive
Ghosts are still off by default, but they will now be enabled when selecting the vanilla (strict) compatibility mode.
2022-04-29 00:28:34 +02:00
Christoph Oelckers
de0fcc3b6c - restrict RealGibs for players only
All non-players will now always act as if the ‚corpsegibs‘ flag was set, regardless of the current setting.
2022-04-29 00:24:47 +02:00
Christoph Oelckers
63bba40d7d - expose the ‚attenuatelights‘ map flag. 2022-04-29 00:02:11 +02:00
Christoph Oelckers
739b015a4d - reinstated code that has gotten lost.
Fixes texture trimming.
2022-04-28 21:14:50 +02:00
Christoph Oelckers
86c968c8a3 - where did that '!' come from? 2022-04-28 20:48:00 +02:00
Christoph Oelckers
643e5c87fd - added an option to delete a terrain type from a texture.
Just define a texture's terrain to 'none'.
(A bit puzzling that such a feature did not exist yet...)
2022-04-28 08:42:12 +02:00
Christoph Oelckers
9b0b44d83b - proper handling for running an end-of-game intermission. 2022-04-27 10:53:07 +02:00
Christoph Oelckers
0de3ff81e1 - add wipe transition support to the screenjob runner. 2022-04-26 20:50:37 +02:00
Christoph Oelckers
4e72ea1cfa - Backend update from Raze 2022-04-26 20:50:36 +02:00
Christoph Oelckers
feb65bcb99 - moved wipe code into the backend 2022-04-26 20:50:36 +02:00
Christoph Oelckers
a067eacc79 - change license of wipe code
There’s nothing really left here of id’s original code
2022-04-26 20:50:36 +02:00
Christoph Oelckers
ccdf5fb23c - moved the wipe loop out of d_main.cpp into f_wipe.cpp
As preparation fior fully moving it into the backend
2022-04-26 20:50:36 +02:00
Christoph Oelckers
7b59293995 - properly deal with 'gototitle'. 2022-04-26 20:50:36 +02:00
Christoph Oelckers
1aa71cc5a3 - prepared DrawFullscreenSubtitle for script export.
This needed to get the font passed as argument and take care of stringtable lookup inside the function.
2022-04-26 20:50:36 +02:00
Christoph Oelckers
aabe59c533 - made intermissions work as screenjob. 2022-04-26 20:50:36 +02:00
Christoph Oelckers
082daccd2d - summary screen is working again
minus the initial wipe…
2022-04-26 20:50:36 +02:00
Christoph Oelckers
336c45aaa4 - SCreenjob fixes
Still doesn’r show anything but we got it all set up now.
2022-04-26 20:50:35 +02:00
Christoph Oelckers
54329bd87b - make stuff compile again 2022-04-26 20:50:35 +02:00
Christoph Oelckers
7ed8d3b3e2 - screenjob. fixes from Raze 2022-04-26 20:50:35 +02:00
Christoph Oelckers
1bb750c061 Screenjob WIP stuff 2022-04-26 20:50:35 +02:00
Christoph Oelckers
390bf58698 - first stage of migrating intermissions to screenjobs. 2022-04-26 20:50:35 +02:00
Christoph Oelckers
d994369fd0 - timer code fixes. 2022-04-26 20:50:35 +02:00
Christoph Oelckers
9898ee542c - route all accesses to gameaction from the backend through the sysCallbacks.
gameactions are frontend specific so this needs to be decoupled.
2022-04-26 20:50:34 +02:00
Christoph Oelckers
e5baef837a - text screen helper stuff for cutscene system. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
933fa62782 - added the script side core module for the cutscene system. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
df0412d634 - a few things may not be static anymore. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
5aaabbeb01 - did some project file cleanup. 2022-04-26 20:50:34 +02:00
Christoph Oelckers
69a7715a02 - added all the prerequisites for the cutscene system from Raze:
* libvpx library
* libsmackerdec
* playmve
* MoviePlayer class.
* ScreenJob engine core.
2022-04-26 20:50:34 +02:00
Kevin Caccamo
ecc0afd2f2 Fix usage of -1 as OBJ model FrameIndex
So that what is said on the ZDoom Wiki (see https://zdoom.org/wiki/MODELDEF#Notes) holds true for OBJ models.
2022-04-24 19:40:08 +02:00