mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 20:16:10 +08:00
Added most recent version of unmodified HL2 SDK for Orange Box engine
This commit is contained in:
68
game/server/func_ladder_endpoint.cpp
Normal file
68
game/server/func_ladder_endpoint.cpp
Normal file
@ -0,0 +1,68 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
//=============================================================================//
|
||||
#include "cbase.h"
|
||||
#include "func_ladder.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: A transient entity used to construct a true CFuncLadder
|
||||
// FIXME: THIS ENTITY IS OBSOLETE NOW, SHOULD BE REMOVED FROM HERE AND .FGD AT SOME POINT!!!
|
||||
//-----------------------------------------------------------------------------
|
||||
class CFuncLadderEndPoint : public CBaseEntity
|
||||
{
|
||||
public:
|
||||
DECLARE_CLASS( CFuncLadderEndPoint, CBaseEntity );
|
||||
|
||||
virtual void Activate();
|
||||
|
||||
private:
|
||||
bool Validate();
|
||||
};
|
||||
|
||||
LINK_ENTITY_TO_CLASS( func_ladderendpoint, CFuncLadderEndPoint );
|
||||
|
||||
void CFuncLadderEndPoint::Activate()
|
||||
{
|
||||
BaseClass::Activate();
|
||||
|
||||
if ( IsMarkedForDeletion() )
|
||||
return;
|
||||
|
||||
Validate();
|
||||
}
|
||||
|
||||
bool CFuncLadderEndPoint::Validate()
|
||||
{
|
||||
// Find the the other end
|
||||
Vector startPos = GetAbsOrigin();
|
||||
|
||||
CFuncLadderEndPoint *other = dynamic_cast< CFuncLadderEndPoint * >( GetNextTarget() );
|
||||
if ( !other )
|
||||
{
|
||||
DevMsg( 1, "func_ladderendpoint(%s) without matching target\n", GetEntityName().ToCStr() );
|
||||
return false;
|
||||
}
|
||||
|
||||
Vector endPos = other->GetAbsOrigin();
|
||||
|
||||
CFuncLadder *ladder = ( CFuncLadder * )CreateEntityByName( "func_useableladder" );
|
||||
if ( ladder )
|
||||
{
|
||||
ladder->SetEndPoints( startPos, endPos );
|
||||
ladder->SetAbsOrigin( GetAbsOrigin() );
|
||||
ladder->SetParent( GetParent() );
|
||||
ladder->SetName( GetEntityName() );
|
||||
ladder->Spawn();
|
||||
}
|
||||
|
||||
// Delete both endpoints
|
||||
UTIL_Remove( other );
|
||||
UTIL_Remove( this );
|
||||
|
||||
return true;
|
||||
}
|
Reference in New Issue
Block a user