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

2
Source/engine/demomode.cpp

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

6
Source/gamemenu.cpp

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

12
Source/init.cpp

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

61
Source/interfac.cpp

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

Loading…
Cancel
Save