Commit graph

18685 commits

Author SHA1 Message Date
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
Christoph Oelckers
4aa04f11ce - zip64 handling 2022-04-22 11:10:25 +02:00
Christoph Oelckers
6cb035b7b2 - added workaround to Dehacked so that „Doom“ only replaces the music name
Of all these short strings this is the only one that occurs elsewhere as well.
2022-04-22 00:53:27 +02:00
Rachael Alexanderson
0fa830ddd7 Revert "- change cvars gl_custompost and gl_customshader to archive and save to .ini since there are uses for these shaders beyond mere debugging."
This reverts commit 2420371c46.
2022-04-21 02:49:39 -04:00
Rachael Alexanderson
991b4725dd Revert "- don't modify gl_customshader cvar in GLES backend; the backend will not show custom shaders anyhow"
This reverts commit ab27d1dd33.
2022-04-21 02:48:07 -04:00
Christoph Oelckers
40e50f07e9 - fixed some incorrect array allocation sizes in polyobj code 2022-04-19 10:25:14 +02:00
Christoph Oelckers
11b1a2ef7b - revert. accidental change in polyobject code 2022-04-19 10:21:45 +02:00
Christoph Oelckers
760bffbf06 - do not clamp warped textures. 2022-04-17 23:41:20 +02:00
Christoph Oelckers
346cae04be - disabled deletion of previous event handlers when using 'eventhandler' keyword in MAPINFO. 2022-04-17 13:25:07 +02:00
Christoph Oelckers
1c4d48f5f2 - added some fudging so that the Dehacked parser can properly deal with ConsumeAmmo.
This is a parameterized code pointer, so checking state functions for names won't work. Additionally, the handling was not correct for weapons with an ammo use other than 1.
2022-04-17 08:53:52 +02:00
Christoph Oelckers
525351c695 - fixed: decal things failed to spawn their decals on 3D floors.
The value wasn't passed on to StaticCreate.
2022-04-16 22:49:13 +02:00
Christoph Oelckers
2f90f49931 - validate the index argument for GetSavegame and abort if out of range. 2022-04-16 22:27:59 +02:00
Rachael Alexanderson
43a419b318 - lock cvar shader uniforms behind a command line parameter for now 2022-04-16 12:12:40 -04:00
Christoph Oelckers
1ba4dfbfa8 - fixed setup of PolyBSPs when the software renderer is active.
Some needed initialization was still in the hardware renderer and not the data creator.
2022-04-15 23:59:43 +02:00
Christoph Oelckers
bdab9c2d9d - fixed Dehacked drop items. 2022-04-15 23:10:53 +02:00
Christoph Oelckers
3fa7fb7158 - fixed: The alt HUD's draw call did not use the virtual interface. 2022-04-15 22:54:26 +02:00
Christoph Oelckers
a40b1f1934 - fixed: group teleporters must always preserve orientation. 2022-04-15 22:49:23 +02:00
Christoph Oelckers
a25ba16755 - don't move bad polyobjects in the savegame loader. 2022-04-15 22:41:55 +02:00
Christoph Oelckers
c8296f0d7c - cast arguments for fastcos/sinbam
Use xs_Float to ensure proper wraparound which is important here.
2022-04-15 22:31:12 +02:00
Christoph Oelckers
a669d3718f - copy size info from defaults when starting a list menu block. 2022-04-15 22:30:11 +02:00
Christoph Oelckers
e7f78ce911 - handle cases of empty state labels in ZScript.
Sadly this cannot print a full error message because it got no context for it when it is detected.
2022-04-15 22:25:04 +02:00
Christoph Oelckers
9c5b284d72 - fixed bad color range check in ACS HudMessage code. 2022-04-14 14:04:26 +02:00
Christoph Oelckers
d0e1aea273 - fixed Dehacked check for A_ConsumeAmmo.
This must use the internal function name.
2022-04-14 12:21:24 +02:00
Christoph Oelckers
29d1739371 - let A_SpawnParticle respect the float bob offset 2022-04-12 00:52:11 +02:00
Christoph Oelckers
18ebc9986e - separate message for disabling noclip2 2022-04-12 00:51:34 +02:00
Christoph Oelckers
7c2d315479 - added a nullptr check for StatusBar when drawing „Paused“
It looks like some edge cases can trigger this.
2022-04-12 00:37:15 +02:00
Christoph Oelckers
c4408d8536 - added a bit of hackery so that compatmode CVAR can be set up on startup 2022-04-12 00:31:31 +02:00
Christoph Oelckers
dfdf330722 - make menu scale adjustments for ultra-wide aspect ratios. 2022-04-12 00:30:43 +02:00
Christoph Oelckers
bc566fac4e - treat PSP layer ID 0 as invalid
No PSprites with this ID may ever be created, as there is no means to find them again.
2022-04-12 00:17:25 +02:00
Christoph Oelckers
f3d557bcf5 - fixed: The skill menu did not remember its last selection. 2022-04-12 00:04:45 +02:00
Christoph Oelckers
a97a2ec133 - backend sync with Raze
Nothing really useful here…
2022-04-11 00:26:50 +02:00
Christoph Oelckers
45e7badb71 - avoid passing game structs to common backend code
InitLightmap was using a „FLevelLocals“ pointer, better pass the needed elements separately instead.
2022-04-11 00:01:30 +02:00
Lippeth
7830033722 - added vertical bullet spread relative to ssg 2022-04-09 22:46:20 +02:00
Emanuele Disco
71dedf6c87 Fixed GUS Emulation with DMXGUS(C) lump conf.
- changed default value for midi_config to empty string since gus is not working with sf2 file
- fixed SetupDMXGUS not loading lump correctly, wrong use of CheckNumForFullName
- midi_config default to empty string, since lzdoom.sf2 doesn't seem supported (distorted sound)
- added absolute paths to FZipPatReader so we can add custom patches to resource files by using gus_patchdir and/or ULTRADIR variable (some custom maps has custom patches that can be added this way without putting them inside the resource file or in the same folder of the configuration file)
- set timidity_reverb_level min value to 0 in menudef.txt, set to 9 by mistake?
2022-04-09 22:45:31 +02:00
inkoalawetrust
3d1ddbc80e
Toggleable player following. (#1583)
* Added MF8_DONTFOLLOWPLAYERS.

Added the MF8_DONTFOLLOWPLAYERS flag, which allows friendly monsters to not follow their FriendPlayer when they have no target or goal left to head to.

* Changed the order that the DONTFOLLOWPLAYERS check runs in.

This is done to not produce unnecessary overhead on hostile monsters.
2022-04-07 23:32:16 -04:00
Christoph Oelckers
e0289eb0ac - fixed Font struct export and removed the duplicate handler. 2022-04-07 15:11:50 +02:00
Christoph Oelckers
89999be49e - fix detection for misplaced | when creating the small fallback font
This needs doomtemplate set.
2022-04-04 00:05:06 +02:00
Christoph Oelckers
27cba4c990 - implement proper GC handling for AActor::ViewPos. 2022-04-02 07:52:50 +02:00
Marisa Kirisame
eeb67bcec3 Use RDTSC equivalent on AARCH64. 2022-03-25 17:01:39 +01:00
RaveYard
196d2efc86 Add CHF_DONTIDLE for A_Chase 2022-03-23 21:51:35 +01:00
Christoph Oelckers
a685754abf - added a time widget to the level stats display on the alt HUD, similar to how Raze does it. 2022-03-22 08:35:18 +01:00
Rachael Alexanderson
b9e0473392 - move richpresence into common code to be sync with Raze 2022-03-18 03:36:34 -04:00
Christoph Oelckers
fe4c95a03e - fixed order of slope creation so that slope copies are the last thing being done. 2022-03-16 08:06:59 +01:00
Marisa Kirisame
7ba5a74f2e correct preprocessor fall-through for stats.h (linux) 2022-03-15 18:12:53 -04:00
Marisa Kirisame
0937068dad Fix compilation on GCC7. 2022-03-15 18:12:53 -04:00
Marisa Kirisame
9578c23aa1 Use RDTSC on Linux if possible for stats. 2022-03-15 18:12:53 -04:00
Rachael Alexanderson
d348bad823 - only overwrite rpath if not already defined 2022-03-11 23:11:08 -05:00
Rachael Alexanderson
3723b79b3b - fix DiscordAppId and SteamAppId from GameInfo 2022-03-11 10:43:50 -05:00
Rachael Alexanderson
add069885f - add i_discordrpc (defaults false) to control Discord Presence 2022-03-10 14:12:19 -05:00
Rachael Alexanderson
8fe07f1449 - add steamappid field for DRPC 2022-03-10 00:03:50 -05:00
Rachael Alexanderson
f5eab7d3e8 - oops, add missing file 2022-03-09 22:53:30 -05:00
Rachael Alexanderson
85c432c699 - Discord RPC presence. Adds new IWADINFO and GAMEINFO keys: DiscordAppId - this should point to your AppId for your game. It will use a default GZDoom one if not found. 2022-03-09 22:45:59 -05:00
Rachael Alexanderson
550e1212af - add $ORIGIN to rpath in Linux 2022-03-09 17:31:06 -05:00
Rachael Alexanderson
eb6aa9f5d3 - correct the processor fall-through on stats.h 2022-03-08 17:17:09 -05:00
nashmuhandes
1785788bdc - Added 'ScaleWeaponFOV' flag to MODELDEF. Affects weapon models only; will scale the model along with the user's FOV to reduce distortion.
- Additionally, a 'cl_scaleweaponfov' CVar has been added to allow users to further fine-tune the weapon model scale with higher FOVs
2022-03-08 07:43:39 +01:00
Rachael Alexanderson
ab27d1dd33 - don't modify gl_customshader cvar in GLES backend; the backend will not show custom shaders anyhow 2022-03-07 08:46:45 -05:00
Rachael Alexanderson
254da4b769 - fix function pointer for player landing sound 2022-02-24 17:20:39 -05:00
Rachael Alexanderson
36629d2f80 - revert the previous two commits for now - needs further optimization and testing 2022-02-23 06:00:14 -05:00
Major Cooke
992141d8e3 Added a vector to CanCrossLine to indicate the next position the actor will be in if the move succeeds. 2022-02-23 05:20:09 -05:00
Major Cooke
bb862098ea Added CanCrossLine virtual for actors.
- Called last after all other line checks occur. Returning false means the actor cannot cross that line.
2022-02-23 05:20:09 -05:00
Major Cooke
c75a6c1e7d Terrain small splashes and splash bases now set their target to the thing that spawned them, allowing for extra customization. 2022-02-23 10:00:52 +01:00
Major Cooke
421c40e929 Replaced GetTerrainDef with the global Terrains array. 2022-02-22 19:35:50 +01:00
Major Cooke
579c4152d2 Added GetTerrainDef and Sector variant of GetFloorTerrain.
- GetTerrainDef takes the raw number of the Terrains[] index. Can return null.
- GetFloorTerrain (Sector) gets the defs from the position given (either Sector.Floor or Sector.Ceiling).
2022-02-22 19:35:50 +01:00
Nikolay Ambartsumov
85d68b30bb Fix 3d floor-related crash in software renderer
3d floors can cause the software renderer to set incorrect
sprite clipping values that trigger a buffer overflow (and
a subsequent crash) when rendering sprites. This commit
keeps the clipping values within the view area.
2022-02-20 08:11:26 +01:00
nashmuhandes
6caa491595 ZDRay keyword updates. 2022-02-19 22:04:36 +01:00
Rachael Alexanderson
c926b7533f - play both land and grunt sound if not the same, even if grunted (emulates pre-virtual behavior) 2022-02-17 01:36:38 -05:00
Rachael Alexanderson
28d9fe68ae - add duplication checking to file list, prevent loading the same file twice unless explicitly asked by the user 2022-02-17 01:05:39 -05:00
Chronos Ouroboros
590f45441f - fix the wrong register type being freed when initializing arrays. 2022-02-17 00:19:34 -05:00
nashmuhandes
1919534298 Remove more unused UDMF keywords for ZDRayInfo. Sun direction is now determined by the actor's angle and pitch 2022-02-16 08:48:47 +01:00
nashmuhandes
01876dfcec Remove some of the recognized UDMF keys for static lights, as ZDRay no longer uses them for light baking. 2022-02-16 08:48:47 +01:00
Christoph Oelckers
bba806f43e - initialize FSwitchDef::QuestPanel when reading a Boom SWITCHES lump. 2022-02-15 17:22:05 +01:00
Christoph Oelckers
e6184ccb96 - silence some warnings. 2022-02-14 20:05:42 +01:00
Christoph Oelckers
c48de5d8d3 - added a 'no MBF21' compatibility flag.
Turns out that there's a few old maps that have the extended line flags set but not the guard bit that forces their clearance.
Astrostein 1's first map is an example for this.
2022-02-14 20:00:06 +01:00
nashmuhandes
396bac5e4f - Initialize some variables in FModelVertex::Set
- Fix wrong normal vector in the FModelVertexBuffer constructor

This fixes models having strange flickering when the model animation frame changes
2022-02-14 12:16:45 -05:00
Rachael Alexanderson
add4ff12ac - virtualize player landing on thing sound 2022-02-14 08:07:10 +01:00
Chronos Ouroboros
238952da35 - fixed local array initialization for const values. 2022-02-13 22:42:15 -05:00
Chronos Ouroboros
2f56ff3833 - fixed local vector array initialization. 2022-02-12 10:44:58 -05:00
Emile Belanger
3ff27b4281 GLES: Fix data buffer resize 2022-02-10 23:46:52 +01:00
Rachael Alexanderson
08b5f95e07 Revert "Fixed: opaque blood decals did not respect the GAMEINFO's blood color. This fixes opaque blood decals not getting the correct color in Chex Quest, as an example."
This reverts commit ee0330b0b1.
2022-02-09 09:11:07 -05:00
nashmuhandes
ee0330b0b1 Fixed: opaque blood decals did not respect the GAMEINFO's blood color. This fixes opaque blood decals not getting the correct color in Chex Quest, as an example. 2022-02-09 07:26:06 -05:00
Rachael Alexanderson
084c4f84bd - another fix 2022-02-09 07:20:34 -05:00
Rachael Alexanderson
1b9148a443 - fix a few glaring issues with cvar uniforms 2022-02-09 07:05:21 -05:00
Rachael Alexanderson
eae2704a9b - allow floats for uniform cvar defaults 2022-02-06 10:33:35 -05:00
Rachael Alexanderson
751f859c7a - fix compile on clang 2022-02-01 12:50:51 -05:00
Rachael Alexanderson
e7e5bd99fc - fix compiling on Linux/et-al 2022-02-01 12:32:44 -05:00
Rachael Alexanderson
267e714bf1 - implement direct cvar linking to custom shader uniforms 2022-02-01 11:42:55 -05:00
Rachael Alexanderson
95c5449a75 - silence some warning spam in textures.h 2022-01-26 18:30:55 -05:00
Nikolay Ambartsumov
df976e218e Add per-tier sidedef light levels to UDMF maps 2022-01-26 18:25:04 -05:00
Rachael Alexanderson
a9eaae074f - move lightmaps warning down the return chain a bit to show only when a map has valid lightmaps 2022-01-24 13:44:42 -05:00
Rachael Alexanderson
f0c5328481 - lock lightmaps behind a command line argument with a warning 2022-01-24 13:39:17 -05:00
Christoph Oelckers
78c8aa6e62 - file update. 2022-01-24 19:05:47 +01:00
Christoph Oelckers
6a92470846 - made a few more names common.
These are needed by the ZScript compiler backend.
2022-01-24 19:05:46 +01:00
Christoph Oelckers
673f06c05f - make m_alloc optional for tarray and memarena 2022-01-24 19:05:46 +01:00
Rachael Alexanderson
410c35b942 Merge commit 'refs/pull/1508/head' of https://github.com/coelckers/gzdoom 2022-01-24 12:30:59 -05:00
emily
20d16381f8 Add TexMan.SetCameraTextureAspectRatio
Allows ZScript to change the aspect ratio of a camera texture.
2022-01-24 12:18:55 -05:00
Major Cooke
6432e4f6a8 Optimized P_TestMobjZ by not running the iterator if actor also has THRUACTORS. 2022-01-24 12:17:52 -05:00
Rachael Alexanderson
688e5ac694 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps-new 2022-01-24 12:10:18 -05:00
drfrag
6112307cc8 - Fix decals in Softpoly.
(partial revert of "- cleanup of the revised y-clamping feature.")
2022-01-24 12:01:34 -05:00
Blue Shadow
fefb0e9702 - make m_quickexit a global CVAR 2022-01-24 12:01:04 -05:00
Major Cooke
046799db68 Removed all attempts to stop the sprite from appearing in portals. This may likely require a fundamental breakdown of the system itself in order to address the problem. 2022-01-24 12:00:33 -05:00
Major Cooke
4e8d59951b Added A_SetViewPos(Vector3 Offset, int Flags = -1)
- Offset: The offset from the actor's view to move the camera about.
 - Flags: (Default is -1, which means don't change flags)
  - VPSF_ABSOLUTEOFFSET: Don't include actor angles in calculation.
  - VPSF_ABSOLUTEPOS: Position is absolute, and disables all transformations. Modders are responsible for being portal aware!

Notes:
- `ViewPos` in Actor will be `null` until A_SetViewPos is called for the first time.

**Issues:**
- Hiding sprite while in portal incomplete.
2022-01-24 12:00:33 -05:00
Xaser Acheron
a07e16099d move WeaponScaleX/Y namedefs to namedef_custom.h; clean unwanted stuff from merge 2022-01-23 20:05:32 -06:00
Xaser Acheron
bfb79e5b32 Merge branch 'master' into feature_weaponscale 2022-01-23 20:01:59 -06:00
Xaser Acheron
e9c86017e4 apply WeaponScaleX/Y to all PSprites on a weapon 2022-01-23 19:59:06 -06:00
nashmuhandes
db92e63e22 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2022-01-22 18:06:05 +08:00
Rachael Alexanderson
4c4fafc2c0 - add debug ccmds to manipulate custom postprocess shaders and their uniforms from the console 2022-01-20 22:38:46 -05:00
Rachael Alexanderson
64f4332b43 - add cmath includes to fix the mac compile std::floor errors 2022-01-20 13:31:57 -05:00
nashmuhandes
e67c421201 Add the lightmap UDMF keywords into namedef_custom.h 2022-01-21 01:42:54 +08:00
nashmuhandes
8ea47fdcc3 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2
# Conflicts:
#	src/common/engine/namedef.h
2022-01-21 01:39:37 +08:00
nashmuhandes
f79bbed130 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2022-01-20 14:19:45 +08:00
Christoph Oelckers
851d058a4b - split up namedef.h into a shared and game specific part and cleaned out many unused names. 2022-01-20 00:14:08 +01:00
Xaser Acheron
25f28c4b50 fix mbf21 A_ConsumeAmmo taking 0 ammo instead of 1 if ammopershot field not set (need to amend the spec for this, argh) 2022-01-18 08:06:29 +01:00
Xaser Acheron
00d4442fc8 fix MBF21 A_WeaponMeleeAttack function name typo & args 2022-01-18 08:06:29 +01:00
Xaser Acheron
97859fd608 fix MBF21 GetSoundArg off-by-one: sound indices are 1-indexed in args because Killough 2022-01-18 08:06:29 +01:00
Christoph Oelckers
e6c6471e2f - fixed logic error with depth bias state in hardware renderer. 2022-01-17 00:32:54 +01:00
Christoph Oelckers
84458ddb9f - redid postprocessing shader interface to be free of the player dependency.
This is something that really should be done in higher level code - the shader interface should only concern itself with the shader and not the conditions that block its use.
The Shader class has been redone as a thin wrapper and been deprecated.
2022-01-17 00:07:43 +01:00
Rachael Alexanderson
12ed24d066 - separate i_pauseinbackground and i_soundinbackground - they probably should ultimately be moved out of the sound code 2022-01-15 20:17:11 -05:00
nashmuhandes
57112742fe Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2
# Conflicts:
#	src/common/rendering/gl/gl_shader.cpp
#	src/common/rendering/hwrenderer/data/buffers.h
#	src/common/rendering/v_video.h
2022-01-16 01:57:38 +08:00
Christoph Oelckers
79c9b979d2 - backend update from Raze. 2022-01-11 17:19:16 +01:00
Marisa Heit
a1d0d27278 Make GC::CheckTime 64-bit, just in case. 2022-01-11 13:01:31 +01:00
Marisa Heit
e529f2d4d1 Revert "- be a bit more aggressive with the GC when not running the game loop."
This reverts commit b4d03501af.
2022-01-11 13:01:31 +01:00
Marisa Heit
31549997b4 Fix GC so collection rate is proportional to alloc rate
- Previous comments in dobjgc.cpp suggested that StepMul was used
  to determine how quickly garbage was collected based on how quickly
  memory was being allocated. This was not the case. Now it is.
- Remove calls to CheckGC from the thinkers. With GC running at a
  stable rate (once per frame), there should be no need to inject
  pauses into the collection process to keep it from injecting stutters
  (provided StepMul is sane). The risk of running out of memory because
  we don't run a collection pass absolutely every thinker should be
  practically zero.
- Reduce DEFAULT_GCMUL from 400 to 200, since it does what it says now
  instead of something else.
2022-01-11 13:01:31 +01:00
Christoph Oelckers
597856c1d4 - use an enum for the FX_* flags.
These were still #defines.
2022-01-07 00:40:40 +01:00
Christoph Oelckers
32de663210 - fixed MBF21's A_SeekTracer.
This cannot directly call A_SeekerMissile because that has more parameters. It now maps to a wrapper that takes care of these.
2022-01-07 00:33:56 +01:00
Christoph Oelckers
49ab6612cb - fixed Dehacked parsing issues with weapon properties.
Due to a badly used string length check this code didn't really do what it was supposed to.
2022-01-07 00:31:57 +01:00
Christoph Oelckers
64ef03428d - added proper range check to the main sound playing function.
We got a report where this crashed on a bad sound index.
2022-01-07 00:16:30 +01:00
Christoph Oelckers
63fa01205f - fixed potential infinite loop in Hexen-style stair builder. 2022-01-07 00:09:59 +01:00
Marisa Kirisame
ee1774e956 Relicense UE1 model loader as MIT.
Match up with the same relicensing that affected umeshtools,
which this loader takes most of its code from.
2022-01-02 18:09:10 +01:00
Christoph Oelckers
e60e6967c0 - whitespace cleanup, updated from Raze. 2022-01-02 12:23:42 +01:00
Christoph Oelckers
3b879c5656 - changed the license of 3 more files free of external contributions to LGPL v2. 2022-01-02 12:08:47 +01:00
Christoph Oelckers
9d2431187d - reverted the license of the stereo3D code to BSD.
None of this was ever put under the GPL by its original author, so it is now back to its original license.
2022-01-02 11:41:32 +01:00
Christoph Oelckers
1c517d19fa - Backend update from Raze.
This is mainly code cleanup from setting the compiler to a stricter warning level.
2022-01-02 11:39:17 +01:00
Player701
f02060f822 - Fixed crash with Scroll_Texture_Offsets with non-zero tag 2021-12-27 15:34:27 +01:00
Major Cooke
b4c74fabd3 Added NoTrim support for ANIMDEFS, same syntax as TEXTURES outside a definition. 2021-12-14 15:22:01 +01:00
Major Cooke
bbd91be5d5 Added NoTrim for TEXTURES.
- This can be applied either in or outside of a definition of a sprite.
- Simply adding "NoTrim" inside a definition will apply it.
- Syntax outside of a sprite is `NoTrim <SpriteName>`.
2021-12-14 15:22:01 +01:00
Player701
2ce5b49cab - Exported the "paused" global variable to ZScript 2021-12-06 16:26:34 +01:00
Sean Baggaley
bf1577a984 ACS: fixed an old regression in which printing a map char array did not dereference the given array variable 2021-11-29 07:47:30 +01:00
Player701
d0697d9801 - Fixed some issues with the scaling feature of DStatusBarCore::DrawString 2021-11-25 15:42:27 +01:00
Emile Belanger
54ad3433b1 GLES: Load default shader if we try to load user shader to avoid crash 2021-11-21 13:14:02 +01:00
Christoph Oelckers
4530a7b583 - minor optimization to last PR to use a FixedBitArray to reduce stack impact of the check array. 2021-11-21 10:10:58 +01:00
Mitch Richters
b1fea228be - D_ProcessEvents(): Fix bad setup with delayedevents array that was holding pointers to items in the events[] array instead of making a copy. 2021-11-21 10:03:26 +01:00
Mitch Richters
c4f7760ab2 - D_ProcessEvents(): Delay EV_KeyUp events until any EV_KeyDown events for the corresponding key have been processed. This makes the mouse under SDL a lot better. 2021-11-21 10:03:26 +01:00
Rachael Alexanderson
312b5ce66e - add SDL hint to not minimize the window on focus loss 2021-11-19 15:26:04 +01:00
Xaser Acheron
441b70022d apply weaponscale relative to baseline 2021-11-15 01:52:49 -06:00
Xaser Acheron
0b93aef776 add WeaponScaleX/WeaponScaleY properties for applying global scaling to a weapon's PSprites 2021-11-14 23:21:07 -06:00
nashmuhandes
2ed99c735d Merge branch 'lightmaps2' of https://github.com/dpjudas/gzdoom into lightmaps2 2021-11-15 02:56:10 +08:00
Magnus Norddahl
8c54015b4b Fix upload and sampling bug for array textures in the vulkan backend 2021-11-14 19:53:10 +01:00
nashmuhandes
1570ce9c90 Merge branch 'lightmaps2' of https://github.com/dpjudas/gzdoom into lightmaps2 2021-11-14 22:01:13 +08:00
nashmuhandes
879c514120 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-11-14 22:01:03 +08:00
Magnus Norddahl
f5c8953fc7 Merge remote-tracking branch 'nash/lightmaps2' into lightmaps2 2021-11-13 05:09:56 +01:00
Magnus Norddahl
d197d19122 Fix light probes not working for maps having no dynamic lights at all 2021-11-13 05:09:25 +01:00
nashmuhandes
e40c927624 Forgot to add the new ZDRayInfo keywords in the UDMF parser 2021-11-12 18:42:37 +08:00
Christoph Oelckers
c598d9bab7 - Backend update from Raze.
* TArray extensions
* MSVC setup so that [[deprecated]] emits warnings.
2021-11-12 09:36:46 +01:00
nashmuhandes
9b853dd275 - Remove ALightProbe from the engine (light probes are now stored inside a map's LIGHTMAP lump)
- Recognize the new ZDRayInfo UDMF keywords
2021-11-11 19:21:45 +08:00
nashmuhandes
bb50aff87f Merge branch 'lightmaps2' of https://github.com/dpjudas/gzdoom into lightmaps2 2021-11-10 19:58:10 +08:00
nashmuhandes
1b95f2515b Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-11-10 19:57:49 +08:00
Kyle Evans
70ea671f01 src: fix i386 build
SSE_MATTERS formally went away in 466ed4e8f2, leaving behind this dead
branch that still needed to happen for 32-bit targets.  It was further
broken later with some path restructuring.
2021-11-07 17:18:29 +01:00
Christoph Oelckers
7f66df2625 - fixed compiler warnings 2021-11-06 23:55:16 +01:00
Magnus Norddahl
5dec391c8c Merge remote-tracking branch 'gzdoom/master' into lightmaps2 2021-11-04 23:59:00 +01:00
Rachael Alexanderson
fba5c7884d - add LoadBrightmaps, LoadLights, and LoadWidescreen directives for IWADINFO - these function exactly the same as their GAMEINFO equivalents. 2021-11-03 18:41:33 -04:00
alexey.lysiuk
8db550d251 - fixed compilation of POSIX Debug targets
src/rendering/2d/f_wipe.cpp:291: undefined reference to `Wiper_Melt::HEIGHT'
2021-10-30 15:58:07 +03:00
drfrag
5ca3ab3fc9 - Fix abort with dir command and empty string on Windows. 2021-10-30 12:46:36 +02:00
Christoph Oelckers
ce99cda019 - fixed compilation on non-Windows.
In this header we must explicitly use the std:: namespace for min/max.
2021-10-30 11:38:20 +02:00
Christoph Oelckers
77d74a11d1 - removed most templates.h includes. 2021-10-30 10:49:12 +02:00
Christoph Oelckers
eb69bbcae0 - replaced MIN/MAX in common code. 2021-10-30 10:46:17 +02:00
Christoph Oelckers
07a181090b - missed some MAX's. 2021-10-30 10:45:58 +02:00
Christoph Oelckers
75c8e0af7c - use the standard library's 'clamp' function instead of our homegrown variant. 2021-10-30 10:21:50 +02:00
Christoph Oelckers
1d0aed219e - replaced MIN/MAX in all non-common code. 2021-10-30 10:16:52 +02:00
Christoph Oelckers
226666ce7f - replaced MIN/MAX with min/max from the C++ standard library in the software renderer 2021-10-30 10:08:11 +02:00
Christoph Oelckers
cc617d9085 - Backend update from Raze.
Mostly warning fixes reported by Clang, plus GLES update.
2021-10-30 09:29:21 +02:00
Magnus Norddahl
8e59ed754e Fix vulkan validation errors for wrong image transitions and buffers used after destroyed 2021-10-29 22:38:18 +02:00
nashmuhandes
c2b3600981 Add a render style parameter to Screen.Dim 2021-10-29 21:08:32 +02:00
Magnus Norddahl
d853961a83 Fix vulkan buffers not using the stream usage for the 2d drawer
Add BufferUsageType enum to clarify what kind of usage is expected by the buffer allocated by SetData
2021-10-26 22:43:38 -04:00
alexey.lysiuk
8e1dd7d2c5 - removed obsolete code from Cocoa backend 2021-10-23 13:46:59 +03:00
Blue Shadow
6799566dc2 - fixed: menu delegate class error message referenced the wrong gameinfo property 2021-10-23 09:22:39 +02:00
Magnus Norddahl
b52aea5a4d Merge remote-tracking branch 'nash/lightmaps2' into lightmaps2 2021-10-22 13:26:53 +02:00
nashmuhandes
1c3e0f1a75 Added 'NoPerPixelLighting' flag to models to force it to not use per-pixel lighting. Main use case is for voxels that have been converted to models. 2021-10-22 07:57:11 +02:00
Magnus Norddahl
adda5dae32 Fix warning that implied destructors might not been called 2021-10-21 23:16:09 +02:00
Magnus Norddahl
f216ca4ea8 Merge branch 'master' into lightmaps2 2021-10-21 23:08:55 +02:00
nashmuhandes
b657478f6f Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-21 20:56:36 +08:00
Rachael Alexanderson
2420371c46 - change cvars gl_custompost and gl_customshader to archive and save to .ini since there are uses for these shaders beyond mere debugging. 2021-10-20 11:23:05 -04:00
nashmuhandes
5c20a5918e Merge branch 'master' of https://github.com/nashmuhandes/gzdoom into lightmaps2 2021-10-20 21:59:37 +08:00
Rachael Alexanderson
bb44f3dcd9 - add cvar r_skipmats - speeds up rendering on slower cards for mods that use a lot of specularity/pbr, effective on both the opengl and vulkan backends 2021-10-20 06:49:45 -04:00
Christoph Oelckers
2fc1481202 - validate the newly added menu customizations. 2021-10-20 08:08:51 +02:00
nashmuhandes
ab3146054b Fixed: SBar_DrawTextureRotated was missing the angle parameter 2021-10-19 11:44:34 +02:00
Marisa Kirisame
58e66f4805 ReadThisMenu / MenuDelegate overriding. 2021-10-19 11:43:27 +02:00
Christoph Oelckers
047c0c9537 - fixed recreation of state lights
This must also happen if the previous state had a light but the current one does not.
2021-10-19 08:07:06 +02:00
alexey.lysiuk
8ec6c21195 - fixed deprecation warnings in Cocoa backend 2021-10-18 11:03:34 +03:00
alexey.lysiuk
7741a934b8 - bump macOS version to 10.12 in .plist 2021-10-18 10:41:02 +03:00
alexey.lysiuk
c27fc92776 - fixed xcode bundle identifier warning
warning: User-supplied CFBundleIdentifier value 'org.drdteam.gzdoom' in the Info.plist must be the same as the PRODUCT_BUNDLE_IDENTIFIER build setting value ''.
2021-10-18 10:40:25 +03:00
alexey.lysiuk
b85282fe5e - disabled nullability warnings in Vulkan memory allocator 2021-10-18 10:27:03 +03:00
alexey.lysiuk
e0cdb1e32e - removed NoVirtualRefCountedBase class 2021-10-18 10:26:21 +03:00
alexey.lysiuk
94b77de5ed - fixed Vulkan memory allocator initialization 2021-10-18 09:50:33 +03:00
alexey.lysiuk
df2d07e0d5 - update Vulkan headers to the latest released SDK
https://github.com/KhronosGroup/Vulkan-Headers/releases/tag/sdk-1.2.189.1

This fixes missing `VK_ERROR_UNKNOWN` definition
2021-10-18 09:47:44 +03:00
alexey.lysiuk
80b8ab8fa2 - add missing vk_mem_alloc.natvis
1b0bd18053/src/vk_mem_alloc.natvis
2021-10-18 09:44:47 +03:00
Christoph Oelckers
eb9f752db8 - updated vk_mem_alloc. 2021-10-17 09:12:03 +02:00
nashmuhandes
12c509cc46 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-17 03:42:15 +08:00
Marisa Kirisame
95b8629fe0 Allow customization of pause screen. 2021-10-16 11:33:30 +02:00
nashmuhandes
4b386fd268 Merge branch 'lightmaps2' of https://github.com/dpjudas/gzdoom into lightmaps2 2021-10-15 12:52:17 +08:00
Magnus Norddahl
81f7b083c0 Improve light probe lookup speed for large sectors by using a grid instead of subsectors 2021-10-15 04:21:18 +02:00
nashmuhandes
ea560172f7 Add light probes to wall decals 2021-10-14 17:35:44 +08:00
nashmuhandes
96383792fa Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-14 12:20:42 +08:00
Magnus Norddahl
6a804cd4c7 Fix lightmaps got applied to model meshes 2021-10-14 06:11:54 +02:00
Magnus Norddahl
764a08752f Use a faster way to find the closest light probe
Fix light probe not being applied to psprite
2021-10-14 05:43:35 +02:00
Hugo Locurcio
d0975467f5 Add cvars to control automap line alpha and thickness
This can be used to improve automap readability on high-resolution
displays.

Some automap options in the menu were reordered to follow a more
logical order.
2021-10-11 22:30:31 +02:00
Magnus Norddahl
b59bd46b79 Fix crash in GetDynSpriteLight when the actor is null 2021-10-08 21:47:43 +02:00
Marisa Kirisame
7c591cd0e9 Allow map markers to scale relative to automap zoom. 2021-10-08 16:03:51 +02:00
nashmuhandes
635a279186 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-08 16:26:26 +08:00
Magnus Norddahl
a77dfae0bc Fix out of pool memory error 2021-10-08 10:15:01 +02:00
Christoph Oelckers
19aac25f19 - fixed some imprecisions in font luminosity calculation.
This was still going through the palette which could result in off-by-one errors.
2021-10-07 00:13:34 +02:00
Christoph Oelckers
60bf096912 - fixed palette initialization for single lump fonts (FON2 and BMF)
The bad increment was due to the palette being a byte array in older versions.
2021-10-06 20:30:29 +02:00
Christoph Oelckers
a8ea5bef00 - removed unused static array. 2021-10-06 14:10:22 +02:00
Christoph Oelckers
8d9d56c339 - push sprite shadows a little back for distance sorting
They always need to be behind sprites with the same distance.
2021-10-05 13:57:31 +02:00
nashmuhandes
52004f36b4 Add sunlight actor for ZDRay 2021-10-05 18:09:00 +08:00
nashmuhandes
d35cd9549f Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-10-05 12:53:05 +08:00
Christoph Oelckers
3c961a2aa2 - avoid multiple Dehacked mappings to the same function.
Due to some MBF21 related changes these would cause interference.
Instead the two affected functions, A_NailBomb and A_RadiusDamage are now separate script functions that just call A_Explode with the correct parameters.
2021-10-03 18:16:37 +02:00
Christoph Oelckers
6e9e75c02c - disallow changing the line spacing for option menus.
With the VGA font this makes no sense anymore.
2021-10-03 15:54:08 +02:00
Christoph Oelckers
6bf487dac3 - fixed wrong state being checked for dynamic light updating. 2021-10-03 15:44:42 +02:00
Christoph Oelckers
b4d03501af - be a bit more aggressive with the GC when not running the game loop.
Since most CheckGC calls are within the main game ticker, the engine can accumulate a lot of data when creating/deleting objects in the menu or other UI parts and never manage to collect everything
2021-10-03 14:01:27 +02:00
Christoph Oelckers
88be3b8a1b - fixed base class for DShape2DBufferInfo. 2021-10-03 13:09:39 +02:00
Christoph Oelckers
6da9f00e6e - allow "INDEXFON" as an alias for "INDEXFONT". 2021-10-03 09:00:24 +02:00
Magnus Norddahl
247deff5bb Fix using wrong lightmap UV coordinates after all the wall clipping did its thing 2021-10-03 03:47:40 +02:00
Magnus Norddahl
0ac1baac48 Simplify the lightmap array slightly 2021-10-02 22:14:56 +02:00
Marisa Kirisame
457f7c31c3 Allow WorldUnloaded events to know the next map name (if any). 2021-10-01 20:18:36 +02:00
Rachael Alexanderson
a15d4e574d - oops forgot the namespace 2021-09-29 10:52:46 -04:00
Rachael Alexanderson
e9ce77c39e - fix the ugly constants in udmf.cpp - namespace them to the file, and add comments depicting what they are 2021-09-29 10:51:59 -04:00
nashmuhandes
70b72a2157 - Recognize the new lightmap UDMF keywords
- Add dummy actors to hold the UDMF keys for lightmapping. These actors will despawn at map start
- Make light probe despawn at map start as well
2021-09-29 17:42:48 +08:00
nashmuhandes
ff3cdb7e56 Merge branch 'master' of https://github.com/coelckers/gzdoom into lightmaps2 2021-09-27 07:32:30 +08:00
Magnus Norddahl
e0ea5e3b55 Add light probe support for sprites 2021-09-25 18:53:18 +02:00
Emile Belanger
8f54de99e0 GLES: Fix texture MapBuffer and AllocateBuffer create client side memory. 2021-09-25 11:14:18 -04:00
Magnus Norddahl
b59554f319 Fix "out of memory" errors when the vulkan backend is asked to create zero byte sized buffers 2021-09-25 08:42:31 -04:00
Jan Engelhardt
25350109e8 gles: look for libGLESv2.so.2
Distros do not have the .so files at all times, because those are
counted as development and not runtime.
2021-09-25 04:21:16 -04:00
nashmuhandes
d2b8f1aaff Add light probe actor 2021-09-25 12:00:25 +08:00
Magnus Norddahl
8a2f445dd6 Fix lightmap texture not getting bound by the OpenGL backend 2021-09-25 00:39:28 +02:00
Magnus Norddahl
63ecb36889 Add lightmap texture support to vulkan backend
Also fix a warning in SetFlatVertex
2021-09-25 00:13:25 +02:00
Magnus Norddahl
24070cba2d Add missing LightMap bind call 2021-09-24 17:24:59 +02:00
Magnus Norddahl
604c4ff8e0 Fix vertex layout locations and add lightmap to vulkan shader 2021-09-24 16:21:23 +02:00
nashmuhandes
934b5af975 Add lightmaps to 3D floors 2021-09-24 17:42:34 +08:00
nashmuhandes
3f3769afdb - implement drawing sides with lightmaps
- misc bug fixes in lump loading and format
2021-09-24 17:27:23 +08:00
nashmuhandes
2f8cff90b6 - Add lightmaps to the main shader (currently only OpenGL)
- Create a version of CreateIndexedSectorVertices that works with lightmap sectors
2021-09-24 16:56:15 +08:00
nashmuhandes
39481f0d07 - Add support for loading lightmap data generated by ZDRay
- Initialize lightmap texture in the hardware abstract parts of the engine
2021-09-24 14:51:48 +08:00
Christoph Oelckers
3ef60a40a5 - fixed particle processing in the main thinker loop
This may not be guarded by the dynamic light flags, only the light ticking may.
2021-09-24 08:33:37 +02:00
drfrag
d84b44cbd1 - Add missing null pointer check. 2021-09-24 08:07:20 +02:00
Christoph Oelckers
23477342c3 - fixed handling of states with the 'light' keyword. 2021-09-24 00:01:19 +02:00
drfrag
c13cd74766 - Fixed broken V_BreakLines. 2021-09-23 15:36:24 +02:00
Christoph Oelckers
708717b6ab - we're past 4.7 now. 2021-09-23 14:01:14 +02:00
Christoph Oelckers
dc116721fb - missed the index. 2021-09-23 11:41:48 +02:00
Christoph Oelckers
f10578a04b - treat "materials" as a known folder name for eliminating root folders in Zips. 2021-09-23 10:54:18 +02:00
Christoph Oelckers
55186d3f6c - updated survey code to check for Apple's M1 CPU. 2021-09-21 22:01:50 +02:00
Christoph Oelckers
702b75e96a - fixed one frame activation delay for dynamic lights.
We cannot check HasDynamicLights in ProcessThinkers because it gets set too late.
2021-09-21 20:43:21 +02:00
Christoph Oelckers
6c12a8de12 - properly track whether some action in the current frame may have triggered a dynamic light activation. 2021-09-21 20:31:43 +02:00
Christoph Oelckers
da806b354d - cleanup of the revised y-clamping feature.
This integrates better with the existing features.
2021-09-21 20:31:42 +02:00
Emile Belanger
4de6b769d3 GLES: Only use GPU sync if necessary and available.
If there are complaints of reduced performance, or visual artefacts compared to 4.6.1, it may be worth increasing HW_MAX_PIPELINE_BUFFERS to 4 again.
2021-09-21 18:45:55 +02:00
Emile Belanger
db59a4f9af Add buffer synchronisation for GLES when using mapped buffers. 2021-09-20 18:12:20 -04:00
Emile Belanger
76875f0a3c Fix spot lights for GLES 2021-09-20 18:12:20 -04:00
Emile Belanger
e361ff1a9c Removed unused EGL files 2021-09-20 18:12:20 -04:00
Yarn366
6d8862b514 Added detection for IWADs downloaded via the Bethesda.net Launcher 2021-09-20 10:50:19 -04:00
Cacodemon345
567bff403a Fix broken text input when SDL2 is using Wayland 2021-09-20 10:49:41 -04:00
Rachael Alexanderson
cb0c8922e0 - downgrade GL_EXTENSIONS message in OpenGL ES to logging level 2021-09-20 08:46:34 -04:00
Christoph Oelckers
a0043ec09d - better handling of texture clamp state.
Free combination of clamping with all texture modes still missing in GLES and Softpoly renderers!
2021-09-19 14:54:34 +02:00
Christoph Oelckers
3acc5a2723 - fixed code generation issues with parameterized MBF21 functions. 2021-09-19 12:59:24 +02:00
Christoph Oelckers
fb107f80e6 - fixed vertex generation when splitting walls by planes on old hardware. 2021-09-18 13:09:05 +02:00
Rachael Alexanderson
614b8477b8 - change URL for stats script 2021-09-18 06:58:21 -04:00
Christoph Oelckers
fc2818b195 - menu system update from Raze for better control of animated menus. 2021-09-18 12:19:35 +02:00
Christoph Oelckers
31de21e6aa - GLES fixed: The weapon sprite must be rendered with the fullscreen colormap on. 2021-09-18 10:27:41 +02:00
Christoph Oelckers
1fe5fc2edc - changed survey control CVAR to avoid sending data for participants of the previous survey without confirmation. 2021-09-18 10:19:23 +02:00
Christoph Oelckers
7aaea65f28 - fixed GLES startup 2021-09-18 10:18:23 +02:00
Christoph Oelckers
a6819bfe62 - use explicit virtual screen sizes for the scripted intermission backgrounds to better cope with background replacements.
A new command, "screensize", has been added to allow setting it explicitly, and this has been used for all the stock animations.
2021-09-18 09:19:34 +02:00
Christoph Oelckers
2350780db0 - fixed: "Dialogue" in MAPINFO must clear all "AddDialogues" that came before. 2021-09-17 23:04:13 +02:00
Christoph Oelckers
67958833b7 Merge branch 'gles2_merge' 2021-09-17 21:22:41 +02:00
Christoph Oelckers
c9d9982b68 - fixed: Decal things did not spawn their lower decals. 2021-09-17 00:48:12 +02:00
Christoph Oelckers
918e9e9b0d - fixed texture clamping for elements that are partially behind a slope.
This is mainly mid textures on linedefs and decals.
2021-09-17 00:25:28 +02:00
Christoph Oelckers
23a2ccec2b - Consider 'Program Files' a read only location without actually checking.
Due to virtualization the actual check may not produce correct results, plus writing there is bad style anyway.
2021-09-15 00:39:18 +02:00
Christoph Oelckers
8c715d48cd - fixed: 3D floor model sectors were not added to the sector lists for precise rendering. 2021-09-14 19:49:42 +02:00
Christoph Oelckers
17638426b9 - removed the redundant gl_render_precise CVAR.
The menu now uses gl_seamless directly without the redirection.
2021-09-14 19:49:42 +02:00
Christoph Oelckers
b0382599f6 - removed the SSBO block for desktop OS’s when gl_pipeline_depth is enabled 2021-09-14 00:13:08 +02:00
Magnus Norddahl
796890bb98 Limit texture upload transfer buffers to roughly 64 MB 2021-09-13 23:56:15 +02:00
Christoph Oelckers
f783a94835 - treat 'vid_adapter 0' as what Windows considers the primary monitor.
Courtesy of https://devblogs.microsoft.com/oldnewthing/20070809-00/?p=25643
2021-09-12 10:02:30 +02:00
Christoph Oelckers
b550f57ce3 - fixed: Brightmap application for horizons was undefined..
This depended on the state of the previously rendered portal which could have switched it off.
2021-09-12 08:37:19 +02:00
Christoph Oelckers
43c38a2097 Merge branch 'master' of https://github.com/coelckers/gzdoom 2021-09-09 13:58:23 +02:00
Rachael Alexanderson
f56ad02716 - enable cvar blacklisting for defcvars for certain platform variables 2021-09-05 10:27:06 -04:00
Rachael Alexanderson
42d948f2fe - demote unknown/invalid defcvars to warnings 2021-09-05 09:47:05 -04:00
Rachael Alexanderson
79cbaf5d4f - split defcvars parser into its own file 2021-09-05 08:21:34 -04:00
Christoph Oelckers
b5294e9e90 - backend update from Raze. 2021-08-31 07:59:37 +02:00
Christoph Oelckers
78fd7aa090 - fixed bad file in last commit. 2021-08-24 16:03:53 +02:00
Christoph Oelckers
c2a2e08f05 - exported STAYONLIFT flag. 2021-08-24 15:50:30 +02:00
Christoph Oelckers
196a4c0b36 - added a modified version of MBF's stay-on-lift feature.
The reason this was never added was the hard dependency on the line trigger types. This implements some modified logic that does not try to find all potential lifts in the map.
Also moving the MBF flags to compatflags so that they are easier to control by the user as these must be part of compatibility presets.
2021-08-24 11:48:07 +02:00
alexey.lysiuk
4bd617187b - fixed crash on getting location description without a level
Run `bench` CCMD in fullscreen console, i.e. with no level loaded, wait five seconds, open menu

https://forum.zdoom.org/viewtopic.php?t=73109&start=15#p1198234
2021-08-24 11:34:28 +03:00
Christoph Oelckers
03c8fd9956 - block user overrides for the logic module of core fragment shaders. 2021-08-24 10:24:23 +02:00
Christoph Oelckers
dfd51ec6d5 - added missing MBF21 Dehacked keys "blood color" and "dropped item". 2021-08-22 16:36:10 +02:00
Christoph Oelckers
854e11a9de - made CheckMeleeRange a normal function again.
This way it can be directly used as a native ZScript export.
Like SuggestMissileAttack the change to a method was for virtual overrides that have been turned into flags since then.
2021-08-21 12:44:36 +02:00
Christoph Oelckers
ac48518abc - merged SuggestMissileAttack back into P_CheckMissileRange.
This was once a virtual function to handle the various monster specific modifiers but this had been changed into properties a long time ago.
2021-08-21 12:37:23 +02:00
Christoph Oelckers
d15f450fef - implemented MBF's monsters_avoid_hazards feature.
Both as a map flag for MBF21 support and as an actor flag for better control.
2021-08-21 12:29:24 +02:00
Christoph Oelckers
5382e7c17b - fixed compilation 2021-08-21 12:22:53 +02:00
Christoph Oelckers
8bdd4befbf - replaced deprecated throw() with noexcept in TObjPtr 2021-08-21 12:22:15 +02:00
Christoph Oelckers
b1de11dce8 - added a map flag to disable MF6_JUMPDOWN.
Not really useful but since MBF has this we may need it if we support the OPTIONS lump for MBF21 later.
This is intentionally not exposed to MAPINFO.
2021-08-21 11:37:57 +02:00
Christoph Oelckers
ff497996a3 - added a per-level AVOIDMELEE flag.
This already existed as a per-actor flag, but for proper MBF support it needs to be settable on a per-map basis as well.
2021-08-21 10:55:22 +02:00
Christoph Oelckers
4614ce41cd - allow passing a remap table to BestColor. 2021-08-21 10:55:21 +02:00
Christoph Oelckers
19c8eb1e33 - fixed bad check for gl pipeline type. 2021-08-20 08:07:16 +02:00
Rachael Alexanderson
2096fefcee Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-18 12:31:47 -04:00
Marisa Kirisame
13bdd324e1 hud models: add nullptr check for psprites without caller. 2021-08-15 08:47:04 +02:00
Christoph Oelckers
109069f718 - removed the unused palette parameter from the V_GetColor family of functions. 2021-08-14 09:57:23 +02:00
Rachael Alexanderson
92a3731f20 Merge remote-tracking branch 'origin/master' into gles2_merge 2021-08-13 08:11:58 -04:00
Christoph Oelckers
c3772fe203 - changed FString API to use ptrdiff_t instead of long for signed size arguments. 2021-08-12 00:45:59 +02:00
Marisa Kirisame
1d96b68e1a Fixed IsHUDModelForPlayerAvailable limitation. 2021-08-11 20:09:25 +02:00
Marisa Kirisame
888eab3063 HUD model tweaks:
- Look up HUD models by referencing the psprite's caller, rather than player's ReadyWeapon.
- Allow Strife hands psprite to be a model.
2021-08-11 20:09:25 +02:00
Christoph Oelckers
f34258281f - fixed: crushing stairs must use HexenCrush mode.
This was the default for floors even in Doom, so it must also apply to the stairs.
2021-08-11 19:58:57 +02:00
alexey.lysiuk
ed606b8ed3 - extended 2D buffer lifetime to the end of the frame 2021-08-11 19:50:49 +02:00
alexey.lysiuk
387aef27ad - use RefCountedPtr to manage 2D shape buffer infos 2021-08-11 19:50:49 +02:00
alexey.lysiuk
76ecf44549 - added RefCountedBase without virtual destructor 2021-08-11 19:50:49 +02:00
alexey.lysiuk
bbcd522052 - made RefCountedPtr follow rule of five 2021-08-11 19:50:49 +02:00
Gutawer
67e7d1a6f5 - make RenderCommands able to use Shape2D vertex buffers past the Shape2D's lifetime without crashing 2021-08-11 19:50:49 +02:00
Christoph Oelckers
ccf46281df - fixed line color handling in V_BreakLines.
This cannot use the last color found while reading ahead - it must pick the last color of the string part that just got broken out into its own line when starting the next one.
2021-08-11 16:01:40 +02:00
Christoph Oelckers
139f501ec5 - run the dynamic light recreation loop before calling the light ticker.
This was done afterward which performed some needed cleanup too late.
2021-08-11 15:41:42 +02:00
Christoph Oelckers
1097bd6c73 - fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
Especially in the thinker code this is needed for software rendering.
Strictly speaking, the software renderer should do the same, but it checks r_dynlight in so many places deep in the logic where the level is not available.
2021-08-11 14:09:00 +02:00
Christoph Oelckers
26d00e14c7 - file system update from Raze. 2021-08-11 12:39:32 +02:00
Christoph Oelckers
3adadfe4d3 - do not run the dynamic light ticker when lights are switched off. 2021-08-11 12:39:17 +02:00
Christoph Oelckers
f662c629e3 - ensure that shadowmap indices only get set when shadowmaps are enabled.
Having valid indices set when shadowmaps are off would cause the shader to run the full checks for all lights.
2021-08-11 10:06:22 +02:00
Christoph Oelckers
436ec28e94 - fixed file system's zip loader to not strip away a 'filter/' prefix. 2021-08-11 10:01:11 +02:00
Christoph Oelckers
c24f644a61 - do not perform shadowmap updates when dynamic lights are disabled. 2021-08-11 08:08:29 +02:00
Christoph Oelckers
6a63d9e70e - moved the CheckForRestart call one level up so that it is within the Windows code and does not need #ifdefs. 2021-08-10 22:17:00 +02:00
Christoph Oelckers
4505bfa4b8 - delay the restart action from the error pane until after everything has been shut down.
This cannot be done from a place where the old instance still can write to the config file, which happens only in the shutdown process.
2021-08-10 22:09:32 +02:00
Christoph Oelckers
b6156ac490 - re-fixed the font spacing. 2021-08-10 22:04:32 +02:00
Christoph Oelckers
9cd1e8cf7a - use proper XMove for sheet fonts. 2021-08-10 21:18:27 +02:00
Christoph Oelckers
99c66071fb - use original menu spacing for skill and episode menus if all elements are patches. 2021-08-10 21:08:26 +02:00
Christoph Oelckers
f29eff5b4c - fixed: the software scene drawer must be deleted before calling ST_Endoom.
This contains render data that won't get deleted in time before taking down the render backend if not manually performed.
2021-08-10 19:22:19 +02:00
Christoph Oelckers
03b7324f71 - reorder evaluation for 'if' statements to handle the condition first.
Otherwise this won't emit errors if a bad condition is used with an empty conditional part.
2021-08-10 19:03:40 +02:00
Christoph Oelckers
a16088f4b4 - fixed two vr_* CVARs not getting archived. 2021-08-10 18:51:44 +02:00
Christoph Oelckers
61efe76ffd - fixed: palette index 0 (transparent) was left uninitialized for BMF fonts. 2021-08-10 18:18:44 +02:00
Christoph Oelckers
4cee567b23 - fixed: P_RoughMonsterSearch did not pass the fov parameter to its worker functions. 2021-08-10 18:04:10 +02:00
Christoph Oelckers
61739b4086 - fixed BlockThingsIterator to not reset its list of processed actors when traversing portals. 2021-08-10 18:00:14 +02:00
alexey.lysiuk
747c291ae1 - fixed patch version in compatibility implementation of macOS detection 2021-08-07 12:37:18 +03:00
alexey.lysiuk
a21c388dd6 - destroyed stale thinkers after change level failure
https://forum.zdoom.org/viewtopic.php?t=72890
2021-08-06 15:10:21 +03:00
alexey.lysiuk
dcfd72c766 - fixed crash after change level failure
https://forum.zdoom.org/viewtopic.php?t=72890
2021-08-06 15:02:00 +03:00
Cacodemon345
a067466dd8 SDL2: Properly print white bold text to the screen 2021-08-04 20:27:14 +03:00
Christoph Oelckers
441cd0796f - merged gzdoom-gles2 and fixed some issues with pipeline size validation. 2021-08-03 20:12:19 +02:00
Christoph Oelckers
a8a5613675 - use proper music check in 'idmus' CCMD. 2021-08-03 12:59:10 +02:00
Christoph Oelckers
b82b5384a0 - Backend update from Raze.
* voc loader fix.
* better prefix detection in Zip loader.
* SDL Vulkan init.
* disabling of shadowmap management when the feature is off.
2021-08-03 12:52:21 +02:00
Christoph Oelckers
c1a8776a15 - updated common code from screenjob branch.
That is, all parts not related to cutscenes.
2021-08-03 12:30:44 +02:00
drfrag
f89e6950c3 - Make changemap use + for next and +$ for nextsecret maps. 2021-07-29 10:16:10 +02:00
drfrag
5a0dc4297f - Extend the changemap command to allow warping to next or nextsecret. 2021-07-28 10:24:25 -04:00
alexey.lysiuk
7a3d8bd0e5 - fixed crash after fatal error in SDL backend
https://forum.zdoom.org/viewtopic.php?t=72885
2021-07-28 09:50:34 +03:00
alexey.lysiuk
b5247182f4 - fixed premature destruction of status bar
Status bar was already freed while `FCajunMaster::RemoveAllBots()` function may still access it
Status bar is destroyed a bit later in `P_Shutdown()` function

https://forum.zdoom.org/viewtopic.php?t=72843
2021-07-28 09:48:52 +03:00
Cacodemon345
b4fe164192 Search $HOME/.local/share/games/doom directory...
...for soundfonts, IWADs and WAD files.

This partially matches Chocolate Doom behaviour.
2021-07-23 15:51:55 -04:00
Jeroen de Baat
8ac8e31a61 Fix typo in sw renderer comment 2021-07-21 20:58:41 +02:00
drfrag
2d0a876ab1 - Fix wrong thiswad check for materials too. 2021-07-18 13:11:57 +03:00
drfrag
d00c6e4ecc - Added missing null pointer check. 2021-07-17 23:23:32 +02:00
Gaerzi
3f9a3a454b Brightmaps fix
See https://forum.zdoom.org/viewtopic.php?f=2&t=72687 for more information.
2021-07-16 21:14:59 +02:00
Rachael Alexanderson
eb2646b613 - change previous /0 fix: as suggested here: cb8ae0b560 (commitcomment-53414064) 2021-07-13 06:32:54 -04:00
Christoph Oelckers
0cffeef2c6 - added map option to disable shadowmaps.
Prompted by 'Hurt' which has > 4000 lights and runs into both performance issues and unpredictable light selection for the limited amount of shadowmap slots.
2021-07-13 11:54:25 +02:00
Rachael Alexanderson
cb8ae0b560 - fix /0 error caused by having a completely black font character. this error was triggered by Return of the Triad. 2021-07-13 00:15:39 -04:00
alexey.lysiuk
e02690af58 - do not precache unreferenced textures
https://forum.zdoom.org/viewtopic.php?t=72649
2021-07-12 13:27:49 +03:00
Christoph Oelckers
e453f97872 - Backend update from Raze. 2021-07-11 09:53:01 +02:00
Christoph Oelckers
92a92b1303 - fixed: MBF21' scrollers need to divide the offsets by 8. 2021-07-04 11:33:34 +02:00
Christoph Oelckers
9082ef7d49 - MBF21: more work on flags.
* added handlers for the missing upper flags in the first flag word.
* refactored some code related to MF_BOUNCES to adapt to other flags' changes to avoid constant property updates for too many flags.
* treat anything with RF_ZDOOMTRANS as non-translucent for the purpose of the flag checks.
2021-07-02 19:48:58 +02:00
Christoph Oelckers
e82fd43313 - tweaked shadow code a bit.
* let CASTSPRITESHADOW act as an override for render style checks. If this is set we can assume that a shadow is desired regardless of style.
* reordered code to do the more costly checks only when needed.
2021-07-02 09:12:26 +02:00
Christoph Oelckers
5273ef360e - fixed: shadow alpha for translucent objects was not correct in the hardware renderer. 2021-07-02 08:54:15 +02:00
Christoph Oelckers
8547a55677 - better sprite shadow control
* exclude sprites which are not either opaque or use regular blended translucency from casting shadows.
* exclude wall and flat sprites from casting shadows.

In both of these cases the shadow math is unable to produce anything useful that doesn't look off.
2021-07-02 08:47:58 +02:00
Christoph Oelckers
ff129b26d1 - MBF21: added the code generator for the new functions. 2021-07-01 17:42:24 +02:00
Christoph Oelckers
483c1f6dcf - MBF21: added the weapon functions. 2021-07-01 17:42:24 +02:00
alexey.lysiuk
e63f3e394c - fixed format specifier compilation warnings
src/common/engine/serializer_internal.h:241: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/engine/serializer_internal.h:250: warning: format specifies type 'long long' but the argument has type 'int64_t' (aka 'long') [-Wformat]
src/common/rendering/vulkan/system/vk_device.cpp:364:29: warning: format specifies type 'unsigned long long' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat]
src/common/rendering/vulkan/system/vk_framebuffer.cpp:701:57: warning: format specifies type 'unsigned long long' but the argument has type 'VkDeviceSize' (aka 'unsigned long') [-Wformat]
2021-07-01 13:19:18 +03:00
Christoph Oelckers
c8557b8ab4 - let the DEH parser handle 64 bit values.
We may need them, depending on how the MBF21 flag stuff evolves.
2021-07-01 08:55:01 +02:00
Christoph Oelckers
7ade3b829b - moved MF_INCHASE to flags7.
Due to how the MBF21 flag checkers work the first flag word may not repurpose any unused flags in it. We still need MF_SLIDE to be usable by them, despite being totally unused.
2021-07-01 08:55:01 +02:00
alexey.lysiuk
29f6dd23b9 - fixed compilation with GCC and Clang
src/playsim/p_maputl.cpp:1691:42: error: too many arguments provided to function-like macro invocation
src/gamedata/d_dehacked.cpp:2385:62: error: cannot pass non-trivial object of type 'FString' to variadic function;
2021-07-01 09:24:33 +03:00
Christoph Oelckers
c700682a36 - MBF21: ported the code pointers to ZScript.
So far it's just the functions and some initial changes to Dehacked's parser. None of this is usable yet.
2021-07-01 00:53:15 +02:00
Christoph Oelckers
f701ef5c68 - MBF21: Added parser for the state's 'fast' flag. 2021-06-30 17:44:08 +02:00
Christoph Oelckers
1a0398ae59 - MBF21: new weapon flags.
Except for NOAUTOSWITCHTO all remappings to existing features.
2021-06-30 17:19:38 +02:00
Christoph Oelckers
b043a5a5de - add melee range support to A_Saw and A_Punch.
This is merely for MBF21 support and not a recommended editing feature! There are better ways to define the range of a player's attack!
2021-06-30 14:48:13 +02:00
alexey.lysiuk
a9ad3d1fc3 - prevent appearance of dangling pointers in corpse queue
A dangling pointer in corpse queue may appear if actor is added to the queue when GC is in propagation state.
Enqueued corpse actor remains white, and if it’s destroyed and garbage collected before dequeue, a dangling pointer will be accessed during its removal from the queue.
In console, do `summon CorpseSpawner` and `gc now` with the following script loaded. Without a write barrier, it will crash in two seconds.

```
class TestCorpse : Actor
{
	States
	{
	Spawn:
		POSS U 1 A_Die;
	Death:
		POSS U 1 A_QueueCorpse;
		Stop;
	}
}

class CorpseSpawner : Actor
{
	override void Tick()
	{
		A_SpawnItem("TestCorpse");
	}
}
```

https://forum.zdoom.org/viewtopic.php?t=69842
2021-06-30 10:19:08 +03:00
Christoph Oelckers
9b3782ea0f - MBF21: remaining actor properties. 2021-06-29 22:32:38 +02:00
Christoph Oelckers
e2e8ec8b3e - MBF21: implemented thing flags. 2021-06-29 21:08:58 +02:00
Christoph Oelckers
0bb5ec0d22 - MBF21: splash group. 2021-06-29 17:47:52 +02:00
Christoph Oelckers
cc801a7efa - MBF21: added projectile group. 2021-06-29 17:33:16 +02:00
Christoph Oelckers
bca8d01ab3 - MBF21: infighting groups. 2021-06-29 01:34:14 +02:00
Christoph Oelckers
9b4a4157b9 - added an OnDestroy method to Shape2D so that its users can explicitly free the data it holds.
In this case it is very important to care about management, because this class will hold GPU-side buffers!
2021-06-28 22:21:27 +02:00
Christoph Oelckers
3bef08b1aa - MBF21: implemented the new line scroller types.
These extend the parameter set of Scroll_Texture_Offsets, so in Hexen/UDMF format the advanced scroll types are also available for the tag-less variant.
2021-06-28 22:06:07 +02:00
Cacodemon345
5b1b6f1db4 Add Windows 11 detection 2021-06-28 20:18:52 +02:00
Christoph Oelckers
c4ed0cefde - MBF21: implemented new line flags.
While 'block players' was just a simple remap, 'block land monsters' required quite a bit of work...
This also fixes the bug that BLOCK_FLOATERS was never checked for sliding against a wall.
2021-06-28 20:17:08 +02:00
Christoph Oelckers
057cc0678b - MBF21: handling of new flags in sector special. 2021-06-28 16:20:35 +02:00
alexey.lysiuk
256451115b - report correct macOS version with older SDKs
When built against 10.15 SDK or earlier, macOS 11.0+ returns 10.16 for compatibility, and external process is needed to output the actual version for us
2021-06-15 10:35:33 +03:00
alexey.lysiuk
cf4c72d4a7 - fixed potential crash when sound sequence is destroyed
Level can be unset if sound sequence destruction happens after saved game loading failure

https://forum.zdoom.org/viewtopic.php?t=72551
2021-06-14 09:30:51 +03:00
Christoph Oelckers
4e46a83734 - fixed bad type in FxFontCast. 2021-06-14 08:00:08 +02:00
alexey.lysiuk
38f2402d2d - added TVector2<> constructor from float*
As we seem to do not like explicit constructors, this will make temporary `TVector3<>` object creation much less probable
2021-06-13 10:42:34 +03:00
alexey.lysiuk
ff784fc905 - fixed parsing of 2D vectors in OBJ model loader
There is no `TVector2<>` constructor that accepts a pointer to float. However, there is such constructor in `TVector3<>`, so `TVector2<>` can be constructed from `float*` implicitly via temporary `TVector3<>` object.
2021-06-13 10:42:34 +03:00
alexey.lysiuk
e0f07d7088 - fixed initialization of model frames
Replaced loop arrays initialization and obvious comments with something more readable, I hope

https://forum.zdoom.org/viewtopic.php?t=72523
2021-06-10 11:54:26 +03:00
alexey.lysiuk
5b1c73e15f - prevent redundant string copying in Strife conversation parser
strifedialogue.cpp:110:22: warning: loop variable 'addd' of type 'const FString' creates a copy from type 'const FString' [-Wrange-loop-analysis]
2021-06-08 10:31:45 +03:00
alexey.lysiuk
e166eeb13d - added detection of macOS 12 Monterey 2021-06-08 10:25:05 +03:00
Christoph Oelckers
b3fd8ce12a - fixed permission validation in OptionMenuItemCommand.DoCommand.
This was missing the InMenu check like the other critical menu functions.
2021-06-07 08:16:53 +02:00
emily
4f034950be Make sprite shadows ignore float bob 2021-06-06 13:40:17 +02:00
Christoph Oelckers
8b5847d4a2 - corrected the NUL checks in S_FindSkinnedSound. 2021-06-04 08:26:29 +02:00
alexey.lysiuk
7d1ce1c8cd - fixed parsing of MAPxx par times in BEX lumps
https://forum.zdoom.org/viewtopic.php?t=72458
2021-06-03 16:46:55 +03:00
Christoph Oelckers
30e24938ca - let dynamic lights call UpdateLocation instead of just setting their position right after being spawned.
This ensures that the position is correct and that everything gets set up properly.
2021-05-31 22:13:40 +02:00
Christoph Oelckers
b0ccd3a7df - moved Doom specific font init code out of the backend. 2021-05-31 22:13:40 +02:00
drfrag
d9db8984af - Fixed crash calling ChangeSky() with an invalid texture. 2021-05-29 15:07:45 -04:00
Zandrewnum
acb4d89f52 APROP_Soundclass update again
- Just set init for SoundClass to empty.
- Removed code block from SetActorProperty for APROP_Soundclass that does nothing
- Lower-cased soundclass in FSerializer
- Created a new const char to read the player's soundclass. If the playerpawn returns NAME_None for it's default, then it will set defaultsoundclass to "player". After running the skin code, the function now returns defaultsoundclass or soundclass, depending if soundclass is empty or not.
- Renamed GetSoundClass to S_GetSoundClass
2021-05-28 20:22:37 +02:00
Zandrewnum
a5cf0c6605 Sound Class renovations
- SoundClass is instantiated to "" by default. Since this property is only used when it is not empty (otherwise GetSoundClass just defaults to player), we can get away with this.
- We may want the soundclass to remain the same if we explicitly set it to the same one that is currently used (say, we set SoundClass to "Caleb" so all other skins can use it)
- GetActorProperty for APROP_SoundClass just calls GetSoundClass,
- CheckActorProperty also just runs GetSoundClass
- GetSoundClass is no longer a static method. We needed to access it in other places.
- Made renovations to GetSoundClass. First of all, SoundClass is no longer instantiated there. Secondly, skinned sounds are now returned if SoundClass is empty. Thirdly, "sclass" in this method will return the default soundclass of the player pawn or SoundClass, depending on if SoundClass is empty. Finally, sclass will retrieve "player" if it is empty.
2021-05-28 20:22:37 +02:00
Shiny Metagross
4c9461d364 Update d_player.h
- Deleted some comment fragments I left when trying to get the SoundClass to init to NAME_SoundClass
2021-05-28 20:22:37 +02:00
Zandrewnum
c7cd25cbcc Made S_FindSkinnedSound to use GetSoundClass again
- I couldn't simply init SoundClass to NAME_SoundClass, even after converting it to the appropriate type. Probably because NAME_SoundClass hasn't been parsed from decorate yet. Instead, I change it to NAME_SoundClass through GetSoundClass if it's valid and currently "player".
- The skin checker code in GetSoundClass now checks if the SoundClass is equal to NAME_SoundClass. This mechanism exists so that way reverting the SoundClass to NAME_SoundClass processes the skin soundclass code. If it's different, the code is not processed.
- Just returns sclass. This is never null, so there's no need to check if so.
- S_FindSkinnedSound just uses GetSoundClass. This makes sure skins are checked.
2021-05-28 20:22:37 +02:00
Zandrewnum
f6bdbfe535 APROP_SoundClass inits a default value and checks for null pointers
- Gave default init value to SoundClass as "Player"
- Changed SoundClass detection to use the if/else structure
- Checked for null pointer in S_FindSkinnedSound when reading the player's sound class
2021-05-28 20:22:37 +02:00
Zandrewnum
852a96497d Added APROP_SoundClass
- Added APROP_SoundClass to GetActorProperty, SetActorProperty, CheckActorProperty
2021-05-28 20:22:37 +02:00
nashmuhandes
08fc91fe3e Add 'AddDialogues' in MAPINFO to additively add Strife NPC dialogs without overwriting each other. 2021-05-28 16:15:37 +02:00
Christoph Oelckers
868220107b - added fallback to the parenthesis glyphs for the braces. 2021-05-28 12:36:47 +02:00
Christoph Oelckers
38520e36c8 - fixed generation of default color range for the option menu font. 2021-05-28 12:11:34 +02:00
Christoph Oelckers
20b665c161 - fixed: Actors did not set the position when spawning a dynamic light.
It always reused the previous content of the 'Pos' field which was either undefined or an older position where the actor was located when last spawning a light.
2021-05-28 11:25:01 +02:00
Christoph Oelckers
d36fd4f42b - fixed: GetColorTranslation did not handle translation-less single pic 'fonts' properly. 2021-05-28 10:47:11 +02:00
Christoph Oelckers
36e84a3669 - do not calculate translations for empty fonts.
FONTDEFS will create some due to lack of game filtering.
2021-05-27 13:50:02 +02:00
Christoph Oelckers
5f02b92cd0 - font system overhaul.
This eliminates nearly all palette dependencies, most importantly font translation will now be done on True Color data, making translations on True Color font less destructive.
2021-05-24 21:28:21 +02:00
Rachael Alexanderson
5cde02141c - version bump 2021-05-22 12:48:46 -04:00
nashmuhandes
aeaa7f21c7 Add some new optional parameters to A_SprayDecal:
- useBloodColor: when true, the sprayed decal will be shaded to match the calling actor's blood color.
- decalColor: when defined, the sprayed decal will be shaded to the specified color. Note that this will take precedence over useBloodColor. It is recommended to use only one parameter.

Note that due to how decals work in the engine, the "decalColor" parameter will only properly colorize the decal if the image is grayscale.
2021-05-22 10:20:52 -04:00
Christoph Oelckers
7eef7614f8 - do not send depth bias changes to the GPU if nothing has changed. 2021-05-21 21:01:20 +02:00
Cacodemon345
9a860ae445 Account for portals when spawning missiles in A_FireBullets/A_CustomBulletAttack
This also gives the caller the information whether the LineAttack
hitscan passed through a portal regardless of whether it actually hit an
actor or not as a nice bonus.
2021-05-20 19:42:29 +02:00
Christoph Oelckers
e963010eea - strip trailing spaces off the lines for intermission texts.
Some mods have trailing spaces here that affect the formatting.
2021-05-19 21:28:16 +02:00
Christoph Oelckers
9df70cd0df - change switch checking back to vanilla order. 2021-05-19 19:25:32 +02:00
Christoph Oelckers
a3a65f184f - use stb-image to handle PNGs with 16 bit color channels.
It is still not recommended to use this format - images tend to be huge and setup time is normally prohibitive - but at least they work now.
2021-05-19 19:20:51 +02:00
Christoph Oelckers
bd0ca55a35 - fixed: explicit float to int casts should not emit truncation warnings. 2021-05-19 18:35:36 +02:00
Christoph Oelckers
f0d8bd0a74 - tweaked Hexen's weapon pieces so they do not floatbob into the floor with the hardware renderer. 2021-05-19 18:30:19 +02:00
Christoph Oelckers
af137dbb35 - reset the 'playedtitlemusic' flag in D_StartTitle.
When returning to the title loop the music should play once again.
2021-05-19 16:43:01 +02:00
Rachael Alexanderson
cfc080e37f - never run the shader timer on the 0th frame. fixes this bug: https://forum.zdoom.org/viewtopic.php?f=2&t=62693 2021-05-18 14:37:05 -04:00
Christoph Oelckers
8a4fa8b65f - backend update from Raze. 2021-05-17 20:44:19 +02:00
Christoph Oelckers
97b8c0ccfb Revert "- fixed some uses of postincre,ment/decrements on narrow types."
This reverts commit 668f8f2cf6.

Revert "- added a proper error message when '--' or '++' gets used on 8 or 16 bit values."

This reverts commit a94f5dd1b3.

None of this was necessary - the triggered assert was bogus and had to be removed.
2021-05-17 18:13:30 +02:00
Christoph Oelckers
6e9c85791c - pick the proper dot for cutting off the extension in ExtractFileBase. 2021-05-17 13:11:41 +02:00
Christoph Oelckers
5bf2a26b82 - removed bogus assert from FxMinMax.
This would also trigger on signed/unsigned mismatches which it is not supposed to do.
2021-05-17 12:48:22 +02:00
Christoph Oelckers
0b5b919352 - let the CSV parser for the string table handle hex escapes. 2021-05-17 12:42:45 +02:00
Christoph Oelckers
668f8f2cf6 - fixed some uses of postincre,ment/decrements on narrow types.
THe VM has no opcode for this, all these places produced code with undefined behavior.
2021-05-17 12:42:22 +02:00
Christoph Oelckers
a94f5dd1b3 - added a proper error message when '--' or '++' gets used on 8 or 16 bit values. 2021-05-17 12:27:27 +02:00
Christoph Oelckers
5077973012 - fixed A_CheckTerrain's check for instant death sectors.
This was still checking the sector special even though this had been reactored 5 years ago.
2021-05-17 12:00:16 +02:00
Christoph Oelckers
e47671c865 - make the title music only play once, unless a real demo is successfully played. 2021-05-17 11:41:43 +02:00
nashmuhandes
e2d3f26a35 Fixed wrong alpha value being applied on sprite shadows in the hardware renderer. 2021-05-12 10:48:51 -04:00
Christoph Oelckers
31b1d760b1 - include fix. 2021-05-12 09:58:26 +02:00
Cacodemon345
c1c4066c76 SDL: Report Vulkan initialization errors 2021-05-09 22:57:00 +03:00
Rachael Alexanderson
bc15ded2a1 - make DI_ALPHAMAPPED change the style to STYLE_Shaded in the status bar drawer 2021-05-07 03:41:41 -04:00
Christoph Oelckers
c51af868de Revert "- restricted the portal rendering shortcut only to real skies in the primary layer."
This reverts commit b193e582ce.

This made the one thing I hoped it would fix even worse so it's useless.
2021-05-07 09:05:56 +02:00
Christoph Oelckers
3477d6c7c1 - added missing default values. 2021-05-03 14:33:40 +02:00
Christoph Oelckers
52554dc32c - Backend update fron Raze, mainly new script exports and extensions. 2021-05-03 14:13:03 +02:00
Christoph Oelckers
b193e582ce - restricted the portal rendering shortcut only to real skies in the primary layer.
This won't work properly with sector portals that contain other portals because those setups require a proper stencil to work as expected.
2021-05-03 13:58:46 +02:00
alexey.lysiuk
66e220ff9c - removed SDL2 version check
https://forum.zdoom.org/viewtopic.php?t=72152
2021-05-03 08:20:01 +03:00
alexey.lysiuk
80ba522b20 - brought back old SDL2 CMake module
https://forum.zdoom.org/viewtopic.php?t=72152
2021-05-02 22:02:35 +03:00
alexey.lysiuk
1efb9f4def - cleaned and minimized SDL2 version check 2021-05-02 13:05:20 +03:00
Cacodemon345
e4ada10e78
Remove support for SDL2 2.0.5 and earlier 2021-05-02 12:59:38 +03:00
William Breathitt Gray
f676cd81d2 Remove FindSDL2 find-module, use sdl2-config.cmake instead
This requires SDL >= 2.0.4.

Since <https://bugzilla.libsdl.org/show_bug.cgi?id=2464> was fixed in
SDL 2.0.4, SDL behaves as a CMake "config-file package", even if it was
not itself built using CMake: it installs a sdl2-config.cmake file to
${libdir}/cmake/SDL2, which tells CMake where to find SDL's headers and
library, analogous to a pkg-config .pc file.

As a result, we no longer need to copy/paste a "find-module package"
to be able to find a system copy of SDL >= 2.0.4 with find_package(SDL2).
Find-module packages are now discouraged by the CMake developers, in
favour of having upstream projects behave as config-file packages.

This results in a small API change: FindSDL2 used to set SDL2_INCLUDE_DIR
and SDL2_LIBRARY, but the standard behaviour for config-file packages is
to set <name>_INCLUDE_DIRS and <name>_LIBRARIES. Use the CONFIG keyword
to make sure we search in config-file package mode, and will not find a
FindSDL2.cmake in some other directory that implements the old interface.

In addition to deleting redundant code, this avoids some assumptions in
FindSDL2 about the layout of a SDL installation. The current libsdl2-dev
package in Debian breaks those assumptions; this is considered a bug
and will hopefully be fixed soon, but it illustrates how fragile these
assumptions can be. We can be more robust against different installation
layouts by relying on SDL's own CMake integration.

When linking to a copy of CMake in a non-standard location, users can
now set the SDL2_DIR or CMAKE_PREFIX_PATH environment variable to point
to it; previously, these users would have used the SDL2DIR environment
variable. This continues to be unnecessary if using matching system-wide
installations of CMake and SDL2, for example both from Debian.

This is based on the patch written by Simon McVittie for OpenJK:
52030235f0
2021-05-02 12:45:45 +03:00
Rachael Alexanderson
153968dc7c - change vid_allowtrueultrawide - -1 allows for any arbitrary ratio for hud aspects, 0 changed to old behavior (max 16:9), 1 changed to old behavior except at 21:9, 1 is now the default.
- `vid_allowtrueultrawide` is now placed in game-specific config, instead of global.
2021-05-02 01:25:21 -04:00
nashmuhandes
ff35ea9ac7 Don't print the weapon tag if the game is paused 2021-04-27 00:07:24 +02:00
nashmuhandes
afd7b2e954 Allow settable render styles for status bar drawing functions DrawTexture, DrawImage and DrawString 2021-04-26 23:04:39 +02:00
alexey.lysiuk
8695325383 - fixed saving game to wrong save slot
This is a temporary solution as it makes GZDoom and Raze code bases incompatible

https://forum.zdoom.org/viewtopic.php?t=72085
2021-04-26 09:46:20 +03:00
Rachael Alexanderson
a2d3dbf74e - Change VKHardwareTexture::CreateTexture to allow a null buffer to be passed. This is used by the software renderer to create an arbitrary texture for screen rendering. 2021-04-25 02:06:40 -04:00
nashmuhandes
bfb83abbc2 Default Heretic's, Hexen's and Strife's default screen wipe styles to match their original counterparts. 2021-04-24 22:46:03 -04:00
nashmuhandes
15159a3c19 Add sprite shadows for the hardware renderer 2021-04-24 22:40:54 -04:00
nashmuhandes
5446a1a355 Add sprite shadows for the software renderer 2021-04-24 22:40:54 -04:00
Marisa Kirisame
a172513535 Expose level_info_t to scripting + helper functions. 2021-04-24 22:37:50 -04:00
James Le Cuirot
90381c4ad6 Allow ACS SpawnDecal zoffset and distance args to be fixed point
The wiki currently says they should be fixed point but the code
currently treats them as integers. Given that they are placed with
double precision horizontally, it is odd that the same precision
cannot be applied vertically. Changing this would break existing maps
so add two flags to support both types.
2021-04-24 14:37:20 -04:00
Nikolay Ambartsumov
cf30982ddf Add Polyobj_StopSound special 2021-04-24 15:31:04 -03:00
alexey.lysiuk
4bcea0ab78 - handle empty command names when getting key binds
See https://github.com/Realm667/WolfenDoom/issues/498
2021-04-19 18:09:20 +03:00
alexey.lysiuk
de0361842f - removed useless initializations in binds printing ACS code
variables are initialized by FKeyBindings::GetKeysForCommand() anyway
2021-04-19 18:05:52 +03:00
emily
e24ff0ac9c Don't warn about UDMF comments or user fields 2021-04-19 14:07:54 +02:00
Christoph Oelckers
ba146ed5e5 - Backend update from Raze 2021-04-19 12:58:35 +02:00
Rachael Alexanderson
0ecd35b0b4 - remove Vulkan button on startup if Vulkan compilation is disabled 2021-03-31 18:39:52 -04:00
drfrag
25ab8e20ba - Fix crash with fog and software light modes. 2021-03-29 09:38:51 -04:00
Magnus Norddahl
4e503a1d1b Removed depthClamp requirement (note: portals will not render correctly on such devices)
Added format fallback support for VK_FORMAT_A2R10G10B10_UNORM_PACK32 since the pi4 doesn't support it
2021-03-28 18:26:23 +02:00
Rachael Alexanderson
ad8ae0f146 - set libADL and libOPN bank settings (only) to game specific 2021-03-28 09:01:54 -04:00
Erick Vasquez Garcia
03473abea2 A software implementation for gamma, brightness, contrast and saturation effects on SoftPoly. Based on original code by @dpjudas, thanks for the code. 2021-03-27 10:35:41 +01:00
Erick Vasquez Garcia
bf3018cc84 Bug fix in invulnerability in Doom Software Render Mode and True Color SW Render in SoftPoly. 2021-03-27 10:35:41 +01:00
nashmuhandes
4d353318d9 Don't let the game start if the saved game passed to -loadgame is invalid. Often times, especially during a multiplayer game, a player can accidentally pass an invalid save file to load at the command line, which results in the netgame starting anyway before immediately desyncing. This aims to address that. 2021-03-26 07:13:39 -04:00
Magnus Norddahl
61d49a2007 Fix texture loading race condition and improve performance by only locking the load mutex if data hasn't already been updated for this frame 2021-03-26 07:09:33 -04:00
Magnus Norddahl
d1f47afd96 Add debug code for showing the render slices 2021-03-26 07:09:33 -04:00
Magnus Norddahl
272ca6cd92 Fix truecolor drawer crash 2021-03-26 07:09:33 -04:00
Magnus Norddahl
e7476e5dac Fix fullbright shade bug 2021-03-26 07:09:33 -04:00
Magnus Norddahl
bdb35e5e86 Fix some r_scene_multithreaded crashes 2021-03-26 07:09:33 -04:00
Magnus Norddahl
fb87f90d86 Fix some r_scene_multithreaded related bugs 2021-03-26 07:09:33 -04:00
Magnus Norddahl
4cd994c027 Remove threading from the drawers 2021-03-26 07:09:33 -04:00
Rachael Alexanderson
6e5dbbc8ec Revert "Merge dpJudas's renderslices branch (#1356)"
This reverts commit a5cba1aba5.
2021-03-26 07:08:31 -04:00
Xaser Acheron
a5cba1aba5
Merge dpJudas's renderslices branch (#1356)
* Remove threading from the drawers

* Fix some r_scene_multithreaded related bugs

* Fix some r_scene_multithreaded crashes

* Fix fullbright shade bug

* Fix truecolor drawer crash

* Add debug code for showing the render slices

* Fix texture loading race condition and improve performance by only locking the load mutex if data hasn't already been updated for this frame

Co-authored-by: Magnus Norddahl <dpjudas@users.noreply.github.com>
2021-03-25 20:58:08 -04:00
emily
c6073d9c9d Make i_timescale cvar virtual
Changing i_timescale in a netgame would cause its callback to recurse
into itself infinitely. CVAR_VIRTUAL prevents this.
2021-03-24 19:03:41 +01:00
Cacodemon345
3b50f7dfa6 SDL: Don't write garbage to output if it is redirected 2021-03-21 12:09:19 +02:00
sgrunt
0c776e3acd Move the modified behaviour to a new "resetvel" parameter 2021-03-19 20:12:20 +01:00
sgrunt
3873ad6151 Fix behaviour of VelIntercept's oldvel parameter
Previously Vel would be reset only if the target was moving. This change
ensures that Vel is always reset, as seems to be the intent of the
oldvel parameter.
2021-03-19 20:12:20 +01:00
drfrag
cdbae4b5d9 - Fixed crash with voodoo dolls in MP after players quit the game. 2021-03-19 20:10:39 +01:00
James Le Cuirot
8ef02544a7 Fix camera texture aspect ratio in hardware renderer
It wasn't respecting the map's pixel ratio setting. This wouldn't have
been very noticeable with the default pixel ratio of 1.2 but it was
very obvious with 1.8.
2021-03-19 00:04:46 +01:00
nashmuhandes
b28e5cb917 Add GetCharacterName() to retrieve an NPC's name as defined in its dialogue script, if it exists. Otherwise it will just return the same output as GetTag(). 2021-03-15 21:31:16 +01:00
Christoph Oelckers
798604e6de - removed config updates for pre-GZDoom versions of ZDoom.
GZDoom 0.9 had config version 205, so the adapters for 202-204 are not needed.
2021-03-14 08:44:30 +01:00
Christoph Oelckers
a80775a1e8 - adapt mod_dumb_mastervolume to the increased default volume in ZMusic. 2021-03-14 08:40:34 +01:00
Christoph Oelckers
f0ddc063b0 - do not sort level names in the statistics output when saving.
Instead do this when creating the data to avoid trashing manual edits. The old sorter resorted all data loaded from the old file as well.
2021-03-13 13:11:03 +01:00
Christoph Oelckers
fa0be28af1 - print a message if saving the statistics file fails. 2021-03-13 12:21:35 +01:00
Christoph Oelckers
ae09ca7a48 - moved EColorManipulation into the backend. 2021-03-13 12:21:07 +01:00
Christoph Oelckers
a0cffca3bb - restore accidentally deleted 'testmusicvol' CCMD. 2021-03-12 08:48:59 +01:00
Christoph Oelckers
3d55c76a89 Merge branch 'replaygain' 2021-03-12 08:48:00 +01:00
Christoph Oelckers
d1023046ba - default replay gain to 'off'. 2021-03-11 15:47:05 +01:00
Christoph Oelckers
b9dafaaa6b - fill in the MIDI defaults for generating the lookup string for replay gain.
Both synth and sound font can be very relevant here for the final volume so using the same song with different settings needs to create different strings.
2021-03-11 00:20:19 +01:00
Christoph Oelckers
f11780600f - implemented replay gain calculation and management.
This is done entirely on the streamed sound data, unlike the old relative volume which uses the backend's volume setting.
2021-03-10 23:06:21 +01:00
drfrag
12aa7a8ff6 - Fix crash with wind effect on special water sectors. 2021-03-10 13:37:57 +01:00
nashmuhandes
b7bbfd4efd Add SetSubtitleNumber(int num, str sound) ACS function. Works exactly like its ZScript counterpart. The activator of the script must be a player. 2021-03-09 09:37:10 +01:00
Christoph Oelckers
ba618d308c - bumped CMake version to 3.1.0 in all projects to reduce warning spam in recent versions.
3.1.0 is the highest minimum set in the existing subprojects so this will not exclude anything that hadn't been already.
2021-03-08 13:58:29 +01:00
alexey.lysiuk
952d43b884 - escape double quotes in Cocoa IWAD picker's extra arguments
https://forum.zdoom.org/viewtopic.php?t=71675
2021-03-08 11:44:14 +02:00
Christoph Oelckers
d18b74b537 Merge branch 'master' of https://github.com/Chernoskill/gzdoom 2021-03-06 11:32:31 +01:00
Chernoskill
bb18bbaff4
Update models.cpp 2021-03-06 11:28:13 +01:00
Chernoskill
d1ea33a815
Update models_obj.cpp 2021-03-06 11:27:23 +01:00
Chernoskill
27cf152438
Update models_ue1.cpp 2021-03-06 11:26:53 +01:00
Chernoskill
4e583772d7
Update models_md3.cpp 2021-03-06 11:26:31 +01:00
Chernoskill
72787c2c4c
Update model.h 2021-03-06 11:18:45 +01:00
Christoph Oelckers
8feba7dff9 - fixed: line portal rendering PR was missing handling for portals with z offset.
Since it used the back sector's height directly the needed offsetting was not applied to the upper and lower texture.
2021-03-05 17:19:02 +01:00
Timothy Quinn
fa2228d523 - Line_QuickPortal must check the partner line's special. 2021-03-05 16:40:12 +01:00
Christoph Oelckers
0c0ef4f938 - reinstated rendering of mid textures over two-sided wall portals.
This was removed in the last PR due to z-fighting problems which now have also been addressed
2021-03-05 12:25:41 +01:00