Commit graph

4660 commits

Author SHA1 Message Date
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
c3ca564cfc 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. 2024-02-01 08:43:34 -05:00
Dileep V. Reddy
7fbb4cd06c SpectatorCamera can now follow the 'tracer' actor. Also added a 'lagdistance' property for lazy follow. 2024-02-01 08:43:34 -05:00
Dileep V. Reddy
2b555d7556 Small change to SpectatorCamera actor. 2024-02-01 08:43:34 -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
jekyllgrim
9712409f08 Fixed missing lines in listmenuitems 2024-01-30 14:46:22 -05:00
jekyllgrim
decaf07637 Add CenterText MENUDEF flag 2024-01-29 15:21:49 -05:00
Boondorl
c3f26b5405 Improved key sharing functionality
Localized functionality to an inventory function so that any item can make use of sharing. Added flag to avoid infinite recursions. HandlePickup() will now also share keys (for more complete handling). PuzzleItems are now included in sharing.
2024-01-28 18:04:04 -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
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
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
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
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
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
Ricardo Luís Vaz Silva
79d9217340 Add action versions of the animation/model methods 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
Christoph Oelckers
04e6eba9e0 activate localization of tabs and text update. 2024-01-11 17:50:26 +01:00
Christoph Oelckers
c7778b9332 implemented language selection on the IWAD picker. 2024-01-09 20:52:52 +01:00
Christoph Oelckers
ab010f9830 Text update. 2024-01-09 18:13:41 +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
7eab519795 Implement animated particles that aren't tied to the global animation timer 2024-01-09 06:38:08 -05: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
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
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
jekyllgrim
19435293af Add Actor.HasReceived 2024-01-04 14:33:06 -05:00
jekyllgrim
d0288264a2
Add Actor.CanReceive (#2295)
Adds CanReceive() to Actor, called by items from CallTryPickup(). This will let actors themselves determine if they can receive the item before any other checks.

Co-authored-by: Rachael Alexanderson <18584402+madame-rachelle@users.noreply.github.com>
2024-01-04 07:24:32 -05: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
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
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
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
3caca15c61 use a banner without the VkDoom logo. 2024-01-02 17:37:57 +01:00
Magnus Norddahl
787eb625e5 Use a better font
# Conflicts:
#	wadsrc/static/newmenufont.ttf
2024-01-02 16:55:26 +01:00
Magnus Norddahl
12c40ea950 Forgot to actually add the banner 2024-01-02 16:55:17 +01:00
jekyllgrim
f8653c36d0 Implemented mGrayCheck and isGrayed() in OptionMenuItem 2023-12-30 08:42:01 +01:00
jekyllgrim
cebf37b3fa Add graycheck to colorpicker 2023-12-30 08:42:01 +01:00
jekyllgrim
4273af8004 Minor formatting fix 2023-12-28 17:13:07 +01:00
jekyllgrim
be96d8d906 Added DI_ITEM_LEFT_CENTER and DI_ITEM_RIGHT_CENTER
This is just a small consistency fix: DI_SCREEN_LEFT_CENTER and DI_SCREEN_RIGHT_CENTER exist, so, logically, similar combo flags should exist for DI_ITEM as well.
2023-12-28 17:13:07 +01:00
Major Cooke
8060b147d0 Fixed CF_SCALEDNOLERP having the wrong value. 2023-12-28 17:12:43 +01:00
Cacodemon345
a368588db6 Export FScanner parser to ZScript as ScriptScanner 2023-12-25 10:52:56 +01:00
Christoph Oelckers
f20bbd4189 added compatibility settings for Memento Mori 2 MAP20 2023-12-24 12:44:43 +01:00
Player701
3a117cbe89 - Fixed comment in level_compatibility.zs regarding pc_cp2.wad MAP38 fix 2023-12-22 22:32:02 +01:00
Player701
8151c4cab2 - Allow completion of 2018 Unleashed (pc_cp2.wad) MAP38 2023-12-22 17:26:52 +01:00
Player701
3ec908c032 - Allow 100% kills on 2048 Unleashed (pc_cp2.wad) MAP27 2023-12-22 16:10:55 +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
jekyllgrim
df5dc5ebd8 Moved the enum to doombase.zs 2023-12-17 13:20:08 +01:00
jekyllgrim
fc809cfab6 Virtualized returns for SpecialMissileHit/SpecialBounceHit 2023-12-17 13:20:08 +01:00
Rachael Alexanderson
4850ee3776 - fix nullptr check for target in HolySpirit.Slam (fixes #2296) 2023-12-13 09:59:14 -05:00
Ricardo Luís Vaz Silva
52c878c0d7 Fix vanilla weapon functions passing ammo count to DepleteAmmo 2023-12-10 07:19:21 +01:00
Rachael Alexanderson
102c467de5 - add option to override renderflags +BILLBOARD[NO]FACECAMERA 2023-12-09 18:18:28 -05:00
Major Cooke
a3e0ef4c51 Renamed zsprite.zs to visualthinker.zs for consistency 2023-11-22 17:01:24 -05:00
Rachael Alexanderson
4b54aac288 - rename ZSprites to VisualThinkers 2023-11-22 12:11:57 -05:00
nashmuhandes
d58fa05a5f Expose coop share keys to the options menu 2023-11-21 18:54:43 -05:00
Ricardo Luís Vaz Silva
5d5e7ca042 Decoupled IQM Model Animations 2023-11-20 22:08:33 -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
Major Cooke
a6ff63951f Fixed missing translation spots.
- Removed translation parameter from ZSprite's `Spawn` mechanic since it's no longer compatible.
2023-11-18 10:58:36 -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
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
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
Player701
22203cbc1a - Added missing LANGUAGE definition for Mystic Urn's tag 2023-11-10 16:16:26 +01:00
Christoph Oelckers
f0c9b1765e gave translations a dedicated scripted type.
This is needed for implementing reliable serialization of custom translations. As long as they are merely ints they cannot be restored on loading a savegame because the serialization code does not know that these variables are special.
2023-11-09 23:04:10 +01:00
Professor Hastig
4d88e82e32 added Wads.GetLumpLength. 2023-10-26 09:41:27 -04:00
inkoalawetrust
f3d44f8131 Exposed P_GetMidTexturePosition() to ZScript. 2023-10-25 16:23:29 +02:00
Ricardo Luís Vaz Silva
d699ba248e warn when fewer returns than expected are given for a function 2023-10-15 18:51:05 +02:00
Ricardo Luís Vaz Silva
0ce4b3e7fb update/cleanup function pointers 2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e3704605d8 Implement Static Function Pointers 2023-10-11 19:12:48 +02:00
Christoph Oelckers
0044da1ca2 added missing VMFunction struct definition 2023-10-09 19:20:44 +02:00
Rachael Alexanderson
29368f0f4e - make zs Actor.GetReplacement and Actor.GetReplacee clearscope 2023-10-05 12:29:20 -04:00
Professor Hastig
40ec46e6ea added missing hit obituaries to Hexen's Chaos Serpents. 2023-09-26 06:21:02 -04:00
Christoph Oelckers
30c49fb769 - language update 2023-09-24 23:02:57 +02:00
inkoalawetrust
69e67037f8 Changed the variable type of Crossed3DWater.
Seems like there was some kind of oversight. Crossed3DWater is an F3DFloor pointer, not sector_t.
2023-09-20 18:47:49 +02:00
nashmuhandes
0b3e9b1025 Add ZScript constants used by FallAndSink 2023-09-19 17:36:54 +02:00
Rachael Alexanderson
ce893d2cd4 - remove some double semicolons 2023-09-19 07:29:36 -04:00
Christoph Oelckers
2666f22ed7 - new text duplicate for pending menu redesign 2023-09-17 09:04:44 +02:00
Christoph Oelckers
17e689ecdf fix for Genesis of Descent E1M2
Genesis of Descent E1M2 is impossible to complete on ITYTD/HNTR. I had to decompile the ACS script to figure out what was going on, basically at one point you get locked into a room and have to kill exactly 3 enemies with TID 215 for the door to unlock. One of these is a Baron tagged for only Medium and Hard, in his place is an Imp #1184 that has all the right script setups but is not set to appear on any difficulty. The fix is to simply have this imp appear on Easy.

Thanks to brick' for the fix.
2023-09-17 08:18:36 +02:00
nashmuhandes
c27beb0be8 Delete the light probe DoomEdNum 2023-09-16 20:10:49 +02:00
Christoph Oelckers
81e42142af - added compatibility handler for Phocas Island 2 MAP01. 2023-09-16 09:25:21 +02:00
jekyllgrim
d354d7332f Allow viewbob speed adjustment through properties
This adds ViewBobSpeed to PlayerPawn that is passed in CalcHeight() instead of the value of 20 and can be adjusted with the Player.ViewBobSpeed variable. This will let modders dynamically adjust how to only how far the camera bobs up and down, but also how *quickly* it does that, which allows to easily convey a feeling of a heavy, slow-moving character whose view might bob a lot but would do it slowly.
2023-09-15 22:40:14 +02:00
Christoph Oelckers
096b9cdc4f - fixed. Boom's generalized crushers must stop 8 units above the floor
This required changing the special, so a new one was added to avoid altering Generic_Crusher.
2023-09-15 00:35:20 +02:00
Gutawer
23b489960e - put DTA_Localize at the end of the enum for backwards compat with integer usage 2023-09-14 23:24:42 +02:00
Gutawer
44d134298a - add support for not localizing some text functions, and modify menu text fields to use this 2023-09-14 23:24:42 +02:00
Christoph Oelckers
79ef78e2b5 - fix ammo consumption of powered up Phoenix Rod. 2023-09-14 22:32:20 +02:00
Christoph Oelckers
727c57583b - add unexplored secret color for overlay automap to the menu 2023-09-14 22:31:49 +02:00
Christoph Oelckers
6847a9a5c1 - added a nomirrors compatibility handler and applied it to Conf256's CONF55 map.
This is for disabling broken plane reflection setups.
2023-09-14 20:21:35 +02:00
Ricardo Luís Vaz Silva
0e70e95fa4 Add Inventory::ModifyBob and Inventory::ModifyBob3D 2023-09-14 16:28:38 +02:00
Ricardo Luís Vaz Silva
9f24d8babc Move StartGameDirect from PlayerMenu to Menu 2023-09-14 16:28:08 +02:00
Ricardo Luís Vaz Silva
736d38e8c3 add StartGameDirect function 2023-09-14 16:28:08 +02:00
Christoph Oelckers
0980b53881 - fixed: MBF21's BOSS flag implies NORADIUSDMG. 2023-09-13 20:48:57 +02:00
Christoph Oelckers
f72da434a8 - fixed: For Dehacked, A_CPosAttack needs to use a hard coded attack sound.
This discrepancy is ancient, so the approach used for the shotgunner does not work here and some hacks are needed to remap the function only for Dehacked.
2023-09-13 17:50:47 +02:00
Christoph Oelckers
351e0d7ed9 - removed obsolete CMake version requirements.
Most were still at 3.1 which prompts noisy warnings from up-to-date CMake versions.
Version requirements have been removed entirely from dependent subprojects, all others were upped to 3.16.
2023-09-03 09:04:17 +02:00
Ricardo Luís Vaz Silva
d0a955fef0 Allow disabling colors for NameAllKeys 2023-09-01 18:25:22 +02:00