Browse Source

Handle gbQuietMode for paths in StartGame

pull/4991/head
obligaron 5 years ago
parent
commit
bab9baa42a
  1. 48
      Source/diablo.cpp
  2. 2
      Source/engine/demomode.cpp
  3. 6
      Source/gamemenu.cpp
  4. 12
      Source/init.cpp
  5. 61
      Source/interfac.cpp

48
Source/diablo.cpp

@ -153,7 +153,7 @@ void StartGame(interface_mode uMsg)
#ifdef _DEBUG
LoadDebugGFX();
#endif
assert(ghMainWnd);
assert(gbQuietMode || ghMainWnd);
music_stop();
InitMonsterHealthBar();
InitXPBar();
@ -693,16 +693,20 @@ void GameEventHandler(uint32_t uMsg, int32_t wParam, int32_t lParam)
if (gbIsMultiplayer)
pfile_write_hero();
nthread_ignore_mutex(true);
PaletteFadeOut(8);
sound_stop();
if (!gbQuietMode) {
PaletteFadeOut(8);
sound_stop();
}
LastMouseButtonAction = MouseActionType::None;
sgbMouseDown = CLICK_NONE;
ShowProgress((interface_mode)uMsg);
force_redraw = 255;
DrawAndBlit();
LoadPWaterPalette();
if (gbRunGame)
PaletteFadeIn(8);
if (!gbQuietMode) {
DrawAndBlit();
LoadPWaterPalette();
if (gbRunGame)
PaletteFadeIn(8);
}
nthread_ignore_mutex(false);
gbGameLoopStartup = true;
return;
@ -719,17 +723,19 @@ void RunGameLoop(interface_mode uMsg)
nthread_ignore_mutex(true);
StartGame(uMsg);
assert(ghMainWnd);
assert(gbQuietMode || ghMainWnd);
EventHandler previousHandler = SetEventHandler(GameEventHandler);
run_delta_info();
gbRunGame = true;
gbProcessPlayers = true;
gbRunGameResult = true;
force_redraw = 255;
DrawAndBlit();
LoadPWaterPalette();
PaletteFadeIn(8);
force_redraw = 255;
if (!gbQuietMode) {
force_redraw = 255;
DrawAndBlit();
LoadPWaterPalette();
PaletteFadeIn(8);
force_redraw = 255;
}
gbGameLoopStartup = true;
nthread_ignore_mutex(false);
@ -798,13 +804,15 @@ void RunGameLoop(interface_mode uMsg)
sfile_write_stash();
}
PaletteFadeOut(8);
NewCursor(CURSOR_NONE);
ClearScreenBuffer();
force_redraw = 255;
scrollrt_draw_game_screen();
if (!gbQuietMode) {
PaletteFadeOut(8);
NewCursor(CURSOR_NONE);
ClearScreenBuffer();
force_redraw = 255;
scrollrt_draw_game_screen();
}
previousHandler = SetEventHandler(previousHandler);
assert(previousHandler == GameEventHandler);
assert(gbQuietMode || previousHandler == GameEventHandler);
FreeGame();
if (cineflag) {
@ -2299,7 +2307,7 @@ void LoadGameLevel(bool firstflag, lvl_entry lvldir)
IncProgress();
IncProgress();
if (firstflag) {
if (firstflag && !gbQuietMode) {
InitControlPan();
}
IncProgress();

2
Source/engine/demomode.cpp

@ -173,7 +173,7 @@ bool GetRunGameLoop(bool &drawGame, bool &processInput)
app_fatal("Unexpected Message");
if (Timedemo) {
// disable additonal rendering to speedup replay
drawGame = dmsg.type == DemoMsgType::GameTick;
drawGame = dmsg.type == DemoMsgType::GameTick && !gbQuietMode;
} else {
int currentTickCount = SDL_GetTicks();
int ticksElapsed = currentTickCount - DemoModeLastTick;

6
Source/gamemenu.cpp

@ -101,8 +101,10 @@ void GamemenuNewGame(bool /*bActivate*/)
}
MyPlayerIsDead = false;
force_redraw = 255;
scrollrt_draw_game_screen();
if (!gbQuietMode) {
force_redraw = 255;
scrollrt_draw_game_screen();
}
CornerStone.activated = false;
gbRunGame = false;
gamemenu_off();

12
Source/init.cpp

@ -187,12 +187,14 @@ void LoadGameArchives()
if (spawn_mpq)
gbIsSpawn = true;
}
SDL_RWops *handle = OpenAsset("ui_art\\title.pcx");
if (handle == nullptr) {
LogError("{}", SDL_GetError());
InsertCDDlg(_("diabdat.mpq or spawn.mpq"));
if (!gbQuietMode) {
SDL_RWops *handle = OpenAsset("ui_art\\title.pcx");
if (handle == nullptr) {
LogError("{}", SDL_GetError());
InsertCDDlg(_("diabdat.mpq or spawn.mpq"));
}
SDL_RWclose(handle);
}
SDL_RWclose(handle);
hellfire_mpq = LoadMPQ(paths, "hellfire.mpq");
if (hellfire_mpq)

61
Source/interfac.cpp

@ -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);

Loading…
Cancel
Save