SET EXCLUSIVE OFF
SET ESCAPE OFF
SET DELETED ON
USE graffiti INDEX graffit1
PUBLIC numopts
PUBLIC opt[12]
ON ERROR
inkey = ""
in_anon = "N"
off_flag = "N"
ask_flag = "N"
anonymous_flag = "N"
back_color = "N"
brick_fore = "W"
brick_back = "R"
txt_fore = "GR+"
txt_back = "R"
DO getopts
DO isopt WITH "O", off_flag
DO isopt WITH "A", ask_flag
DO isopt WITH "Y", anonymous_flag
DO coloropt WITH "BC=", back_color
DO coloropt WITH "BF=", brick_fore
DO coloropt WITH "BB=", brick_back
DO coloropt WITH "TF=", txt_fore
DO coloropt WITH "TB=", txt_back
bdrop_col = "W+/" + back_color
brick_col = brick_fore + "/" + brick_back
txt_col = txt_fore + "/" + txt_back
IF ask_flag = "Y"
WAIT "Do you want to add a quote to The Wall?" TO inkey
IF UPPER(inkey) <> "Y"
IF off_flag = "Y"
* DOTBBS TYPE 200 OPTDATA "c:\tbbs\calls\bwait /q"
DOTBBS TYPE 10 OPTDATA " "
ENDIF
RETURN
ENDIF
ENDIF
hadansi = "Y"
hadibm = "Y"
IF .NOT. UANSI()
hadansi = "N"
ENDIF
IF .NOT. UIBM()
hadibm = "N"
ENDIF
IF hadansi = "N"
?"This program requires ANSI - I see you don't have ANSI turned on."
?"I can turn it on for you temporarily, then set it back after the"
?"program is done."
inkey = " "
WAIT "Hit 'Y' to turn on ANSI, or any other key to exit" TO inkey
IF UPPER(inkey) = "Y"
dummy = ULREPLACE(UANSI, .T.)
dummy = ULREPLACE(UIBMG, .T.)
ELSE
IF off_flag = "Y"
* DOTBBS TYPE 200 OPTDATA "c:\tbbs\calls\bwait /q"
DOTBBS TYPE 10 OPTDATA " "
ENDIF
RETURN
ENDIF
ENDIF
DO WHILE inkey <> "Q"
SET COLOR TO &bdrop_col
CLEAR
SET COLOR TO &brick_col
?"┌─────┬─────┬─────┬────┬────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬────┐"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"└─────┴─────┴─────┴────┴────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴────┘"
SET COLOR TO &txt_col
@07,19 SAY "█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
@08,19 SAY "█ Graffiti Wall █"
SET COLOR TO W/N
@08,58 SAY " "
SET COLOR TO &txt_col
@09,19 SAY "█ Copyright (c) 1992 Data Foundations █"
SET COLOR TO W/N
@09,58 SAY " "
SET COLOR TO &txt_col
@10,19 SAY "█─────────────────────────────────────█"
SET COLOR TO W/N
@10,58 SAY " "
SET COLOR TO &txt_col
@11,19 SAY "█ [P]aint on the Wall █"
SET COLOR TO W/N
@11,58 SAY " "
SET COLOR TO &txt_col
@12,19 SAY "█ [R]ead the Wall █"
SET COLOR TO W/N
@12,58 SAY " "
SET COLOR TO &txt_col
@13,19 SAY "█ [Q]uit █"
SET COLOR TO W/N
@13,58 SAY " "
SET COLOR TO &txt_col
@14,19 SAY "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
SET COLOR TO W/N
@14,58 SAY " "
@15,20 SAY " "
inkey = " "
DO WHILE inkey <> "P" .AND. inkey <> "R" .AND. inkey <> "Q"
@20,1 SAY ""
WAIT "" TO inkey
inkey = UPPER(inkey)
ENDDO
IF inkey = "P"
DO wpaint
ELSE
IF inkey = "R"
DO wread
ELSE
IF inkey = "I"
INDEX ON DESCEND(DTOC(date) + time) TO graffit1
ELSE
IF hadansi = "N"
dummy = ULREPLACE(UANSI, .F.)
ENDIF
IF hadibm = "N"
dummy = ULREPLACE(UIBMG, .F.)
ENDIF
IF off_flag = "Y"
* DOTBBS TYPE 200 OPTDATA "c:\tbbs\calls\bwait /q"
DOTBBS TYPE 10 OPTDATA " "
ENDIF
RETURN
ENDIF
ENDIF
ENDIF
ENDDO
RETURN
*---------------------------------------------------------------------------
PROCEDURE wpaint
SET COLOR TO W+/N
CLEAR
SET COLOR TO &brick_col
?"┌─────┬─────┬─────┬────┬────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬────┐"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
?"├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
?"└─────┴─────┴─────┴────┴────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴────┘"
SET COLOR TO &txt_col
@02,19 SAY "█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
@03,19 SAY "█ PAINT ON THE WALL! █"
@04,19 SAY "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
SET COLOR TO "W+/N"
@08,01 SAY "What have you got to say?"
STORE SPACE(79) TO line1i
STORE SPACE(79) TO line2i
STORE SPACE(79) TO line3i
STORE SPACE(79) TO line4i
STORE SPACE(79) TO line5i
@15,01 SAY "Note: you can use IBM GRAPHIC CHARACTERS in here, but not ANSI."
@16,01 SAY "You can do an ASCII upload from your terminal program to enter"
@17,01 SAY "graphic characters. Use an ANSI editor program to make some"
@18,01 SAY "nice pictures."
@09,01 GET line1i
@10,01 GET line2i
@11,01 GET line3i
@12,01 GET line4i
@13,01 GET line5i
READ
@15,00 CLEAR TO 18,79
IF LASTKEY() = 27
RETURN
ENDIF
SET COLOR TO "W+/B"
@14,01 SAY "F1 - Change Line1 Background F2 - Change Line2 Background"
@15,01 SAY "F3 - Change Line3 Background F4 - Change Line4 Background"
@16,01 SAY "F5 - Change Line5 Background F6 - Change Line1 Foreground"
@17,01 SAY "F7 - Change Line2 Foreground F8 - Change Line3 Foreground"
@18,01 SAY "F9 - Change Line4 Foreground F10 - Change Line5 Foreground"
@19,10 SAY "Hit 'F' to change all foreground, 'B' to change all background"
@20,10 SAY " 'S' to Save Your Graffiti, or 'A' to Abort"
l1backi = 1
l1forei = 16
l2backi = 1
l2forei = 16
l3backi = 1
l3forei = 16
l4backi = 1
l4forei = 16
l5backi = 1
l5forei = 16
colorcode = "N/W+"
inkey = " "
DO WHILE inkey <> "S" .AND. inkey <> "A"
IF lastkey () = 28
l1backi = l1backi + 1
IF l1backi > 8
l1backi = 1
ENDIF
ENDIF
IF lastkey () = -5
l1forei = l1forei + 1
IF l1forei > 16
l1forei = 1
ENDIF
ENDIF
IF lastkey () = -1
l2backi = l2backi + 1
IF l2backi > 8
l2backi = 1
ENDIF
ENDIF
IF lastkey () = -6
l2forei = l2forei + 1
IF l2forei > 16
l2forei = 1
ENDIF
ENDIF
IF lastkey () = -2
l3backi = l3backi + 1
IF l3backi > 8
l3backi = 1
ENDIF
ENDIF
IF lastkey () = -7
l3forei = l3forei + 1
IF l3forei > 16
l3forei = 1
ENDIF
ENDIF
IF lastkey () = -3
l4backi = l4backi + 1
IF l4backi > 8
l4backi = 1
ENDIF
ENDIF
IF lastkey () = -8
l4forei = l4forei + 1
IF l4forei > 16
l4forei = 1
ENDIF
ENDIF
IF lastkey () = -4
l5backi = l5backi + 1
IF l5backi > 8
l5backi = 1
ENDIF
ENDIF
IF lastkey () = -9 .OR. inkey = "0"
l5forei = l5forei + 1
IF l5forei > 16
l5forei = 1
ENDIF
ENDIF
IF inkey = "F"
l1forei = l1forei + 1
IF l1forei > 16
l1forei = 1
ENDIF
l2forei = l1forei
l3forei = l1forei
l4forei = l1forei
l5forei = l1forei
ENDIF
IF inkey = "B"
l1backi = l1backi + 1
IF l1backi > 8
l1backi = 1
ENDIF
l2backi = l1backi
l3backi = l1backi
l4backi = l1backi
l5backi = l1backi
ENDIF
DO getcolor WITH l1backi, l1forei, colorcode
SET COLOR TO &colorcode
@22,01 SAY "Line 1 Colors"
DO getcolor WITH l2backi, l2forei, colorcode
SET COLOR TO &colorcode
@22,16 SAY "Line 2 Colors"
DO getcolor WITH l3backi, l3forei, colorcode
SET COLOR TO &colorcode
@22,31 SAY "Line 3 Colors"
DO getcolor WITH l4backi, l4forei, colorcode
SET COLOR TO &colorcode
@22,46 SAY "Line 4 Colors"
DO getcolor WITH l5backi, l5forei, colorcode
SET COLOR TO &colorcode
@22,60 SAY "Line 5 Colors"
@22,01 SAY ""
SET COLOR TO W+/N
WAIT "" TO inkey
inkey = UPPER(inkey)
ENDDO
IF inkey = "S"
APPEND BLANK
REPLACE date WITH DATE()
REPLACE time WITH TIME()
REPLACE callingfrm WITH LEFT(ULOCATION(),24)
REPLACE line1 WITH line1i
REPLACE line2 WITH line2i
REPLACE line3 WITH line3i
REPLACE line4 WITH line4i
REPLACE line5 WITH line5i
REPLACE l1fore WITH l1forei
REPLACE l1back WITH l1backi
REPLACE l2fore WITH l2forei
REPLACE l2back WITH l2backi
REPLACE l3fore WITH l3forei
REPLACE l3back WITH l3backi
REPLACE l4fore WITH l4forei
REPLACE l4back WITH l4backi
REPLACE l5fore WITH l5forei
REPLACE l5back WITH l5backi
in_anon = "N"
IF anonymous_flag = "Y"
@14,01 CLEAR TO 22,78
@14,01 SAY ""
WAIT "Do you want this quote to be anonymous?" TO in_anon
in_anon = UPPER(in_anon)
ENDIF
IF in_anon = "Y"
REPLACE userid WITH "ANONYMOUS"
REPLACE callingfrm WITH " "
ELSE
REPLACE userid WITH LEFT(UNAME(),24)
ENDIF
ENDIF
*---------------------------------------------------------------------------
PROCEDURE wread
SET COLOR TO W+/N
CLEAR
SET COLOR TO &brick_col
@00,00 SAY "┌─────┬─────┬─────┬────┬────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬────┐"
@01,00 SAY "├──┬──┴──┬──┴──┬──┴─┬──┴─┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴─┬──│"
@02,00 SAY "├──┴──┬──┴──┬──┴──┬─┴──┬─┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬─┴──│"
@03,00 SAY "└─────┴─────┴─────┴────┴────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴────┘"
SET COLOR TO &txt_col
@00,16 SAY "█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█"
@01,16 SAY "█ READ THE WALL! █"
@02,16 SAY "█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█"
@03,01 SAY ""
colorcode = "W+/N"
ecount = 0
inkey = " "
GO BOTTOM
DO WHILE .NOT. BOF() .AND. inkey <> "Q"
IF LEN(RTRIM(line1)) > 0
SET COLOR TO W+/N
?"▀▀▀▀▀", date, time, userid, callingfrm, "▀▀▀▀▀"
DO getcolor WITH l1back, l1fore, colorcode
SET COLOR TO &colorcode
?line1
DO getcolor WITH l2back, l2fore, colorcode
SET COLOR TO &colorcode
?line2
DO getcolor WITH l3back, l3fore, colorcode
SET COLOR TO &colorcode
?line3
DO getcolor WITH l4back, l4fore, colorcode
SET COLOR TO &colorcode
?line4
DO getcolor WITH l5back, l5fore, colorcode
SET COLOR TO &colorcode
?line5
ecount = ecount + 1
ENDIF
IF ecount > 2
@22,01 SAY ""
SET COLOR TO W+/N
WAIT "Hit 'Q' to quit or any key to continue" TO inkey
inkey = UPPER(inkey)
IF inkey = "Q"
inkey = " "
RETURN
ENDIF
ecount = 0
@04,00 CLEAR
@03,01 SAY ""
ENDIF
SKIP -1
ENDDO
SET COLOR TO W+/N
WAIT
*---------------------------------------------------------------------------
PROCEDURE getcolor
PARAMETERS back, fore, code
IF back = 1
bpart = "N"
ENDIF
IF back = 2
bpart = "B"
ENDIF
IF back = 3
bpart = "G"
ENDIF
IF back = 4
bpart = "BG"
ENDIF
IF back = 5
bpart = "R"
ENDIF
IF back = 6
bpart = "RB"
ENDIF
IF back = 7
bpart = "GR"
ENDIF
IF back = 8
bpart = "W"
ENDIF
****** Set foreground
IF fore = 1
fpart = "N"
ENDIF
IF fore = 2
fpart = "N+"
ENDIF
IF fore = 3
fpart = "B"
ENDIF
IF fore = 4
fpart = "B+"
ENDIF
IF fore = 5
fpart = "G"
ENDIF
IF fore = 6
fpart = "G+"
ENDIF
IF fore = 7
fpart = "BG"
ENDIF
IF fore = 8
fpart = "BG+"
ENDIF
IF fore = 9
fpart = "R"
ENDIF
IF fore = 10
fpart = "R+"
ENDIF
IF fore = 11
fpart = "RB"
ENDIF
IF fore = 12
fpart = "RB+"
ENDIF
IF fore = 13
fpart = "GR"
ENDIF
IF fore = 14
fpart = "GR+"
ENDIF
IF fore = 15
fpart = "W"
ENDIF
IF fore = 16
fpart = "W+"
ENDIF
code = fpart + "/" + bpart
RETURN
*--------------------------------------------------------------------------
PROCEDURE reindex
SET EXCLUSIVE ON
USE graffiti
INDEX ON DESCEND(DTOC(date) + time) TO graffit1
USE
SET EXCLUSIVE OFF
USE graffiti INDEX graffit1
RETURN