//========= 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