Commit graph

88 commits

Author SHA1 Message Date
Marcus Minhorst
4a3bfae42e Fixed up format specifiers
also cleanup imports
2025-08-09 21:20:56 -03:00
Marcus Minhorst
649ddd7774 Replaced uint with unsigned int 2025-07-19 11:37:24 -03:00
Marcus Minhorst
9b0f5d9b0d Fixes sign-compare warnings 2025-07-18 21:11:50 -03:00
Boondorl
ccf178577d Updated client-side ACS handling
Moved to a new ownership system. Only clients that own the activators will be allowed to call truly client-side scripts. Server objects that attempt to do this will instead run on the server.
2025-07-08 11:32:15 -03:00
Dileep V. Reddy
e9a067dd65 Skymist is a third sky layer with transparency, and adopts the fade color and skyfog density. Size not connected to SKY1 or SKY2. Works with 6-sided skyboxes. Three template pngs (skymist1, 2, & 3) all 1x544 pixels, 8-bit grayscale with transparency are part of gzdoom.pk3 for general usage. Can supply custom lump through mapinfo. Console command 'skymisttoggle' shows the effect (make sure fade has a non-zero color in mapinfo and skyfog has non-zero density). Oh, and skyfog now works with 6-sided skyboxes. 2025-05-06 11:47:45 -03:00
Boondorl
f5a96237e5 You client-side flag instead of storing ACS controller
Prevents old save files from breaking if they were running ACS.
2025-03-20 14:48:55 -03:00
Boondorl
1542ca8e8c Added missing serializing for level script controller 2025-03-19 11:17:40 -03:00
Boondorl
f7e62a8cd6 Added client-side Thinkers
Adds support for client-side Thinkers, Actors, and ACS scripts (ACS uses the existing CLIENTSIDE keyword). These will tick regardless of the network state allowing for localized client handling and are put in their own separate lists so they can't be accidentally accessed by server code. They currently aren't serialized since this would have no meaning for other clients in the game that would get saved. Other logic like the menu, console, HUD, and particles have also been moved to client-side ticking to prevent them from becoming locked up by poor network conditions. Additionally, screenshotting and the automap are now handled immediately instead of having to wait for any game tick to run first, making them free of net lag.
2025-03-11 10:14:28 -03:00
Boondorl
ad3bcfddba Lobby Overhaul
Rewrote lobby to unify common and Doom-specific packet structure, allowing for saner handling of in-game joining. Added a new per-client stage system that allows individual clients to be handled at a time when gathering and sharing info. Reworked lobby UI to display user info and added kick/ban functionalities. Bans are only a temporary per-game IP ban (use passwords to keep unwanted users out). Increased max player count to 64 and unified engine constant.
2025-03-07 20:32:52 -05:00
Ricardo Luís Vaz Silva
33bae944f7 allow optionally skipping initial wipe in in-game intermissions 2025-02-07 20:17:54 -03:00
Adam Kaminski
162ab3c4ec Fixed ACS scripts executing a function from another library that cause a division/modulus of zero from aborting the game. 2025-01-27 21:27:39 -03:00
Rachael Alexanderson
f3b0c3ac5e
- Roll back filesystem changes. These were causing instabilities in the master branch that were interfering with development. 2025-01-04 11:27:21 -05:00
Christoph Oelckers
d1abc3eb8c renamed things in file system to reduce Doom specific terminology. 2024-11-24 18:05:11 +01:00
Christoph Oelckers
634a646c2d take namespace enum out of namespace and added CheckNumForAnyName and CheckNumForFullNameInFile to clarify the meaning of CheckNumForFullName.
This is to take some renaming noise out of the upcoming refactoring.
2024-11-24 17:59:16 +01:00
Christoph Oelckers
ba2800d698 renamed GetFileFullName to GetFileName 2024-11-24 17:59:15 +01:00
Boondorl
3ea5be1ea7 Reworked FRandom constructors
Removes ambiguity while keeping old constructor syntax in check for better overall portability.
2024-11-15 23:56:23 -03:00
Boondorl
597b06ae52 Added CRandom functions
Unique RNG namespace for client-side effects and HUDs. Identifiers for these cannot clash with identifiers that affect the playsim making them completely safe to use in HUD elements. They also won't be saved.
2024-11-15 23:56:23 -03:00
Boondorl
f5ceaafbbc Added net id functions for ACS
Includes net id getter and activator setter functionality. Essentially acts as a pseudo pointer system for Actors within ACS.
2024-10-31 14:52:34 -03:00
Boondorl
0d43272c8f Allow for Basic and Hexen armor replacing 2024-08-17 01:14:07 -04:00
Ricardo Luís Vaz Silva
35f66c5cc2 add COMPATF2_NOACSARGCHECK to disable ACS function argument count checks 2024-06-24 17:23:08 -04:00
Christoph Oelckers
ebd4ebf298 StringTable cleanup and improvements
cleaned up function interface to avoid referencing the file system in the worker functions.
replaced StringTable's operators with functions.. The main reason is that these are far easier to look up when browsing the source.
This also fixes a premature translation in SBARINFO that was done in the parsing stage, not the printing stage.
2024-04-21 10:34:44 +02:00
Christoph Oelckers
6055ff029d the remaining GetChars additions.
The offending operator const char * no longer exists.
2023-10-07 23:44:01 +02:00
Christoph Oelckers
7a5a2858a2 yet even more GetChars calls added. 2023-10-07 23:29:24 +02:00
Professor Hastig
ab8711b57a removed several bad casts to 'long'.
The 'long' type should generally be avoided because its size differs on Windows and Linux/Mac so it is almost guaranteed to cause undefined behavior
2023-10-04 16:47:43 +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
Christoph Oelckers
25b7b18c3d - got rid of the two copying variants of fileSystem.GetFileShortName. 2023-08-22 22:18:53 +02:00
inkoalawetrust
a7f76fe8b9 Added damage property to earthquakes.
When this property is set to any value above 0. The earthquake does the exact amount of damage specified, instead of a random amount.
2023-08-02 00:38:24 -04:00
inkoalawetrust
a38b151940 Added damage and thrust multipliers to quakes.
These properties allow for scaling the amount of damage an earthquake does and how much it pushes actors around.
2023-08-02 00:38:24 -04:00
Marisa Heit
258f4b6786 Check all ACS functions for minimum number of arguments.
Also fixes SpawnForced not respecting the minimum declared in zspecial.acs. (https://forum.zdoom.org/viewtopic.php?t=77027)
2023-01-16 16:53:10 +01:00
inkoalawetrust
6f4a29b5e5 Added APROP_WaterDepth. 2023-01-14 11:31:22 -05:00
Major Cooke
aed72f58f3 Converted A_Quake(Ex) intensity parameters from ints to doubles. 2023-01-14 11:30:00 -05:00
0e5c6e37b1 Prevent important messages from being accidentally filtered. 2023-01-04 17:54:09 +01:00
CandiceJoy
7b9a36c8fd Fixed the ACS PLAYERINFO_FVIEWBOB to be a bool instead of a double. 2022-12-20 00:58:30 -05:00
Rachael Alexanderson
b08295e7e1 - fix spacing 2022-12-16 20:40:05 -05:00
CandiceJoy
0fdb740ac7
Added toggle control for weapon bob while flying 2022-12-16 17:12:03 -06:00
Christoph Oelckers
65a26d6779 - removed the string constructors from FSoundID.
Due to C++ conversion rules this was a bit too volatile. There's really not enough places where being able to pass a string directly into the sound API was beneficial - the two most frequent functions now got overloaded variants.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
d173c0453c - handle all remaining places of sound ID conversions after removing the conversion operators. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
160633a4a2 - migrate a large part of the sound code to FSoundIDs.
This has always been a wild mixture of IDs and ints.
2022-11-24 23:52:52 +01:00
UnizoneDev
a21d0c70e4 Mark the PushSound property as meta 2022-11-13 07:38:07 +01:00
UnizoneDev
9af664d117 Add PushSound property and Slide state
First Commit, hip hip hooray!
2022-11-13 07:38:07 +01:00
Yukita Mayako
15e00f22e8 Normalize angle in AngleToACS
Fixes GetActorAngle returning negative or large values with no range limit.
2022-11-10 07:20:28 +01:00
inkoalawetrust
502c9fef5c Added APROP_FriendlySeeBlocks to Set/GetActorProperty 2022-09-24 16:44:11 -04:00
Christoph Oelckers
ed5287ef23 - added Q16 and Build angle converters to TAngle
To have full coverage. Q16 is what ACS uses and Build angles are needed in Raze.
2022-08-26 18:09:39 +02:00
Christoph Oelckers
4032576519 - blocked off direct access to TAngle’s internal storage. 2022-08-26 18:09:29 +02:00
Christoph Oelckers
f0fbdba593 - disable implicit conversions from float to TAngle 2022-08-26 18:01:26 +02:00
Christoph Oelckers
355219d614 - fixed several scale related floating point conversion warnings. 2022-06-15 22:15:36 +02:00
Christoph Oelckers
6bce14b86f - added ‚repeat‘ option to SetLineActivation ACS function 2022-04-29 00:58:07 +02:00
Christoph Oelckers
9c5b284d72 - fixed bad color range check in ACS HudMessage code. 2022-04-14 14:04:26 +02: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
Christoph Oelckers
1d0aed219e - replaced MIN/MAX in all non-common code. 2021-10-30 10:16:52 +02:00