Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright 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; }
|