0
|
1 #pragma once
|
|
2 #include "AIL.h"
|
|
3
|
|
4
|
|
5
|
|
6
|
|
7 void BINKW32_DLL_Initialize();
|
|
8
|
|
9
|
|
10 int __stdcall BinkDDSurfaceType(struct IDirectDrawSurface *);
|
|
11 int __stdcall BinkSetSoundSystem(void *pSoundSystem, HDIGDRIVER hDrv);
|
|
12 int __stdcall BinkOpenMiles(int);
|
|
13 HBINK __stdcall BinkOpen(void *hFileHandle, unsigned int uFlags);
|
|
14 int __stdcall BinkWait(HBINK);
|
|
15 int __stdcall BinkDoFrame(HBINK);
|
|
16 int __stdcall BinkNextFrame(HBINK);
|
|
17 int __stdcall BinkGetRects(HBINK hBink, unsigned int uFlags);
|
|
18 int __stdcall BinkCopyToBuffer(HBINK hBink, void *pBuffer, unsigned int lPitch, unsigned int uNumLines, unsigned int uX, unsigned int uY, unsigned int uFlags);
|
|
19 int __stdcall BinkPause(HBINK, int bPause);
|
|
20 int __stdcall BinkClose(HBINK);
|
|
21 int __stdcall BinkGoto(HBINK, long a2, long a3);
|
|
22
|
|
23 int __stdcall BinkBufferSetOffset(void *, int, int);
|
|
24 int __stdcall BinkBufferSetScale(void *, unsigned int uWidth, unsigned int uHeight);
|
|
25
|
|
26
|
|
27
|
|
28
|
|
29
|
|
30
|
|
31
|
|
32
|
|
33
|
|
34
|
|
35
|
|
36
|
|
37
|
|
38
|
|
39
|
|
40
|
|
41
|
|
42 void SMACKW32_DLL_Initialize();
|
|
43
|
|
44 struct _SMACK
|
|
45 {
|
|
46 unsigned int Version; // SMK2 only right now
|
|
47 unsigned int Width; // Width (1 based, 640 for example)
|
|
48 unsigned int Height; // Height (1 based, 480 for example)
|
|
49 unsigned int Frames; // Number of frames (1 based, 100 = 100 frames)
|
|
50 unsigned int MSPerFrame; // Frame Rate
|
|
51 unsigned int SmackerType; // bit 0 set=ring frame
|
|
52 unsigned int LargestInTrack[7]; // Largest single size for each track
|
|
53 unsigned int tablesize; // Size of the init tables
|
|
54 unsigned int codesize; // Compression info
|
|
55 unsigned int absize; // ditto
|
|
56 unsigned int detailsize; // ditto
|
|
57 unsigned int typesize; // ditto
|
|
58 unsigned int TrackType[7]; // high byte=0x80-Comp,0x40-PCM data,0x20-16 bit,0x10-stereo
|
|
59 unsigned int extra; // extra value (should be zero)
|
|
60 unsigned int NewPalette; // set to one if the palette changed
|
|
61 unsigned char Palette[772]; // palette data
|
|
62 unsigned int PalType; // type of palette
|
|
63 unsigned int FrameNum; // 0374 Frame Number to be displayed
|
|
64 unsigned int FrameSize; // The current frame's size in bytes
|
|
65 unsigned int SndSize; // The current frame sound tracks' size in bytes
|
|
66 int LastRectx; // 0380 Rect set in from SmackToBufferRect (X coord)
|
|
67 int LastRecty; // Rect set in from SmackToBufferRect (Y coord)
|
|
68 int LastRectw; // Rect set in from SmackToBufferRect (Width)
|
|
69 int LastRecth; // 038C Rect set in from SmackToBufferRect (Height)
|
|
70 unsigned int OpenFlags; // flags used on open
|
|
71 unsigned int LeftOfs; // Left Offset used in SmackTo
|
|
72 unsigned int TopOfs; // Top Offset used in SmackTo
|
|
73 unsigned int LargestFrameSize; // Largest frame size
|
|
74 unsigned int Highest1SecRate; // Highest 1 sec data rate
|
|
75 unsigned int Highest1SecFrame; // Highest 1 sec data rate starting frame
|
|
76 unsigned int ReadError; // Set to non-zero if a read error has ocurred
|
|
77 unsigned int addr32; // translated address for 16 bit interface
|
|
78 };
|
|
79
|
|
80
|
|
81
|
|
82 struct _SMACKBLIT
|
|
83 {
|
|
84 unsigned int Flags;
|
|
85 unsigned char *Palette;
|
|
86 unsigned int PalType;
|
|
87 unsigned short *SmoothTable;
|
|
88 unsigned short *Conv8to16Table;
|
|
89 unsigned int whichmode;
|
|
90 unsigned int palindex;
|
|
91 unsigned int t16index;
|
|
92 unsigned int smoothindex;
|
|
93 unsigned int smoothtype;
|
|
94 unsigned int firstpalette;
|
|
95 };
|
|
96
|
|
97 struct _SMACKBUF
|
|
98 {
|
|
99 unsigned int Reversed; // 1 if the buffer is upside down
|
|
100 unsigned int SurfaceType; // SMACKSURFACExxxx defines
|
|
101 unsigned int BlitType; // SMACKxxxxBLIT defines
|
|
102 unsigned int FullScreen; // 1 if full-screen
|
|
103 unsigned int Width;
|
|
104 unsigned int Height;
|
|
105 unsigned int Pitch;
|
|
106 unsigned int Zoomed;
|
|
107 unsigned int ZWidth;
|
|
108 unsigned int ZHeight;
|
|
109 unsigned int DispColors; // colors on the screen
|
|
110 unsigned int MaxPalColors; // total possible colors in palette (usually 256)
|
|
111 unsigned int PalColorsInUse; // Used colors in palette (usually 236)
|
|
112 unsigned int StartPalColor; // first usable color index (usually 10)
|
|
113 unsigned int EndPalColor; // last usable color index (usually 246)
|
|
114 RGBQUAD Palette[256];
|
|
115 unsigned int PalType;
|
|
116 unsigned int forceredraw; // force a complete redraw on next blit (for >8bit)
|
|
117 unsigned int didapalette; // force an invalidate on the next palette change
|
|
118
|
|
119 void * Buffer;
|
|
120 void * DIBRestore;
|
|
121 unsigned int OurBitmap;
|
|
122 unsigned int OrigBitmap;
|
|
123 unsigned int OurPalette;
|
|
124 unsigned int WinGDC;
|
|
125 unsigned int FullFocused;
|
|
126 unsigned int ParentHwnd;
|
|
127 unsigned int OldParWndProc;
|
|
128 unsigned int OldDispWndProc;
|
|
129 unsigned int DispHwnd;
|
|
130 unsigned int WinGBufHandle;
|
|
131 void * lpDD;
|
|
132 void * lpDDSP;
|
|
133 unsigned int DDSurfaceType;
|
|
134 struct _SMACKBLIT DDblit;
|
|
135 int ddSoftwarecur;
|
|
136 int didaddblit;
|
|
137 int lastwasdd;
|
|
138 RECT ddscreen;
|
|
139 int manyblits;
|
|
140 int * blitrects;
|
|
141 int * rectsptr;
|
|
142 int maxrects;
|
|
143 int numrects;
|
|
144 HDC lastdc;
|
|
145 };
|
2125
|
146 #define BINKFRAMERATE 0x00001000L // Override fr (call BinkFrameRate first)
|
|
147 #define BINKPRELOADALL 0x00002000L // Preload the entire animation
|
|
148 #define BINKSNDTRACK 0x00004000L // Set the track number to play
|
|
149 #define BINKOLDFRAMEFORMAT 0x00008000L // using the old Bink frame format (internal use only)
|
|
150 #define BINKRBINVERT 0x00010000L // use reversed R and B planes (internal use only)
|
|
151 #define BINKGRAYSCALE 0x00020000L // Force Bink to use grayscale
|
|
152 #define BINKNOMMX 0x00040000L // Don't use MMX
|
|
153 #define BINKNOSKIP 0x00080000L // Don't skip frames if falling behind
|
|
154 #define BINKALPHA 0x00100000L // Decompress alpha plane (if present)
|
|
155 #define BINKNOFILLIOBUF 0x00200000L // Fill the IO buffer in SmackOpen
|
|
156 #define BINKSIMULATE 0x00400000L // Simulate the speed (call BinkSim first)
|
|
157 #define BINKFILEHANDLE 0x00800000L // Use when passing in a file handle
|
|
158 #define BINKIOSIZE 0x01000000L // Set an io size (call BinkIOSize first)
|
|
159 #define BINKIOPROCESSOR 0x02000000L // Set an io processor (call BinkIO first)
|
|
160 #define BINKFROMMEMORY 0x04000000L // Use when passing in a pointer to the file
|
|
161 #define BINKNOTHREADEDIO 0x08000000L // Don't use a background thread for IO
|
|
162
|
|
163 #define BINKSURFACEFAST 0x00000000L
|
|
164 #define BINKSURFACESLOW 0x08000000L
|
|
165 #define BINKSURFACEDIRECT 0x04000000L
|
|
166
|
|
167 #define BINKCOPYALL 0x80000000L // copy all pixels (not just changed)
|
|
168 #define BINKCOPY2XH 0x10000000L // Force doubling height scaling
|
|
169 #define BINKCOPY2XHI 0x20000000L // Force interleaving height scaling
|
|
170 #define BINKCOPY2XW 0x30000000L // copy the width zoomed by two
|
|
171 #define BINKCOPY2XWH 0x40000000L // copy the width and height zoomed by two
|
|
172 #define BINKCOPY2XWHI 0x50000000L // copy the width and height zoomed by two
|
|
173 #define BINKCOPY1XI 0x60000000L // copy the width and height zoomed by two
|
|
174 #define BINKCOPYNOSCALING 0x70000000L // Force scaling off
|
0
|
175
|
2079
|
176 #define SMACKNEEDPAN 0x00020L // Will be setting the pan
|
|
177 #define SMACKNEEDVOLUME 0x00040L // Will be setting the volume
|
|
178 #define SMACKFRAMERATE 0x00080L // Override fr (call SmackFrameRate first)
|
|
179 #define SMACKLOADEXTRA 0x00100L // Load the extra buffer during SmackOpen
|
|
180 #define SMACKPRELOADALL 0x00200L // Preload the entire animation
|
|
181 #define SMACKNOSKIP 0x00400L // Don't skip frames if falling behind
|
|
182 #define SMACKSIMULATE 0x00800L // Simulate the speed (call SmackSim first)
|
|
183 #define SMACKFILEHANDLE 0x01000L // Use when passing in a file handle
|
|
184 #define SMACKTRACK1 0x02000L // Play audio track 1
|
|
185 #define SMACKTRACK2 0x04000L // Play audio track 2
|
|
186 #define SMACKTRACK3 0x08000L // Play audio track 3
|
|
187 #define SMACKTRACK4 0x10000L // Play audio track 4
|
|
188 #define SMACKTRACK5 0x20000L // Play audio track 5
|
|
189 #define SMACKTRACK6 0x40000L // Play audio track 6
|
|
190 #define SMACKTRACK7 0x80000L // Play audio track 7
|
|
191
|
|
192
|
1035
|
193 #define SMACKBUFFER555 0x80000000
|
|
194 #define SMACKBUFFER565 0xC0000000
|
|
195
|
|
196 #define SMACKBLIT1X 1
|
|
197 #define SMACKBLIT2X 2
|
|
198 #define SMACKBLIT2XSMOOTHING 4
|
|
199 #define SMACKBLIT2XINTERLACE 8
|
0
|
200
|
|
201
|
|
202 int __stdcall SmackSoundUseMSS(HDIGDRIVER hDrv);
|
|
203 unsigned int __stdcall SmackUseMMX(unsigned int flag);
|
|
204 HSMACK __stdcall SmackOpen(HANDLE hSourceFile, unsigned int uFlags, unsigned int uExtraBuffers);
|
|
205 HSMACKBLIT __stdcall SmackBlitOpen(unsigned int uSurfaceFormat);
|
|
206 void __stdcall SmackToBuffer(HSMACK, unsigned int uX, unsigned int uY, unsigned int uPitch, unsigned int uHeight, void *pBuffer, unsigned int uFlags);
|
|
207 void __stdcall SmackBlitSetPalette(HSMACKBLIT hBlit, void *pPalette, unsigned int uPalType);
|
|
208 unsigned int __stdcall SmackDoFrame(HSMACK);
|
|
209 unsigned int __stdcall SmackToBufferRect(HSMACK, unsigned int uSmackSurface);
|
|
210 void __stdcall SmackBlit(HSMACKBLIT, 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);
|
|
211 void __stdcall SmackNextFrame(HSMACK);
|
|
212 unsigned int __stdcall SmackWait(HSMACK);
|
|
213 unsigned int __stdcall SmackSoundOnOff(HSMACK, unsigned int bOn);
|
|
214 void __stdcall SmackClose(HSMACK);
|
|
215 void __stdcall SmackBufferClose(HSMACKBUF);
|
|
216 void __stdcall SmackBlitClose(HSMACKBLIT);
|
|
217 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);
|
|
218
|
|
219
|
|
220
|
|
221
|
|
222
|
|
223 int __stdcall SmackBufferOpen(HWND a1, long a2, long a3, long a4, long a5, long a6);
|
347
|
224 int __fastcall SmackVolumePan(_SMACK *a3, long a4, long a5, long a6);
|
0
|
225
|
|
226 int __stdcall SmackGoto(_SMACK *a1, long a2);
|
|
227
|
|
228 // sub_4D83D0: using guessed type int __stdcall SmackBufferNewPalette(_DWORD, _DWORD, _DWORD);
|
2125
|
229 void __stdcall SmackBufferNewPalette(HSMACKBUF a1, void *a2, unsigned int a3);
|
0
|
230
|
|
231 // sub_4D83D4: using guessed type int __stdcall SmackColorRemapWithTrans(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD);
|
2125
|
232 void __stdcall SmackColorRemapWithTrans(_SMACK *a1, void *a2, unsigned int a3, unsigned int a4, unsigned int a5);
|
0
|
233
|
|
234
|
|
235
|
|
236
|
|
237
|
|
238
|
|
239
|
|
240
|
|
241
|
|
242
|
|
243
|
|
244
|
|
245
|
|
246
|