From ddbda5df68e67de56740ee1294d6c0566a931830 Mon Sep 17 00:00:00 2001 From: piaip Date: Sat, 19 Sep 2009 04:52:48 +0000 Subject: * enable more checkings in usong selection git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4857 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- mbbsd/menu.c | 20 +++++++++++++++----- mbbsd/register.c | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/mbbsd/menu.c b/mbbsd/menu.c index d982130d..34e601a5 100644 --- a/mbbsd/menu.c +++ b/mbbsd/menu.c @@ -268,17 +268,27 @@ adbanner(int cmdmode) // @ now / (3600 / MAx_ADBANNER) means "get the index of which to show". // syncnow(); + const int slideshow_duration = 3600 / MAX_ADBANNER, + slideshow_index = now / slideshow_duration; + + // index range: 0 =>[system] => N_SYSADBANNER => [user esong] => + // last_usong => [advertisements] => last_film + int valid_usong_range = (SHM->last_usong > N_SYSADBANNER && + SHM->last_usong < SHM->last_film); + if (SHM->last_film > N_SYSADBANNER) { - if (cuser.uflag & ADBANNER_USONG_FLAG) - i = N_SYSADBANNER + (now / (3600 / MAX_ADBANNER) ) % - (SHM->last_film+1-N_SYSADBANNER); - else i = SHM->last_usong + 1 + (now / (3600 / MAX_ADBANNER) ) % - (SHM->last_film - SHM->last_usong); + if (cuser.uflag & ADBANNER_USONG_FLAG || !valid_usong_range) + i = N_SYSADBANNER + slideshow_index % (SHM->last_film+1-N_SYSADBANNER); + else + i = SHM->last_usong + 1 + slideshow_index % (SHM->last_film - SHM->last_usong); } else i = 0; // SHM->last_film; } + // make it safe! + i %= MAX_ADBANNER; + move(1, 0); clrtoln(1 + FILMROW); /* 清掉上次的 */ #ifdef LARGETERM_CENTER_MENU diff --git a/mbbsd/register.c b/mbbsd/register.c index a81c8db5..c26d7df0 100644 --- a/mbbsd/register.c +++ b/mbbsd/register.c @@ -660,7 +660,7 @@ new_register(void) strlcpy(newuser.lasthost, fromhost, sizeof(newuser.lasthost)); // XXX enable this when we complete the user flag of ADBANNER_USONG_FLAG. -#if 0 +#ifdef ADBANNER_USONG_FLAG clear(); prints( "\n\t在使用 BBS 的過程中,您可能會在畫面上方看到一些動態的活動看板告示,\n" "\n\t其內容是開放給各使用者申請的,所以包含非商業的活動訊息、各種使用者的\n" -- cgit v1.2.3