Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package prboom-plus for openSUSE:Factory checked in at 2021-05-08 22:07:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/prboom-plus (Old) and /work/SRC/openSUSE:Factory/.prboom-plus.new.2988 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "prboom-plus" Sat May 8 22:07:48 2021 rev:14 rq:891546 version:2.6um+g81 Changes: -------- --- /work/SRC/openSUSE:Factory/prboom-plus/prboom-plus.changes 2021-04-12 12:39:59.381552373 +0200 +++ /work/SRC/openSUSE:Factory/.prboom-plus.new.2988/prboom-plus.changes 2021-05-08 22:09:04.189313304 +0200 @@ -1,0 +2,10 @@ +Sat May 1 13:01:20 UTC 2021 - Jan Engelhardt <[email protected]> + +- Update to snapshot 2.6um+git81 (15431b3a9aac) + * Fix sky scaling for non-standard sky sizes + * Support widescreen assets + * Add OpenGL sprite fuzz options +- Update prboom-hbar-all.diff, prboom-hbar-gradient.diff + from project. + +------------------------------------------------------------------- Old: ---- prboom-plus-2.6um+g69.tar.xz New: ---- prboom-plus-2.6um+g81.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ prboom-plus.spec ++++++ --- /var/tmp/diff_new_pack.bj3Aqg/_old 2021-05-08 22:09:04.725310983 +0200 +++ /var/tmp/diff_new_pack.bj3Aqg/_new 2021-05-08 22:09:04.725310983 +0200 @@ -17,7 +17,7 @@ Name: prboom-plus -Version: 2.6um+g69 +Version: 2.6um+g81 Release: 0 Summary: DOOM source port with demo compatibility License: GPL-2.0-or-later ++++++ _service ++++++ --- /var/tmp/diff_new_pack.bj3Aqg/_old 2021-05-08 22:09:04.753310862 +0200 +++ /var/tmp/diff_new_pack.bj3Aqg/_new 2021-05-08 22:09:04.753310862 +0200 @@ -2,9 +2,7 @@ <service name="tar_scm" mode="disabled"> <param name="scm">git</param> <param name="url">https://github.com/coelckers/prboom-plus</param> - <param name="exclude">data/sounds/dsdg*</param> - <param name="exclude">data/sprites/dogs*</param> - <param name="revision">07925d634cc4d5a8847f76ca4c4f2ce236ba6de8</param> + <param name="revision">15431b3a9aac0800c72276aa8dabb13a8f12632e</param> <param name="versionformat">2.6um+g@TAG_OFFSET@</param> </service> <service name="recompress" mode="disabled"> ++++++ prboom-hbar-all.diff ++++++ --- /var/tmp/diff_new_pack.bj3Aqg/_old 2021-05-08 22:09:04.765310810 +0200 +++ /var/tmp/diff_new_pack.bj3Aqg/_new 2021-05-08 22:09:04.765310810 +0200 @@ -1,29 +1,80 @@ -From a0bae535928cbce4eb9da8dd5d33b473776c9693 Mon Sep 17 00:00:00 2001 +From f8dc397539f27c601aa6f1f3ea0f6c1f177efd97 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt <[email protected]> Date: Wed, 1 May 2013 09:53:49 +0200 -Subject: [PATCH 1/2] Show health bar for all destructible mobjs +Subject: [PATCH 1/2] Add option to show health bar for all destructible mobjs References: https://github.com/coelckers/prboom-plus/pull/274 -Show the health bar for all destructible items, especially so -including barrels and Lost Souls. +The current health bar fails to show for Lost Souls. +In addition, showing it for other destructible objects (such as +barrels - or DEH modifications in that spirit) can be used to gauge +the objects' remaining life. --- - prboom2/src/gl_main.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + prboom2/src/gl_main.c | 10 +++++++++- + prboom2/src/m_misc.c | 2 ++ + prboom2/src/r_things.c | 1 + + prboom2/src/r_things.h | 1 + + 4 files changed, 13 insertions(+), 1 deletion(-) diff --git prboom2/src/gl_main.c prboom2/src/gl_main.c -index 20712b7e..e2402e16 100644 +index 20712b7e..763bcbae 100644 --- prboom2/src/gl_main.c +++ prboom2/src/gl_main.c -@@ -2328,7 +2328,8 @@ static void gld_DrawSprite(GLSprite *sprite) +@@ -2326,9 +2326,17 @@ static void gld_DrawSprite(GLSprite *sprite) + } + } ++static int gld_EvaluateShowBar(mobj_t* thing) ++{ ++ if (health_bar_shootables) ++ return thing->flags & MF_SHOOTABLE; ++ return (thing->flags & (MF_COUNTKILL | MF_CORPSE)) == MF_COUNTKILL; ++} ++ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite) { - if (((thing->flags & (MF_COUNTKILL | MF_CORPSE)) == MF_COUNTKILL) && (thing->health > 0)) -+ if ((thing->flags & MF_SHOOTABLE) && thing->info->spawnhealth > 0 && -+ thing->health > 0) ++ if (thing->info->spawnhealth > 0 && thing->health > 0 && ++ gld_EvaluateShowBar(thing)) { GLHealthBar hbar; int health_percent = thing->health * 100 / thing->info->spawnhealth; +diff --git prboom2/src/m_misc.c prboom2/src/m_misc.c +index 0bf3f5b9..e819ad61 100644 +--- prboom2/src/m_misc.c ++++ prboom2/src/m_misc.c +@@ -1045,6 +1045,8 @@ default_t defaults[] = + def_bool,ss_stat}, + {"health_bar_full_length", {&health_bar_full_length}, {1},0,1, + def_bool,ss_stat}, ++ {"health_bar_shootables", {&health_bar_shootables}, {0},0,1, ++ def_bool,ss_stat}, + {"health_bar_red", {&health_bar_red}, {50},0,100, + def_int,ss_stat}, + {"health_bar_yellow", {&health_bar_yellow}, {99},0,100, +diff --git prboom2/src/r_things.c prboom2/src/r_things.c +index c537dd5e..fd1215fd 100644 +--- prboom2/src/r_things.c ++++ prboom2/src/r_things.c +@@ -73,6 +73,7 @@ int sprites_doom_order; + + int health_bar; + int health_bar_full_length; ++int health_bar_shootables; + int health_bar_red; + int health_bar_yellow; + int health_bar_green; +diff --git prboom2/src/r_things.h prboom2/src/r_things.h +index 2267cb83..52e5beea 100644 +--- prboom2/src/r_things.h ++++ prboom2/src/r_things.h +@@ -75,6 +75,7 @@ extern int sprites_doom_order; + + extern int health_bar; + extern int health_bar_full_length; ++extern int health_bar_shootables; + extern int health_bar_red; + extern int health_bar_yellow; + extern int health_bar_green; -- 2.31.1 ++++++ prboom-hbar-gradient.diff ++++++ --- /var/tmp/diff_new_pack.bj3Aqg/_old 2021-05-08 22:09:04.777310758 +0200 +++ /var/tmp/diff_new_pack.bj3Aqg/_new 2021-05-08 22:09:04.777310758 +0200 @@ -1,4 +1,4 @@ -From 6566b0489164957581d091119bdf480d66e9ca20 Mon Sep 17 00:00:00 2001 +From be1128c66a342ca381532ac3c6bcd286d871fdc3 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt <[email protected]> Date: Wed, 1 May 2013 09:53:49 +0200 Subject: [PATCH 2/2] Implement color gradient for health bar @@ -23,12 +23,14 @@ float x1, x2, x3; float z1, z2, z3; diff --git prboom2/src/gl_main.c prboom2/src/gl_main.c -index e2402e16..0a257ecf 100644 +index 763bcbae..8dcb03fd 100644 --- prboom2/src/gl_main.c +++ prboom2/src/gl_main.c -@@ -2334,15 +2334,23 @@ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite) +@@ -2340,16 +2340,24 @@ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite) + { GLHealthBar hbar; int health_percent = thing->health * 100 / thing->info->spawnhealth; ++ int yr = health_bar_yellow - health_bar_red; - hbar.cm = -1; - if (health_percent <= health_bar_red) @@ -43,10 +45,9 @@ + hbar.g = 0.0f; + } else if (health_percent <= health_bar_red) { + hbar.r = 1.0f; -+ hbar.g = (double)health_percent / (health_bar_yellow - health_bar_red); ++ hbar.g = yr == 0 ? 0 : (float)health_percent / yr; + } else if (health_percent <= health_bar_yellow) { -+ hbar.r = (double)(health_bar_yellow - health_percent) / -+ (health_bar_yellow - health_bar_red); ++ hbar.r = yr == 0 ? 1 : (float)(health_bar_yellow - health_percent) / yr; + hbar.g = 1.0f; + } else if (health_percent <= health_bar_green) { + hbar.r = 0.0f; @@ -54,11 +55,11 @@ + } - if (hbar.cm >= 0) -+ if (hbar.r >= 0) ++ if (hbar.r >= 0 && hbar.g >= 0) { float sx2 = (float)thing->radius / 2.0f / MAP_SCALE; float sx1 = sx2 - (float)health_percent * (float)thing->radius / 100.0f / MAP_SCALE; -@@ -2366,7 +2374,6 @@ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite) +@@ -2373,7 +2381,6 @@ static void gld_AddHealthBar(mobj_t* thing, GLSprite *sprite) static void gld_DrawHealthBars(void) { int i, count; @@ -66,7 +67,7 @@ count = gld_drawinfo.num_items[GLDIT_HBAR]; if (count > 0) -@@ -2377,11 +2384,7 @@ static void gld_DrawHealthBars(void) +@@ -2384,11 +2391,7 @@ static void gld_DrawHealthBars(void) for (i = count - 1; i >= 0; i--) { GLHealthBar *hbar = gld_drawinfo.items[GLDIT_HBAR][i].item.hbar; ++++++ prboom-plus-2.6um+g69.tar.xz -> prboom-plus-2.6um+g81.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/ICONS/icons.rc new/prboom-plus-2.6um+g81/prboom2/ICONS/icons.rc --- old/prboom-plus-2.6um+g69/prboom2/ICONS/icons.rc 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/ICONS/icons.rc 2021-04-26 22:46:22.000000000 +0200 @@ -25,6 +25,8 @@ #ifdef _MSC_VER 1 24 MOVEABLE PURE "prboom-plus.exe.manifest" +#else +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "prboom-plus.exe.manifest" #endif IDD_LAUNCHERSERVERDIALOG DIALOGEX 0, 0, 187, 245 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/ICONS/prboom-plus.exe.manifest new/prboom-plus-2.6um+g81/prboom2/ICONS/prboom-plus.exe.manifest --- old/prboom-plus-2.6um+g69/prboom2/ICONS/prboom-plus.exe.manifest 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/ICONS/prboom-plus.exe.manifest 2021-04-26 22:46:22.000000000 +0200 @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- What's this??? It's for WinXP. See bug#466423 if you're interested --> -<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" @@ -20,4 +20,13 @@ /> </dependentAssembly> </dependency> + + <!-- Declare app as DPI aware, so that Windows Vista and later will not + apply DPI virtualization. --> + + <asmv3:application> + <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> + <dpiAware>true</dpiAware> + </asmv3:windowsSettings> + </asmv3:application> </assembly> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/data/lumps/-prbhud-.lmp new/prboom-plus-2.6um+g81/prboom2/data/lumps/-prbhud-.lmp --- old/prboom-plus-2.6um+g69/prboom2/data/lumps/-prbhud-.lmp 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/data/lumps/-prbhud-.lmp 2021-04-26 22:46:22.000000000 +0200 @@ -139,3 +139,15 @@ ;medict_icon_custom 232 -197 ;health_big -302 -198 ;medict_percent -318 -198 + +hud 13 +tracers 2 151 +hudadd 2 159 +keys 24 168 +weapon 24 177 +ammo_icon 4 -197 +ammo 24 186 +health -297 168 +medict_icon_small -315 -179 +armor -297 186 +armor_icon_small -316 -197 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/doc/umapinfo.txt new/prboom-plus-2.6um+g81/prboom2/doc/umapinfo.txt --- old/prboom-plus-2.6um+g69/prboom2/doc/umapinfo.txt 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/doc/umapinfo.txt 2021-04-26 22:46:22.000000000 +0200 @@ -65,17 +65,19 @@ endgame = false ; Ends the game after this level, showing the default post-game screen for the -; current episode. +; current episode. Skips the 'entering level' screen. endgame = true ; Ends the game after this level, showing the specified graphic as an end -; screen. +; screen. Skips the 'entering level' screen. endpic = "graphic" -; Ends the game after this level, showing the bunny scroller. +; Ends the game after this level, showing the bunny scroller. Skips the +; 'entering level' screen. endbunny = true -; Ends the game after this level, showing the cast call. +; Ends the game after this level, showing the cast call. Skips the 'entering +; level' screen. endcast = true ; Currently only working for levels that end the game: When true skips the @@ -307,10 +309,21 @@ PlasmaBall2 EvilSceptre UnholyBible + MusicChanger + Deh_Actor_145 + [...] + Deh_Actor_249 Revisions: +Rev 1.6 (@fabiangreffrath, Apr 19 2021) + * Skip the 'entering level' screen if one of endgame, endpic, endbunny or + endcast is set. + +Rev 1.5 (@Shadow-Hog, Apr 17 2021) + * Add in all the additional actor names for DEHEXTRA. + Rev 1.4 (@rfomin, Mar 23 2021) * Clarify the 'episode' field in the case of Doom 2 and Chex Quest. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/SDL/i_sound.c new/prboom-plus-2.6um+g81/prboom2/src/SDL/i_sound.c --- old/prboom-plus-2.6um+g69/prboom2/src/SDL/i_sound.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/SDL/i_sound.c 2021-04-26 22:46:22.000000000 +0200 @@ -94,11 +94,11 @@ static dboolean first_sound_init = true; // Needed for calling the actual sound output. -static int SAMPLECOUNT = 512; #define MAX_CHANNELS 32 // MWM 2000-01-08: Sample rate in samples/second int snd_samplerate = 11025; +int snd_samplecount = 512; // The actual output device. int audio_fd; @@ -678,8 +678,7 @@ /* Initialize variables */ audio_rate = snd_samplerate; audio_channels = 2; - SAMPLECOUNT = 512; - audio_buffers = SAMPLECOUNT*snd_samplerate/11025; + audio_buffers = snd_samplecount * snd_samplerate / 11025; if (Mix_OpenAudio(audio_rate, MIX_DEFAULT_FORMAT, audio_channels, audio_buffers) < 0) { @@ -690,9 +689,8 @@ } sound_inited_once = true;//e6y sound_inited = true; - SAMPLECOUNT = audio_buffers; Mix_SetPostMix(I_UpdateSound, NULL); - lprintf(LO_INFO," configured audio device with %d samples/slice\n", SAMPLECOUNT); + lprintf(LO_INFO," configured audio device with %d samples/slice\n", audio_buffers); } else #else // HAVE_MIXER @@ -707,7 +705,7 @@ audio.format = AUDIO_S16LSB; #endif audio.channels = 2; - audio.samples = SAMPLECOUNT * snd_samplerate / 11025; + audio.samples = snd_samplecount * snd_samplerate / 11025; audio.callback = I_UpdateSound; if ( SDL_OpenAudio(&audio, NULL) < 0 ) { @@ -718,8 +716,7 @@ } sound_inited_once = true;//e6y sound_inited = true; - SAMPLECOUNT = audio.samples; - lprintf(LO_INFO, " configured audio device with %d samples/slice\n", SAMPLECOUNT); + lprintf(LO_INFO, " configured audio device with %d samples/slice\n", audio.samples); } if (first_sound_init) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/d_main.c new/prboom-plus-2.6um+g81/prboom2/src/d_main.c --- old/prboom-plus-2.6um+g69/prboom2/src/d_main.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/d_main.c 2021-04-26 22:46:22.000000000 +0200 @@ -552,9 +552,9 @@ // proff - added M_DrawCredits if (pagename) { - V_DrawNamePatch(0, 0, 0, pagename, CR_DEFAULT, VPT_STRETCH); // e6y: wide-res V_FillBorder(-1, 0); + V_DrawNamePatch(0, 0, 0, pagename, CR_DEFAULT, VPT_STRETCH); } else M_DrawCredits(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/f_finale.c new/prboom-plus-2.6um+g81/prboom2/src/f_finale.c --- old/prboom-plus-2.6um+g69/prboom2/src/f_finale.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/f_finale.c 2021-04-26 22:46:22.000000000 +0200 @@ -298,8 +298,8 @@ if (gamemapinfo && W_CheckNumForName(finaleflat) != -1 && (W_CheckNumForName)(finaleflat, ns_flats) == -1) { - V_DrawNamePatch(0, 0, 0, finaleflat, CR_DEFAULT, VPT_STRETCH); V_FillBorder(-1, 0); + V_DrawNamePatch(0, 0, 0, finaleflat, CR_DEFAULT, VPT_STRETCH); } else V_DrawBackground(finaleflat, 0); @@ -593,11 +593,11 @@ int lump; dboolean flip; + // e6y: wide-res + V_FillBorder(-1, 0); // erase the entire screen to a background // CPhipps - patch drawing updated V_DrawNamePatch(0,0,0, bgcastcall, CR_DEFAULT, VPT_STRETCH); // Ty 03/30/98 bg texture extern - // e6y: wide-res - V_FillBorder(-1, 0); F_CastPrint (*(castorder[castnum].name)); @@ -618,22 +618,49 @@ static const char pfub2[] = { "PFUB2" }; static const char pfub1[] = { "PFUB1" }; -static void F_BunnyScroll (void) +void F_BunnyScroll (void) { char name[10]; int stage; static int laststage; + static int p1offset, p2width; + + if (finalecount == 0) + { + const rpatch_t *p1, *p2; + p1 = R_CachePatchName(pfub1); + p2 = R_CachePatchName(pfub2); + + p2width = p2->width; + if (p1->width == 320) + { + // Unity or original PFUBs. + p1offset = (p2width - 320) / 2; + } + else + { + // Widescreen mod PFUBs. + p1offset = 0; + } + + W_UnlockLumpName(pfub2); + W_UnlockLumpName(pfub1); + } { int scrolled = 320 - (finalecount-230)/2; if (scrolled <= 0) { V_DrawNamePatch(0, 0, 0, pfub2, CR_DEFAULT, VPT_STRETCH); } else if (scrolled >= 320) { - V_DrawNamePatch(0, 0, 0, pfub1, CR_DEFAULT, VPT_STRETCH); + V_DrawNamePatch(p1offset, 0, 0, pfub1, CR_DEFAULT, VPT_STRETCH); + if (p1offset > 0) + V_DrawNamePatch(-320, 0, 0, pfub2, CR_DEFAULT, VPT_STRETCH); } else { - V_DrawNamePatch(320-scrolled, 0, 0, pfub1, CR_DEFAULT, VPT_STRETCH); + V_DrawNamePatch(p1offset+320-scrolled, 0, 0, pfub1, CR_DEFAULT, VPT_STRETCH); V_DrawNamePatch(-scrolled, 0, 0, pfub2, CR_DEFAULT, VPT_STRETCH); } + if (p2width == 320) + V_FillBorder(-1, 0); } if (finalecount < 1130) @@ -682,6 +709,8 @@ F_TextWrite (); else { + // e6y: wide-res + V_FillBorder(-1, 0); switch (gameepisode) { // CPhipps - patch drawing updated @@ -701,7 +730,5 @@ V_DrawNamePatch(0, 0, 0, "ENDPIC", CR_DEFAULT, VPT_STRETCH); break; } - // e6y: wide-res - V_FillBorder(-1, 0); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/f_finale2.c new/prboom-plus-2.6um+g81/prboom2/src/f_finale2.c --- old/prboom-plus-2.6um+g69/prboom2/src/f_finale2.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/f_finale2.c 2021-04-26 22:46:22.000000000 +0200 @@ -49,6 +49,7 @@ void F_StartCast (void); void F_TextWrite(void); +void F_BunnyScroll(void); void WI_checkForAccelerate(void); // killough 3/28/98: used to float Get_TextSpeed(void); @@ -139,6 +140,9 @@ if (!stricmp(gamemapinfo->endpic, "$BUNNY")) { S_StartMusic(mus_bunny); + } + else if (!stricmp(gamemapinfo->endpic, "!")) + { using_FMI = false; } } @@ -161,10 +165,14 @@ { F_TextWrite(); } + else if (strcmp(gamemapinfo->endpic, "$BUNNY") == 0) + { + F_BunnyScroll(); + } else { - V_DrawNamePatch(0, 0, 0, gamemapinfo->endpic, CR_DEFAULT, VPT_STRETCH); // e6y: wide-res V_FillBorder(-1, 0); + V_DrawNamePatch(0, 0, 0, gamemapinfo->endpic, CR_DEFAULT, VPT_STRETCH); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/g_game.c new/prboom-plus-2.6um+g81/prboom2/src/g_game.c --- old/prboom-plus-2.6um+g69/prboom2/src/g_game.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/g_game.c 2021-04-26 22:46:22.000000000 +0200 @@ -3548,6 +3548,9 @@ if (fwrite(demostart, 1, demo_p-demostart, demofp) != (size_t)(demo_p-demostart)) I_Error("G_BeginRecording: Error writing demo header"); + + R_DemoEx_ResetMLook(); + free(demostart); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/gl_main.c new/prboom-plus-2.6um+g81/prboom2/src/gl_main.c --- old/prboom-plus-2.6um+g69/prboom2/src/gl_main.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/gl_main.c 2021-04-26 22:46:22.000000000 +0200 @@ -127,6 +127,14 @@ int gl_sprite_blend; // e6y: smooth sprite edges int gl_mask_sprite_threshold; float gl_mask_sprite_threshold_f; +/* Note: These must be identically-indexed, + * including the spritefuzzmode enum */ +spritefuzzmode_t gl_thingspritefuzzmode; +spritefuzzmode_t gl_weaponspritefuzzmode; +const char *gl_spritefuzzmodes[] = {"darken", "shadow", "transparent", "ghostly"}; +GLenum gl_fuzzsfactors[] = {GL_DST_COLOR, GL_ZERO, GL_ONE, GL_SRC_ALPHA}; +GLenum gl_fuzzdfactors[] = {GL_ONE_MINUS_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, + GL_ONE_MINUS_SRC_ALPHA, GL_ONE}; GLuint gld_DisplayList=0; int fog_density=200; @@ -153,6 +161,7 @@ {1.00f ,1.00f, 1.00f, 1.00f}, //CR_LIMIT }; + void SetFrameTextureMode(void) { #ifdef USE_FBO_TECHNIQUE @@ -666,6 +675,10 @@ topoffset = gltexture->topoffset; } + // [FG] automatically center wide patches without horizontal offset + if (gltexture->width > 320 && leftoffset == 0) + x -= (float)(gltexture->width - 320) / 2; + if (flags & VPT_STRETCH_MASK) { stretch_param_t *params = &stretch_params[flags & VPT_ALIGN_MASK]; @@ -885,7 +898,8 @@ // when invisibility is about to go if (/*(viewplayer->mo->flags & MF_SHADOW) && */!vis->colormap) { - glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc(gl_fuzzsfactors[gl_weaponspritefuzzmode], + gl_fuzzdfactors[gl_weaponspritefuzzmode]); glAlphaFunc(GL_GEQUAL,0.1f); //glColor4f(0.2f,0.2f,0.2f,(float)tran_filter_pct/100.0f); glColor4f(0.2f,0.2f,0.2f,0.33f); @@ -2249,7 +2263,8 @@ { glGetIntegerv(GL_BLEND_SRC, &blend_src); glGetIntegerv(GL_BLEND_DST, &blend_dst); - glBlendFunc(GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA); + glBlendFunc(gl_fuzzsfactors[gl_thingspritefuzzmode], + gl_fuzzdfactors[gl_thingspritefuzzmode]); //glColor4f(0.2f,0.2f,0.2f,(float)tran_filter_pct/100.0f); glAlphaFunc(GL_GEQUAL,0.1f); glColor4f(0.2f,0.2f,0.2f,0.33f); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/gl_sky.c new/prboom-plus-2.6um+g81/prboom2/src/gl_sky.c --- old/prboom-plus-2.6um+g69/prboom2/src/gl_sky.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/gl_sky.c 2021-04-26 22:46:22.000000000 +0200 @@ -159,12 +159,12 @@ if (!mlook_or_fov) { sx = sx / (float)wall->gltexture->buffer_width; - sy = 200.0f / 160.0f;//wall->gltexture->buffer_height; + sy = 200.0f / (wall->gltexture->buffer_height * 1.25f); } else { sx = sx * skyscale / (float)wall->gltexture->buffer_width; - sy = 127.0f * skyscale / 160.0f; + sy = 127.0f * skyscale / (wall->gltexture->buffer_height * 1.25f); } *scale_x = sx; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/gl_struct.h new/prboom-plus-2.6um+g81/prboom2/src/gl_struct.h --- old/prboom-plus-2.6um+g69/prboom2/src/gl_struct.h 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/gl_struct.h 2021-04-26 22:46:22.000000000 +0200 @@ -205,6 +205,10 @@ //sprites typedef enum { spriteclip_const, spriteclip_always, spriteclip_smart } spriteclipmode_t; +typedef enum { fuzz_darken, fuzz_shadow, fuzz_transparent, fuzz_ghostly, fuzz_last } spritefuzzmode_t; +extern spritefuzzmode_t gl_thingspritefuzzmode; +extern spritefuzzmode_t gl_weaponspritefuzzmode; +extern const char *gl_spritefuzzmodes[]; extern spriteclipmode_t gl_spriteclip; extern const char *gl_spriteclipmodes[]; extern int gl_spriteclip_threshold; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/i_sound.h new/prboom-plus-2.6um+g81/prboom2/src/i_sound.h --- old/prboom-plus-2.6um+g69/prboom2/src/i_sound.h 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/i_sound.h 2021-04-26 22:46:22.000000000 +0200 @@ -131,6 +131,7 @@ extern int mus_card; // CPhipps - put these in config file extern int snd_samplerate; +extern int snd_samplecount; extern int use_experimental_music; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/m_menu.c new/prboom-plus-2.6um+g81/prboom2/src/m_menu.c --- old/prboom-plus-2.6um+g69/prboom2/src/m_menu.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/m_menu.c 2021-04-26 22:46:22.000000000 +0200 @@ -487,9 +487,9 @@ inhelpscreens = true; if (gamemode == shareware) { - V_DrawNamePatch(0, 0, 0, "HELP2", CR_DEFAULT, VPT_STRETCH); // e6y: wide-res V_FillBorder(-1, 0); + V_DrawNamePatch(0, 0, 0, "HELP2", CR_DEFAULT, VPT_STRETCH); } else M_DrawCredits(); @@ -507,9 +507,9 @@ M_DrawCredits(); else { - V_DrawNamePatch(0, 0, 0, "CREDIT", CR_DEFAULT, VPT_STRETCH); // e6y: wide-res V_FillBorder(-1, 0); + V_DrawNamePatch(0, 0, 0, "CREDIT", CR_DEFAULT, VPT_STRETCH); } } @@ -3423,12 +3423,14 @@ {"Sector Light Mode", S_CHOICE, m_null, G_X, G_Y+ 8*8, {"gl_lightmode"}, 0, 0, M_ChangeLightMode, gl_lightmodes}, {"Allow Fog", S_YESNO, m_null, G_X, G_Y+ 9*8, {"gl_fog"}, 0, 0, M_ChangeAllowFog}, {"Simple Shadows", S_YESNO, m_null, G_X, G_Y+10*8, {"gl_shadows"}}, + {"Thing Sprite Fuzz", S_CHOICE, m_null, G_X, G_Y+11*8, {"gl_thingspritefuzzmode"}, 0, 0, 0, gl_spritefuzzmodes}, + {"Weapon Sprite Fuzz", S_CHOICE, m_null, G_X, G_Y+12*8, {"gl_weaponspritefuzzmode"}, 0, 0, 0, gl_spritefuzzmodes}, - {"Paper Items", S_YESNO, m_null, G_X, G_Y+12*8, {"render_paperitems"}}, - {"Smooth sprite edges", S_YESNO, m_null, G_X, G_Y+13*8, {"gl_sprite_blend"}}, - {"Adjust Sprite Clipping", S_CHOICE, m_null, G_X, G_Y+14*8, {"gl_spriteclip"}, 0, 0, M_ChangeSpriteClip, gl_spriteclipmodes}, - {"Item out of Floor offset", S_NUM, m_null, G_X, G_Y+15*8, {"gl_sprite_offset"}, 0, 0, M_ChangeSpriteClip}, - {"Health Bar Above Monsters", S_YESNO, m_null, G_X, G_Y+16*8, {"health_bar"}}, + {"Paper Items", S_YESNO, m_null, G_X, G_Y+13*8, {"render_paperitems"}}, + {"Smooth sprite edges", S_YESNO, m_null, G_X, G_Y+14*8, {"gl_sprite_blend"}}, + {"Adjust Sprite Clipping", S_CHOICE, m_null, G_X, G_Y+15*8, {"gl_spriteclip"}, 0, 0, M_ChangeSpriteClip, gl_spriteclipmodes}, + {"Item out of Floor offset", S_NUM, m_null, G_X, G_Y+16*8, {"gl_sprite_offset"}, 0, 0, M_ChangeSpriteClip}, + {"Health Bar Above Monsters", S_YESNO, m_null, G_X, G_Y+17*8, {"health_bar"}}, #endif {"<- PREV",S_SKIP|S_PREV, m_null,KB_PREV, KB_Y+20*8, {gen_settings4}}, @@ -4520,8 +4522,8 @@ if (helplump >= 0 && lumpinfo[helplump].source != source_iwad) { - V_DrawNumPatch(0, 0, 0, helplump, CR_DEFAULT, VPT_STRETCH); V_FillBorder(-1, 0); + V_DrawNumPatch(0, 0, 0, helplump, CR_DEFAULT, VPT_STRETCH); } else { @@ -4582,8 +4584,8 @@ inhelpscreens = true; if (creditlump >= 0 && lumpinfo[creditlump].source != source_iwad) { - V_DrawNumPatch(0, 0, 0, creditlump, CR_DEFAULT, VPT_STRETCH); V_FillBorder(-1, 0); + V_DrawNumPatch(0, 0, 0, creditlump, CR_DEFAULT, VPT_STRETCH); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/m_misc.c new/prboom-plus-2.6um+g81/prboom2/src/m_misc.c --- old/prboom-plus-2.6um+g69/prboom2/src/m_misc.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/m_misc.c 2021-04-26 22:46:22.000000000 +0200 @@ -268,6 +268,8 @@ int gl_shadows_maxdist; int gl_shadows_factor; int gl_blend_animations; +spritefuzzmode_t gl_thingspritefuzzmode; +spritefuzzmode_t gl_weaponspritefuzzmode; #endif @@ -431,6 +433,7 @@ {"pitched_sounds",{&pitched_sounds},{0},0,1, // killough 2/21/98 def_bool,ss_none}, // enables variable pitch in sound effects (from id's original code) {"samplerate",{&snd_samplerate},{44100},11025,48000, def_int,ss_none}, + {"slice_samplecount",{&snd_samplecount},{512},32,8192, def_int,ss_none}, {"sfx_volume",{&snd_SfxVolume},{8},0,15, def_int,ss_none}, {"music_volume",{&snd_MusicVolume},{8},0,15, def_int,ss_none}, {"mus_pause_opt",{&mus_pause_opt},{1},0,2, // CPhipps - music pausing @@ -1173,6 +1176,10 @@ def_int,ss_none}, {"gl_blend_animations",{&gl_blend_animations},{0},0,1, def_bool,ss_none}, + {"gl_thingspritefuzzmode",{(int*)&gl_thingspritefuzzmode},{fuzz_darken},fuzz_darken,fuzz_last-1, + def_int, ss_none}, + {"gl_weaponspritefuzzmode",{(int*)&gl_weaponspritefuzzmode},{fuzz_darken},fuzz_darken,fuzz_last-1, + def_int, ss_none}, {"Prboom-plus emulation settings",{NULL},{0},UL,UL,def_none,ss_none}, {"overrun_spechit_warn", {&overflows[OVERFLOW_SPECHIT].warn}, {0},0,1, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/r_demo.c new/prboom-plus-2.6um+g81/prboom2/src/r_demo.c --- old/prboom-plus-2.6um+g69/prboom2/src/r_demo.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/r_demo.c 2021-04-26 22:46:22.000000000 +0200 @@ -450,6 +450,11 @@ return (pitch << 16); } +void R_DemoEx_ResetMLook(void) +{ + mlook_lump.tick = 0; +} + void R_DemoEx_WriteMLook(angle_t pitch) { if (!use_demoex_info || !demorecording) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/r_demo.h new/prboom-plus-2.6um+g81/prboom2/src/r_demo.h --- old/prboom-plus-2.6um+g69/prboom2/src/r_demo.h 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/r_demo.h 2021-04-26 22:46:22.000000000 +0200 @@ -116,6 +116,7 @@ extern dboolean use_demoex_info; void R_DemoEx_WriteMLook(angle_t pitch); angle_t R_DemoEx_ReadMLook(void); +void R_DemoEx_ResetMLook(void); dboolean D_TryGetWad(const char* name); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/r_draw.c new/prboom-plus-2.6um+g81/prboom2/src/r_draw.c --- old/prboom-plus-2.6um+g69/prboom2/src/r_draw.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/r_draw.c 2021-04-26 22:46:22.000000000 +0200 @@ -1076,18 +1076,18 @@ only_stbar = screenblocks >= 10; } - if (only_stbar) + if (only_stbar && ST_SCALED_OFFSETX > 0) { int stbar_top = SCREENHEIGHT - ST_SCALED_HEIGHT; V_FillFlat(grnrock.lumpnum, 1, - 0, stbar_top, wide_offsetx, ST_SCALED_HEIGHT, VPT_NONE); + 0, stbar_top, ST_SCALED_OFFSETX, ST_SCALED_HEIGHT, VPT_NONE); V_FillFlat(grnrock.lumpnum, 1, - SCREENWIDTH - wide_offsetx, stbar_top, wide_offsetx, ST_SCALED_HEIGHT, VPT_NONE); + SCREENWIDTH - ST_SCALED_OFFSETX, stbar_top, ST_SCALED_OFFSETX, ST_SCALED_HEIGHT, VPT_NONE); // line between view and status bar - V_FillPatch(brdr_b.lumpnum, 1, 0, stbar_top, wide_offsetx, brdr_b.height, VPT_NONE); - V_FillPatch(brdr_b.lumpnum, 1, SCREENWIDTH - wide_offsetx, stbar_top, wide_offsetx, brdr_b.height, VPT_NONE); + V_FillPatch(brdr_b.lumpnum, 1, 0, stbar_top, ST_SCALED_OFFSETX, brdr_b.height, VPT_NONE); + V_FillPatch(brdr_b.lumpnum, 1, SCREENWIDTH - ST_SCALED_OFFSETX, stbar_top, ST_SCALED_OFFSETX, brdr_b.height, VPT_NONE); return; } @@ -1153,18 +1153,19 @@ // e6y: wide-res if ((ratio_multiplier != ratio_scale || wide_offsety) && + ST_SCALED_OFFSETX > 0 && ((SCREENHEIGHT != viewheight) || ((automapmode & am_active) && ! (automapmode & am_overlay)))) { for (i = (SCREENHEIGHT - ST_SCALED_HEIGHT); i < SCREENHEIGHT; i++) { - R_VideoErase (0, i, wide_offsetx); - R_VideoErase (SCREENWIDTH - wide_offsetx, i, wide_offsetx); + R_VideoErase (0, i, ST_SCALED_OFFSETX); + R_VideoErase (SCREENWIDTH - ST_SCALED_OFFSETX, i, ST_SCALED_OFFSETX); } } if ( viewheight >= ( SCREENHEIGHT - ST_SCALED_HEIGHT )) - return; // if high-res, don?t go any further! + return; // if high-res, don't go any further! top = ((SCREENHEIGHT-ST_SCALED_HEIGHT)-viewheight)/2; side = (SCREENWIDTH-scaledviewwidth)/2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/s_advsound.c new/prboom-plus-2.6um+g81/prboom2/src/s_advsound.c --- old/prboom-plus-2.6um+g69/prboom2/src/s_advsound.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/s_advsound.c 2021-04-26 22:46:22.000000000 +0200 @@ -59,15 +59,27 @@ // void S_ParseMusInfo(const char *mapid) { - memset(&musinfo, 0, sizeof(musinfo)); - musinfo.current_item = -1; - - S_music[NUMMUSIC].lumpnum = -1; if (W_CheckNumForName("MUSINFO") != -1) { int num, lumpnum; int inMap = false; + int load_muslump = -1; + /* musinfo item zero is initialized + * before we reach the parser and it must be + * saved and restored */ + int itemzero = musinfo.items[0]; + + /* don't restart music that is already playing */ + if (mus_playing && + mus_playing->lumpnum == S_music[NUMMUSIC].lumpnum) { + load_muslump = S_music[NUMMUSIC].lumpnum; + } + + memset(&musinfo, 0, sizeof(musinfo)); + musinfo.items[0] = itemzero; + musinfo.current_item = load_muslump; + S_music[NUMMUSIC].lumpnum = load_muslump; SC_OpenLump("MUSINFO"); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/s_advsound.h new/prboom-plus-2.6um+g81/prboom2/src/s_advsound.h --- old/prboom-plus-2.6um+g69/prboom2/src/s_advsound.h 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/s_advsound.h 2021-04-26 22:46:22.000000000 +0200 @@ -35,6 +35,7 @@ #define __S_ADVSOUND__ #include "p_mobj.h" +#include "sounds.h" #ifdef __GNUG__ #pragma interface @@ -55,6 +56,7 @@ int items[MAX_MUS_ENTRIES]; } musinfo_t; +extern musicinfo_t *mus_playing; extern musinfo_t musinfo; void S_ParseMusInfo(const char *mapid); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/s_sound.c new/prboom-plus-2.6um+g81/prboom2/src/s_sound.c --- old/prboom-plus-2.6um+g69/prboom2/src/s_sound.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/s_sound.c 2021-04-26 22:46:22.000000000 +0200 @@ -95,7 +95,7 @@ static dboolean mus_paused; // music currently being played -static musicinfo_t *mus_playing; +musicinfo_t *mus_playing; // music currently should play static int musicnum_current; @@ -207,6 +207,7 @@ int muslump = W_CheckNumForName(gamemapinfo->music); if (muslump >= 0) { + musinfo.items[0] = muslump; S_ChangeMusInfoMusic(muslump, true); return; } @@ -533,6 +534,7 @@ // current music which should play musicnum_current = musicnum; musinfo.current_item = -1; + S_music[NUMMUSIC].lumpnum = -1; //jff 1/22/98 return if music is not enabled if (!mus_card || nomusicparm) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/st_stuff.c new/prboom-plus-2.6um+g81/prboom2/src/st_stuff.c --- old/prboom-plus-2.6um+g69/prboom2/src/st_stuff.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/st_stuff.c 2021-04-26 22:46:22.000000000 +0200 @@ -56,6 +56,7 @@ int ST_SCALED_HEIGHT; int ST_SCALED_WIDTH; int ST_SCALED_Y; +int ST_SCALED_OFFSETX; // Palette indices. // For damage/bonus red-/gold-shifts @@ -311,7 +312,7 @@ static patchnum_t faceback; // CPhipps - single background, translated for different players //e6y: status bar background -static patchnum_t stbarbg; +static patchnum_t stbarbg = {0}; patchnum_t grnrock; patchnum_t brdr_t, brdr_b, brdr_l, brdr_r; patchnum_t brdr_tl, brdr_tr, brdr_bl, brdr_br; @@ -398,6 +399,36 @@ static void ST_Stop(void); +// [FG] support widescreen status bar backgrounds + +void ST_SetScaledWidth(void) +{ + int width = stbarbg.width; + + if (width == 0) + width = ST_WIDTH; + + switch (render_stretch_hud) + { + case patch_stretch_16x10: + ST_SCALED_WIDTH = width * patches_scalex; + break; + case patch_stretch_4x3: + ST_SCALED_WIDTH = width * WIDE_SCREENWIDTH / 320; + break; + case patch_stretch_full: + ST_SCALED_WIDTH = width * SCREENWIDTH / 320; + break; + } + + ST_SCALED_WIDTH = (ST_SCALED_WIDTH + 3) & (int)~3; + + if (ST_SCALED_WIDTH > SCREENWIDTH) + ST_SCALED_WIDTH = SCREENWIDTH; + + ST_SCALED_OFFSETX = (SCREENWIDTH - ST_SCALED_WIDTH) / 2; +} + static void ST_refreshBackground(void) { int y = ST_Y; @@ -420,7 +451,7 @@ displayplayer ? CR_LIMIT+displayplayer : CR_DEFAULT, displayplayer ? (VPT_TRANS | VPT_ALIGN_BOTTOM) : flags); } - V_CopyRect(BG, FG, ST_X + wide_offsetx, SCREENHEIGHT - ST_SCALED_HEIGHT, ST_SCALED_WIDTH, ST_SCALED_HEIGHT, VPT_NONE); + V_CopyRect(BG, FG, ST_X + ST_SCALED_OFFSETX, SCREENHEIGHT - ST_SCALED_HEIGHT, ST_SCALED_WIDTH, ST_SCALED_HEIGHT, VPT_NONE); } } @@ -1010,6 +1041,9 @@ } R_SetPatchNum(&faces[facenum++], "STFGOD0"); R_SetPatchNum(&faces[facenum++], "STFDEAD0"); + + // [FG] support widescreen status bar backgrounds + ST_SetScaledWidth(); } static void ST_loadData(void) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/st_stuff.h new/prboom-plus-2.6um+g81/prboom2/src/st_stuff.h --- old/prboom-plus-2.6um+g69/prboom2/src/st_stuff.h 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/st_stuff.h 2021-04-26 22:46:22.000000000 +0200 @@ -52,6 +52,9 @@ extern int ST_SCALED_HEIGHT; extern int ST_SCALED_WIDTH; extern int ST_SCALED_Y; +extern int ST_SCALED_OFFSETX; + +void ST_SetScaledWidth(void); // // STATUS BAR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/umapinfo.cpp new/prboom-plus-2.6um+g81/prboom2/src/umapinfo.cpp --- old/prboom-plus-2.6um+g69/prboom2/src/umapinfo.cpp 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/umapinfo.cpp 2021-04-26 22:46:22.000000000 +0200 @@ -191,6 +191,113 @@ "PlasmaBall2", "EvilSceptre", "UnholyBible", + "MusicChanger", + "Deh_Actor_145", + "Deh_Actor_146", + "Deh_Actor_147", + "Deh_Actor_148", + "Deh_Actor_149", + // DEHEXTRA Actors start here + "Deh_Actor_150", // Extra thing 0 + "Deh_Actor_151", // Extra thing 1 + "Deh_Actor_152", // Extra thing 2 + "Deh_Actor_153", // Extra thing 3 + "Deh_Actor_154", // Extra thing 4 + "Deh_Actor_155", // Extra thing 5 + "Deh_Actor_156", // Extra thing 6 + "Deh_Actor_157", // Extra thing 7 + "Deh_Actor_158", // Extra thing 8 + "Deh_Actor_159", // Extra thing 9 + "Deh_Actor_160", // Extra thing 10 + "Deh_Actor_161", // Extra thing 11 + "Deh_Actor_162", // Extra thing 12 + "Deh_Actor_163", // Extra thing 13 + "Deh_Actor_164", // Extra thing 14 + "Deh_Actor_165", // Extra thing 15 + "Deh_Actor_166", // Extra thing 16 + "Deh_Actor_167", // Extra thing 17 + "Deh_Actor_168", // Extra thing 18 + "Deh_Actor_169", // Extra thing 19 + "Deh_Actor_170", // Extra thing 20 + "Deh_Actor_171", // Extra thing 21 + "Deh_Actor_172", // Extra thing 22 + "Deh_Actor_173", // Extra thing 23 + "Deh_Actor_174", // Extra thing 24 + "Deh_Actor_175", // Extra thing 25 + "Deh_Actor_176", // Extra thing 26 + "Deh_Actor_177", // Extra thing 27 + "Deh_Actor_178", // Extra thing 28 + "Deh_Actor_179", // Extra thing 29 + "Deh_Actor_180", // Extra thing 30 + "Deh_Actor_181", // Extra thing 31 + "Deh_Actor_182", // Extra thing 32 + "Deh_Actor_183", // Extra thing 33 + "Deh_Actor_184", // Extra thing 34 + "Deh_Actor_185", // Extra thing 35 + "Deh_Actor_186", // Extra thing 36 + "Deh_Actor_187", // Extra thing 37 + "Deh_Actor_188", // Extra thing 38 + "Deh_Actor_189", // Extra thing 39 + "Deh_Actor_190", // Extra thing 40 + "Deh_Actor_191", // Extra thing 41 + "Deh_Actor_192", // Extra thing 42 + "Deh_Actor_193", // Extra thing 43 + "Deh_Actor_194", // Extra thing 44 + "Deh_Actor_195", // Extra thing 45 + "Deh_Actor_196", // Extra thing 46 + "Deh_Actor_197", // Extra thing 47 + "Deh_Actor_198", // Extra thing 48 + "Deh_Actor_199", // Extra thing 49 + "Deh_Actor_200", // Extra thing 50 + "Deh_Actor_201", // Extra thing 51 + "Deh_Actor_202", // Extra thing 52 + "Deh_Actor_203", // Extra thing 53 + "Deh_Actor_204", // Extra thing 54 + "Deh_Actor_205", // Extra thing 55 + "Deh_Actor_206", // Extra thing 56 + "Deh_Actor_207", // Extra thing 57 + "Deh_Actor_208", // Extra thing 58 + "Deh_Actor_209", // Extra thing 59 + "Deh_Actor_210", // Extra thing 60 + "Deh_Actor_211", // Extra thing 61 + "Deh_Actor_212", // Extra thing 62 + "Deh_Actor_213", // Extra thing 63 + "Deh_Actor_214", // Extra thing 64 + "Deh_Actor_215", // Extra thing 65 + "Deh_Actor_216", // Extra thing 66 + "Deh_Actor_217", // Extra thing 67 + "Deh_Actor_218", // Extra thing 68 + "Deh_Actor_219", // Extra thing 69 + "Deh_Actor_220", // Extra thing 70 + "Deh_Actor_221", // Extra thing 71 + "Deh_Actor_222", // Extra thing 72 + "Deh_Actor_223", // Extra thing 73 + "Deh_Actor_224", // Extra thing 74 + "Deh_Actor_225", // Extra thing 75 + "Deh_Actor_226", // Extra thing 76 + "Deh_Actor_227", // Extra thing 77 + "Deh_Actor_228", // Extra thing 78 + "Deh_Actor_229", // Extra thing 79 + "Deh_Actor_230", // Extra thing 80 + "Deh_Actor_231", // Extra thing 81 + "Deh_Actor_232", // Extra thing 82 + "Deh_Actor_233", // Extra thing 83 + "Deh_Actor_234", // Extra thing 84 + "Deh_Actor_235", // Extra thing 85 + "Deh_Actor_236", // Extra thing 86 + "Deh_Actor_237", // Extra thing 87 + "Deh_Actor_238", // Extra thing 88 + "Deh_Actor_239", // Extra thing 89 + "Deh_Actor_240", // Extra thing 90 + "Deh_Actor_241", // Extra thing 91 + "Deh_Actor_242", // Extra thing 92 + "Deh_Actor_243", // Extra thing 93 + "Deh_Actor_244", // Extra thing 94 + "Deh_Actor_245", // Extra thing 95 + "Deh_Actor_246", // Extra thing 96 + "Deh_Actor_247", // Extra thing 97 + "Deh_Actor_248", // Extra thing 98 + "Deh_Actor_249", // Extra thing 99 NULL }; @@ -523,7 +630,6 @@ if (parsed.endpic[0] && (strcmp(parsed.endpic, "-") != 0)) { parsed.nextmap[0] = parsed.nextsecret[0] = 0; - if (parsed.endpic[0] == '!') parsed.endpic[0] = 0; } else if (!parsed.nextmap[0] && !parsed.endpic[0]) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/v_video.c new/prboom-plus-2.6um+g81/prboom2/src/v_video.c --- old/prboom-plus-2.6um+g69/prboom2/src/v_video.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/v_video.c 2021-04-26 22:46:22.000000000 +0200 @@ -425,6 +425,10 @@ if (!trans) flags &= ~VPT_TRANS; + // [FG] automatically center wide patches without horizontal offset + if (patch->width > 320 && patch->leftoffset == 0) + x -= (patch->width - 320) / 2; + if (V_GetMode() == VID_MODE8 && !(flags & VPT_STRETCH_MASK)) { int col; byte *desttop = screens[scrn].data+y*screens[scrn].byte_pitch+x*V_GetPixelDepth(); @@ -559,7 +563,7 @@ top = (y < 0 || y > 200 ? (y * params->video->height) / 200 : params->video->y1lookup[y]); if (x + patch->width < 0 || x + patch->width > 320) - right = ( ((x + patch->width - 1) * params->video->width) / 320 ); + right = ( ((x + patch->width) * params->video->width - 1) / 320 ); else right = params->video->x2lookup[x + patch->width - 1]; @@ -1683,7 +1687,6 @@ patches_scaley = MIN(render_patches_scaley, patches_scaley); } - ST_SCALED_WIDTH = ST_WIDTH * patches_scalex; ST_SCALED_HEIGHT = ST_HEIGHT * patches_scaley; if (SCREENWIDTH < 320 || WIDE_SCREENWIDTH < 320 || @@ -1702,7 +1705,6 @@ break; case patch_stretch_4x3: ST_SCALED_HEIGHT = ST_HEIGHT * WIDE_SCREENHEIGHT / 200; - ST_SCALED_WIDTH = WIDE_SCREENWIDTH; ST_SCALED_Y = SCREENHEIGHT - ST_SCALED_HEIGHT; @@ -1711,7 +1713,6 @@ break; case patch_stretch_full: ST_SCALED_HEIGHT = ST_HEIGHT * SCREENHEIGHT / 200; - ST_SCALED_WIDTH = SCREENWIDTH; ST_SCALED_Y = SCREENHEIGHT - ST_SCALED_HEIGHT; wide_offset2x = 0; @@ -1725,6 +1726,9 @@ SCREEN_320x200 = (SCREENWIDTH == 320) && (SCREENHEIGHT == 200) && (WIDE_SCREENWIDTH == 320) && (WIDE_SCREENHEIGHT == 200); + + // [FG] support widescreen status bar backgrounds + ST_SetScaledWidth(); } void V_GetWideRect(int *x, int *y, int *w, int *h, enum patch_translation_e flags) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/prboom-plus-2.6um+g69/prboom2/src/wi_stuff.c new/prboom-plus-2.6um+g81/prboom2/src/wi_stuff.c --- old/prboom-plus-2.6um+g69/prboom2/src/wi_stuff.c 2021-04-08 13:00:15.000000000 +0200 +++ new/prboom-plus-2.6um+g81/prboom2/src/wi_stuff.c 2021-04-26 22:46:22.000000000 +0200 @@ -423,11 +423,11 @@ else sprintf(name, "WIMAP%d", wbs->epsd); - // background - V_DrawNamePatch(0, 0, FB, name, CR_DEFAULT, VPT_STRETCH); - // e6y: wide-res V_FillBorder(-1, 0); + + // background + V_DrawNamePatch(0, 0, FB, name, CR_DEFAULT, VPT_STRETCH); } @@ -1073,6 +1073,13 @@ WI_drawOnLnode(wbs->next, yah); } + if (gamemapinfo != NULL && + gamemapinfo->endpic[0] && + strcmp(gamemapinfo->endpic, "-") != 0) + { + return; + } + if (gamemission == pack_nerve && singleplayer && wbs->last == 7) return; // MAP08 end game
