- added savepic generation to Exhumed.

This commit is contained in:
Christoph Oelckers 2020-01-14 21:48:01 +01:00
parent 8db6a4331b
commit 5739b4b024
3 changed files with 20 additions and 24 deletions

View file

@ -275,6 +275,7 @@ struct GameInterface : ::GameInterface
{ {
int app_main() override; int app_main() override;
void UpdateScreenSize() override; void UpdateScreenSize() override;
bool GenerateSavePic() override;
bool validate_hud(int) override { return true; } bool validate_hud(int) override { return true; }
void set_hud_layout(int size) override {} void set_hud_layout(int size) override {}
void set_hud_scale(int size) override {} void set_hud_scale(int size) override {}

View file

@ -357,7 +357,7 @@ static inline fix16_t q16angle_interpolate16(fix16_t a, fix16_t b, int smooth)
return a + mulscale16(((b+F16(1024)-a)&0x7FFFFFF)-F16(1024), smooth); return a + mulscale16(((b+F16(1024)-a)&0x7FFFFFF)-F16(1024), smooth);
} }
void DrawView(int smoothRatio) void DrawView(int smoothRatio, bool sceneonly)
{ {
int playerX; int playerX;
int playerY; int playerY;
@ -366,27 +366,14 @@ void DrawView(int smoothRatio)
fix16_t nAngle; fix16_t nAngle;
fix16_t pan; fix16_t pan;
#if 0
if (bgpages <= 0) if (!sceneonly)
{
if (textpages > 0)
{
textpages--;
FlushMessageLine();
}
}
else
{ {
RefreshBackground(); RefreshBackground();
bgpages--;
}
#else
//FlushMessageLine();
RefreshBackground();
#endif
if (!bFullScreen) { if (!bFullScreen) {
MaskStatus(); MaskStatus();
}
} }
zbob = Sin(2 * bobangle) >> 3; zbob = Sin(2 * bobangle) >> 3;
@ -395,7 +382,7 @@ void DrawView(int smoothRatio)
int nPlayerOldCstat = sprite[nPlayerSprite].cstat; int nPlayerOldCstat = sprite[nPlayerSprite].cstat;
int nDoppleOldCstat = sprite[nDoppleSprite[nLocalPlayer]].cstat; int nDoppleOldCstat = sprite[nDoppleSprite[nLocalPlayer]].cstat;
if (nSnakeCam >= 0) if (nSnakeCam >= 0 && !sceneonly)
{ {
int nSprite = SnakeList[nSnakeCam].nSprites[0]; int nSprite = SnakeList[nSnakeCam].nSprites[0];
@ -438,9 +425,9 @@ void DrawView(int smoothRatio)
nCameraa = nAngle; nCameraa = nAngle;
if (!bCamera || nFreeze) if (!bCamera || nFreeze || sceneonly)
{ {
if (nSnakeCam >= 0) if (nSnakeCam >= 0 && !sceneonly)
{ {
pan = F16(92); pan = F16(92);
viewz = playerZ; viewz = playerZ;
@ -602,7 +589,7 @@ void DrawView(int smoothRatio)
} }
} }
} }
else else if (!sceneonly)
{ {
if (nSnakeCam < 0) if (nSnakeCam < 0)
{ {
@ -637,6 +624,14 @@ void DrawView(int smoothRatio)
flash = 0; flash = 0;
} }
bool GameInterface::GenerateSavePic()
{
DrawView(65536, true);
return true;
}
void NoClip() void NoClip()
{ {
videoSetViewableArea(0, 0, xdim - 1, ydim - 1); videoSetViewableArea(0, 0, xdim - 1, ydim - 1);

View file

@ -35,7 +35,7 @@ extern short bCamera;
void InitView(); void InitView();
void SetView1(); void SetView1();
void RefreshBackground(); void RefreshBackground();
void DrawView(int smoothRatio); void DrawView(int smoothRatio, bool sceneonly = false);
void MySetView(int x1, int y1, int x2, int y2); void MySetView(int x1, int y1, int x2, int y2);
void ResetView(); void ResetView();
void NoClip(); void NoClip();