diff --git a/source/blood/src/blood.h b/source/blood/src/blood.h index 7ba2ed942..287c47863 100644 --- a/source/blood/src/blood.h +++ b/source/blood/src/blood.h @@ -85,6 +85,7 @@ struct GameInterface : ::GameInterface void faketimerhandler() override; int app_main() override; void UpdateScreenSize() override; + bool GenerateSavePic() override; void FreeGameData() override; bool validate_hud(int) override; void set_hud_layout(int size) override; diff --git a/source/blood/src/view.cpp b/source/blood/src/view.cpp index da9b99db8..a030850ef 100644 --- a/source/blood/src/view.cpp +++ b/source/blood/src/view.cpp @@ -3064,7 +3064,7 @@ int gLastPal = 0; int32_t g_frameRate; -void viewDrawScreen(void) +void viewDrawScreen(bool sceneonly) { int nPalette = 0; static ClockTicks lastUpdate; @@ -3406,6 +3406,7 @@ void viewDrawScreen(void) renderDrawMasks(); gView->pSprite->cstat = bakCstat; screen->FinishScene(); + if (sceneonly) return; if (v78 || bDelirium) { @@ -3593,6 +3594,14 @@ void viewDrawScreen(void) UpdateDacs(nPalette); } +bool GameInterface::GenerateSavePic() +{ + viewDrawScreen(true); + return true; +} + + + int nLoadingScreenTile; char pzLoadingScreenText1[256], pzLoadingScreenText2[256], pzLoadingScreenText3[256]; diff --git a/source/blood/src/view.h b/source/blood/src/view.h index adcae4f9c..804b1d598 100644 --- a/source/blood/src/view.h +++ b/source/blood/src/view.h @@ -144,7 +144,7 @@ void viewDisplayMessage(void); void viewSetErrorMessage(const char *pMessage); void DoLensEffect(void); void UpdateDacs(int nPalette, bool bNoTint = false); -void viewDrawScreen(void); +void viewDrawScreen(bool sceneonly = false); void viewLoadingScreenWide(void); void viewLoadingScreenUpdate(const char *pzText4 = NULL, int nPercent = -1); void viewLoadingScreen(int nTile, const char *pText, const char *pText2, const char *pText3); diff --git a/source/sw/src/draw.cpp b/source/sw/src/draw.cpp index 4d5c270b8..dc1ed5609 100644 --- a/source/sw/src/draw.cpp +++ b/source/sw/src/draw.cpp @@ -2446,8 +2446,6 @@ DrawCompass(PLAYERp pp) bool GameInterface::GenerateSavePic() { - short i; - ScreenSavePic = TRUE; drawscreen(Player + myconnectindex); ScreenSavePic = FALSE;