void VFmodSoundObject::MessageFunction(int iID, INT_PTR iParamA, INT_PTR iParamB)
{
  VisObject3D_cl::MessageFunction(iID, iParamA, iParamB);

  if (iID==VIS_MSG_TRIGGER)
  {
    // cache IDs to avoid string comparisons
    if (VFMOD_TRIGGER_ID_PAUSE == -1)
    {
      VFMOD_TRIGGER_ID_PAUSE = IVObjectComponent::RegisterStringID(VFMOD_TRIGGER_PAUSE);
      VFMOD_TRIGGER_ID_RESUME = IVObjectComponent::RegisterStringID(VFMOD_TRIGGER_RESUME);
    }

    // the trigger components are added by vForge and serialized if used
    VisTriggerTargetComponent_cl *pTarget = (VisTriggerTargetComponent_cl *)iParamB;
    if (pTarget->m_iComponentID==VFMOD_TRIGGER_ID_PAUSE)
      SetPaused(true);
    else if (pTarget->m_iComponentID==VFMOD_TRIGGER_ID_RESUME)
    {
      if (IsPaused())
        SetPaused(false);
      else
      {
        Helper_SetFlag(VFMOD_FLAG_PAUSED, false);
        Play();
      }
    }
    return;
  }
}
示例#2
0
void FadeMetro::onClicked(bool /*checked*/)
{
	if( m_Paused )
	{
		ReCenter();
		SetPaused(false);
	}
	else
	{
		SetPaused(true);
	}
}
示例#3
0
	// Update a song's fade status
	void Song::Update()
	{
		if (fade)
		{
			// Get fade progression from 0.0f - 1.0f depending on number of milliseconds elapsed since fade started
			float progress = min(static_cast<float>(GetTickCount() - fadeStartTick) / fadeLength, 1.0f);

			// Fade is over if progression is at 1.0f
			if (progress == 1.0f)
				fade = false;

			// Translate linear progress into a smooth sine-squared fade effect
			float volume = static_cast<float>(sin(progress * M_PI / 2));
			volume *= volume;

			// Scale volume between start and target volumes
			volume = volume * (fadeTargetVol - fadeStartVol) + fadeStartVol;

			// Alter song volume
			SetVolume(volume);

			// Post-fade processing
			if (!fade)
				SetPaused(fadePauseAfter);
		}
	}
示例#4
0
void GameModel::SetSave(SaveInfo * newSave)
{
	if(currentSave != newSave)
	{
		if(currentSave)
			delete currentSave;
		if(newSave == NULL)
			currentSave = NULL;
		else
			currentSave = new SaveInfo(*newSave);
	}

	if(currentSave && currentSave->GetGameSave())
	{
		GameSave * saveData = currentSave->GetGameSave();
		SetPaused(saveData->paused | GetPaused());
		sim->gravityMode = saveData->gravityMode;
		sim->air->airMode = saveData->airMode;
		sim->legacy_enable = saveData->legacyEnable;
		sim->water_equal_test = saveData->waterEEnabled;
		if(saveData->gravityEnable)
			sim->grav->start_grav_async();
		else
			sim->grav->stop_grav_async();
		sim->clear_sim();
		sim->Load(saveData);
	}
	notifySaveChanged();
	UpdateQuickOptions();
}
示例#5
0
void GameModel::SetSaveFile(SaveFile * newSave)
{
	SetSave(NULL);

	if(newSave && newSave->GetGameSave())
	{
		GameSave * saveData = newSave->GetGameSave();
		SetPaused(saveData->paused & GetPaused());
		sim->gravityMode = saveData->gravityMode;
		sim->air->airMode = saveData->airMode;
		sim->legacy_enable = saveData->legacyEnable;
		sim->water_equal_test = saveData->waterEEnabled;
		if(saveData->gravityEnable && !sim->grav->ngrav_enable)
		{
			sim->grav->start_grav_async();
		}
		else if(!saveData->gravityEnable && sim->grav->ngrav_enable)
		{
			sim->grav->stop_grav_async();
		}
		sim->clear_sim();
		sim->Load(saveData);
	}
	
	notifySaveChanged();
	UpdateQuickOptions();
}
示例#6
0
void CPausedContainer::FocusChanged(TDrawNow aDrawNow)
{
    SetPaused(!IsFocused());
    if (aDrawNow)
    {
        DrawNow();
    }
}
示例#7
0
文件: VoxGame.cpp 项目: Digmaster/Vox
void VoxGame::UnsetPauseMenu()
{
	m_pFrontendManager->SetFrontendScreen(FrontendScreen_None);

	SetPaused(false);

	SetGlobalBlurAmount(0.0f);

	m_pVoxWindow->TurnCursorOff();
}
示例#8
0
文件: VoxGame.cpp 项目: Digmaster/Vox
void VoxGame::SetPauseMenu()
{
	m_pFrontendManager->SetFrontendScreen(FrontendScreen_PauseMenu);

	SetPaused(true);

	SetGlobalBlurAmount(0.0015f);

	m_pVoxWindow->TurnCursorOn(true);
}
示例#9
0
void GameModel::SetSave(SaveInfo * newSave)
{
	if(currentSave != newSave)
	{
		delete currentSave;
		if(newSave == NULL)
			currentSave = NULL;
		else
			currentSave = new SaveInfo(*newSave);
	}
	delete currentFile;
	currentFile = NULL;

	if(currentSave && currentSave->GetGameSave())
	{
		GameSave * saveData = currentSave->GetGameSave();
		SetPaused(saveData->paused | GetPaused());
		sim->gravityMode = saveData->gravityMode;
		sim->air->airMode = saveData->airMode;
		sim->edgeMode = saveData->edgeMode;
		sim->legacy_enable = saveData->legacyEnable;
		sim->water_equal_test = saveData->waterEEnabled;
		sim->aheat_enable = saveData->aheatEnable;
		if(saveData->gravityEnable)
			sim->grav->start_grav_async();
		else
			sim->grav->stop_grav_async();
		sim->clear_sim();
		ren->ClearAccumulation();
		if (!sim->Load(saveData))
		{
			// This save was created before logging existed
			// Add in the correct info
			if (saveData->authors.size() == 0)
			{
				saveData->authors["type"] = "save";
				saveData->authors["id"] = newSave->id;
				saveData->authors["username"] = newSave->userName;
				saveData->authors["title"] = newSave->name;
				saveData->authors["description"] = newSave->Description;
				saveData->authors["published"] = (int)newSave->Published;
				saveData->authors["date"] = newSave->updatedDate;
			}
			// This save was probably just created, and we didn't know the ID when creating it
			// Update with the proper ID
			else if (saveData->authors.get("id", -1) == 0 || saveData->authors.get("id", -1) == -1)
			{
				saveData->authors["id"] = newSave->id;
			}
			Client::Ref().OverwriteAuthorInfo(saveData->authors);
		}
	}
	notifySaveChanged();
	UpdateQuickOptions();
}
示例#10
0
文件: VoxGame.cpp 项目: Digmaster/Vox
void VoxGame::ShowQuitPopup()
{
	CloseAllGUIWindows();

	m_pFrontendManager->SetFrontendScreen(FrontendScreen_QuitPopup);

	SetPaused(true);

	SetGlobalBlurAmount(0.0015f);

	m_pVoxWindow->TurnCursorOn(true);
}
示例#11
0
void GameModel::SetSaveFile(SaveFile * newSave)
{
	if(currentFile != newSave)
	{
		delete currentFile;
		if(newSave == NULL)
			currentFile = NULL;
		else
			currentFile = new SaveFile(*newSave);
	}
	delete currentSave;
	currentSave = NULL;

	if(newSave && newSave->GetGameSave())
	{
		GameSave * saveData = newSave->GetGameSave();
		SetPaused(saveData->paused | GetPaused());
		sim->gravityMode = saveData->gravityMode;
		sim->air->airMode = saveData->airMode;
		sim->edgeMode = saveData->edgeMode;
		sim->legacy_enable = saveData->legacyEnable;
		sim->water_equal_test = saveData->waterEEnabled;
		sim->aheat_enable = saveData->aheatEnable;
		if(saveData->gravityEnable && !sim->grav->ngrav_enable)
		{
			sim->grav->start_grav_async();
		}
		else if(!saveData->gravityEnable && sim->grav->ngrav_enable)
		{
			sim->grav->stop_grav_async();
		}
		sim->clear_sim();
		ren->ClearAccumulation();
		if (!sim->Load(saveData))
		{
			Client::Ref().OverwriteAuthorInfo(saveData->authors);
		}
	}
	
	notifySaveChanged();
	UpdateQuickOptions();
}
示例#12
0
文件: event.c 项目: joewing/xdiamonds
/** Handle a key press event. */
void HandleKeyPressEvent(XKeyEvent *event) {
   if(event->keycode == keyRight || event->keycode == keyL) {
      moveRight = 1;
   } else if(event->keycode == keyLeft || event->keycode == keyJ) {
      moveLeft = 1;
   } else if(event->keycode == keyESC) {
      shouldExit = 1;
   } else if(event->keycode == keySpace) {
      if(isPaused) {
         isPaused = 0;
      } else {
         isPaused = 1;
      }
      SetPaused(isPaused);
   } else if(event->keycode == keyBackspace) {
      EraseBall();
      UpdateLives(-1);
      SetBallForRestart();
      didDie = 1;
   }
}
示例#13
0
// process IPC message
void CSoundStreamServerSession::DispatchMessageL(const RMessage &aMessage) {
	switch (aMessage.Function()) {
		case ESoundStreamServAddSoundProvider: // add sound provider
			AddSoundProvider((ASoundProvider*)aMessage.Ptr0());
			break;
		case ESoundStreamServSetPaused: // pause/unpause
			SetPaused((TBool)aMessage.Int0());
			break;
		case ESoundStreamServOpen: // open
			Open();
			break;
		case ESoundStreamServStop: // stop
			if (initialized) {
				iStream->Stop();
			} else {
				CActiveScheduler::Stop();
			}
			break;
		default:
			// TODO: Panic here (unlikely though)
			break;
	}
}
示例#14
0
/**
 * Handles window events that come from Windows.
 */
LRESULT MainWindow::HandleMessage(UINT message, WPARAM wParam, LPARAM lParam)
{
    HWND hWnd = WindowHandle();
    int wmId = 0, wmEvent = 0;

    switch (message)
    {
        case WM_COMMAND:
            wmId = LOWORD(wParam);
            wmEvent = HIWORD(wParam);

            // Parse the menu selections:
            switch (wmId)
            {
                case IDM_ABOUT:
                    ShowAboutBox();
                    break;
                case IDM_EXIT:
                    this->Exit();
                    break;
                default:
                    return DefWindowProc(hWnd, message, wParam, lParam);
            }
            break;

        case WM_ACTIVATE:
            SetPaused(LOWORD(wParam) == WA_INACTIVE);
            break;

        case WM_SIZE:
            if (wParam == SIZE_MINIMIZED)
            {
                SetPaused(true);
                SetMinimized(true);
            }
            else if (wParam == SIZE_MAXIMIZED)
            {
                // Unpause if we are coming out of a minimize
                if (IsMinimized())
                {
                    SetPaused(false);
                    SetMinimized(false);
                }

                SetWindowResized(Size{ LOWORD(lParam), HIWORD(lParam) });
            }
            else
            {
                // Unpause if we are coming out of a minimize
                if (IsMinimized())
                {
                    SetPaused(false);
                    SetMinimized(false);
                }

                SetWindowResized(Size{ LOWORD(lParam), HIWORD(lParam) });
            }
            break;

        case WM_POWERBROADCAST:
            if (wParam == PBT_APMQUERYSUSPEND)
            {
                // The application is about to be suspended. We should prepare for
                // this event by saving any data and then pausing the game loop
                // until we come out of suspension
            }
            else if (wParam == PBT_APMRESUMESUSPEND)
            {
                // The application is being resumed from suspension. We should
                // reload any saved data and unpause the game loop
            }

        case WM_ENTERMENULOOP:
            // Pause while user is in menu
            SetPaused(true);
            break;

        case WM_EXITMENULOOP:
            // Unpause after user has exited menu
            SetPaused(false);
            break;

        case WM_ENTERSIZEMOVE:
            SetIsWindowResizing(true);
            SetPaused(true);
            break;

        case WM_EXITSIZEMOVE:
            SetIsWindowResizing(false);
            SetPaused(false);
            break;

        case WM_CLOSE:
            PostQuitMessage(0);
            break;

        case WM_DESTROY:
            PostQuitMessage(0);
            break;

        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
    }

    return 0;
}
示例#15
0
void Timer::Reset(const bool paused)
{
	m_CurrentTime = m_CountingDown ? m_TargetTime : 0;
	SetPaused(paused);
}
示例#16
0
 int run()
 {
   SetPaused(1);
   return 0;
 }
示例#17
0
void VoxGame::KeyReleased(int key, int scancode, int mods)
{
	m_pGUI->KeyReleased(key, mods);

	if (m_pGUI->IsKeyboardInteractingWithGUIComponent() && key != GLFW_KEY_ESCAPE)
	{
		return;  // For textbox entry
	}

	switch (key)
	{
		// Player movement
		case GLFW_KEY_W:
		{
			m_bKeyboardForward = false;
			break;
		}
		case GLFW_KEY_S:
		{
			m_bKeyboardBackward = false;
			break;
		}
		case GLFW_KEY_A:
		{
			m_bKeyboardLeft = false;
			m_bKeyboardStrafeLeft = false;
			break;
		}
		case GLFW_KEY_D:
		{
			m_bKeyboardRight = false;
			m_bKeyboardStrafeRight = false;
			break;
		}
		case GLFW_KEY_F:
		{
			m_bKeyboardUp = false;
			break;
		}
		case GLFW_KEY_V:
		{
			m_bKeyboardDown = false;
			break;
		}
		case GLFW_KEY_SPACE:
		{
			m_bKeyboardSpace = false;
			break;
		}
		case GLFW_KEY_ESCAPE:
		{
			m_bKeyboardMenu = false;
			break;
		}
		case GLFW_KEY_O:
		{
			if (STEAM_BUILD == false)
			{
				m_pDebugCameraOptionBox->SetToggled(true);
				CameraModeChanged();
			}
			break;
		}
		case GLFW_KEY_L:
		{
			if (STEAM_BUILD == false)
			{
				SetPaused(!IsPaused());
			}
			break;
		}
		case GLFW_KEY_P:
		{
			if (STEAM_BUILD == false)
			{
				if (m_pGUI->IsKeyboardInteractingWithGUIComponent() == false)
				{
					if (m_pMainWindow->IsVisible() == false)
					{
						ShowGUI();
					}
					else
					{
						HideGUI();
					}
				}
			}
			break;
		}

		// Game GUI
		case GLFW_KEY_I:
		{
			if (GetGameMode() == GameMode_Game)
			{
				if (m_pPlayer->IsDead() == false)
				{
					if (m_pInventoryGUI->IsLoaded())
					{
						m_pInventoryGUI->Unload();

						if (VoxGame::GetInstance()->IsGUIWindowStillDisplayed() == false)
						{
							TurnCursorOff(false);
						}
					}
					else if (m_pFrontendManager->GetFrontendScreen() == FrontendScreen_None)
					{
						m_pInventoryGUI->Load();

						m_pPlayer->StopMoving();

						TurnCursorOn(false, false);
					}
				}
			}
			break;
		}
		case GLFW_KEY_C:
		{
			if (GetGameMode() == GameMode_Game)
			{
				if (m_pPlayer->IsDead() == false)
				{
					if (m_pCharacterGUI->IsLoaded())
					{
						m_pCharacterGUI->Unload();

						if (VoxGame::GetInstance()->IsGUIWindowStillDisplayed() == false)
						{
							TurnCursorOff(false);
						}
					}
					else if (m_pFrontendManager->GetFrontendScreen() == FrontendScreen_None)
					{
						m_pCharacterGUI->Load();

						m_pPlayer->StopMoving();

						TurnCursorOn(false, false);
					}
				}
			}
			break;
		}
		case GLFW_KEY_K:
		{
			if (GetGameMode() == GameMode_Game)
			{
				if (m_pPlayer->IsDead() == false)
				{
					if (m_pQuestGUI->IsLoaded())
					{
						m_pQuestGUI->Unload();

						if (VoxGame::GetInstance()->IsGUIWindowStillDisplayed() == false)
						{
							TurnCursorOff(false);
						}
					}
					else if (m_pFrontendManager->GetFrontendScreen() == FrontendScreen_None)
					{
						m_pQuestGUI->Load();

						m_pPlayer->StopMoving();

						TurnCursorOn(false, false);
					}
				}
			}
			break;
		}

		// Number keys
		case GLFW_KEY_1:
		{
			m_pActionBar->UseActionBarslot(0);
			break;
		}		
		case GLFW_KEY_2:
		{
			m_pActionBar->UseActionBarslot(1);
			break;
		}
		case GLFW_KEY_3:
		{
			m_pActionBar->UseActionBarslot(2);
			break;
		}
		case GLFW_KEY_4:
		{
			m_pActionBar->UseActionBarslot(3);
			break;
		}
		case GLFW_KEY_5:
		{
			m_pActionBar->UseActionBarslot(4);
			break;
		}
		case GLFW_KEY_6:
		{
			m_pActionBar->UseActionBarslot(5);
			break;
		}
		case GLFW_KEY_7:
		{
			m_pActionBar->UseActionBarslot(6);
			break;
		}
		case GLFW_KEY_8:
		{
			m_pActionBar->UseActionBarslot(7);
			break;
		}
		case GLFW_KEY_9:
		{
			m_pActionBar->UseActionBarslot(8);
			break;
		}
		case GLFW_KEY_0:
		{
			m_pActionBar->UseActionBarslot(9);
			break;
		}
	}
}
示例#18
0
 int run()
 {
   SetPaused(GetPaused() ? 0 : 1);
   return 0;
 }
	void Play()
	{
		SetPaused(false);
	}
	void Pause()
	{
		SetPaused(true);
	}
void FadeFlicker::onClicked(bool /*checked*/)
{
	SetPaused( !m_Paused );
}
示例#22
0
bool ChiselServer::TogglePaused(chisel_ros::PauseService::Request& request, chisel_ros::PauseService::Response& response)
{
    SetPaused(!IsPaused());
    return true;
}