SecurityCamera::~SecurityCamera() { KillAllSounds(); if (m_hDisablerModel) { // Remove the model... HATTACHMENT hAttachment; if (g_pLTServer->FindAttachment(m_hObject, m_hDisablerModel, &hAttachment) == LT_OK) { g_pLTServer->RemoveAttachment(hAttachment); } g_pLTServer->RemoveObject(m_hDisablerModel); m_hDisablerModel = LTNULL; } if (m_hLight) { // Remove the light... HATTACHMENT hAttachment; if (g_pLTServer->FindAttachment(m_hObject, m_hLight, &hAttachment) == LT_OK) { g_pLTServer->RemoveAttachment(hAttachment); } g_pLTServer->RemoveObject(m_hLight); m_hLight = LTNULL; } }
void SecurityCamera::PlayDetectedSound() { KillAllSounds(); g_pServerSoundMgr->PlaySoundFromPos(m_vPos, DETECT_SOUND, m_fSoundRadius, SOUNDPRIORITY_MISC_LOW); }
global void TermSndDrv() { KillAllSounds(); DoSound(STerminate); #ifdef AMIGA if(dummysoundbank) { FreeMem(dummysoundbank,dsoundsize); dummysoundbank = NULL; } #endif }
void SecurityCamera::StartLoopSound() { if (m_hLoopSound) return; KillAllSounds(); uint32 dwFlags = (PLAYSOUND_LOOP | PLAYSOUND_GETHANDLE); m_hLoopSound = g_pServerSoundMgr->PlaySoundFromPos(m_vPos, LOOP_SOUND, m_fSoundRadius, SOUNDPRIORITY_MISC_LOW, dwFlags); }
void CBSprite::Reset() { if(m_Frames.GetSize()>0) m_CurrentFrame = 0; else m_CurrentFrame = -1; KillAllSounds(); m_LastFrameTime = 0; m_Finished = false; m_MoveX = m_MoveY = 0; }
void SecurityCamera::StartFocusingSound() { KillAllSounds(); // Turn on Yellow sprite... TurnLightOn(); SetLightColor(eYellow); uint32 dwFlags = (PLAYSOUND_LOOP | PLAYSOUND_GETHANDLE); m_hFocusingSound = g_pServerSoundMgr->PlaySoundFromPos(m_vPos, FOCUSING_SOUND, m_fSoundRadius, SOUNDPRIORITY_MISC_LOW, dwFlags); }
HRESULT CBSprite::Display(int X, int Y, CBObject* Register, float ZoomX, float ZoomY, DWORD Alpha, float Rotate, TSpriteBlendMode BlendMode) { if(m_CurrentFrame<0 || m_CurrentFrame>=m_Frames.GetSize()) return S_OK; // on change... if(m_Changed) { if(m_Frames[m_CurrentFrame]->m_KillSound) { KillAllSounds(); } ApplyEvent("FrameChanged"); m_Frames[m_CurrentFrame]->OneTimeDisplay(m_Owner, Game->m_EditorMode && m_EditorMuted); } // draw frame return m_Frames[m_CurrentFrame]->Draw(X - Game->m_OffsetX, Y - Game->m_OffsetY, Register, ZoomX, ZoomY, m_Precise, Alpha, m_EditorAllFrames, Rotate, BlendMode); }
global void KRestartGame() { /* Get rid of our internal stuff. */ static int varyList[] = {1,PALVARYKILL}; DoSound(SProcess,FALSE); gameRestarted = 1; gameStarted = FALSE; /* Turn off PalVary */ if (palVaryOn) { palVaryOn = FALSE; palettePercent = 0; KPalVary(varyList); } KillAllSounds(); DisposeAllScripts(); DisposeLastCast(); /* SetDebug(FALSE); */ /* free all memory */ ResUnLoad(RES_MEM, ALL_IDS); /* Restore the heap and saved vars to what they were before the call * to PMachine. */ RestartHeap(); /* Regenerate the 'patchable resources' table */ InitPatches(); InitMenu(); DoSound(SProcess,TRUE); DoSound(SSetReverb,0); reverbDefault = 0; /* Now restore the stack and restart the PMachine. */ longjmp(restartBuf, 1); }
void SecurityCamera::StartFocusingSound() { KillAllSounds(); // Turn on the red sprite... if (m_hLight) { uint32 dwFlags = g_pLTServer->GetObjectFlags(m_hLight); dwFlags |= FLAG_VISIBLE; g_pLTServer->SetObjectFlags(m_hLight, dwFlags); char buf[128]; g_pServerButeMgr->GetSecurityCameraString("YellowLight", buf, ARRAY_LEN(buf)); g_pLTServer->SetObjectFilenames(m_hLight, buf, ""); } uint32 dwFlags = (PLAYSOUND_LOOP | PLAYSOUND_GETHANDLE); m_hFocusingSound = g_pServerSoundMgr->PlaySoundFromPos(m_vPos, FOCUSING_SOUND, m_fSoundRadius, SOUNDPRIORITY_MISC_LOW, dwFlags); }
void SecurityCamera::SetState(State eNewState) { if (m_eState == eNewState) return; // Handle switching to the new state... switch (eNewState) { case eStateDestroyed: { // Turn off the sprite... if (m_hLight) { uint32 dwFlags = g_pLTServer->GetObjectFlags(m_hLight); dwFlags &= ~FLAG_VISIBLE; g_pLTServer->SetObjectFlags(m_hLight, dwFlags); } SetDestroyedModel(); // Camera can't be disabled now... uint32 dwUserFlags = g_pLTServer->GetObjectUserFlags(m_hObject); g_pLTServer->SetObjectUserFlags(m_hObject, dwUserFlags & ~USRFLG_GADGET_CAMERA_DISABLER); KillAllSounds(); } break; case eStateOff: { KillAllSounds(); // Leave the light on if the camera was tripped... if (!m_bTripped) { // Turn off the light... if (m_hLight) { uint32 dwFlags = g_pLTServer->GetObjectFlags(m_hLight); if (dwFlags & FLAG_VISIBLE) { dwFlags &= ~FLAG_VISIBLE; } g_pLTServer->SetObjectFlags(m_hLight, dwFlags); } } } break; case eStateDisabled: { SetupDisabledState(); return; // Don't change states... } break; case eStateFocusing: { // If we're in the detected state, don't re-focus... if (m_eState == eStateDetected) return; StartFocusingSound(); } break; case eStateDetected: { // Turn on Red sprite... if (m_hLight) { uint32 dwFlags = g_pLTServer->GetObjectFlags(m_hLight); dwFlags |= FLAG_VISIBLE; g_pLTServer->SetObjectFlags(m_hLight, dwFlags); char buf[128]; g_pServerButeMgr->GetSecurityCameraString("RedLight", buf, ARRAY_LEN(buf)); g_pLTServer->SetObjectFilenames(m_hLight, buf, ""); } } break; case eStateReset: { m_bTripped = LTFALSE; // Reset the camera... if (m_fYaw > m_fYaw1) { m_ePreviousState = eStatePausingAt1; m_eState = eStateTurningTo2; UpdateSounds(m_ePreviousState); } else { m_ePreviousState = eStatePausingAt1; m_eState = eStatePausingAt1; } SetNextUpdate(0.001f); // Make sure we processes detection... m_bCanProcessDetection = LTTRUE; return; } break; default : break; } m_ePreviousState = m_eState; m_eState = eNewState; }
void SecurityCamera::SetState(State eNewState) { // If we are destroyed we can't go into any other state... if( m_eState == eStateDestroyed ) return; if (m_eState == eNewState) return; // Handle switching to the new state... switch (eNewState) { case eStateDestroyed: { // Turn off the sprite... TurnLightOn(LTFALSE); SetDestroyedModel(); // Stop sensing. EnableSensing( LTFALSE ); // Camera can't be disabled now... g_pCommonLT->SetObjectFlags(m_hObject, OFT_User, 0, USRFLG_GADGET_CAMERA_DISABLER); KillAllSounds(); } break; case eStateOff: { KillAllSounds(); // Stop sensing. EnableSensing( LTFALSE ); // Leave the light on if the camera was tripped... if (!m_bTripped) { // Turn off the light... TurnLightOn(LTFALSE); } } break; case eStateDisabled: { // Stop sensing. EnableSensing( LTFALSE ); SetupDisabledState(); TurnLightOn(); SetLightColor( eBlue ); return; // Don't change states... } break; case eStateFocusing: { // Sense. EnableSensing( LTTRUE ); // If we're in the detected state, don't re-focus... if (m_eState == eStateDetected) return; StartFocusingSound(); } break; case eStateDetected: { // Sense. EnableSensing( LTTRUE ); // Turn on Red sprite... TurnLightOn(); SetLightColor(eRed); } break; case eStateReset: { // Sense. EnableSensing( LTTRUE ); m_bTripped = LTFALSE; // Reset the camera... if (m_fYaw > m_fYaw1) { m_ePreviousState = eStatePausingAt1; m_eState = eStateTurningTo2; UpdateSounds(m_ePreviousState); } else { m_ePreviousState = eStatePausingAt1; m_eState = eStatePausingAt1; } SetNextUpdate(UPDATE_NEXT_FRAME); // Make sure we processes detection... SetCanProcessDetection( LTTRUE ); return; } break; default : break; } m_ePreviousState = m_eState; m_eState = eNewState; }