SRB2 Kart Public
Find a file
Inuyasha 8fc61bb674 Merge branch 'sectorlist_traversal' into 'next'
Sectorlist traversal

MOM GET THE CAMERA

There's a LOT of code in the source that ended up mixing m_snext (the node for the next thing in the sector's thinglist) and m_tnext (the node for the next sector in the thing's sectorlist), so I renamed the following:

* m_snext ==> m_thinglist_next
* m_sprev ==> m_thinglist_prev
* m_tnext ==> m_sectorlist_next
* m_tprev ==> m_sectorlist_prev

Then, I changed all the instances where the code was trying to go m_thinglist_next on a mobj's touching_sectorlist (which would've just gone to the node for the next thing in the same sector, instead of the node for the next sector for the same thing). Notable samples:

* FF_SHATTER blocks now disappear the moment you go into their sector. You still can't give FF_SOLID to them because in that case they will still stop you if you never enter their sector at all (ie - clip on corners), but having them nonsolid no longer allows you to phase through entirely without busting them (which was the whole downside of making them intangible in the first place).
* You can now bump into multiple Mario blocks at a time, even if you're not exclusively in their sector.
* No more getting randomly stopped on the edges of bouncy FOFs.
* Landing on polyobjects might behave a little more consistently at the edge of their host sector.
* Teetering did a SHITTON of code that basically never got executed, and then had directly-blockmap-accessing code as a backup. The code was activatable by replacing the m_thinglist_next with m_sectorlist_next, but it behaved SUPER differently from what we're used to with teetering (if the player mobj's edge was JUST off the edge of a platform, you ended up in teetering frames - even if it looked like you could stand) so I ended up removing that section entirely.

Any objections?

See merge request !85
2016-06-18 16:52:21 -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 Merge branch 'sectorlist_traversal' into 'next' 2016-06-18 16:52:21 -04: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: compress the build cache 2016-06-01 14:32:03 -04:00
Android.mk SRB2 2.1 release 2014-03-15 13:11:35 -04:00
appveyor.yml appveyor: only for taggeed master builds 2016-06-01 14:01:12 -04:00
CMakeLists.txt Merge branch 'master' into next 2016-02-25 18:33:29 -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
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.txt SRB2 2.1.14 release 2015-01-01 14:50:31 -05: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 Remove p_fab.c from Code::Blocks project 2016-03-31 20:47:57 -05: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

Here it is! SRB2 v2.1.14 source code!
(why do we keep the version number up to date
	when everything else in this file is hilariously old?
	- Inuyasha)


Win32 with Visual C (6SP6+Processor Pack OR 7)
~~~

2 VC++ 6.0 project files are included:

Win32/DirectX/FMOD
src\win32\wLegacy.dsw
You'll need FMOD to compile this version (www.fmod.org)
or
Win32/SDL/SDL_mixer
src\sdl\Win32SDL.dsp
You'll need SDL and SDL_mixer for this version (www.libsdl.org)

Both needs NASM (http://sourceforge.net/projects/nasm)
For PNG screenshot, libPNG, and Zlib (from http://gnuwin32.sourceforge.net/)

No warranty, support, etc. of any kind is offered,
just plain old as is.
Some bits of code are still really scary.
Go nuts!


Win32 with Dev-C++ (http://bloodshed.net/ free!)
~~~
2 Dev-C++ project files are included:

Win32/DirectX/FMOD
src\win32\SRB2.dev
or
Win32/SDL/SDL_mixer
src\sdl\Win32SDL.dev
You'll need SDL and SDL_mixer for this version (www.libsdl.org)
libPNG and Zlib (from http://gnuwin32.sourceforge.net/)
Note there are precompiled libpng.a and libz.a for Mingw

you will need NASM for both SDL/SDL_mixer and DirectX/FMOD
and you need DirectX 6 (or up) Dev-Paks to compile DirectX version

GNU/Linux
~~~

Dependencies:
  SDL 1.2.7 or better (from libsdl.org)
  SDL_Mixer 1.2.2(.7 for file-less music playback) (from libsdl.org)
  Nasm (use NOASM=1 if you don't have it or have an non-i386 system, I think)
  libPNG 1.2.7
  Zlib 1.2.3
  The Xiph.org libogg and libvorbis libraries
  The OpenGL headers (from Mesa, usually shipped with your X.org or XFree
    installation, so you needn't worry, most likely)
  GCC 3.x toolchain and binutils
  GNU Make

Build instructions:

make -C src LINUX=1

Build instructions (64 bit):

make -C src LINUX64=1

Build instructions to build for Wii Linux/SRB2Wii on a PowerPC system,
follow cross-compiling instructions for cross-compiling on a x86 system:

make -C src LINUX=1 WIILINUX=1

Build instructions to build for Pandora (Linux) on a ARM system,
follow cross-compiling instructions for cross-compiling on a x86 system:

make -C src PANDORA=1

Solaris
~~~

Dependencies:
  SDL 1.2.5 or better (from libsdl.org)
  SDL_Mixer 1.2.2(.7 for file-less music playback) (from libsdl.org)
  libPNG 1.2.7
  Zlib 1.2.3
  The Xiph.org libogg and libvorbis libraries
  The OpenGL headers (from Mesa, usually shipped with your X.org or XFree
    installation, so you needn't worry, most likely)
  GCC 3.x toolchain and binutils
  GNU Make

  You can get all these programs/libraries from the Companion CD (except SDL_mixer and OpenGL)

Build instructions:

gmake -C src SOLARIS=1

FreeBSD
~~~

Dependencies:
  SDL 1.2.7 or better (from libsdl.org)
  SDL_Mixer 1.2.2(.7 for file-less music playback) (from libsdl.org)
  Nasm (use NOASM=1 if you don't have it or have an non-i386 system, I think)
  libPNG 1.2.7
  Zlib 1.2.3
  The Xiph.org libogg and libvorbis libraries
  The OpenGL headers (from Mesa, usually shipped with your X.org or XFree
    installation, so you needn't worry, most likely)
  GCC 3.x toolchain and binutils
  GNU Make

Build instructions:

gmake -C src FREEBSD=1

DJGPP/DOS
~~~

Dependencies:
  Allegro 3.12 game programming library, (from
  http://alleg.sourceforge.net/index.html)
  Nasm (use NOASM=1 if you don't have it)
  libsocket (from http://homepages.nildram.co.uk/~phekda/richdawe/lsck/) or
  Watt-32 (from http://www.bgnett.no/~giva/)
  GCC 3.x toolchain and binutils
  GNU Make

Build instructions:

make -C src # to link with Watt-32, add WATTCP=1
      # for remote debugging over the COM port, add RDB=1

Notes:
 use tools\djgpp\all313.diff to update Allegro to a "more usable" version ;)
 Example: E:\djgpp\allegro>patch -p# < D:\SRB2Code\1.1\srb2\tools\djgpp\all313.diff

Windows CE
~~~

Dependencies:
  SDL 1.27

Build instructions:

use src\SDL\WinCE\SRB2CE.vcw

-------------------------------------------------------------------------------

binaries will turn in up in bin/

note: read the src/makefile for more options

- Sonic Team Junior
http://www.srb2.org