diff --git a/src/sbbs3/ars.c b/src/sbbs3/ars.c index 8fe0ca34da4ab797f99fa0a665c0a8bfd61bc55f..3a2f8aea2e463436c00cf56251669da16f1d9e48 100644 --- a/src/sbbs3/ars.c +++ b/src/sbbs3/ars.c @@ -236,14 +236,20 @@ uchar* arstr(ushort* count, char* str, scfg_t* cfg) else if(!strnicmp(str+i,"ULS",3)) { artype=AR_ULS; i+=2; } - else if(!strnicmp(str+i,"ULB",3)) { - artype=AR_ULB; + else if(!strnicmp(str+i,"ULK",3)) { + artype=AR_ULK; + i+=2; } + else if(!strnicmp(str+i,"ULM",3)) { + artype=AR_ULM; i+=2; } else if(!strnicmp(str+i,"DLS",3)) { artype=AR_DLS; i+=2; } - else if(!strnicmp(str+i,"DLB",3)) { - artype=AR_DLB; + else if(!strnicmp(str+i,"DLK",3)) { + artype=AR_DLK; + i+=2; } + else if(!strnicmp(str+i,"DLM",3)) { + artype=AR_DLM; i+=2; } else if(!strnicmp(str+i,"DAY",3)) { artype=AR_DAY; @@ -515,9 +521,11 @@ uchar* arstr(ushort* count, char* str, scfg_t* cfg) case AR_LASTON: case AR_LOGONS: case AR_ULS: - case AR_ULB: + case AR_ULK: + case AR_ULM: case AR_DLS: - case AR_DLB: + case AR_DLK: + case AR_DLM: *((short *)(ar+j))=n; j+=2; break; diff --git a/src/sbbs3/ars_defs.h b/src/sbbs3/ars_defs.h index 58b075db640d7329cc6bd67e47f4b107760f71c1..8dff4402634093189d78af26a6be42fc164ed6be 100644 --- a/src/sbbs3/ars_defs.h +++ b/src/sbbs3/ars_defs.h @@ -115,9 +115,11 @@ enum { /* Access requirement binaries */ ,AR_INACTIVE ,AR_DELETED ,AR_ULS - ,AR_ULB + ,AR_ULK + ,AR_ULM ,AR_DLS - ,AR_DLB + ,AR_DLK + ,AR_DLM }; #endif /* Don't add anything after this line */ diff --git a/src/sbbs3/chk_ar.cpp b/src/sbbs3/chk_ar.cpp index 8a477564e7b1bfe159e02349e7fd4fc3ab28b592..92d552982cff9752b335dcbc837d687c2df6c33b 100644 --- a/src/sbbs3/chk_ar.cpp +++ b/src/sbbs3/chk_ar.cpp @@ -456,8 +456,15 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user) result=!_not; (*ptrptr)++; break; - case AR_ULB: - if((equal && user->ulb!=i) || (!equal && user->ulb<i)) + case AR_ULK: + if((equal && (user->ulb/1024)!=i) || (!equal && (user->ulb/1024)<i)) + result=_not; + else + result=!_not; + (*ptrptr)++; + break; + case AR_ULM: + if((equal && (user->ulb/(1024*1024))!=i) || (!equal && (user->ulb/(1024*1024))<i)) result=_not; else result=!_not; @@ -470,8 +477,15 @@ bool sbbs_t::ar_exp(uchar **ptrptr, user_t* user) result=!_not; (*ptrptr)++; break; - case AR_DLB: - if((equal && user->dlb!=i) || (!equal && user->dlb<i)) + case AR_DLK: + if((equal && user->dlb/1024!=i) || (!equal && user->dlb/1024<i)) + result=_not; + else + result=!_not; + (*ptrptr)++; + break; + case AR_DLM: + if((equal && user->dlb/(1024*1024)!=i) || (!equal && user->dlb/(1024*1024)<i)) result=_not; else result=!_not; diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index 847f744093c1686d33c4c67dd71aeb452e422e31..2f7b779c1808125dfa3276821ebc289b683785cf 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -1679,8 +1679,15 @@ static BOOL ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user) result=!not; (*ptrptr)++; break; - case AR_ULB: - if((equal && user->ulb!=i) || (!equal && user->ulb<i)) + case AR_ULK: + if((equal && user->ulb/1024!=i) || (!equal && user->ulb/1024<i)) + result=not; + else + result=!not; + (*ptrptr)++; + break; + case AR_ULM: + if((equal && user->ulb/(1024*1024)!=i) || (!equal && user->ulb/(1024*1024)<i)) result=not; else result=!not; @@ -1693,8 +1700,15 @@ static BOOL ar_exp(scfg_t* cfg, uchar **ptrptr, user_t* user) result=!not; (*ptrptr)++; break; - case AR_DLB: - if((equal && user->dlb!=i) || (!equal && user->dlb<i)) + case AR_DLK: + if((equal && user->dlb/1024!=i) || (!equal && user->dlb/1024<i)) + result=not; + else + result=!not; + (*ptrptr)++; + break; + case AR_DLM: + if((equal && user->dlb/(1024*1024)!=i) || (!equal && user->dlb/(1024*1024)<i)) result=not; else result=!not;