This repository has been archived on 2022-06-27. You can view files and clone it, but cannot push or open issues or pull requests.
Xash3DArchive/server/ents/baseworld.cpp

68 lines
1.5 KiB
C++

//=======================================================================
// Copyright (C) XashXT Group 2006
//=======================================================================
#include "extdll.h"
#include "utils.h"
#include "cbase.h"
#include "client.h"
#define SF_WORLD_DARK 0x0001
#define SF_WORLD_TITLE 0x0002
void CWorld :: Precache( void )
{
g_pWorld = this;
m_pLinkList = NULL;
InitWorld();
if( pev->spawnflags & SF_WORLD_DARK )
{
CVAR_SET_FLOAT( "v_dark", 1.0f );
ClearBits( pev->spawnflags, SF_WORLD_DARK );
}
else CVAR_SET_FLOAT( "v_dark", 0.0f );
}
void CWorld :: KeyValue( KeyValueData *pkvd )
{
if( FStrEq( pkvd->szKeyName, "skyname" ))
{
CVAR_SET_STRING( "sv_skyname", pkvd->szValue );
pkvd->fHandled = TRUE;
}
else if ( FStrEq(pkvd->szKeyName, "chaptertitle") )
{
pev->netname = ALLOC_STRING( pkvd->szValue );
CVAR_SET_FLOAT( "sv_newunit", 1 ); //new chapter
pkvd->fHandled = TRUE;
}
else if ( FStrEq(pkvd->szKeyName, "gametitle") )
{
SetBits( pev->spawnflags, SF_WORLD_TITLE );
pkvd->fHandled = TRUE;
}
}
void CWorld :: Spawn( void )
{
g_fGameOver = FALSE;
Precache();
}
void CWorld :: PostActivate( void )
{
// run post messages
if ( pev->netname )
{
UTIL_ShowMessageAll( STRING(pev->netname) );
pev->netname = iStringNull;
}
if ( pev->spawnflags & SF_WORLD_TITLE )
{
SERVER_COMMAND( "gametitle\n" );
ClearBits( pev->spawnflags, SF_WORLD_TITLE );
}
}
LINK_ENTITY_TO_CLASS( worldspawn, CWorld );