home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / SYSOP / MODS1.ZIP / CREDIT-2.MOD < prev    next >
Text File  |  1995-05-02  |  28KB  |  719 lines

  1. diff -H -b -p ./uedit.c Credit/uedit.c
  2. *** ./uedit.c   Thu Dec 03 19:55:36 1992
  3. --- credit/uedit.c      Fri Oct 22 20:39:50 1993
  4. *************** void print_data(int un, userrec *u, int 
  5. *** 136,143 ****
  6. --- 136,147 ----
  7.       outstr(get_string(250)); npr("%d  %d  I=%d\r\n",u->logons,
  8.         (strcmp(u->laston,date()))?0:u->ontoday,
  9.         u->illegal);
  10. +     /* Credit MOD
  11.       outstr(get_string(251)); npr("U=%d-%ldk   D=%d-%ldk\r\n",u->uploaded,u->uk,
  12.         u->downloaded, u->dk);
  13. +     Credit MOD */
  14. +     /* Credit MOD */ outstr(get_string(251));
  15. +     /* Credit MOD */ npr("U=%d-%ldk   E=%ldk   D=%d-%ldk   X=%ldk   Balance=%ldk\r\n",
  16. +     /* Credit MOD */     u->uploaded, u->uk, u->ek, u->downloaded, u->dk, u->xk, (long) (u->uk/(syscfg.req_ratio!=0.0 ? syscfg.req_ratio : 1.0) + u->ek*extcfg.dl_earnings_multiplier + u->xk - u->dk));
  17.       outstr(get_string(252)); pln(u->lastrate);
  18.     }
  19.     if (u->note[0]) {
  20. *************** void print_data(int un, userrec *u, int
  21. *** 157,164 ****
  22. --- 161,178 ----
  23.       }
  24.     }
  25.     if (u->exempt) {
  26. +     /* Credit MOD */ if (un==usernum || so()) {
  27. +     /* Credit MOD */   int m,dd,y;
  28. +     /* Credit MOD */   struct date d;
  29. +     /* Credit MOD */   struct time t;
  30. +     /* Credit MOD */
  31. +     /* Credit MOD */   unixtodos(u->exempt_daten,&d,&t);
  32.       outstr(get_string(257));
  33. +     /* Credit MOD
  34.       pln(u->exempt);
  35. +     Credit MOD */
  36. +     /* Credit MOD */   npr("%d - %02d/%02d/%02d\r\n",u->exempt,d.da_mon,d.da_day,(d.da_year-1900));
  37. +     /* Credit MOD */ }
  38.     }
  39.     strcpy(s3,restrict_string);
  40.     for (i=0; i<=15; i++) {
  41. *************** void uedit(int usern, int other)
  42. *** 374,379 ****
  43. --- 388,394 ----
  44.     char s[81],s1[81],s2[81],ch,ch1;
  45.     int i,i1,i2,i3,un,done,nu,done1,full,temp_full,tempu,cls=1,done2;
  46.     userrec u;
  47. +   /* Credit MOD */ long li;
  48.   
  49.     u_qsc=(unsigned long *)farmalloc(syscfg.qscn_len);
  50.   
  51. *************** void uedit(int usern, int other)
  52. *** 507,512 ****
  53. --- 522,528 ----
  54.             break;
  55.           case 'C':
  56.           nl();
  57. +         /* Credit MOD
  58.           prt(2,get_string(270));
  59.           input(s,sizeof(u.callsign)-1);
  60.           if (s[0]) {
  61. *************** void uedit(int usern, int other)
  62. *** 519,524 ****
  63. --- 535,572 ----
  64.               write_user(un,&u);
  65.             }
  66.           }
  67. +         Credit MOD */
  68. +         /* Credit MOD */ prt(2,"New upload credits? ");
  69. +         /* Credit MOD */ input(s,10);
  70. +         /* Credit MOD */ li=atol(s);
  71. +         /* Credit MOD */ if (s[0]) {
  72. +         /* Credit MOD */   u.uk=li;
  73. +         /* Credit MOD */   write_user(un,&u);
  74. +         /* Credit MOD */ }
  75. +         /* Credit MOD */ nl();
  76. +         /* Credit MOD */ prt(2,"New earned credits? ");
  77. +         /* Credit MOD */ input(s,10);
  78. +         /* Credit MOD */ li=atol(s);
  79. +         /* Credit MOD */ if (s[0]) {
  80. +         /* Credit MOD */   u.ek=li;
  81. +         /* Credit MOD */   write_user(un,&u);
  82. +         /* Credit MOD */ }
  83. +         /* Credit MOD */ nl();
  84. +         /* Credit MOD */ prt(2,"New download charges? ");
  85. +         /* Credit MOD */ input(s,10);
  86. +         /* Credit MOD */ li=atol(s);
  87. +         /* Credit MOD */ if (s[0]) {
  88. +         /* Credit MOD */   u.dk=li;
  89. +         /* Credit MOD */   write_user(un,&u);
  90. +         /* Credit MOD */ }
  91. +         /* Credit MOD */ nl();
  92. +         /* Credit MOD */ prt(2,"New exempted download credits? ");
  93. +         /* Credit MOD */ input(s,10);
  94. +         /* Credit MOD */ li=atol(s);
  95. +         /* Credit MOD */ if (s[0]) {
  96. +         /* Credit MOD */   u.xk=li;
  97. +         /* Credit MOD */   write_user(un,&u);
  98. +         /* Credit MOD */ }
  99.           break;
  100.         case 'P':
  101.           nl();
  102. *************** void uedit(int usern, int other)
  103. *** 603,608 ****
  104. --- 651,680 ----
  105.             i=atoi(s);
  106.             if ((i>=0) && (i<=255) && (s[0])) {
  107.             u.exempt=i;
  108. +           /* Credit MOD */ if (i>0) {
  109. +           /* Credit MOD */   int m,dd,y;
  110. +           /* Credit MOD */   struct date d;
  111. +           /* Credit MOD */   struct time t;
  112. +           /* Credit MOD */
  113. +           /* Credit MOD */   prt(2,"Enter new exemption expiration date in the format\r\n");
  114. +           /* Credit MOD */   pl(get_string(792));
  115. +           /* Credit MOD */   outstr(":");
  116. +           /* Credit MOD */   mpl(8);
  117. +           /* Credit MOD */   input(s,8);
  118. +           /* Credit MOD */   m=atoi(s);
  119. +           /* Credit MOD */   dd=atoi(&(s[3]));
  120. +           /* Credit MOD */   y=atoi(&(s[6]))+1900;
  121. +           /* Credit MOD */   if ((strlen(s)==8) && (m>0) && (m<=12) && (dd>0) && (dd<32) && (y>=1980)) {
  122. +           /* Credit MOD */     t.ti_min=0;
  123. +           /* Credit MOD */     t.ti_hour=0;
  124. +           /* Credit MOD */     t.ti_hund=0;
  125. +           /* Credit MOD */     t.ti_sec=0;
  126. +           /* Credit MOD */     d.da_year=y;
  127. +           /* Credit MOD */     d.da_day=dd;
  128. +           /* Credit MOD */     d.da_mon=m;
  129. +           /* Credit MOD */     u.exempt_daten=dostounix(&d,&t);
  130. +           /* Credit MOD */   }
  131. +           /* Credit MOD */ }
  132.             write_user(un,&u);
  133.             }
  134.             break;
  135.  
  136.  
  137.  
  138. diff -H -b -p ./utility.c Credit/utility.c
  139. *** ./utility.c Thu Dec 03 19:55:56 1992
  140. --- credit/utility.c    Fri Oct 22 18:09:30 1993
  141. *************** void end_crit(void)
  142. *** 1141,1143 ****
  143. --- 1141,1179 ----
  144.       geninterrupt(0x15);
  145.     }
  146.   }
  147. + /* Credit MOD */ int before_end_of_day(time_t t)
  148. + /* Credit MOD */ {
  149. + /* Credit MOD */   return(time(NULL) < (t + (24L*60L*60L)));
  150. + /* Credit MOD */ }
  151. + /* Credit MOD */
  152. + /* Credit MOD */ long ston(char *s)
  153. + /* Credit MOD */ {
  154. + /* Credit MOD */   struct date d;
  155. + /* Credit MOD */   struct time t;
  156. + /* Credit MOD */   int m,dd,y;
  157. + /* Credit MOD */
  158. + /* Credit MOD */   m=atoi(s);
  159. + /* Credit MOD */   dd=atoi(&(s[3]));
  160. + /* Credit MOD */   y=atoi(&(s[6]))+1900;
  161. + /* Credit MOD */   if ((strlen(s)==8) && (m>0) && (m<=12) && (dd>0) && (dd<32) && (y>=1980)) {
  162. + /* Credit MOD */     t.ti_min=0;
  163. + /* Credit MOD */     t.ti_hour=0;
  164. + /* Credit MOD */     t.ti_hund=0;
  165. + /* Credit MOD */     t.ti_sec=0;
  166. + /* Credit MOD */     d.da_year=y;
  167. + /* Credit MOD */     d.da_day=dd;
  168. + /* Credit MOD */     d.da_mon=m;
  169. + /* Credit MOD */     return(dostounix(&d,&t));
  170. + /* Credit MOD */   } else
  171. + /* Credit MOD */     return(-1);
  172. + /* Credit MOD */ }
  173. + /* Credit MOD */ char *ntos(long n)
  174. + /* Credit MOD */ {
  175. + /* Credit MOD */   static char s[9];
  176. + /* Credit MOD */   struct date d;
  177. + /* Credit MOD */   struct time t;
  178. + /* Credit MOD */
  179. + /* Credit MOD */   unixtodos(n,&d,&t);
  180. + /* Credit MOD */   sprintf(s,"%02d/%02d/%02d",d.da_mon,d.da_day,(d.da_year-1900));
  181. + /* Credit MOD */   return(s);
  182. + /* Credit MOD */ }
  183.  
  184.  
  185.  
  186. diff -H -b -p ./vardec.h Credit/vardec.h
  187. *** ./vardec.h  Thu Dec 17 17:49:10 1992
  188. --- credit/vardec.h     Fri Oct 22 18:48:36 1993
  189. *************** typedef struct {
  190. *** 109,116 ****
  191. --- 109,122 ----
  192.         wwiv_regnum,    /* user's WWIV reg number */
  193.         filepoints;     /* points to spend for files */
  194.  
  195. +     /* Credit MOD
  196.       char
  197.         res_long[56];   /* reserved for long values */
  198. +     Credit MOD */
  199. +     /* Credit MOD */  char res_long[44]; /* reserved for long values */
  200. +     /* Credit MOD */  long exempt_daten, /* exemption expiration date */
  201. +     /* Credit MOD */       ek,           /* number of k download earnings */
  202. +     /* Credit MOD */       xk;           /* number of k download exempts */
  203.  
  204.       float
  205.         timeontoday,    /* time on today */
  206. *************** typedef struct {
  207. *** 459,464 ****
  208. --- 465,471 ----
  209.           short           dir;
  210.           float           time;
  211.           long            len;
  212. +       long            /* Credit MOD */ charge;
  213.   } batchrec;
  214.  
  215.   typedef enum {
  216. *************** typedef enum {
  217. *** 472,478 ****
  218. --- 479,488 ----
  219.   /* userrec.exempt */
  220.   #define exempt_ratio 0x01
  221.   #define exempt_time 0x02
  222. + /* Credit MOD
  223.   #define exempt_all 0x04
  224. + Credit MOD */
  225. + /* Credit MOD */ #define exempt_charge 0x04
  226.   #define exempt_post 0x08
  227.  
  228.   /* userrec.restrict */
  229. *************** typedef struct {
  230. *** 632,637 ****
  231. --- 642,650 ----
  232.                           com_speed;              /* speed com port runs at */
  233.   } resultrec;
  234.  
  235. + /* Credit MOD */ typedef struct {
  236. + /* Credit MOD */   float  dl_earnings_multiplier;
  237. + /* Credit MOD */ } configextendedrec;
  238.  
  239.   #define max_buf 1024
  240.   #define MSG_COLOR 0
  241.  
  242.  
  243.  
  244. diff -H -b -p ./vars.h Credit/vars.h
  245. *** ./vars.h    Wed Dec 16 15:36:48 1992
  246. --- credit/vars.h       Fri Oct 22 18:48:36 1993
  247. *************** __EXTRN__ char ansistr[81], cdir[81], ch
  248. *** 74,79 ****
  249. --- 74,80 ----
  250.                  search_pattern[81], *sp, str_no[20], str_pause[80],
  251.                  str_quit[20], str_yes[20], tc[81], ver_no1[51],
  252.                  ver_no2[51],wwiv_net_no[20], xdate[9], *xenviron[50];
  253. + /* Credit MOD */ __EXTRN__ char tempfilename[13];
  254.  
  255.   __EXTRN__ unsigned char actsl, andwith, checksum;
  256.  
  257. *************** __EXTRN__ int abortext, already_on, ansi
  258. *** 98,103 ****
  259. --- 99,105 ----
  260.               sysop_alert, tempio, topdata, topline, two_color,
  261.               userfile, usernum, useron, use_workspace, using_modem,
  262.               wfc, x_only;
  263. + /* Credit MOD */ __EXTRN__ int tempownersys, tempownerusr, tempfreefile;
  264.  
  265.   __EXTRN__ unsigned short com_speed, *csn_index, crc, *gat, modem_flag,
  266.                          modem_mode, modem_speed, net_sysnum;
  267. *************** __EXTRN__ unsigned short com_speed, *csn
  268. *** 105,110 ****
  269. --- 107,113 ----
  270.  
  271.   __EXTRN__ long *dir_dates, hanguptime1, last_time_c, nscandate, *sub_dates,
  272.                this_date, timelastchar1, quotes_nrm_l, quotes_ind_l;
  273. + /* Credit MOD */ __EXTRN__ long batchcharge, batchlen;
  274.  
  275.   __EXTRN__ unsigned long *qsc, *qsc_n, *qsc_q, *qsc_p;
  276.  
  277. *************** __EXTRN__ float batchtime;
  278. *** 114,119 ****
  279. --- 117,123 ----
  280.   __EXTRN__ double extratimecall, last_time, timeon, time_event, xtime;
  281.  
  282.   
  283. + /* Credit MOD */ __EXTRN__ configextendedrec extcfg;
  284.   __EXTRN__ userrec thisuser;
  285.   __EXTRN__ configrec syscfg;
  286.   __EXTRN__ statusrec status;
  287.  
  288.  
  289.  
  290. diff -H -b -p ./xfer.c Credit/xfer.c
  291. *** ./xfer.c    Sun Jan 10 14:11:50 1993
  292. --- credit/xfer.c       Fri Oct 22 20:34:38 1993
  293. *************** int ratio_ok(void)
  294. *** 266,275 ****
  295. --- 266,282 ----
  296.     int ok=1;
  297.     char s[101];
  298.  
  299. +   /* Credit MOD
  300.     if (!(thisuser.exempt & exempt_ratio))
  301. +   Credit MOD */
  302. +   /* Credit MOD */ if (! (thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten)))
  303. +   /* Credit MOD
  304.       if ((syscfg.req_ratio>0.0001) && (ratio()<syscfg.req_ratio)) {
  305. +   Credit MOD */
  306. +     /* Credit MOD */ if ((double) balance() < 0.0) {  /* you cannot overdraw */
  307.         ok=0;
  308.         nl();
  309. +       /* Credit MOD
  310.         nl();
  311.         sprintf(s,"%s %-5.3f.  %s %-5.3f %s.",
  312.               get_string(730), ratio(),
  313. *************** int ratio_ok(void)
  314. *** 276,281 ****
  315. --- 283,291 ----
  316.               get_string(731), syscfg.req_ratio,
  317.               get_string(732));
  318.         pl(s);
  319. +       Credit MOD */
  320. +       /* Credit MOD */ npr("You have a credit balance of: %ldk\r\n",balance());
  321. +       /* Credit MOD */ npr("You cannot download until you gain more credit.\r\n");
  322.         nl();
  323.       }
  324.  
  325. *************** int printfileinfo(uploadsrec *u, int dn)
  326. *** 971,981 ****
  327. --- 981,1000 ----
  328.       d=0.0;
  329.     outstr(get_string(746)); pl(stripfn(u->filename));
  330.     outstr(get_string(747)); pl(u->description);
  331. +   /* Credit MOD
  332.     outstr(get_string(748)); npr("%dk\r\n", ((u->numbytes)+1023)/1024);
  333. +   Credit MOD */
  334. +   /* Credit MOD */ outstr(get_string(748));
  335. +   /* Credit MOD */ if (u->filetype=='F')
  336. +   /* Credit MOD */   npr("%dk - free download\r\n", ((u->numbytes)+1023)/1024);
  337. +   /* Credit MOD */ else
  338. +   /* Credit MOD */   npr("%dk\r\n", ((u->numbytes)+1023)/1024);
  339.     outstr(get_string(749)); pl(ctim(d));
  340.     outstr(get_string(750)); pl(u->date);
  341.     outstr(get_string(751)); pl(u->upby);
  342.     outstr(get_string(752)); pln(u->numdloads);
  343. +   /* Credit MOD */ if (syscfg.req_ratio>0.0001)
  344. +   /* Credit MOD */   npr("Crd. earned: %ldk\r\n",(long) ((((u->numbytes/syscfg.req_ratio)+1023)/1024)+(u->numdloads*(((u->numbytes*extcfg.dl_earnings_multiplier)+1023)/1024))));
  345.     nl();
  346.     abort=0;
  347.     if (u->mask & mask_extended) {
  348. *************** int printfileinfo(uploadsrec *u, int dn)
  349. *** 991,997 ****
  350. --- 1010,1019 ----
  351.       return(-1);
  352.     }
  353.  
  354. +   /* Credit MOD
  355.     if (nsl()>=d)
  356. +   Credit MOD */
  357. +   /* Credit MOD */ if (nsl()>=d || (thisuser.exempt & exempt_time && before_end_of_day(thisuser.exempt_daten)))
  358.       return(1);
  359.     else
  360.       return(0);
  361. *************** void upload(int dn)
  362. *** 1260,1267 ****
  363. --- 1282,1292 ----
  364.             nl();
  365.             pl(get_string(781));
  366.             nl();
  367. +           /* Credit MOD
  368.             outstr(get_string(782));
  369.             npr("%-6.3f\r\n", ratio());
  370. +           Credit MOD */
  371. +           /* Credit MOD */ npr("You now have a credit balance of: %ldk\r\n",balance());
  372.             nl();
  373.               nl();
  374.               if (useron)
  375. *************** int try_to_download(char *s, int dn,int
  376. *** 1311,1316 ****
  377. --- 1336,1343 ----
  378.     uploadsrec u;
  379.     char s1[81];
  380.     userrec ur;
  381. +   /* Credit MOD */ char s2[81];
  382. +   /* Credit MOD */ userrec uu;
  383.  
  384.     dliscan1(dn);
  385.     i=recno(s);
  386. *************** int try_to_download(char *s, int dn,int
  387. *** 1344,1355 ****
  388. --- 1371,1396 ----
  389.         sent=0;
  390.         abort=0;
  391.         if (i1==-1)
  392. +       /* Credit MOD
  393.         send_file(s1,&sent,&abort,u.filetype,u.filename,dn, -2L);
  394. +       Credit MOD */
  395. +       /* Credit MOD */ send_file(s1,&sent,&abort,u.filetype,u.filename,dn, -2L, -2L);
  396.         else
  397. +       /* Credit MOD
  398.         send_file(s1,&sent,&abort,u.filetype,u.filename,dn, u.numbytes);
  399. +       Credit MOD */
  400. +       /* Credit MOD */ send_file(s1,&sent,&abort,u.filetype,u.filename,dn, u.numbytes, ((u.filetype=='F') ? 0 : (u.numbytes+1023)/1024));
  401.         if (sent) {
  402. +         /* Credit MOD */ if (u.filetype!='F') {
  403.         ++thisuser.downloaded;
  404. +       /* Credit MOD
  405.         thisuser.dk += (int) ((u.numbytes+1023)/1024);
  406. +       Credit MOD */
  407. +       /* Credit MOD */   thisuser.dk += (unsigned long) (u.numbytes+1023)/1024;
  408. +       /* Credit MOD */   if (thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten))
  409. +       /* Credit MOD */     thisuser.xk += (unsigned long) (u.numbytes+1023)/1024;
  410. +       /* Credit MOD */ }
  411. +       /* Credit MOD */ if (usernum!=u.ownerusr && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten)))
  412.         ++u.numdloads;
  413.         SETREC(i);
  414.         write(dlf,(void *)&u,sizeof(uploadsrec));
  415. *************** int try_to_download(char *s, int dn,int
  416. *** 1357,1362 ****
  417. --- 1398,1404 ----
  418.         sysoplog(s1);
  419.         nl();
  420.         nl();
  421. +       /* Credit MOD
  422.         outstr(get_string(782)); npr("%-6.3f\r\n", ratio());
  423.         if (syscfg.sysconfig & sysconfig_log_dl) {
  424.           read_user(u.ownerusr, &ur);
  425. *************** int try_to_download(char *s, int dn,int
  426. *** 1368,1373 ****
  427. --- 1410,1435 ----
  428.             }
  429.           }
  430.         }
  431. +       Credit MOD */
  432. +       /* Credit MOD */ if ((usernum!=u.ownerusr) && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten))) {
  433. +       /* Credit MOD */   if ((u.ownersys==0) && (u.ownerusr!=0)) {
  434. +       /* Credit MOD */     read_user(u.ownerusr,&uu);
  435. +       /* Credit MOD */     if ((uu.inact & inact_deleted)==0) {
  436. +       /* Credit MOD */      uu.ek += (1023L+u.numbytes)/1024L;
  437. +       /* Credit MOD */      write_user(u.ownerusr,&uu);
  438. +       /* Credit MOD */     }
  439. +       /* Credit MOD */     if ((syscfg.sysconfig & sysconfig_log_dl) &&
  440. +       /* Credit MOD */         (uu.dsl>=directories[dn].dsl) &&
  441. +       /* Credit MOD */         (uu.age>=directories[dn].age) &&
  442. +       /* Credit MOD */         (!directories[dn].dar ||
  443. +       /* Credit MOD */          (directories[dn].dar & uu.dar)!=0)) {
  444. +       /* Credit MOD */      ltoa((long)(((long)(u.numbytes*extcfg.dl_earnings_multiplier)+1023L)/1024L),s2,10);
  445. +       /* Credit MOD */      sprintf(s1,"%s downloaded '%s' on %s, %sk credit earned.",nam(&thisuser,usernum),stripfn(u.filename),date(),s2);
  446. +       /* Credit MOD */      ssm(u.ownerusr,0,s1);
  447. +       /* Credit MOD */     }
  448. +       /* Credit MOD */   }
  449. +       /* Credit MOD */ }
  450. +       /* Credit MOD */ npr("You %s have a credit balance of: %ldk\r\n",(((u.filetype=='F') || (thisuser.exempt & exempt_charge && before_end_of_day(thisuser.exempt_daten))) ? "still" : "now"),balance());
  451.         if (useron)
  452.           topscreen();
  453.         }
  454. *************** void yourinfodl(void)
  455. *** 1565,1570 ****
  456. --- 1627,1634 ----
  457.     nl();
  458.     outstr(get_string(796));
  459.     npr("%ldk",thisuser.uk);
  460. +   /* Credit MOD */ if (syscfg.req_ratio>0.0001)
  461. +   /* Credit MOD */ npr(" * %.3lf",1.0/syscfg.req_ratio);
  462.     outstr(get_string(797));
  463.     npr("%d",thisuser.uploaded);
  464.     pl(get_string(798));
  465. *************** void yourinfodl(void)
  466. *** 1572,1580 ****
  467. --- 1636,1654 ----
  468.     npr("%ldk",thisuser.dk);
  469.     outstr(get_string(797));
  470.     npr("%d",thisuser.downloaded);
  471. +   /* Credit MOD */ if (thisuser.xk)
  472. +   /* Credit MOD */   npr(" files (%luk exempted)\r\n",thisuser.xk);
  473. +   /* Credit MOD */ else
  474.     pl(get_string(798));
  475. +   /* Credit MOD */ npr("Earnings : %luk * %.3lf\r\n",thisuser.ek,extcfg.dl_earnings_multiplier);
  476. +   /* Credit MOD */ npr("Balance  : %ldk\r\n",balance());
  477.     outstr(get_string(800)); npr("%-6.3f\r\n",ratio());
  478. +   /* Credit MOD
  479.     outstr(get_string(801)); pln(thisuser.dsl);
  480. +   Credit MOD */
  481. +   /* Credit MOD */ npr("Your DSL : %d\r\n",thisuser.dsl);
  482. +   /* Credit MOD */ if ((thisuser.exempt & (exempt_ratio | exempt_charge)) && before_end_of_day(thisuser.exempt_daten))
  483. +   /* Credit MOD */   npr("Exempt   : %s through %s\r\n",((thisuser.exempt & exempt_ratio) ? "from balance" : "from download charges"),ntos(thisuser.exempt_daten));
  484.     nl();
  485.   }
  486.  
  487. *************** void removefile(void)
  488. *** 1702,1707 ****
  489. --- 1776,1782 ----
  490.     char ch,s[81],s1[81];
  491.     uploadsrec u;
  492.     userrec uu;
  493. +   /* Credit MOD */ char s2[81];
  494.  
  495.     dliscan();
  496.     nl();
  497. *************** void removefile(void)
  498. *** 1751,1758 ****
  499. --- 1826,1843 ----
  500.               if ((uu.inact & inact_deleted)==0) {
  501.                 if (date_to_daten(uu.firston) < u.daten) {
  502.                   --uu.uploaded;
  503. +                 /* Credit MOD
  504.                   uu.uk -= ((u.numbytes+1023)/1024);
  505. +                 Credit MOD */
  506. +                 /* Credit MOD */ uu.uk -= (1023L+u.numbytes)/1024L;
  507. +                 /* Credit MOD */ uu.ek -= u.numdloads * (1023L+u.numbytes)/1024L;
  508.                   write_user(u.ownerusr,&uu);
  509. +                 /* Credit MOD */ if (syscfg.req_ratio>0.0001 && syscfg.sysconfig & sysconfig_log_dl)
  510. +                 /* Credit MOD */   if (usernum!=u.ownerusr) {
  511. +                 /* Credit MOD */     ltoa((long) ((((u.numbytes/syscfg.req_ratio)+1023)/1024)+(u.numdloads*(((u.numbytes*extcfg.dl_earnings_multiplier)+1023)/1024))),s2,10);
  512. +                 /* Credit MOD */     sprintf(s1,"%s was removed and deleted on %s, %sk credit removed.",stripfn(u.filename),date(),s2);
  513. +                 /* Credit MOD */     ssm(u.ownerusr,0,s1);
  514. +                 /* Credit MOD */   }
  515.                 }
  516.               }
  517.               close_user();
  518. *************** void removefile(void)
  519. *** 1785,1787 ****
  520. --- 1870,1876 ----
  521.   }
  522.  
  523.  
  524. + /* Credit MOD */ long balance(void)
  525. + /* Credit MOD */ {
  526. + /* Credit MOD */   return((long)(thisuser.uk/(syscfg.req_ratio>0.0001 ? syscfg.req_ratio : 1.0) + thisuser.ek*extcfg.dl_earnings_multiplier + thisuser.xk - thisuser.dk));
  527. + /* Credit MOD */ }
  528.  
  529.  
  530.  
  531. diff -H -b -p ./xferovl.c Credit/xferovl.c
  532. *** ./xferovl.c Thu Dec 31 11:00:54 1992
  533. --- credit/xferovl.c    Sat Oct 23 00:33:28 1993
  534. *************** int upload_file(char *fn, int dn, char *
  535. *** 428,434 ****
  536. --- 428,437 ----
  537.       strcpy(u.date,date());
  538.       if (d.mask & mask_PD)
  539.         d.mask=mask_PD;
  540. +     /* Credit MOD
  541.       npr("%s: %4ldk :",u.filename,((u.numbytes)+1023)/1024);
  542. +     Credit MOD */
  543. +     /* Credit MOD */ npr("%s: %5ldk :",u.filename,((u.numbytes)+1023)/1024);
  544.       if ((desc) && (*desc)) {
  545.         strncpy(u.description,desc,58);
  546.         u.description[58]=0;
  547. *************** int uploadall(int dn)
  548. *** 576,579 ****
  549. --- 581,644 ----
  550.     return(i1);
  551.   }
  552.  
  553. + /* Credit MOD */ void freefile(void)
  554. + /* Credit MOD */ {                                               /* conflicts with apple */
  555. + /* Credit MOD */   char s[81],ch;                                /* filetype file record */
  556. + /* Credit MOD */   int i;
  557. + /* Credit MOD */   uploadsrec u;
  558. + /* Credit MOD */
  559. + /* Credit MOD */   nl();
  560. + /* Credit MOD */   nl();
  561. + /* Credit MOD */   prt(2,"File to make free or not free to download: ");
  562. + /* Credit MOD */   mpl(12);
  563. + /* Credit MOD */   input(s,12);
  564. + /* Credit MOD */   if (s[0]==0)
  565. + /* Credit MOD */     return;
  566. + /* Credit MOD */   if (strchr(s,'.')==NULL)
  567. + /* Credit MOD */     strcat(s,"*.*");
  568. + /* Credit MOD */   align(s);
  569. + /* Credit MOD */   dliscan();
  570. + /* Credit MOD */   nl();
  571. + /* Credit MOD */   i=recno(s);
  572. + /* Credit MOD */   while (i>0) {
  573. + /* Credit MOD */     SETREC(i);
  574. + /* Credit MOD */     read(dlf,(void *)&u,sizeof(uploadsrec));
  575. + /* Credit MOD */     nl();
  576. + /* Credit MOD */     printfileinfo(&u,udir[curdir].subnum);
  577. + /* Credit MOD */     nl();
  578. + /* Credit MOD */     prt(5,"Should this file be free to download (Y/N/Q)? ");
  579. + /* Credit MOD */     ch=onek("QNY");
  580. + /* Credit MOD */     if (ch=='Q')
  581. + /* Credit MOD */       break;
  582. + /* Credit MOD */     else {
  583. + /* Credit MOD */       if ((ch=='Y') && (u.filetype==0))
  584. + /* Credit MOD */         u.filetype='F';
  585. + /* Credit MOD */       else
  586. + /* Credit MOD */         if ((ch=='N') && (u.filetype=='F'))
  587. + /* Credit MOD */           u.filetype=0;
  588. + /* Credit MOD */       SETREC(i);
  589. + /* Credit MOD */       write(dlf,(void *)&u,sizeof(uploadsrec));
  590. + /* Credit MOD */       i=nrecno(s,i);
  591. + /* Credit MOD */     }
  592. + /* Credit MOD */   }
  593. + /* Credit MOD */   closedl();
  594. + /* Credit MOD */ }
  595. + /* Credit MOD */ void disassociate_uploads(unsigned int un)
  596. + /* Credit MOD */ {
  597. + /* Credit MOD */   int i,i1;
  598. + /* Credit MOD */   uploadsrec u;
  599. + /* Credit MOD */
  600. + /* Credit MOD */   for (i=0; (i<64) && (udir[i].subnum!=-1); i++) {
  601. + /* Credit MOD */     dliscan();
  602. + /* Credit MOD */     for (i1=1; (i1<=numf); i1++) {
  603. + /* Credit MOD */       SETREC(i1);
  604. + /* Credit MOD */       read(dlf,(void *)&u,sizeof(uploadsrec));
  605. + /* Credit MOD */       if (u.ownerusr==un && u.ownersys==0) {
  606. + /* Credit MOD */         u.ownersys=-1;
  607. + /* Credit MOD */         write(dlf,(void *)&u,sizeof(uploadsrec));
  608. + /* Credit MOD */       }
  609. + /* Credit MOD */     }
  610. + /* Credit MOD */     closedl();
  611. + /* Credit MOD */   }
  612. + /* Credit MOD */ }
  613.  
  614.  
  615.  
  616. diff -H -b -p ./xfertmp.c Credit/xfertmp.c
  617. *** ./xfertmp.c Thu Dec 03 19:55:16 1992
  618. --- credit/xfertmp.c    Fri Oct 22 23:05:04 1993
  619. *************** void download_temp_arc(char *fn, int xfe
  620. *** 404,409 ****
  621. --- 404,411 ----
  622.     long numbytes;
  623.     double d;
  624.     int i,f,sent,abort;
  625. +   /* Credit MOD */ char s2[81];
  626. +   /* Credit MOD */ userrec uu;
  627.  
  628.     outstr(get_string(847));
  629.     npr("%s.%s:\r\n\r\n", fn, syscfg.arcs[ARC_NUMBER].extension);
  630. *************** void download_temp_arc(char *fn, int xfe
  631. *** 433,449 ****
  632. --- 435,479 ----
  633.       pl(ctim(d));
  634.       sent=0;
  635.       abort=0;
  636. +     /* Credit MOD
  637.       sprintf(s,"%s.%s",fn,syscfg.arcs[ARC_NUMBER].extension);
  638.       send_file(s1,&sent,&abort,0,s,-1,numbytes);
  639. +     Credit MOD */
  640. +     /* Credit MOD */ send_file(s1,&sent,&abort,0,s,-1,numbytes,(tempfreefile ? 0 : numbytes));
  641.       if (sent) {
  642.         if (xfer) {
  643. +       /* Credit MOD */ if (!tempfreefile) {
  644.         ++thisuser.downloaded;
  645.         thisuser.dk += ((numbytes+1023)/1024);
  646. +       /* Credit MOD
  647.         nl();
  648.         nl();
  649.         outstr(get_string(782)); npr("%-6.3f\r\n",ratio());
  650. +       Credit MOD */
  651. +       /* Credit MOD */   if (thisuser.exempt & exempt_charge && before_end_of_day(thisuser.exempt_daten))
  652. +       /* Credit MOD */     thisuser.xk += (unsigned long) (numbytes+1023)/1024;
  653. +       /* Credit MOD */ }
  654. +       /* Credit MOD */ if ((usernum!=tempownerusr) && !(thisuser.exempt & (exempt_ratio | exempt_charge) && before_end_of_day(thisuser.exempt_daten))) {
  655. +       /* Credit MOD */   if ((tempownersys==0) && (tempownerusr!=0)) {
  656. +       /* Credit MOD */     read_user(tempownerusr,&uu);
  657. +       /* Credit MOD */     if ((uu.inact & inact_deleted)==0) {
  658. +       /* Credit MOD */       uu.ek += (1023L+numbytes)/1024L;
  659. +       /* Credit MOD */       write_user(tempownerusr,&uu);
  660. +       /* Credit MOD */     }
  661. +       /* Credit MOD */     if ((syscfg.sysconfig & sysconfig_log_dl) &&
  662. +       /* Credit MOD */         (!thisuser.dar ||
  663. +       /* Credit MOD */          (thisuser.dar & uu.dar)!=0)) {
  664. +       /* Credit MOD */       ltoa((long)(((long)(numbytes*extcfg.dl_earnings_multiplier)+1023L)/1024L),s2,10);
  665. +       /* Credit MOD */       sprintf(s1,"%s downloaded '%s' on %s, %sk credit earned.",nam(&thisuser,usernum),stripfn(s),date(),s2);
  666. +       /* Credit MOD */       ssm(tempownerusr,0,s1);
  667. +       /* Credit MOD */       sprintf(s1,"  %s was extracted from %s.",stripfn(s),tempfilename);
  668. +       /* Credit MOD */       ssm(tempownerusr,0,s1);
  669. +       /* Credit MOD */     }
  670. +       /* Credit MOD */   }
  671. +       /* Credit MOD */ }
  672.         }
  673.         sprintf(s1,get_stringx(1,45),(numbytes+1023)/1024, s);
  674. +       /* Credit MOD */ sprintf(s1,"Downloaded %s, extracted from %s, and was charged %ldk.",stripfn(s),tempfilename,(tempfreefile ? 0 : (numbytes+1023)/1024));
  675.         sysoplog(s1);
  676.         if (useron)
  677.           topscreen();
  678. *************** void temp_extract(void)
  679. *** 619,624 ****
  680. --- 649,660 ----
  681.             if (!okfn(s1))
  682.               s3[0]=0;
  683.             if (s3[0]) {
  684. +             /* Credit MOD */ if ((tempownerusr!=u.ownerusr) || (tempfreefile != (u.filetype=='F')))
  685. +             /* Credit MOD */   remove_from_temp("*.*",syscfg.tempdir,0);
  686. +             /* Credit MOD */ strcpy(tempfilename,stripfn(u.filename));
  687. +             /* Credit MOD */ tempownersys=u.ownersys;
  688. +             /* Credit MOD */ tempownerusr=u.ownerusr;
  689. +             /* Credit MOD */ tempfreefile=(u.filetype=='F');
  690.               do_external(s3,0);
  691.               sprintf(s2,get_stringx(1,47),s1,u.filename);
  692.             } else
  693.  
  694.  
  695.  
  696. diff -H -b -p ./xinit.c Credit/xinit.c
  697. *** ./xinit.c   Wed Dec 30 17:08:00 1992
  698. --- credit/xinit.c      Fri Oct 22 18:48:34 1993
  699. *************** void init(void)
  700. *** 503,506 ****
  701. --- 503,507 ----
  702.     unlink("WWIV_NET.DAT");
  703.  
  704.     detect_multitask();
  705. +   /* Credit MOD */ extcfg.dl_earnings_multiplier=0.50;
  706.   }
  707.  
  708.  
  709.  
  710. Other modifications by Arc Angel
  711.  
  712. Filename      Ver     Date     Description
  713. ──────────────────────────────────────────────────────────────────────────────
  714. 1usenup.mod   1.0   09/06/93   Uses nup's from a list (deleted after 1 use)
  715. 422ml.mod     1.2   06/03/93   Adds multiline capability to WWIV v4.22
  716. Guest.mod     1.1   10/10/93   Adds a (G)uest restriction to WWIV
  717. Merge.mod     1.1   10/09/93   Allows full control over WWIV network gating
  718. ──────────────────────────────────────────────────────────────────────────────
  719.