Mercurial > mm7
annotate Bink_Smacker.cpp @ 2324:b2e3ac05f2b3
Merge
author | Grumpy7 |
---|---|
date | Thu, 27 Mar 2014 23:30:02 +0100 |
parents | aff7a7b072b7 |
children | f4af3b203f65 |
rev | line source |
---|---|
2253
aff7a7b072b7
adding _CRT_SECURE_NO_WARNINGS to get rid of a few hundrer annoying warnings + adding count parameter to swprintf
Grumpy7
parents:
2125
diff
changeset
|
1 #define _CRT_SECURE_NO_WARNINGS |
0 | 2 #include "Bink_Smacker.h" |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 int (__stdcall *smackw32_SmackSoundUseMSS)(HDIGDRIVER) = 0; | |
11 unsigned int (__stdcall *smackw32_SmackUseMMX)(unsigned int) = 0; | |
12 HSMACK (__stdcall *smackw32_SmackOpen)(HANDLE, unsigned int, unsigned int) = 0; | |
13 HSMACKBLIT (__stdcall *smackw32_SmackBlitOpen)(unsigned int) = 0; | |
14 void (__stdcall *smackw32_SmackToBuffer)(HSMACK, unsigned int, unsigned int, unsigned int, unsigned int, void *, unsigned int) = 0; | |
15 void (__stdcall *smackw32_SmackBlitSetPalette)(HSMACKBLIT, void *, unsigned int) = 0; | |
16 unsigned int (__stdcall *smackw32_SmackDoFrame)(HSMACK) = 0; | |
17 unsigned int (__stdcall *smackw32_SmackToBufferRect)(HSMACK, unsigned int) = 0; | |
18 void (__stdcall *smackw32_SmackBlit)(HSMACKBLIT, void *, unsigned int, unsigned int, unsigned int, void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) = 0; | |
19 void (__stdcall *smackw32_SmackNextFrame)(HSMACK) = 0; | |
20 unsigned int (__stdcall *smackw32_SmackWait)(HSMACK) = 0; | |
21 unsigned int (__stdcall *smackw32_SmackSoundOnOff)(HSMACK, unsigned int) = 0; | |
22 void (__stdcall *smackw32_SmackClose)(HSMACK) = 0; | |
23 void (__stdcall *smackw32_SmackBufferClose)(HSMACKBUF) = 0; | |
24 void (__stdcall *smackw32_SmackBlitClose)(HSMACKBLIT) = 0; | |
25 int (__stdcall *smackw32_SmackBlitClear)(HSMACKBLIT, unsigned short *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, int) = 0; | |
26 int (__stdcall *smackw32_SmackGoto)(_SMACK *, long) = 0; | |
343 | 27 int (__stdcall *smackw32_SmackBufferOpen)(HWND a1, long a2, long a3, long a4, long a5, long a6) = nullptr; |
2125 | 28 void(__stdcall *smackw32_SmackBufferNewPalette)(HSMACKBUF, void *, unsigned int) = nullptr; |
29 void(__stdcall *smackw32_SmackColorRemapWithTrans)(_SMACK *, void *, unsigned int, unsigned int, unsigned int) = nullptr; | |
0 | 30 void SMACKW32_DLL_Initialize() |
31 { | |
2070 | 32 HMODULE pDll = LoadLibraryW(L"SmackW32.dll"); |
33 | |
34 #define LOAD(x) smackw32_##x = (decltype(smackw32_##x))GetProcAddress(pDll, #x) | |
35 { | |
36 smackw32_SmackSoundUseMSS = (int (__stdcall *)(HDIGDRIVER))GetProcAddress(pDll, "_SmackSoundUseMSS@4"); | |
37 smackw32_SmackUseMMX = (unsigned int (__stdcall *)(unsigned int))GetProcAddress(pDll, "_SmackUseMMX@4"); | |
38 smackw32_SmackOpen = (HSMACK (__stdcall *)(HANDLE, unsigned int, unsigned int))GetProcAddress(pDll, "_SmackOpen@12"); | |
39 smackw32_SmackBlitOpen = (HSMACKBLIT (__stdcall *)(unsigned int))GetProcAddress(pDll, "_SmackBlitOpen@4"); | |
40 smackw32_SmackToBuffer = (void (__stdcall *)(HSMACK, unsigned int, unsigned int, unsigned int, unsigned int, void *, unsigned int))GetProcAddress(pDll, "_SmackToBuffer@28"); | |
41 smackw32_SmackBlitSetPalette = (void (__stdcall *)(HSMACKBLIT, void *, unsigned int))GetProcAddress(pDll, "_SmackBlitSetPalette@12"); | |
42 smackw32_SmackDoFrame = (unsigned int (__stdcall *)(HSMACK))GetProcAddress(pDll, "_SmackDoFrame@4"); | |
43 smackw32_SmackToBufferRect = (unsigned int (__stdcall *)(HSMACK, unsigned int))GetProcAddress(pDll, "_SmackToBufferRect@8"); | |
44 smackw32_SmackBlit = (void (__stdcall *)(HSMACKBLIT, void *, unsigned int, unsigned int, unsigned int, void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))GetProcAddress(pDll, "_SmackBlit@44"); | |
45 smackw32_SmackNextFrame = (void (__stdcall *)(HSMACK))GetProcAddress(pDll, "_SmackNextFrame@4"); | |
46 smackw32_SmackWait = (unsigned int (__stdcall *)(HSMACK))GetProcAddress(pDll, "_SmackWait@4"); | |
47 smackw32_SmackSoundOnOff = (unsigned int (__stdcall *)(HSMACK, unsigned int))GetProcAddress(pDll, "_SmackSoundOnOff@8"); | |
48 smackw32_SmackClose = (void (__stdcall *)(HSMACK))GetProcAddress(pDll, "_SmackClose@4"); | |
49 smackw32_SmackBufferClose = (void (__stdcall *)(HSMACKBUF))GetProcAddress(pDll, "_SmackBufferClose@4"); | |
50 smackw32_SmackBlitClose = (void (__stdcall *)(HSMACKBLIT))GetProcAddress(pDll, "_SmackBlitClose@4"); | |
51 smackw32_SmackBlitClear = (int (__stdcall *)(HSMACKBLIT, unsigned short *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, int))GetProcAddress(pDll, "_SmackBlitClear@32"); | |
52 smackw32_SmackGoto = (int (__stdcall *)(_SMACK *, long))GetProcAddress(pDll, "_SmackGoto@8"); | |
53 smackw32_SmackBufferOpen = (int (__stdcall *)(HWND, long, long, long, long, long))GetProcAddress(pDll, "_SmackBufferOpen@24"); | |
2125 | 54 smackw32_SmackBufferNewPalette = (void(__stdcall *)(HSMACKBUF, void *, unsigned int))GetProcAddress(pDll, "_SmackBufferNewPalette@12"); |
55 smackw32_SmackColorRemapWithTrans = (void(__stdcall *)(_SMACK *, void *, unsigned int, unsigned int, unsigned int))GetProcAddress(pDll, "_SmackColorRemapWithTrans@20"); | |
56 //LOAD(SmackBufferNewPalette); | |
57 //LOAD(SmackColorRemapWithTrans); | |
2070 | 58 } |
0 | 59 } |
60 | |
61 | |
62 | |
63 | |
2125 | 64 void __stdcall SmackColorRemapWithTrans(_SMACK *a1, void *a2, unsigned int a3, unsigned int a4, unsigned int a5) |
2070 | 65 { |
66 return (smackw32_SmackColorRemapWithTrans)(a1, a2, a3, a4, a5); | |
67 } | |
0 | 68 |
69 void __stdcall SmackBlitClose(HSMACKBLIT hBlit) | |
70 { | |
71 (smackw32_SmackBlitClose)(hBlit); | |
72 } | |
73 | |
74 void __stdcall SmackBufferClose(HSMACKBUF hBuf) | |
75 { | |
76 (smackw32_SmackBufferClose)(hBuf); | |
77 } | |
78 | |
79 void __stdcall SmackClose(HSMACK hSmack) | |
80 { | |
81 (smackw32_SmackClose)(hSmack); | |
82 } | |
83 | |
84 unsigned int __stdcall SmackSoundOnOff(HSMACK hSmack, unsigned int bOn) | |
85 { | |
86 return (smackw32_SmackSoundOnOff)(hSmack, bOn); | |
87 } | |
88 | |
89 unsigned int __stdcall SmackWait(HSMACK hSmack) | |
90 { | |
91 return (smackw32_SmackWait)(hSmack); | |
92 } | |
93 | |
94 void __stdcall SmackNextFrame(HSMACK hSmack) | |
95 { | |
96 (smackw32_SmackNextFrame)(hSmack); | |
97 } | |
98 | |
99 void __stdcall SmackBlit(HSMACKBLIT hBlit, void *pDest, unsigned int uDestPitch, unsigned int uDestX, unsigned int uDestY, void *pSrc, unsigned int uSrcPitch, unsigned int uSrcX, unsigned int uSrcY, unsigned int uSrcZ, unsigned int uSrcW) | |
100 { | |
101 (smackw32_SmackBlit)(hBlit, pDest, uDestPitch, uDestX, uDestY, pSrc, uSrcPitch, uSrcX, uSrcY, uSrcZ, uSrcW); | |
102 } | |
103 | |
104 unsigned int __stdcall SmackToBufferRect(HSMACK hSmack, unsigned int uSmackSurface) | |
105 { | |
106 return (smackw32_SmackToBufferRect)(hSmack, uSmackSurface); | |
107 } | |
108 | |
109 unsigned int __stdcall SmackDoFrame(HSMACK hSmack) | |
110 { | |
111 return (smackw32_SmackDoFrame)(hSmack); | |
112 } | |
113 | |
114 void __stdcall SmackBlitSetPalette(HSMACKBLIT hBlit, void *pPalette, unsigned int uPalType) | |
115 { | |
116 (smackw32_SmackBlitSetPalette)(hBlit, pPalette, uPalType); | |
117 } | |
118 | |
119 int __stdcall SmackSoundUseMSS(HDIGDRIVER hDrv) | |
120 { | |
121 return (smackw32_SmackSoundUseMSS)(hDrv); | |
122 } | |
123 | |
124 unsigned int __stdcall SmackUseMMX(unsigned int flag) | |
125 { | |
126 return (smackw32_SmackUseMMX)(flag); | |
127 } | |
128 | |
129 HSMACK __stdcall SmackOpen(HANDLE hSourceFile, unsigned int uFlags, unsigned int uExtraBuffers) | |
130 { | |
131 return (smackw32_SmackOpen)(hSourceFile, uFlags, uExtraBuffers); | |
132 } | |
133 | |
134 HSMACKBLIT __stdcall SmackBlitOpen(unsigned int uSurfaceFormat) | |
135 { | |
136 return (smackw32_SmackBlitOpen)(uSurfaceFormat); | |
137 } | |
138 | |
139 void __stdcall SmackToBuffer(HSMACK hSmack, unsigned int uX, unsigned int uY, unsigned int uPitch, unsigned int uHeight, void *pBuffer, unsigned int uFlags) | |
140 { | |
141 (smackw32_SmackToBuffer)(hSmack, uX, uY, uPitch, uHeight, pBuffer, uFlags); | |
142 } | |
143 | |
144 int __stdcall SmackBlitClear(HSMACKBLIT a1, unsigned short *pFrameData, unsigned int uTargetSurfacePitch, unsigned int uOutX, unsigned int uOutY, unsigned int uOutZ, unsigned int uOutW, int a8) | |
145 { | |
146 return (smackw32_SmackBlitClear)(a1, pFrameData, uTargetSurfacePitch, uOutX, uOutY, uOutZ, uOutW, a8); | |
147 } | |
148 | |
149 int __stdcall SmackGoto(_SMACK *a1, long a2) | |
150 { | |
151 return (smackw32_SmackGoto)(a1, a2); | |
152 } | |
153 | |
154 | |
155 int __stdcall SmackBufferOpen(HWND a1, long a2, long a3, long a4, long a5, long a6) | |
156 { | |
343 | 157 return (smackw32_SmackBufferOpen)(a1, a2, a3, a4, a5, a6); |
0 | 158 } |
159 | |
347 | 160 int __fastcall SmackVolumePan(_SMACK *a3, long a4, long a5, long a6) |
0 | 161 { |
356 | 162 //__asm int 3 |
0 | 163 return 0; |
164 } | |
165 | |
166 | |
167 // sub_4D83D0: using guessed type int __stdcall SmackBufferNewPalette(_DWORD, _DWORD, _DWORD); | |
2125 | 168 void __stdcall SmackBufferNewPalette(HSMACKBUF a1, void *a2, unsigned int a3) |
0 | 169 { |
2125 | 170 (smackw32_SmackBufferNewPalette)(a1, a2, a3); |
0 | 171 } |
172 | |
173 | |
174 | |
175 | |
176 | |
177 | |
178 | |
179 | |
180 | |
181 | |
182 | |
183 | |
184 | |
185 | |
186 | |
187 | |
188 | |
189 | |
190 | |
191 | |
192 | |
193 | |
194 | |
195 | |
196 | |
197 | |
198 | |
199 | |
200 | |
201 | |
202 | |
203 int (__stdcall *binkw32_BinkDDSurfaceType)(struct IDirectDrawSurface *) = 0; | |
204 int (__stdcall *binkw32_BinkSetSoundSystem)(void *, HDIGDRIVER) = 0; | |
205 int (__stdcall *binkw32_BinkOpenMiles)(int) = 0; | |
206 HBINK (__stdcall *binkw32_BinkOpen)(void *, unsigned int) = 0; | |
207 int (__stdcall *binkw32_BinkWait)(HBINK) = 0; | |
208 int (__stdcall *binkw32_BinkDoFrame)(HBINK) = 0; | |
209 int (__stdcall *binkw32_BinkNextFrame)(HBINK) = 0; | |
210 int (__stdcall *binkw32_BinkGetRects)(HBINK, unsigned int) = 0; | |
211 int (__stdcall *binkw32_BinkCopyToBuffer)(HBINK, void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int) = 0; | |
212 int (__stdcall *binkw32_BinkPause)(HBINK, int) = 0; | |
213 int (__stdcall *binkw32_BinkClose)(HBINK) = 0; | |
214 int (__stdcall *binkw32_BinkBufferSetOffset)(void *, int, int) = 0; | |
215 int (__stdcall *binkw32_BinkBufferSetScale)(void *, unsigned int, unsigned int) = 0; | |
216 void BINKW32_DLL_Initialize() | |
217 { | |
218 HMODULE pDll = LoadLibraryW(L"BinkW32.dll"); | |
219 | |
220 binkw32_BinkDDSurfaceType = (int (__stdcall *)(struct IDirectDrawSurface *))GetProcAddress(pDll, "_BinkDDSurfaceType@4"); | |
221 binkw32_BinkSetSoundSystem = (int (__stdcall *)(void *, HDIGDRIVER))GetProcAddress(pDll, "_BinkSetSoundSystem@8"); | |
222 binkw32_BinkOpenMiles = (int (__stdcall *)(int))GetProcAddress(pDll, "_BinkOpenMiles@4"); | |
223 binkw32_BinkOpen = (HBINK (__stdcall *)(void *, unsigned int))GetProcAddress(pDll, "_BinkOpen@8"); | |
224 binkw32_BinkWait = (int (__stdcall *)(HBINK))GetProcAddress(pDll, "_BinkWait@4"); | |
225 binkw32_BinkBufferSetOffset = (int (__stdcall *)(void *, int, int))GetProcAddress(pDll, "_BinkBufferSetOffset@12"); | |
226 binkw32_BinkBufferSetScale = (int (__stdcall *)(void *, unsigned int, unsigned int))GetProcAddress(pDll, "_BinkBufferSetScale@12"); | |
227 binkw32_BinkDoFrame = (int (__stdcall *)(HBINK))GetProcAddress(pDll, "_BinkDoFrame@4"); | |
228 binkw32_BinkNextFrame = (int (__stdcall *)(HBINK))GetProcAddress(pDll, "_BinkNextFrame@4"); | |
229 binkw32_BinkGetRects = (int (__stdcall *)(HBINK, unsigned int))GetProcAddress(pDll, "_BinkGetRects@8"); | |
230 binkw32_BinkCopyToBuffer = (int (__stdcall *)(HBINK, void *, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int))GetProcAddress(pDll, "_BinkCopyToBuffer@28"); | |
231 binkw32_BinkPause = (int (__stdcall *)(HBINK, int))GetProcAddress(pDll, "_BinkPause@8"); | |
232 binkw32_BinkClose = (int (__stdcall *)(HBINK))GetProcAddress(pDll, "_BinkClose@4"); | |
233 } | |
234 | |
235 | |
236 int __stdcall BinkPause(HBINK hBink, int bPause) | |
237 { | |
238 return (binkw32_BinkPause)(hBink, bPause); | |
239 } | |
240 | |
241 int __stdcall BinkClose(HBINK hBink) | |
242 { | |
243 return (binkw32_BinkClose)(hBink); | |
244 } | |
245 | |
246 int __stdcall BinkGetRects(HBINK hBink, unsigned int uFlags) | |
247 { | |
248 return (binkw32_BinkGetRects)(hBink, uFlags); | |
249 } | |
250 | |
251 int __stdcall BinkCopyToBuffer(HBINK hBink, void *pBuffer, unsigned int lPitch, unsigned int uNumScanlines, unsigned int uX, unsigned int uY, unsigned int uFlags) | |
252 { | |
253 return (binkw32_BinkCopyToBuffer)(hBink, pBuffer, lPitch, uNumScanlines, uX, uY, uFlags); | |
254 } | |
255 | |
256 int __stdcall BinkDoFrame(HBINK hBink) | |
257 { | |
258 return (binkw32_BinkDoFrame)(hBink); | |
259 } | |
260 | |
261 int __stdcall BinkNextFrame(HBINK hBink) | |
262 { | |
263 return (binkw32_BinkNextFrame)(hBink); | |
264 } | |
265 | |
266 HBINK __stdcall BinkOpen(void *hFileHandle, unsigned int uFlags) | |
267 { | |
268 return (binkw32_BinkOpen)(hFileHandle, uFlags); | |
269 } | |
270 | |
271 int __stdcall BinkOpenMiles(int unk) | |
272 { | |
273 return (binkw32_BinkOpenMiles)(unk); | |
274 } | |
275 | |
276 int __stdcall BinkWait(HBINK hBink) | |
277 { | |
278 return (binkw32_BinkWait)(hBink); | |
279 } | |
280 | |
281 | |
282 | |
283 int __stdcall BinkBufferSetOffset(void *pStruct, int b, int c) | |
284 { | |
285 return (binkw32_BinkBufferSetOffset)(pStruct, b, c); | |
286 } | |
287 | |
288 int __stdcall BinkBufferSetScale(void *pStruct, unsigned int uWidth, unsigned int uHeight) | |
289 { | |
290 return (binkw32_BinkBufferSetScale)(pStruct, uWidth, uHeight); | |
291 } | |
292 | |
293 int __stdcall BinkDDSurfaceType(struct IDirectDrawSurface *pDDS) | |
294 { | |
295 return (binkw32_BinkDDSurfaceType)(pDDS); | |
296 } | |
297 | |
298 int __stdcall BinkSetSoundSystem(void *pSoundSystem, HDIGDRIVER hDrv) | |
299 { | |
300 return (binkw32_BinkSetSoundSystem)(pSoundSystem, hDrv); | |
301 } | |
302 | |
303 | |
304 | |
305 | |
306 | |
307 | |
308 int __stdcall BinkGoto(_BINK *a1, long a2, long a3) | |
309 { | |
310 __asm int 3 | |
311 return 0; | |
312 } | |
313 | |
314 | |
315 | |
316 | |
317 | |
318 | |
319 | |
320 | |
321 | |
322 | |
323 | |
324 | |
325 | |
326 | |
327 | |
328 | |
329 | |
330 | |
331 | |
332 |