Exemplo n.º 1
0
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;
	}
}
Exemplo n.º 2
0
void SecurityCamera::PlayDetectedSound()
{
	KillAllSounds();

	g_pServerSoundMgr->PlaySoundFromPos(m_vPos, DETECT_SOUND,
		m_fSoundRadius, SOUNDPRIORITY_MISC_LOW);
}
Exemplo n.º 3
0
global void TermSndDrv() {
	KillAllSounds();
	DoSound(STerminate);

	#ifdef	AMIGA
		if(dummysoundbank) {
			FreeMem(dummysoundbank,dsoundsize);
			dummysoundbank = NULL;
		}
	#endif
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 6
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);
}
Exemplo n.º 8
0
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);
}
Exemplo n.º 9
0
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);
}
Exemplo n.º 10
0
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;
}
Exemplo n.º 11
0
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;
}