68 lines
1.3 KiB
C
68 lines
1.3 KiB
C
string *bitses = ({});
|
|
|
|
int bool_reverse(mixed arg){
|
|
if(!arg || (intp(arg) && arg < 1)) return 1;
|
|
else return 0;
|
|
}
|
|
|
|
int atoi(string str){
|
|
int integer;
|
|
if(str) sscanf(str, "%d", integer);
|
|
return integer;
|
|
}
|
|
|
|
string itoa(mixed i){
|
|
return ""+i;
|
|
}
|
|
|
|
string comma(mixed x){
|
|
string ret = "", pre = "", post = "";
|
|
int count = 0, i;
|
|
if(floatp(x)) sscanf(x+"","%s.%s",pre,post);
|
|
else if(intp(x)) pre = itoa(x);
|
|
else return 0;
|
|
i = sizeof(pre);
|
|
while(i){
|
|
count++;
|
|
ret = pre[<count..<count] + ret;
|
|
if(!(count % 3) && (i = sizeof(pre[<count+1..<count+1]))){
|
|
ret = "," + ret;
|
|
}
|
|
}
|
|
if(!sizeof(ret)) ret = "0";
|
|
if(sizeof(post)){
|
|
ret += "." + post[0..1];
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
int bitshiftedp(int x){
|
|
int i;
|
|
if(!sizeof(bitses)){ ;
|
|
for(i=0;i<32;i++){
|
|
bitses += ({ ( 1 << i ) });
|
|
}
|
|
}
|
|
if(member_array(x,bitses) != -1) return 1;
|
|
else return 0;
|
|
}
|
|
|
|
int *roll(string alea){
|
|
int i,*ret,quot,quod;
|
|
if( !sscanf(alea,"d%d",quod )){
|
|
if(sscanf(alea,"%dd%d",quot,quod) != 2){
|
|
return 0;
|
|
}
|
|
}
|
|
else quot = 1;
|
|
|
|
ret = allocate(quot+1);
|
|
for(i=0;i<quot;i++){
|
|
ret[i+1] = random(quod)+1;
|
|
ret[0] += ret[i+1];
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|