0
|
1 #pragma once
|
|
2 #include "OSAPI.h"
|
|
3
|
|
4 #include "Texture.h"
|
|
5 #include "mm7_data.h"
|
|
6
|
|
7
|
|
8
|
|
9 #pragma pack(push, 1)
|
|
10
|
|
11
|
|
12
|
|
13 struct _BINK
|
|
14 {
|
|
15 int Width;
|
|
16 int Height;
|
|
17 int Frame;
|
|
18 int CurrentFrame;
|
|
19 int Data1;
|
|
20 int FrameRate;
|
|
21 int field_18[3];
|
|
22 int Flags;
|
|
23 };
|
|
24
|
|
25 struct _BINKBUF
|
|
26 {
|
|
27 int uWidth;
|
|
28 int uHeight;
|
|
29 int field_8;
|
|
30 int field_C;
|
|
31 int uBinkDDSurfaceType;
|
|
32 void *pDDrawSurfaceData;
|
|
33 int uDDrawSurfacePitch;
|
|
34 int field_1C;
|
|
35 int field_20;
|
|
36 int field_24;
|
|
37 int field_28;
|
|
38 int field_2C;
|
|
39 int field_30;
|
|
40 int field_34;
|
|
41 int field_38;
|
|
42 int field_3C;
|
|
43 int field_40;
|
|
44 int field_44;
|
|
45 struct IDirectDrawSurface *pTargetDDrawSurface;
|
|
46 int field_4C;
|
|
47 int uRectX;
|
|
48 int uRectY;
|
|
49 HWND hWnd;
|
|
50 int field_5C;
|
|
51 float field_60;
|
|
52 float field_64;
|
|
53 int field_68;
|
|
54 int field_6C;
|
|
55 void *pDDrawSurfaceData_;
|
|
56 int field_74;
|
|
57 int field_78;
|
|
58 };
|
|
59 #pragma pack(pop)
|
|
60
|
|
61
|
|
62
|
|
63
|
|
64 #pragma pack(push, 1)
|
|
65 struct MovieHeader
|
|
66 {
|
|
67 char pVideoName[40];
|
|
68 unsigned int uFileOffset;
|
|
69 };
|
|
70 #pragma pack(pop)
|
|
71
|
|
72
|
|
73
|
|
74
|
|
75
|
|
76 void __cdecl ShowIntroVideo_and_LoadingScreen();
|
|
77
|
|
78
|
|
79
|
|
80
|
|
81 #pragma pack(push, 1)
|
|
82 struct VideoPlayer
|
|
83 {
|
|
84 //----- (004BE6F5) --------------------------------------------------------
|
|
85 inline VideoPlayer():
|
|
86 field_54(0),
|
|
87 pBinkMovie(nullptr), pBinkBuffer(nullptr),
|
|
88 pSmackerMovie(nullptr), pSmackerBuffer(nullptr), pSmackMovieBlit(nullptr)
|
|
89 {
|
|
90 //RGBTexture::RGBTexture(&pVideoPlayer->pVideoFrame);
|
|
91 bStopBeforeSchedule = false;
|
|
92 field_40 = 0;
|
|
93 byte_F8BC0C = 0;
|
|
94 //pBinkMovie = nullptr;
|
|
95 }
|
|
96 //----- (004BECBD) --------------------------------------------------------
|
|
97 virtual ~VideoPlayer()
|
|
98 {
|
|
99 bStopBeforeSchedule = false;
|
|
100 field_40 = 0;
|
|
101 pVideoFrame.Release();
|
|
102 }
|
|
103
|
|
104 void PlayDeathMovie();
|
|
105 unsigned int SmackCheckSurfaceFromat();
|
|
106 void Initialize();
|
|
107 void Prepare();
|
|
108 void Unload();
|
|
109 void _4BECD5(unsigned int a2);
|
|
110 void BinkDrawFrame(HWND hWnd, int a3, int a4);
|
|
111 void BinkUpdatePalette(HWND hWnd) {}
|
|
112 void SmackDrawFrame(HWND hWnd, int a3, int a4);
|
|
113 void SmackUpdatePalette(HWND hWnd);
|
|
114 _BINK *OpenBink(const char *pName);
|
|
115 struct _SMACK *OpenSmack(const char *pFilename);
|
|
116 void _4BF28F(const char *pMovieName, unsigned int a3_1);
|
|
117 bool AnyMovieLoaded();
|
|
118 void OpenMovie(const char *pFilename, unsigned int bLoop, int a4);
|
|
119 void _4BF5B2();
|
|
120 void _4BF73A();
|
|
121 _BINKBUF *CreateBinkBuffer(HWND a1, unsigned int uWidth, unsigned int uHeight, char a4);
|
|
122
|
|
123 static void __fastcall MovieLoop(const char *pMovieName, int a2, int a3, int a4);
|
|
124
|
|
125
|
|
126 RGBTexture pVideoFrame;
|
|
127 struct _SMACK *pSmackerMovie;
|
|
128 struct _SMACKBUF *pSmackerBuffer;
|
|
129 char *pSomeSmackerBuffer;
|
|
130 int field_34;
|
|
131 MovieHeader *pMightVideoHeaders;
|
|
132 MovieHeader *pMagicVideoHeaders;
|
|
133 int field_40;
|
|
134 int field_44;
|
|
135 unsigned int uNumMightVideoHeaders;
|
|
136 unsigned int uNumMagicVideoHeaders;
|
|
137 int uBinkDirectDrawSurfaceType;
|
|
138 int field_54;
|
|
139 unsigned int bPlayingMovie;
|
|
140 unsigned int bFirstFrame;
|
|
141 unsigned int bUsingSmackerMMX;
|
|
142 unsigned int bLoopPlaying;
|
|
143 int field_68;
|
|
144 unsigned int bStopBeforeSchedule;
|
|
145 HWND hWindow;
|
|
146 struct _SMACKBLIT *pSmackMovieBlit;
|
|
147 HANDLE hMightVid;
|
|
148 HANDLE hMagicVid;
|
|
149 _BINK *pBinkMovie;
|
|
150 _BINKBUF *pBinkBuffer;
|
|
151 char field_88[20];
|
|
152 unsigned int uMovieFormat;
|
|
153 int dword_0000A0;
|
|
154 char pCurrentMovieName[64];
|
|
155 char pVideoFrameTextureFilename[32];
|
|
156 };
|
|
157 #pragma pack(pop)
|
|
158
|
|
159
|
|
160
|
|
161
|
|
162
|
|
163 extern VideoPlayer *pVideoPlayer;
|