diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /sp/src/game/server/doors.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'sp/src/game/server/doors.h')
| -rw-r--r-- | sp/src/game/server/doors.h | 324 |
1 files changed, 162 insertions, 162 deletions
diff --git a/sp/src/game/server/doors.h b/sp/src/game/server/doors.h index 0a545ecf..7658482c 100644 --- a/sp/src/game/server/doors.h +++ b/sp/src/game/server/doors.h @@ -1,162 +1,162 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef DOORS_H
-#define DOORS_H
-#pragma once
-
-
-#include "locksounds.h"
-#include "entityoutput.h"
-
-//Since I'm here, might as well explain how these work. Base.fgd is the file that connects
-//flags to entities. It is full of lines with this number, a label, and a default value.
-//Voila, dynamicly generated checkboxes on the Flags tab of Entity Properties.
-
-// doors
-#define SF_DOOR_ROTATE_YAW 0 // yaw by default
-#define SF_DOOR_START_OPEN_OBSOLETE 1
-#define SF_DOOR_ROTATE_BACKWARDS 2
-#define SF_DOOR_NONSOLID_TO_PLAYER 4
-#define SF_DOOR_PASSABLE 8
-#define SF_DOOR_ONEWAY 16
-#define SF_DOOR_NO_AUTO_RETURN 32
-#define SF_DOOR_ROTATE_ROLL 64
-#define SF_DOOR_ROTATE_PITCH 128
-#define SF_DOOR_PUSE 256 // door can be opened by player's use button.
-#define SF_DOOR_NONPCS 512 // NPC can't open
-#define SF_DOOR_PTOUCH 1024 // player touch opens
-#define SF_DOOR_LOCKED 2048 // Door is initially locked
-#define SF_DOOR_SILENT 4096 // Door plays no audible sound, and does not alert NPCs when opened
-#define SF_DOOR_USE_CLOSES 8192 // Door can be +used to close before its autoreturn delay has expired.
-#define SF_DOOR_SILENT_TO_NPCS 16384 // Does not alert NPC's when opened.
-#define SF_DOOR_IGNORE_USE 32768 // Completely ignores player +use commands.
-#define SF_DOOR_NEW_USE_RULES 65536 // For func_door entities, behave more like prop_door_rotating with respect to +USE (changelist 242482)
-
-
-enum FuncDoorSpawnPos_t
-{
- FUNC_DOOR_SPAWN_CLOSED = 0,
- FUNC_DOOR_SPAWN_OPEN,
-};
-
-
-class CBaseDoor : public CBaseToggle
-{
-public:
- DECLARE_CLASS( CBaseDoor, CBaseToggle );
-
- DECLARE_SERVERCLASS();
-
- void Spawn( void );
- void Precache( void );
- bool CreateVPhysics();
- bool KeyValue( const char *szKeyName, const char *szValue );
- virtual void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
-
- virtual void StartBlocked( CBaseEntity *pOther );
- virtual void Blocked( CBaseEntity *pOther );
- virtual void EndBlocked( void );
-
- void Activate( void );
-
- virtual int ObjectCaps( void )
- {
- int flags = BaseClass::ObjectCaps();
- if ( HasSpawnFlags( SF_DOOR_PUSE ) )
- return flags | FCAP_IMPULSE_USE | FCAP_USE_IN_RADIUS;
-
- return flags;
- };
-
- DECLARE_DATADESC();
-
- // This is ONLY used by the node graph to test movement through a door
- void InputSetToggleState( inputdata_t &inputdata );
- virtual void SetToggleState( int state );
-
- virtual bool IsRotatingDoor() { return false; }
- virtual bool ShouldSavePhysics();
- // used to selectivly override defaults
- void DoorTouch( CBaseEntity *pOther );
-
- // local functions
- int DoorActivate( );
- void DoorGoUp( void );
- void DoorGoDown( void );
- void DoorHitTop( void );
- void DoorHitBottom( void );
- void UpdateAreaPortals( bool isOpen );
- void Unlock( void );
- void Lock( void );
- int GetDoorMovementGroup( CBaseDoor *pDoorList[], int listMax );
-
- // Input handlers
- void InputClose( inputdata_t &inputdata );
- void InputLock( inputdata_t &inputdata );
- void InputOpen( inputdata_t &inputdata );
- void InputToggle( inputdata_t &inputdata );
- void InputUnlock( inputdata_t &inputdata );
- void InputSetSpeed( inputdata_t &inputdata );
-
- Vector m_vecMoveDir; // The direction of motion for linear moving doors.
-
- locksound_t m_ls; // door lock sounds
-
- byte m_bLockedSentence;
- byte m_bUnlockedSentence;
-
- bool m_bForceClosed; // If set, always close, even if we're blocked.
- bool m_bDoorGroup;
- bool m_bLocked; // Whether the door is locked
- bool m_bIgnoreDebris;
- bool m_bIgnoreNonPlayerEntsOnBlock; // Non-player entities should never block. This variable needs more letters.
-
- FuncDoorSpawnPos_t m_eSpawnPosition;
-
- float m_flBlockDamage; // Damage inflicted when blocked.
- string_t m_NoiseMoving; //Start/Looping sound
- string_t m_NoiseArrived; //End sound
- string_t m_NoiseMovingClosed; //Start/Looping sound
- string_t m_NoiseArrivedClosed; //End sound
- string_t m_ChainTarget; ///< Entity name to pass Touch and Use events to
-
- CNetworkVar( float, m_flWaveHeight );
-
- // Outputs
- COutputEvent m_OnBlockedClosing; // Triggered when the door becomes blocked while closing.
- COutputEvent m_OnBlockedOpening; // Triggered when the door becomes blocked while opening.
- COutputEvent m_OnUnblockedClosing; // Triggered when the door becomes unblocked while closing.
- COutputEvent m_OnUnblockedOpening; // Triggered when the door becomes unblocked while opening.
- COutputEvent m_OnFullyClosed; // Triggered when the door reaches the fully closed position.
- COutputEvent m_OnFullyOpen; // Triggered when the door reaches the fully open position.
- COutputEvent m_OnClose; // Triggered when the door is told to close.
- COutputEvent m_OnOpen; // Triggered when the door is told to open.
- COutputEvent m_OnLockedUse; // Triggered when the user tries to open a locked door.
-
- void StartMovingSound( void );
- virtual void StopMovingSound( void );
- void MovingSoundThink( void );
-#ifdef HL1_DLL
- bool PassesBlockTouchFilter(CBaseEntity *pOther);
- string_t m_iBlockFilterName;
- EHANDLE m_hBlockFilter;
-#endif
-
- bool ShouldLoopMoveSound( void ) { return m_bLoopMoveSound; }
- bool m_bLoopMoveSound; // Move sound loops until stopped
-
-private:
- void ChainUse( void ); ///< Chains +use on through to m_ChainTarget
- void ChainTouch( CBaseEntity *pOther ); ///< Chains touch on through to m_ChainTarget
- void SetChaining( bool chaining ) { m_isChaining = chaining; } ///< Latch to prevent recursion
- bool m_isChaining;
-
- void CloseAreaPortalsThink( void ); ///< Delays turning off area portals when closing doors to prevent visual artifacts
-};
-
-#endif // DOORS_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef DOORS_H +#define DOORS_H +#pragma once + + +#include "locksounds.h" +#include "entityoutput.h" + +//Since I'm here, might as well explain how these work. Base.fgd is the file that connects +//flags to entities. It is full of lines with this number, a label, and a default value. +//Voila, dynamicly generated checkboxes on the Flags tab of Entity Properties. + +// doors +#define SF_DOOR_ROTATE_YAW 0 // yaw by default +#define SF_DOOR_START_OPEN_OBSOLETE 1 +#define SF_DOOR_ROTATE_BACKWARDS 2 +#define SF_DOOR_NONSOLID_TO_PLAYER 4 +#define SF_DOOR_PASSABLE 8 +#define SF_DOOR_ONEWAY 16 +#define SF_DOOR_NO_AUTO_RETURN 32 +#define SF_DOOR_ROTATE_ROLL 64 +#define SF_DOOR_ROTATE_PITCH 128 +#define SF_DOOR_PUSE 256 // door can be opened by player's use button. +#define SF_DOOR_NONPCS 512 // NPC can't open +#define SF_DOOR_PTOUCH 1024 // player touch opens +#define SF_DOOR_LOCKED 2048 // Door is initially locked +#define SF_DOOR_SILENT 4096 // Door plays no audible sound, and does not alert NPCs when opened +#define SF_DOOR_USE_CLOSES 8192 // Door can be +used to close before its autoreturn delay has expired. +#define SF_DOOR_SILENT_TO_NPCS 16384 // Does not alert NPC's when opened. +#define SF_DOOR_IGNORE_USE 32768 // Completely ignores player +use commands. +#define SF_DOOR_NEW_USE_RULES 65536 // For func_door entities, behave more like prop_door_rotating with respect to +USE (changelist 242482) + + +enum FuncDoorSpawnPos_t +{ + FUNC_DOOR_SPAWN_CLOSED = 0, + FUNC_DOOR_SPAWN_OPEN, +}; + + +class CBaseDoor : public CBaseToggle +{ +public: + DECLARE_CLASS( CBaseDoor, CBaseToggle ); + + DECLARE_SERVERCLASS(); + + void Spawn( void ); + void Precache( void ); + bool CreateVPhysics(); + bool KeyValue( const char *szKeyName, const char *szValue ); + virtual void Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value ); + + virtual void StartBlocked( CBaseEntity *pOther ); + virtual void Blocked( CBaseEntity *pOther ); + virtual void EndBlocked( void ); + + void Activate( void ); + + virtual int ObjectCaps( void ) + { + int flags = BaseClass::ObjectCaps(); + if ( HasSpawnFlags( SF_DOOR_PUSE ) ) + return flags | FCAP_IMPULSE_USE | FCAP_USE_IN_RADIUS; + + return flags; + }; + + DECLARE_DATADESC(); + + // This is ONLY used by the node graph to test movement through a door + void InputSetToggleState( inputdata_t &inputdata ); + virtual void SetToggleState( int state ); + + virtual bool IsRotatingDoor() { return false; } + virtual bool ShouldSavePhysics(); + // used to selectivly override defaults + void DoorTouch( CBaseEntity *pOther ); + + // local functions + int DoorActivate( ); + void DoorGoUp( void ); + void DoorGoDown( void ); + void DoorHitTop( void ); + void DoorHitBottom( void ); + void UpdateAreaPortals( bool isOpen ); + void Unlock( void ); + void Lock( void ); + int GetDoorMovementGroup( CBaseDoor *pDoorList[], int listMax ); + + // Input handlers + void InputClose( inputdata_t &inputdata ); + void InputLock( inputdata_t &inputdata ); + void InputOpen( inputdata_t &inputdata ); + void InputToggle( inputdata_t &inputdata ); + void InputUnlock( inputdata_t &inputdata ); + void InputSetSpeed( inputdata_t &inputdata ); + + Vector m_vecMoveDir; // The direction of motion for linear moving doors. + + locksound_t m_ls; // door lock sounds + + byte m_bLockedSentence; + byte m_bUnlockedSentence; + + bool m_bForceClosed; // If set, always close, even if we're blocked. + bool m_bDoorGroup; + bool m_bLocked; // Whether the door is locked + bool m_bIgnoreDebris; + bool m_bIgnoreNonPlayerEntsOnBlock; // Non-player entities should never block. This variable needs more letters. + + FuncDoorSpawnPos_t m_eSpawnPosition; + + float m_flBlockDamage; // Damage inflicted when blocked. + string_t m_NoiseMoving; //Start/Looping sound + string_t m_NoiseArrived; //End sound + string_t m_NoiseMovingClosed; //Start/Looping sound + string_t m_NoiseArrivedClosed; //End sound + string_t m_ChainTarget; ///< Entity name to pass Touch and Use events to + + CNetworkVar( float, m_flWaveHeight ); + + // Outputs + COutputEvent m_OnBlockedClosing; // Triggered when the door becomes blocked while closing. + COutputEvent m_OnBlockedOpening; // Triggered when the door becomes blocked while opening. + COutputEvent m_OnUnblockedClosing; // Triggered when the door becomes unblocked while closing. + COutputEvent m_OnUnblockedOpening; // Triggered when the door becomes unblocked while opening. + COutputEvent m_OnFullyClosed; // Triggered when the door reaches the fully closed position. + COutputEvent m_OnFullyOpen; // Triggered when the door reaches the fully open position. + COutputEvent m_OnClose; // Triggered when the door is told to close. + COutputEvent m_OnOpen; // Triggered when the door is told to open. + COutputEvent m_OnLockedUse; // Triggered when the user tries to open a locked door. + + void StartMovingSound( void ); + virtual void StopMovingSound( void ); + void MovingSoundThink( void ); +#ifdef HL1_DLL + bool PassesBlockTouchFilter(CBaseEntity *pOther); + string_t m_iBlockFilterName; + EHANDLE m_hBlockFilter; +#endif + + bool ShouldLoopMoveSound( void ) { return m_bLoopMoveSound; } + bool m_bLoopMoveSound; // Move sound loops until stopped + +private: + void ChainUse( void ); ///< Chains +use on through to m_ChainTarget + void ChainTouch( CBaseEntity *pOther ); ///< Chains touch on through to m_ChainTarget + void SetChaining( bool chaining ) { m_isChaining = chaining; } ///< Latch to prevent recursion + bool m_isChaining; + + void CloseAreaPortalsThink( void ); ///< Delays turning off area portals when closing doors to prevent visual artifacts +}; + +#endif // DOORS_H |