Commit graph

1231 commits

Author SHA1 Message Date
LJ Sonic
df0c8e0557 Merge remote-tracking branch 'origin/next' into netcode-rerefactor 2023-08-01 19:00:52 +02:00
Monster Iestyn
77d70aaa1b relocate savedata code from P_LoadLevel to G_InitNew as well
(this doesn't fix !1064 yet, this just makes the code a bit tidier)
2023-07-31 20:06:28 +01:00
LJ Sonic
0ade3ae0bc Move tic and net command handling to new files 2023-07-27 15:38:45 +02:00
Sal
1a209146d6 Merge branch 'spemblems' into 'next'
Allow obtaining ring, time & grade emblems in regular gameplay

See merge request STJr/SRB2!1752
2023-07-25 09:45:12 +00:00
Sal
3a52e6deb2 Merge branch 'waiting-players-intermission' into 'next'
SRB2Kart netcode ports

See merge request STJr/SRB2!2019
2023-07-24 18:03:45 +00:00
Nev3r
3338d7ca74 Merge branch 'conversion-context-drift' into 'next'
UDMF context drift fixes

See merge request STJr/SRB2!2061
2023-07-24 12:49:14 +00:00
spherallic
86b4f93610 Allow obtaining ring, time & grade emblems in regular SP gameplay. 2023-07-24 08:34:10 -04:00
toaster
e914c19e8f P_WriteSfx: Work around the weird case sensitivity in internal instances of get_number by always providing an uppercase prefix on conversion 2023-07-21 14:41:22 +01:00
toaster
66dd952fdd Tidier conversion of string properties on linedefs to UDMF
Previously, many concatenated texture field strings were turned to text, then had that string run through get_number, then had it converted back into a string to become a stringarg.

Now, the concatenated string is copied directly to the relevant stringarg, with no intermediary steps.

This fixes an issue where a map with object or state properties would have "context drift" - breaking when the object or state list changed, due to differently ordered freeslots, or new hardcoded objects.

Affected types:
- doomednum 1110/Action 9 (Custom Mace/Chain)
- doomednum 700 and those immediately following (Ambient Sound)
- Action 4 and 414 (dash pad, play sound effect)
- Action 14 (bustable block parameters)
- Action 434 (Award Power)
- doomednum 757/Action 15 (fan particle generator)
- doomednum 1202 (bumpable hazard rock/apple spawner)
    - This one has undefined behaviour in the binary map format which was not previously forbidden. This undefined behaviour is EXTREMELY vulnerable to context drift, and so it's simply not worth creating a system to write numerical values into object types - we write an explicit name only for the intended range, and otherwise report the threat of context drift when converting.

In addition, to reduce duplicated zone memory, (sidedef_t).text and (linedef_t).text have been removed from all but the Lua API. In Lua, in binary maps, they point to the host line's stringargs - the line's text and a frontside's text will return stringargs[0], while a backside's text will return stringargs[1]. I've done my best to match the previous API as closely possible, to the point of reporting false nils if the line didn't previously have text available.

However, there are four linedef Actions for which the sidedef text will be different between builds containing and not containing this commit - 331, 332, 333 (the Character-specific linedef executors), and 443 (Call Lua Script), and only if the text is long enough to go over two lines. Given that both halves would be incomplete nonsense in this case, I'm willing to wager this minor point of discrepancy is not a breaking issue.
2023-07-20 19:42:21 +01:00
toaster
dee2489620 P_GetNodeType: Do not dereference invalid pointer for **nodedata parameter 2023-07-20 17:54:47 +01:00
Sally Coolatta
4a735470b9 Even more SRB2Kart netcode improvement ports
- Prevent connection timeout during the waiting gamestate from the last commit.
- Keep client connections alive during fades / other internal loops.
- More consistently timeout clients when they reach the end of BACKUPTICS.
- Dedicated servers will not run any game logic if no nodes are sending packets to it, to reduce CPU usage when there is no one interacting with your server.
  - Unlike SRB2Kart, the amount of time is configurable with the "dedicatedidletime" console variable. Setting this to 0 will disable this feature.
- CL_SendClientCmd uses exact packet types instead of magic number offsets.
2023-07-17 00:44:34 -04:00
Ace Lite
2240742720 Merge branch SRB2:next into lua-texture-offsets-expose 2023-07-06 18:35:00 +00:00
MascaraSnake
84fe1dfc7d Texture scaling (incomplete) 2023-06-28 15:55:52 +02:00
MascaraSnake
8c31d279cf Implement per-texture offsets in UDMF 2023-06-28 01:07:52 +02:00
spherallic
056d3dcf31 Actually clear options field properly 2023-06-14 13:19:47 +02:00
spherallic
90d95d1305 Clean options field of binary-converted things 2023-06-14 13:19:47 +02:00
spherallic
bed7e434e7 Add absolute z height flag for mapthings in UDMF 2023-06-14 13:19:47 +02:00
Sally Coolatta
303d636f8e Individual emblems mode 2023-06-02 16:06:43 -04:00
Sally Coolatta
49fa46d80e Online emblems
Currently, emblems share with everyone. Will add an option to toggle this.
2023-06-02 16:06:43 -04:00
sphere
cf0c5f9084 Merge branch 'midsave-addons' into 'next'
Allow Cosmetic Add-Ons Mid-Save

Closes #911

See merge request STJr/SRB2!1877
2023-05-25 21:01:30 +00:00
sphere
777a1c6b83 Merge branch 'plane-scroller-tweaks-again' into 'next'
Plane scroller & wind/current/pusher improvements (again)

See merge request STJr/SRB2!1811
2023-05-25 21:00:30 +00:00
MascaraSnake
e4933b3e94 Merge branch 'allow-modified-saving' into 'next'
[SUGOI] Allow saving in modified games.

See merge request STJr/SRB2!1749
2023-05-24 05:04:26 +00:00
spherallic
9499cb5409 Merge branch 'next' into public_next 2023-04-12 19:51:17 +02:00
spherallic
9d6456c326 Merge branch 'next' into public_next 2023-04-02 19:33:16 +02:00
sphere
3f499178b0 Merge branch 'forceverticalflipflag' into 'next'
Add flag to action 433 to force MFE_VERTICALFLIP

See merge request STJr/SRB2!1948
2023-03-31 16:13:23 +00:00
spherallic
1470d099e3 Update copyright year & credits 2023-03-31 14:53:31 +02:00
spherallic
540c5d6cc0 Add flag to action 433 to force MFE_VERTICALFLIP 2023-03-20 15:46:15 +01:00
spherallic
a95f5ba7ea Merge branch 'next' into public_next 2023-03-13 12:03:24 +01:00
sphere
b4e1f2d4ff Merge branch 'udmf-defaults' into 'next'
Linedef type 14 UDMF conversion: Don't fill stringargs[0] if toptexture is empty

Closes #973

See merge request STJr/SRB2!1936
2023-02-28 13:59:35 +00:00
sphere
684566ebc4 Merge branch 'emblem-fix' into 'next'
Move emblem float option to args[1], since args[0] is already occupied for NiGHTS emblems

Closes #963

See merge request STJr/SRB2!1935
2023-02-28 13:59:32 +00:00
MascaraSnake
283f7e8919 Linedef type 14 UDMF conversion: Don't fill stringargs[0] if toptexture is empty 2023-02-25 13:24:14 +01:00
MascaraSnake
d58dad7f98 Move emblem float option to args[1], since args[0] is already occupied for NiGHTS emblems 2023-02-25 11:58:12 +01:00
MascaraSnake
aba57612d5 -Only print deprecated map effect warnings once on map load
-Add missing unsupported effect warnings to P_WriteTextmap
-Apply spikes MSF_TRIGGERSPECIAL_TOUCH hack in UDMF too
2023-02-19 07:27:16 +01:00
spherallic
4a1e99729b Merge branch 'next' into public_next 2023-01-31 15:47:11 +01:00
MascaraSnake
6055b1490b Merge branch 'udmf-triggerer' into 'next'
UDMF: Use string values for the sector "triggerer" field

See merge request STJr/SRB2!1902
2023-01-28 06:32:29 +00:00
LJ Sonic
379cc4207a Revert "Merge branch 'netcode-refactor' into merging"
This reverts merge request !1920
2023-01-15 17:57:23 +00:00
LJ Sonic
41fb0c8943 Merge branch 'netcode-refactor' into merging 2023-01-15 17:45:06 +01:00
sphere
cdf896b22f Merge branch 'nightshoopsanity' into 'next'
Allow setting NiGHTS hoop pitch & yaw in degrees (in binary map format)

See merge request STJr/SRB2!1892
2023-01-06 23:54:26 +00:00
LJ Sonic
7c2fe20cd5 Move tic and net command handling to new files 2023-01-05 22:51:17 +01:00
MascaraSnake
ca039ad49b Merge branch 'node-shit' into 'next'
Fix a few rendering errors

See merge request STJr/SRB2!1901
2022-12-31 08:52:36 +00:00
MascaraSnake
6bbb032581 UDMF: Use string values for the sector "triggerer" field 2022-12-30 11:19:29 +01:00
MascaraSnake
0a0da81007 Fix typo 2022-12-30 07:52:19 +01:00
LJ Sonic
c8e579618a Fix maps with more than 65535 segs not working correctly
This renders the "quadrant hack" and ZenNode largely useless
2022-12-27 20:29:15 +01:00
Eidolon
4c72154d4f Merge remote-tracking branch 'local-SRB2/next' into public_next 2022-12-08 21:26:28 -06:00
Eidolon
d98d59494f Add missing level-load view reset from RR 2022-12-08 18:21:37 -06:00
spherallic
d0a91646ef Allow setting hoop pitch/yaw in degrees (binary) 2022-12-07 12:34:35 +01:00
Eidolon
aac04b818c Merge branch '22-safe-addfolder' into 'public_next'
Path security checks for addfile, addfolder and exec

See merge request STJr/SRB2Internal!633
2022-12-07 00:43:31 +00:00
Ace Lite
3217984f55 c-side offset/angle variable renamed 2022-11-25 23:01:27 +00:00
Zwip-Zwap Zapony
969dc4813a Allow cosmetic add-ons mid-save 2022-11-19 19:57:08 +01:00
Sally Coolatta
a22fa1c455 Compromise on cheats setting modified game
Instead of modifying the game, cheats now set a separate "cheats were used in this session" variable, which returns some of the old behavior.

HOWEVER, cheats will STILL allow spawning / collecting emblems & unlocking unlockables. Cheats will purely prevent saving progress. (It was always frustrating that devmode would make debugging unlockable features harder...)

Lastly, the function to set no-saving was exposed to Lua (`G_SetUsedCheats(silent)`). Just thought it'd be useful for large-scale gamedata-using mods that want to add their own cheat commands.
2022-11-16 11:14:31 -05:00
Sally Coolatta
1b43cdddd5 Allow saving in modified games. 2022-11-16 11:14:29 -05:00
Eidolon
9a88c9ea47 Merge branch 'gravityflipping' into 'next'
Gravity flip bugfixes & additions

Closes #378, #661, and #430

See merge request STJr/SRB2!1808
2022-11-12 23:33:07 +00:00
Eidolon
f3830b2934 Merge branch 'pandoras-letter' into 'next'
Fix hidden 100% completion reward actually being obtained at 50% completion

See merge request STJr/SRB2!1842
2022-11-11 23:00:24 -06:00
Alam Ed Arias
f5e1d9722f Merge branch 'master' into next 2022-11-11 22:03:58 -05:00
Alam Ed Arias
e1fd0dfca3 Cleanup whitespace changes from SRB2_release_2.1.23 2022-11-11 21:19:29 -05:00
Eidolon
12c2ddb115 Merge branch 'uncappedrevengeance' into next
Uncapped

See merge request STJr/SRB2!1856

# Conflicts:
#	src/dummy/i_system.c
#	src/win32/win_sys.c
2022-11-08 21:13:50 -06:00
MascaraSnake
812e154638 Fix typo in rising FOF binary-to-UDMF conversion 2022-11-06 07:52:54 +01:00
katsy
a10b824e0d pandora's box is condition 28, not 27 2022-11-01 14:59:10 -05:00
James R
76879299f9 Restrict exec path to srb2 directories 2022-10-14 22:10:24 -07:00
James R
b1a86b0b34 Disallow adding files with absolute path or traversing upward
(Except as part of srb2home, srb2path or addons_folder --
this lets addons menu work, primarily.)

- disallowed when using addfile or addfolder
- security check for xcmd receive
2022-10-14 20:41:45 -07:00
sphere
31a6b7b365 Merge branch 'improve-439-again' into 'next'
Allow linedef action 439 to set different back-side textures (again)

See merge request STJr/SRB2!1812
2022-10-10 16:21:06 +00:00
MascaraSnake
049bfd7bd4 Minor code cleanup in P_ConvertBinaryLinedefTypes 2022-10-09 17:17:16 +02:00
spherallic
f37d466343 Merge branch 'next' into gravityflipping 2022-09-29 19:27:00 +02:00
sphere
a53d9b3788 Merge branch '457failuretagfix' into 'next'
Fix action 457 (Track object angle) not triggering the 'failure' tag

Closes #883

See merge request STJr/SRB2!1814
2022-09-28 21:04:02 +00:00
spherallic
cc3d4acdcd Fix AppVeyor build failure 2022-09-20 20:42:19 +02:00
spherallic
00ecddf3e9 Fix action 457 reading the failure tag from the wrong offset field 2022-09-18 12:55:17 +02:00
spherallic
cd85240ec3 Add toggle for action 439 to use backside textures 2022-09-17 11:40:44 +02:00
spherallic
fe8485cc2f Add flag to set wind/current/push/pull strength using X offset 2022-09-17 11:20:51 +02:00
spherallic
3da9fb636a Add plane scroller features to binary map format:
- Added actions for scrolling floor + ceiling simultaneously
- Added flag to use X offset for speed, instead of line length
2022-09-17 10:51:16 +02:00
spherallic
872a2001c8 Add new linedef executor trigger that checks gravity 2022-09-17 02:14:25 +02:00
spherallic
0ee81a1cc3 Support gravity override flag in UDMF 2022-09-11 19:46:57 +02:00
spherallic
8d06145377 Play gravity flip sound on jump in jumpflip sectors, reorganize code 2022-09-09 15:35:05 +02:00
spherallic
9fabddd4bb Add sector type that flips gravity upon jumping 2022-09-08 16:56:35 +02:00
spherallic
f0adc71f9b Add flag to invert current gravity to gravity flip executor 2022-09-08 16:56:35 +02:00
spherallic
8a0f0237f2 Merge branch 'next' into udmf-fof-flags 2022-09-06 09:52:01 +02:00
sphere
9e2d8f059d Merge branch 'write-textmap-bruh' into 'next'
Fix size_t compiler warnings in P_WriteTextmap

See merge request STJr/SRB2!1785
2022-09-05 21:54:20 +00:00
MascaraSnake
ec119eac2f Merge branch 'next' into udmf-fof-flags 2022-07-31 13:27:03 +02:00
MascaraSnake
8d4baace53 Add Lua backwards compatibility for FOF flags 2022-07-31 12:04:42 +02:00
Eidolon
69c5da2720 Merge branch 'next' into uncappedrevengeance 2022-07-15 00:14:27 -05:00
MascaraSnake
9971592dc6 UDMF conversion: Fix noclimb flag not being applied to linedef types 66-68 2022-06-04 11:14:31 +02:00
MascaraSnake
fc4b79c0de Fix custom FOF flag conversion in binary maps 2022-06-04 10:59:42 +02:00
Eidolon
f94c25c05c Change UDMF wall scroll scale to SCROLL_SHIFT
UDMF special 502 now must scale arg 2 and 3 in the same scale
space as line length scrolling in binary format. This
is to ensure compatibility with the binary format.

Fixes STJr/SRB2#862

Co-Authored-By: MascaraSnake <jonassauer27@gmail.com>
2022-05-29 02:02:20 -05:00
Zwip-Zwap Zapony
d10ca13eb9 Apply 1 suggestion(s) to 1 file(s) 2022-05-28 12:18:09 +00:00
MascaraSnake
e1a5f48c51 Fix even more size_t printfs 2022-05-28 14:08:19 +02:00
MascaraSnake
fd2a097c34 Fix more size_t mishaps 2022-05-28 10:29:35 +02:00
Eidolon
d511857675 Reset view interp in preticker 2022-05-05 19:43:55 -05:00
Eidolon
73930c655b Run UpdateMobjInterpolators in preticker 2022-05-05 19:27:51 -05:00
Eidolon
805941a98f Merge public next into uncappedrevengeance
This is to capture the UDMF merges and make the later code review
easier.
2022-05-03 14:45:14 -05:00
MascaraSnake
28bdd7ef00 Fix size_t compiler warnings in P_WriteTextmap 2022-05-01 19:27:10 +02:00
Eidolon
f0d7d8467f Refactor timing code even more
System layer is greatly simplified and framecap
logic has been moved internally. I_Sleep now
takes a sleep duration and I_SleepDuration
generically implements a precise sleep with spin
loop.
2022-05-01 00:32:46 -05:00
Eidolon
48d8c83540 Ensure view is not interpolated on first frame 2022-04-30 19:10:07 -05:00
Eidolon
c0865e4faa Ensure mobj interpolators reset on level load 2022-04-30 17:59:32 -05:00
Eidolon
e79654a33a Completely refactor timing system
Time is now tracked internally in the game using I_GetPreciseTime
and I_UpdateTime. I_Time now pulls from this internal timer. The
system code no longer needs to keep track of time itself.

This significantly improves frame and tic timing in interp mode,
resulting in a much smoother image with essentially no judder at
any framerate.
2022-04-30 16:33:23 -05:00
Eidolon
568677edc1 Move mobj interpolators to r_fps 2022-04-26 20:56:33 -05:00
Eidolon
0e1b01f206 Update mobj oldstates before all thinkers 2022-04-26 20:56:32 -05:00
Eidolon
3e5cec7e72 Intialize interpolator list at a better time 2022-04-26 20:56:31 -05:00
Eidolon
d34ec2ef06 Reset view interpolation on level load 2022-04-26 20:31:38 -05:00
MascaraSnake
5fbe5189ce Merge branch 'udmf-sector-fields' into udmf-full 2022-04-20 21:01:52 +02:00
MascaraSnake
faa7d89e3e Merge branch 'udmf-more-linedef-types' into udmf-sector-fields 2022-04-20 21:01:16 +02:00
MascaraSnake
5660d896e6 Merge branch 'udmf-thing-types' into udmf-more-linedef-types 2022-04-20 21:00:44 +02:00