Beginnings of a WH40K.EXE implementation

So far, we just play the opening credits on an external video player.
I want to start loading and displaying the menus next. Perhaps I can
get the entire non-gameplay flow working?
This commit is contained in:
2018-10-13 03:24:10 +01:00
parent 019108bff8
commit 73804519b0
5 changed files with 88 additions and 2 deletions

36
internal/wh40k/videos.go Normal file
View File

@@ -0,0 +1,36 @@
package wh40k
import (
"log"
"os/exec"
)
func (w *WH40K) PlayVideo(name string, skippable bool) {
// TODO: allow the video to be skipped by pressing the ESC key or so. For
// now, skip unconditionally
if skippable {
log.Printf("TODO: Make videos conditionally skippable")
return
}
filename := w.Config.DataFile("SMK/" + name + ".smk")
if len(w.Config.VideoPlayer) == 0 {
log.Printf("Video player not configured, skipping video %v", filename)
return
}
argc := w.Config.VideoPlayer[0]
argv := append(w.Config.VideoPlayer[1:], filename)
if err := exec.Command(argc, argv...).Run(); err != nil {
log.Printf("Error playing video %v: %v", filename, err)
}
}
func (w *WH40K) PlayUnskippableVideo(name string) {
w.PlayVideo(name, false)
}
func (w *WH40K) PlaySkippableVideo(name string) {
w.PlayVideo(name, true)
}