summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-09-19 12:52:48 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-09-19 12:52:48 +0800
commitddbda5df68e67de56740ee1294d6c0566a931830 (patch)
treeb1ab4da38354440e1f1d92ff269eec233ae56cec
parent098f190b2fcb394558424d0d4d56c1f27ee4956c (diff)
downloadpttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.tar
pttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.tar.gz
pttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.tar.bz2
pttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.tar.lz
pttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.tar.xz
pttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.tar.zst
pttbbs-ddbda5df68e67de56740ee1294d6c0566a931830.zip
* enable more checkings in usong selection
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@4857 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--mbbsd/menu.c20
-rw-r--r--mbbsd/register.c2
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"