//full screenvideo functions static bool seq_StartFullScreenVideo(const char* videoName, const char* audioName, VIDEO_RESOLUTION resolution) { const char* aAudioName = NULL; int chars_printed; bHoldSeqForAudio = false; chars_printed = ssprintf(aVideoName, "%s%s", aHardPath, videoName); ASSERT(chars_printed < sizeof(aVideoName), "sequence path + name greater than max string"); //set audio path if (audioName != NULL) { sasprintf((char**)&aAudioName, "sequenceaudio/%s", audioName); } cdAudio_Pause(); iV_SetFont(font_regular); iV_SetTextColour(WZCOL_TEXT_BRIGHT); /* We do not want to enter loop_SetVideoPlaybackMode() when we are * doing intelligence videos. */ if (resolution == VIDEO_USER_CHOSEN_RESOLUTION) { //start video mode if (loop_GetVideoMode() == 0) { // check to see if we need to pause, and set font each time cdAudio_Pause(); loop_SetVideoPlaybackMode(); iV_SetFont(font_regular); iV_SetTextColour(WZCOL_TEXT_BRIGHT); } // set the dimensions to show full screen or native or ... seq_SetUserResolution(); } if (!seq_Play(aVideoName)) { seq_Shutdown(); return false; } if (audioName == NULL) { bAudioPlaying = false; } else { // NOT controlled by sliders for now? static const float maxVolume = 1.f; bAudioPlaying = audio_PlayStream(aAudioName, maxVolume, NULL, NULL) ? true : false; ASSERT(bAudioPlaying == true, "unable to initialise sound %s", aAudioName); } return true; }
//full screenvideo functions static bool seq_StartFullScreenVideo(QString videoName, QString audioName, VIDEO_RESOLUTION resolution) { QString aAudioName("sequenceaudio/" + audioName); bHoldSeqForAudio = false; aVideoName = QString("sequences/" + videoName); cdAudio_Pause(); iV_SetFont(font_scaled); iV_SetTextColour(WZCOL_TEXT_BRIGHT); /* We do not want to enter loop_SetVideoPlaybackMode() when we are * doing intelligence videos. */ if (resolution == VIDEO_USER_CHOSEN_RESOLUTION) { //start video mode if (loop_GetVideoMode() == 0) { // check to see if we need to pause, and set font each time cdAudio_Pause(); loop_SetVideoPlaybackMode(); iV_SetFont(font_scaled); iV_SetTextColour(WZCOL_TEXT_BRIGHT); } // set the dimensions to show full screen or native or ... seq_SetUserResolution(); } if (!seq_Play(aVideoName.toUtf8().constData())) { seq_Shutdown(); return false; } if (audioName.isEmpty()) { bAudioPlaying = false; } else { // NOT controlled by sliders for now? static const float maxVolume = 1.f; bAudioPlaying = audio_PlayStream(aAudioName.toUtf8().constData(), maxVolume, NULL, NULL) ? true : false; ASSERT(bAudioPlaying == true, "unable to initialise sound %s", aAudioName.toUtf8().constData()); } return true; }
/*! * Activation (focus change) eventhandler */ static void handleActiveEvent(SDL_ActiveEvent * activeEvent) { // Ignore focus loss through SDL_APPMOUSEFOCUS, since it mostly happens accidentialy // active.state is a bitflag! Mixed events (eg. APPACTIVE|APPMOUSEFOCUS) will thus not be ignored. if ( activeEvent->state == SDL_APPMOUSEFOCUS ) { setMouseScroll(activeEvent->gain); return; } if ( activeEvent->gain == 1 ) { debug( LOG_NEVER, "WM_SETFOCUS"); if (focusState != FOCUS_IN) { focusState = FOCUS_IN; // Don't pause in multiplayer! if (war_GetPauseOnFocusLoss() && !NetPlay.bComms) { gameTimeStart(); audio_ResumeAll(); cdAudio_Resume(); } // enable scrolling setScrollPause(false); resetScroll(); } } else { debug( LOG_NEVER, "WM_KILLFOCUS"); if (focusState != FOCUS_OUT) { focusState = FOCUS_OUT; // Don't pause in multiplayer! if (war_GetPauseOnFocusLoss() && !NetPlay.bComms) { gameTimeStop(); audio_PauseAll(); cdAudio_Pause(); } /* Have to tell the input system that we've lost focus */ inputLooseFocus(); // stop scrolling setScrollPause(true); } } }
/* Add the Intelligence Map widgets to the widget screen */ BOOL intAddIntelMap(void) { BOOL Animate = true; //check playCurrent with psCurrentMsg if (psCurrentMsg == NULL) { playCurrent = false; } else { playCurrent = true; } // Is the form already up? if(widgGetFromID(psWScreen,IDINTMAP_FORM) != NULL) { intRemoveIntelMapNoAnim(); Animate = false; } else { audio_StopAll(); } cdAudio_Pause(); //add message to indicate game is paused - single player mode if(PAUSE_DISPLAY_CONDITION) { if(widgGetFromID(psWScreen,IDINTMAP_PAUSELABEL) == NULL) { W_LABINIT sLabInit; sLabInit.id = IDINTMAP_PAUSELABEL; sLabInit.formID = 0; sLabInit.x = INTMAP_LABELX; sLabInit.y = INTMAP_LABELY+PAUSEMESSAGE_YOFFSET; sLabInit.width = INTMAP_LABELWIDTH; sLabInit.height = INTMAP_LABELHEIGHT; sLabInit.pText = _("PAUSED"); if (!widgAddLabel(psWScreen, &sLabInit)) { return false; } } } //set pause states before putting the interface up setIntelligencePauseState(); W_FORMINIT sFormInit; // Add the main Intelligence Map form sFormInit.formID = 0; sFormInit.id = IDINTMAP_FORM; sFormInit.style = WFORM_PLAIN; sFormInit.x = (SWORD)INTMAP_X; sFormInit.y = (SWORD)INTMAP_Y; sFormInit.width = INTMAP_WIDTH; sFormInit.height = INTMAP_HEIGHT; // If the window was closed then do open animation. if(Animate) { sFormInit.pDisplay = intOpenPlainForm; sFormInit.disableChildren = true; } else { // otherwise just recreate it. sFormInit.pDisplay = intDisplayPlainForm; } //sFormInit.pDisplay = intDisplayPlainForm; if (!widgAddForm(psWScreen, &sFormInit)) { return false; } if (!intAddMessageForm(playCurrent)) { return false; } if (bMultiPlayer && !MultiMenuUp && !playCurrent) { intAddMultiMenu(); } return true; }