diff --git a/src/sbbs3/con_out.cpp b/src/sbbs3/con_out.cpp index 576004e908963ffff326b421ac933d00123e0020..c44df8a428ca7c5e0836bdcab7c1d15dee57ad86 100644 --- a/src/sbbs3/con_out.cpp +++ b/src/sbbs3/con_out.cpp @@ -1400,11 +1400,15 @@ void sbbs_t::progress(const char* text, int count, int total, int interval) return; // Don't output this for events if((count%interval) != 0) return; + clock_t now = msclock(); + if(now - last_progress < 500) + return; if(text == NULL) text = ""; float pct = total ? ((float)count/total)*100.0F : 100.0F; SAFEPRINTF2(str, "[ %-8s %4.1f%% ]", text, pct); cond_newline(); cursor_left(backfill(str, pct, cfg.color[clr_progress_full], cfg.color[clr_progress_empty])); + last_progress = now; } struct savedline { diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index b8298d725eef4b1584f190b725e83b141cf8fb2b..7930ab8fd5074eb3f6d757c2b531c89bfb49c611 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -848,6 +848,7 @@ public: bool update_nodeterm(void); int backfill(const char* str, float pct, int full_attr, int empty_attr); void progress(const char* str, int count, int total, int interval=1); + clock_t last_progress = 0; bool saveline(void); bool restoreline(void); int petscii_to_ansibbs(unsigned char);