|
|
|
|
@ -77,6 +77,7 @@ BOOL SFileDdaBeginEx(HANDLE hFile, DWORD flags, DWORD mask, unsigned __int32 lDi
|
|
|
|
|
SDL_RWops *rw = SDL_RWFromConstMem(SFXbuffer, bytestoread); |
|
|
|
|
if (rw == NULL) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
SFileChunk = Mix_LoadWAV_RW(rw, 1); |
|
|
|
|
free(SFXbuffer); |
|
|
|
|
@ -526,10 +527,10 @@ private:
|
|
|
|
|
static AudioQueue *sVidAudioQueue = new AudioQueue(); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HANDLE *video) |
|
|
|
|
void SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HANDLE *video) |
|
|
|
|
{ |
|
|
|
|
if (flags & 0x10000 || flags & 0x20000000) { |
|
|
|
|
return false; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SVidLoop = flags & 0x40000; |
|
|
|
|
@ -549,7 +550,7 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
|
|
|
|
|
|
|
|
|
|
SVidSMK = smk_open_memory(SVidBuffer, bytestoread); |
|
|
|
|
if (SVidSMK == NULL) { |
|
|
|
|
return false; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
unsigned char channels[7], depth[7]; |
|
|
|
|
@ -568,17 +569,13 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
|
|
|
|
|
#ifdef USE_SDL1 |
|
|
|
|
sVidAudioQueue->Subscribe(&audioFormat); |
|
|
|
|
if (SDL_OpenAudio(&audioFormat, NULL) != 0) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
SVidRestartMixer(); |
|
|
|
|
return false; |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
SDL_PauseAudio(0); |
|
|
|
|
#else |
|
|
|
|
deviceId = SDL_OpenAudioDevice(NULL, 0, &audioFormat, NULL, 0); |
|
|
|
|
if (deviceId == 0) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
SVidRestartMixer(); |
|
|
|
|
return false; |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SDL_PauseAudioDevice(deviceId, 0); /* start audio playing. */ |
|
|
|
|
@ -598,10 +595,10 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
|
|
|
|
|
SDL_DestroyTexture(texture); |
|
|
|
|
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, SVidWidth, SVidHeight); |
|
|
|
|
if (texture == NULL) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
if (SDL_RenderSetLogicalSize(renderer, SVidWidth, SVidHeight) <= -1) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
@ -616,23 +613,18 @@ BOOL SVidPlayBegin(char *filename, int a2, int a3, int a4, int a5, int flags, HA
|
|
|
|
|
SVidWidth, |
|
|
|
|
SDL_PIXELFORMAT_INDEX8); |
|
|
|
|
if (SVidSurface == NULL) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SVidPalette = SDL_AllocPalette(256); |
|
|
|
|
if (SVidPalette == NULL) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
if (SDLC_SetSurfaceColors(SVidSurface, SVidPalette) <= -1) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
if (HaveAudio()) |
|
|
|
|
SVidRestartMixer(); |
|
|
|
|
return false; |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
SVidFrameEnd = SDL_GetTicks() * 1000 + SVidFrameLength; |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BOOL SVidLoadNextFrame() |
|
|
|
|
@ -748,7 +740,7 @@ BOOL SVidPlayContinue(void)
|
|
|
|
|
return SVidLoadNextFrame(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
BOOL SVidPlayEnd(HANDLE video) |
|
|
|
|
void SVidPlayEnd(HANDLE video) |
|
|
|
|
{ |
|
|
|
|
if (HaveAudio()) { |
|
|
|
|
#ifdef USE_SDL1 |
|
|
|
|
@ -785,15 +777,13 @@ BOOL SVidPlayEnd(HANDLE video)
|
|
|
|
|
SDL_DestroyTexture(texture); |
|
|
|
|
texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_RGB888, SDL_TEXTUREACCESS_STREAMING, SCREEN_WIDTH, SCREEN_HEIGHT); |
|
|
|
|
if (texture == NULL) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
if (renderer && SDL_RenderSetLogicalSize(renderer, SCREEN_WIDTH, SCREEN_HEIGHT) <= -1) { |
|
|
|
|
SDL_Log(SDL_GetError()); |
|
|
|
|
ErrSdl(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
DWORD SErrGetLastError() |
|
|
|
|
|