home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / WWIVMODS / RANK.ZIP / RANK.C < prev    next >
C/C++ Source or Header  |  1992-04-22  |  11KB  |  328 lines

  1. /* Sysop Configurable Ranks V 1.02 */
  2. /* Written By: Dr. D. */
  3. /* Black Cross 1992 */
  4.  
  5. #include "vars.h"
  6. #include "vardec.h"
  7. #include "fcns.h"
  8.  
  9. int rank_sex;
  10.  
  11. void rankedit()
  12. {
  13.   rank_sex=1;
  14.   read_ranks();
  15.   male_list();
  16. }
  17.  
  18. void read_ranks()
  19. {
  20.   int handle,i=1;
  21.  
  22.   handle=open("RANK.DAT",O_RDWR);
  23.   do {
  24.     read(handle,rankcfg.rank[i],40);
  25.     i++;
  26.   } while (i<53);
  27. }
  28.  
  29. void write_ranks()
  30. {
  31.   int handle,i=1;
  32.  
  33.   handle=open("RANK.DAT",O_CREAT | O_RDWR);
  34.   do {
  35.     write(handle,rankcfg.rank[i],40);
  36.     i++;
  37.   } while (i<53);
  38. }
  39.  
  40.  
  41. void male_list()
  42. {
  43.   nl();
  44.   nl();
  45.   pl("  #  │   SL  │       Male  Rank");
  46.   npr("  1  │  0-9  │ %s\r\n",rankcfg.rank[1]);
  47.   npr("  2  │ 10-19 │ %s\r\n",rankcfg.rank[2]);
  48.   npr("  3  │ 20-29 │ %s\r\n",rankcfg.rank[3]);
  49.   npr("  4  │ 30-39 │ %s\r\n",rankcfg.rank[4]);
  50.   npr("  5  │ 40-49 │ %s\r\n",rankcfg.rank[5]);
  51.   npr("  6  │ 50-59 │ %s\r\n",rankcfg.rank[6]);
  52.   npr("  7  │ 60-69 │ %s\r\n",rankcfg.rank[7]);
  53.   npr("  8  │ 70-79 │ %s\r\n",rankcfg.rank[8]);
  54.   npr("  9  │ 80-89 │ %s\r\n",rankcfg.rank[9]);
  55.   npr(" 10  │ 90-99 │ %s\r\n",rankcfg.rank[10]);
  56.   npr(" 11  │100-109│ %s\r\n",rankcfg.rank[11]);
  57.   npr(" 12  │110-119│ %s\r\n",rankcfg.rank[12]);
  58.   npr(" 13  │120-129│ %s\r\n",rankcfg.rank[13]);
  59.   npr(" 14  │130-139│ %s\r\n",rankcfg.rank[14]);
  60.   npr(" 15  │140-149│ %s\r\n",rankcfg.rank[15]);
  61.   npr(" 16  │150-159│ %s\r\n",rankcfg.rank[16]);
  62.   npr(" 17  │160-169│ %s\r\n",rankcfg.rank[17]);
  63.   npr(" 18  │170-179│ %s\r\n",rankcfg.rank[18]);
  64.   npr(" 19  │180-189│ %s\r\n",rankcfg.rank[19]);
  65.   npr(" 20  │190-199│ %s\r\n",rankcfg.rank[20]);
  66.   npr(" 21  │200-209│ %s\r\n",rankcfg.rank[21]);
  67.   npr(" 22  │210-219│ %s\r\n",rankcfg.rank[22]);
  68.   npr(" 23  │220-229│ %s\r\n",rankcfg.rank[23]);
  69.   npr(" 24  │230-239│ %s\r\n",rankcfg.rank[24]);
  70.   npr(" 25  │240-249│ %s\r\n",rankcfg.rank[25]);
  71.   npr(" 26  │250-255│ %s\r\n",rankcfg.rank[26]);
  72.   change_ranks();
  73. }
  74.  
  75. void female_list()
  76. {
  77.   nl();
  78.   nl();
  79.   pl("  #  │   SL  │       Female  Rank");
  80.   npr("  1  │  0-9  │ %s\r\n",rankcfg.rank[27]);
  81.   npr("  2  │ 10-19 │ %s\r\n",rankcfg.rank[28]);
  82.   npr("  3  │ 20-29 │ %s\r\n",rankcfg.rank[29]);
  83.   npr("  4  │ 30-39 │ %s\r\n",rankcfg.rank[30]);
  84.   npr("  5  │ 40-49 │ %s\r\n",rankcfg.rank[31]);
  85.   npr("  6  │ 50-59 │ %s\r\n",rankcfg.rank[32]);
  86.   npr("  7  │ 60-69 │ %s\r\n",rankcfg.rank[33]);
  87.   npr("  8  │ 70-79 │ %s\r\n",rankcfg.rank[34]);
  88.   npr("  9  │ 80-89 │ %s\r\n",rankcfg.rank[35]);
  89.   npr(" 10  │ 90-99 │ %s\r\n",rankcfg.rank[36]);
  90.   npr(" 11  │100-109│ %s\r\n",rankcfg.rank[37]);
  91.   npr(" 12  │110-119│ %s\r\n",rankcfg.rank[38]);
  92.   npr(" 13  │120-129│ %s\r\n",rankcfg.rank[39]);
  93.   npr(" 14  │130-139│ %s\r\n",rankcfg.rank[40]);
  94.   npr(" 15  │140-149│ %s\r\n",rankcfg.rank[41]);
  95.   npr(" 16  │150-159│ %s\r\n",rankcfg.rank[42]);
  96.   npr(" 17  │160-169│ %s\r\n",rankcfg.rank[43]);
  97.   npr(" 18  │170-179│ %s\r\n",rankcfg.rank[44]);
  98.   npr(" 19  │180-189│ %s\r\n",rankcfg.rank[45]);
  99.   npr(" 20  │190-199│ %s\r\n",rankcfg.rank[46]);
  100.   npr(" 21  │200-209│ %s\r\n",rankcfg.rank[47]);
  101.   npr(" 22  │210-219│ %s\r\n",rankcfg.rank[48]);
  102.   npr(" 23  │220-229│ %s\r\n",rankcfg.rank[49]);
  103.   npr(" 24  │230-239│ %s\r\n",rankcfg.rank[50]);
  104.   npr(" 25  │240-249│ %s\r\n",rankcfg.rank[51]);
  105.   npr(" 26  │250-255│ %s\r\n",rankcfg.rank[52]);
  106.   change_ranks();
  107. }
  108.  
  109. void change_ranks()
  110. {
  111.   char a[3];
  112.   int i;
  113.  
  114.   prt(2,"< = Male Rank, > = Female Rank, ? = Rank List, Q = Quit"); nl();
  115.   prt(2,"Which:");
  116.   input(a,2);
  117.   if (((a[0]>='A') && (a[0]<='P')) || ((a[0]>='R') && (a[0]<='Z'))) {
  118.     change_ranks();
  119.   } else if (a[0]=='>') {
  120.       rank_sex=2;
  121.       female_list();
  122.   } else if (a[0]=='<') {
  123.       rank_sex=1;
  124.       male_list();
  125.   } else if (a[0]=='?') {
  126.     if (rank_sex==1)
  127.       male_list();
  128.     else if (rank_sex==2)
  129.       female_list();
  130.   } else if (a[0]=='Q') {
  131.     var_quit();
  132.   } else {
  133.     i=atoi(a);
  134.     if ((i>=27) || (i==0)) {
  135.       change_ranks();
  136.     } else if (rank_sex==1) {
  137.       prt(2,"New Rank:");
  138.       inputl(rankcfg.rank[i],40);
  139.       i=0;
  140.       change_ranks();
  141.     } else if (rank_sex==2) {
  142.       prt(2,"New Rank:");
  143.       inputl(rankcfg.rank[i+26],40);
  144.       i=0;
  145.       change_ranks();
  146.     }
  147.   }
  148. }
  149.  
  150. void var_quit()
  151. {
  152.   char ch;
  153.   prt(2,"Save Changes:");
  154.   ch=onek("YN");
  155.   switch (ch) {
  156.   case 'Y':
  157.     write_ranks();
  158.     break;
  159.   case 'N':
  160.     break;
  161.   }
  162. }
  163.  
  164. void ranks()
  165. {
  166.   read_ranks();
  167.   if (thisuser.sex=='M') {
  168.     if ((thisuser.sl>=0) && (thisuser.sl<=9)) {
  169.       strcpy(rankcfg.rank[0],rankcfg.rank[1]);
  170.       return;
  171.     } else if ((thisuser.sl>=10) && (thisuser.sl<=19)) {
  172.       strcpy(rankcfg.rank[0],rankcfg.rank[2]);
  173.       return;
  174.     } else if ((thisuser.sl>=20) && (thisuser.sl<=29)) {
  175.       strcpy(rankcfg.rank[0],rankcfg.rank[3]);
  176.       return;
  177.     } else if ((thisuser.sl>=30) && (thisuser.sl<=39)) {
  178.       strcpy(rankcfg.rank[0],rankcfg.rank[4]);
  179.       return;
  180.     } else if ((thisuser.sl>=40) && (thisuser.sl<=49)) {
  181.       strcpy(rankcfg.rank[0],rankcfg.rank[5]);
  182.       return;
  183.     } else if ((thisuser.sl>=50) && (thisuser.sl<=59)) {
  184.       strcpy(rankcfg.rank[0],rankcfg.rank[6]);
  185.       return;
  186.     } else if ((thisuser.sl>=60) && (thisuser.sl<=69)) {
  187.       strcpy(rankcfg.rank[0],rankcfg.rank[7]);
  188.       return;
  189.     } else if ((thisuser.sl>=70) && (thisuser.sl<=79)) {
  190.       strcpy(rankcfg.rank[0],rankcfg.rank[8]);
  191.       return;
  192.     } else if ((thisuser.sl>=80) && (thisuser.sl<=89)) {
  193.       strcpy(rankcfg.rank[0],rankcfg.rank[9]);
  194.       return;
  195.     } else if ((thisuser.sl>=90) && (thisuser.sl<=99)) {
  196.       strcpy(rankcfg.rank[0],rankcfg.rank[10]);
  197.       return;
  198.     } else if ((thisuser.sl>=100) && (thisuser.sl<=109)) {
  199.       strcpy(rankcfg.rank[0],rankcfg.rank[11]);
  200.       return;
  201.     } else if ((thisuser.sl>=110) && (thisuser.sl<=119)) {
  202.       strcpy(rankcfg.rank[0],rankcfg.rank[12]);
  203.       return;
  204.     } else if ((thisuser.sl>=120) && (thisuser.sl<=129)) {
  205.       strcpy(rankcfg.rank[0],rankcfg.rank[13]);
  206.       return;
  207.     } else if ((thisuser.sl>=130) && (thisuser.sl<=139)) {
  208.       strcpy(rankcfg.rank[0],rankcfg.rank[14]);
  209.       return;
  210.     } else if ((thisuser.sl>=140) && (thisuser.sl<=149)) {
  211.       strcpy(rankcfg.rank[0],rankcfg.rank[15]);
  212.       return;
  213.     } else if ((thisuser.sl>=150) && (thisuser.sl<=159)) {
  214.       strcpy(rankcfg.rank[0],rankcfg.rank[16]);
  215.       return;
  216.     } else if ((thisuser.sl>=160) && (thisuser.sl<=169)) {
  217.       strcpy(rankcfg.rank[0],rankcfg.rank[17]);
  218.       return;
  219.     } else if ((thisuser.sl>=170) && (thisuser.sl<=179)) {
  220.       strcpy(rankcfg.rank[0],rankcfg.rank[18]);
  221.       return;
  222.     } else if ((thisuser.sl>=180) && (thisuser.sl<=189)) {
  223.       strcpy(rankcfg.rank[0],rankcfg.rank[19]);
  224.       return;
  225.     } else if ((thisuser.sl>=190) && (thisuser.sl<=199)) {
  226.       strcpy(rankcfg.rank[0],rankcfg.rank[20]);
  227.       return;
  228.     } else if ((thisuser.sl>=200) && (thisuser.sl<=209)) {
  229.       strcpy(rankcfg.rank[0],rankcfg.rank[21]);
  230.       return;
  231.     } else if ((thisuser.sl>=210) && (thisuser.sl<=219)) {
  232.       strcpy(rankcfg.rank[0],rankcfg.rank[22]);
  233.       return;
  234.     } else if ((thisuser.sl>=220) && (thisuser.sl<=229)) {
  235.       strcpy(rankcfg.rank[0],rankcfg.rank[23]);
  236.       return;
  237.     } else if ((thisuser.sl>=230) && (thisuser.sl<=239)) {
  238.       strcpy(rankcfg.rank[0],rankcfg.rank[24]);
  239.       return;
  240.     } else if ((thisuser.sl>=240) && (thisuser.sl<=249)) {
  241.       strcpy(rankcfg.rank[0],rankcfg.rank[25]);
  242.       return;
  243.     } else if ((thisuser.sl>=250) && (thisuser.sl<=255)) {
  244.       strcpy(rankcfg.rank[0],rankcfg.rank[26]);
  245.       return;
  246.     }
  247.   } else if (thisuser.sex=='F') {
  248.     if ((thisuser.sl>=0) && (thisuser.sl<=9)) {
  249.       strcpy(rankcfg.rank[0],rankcfg.rank[27]);
  250.       return;
  251.     } else if ((thisuser.sl>=10) && (thisuser.sl<=19)) {
  252.       strcpy(rankcfg.rank[0],rankcfg.rank[28]);
  253.       return;
  254.     } else if ((thisuser.sl>=20) && (thisuser.sl<=29)) {
  255.       strcpy(rankcfg.rank[0],rankcfg.rank[29]);
  256.       return;
  257.     } else if ((thisuser.sl>=30) && (thisuser.sl<=39)) {
  258.       strcpy(rankcfg.rank[0],rankcfg.rank[30]);
  259.       return;
  260.     } else if ((thisuser.sl>=40) && (thisuser.sl<=49)) {
  261.       strcpy(rankcfg.rank[0],rankcfg.rank[31]);
  262.       return;
  263.     } else if ((thisuser.sl>=50) && (thisuser.sl<=59)) {
  264.       strcpy(rankcfg.rank[0],rankcfg.rank[32]);
  265.       return;
  266.     } else if ((thisuser.sl>=60) && (thisuser.sl<=69)) {
  267.       strcpy(rankcfg.rank[0],rankcfg.rank[33]);
  268.       return;
  269.     } else if ((thisuser.sl>=70) && (thisuser.sl<=79)) {
  270.       strcpy(rankcfg.rank[0],rankcfg.rank[34]);
  271.       return;
  272.     } else if ((thisuser.sl>=80) && (thisuser.sl<=89)) {
  273.       strcpy(rankcfg.rank[0],rankcfg.rank[35]);
  274.       return;
  275.     } else if ((thisuser.sl>=90) && (thisuser.sl<=99)) {
  276.       strcpy(rankcfg.rank[0],rankcfg.rank[36]);
  277.       return;
  278.     } else if ((thisuser.sl>=100) && (thisuser.sl<=109)) {
  279.       strcpy(rankcfg.rank[0],rankcfg.rank[37]);
  280.       return;
  281.     } else if ((thisuser.sl>=110) && (thisuser.sl<=119)) {
  282.       strcpy(rankcfg.rank[0],rankcfg.rank[38]);
  283.       return;
  284.     } else if ((thisuser.sl>=120) && (thisuser.sl<=129)) {
  285.       strcpy(rankcfg.rank[0],rankcfg.rank[39]);
  286.       return;
  287.     } else if ((thisuser.sl>=130) && (thisuser.sl<=139)) {
  288.       strcpy(rankcfg.rank[0],rankcfg.rank[40]);
  289.       return;
  290.     } else if ((thisuser.sl>=140) && (thisuser.sl<=149)) {
  291.       strcpy(rankcfg.rank[0],rankcfg.rank[41]);
  292.       return;
  293.     } else if ((thisuser.sl>=150) && (thisuser.sl<=159)) {
  294.       strcpy(rankcfg.rank[0],rankcfg.rank[42]);
  295.       return;
  296.     } else if ((thisuser.sl>=160) && (thisuser.sl<=169)) {
  297.       strcpy(rankcfg.rank[0],rankcfg.rank[43]);
  298.       return;
  299.     } else if ((thisuser.sl>=170) && (thisuser.sl<=179)) {
  300.       strcpy(rankcfg.rank[0],rankcfg.rank[44]);
  301.       return;
  302.     } else if ((thisuser.sl>=180) && (thisuser.sl<=189)) {
  303.       strcpy(rankcfg.rank[0],rankcfg.rank[45]);
  304.       return;
  305.     } else if ((thisuser.sl>=190) && (thisuser.sl<=199)) {
  306.       strcpy(rankcfg.rank[0],rankcfg.rank[46]);
  307.       return;
  308.     } else if ((thisuser.sl>=200) && (thisuser.sl<=209)) {
  309.       strcpy(rankcfg.rank[0],rankcfg.rank[47]);
  310.       return;
  311.     } else if ((thisuser.sl>=210) && (thisuser.sl<=219)) {
  312.       strcpy(rankcfg.rank[0],rankcfg.rank[48]);
  313.       return;
  314.     } else if ((thisuser.sl>=220) && (thisuser.sl<=229)) {
  315.       strcpy(rankcfg.rank[0],rankcfg.rank[49]);
  316.       return;
  317.     } else if ((thisuser.sl>=230) && (thisuser.sl<=239)) {
  318.       strcpy(rankcfg.rank[0],rankcfg.rank[50]);
  319.       return;
  320.     } else if ((thisuser.sl>=240) && (thisuser.sl<=249)) {
  321.       strcpy(rankcfg.rank[0],rankcfg.rank[51]);
  322.       return;
  323.     } else if ((thisuser.sl>=250) && (thisuser.sl<=255)) {
  324.       strcpy(rankcfg.rank[0],rankcfg.rank[52]);
  325.       return;
  326.     }
  327.   }
  328. }