From 9e48fc215dc72b63f94fe2e470fb4aa4c99e2586 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Sun, 9 May 2010 08:41:29 +0000 Subject: [PATCH] When selecting a random game to watch, try to avoid idle games and games with too big terminals. git-svn-id: svn://katsu.triplehelix.org/dgamelaunch/trunk@564 db0b04b0-f4d1-0310-9a6d-de3e77497b0e --- dgamelaunch.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dgamelaunch.c b/dgamelaunch.c index 385c044..8cb2ddd 100644 --- a/dgamelaunch.c +++ b/dgamelaunch.c @@ -775,7 +775,14 @@ inprogressmenu (int gameid) break; case '*': if (len > 0) { - idx = random() % len; + int cnt = 20; + (void) time(&ctime); + do { + idx = random() % len; + } while ((--cnt > 0) || + ((games[idx]->ws_col <= COLS) && + (games[idx]->ws_row <= LINES) && + ((ctime - games[idx]->idle_time) < 15))); selected = idx; goto watchgame; }