//----------------------------------------------------------------------------- // Purpose: // Input : check - //----------------------------------------------------------------------------- void C_BaseEntity::SetCheckUntouch( bool check ) { // Invalidate touchstamp if ( check ) { touchStamp++; AddEFlags( EFL_CHECK_UNTOUCH ); } else { RemoveEFlags( EFL_CHECK_UNTOUCH ); } }
//----------------------------------------------------------------------------- // Purpose: the entity //----------------------------------------------------------------------------- void CNPC_RocketTurret::Spawn( void ) { Precache(); BaseClass::Spawn(); SetViewOffset( vec3_origin ); AddEFlags( EFL_NO_DISSOLVE ); SetModel( ROCKET_TURRET_MODEL_NAME ); SetSolid( SOLID_VPHYSICS ); m_iMuzzleAttachment = LookupAttachment ( "barrel" ); m_iLightAttachment = LookupAttachment ( "eye" ); m_iPosePitch = LookupPoseParameter( "aim_pitch" ); m_iPoseYaw = LookupPoseParameter( "aim_yaw" ); m_vecCurrentAngles = m_vecGoalAngles = GetAbsAngles(); CreateVPhysics(); //Set our autostart state m_bEnabled = ( ( m_spawnflags & SF_ROCKET_TURRET_START_INACTIVE ) == false ); // Set Locked sprite if ( m_bEnabled ) { m_iLaserState = 1; SetSequence(LookupSequence("idle")); } else { m_iLaserState = 0; SetSequence(LookupSequence("inactive")); } SetCycle(1.0f); UpdateSkin( ROCKET_SKIN_IDLE ); SetPoseParameter( "aim_pitch", 0 ); SetPoseParameter( "aim_yaw", -180 ); if ( m_bEnabled ) { SetThink( &CNPC_RocketTurret::FollowThink ); } SetNextThink( gpGlobals->curtime + ROCKET_TURRET_THINK_RATE ); }
//----------------------------------------------------------------------------- // Spawn //----------------------------------------------------------------------------- void CNPC_Hutman::Spawn() { Precache(); m_iHealth = 80; m_iszCombatExpression = m_iszIdleExpression = m_iszAlertExpression = MAKE_STRING( HUTMAN_IDLE_SCENE ); BaseClass::Spawn(); AddEFlags( EFL_NO_DISSOLVE | EFL_NO_MEGAPHYSCANNON_RAGDOLL | EFL_NO_PHYSCANNON_INTERACTION ); NPCInit(); }
//------------------------------------------------------------------------------ // Purpose: //------------------------------------------------------------------------------ void CAmbientGeneric::Activate( void ) { BaseClass::Activate(); // Initialize sound source. If no source was given, or source can't be found // then this is the source if (m_hSoundSource == NULL) { if (m_sSourceEntName != NULL_STRING) { m_hSoundSource = gEntList.FindEntityByName( NULL, m_sSourceEntName ); if ( m_hSoundSource != NULL ) { m_nSoundSourceEntIndex = m_hSoundSource->entindex(); } } if (m_hSoundSource == NULL) { m_hSoundSource = this; m_nSoundSourceEntIndex = entindex(); } else { if ( !FBitSet( m_spawnflags, SF_AMBIENT_SOUND_EVERYWHERE ) ) { AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); } } } // If active start the sound if ( m_fActive ) { SoundFlags_t flags = SND_SPAWNING; // If we are loading a saved game, we can't write into the init/signon buffer here, so just issue // as a regular sound message... if ( gpGlobals->eLoadType == MapLoad_Transition || gpGlobals->eLoadType == MapLoad_LoadGame || g_pGameRules->InRoundRestart() ) { flags = SND_NOFLAGS; } SendSound( flags ); SetNextThink( gpGlobals->curtime + 0.1f ); } }
CWorld::CWorld( ) { AddEFlags( EFL_NO_AUTO_EDICT_ATTACH | EFL_KEEP_ON_RECREATE_ENTITIES ); NetworkProp()->AttachEdict( INDEXENT(RequiredEdictIndex()) ); ActivityList_Init(); EventList_Init(); SetSolid( SOLID_BSP ); SetMoveType( MOVETYPE_NONE ); m_bColdWorld = false; // Set this in the constructor for legacy maps (sjb) m_iTimeOfDay = TIME_MIDNIGHT; }
CFire::CFire( void ) { m_flFuel = 0.0f; m_flAttackTime = 0.0f; m_flDamageTime = 0.0f; m_lastDamage = 0; m_nFireType = FIRE_NATURAL; //Spreading m_flHeatAbsorb = 8.0f; m_flHeatLevel = 0; // Must be in the constructor! AddEFlags( EFL_USE_PARTITION_WHEN_NOT_SOLID ); }
//----------------------------------------------------------------------------- // Spawn... //----------------------------------------------------------------------------- void CVGuiScreen::Spawn() { Precache(); // This has no model, but we want it to transmit if it's in the PVS anyways AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); m_nAttachmentIndex = 0; SetSolid( SOLID_OBB ); AddSolidFlags( FSOLID_NOT_SOLID ); SetActualSize( m_flWidth, m_flHeight ); m_fScreenFlags.Set( VGUI_SCREEN_ACTIVE ); m_takedamage = DAMAGE_NO; AddFlag( FL_NOTARGET ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CTFBaseRocket::Spawn( void ) { // Precache. Precache(); // Client specific. #ifdef CLIENT_DLL m_flSpawnTime = gpGlobals->curtime; BaseClass::Spawn(); // Server specific. #else //Derived classes must have set model. Assert( GetModel() ); string_t strModelOverride = NULL_STRING; CALL_ATTRIB_HOOK_STRING_ON_OTHER( m_hLauncher.Get(), strModelOverride, custom_projectile_model ); if ( strModelOverride != NULL_STRING ) { SetModel( STRING( strModelOverride ) ); } SetSolid( SOLID_BBOX ); SetMoveType( MOVETYPE_FLY, MOVECOLLIDE_FLY_CUSTOM ); AddEFlags( EFL_NO_WATER_VELOCITY_CHANGE ); AddEffects( EF_NOSHADOW ); SetCollisionGroup( TFCOLLISION_GROUP_ROCKETS ); UTIL_SetSize( this, -Vector( 0, 0, 0 ), Vector( 0, 0, 0 ) ); // Setup attributes. m_takedamage = DAMAGE_NO; SetGravity( 0.0f ); // Setup the touch and think functions. SetTouch( &CTFBaseRocket::RocketTouch ); SetThink( &CTFBaseRocket::FlyThink ); SetNextThink( gpGlobals->curtime ); // Don't collide with players on the owner's team for the first bit of our life m_flCollideWithTeammatesTime = gpGlobals->curtime + 0.25; m_bCollideWithTeammates = TFGameRules()->IsDeathmatch() ? true : false; #endif }
CSun::CSun() { m_vDirection.Init( 0, 0, 1 ); m_bUseAngles = false; m_flPitch = 0; m_flYaw = 0; m_nSize = 16; m_bOn = true; AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); m_strMaterial = NULL_STRING; m_strOverlayMaterial = NULL_STRING; m_nOverlaySize = -1; }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CCitadelEnergyCore::Spawn( void ) { Precache(); UTIL_SetSize( this, Vector( -8, -8, -8 ), Vector( 8, 8, 8 ) ); // See if we start active if ( HasSpawnFlags( SF_ENERGYCORE_START_ON ) ) { m_nState = (int)ENERGYCORE_STATE_DISCHARGING; m_flStartTime = gpGlobals->curtime; } // No model but we still need to force this! AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CNPC_Barney::Spawn( void ) { Precache(); m_iHealth = 80; m_iszIdleExpression = MAKE_STRING("scenes/Expressions/BarneyIdle.vcd"); m_iszAlertExpression = MAKE_STRING("scenes/Expressions/BarneyAlert.vcd"); m_iszCombatExpression = MAKE_STRING("scenes/Expressions/BarneyCombat.vcd"); BaseClass::Spawn(); AddEFlags( EFL_NO_DISSOLVE | EFL_NO_MEGAPHYSCANNON_RAGDOLL | EFL_NO_PHYSCANNON_INTERACTION ); NPCInit(); SetUse( &CNPC_Barney::UseFunc ); }
//------------------------------------------------------------------------------ // Spawn //------------------------------------------------------------------------------ void CQUAGrenadeHelicopter::Spawn( void ) { Precache(); // point sized, solid, bouncing SetCollisionGroup( COLLISION_GROUP_PROJECTILE ); SetModel( "models/combine_helicopter/helicopter_bomb01.mdl" ); SetSolid( SOLID_BBOX ); SetCollisionBounds( Vector( -12.5, -12.5, -12.5 ), Vector( 12.5, 12.5, 12.5 ) ); VPhysicsInitShadow( false, false ); SetMoveType( MOVETYPE_FLYGRAVITY, MOVECOLLIDE_FLY_CUSTOM ); SetElasticity( 0.5f ); AddEffects( EF_NOSHADOW ); // We're always being dropped beneath the helicopter; need to not // be affected by the rotor wash AddEFlags( EFL_NO_ROTORWASH_PUSH ); // contact grenades arc lower SetGravity( UTIL_ScaleForGravity( 400 ) ); // use a lower gravity for grenades to make them easier to see QAngle angles; VectorAngles(GetAbsVelocity(), angles ); SetLocalAngles( angles ); SetThink( NULL ); // Tumble in air QAngle vecAngVel( random->RandomFloat ( -100, -500 ), 0, 0 ); SetLocalAngularVelocity( vecAngVel ); // Explode on contact SetTouch( &CQUAGrenadeHelicopter::ExplodeConcussion ); m_bActivated = false; m_pWarnSound = NULL; m_flDamage = 75.0; // Allow player to blow this puppy up in the air m_takedamage = DAMAGE_YES; g_pNotify->AddEntity( this, this ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CNPC_Fisherman::Spawn( void ) { m_iHatLayer = -1; m_iHatState = -1; Precache(); m_iHealth = 80; // m_iszIdleExpression = MAKE_STRING("scenes/Expressions/FishermanIdle.vcd"); // m_iszAlertExpression = MAKE_STRING("scenes/Expressions/FishermanAlert.vcd"); // m_iszCombatExpression = MAKE_STRING("scenes/Expressions/FishermanCombat.vcd"); BaseClass::Spawn(); AddEFlags( EFL_NO_DISSOLVE | EFL_NO_MEGAPHYSCANNON_RAGDOLL | EFL_NO_PHYSCANNON_INTERACTION ); NPCInit(); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CGrenadeSpit::Spawn( void ) { Precache( ); SetSolid( SOLID_BBOX ); SetMoveType( MOVETYPE_FLYGRAVITY ); SetSolidFlags( FSOLID_NOT_STANDABLE ); SetModel( "models/spitball_large.mdl" ); UTIL_SetSize( this, vec3_origin, vec3_origin ); SetUse( &CBaseGrenade::DetonateUse ); SetTouch( &CGrenadeSpit::GrenadeSpitTouch ); SetNextThink( gpGlobals->curtime + 0.1f ); m_flDamage = sk_antlion_worker_spit_grenade_dmg.GetFloat(); m_DmgRadius = sk_antlion_worker_spit_grenade_radius.GetFloat(); m_takedamage = DAMAGE_NO; m_iHealth = 1; SetGravity( UTIL_ScaleForGravity( SPIT_GRAVITY ) ); SetFriction( 0.8f ); SetCollisionGroup( HL2COLLISION_GROUP_SPIT ); AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); // We're self-illuminating, so we don't take or give shadows AddEffects( EF_NOSHADOW|EF_NORECEIVESHADOW ); // Create the dust effect in place m_hSpitEffect = (CParticleSystem *) CreateEntityByName( "info_particle_system" ); if ( m_hSpitEffect != NULL ) { // Setup our basic parameters m_hSpitEffect->KeyValue( "start_active", "1" ); m_hSpitEffect->KeyValue( "effect_name", "antlion_spit_trail" ); m_hSpitEffect->SetParent( this ); m_hSpitEffect->SetLocalOrigin( vec3_origin ); DispatchSpawn( m_hSpitEffect ); if ( gpGlobals->curtime > 0.5f ) m_hSpitEffect->Activate(); } }
//----------------------------------------------------------------------------- // Spawn //----------------------------------------------------------------------------- void CNPC_Eli::Spawn() { // Eli is allowed to use multiple models, because he appears in the pod. // He defaults to his normal model. char *szModel = (char *)STRING( GetModelName() ); if (!szModel || !*szModel) { szModel = "models/eli.mdl"; SetModelName( AllocPooledString(szModel) ); } Precache(); SetModel( szModel ); BaseClass::Spawn(); SetHullType(HULL_HUMAN); SetHullSizeNormal(); // If Eli has a parent, he's currently inside a pod. Prevent him from moving. if ( GetMoveParent() ) { SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_STANDABLE ); SetMoveType( MOVETYPE_NONE ); CapabilitiesAdd( bits_CAP_ANIMATEDFACE | bits_CAP_TURN_HEAD ); CapabilitiesAdd( bits_CAP_FRIENDLY_DMG_IMMUNE ); } else { SetupWithoutParent(); } AddEFlags( EFL_NO_DISSOLVE | EFL_NO_MEGAPHYSCANNON_RAGDOLL | EFL_NO_PHYSCANNON_INTERACTION ); SetBloodColor( BLOOD_COLOR_RED ); m_iHealth = 8; m_flFieldOfView = 0.5;// indicates the width of this NPC's forward view cone ( as a dotproduct result ) m_NPCState = NPC_STATE_NONE; NPCInit(); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CGrenadeHopwire::CombatThink( void ) { // Stop the grenade from moving AddEFlags( EF_NODRAW ); AddFlag( FSOLID_NOT_SOLID ); VPhysicsDestroyObject(); SetAbsVelocity( vec3_origin ); SetMoveType( MOVETYPE_NONE ); // Do special behaviors if there are any striders in the area KillStriders(); // FIXME: Replace //EmitSound("NPC_Strider.Shoot"); //EmitSound("d3_citadel.weapon_zapper_beam_loop2"); // Quick screen flash CBasePlayer *pPlayer = ToBasePlayer( GetThrower() ); color32 white = { 255,255,255,255 }; UTIL_ScreenFade( pPlayer, white, 0.2f, 0.0f, FFADE_IN ); // Create the vortex controller to pull entities towards us if ( hopwire_vortex.GetBool() ) { m_hVortexController = CGravityVortexController::Create( GetAbsOrigin(), 512, 150, 3.0f ); // Start our client-side effect EntityMessageBegin( this, true ); WRITE_BYTE( 0 ); MessageEnd(); // Begin to stop in two seconds SetThink( &CGrenadeHopwire::EndThink ); SetNextThink( gpGlobals->curtime + 2.0f ); } else { // Remove us immediately SetThink( &CBaseEntity::SUB_Remove ); SetNextThink( gpGlobals->curtime + 0.1f ); } }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CTFBaseRocket::Spawn( void ) { // Precache. Precache(); // Client specific. #ifdef CLIENT_DLL m_flSpawnTime = gpGlobals->curtime; BaseClass::Spawn(); // Server specific. #else //Derived classes must have set model. Assert( GetModel() ); SetSolid( SOLID_BBOX ); SetMoveType( MOVETYPE_FLY, MOVECOLLIDE_FLY_CUSTOM ); AddEFlags( EFL_NO_WATER_VELOCITY_CHANGE ); AddEffects( EF_NOSHADOW ); SetCollisionGroup( TFCOLLISION_GROUP_ROCKETS ); UTIL_SetSize( this, -Vector( 0, 0, 0 ), Vector( 0, 0, 0 ) ); // Setup attributes. m_takedamage = DAMAGE_NO; SetGravity( 0.0f ); // Setup the touch and think functions. SetTouch( &CTFBaseRocket::RocketTouch ); SetThink( &CTFBaseRocket::FlyThink ); SetNextThink( gpGlobals->curtime ); // Don't collide with players on the owner's team for the first bit of our life m_flCollideWithTeammatesTime = gpGlobals->curtime + 0.25; m_bCollideWithTeammates = false; #endif }
CRopeKeyframe::CRopeKeyframe() { AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); m_takedamage = DAMAGE_YES; m_iStartAttachment = m_iEndAttachment = 0; m_Slack = 0; m_Width = 2; m_TextureScale = 4; // 4:1 m_nSegments = 5; m_RopeLength = 20; m_fLockedPoints = (int) (ROPE_LOCK_START_POINT | ROPE_LOCK_END_POINT); // by default, both points are locked m_flScrollSpeed = 0; m_RopeFlags = ROPE_SIMULATE | ROPE_INITIAL_HANG; m_iRopeMaterialModelIndex = -1; m_Subdiv = 2; m_bCreatedFromMapFile = true; }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CASW_Sentry_Top::Spawn( void ) { SetSolid( SOLID_NONE ); SetSolidFlags( 0 ); SetMoveCollide( MOVECOLLIDE_DEFAULT ); SetMoveType( MOVETYPE_NONE ); SetCollisionGroup( COLLISION_GROUP_DEBRIS ); Precache(); SetTopModel(); BaseClass::Spawn(); AddEFlags( EFL_NO_DISSOLVE | EFL_NO_MEGAPHYSCANNON_RAGDOLL | EFL_NO_PHYSCANNON_INTERACTION ); m_fDeployYaw = GetAbsAngles().y; m_fCurrentYaw = GetAbsAngles().y; SetThink( &CASW_Sentry_Top::AnimThink ); SetNextThink( gpGlobals->curtime + 0.01f ); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CASW_Dummy_Vehicle::Spawn( void ) { //SetSolid( SOLID_BBOX ); ///AddSolidFlags( FSOLID_NOT_SOLID ); SetMoveType( MOVETYPE_NONE ); PrecacheModel(VEHICLE_MODEL); Precache(); SetModel(VEHICLE_MODEL); BaseClass::Spawn(); SetCollisionGroup( COLLISION_GROUP_VEHICLE ); AddEFlags( EFL_NO_DISSOLVE | EFL_NO_MEGAPHYSCANNON_RAGDOLL | EFL_NO_PHYSCANNON_INTERACTION ); SetNextThink( TICK_NEVER_THINK ); Msg("* Spawned CASW_Dummy_Vehicle\n"); g_pDummyVehicle = this; }
//------------------------------------------------------------------------------ // Purpose : //------------------------------------------------------------------------------ void CColorCorrectionVolume::Spawn( void ) { BaseClass::Spawn(); AddEFlags( EFL_FORCE_CHECK_TRANSMIT | EFL_DIRTY_ABSTRANSFORM ); Precache(); SetSolid( SOLID_BSP ); SetSolidFlags( FSOLID_TRIGGER | FSOLID_NOT_SOLID ); SetModel( STRING( GetModelName() ) ); SetThink( &CColorCorrectionVolume::ThinkFunc ); SetNextThink( gpGlobals->curtime + 0.01f ); if( m_bStartDisabled ) { m_bEnabled = false; } else { m_bEnabled = true; } }
//----------------------------------------------------------------------------- // Create, destroy vgui panels... //----------------------------------------------------------------------------- void C_VGuiScreen::CreateVguiScreen( const char *pTypeName ) { // Clear out any old screens. DestroyVguiScreen(); AddEFlags( EFL_USE_PARTITION_WHEN_NOT_SOLID ); // Create the new screen... VGuiScreenInitData_t initData( this ); m_PanelWrapper.Activate( pTypeName, NULL, 0, &initData ); // Retrieve the panel dimensions vgui::Panel *pPanel = m_PanelWrapper.GetPanel(); if (pPanel) { int x, y; pPanel->GetBounds( x, y, m_nPixelWidth, m_nPixelHeight ); } else { m_nPixelWidth = m_nPixelHeight = 0; } }
//------------------------------------------------------------------------------ // Purpose : //------------------------------------------------------------------------------ void CColorCorrection::Spawn( void ) { AddEFlags( EFL_FORCE_CHECK_TRANSMIT | EFL_DIRTY_ABSTRANSFORM ); Precache(); SetSolid( SOLID_NONE ); // To fade in/out the weight. SetContextThink( &CColorCorrection::FadeInThink, TICK_NEVER_THINK, s_pFadeInContextThink ); SetContextThink( &CColorCorrection::FadeOutThink, TICK_NEVER_THINK, s_pFadeOutContextThink ); if( m_bStartDisabled ) { m_bEnabled = false; m_flCurWeight.Set ( 0.0f ); } else { m_bEnabled = true; m_flCurWeight.Set ( 1.0f ); } BaseClass::Spawn(); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CItem_ItemCrate::Spawn( void ) { if ( g_pGameRules->IsAllowedToSpawn( this ) == false ) { UTIL_Remove( this ); return; } DisableAutoFade(); SetModelName( AllocPooledString( pszItemCrateModelName[m_CrateAppearance] ) ); if ( NULL_STRING == m_strItemClass ) { Warning( "CItem_ItemCrate(%i): CRATE_SPECIFIC_ITEM with NULL ItemClass string (deleted)!!!\n", entindex() ); UTIL_Remove( this ); return; } Precache( ); SetModel( pszItemCrateModelName[m_CrateAppearance] ); AddEFlags( EFL_NO_ROTORWASH_PUSH ); BaseClass::Spawn( ); }
// Purpose: // Input : isbeingremoved - // *predicted - // Output : Returns true on success, false on failure. //----------------------------------------------------------------------------- bool CBeam::OnPredictedEntityRemove( bool isbeingremoved, C_BaseEntity *predicted ) { BaseClass::OnPredictedEntityRemove( isbeingremoved, predicted ); CBeam *beam = dynamic_cast< CBeam * >( predicted ); if ( !beam ) { // Hrm, we didn't link up to correct type!!! Assert( 0 ); // Delete right away since it's f****d up return true; } if ( beam->IsEFlagSet( EFL_KILLME ) ) { // Don't delete right away AddEFlags( EFL_KILLME ); return false; } // Go ahead and delete if it's not short-lived return true; }
//========================================================= // Spawn() // Crear un nuevo //========================================================= void CNPC_Base::Spawn() { Precache(); // Modelo y color de sangre. SetModel(MODEL_BASE); SetBloodColor(BLOOD); // Tamaño SetHullType(HULL_WIDE_SHORT); SetHullSizeNormal(); // Navegación, estado físico y opciones extra. SetSolid(SOLID_BBOX); AddSolidFlags(FSOLID_NOT_STANDABLE); SetNavType(NAV_GROUND); SetMoveType(MOVETYPE_STEP); SetRenderColor(255, 255, 255, 255); SetDistLook(SEE_DIST); // Reseteo de variables. // Salud, estado del NPC y vista. m_iHealth = in_basenpc_health.GetFloat(); m_NPCState = NPC_STATE_NONE; m_flFieldOfView = FOV; // Capacidades CapabilitiesClear(); CapabilitiesAdd(CAPABILITIES); // Caracteristicas AddEFlags(EFLAGS); NPCInit(); BaseClass::Spawn(); }
//----------------------------------------------------------------------------- // Purpose: This used to have something to do with bees flying, but // now it only initializes moving furniture in scripted sequences //----------------------------------------------------------------------------- void CNPC_Furniture::Spawn( ) { Precache(); SetModel( STRING(GetModelName()) ); SetMoveType( MOVETYPE_STEP ); SetSolid( SOLID_BBOX ); // Our collision, if needed, will be done through bone followers AddSolidFlags( FSOLID_NOT_SOLID ); SetBloodColor( DONT_BLEED ); m_iHealth = TOO_MUCH_HEALTH_TO_DIE; //wow m_takedamage = DAMAGE_AIM; SetSequence( 0 ); SetCycle( 0 ); SetNavType( NAV_FLY ); AddFlag( FL_FLY ); CapabilitiesAdd( bits_CAP_MOVE_FLY | bits_CAP_TURN_HEAD | bits_CAP_ANIMATEDFACE ); AddEFlags( EFL_NO_MEGAPHYSCANNON_RAGDOLL ); // pev->nextthink += 1.0; // SetThink (WalkMonsterDelay); ResetSequenceInfo( ); SetCycle( 0 ); NPCInit(); // Furniture needs to block LOS SetBlocksLOS( true ); // Furniture just wastes CPU doing sensing code, since all they do is idle and play scripts GetSenses()->AddSensingFlags( SENSING_FLAGS_DONT_LOOK | SENSING_FLAGS_DONT_LISTEN ); }
void Spawn( void ) { Precache(); BaseClass::Spawn(); SetModel(ENTITY_MODEL); SetMoveType(MOVETYPE_FLYGRAVITY); SetSolid(SOLID_BBOX); SetBlocksLOS(false); AddEFlags(EFL_NO_ROTORWASH_PUSH); SetCollisionGroup(COLLISION_GROUP_WEAPON); int nSolidFlags = GetSolidFlags() | FSOLID_NOT_STANDABLE | FSOLID_NOT_STANDABLE | FSOLID_TRIGGER | FSOLID_USE_TRIGGER_BOUNDS; VPhysicsInitNormal(SOLID_VPHYSICS, nSolidFlags, false); CollisionProp()->UseTriggerBounds(true, 64); SetUse(&CItemFlashlightBattery::Pickup); SetGlow(true); };
//----------------------------------------------------------------------------- // Purpose: Called when spawning, after keyvalues have been handled. //----------------------------------------------------------------------------- void CASW_Use_Area::Spawn( void ) { m_bUseAreaEnabled = !m_bDisabled; m_bDisabled = false; // don't allow normal triggerish disabling BaseClass::Spawn(); InitTrigger(); if (m_flWait <= 0) { m_flWait = 0.2; } ASSERTSZ(m_iHealth == 0, "trigger_multiple with health"); AddEFlags( EFL_FORCE_CHECK_TRANSMIT ); // find the target this use area is attached to m_hUseTarget = gEntList.FindEntityByName(NULL, m_iUseTargetName, NULL); //Assert(!m_hUseTarget); m_hPanelProp = gEntList.FindEntityByName( NULL, m_szPanelPropName ); m_bMultiplePanelProps = gEntList.FindEntityByName( m_hPanelProp.Get(), m_szPanelPropName ) != NULL; }
void CRagdollProp::Spawn( void ) { // Starts out as the default fade scale value m_flDefaultFadeScale = m_flFadeScale; // NOTE: If this fires, then the assert or the datadesc is wrong! (see DEFINE_RAGDOLL_ELEMENT above) Assert( RAGDOLL_MAX_ELEMENTS == 24 ); Precache(); SetModel( STRING( GetModelName() ) ); CStudioHdr *pStudioHdr = GetModelPtr( ); if ( pStudioHdr->flags() & STUDIOHDR_FLAGS_NO_FORCED_FADE ) { DisableAutoFade(); } else { m_flFadeScale = m_flDefaultFadeScale; } matrix3x4_t pBoneToWorld[MAXSTUDIOBONES]; BaseClass::SetupBones( pBoneToWorld, BONE_USED_BY_ANYTHING ); // FIXME: shouldn't this be a subset of the bones // this is useless info after the initial conditions are set SetAbsAngles( vec3_angle ); int collisionGroup = (m_spawnflags & SF_RAGDOLLPROP_DEBRIS) ? COLLISION_GROUP_DEBRIS : COLLISION_GROUP_NONE; InitRagdoll( vec3_origin, 0, vec3_origin, pBoneToWorld, pBoneToWorld, 0, collisionGroup, true ); m_lastUpdateTickCount = 0; m_flBlendWeight = 0.0f; m_nOverlaySequence = -1; // Unless specified, do not allow this to be dissolved if ( HasSpawnFlags( SF_RAGDOLLPROP_ALLOW_DISSOLVE ) == false ) { AddEFlags( EFL_NO_DISSOLVE ); } }