Commit graph

679 commits

Author SHA1 Message Date
nashmuhandes
a72057945b Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-03-16 04:37:28 +08:00
Christoph Oelckers
520b960ca5 Reverted the path node system
Code reviews were unfavorable so better nix it before it finds wider use.
2024-03-15 20:24:39 +01:00
nashmuhandes
74a27be3fd Merge branch 'master' of https://github.com/ZDoom/gzdoom 2024-03-10 03:34:37 +08:00
Major Cooke
257ddb520a Extra safety checks. 2024-03-05 13:44:38 -05:00
Major Cooke
69001ad4f7 Added ExcludeNode virtual for actors to reject certain nodes of choice.
- Changed MeleeRange to FriendlySeeBlocks so it's supported by Doom Builder.
2024-03-05 13:44:38 -05:00
Major Cooke
81ebd8c8c4 More progress.
- AMBUSH flag on nodes makes them blind and untargetable when getting `startnode` and `goalnode` for `FindPath()`. This is useful for indicating a node should be skipped when tele/portaling, so the current path can be preserved.
- Setup is simple: place nodes behind lines that tele/portal entities and mark them as AMBUSH.

Other changes:

- Restored global array since blockmap is not a viable option here.
- Added MAPINFO `pathing` flag which enables pathing by default.
- Added NOPATHING flag to disable pathing entirely, useful for maps that have pathing enabled.
- Added `ReachedNode(Actor mo)` virtual, responsible for handling node traversal.
- Nodes now make use of MeleeRange to limit their sight checking functions.
2024-03-05 13:44:38 -05:00
Ricardo Luís Vaz Silva
ad52e2cc1e AStar 2024-03-05 13:44:38 -05:00
Major Cooke
b2cb4b0a6d Begin adding PathNodes. 2024-03-05 13:44:38 -05:00
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
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
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
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
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
Magnus Norddahl
805bce1166 Merge remote-tracking branch 'gzdoom/master' 2024-01-10 04:03:35 +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
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
Magnus Norddahl
73ada7f84b Merge remote-tracking branch 'gzdoom/staging' 2024-01-02 17:10:47 +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
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
nashmuhandes
712a8b70d5 Fixed missing logic for MAPINFO's NoAutoSaveOnEnter 2023-11-27 07:00:25 +08:00
Professor Hastig
3781c43aec allow defining zero gravity through MAPINFO 2023-11-09 07:17:16 -05:00
Christoph Oelckers
12bc9db609 hooked up the per-level colormaps with the hardware renderer. 2023-10-29 08:13:01 +01:00
Ricardo Luís Vaz Silva
e12f2ce0fe Allow setting the colormap from mapinfo (dsda-doom) 2023-10-29 07:40:56 +01:00
Magnus Norddahl
e75e5a387b Merge remote-tracking branch 'gzdoom/master' into merge-gzdoom 2023-10-19 21:05:17 +02:00
Christoph Oelckers
c94c63110e added a third batch of GetChars call to FStrings. 2023-10-07 23:03:40 +02:00
Christoph Oelckers
084301f4d6 - refined light mode selection.
This is to ensure that if the map specifies light mode Doom (i.e. hardware approximation of software lighting) it is not overridden by the user-selected software emulating light mode.
gl_lightmode should only apply if neither the map nor gl_maplightmode set an explicit light mode.
2023-09-17 08:40:36 +02:00
Christoph Oelckers
f55e388d3f - add description to gl_lightmode 2023-09-16 12:09:57 +02:00
Christoph Oelckers
7fbd99ca0f - fixed flags for gl_lightmode.
With how this is being handled now, the CVAR needs to have the CVAR_GLOBALCONFIG flag and CVAR_NOINITCALL unset or it simply won't work right.
Since its meaning has completely changed now (i.e. it's mainly a performance switch to a less demanding implementation instead of being able to select vastly different lighting methods) making it global is more sensible.
2023-09-16 12:06:42 +02:00
Ricardo Luís Vaz Silva
736d38e8c3 add StartGameDirect function 2023-09-14 16:28:08 +02:00
Christoph Oelckers
ebb71cebf1 - put the entire filesystem code into a namespace and created some subdirectories. 2023-08-22 22:54:54 +02:00
nashmuhandes
9e0bf90be6 Merge remote-tracking branch 'remotes/ZDoom/gzdoom/staging' into gzd_staging 2023-08-22 09:09:51 +08:00
nashmuhandes
89b42e3e97 Use a custom naming convention for VKDoom-only stuff 2023-08-21 18:52:05 +02:00
nashmuhandes
24de63f23f Fix CHANGELEVEL_NOAUTOSAVE logic 2023-08-01 17:19:32 +02:00
Christoph Oelckers
f9a86c595c - fixed getRealLightmode: don't overwrite level->info->lightmode. 2023-07-21 14:55:59 +02:00
Professor Hastig
4b49d9d185 fixed bad operator 2023-07-17 22:50:05 +02:00
Professor Hastig
666a99f204 lightmode refactor
* make all legacy light modes except 'Doom' MAPINFO only. A CVAR still exists for testing but its value won't be saved to the config.
* user can only select between "performance', 'software' and 'vanilla'. 'performance' is the old 'Doom' mode which is still needed to speed things up on low end hardware.
* MAPINFO can not enforce any of the two software light modes, as low end users require the option to change this to the 'performance' setting. Selecting one will always revert to the user's light mode selection.
2023-07-17 22:50:05 +02:00
nashmuhandes
1dec189146 Add CHANGELEVEL_NOAUTOSAVE flag to ChangeLevel to allow scripted level-switching to bypass autosaving 2023-07-15 19:25:55 +02:00
nashmuhandes
044279960c Add MAPINFO NoAutoSaveOnEnter - this fully disables autosaves when a map is just entered (ignoring the user's autosave preference). 2023-07-15 18:24:35 +02:00
nashmuhandes
d09d5e0715 - Serialize Level.nousersave and Level.noautomap properly
- Also allow them to be settable directly in a map's MAPINFO block (NoUserSave and NoAutoMap respectively)
2023-07-15 14:43:57 +02:00
Magnus Norddahl
df7d31968d Change various defaults 2023-03-16 22:56:21 +01:00
Rachael Alexanderson
4ac76d82d8 - redirected maps need to be defined in order to redirect 2023-02-03 20:21:40 -05:00
Rachael Alexanderson
33b217bcc9 - unlatch cvars before checking cvar map redirections 2023-02-01 01:56:10 -05:00
Rachael Alexanderson
04ea28defc - add RedirectCVAR directive for loading alternate maps based on a Bool CVAR setting 2023-02-01 00:06:01 -05:00
0e5c6e37b1 Prevent important messages from being accidentally filtered. 2023-01-04 17:54:09 +01:00
Boondorl
0d4d5587b5 Added FOV Interpolation 2022-12-18 08:23:19 +01:00
Christoph Oelckers
d0c86952ee - disabled shortcutting the intermission code if no summary screen is wanted.
This also disabled all cutscenes being attached to the completed map.
2022-11-16 16:29:02 +01:00
Christoph Oelckers
df7a58d756 - missed one BaseBlend use. 2022-11-08 12:01:34 +01:00
2bb0dcca13 Fix print color of level load message. 2022-11-05 13:08:51 +01:00
a75a96d993 Level name printout on load shouldn't be sent to the HUD. 2022-11-05 13:08:51 +01:00
Christoph Oelckers
6eab875ec2 - added option to show hub and episode names on the alt HUD.
Still very much work in progress because few mods have set this up.
CVARs default to off and are not exposed to the menu.
2022-10-26 17:44:51 +02:00