Files
source-sdk-2013/sp/src/game/server/world.h
Blixibon c5f3fa0778 Mapbase v3.0
- Overhauled matcher system and added expanded wildcard support, meaning "text", "te?t", "blah_test", etc. are now supported instead of only trailing *
- Added support for regular expression matching
- Added the missing matrixinvert.h file, which prevented programmers from compiling vbsp
- Fixed env_global_light brightness
- Added info_player_view_proxy, an entity which mimics a player's view (created for script_intro)
- New UnZoomWithRate and SetZoomRate inputs on env_zoom
- New "Don't change target's angles" flag on logic_measure_movement
- Fixed logic_measure_movement not using ignore origin flags correctly
- Fixed filter_damage_mod secondary filter not recognizing mode correctly
- Fixed DisableGeigerCounter causing NPCs to ignore player, and possibly fixed other adverse effects in similar code
- Added SetEntityName input for setting an entity's targetname
- Added "SetTarget" support to point_posecontroller
- Added "sk_alyx_health" convar for adjustable npc_alyx health, restored/fixed "sk_barney_health" for adjustable npc_barney health
- Added ignore flags and several direction-related inputs to math_vector
- Added pose parameter stuff to logic_modelinfo
- Fixed ChangeWeapon not changing during combat
- Fixed holster/unholster on NPCs without holster/unholster animations
- Fixed func_tank and other "player in the way" code ignoring notarget
- Added SetPoseParameter input to animating entities
- Introduced an experimental chapter system which allows for custom chapter title/restriction management
- Added SetChapterTitle input to worldspawn for dynamic title changing
- Fixed func_tankairboatgun damage credit, added ability to use its damage keyvalues
- Fixed mapbase_rpc_enabled not actually affecting RPC
- Moved some newly found Combine soldier grenade code to ai_grenade for other grenade users
- Fixed some problems with the new shared activities
- Restored an old Mapbase entity as "prop_interactable", an entity which contains all of the functionality of a func_button/func_door in a prop entity
- Added env_microphone pitch scale for scaling the pitch of transmitted sounds
- Added experimental, long-overdue code for scenes to be able to access !target#'s and other scene-related names through AI_INPUT
- Added "mat_specular_disable_on_missing", which "disables" specular reflections when the cubemap texture is missing
- Fixed $envmapmasktransform and $bumptransform on VertexLitGeneric and related shaders
- Areaportal leaks now stop compilation in leaktest
- Replaced "-nodefaultcubemap" with "-defaultcubemap" as the shader changes allow maps to compile without default cubemaps by default with little effect
2020-02-05 19:08:49 +00:00

99 lines
2.4 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: The worldspawn entity. This spawns first when each level begins.
//
// $NoKeywords: $
//=============================================================================//
#ifndef WORLD_H
#define WORLD_H
#ifdef _WIN32
#pragma once
#endif
class CWorld : public CBaseEntity
{
public:
DECLARE_CLASS( CWorld, CBaseEntity );
CWorld();
~CWorld();
DECLARE_SERVERCLASS();
virtual int RequiredEdictIndex( void ) { return 0; } // the world always needs to be in slot 0
static void RegisterSharedActivities( void );
static void RegisterSharedEvents( void );
virtual void Spawn( void );
virtual void Precache( void );
virtual bool KeyValue( const char *szKeyName, const char *szValue );
virtual void DecalTrace( trace_t *pTrace, char const *decalName );
virtual void VPhysicsCollision( int index, gamevcollisionevent_t *pEvent ) {}
virtual void VPhysicsFriction( IPhysicsObject *pObject, float energy, int surfaceProps, int surfacePropsHit ) {}
inline void GetWorldBounds( Vector &vecMins, Vector &vecMaxs )
{
VectorCopy( m_WorldMins, vecMins );
VectorCopy( m_WorldMaxs, vecMaxs );
}
inline float GetWaveHeight() const
{
return (float)m_flWaveHeight;
}
bool GetDisplayTitle() const;
bool GetStartDark() const;
void SetDisplayTitle( bool display );
void SetStartDark( bool startdark );
bool IsColdWorld( void );
#ifdef MAPBASE
inline const char *GetChapterTitle()
{
return STRING(m_iszChapterTitle.Get());
}
void InputSetChapterTitle( inputdata_t &inputdata );
#endif
private:
DECLARE_DATADESC();
#ifdef MAPBASE
// Now needs to show up on the client for RPC
CNetworkVar( string_t, m_iszChapterTitle );
// Suppresses m_iszChapterTitle's env_message creation,
// allowing it to only be used for saves and RPC
bool m_bChapterTitleNoMessage;
#else
string_t m_iszChapterTitle;
#endif
CNetworkVar( float, m_flWaveHeight );
CNetworkVector( m_WorldMins );
CNetworkVector( m_WorldMaxs );
CNetworkVar( float, m_flMaxOccludeeArea );
CNetworkVar( float, m_flMinOccluderArea );
CNetworkVar( float, m_flMinPropScreenSpaceWidth );
CNetworkVar( float, m_flMaxPropScreenSpaceWidth );
CNetworkVar( string_t, m_iszDetailSpriteMaterial );
// start flags
CNetworkVar( bool, m_bStartDark );
CNetworkVar( bool, m_bColdWorld );
bool m_bDisplayTitle;
};
CWorld* GetWorldEntity();
extern const char *GetDefaultLightstyleString( int styleIndex );
#endif // WORLD_H