void CCycler::GenericCyclerSpawn(char *szModel, Vector vecMin, Vector vecMax) { if (!szModel || !*szModel) { Warning( "cycler at %.0f %.0f %0.f missing modelname\n", GetAbsOrigin().x, GetAbsOrigin().y, GetAbsOrigin().z ); UTIL_Remove( this ); return; } PrecacheModel( szModel ); SetModel( szModel ); m_bloodColor = DONT_BLEED; CCycler::Spawn( ); UTIL_SetSize(this, vecMin, vecMax); }
void AvHBasePlayerWeapon::Spawn() { CBasePlayerWeapon::Spawn(); this->pev->solid = SOLID_BBOX; this->pev->movetype = MOVETYPE_TOSS; UTIL_SetOrigin(this->pev, this->pev->origin); UTIL_SetSize(this->pev, kMarineItemMinSize, kMarineItemMaxSize); this->pev->iuser3 = AVH_USER3_MARINEITEM; #ifdef AVH_SERVER if(!this->GetIsPersistent()) { this->mLifetime = AvHSUGetWeaponStayTime(); } #endif }
//========================================================= // Spawn //========================================================= void CBloater::Spawn() { Precache(); SET_MODEL(ENT(pev), "models/floater.mdl"); UTIL_SetSize(pev, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_FLY; pev->spawnflags |= FL_FLY; m_bloodColor = BLOOD_COLOR_GREEN; pev->health = 40; pev->view_ofs = VEC_VIEW; // position of the eyes relative to monster's origin. m_flFieldOfView = 0.5; // indicates the width of this monster's forward view cone ( as a dotproduct result ) m_MonsterState = MONSTERSTATE_NONE; MonsterInit(); }
void CFuncMachinegun::RealReSpawn( void ) { pev->armorvalue = pev->armortype; pev->health = pev->max_health; pev->takedamage = DAMAGE_AIM; pev->movetype = MOVETYPE_FLY; pev->solid = SOLID_BBOX; pev->angles.x = 0; pev->renderfx = 51; pev->origin = pev->oldorigin; pev->effects = 0; m_iAmmo = pev->weapons; UTIL_SetSize( pev, Vector(-25,-25,0), Vector(25,25,35)); ResetSequenceInfo(); m_fSequenceLoops = TRUE; InitBoneControllers(); }
//========================================================= // Spawn //========================================================= void CZombie :: Spawn() { Precache( ); SET_MODEL(ENT(pev), "models/zombie.mdl"); UTIL_SetSize( pev, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX ); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_STEP; m_bloodColor = BLOOD_COLOR_GREEN; pev->health = gSkillData.zombieHealth; pev->view_ofs = VEC_VIEW;// position of the eyes relative to monster's origin. m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_MonsterState = MONSTERSTATE_NONE; m_afCapability = bits_CAP_DOORS_GROUP; MonsterInit(); }
void CMiniTurret::Spawn() { Precache( ); SET_MODEL(ENT(pev), "models/miniturret.mdl"); pev->health = gSkillData.miniturretHealth; m_HackedGunPos = Vector( (float)0, (float)0, (float)12.75 ); m_flMaxSpin = 0; pev->view_ofs.z = 12.75; CBaseTurret::Spawn( ); m_iRetractHeight = 16; m_iDeployHeight = 32; m_iMinPitch = -15; UTIL_SetSize(pev, Vector(-16, -16, -m_iRetractHeight), Vector(16, 16, m_iRetractHeight)); SetThink(&CMiniTurret::Initialize); pev->nextthink = gpGlobals->time + 0.3; }
void CRagGib::Spawn( const char *szModel, const Vector &vecOrigin, const Vector &vecForce, float flFadeTime = 0.0 ) { SetSolid( SOLID_BBOX ); AddSolidFlags( FSOLID_NOT_SOLID ); SetModel( szModel ); UTIL_SetSize(this, vec3_origin, vec3_origin); UTIL_SetOrigin( this, vecOrigin ); if ( !BecomeRagdollOnClient( vecForce ) ) { AddSolidFlags( FSOLID_NOT_STANDABLE ); RemoveSolidFlags( FSOLID_NOT_SOLID ); } if( flFadeTime > 0.0 ) { SUB_StartFadeOut( flFadeTime ); } }
void CWeapon_SLAM::Spawn( ) { BaseClass::Spawn(); Precache( ); UTIL_SetSize(this, Vector(-4,-4,-2),Vector(4,4,2)); FallInit();// get ready to fall down SetThink( NULL ); m_tSlamState = SLAM_TRIPMINE_READY; m_flWallSwitchTime = 0; // Give 1 piece of default ammo when first picked up m_iClip2 = 1; }
//========================================================= //========================================================= void CFlockingFlyer :: SpawnCommonCode( ) { pev->deadflag = DEAD_NO; pev->classname = MAKE_STRING("monster_flyer"); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_FLY; pev->takedamage = DAMAGE_NO; pev->health = 1; m_fPathBlocked = FALSE;// obstacles will be detected m_flFieldOfView = 0.2; //SET_MODEL(ENT(pev), "models/aflock.mdl"); SET_MODEL(ENT(pev), "models/boid.mdl"); // UTIL_SetSize(pev, Vector(0,0,0), Vector(0,0,0)); UTIL_SetSize(pev, Vector(-5,-5,0), Vector(5,5,2)); }
void CXenHair::Spawn( void ) { Precache(); SET_MODEL( edict(), "models/hair.mdl" ); UTIL_SetSize( pev, Vector(-4,-4,0), Vector(4,4,32)); pev->sequence = 0; if ( !(pev->spawnflags & SF_HAIR_SYNC) ) { pev->frame = RANDOM_FLOAT(0,255); pev->framerate = RANDOM_FLOAT( 0.7, 1.4 ); } ResetSequenceInfo( ); pev->solid = SOLID_NOT; pev->movetype = MOVETYPE_NONE; pev->nextthink = gpGlobals->time + RANDOM_FLOAT( 0.1, 0.4 ); // Load balance these a bit }
// UNDONE: right now this is pretty much a copy of the squid spit with minor changes to the way it does damage void CBMortar:: Spawn( void ) { pev->movetype = MOVETYPE_TOSS; pev->classname = MAKE_STRING( "bmortar" ); pev->solid = SOLID_BBOX; pev->rendermode = kRenderTransAlpha; pev->renderamt = 255; SET_MODEL(ENT(pev), "sprites/mommaspit.spr"); pev->frame = 0; pev->scale = 0.5; UTIL_SetSize( pev, Vector( 0, 0, 0), Vector(0, 0, 0) ); m_maxFrame = (float) MODEL_FRAMES( pev->modelindex ) - 1; pev->dmgtime = gpGlobals->time + 0.4; }
//----------------------------------------------------------------------------- // Purpose: Setup basic values for Thrown grens //----------------------------------------------------------------------------- void CThrownGrenade::Spawn( void ) { // point sized, solid, bouncing SetMoveType( MOVETYPE_FLYGRAVITY, MOVECOLLIDE_FLY_BOUNCE ); SetSolid( SOLID_BBOX ); UTIL_SetSize(this, vec3_origin, vec3_origin); // Movement SetGravity( UTIL_ScaleForGravity( 648 ) ); SetFriction(0.6); QAngle angles; VectorAngles( GetAbsVelocity(), angles ); SetLocalAngles( angles ); QAngle vecAngVel( random->RandomFloat ( -100, -500 ), 0, 0 ); SetLocalAngularVelocity( vecAngVel ); SetTouch( &CThrownGrenade::BounceTouch ); }
//========================================================= // Spawn //========================================================= void CController :: Spawn() { Precache( ); SET_MODEL(ENT(pev), "models/controller.mdl"); UTIL_SetSize( pev, Vector( -32, -32, 0 ), Vector( 32, 32, 64 )); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_FLY; pev->flags |= FL_FLY; m_bloodColor = BLOOD_COLOR_GREEN; pev->health = gSkillData.controllerHealth; pev->view_ofs = Vector( 0, 0, -2 );// position of the eyes relative to monster's origin. m_flFieldOfView = VIEW_FIELD_FULL;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_MonsterState = MONSTERSTATE_NONE; MonsterInit(); }
//========================================================= // Spawn //========================================================= void CRat :: Spawn() { Precache( ); SET_MODEL(ENT(pev), "models/bigrat.mdl"); //SET_MODEL(ENT(pev), "models/w_isotopebox.mdl"); UTIL_SetSize( pev, Vector( 0, 0, 0 ), Vector( 0, 0, 0 ) ); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_STEP; m_bloodColor = BLOOD_COLOR_RED; pev->health = 8; pev->view_ofs = Vector ( 0, 0, 6 );// position of the eyes relative to monster's origin. m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_MonsterState = MONSTERSTATE_NONE; MonsterInit(); }
void COsprey :: Spawn( void ) { Precache( ); // motor pev->movetype = MOVETYPE_FLY; pev->solid = SOLID_BBOX; if (pev->model) SET_MODEL(ENT(pev), STRING(pev->model)); //LRC else SET_MODEL(ENT(pev), "models/osprey.mdl"); UTIL_SetSize(pev, Vector( -400, -400, -100), Vector(400, 400, 32)); UTIL_SetOrigin( this, pev->origin ); //ALERT(at_console, "Osprey origin %f %f %f\n", pev->origin.x, pev->origin.y, pev->origin.z); pev->flags |= FL_MONSTER; pev->takedamage = DAMAGE_YES; m_flRightHealth = 200; m_flLeftHealth = 200; pev->health = 400; pev->speed = 80; //LRC - default speed, in case path corners don't give a speed. m_flFieldOfView = 0; // 180 degrees pev->sequence = 0; ResetSequenceInfo( ); pev->frame = RANDOM_LONG(0,0xFF); InitBoneControllers(); SetThink(&COsprey :: FindAllThink ); SetUse(&COsprey :: CommandUse ); if (!(pev->spawnflags & SF_WAITFORTRIGGER)) { SetNextThink( 1.0 ); } m_pos2 = pev->origin; m_ang2 = pev->angles; m_vel2 = pev->velocity; }
// // Tentacle Spawn // void CTentacle :: Spawn( ) { Precache( ); pev->solid = SOLID_BBOX; pev->movetype = MOVETYPE_FLY; pev->effects = 0; pev->health = 75; pev->sequence = 0; SET_MODEL(ENT(pev), "models/tentacle2.mdl"); UTIL_SetSize( pev, Vector( -32, -32, 0 ), Vector( 32, 32, 64 ) ); pev->takedamage = DAMAGE_AIM; pev->flags |= FL_MONSTER; m_bloodColor = BLOOD_COLOR_GREEN; SetThink( &CTentacle::Start ); SetTouch( &CTentacle::HitTouch ); SetUse( &CTentacle::CommandUse ); pev->nextthink = gpGlobals->time + 0.2; ResetSequenceInfo( ); m_iDir = 1; pev->yaw_speed = 18; m_flInitialYaw = pev->angles.y; pev->ideal_yaw = m_flInitialYaw; g_fFlySound = FALSE; g_fSquirmSound = FALSE; m_iHitDmg = 20; if (m_flMaxYaw <= 0) m_flMaxYaw = 65; m_MonsterState = MONSTERSTATE_IDLE; // SetThink( Test ); UTIL_SetOrigin( pev, pev->origin ); }
//----------------------------------------------------------------------------- // 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(); } }
void CWeapon_Tripwire::Spawn( ) { UTIL_Remove(this); return; BaseClass::Spawn(); Precache( ); UTIL_SetSize(this, Vector(-4,-4,-2),Vector(4,4,2)); FallInit();// get ready to fall down SetThink( NULL ); // Give one piece of default ammo when first picked up m_iClip2 = 1; }
//------------------------------------------------------------------------------ // Purpose : // Input : // Output : //------------------------------------------------------------------------------ void CGrenadeBeam::Spawn( void ) { Precache( ); SetSolid( SOLID_BBOX ); SetMoveType( MOVETYPE_FLYGRAVITY, MOVECOLLIDE_FLY_BOUNCE ); //UNDONE/HACK: this model is never used but one is needed SetModel( "Models/weapons/flare.mdl" ); AddEffects( EF_NODRAW ); SetTouch( &CGrenadeBeam::GrenadeBeamTouch ); SetNextThink( gpGlobals->curtime ); m_takedamage = DAMAGE_NO; m_iHealth = 1; SetGravity( 0.0001 ); m_nNumHits = 0; UTIL_SetSize( this, vec3_origin, vec3_origin ); }
void CSquidSpit:: Spawn( void ) { Precache(); SetMoveType ( MOVETYPE_FLY ); SetClassname( "squidspit" ); SetSolid( SOLID_BBOX ); m_nRenderMode = kRenderTransAlpha; SetRenderColorA( 255 ); SetModel( "" ); SetSprite( CSprite::SpriteCreate( "sprites/bigspit.vmt", GetAbsOrigin(), true ) ); UTIL_SetSize( this, Vector( 0, 0, 0), Vector(0, 0, 0) ); SetCollisionGroup( HL2COLLISION_GROUP_SPIT ); }
//========================================================= // Spawn //========================================================= void CSoldier :: Spawn( void ) { if( !g_pGameRules->FAllowMonsters( )) { REMOVE_ENTITY( ENT(pev) ); return; } Precache( ); SET_MODEL(ENT(pev), "models/soldier.mdl"); UTIL_SetSize( pev, Vector( -16, -16, -24 ), Vector( 16, 16, 40 )); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_STEP; pev->health = 30; WalkMonsterInit (); }
void CTripmineGrenade::Spawn( void ) { Precache( ); // motor SetMoveType( MOVETYPE_FLY ); SetSolid( SOLID_BBOX ); SetModel( "models/Weapons/w_slam.mdl" ); IPhysicsObject *pObject = VPhysicsInitNormal( SOLID_BBOX, GetSolidFlags() | FSOLID_TRIGGER, true ); pObject->EnableMotion( false ); SetCollisionGroup( COLLISION_GROUP_WEAPON ); SetCycle( 0.0f ); m_nBody = 3; m_flDamage = sk_plr_dmg_tripmine.GetFloat(); m_DmgRadius = sk_tripmine_radius.GetFloat(); ResetSequenceInfo( ); m_flPlaybackRate = 0; UTIL_SetSize(this, Vector( -4, -4, -2), Vector(4, 4, 2)); m_flPowerUp = gpGlobals->curtime + 2.0; SetThink( &CTripmineGrenade::PowerupThink ); SetNextThink( gpGlobals->curtime + 0.2 ); m_takedamage = DAMAGE_YES; m_iHealth = 1; EmitSound( "TripmineGrenade.Place" ); SetDamage ( 200 ); // Tripmine sits at 90 on wall so rotate back to get m_vecDir QAngle angles = GetAbsAngles(); angles.x -= 90; AngleVectors( angles, &m_vecDir ); m_vecEnd = GetAbsOrigin() + m_vecDir * 2048; AddEffects( EF_NOSHADOW ); }
void CStickyBomb::Spawn() { m_hOperator = GetOwnerEntity(); Precache(); SetModel( STICKY_BOMB_MODEL ); SetSolid( SOLID_BBOX ); SetMoveType( MOVETYPE_FLYGRAVITY, MOVECOLLIDE_FLY_CUSTOM ); SetCollisionGroup( COLLISION_GROUP_NONE ); m_takedamage = DAMAGE_NO; SetNextThink( TICK_NEVER_THINK ); m_flAnimTime = gpGlobals->curtime; m_flPlaybackRate = 0.0; m_flCycle = 0; UTIL_SetSize( this, vec3_origin, vec3_origin ); Relink(); // no shadows, please. m_fEffects |= EF_NOSHADOW|EF_NORECEIVESHADOW; SetRenderColor( 255, 0, 0 ); }
//========================================================= // Spawn //========================================================= void CGMan :: Spawn() { Precache(); if (pev->model) SET_MODEL(ENT(pev), STRING(pev->model)); //LRC else SET_MODEL( ENT(pev), "models/gman.mdl" ); UTIL_SetSize(pev, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_STEP; m_bloodColor = DONT_BLEED; pev->health = 100; m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_MonsterState = MONSTERSTATE_NONE; MonsterInit(); }
// // Tentacle Spawn // void CTentacle :: Spawn( ) { Precache( ); pev->solid = SOLID_BBOX; pev->movetype = MOVETYPE_FLY; pev->effects = 0; pev->health = 75; pev->sequence = 0; SET_MODEL(ENT(pev), "models/tentacle2.mdl"); UTIL_SetSize( pev, Vector( -32, -32, 0 ), Vector( 32, 32, 64 ) ); pev->takedamage = DAMAGE_AIM; pev->flags |= FL_MONSTER; m_bloodColor = BLOOD_COLOR_GREEN; SetThink( Start ); SetTouch( HitTouch ); SetUse( CommandUse ); SetNextThink( 0.2 ); ResetSequenceInfo( ); m_iDir = 1; pev->yaw_speed = 18; m_flInitialYaw = GetAbsAngles().y; pev->ideal_yaw = m_flInitialYaw; g_fFlySound = FALSE; g_fSquirmSound = FALSE; m_iHitDmg = 20; if (m_flMaxYaw <= 0) m_flMaxYaw = 65; m_MonsterState = MONSTERSTATE_IDLE; RelinkEntity( TRUE ); }
//========================================================= // Spawn //========================================================= void COtis :: Spawn() { Precache( ); SET_MODEL(ENT(pev), "models/otis.mdl"); UTIL_SetSize(pev, VEC_HUMAN_HULL_MIN, VEC_HUMAN_HULL_MAX); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_STEP; m_bloodColor = BLOOD_COLOR_RED; if ( !m_fHostile ) pev->health = gSkillData.otisHealth; else pev->health = gSkillData.otisHealth - 10; pev->view_ofs = Vector ( 0, 0, 50 );// position of the eyes relative to monster's origin. m_flFieldOfView = VIEW_FIELD_WIDE; // NOTE: we need a wide field of view so npc will notice player and say hello m_MonsterState = MONSTERSTATE_NONE; if ( !m_fHostile ) { SetBodygroup( OT_GUN_GROUP, OT_GUN_HOLSTER ); m_fGunDrawn = FALSE; } else { SetBodygroup( OT_GUN_GROUP, OT_GUN_DRAWN ); m_fGunDrawn = TRUE; } if ( m_iHead == 0 ) SetBodygroup( OT_HEAD_GROUP, OT_HEAD_NORMAL ); if ( m_iHead == 1 ) SetBodygroup( OT_HEAD_GROUP, OT_HEAD_BALD ); m_afCapability = bits_CAP_HEAR | bits_CAP_TURN_HEAD | bits_CAP_DOORS_GROUP; MonsterInit(); if ( !m_fHostile ) SetUse( &CTalkMonster::FollowerUse ); }
//--------------------------------------------------------- //--------------------------------------------------------- void CBlobElement::Spawn() { Precache(); SetSolid( SOLID_NONE ); SetMoveType( MOVETYPE_FLY ); AddSolidFlags( FSOLID_NOT_STANDABLE | FSOLID_NOT_SOLID ); SetModel( GetBlobModelName() ); UTIL_SetSize( this, vec3_origin, vec3_origin ); QAngle angles(0,0,0); angles.y = random->RandomFloat( 0, 180 ); SetAbsAngles( angles ); AddEffects( EF_NOSHADOW ); ReconfigureRandomParams(); }
//----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- void CObjectTeleporter::SetModel( const char *pModel ) { BaseClass::SetModel( pModel ); // Reset this after model change UTIL_SetSize( this, TELEPORTER_MINS, TELEPORTER_MAXS ); CreateBuildPoints(); ReattachChildren(); m_iDirectionBodygroup = FindBodygroupByName( "teleporter_direction" ); m_iBlurBodygroup = FindBodygroupByName( "teleporter_blur" ); if ( m_iBlurBodygroup >= 0 ) { SetBodygroup( m_iBlurBodygroup, 0 ); } }
//========================================================= // Spawn //========================================================= void CHeadCrab :: Spawn() { Precache( ); SET_MODEL(ENT(pev), "models/headcrab.mdl"); UTIL_SetSize(pev, Vector(-12, -12, 0), Vector(12, 12, 24)); pev->solid = SOLID_SLIDEBOX; pev->movetype = MOVETYPE_STEP; m_bloodColor = BLOOD_COLOR_GREEN; pev->effects = 0; pev->health = gSkillData.headcrabHealth; pev->view_ofs = Vector ( 0, 0, 20 );// position of the eyes relative to monster's origin. pev->yaw_speed = 5;//!!! should we put this in the monster's changeanim function since turn rates may vary with state/anim? m_flFieldOfView = 0.5;// indicates the width of this monster's forward view cone ( as a dotproduct result ) m_MonsterState = MONSTERSTATE_NONE; MonsterInit(); }
//----------------------------------------------------------------------------- // Sets the screen size + resolution //----------------------------------------------------------------------------- void CVGuiScreen::SetActualSize( float flWidth, float flHeight ) { m_flWidth = flWidth; m_flHeight = flHeight; Vector mins, maxs; mins.Init( 0.0f, 0.0f, -0.1f ); maxs.Init( 0.0f, 0.0f, 0.1f ); if (flWidth > 0) maxs.x = flWidth; else mins.x = flWidth; if (flHeight > 0) maxs.y = flHeight; else mins.y = flHeight; UTIL_SetSize( this, mins, maxs ); }