sqwarmed/sdk_src/game/server/swarm/asw_door_padding.cpp

129 lines
3.1 KiB
C++
Raw Normal View History

2024-08-29 19:18:30 -04:00
#include "cbase.h"
#include "asw_door_padding.h"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
BEGIN_DATADESC(CASW_Door_Padding)
END_DATADESC()
LINK_ENTITY_TO_CLASS(asw_door_padding, CASW_Door_Padding);
PRECACHE_REGISTER( asw_door_padding );
#define SINGLE_DOOR_PADDING "models/swarm/doors/swarm_singledoor_padding.mdl"
CASW_Door_Padding::~CASW_Door_Padding( void )
{
}
void CASW_Door_Padding::Spawn()
{
BaseClass::Spawn();
SetCollisionGroup(ASW_COLLISION_GROUP_BLOCK_DRONES);
SetModel( SINGLE_DOOR_PADDING );
AddEffects( EF_NODRAW );
SetSolid(SOLID_VPHYSICS);
VPhysicsInitShadow(false, false);
}
void CASW_Door_Padding::Precache()
{
PrecacheModel(SINGLE_DOOR_PADDING);
BaseClass::Precache();
}
void CASW_Door_Padding::OnRestore( void )
{
BaseClass::OnRestore();
}
CASW_Door_Padding* CASW_Door_Padding::CreateDoorPadding( CASW_Door *pDoor )
{
if (!pDoor || !pDoor->CollisionProp())
return NULL;
CASW_Door_Padding *pPadding = (CASW_Door_Padding *)CreateEntityByName( "asw_door_padding" );
//pPadding->SetAbsAngles( pDoor->GetAbsAngles() );
//pPadding->SetAbsOrigin( pDoor->GetAbsOrigin() );
pPadding->Spawn();
pPadding->SetOwnerEntity( pDoor );
pPadding->SetParent(pDoor);
pPadding->SetLocalOrigin(vec3_origin);
pPadding->SetLocalAngles(QAngle(0,90,0));
UTIL_SetOrigin( pDoor, pDoor->GetAbsOrigin() );
return pPadding;
}
// ==========================================================================
BEGIN_DATADESC(CASW_Fallen_Door_Padding)
END_DATADESC()
LINK_ENTITY_TO_CLASS(asw_fallen_door_padding, CASW_Fallen_Door_Padding);
PRECACHE_REGISTER( asw_fallen_door_padding );
#define SINGLE_DOOR_FALLEN "models/swarm/doors/swarm_singledoor_fallen_padding.mdl"
void CASW_Fallen_Door_Padding::Spawn()
{
BaseClass::BaseClass::Spawn();
SetCollisionGroup(COLLISION_GROUP_NONE);
SetModel( SINGLE_DOOR_FALLEN );
AddEffects( EF_NODRAW );
SetSolid(SOLID_VPHYSICS);
VPhysicsInitShadow(false, false);
}
void CASW_Fallen_Door_Padding::Precache()
{
PrecacheModel(SINGLE_DOOR_FALLEN);
BaseClass::Precache();
}
CASW_Fallen_Door_Padding* CASW_Fallen_Door_Padding::CreateFallenDoorPadding( CASW_Door *pDoor )
{
if (!pDoor || !pDoor->CollisionProp())
return NULL;
CASW_Fallen_Door_Padding *pPadding = (CASW_Fallen_Door_Padding *)CreateEntityByName( "asw_fallen_door_padding" );
QAngle ang = pDoor->GetAbsAngles();
if ( pDoor->DoorNeedsFlip())
ang[YAW] -= 180;
if (pDoor->m_bFlipped)
ang[YAW] -= 90;
else
ang[YAW] += 90;
pPadding->SetAbsAngles( ang );
Vector vecPos = pDoor->GetAbsOrigin();
//vecPos.z -= 15;
pPadding->SetAbsOrigin( vecPos );
pPadding->Spawn();
//pPadding->SetOwnerEntity( pDoor );
//UTIL_SetOrigin( pPadding, pDoor->GetAbsOrigin() );
return pPadding;
}
int CASW_Fallen_Door_Padding::ShouldTransmit( const CCheckTransmitInfo *pInfo )
{
return FL_EDICT_ALWAYS;
}
int CASW_Fallen_Door_Padding::UpdateTransmitState()
{
return SetTransmitState( FL_EDICT_ALWAYS );
}