Commit graph

1169 commits

Author SHA1 Message Date
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
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
Ace Lite
2240742720 Merge branch SRB2:next into lua-texture-offsets-expose 2023-07-06 18:35:00 +00:00
MascaraSnake
8c31d279cf Implement per-texture offsets in UDMF 2023-06-28 01:07:52 +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