a patched version of SRB2 for reasonable usage with the low-poly model pack
Go to file
Monster Iestyn 31d3c09d15 Merge branch 's_skinprovements' into 'master'
S_SKIN-provements

I like setting up merge requests before they're ready so I can do code comparisons. Yes, I know it's possible through looking at the branch itself, but merge requests are nicer.

New character abilities:
* CA_TWINSPIN - basically the insta shield but without the invincibility. Think rosy.wad. Destroys spikes, enemies and any bustable blocks (even Knuckles ones!) on contact.
* CA2_MELEE - dash forwards and upwards at S_SKIN's maxdash and mindash respectively, destroys spikes, enemies and any bustable blocks (even Knuckles ones!) on contact.

S_SKIN parameters (all available read-only to Lua):
* "availability" - defines the Unlockable number that has to become unlocked in order to play as the character. (Note: if you don't want this unlockable to show up in the unlockables menu, use type SECRET_NONE in hardcode, or None in SOC. Otherwise, the only other reasonable option is SECRET_HEADER.) Defaults to 0 if not given, or given a number over MAXUNLOCKABLES - which means playable on first boot as usual. The name of the unlockable referred to is set to the character's realname once this is read.
* "radius" - defines the radius of this player under all circumstances as an int, ignoring scale. Defaults to 16. ("radius = 48" means 48*FRACUNIT)
* "height" - defines the height of this player under regular circumstances as an int, ignoring scale. Defaults to 48. ("height = 12" means 12*FRACUNIT)
* "spinheight" - defines the height of this player under spinning/gliding/flying/etc circumstances as an int, ignoring scale. Defaults to 32. ("spinheight = 64" means 64*FRACUNIT)
* "shieldscale" - defines the scale of the shield sprite relative to the player's, as a float. Defaults to 1. ("shieldscale = 1.5" means 3*FRACUNIT/2) - see http://i.imgur.com/BQ5DhKC.png for justification
* "camerascale" - defines the scale of cam_dist and cam_height (the consvars) relative to normal, as a float. Defaults to 1. ("camerascale = 0.5" means FRACUNIT/2)
* "prefoppositecolor" - The sign background colour used when you're using the skin's prefcolor. 0 (the default) means use the Color_Opposite array for all colours.
* "supercolor" - The base colour you flash when super! Irrelevant if you don't have SF_SUPER. See constants below.
* Supports defining sound replacements as both DSNAME and sfx_name formats.
* Default revitem is now MT_NULL instead of MT_THOK to match all characters in SRB2 right now.
* Thanks to MI, all skin flags can be set via "name = 1" or "name = true" or "name = yes" like in 2.0 and before, AS WELL as the current "flags = SF_NAME"

Super colours:
* SKINCOLOR_SUPERSILVER1-5 - "Silver" - done for fun, looks a little bit like Nazo maybe if you're into that kind of thing
* SKINCOLOR_SUPERRED1-5 - "Red" - I originally neglected to do a proper port of Knuckles' super flash to the Reduced Palette. Here, I've corrected that.
* SKINCOLOR_SUPERORANGE1-5 - "Orange" - Ditto, but for Tails. I avoided doing it because Match Super was dying, so why put in the effort? FOR MODDERS!
* SKINCOLOR_SUPERGOLD1-5 - "Gold" - Just a renamed Sonic super to fit the new naming pattern.
* SKINCOLOR_SUPERPERIDOT1-5 - "Peridot" - Nyeheheheheheh.
* SKINCOLOR_SUPERCYAN1-5 - "Cyan" - @Inuyasha wanted me to do enough colours such that you can have a continuous rainbow of super forms.
* SKINCOLOR_SUPERPURPLE1-5 - "Purple" - So... I picked some of my favourite skincolours that were wide enough apart, since these take a while to do.
* SKINCOLOR_SUPERRUST1-5 - "Rust" - One of the first ones I did, because I liked how S3nK Mecha Sonic's super form wasn't yellow. (For Metal Sonic.)
* SKINCOLOR_SUPERTAN1-5 - "Tan" - Geez, I would've loved to call this champagne... [Here's a reference image for the reasoning behind wanting to include this.](http://i.imgur.com/OB18Cls.png)

New frame flags:
* FF_MIDDLESTARTCHANCE - For SPR2: has a 50% chance of starting the animation halfway in. For FF_ANIMATE: has an equal chance of starting on any frame between the frame number and frame number plus var1. For normal frames: Does nothing.
* FF_SPR2ENDSTATE - if var1 == S_NULL and the object is a player, don't loop, just stop incrementing the frames. Otherwise, go to the state represented by var1. Only works for SPR2 animations.

New skin flags:
* SF_NOJUMPSPIN - Player's height is full whilst jumping, SPR2_JUMP defaults to SPR2_SPNG instead of SPR2_SPIN, and the player goes into fall frames if they start moving downwards or use their ability.
* SF_NOJUMPDAMAGE - Ala rosy.wad, don't damage enemies, etc when jumping into them.
* SF_STOMPDAMAGE - Just for fun. Ala in Mario, always damage enemies when you land on top of them (your gravity reference, not theirs).
* SF_MARIODAMAGE - SF_NOJUMPDAMAGE|SF_STOMPDAMAGE is reasonably accurate to the Mario games, and might as well be surfaced as such.
* SF_MACHINE - creates explosions whilst dying, creates sparks whilst drowning, different drowning numbers and sounds. Requires new patch.dta.

Character select screen updates:
* All disabled characters - through SOC or unlock (via the above availability parameter) - are outright removed (at least visibly). No awkward gap in scrolling - no hint they were ever there in the first place. Character select selections without valid characters are also hidden.
* Vertical loop - the character select images are visually continuous. No matter where you are in the chain, you'll always see a hint of the character above or below your current selection. (This is as long as you have more than one character on the select screen - otherwise you'll just see that one only.)
* Smooth scrolling - Moto and Prime showed me [a gfy](https://gfycat.com/AshamedEsteemedHammerheadbird) from back during 2.1 development where it was super smooth. I didn't make it as slow as that one, but the smoothness was easy to add and the reason it was removed previously - gaps in the character select leading to varying speeds - is no longer relevant.
* [Gfy of example](https://gfycat.com/RealBrightJay) - Metal Sonic is hidden both to show off it's capable of hiding to 'devs, and to make this safe to show off to the public!
* Fallback for a zero character select screen: just try to pick the first character, whatever it is! Just like when it's forcecharacter...

Character behaviour changes:
* CA2_NONE/CA2_MULTIABILITY no longer forces nojumpspin.
* PA_JUMP - for jumping (only when going upwards in the case of SF_NOJUMPSPIN, otherwise it's PA_FALL).
* Instead of not spawning the revitem if your SPR2_ is SPR2_DASH, don't spawn it if it's set to 0.
* Don't get stuck in spindash frames if your maxdash is 0, and don't flash rolling frames if you're on goop.
* SPR2_SWIM (and S_PLAY_SWIM) for using CA_FLY/SWIM underwater.
* CA_SWIM users no longer forced to run on water.
* Drowning characters fall off the screen slower.
* CA_DASHMODE users can destroy normal spinbust blocks whilst they're dashing.
* CA_DOUBLEJUMP and CA2_MULTIABILITY go together nicer now. Each additional jump (up to the (actionspeed>>fracbits)nd jump) has a jump height closer and closer to zero, much like Kirby games.
* Fixed bug where being pushed off a platform whilst charging a spindash would leave you in your charging frames instead of your rolling ones when you hit the ground (http://gfycat.com/MassiveThreadbareItalianbrownbear)
* Fixed bug where spindashing on top of a bubble spawnpoint led to you being able to move around in spindash frames (no gif since obvious desired behaviour is obvious)
* Spindash animation speeds up the faster you'll shoot off.
* The spin charging mechanism is now scale-independent, and only multiplies by scale when shooting off - less FixedMul calls, and potentially deals with weird quirks of changing scale whilst spindashing that nobody's discovered because there's no place to find that in the main game!
* Default maxdash is now 70
* SPR2_SMSL renamed to SPR2_SSTN (stun)
* player->powers[pw_carry] replaces a bunch of carrying stuff.
    * PF_ITEMHANG -> CR_GENERIC
    * PF_CARRIED -> CR_PLAYER
    * (mo->tracer == MT_TUBEWAYPOINT) -> CR_ZOOMTUBE
    * PF_ROPEHANG -> CR_ROPEHANG
    * PF_MACESPIN -> CR_MACESPIN
* Rope hangs and zoom tubes are a LOT smoother. http://gfycat.com/BewitchedIcyHuman
* PF_CANCARRY replaces all the terrible checks for flying, and is given and removed properly.
* Turning "god on" in the console whilst super (and devmode is off) will result in... [Well...](http://gfycat.com/DownrightMemorableDwarfrabbit) ~~(if no fun is allowed let me know and i'll put this behind the #DEVELOP define)~~

Multiplayer consvar changes:
* forceskin now takes a string instead of a number, and requires you to have unlocked that skin to set it.

A comprehensive list of all the circumstances characters are available under:
* If they don't have a respective unlockable.
* If they do have a respective unlockable, but you've unlocked it.
* If you're watching somebody's record attack footage.
* If you're forced to by the map you're playing's level header.
* If you're playing multiplayer, and the host or admin (who must have unlocked the character first, or be running a dedicated server) sets the forceskin console variable to that character.

Character-related NiGHTS stuff:
* Skin-based SPR2_ system instead of Sonic's sprites for everybody.
* If you can turn SF_SUPER, flash your skin's supercolor, otherwise be your normal color.
* If your skin doesn't have a SPR2_NGT0 (horizontal fly), use Sonic's sprites and colour flashing rules (this will hopefully be replaced by 2.2 with sprites of NiGHTS themselves)
* SPR2_NTRN, SPR2_NSTD, SPR2_NFLT, SPR2_NPAN, SPR2_NPUL, SPR2_NATK, SPR2_NGT0-C, SPR2_DRL0-C. (number of flight directions have been upped for EXTRA SMOOTHNESS)

Non-character-related NiGHTS stuff:
* Rob requested the following link colour sequence at unix time 1470866042, and I had the relevant file open: Emerald, Aqua, Cyan, Blue, Pastel, Purple, Magenta, Rosy, Red, Orange, Gold, Yellow, Peridot
* MT_NIGHTSCHAR made irrelevant, everything follows actor->target instead of actor->target->tracer now
* Emerald is now player->mo->tracer instead of player->mo->tracer->target
* Nightopian helpers flash for the 35 tics before they disappear
* Nights capsule makes boss explosions/noises now (I can change it back I just like it this way better)
* Drill off into the sky instead of fly up in floating pose (but no noise)

See merge request !32
2016-09-27 12:55:24 -04: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 loose the revision, pkgs switched to native format 2016-02-06 22:46:52 -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 MI's last few reccomendations fixed. 2016-09-27 17:51:17 +01: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
appveyor.yml appveyor: fixup version 2016-07-22 17:28:00 -04:00
CMakeLists.txt Merge branch 'master' of http://git.magicalgirl.moe/STJr/SRB2 into pub_next 2016-02-25 15:41:13 -08: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
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-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.cbp Split AA trees code from m_misc.c/.h into m_aatree.c/.h 2016-06-05 21:29:40 +01:00
Srb2.dev change SDL into HAVE_SDL 2014-07-25 19:10:24 -04:00
srb2.png add artwork for BPM 2016-02-06 17:36:21 -05:00
SRB2_common.props MSVC: Move x86/x64 settings into commons props 2016-05-22 21:55:55 -04: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

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.