ref: 7510c7488be938826fc93630560ccd985c69545b
parent: 8d36576277fc6dfbf13663d7edbbf20dd7c15466
author: Fabian Greffrath <fabian@greffrath.com>
date: Mon Sep 7 07:25:46 EDT 2015
condense checks for drawing disk icon and redrawing HUD into one variable
--- a/src/doom/d_main.c
+++ b/src/doom/d_main.c
@@ -182,17 +182,10 @@
boolean done;
boolean wipe;
boolean redrawsbar;
- static boolean force_redrawsbar = false;
if (nodrawers)
return; // for comparative timing / profiling
- if (force_redrawsbar)
- {
- redrawsbar = true;
- force_redrawsbar = false;
- }
- else
redrawsbar = false;
// change the view size if needed
@@ -223,7 +216,7 @@
break;
if (automapactive)
AM_Drawer ();
- if (wipe || (viewheight != 200 && fullscreen) )
+ if (wipe || (viewheight != 200 && fullscreen) || disk_indicator == disk_dirty )
redrawsbar = true;
if (inhelpscreensstate && !inhelpscreens)
redrawsbar = true; // just put away the help screen
@@ -310,11 +303,6 @@
// normal update
if (!wipe)
{
- if (disk_indicator)
- {
- force_redrawsbar = true;
- }
-
I_FinishUpdate (); // page flip or blit buffer
return;
}
--- a/src/i_video.c
+++ b/src/i_video.c
@@ -986,13 +986,17 @@
I_VideoBuffer[ (SCREENHEIGHT-1)*SCREENWIDTH + i] = 0x0;
}
- if (disk_indicator)
+ if (disk_indicator == disk_on)
{
I_BeginRead();
- disk_indicator = false;
+ disk_indicator = disk_dirty;
}
+ else if (disk_indicator == disk_dirty)
+ {
+ disk_indicator = disk_off;
+ }
- // draw to screen
+ // draw to screen
BlitArea(0, 0, SCREENWIDTH, SCREENHEIGHT);
--- a/src/strife/d_main.c
+++ b/src/strife/d_main.c
@@ -217,7 +217,6 @@
boolean done;
boolean wipe;
boolean redrawsbar;
- static boolean force_borderdraw = false;
if (nodrawers)
return; // for comparative timing / profiling
@@ -301,11 +300,10 @@
// see if the border needs to be updated to the screen
if (gamestate == GS_LEVEL && !automapactive && scaledviewwidth != 320)
{
- if (menuactive || menuactivestate || !viewactivestate || force_borderdraw)
+ if (menuactive || menuactivestate || !viewactivestate || disk_indicator == disk_dirty)
{
borderdrawcount = 3;
popupactivestate = false;
- force_borderdraw = false;
}
if (borderdrawcount)
{
@@ -360,11 +358,6 @@
// normal update
if (!wipe)
{
- if (disk_indicator)
- {
- force_borderdraw = true;
- }
-
I_FinishUpdate (); // page flip or blit buffer
return;
}
--- a/src/w_wad.c
+++ b/src/w_wad.c
@@ -335,7 +335,7 @@
// Loads the lump into the given buffer,
// which must be >= W_LumpLength().
//
-boolean disk_indicator = false;
+disk_indicator_e disk_indicator = false;
void W_ReadLump(lumpindex_t lump, void *dest)
{
@@ -349,7 +349,7 @@
l = lumpinfo[lump];
- disk_indicator = true;
+ disk_indicator = disk_on;
c = W_Read(l->wad_file, l->position, dest, l->size);
--- a/src/w_wad.h
+++ b/src/w_wad.h
@@ -49,10 +49,17 @@
lumpindex_t next;
};
+typedef enum
+{
+ disk_off,
+ disk_on,
+ disk_dirty
+} disk_indicator_e;
+extern disk_indicator_e disk_indicator;
+
extern lumpinfo_t **lumpinfo;
extern unsigned int numlumps;
-extern boolean disk_indicator;
wad_file_t *W_AddFile(char *filename);
void W_Reload(void);