Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes for campaign mods #3813

Merged
merged 8 commits into from
May 20, 2024

Conversation

past-due
Copy link
Member

@past-due past-due commented May 19, 2024

  • campaign.cpp: Fix crash resetting tweak options to defaults
    • If some were excluded from display / skipped
  • Fix VideoProvider leaks
    • which could lead to issues unloading a campaign mod (if it provided its own videos)
  • videoLoop: Fix skipping videos (when multiple video sequences are queued)
  • Improve onDemandVideoProvider failure handling
  • seqPlayOrQueueFetch: Remove old "novideo.ogg" hack, silence logs for requests for "novideo.ogg" / "novideo.ogv" (or if falling back to on-demand provider)
  • seq_StartFullScreenVideo: Only start loop video playback mode if seqPlayOrQueueFetch succeeds
    • This avoids a blank screen / flicker for a frame if the video can't be loaded (and means we can safely attempt to start a fullscreen video without knowing whether videos are installed or not)

With these changes, seq_hasVideos() should generally only be used for notifying the user now.

(seq_hasVideos() itself only does detection for built-in campaign videos, but it's possible that a campaign mod might bundle its own videos - so we just want to always attempt to load the video in most cases, now that seq_StartNextFullScreenVideo() avoids triggering a blank screen / flicker if the video can't be found)

If some were excluded from display / skipped
@past-due past-due added this to the 4.5.0-beta1 milestone May 19, 2024
Which could lead to issues unloading a campaign mod (if it provided its own videos)
@past-due past-due changed the title campaign.cpp: Fix crash resetting tweak options to defaults Fixes for campaign mods May 19, 2024
@past-due past-due marked this pull request as draft May 19, 2024 18:37
@past-due past-due marked this pull request as ready for review May 19, 2024 23:17
- seqPlayOrQueueFetch: Remove old "novideo.ogg" hack, silence logs for requests for "novideo.ogg" / "novideo.ogv" (or if falling back to on-demand provider)
- seq_StartFullScreenVideo: Only start loop video playback mode if seqPlayOrQueueFetch succeeds
seq_hasVideos() should generally only be used for notifying the user now.

seq_hasVideos() itself only does detection for built-in campaign videos (but it's possible that a campaign mod might bundle its own videos - so we just want to always attempt to load the video in most cases).

seq_StartNextFullScreenVideo() now avoids triggering a blank screen / flicker if the video can't be found.
@past-due past-due merged commit 28cb1b5 into Warzone2100:master May 20, 2024
37 checks passed
@past-due past-due deleted the 2024_05_campaign_mods_fixes_1 branch May 20, 2024 19:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants