Division quota restrictions were not being displayed correctly when using the @quota
authornveid <nveid@comcast.net>
Sat, 28 Oct 2006 12:36:40 +0000 (12:36 +0000)
committerAri Johnson <ari@nveid.com>
Tue, 12 Sep 2006 12:49:49 +0000 (12:49 +0000)
command.
(cherry picked from commit f1a9b6d4451d0715a25a6d6cbecb603942537dd8)

game/txt/changes/0.72p2
src/predicat.c
src/wiz.c

index 39dce78e5f64cb74e457a9e1f357dfdedc30e01e..b6a903c9965d65b019fa8e2084b73c7a28a871bd 100644 (file)
@@ -27,3 +27,5 @@ CobraMUSH Version 0.72p2
     * Checking info for any attributes would crash the game. [RLB]
     * @su and @sd Password: prompt didn't handle correctly for clients
       that did not handle the GOAHEAD prompt telnet code. [RLB]
+    * Quotas were not accounting Division new quotas restrictions 
+      correctly for display using the @quota command.
index 24749d52d9a20c45a0e04648033ca5743d07af68..0007f6b7c7ffbbfec750e5662265efc4b9fb136f 100644 (file)
@@ -629,7 +629,7 @@ get_current_quota(dbref who)
 
   for (i = 0; i < db_top; i++)
     if (!IsGarbage(i) && ((!IsDivision(who) && Owner(i) == Owner(who)) 
-         || (IsDivision(who) && !IsPlayer(i) && div_inscope(who,i))))
+         || (IsDivision(who) && !IsPlayer(i) && IsDivision(Division(i)) && div_inscope(who,i))))
       owned++;
   owned--;                     /* don't count the player or division itself */
 
index b4d2cfb610f369ff686ad9ee7cd8c7d127c6f62e..e49f5f0f621c991512c9cbe018f11e734a797109 100644 (file)
--- a/src/wiz.c
+++ b/src/wiz.c
@@ -154,21 +154,21 @@ do_quota(dbref player, const char *arg1, const char *arg2, int set_q)
     if (Owner(thing) == who && !IsDivision(who)) {
       if (!IsGarbage(thing))
        ++owned;
-    } else if(IsDivision(who) && div_inscope(who,thing)) { /* incase we're doing division quotas */
+    } else if(IsDivision(who) && IsDivision(Division(thing)) && div_inscope(who,thing) ) { /* incase we're doing division quotas */
       if(!IsGarbage(thing) && !IsPlayer(thing)) /* we don't include garbage or player objects in div quotas */
        ++owned;
     }
     /* And No matter what.. we have to calculate the same info from the division we're in.. */
-    if( !IsMasterDivision(Division(who)) &&
+    if( !IsMasterDivision(Division(who)) && !IsGarbage(thing) && !IsPlayer(thing) && IsDivision(Division(thing))&& 
        div_inscope(Division(who), thing)) 
        downed++;
   }
 
    if(!IsMasterDivision(Division(who)) && !NoQuota(Division(who)))
-    dlimit = get_current_quota(who);
+    dlimit = get_current_quota(Division(who));
 
 
-  /* the quotas of priv'ed players are unlimited and cannot be set. */
+  /* the quotas of players with the NoQuota power are unlimited and cannot be set. */
   if (!USE_QUOTA || NoQuota(who)) {
     notify_format(player, T("Objects: %d   Limit: UNLIMITED"), owned);
     return;
@@ -179,14 +179,14 @@ do_quota(dbref player, const char *arg1, const char *arg2, int set_q)
 
   if (!set_q) {
     limit = get_current_quota(who);
-    notify_format(player, T("Objects: %d   Limit: %d"), owned, (downed + dlimit) > (owned + limit) && dlimit != NOTHING
+    notify_format(player, T("Objects: %d   Limit: %d"), owned, (downed + dlimit) < (owned + limit) && dlimit != NOTHING
        ? (downed + dlimit) : (owned + limit));
     return;
   }
   /* set a new quota */
   if (!arg2 || !*arg2) {
     limit = get_current_quota(who);
-    notify_format(player, T("Objects: %d   Limit: %d"), owned, (downed + dlimit) > (owned + limit) && dlimit != NOTHING ? 
+    notify_format(player, T("Objects: %d   Limit: %d"), owned, (downed + dlimit) < (owned + limit) && dlimit != NOTHING ? 
        (downed + dlimit) : (owned + limit));
     notify(player, T("What do you want to set the quota to?"));
     return;