Sonic Robo Blast 2 Public
Find a file
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
.circleci cleanup whitespace in CircleCI build config 2022-11-11 21:19:27 -05:00
android SRB2 2.1 release 2014-03-15 13:11:35 -04:00
assets 2.2.11 2023-05-16 18:20:15 +02:00
cmake cmake: Use TheLartians' Ccache script on non-Win32 2022-11-05 23:30:12 -05:00
debian-template modified: debian-template/rules 2021-08-12 12:39:28 -05:00
deployer Remove patch.pk3 from Deployer ASSET_FILES_HASHED 2019-12-07 16:26:28 -05:00
doc SRB2 2.1.12 release 2014-11-11 19:55:07 -05:00
extras Remove action 260 from the UDMF config 2023-07-06 18:26:30 +02:00
libs MSVC project file works again! Supports Visual Studio 2022. 2022-12-31 19:35:07 -05:00
src Tidier conversion of string properties on linedefs to UDMF 2023-07-20 19:42:21 +01:00
thirdparty cmake: Fix png and openmpt builds in clean envs 2022-12-10 01:53:23 -06:00
tools Merge branch 'master' into next 2022-11-11 22:03:58 -05:00
.gitattributes avoid the source code from getting the wrong EOL 2019-09-20 12:32:18 -04:00
.gitignore Update .gitignore 2022-11-11 21:19:14 -05:00
.travis.yml Support for http downloads 2020-05-13 17:25:52 -07:00
Android.mk SRB2 2.1 release 2014-03-15 13:11:35 -04:00
appveyor.yml 2.2.11 2023-05-16 18:20:15 +02:00
CMakeLists.txt Merge branch 'cmake-zlib-internalized' into 'next' 2022-11-09 02:30:35 +00:00
comptime.bat comptime.bat: Put @echo off back in 2016-03-14 20:36:37 -05:00
comptime.mk SRB2 2.1 release 2014-03-15 13:11:35 -04:00
comptime.props MSVC: fixed up MSVC project 2016-05-21 23:53:04 -04:00
comptime.sh Merge branch 'comptime-no-fail' into 'master' 2022-11-15 21:48:47 -05:00
cpdebug.mk Compile Win32 EXE with -gdwarf-2 2014-04-07 10:03:14 -04:00
debian_template.sh Implement deployer scripts for Travis -- OSX and Linux package building 2018-12-30 15:22:50 -05:00
Doxyfile Remove some more DOS related stuff 2020-07-25 19:15:54 -04:00
LICENSE SRB2 2.1 release 2014-03-15 13:11:35 -04:00
Makefile Add a proxy Makefile at top level 2021-06-16 16:26:18 -07:00
README.md Add badge to readme showing latest stable release 2021-05-11 20:02:12 -04:00
srb2-vc10.sln Added ARM/ARM64 to whole vc10 sln 2018-12-21 16:47:10 -05:00
SRB2.cbp Backport the Blockmap library I made two years ago 2018-11-30 17:11:11 +00:00
Srb2.dev change SDL into HAVE_SDL 2014-07-25 19:10:24 -04:00
srb2.png More icon stuff 2019-07-27 01:13:54 -04:00
SRB2_common.props More work to cleanup the ARM builds 2018-12-22 19:50:32 -05:00
SRB2_Debug.props More work to cleanup the ARM builds 2018-12-22 19:50:32 -05:00
SRB2_Release.props More work to cleanup the ARM builds 2018-12-22 19:50:32 -05:00
srb2banner.png Fix debian desktop icon 2018-11-27 02:11:57 -05:00

Sonic Robo Blast 2

latest release

Build status Build status CircleCI

Sonic Robo Blast 2 is a 3D Sonic the Hedgehog fangame based on a modified version of Doom Legacy.

Dependencies

  • NASM (x86 builds only)
  • SDL2 (Linux/OS X only)
  • SDL2-Mixer (Linux/OS X only)
  • libupnp (Linux/OS X only)
  • libgme (Linux/OS X only)
  • libopenmpt (Linux/OS X only)

Compiling

See SRB2 Wiki/Source code compiling

Disclaimer

Sonic Team Junior is in no way affiliated with SEGA or Sonic Team. We do not claim ownership of any of SEGA's intellectual property used in SRB2.