a patched version of SRB2 for reasonable usage with the low-poly model pack
Go to file
Monster Iestyn fb8140312b Merge branch 'flat_alignment_revamp' into 'master'
Revamps of several dated linedef type effects

Felt like being productive so made some things I hate suck less.

Linedef type 7 (flat alignment) now works as follows.
* Linedef angle (from v1 to v2) is flat angle.
* Origin of flat is manipulated to match v1's coordinates - unless ML_NOKNUX is flagged, in which case uses frontside x and y offsets as flat offsets instead.
* ML_NOSONIC prevents changing floor.
* ML_NOTAILS prevents changing ceiling.
* Both of the above flags at once prints a warning.
* (THZ and probably a few other maps need updating.)

Linedef type 540 (friction) now works as follows.
* Controlled by x offset instead of length - offset of -100 is maximum iciness, offset of +483(!!!) is the maximum sludginess BUT things are scaled such that +100 is about the maximum sludginess any reasonable human being would want in a level, 0 is ORIG_FRICTION)
* Not reliant on a sector special to function (can be applied solely by tag to in-map sectors or solid FOF control sectors)
* Uses less memory, perform less calculations, and not bug out objects which just happen to use movefactor for something
* PHYSICS CHANGE: Low friction surfaces actively impede your acceleration (and make your animation speeds faster to give off that Looney Tunes out-of-control effect)
* (ACZ and Frozen Hillside needs updating.)

Sector types 1 and 3 in section 3 no longer do anything.

Linedef type 3 (zoom tube) now works as follows.
* Abs of frontside x offset is speed in units of FRACUNIT/8.
* Abs of frontside y offset is waypoint sequence number.
* Effect 4 flag rotates the player to match the waypoint direction (same as before).
* (ERZ needs updating.)

Linedef type 11 (rope hang) now works as follows.
* Abs of frontside x offset is speed in units of FRACUNIT/8.
* Abs of frontside y offset is waypoint sequence number.
* Effect 1 flag makes rope transfer one-way. (same as before)
* No climb flag makes rope static. (same as before)
* (ACZ and maybe ERZ need updating.)

Linedef type 258 (laser) is almost the same as before, but has altered functionality.
* Its flashing is less obnoxious. (56.25% to 68.75% instead of 100% to 0%, at half the speed)

Linedef type 14 (Bustable block parameters) is new, and works as follows.
* Tagged to the control sector of a block that is likely to be busted (via executor or collision, doesn't matter)
* Concatenation of frontside textures is MT_ object type to spawn, defaults to MT_ROCKCRUMBLE1 if not present
* Sound played when being busted is object type's activesound
* Frontside x offset is spacing (in fracunits) of spawned particles, defaults to 32<<FRACBITS
* Frontside y offset is the fuse of spawned particles in tics, defaults to 3*TICRATE, if set to -1 fuse is not set
* Effect 1 flag makes particles "fly out" horizontally and vertically from the center of the FOF

Sector types 7 through 15 in section 3 no longer do anything.

Linedef type 250 (Mario Block) is almost the same as before, but has new functionality and is slightly different in another way.
* No Climb flag turns it into a brick block (set on Custom FOF via presence of FF_SHATTERBOTTOM - busts when hit from the bottom, player hits their head/fist/whatever, no more upwards momentum)
* Effect 1 flag makes it an invisible block (set on Custom FOF via absence of (FF_SOLID|FF_RENDERALL|FF_CUTLEVEL) - intangible from every side except the bottom. Becomes visible and tangible when it's hit once)
* Only updates side textures when moving down or stationary, not whilst moving up - more fidelity to the source material, less processing on the CPU, everyone wins.
* If FOF master linedef has a backside, then: [If there's items in it the FOF's flats are set to that of the backside sector's ceiling, otherwise the floor.] Otherwise, no flat change.

Linedef type 4 (Speed Pad parameters) now works as follows.
* Frontside x offset is speed in fracunits.
* Effect 4 flag doesn't center the player. (same as before)
* Effect 5 flag sends them off in rolling frames.
* Frontside upper texture is sound to play on launch, defaults to sfx_spdpad when not given

Sector type 6 in section 3 no longer does anything.

Object type 757 is changed as follows, and no longer works on its own - see Linedef type 15 for more details.
* Tag via its angle field
* Number of objects to spawn per tic around it via its z field, if zero then just spawn at center
* Is flipped if given MTF_OBJECTFLIP.
* (ERZ and Seraphic Skylands - if we use that map - needs updating)

Linedef type 15 (Fan particle spawner parameters) is new, and works as follows.
* Tag is tag of object(s!)
* Object type set via concatenation of frontside textures, MT_PARTICLE is default
* The length of the linedef is the radius the particle is spawned out (zeroed if z field is 0)
* Frontside x offset is speed upwards
* Frontside y offset is number of degrees to turn each tic (zeroed if z field is 0)
* Frontside floor and ceiling heights are the heights in which the particle is bound through some fun mathematics

A_ParticleSpawn is changed, too.
* Object type is now changed through actor->threshold instead of var1 to support Linedef type 15.

Test executable uploaded at /toaster/srb2win_branch_flatalignment.exe on the ftp.

Test file uploaded at /toaster/flatalignment.wad on the ftp.

Breaks compatibility with 2.1 so put in internal.

See merge request !29
2017-01-24 16:49:43 -05:00
android SRB2 2.1 release 2014-03-15 13:11:35 -04:00
assets missing space for "proper" Debian formatting 2016-02-06 22:00:59 -05:00
bin debian: untested update for Debian packages 2016-02-06 12:31:44 -05:00
cmake/Modules Merge branch 'master' into next 2016-03-10 18:02:23 -05:00
debian readme.txt dupilcated, also incorrect 2016-12-14 15:07:48 -05:00
doc SRB2 2.1.12 release 2014-11-11 19:55:07 -05:00
extras SRB2 2.1 release 2014-03-15 13:11:35 -04:00
libs MSVC: Move x86/x64 settings into commons props 2016-05-22 21:55:55 -04:00
objs SRB2 2.1 release 2014-03-15 13:11:35 -04:00
src Merge branch 'flat_alignment_revamp' into 'master' 2017-01-24 16:49:43 -05:00
tools remove NEED_FIXED_VECTOR and fix angelchk testcase 2015-08-21 21:27:20 -04:00
.gitattributes gitattributes: do not check whitespace for included libs 2016-05-18 10:38:29 -04:00
.gitignore MSVC: fixed up MSVC project 2016-05-21 23:53:04 -04:00
.travis.yml travis: cut down on osx builds 2016-08-18 19:38:21 -04:00
Android.mk SRB2 2.1 release 2014-03-15 13:11:35 -04:00
CMakeLists.txt Update version number 2017-01-15 18:49:33 +00:00
Doxyfile SRB2 2.1 release 2014-03-15 13:11:35 -04:00
LICENSE SRB2 2.1 release 2014-03-15 13:11:35 -04:00
README.md Make disclaimer H2 instead of H3 2016-09-04 21:54:11 +01:00
SRB2.cbp Updated SRB2.cbp to (presumably) handle lua_blockmaplib.c correctly 2017-01-16 15:43:27 +00:00
SRB2_Debug.props MSVC: fixed up MSVC project 2016-05-21 23:53:04 -04:00
SRB2_Release.props MSVC: Move x86/x64 settings into commons props 2016-05-22 21:55:55 -04:00
SRB2_common.props MSVC: Move x86/x64 settings into commons props 2016-05-22 21:55:55 -04:00
Srb2.dev change SDL into HAVE_SDL 2014-07-25 19:10:24 -04:00
appveyor.yml Revert "Merge branch 'appveyor' into 'master'" 2017-01-15 19:47:59 -05: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 build: this script needs bash, not ash 2016-05-18 18:16:57 -04:00
cpdebug.mk Compile Win32 EXE with -gdwarf-2 2014-04-07 10:03:14 -04:00
srb2-vc9.sln SRB2 2.1 release 2014-03-15 13:11:35 -04:00
srb2-vc10.sln MSVC: fixedup SDL2 build 2016-05-18 20:01:50 -04:00
srb2.png add artwork for BPM 2016-02-06 17:36:21 -05:00

README.md

Sonic Robo Blast 2

Build status Build status

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)

Warning: 64-bit builds are not netgame compatible with 32-bit builds. Use at your own risk.

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.