|
|
|
|
@ -220,6 +220,8 @@ void interface_msg_pump()
|
|
|
|
|
|
|
|
|
|
void IncProgress() |
|
|
|
|
{ |
|
|
|
|
if (gbQuietMode) |
|
|
|
|
return; |
|
|
|
|
interface_msg_pump(); |
|
|
|
|
if (!IsProgress) |
|
|
|
|
return; |
|
|
|
|
@ -231,6 +233,8 @@ void IncProgress()
|
|
|
|
|
|
|
|
|
|
void CompleteProgress() |
|
|
|
|
{ |
|
|
|
|
if (gbQuietMode) |
|
|
|
|
return; |
|
|
|
|
if (!IsProgress) |
|
|
|
|
return; |
|
|
|
|
while (sgdwProgress < MaxProgress) |
|
|
|
|
@ -244,35 +248,38 @@ void ShowProgress(interface_mode uMsg)
|
|
|
|
|
gbSomebodyWonGameKludge = false; |
|
|
|
|
plrmsg_delay(true); |
|
|
|
|
|
|
|
|
|
assert(ghMainWnd); |
|
|
|
|
EventHandler previousHandler = SetEventHandler(DisableInputEventHandler); |
|
|
|
|
|
|
|
|
|
interface_msg_pump(); |
|
|
|
|
ClearScreenBuffer(); |
|
|
|
|
scrollrt_draw_game_screen(); |
|
|
|
|
BlackPalette(); |
|
|
|
|
|
|
|
|
|
// Blit the background once and then free it.
|
|
|
|
|
LoadCutsceneBackground(uMsg); |
|
|
|
|
DrawCutsceneBackground(); |
|
|
|
|
if (RenderDirectlyToOutputSurface && IsDoubleBuffered()) { |
|
|
|
|
// Blit twice for triple buffering.
|
|
|
|
|
for (unsigned i = 0; i < 2; ++i) { |
|
|
|
|
if (DiabloUiSurface() == PalSurface) |
|
|
|
|
BltFast(nullptr, nullptr); |
|
|
|
|
RenderPresent(); |
|
|
|
|
DrawCutsceneBackground(); |
|
|
|
|
if (!gbQuietMode) { |
|
|
|
|
assert(ghMainWnd); |
|
|
|
|
|
|
|
|
|
interface_msg_pump(); |
|
|
|
|
ClearScreenBuffer(); |
|
|
|
|
scrollrt_draw_game_screen(); |
|
|
|
|
BlackPalette(); |
|
|
|
|
|
|
|
|
|
// Blit the background once and then free it.
|
|
|
|
|
LoadCutsceneBackground(uMsg); |
|
|
|
|
DrawCutsceneBackground(); |
|
|
|
|
if (RenderDirectlyToOutputSurface && IsDoubleBuffered()) { |
|
|
|
|
// Blit twice for triple buffering.
|
|
|
|
|
for (unsigned i = 0; i < 2; ++i) { |
|
|
|
|
if (DiabloUiSurface() == PalSurface) |
|
|
|
|
BltFast(nullptr, nullptr); |
|
|
|
|
RenderPresent(); |
|
|
|
|
DrawCutsceneBackground(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
FreeCutsceneBackground(); |
|
|
|
|
FreeCutsceneBackground(); |
|
|
|
|
|
|
|
|
|
if (IsHardwareCursor()) |
|
|
|
|
SetHardwareCursorVisible(false); |
|
|
|
|
if (IsHardwareCursor()) |
|
|
|
|
SetHardwareCursorVisible(false); |
|
|
|
|
|
|
|
|
|
PaletteFadeIn(8); |
|
|
|
|
IncProgress(); |
|
|
|
|
sound_init(); |
|
|
|
|
IncProgress(); |
|
|
|
|
PaletteFadeIn(8); |
|
|
|
|
IncProgress(); |
|
|
|
|
sound_init(); |
|
|
|
|
IncProgress(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Player &myPlayer = *MyPlayer; |
|
|
|
|
|
|
|
|
|
@ -420,9 +427,11 @@ void ShowProgress(interface_mode uMsg)
|
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
assert(ghMainWnd); |
|
|
|
|
if (!gbQuietMode) { |
|
|
|
|
assert(ghMainWnd); |
|
|
|
|
|
|
|
|
|
PaletteFadeOut(8); |
|
|
|
|
PaletteFadeOut(8); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
previousHandler = SetEventHandler(previousHandler); |
|
|
|
|
assert(previousHandler == DisableInputEventHandler); |
|
|
|
|
|