Commit graph

19104 commits

Author SHA1 Message Date
Boondorl
2c09a443b4 Reworked Morphing
Removed StaticPointerSubstitution in favor of a much safer function that only changes select pointers. As a result the ability to properly modify morphing has been opened back up to ZScript. Many missing virtual callbacks were amended and MorphedDeath has been reworked to only be called back on an actual morphed death. MorphedMonster is no longer required to morph an Actor. CheckUnmorph virtual added that gets called back on morphed Actors. Fixed numerous bugs related to morph behavior.
2024-03-01 08:35:31 -05:00
Boondorl
b469770ecc Reworked view offsetting
View offsets are now added after the base position and angles (accounting for interpolation) are calculated. Behavior was centralized into a singular tracer that all view offsets now use to prevent clipping out of the map. Cleaned up camera rendering behavior. Angles are now properly normalized after all offsetting is accounted for. The chase cam can now update in real-time instead of forcing interpolation.
2024-03-01 07:10:26 -05:00
Rachael Alexanderson
08a093ffda
- merge pull request https://github.com/ZDoom/gzdoom/pull/1577/files 2024-03-01 05:56:15 -05:00
Christoph Oelckers
ef4c4ee503 fixed resource leak in OpenDecompressor 2024-02-27 07:20:40 +01:00
RaveYard
205d4b5ff3 Support negative fadestep for particles 2024-02-27 07:03:16 +01:00
Rachael Alexanderson
47be9c1e54
- fix https://github.com/ZDoom/gzdoom/issues/2415 - wait to call V_Init2() until after exec commands are processed 2024-02-26 13:55:54 -05:00
Boondorl
49cac88c12 Improvements to Network Commands/Buffers
Fixed a memory leak in DNetworkBuffer. Added native function support to FNetworkCommand and DNetworkBuffer. Exposed EndOfStream() for FNetworkCommand.
2024-02-26 06:23:25 -05:00
Boondorl
e37c19b5b4 New API for assigning unique network ids to objects 2024-02-26 06:23:12 -05:00
Boondorl
4d1590ad82 Fixed view position forcing camera interpolation
Fixed absolute view position not working. Camera Actor is no longer visible when using view offsets.
2024-02-26 06:47:05 +01:00
Boondorl
a1a916a823 Added real-time client camera tracking for texture cams 2024-02-24 17:57:53 +01:00
Boondorl
e4ea5ad307 Fixes for SCALEDNOLERP
No longer relies on last input fraction to determine offset on frame (now uses TicFrac). No longer modifies Actor angle in real-time. Fixed offsetting breaking when other viewports are being renderer.
2024-02-23 22:44:18 +01:00
Ricardo Luís Vaz Silva
d848a57bac Fix readonly for SpecialBounceHit virtual 2024-02-23 07:07:56 +01:00
Magnus Norddahl
144caa0902
Fix precache unload bug in FHardwareTextureContainer::UnmarkAll 2024-02-19 06:45:30 -05:00
Magnus Norddahl
c9612b0cab
Fix memory leak due to IHardwareTexture forward declaration 2024-02-19 06:45:18 -05:00
Ricardo Luís Vaz Silva
bc26c54b15 Fix readonly native structs 2024-02-17 07:23:00 +01:00
Rachael Alexanderson
d8ef27e0ed
Squashed commit of the following:
commit ad25b50089b6e01b8e4291e34cfe3a008af9128d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:12:46 2024 -0500

    Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

    This reverts commit d2c2c93cf1.

commit 8537f0d8db804f0076b90daa66b750e44dccf44c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:12:41 2024 -0500

    Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

    This reverts commit dc897eacc0.

commit d45f6ebf11f31d246f2de4f3bbd11f7970783125
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:10:21 2024 -0500

    Revert "Restored r_orthographic behavior."

    This reverts commit 26908f5bc5.

commit be0836feef9b95f12828eeed4319c726ef13780d
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:09:15 2024 -0500

    Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

    This reverts commit 08b03e6b19.

commit 688288a9199b912203022cb4db37503f6270e0c3
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:09:06 2024 -0500

    Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

    This reverts commit d3405837ce.

commit 72b7df9fa1841d665c2846dd31a89c6f48123e55
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:08:59 2024 -0500

    Revert "Restored r_orthographic behavior."

    This reverts commit e171f4eb6a.

commit aa954132bf29f2f8a51bf09dae127e5ffe2c5670
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:08:48 2024 -0500

    Revert "Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works."

    This reverts commit c8a7507e8e.

commit 3ce90e87a3a9956b615995b57b90619e89bbcff4
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 12:00:46 2024 -0500

    Revert "Cleaning up implementation of isometric camera with optional orthographic projection."

    This reverts commit 25f1407228.

commit 3aafd363e40c8d1d2ebbe3c61aeb2b80a74e565a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:25 2024 -0500

    Revert "Small change to SpectatorCamera actor."

    This reverts commit 2b555d7556.

commit a41911f8907731c098de71ca3e14261ac432ec8c
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:16 2024 -0500

    Revert "SpectatorCamera can now follow the 'tracer' actor. Also added a 'lagdistance' property for lazy follow."

    This reverts commit 7fbb4cd06c.

commit 19398edd065b7b483b8c7be42cb16026695e241a
Author: Rachael Alexanderson <madame-rachelle@users.noreply.github.com>
Date:   Fri Feb 9 11:59:05 2024 -0500

    Revert "Minor addition toe SpectatorCamera. Added three chase modes to lazy follow. 0: Catch up until tracer is centered again. 1: Same but don't move if tracer isn't moving (camera moving when character is not is jarring). 2: Stop chasing if tracer is closer than lagdistance. Game modes benefit from a 'center camera' button but that doesn't have to be hard-baked into the engine."

    This reverts commit c3ca564cfc.
2024-02-09 12:15:17 -05:00
Ștefan Talpalaru
b5eb8f47db GCC-13 support, when precompiled headers are off 2024-02-05 17:40:37 +01:00
Hugo Locurcio
97cfd32677 Add a cvar to swap health and armor position on alternative HUD
When enabled, this makes the layout identical to the standard HUD
(similar to how most other games lay out health and armor on a HUD).
2024-02-04 20:13:18 -03:00
Christoph Oelckers
5b793958f9 fix uniform buffer size check 2024-02-04 23:06:02 +01:00
nashmuhandes
01a462e9d4 Fix the default controller axes on Linux. The third axis is actually the Left Trigger, which causes the player to uncontrollably look upwards. Fixed by mapping said axis to nothing. 2024-02-04 22:45:34 +01:00
Christoph Oelckers
f1db369883 moved a few things out of the common code that should be defined privately. 2024-02-04 13:54:25 +01:00
Christoph Oelckers
d0a2713820 limit uniform blocks to 64kb.
The GL uniform code is not capable of dealing with large blocks, so restrict it to what most drivers report as their maximum.
2024-02-04 13:36:25 +01:00
Major Cooke
3f72f8acd5 Fixed psprites & viewpos being completely broken for non-isometric mode.
This line of code was altering a global cvar.
2024-02-03 11:22:16 -05:00
Christoph Oelckers
b37ea19f86 remove unnecessary #defines 2024-02-03 16:07:12 +01:00
nashmuhandes
f6bdc02a8a Use a better default deadzone value for Linux. Fixes uncontrollable menus 2024-02-02 09:43:40 +01:00
Boondorl
e64e33f4a7 Fixed missing return in DisableLocalRendering 2024-02-01 08:43:49 -05:00
Boondorl
c1539c2286 Added client-side item pick ups
Includes feature to disable Actor rendering locally (this cannot be checked from the playsim) and options for disabling co-op only things.
2024-02-01 08:43:49 -05:00
Dileep V. Reddy
25f1407228 Cleaning up implementation of isometric camera with optional orthographic projection.
All CVars, mapinfo variables, and playerinfo/playerpawn variables are gone.
A Camera actor named 'SpectatorCamera' is defined in warsrc/static/zscript/actors/shared/camera.zs

The following new flag bits were defined in the 'DViewPosition' struct for use with actor->ViewPos in src/playsim/actor.h:
	VPSF_ALLOWOUTOFBOUNDS =		1 << 3,			// Allow viewpoint to go out of bounds (hardware renderer only).
	VPSF_ORTHOGRAPHIC =		1 << 4,			// Use orthographic projection.
	VPSF_ISOMETRICSPRITES =		1 << 5,			// Displace sprites towards camera and don't billboard (drawn from isometric perspective).

Basically, spawn a SpectatorCamera actor with the appropriate flags and set it to player.camera.
See example template: https://www.mediafire.com/file/fv8rytayjt9l6g1/isometric_actor_wads.zip/file

Has been tested with multiplayer death and disconnection (and respawns). Not tested with portals.
Still only works with hardware renderer (mostly). But should be compatible with older mods and libraries.
2024-02-01 08:43:34 -05:00
Rachael Alexanderson
47a2a534ec
- add in-built zmusic folder to default rpath 2024-01-31 19:19:36 -05:00
Ricardo Luís Vaz Silva
2002396b8b Fix .. to root folder in relative include 2024-01-31 07:48:59 -05:00
jekyllgrim
3e7d304de0 Fixed missing field definition for mCenterText 2024-01-30 14:09:30 -05:00
jekyllgrim
decaf07637 Add CenterText MENUDEF flag 2024-01-29 15:21:49 -05:00
inkoalawetrust
56803317f5 Added new AutomapOffsets property.
This Vector2 property allows you visually offset the XY position of an actors' sprites on the automap.
2024-01-28 09:48:41 -05:00
inkoalawetrust
b3fabb0a7e Made the automap account for SpriteRotation.
The automap now also accounts for the SpriteRotation property of the actors. it renders as sprites.
2024-01-28 09:48:41 -05:00
Major Cooke
dbd6059894 Fixed player sprites not showing up in chasecam mode. 2024-01-28 09:48:11 -05:00
inkoalawetrust
f369cd7f6d Exposed PerformShadowChecks() to ZScript.
Also made CheckForShadows() and P_CheckForShadowBlock() return a pointer to the SHADOWBLOCK actor instead of a bool.
2024-01-26 07:00:57 +01:00
inkoalawetrust
f2451ff44b Made the damage of polyobjects customizable..
The damage done by polyobjects can now be changed by altering the health value of the start spots. A health of 1 (Default) is the default damage of 3, anything above 1 is instant death, and negative health values are the exact damage the polyobject does with every collision with an actor.
2024-01-26 06:59:52 +01:00
dpjudas
9ff1193dab Update backend to use ColorBlendAttachmentBuilder 2024-01-25 22:50:20 -05:00
inkoalawetrust
e1f585f6fd Exposed FindStateByString() to ZScript.
This allows for using ZScript code to jump to different versions of states without using If/Else blocks or Switch cases.
2024-01-25 14:17:16 -05:00
Dileep V. Reddy
c8a7507e8e Merged with latest master and made small change (zcenter -> center.Z) to hw_sprites.cpp. Now compiles and works. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
e171f4eb6a Restored r_orthographic behavior. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
d3405837ce Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 12:13:42 -05:00
Dileep V. Reddy
08b03e6b19 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 12:13:42 -05:00
Rachael Alexanderson
5925a6a8c5
Revert "- use correct isHostile checks for target considerations"
This reverts commit f9a88f10ed.
2024-01-21 11:54:40 -05:00
Rachael Alexanderson
af08413e10
- reverting pull request #2361 - apparently pull request #2364 changed some behaviour and these two do not play nice together. One or the other unfortunately has to be rolled back to allow GZDoom to build properly again.
Revert "Restored r_orthographic behavior."

This reverts commit 26908f5bc5.

Revert "Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars."

This reverts commit dc897eacc0.

Revert "Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom."

This reverts commit d2c2c93cf1.
2024-01-21 08:18:16 -05:00
Dileep V. Reddy
26908f5bc5 Restored r_orthographic behavior. 2024-01-21 03:34:00 -05:00
Dileep V. Reddy
dc897eacc0 Changed all of the isometric functionality to mapinfo and playerinfo variables. Retained function of most of the CVars. 2024-01-21 03:34:00 -05:00
Dileep V. Reddy
d2c2c93cf1 Adding isometric camera mode with orthographic projection to current state of master branch of GZDoom. 2024-01-21 03:34:00 -05:00
Major Cooke
278ebf3202 Aded FLIPSPRITEOFFSET<X/Y> for actors and bFlipOffset<X/Y> for visual thinkers.
- Inverts the direction that (Sprite)Offset pushes the sprite without affecting *any* other offsets, allowing them to combine seemlessly.
2024-01-21 03:33:48 -05:00
Major Cooke
4e48250cf2 CalculateVertices Refactor
- Added roll support for Y billboarding
- Fixed a bunch of broken checks that prevented Y billboarding from working properly
- Y billboarding takes precedence over sprite facing
- Optimized ROLLCENTER: now combines the sprite's embedded offsets with SpriteOffsets instead of doing wasteful transforms before/after rotations
- Greatly cleaned up a bunch of cruft
2024-01-21 03:33:48 -05:00
Rachael Alexanderson
1c7f195353
- reverse y offset for SpriteOffset to be consistent with software renderer and past versions 2024-01-18 03:00:44 -05:00
Rachael Alexanderson
f9a88f10ed
- use correct isHostile checks for target considerations 2024-01-18 02:59:48 -05:00
Professor Hastig
cfb4e4f105 fix file names in mounted directories.
This used the normalized file name for access which only works on case insensitive file systems and only as long as no character gets mangled by Unicode normalization.
2024-01-18 07:05:32 +01:00
Ricardo Luís Vaz Silva
b708e16193 fix serialization 2024-01-16 10:27:08 -05:00
Ricardo Luís Vaz Silva
98e6330eaa allow modeldef flags to be overriden 2024-01-16 10:27:08 -05:00
Major Cooke
d789676b26 Fixed music unpausing when alt-tabbing back. 2024-01-12 16:53:56 +01:00
Christoph Oelckers
04e6eba9e0 activate localization of tabs and text update. 2024-01-11 17:50:26 +01:00
Magnus Norddahl
63f1326e62 Add support for changing the tab labels 2024-01-11 16:52:12 +01:00
Andrey Shustov
0aa140194d Fix "unexpected end of TTF file" error
Changed returnv vector size to 3 by default and set size 5 for WIN32
only.
2024-01-11 16:35:38 +01:00
Rachael Alexanderson
64096658e5
- reverse allowduplicates check since it is a misnomer to what it actually did 2024-01-11 08:02:44 -05:00
Christoph Oelckers
55d90a18dc fix render API selection 2024-01-10 23:26:45 +01:00
Magnus Norddahl
8cc531e283 Implement mouse event propagation 2024-01-10 23:23:13 +01:00
Magnus Norddahl
a0f52411d3 Add tabs to the launcher window 2024-01-10 17:09:50 +01:00
Christoph Oelckers
c7778b9332 implemented language selection on the IWAD picker. 2024-01-09 20:52:52 +01:00
Christoph Oelckers
eb9e9133c9 use the string table for the picker's texts. 2024-01-09 18:18:51 +01:00
Christoph Oelckers
ab010f9830 Text update. 2024-01-09 18:13:41 +01:00
Christoph Oelckers
f7a4f00177 adapted string table so that it can be initialized without full game data being available.
This is for the IWAD picker which runs before many things are known.
2024-01-09 17:22:59 +01:00
Christoph Oelckers
963209e8af removed external stuff from tarray.h 2024-01-09 16:47:24 +01:00
Christoph Oelckers
0838433d1f make adjustments to the font substitution and load Japanese and Korean fonts from the Windows font folder. 2024-01-09 16:37:17 +01:00
Ricardo Luís Vaz Silva
b7e5d3d052 rename SPF_STANDALONE_ANIMATIONS to SPF_LOCAL_ANIM 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
8ae93fb87f use map instead of linear search to find texture indices for animation 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
3bd80ab8f6 Do the same for Visual Thinkers 2024-01-09 06:38:08 -05:00
Ricardo Luís Vaz Silva
7eab519795 Implement animated particles that aren't tied to the global animation timer 2024-01-09 06:38:08 -05:00
Christoph Oelckers
ea65768e0b fixed compile errors. 2024-01-07 12:28:21 +01:00
Christoph Oelckers
0e51c5832d fix compilation 2024-01-07 10:05:03 +01:00
Christoph Oelckers
f13ae3b706 addressed a few things pointed out by static analysis
* marking move assignments noexcept
* using [[fallthrough]] consistently.
* getting rid of alloca.
2024-01-07 08:46:47 +01:00
Ricardo Luís Vaz Silva
35e56d3f42 Minor optimizations to VisualThinker
* remove duplicated fields
* make native functions use direct calls
* remove unnecessary pointer from particle_t
* create HWSprite directly in Construct
2024-01-06 20:06:57 -05:00
Boondorl
5895b88799 Fixed bytes being written incorrectly 2024-01-06 15:40:31 -05:00
Christoph Oelckers
83aa9388ca backend update from Raze
* moving large allocations off the stack
* use proper printf formatters for size_t and ptrdiff_t.
* adding some missing 'noexcept'.
2024-01-06 15:24:10 +01:00
Boondorl
df9b2cd9bf Added 64-bit networking support
Mainly for use with doubles as ZScript can now take advantage of it. Enforced sizing on ints passed to and read from net functions.
2024-01-05 23:33:15 +01:00
Boondorl
a8e350aed8 Renamed Networking Functions
New names more appropriately match the size of the value they write to/read from the stream.
2024-01-05 23:33:15 +01:00
Christoph Oelckers
e3d13af33b use FSoundID for script provided sounds instead of FString. 2024-01-05 17:41:58 +01:00
inkoalawetrust
ce2a0c9295 Added LightningSound MAPINFO property.
Also added a tempSound parameter to ForceLightning(). Allowing for changing the specific sound that particular thunderbolt makes when it hits.
2024-01-05 17:35:03 +01:00
inkoalawetrust
ecdf6f7cb2 Expose ForceLightning() to ZScript.
This makes it possible to call the function in ZScript without the Light_ForceLightning special.
2024-01-05 17:35:03 +01:00
Christoph Oelckers
a020b8c2f5 do not compile the first shader in the shader manager's constructor
This was crashing with the move of the V_Init2 call. Instead do it when we first render something so that we can open the window without immediately making the full backend operational.
This was only working on GLES because it performs lazy shader compilation.
2024-01-05 16:55:11 +01:00
Magnus Norddahl
8ad15de138 Remember last selected item 2024-01-05 16:43:56 +01:00
Professor Hastig
c446af41ae fixed TArray::push_back 2024-01-05 16:42:40 +01:00
Professor Hastig
8cec6094d2 open the main game window earlier in the startup procedure. 2024-01-05 16:42:29 +01:00
Boondorl
4b3cfc6ab7 Converted NetworkBuffer to Object
Fixed a memory leak with _buffer in DNetworkBuffer. Added more wrapper functions to ZScript for basic scenarios.
2024-01-05 16:42:13 +01:00
Boondorl
b8b322f4ce Added wrapper functions for adding and reading arrays 2024-01-05 16:42:13 +01:00
Boondorl
202d0d747f Added NetworkBuffer
Allows for a command to be built before sending it off. Added wrapper functions for certain data types. Changed command from a number to a Name.
2024-01-05 16:42:13 +01:00
Boondorl
9565c94cd2 Added SendNetworkCommand
Allows for a custom message to be sent over the network without the need for SendNetworkEvent. This includes all the possible valid types of byte, word, long, float, and string.
2024-01-05 16:42:13 +01:00
Christoph Oelckers
c62ecc44e2 eliminated the small white part of the initial window content after the IWAD picker. 2024-01-04 22:21:27 +01:00
Christoph Oelckers
9ced091b19 fixed Linux include 2024-01-04 21:10:00 +01:00
Christoph Oelckers
e7ac2fe741 moved launcher window out of common.
This needs to be different for Raze so it cannot be in shared code.
2024-01-04 20:44:27 +01:00
Christoph Oelckers
a2a7667442 added render backend selection to the new IWAD picker.
Unlike VkDoom we still need this.
2024-01-04 19:25:25 +01:00
Christoph Oelckers
15e9c95419 fixed playback of external sound files over cutscenes when started from the console. 2024-01-04 18:22:24 +01:00
Major Cooke
1a860185ee Exposed viewactive, allowing checks for overlay automaps.
- Made `automapactive` UI scoped since checking this on the play side may cause desyncs.
2024-01-04 07:23:57 -05:00
Major Cooke
f647545c1d Disabled player sprites when crossing through portals. 2024-01-04 07:23:24 -05:00
Boondorl
cf7654bb5a Added Z collision detection 2024-01-04 07:17:13 -05:00
Boondorl
fc6191deb9 Added CollidedWith
Guarantees a collision happened unlike CanCollideWith. Called in TryMove so it only calls when an actual movement was attempted and not just a potential positional check.
2024-01-04 07:17:13 -05:00
Magnus Norddahl
99fc43932b Add the additional parameters edit control from the mac version 2024-01-03 16:50:57 +01:00
Magnus Norddahl
b463c8e656 Fix text word wrapping under scrollbar 2024-01-03 16:50:57 +01:00
Magnus Norddahl
e953f3a0c7 Add scrollbar to the log 2024-01-03 16:50:57 +01:00
Christoph Oelckers
e27cbe5bd9 convert more files to UTF-8.
It was mostly degree signs causing these issues.
2024-01-02 21:54:29 +01:00
Christoph Oelckers
243006987d remove old GTK-based Linux picker dialog. 2024-01-02 21:30:28 +01:00
Christoph Oelckers
ec227383ed fixed bad comment with non-UTF-8 extended character which MSVC warns about when compiling with /utf-8 2024-01-02 21:05:31 +01:00
Rachael Alexanderson
fe005b9159 - add two parameters to GetSpriteTexture: spritenum and framenum, since some states are "####" "#" 2024-01-02 20:59:00 +01:00
Christoph Oelckers
b31ae22f25 fixed loading of 7z files. 2024-01-02 20:50:45 +01:00
Christoph Oelckers
f5c4964902 use a more complete font did some primitive font substitution logic.
NotoSans was chosen because it contains all Latin, Cyrillic and Greek characters in one file.
To test the substitution the separate font files for Armenian and Georgian were also added, even though the languages have not been translated.
2024-01-02 18:58:39 +01:00
Christoph Oelckers
4afe1686da hide the old main window as it no longer contains the startup. 2024-01-02 17:23:05 +01:00
Christoph Oelckers
2431d214e6 adapt widget reader to new resource file API. 2024-01-02 17:05:13 +01:00
Magnus Norddahl
2863c89af7 Hook up the zwidget launcher window on Linux 2024-01-02 16:56:19 +01:00
Magnus Norddahl
426837e7d4 Implement the timer class
Support calling ShowNetStartPane multiple times
2024-01-02 16:55:52 +01:00
Magnus Norddahl
efde75877d Fix the abort button 2024-01-02 16:55:52 +01:00
Magnus Norddahl
16e578a0f8 Implement NetStartWindow
# Conflicts:
#	src/p_setup.cpp
2024-01-02 16:55:52 +01:00
Magnus Norddahl
da83b546ad Finish the error window implementation 2024-01-02 16:55:27 +01:00
Magnus Norddahl
19c2ea171d Implement launcher window base functionality 2024-01-02 16:55:27 +01:00
Magnus Norddahl
787eb625e5 Use a better font
# Conflicts:
#	wadsrc/static/newmenufont.ttf
2024-01-02 16:55:26 +01:00
Magnus Norddahl
71ff4d3685 Load widget resources from lumps
Add banner
2024-01-02 16:55:17 +01:00
Magnus Norddahl
3f50136c8d Create initial error and netstart windows 2024-01-02 16:55:17 +01:00
Magnus Norddahl
787d18e12b Add launcher window 2024-01-02 16:55:17 +01:00
Magnus Norddahl
e7285cd6d9 Theme the caption bar when playing windowed mode 2024-01-02 16:54:51 +01:00
Christoph Oelckers
5b90b2d80c account for resorted directories when accessing the local file path array in file_directory.cpp 2023-12-31 23:39:58 +01:00
Major Cooke
d4952fa3f2 fix VisualThinkers crashing on spawn when level is frozen 2023-12-30 23:19:39 -05:00
Major Cooke
8060b147d0 Fixed CF_SCALEDNOLERP having the wrong value. 2023-12-28 17:12:43 +01:00
Professor Hastig
16e8e71971 fixed infinite recursion in vid_preferbackend. 2023-12-28 17:11:17 +01:00
Professor Hastig
51e014c858 do MIDI device lookup by lump index as well, for the same reasons as doing it for the volume. 2023-12-28 17:10:33 +01:00
Christoph Oelckers
eb2f263803 perform music volume lookup by lump number instead of name.
This way any setting will work for both short and long file names of the same content.
2023-12-27 20:08:22 +01:00
Christoph Oelckers
958303556f warnings and debug code cleanup 2023-12-26 22:16:21 +01:00
Christoph Oelckers
133b415b84 music volume.
* this now applies the factor to the source data instead of setting a gain factor in OpenAL to allow better control
* $musicvolume will now also accept values in dB,  by postfixing the parameter with 'dB'.
* removed some useless cruft from the automatic replay gain handling.
2023-12-26 22:01:51 +01:00
Cacodemon345
a368588db6 Export FScanner parser to ZScript as ScriptScanner 2023-12-25 10:52:56 +01:00
Christoph Oelckers
fd9b762106 moved animlib to thirdparty folder. 2023-12-25 08:45:47 +01:00
Christoph Oelckers
df35d6c7ea fixed MBF21's instant death sector types. 2023-12-24 12:24:55 +01:00
Christoph Oelckers
59b0b0620a got rid of the redundant copy of alext.h 2023-12-24 09:15:41 +01:00
Christoph Oelckers
36651fffaa deleted unused toWide declaration from file_directory.cpp 2023-12-24 08:51:52 +01:00
Christoph Oelckers
baa9251741 simplified the directory reader a little bit
* we do not need to make a second allocation for the systemFilePath
* as systemFilePath is never null, there is no need to check for that case.
* moved systemFilePath into a separate array to save memory on other file types.
2023-12-24 08:35:47 +01:00
Vasilii Shirokii
f8dcc33e6d Code style 2023-12-24 08:22:40 +01:00
Vasilii Shirokii
90d672e345 Maintain the actual on-disk path (FResourceEntry::SystemFilePath) for the directory filesystem, because the FResourceEntry::FileName can be modified by game filter-s 2023-12-24 08:22:40 +01:00
Christoph Oelckers
97c04357f1 fixed alternative parts of vectors.h
Not relevant for GZDoom itself but let's keep things tidy.
2023-12-21 22:11:53 +01:00
Christoph Oelckers
d2c395757c fixed bad setup in FileData constructor. 2023-12-21 17:14:56 +01:00
Major Cooke
751ee7390b Fixed incorrect offsetting for SpriteOffset. 2023-12-20 17:50:36 -05:00
Ignacio Taranto
e572bb8db3 Fix Zip file modification timestamps
The problem was that `time_to_dos` was putting the last modification
file date first and the time second. This was causing the date to be
interpreted as the time and vice versa when reading the Zip file.

See: https://github.com/ZDoom/gzdoom/issues/2306
2023-12-20 23:26:52 +01:00
Christoph Oelckers
3f05f38a60 fix max health for Doom's health bonus with Dehacked modifications present. 2023-12-20 00:11:09 +01:00
Christoph Oelckers
a31cfa97e4 fixed typo in FZipFile::GetRawData.
This one caused incompletely loaded savegames.
2023-12-20 00:06:49 +01:00
Christoph Oelckers
d11bf52831 fixed crash with files from directories. 2023-12-19 19:09:35 +01:00
Christoph Oelckers
273f7c55bc fixed some filesystem issues with directories and compression. 2023-12-17 17:15:14 +01:00
Christoph Oelckers
efef4bdfd1 addressed a few warnings in the filesystem code. 2023-12-17 13:32:44 +01:00
Christoph Oelckers
aec7feb48a add 'noexcept' to two functions. 2023-12-16 11:48:08 +01:00
Christoph Oelckers
633c09a3bb de-inlined two functions that were generating too much code. 2023-12-16 10:58:04 +01:00
Christoph Oelckers
08614613be for memory backed files, let FResourceFile::Read return a reference to the backing store instead of copying the data. 2023-12-16 10:54:31 +01:00
Christoph Oelckers
d45ca8151f added another missing include 2023-12-16 08:58:46 +01:00
Christoph Oelckers
7ce63abe6c add missing check for embedded WADs. 2023-12-16 07:41:22 +01:00
Christoph Oelckers
cffa49d05f add missing #includes 2023-12-16 07:23:57 +01:00
Christoph Oelckers
bae3adc89f moved writezip.cpp out of filesystem and eliminated uses of TArray. 2023-12-15 16:59:00 +01:00
Christoph Oelckers
96961a5663 moved the hard coded exclusions for the file system to the blockedlist.
These exclusions are still engine specific, in case we want to use this in a more generic context they have to be disabled.
2023-12-15 16:58:26 +01:00
Christoph Oelckers
375faa649e fix missing include. 2023-12-14 20:39:15 +01:00
Christoph Oelckers
869d7a6dcb only try to find a common folder in Zips if there's some data to check against.
Without this the check for required file names will always fail so running the entire thing is pointless.
2023-12-14 17:55:46 +01:00
Christoph Oelckers
f8d839d6eb move root folder detection out of file_zip.
added support for Descent Hog and Mvl files., mainly useful for playing Descent's music directly from the asset files.
2023-12-14 17:22:32 +01:00
Christoph Oelckers
799679bf6c block off shared readers to worker threads.
The file system should be thread safe now.
2023-12-14 17:22:32 +01:00
Christoph Oelckers
737e3f22d7 implement the different reader types. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
11d6b3e5b4 only use the new flag names 2023-12-14 17:22:32 +01:00
Christoph Oelckers
301323944f eliminate the intermediate reader for the savegame pics. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
78a71bb662 streamline the buffer readers. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
235d36fe69 simplification of MemoryArrayReader interface. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
9bcbdfa09c take OpenDecompressor out of FileReader and fixed exploding decompression 2023-12-14 17:22:32 +01:00
Christoph Oelckers
6f8c3c60c4 Use FResourceFile directly for the simple container types.
Instead let FResourceFile provide an interface for ad-hoc construction of a new container.
2023-12-14 17:22:31 +01:00
Christoph Oelckers
72a2e5d532 fixed remaining issues in resource file loading. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
f3c7e01195 fixed BufferingReader 2023-12-14 17:22:31 +01:00
Christoph Oelckers
292705ddc3 fixed OpenDecompressor flag handling. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
e1cf8af9d3 zero the Entries array on allocation 2023-12-14 17:22:31 +01:00
Christoph Oelckers
0be8fed6fc fixed BufferingReader. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
df3e82d94c cleaned up some redundant file reads and fixed file opening in the movie player.
As a streaming action this cannot borrow the one from the archive.
2023-12-14 17:22:31 +01:00
Christoph Oelckers
3e7ec9118f got rid of FUncompressedFile and reenabled postprocessing. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
10f743a0d6 cleaned out all remaining references to FResourceLump.
Most importantly, the lump locking mechanism is finally gone.
2023-12-14 17:22:30 +01:00
Christoph Oelckers
e35b0f1453 got rid of FZipLump. 2023-12-14 17:22:30 +01:00
Christoph Oelckers
c27c8c232a handle RFF encryption like compression.
This allows simplifiying the code a lot by moving the decrypter to OpenDecompressor and handling it with generic code in the base class.
2023-12-14 17:22:30 +01:00
Christoph Oelckers
728bbd6327 fix some stuff 2023-12-14 17:22:30 +01:00
Christoph Oelckers
39020f7f95 preparations for getting rid of FZipLump
* allow ancient compression algorithms to be handled by OpenDecompressor.
* move FCompressedBuffer to fs_files.h
* use a mutex lock for 7z access because it cannot be made thread save otherwise.
2023-12-14 17:22:30 +01:00
Christoph Oelckers
9710c71669 got rid of FWadFileLump 2023-12-14 17:22:30 +01:00
Christoph Oelckers
854097024f Get rid of FUncompressedFile::Lumps
(RFF is inoperable in this commit!)
2023-12-14 17:22:30 +01:00
Christoph Oelckers
27a356814c got rid of F7ZLump 2023-12-14 17:22:30 +01:00
Christoph Oelckers
f5f9d5b5d8 got rid of FDirectoryLump. 2023-12-14 17:22:30 +01:00
Christoph Oelckers
3b0d101607 move GetRawData and associated code out of FResourceLump 2023-12-14 17:22:29 +01:00
Christoph Oelckers
ae1bd3c890 set up the new Entries array. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
e9700e2771 remove unused variable 2023-12-14 17:22:29 +01:00
Christoph Oelckers
fe106d9bfe merge FileData and ResourceData. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
d2cb44b1bf get rid of the FResourceLump pointer in LumpRecord. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
dc52cac89e more access methods for FResourceFile 2023-12-14 17:22:29 +01:00
Christoph Oelckers
aaea3d52aa fixed more warnings. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
c1ecc41f9d rewrote FileSystem::AddFromBuffer so that it gets backed by an actual FResourceFile. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
0a1eccef92 remove unused FileSystem::AddExternalFile method. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
21acb9d467 simplify lump filter setup and move the Doom special case for 'doom.doom' out of FResourceFile 2023-12-14 17:22:28 +01:00
Christoph Oelckers
c95d611c1f fixed ibm437_to_utf8 2023-12-12 18:07:31 +01:00
Rachael Alexanderson
0bf634013e - fix nullptr dereference 2023-12-11 08:00:23 +01:00
Rachael Alexanderson
93772c4e0c - add new ccmd cvarsearch allows searching cvar by name, languageid, or description 2023-12-11 08:00:23 +01:00
Christoph Oelckers
6ff667a490 fixed savepic loading. 2023-12-10 22:14:09 +01:00
Rachael Alexanderson
42ab7dd70f - mark gl_maplightmode as a cheat
I've heard from several people since this was put in that this should be marked as a cheat. This PR lets you make the final call on that.
2023-12-10 18:22:57 +01:00
Christoph Oelckers
f873946bd0 fixed some warnings. 2023-12-10 13:31:50 +01:00
Christoph Oelckers
36d05112d5 backend update from Raze.
Mainly fixing case table for Georgian script and de-inlining M_Calloc.
2023-12-10 13:26:43 +01:00
Christoph Oelckers
749d4e3acb use the FResourceFile interface in favor of FResourceLump's where possible. 2023-12-10 12:20:06 +01:00
Christoph Oelckers
5c04185d5a renamed things. 2023-12-10 12:06:52 +01:00
Christoph Oelckers
96b3f1f5e0 removed unused variable in M_FindResponseFile and added file length check in ANM player. 2023-12-10 11:55:42 +01:00
Christoph Oelckers
02a6e0422d Clang did not like this... 2023-12-10 11:00:44 +01:00
Christoph Oelckers
7d0ad4897f use proper access functions to ResourceData. 2023-12-10 10:32:16 +01:00
Christoph Oelckers
4da196a416 UTF8 conversion stuff.
This is for dealing with Unicode file names which cannot be handled with an idealized Unicode approach as was present before.
utf8proc was included to handle normalization because with externally provided filenames we have no control over enforcing our pld rules.
2023-12-10 10:29:38 +01:00
Christoph Oelckers
df56fc65e0 rework some of the friend-dependent access to FResourceLump. 2023-12-10 10:26:44 +01:00
Christoph Oelckers
ebc808e2a9 did some cleanup of the FResourceFile interface.
* making all members protected (but adding friend overrides for the classes which still need it)
* allowing to read data without retrieving the FResourceLump object.
2023-12-10 10:24:39 +01:00
Christoph Oelckers
fc84579319 let FileReader::Read return an opaque buffer instead of std::vector.
This can later allow returning a pointer to a static buffer from a cache without creating copies.
2023-12-10 09:07:49 +01:00
Christoph Oelckers
54fb37e39e changed SoundEngine::ReadSound back to a TArray. 2023-12-10 09:07:48 +01:00
Christoph Oelckers
41573df58f added STL compatible access functions to TArray.
This allows using them in templates made for STL containers.
2023-12-10 09:07:48 +01:00
Tyler Schneider
429d402dc4 Fixed console rendering crash on wide consoles 2023-12-10 07:18:28 +01:00
Rachael Alexanderson
102c467de5 - add option to override renderflags +BILLBOARD[NO]FACECAMERA 2023-12-09 18:18:28 -05:00
Rachael Alexanderson
b4d5c7d669 - add actor flag +BILLBOARDNOFACECAMERA which forces sprite aimed at camera heading instead of camera position when gl_billboard_faces_camera is true
```
class ZombieManNoFaceCamera : Zombieman replaces Zombieman
{
	default
	{
		+BILLBOARDNOFACECAMERA;
	}
}
```
2023-12-09 05:57:51 -05:00
Rachael Alexanderson
97336cf7c2 - add missing nullptr check 2023-12-08 16:22:22 -05:00
Rachael Alexanderson
3caa6247be - add flag +BILLBOARDFACECAMERA - renders actor billboard to always face the camera
tested with this code snippet:
```
class ZombieManFaceCamera : Zombieman replaces Zombieman
{
	default
	{
		+BILLBOARDFACECAMERA;
	}
}
```
2023-12-08 10:12:58 -05:00
Ricardo Luís Vaz Silva
43c70cdf9d JIT-Compile all functions during startup 2023-12-06 17:44:51 -05:00
Ricardo Luís Vaz Silva
aed85a25a2 serialize cvars 2023-11-25 21:06:39 -05:00
Ricardo Luís Vaz Silva
74ace89d6e properly serialize int-backed keys for maps 2023-11-25 21:06:39 -05:00
Rachael Alexanderson
4b54aac288 - rename ZSprites to VisualThinkers 2023-11-22 12:11:57 -05:00
Professor Hastig
c42b51d5eb fix floorclipping on slopes. 2023-11-21 18:55:00 -05:00
Ricardo Luís Vaz Silva
4ec76afc40 move all doom-specific loops out of common code 2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
71999e7cf6 add foreach(a/type a : thinkeriterator/actoriterator) 2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
f5507a7373 add foreach(a/l/a,p/l,p/a,p,f/l,p,f : blocklinesiterator/blockthingsiterator) 2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
5cb0e3bc5b add foreach v loop for maps 2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
c58bd6efb5 add foreach k,v loop for maps
* make FxFunctionCall and FxMemberFunctionCall take a temporary for args, since they always move it
* fix type for cast
2023-11-20 22:11:05 -05:00
Ricardo Luís Vaz Silva
b6b6b0cb89 fix gcc/clang 2023-11-20 22:08:33 -05:00
Ricardo Luís Vaz Silva
5d5e7ca042 Decoupled IQM Model Animations 2023-11-20 22:08:33 -05:00
Ricardo Luís Vaz Silva
1a8dfd2dfa ActorModelData cleanup in preparation for decoupled model animations 2023-11-20 22:08:33 -05:00
Major Cooke
848dbd4d3d Fixed uninitialized variables causing issues with other compilers. 2023-11-20 22:07:58 -05:00
Major Cooke
0498236f68 - Exposed PrevRoll, enabling roll interpolation disabling without affecting position interpolation.
- Added translation parameter to the `Spawn` function again.
2023-11-20 22:07:47 -05:00
Christoph Oelckers
c73f805110 restore accidentally deleted 'else'. 2023-11-19 13:01:08 +01:00
Christoph Oelckers
0b36beb10d serialize the remap data of custom translations defined at run time. 2023-11-19 12:44:22 +01:00
Christoph Oelckers
8e319a7669 allow comparisons between ints and translation IDs in pre 4.12 ZScript. 2023-11-19 07:47:23 +01:00
Christoph Oelckers
eaf43dfb96 fixed potential nullptr dereference. 2023-11-19 07:22:12 +01:00
Ricardo Luís Vaz Silva
11f2fc10ea invert mouse again for movement, so that it cancels out the first inversion 2023-11-18 15:20:58 -05:00
Major Cooke
1f847301cb Updated ZSprites to use new translation code. 2023-11-17 08:06:11 -05:00
Major Cooke
8fcd2c5f43 Fixed compilation with CI 2023-11-17 08:06:11 -05:00
Major Cooke
48e7c2d994 - Proper heap handling of HWSprite pointer
- Added `Construct()` method and ensure it's called when created from any means
2023-11-17 08:06:11 -05:00
Major Cooke
0b6bae59ee Added scolor property, allowing for colorizing ZSprites.
- fixed ZSprites not updating important variables while frozen.
2023-11-17 08:06:11 -05:00
Major Cooke
052b3cd89c - serialize LightLevel 2023-11-17 08:06:11 -05:00
Major Cooke
b6b1b25035 Added ZSprites.
- Effectively similar to Actors, but without the excess.
- Can be created with either the `level` function or the static `Spawn` function in ZSprite.
- STAT_SPRITE belongs to ZSprites only; ZSprites cannot be moved out of, nor can anything else be moved in to, this statnum.

Misc:

- Fixed (Sprite)Offset taking roll into account.

Crediting phantombeta, RicardoLuis0 and RaveYard for assistance.
2023-11-17 08:06:11 -05:00
Ricardo Luís Vaz Silva
3056786f38 Add missing loop 2023-11-14 20:14:48 +01:00
Rachael Alexanderson
747e55ce60 - fix GL ES switch appearing as 'Unknown' in the menu sometimes 2023-11-13 17:12:00 -05:00
Ricardo Luís Vaz Silva
fc130ccaac Serialize Name Keys as Strings for maps 2023-11-13 06:19:10 +01:00
nashmuhandes
a04f909d06 Add sv_coopsharekeys - in coop, picking up a key will distribute it to all online players 2023-11-11 20:50:31 -05:00
Christoph Oelckers
578a398981 use FTranslationID in the 2D code. 2023-11-09 23:04:11 +01:00
Christoph Oelckers
9f90c64727 use FTranslationID in the high level parts of the hardware renderer. 2023-11-09 23:04:11 +01:00
Christoph Oelckers
c426094d54 use translation IDs in the software renderer. 2023-11-09 23:04:11 +01:00
Christoph Oelckers
c5c822ea75 use FTranslationID in the model code. 2023-11-09 23:04:11 +01:00