If the client or server crashes during the integration test run
the next write to its fifo file will be blocking and get stuck forever.
This is especially annoying for github actions because they just run 10
hours and then get terminated by github without ever reaching the end
of the integration test script that then prints the details about the
crash.
There are two interfaces for score worker data:
There is ``ISqlResult`` and every class inheriting from it should have
the suffix ``Result``
Then there is ``ISqlData`` and every class inheriting from it should
have the suffix ``Data`` if it is data that should be written in an
INSERT statement. Or ``Request`` if it is used to perform a read
operation and will be used in a SELECT statament.
The convention was mostly established alreay. In this commit the last
three classes that broke this convention got fixed.
```
[1/322] Building C object CMakeFiles/glew.dir/src/engine/external/glew/glew.c.o
FAILED: CMakeFiles/glew.dir/src/engine/external/glew/glew.c.o
/usr/bin/cc -DGLEW_STATIC -I/home/runner/work/ddnet/ddnet/src/engine/external/glew -g -fdiagnostics-color=always -fstack-protector-strong -fno-exceptions -fsigned-char -Wno-implicit-function-declaration -MD -MT CMakeFiles/glew.dir/src/engine/external/glew/glew.c.o -MF CMakeFiles/glew.dir/src/engine/external/glew/glew.c.o.d -o CMakeFiles/glew.dir/src/engine/external/glew/glew.c.o -c /home/runner/work/ddnet/ddnet/src/engine/external/glew/glew.c
In file included from /home/runner/work/ddnet/ddnet/src/engine/external/glew/glew.c:34:
/home/runner/work/ddnet/ddnet/src/engine/external/glew/GL/glew.h:1205:14: fatal error: GL/glu.h: No such file or directory
1205 | # include <GL/glu.h>
| ^~~~~~~~~~
compilation terminated.
[2/322] Building C object CMakeFiles/wavpack.dir/src/engine/external/wavpack/float.c.o
```
Specifically:
* Ignore freeze, deep freeze, deep unfreeze, live freeze, and live unfreeze tiles
* Ignore also the switched variants of those tiles
* Allow movement when deep and live frozen
* Ignore death tiles
* Ignore red tele, blue tele, red checkpoint tele, and blue checkpoint tele tiles
* Unlimited jumps
* Disable /rescue
Switches, doors, draggers, etc. are not disabled for invincible players in this patch
This commit adds the rcon command "invincible" which toggles the new m_Invincible variable on CCharacterCore. The feature is supposed to be an alterantive to super that is safe for /practice mode. The state of m_Invincible is synchronized to the client via the DDNetCharacter net object. Future commits will change checks for m_Super to check for m_Invincible as well in places where this is safe such as e.g. preventing freezing of the player. The ability to interact with players that are in other teams will remain exclusive to super.
Specifically, SetSuper(false) followed by SetSuper(false) should not change teams. The following commit relies on this, but it is generally a good idea to remove this footgun.