diff --git a/src/filesrch.h b/src/filesrch.h index dafde07cd..e9092b590 100644 --- a/src/filesrch.h +++ b/src/filesrch.h @@ -82,7 +82,8 @@ typedef enum REFRESHDIR_ADDFILE = 2, REFRESHDIR_WARNING = 4, REFRESHDIR_ERROR = 8, - REFRESHDIR_MAX = 16 + REFRESHDIR_NOTLOADED = 16, + REFRESHDIR_MAX = 32 } refreshdir_enum; boolean preparefilemenu(boolean samedepth); diff --git a/src/m_menu.c b/src/m_menu.c index 6ba7fac37..3712c863f 100644 --- a/src/m_menu.c +++ b/src/m_menu.c @@ -4810,7 +4810,9 @@ static boolean M_AddonsRefresh(void) if (refreshdirmenu & REFRESHDIR_ADDFILE) { - if (!(dirmenu[dir_on[menudepthleft]][DIR_TYPE] & EXT_LOADED)) + addonsresponselimit = 0; + + if (refreshdirmenu & REFRESHDIR_NOTLOADED) { char *message = NULL; S_StartSound(NULL, sfx_lose); @@ -4946,7 +4948,6 @@ static void M_AddonExec(INT32 ch) S_StartSound(NULL, sfx_strpst); COM_BufAddText(va("exec %s%s", menupath, dirmenu[dir_on[menudepthleft]]+DIR_STRING)); - addonsresponselimit = 5; } #define len menusearch[0] diff --git a/src/p_setup.c b/src/p_setup.c index 02a621845..c7f247ccd 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -54,6 +54,8 @@ #include "v_video.h" +#include "filesrch.h" // refreshdirmenu + // wipes #include "f_finale.h" @@ -3054,6 +3056,7 @@ boolean P_AddWadFile(const char *wadfilename, char **firstmapname) if ((numlumps = W_LoadWadFile(wadfilename)) == INT16_MAX) { + refreshdirmenu |= REFRESHDIR_NOTLOADED; CONS_Printf(M_GetText("Errors occured while loading %s; not added.\n"), wadfilename); return false; }