Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
1.8 KiB

5 years ago
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#if !defined( C_WORLD_H )
#define C_WORLD_H
#ifdef _WIN32
#pragma once
#endif
#include "c_baseentity.h"
#if defined( CLIENT_DLL )
#define CWorld C_World
#endif
class C_World : public C_BaseEntity
{
public:
DECLARE_CLASS( C_World, C_BaseEntity );
DECLARE_CLIENTCLASS();
C_World( void );
~C_World( void );
// Override the factory create/delete functions since the world is a singleton.
virtual bool Init( int entnum, int iSerialNum );
virtual void Release();
virtual void Precache();
virtual void Spawn();
// Don't worry about adding the world to the collision list; it's already there
virtual CollideType_t GetCollideType( void ) { return ENTITY_SHOULD_NOT_COLLIDE; }
virtual void OnDataChanged( DataUpdateType_t updateType );
virtual void PreDataUpdate( DataUpdateType_t updateType );
float GetWaveHeight() const;
const char *GetDetailSpriteMaterial() const;
public:
enum
{
MAX_DETAIL_SPRITE_MATERIAL_NAME_LENGTH = 256,
};
float m_flWaveHeight;
Vector m_WorldMins;
Vector m_WorldMaxs;
bool m_bStartDark;
float m_flMaxOccludeeArea;
float m_flMinOccluderArea;
float m_flMinPropScreenSpaceWidth;
float m_flMaxPropScreenSpaceWidth;
bool m_bColdWorld;
private:
void RegisterSharedActivities( void );
char m_iszDetailSpriteMaterial[MAX_DETAIL_SPRITE_MATERIAL_NAME_LENGTH];
};
inline float C_World::GetWaveHeight() const
{
return m_flWaveHeight;
}
inline const char *C_World::GetDetailSpriteMaterial() const
{
return m_iszDetailSpriteMaterial;
}
void ClientWorldFactoryInit();
void ClientWorldFactoryShutdown();
C_World* GetClientWorldEntity();
#endif // C_WORLD_H