Mercurial > might-and-magic-trilogy
comparison CShow.h @ 0:8b8875f5b359
Initial commit
author | Nomad |
---|---|
date | Fri, 05 Oct 2012 16:07:14 +0200 |
parents | |
children | 2ca04ccb612a |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8b8875f5b359 |
---|---|
1 #pragma once | |
2 #include "VideoPlayer.h" | |
3 #include "Mouse.h" | |
4 | |
5 | |
6 | |
7 /* 302 */ | |
8 enum MovieType | |
9 { | |
10 MOVIE_Invalid = 0x0, | |
11 MOVIE_3DOLogo = 0x1, | |
12 MOVIE_NWCLogo = 0x2, | |
13 MOVIE_JVC = 0x3, | |
14 MOVIE_Intro = 0x4, | |
15 MOVIE_Emerald = 0x5, | |
16 MOVIE_Death = 0x6, | |
17 MOVIE_Outro = 0x7, | |
18 }; | |
19 | |
20 | |
21 #pragma pack(push, 1) | |
22 struct CShow | |
23 { | |
24 //----- (004A9507) -------------------------------------------------------- | |
25 CShow() {} | |
26 | |
27 //----- (004A9510) -------------------------------------------------------- | |
28 virtual ~CShow() {} | |
29 | |
30 | |
31 //----- (004A952D) -------------------------------------------------------- | |
32 void CShow::PlayMovie(MovieType eVideo, bool bShowMouseAfterPlayback) | |
33 { | |
34 int v3; // edx@5 | |
35 const char *v4; // ecx@5 | |
36 std::string v5; // [sp-18h] [bp-24h]@4 | |
37 signed int v6; // [sp-Ch] [bp-18h]@10 | |
38 int v7; // [sp-8h] [bp-14h]@4 | |
39 int v8; // [sp-4h] [bp-10h]@4 | |
40 char v9; // [sp+0h] [bp-Ch]@14 | |
41 char v10; // [sp+4h] [bp-8h]@4 | |
42 int a3; // [sp+Bh] [bp-1h]@14 | |
43 | |
44 if ( pAsyncMouse ) | |
45 pAsyncMouse->Suspend(); | |
46 switch ( eVideo ) | |
47 { | |
48 case MOVIE_Invalid: | |
49 MessageBoxW(nullptr, L"No movie", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:40", 0); | |
50 break; | |
51 case MOVIE_3DOLogo: | |
52 v8 = 1; | |
53 v7 = 0; | |
54 v3 = 0; | |
55 v4 = "3dologo"; | |
56 goto LABEL_13; | |
57 case MOVIE_NWCLogo: | |
58 v8 = 1; | |
59 v7 = 1; | |
60 v3 = 0; | |
61 v4 = "new world logo"; | |
62 goto LABEL_13; | |
63 case MOVIE_JVC: | |
64 v8 = 1; | |
65 v7 = 1; | |
66 v3 = 0; | |
67 v4 = "jvc"; | |
68 goto LABEL_13; | |
69 case MOVIE_Emerald: | |
70 v8 = 1; | |
71 v7 = 1; | |
72 v3 = 0; | |
73 v4 = "Intro"; | |
74 goto LABEL_13; | |
75 case MOVIE_Intro: | |
76 v8 = 1; | |
77 v7 = 1; | |
78 v3 = 0; | |
79 v4 = "Intro Post"; | |
80 goto LABEL_13; | |
81 case MOVIE_Death: | |
82 v8 = 1; | |
83 v7 = 1; | |
84 v6 = 2; | |
85 v4 = "losegame"; | |
86 goto LABEL_12; | |
87 case MOVIE_Outro: | |
88 v8 = 1; | |
89 v7 = 1; | |
90 v6 = 20; | |
91 v4 = "end_seq1"; | |
92 LABEL_12: | |
93 v3 = v6; | |
94 LABEL_13: | |
95 VideoPlayer::MovieLoop(v4, v3, v7, v8); | |
96 break; | |
97 default: | |
98 MessageBoxW(nullptr, L"Invalid movie requested in CShow::Run()", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Show.cpp:72", 0); | |
99 break; | |
100 } | |
101 if ( bShowMouseAfterPlayback ) | |
102 { | |
103 if ( pAsyncMouse ) | |
104 pAsyncMouse->Resume(); | |
105 } | |
106 } | |
107 | |
108 | |
109 void (__thiscall ***vdestructor_ptr)(CShow *, bool); | |
110 }; | |
111 #pragma pack(pop) |