From 8a5d4db2c3d1bb672591abcf5f0ff62f5e439ea2 Mon Sep 17 00:00:00 2001 From: Zeno Rogue Date: Sat, 14 Nov 2020 13:17:55 +0100 Subject: [PATCH] shot:: default_screenshot_content now calls gamescreen, which correctly renders multi-game and some other things --- graph.cpp | 6 ++---- screenshot.cpp | 14 ++------------ 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/graph.cpp b/graph.cpp index c5cdb60f..7f46b0e4 100644 --- a/graph.cpp +++ b/graph.cpp @@ -4998,12 +4998,10 @@ EX void gamescreen(int _darken) { return; } - auto cdc = *current_display; auto gx = vid.xres; auto gy = vid.yres; if(dual::split([=] () { - *current_display = cdc; vid.xres = gx; vid.yres = gy; dual::in_subscreen([=] () { gamescreen(_darken); }); @@ -5014,7 +5012,7 @@ EX void gamescreen(int _darken) { calcparam(); - if((cmode & sm::MAYDARK) && !current_display->sidescreen) { + if((cmode & sm::MAYDARK) && !current_display->sidescreen && !inHighQual) { _darken += 2; } @@ -5039,7 +5037,7 @@ EX void gamescreen(int _darken) { buttonclicked = false; - if((cmode & sm::NORMAL) && vid.stereo_mode != sLR) { + if((cmode & sm::NORMAL) && vid.stereo_mode != sLR && !inHighQual) { if(andmode == 0 && shmup::on) { using namespace shmupballs; calc(); diff --git a/screenshot.cpp b/screenshot.cpp index 0128fda0..8d36ed24 100644 --- a/screenshot.cpp +++ b/screenshot.cpp @@ -651,16 +651,8 @@ void set_shotx() { EX int shot_aa = 1; EX void default_screenshot_content() { - #if CAP_RUG - if(rug::rugged) { - if(rug::in_crystal()) rug::physics(); - rug::drawRugScene(); - } - else - #endif - drawfullmap(); - rots::draw_underlying(false); + gamescreen(0); if(caption != "") displayfr(vid.xres/2, vid.fsize+vid.fsize/4, 3, vid.fsize*2, caption, forecolor, 8); @@ -1353,7 +1345,6 @@ EX bool record_animation() { } if(playermoved) centerpc(INF), optimizeview(); dynamicval v2(inHighQual, true); - apply(); models::configure(); if(history::on) { ld len = (isize(history::v)-1) + 2 * history::extra_line_steps; @@ -1365,8 +1356,7 @@ EX bool record_animation() { char buf[1000]; snprintf(buf, 1000, animfile.c_str(), i); - shot::take(buf); - rollback(); + shot::take(buf, content); } lastticks = ticks = SDL_GetTicks(); return true;