Player slot zero is implicitly initialised and accessed within the code as the "Neutral" player.
But this slot never gets initialised in the same way that other player slots do, leaving it identical to the leftover and uninitialised player slots in the players array.
Quite a few bits of information on the player make up part of the xfercrc so we can't currently initialise them.
This has lead to us having to make quite a few NULL checks in various places in case the "Neutral" player is made use of directly or indirectly.
In the future we will want to try adding data and other information to properly implement the neutral player as a full and invincible player in the game.
this will require properly initialising it with a custom player template, which we will have to make as no neutral player template exists in the retail game data.
we will have to give it a proper name, namekey, nameid etc so it can be searched properly by scripts instead of by using a blank player name, as with what currently happens.
we can also give it a functional tunnel system and remove most of the null checks on the tunnel system handling.
this could allow other future functionality on the neutral player / faction.