home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PCBOARD / VOTE207.ZIP / VOTE.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-03-03  |  32KB  |  1,267 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Integer  INTEGER001
  21.     Integer  INTEGER002
  22.     Integer  INTEGER003
  23.     Integer  INTEGER004
  24.     Integer  INTEGER005
  25.     Integer  INTEGER006
  26.     Integer  INTEGER007
  27.     Integer  INTEGER008
  28.     Integer  INTEGER009
  29.     Integer  INTEGER010
  30.     Integer  INTEGER011
  31.     Integer  INTEGER012
  32.     Integer  INTEGER013
  33.     Integer  TINTEGER014(1)
  34.     Integer  INTEGER015
  35.     Integer  INTEGER016
  36.     Integer  INTEGER017
  37.     Integer  TINTEGER018(99)
  38.     Integer  INTEGER019
  39.     Integer  INTEGER020
  40.     Integer  INTEGER021
  41.     Integer  INTEGER022
  42.     Integer  INTEGER023
  43.     Integer  INTEGER024
  44.     Integer  INTEGER025
  45.     Integer  INTEGER026
  46.     Integer  INTEGER027
  47.     Integer  INTEGER028
  48.     Integer  INTEGER029
  49.     Integer  INTEGER030
  50.     Integer  INTEGER031
  51.     Integer  INTEGER032
  52.     Integer  INTEGER033
  53.     Integer  INTEGER034
  54.     Integer  INTEGER035
  55.     Integer  INTEGER036
  56.     Integer  INTEGER037
  57.     Integer  INTEGER038
  58.     Integer  INTEGER039
  59.     Integer  INTEGER040
  60.     Integer  TINTEGER041(1)
  61.     Integer  INTEGER042
  62.     Integer  INTEGER043
  63.     Integer  INTEGER044
  64.     Integer  INTEGER045
  65.     Integer  INTEGER046
  66.     Integer  INTEGER047
  67.     Integer  INTEGER048
  68.     Integer  INTEGER049
  69.     Integer  INTEGER050
  70.     Integer  INTEGER051
  71.     Integer  INTEGER052
  72.     String   TSTRING001(7)
  73.     String   STRING002
  74.     String   STRING003
  75.     String   STRING004
  76.     String   STRING005
  77.     String   STRING006
  78.     String   STRING007
  79.     String   STRING008
  80.     String   TSTRING009(1)
  81.     String   STRING010
  82.     String   TSTRING011(1)
  83.     String   STRING012
  84.     String   STRING013
  85.     String   STRING014
  86.     String   STRING015
  87.     String   STRING016
  88.     String   STRING017
  89.     String   STRING018
  90.     String   STRING019
  91.     String   STRING020
  92.     String   STRING021
  93.     String   STRING022
  94.     String   STRING023
  95.     String   STRING024
  96.     String   TSTRING025(1)
  97.     String   STRING026
  98.     String   TSTRING027(1)
  99.     String   STRING028
  100.     String   STRING029
  101.     String   STRING030
  102.     String   TSTRING031(1)
  103.     String   STRING032
  104.     String   STRING033
  105.     String   STRING034
  106.     String   STRING035
  107.     String   TSTRING036(1)
  108.     String   STRING037
  109.     String   STRING038
  110.     String   STRING039
  111.     String   STRING040
  112.     String   STRING041
  113.     String   STRING042
  114.     String   STRING043
  115.     String   TSTRING044(27)
  116.     BigStr   BIGSTR001
  117.     BigStr   BIGSTR002
  118.  
  119. ;------------------------------------------------------------------------------
  120.  
  121.     GetUser
  122.     STRING006 = Time()
  123.     Log "+++ Entered Voter++ at -> " + STRING006, 0
  124.     FOpen 1, PPEPath() + PPEName() + ".CFG", 0, 0
  125.     FDefIn 1
  126.     For INTEGER001 = 1 To 7
  127.         FDGet TSTRING001(INTEGER001)
  128.         TSTRING001(INTEGER001) = RTrim(Left(TSTRING001(INTEGER001), 29), " ")
  129.     Next
  130.     FClose 1
  131.     FOpen 2, PPEPath() + PPEName() + ".PRM", 0, 0
  132.     FDefIn 2
  133.     For INTEGER001 = 1 To 27
  134.         FDGet TSTRING044(INTEGER001)
  135.     Next
  136.     FClose 2
  137.     Redim TSTRING009, S2I(TSTRING001(1), 10)
  138.     Redim TSTRING011, S2I(TSTRING001(1), 10)
  139.     Redim TSTRING025, S2I(TSTRING001(1), 10)
  140.     Redim TSTRING027, S2I(TSTRING001(1), 10)
  141.     Redim TSTRING031, S2I(TSTRING001(1), 10)
  142.     Redim TSTRING036, S2I(TSTRING001(1), 10)
  143.     Redim TINTEGER014, S2I(TSTRING001(1), 10)
  144.     Redim TINTEGER041, S2I(TSTRING001(1), 10)
  145.     STRING014 = TSTRING001(2) + TSTRING001(3)
  146.     STRING014 = Strip(STRING014, " ")
  147.     For INTEGER019 = 1 To Len(STRING014)
  148.         TINTEGER018(INTEGER019) = Asc(Mid(STRING014, INTEGER019, 1))
  149.     Next
  150.     INTEGER020 = 0
  151.     For INTEGER019 = 1 To 80
  152.         INTEGER020 = INTEGER020 + TINTEGER018(INTEGER019)
  153.     Next
  154.     INTEGER017 = INTEGER020 * 709
  155.     If (AnsiOn()) Goto LABEL001
  156.     PrintLn "Sorry, but this program requires you to have ANSI capabilities, if you"
  157.     PrintLn "would like to use this voting door, then please type M at the main menu"
  158.     PrintLn "this will place you in graphics mode, and allow you to use this door."
  159.     End
  160.     :LABEL001
  161.     Gosub LABEL014
  162.     StartDisp 1
  163.     Cls
  164.     PrintLn "                                                                         "
  165.     PrintLn "      @X0A ╓─┐ ╥  ┬ ╥──┐ ╥  ┬ ─╥─ ╥  ┬ ╓──┐ ╥          ╓─╥─┐ ╥──┐ ╓──┐ ╥  ┬  "
  166.     PrintLn "      @X04 ╙─┐ ║  │ ╟─┬┘ ╙╖┌┘  ║  ╙╖┌┘ ╟──┤ ║     ───    ║   ╟─   ║    ╟──┤  "
  167.     PrintLn "      @X02╙──┘ ╙──┘ ╨ ┴   ╙┘  ─╨─  ╙┘  ╨  ┴ ╨──┘         ╨   ╨──┘ ╙──┘ ╨  ┴ o"
  168.     PrintLn "                          @X0D■(C)94 Bill Marcy  V2.7■                      "
  169.     PrintLn "                                  @X0BPRESENTS                             "
  170.     PrintLn "               @X0A┌─┐    ┌─┐ ┌──────┐ ┌─────┐ ┌─────┐ ┌──────┐           "
  171.     PrintLn "               │ │    │ │ │ ┌──┐ │ └─┐ ┌─┘ │ ┌───┘ │ ┌──┐ │           "
  172.     PrintLn "               @X04└┐└┐  ┌┘┌┘ │ │  │ │   │ │   │ └─┐   │ └──┘ │    "
  173.     PrintLn "               @X02 └┐└┐┌┘┌┘  │ │  │ │   │ │   │ ┌─┘   │ ┌─┐ ┌┘           "
  174.     PrintLn "                 └┐└┘┌┘   │ └──┘ │   │ │   │ └───┐ │ │ │ └┐            "
  175.     PrintLn "                  └──┘    └──────┘   └─┘   └─────┘ └─┘ └──┘          "
  176.     PrintLn "                              ██┐          ██┐"
  177.     PrintLn "                              ██│          ██│"
  178.     PrintLn "                          ██████████┐  ██████████┐"
  179.     PrintLn "                           └──██┌───┘      ██┌───┘"
  180.     PrintLn "                              ██│          ██│    "
  181.     PrintLn "                              └─┘          └─┘    "
  182.     If (INTEGER017 == TSTRING001(4)) Then
  183.         OpText "This program is registered to"
  184.         AnsiPos 0, 20
  185.         PrintLn "@X09@OPTEXT:76C@"
  186.         OpText TSTRING001(3)
  187.         AnsiPos 0, 21
  188.         PrintLn "@X03@OPTEXT:76C@"
  189.         Delay (3 * 182) / 10
  190.     Else
  191.         For INTEGER016 = 5 To 0 Step -1
  192.             AnsiPos 9, 1
  193.             PrintLn "@X0EThis @X0B", INTEGER016, "@X0E second delay is removed once this program is registered "
  194.             Delay (1.5 * 182) / 18
  195.         Next
  196.         For INTEGER016 = 5 To 0 Step -1
  197.             AnsiPos 2, 21
  198.             PrintLn "@X0CPlease help your sysop register this program and remove this @X8B", INTEGER016, "@X0C second delay@X0F"
  199.             Delay (1.5 * 182) / 18
  200.         Next
  201.     Endif
  202.     :LABEL002
  203.     INTEGER052 = 1
  204.     INTEGER051 = 16
  205.     INTEGER038 = 0
  206.     Gosub LABEL020
  207.     Color DefColor()
  208.     Cls
  209.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  210.     PrintLn "@X10│··@X1EVoter++@X10···················@X1CUser Voting Area@X10······················@X1BMain Menu@X10··@X19│@X0F"
  211.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  212.     PrintLn "@X10┌───────────────────────────────────@X19┐@X10┌────────────────────────────────────────@X19┐@X0F"
  213.     PrintLn "@X10│··@X16(@X1AH@X16) - @X10···························@X19│@X10│········································@X19│@X0F"
  214.     PrintLn "@X10│··@X16(@X1AL@X16) - @X10···························@X19│@X10│········································@X19│@X0F"
  215.     PrintLn "@X10│··@X16(@X1AV@X16) - @X10···························@X19│@X10└@X19────────────────────────────────────────┘@X0F"
  216.     PrintLn "@X10│··@X16(@X1AD@X16) - @X10···························@X19│@X10┌────────────────────────────────────────@X19┐@X0F"
  217.     PrintLn "@X10│··@X16(@X1CQ@X16) - @X10···························@X19│@X10│··@X1B(C)94 Survival Tech. Software@X10····@X1BV2.7@X10·@X19│@X0F"
  218.     PrintLn "@X10└@X19───────────────────────────────────┘@X10└@X19────────────────────────────────────────┘@X0F"
  219.     PrintLn "@X10┌───────────────────────────────────@X19┐@X0F"
  220.     PrintLn "@X10│··@X16( ) -                    @X10········@X19│@X0F"
  221.     PrintLn "@X10└@X19───────────────────────────────────┘@X0F"
  222.     Gosub LABEL012
  223.     If (CurSec() >= SysopSec()) Then
  224.         AnsiPos 38, 11
  225.         PrintLn "@X10┌────────────────────────────────────────@X19┐@X0F"
  226.         AnsiPos 38, 12
  227.         PrintLn "@X10│··@X16(@X9CS@X16) - @X1CThe Secret Hidden Sysop Menu!@X10···@X19│@X0F"
  228.         AnsiPos 38, 13
  229.         PrintLn "@X10└@X19────────────────────────────────────────┘@X0F"
  230.     Endif
  231.     If ((CurSec() < SysopSec()) && (Upper(TSTRING001(5)) == "YES")) Then
  232.         AnsiPos 38, 11
  233.         PrintLn "@X10┌────────────────────────────────────────@X19┐@X0F"
  234.         AnsiPos 38, 12
  235.         PrintLn "@X10│·@X16(@X1AC@X16) - @X10·································@X19│@X0F"
  236.         AnsiPos 38, 13
  237.         PrintLn "@X10└@X19────────────────────────────────────────┘@X0F"
  238.         AnsiPos 46, 12
  239.         PrintLn "@X1B", TSTRING044(26)
  240.     Endif
  241.     AnsiPos 5, 12
  242.     STRING002 = ""
  243.     While (STRING002 == "") Do
  244.         Gosub LABEL038
  245.         STRING002 = Inkey()
  246.     EndWhile
  247.     AnsiPos 5, 12
  248.     Print "@X17" + Upper(STRING002)
  249.     Delay 1
  250.     If (Upper(STRING002) == "H") Goto LABEL003
  251.     If (Upper(STRING002) == "L") Goto LABEL004
  252.     If (Upper(STRING002) == "V") Goto LABEL005
  253.     If (Upper(STRING002) == "D") Goto LABEL008
  254.     If (Upper(STRING002) == "Q") Goto LABEL011
  255.     If (Upper(STRING002) == "S") Goto LABEL021
  256.     If ((Upper(STRING002) == "C") && (Upper(TSTRING001(5)) == "YES")) Goto LABEL031
  257.     If (STRING002 == 0) Goto LABEL002
  258.     :LABEL003
  259.     Color DefColor()
  260.     Cls
  261.     DispFile PPEPath() + "HELP.DSP", 2 + 1 + 4
  262.     Print "            "
  263.     Gosub LABEL046
  264.     Goto LABEL002
  265.     Print "@X0F"
  266.     :LABEL004
  267.     Color DefColor()
  268.     Cls
  269.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  270.     PrintLn "@X10│··@X1EVoter++@X10··········································@X1CAvailable Voting Booths@X10·@X19│@X0F"
  271.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  272.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  273.     For INTEGER001 = INTEGER052 To TSTRING001(1)
  274.         STRING003 = INTEGER001
  275.         STRING004 = ReadLine(PPEPath() + "VOTE" + STRING003 + ".QUE", 1)
  276.         FClose -1
  277.         INTEGER002 = 71 - Len(STRING004)
  278.         Gosub LABEL020
  279.         If (INTEGER001 <= 9) PrintLn "@X10│@X1C ", INTEGER001, "@X16)@X1B", STRING017, STRING004 + Space(INTEGER002) , "@X19│@X0F"
  280.         If (INTEGER001 >= 10) PrintLn "@X10│@X1C", INTEGER001, "@X16)@X1B", STRING017, STRING004 + Space(INTEGER002) , "@X19│@X0F"
  281.         If (INTEGER001 == INTEGER051 - 1) Then
  282.             PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  283.             Print "   @X03(@X8E■@X03 = Voted on)        "
  284.             Gosub LABEL046
  285.             INTEGER052 = INTEGER051
  286.             INTEGER051 = INTEGER051 + 16
  287.             Goto LABEL004
  288.         Endif
  289.     Next
  290.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  291.     Print "   @X03(@X8E■@X03 = Voted on)        "
  292.     Gosub LABEL046
  293.     Goto LABEL002
  294.     :LABEL005
  295.     STRING002 = 0
  296.     Color DefColor()
  297.     Cls
  298.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  299.     PrintLn "@X10│··@X1EVoter++@X10········@X1CPlease Choose from the booths below@X10··········@X1AVoting Area@X10··@X19│@X0F"
  300.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  301.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  302.     For INTEGER001 = INTEGER052 To TSTRING001(1)
  303.         STRING003 = INTEGER001
  304.         STRING004 = ReadLine(PPEPath() + "VOTE" + STRING003 + ".QUE", 1)
  305.         FClose -1
  306.         Gosub LABEL020
  307.         INTEGER002 = 71 - Len(STRING004)
  308.         If (INTEGER001 <= 9) PrintLn "@X10│@X1C ", INTEGER001, "@X16)@X1B", STRING017, STRING004 + Space(INTEGER002) , "@X19│@X0F"
  309.         If (INTEGER001 >= 10) PrintLn "@X10│@X1C", INTEGER001, "@X16)@X1B", STRING017, STRING004 + Space(INTEGER002) , "@X19│@X0F"
  310.         If (INTEGER001 == INTEGER051 - 1) Then
  311.             PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  312.             InputStr TSTRING044(14), STRING002, 14, 2, "1234567890QqDdMm", 0 + 4
  313.             If (S2I(STRING002, 10) > S2I(TSTRING001(1), 10)) Goto LABEL005
  314.             Gosub LABEL015
  315.             If (STRING016 == "Y") Goto LABEL018
  316.             If (Upper(STRING002) == "Q") Goto LABEL002
  317.             If (Upper(STRING002) == "D") Goto LABEL008
  318.             If (Upper(STRING002) == "M") Goto LABEL006
  319.             If (STRING002 == 0) Goto LABEL005
  320.             If (S2I(STRING002, 10) <= S2I(TSTRING001(1), 10)) Goto LABEL007
  321.             :LABEL006
  322.             INTEGER052 = INTEGER051
  323.             INTEGER051 = INTEGER051 + 16
  324.             Goto LABEL005
  325.         Endif
  326.     Next
  327.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────@X19┘@X0F"
  328.     InputStr TSTRING044(14), STRING002, 14, 2, "1234567890QqDdMm", 0 + 4
  329.     If (S2I(STRING002, 10) > S2I(TSTRING001(1), 10)) Goto LABEL005
  330.     Gosub LABEL015
  331.     If (STRING016 == "Y") Goto LABEL018
  332.     If (Upper(STRING002) == "Q") Goto LABEL002
  333.     If (Upper(STRING002) == "D") Then
  334.         INTEGER052 = 1
  335.         INTEGER051 = 16
  336.     Else
  337.         If (STRING002 == 0) Goto LABEL005
  338.         :LABEL007
  339.         Color DefColor()
  340.         Cls
  341.         PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  342.         STRING007 = ReadLine(PPEPath() + "VOTE" + STRING002 + ".QUE", 1)
  343.         FClose -1
  344.         INTEGER002 = 71 - Len(STRING007)
  345.         PrintLn "@X10│@X14 Q:@X1E ", STRING007 + Space(INTEGER002), "@X19│@X0F"
  346.         PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  347.         INTEGER004 = 1
  348.         For INTEGER001 = 1 To S2I(TSTRING001(1), 10)
  349.             If (INTEGER001 <= 1) Gosub LABEL019
  350.             Inc INTEGER004
  351.             STRING007 = ReadLine(PPEPath() + "vote" + STRING002 + ".que", INTEGER004)
  352.             FClose -1
  353.             If (STRING007 == "") Break
  354.             INTEGER002 = 71 - Len(STRING007)
  355.             If (INTEGER001 <= 9) PrintLn "@X10│@X1C ", INTEGER001, "@X16)@X1B ", STRING007 + Space(INTEGER002) , "@X19│@X0F"
  356.             If (INTEGER001 >= 10) PrintLn "@X10│@X1C", INTEGER001, "@X16)@X1B ", STRING007 + Space(INTEGER002) , "@X19│@X0F"
  357.         Next
  358.         PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  359.         InputStr TSTRING044(15), STRING008, 14, 2, "1234567890Qq", 0 + 4
  360.         If (Upper(STRING008) == "Q") Goto LABEL005
  361.         If (S2I(STRING008, 10) > S2I(TSTRING001(1), 10)) Goto LABEL007
  362.         If (Upper(STRING008) == "Q") Goto LABEL005
  363.         If (STRING008 == 0) Goto LABEL007
  364.         If (STRING008 == "") Goto LABEL007
  365.         BIGSTR002 = Len(U_Name())
  366.         BIGSTR001 = 25 - BIGSTR002
  367.         STRING018 = U_Name() + Space(BIGSTR001)
  368.         Select Case (Len(STRING008))
  369.             Case 1
  370.                 INTEGER028 = 1
  371.             Case 2
  372.                 INTEGER028 = 0
  373.         End Select
  374.         FAppend 5, PPEPath() + "vote" + STRING002 + ".nam", 2, 0
  375.         FPutLn 5, U_Name(), Space(BIGSTR001), " ■ ", String(Date()), " ■ Answer ", STRING008, Space(INTEGER028)
  376.         FClose 5
  377.         INTEGER006 = INTEGER001 - 1
  378.         For INTEGER005 = 1 To INTEGER006
  379.             FOpen 6, PPEPath() + "vote" + STRING002 + ".ans", 2, 0
  380.             FDefIn 6
  381.             FDGet TSTRING009(INTEGER005)
  382.         Next
  383.         FClose 6
  384.         TSTRING009(STRING008) = TSTRING009(STRING008) + 1
  385.         FOpen 6, PPEPath() + "VOTE" + STRING002 + ".ANS", 1, 0
  386.         FDefOut 6
  387.         For INTEGER007 = 1 To INTEGER006
  388.             FDPutLn TSTRING009(INTEGER007)
  389.         Next
  390.         FClose 6
  391.         Newlines 1
  392.         PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  393.         PrintLn "@X10│@X1EThank you for casting your vote. Make sure you take a look at the results! @X19│@X0F"
  394.         PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  395.         Delay (2 * 182) / 10
  396.         Goto LABEL005
  397.     Endif
  398.     :LABEL008
  399.     Color DefColor()
  400.     Cls
  401.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  402.     PrintLn "@X10│··@X1EVoter++@X10··········································@X1CVoter Statistics Area@X10···@X19│@X0F"
  403.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  404.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  405.     For INTEGER008 = INTEGER052 To TSTRING001(1)
  406.         STRING003 = INTEGER008
  407.         STRING004 = ReadLine(PPEPath() + "VOTE" + STRING003 + ".QUE", 1)
  408.         FClose -1
  409.         INTEGER002 = 71 - Len(STRING004)
  410.         Gosub LABEL020
  411.         If (STRING003 <= 9) PrintLn "@X10│@X1C ", STRING003, "@X16)@X1B", STRING017, STRING004 + Space(INTEGER002) , "@X19│@X0F"
  412.         If (STRING003 >= 10) PrintLn "@X10│@X1C", STRING003, "@X16)@X1B", STRING017, STRING004 + Space(INTEGER002) , "@X19│@X0F"
  413.         If (STRING003 == INTEGER051 - 1) Then
  414.             PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  415.             InputStr TSTRING044(16), STRING010, 14, 2, "1234567890QqVvMm", 0 + 4
  416.             If (S2I(STRING010, 10) > S2I(TSTRING001(1), 10)) Goto LABEL008
  417.             If (Upper(STRING010) == "Q") Goto LABEL002
  418.             If (Upper(STRING010) == "V") Then
  419.                 INTEGER052 = 1
  420.                 INTEGER051 = 16
  421.                 Goto LABEL005
  422.             Endif
  423.             If (Upper(STRING010) == "M") Goto LABEL009
  424.             If (STRING010 == 0) Goto LABEL008
  425.             Gosub LABEL049
  426.             Newline
  427.             InputStr TSTRING044(17), STRING030, 10, 1, "GgTt", 0 + 4
  428.             If (Upper(STRING030) == "G") Goto LABEL039
  429.             Goto LABEL010
  430.             :LABEL009
  431.             INTEGER052 = INTEGER051
  432.             INTEGER051 = INTEGER051 + 16
  433.             Goto LABEL008
  434.         Endif
  435.     Next
  436.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  437.     InputStr TSTRING044(16), STRING010, 14, 2, "1234567890QqVvMm", 0 + 4
  438.     If (S2I(STRING010, 10) > S2I(TSTRING001(1), 10)) Goto LABEL008
  439.     If (Upper(STRING010) == "Q") Goto LABEL002
  440.     If (Upper(STRING010) == "V") Then
  441.         INTEGER052 = 1
  442.         INTEGER051 = 16
  443.         Goto LABEL005
  444.     Endif
  445.     If (STRING010 == 0) Goto LABEL008
  446.     Gosub LABEL049
  447.     Newline
  448.     InputStr TSTRING044(17), STRING030, 10, 1, "GgTt", 0 + 4
  449.     If (Upper(STRING030) == "G") Then
  450.         Goto LABEL039
  451.     Endif
  452.     :LABEL010
  453.     Newlines 1
  454.     INTEGER015 = 0
  455.     FOpen 3, PPEPath() + "VOTE" + STRING010 + ".ANS", 2, 0
  456.     FDefIn 3
  457.     For INTEGER009 = 1 To S2I(TSTRING001(1), 10)
  458.         FDGet TSTRING011(INTEGER009)
  459.         INTEGER015 = INTEGER015 + TSTRING011(INTEGER009)
  460.     Next
  461.     FClose 3
  462.     Cls
  463.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  464.     STRING013 = ReadLine(PPEPath() + "VOTE" + STRING010 + ".QUE", 1)
  465.     FClose -1
  466.     INTEGER013 = 71 - Len(STRING013)
  467.     PrintLn "@X10│ @X1CQ:@X1E ", STRING013 + Space(INTEGER013), "@X19│@X0F"
  468.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  469.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  470.     PrintLn "@X10│·@X1AVotes@X10··@X1C%%%@X10··@X1EAnswer@X10························································@X19│@X0F"
  471.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  472.     INTEGER010 = 1
  473.     For INTEGER012 = 1 To S2I(TSTRING001(1), 10)
  474.         If (INTEGER012 <= 1) Gosub LABEL019
  475.         TINTEGER014(INTEGER012) = TSTRING011(INTEGER012)
  476.         Inc INTEGER010
  477.         STRING012 = ReadLine(PPEPath() + "vote" + STRING010 + ".que", INTEGER010)
  478.         FClose -1
  479.         If (STRING012 == "") Break
  480.         If (TSTRING011(INTEGER012) == "") Then
  481.             TSTRING011(INTEGER012) = 0
  482.         Endif
  483.         INTEGER023 = (TINTEGER014(INTEGER012) * 100) / INTEGER015
  484.         If (Len(TSTRING011(INTEGER012)) <= 1) Then
  485.             INTEGER021 = 4
  486.         Else
  487.             Select Case (Len(TSTRING011(INTEGER012)))
  488.                 Case 2
  489.                     INTEGER021 = 3
  490.                 Case 3
  491.                     INTEGER021 = 2
  492.                 Endif
  493.         End Select
  494.         Select Case (Len(INTEGER023))
  495.             Case 1
  496.                 INTEGER022 = 5
  497.             Case 2
  498.                 INTEGER022 = 4
  499.             Case 3
  500.                 INTEGER022 = 3
  501.         End Select
  502.         Select Case (Len(INTEGER023))
  503.             Case 1
  504.                 INTEGER011 = 64 - Len(STRING012) + Len(TINTEGER014(INTEGER012)) + Len(TSTRING011(INTEGER012))
  505.             Case 2
  506.                 INTEGER011 = 66 - Len(STRING012) + Len(TINTEGER014(INTEGER012)) + Len(TSTRING011(INTEGER012))
  507.             Case 3
  508.                 INTEGER011 = 64 - Len(STRING012) + Len(TINTEGER014(INTEGER012)) + Len(TSTRING011(INTEGER012))
  509.         End Select
  510.         INTEGER027 = 0
  511.         If (Len(TSTRING011(INTEGER012)) == 1) Then
  512.             INTEGER027 = 2
  513.         Endif
  514.         If (Len(INTEGER023) == INTEGER027) Then
  515.             INTEGER011 = 64 - Len(STRING012) + Len(TINTEGER014(INTEGER012)) + Len(TSTRING011(INTEGER012))
  516.         Endif
  517.         PrintLn "@X10│@X1A", Space(INTEGER021), TSTRING011(INTEGER012), "@X1C", Space(INTEGER022), INTEGER023, " @X1E ", STRING012 + Space(INTEGER011), "@X19│@X0F"
  518.     Next
  519.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  520.     Print "              "
  521.     Gosub LABEL046
  522.     Goto LABEL008
  523.     :LABEL011
  524.     AnsiPos 38, 11
  525.     PrintLn "@X10┌────────────────────────────────────────@X19┐@X0F"
  526.     AnsiPos 38, 12
  527.     PrintLn "@X10│···@X1C@X9C@X1E Thank you for using Voter++ @X9C@X1C@X10··@X19│@X0F"
  528.     AnsiPos 38, 13
  529.     PrintLn "@X10└@X19────────────────────────────────────────┘@X0F"
  530.     Call PPEPath() + "votegraf.ppe"
  531.     STRING006 = Time()
  532.     Log "--- Exited  Voter++ at -> " + STRING006, 0
  533.     End
  534.     :LABEL012
  535.     AnsiPos 10, 5
  536.     PrintLn "@X1B", TSTRING044(1)
  537.     AnsiPos 10, 6
  538.     PrintLn "", TSTRING044(2)
  539.     AnsiPos 10, 7
  540.     PrintLn "", TSTRING044(3)
  541.     AnsiPos 10, 8
  542.     PrintLn "", TSTRING044(4)
  543.     AnsiPos 10, 9
  544.     PrintLn "@X1C", TSTRING044(5)
  545.     AnsiPos 10, 12
  546.     PrintLn "@X1B", TSTRING044(6)
  547.     AnsiPos 41, 5
  548.     PrintLn "@X1E", TSTRING044(11)
  549.     AnsiPos 41, 6
  550.     PrintLn "", TSTRING044(12)
  551.     AnsiPos 67, 5
  552.     PrintLn "@X1C", TSTRING001(1), "@X1E."
  553.     AnsiPos 67, 6
  554.     PrintLn "@X1C", INTEGER026, "@X1E."
  555.     Return
  556.     :LABEL013
  557.     AnsiPos 67, 5
  558.     PrintLn "@X1C", TSTRING001(1), "@X1E."
  559.     AnsiPos 67, 6
  560.     PrintLn "@X1C", INTEGER026, "@X1E."
  561.     AnsiPos 10, 5
  562.     PrintLn "@X1B", TSTRING044(7)
  563.     AnsiPos 10, 6
  564.     PrintLn "", TSTRING044(8)
  565.     AnsiPos 10, 7
  566.     PrintLn "", TSTRING044(9)
  567.     AnsiPos 10, 8
  568.     PrintLn "", TSTRING044(10)
  569.     AnsiPos 10, 9
  570.     PrintLn "@X1C", TSTRING044(27)
  571.     AnsiPos 41, 5
  572.     PrintLn "@X1E", TSTRING044(11)
  573.     AnsiPos 41, 6
  574.     PrintLn "", TSTRING044(12)
  575.     AnsiPos 10, 12
  576.     PrintLn "@X1B", TSTRING044(6)
  577.     Return
  578.     :LABEL014
  579.     INTEGER026 = 0
  580.     INTEGER026 = ReadLine(PPEPath() + PPEName() + ".cfg", 6)
  581.     FClose -1
  582.     INTEGER026 = INTEGER026 + 1
  583.     For INTEGER001 = 1 To 7
  584.         TSTRING001(INTEGER001) = ReadLine(PPEPath() + PPEName() + ".cfg", INTEGER001)
  585.         FClose -1
  586.         TSTRING001(INTEGER001) = RTrim(Left(TSTRING001(INTEGER001), 29), " ")
  587.     Next
  588.     FClose -1
  589.     Delete PPEPath() + PPEName() + ".cfg"
  590.     INTEGER026 = TSTRING001(6)
  591.     INTEGER026 = INTEGER026 + 1
  592.     TSTRING001(6) = INTEGER026
  593.     FOpen 3, PPEPath() + PPEName() + ".cfg", 1, 0
  594.     FDefOut 3
  595.     For INTEGER001 = 1 To 7
  596.         FDPutLn TSTRING001(INTEGER001)
  597.     Next
  598.     FClose 3
  599.     Return
  600.     PrintLn "@X0E"
  601.     :LABEL015
  602.     STRING016 = "N"
  603.     STRING015 = ""
  604.     INTEGER024 = 0
  605.     FOpen 3, PPEPath() + "VOTE" + STRING002 + ".NAM", 2, 0
  606.     FDefIn 3
  607.     :LABEL016
  608.     If (Ferr(3)) Goto LABEL017
  609.     Inc INTEGER024
  610.     FDGet STRING015
  611.     Goto LABEL016
  612.     :LABEL017
  613.     FClose 3
  614.     INTEGER024 = INTEGER024 - 1
  615.     If (INTEGER024 == 0) Then
  616.         INTEGER024 = 1
  617.     Endif
  618.     INTEGER025 = Len(U_Name())
  619.     FOpen 4, PPEPath() + "VOTE" + STRING002 + ".NAM", 2, 0
  620.     FDefIn 4
  621.     For INTEGER001 = 1 To INTEGER024
  622.         FDGet STRING015
  623.         If (Left(STRING015, INTEGER025) == U_Name()) Then
  624.             STRING016 = "Y"
  625.         Endif
  626.     Next
  627.     FClose 4
  628.     Return
  629.     :LABEL018
  630.     Newlines 1
  631.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  632.     PrintLn "@X10│ @X1ESorry but you have already voted on this question, please choose another. @X19│@X0F"
  633.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  634.     Delay (2 * 182) / 10
  635.     Goto LABEL002
  636.     :LABEL019
  637.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  638.     Return
  639.     :LABEL020
  640.     STRING019 = PPEPath() + "vote" + STRING003 + ".nam"
  641.     INTEGER029 = FileInf(STRING019, 4)
  642.     INTEGER030 = INTEGER029 / 50
  643.     If (INTEGER030 == 0) Then
  644.         STRING017 = " "
  645.         Return
  646.     Endif
  647.     For INTEGER031 = 1 To INTEGER030
  648.         STRING020 = ReadLine(STRING019, INTEGER031)
  649.         If (U_Name() == Left(STRING020, Len(U_Name()))) Then
  650.             STRING017 = "@X9E■@X1B"
  651.             Return
  652.         Endif
  653.     Next
  654.     STRING017 = " "
  655.     Return
  656.     :LABEL021
  657.     INTEGER052 = 1
  658.     INTEGER051 = 16
  659.     If (CurSec() < SysopSec()) Then
  660.         AnsiPos 38, 11
  661.         PrintLn "@X10┌────────────────────────────────────────@X19┐@X0F"
  662.         AnsiPos 38, 12
  663.         PrintLn "@X10│ @X1CThis function is not available to you! @X19│@X0F"
  664.         AnsiPos 38, 13
  665.         PrintLn "@X10└@X19────────────────────────────────────────┘@X0F"
  666.         Delay (2 * 182) / 10
  667.         Goto LABEL002
  668.     Endif
  669.     Color DefColor()
  670.     Cls
  671.     PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  672.     PrintLn "@X10│··@X1EVoter++@X10···················@X1CSysop Maintenance Area@X10···························@X19│@X0F"
  673.     PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  674.     PrintLn "@X10┌───────────────────────────────────@X19┐@X10┌────────────────────────────────────────@X19┐@X0F"
  675.     PrintLn "@X10│··@X16(@X1AH@X16) - @X10···························@X19│@X10│········································@X19│@X0F"
  676.     PrintLn "@X10│··@X16(@X1AE@X16) - @X10···························@X19│@X10│········································@X19│@X0F"
  677.     PrintLn "@X10│··@X16(@X1AC@X16) - @X10···························@X19│@X10└@X19────────────────────────────────────────┘@X0F"
  678.     PrintLn "@X10│··@X16(@X1AD@X16) - @X10···························@X19│@X10┌────────────────────────────────────────@X19┐@X0F"
  679.     PrintLn "@X10│··@X16(@X1CQ@X16) - @X10···························@X19│@X10│··@X1B(C)94 Survival Tech. Software@X10····@X1BV2.7@X10·@X19│@X0F"
  680.     PrintLn "@X10└@X19───────────────────────────────────┘@X10└@X19────────────────────────────────────────┘@X0F"
  681.     PrintLn "@X10┌───────────────────────────────────@X19┐@X0F"
  682.     PrintLn "@X10│··@X16( ) - @X10···························@X19│@X0F"
  683.     PrintLn "@X10└@X19───────────────────────────────────┘@X0F"
  684.     Gosub LABEL013
  685.     AnsiPos 5, 12
  686.     STRING021 = ""
  687.     While (STRING021 == "") Do
  688.         STRING021 = Inkey()
  689.     EndWhile
  690.     AnsiPos 5, 12
  691.     Print "@X13" + Upper(STRING021)
  692.     Delay 1
  693.     If (Upper(STRING021) == "H") Goto LABEL022
  694.     If (Upper(STRING021) == "E") Goto LABEL023
  695.     If (Upper(STRING021) == "C") Goto LABEL031
  696.     If (Upper(STRING021) == "D") Goto LABEL036
  697.     If (Upper(STRING021) == "Q") Goto LABEL002
  698.     If (STRING021 == 0) Goto LABEL021
  699.     :LABEL022
  700.     Color DefColor()
  701.     Cls
  702.     DispFile PPEPath() + "SYS_HELP.DSP", 2 + 1 + 4
  703.     Print "           "
  704.     Gosub LABEL046
  705.     Goto LABEL021
  706.     :LABEL023
  707.     STRING026 = 0
  708.     Color DefColor()
  709.     Cls
  710.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  711.     PrintLn "@X10│··@X1EVoter++@X10········@X1CPlease Choose the booth to Edit@X10···························@X19│@X0F"
  712.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  713.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  714.     For INTEGER001 = INTEGER052 To TSTRING001(1)
  715.         STRING003 = INTEGER001
  716.         STRING004 = ReadLine(PPEPath() + "VOTE" + STRING003 + ".QUE", 1)
  717.         INTEGER002 = 71 - Len(STRING004)
  718.         If (INTEGER001 <= 9) PrintLn "@X10│@X1C ", INTEGER001, "@X16) @X1B", STRING004 + Space(INTEGER002) , "@X19│@X0F"
  719.         If (INTEGER001 >= 10) PrintLn "@X10│@X1C", INTEGER001, "@X16)@X1B ", STRING004 + Space(INTEGER002) , "@X19│@X0F"
  720.         If (INTEGER001 == INTEGER051 - 1) Then
  721.             PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  722.             InputStr TSTRING044(18), STRING026, 11, 2, "1234567890QqMm", 0 + 4
  723.             If (Upper(STRING026) == "Q") Goto LABEL021
  724.             If (Upper(STRING026) == "M") Goto LABEL024
  725.             If (S2I(STRING026, 10) > S2I(TSTRING001(1), 10)) Goto LABEL023
  726.             :LABEL024
  727.             INTEGER052 = INTEGER051
  728.             INTEGER051 = INTEGER051 + 16
  729.             Goto LABEL023
  730.         Endif
  731.     Next
  732.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  733.     InputStr TSTRING044(18), STRING026, 11, 2, "1234567890Qq", 0 + 4
  734.     If (Upper(STRING026) == "Q") Goto LABEL021
  735.     If (S2I(STRING026, 10) > S2I(TSTRING001(1), 10)) Goto LABEL023
  736.     INTEGER036 = 0
  737.     FOpen 5, PPEPath() + "vote" + STRING026 + ".que", 0, 0
  738.     FDefIn 5
  739.     :LABEL025
  740.     If (Ferr(5)) Goto LABEL026
  741.     Inc INTEGER036
  742.     FDGet STRING005
  743.     Goto LABEL025
  744.     :LABEL026
  745.     FClose 5
  746.     INTEGER036 = INTEGER036 - 1
  747.     FOpen 5, PPEPath() + "vote" + STRING026 + ".que", 0, 0
  748.     FDefIn 5
  749.     For INTEGER001 = 1 To INTEGER036
  750.         FDGet TSTRING027(INTEGER001)
  751.     Next
  752.     FClose 5
  753.     Dec INTEGER036
  754.     :LABEL027
  755.     INTEGER040 = 1
  756.     Color DefColor()
  757.     Cls
  758.     PrintLn " @X04Q:@X02 ", TSTRING027(1)
  759.     PrintLn 
  760.     For INTEGER001 = 1 To INTEGER036
  761.         Inc INTEGER040
  762.         If (INTEGER001 <= 9) PrintLn "@X04 ", INTEGER001, "@X06)@X09 ", TSTRING027(INTEGER040)
  763.         If (INTEGER001 >= 10) PrintLn "@X04", INTEGER001, "@X06)@X09 ", TSTRING027(INTEGER040)
  764.     Next
  765.     PrintLn 
  766.     InputStr TSTRING044(19), STRING028, 10, 2, "1234567890QqSs", 0 + 4
  767.     If (Upper(STRING028) == "S") Goto LABEL028
  768.     If (Upper(STRING028) == "Q") Goto LABEL023
  769.     STRING028 = STRING028 + 1
  770.     PrintLn 
  771.     PrintLn "@X0BOld Line :  ", TSTRING027(STRING028)
  772.     InputStr TSTRING044(20), TSTRING027(STRING028), 9, 60, Mask_Ascii(), 0
  773.     Goto LABEL027
  774.     :LABEL028
  775.     INTEGER036 = 0
  776.     FOpen 5, PPEPath() + "vote" + STRING026 + ".que", 0, 0
  777.     FDefIn 5
  778.     :LABEL029
  779.     If (Ferr(5)) Goto LABEL030
  780.     Inc INTEGER036
  781.     FDGet STRING005
  782.     Goto LABEL029
  783.     :LABEL030
  784.     FClose 5
  785.     INTEGER036 = INTEGER036 - 1
  786.     FOpen 5, PPEPath() + "vote" + STRING026 + ".que", 1, 0
  787.     FDefOut 5
  788.     For INTEGER001 = 1 To INTEGER036
  789.         FDPutLn TSTRING027(INTEGER001)
  790.     Next
  791.     FClose 5
  792.     Delete PPEPath() + "vote" + STRING026 + ".nam"
  793.     Delete PPEPath() + "vote" + STRING026 + ".ans"
  794.     Goto LABEL021
  795.     :LABEL031
  796.     For INTEGER037 = 1 To S2I(TSTRING001(1), 10)
  797.         STRING029 = INTEGER037
  798.         If (Exist(PPEPath() + PPEName() + STRING029 + ".que")) Then
  799.         Next
  800.     Endif
  801.     If (S2I(STRING029, 10) == S2I(TSTRING001(1), 10)) STRING029 = STRING029 + 1
  802.     Color DefColor()
  803.     STRING024 = ""
  804.     Color DefColor()
  805.     Cls
  806.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  807.     PrintLn "@X10│··@X1EVoter++@X10········@X1CBooth Creator@X10·············································@X19│@X0F"
  808.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  809.     PrintLn "@X0ANext available booth slot is:@X8C ", STRING029
  810.     InputStr "@X0ASave Questionnaire to (@X0CENTER @X0Ato save to next available slot) ", STRING029, 10, 2, "1234567890", 0
  811.     If (Exist(PPEPath() + PPEName() + STRING029 + ".que")) Then
  812.         PrintLn 
  813.         PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  814.         PrintLn "@X10│ @X1ESorry, but you have choosen a booth that already contains a valid Voting  @X19│@X0F"
  815.         PrintLn "@X10│ @X1EBooth, please recheck the next available slot and try again.              @X19│@X0F"
  816.         PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  817.         Delay (5 * 182) / 10
  818.         Goto LABEL031
  819.     Endif
  820.     PrintLn 
  821.     PrintLn "@X09Please enter your question below (70 chars max) @X04Q to quit@X01"
  822.     PrintLn 
  823.     InputStr "", STRING024, 11, 70, Mask_Ascii(), 64 + 2 + 4
  824.     If ((Upper(STRING024) == "Q") && (CurSec() >= SysopSec())) Goto LABEL021
  825.     If ((Upper(STRING024) == "Q") && (CurSec() < SysopSec())) Goto LABEL002
  826.     PrintLn 
  827.     PrintLn "@X09Now please enter up to 16 possible voting answers below (60 chars max each)"
  828.     PrintLn "Enter a blank line to end and save your new booth."
  829.     PrintLn 
  830.     INTEGER033 = 1
  831.     While (INTEGER033 <= 16) Do
  832.         If (INTEGER033 > 16) Break
  833.         If (INTEGER033 <= 9) Print " @X04", INTEGER033, "@X06)@X0B "
  834.         If (INTEGER033 >= 10) Print "@X04", INTEGER033, "@X06) "
  835.         InputStr "", TSTRING025(INTEGER033), 11, 60, Mask_Ascii(), 64 + 2 + 4
  836.         If (TSTRING025(INTEGER033) == "") Break
  837.         Inc INTEGER033
  838.     EndWhile
  839.     Dec INTEGER033
  840.     :LABEL032
  841.     Cls
  842.     PrintLn "@X04Q: ", STRING024
  843.     PrintLn 
  844.     For INTEGER034 = 1 To INTEGER033
  845.         If (INTEGER034 <= 9) PrintLn "@X04 ", INTEGER034, "@X06)@X09 ", TSTRING025(INTEGER034)
  846.         If (INTEGER034 >= 10) PrintLn "@X04", INTEGER034, "@X06)@X09 ", TSTRING025(INTEGER034)
  847.     Next
  848.     PrintLn 
  849.     InputStr TSTRING044(21), STRING023, 10, 1, "YyNn", 0
  850.     If (Upper(STRING023) == "Y") Goto LABEL034
  851.     If (Upper(STRING023) == "N") Then
  852.         Newline
  853.         :LABEL033
  854.         InputStr TSTRING044(22), INTEGER035, 4, 2, "1234567890", 0
  855.         If (INTEGER035 > INTEGER034) Goto LABEL033
  856.         Newline
  857.         PrintLn "@X02Old Line >    ", TSTRING025(INTEGER035)
  858.         InputStr TSTRING044(23), TSTRING025(INTEGER035), 11, 60, Mask_Ascii(), 64 + 2 + 4
  859.         Goto LABEL032
  860.     Endif
  861.     :LABEL034
  862.     Log STRING024, 1
  863.     Log "Voter++ Booth Created, Question Follows", 1
  864.     For INTEGER001 = 1 To 7
  865.         TSTRING001(INTEGER001) = ReadLine(PPEPath() + PPEName() + ".cfg", INTEGER001)
  866.         TSTRING001(INTEGER001) = RTrim(Left(TSTRING001(INTEGER001), 29), " ")
  867.     Next
  868.     FClose -1
  869.     Delete PPEPath() + PPEName() + ".cfg"
  870.     FOpen 7, PPEPath() + PPEName() + STRING029 + ".que", 1, 0
  871.     FDefOut 7
  872.     FDPutLn STRING024
  873.     For INTEGER001 = 1 To INTEGER033
  874.         FDPutLn TSTRING025(INTEGER001)
  875.     Next
  876.     FClose 7
  877.     If (STRING029 < S2I(TSTRING001(1), 10)) Goto LABEL035
  878.     INTEGER032 = TSTRING001(1)
  879.     INTEGER032 = INTEGER032 + 1
  880.     TSTRING001(1) = INTEGER032
  881.     :LABEL035
  882.     FOpen 3, PPEPath() + PPEName() + ".cfg", 1, 0
  883.     FDefOut 3
  884.     For INTEGER001 = 1 To 7
  885.         FDPutLn TSTRING001(INTEGER001)
  886.     Next
  887.     FClose 3
  888.     If (CurSec() >= SysopSec()) Then
  889.         Goto LABEL021
  890.     ElseIf (CurSec() < SysopSec()) Then
  891.         Goto LABEL002
  892.     Endif
  893.     :LABEL036
  894.     Color DefColor()
  895.     Cls
  896.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  897.     PrintLn "@X10│··@X1EVoter++@X10········@X1CPlease Choose the booth to @X9CDelete@X10·························@X19│@X0F"
  898.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  899.     For INTEGER001 = INTEGER052 To TSTRING001(1)
  900.         If (INTEGER001 <= 1) Gosub LABEL019
  901.         STRING003 = INTEGER001
  902.         STRING004 = ReadLine(PPEPath() + "VOTE" + STRING003 + ".QUE", 1)
  903.         INTEGER002 = 71 - Len(STRING004)
  904.         If (INTEGER001 <= 9) PrintLn "@X10│@X1C ", INTEGER001, "@X16) @X1B", STRING004 + Space(INTEGER002) , "@X19│@X0F"
  905.         If (INTEGER001 >= 10) PrintLn "@X10│@X1C", INTEGER001, "@X16)@X1B ", STRING004 + Space(INTEGER002) , "@X19│@X0F"
  906.         If (INTEGER001 == INTEGER051 - 1) Then
  907.             PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  908.             InputStr TSTRING044(24), STRING022, 11, 2, "1234567890QqMm", 0 + 4
  909.             If (Upper(STRING022) == "Q") Goto LABEL021
  910.             If (Upper(STRING022) == "M") Goto LABEL000
  911.             INTEGER052 = INTEGER051
  912.             INTEGER051 = INTEGER051 + 16
  913.             Goto LABEL036
  914.         Endif
  915.     Next
  916.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  917.     InputStr TSTRING044(24), STRING022, 11, 2, "1234567890Qq", 0 + 4
  918.     If (Upper(STRING022) == "Q") Goto LABEL021
  919.     If (S2I(STRING022, 10) > S2I(TSTRING001(1), 10)) Then
  920.         PrintLn 
  921.         PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  922.         PrintLn "@X10│ @X1BYou have choosen a non-existant booth #, please try again (or @X1CQ @X1Bto quit)  @X19│@X0F"
  923.         PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  924.         Delay (1.5 * 182) / 102
  925.         Goto LABEL036
  926.     Endif
  927.     Cls
  928.     Color DefColor()
  929.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  930.     PrintLn "@X10│ @X9CCAUTION *  @X1CWE WILL DELETE THE FOLLOWING BOOTH - PLEASE VERIFY!  @X9C* CAUTION @X19│@X0F"
  931.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  932.     PrintLn "@X10┌───────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  933.     STRING004 = ReadLine(PPEPath() + "VOTE" + STRING022 + ".QUE", 1)
  934.     FClose -1
  935.     INTEGER002 = 71 - Len(STRING004)
  936.     If (STRING022 <= 9) PrintLn "@X10│@X1C ", STRING022, "@X16) @X1B", STRING004 + Space(INTEGER002) , "@X19│@X0F"
  937.     If (STRING022 >= 10) PrintLn "@X10│@X1C", STRING022, "@X16)@X1B ", STRING004 + Space(INTEGER002) , "@X19│@X0F"
  938.     PrintLn "@X10└@X19───────────────────────────────────────────────────────────────────────────┘@X0F"
  939.     InputStr TSTRING044(25), STRING023, 4, 1, "YyNn", 0 + 4
  940.     If (Upper(STRING023) == "Y") Then
  941.         Delete PPEPath() + "vote" + STRING022 + ".nam"
  942.         Delete PPEPath() + "vote" + STRING022 + ".ans"
  943.         Delete PPEPath() + "vote" + STRING022 + ".que"
  944.         For INTEGER001 = 1 To 7
  945.             TSTRING001(INTEGER001) = ReadLine(PPEPath() + PPEName() + ".cfg", INTEGER001)
  946.             TSTRING001(INTEGER001) = RTrim(Left(TSTRING001(INTEGER001), 29), " ")
  947.         Next
  948.         FClose -1
  949.         Delete PPEPath() + PPEName() + ".cfg"
  950.         If (S2I(STRING022, 10) < S2I(TSTRING001(1), 10)) Goto LABEL037
  951.         INTEGER032 = TSTRING001(1)
  952.         INTEGER032 = INTEGER032 - 1
  953.         TSTRING001(1) = INTEGER032
  954.         :LABEL037
  955.         FOpen 3, PPEPath() + PPEName() + ".cfg", 1, 0
  956.         FDefOut 3
  957.         For INTEGER001 = 1 To 7
  958.             FDPutLn TSTRING001(INTEGER001)
  959.         Next
  960.         FClose 3
  961.     Endif
  962.     Goto LABEL021
  963.     :LABEL038
  964.     Inc INTEGER038
  965.     For INTEGER039 = 1 To 45
  966.     Next
  967.     If (INTEGER038 >= 200) Goto LABEL011
  968.     Return
  969.     :LABEL039
  970.     STRING003 = 0
  971.     INTEGER003 = 0
  972.     INTEGER044 = 0
  973.     INTEGER015 = 0
  974.     INTEGER048 = 0
  975.     INTEGER049 = 0
  976.     INTEGER043 = 0
  977.     STRING035 = ""
  978.     INTEGER042 = 0
  979.     INTEGER045 = 0
  980.     INTEGER046 = 0
  981.     INTEGER047 = 1
  982.     FOpen 5, PPEPath() + "vote" + STRING010 + ".ans", 0, 0
  983.     FDefIn 5
  984.     :LABEL040
  985.     If (Ferr(5)) Goto LABEL041
  986.     Inc INTEGER045
  987.     FDGet STRING035
  988.     Goto LABEL040
  989.     :LABEL041
  990.     FClose 5
  991.     INTEGER045 = INTEGER045 - 1
  992.     STRING032 = PPEPath() + "vote" + STRING010 + ".ans"
  993.     STRING033 = PPEPath() + "vote" + STRING010 + ".que"
  994.     STRING034 = ReadLine(STRING033, 1)
  995.     FOpen 2, STRING033, 0, 0
  996.     FDefIn 2
  997.     :LABEL042
  998.     If (Ferr(2)) Goto LABEL043
  999.     Inc INTEGER046
  1000.     FDGet TSTRING036(INTEGER046)
  1001.     TSTRING036(INTEGER046) = Left(TSTRING036(INTEGER046), 52)
  1002.     Goto LABEL042
  1003.     :LABEL043
  1004.     FClose 2
  1005.     Cls
  1006.     PrintLn "Q: ", STRING034
  1007.     PrintLn 
  1008.     PrintLn "@X0EPossible Answers:                                    @X0C0    25   50   75  100"
  1009.     PrintLn "                                                     @X04├┬┬┬┬┼┬┬┬┬┼┬┬┬┬┼┬┬┬┬┤"
  1010.     For INTEGER043 = 1 To INTEGER045
  1011.         If (INTEGER043 > 16) Break
  1012.         TINTEGER041(INTEGER043) = ReadLine(STRING032, INTEGER043)
  1013.         INTEGER044 = INTEGER044 + TINTEGER041(INTEGER043)
  1014.         If (TINTEGER041(INTEGER043) == "") TINTEGER041(INTEGER043) = "0"
  1015.         Inc INTEGER042
  1016.     Next
  1017.     For INTEGER043 = 1 To INTEGER042
  1018.         If (INTEGER043 > 16) Goto LABEL044
  1019.         If (INTEGER043 > INTEGER042) Goto LABEL044
  1020.         TINTEGER041(INTEGER043) = (TINTEGER041(INTEGER043) * 100) / INTEGER044
  1021.         :LABEL044
  1022.         If (TINTEGER041(INTEGER043) == 0) Then
  1023.             TSTRING031(0) = "@X09■@X0A····················"
  1024.             Goto LABEL045
  1025.         ElseIf (TINTEGER041(INTEGER043) <= 5) Then
  1026.             TSTRING031(0) = "@X09■@X0A■···················"
  1027.             Goto LABEL045
  1028.         ElseIf (TINTEGER041(INTEGER043) <= 10) Then
  1029.             TSTRING031(0) = "@X09■@X0A■■··················"
  1030.             Goto LABEL045
  1031.         ElseIf (TINTEGER041(INTEGER043) <= 15) Then
  1032.             TSTRING031(0) = "@X09■@X0A■■■·················"
  1033.             Goto LABEL045
  1034.         ElseIf (TINTEGER041(INTEGER043) <= 20) Then
  1035.             TSTRING031(0) = "@X09■@X0A■■■■················"
  1036.             Goto LABEL045
  1037.         ElseIf (TINTEGER041(INTEGER043) <= 25) Then
  1038.             TSTRING031(0) = "@X09■@X0A■■■■■···············"
  1039.             Goto LABEL045
  1040.         ElseIf (TINTEGER041(INTEGER043) <= 30) Then
  1041.             TSTRING031(0) = "@X09■@X0A■■■■■■··············"
  1042.             Goto LABEL045
  1043.         ElseIf (TINTEGER041(INTEGER043) <= 35) Then
  1044.             TSTRING031(0) = "@X09■@X0A■■■■■■■·············"
  1045.             Goto LABEL045
  1046.         ElseIf (TINTEGER041(INTEGER043) <= 40) Then
  1047.             TSTRING031(0) = "@X09■@X0A■■■■■■■■············"
  1048.             Goto LABEL045
  1049.         ElseIf (TINTEGER041(INTEGER043) <= 45) Then
  1050.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■···········"
  1051.             Goto LABEL045
  1052.         ElseIf (TINTEGER041(INTEGER043) <= 50) Then
  1053.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■··········"
  1054.             Goto LABEL045
  1055.         ElseIf (TINTEGER041(INTEGER043) <= 55) Then
  1056.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■·········"
  1057.             Goto LABEL045
  1058.         ElseIf (TINTEGER041(INTEGER043) <= 60) Then
  1059.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■········"
  1060.             Goto LABEL045
  1061.         ElseIf (TINTEGER041(INTEGER043) <= 65) Then
  1062.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■·······"
  1063.             Goto LABEL045
  1064.         ElseIf (TINTEGER041(INTEGER043) <= 70) Then
  1065.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■■······"
  1066.             Goto LABEL045
  1067.         ElseIf (TINTEGER041(INTEGER043) <= 75) Then
  1068.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■■■·····"
  1069.             Goto LABEL045
  1070.         ElseIf (TINTEGER041(INTEGER043) <= 80) Then
  1071.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■■■■····"
  1072.             Goto LABEL045
  1073.         ElseIf (TINTEGER041(INTEGER043) <= 85) Then
  1074.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■■■■■···"
  1075.             Goto LABEL045
  1076.         ElseIf (TINTEGER041(INTEGER043) <= 90) Then
  1077.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■■■■■■··"
  1078.             Goto LABEL045
  1079.         ElseIf (TINTEGER041(INTEGER043) <= 95) Then
  1080.             TSTRING031(0) = "@X09■@X0A■■■■■■■■■■■■■■■■■■■·"
  1081.             Goto LABEL045
  1082.         ElseIf (TINTEGER041(INTEGER043) <= 100) Then
  1083.             TSTRING031(0) = "@X09■■■■■■■■■■■■■■■■■■■■@X0E■"
  1084.             Goto LABEL045
  1085.         Endif
  1086.         If (TINTEGER041(INTEGER043) >= 101) Then
  1087.             Goto LABEL044
  1088.         Endif
  1089.         :LABEL045
  1090.         INTEGER047 = INTEGER047 + 1
  1091.         INTEGER048 = Len(TSTRING036(INTEGER047))
  1092.         INTEGER049 = 50 - INTEGER048
  1093.         PrintLn "@X0B", TSTRING036(INTEGER047), Space(INTEGER049), " ", TSTRING031(0), " ", TINTEGER041(INTEGER043), "%"
  1094.     Next
  1095.     PrintLn "                                        @X04             ├┴┴┴┴┼┴┴┴┴┼┴┴┴┴┼┴┴┴┴┤"
  1096.     PrintLn "                                                     @X0C0    25   50   75  100"
  1097.     Gosub LABEL046
  1098.     Goto LABEL008
  1099.     :LABEL046
  1100.     STRING039 = "Voter++ - " + TSTRING044(13)
  1101.     BOOLEAN001 = 0
  1102.     INTEGER050 = Len(STRING039)
  1103.     STRING039 = Trim(STRING039, " ")
  1104.     STRING040 = Inkey()
  1105.     STRING041 = 0
  1106.     STRING037 = GetX()
  1107.     STRING038 = GetY()
  1108.     Print STRING039
  1109.     AnsiPos STRING037, STRING038
  1110.     :LABEL047
  1111.     If (STRING041) Goto LABEL048
  1112.     If (STRING040 <> "") Then
  1113.         STRING041 = 1
  1114.     Endif
  1115.     STRING042 = "@X0" + Random(9)
  1116.     If (INTEGER050 > Len(STRING039)) Then
  1117.         AnsiPos STRING037, STRING038
  1118.         Color STRING042
  1119.         Print STRING039
  1120.         INTEGER050 = 1
  1121.     Else
  1122.         AnsiPos STRING037, STRING038
  1123.         Color STRING042
  1124.         Print STRING039
  1125.         INTEGER050 = Len(STRING039) + 1
  1126.     Endif
  1127.     Inc INTEGER050
  1128.     STRING040 = Inkey()
  1129.     If (STRING040 <> "") Then
  1130.         STRING041 = 1
  1131.     Endif
  1132.     Delay 3
  1133.     Goto LABEL047
  1134.     :LABEL048
  1135.     AnsiPos STRING037, STRING038
  1136.     Print "@CLREOL@"
  1137.     Return
  1138.     :LABEL049
  1139.     STRING043 = PPEPath() + "vote" + I2S(STRING010, 10) + ".ans"
  1140.     If (FileInf(STRING043, 4) == 0) Then
  1141.         PrintLn 
  1142.         PrintLn "@X10┌─────────────────────────────────────────────────────────────────────────────@X19┐@X0F"
  1143.         PrintLn "@X10│  @X1EThere have been no votes on this question yet, *@X1CYOU@X1E* can be the first one! @X19│@X0F"
  1144.         PrintLn "@X10└@X19─────────────────────────────────────────────────────────────────────────────┘@X0F"
  1145.         Print "                 "
  1146.         Gosub LABEL046
  1147.         Goto LABEL008
  1148.     Endif
  1149.     Return
  1150.     PrintLn "Protected from hacking by STES! - CRC #F1FAF "
  1151.  
  1152. ;------------------------------------------------------------------------------
  1153. ;
  1154. ; Usage report (before postprocessing)
  1155. ;
  1156. ; ■ Statements used :
  1157. ;
  1158. ;    2       End
  1159. ;    17      Cls
  1160. ;    16      Color 
  1161. ;    290     Goto 
  1162. ;    254     Let 
  1163. ;    15      Print 
  1164. ;    197     PrintLn 
  1165. ;    194     If 
  1166. ;    2       DispFile 
  1167. ;    17      FOpen 
  1168. ;    1       FAppend 
  1169. ;    31      FClose 
  1170. ;    1       FPutLn 
  1171. ;    1       StartDisp 
  1172. ;    1       GetUser
  1173. ;    8       Delete 
  1174. ;    4       Log 
  1175. ;    20      InputStr 
  1176. ;    22      Gosub 
  1177. ;    11      Return
  1178. ;    11      Delay 
  1179. ;    12      Inc 
  1180. ;    2       Dec 
  1181. ;    4       Newline
  1182. ;    3       Newlines 
  1183. ;    1       Call 
  1184. ;    2       OpText 
  1185. ;    45      AnsiPos 
  1186. ;    11      FDefIn 
  1187. ;    6       FDefOut 
  1188. ;    11      FDGet 
  1189. ;    7       FDPutLn 
  1190. ;    8       Redim 
  1191. ;
  1192. ;
  1193. ; ■ Functions used :
  1194. ;
  1195. ;    19      -
  1196. ;    11      *
  1197. ;    11      /
  1198. ;    231     +
  1199. ;    26      -
  1200. ;    83      ==
  1201. ;    2       <>
  1202. ;    39      <
  1203. ;    69      <=
  1204. ;    14      >
  1205. ;    81      >=
  1206. ;    106     !
  1207. ;    70      &&
  1208. ;    33      ||
  1209. ;    43      Len(
  1210. ;    43      Upper()
  1211. ;    1       Mid()
  1212. ;    7       Left()
  1213. ;    23      Space()
  1214. ;    5       Ferr()
  1215. ;    1       Asc()
  1216. ;    4       RTrim()
  1217. ;    1       Trim()
  1218. ;    1       Random()
  1219. ;    1       Date()
  1220. ;    2       Time()
  1221. ;    7       U_Name()
  1222. ;    1       Strip()
  1223. ;    4       Inkey()
  1224. ;    1       String()
  1225. ;    4       Mask_Ascii()
  1226. ;    48      PPEPath()
  1227. ;    17      ReadLine()
  1228. ;    7       SysopSec()
  1229. ;    7       CurSec()
  1230. ;    2       Exist()
  1231. ;    1       I2S()
  1232. ;    39      S2I()
  1233. ;    1       AnsiOn()
  1234. ;    1       GetX()
  1235. ;    1       GetY()
  1236. ;    14      DefColor()
  1237. ;    2       FileInf()
  1238. ;    15      PPEName()
  1239. ;
  1240. ;------------------------------------------------------------------------------
  1241. ;
  1242. ; Analysis flags : Cs
  1243. ;
  1244. ; C - Call child PPE ■ 3
  1245. ;     This is usually normal, but may be a tricky way to launch some
  1246. ;     sysop-only commands.
  1247. ;     ■ Search for : CALL
  1248. ;
  1249. ; s - Sysop level access ■ 5
  1250. ;     Program is reading the sysop access level, this may be normal
  1251. ;     but still it is very suspect. It is the best way to give a user
  1252. ;     all priviledges. Check!
  1253. ;     ■ Search for : SYSOPSEC()
  1254. ;
  1255. ;------------------------------------------------------------------------------
  1256. ;
  1257. ; Postprocessing report
  1258. ;
  1259. ;    33      For/Next
  1260. ;    3       While/EndWhile
  1261. ;    54      If/Then or If/Then/Else
  1262. ;    4       Select Case
  1263. ;
  1264. ;------------------------------------------------------------------------------
  1265. ;                 AEGiS Corp - Break the routines, code against the machines!
  1266. ;------------------------------------------------------------------------------
  1267.