diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2013-03-25 10:45:28 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2013-03-25 10:45:28 +0800 |
commit | 3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33 (patch) | |
tree | cadec6dd4b004cd1f265b8278cc4b1d6dcb13d49 | |
parent | 503715fd0f5ed1b34a5c40574a13286ba9e1acac (diff) | |
download | pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.tar pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.tar.gz pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.tar.bz2 pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.tar.lz pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.tar.xz pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.tar.zst pttbbs-3de10dfb8e1e55a1d3403414c2d1abcecb0c0b33.zip |
angel: fix last_assigned_master calculation.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5823 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/daemon/angelbeats/angelbeats.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/pttbbs/daemon/angelbeats/angelbeats.c b/pttbbs/daemon/angelbeats/angelbeats.c index 1971fa59..82e9f1fb 100644 --- a/pttbbs/daemon/angelbeats/angelbeats.c +++ b/pttbbs/daemon/angelbeats/angelbeats.c @@ -413,12 +413,6 @@ init_angel_list_callback(void *ctx GCC_UNUSED, int uidx, userec_t *u) { if (!u->myangel[0]) return 0; - // skip inactive users. however, this makes the counter - // incorrect when those kind of use goes online. - // anyway that should not be a big change... - if (time4(0) > u->timeplayangel + ANGELBEATS_INACTIVE_TIME ) - return 0; - kanade = angel_list_find_by_userid(u->myangel); if (!kanade) { // valid angel? @@ -429,14 +423,22 @@ init_angel_list_callback(void *ctx GCC_UNUSED, int uidx, userec_t *u) { kanade = angel_list_add(xuser.userid, anum); } - // found an angel? - if (kanade) { - kanade->masters++; - if (u->timesetangel > kanade->last_assigned) { - kanade->last_assigned = u->timesetangel; - kanade->last_assigned_master = unum; - } + if (!kanade) + return 0; + + // Update now (before skipping user) in case the master never called angel. + if (u->timesetangel > kanade->last_assigned) { + kanade->last_assigned = u->timesetangel; + kanade->last_assigned_master = unum; } + + // skip inactive users. however, this makes the counter + // incorrect when those kind of use goes online. + // anyway that should not be a big change... + if (time4(0) > u->timeplayangel + ANGELBEATS_INACTIVE_TIME ) + return 0; + + kanade->masters++; return 1; } |