/* ================ idSecurityCamera::Spawn ================ */ void idSecurityCamera::Spawn( void ) { idStr str; sweepAngle = spawnArgs.GetFloat( "sweepAngle", "90" ); health = spawnArgs.GetInt( "health", "100" ); scanFov = spawnArgs.GetFloat( "scanFov", "90" ); scanDist = spawnArgs.GetFloat( "scanDist", "200" ); flipAxis = spawnArgs.GetBool( "flipAxis" ); modelAxis = spawnArgs.GetInt( "modelAxis" ); if ( modelAxis < 0 || modelAxis > 2 ) { modelAxis = 0; } spawnArgs.GetVector( "viewOffset", "0 0 0", viewOffset ); if ( spawnArgs.GetBool( "spotLight" ) ) { PostEventMS( &EV_SecurityCam_AddLight, 0 ); } negativeSweep = ( sweepAngle < 0 ) ? true : false; sweepAngle = abs( sweepAngle ); scanFovCos = cos( scanFov * idMath::PI / 360.0f ); angle = GetPhysics()->GetAxis().ToAngles().yaw; StartSweep(); SetAlertMode( SCANNING ); BecomeActive( TH_THINK ); if ( health ) { fl.takedamage = true; } pvsArea = gameLocal.pvs.GetPVSArea( GetPhysics()->GetOrigin() ); // if no target specified use ourself str = spawnArgs.GetString( "cameraTarget" ); if ( str.Length() == 0 ) { spawnArgs.Set( "cameraTarget", spawnArgs.GetString( "name" ) ); } // check if a clip model is set spawnArgs.GetString( "clipmodel", "", str ); if ( !str[0] ) { str = spawnArgs.GetString( "model" ); // use the visual model } if ( !collisionModelManager->TrmFromModel( str, trm ) ) { gameLocal.Error( "idSecurityCamera '%s': cannot load collision model %s", name.c_str(), str.c_str() ); return; } GetPhysics()->SetContents( CONTENTS_SOLID ); GetPhysics()->SetClipMask( MASK_SOLID | CONTENTS_BODY | CONTENTS_CORPSE | CONTENTS_MOVEABLECLIP ); // setup the physics UpdateChangeableSpawnArgs( NULL ); }
/* ===================== idCameraView::Spawn ===================== */ void idCameraView::Spawn(void) { // if no target specified use ourself const char *cam = spawnArgs.GetString("cameraTarget"); if (strlen(cam) == 0) { spawnArgs.Set("cameraTarget", spawnArgs.GetString("name")); } fov = spawnArgs.GetFloat("fov", "90"); PostEventMS(&EV_Camera_SetAttachments, 0); UpdateChangeableSpawnArgs(NULL); }
/* ===================== idCameraView::Spawn ===================== */ void idCameraView::Spawn( void ) { // if no target specified use ourself const char *cam = spawnArgs.GetString("cameraTarget"); if ( strlen ( cam ) == 0) { spawnArgs.Set("cameraTarget", spawnArgs.GetString("name")); } fov.Init( gameLocal.time, 0.f, 0.f, 0.f, 90.f, spawnArgs.GetFloat("fov", "90") ); PostEventMS( &EV_Camera_SetAttachments, 0 ); bPlayerBoundCamera = spawnArgs.GetBool("playerBoundCamera"); // HUMANHEAD pdm UpdateChangeableSpawnArgs(NULL); }