Devilution
Diablo devolved - magic behind the 1996 computer game
movie.cpp
Go to the documentation of this file.
1 
6 #include "all.h"
7 #include "../3rdParty/Storm/Source/storm.h"
8 #include "../SourceX/display.h"
9 
11 
16 
17 void play_movie(char *pszMovie, BOOL user_can_close)
18 {
19  HANDLE video_stream;
20 
21  movie_playing = TRUE;
22  sound_disable_music(TRUE);
23  stream_stop();
24  effects_play_sound("Sfx\\Misc\\blank.wav");
25 
26  SVidPlayBegin(pszMovie, 0, 0, 0, 0, loop_movie ? 0x100C0808 : 0x10280808, &video_stream);
27  MSG Msg;
28  while (video_stream && movie_playing) {
29  while (movie_playing && PeekMessage(&Msg)) {
30  switch (Msg.message) {
31  case WM_KEYDOWN:
32  case WM_LBUTTONDOWN:
33  case WM_RBUTTONDOWN:
34  if (user_can_close || (Msg.message == WM_KEYDOWN && Msg.wParam == VK_ESCAPE))
35  movie_playing = FALSE;
36  break;
37  case WM_QUIT:
38  SVidPlayEnd(video_stream);
39  diablo_quit(0);
40  break;
41  }
42  }
43  if (!SVidPlayContinue())
44  break;
45  }
46  if (video_stream)
47  SVidPlayEnd(video_stream);
48  sound_disable_music(FALSE);
49  movie_playing = FALSE;
50  SDL_GetMouseState(&MouseX, &MouseY);
51  OutputToLogical(&MouseX, &MouseY);
52 }
53 
play_movie
void play_movie(char *pszMovie, BOOL user_can_close)
Definition: movie.cpp:17
MouseY
int MouseY
Definition: diablo.cpp:17
stream_stop
void stream_stop()
Definition: effects.cpp:932
all.h
loop_movie
BOOL loop_movie
Should the movie play in a loop.
Definition: movie.cpp:15
DEVILUTION_END_NAMESPACE
#define DEVILUTION_END_NAMESPACE
Definition: types.h:10
movie_playing
DEVILUTION_BEGIN_NAMESPACE BYTE movie_playing
Should the movie continue playing.
Definition: movie.cpp:13
effects_play_sound
void effects_play_sound(char *snd_file)
Definition: effects.cpp:1250
diablo_quit
void diablo_quit(int exitStatus)
Definition: diablo.cpp:333
DEVILUTION_BEGIN_NAMESPACE
Definition: sha.cpp:10
sound_disable_music
void sound_disable_music(BOOL disable)
MouseX
int MouseX
Definition: diablo.cpp:18