@@ -1343,186 +1343,6 @@ void CSprite::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useTy
13431343 }
13441344}
13451345
1346- // =================================================================
1347- // env_model: like env_sprite, except you can specify a sequence.
1348- // =================================================================
1349- #define SF_ENVMODEL_OFF 1
1350- #define SF_ENVMODEL_DROPTOFLOOR 2
1351- #define SF_ENVMODEL_SOLID 4
1352-
1353- class CEnvModel : public CBaseAnimating
1354- {
1355- void Spawn ( void );
1356- void Precache ( void );
1357- void EXPORT Think ( void );
1358- void KeyValue ( KeyValueData *pkvd );
1359- void Use ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value );
1360- virtual int ObjectCaps ( void ) { return CBaseEntity :: ObjectCaps () & ~FCAP_ACROSS_TRANSITION; }
1361-
1362- virtual int Save ( CSave &save );
1363- virtual int Restore ( CRestore &restore );
1364- static TYPEDESCRIPTION m_SaveData[];
1365-
1366- void SetSequence ( void );
1367-
1368- string_t m_iszSequence_On;
1369- string_t m_iszSequence_Off;
1370- int m_iAction_On;
1371- int m_iAction_Off;
1372- };
1373-
1374- TYPEDESCRIPTION CEnvModel::m_SaveData[] =
1375- {
1376- DEFINE_FIELD ( CEnvModel, m_iszSequence_On, FIELD_STRING ),
1377- DEFINE_FIELD ( CEnvModel, m_iszSequence_Off, FIELD_STRING ),
1378- DEFINE_FIELD ( CEnvModel, m_iAction_On, FIELD_INTEGER ),
1379- DEFINE_FIELD ( CEnvModel, m_iAction_Off, FIELD_INTEGER ),
1380- };
1381-
1382- IMPLEMENT_SAVERESTORE ( CEnvModel, CBaseAnimating );
1383- LINK_ENTITY_TO_CLASS ( env_model, CEnvModel );
1384-
1385- void CEnvModel::KeyValue ( KeyValueData *pkvd )
1386- {
1387- if (FStrEq (pkvd->szKeyName , " m_iszSequence_On" ))
1388- {
1389- m_iszSequence_On = ALLOC_STRING (pkvd->szValue );
1390- pkvd->fHandled = TRUE ;
1391- }
1392- else if (FStrEq (pkvd->szKeyName , " m_iszSequence_Off" ))
1393- {
1394- m_iszSequence_Off = ALLOC_STRING (pkvd->szValue );
1395- pkvd->fHandled = TRUE ;
1396- }
1397- else if (FStrEq (pkvd->szKeyName , " m_iAction_On" ))
1398- {
1399- m_iAction_On = atoi (pkvd->szValue );
1400- pkvd->fHandled = TRUE ;
1401- }
1402- else if (FStrEq (pkvd->szKeyName , " m_iAction_Off" ))
1403- {
1404- m_iAction_Off = atoi (pkvd->szValue );
1405- pkvd->fHandled = TRUE ;
1406- }
1407- else
1408- {
1409- CBaseAnimating::KeyValue ( pkvd );
1410- }
1411- }
1412-
1413- void CEnvModel :: Spawn( void )
1414- {
1415- Precache ();
1416- SET_MODEL ( ENT (pev), STRING (pev->model ) );
1417- UTIL_SetOrigin (pev, pev->origin );
1418-
1419- if (pev->spawnflags & SF_ENVMODEL_SOLID)
1420- {
1421- pev->solid = SOLID_SLIDEBOX;
1422- UTIL_SetSize (pev, Vector (-10 , -10 , -10 ), Vector (10 , 10 , 10 )); // LRCT
1423- }
1424-
1425- if (pev->spawnflags & SF_ENVMODEL_DROPTOFLOOR)
1426- {
1427- pev->origin .z += 1 ;
1428- DROP_TO_FLOOR ( ENT (pev) );
1429- }
1430- SetBoneController ( 0 , 0 );
1431- SetBoneController ( 1 , 0 );
1432-
1433- SetSequence ();
1434-
1435- pev->nextthink = gpGlobals->time + 0.1 ;
1436- }
1437-
1438- void CEnvModel::Precache ( void )
1439- {
1440- PRECACHE_MODEL ( (char *)STRING (pev->model ) );
1441- }
1442-
1443- void CEnvModel::Use ( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
1444- {
1445- if (ShouldToggle (useType, !(pev->spawnflags & SF_ENVMODEL_OFF)))
1446- {
1447- if (pev->spawnflags & SF_ENVMODEL_OFF)
1448- pev->spawnflags &= ~SF_ENVMODEL_OFF;
1449- else
1450- pev->spawnflags |= SF_ENVMODEL_OFF;
1451-
1452- SetSequence ();
1453- pev->nextthink = gpGlobals->time + 0.1 ;
1454- }
1455- }
1456-
1457- void CEnvModel::Think ( void )
1458- {
1459- int iTemp;
1460-
1461- StudioFrameAdvance ( ); // set m_fSequenceFinished if necessary
1462-
1463- if (m_fSequenceFinished && !m_fSequenceLoops)
1464- {
1465- if (pev->spawnflags & SF_ENVMODEL_OFF)
1466- iTemp = m_iAction_Off;
1467- else
1468- iTemp = m_iAction_On;
1469-
1470- switch (iTemp)
1471- {
1472- case 2 : // change state
1473- if (pev->spawnflags & SF_ENVMODEL_OFF)
1474- pev->spawnflags &= ~SF_ENVMODEL_OFF;
1475- else
1476- pev->spawnflags |= SF_ENVMODEL_OFF;
1477- SetSequence ();
1478- break ;
1479- default : // remain frozen
1480- return ;
1481- }
1482- }
1483- pev->nextthink = gpGlobals->time + 0.1 ;
1484- }
1485-
1486- void CEnvModel :: SetSequence( void )
1487- {
1488- int iszSeq;
1489-
1490- if (pev->spawnflags & SF_ENVMODEL_OFF)
1491- iszSeq = m_iszSequence_Off;
1492- else
1493- iszSeq = m_iszSequence_On;
1494-
1495- if (!iszSeq)
1496- return ;
1497- pev->sequence = LookupSequence ( STRING ( iszSeq ));
1498-
1499- if (pev->sequence == -1 )
1500- {
1501- if (pev->targetname )
1502- ALERT ( at_error, " env_model %s: unknown sequence \" %s\"\n " , STRING ( pev->targetname ), STRING ( iszSeq ));
1503- else
1504- ALERT ( at_error, " env_model: unknown sequence \" %s\"\n " , STRING ( pev->targetname ), STRING ( iszSeq ));
1505- pev->sequence = 0 ;
1506- }
1507-
1508- pev->frame = 0 ;
1509- ResetSequenceInfo ( );
1510-
1511- if (pev->spawnflags & SF_ENVMODEL_OFF)
1512- {
1513- if (m_iAction_Off == 1 )
1514- m_fSequenceLoops = 1 ;
1515- else
1516- m_fSequenceLoops = 0 ;
1517- }
1518- else
1519- {
1520- if (m_iAction_On == 1 )
1521- m_fSequenceLoops = 1 ;
1522- else
1523- m_fSequenceLoops = 0 ;
1524- }
1525- }
15261346
15271347class CGibShooter : public CBaseDelay
15281348{
0 commit comments