Mercurial > might-and-magic-trilogy
annotate CShow.h @ 21:3fa5d0522f92
Both Bink 1.5.21.0 & 3.0.0.0 support added
author | Nomad |
---|---|
date | Sat, 13 Oct 2012 20:17:56 +0200 |
parents | 17150bdf321e |
children | d8aa322a19e5 |
rev | line source |
---|---|
0 | 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, | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
14 MOVIE_Emerald = 0x4, |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
15 MOVIE_Intro = 0x5, |
0 | 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 | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
35 const char *Name; // ecx@5 |
0 | 36 std::string v5; // [sp-18h] [bp-24h]@4 |
37 signed int v6; // [sp-Ch] [bp-18h]@10 | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
38 int ScreenSizeFlag; // [sp-8h] [bp-14h]@4 |
0 | 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 | |
2 | 44 if (pAsyncMouse) |
0 | 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; | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
53 ScreenSizeFlag = 0; |
0 | 54 v3 = 0; |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
55 Name = "3dologo"; |
0 | 56 goto LABEL_13; |
57 case MOVIE_NWCLogo: | |
58 v8 = 1; | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
59 ScreenSizeFlag = 1; |
0 | 60 v3 = 0; |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
61 Name = "new world logo"; |
0 | 62 goto LABEL_13; |
63 case MOVIE_JVC: | |
64 v8 = 1; | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
65 ScreenSizeFlag = 1; |
0 | 66 v3 = 0; |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
67 Name = "jvc"; |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
68 goto LABEL_13; |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
69 case MOVIE_Intro: |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
70 v8 = 1; |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
71 ScreenSizeFlag = 1; |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
72 v3 = 0; |
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
73 Name = "Intro"; |
0 | 74 goto LABEL_13; |
75 case MOVIE_Emerald: | |
76 v8 = 1; | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
77 ScreenSizeFlag = 1; |
0 | 78 v3 = 0; |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
79 Name = "Intro Post"; |
0 | 80 goto LABEL_13; |
81 case MOVIE_Death: | |
82 v8 = 1; | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
83 ScreenSizeFlag = 1; |
0 | 84 v6 = 2; |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
85 Name = "losegame"; |
0 | 86 goto LABEL_12; |
87 case MOVIE_Outro: | |
88 v8 = 1; | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
89 ScreenSizeFlag = 1; |
0 | 90 v6 = 20; |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
91 Name = "end_seq1"; |
0 | 92 LABEL_12: |
93 v3 = v6; | |
94 LABEL_13: | |
13
17150bdf321e
исправлено неполное воспроизведение роликов, бинков
Серик@ПончиК
parents:
2
diff
changeset
|
95 VideoPlayer::MovieLoop(Name, v3, ScreenSizeFlag, v8); |
0 | 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 { | |
2 | 103 if (pAsyncMouse) |
0 | 104 pAsyncMouse->Resume(); |
105 } | |
106 } | |
107 | |
108 | |
109 void (__thiscall ***vdestructor_ptr)(CShow *, bool); | |
110 }; | |
111 #pragma pack(pop) |