// // ********** DeadScientist SPAWN ********** // void CDeadScientist::Spawn() { PRECACHE_MODEL( "models/scientist.mdl" ); SetModel( "models/scientist.mdl" ); pev->effects = 0; pev->sequence = 0; // Corpses have less health pev->health = 8;//gSkillData.GetScientistHealth(); m_bloodColor = BLOOD_COLOR_RED; if( pev->body == -1 ) {// -1 chooses a random head pev->body = RANDOM_LONG( 0, NUM_SCIENTIST_HEADS - 1 );// pick a head, any head } // Luther is black, make his hands black if( pev->body == HEAD_LUTHER ) pev->skin = 1; else pev->skin = 0; pev->sequence = LookupSequence( m_szPoses[ m_iPose ] ); if( pev->sequence == -1 ) { ALERT( at_console, "Dead scientist with bad pose\n" ); } // pev->skin += 2; // use bloody skin -- UNDONE: Turn this back on when we have a bloody skin again! MonsterInitDead(); }
//========================================================= // ********** DeadHGrunt SPAWN ********** //========================================================= void CDeadHGrunt::Spawn( void ) { PRECACHE_MODEL( "models/hgrunt.mdl" ); SetModel( "models/hgrunt.mdl" ); pev->effects = 0; pev->yaw_speed = 8; pev->sequence = 0; m_bloodColor = BLOOD_COLOR_RED; pev->sequence = LookupSequence( m_szPoses[ m_iPose ] ); if( pev->sequence == -1 ) { ALERT( at_console, "Dead hgrunt with bad pose\n" ); } // Corpses have less health pev->health = 8; // map old bodies onto new bodies switch( pev->body ) { case 0: // Grunt with Gun pev->body = 0; pev->skin = 0; SetBodygroup( HEAD_GROUP, HEAD_GRUNT ); SetBodygroup( GUN_GROUP, GUN_MP5 ); break; case 1: // Commander with Gun pev->body = 0; pev->skin = 0; SetBodygroup( HEAD_GROUP, HEAD_COMMANDER ); SetBodygroup( GUN_GROUP, GUN_MP5 ); break; case 2: // Grunt no Gun pev->body = 0; pev->skin = 0; SetBodygroup( HEAD_GROUP, HEAD_GRUNT ); SetBodygroup( GUN_GROUP, GUN_NONE ); break; case 3: // Commander no Gun pev->body = 0; pev->skin = 0; SetBodygroup( HEAD_GROUP, HEAD_COMMANDER ); SetBodygroup( GUN_GROUP, GUN_NONE ); break; } MonsterInitDead(); }
// ********** Dead Zombie Soldier SPAWN ********** void CDeadZombieSoldier :: Spawn( ) { Precache(); SET_MODEL(ENT(pev), "models/zombie_soldier.mdl"); pev->effects = 0; pev->sequence = 0; pev->health = 8; m_bloodColor = BLOOD_COLOR_GREEN; pev->sequence = LookupSequence( m_szPoses[m_iPose] ); if (pev->sequence == -1) ALERT ( at_console, "Dead scientist with bad pose\n" ); MonsterInitDead(); }
//========================================================= // ********** DeadOtis SPAWN ********** //========================================================= void CDeadOtis :: Spawn( ) { Precache(); SET_MODEL(ENT(pev), "models/otis.mdl"); pev->effects = 0; pev->yaw_speed = 8; pev->sequence = 0; m_bloodColor = BLOOD_COLOR_RED; pev->sequence = LookupSequence( m_szPoses[m_iPose] ); if (pev->sequence == -1) ALERT ( at_console, "Dead Otis with bad pose\n" ); // Corpses have less health pev->health = 8; MonsterInitDead(); }
//========================================================= // ********** DeadBarney SPAWN ********** //========================================================= void CDeadBarney :: Spawn( ) { PRECACHE_MODEL("models/barney.mdl"); SET_MODEL(ENT(pev), "models/barney.mdl"); pev->yaw_speed = 8; pev->sequence = 0; m_bloodColor = BLOOD_COLOR_RED; pev->sequence = LookupSequence( m_szPoses[m_iPose] ); if (pev->sequence == -1) { ALERT ( at_console, "Dead barney with bad pose\n" ); } // Corpses have less health pev->health = 8;//gSkillData.barneyHealth; MonsterInitDead(); }
//========================================================= // ********** DeadConstruction SPAWN ********** //========================================================= void CDeadConstruction :: Spawn( ) { PRECACHE_MODEL("models/construction.mdl"); SET_MODEL(ENT(pev), "models/construction.mdl"); pev->effects = 0; pev->yaw_speed = 8; pev->sequence = 0; m_bloodColor = BLOOD_COLOR_RED; pev->sequence = LookupSequence( m_szPoses[m_iPose] ); if (pev->sequence == -1) { ALERT ( at_console, "Dead construction with bad pose\n" ); } // Corpses have less health pev->health = 8; MonsterInitDead(); }
// ********** Dead Human Grunt Ally SPAWN ********** void CDeadHGruntAlly :: Spawn( void ) { Precache(); SET_MODEL(ENT(pev), "models/hgrunt_opfor.mdl"); pev->effects = 0; pev->yaw_speed = 8; pev->sequence = 0; pev->health = 8; // Corpses have less health m_bloodColor = BLOOD_COLOR_RED; pev->sequence = LookupSequence( m_szPoses[m_iPose] ); if (pev->sequence == -1) ALERT ( at_console, "Dead Human Grunt Ally with bad pose\n" ); // Weapons & Torso switch( pev->weapons ) { case HGRUNT_ALLY_SHOTGUN: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_MASK ); break; case HGRUNT_ALLY_M4A1: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_BERET ); break; case HGRUNT_ALLY_M249: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_SHOTGUN ); break; default: SetBodygroup( ALLY_GUN_GROUP, ALLY_GUN_NONE ); break; } // Heads switch( m_iHead ) { default: case 0: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_MASK ); break; case 1: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_BERET ); break; case 2: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_SHOTGUN ); break; case 3: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_SAW ); break; case 4: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_SAW_BLACK ); break; case 5: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_MP ); break; case 6: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_MAJOR ); break; case 7: SetBodygroup( ALLY_HEAD_GROUP, ALLY_HEAD_BERET_BLACK ); break; } MonsterInitDead(); }
//========================================================= // ********** DeadGenericMonster SPAWN ********** //========================================================= void CDeadGenericMonster :: Spawn( void ) { Precache(); SET_MODEL(ENT(pev), STRING(pev->model)); pev->effects = 0; pev->yaw_speed = 8; //LRC -- what? pev->sequence = 0; if (pev->netname) { pev->sequence = LookupSequence( STRING(pev->netname) ); if (pev->sequence == -1) { ALERT ( at_debug, "Invalid sequence name \"%s\" in monster_generic_dead\n", STRING(pev->netname) ); } } else { pev->sequence = LookupActivity( pev->frags ); // if (pev->sequence == -1) // { // ALERT ( at_error, "monster_generic_dead - specify a sequence name or choose a different death type: model \"%s\" has no available death sequences.\n", STRING(pev->model) ); // } //...and if that doesn't work, forget it. } // Corpses have less health pev->health = 8; MonsterInitDead(); ResetSequenceInfo( ); pev->frame = 255; // pose at the _end_ of its death sequence. }