Base: fix spawning and the gamerule switch.

This commit is contained in:
Marco Cawthorne 2023-02-28 10:01:13 -08:00
parent a36694d1f8
commit be373d3116
Signed by: eukara
GPG Key ID: CE2032F0A2882A22
5 changed files with 40 additions and 0 deletions

View File

@ -15,3 +15,13 @@
*/
#include "gamerules.h"
// stubs for spawning
void info_player_deathmatch(void)
{
}
void info_player_start(void)
{
}

View File

@ -16,6 +16,8 @@
class GameRules:CGameRules
{
void GameRules(void);
virtual void(NSClientPlayer) PlayerConnect;
virtual void(NSClientPlayer) PlayerDisconnect;
virtual void(NSClientPlayer) PlayerKill;
@ -28,6 +30,8 @@ class GameRules:CGameRules
class SingleplayerRules:GameRules
{
void SingleplayerRules(void);
/* client */
virtual void(NSClientPlayer) PlayerSpawn;
virtual void(NSClientPlayer) PlayerDeath;
@ -35,9 +39,11 @@ class SingleplayerRules:GameRules
class MultiplayerRules:GameRules
{
int m_iIntermission;
int m_iIntermissionTime;
void MultiplayerRules(void);
virtual void(void) FrameStart;
/* client */

View File

@ -14,6 +14,12 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
void
GameRules::GameRules(void)
{
}
void
GameRules::LevelDecodeParms(NSClientPlayer pp)
{

View File

@ -14,6 +14,12 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
void
MultiplayerRules::MultiplayerRules(void)
{
}
void
MultiplayerRules::FrameStart(void)
{
@ -117,4 +123,10 @@ void
Game_InitRules(void)
{
g_grMode = spawn(MultiplayerRules);
if (cvar("sv_playerslots") == 1 || cvar("coop") == 1) {
g_grMode = spawn(SingleplayerRules);
} else {
g_grMode = spawn(MultiplayerRules);
}
}

View File

@ -14,6 +14,12 @@
* OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
void
SingleplayerRules::SingleplayerRules(void)
{
}
void
SingleplayerRules::PlayerDeath(NSClientPlayer pl)
{