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 /mp/src/game/shared/hl2/env_headcrabcanister_shared.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 'mp/src/game/shared/hl2/env_headcrabcanister_shared.h')
| -rw-r--r-- | mp/src/game/shared/hl2/env_headcrabcanister_shared.h | 360 |
1 files changed, 180 insertions, 180 deletions
diff --git a/mp/src/game/shared/hl2/env_headcrabcanister_shared.h b/mp/src/game/shared/hl2/env_headcrabcanister_shared.h index 252934e3..d5f2f7c5 100644 --- a/mp/src/game/shared/hl2/env_headcrabcanister_shared.h +++ b/mp/src/game/shared/hl2/env_headcrabcanister_shared.h @@ -1,180 +1,180 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#ifndef ENV_HEADCRABCANISTER_SHARED_H
-#define ENV_HEADCRABCANISTER_SHARED_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "vstdlib/random.h"
-#include "mathlib/vector.h"
-#include "utlvector.h"
-#include "networkvar.h"
-
-//=============================================================================
-//
-// Shared HeadcrabCanister Class
-//
-class CEnvHeadcrabCanisterShared
-{
- DECLARE_CLASS_NOBASE( CEnvHeadcrabCanisterShared );
- DECLARE_EMBEDDED_NETWORKVAR();
- DECLARE_SIMPLE_DATADESC();
-
-public:
- CEnvHeadcrabCanisterShared();
-
- // Initialization.
- void InitInWorld( float flLaunchTime, const Vector &vecStartPosition, const QAngle &vecStartAngles, const Vector &vecDirection, const Vector &vecImpactPosition, bool bLaunchedFromWithinWorld = false );
- void InitInSkybox( float flLaunchTime, const Vector &vecStartPosition, const QAngle &vecStartAngles, const Vector &vecDirection, const Vector &vecImpactPosition, const Vector &vecSkyboxOrigin, float flSkyboxScale );
-
- // Returns the position of the object at a given time.
- void GetPositionAtTime( float flTime, Vector &vecPosition, QAngle &vecAngles );
-
- // Returns whether or not the object is the the skybox
- bool IsInSkybox( );
-
- // Returns the time at which it enters the world
- float GetEnterWorldTime() const;
-
- // Convert from skybox to world
- void ConvertFromSkyboxToWorld();
-
- // Did we impact?
- bool DidImpact( float flTime ) const;
-
-public:
- // The objects initial parametric conditions.
- CNetworkVector( m_vecStartPosition );
- CNetworkVector( m_vecEnterWorldPosition );
- CNetworkVector( m_vecDirection );
- CNetworkQAngle( m_vecStartAngles );
-
- CNetworkVar( float, m_flFlightTime );
- CNetworkVar( float, m_flFlightSpeed );
- CNetworkVar( float, m_flLaunchTime );
-
- CNetworkVar( float, m_flInitialZSpeed );
- CNetworkVar( float, m_flZAcceleration );
- CNetworkVar( float, m_flHorizSpeed );
-
- CNetworkVar( bool, m_bLaunchedFromWithinWorld );
-
- CNetworkVector( m_vecParabolaDirection );
-
- // The time at which the canister enters the skybox
- CNetworkVar( float, m_flWorldEnterTime );
-
- // Skybox data
- CNetworkVector( m_vecSkyboxOrigin );
- CNetworkVar( float, m_flSkyboxScale );
- CNetworkVar( bool, m_bInSkybox );
-
-private:
- float m_flLaunchHeight;
-
- // Calculate the enter time. (called from Init)
- void CalcEnterTime( const Vector &vecTriggerMins, const Vector &vecTriggerMaxs );
-
- friend class CEnvHeadcrabCanister;
- friend class C_EnvHeadcrabCanister;
-};
-
-/*
-//=============================================================================
-//
-// HeadcrabCanister Factory Interface
-//
-abstract_class IHeadcrabCanisterFactory
-{
-public:
-
- virtual void CreateHeadcrabCanister( int nID, int iType,
- const Vector &vecPosition, const Vector &vecDirection,
- float flSpeed, float flStartTime, float flDamageRadius,
- const Vector &vecTriggerMins, const Vector &vecTriggerMaxs ) = 0;
-};
-
-//=============================================================================
-//
-// Shared HeadcrabCanister Spawner Class
-//
-class CEnvHeadcrabCanisterSpawnerShared
-{
-public:
- DECLARE_CLASS_NOBASE( CEnvHeadcrabCanisterSpawnerShared );
- DECLARE_EMBEDDED_NETWORKVAR();
-
- //-------------------------------------------------------------------------
- // Initialization.
- //-------------------------------------------------------------------------
- CEnvHeadcrabCanisterSpawnerShared();
- void Init( IHeadcrabCanisterFactory *pFactory, int nRandomSeed, float flTime,
- const Vector &vecMinBounds, const Vector &vecMaxBounds,
- const Vector &vecTriggerMins, const Vector &vecTriggerMaxs );
-
- //-------------------------------------------------------------------------
- // Method to generate HeadcrabCanisters.
- // Time passed in here is global time, not delta time.
- // The function returns the time at which it must be called again.
- //-------------------------------------------------------------------------
- float HeadcrabCanisterThink( float flTime );
-
- //-------------------------------------------------------------------------
- // Add HeadcrabCanister target data, used to determine HeadcrabCanister travel direction.
- //-------------------------------------------------------------------------
- void AddToTargetList( const Vector &vecPosition, float flRadius );
-
- // Debugging!
- int GetRandomInt( int nMin, int nMax );
- float GetRandomFloat( float flMin, float flMax );
-
-public:
-
- // Factory.
- IHeadcrabCanisterFactory *m_pFactory; // HeadcrabCanister creation factory.
-
- int m_nHeadcrabCanisterCount; // Number of HeadcrabCanisters created - used as IDs
-
- // Initial spawner data.
- CNetworkVar( float, m_flStartTime ); // Start time.
- CNetworkVar( int, m_nRandomSeed ); // The random number stream seed.
-
- CNetworkVar( int, m_iHeadcrabCanisterType ); // Type of HeadcrabCanister.
- float m_flHeadcrabCanisterDamageRadius; // HeadcrabCanister damage radius.
- CNetworkVar( bool, m_bSkybox ); // Is the spawner in the skybox?
-
- CNetworkVar( float, m_flMinSpawnTime ); // Spawn time - Min
- CNetworkVar( float, m_flMaxSpawnTime ); // Max
- CNetworkVar( int, m_nMinSpawnCount ); // Number of HeadcrabCanisters to spawn - Min
- CNetworkVar( int, m_nMaxSpawnCount ); // Max
- CNetworkVector( m_vecMinBounds ); // Spawner volume (space) - Min
- CNetworkVector( m_vecMaxBounds ); // Max
- CNetworkVar( float, m_flMinSpeed ); // HeadcrabCanister speed - Min
- CNetworkVar( float, m_flMaxSpeed ); // Max
- CNetworkVector( m_vecTriggerMins ); // World Bounds (Trigger) in 3D Skybox - Min
- CNetworkVector( m_vecTriggerMaxs ); // Max
- Vector m_vecTriggerCenter;
-
- // Generated data.
- int m_nRandomCallCount; // Debug! Keep track of number steam calls.
- float m_flNextSpawnTime; // Next HeadcrabCanister spawn time (random).
- CUniformRandomStream m_NumberStream; // Used to generate random numbers.
-
- // Use "Targets" to determine HeadcrabCanister direction(s).
- struct HeadcrabCanistertarget_t
- {
- Vector m_vecPosition;
- float m_flRadius;
- };
- CUtlVector<HeadcrabCanistertarget_t> m_aTargets;
-};
-*/
-
-#endif // ENV_HEADCRAB_CANISTER_SHARED_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef ENV_HEADCRABCANISTER_SHARED_H +#define ENV_HEADCRABCANISTER_SHARED_H + +#ifdef _WIN32 +#pragma once +#endif + +#include "vstdlib/random.h" +#include "mathlib/vector.h" +#include "utlvector.h" +#include "networkvar.h" + +//============================================================================= +// +// Shared HeadcrabCanister Class +// +class CEnvHeadcrabCanisterShared +{ + DECLARE_CLASS_NOBASE( CEnvHeadcrabCanisterShared ); + DECLARE_EMBEDDED_NETWORKVAR(); + DECLARE_SIMPLE_DATADESC(); + +public: + CEnvHeadcrabCanisterShared(); + + // Initialization. + void InitInWorld( float flLaunchTime, const Vector &vecStartPosition, const QAngle &vecStartAngles, const Vector &vecDirection, const Vector &vecImpactPosition, bool bLaunchedFromWithinWorld = false ); + void InitInSkybox( float flLaunchTime, const Vector &vecStartPosition, const QAngle &vecStartAngles, const Vector &vecDirection, const Vector &vecImpactPosition, const Vector &vecSkyboxOrigin, float flSkyboxScale ); + + // Returns the position of the object at a given time. + void GetPositionAtTime( float flTime, Vector &vecPosition, QAngle &vecAngles ); + + // Returns whether or not the object is the the skybox + bool IsInSkybox( ); + + // Returns the time at which it enters the world + float GetEnterWorldTime() const; + + // Convert from skybox to world + void ConvertFromSkyboxToWorld(); + + // Did we impact? + bool DidImpact( float flTime ) const; + +public: + // The objects initial parametric conditions. + CNetworkVector( m_vecStartPosition ); + CNetworkVector( m_vecEnterWorldPosition ); + CNetworkVector( m_vecDirection ); + CNetworkQAngle( m_vecStartAngles ); + + CNetworkVar( float, m_flFlightTime ); + CNetworkVar( float, m_flFlightSpeed ); + CNetworkVar( float, m_flLaunchTime ); + + CNetworkVar( float, m_flInitialZSpeed ); + CNetworkVar( float, m_flZAcceleration ); + CNetworkVar( float, m_flHorizSpeed ); + + CNetworkVar( bool, m_bLaunchedFromWithinWorld ); + + CNetworkVector( m_vecParabolaDirection ); + + // The time at which the canister enters the skybox + CNetworkVar( float, m_flWorldEnterTime ); + + // Skybox data + CNetworkVector( m_vecSkyboxOrigin ); + CNetworkVar( float, m_flSkyboxScale ); + CNetworkVar( bool, m_bInSkybox ); + +private: + float m_flLaunchHeight; + + // Calculate the enter time. (called from Init) + void CalcEnterTime( const Vector &vecTriggerMins, const Vector &vecTriggerMaxs ); + + friend class CEnvHeadcrabCanister; + friend class C_EnvHeadcrabCanister; +}; + +/* +//============================================================================= +// +// HeadcrabCanister Factory Interface +// +abstract_class IHeadcrabCanisterFactory +{ +public: + + virtual void CreateHeadcrabCanister( int nID, int iType, + const Vector &vecPosition, const Vector &vecDirection, + float flSpeed, float flStartTime, float flDamageRadius, + const Vector &vecTriggerMins, const Vector &vecTriggerMaxs ) = 0; +}; + +//============================================================================= +// +// Shared HeadcrabCanister Spawner Class +// +class CEnvHeadcrabCanisterSpawnerShared +{ +public: + DECLARE_CLASS_NOBASE( CEnvHeadcrabCanisterSpawnerShared ); + DECLARE_EMBEDDED_NETWORKVAR(); + + //------------------------------------------------------------------------- + // Initialization. + //------------------------------------------------------------------------- + CEnvHeadcrabCanisterSpawnerShared(); + void Init( IHeadcrabCanisterFactory *pFactory, int nRandomSeed, float flTime, + const Vector &vecMinBounds, const Vector &vecMaxBounds, + const Vector &vecTriggerMins, const Vector &vecTriggerMaxs ); + + //------------------------------------------------------------------------- + // Method to generate HeadcrabCanisters. + // Time passed in here is global time, not delta time. + // The function returns the time at which it must be called again. + //------------------------------------------------------------------------- + float HeadcrabCanisterThink( float flTime ); + + //------------------------------------------------------------------------- + // Add HeadcrabCanister target data, used to determine HeadcrabCanister travel direction. + //------------------------------------------------------------------------- + void AddToTargetList( const Vector &vecPosition, float flRadius ); + + // Debugging! + int GetRandomInt( int nMin, int nMax ); + float GetRandomFloat( float flMin, float flMax ); + +public: + + // Factory. + IHeadcrabCanisterFactory *m_pFactory; // HeadcrabCanister creation factory. + + int m_nHeadcrabCanisterCount; // Number of HeadcrabCanisters created - used as IDs + + // Initial spawner data. + CNetworkVar( float, m_flStartTime ); // Start time. + CNetworkVar( int, m_nRandomSeed ); // The random number stream seed. + + CNetworkVar( int, m_iHeadcrabCanisterType ); // Type of HeadcrabCanister. + float m_flHeadcrabCanisterDamageRadius; // HeadcrabCanister damage radius. + CNetworkVar( bool, m_bSkybox ); // Is the spawner in the skybox? + + CNetworkVar( float, m_flMinSpawnTime ); // Spawn time - Min + CNetworkVar( float, m_flMaxSpawnTime ); // Max + CNetworkVar( int, m_nMinSpawnCount ); // Number of HeadcrabCanisters to spawn - Min + CNetworkVar( int, m_nMaxSpawnCount ); // Max + CNetworkVector( m_vecMinBounds ); // Spawner volume (space) - Min + CNetworkVector( m_vecMaxBounds ); // Max + CNetworkVar( float, m_flMinSpeed ); // HeadcrabCanister speed - Min + CNetworkVar( float, m_flMaxSpeed ); // Max + CNetworkVector( m_vecTriggerMins ); // World Bounds (Trigger) in 3D Skybox - Min + CNetworkVector( m_vecTriggerMaxs ); // Max + Vector m_vecTriggerCenter; + + // Generated data. + int m_nRandomCallCount; // Debug! Keep track of number steam calls. + float m_flNextSpawnTime; // Next HeadcrabCanister spawn time (random). + CUniformRandomStream m_NumberStream; // Used to generate random numbers. + + // Use "Targets" to determine HeadcrabCanister direction(s). + struct HeadcrabCanistertarget_t + { + Vector m_vecPosition; + float m_flRadius; + }; + CUtlVector<HeadcrabCanistertarget_t> m_aTargets; +}; +*/ + +#endif // ENV_HEADCRAB_CANISTER_SHARED_H |