home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0950.lha / BBDoors / BBDoors65.lha / rexxDoors / StoryBoard.rexx < prev    next >
OS/2 REXX Batch file  |  1993-08-07  |  5KB  |  209 lines

  1. /* Story Writer 1.0 by Nathan Beaty - updated for BBBBS  7 Aug 93 */
  2.  
  3. signal on syntax
  4. signal on BREAK_C
  5.  
  6. /* Open the support library if it is not already open. */
  7. if ~show('L',"rexxsupport.library") then do
  8.    if ~addlib('rexxsupport.library',0,-30,0) then do
  9.       CALL TRANSMIT 'Support library not available.  Aborting...'
  10.       call CloseShop
  11.       exit 10
  12.       end
  13.    end
  14.  
  15. CALL TIME('R')
  16. figarg='s:CONFIG.BBS'
  17. IF ~EXISTS(figarg) THEN figarg='BBS:BBS_TEXT/CONFIG.BBS'
  18. x=OPEN(f,figarg,'R')
  19. IF x=0 THEN
  20.   DO
  21.     SAY 's:CONFIG.BBS and BBS:BBS/CONFIG.BBS are both missing!'
  22.     EXIT(20)
  23.   END
  24.  
  25. line=STRIP(READLN(f))
  26. sysop=WORD(READLN(f),1)
  27. CALL CLOSE(f)
  28.  
  29. compos=POS('/*',line)
  30. IF compos>0 THEN line=LEFT(line,compos-1)
  31. BBSNAME=STRIP(line)
  32. bbspath=GETCLIP('BBS_path')
  33.  
  34. PARSE ARG name . . gfx secs .
  35. IF secs='' THEN secs=3600
  36. CALL MAKEDIR(bbspath'rexxDoors/Data/StoryBoard')
  37. DATFILE1 = bbspath'rexxDoors/Data/StoryBoard/story1'
  38. DATFILE2 = bbspath'rexxDoors/Data/StoryBoard/story2'
  39. DATFILE3 = bbspath'rexxDoors/Data/StoryBoard/story3'
  40. MFILE1 = 'Story 1 - unnamed'
  41. MFILE2 = 'Story 2 - unnamed'
  42. MFILE3 = 'Story 3 - unnamed'
  43. DATFILE = DATFILE1
  44. MFILE = MFILE1
  45.  
  46. CLS = ''
  47. if (gfx) then do
  48.  OFF = ''
  49.  RED = ''
  50.  YEL = ''
  51.  BLU = ''
  52.  REDWHT = ''
  53.  WHTBLU = ''
  54.  end
  55. else do
  56.  OFF = ''
  57.  RED = ''
  58.  YEL = ''
  59.  BLU = ''
  60.  REDWHT = ''
  61.  WHTBLU = ''
  62.  end
  63.  
  64. BEGIN:
  65. CALL TRANSMIT CLS
  66. CALL TRANSMIT REDWHT'Story Board!   By Nathan Beaty'
  67. CALL TRANSMIT OFF '------------------------------'
  68. CALL TRANSMIT BLU'You are currently in 'RED MFILE
  69. CALL TRANSMIT ' '
  70. CALL TRANSMIT WHTBLU'[1]'OFF BLU'      - change to' MFILE1
  71. CALL TRANSMIT WHTBLU'[2]'OFF BLU'      - change to' MFILE2
  72. CALL TRANSMIT WHTBLU'[3]'OFF BLU'      - change to' MFILE3
  73. CALL TRANSMIT ' '
  74. CALL TRANSMIT WHTBLU'[A]'OFF BLU'      - Add to' RED MFILE
  75. CALL TRANSMIT WHTBLU'[V]'OFF BLU'      - View  ' RED MFILE
  76. CALL TRANSMIT WHTBLU'[Q]uit'OFF BLU'   - return to 'YEL||BBSNAME||OFF
  77. CALL TRANSMIT ' '
  78. OPTIONS PROMPT YEL 'Option: '
  79. PULL opt
  80. CALL TRANSMIT opt
  81. CALL checkBBS()
  82. select
  83.   when opt='1' then do
  84.      DATFILE = DATFILE1
  85.      MFILE = MFILE1
  86.   signal BEGIN
  87.   end
  88.   when opt='2' then do
  89.      DATFILE = DATFILE2
  90.      MFILE = MFILE2
  91.   signal BEGIN
  92.   end
  93.   when opt='3' then do
  94.      DATFILE = DATFILE3
  95.      MFILE = MFILE3
  96.   signal BEGIN
  97.   end
  98.   when opt='A' then do
  99.     call GETLINE
  100.   end
  101.   when opt='V' then do
  102.     CALL TRANSMIT cls
  103.     CALL TRANSMIT MFILE
  104.     CALL TRANSMIT '-----------------------------------------------------------'OFF
  105.     x=OPEN(f,DATFILE,'R')
  106.     IF x~=0 THEN
  107.       DO i=1
  108.         line=READLN(f)
  109.         IF EOF(f) THEN LEAVE i
  110.         CALL TRANSMIT line
  111.       END
  112.     CALL CLOSE(f)
  113.     OPTIONS PROMPT YEL'Press Return 'OFF
  114.     PULL junk
  115.     CALL TRANSMIT ''
  116.     signal BEGIN
  117.   end
  118.   when opt='Q' then do
  119.     CALL TRANSMIT ' '
  120.     CALL TRANSMIT 'Returning to 'BBSNAME
  121.     exit
  122.     end
  123.   otherwise signal BEGIN
  124.   end
  125. signal BEGIN
  126.  
  127. GETLINE:
  128.  CALL TRANSMIT CLS
  129.  OPTIONS PROMPT 'Add how many lines?  (1-5) >'
  130.  PULL LINEN
  131.  if LINEN < 1 or LINEN > 5 then call getline
  132.  
  133.  CALL TRANSMIT '>-Enter 'LINEN' Lines - Return to Quit - .......................................|'
  134.  ADD  = ''
  135.  line = ' '
  136.  do for LINEN until line=''
  137.    CALL checkBBS()
  138.    OPTIONS PROMPT '>'
  139.    PARSE PULL line
  140.    ADD = STRIP(ADD line)
  141.  end
  142.  
  143. if ADD=='' then do
  144.    call BEGIN
  145.    end
  146.  
  147. lines = 0
  148. do while length(ADD) > 79
  149.    pointer = 79
  150.    do for 79 while substr(ADD,pointer,1)~=' '
  151.       pointer = pointer - 1
  152.       end
  153.    lines = lines + 1
  154.    ADD.lines = left(ADD,pointer)
  155.    ADD = substr(ADD,pointer+1)
  156.    end
  157. if length(ADD) > 0 then do
  158.    lines = lines + 1
  159.    ADD.lines = ADD
  160.    end
  161.  CALL TRANSMIT ' '
  162.  
  163. MAKESURE:
  164.  OPTIONS PROMPT 'Add lines to the story? (Y/n) :'
  165.  PULL choice
  166.  if choice = 'N' then call BEGIN 
  167.  
  168. WRITELINE: 
  169. CALL TRANSMIT BLU" Yes!"OFF
  170. CALL TRANSMIT "Adding to"MFILE"...."
  171. IF EXISTS(DATFILE) THEN call open file, DATFILE,'A'
  172. ELSE call open file, DATFILE,'W'
  173.  do i = 1 to lines
  174.    call writeln file,ADD.i
  175.  end
  176. call close file
  177. call BEGIN
  178.  
  179. CloseShop:
  180. Die:
  181. exit
  182. return
  183.  
  184.  
  185. checkBBS:
  186. IF ADDRESS()~='BAUD' THEN RETURN 0
  187. IF TIME('E')>secs THEN EXIT
  188. dcd
  189. IF RC=0 THEN EXIT
  190. temp=secs-TIME('E')
  191. IF temp<120 THEN SAY '*** Only' temp 'seconds left! ***'CR 
  192. RETURN 0
  193.  
  194. /*************************************************************************/
  195.  
  196. SYNTAX:
  197.    CALL TRANSMIT '*BOOM*  Syntax error in StoryBoard.  PLEASE notify the sysop.'
  198. BREAK_C:
  199.    CALL TRANSMIT 'Line:' SIGL '   Error Code:' RC
  200. call CloseShop
  201. exit
  202.  
  203. transmit:
  204. PARSE ARG string
  205. SAY string'0D'x
  206. RETURN
  207.  
  208. /*************************************************************************/
  209.