No description
Find a file
toaster b8f59fd227 Skin and playerstate code in demos has been partly rewritten to support more than was previously possible.
Notable new features:
- Guaranteed native compatibility with SF_IRONMAN even with differing # of skins
- Bots (todo: can still desync midway through round)

Implementation details:
- Demo code (skins):
    - Instead of writing a skin name string, and the player's kartspeed, kartweight, and charflags for each player in the initial player-interpreting loop...
    - Write a skinlist of EVERY skin's name string, kartspeed, kartweight, and flags next to the file list, to be read into `demo.skinlist`.
        - If the skin name isn't loaded, find the skin with (in order)
            - SF_IRONMAN if your skin had SF_IRONMAN, since that's more important to signal
            - the closest stats otherwise (as per previous implementation)
        - Just as tolerant to stats AND the number of base skins changing between versions (the bonuschars aegis situation)
        - Not tolerant to restat, but we can add a DXD or EZT later if we want to natively support that kind of mod
    - In the initial loop and DXD_SKIN, just write an index that can be used for `demo.skinlist`, and store it in `demo.currentskinid[p]`
    - The player's skin is now encoded as EZT_IRONMAN for ghosts (and just in case RNG sync fails for unrelated reasons)
- In the SF_IRONMAN code when demo.playback is true
    - everywhere where `skins[player->skin]` is referenced instead uses an index into `demo.skinlist`
    - SetRandomFakePlayerSkin uses the `demo.skinlist` to build a table to ensure exact random call parity
        - Also means it no longer double rejection-samples.
    - `player->fakeskin` and `lastfakeskin` are always == their original recording values, a skin id which can be used into `demo.skinlist`
- Demo code (playstate, initial player setup loop):
    - Add bot flag (`DXD_PST_ISBOT`, `DEMO_BOT`)
    - Add in-between-level botvars (difficulty, diffincrease, rival)
    - Don't rely on `PF_WANTSTOJOIN` to activate

Additional bugfixes:
- Followerskin set to -1 in CL_ClearPlayer so a bad follower isn't recorded on player join without name and color change arriving immediately
- Accomodate new joiners in demo code even if they're not on DXD_PST_SPECTATING for one reason or another
- Demo extra file list saving is now its own function for code cleanliness
- Actually only modify players relevant to the demo at the end of G_DoPlayDemo, not all 16 by supplying and overwriting garbage values (POSSIBLE MEMORY CORRUPTION FIX, mobj_t pointer was previously dereferenced)
2022-11-22 14:28:48 +00:00
.circleci Let stop building a NONET build of Kart 2022-09-24 15:56:42 +00:00
android SRB2 2.1 release 2014-03-15 13:11:35 -04:00
assets YAY, round 2 2020-08-09 21:02:56 -04:00
cmake cmake: add COMPVERSION_UNCOMMITTED 2022-10-08 21:19:04 -05:00
debian-template Fix Debian (.deb) build from making (Project_root)/bin/Linux 2022-03-18 19:36:45 +00:00
deployer Fix deployer defaults 2020-08-15 11:29:53 -04:00
doc SRB2 2.1.12 release 2014-11-11 19:55:07 -05:00
extras Speed Pads are now a TERRAIN effect 2022-10-11 02:26:54 -04:00
libs Update libs/SDL2 to 2.0.22 2022-09-05 15:13:45 +01:00
src Skin and playerstate code in demos has been partly rewritten to support more than was previously possible. 2022-11-22 14:28:48 +00:00
tools Remove FMOD files 2022-07-23 12:57:46 -05:00
.gitattributes avoid the source code from getting the wrong EOL 2019-09-20 12:32:18 -04:00
.gitignore Backport 2021 SRB2 makefile overhaul 2021-11-25 03:56:23 -08:00
.travis.yml Merge branch 'master' into the-scary-22-merge 2020-08-12 20:59:09 -04:00
Android.mk SRB2 2.1 release 2014-03-15 13:11:35 -04:00
appveyor.yml Backport 2021 SRB2 makefile overhaul 2021-11-25 03:56:23 -08:00
CMakeLists.txt cmake: add COMPVERSION_UNCOMMITTED 2022-10-08 21:19:04 -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
debian_template.sh Implement deployer scripts for Travis -- OSX and Linux package building [Kart merge] 2018-12-30 15:41:58 -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
README.md The start of the scary 2.2 merge 2020-05-29 13:43:38 -04:00
srb2-vc9.sln SRB2 2.1 release 2014-03-15 13:11:35 -04:00
srb2-vc10.sln Added ARM/ARM64 to whole vc10 sln 2018-12-21 16:47:10 -05:00
SRB2.cbp Add k_kart files to CB project 2019-01-04 23:09:25 -06:00
Srb2.dev change SDL into HAVE_SDL 2014-07-25 19:10:24 -04:00
srb2.png Icons + other tweaks to rebranding 2022-05-20 19:42:34 -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 Icons + other tweaks to rebranding 2022-05-20 19:42:34 -04:00

SRB2Kart

SRB2Kart is a kart racing mod based on the 3D Sonic the Hedgehog fangame Sonic Robo Blast 2, 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. The compiling process for SRB2Kart is largely identical to SRB2.

Disclaimer

Kart Krew 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.