home *** CD-ROM | disk | FTP | other *** search
- Papa Bear #1 @11579
- 7Sunday1, 7May 281, 71995 2106:251 am
- 4Msg. Status:9▄ 5Please reply!
- 9 ▀▀▀▀▀▀▀▀▀▀▀▀
- ┌────────────────────────────A CEREBRUM release!─────────────────────────────┐
- │ Mod Name: SPV061IB.MOD Mod Authors: AquaMaestro, Pâpâ ßêâr (1@11579) │
- │ Difficulty: ▓░░░░░░░░░ First ----- [12/25/93] │
- │ WWIV Version: 4.24 Last ------ [05/28/95] │
- │ Files Affected: VARDEC.H VARS.H COM.C BBSUTL.C MSGBASE.C MMENU.C │
- │ UTILITY.C FCNS.H BBSOVL2.C XINIT.C NEWUSER.C │
- │ Description: Give WWIV an additional 85 colors to work with. VERY, VERY │
- │configurable from the main BBS prompt. │
- ╞═────────────────────────────────────═╤═───────────────────────────────────═╡
- │ StarPort Valhalla [ ] - ASV 28.8kbps Home of the SPV mod series! │
- └─────────────────────────────────────═╧═────────────────────────────────────┘
-
- >>> OFFICIAL WWIV SUPPORT SITE! <<<
-
- Word of Warning: You installed it, you're responsible! Make back-ups BEFORE
- attempting to install this modification! Read all text before beginning.
- ─────────────────────────────────────────────────────────────────────────────
- LEGEND:
- == Original Code [use this to search on]
- ++ Add this Line [mods ALWAYS add stuff, don't they?]
- -- Delete this Line [or comment out, its not needed]
- ─────────────────────────────────────────────────────────────────────────────
- LONG DESCRIPTION: This is the 4.24 release of the modification orginally
- written by AquaMaestro, and updated by me for 4.23 in Dec. of '93. Adds a
- //COLOREDIT (//CLRE) that allows you to *very* easily set any of the colors
- on your BBS to anything you'd like. //COLORINIT (//CLRI) sets things to a
- default.
- Please, do not use any colors other than the stock 0-9 on the net. Your
- color definitions will not be the same as mine, or any one else's, and
- sending those extended colors over the net is bad netiquette.
- ─────────────────────────────────────────────────────────────────────────────
- STEP 1: Add this structure to VARDEC.H:
-
- == char res[29]; /* RESERVED */
- == } statusrec;
- ==
- ++ typedef struct {
- ++ unsigned char resx[240]; /* Includes padding */
- ++ } colorrec;
- ==
- == /* MESSAGE BASE INFORMATION */
- ─────────────────────────────────────────────────────────────────────────────
- STEP 2: Add this line to VARS.H:
-
- == __EXTRN__ smalrec huge *smallist;
- == __EXTRN__ subboardrec *subboards;
- ++ __EXTRN__ colorrec rescolor; // SPV061IB.MOD
- == __EXTRN__ directoryrec huge *directories;
- == __EXTRN__ usersubrec *usub, *udir;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 3: Add this block of code to the end of UTILITY.C
-
- // SPV061IB.MOD BLOCK START
- static int colorfile=-1;
-
- void get_colordata(void)
- {
- char s[81];
-
- if (colorfile<0) {
- sprintf(s,"%sCOLOR.DAT",syscfg.datadir);
- colorfile=sh_open1(s,O_RDWR | O_BINARY | O_CREAT);
- read(colorfile,(void *)&rescolor,sizeof(colorrec));
- colorfile=sh_close(colorfile);
- }
- }
-
- void save_colordata(void)
- {
- char s[81];
-
- sprintf(s,"%sCOLOR.DAT",syscfg.datadir);
- colorfile=sh_open1(s,O_RDWR | O_BINARY | O_CREAT);
- sh_write(colorfile,(void *)&rescolor),sizeof(colorrec));
- colorfile=sh_close(colorfile);
- }
-
- void list_ext_colors(void)
- {
- goxy(40,7);
- pl("7┌─────────────────────────┐0");
- goxy(40,8);
- pl("7│ 2COLOR LIST7 │0");
- goxy(40,9);
- pl("7├─────────────────────────┤0");
- goxy(40,10);
- pl("7│ !! \"\" ## $$ %% && '' (( )) ** ++7 │0");
- goxy(40,11);
- pl("7│ ,, -- .. // 00 11 22 33 44 55 66 77 │0");
- goxy(40,12);
- pl("7│ 88 99 :: ;; << == >> ?? @@ AA BB CC7 │0");
- goxy(40,13);
- pl("7│ DD EE FF GG HH II JJ KK LL MM NN OO7 │0");
- goxy(40,14);
- pl("7│ PP QQ RR SS TT UU VV WW XX YY ZZ [[7 │0");
- goxy(40,15);
- pl("7│ \\\\ ]] ^^ __ `` aa bb cc dd ee ff gg7 │0");
- goxy(40,16);
- pl("7│ hh ii jj kk ll mm nn oo pp qq rr ss7 │0");
- goxy(40,17);
- pl("7│ tt uu vv ww xx yy zz {{ || }} ~~ [[7 │0");
- goxy(40,18);
- pl("7├─────────────────────────┤0");
- goxy(40,19);
- pl("7│ │0");
- goxy(40,20);
- pl("7└─────────────────────────┘0");
- }
-
- void color_config(void)
- {
- char s[81],ch,ch1;
- unsigned c;
- int i,done=0,n;
-
- strcpy(s," SAMPLE COLOR ");
- get_colordata();
- do {
- outchr(12);
- npr("5Extended Color Configuration 2- 3Enter Choice,0");
- pl("1^Z 3to Quit, 1^R 3to Relist0");
- outstr(": ");
- list_ext_colors();
- goxy(2,2);
- ch=getkey();
- if (ch==26)
- done=1;
- if (ch==18) {
- list_ext_colors();
- goxy(2,2);
- }
- if (ch>=32) {
- outchr(ch);
- n=ch-48;
- nln(2);
- color_list();
- ansic(0);
- nl();
- prt(2,get_string(430));
- ch1=onek("01234567");
- c=ch1-'0';
- goxy(41,19);
- setc(c);
- outstr(s);
- ansic(0);
- goxy(1,16);
- prt(2,get_string(431));
- ch1=onek("01234567");
- c=c | ((ch1-'0') << 4);
- goxy(41,19);
- setc(c);
- outstr(s);
- ansic(0);
- goxy(1,17);
- nl();
- prt(5,get_string(434));
- if (yn())
- c |= 0x08;
- goxy(41,19);
- setc(c);
- outstr(s);
- ansic(0);
- goxy(1,18);
- nl();
- prt(5,get_string(437));
- if (yn())
- c |= 0x80;
- nl();
- goxy(41,19);
- setc(c);
- outstr(s);
- ansic(0);
- goxy(1,21);
- setc(c);
- outstr(describe(c));
- ansic(0);
- nln(2);
- prt(5,get_string(438));
- if (yn()) {
- nl();
- pl(get_string(439));
- nl();
- if ((n<=-1) && (n>=-16))
- rescolor.resx[207+abs(n)]=c;
- else if ((n>=0) && (n<=9))
- thisuser.colors[n]=c;
- else
- rescolor.resx[n-10]=c;
- } else {
- nl();
- pl(get_string(440));
- nl();
- }
- }
- } while ((!done) && (!hangup));
- nln(2);
- npr("5Save changes? 0");
- if (yn())
- save_colordata();
- else
- get_colordata();
- outchr(12);
- nln(3);
- }
-
- void buildcolorfile(void)
- {
- int i,i1,colorfile;
- char s[81],s1[81];
-
- sprintf(s1,"%sCOLOR.DAT",syscfg.datadir);
- colorfile=sh_open1(s1,O_RDWR | O_BINARY | O_CREAT);
- nl();
- for (i=0; i<240; i++)
- rescolor.resx[i]=i+1;
- sh_write(colorfile, (void *)(&rescolor), sizeof(colorrec));
- colorfile=sh_close(colorfile);
- }
- // SPV061IB.MOD BLOCK END
- ─────────────────────────────────────────────────────────────────────────────
- STEP 4: In COM.C, void outchr(unsigned char c), make these changes:
-
- == } else if (change_color==1) {
- == change_color = 0;
- ++ if ((c>=32) && (c<=126)) // SPV061IB.MOD add
- ++ ansic(c-48); // SPV061IB.MOD add
- -- if ((c >= '0') && (c <= '9')) // SPV061IB.MOD remove
- -- ansic(c - '0'); // SPV061IB.MOD remove
- == return;
- == }
- ─────────────────────────────────────────────────────────────────────────────
- STEP 5: Still in COM.C, replace void ansic(int n) with this one:
-
- // SPV061IB.MOD start replacement block
- void ansic(int n)
- {
- char c;
- if ((n<=-1) && (n>=-16))
- c=((thisuser.sysstatus & sysstatus_color) ?
- rescolor.resx[207+abs(n)] : thisuser.bwcolors[0]);
- if ((n>=0) && (n<=9))
- c=((thisuser.sysstatus & sysstatus_color) ?
- thisuser.colors[n] : thisuser.bwcolors[n]);
- if ((n>=10) && (n<=207))
- c=((thisuser.sysstatus & sysstatus_color) ?
- rescolor.resx[n-10] : thisuser.bwcolors[0]);
- if (c==curatr)
- return;
- setc(c);
- makeansi((thisuser.sysstatus & sysstatus_color) ?
- thisuser.colors[0] : thisuser.bwcolors[0],endofline,0);
- }
- // SPV061IB.MOD end replacement block
- ─────────────────────────────────────────────────────────────────────────────
- STEP 6: Make these changes in BBSUTL.C, int inli2(...), case 16:
-
- == case 16: /* Ctrl-P */
- == if (cp<maxlen-1) {
- == ch=getkey();
- // SPV061IB START CHANGES
- -- if ((ch>='0') && (ch<='9')) { // SPV061IB.MOD removed
- -- s[cp++]=3; // SPV061IB.MOD removed
- -- s[cp++]=ch; // SPV061IB.MOD removed
- -- ansic(ch-'0'); // SPV061IB.MOD removed
- ++ if ((ch>=32) && (ch<=126)) { // SPV061IB.MOD add
- ++ s[cp++]=3; // SPV061IB.MOD add
- ++ s[cp++]=ch; // SPV061IB.MOD add
- ++ ansic(ch-48); // SPV061IB.MOD add
- // SPV061IB END CHANGES
- == } else if ((ch==16) && (cp<maxlen-2)) {
- == ch=getkey();
- ==
- == if (ch != 16) { // RIP font style code
- ─────────────────────────────────────────────────────────────────────────────
- STEP 7: In BBSOVL2.C, void two_way_chat(...), replace case 16: with this
- one:
-
- // SPV061IB.MOD start replacement block
- case 16: /* Ctrl-P */
- if (side==0) {
- if (cp0<maxlen-1) {
- ch=getkey();
- if ((ch>=32) && (ch<=126)) {
- side0[WhereY()][cp0++]=3;
- side0[WhereY()][cp0++]=ch;
- ansic(ch-48);
- }
- }
- } else {
- if (cp1<maxlen-1) {
- ch=getkey();
- if ((ch>=32) && (ch<=126)) {
- side1[WhereY()-13][cp1++]=3;
- side1[WhereY()-13][cp1++]=ch;
- ansic(ch-48);
- }
- }
- }
- break;
- // SPV061IB.MOD end replacement block
- ─────────────────────────────────────────────────────────────────────────────
- STEP 8: Make these changes in MSGBASE.C, void inmsg(...) :
-
- == pln(maxli);
- == pl(get_string(628));
- ++ pl("Colors: ^P-0112233445566778899AABBCC0" // SPV061IB.MOD
- ++ "DDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSS0" // SPV061IB.MOD
- ++ "TTUUVVWWXXYYZZ0"); // SPV061IB.MOD
- ++ nl(); // SPV061IB.MOD
- == strcpy(s,get_string(629));
- == s[thisuser.screenchars]=0;
- ─────────────────────────────────────────────────────────────────────────────
- STEP 9: In MMENU.C, void mainmenu(void), add these two command blocks:
-
- == chuser();
- == }
- ++ if ((strcmp(s,"COLOREDIT")==0) || (strcmp(s,"CLRE")==0)) //SPV061IB.MOD
- ++ color_config(); //SPV061IB.MOD
- ++ if ((strcmp(s,"COLORINIT")==0) || (strcmp(s,"CLRI")==0)) //SPV061IB.MOD
- ++ buildcolorfile(); //SPV061IB.MOD
- == if (strcmp(s,"CLOUT")==0) {
- == npr("\r\nNot Yet.\r\n");
- ─────────────────────────────────────────────────────────────────────────────
- STEP 10: Add the function prototypes to FCNS.H:
-
- == char *stripfn(char *fn);
- == void stripfn1(char *fn);
- ++ void get_colordata(void); // SPV061IB.MOD
- ++ void save_colordata(void); // SPV061IB.MOD
- ++ void list_ext_colors(void); // SPV061IB.MOD
- ++ void color_config(void); // SPV061IB.MOD
- ++ void buildcolorfile(void); // SPV061IB.MOD
- ==
- == /* File: xfer.c */
- ─────────────────────────────────────────────────────────────────────────────
- STEP 11: Add this line to XINIT.C, void init(void)
-
- == write_inst(INST_LOC_WFC,0,INST_FLAGS_NONE);
- ++ get_colordata(); // SPV061IB.MOD
- == }
- == /************************************************************************/
- ==
- == void gotcaller(unsigned int ms, unsigned int cs)
- ─────────────────────────────────────────────────────────────────────────────
- STEP 12: Add this line in NEWUSER.C, function void newuser(void)
-
- == void newuser(void)
- == {
- == int i, ok;
- == char s[255],s1[81],ch;
- ==
- ++ get_colordata(); // SPV061IB.MOD
- == memset(&thisuser, 0, sizeof(userrec));
- == memset(qsc, 0, syscfg.qscn_len);
- ─────────────────────────────────────────────────────────────────────────────
- STEP 13: UUdecode this file, and place it in your DATA directory.
-
- section 1 of uuencode 5.22 of file color.dat by R.E.M.
-
- begin 644 color.dat
- M`0(##P4&`@@*#0P/@82(B8J-A1D?*B\[/TQ/75]N;W]X(B,D!@LG"`H-#`^!
- MA(B)BHV%&1\J+SL_3$]=7VYO?WA"#6I%1D=(24I+3$U.3U!14E-4!E976%E:
- M6UQ=7E]@86)C9&5F9VAI:FML;6YO<'%R<W1U=G=X>7I[?'U^?X"!@H.$A8:'
- MB(F*BXR-CH^0D9*3E)66EYB9FIN<G9Z?H*&BHZ2EIJ>HJ:JKK*VNK["QLK.T
- MM;:WN+FZN[R]OK_`P<+#Q,7&Q\C)RLO,S<[/T-'2#M0,"@H)B@<%!`/>`>#A
- /XN/DY>;GZ.GJZ^SM[N_P
- `
- end
- sum -r/size 62576/358 section (from "begin" to "end")
- sum -r/size 14788/240 entire input file
- ─────────────────────────────────────────────────────────────────────────────
- STEP 14: Recompile the BBS. Once recompiled successfully, enter the BBS,
- and type //CLRE at the main prompt.
- ─────────────────────────────────────────────────────────────────────────────
- STEP 15: To enable all the new colors in WWIVEdit, make this change in the
- *.DEF file that you want (LOCAL.DEF)
-
- COLORS: [#1-#126] Legal Color Range (See CONFIG.DOC for format)
- ─────────────────────────────────────────────────────────────────────────────
- This is the working 4.24 release of this mod. E-Mail me if ya like it.
- Better yet, E-Mail Random (Wayne Bell) if you do, then maybe he'll get more
- than 10 colors in WWIV 4.25!
- Many, many thanks to AquaMaestro! If it weren't for him, this mod wouldn't
- have been born.
-
- This mod is copyright 1993,1994 by Tracy Baker, aka Papa Bear, and is
- distributed as freeware. Permission is granted to distribute and post this
- mod on BBS systems and online services, provided no alterations are made
- (removal of message headers/taglines allowed). This mod may contain some
- parts of WWIV source code, which is copyright 1988-1994 by Wayne Bell and
- licensed only to registered users of WWIV. Use of WWIV source without
- registration constitutes a license violation and could lead to legal
- prosecution and certain doom.
- Shareware distributors and CD-ROM publishers may not distribute this mod
- without express written permission of the Author or WWIV Software Services.
-
- 7-9=1*6>2Pâpâ ßêâr6<1*9=7-0
-
- ---
- 1And the trees were all kept equal, by hatchet, axe, and saw...
-