Movie Sequences
Overview
AVI video files for in-game cinematics are played via CMovie / Windows MCI.
Each AVI file has a matching .blp thumbnail/still image used as a fallback
when the movie cannot be played (e.g. in Web/Emscripten builds).
Note: AVI playback does not work in the Web (Emscripten) build. The
.blpthumbnails are displayed instead.
Movie Files (movie/ directory)
| Pattern | Description |
|---|---|
play101.avi / play101.blp |
Mission briefing movie for world 101 |
play*.avi / play*.blp |
Mission briefing movies (shown before specific worlds) |
win005.avi / win005.blp |
Victory cinematic for world 005 |
win129.avi / win129.blp |
Victory cinematic for milestone world 129 |
history2.avi / history2.blp |
Story / history chapter 2 cinematic |
Playback
class CMovie {
public:
BOOL Play(HWND hWnd, const char* filename);
void Stop();
BOOL IsOver(); // returns TRUE when playback ended
};
CMovie wraps the Windows MCI API (mciSendCommand with MCI_OPEN, MCI_PLAY, etc.).
Phase Integration
Movies are triggered during phase transitions:
- WM_PHASE_PLAYMOVIE (+513) — plays a pre-mission briefing movie
- WM_PHASE_WINMOVIE (+514) — plays a victory cinematic
- WM_PHASE_H0MOVIE/H1MOVIE/H2MOVIE (+525–527) — story chapter movies
When a movie ends (CMovie::IsOver() returns TRUE), CEvent automatically
transitions to the next phase via PostMessage(g_hWnd, WM_NEXT, 0, 0).