home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / DND29C4.ZIP / SOURCE.ZIP / DNDEDIT1.BAS < prev    next >
BASIC Source File  |  1993-01-07  |  92KB  |  3,963 lines

  1.  Rem dndedit1.bas v2.9c
  2.  Rem $Include: 'dndbbs.inc'
  3.  
  4. Sub ShowObject
  5.  On Local Error Goto 10002
  6.  Select Case TempX
  7.  Case 0
  8.     Strng=Chr$(27)+"[1;37;44m"
  9.     Call Scrn(Strng)
  10.     Strng=Chr$(27)+"[2;8H"
  11.     Call Scrn(Strng)
  12.     Strng=Space$(5)
  13.     Call Scrn(Strng)
  14.     Strng=Chr$(27)+"[1;33;44m"
  15.     Call Scrn(Strng)
  16.     Strng=Chr$(27)+"[2;2H"
  17.     Call Scrn(Strng)
  18.     Strng="Object"+Str$(Object.Number)
  19.     Call Scrn(Strng)
  20.  Case Else
  21.     Strng=Chr$(27)+"[1;37;40m"
  22.     Call Scrn(Strng)
  23.     Select Case TempX
  24.     Case 1
  25.        Strng=Chr$(27)+"[4;2H"
  26.        Call Scrn(Strng)
  27.        Strng=ObjectRecord.ObjectName
  28.        Call Scrn(Strng)
  29.     Case 2
  30.        Strng=Chr$(27)+"[7;2H"
  31.        Call Scrn(Strng)
  32.        Strng=Lcase$(ObjectRecord.ShortName)
  33.        Call Scrn(Strng)
  34.     Case 3
  35.        Strng=Chr$(27)+"[9;12H"
  36.        Call Scrn(Strng)
  37.        Strng=Space$(5)
  38.        Call Scrn(Strng)
  39.        Strng=Chr$(27)+"[9;12H"
  40.        Call Scrn(Strng)
  41.        Strng=Mid$(Str$(ObjectRecord.RoomLink),2)
  42.        Call Scrn(Strng)
  43.     Case 4
  44.        Strng=Chr$(27)+"[11;10H"
  45.        Call Scrn(Strng)
  46.        If ObjectRecord.LightRoom Then
  47.           Call Scrn("Y")
  48.        Else
  49.           Call Scrn("N")
  50.        Endif
  51.     Case 5
  52.        Strng=Chr$(27)+"[11;25H"
  53.        Call Scrn(Strng)
  54.        Strng=Space$(5)
  55.        Call Scrn(Strng)
  56.        Strng=Chr$(27)+"[11;25H"
  57.        Call Scrn(Strng)
  58.        Strng=Mid$(Str$(ObjectRecord.LightTime),2)
  59.        Call Scrn(Strng)
  60.     Case 6
  61.        Strng=Chr$(27)+"[13;13H"
  62.        Call Scrn(Strng)
  63.        Strng=Space$(5)
  64.        Call Scrn(Strng)
  65.        Strng=Chr$(27)+"[13;13H"
  66.        Call Scrn(Strng)
  67.        Strng=Mid$(Str$(ObjectRecord.Keyed),2)
  68.        Call Scrn(Strng)
  69.     Case 7
  70.        Strng=Chr$(27)+"[16;2H"
  71.        Call Scrn(Strng)
  72.        Strng=Left$(ObjectRecord.LongDesc,78)
  73.        Call Scrn(Strng)
  74.     Case 8
  75.        Strng=Chr$(27)+"[19;2H"
  76.        Call Scrn(Strng)
  77.        Strng=Left$(ObjectRecord.ShortDesc,40)
  78.        Call Scrn(Strng)
  79.     Case 9
  80.        Strng=Chr$(27)+"[3;57H"
  81.        Call Scrn(Strng)
  82.        If ObjectRecord.Hidden Then
  83.           Call Scrn("Y")
  84.        Else
  85.           Call Scrn("N")
  86.        Endif
  87.     Case 10
  88.        Strng=Chr$(27)+"[5;60H"
  89.        Call Scrn(Strng)
  90.        If ObjectRecord.Invisible Then
  91.           Call Scrn("Y")
  92.        Else
  93.           Call Scrn("N")
  94.        Endif
  95.     Case 11
  96.        Strng=Chr$(27)+"[7;60H"
  97.        Call Scrn(Strng)
  98.        If ObjectRecord.JailTrap Then
  99.           Call Scrn("Y")
  100.        Else
  101.           Call Scrn("N")
  102.        Endif
  103.     Case 12
  104.        Strng=Chr$(27)+"[9;57H"
  105.        Call Scrn(Strng)
  106.        If ObjectRecord.DoorLock>1 Then
  107.           Call Scrn("Y")
  108.        Else
  109.           Call Scrn("N")
  110.        Endif
  111.     Case 13
  112.        Strng=Chr$(27)+"[11;58H"
  113.        Call Scrn(Strng)
  114.        If ObjectRecord.Relocks Then
  115.           Call Scrn("Y")
  116.        Else
  117.           Call Scrn("N")
  118.        Endif
  119.     Case 14
  120.        Strng=Chr$(27)+"[13;60H"
  121.        Call Scrn(Strng)
  122.        If ObjectRecord.Permanent Then
  123.           Call Scrn("Y")
  124.        Else
  125.           Call Scrn("N")
  126.        Endif
  127.     Case 15
  128.        Strng=Chr$(27)+"[15;65H"
  129.        Call Scrn(Strng)
  130.        Strng="?"
  131.        If ObjectRecord.Trap=1 Then
  132.           Strng="P"
  133.        Endif
  134.        If ObjectRecord.Trap=2 Then
  135.           Strng="F"
  136.        Endif
  137.        If ObjectRecord.Trap=3 Then
  138.           Strng="D"
  139.        Endif
  140.        Call Scrn(Strng)
  141.     End Select
  142.  End Select
  143. 10001
  144.  Exit Sub
  145. 10002
  146.  Resume 10001
  147. End Sub
  148.  
  149. Sub DisplayObject
  150.  On Local Error Goto 10012
  151.  Strng=Chr$(27)+"[1;33;44m"
  152.  Call Scrn(Strng)
  153.  Strng=Chr$(27)+"[17;50H"
  154.  Call Scrn(Strng)
  155.  If ObjectRecord.Trap<=1 Then
  156.     Strng="<none>"
  157.     Call Scrn(Strng)
  158.     Strng=Space$(4)
  159.     Call Scrn(Strng)
  160.  Else
  161.     If ObjectRecord.Trap=2 Then
  162.        Strng="Teleport"
  163.        Call Scrn(Strng)
  164.     Else
  165.        If ObjectRecord.Trap=3 Then
  166.           Strng="Hits For"
  167.           Call Scrn(Strng)
  168.        Endif
  169.     Endif
  170.  Endif
  171.  Strng=Chr$(27)+"[1;37;40m"
  172.  Call Scrn(Strng)
  173.  Strng=Chr$(27)+"[17;59H"
  174.  Call Scrn(Strng)
  175.  If ObjectRecord.Trap=2 Then
  176.     If ObjectRecord.Teleport>False Then
  177.        Call Scrn("Y")
  178.     Else
  179.        Call Scrn("N")
  180.     Endif
  181.  Else
  182.     If ObjectRecord.Trap=3 Then
  183.        If ObjectRecord.Teleport>False Then
  184.           Call Scrn("F")
  185.        Else
  186.           If ObjectRecord.Teleport<False Then
  187.              Call Scrn("V")
  188.           Else
  189.              Call Scrn("?")
  190.           Endif
  191.        Endif
  192.     Endif
  193.  Endif
  194.  Strng=Chr$(27)+"[1;33;44m"
  195.  Call Scrn(Strng)
  196.  Strng=Chr$(27)+"[18;50H"
  197.  Call Scrn(Strng)
  198.  If ObjectRecord.Trap<=1 Then
  199.     Strng=Space$(16)
  200.     Call Scrn(Strng)
  201.  Else
  202.     If ObjectRecord.Trap=2 Then
  203.        Title.Data(17)="Room Teleport To"
  204.        Strng="Room Teleport To"
  205.        Call Scrn(Strng)
  206.     Else
  207.        If ObjectRecord.Trap=3 Then
  208.           Title.Data(17)="Fatigue/Vitality"
  209.           Strng="Fatigue/Vitality"
  210.           Call Scrn(Strng)
  211.        Endif
  212.     Endif
  213.  Endif
  214.  If ObjectRecord.Trap>1 Then
  215.     Strng=Chr$(27)+"[1;37;40m"
  216.     Call Scrn(Strng)
  217.  Else
  218.     Strng=Chr$(27)+"[0;33;44m"
  219.     Call Scrn(Strng)
  220.  Endif
  221.  Strng=Chr$(27)+"[19;50H"
  222.  Call Scrn(Strng)
  223.  Strng=Space$(5)
  224.  Call Scrn(Strng)
  225.  If ObjectRecord.Trap>1 Then
  226.     Strng=Chr$(27)+"[19;50H"
  227.     Call Scrn(Strng)
  228.     Strng=Mid$(Str$(Abs(ObjectRecord.Teleport)),2)
  229.     Call Scrn(Strng)
  230.  Endif
  231. 10011
  232.  Exit Sub
  233. 10012
  234.  Resume 10011
  235. End Sub
  236.  
  237. Sub AddObject
  238.  On Local Error Goto 10022
  239.  Object.Number=Lof(6)/Len(ObjectRecord)+1
  240.  ObjectRecord.ObjectName=Nul
  241.  ObjectRecord.ShortName=Nul
  242.  ObjectRecord.RoomLink=False
  243.  ObjectRecord.Invisible=False
  244.  ObjectRecord.JailTrap=False
  245.  ObjectRecord.DoorLock=False
  246.  ObjectRecord.Permanent=False
  247.  ObjectRecord.Hidden=False
  248.  ObjectRecord.Closed=False
  249.  ObjectRecord.Keyed=False
  250.  ObjectRecord.Relocks=False
  251.  ObjectRecord.LightRoom=False
  252.  ObjectRecord.LightTime=False
  253.  ObjectRecord.LongDesc=Nul
  254.  ObjectRecord.ShortDesc=Nul
  255.  ObjectRecord.Trap=False
  256.  ObjectRecord.Teleport=False
  257.  Put 6,Object.Number,ObjectRecord
  258.  Call DisplayObjectScreen
  259. 10021
  260.  Exit Sub
  261. 10022
  262.  Resume 10021
  263. End Sub
  264.  
  265. Sub ShowTreasure
  266.  On Local Error Goto 10032
  267.  Select Case TempX
  268.  Case 0
  269.     Strng=Chr$(27)+"[1;37;44m"
  270.     Call Scrn(Strng)
  271.     Strng=Chr$(27)+"[2;11H"
  272.     Call Scrn(Strng)
  273.     Strng=Space$(5)
  274.     Call Scrn(Strng)
  275.     Strng=Chr$(27)+"[1;33;44m"
  276.     Call Scrn(Strng)
  277.     Strng=Chr$(27)+"[2;2H"
  278.     Call Scrn(Strng)
  279.     Strng="Treasure"+Str$(Treasure.Number)
  280.     Call Scrn(Strng)
  281.     Exit Sub
  282.  Case Else
  283.     Strng=Chr$(27)+"[1;37;40m"
  284.     Call Scrn(Strng)
  285.     Select Case TempX
  286.     Case 1
  287.        Strng=Chr$(27)+"[4;2H"
  288.        Call Scrn(Strng)
  289.        Strng=TreasureRecord.TreasureName
  290.        Call Scrn(Strng)
  291.     Case 2
  292.        Strng=Chr$(27)+"[6;2H"
  293.        Call Scrn(Strng)
  294.        Strng=Lcase$(TreasureRecord.ShortName)
  295.        Call Scrn(Strng)
  296.     Case 3
  297.        Strng=Chr$(27)+"[8;9H"
  298.        Call Scrn(Strng)
  299.        Strng=Space$(5)
  300.        Call Scrn(Strng)
  301.        Strng=Chr$(27)+"[8;9H"
  302.        Call Scrn(Strng)
  303.        Strng=Mid$(Str$(TreasureRecord.Weight),2)
  304.        Call Scrn(Strng)
  305.     Case 4
  306.        Strng=Chr$(27)+"[10;8H"
  307.        Call Scrn(Strng)
  308.        Strng=Space$(5)
  309.        Call Scrn(Strng)
  310.        Strng=Chr$(27)+"[10;8H"
  311.        Call Scrn(Strng)
  312.        Strng=Mid$(Str$(TreasureRecord.Gold),2)
  313.        Call Scrn(Strng)
  314.     Case 5
  315.        Strng=Chr$(27)+"[12;7H"
  316.        Call Scrn(Strng)
  317.        Strng=Space$(5)
  318.        Call Scrn(Strng)
  319.        Strng=Chr$(27)+"[12;7H"
  320.        Call Scrn(Strng)
  321.        Strng=Mid$(Str$(Abs(TreasureRecord.Plus)),2)
  322.        Call Scrn(Strng)
  323.     Case 6
  324.        Strng=Chr$(27)+"[14;10H"
  325.        Call Scrn(Strng)
  326.        Strng=Space$(5)
  327.        Call Scrn(Strng)
  328.        Strng=Chr$(27)+"[14;10H"
  329.        Call Scrn(Strng)
  330.        Strng=Mid$(Str$(TreasureRecord.Charges),2)
  331.        Call Scrn(Strng)
  332.     Case 7
  333.        Strng=Chr$(27)+"[16;17H"
  334.        Call Scrn(Strng)
  335.        Strng="?"
  336.        If TreasureRecord.Proficiency=1 Then
  337.           Strng="B"
  338.        Endif
  339.        If TreasureRecord.Proficiency=2 Then
  340.           Strng="P"
  341.        Endif
  342.        If TreasureRecord.Proficiency=3 Then
  343.           Strng="S"
  344.        Endif
  345.        If TreasureRecord.Proficiency=4 Then
  346.           Strng="T"
  347.        Endif
  348.        Call Scrn(Strng)
  349.        Strng=Chr$(27)+"[1;37;44m"
  350.        Call Scrn(Strng)
  351.        Strng=Chr$(27)+"[16;7H"
  352.        Call Scrn(Strng)
  353.        Strng="(B/P/S/T)"
  354.        Call Scrn(Strng)
  355.     Case 8
  356.        Strng=Chr$(27)+"[18;16H"
  357.        Call Scrn(Strng)
  358.        If TreasureRecord.Type=False Then
  359.           If TreasureRecord.Plus=False Then
  360.              Strng="T"
  361.           Else
  362.              Strng="W"
  363.           Endif
  364.        Endif
  365.        If TreasureRecord.Type<False Then
  366.           Strng="S"
  367.        Endif
  368.        If TreasureRecord.Type>False Then
  369.           Strng="A"
  370.        Endif
  371.        Call Scrn(Strng)
  372.        Strng=Chr$(27)+"[1;37;44m"
  373.        Call Scrn(Strng)
  374.        Strng=Chr$(27)+"[18;6H"
  375.        Call Scrn(Strng)
  376.        Strng="(S/A/W/T)"
  377.        Call Scrn(Strng)
  378.     Case 9
  379.        Strng=Chr$(27)+"[3;26H"
  380.        Call Scrn(Strng)
  381.        If TreasureRecord.Coin Then
  382.           Call Scrn("Y")
  383.        Else
  384.           Call Scrn("N")
  385.        Endif
  386.     Case 10
  387.        Strng=Chr$(27)+"[5;27H"
  388.        Call Scrn(Strng)
  389.        If TreasureRecord.Potion Then
  390.           Call Scrn("Y")
  391.        Else
  392.           Call Scrn("N")
  393.        Endif
  394.     Case 11
  395.        Strng=Chr$(27)+"[7;27H"
  396.        Call Scrn(Strng)
  397.        If TreasureRecord.Scroll Then
  398.           Call Scrn("Y")
  399.        Else
  400.           Call Scrn("N")
  401.        Endif
  402.     Case 12
  403.        Strng=Chr$(27)+"[9;30H"
  404.        Call Scrn(Strng)
  405.        If TreasureRecord.Invisible Then
  406.           Call Scrn("Y")
  407.        Else
  408.           Call Scrn("N")
  409.        Endif
  410.     Case 13
  411.        Strng=Chr$(27)+"[11;29H"
  412.        Call Scrn(Strng)
  413.        If TreasureRecord.Loadable Then
  414.           Call Scrn("Y")
  415.        Else
  416.           Call Scrn("N")
  417.        Endif
  418.     Case 14
  419.        Strng=Chr$(27)+"[13;31H"
  420.        Call Scrn(Strng)
  421.        Strng=Space$(5)
  422.        Call Scrn(Strng)
  423.        Strng=Chr$(27)+"[13;31H"
  424.        Call Scrn(Strng)
  425.        Strng=Mid$(Str$(TreasureRecord.AmmoLoads),2)
  426.        Call Scrn(Strng)
  427.     Case 15
  428.        Strng=Chr$(27)+"[15;31H"
  429.        Call Scrn(Strng)
  430.        If TreasureRecord.Ammunition Then
  431.           Call Scrn("Y")
  432.        Else
  433.           Call Scrn("N")
  434.        Endif
  435.     Case 16
  436.        Strng=Chr$(27)+"[17;31H"
  437.        Call Scrn(Strng)
  438.        Strng=Space$(5)
  439.        Call Scrn(Strng)
  440.        Strng=Chr$(27)+"[17;31H"
  441.        Call Scrn(Strng)
  442.        Strng=Mid$(Str$(TreasureRecord.Keyed),2)
  443.        Call Scrn(Strng)
  444.     Case 17
  445.        Strng=Chr$(27)+"[19;28H"
  446.        Call Scrn(Strng)
  447.        If TreasureRecord.Spell Then
  448.           Call Scrn("Y")
  449.        Else
  450.           Call Scrn("N")
  451.        Endif
  452.     Case 18
  453.        If TreasureRecord.Spell<1 Or_
  454.        TreasureRecord.Spell>Lof(4)/Len(SpellRecord) Then
  455.           Strng=Chr$(27)+"[4;40H"
  456.           Call Scrn(Strng)
  457.           Strng="<none>"
  458.           Call Scrn(Strng)
  459.           Strng=Space$(14)
  460.           Call Scrn(Strng)
  461.        Else
  462.           Get 4,TreasureRecord.Spell,SpellRecord
  463.           Strng=Chr$(27)+"[4;40H"
  464.           Call Scrn(Strng)
  465.           Strng=Left$(SpellRecord.SpellName,20)
  466.           Call Scrn(Strng)
  467.        Endif
  468.     Case 19
  469.        Strng=Chr$(27)+"[5;45H"
  470.        Call Scrn(Strng)
  471.        If TreasureRecord.RingType Then
  472.           Call Scrn("Y")
  473.        Else
  474.           Call Scrn("N")
  475.        Endif
  476.     Case 20
  477.        Strng=Chr$(27)+"[8;40H"
  478.        Call Scrn(Strng)
  479.        Strng="?"
  480.        If TreasureRecord.RingType=1 Then
  481.           Strng="P"
  482.        Endif
  483.        If TreasureRecord.RingType=2 Then
  484.           Strng="L"
  485.        Endif
  486.        If TreasureRecord.RingType=3 Then
  487.           Strng="S"
  488.        Endif
  489.        Call Scrn(Strng)
  490.        Strng=Chr$(27)+"[1;37;44m"
  491.        Call Scrn(Strng)
  492.        Strng=Chr$(27)+"[7;50H"
  493.        Call Scrn(Strng)
  494.        Strng="(P/L/S)"
  495.        Call Scrn(Strng)
  496.     Case 21
  497.        Strng=Chr$(27)+"[10;40H"
  498.        Call Scrn(Strng)
  499.        If TreasureRecord.RingSpell=False Then
  500.           Strng="<none>"
  501.           Call Scrn(Strng)
  502.           Strng=Space$(14)
  503.           Call Scrn(Strng)
  504.        Endif
  505.        If TreasureRecord.RingSpell<False Then
  506.           Strng="<generic spell>"
  507.           Call Scrn(Strng)
  508.           Strng=Space$(5)
  509.           Call Scrn(Strng)
  510.        Endif
  511.        If TreasureRecord.RingSpell>False Then
  512.           Get 4,TreasureRecord.RingSpell,SpellRecord
  513.           Strng=Left$(SpellRecord.SpellName,20)
  514.           Call Scrn(Strng)
  515.        Endif
  516.     Case 22
  517.        Strng=Chr$(27)+"[11;51H"
  518.        Call Scrn(Strng)
  519.        If TreasureRecord.Recep Then
  520.           Call Scrn("Y")
  521.        Else
  522.           Call Scrn("N")
  523.        Endif
  524.     Case 23
  525.        Strng=Chr$(27)+"[13;55H"
  526.        Call Scrn(Strng)
  527.        Strng=Space$(5)
  528.        Call Scrn(Strng)
  529.        If TreasureRecord.Recep Then
  530.           Strng=Chr$(27)+"[13;55H"
  531.           Call Scrn(Strng)
  532.           Strng=Mid$(Str$(TreasureRecord.RecepMax),2)
  533.           Call Scrn(Strng)
  534.        Endif
  535.     Case 24
  536.        Strng=Chr$(27)+"[15;49H"
  537.        Call Scrn(Strng)
  538.        If TreasureRecord.RecepFileName<>Nul Then
  539.           Strng=TreasureRecord.RecepFileName
  540.           Call Scrn(Strng)
  541.        Else
  542.           Strng=Space$(8)
  543.           Call Scrn(Strng)
  544.        Endif
  545.     Case 25
  546.        Strng=Chr$(27)+"[17;47H"
  547.        Call Scrn(Strng)
  548.        If TreasureRecord.Locked Then
  549.           Call Scrn("Y")
  550.        Else
  551.           Call Scrn("N")
  552.        Endif
  553.     Case 26
  554.        Strng=Chr$(27)+"[19;47H"
  555.        Call Scrn(Strng)
  556.        If TreasureRecord.Edible Then
  557.           Call Scrn("Y")
  558.        Else
  559.           Call Scrn("N")
  560.        Endif
  561.     Case 27
  562.        Strng=Chr$(27)+"[3;71H"
  563.        Call Scrn(Strng)
  564.        If TreasureRecord.Rustable Then
  565.           Call Scrn("Y")
  566.        Else
  567.           Call Scrn("N")
  568.        Endif
  569.     Case 28
  570.        Strng=Chr$(27)+"[5;75H"
  571.        Call Scrn(Strng)
  572.        Strng=Space$(3)
  573.        Call Scrn(Strng)
  574.        Strng=Chr$(27)+"[5;75H"
  575.        Call Scrn(Strng)
  576.        Strng=Mid$(Str$(TreasureRecord.RustPercent),2)
  577.        Call Scrn(Strng)
  578.     Case 29
  579.        Strng=Chr$(27)+"[7;72H"
  580.        Call Scrn(Strng)
  581.        If TreasureRecord.Stealable Then
  582.           Call Scrn("Y")
  583.        Else
  584.           Call Scrn("N")
  585.        Endif
  586.     Case 30
  587.        Strng=Chr$(27)+"[9;76H"
  588.        Call Scrn(Strng)
  589.        Strng=Space$(3)
  590.        Call Scrn(Strng)
  591.        Strng=Chr$(27)+"[9;76H"
  592.        Call Scrn(Strng)
  593.        Strng=Mid$(Str$(TreasureRecord.StealPercent),2)
  594.        Call Scrn(Strng)
  595.     Case 31
  596.        Strng=Chr$(27)+"[11;73H"
  597.        Call Scrn(Strng)
  598.        If TreasureRecord.Launchable Then
  599.           Call Scrn("Y")
  600.        Else
  601.           Call Scrn("N")
  602.        Endif
  603.     Case 32
  604.        Strng=Chr$(27)+"[13;75H"
  605.        Call Scrn(Strng)
  606.        Strng=Space$(5)
  607.        Call Scrn(Strng)
  608.        Strng=Chr$(27)+"[13;75H"
  609.        Call Scrn(Strng)
  610.        Strng=Mid$(Str$(TreasureRecord.LaunchLoads),2)
  611.        Call Scrn(Strng)
  612.     Case 33
  613.        Strng=Chr$(27)+"[15;74H"
  614.        Call Scrn(Strng)
  615.        If TreasureRecord.LaunchAmmo Then
  616.           Call Scrn("Y")
  617.        Else
  618.           Call Scrn("N")
  619.        Endif
  620.     Case 34
  621.        Strng=Chr$(27)+"[17;70H"
  622.        Call Scrn(Strng)
  623.        If TreasureRecord.Movable Then
  624.           Call Scrn("Y")
  625.        Else
  626.           Call Scrn("N")
  627.        Endif
  628.     End Select
  629.  End Select
  630. 10031
  631.  Exit Sub
  632. 10032
  633.  Resume 10031
  634. End Sub
  635.  
  636. Sub AddTreasure
  637.  On Local Error Goto 10042
  638.  Treasure.Number=Lof(8)/Len(TreasureRecord)+1
  639.  TreasureRecord.TreasureName=Nul
  640.  TreasureRecord.ShortName=Nul
  641.  TreasureRecord.Weight=False
  642.  TreasureRecord.Gold=False
  643.  TreasureRecord.Spell=False
  644.  TreasureRecord.Plus=False
  645.  TreasureRecord.Coin=False
  646.  TreasureRecord.Keyed=False
  647.  TreasureRecord.Scroll=False
  648.  TreasureRecord.Charges=False
  649.  TreasureRecord.Charges=False
  650.  TreasureRecord.Recep=False
  651.  TreasureRecord.RecepFileName=Nul
  652.  TreasureRecord.RecepMax=False
  653.  TreasureRecord.Type=False
  654.  TreasureRecord.Potion=False
  655.  TreasureRecord.Locked=False
  656.  TreasureRecord.Closed=False
  657.  TreasureRecord.Loadable=False
  658.  TreasureRecord.Ammunition=False
  659.  TreasureRecord.AmmoLoads=False
  660.  TreasureRecord.Invisible=False
  661.  TreasureRecord.Proficiency=False
  662.  TreasureRecord.RingType=False
  663.  TreasureRecord.RingSpell=False
  664.  TreasureRecord.Edible=False
  665.  TreasureRecord.Rustable=False
  666.  TreasureRecord.RustPercent=False
  667.  TreasureRecord.Stealable=False
  668.  TreasureRecord.StealPercent=False
  669.  TreasureRecord.Launchable=False
  670.  TreasureRecord.LaunchLoads=False
  671.  TreasureRecord.LaunchAmmo=False
  672.  TreasureRecord.Movable=False
  673.  Put 8,Treasure.Number,TreasureRecord
  674.  Call DisplayTreasure
  675. 10041
  676.  Exit Sub
  677. 10042
  678.  Resume 10041
  679. End Sub
  680.  
  681. Sub ShowMonster
  682.  On Local Error Goto 10052
  683.  Select Case TempX
  684.  Case 0
  685.     Strng=Chr$(27)+"[1;37;44m"
  686.     Call Scrn(Strng)
  687.     Strng=Chr$(27)+"[2;10H"
  688.     Call Scrn(Strng)
  689.     Strng=Space$(5)
  690.     Call Scrn(Strng)
  691.     Strng=Chr$(27)+"[1;33;44m"
  692.     Call Scrn(Strng)
  693.     Strng=Chr$(27)+"[2;2H"
  694.     Call Scrn(Strng)
  695.     Strng="Monster"+Str$(Monster.Number)
  696.     Call Scrn(Strng)
  697.  Case Else
  698.     Strng=Chr$(27)+"[1;37;40m"
  699.     Call Scrn(Strng)
  700.     Select Case TempX
  701.     Case 1
  702.        Strng=Chr$(27)+"[4;2H"
  703.        Call Scrn(Strng)
  704.        Strng=MonsterRecord.MonsterName
  705.        Call Scrn(Strng)
  706.     Case 2
  707.        Strng=Chr$(27)+"[7;2H"
  708.        Call Scrn(Strng)
  709.        Strng=MonsterRecord.PluralName
  710.        Call Scrn(Strng)
  711.     Case 3
  712.        Strng=Chr$(27)+"[9;8H"
  713.        Call Scrn(Strng)
  714.        Strng=Space$(5)
  715.        Call Scrn(Strng)
  716.        Strng=Chr$(27)+"[9;8H"
  717.        Call Scrn(Strng)
  718.        Strng=Mid$(Str$(MonsterRecord.Level),2)
  719.        Call Scrn(Strng)
  720.     Case 4
  721.        Strng=Chr$(27)+"[11;7H"
  722.        Call Scrn(Strng)
  723.        Strng=Space$(5)
  724.        Call Scrn(Strng)
  725.        Strng=Chr$(27)+"[11;7H"
  726.        Call Scrn(Strng)
  727.        Strng=Mid$(Str$(MonsterRecord.Hits),2)
  728.        Call Scrn(Strng)
  729.     Case 5
  730.        Strng=Chr$(27)+"[13;13H"
  731.        Call Scrn(Strng)
  732.        Strng=Space$(5)
  733.        Call Scrn(Strng)
  734.        Strng=Chr$(27)+"[13;13H"
  735.        Call Scrn(Strng)
  736.        Strng=Mid$(Str$(MonsterRecord.Experience),2)
  737.        Call Scrn(Strng)
  738.     Case 6
  739.        For Temp6=1 To 5
  740.           Temp7=MonsterRecord.Treasure(Temp6)
  741.           Strng=Chr$(27)+"["+Mid$(Str$(Temp6+14),2)+";2H"
  742.           Call Scrn(Strng)
  743.           If Temp7>False Then
  744.              Get 8,Temp7,TreasureRecord
  745.              Strng=TreasureRecord.TreasureName
  746.              Call Scrn(Strng)
  747.           Else
  748.              Strng=Space$(30)
  749.              Call Scrn(Strng)
  750.           Endif
  751.        Next
  752.     Case 7
  753.        Strng=Chr$(27)+"[21;10H"
  754.        Call Scrn(Strng)
  755.        If MonsterRecord.Psionic Then
  756.           Call Scrn("Y")
  757.        Else
  758.           Call Scrn("N")
  759.        Endif
  760.     Case 8
  761.        If MonsterRecord.Psionic=False Then
  762.           Strng=Chr$(27)+"[21;22H"
  763.           Call Scrn(Strng)
  764.           Strng="<none>"
  765.           Call Scrn(Strng)
  766.           Strng=Space$(14)
  767.           Call Scrn(Strng)
  768.        Else
  769.           Strng=Chr$(27)+"[21;22H"
  770.           Call Scrn(Strng)
  771.           Get 4,MonsterRecord.PsionicSpell,SpellRecord
  772.           Strng=Left$(SpellRecord.SpellName,20)
  773.           Call Scrn(Strng)
  774.        Endif
  775.     Case 9
  776.        Strng=Chr$(27)+"[3;58H"
  777.        Call Scrn(Strng)
  778.        Strng=Space$(5)
  779.        Call Scrn(Strng)
  780.        Strng=Chr$(27)+"[3;58H"
  781.        Call Scrn(Strng)
  782.        Strng=Mid$(Str$(MonsterRecord.NumberAppearing),2)
  783.        Call Scrn(Strng)
  784.     Case 10
  785.        Strng=Chr$(27)+"[5;52H"
  786.        Call Scrn(Strng)
  787.        If MonsterRecord.Poison Then
  788.           Call Scrn("Y")
  789.        Else
  790.           Call Scrn("N")
  791.        Endif
  792.     Case 11
  793.        Strng=Chr$(27)+"[5;68H"
  794.        Call Scrn(Strng)
  795.        Strng=Space$(3)
  796.        Call Scrn(Strng)
  797.        Strng=Chr$(27)+"[5;68H"
  798.        Call Scrn(Strng)
  799.        Strng=Mid$(Str$(MonsterRecord.PoisonPercent),2)
  800.        Call Scrn(Strng)
  801.     Case 12
  802.        Strng=Chr$(27)+"[7;57H"
  803.        Call Scrn(Strng)
  804.        If MonsterRecord.LevelDrain Then
  805.           Call Scrn("Y")
  806.        Else
  807.           Call Scrn("N")
  808.        Endif
  809.     Case 13
  810.        Strng=Chr$(27)+"[7;68H"
  811.        Call Scrn(Strng)
  812.        Strng=Space$(3)
  813.        Call Scrn(Strng)
  814.        Strng=Chr$(27)+"[7;68H"
  815.        Call Scrn(Strng)
  816.        Strng=Mid$(Str$(MonsterRecord.DrainPercent),2)
  817.        Call Scrn(Strng)
  818.     Case 14
  819.        Strng=Chr$(27)+"[9;51H"
  820.        Call Scrn(Strng)
  821.        If MonsterRecord.Block Then
  822.           Call Scrn("Y")
  823.        Else
  824.           Call Scrn("N")
  825.        Endif
  826.     Case 15
  827.        Strng=Chr$(27)+"[9;68H"
  828.        Call Scrn(Strng)
  829.        Strng=Space$(3)
  830.        Call Scrn(Strng)
  831.        Strng=Chr$(27)+"[9;68H"
  832.        Call Scrn(Strng)
  833.        Strng=Mid$(Str$(MonsterRecord.BlockPercent),2)
  834.        Call Scrn(Strng)
  835.     Case 16
  836.        Strng=Chr$(27)+"[11;53H"
  837.        Call Scrn(Strng)
  838.        If MonsterRecord.Prevent Then
  839.           Call Scrn("Y")
  840.        Else
  841.           Call Scrn("N")
  842.        Endif
  843.     Case 17
  844.        Strng=Chr$(27)+"[11;68H"
  845.        Call Scrn(Strng)
  846.        Strng=Space$(3)
  847.        Call Scrn(Strng)
  848.        Strng=Chr$(27)+"[11;68H"
  849.        Call Scrn(Strng)
  850.        Strng=Mid$(Str$(MonsterRecord.PreventPercent),2)
  851.        Call Scrn(Strng)
  852.     Case 18
  853.        Strng=Chr$(27)+"[13;52H"
  854.        Call Scrn(Strng)
  855.        If MonsterRecord.Follow Then
  856.           Call Scrn("Y")
  857.        Else
  858.           Call Scrn("N")
  859.        Endif
  860.     Case 19
  861.        Strng=Chr$(27)+"[13;68H"
  862.        Call Scrn(Strng)
  863.        Strng=Space$(3)
  864.        Call Scrn(Strng)
  865.        Strng=Chr$(27)+"[13;68H"
  866.        Call Scrn(Strng)
  867.        Strng=Mid$(Str$(MonsterRecord.FollowPercent),2)
  868.        Call Scrn(Strng)
  869.     Case 20
  870.        Strng=Chr$(27)+"[13;72H"
  871.        Call Scrn(Strng)
  872.        Strng=Space$(3)
  873.        Call Scrn(Strng)
  874.        Strng=Chr$(27)+"[13;72H"
  875.        Call Scrn(Strng)
  876.        Strng=Mid$(Str$(MonsterRecord.Teleport),2)
  877.        Call Scrn(Strng)
  878.     Case 21
  879.        Strng=Chr$(27)+"[15;56H"
  880.        Call Scrn(Strng)
  881.        If MonsterRecord.Spell Then
  882.           Call Scrn("Y")
  883.        Else
  884.           Call Scrn("N")
  885.        Endif
  886.     Case 22
  887.        Strng=Chr$(27)+"[15;68H"
  888.        Call Scrn(Strng)
  889.        Strng=Space$(3)
  890.        Call Scrn(Strng)
  891.        Strng=Chr$(27)+"[15;68H"
  892.        Call Scrn(Strng)
  893.        Strng=Mid$(Str$(MonsterRecord.SpellPercent),2)
  894.        Call Scrn(Strng)
  895.     Case 23
  896.        Strng=Chr$(27)+"[17;51H"
  897.        Call Scrn(Strng)
  898.        If MonsterRecord.Spell<1 Or_
  899.        MonsterRecord.Spell>Lof(4)/Len(SpellRecord) Then
  900.           Strng="<none>"
  901.           Call Scrn(Strng)
  902.           Strng=Space$(14)
  903.           Call Scrn(Strng)
  904.        Else
  905.           Get 4,MonsterRecord.Spell,SpellRecord
  906.           Strng=Left$(SpellRecord.SpellName,20)
  907.           Call Scrn(Strng)
  908.        Endif
  909.     Case 24
  910.        Strng=Chr$(27)+"[19;53H"
  911.        Call Scrn(Strng)
  912.        If MonsterRecord.Magic Then
  913.           Call Scrn("Y")
  914.        Else
  915.           Call Scrn("N")
  916.        Endif
  917.     Case 25
  918.        Strng=Chr$(27)+"[19;65H"
  919.        Call Scrn(Strng)
  920.        If MonsterRecord.Permanent Then
  921.           Call Scrn("Y")
  922.        Else
  923.           Call Scrn("N")
  924.        Endif
  925.     Case 26
  926.        Strng=Chr$(27)+"[20;54H"
  927.        Call Scrn(Strng)
  928.        If MonsterRecord.Equation Then
  929.           Call Scrn("Y")
  930.        Else
  931.           Call Scrn("N")
  932.        Endif
  933.        Strng=Chr$(27)+"[1;37;40m"
  934.        Call Scrn(Strng)
  935.        Strng=Chr$(27)+"[21;45H"
  936.        Call Scrn(Strng)
  937.        Strng=Space$(35)
  938.        Call Scrn(Strng)
  939.        Strng=Chr$(27)+"[21;45H"
  940.        Call Scrn(Strng)
  941.        Strng=Rtrim$(MonsterRecord.MonsterEquate)
  942.        Strng=Left$(Strng,35)
  943.        Call Scrn(Strng)
  944.     End Select
  945.  End Select
  946. 10051
  947.  Exit Sub
  948. 10052
  949.  Resume 10051
  950. End Sub
  951.  
  952. Sub AddMonster
  953.  On Local Error Goto 10062
  954.  Monster.Number=Lof(7)/Len(MonsterRecord)+1
  955.  MonsterRecord.MonsterName=Nul
  956.  MonsterRecord.PluralName=Nul
  957.  For Temp6=1 To 5
  958.     MonsterRecord.Treasure(Temp6)=False
  959.  Next
  960.  MonsterRecord.Experience=False
  961.  MonsterRecord.NumberAppearing=False
  962.  MonsterRecord.Level=False
  963.  MonsterRecord.Hits=False
  964.  MonsterRecord.Poison=False
  965.  MonsterRecord.LevelDrain=False
  966.  MonsterRecord.Spell=False
  967.  MonsterRecord.Block=False
  968.  MonsterRecord.Prevent=False
  969.  MonsterRecord.Follow=False
  970.  MonsterRecord.Magic=False
  971.  MonsterRecord.Jail=False
  972.  MonsterRecord.Teleport=False
  973.  MonsterRecord.FollowPercent=False
  974.  MonsterRecord.BlockPercent=False
  975.  MonsterRecord.PreventPercent=False
  976.  MonsterRecord.SpellPercent=False
  977.  MonsterRecord.PoisonPercent=False
  978.  MonsterRecord.DrainPercent=False
  979.  MonsterRecord.Rate=False
  980.  MonsterRecord.RatePercent=False
  981.  MonsterRecord.Permanent=False
  982.  For Temp6=1 To 5
  983.     MonsterRecord.Talk(Temp6)=False
  984.  Next
  985.  MonsterRecord.Psionic=False
  986.  MonsterRecord.PsionicSpell=False
  987.  Put 7,Monster.Number,MonsterRecord
  988.  Call DisplayMonster
  989. 10061
  990.  Exit Sub
  991. 10062
  992.  Resume 10061
  993. End Sub
  994.  
  995. Sub ShowNonplayer
  996.  On Local Error Goto 10072
  997.  Select Case TempX
  998.  Case 0
  999.     Strng=Chr$(27)+"[1;37;44m"
  1000.     Call Scrn(Strng)
  1001.     Strng=Chr$(27)+"[2;12H"
  1002.     Call Scrn(Strng)
  1003.     Strng=Space$(5)
  1004.     Call Scrn(Strng)
  1005.     Strng=Chr$(27)+"[1;33;44m"
  1006.     Call Scrn(Strng)
  1007.     Strng=Chr$(27)+"[2;2H"
  1008.     Call Scrn(Strng)
  1009.     Strng="Nonplayer"+Str$(Nonplayer.Number)
  1010.     Call Scrn(Strng)
  1011.  Case Else
  1012.     Strng=Chr$(27)+"[1;37;40m"
  1013.     Call Scrn(Strng)
  1014.     Select Case TempX
  1015.     Case 1
  1016.        Strng=Chr$(27)+"[4;2H"
  1017.        Call Scrn(Strng)
  1018.        Strng=MonsterRecord.MonsterName
  1019.        Call Scrn(Strng)
  1020.     Case 2
  1021.        Strng=Chr$(27)+"[7;2H"
  1022.        Call Scrn(Strng)
  1023.        Strng=MonsterRecord.PluralName
  1024.        Call Scrn(Strng)
  1025.     Case 3
  1026.        Strng=Chr$(27)+"[9;8H"
  1027.        Call Scrn(Strng)
  1028.        Strng=Space$(5)
  1029.        Call Scrn(Strng)
  1030.        Strng=Chr$(27)+"[9;8H"
  1031.        Call Scrn(Strng)
  1032.        Strng=Mid$(Str$(MonsterRecord.Level),2)
  1033.        Call Scrn(Strng)
  1034.     Case 4
  1035.        Strng=Chr$(27)+"[11;7H"
  1036.        Call Scrn(Strng)
  1037.        Strng=Space$(5)
  1038.        Call Scrn(Strng)
  1039.        Strng=Chr$(27)+"[11;7H"
  1040.        Call Scrn(Strng)
  1041.        Strng=Mid$(Str$(MonsterRecord.Hits),2)
  1042.        Call Scrn(Strng)
  1043.     Case 5
  1044.        Strng=Chr$(27)+"[13;13H"
  1045.        Call Scrn(Strng)
  1046.        Strng=Space$(5)
  1047.        Call Scrn(Strng)
  1048.        Strng=Chr$(27)+"[13;13H"
  1049.        Call Scrn(Strng)
  1050.        Strng=Mid$(Str$(MonsterRecord.Experience),2)
  1051.        Call Scrn(Strng)
  1052.     Case 6
  1053.        For Temp6=1 To 5
  1054.           Temp7=MonsterRecord.Treasure(Temp6)
  1055.           Strng=Chr$(27)+"["+Mid$(Str$(Temp6+14),2)+";2H"
  1056.           Call Scrn(Strng)
  1057.           If Temp7>False Then
  1058.              Get 8,Temp7,TreasureRecord
  1059.              Strng=TreasureRecord.TreasureName
  1060.              Call Scrn(Strng)
  1061.           Else
  1062.              Strng=Space$(30)
  1063.              Call Scrn(Strng)
  1064.           Endif
  1065.        Next
  1066.     Case 7
  1067.        Strng=Chr$(27)+"[21;10H"
  1068.        Call Scrn(Strng)
  1069.        If MonsterRecord.Psionic Then
  1070.           Call Scrn("Y")
  1071.        Else
  1072.           Call Scrn("N")
  1073.        Endif
  1074.     Case 8
  1075.        If MonsterRecord.Psionic=False Then
  1076.           Strng=Chr$(27)+"[21;22H"
  1077.           Call Scrn(Strng)
  1078.           Strng="<none>"
  1079.           Call Scrn(Strng)
  1080.           Strng=Space$(14)
  1081.           Call Scrn(Strng)
  1082.        Else
  1083.           Strng=Chr$(27)+"[21;22H"
  1084.           Call Scrn(Strng)
  1085.           Get 4,MonsterRecord.PsionicSpell,SpellRecord
  1086.           Strng=Left$(SpellRecord.SpellName,20)
  1087.           Call Scrn(Strng)
  1088.        Endif
  1089.     Case 9
  1090.        Strng=Chr$(27)+"[3;58H"
  1091.        Call Scrn(Strng)
  1092.        Strng=Space$(5)
  1093.        Call Scrn(Strng)
  1094.        Strng=Chr$(27)+"[3;58H"
  1095.        Call Scrn(Strng)
  1096.        Strng=Mid$(Str$(MonsterRecord.NumberAppearing),2)
  1097.        Call Scrn(Strng)
  1098.     Case 10
  1099.        Strng=Chr$(27)+"[5;52H"
  1100.        Call Scrn(Strng)
  1101.        If MonsterRecord.Poison Then
  1102.           Call Scrn("Y")
  1103.        Else
  1104.           Call Scrn("N")
  1105.        Endif
  1106.     Case 11
  1107.        Strng=Chr$(27)+"[5;68H"
  1108.        Call Scrn(Strng)
  1109.        Strng=Space$(3)
  1110.        Call Scrn(Strng)
  1111.        Strng=Chr$(27)+"[5;68H"
  1112.        Call Scrn(Strng)
  1113.        Strng=Mid$(Str$(MonsterRecord.PoisonPercent),2)
  1114.        Call Scrn(Strng)
  1115.     Case 12
  1116.        Strng=Chr$(27)+"[7;57H"
  1117.        Call Scrn(Strng)
  1118.        If MonsterRecord.LevelDrain Then
  1119.           Call Scrn("Y")
  1120.        Else
  1121.           Call Scrn("N")
  1122.        Endif
  1123.     Case 13
  1124.        Strng=Chr$(27)+"[7;68H"
  1125.        Call Scrn(Strng)
  1126.        Strng=Space$(3)
  1127.        Call Scrn(Strng)
  1128.        Strng=Chr$(27)+"[7;68H"
  1129.        Call Scrn(Strng)
  1130.        Strng=Mid$(Str$(MonsterRecord.DrainPercent),2)
  1131.        Call Scrn(Strng)
  1132.     Case 14
  1133.        Strng=Chr$(27)+"[9;51H"
  1134.        Call Scrn(Strng)
  1135.        If MonsterRecord.Block Then
  1136.           Call Scrn("Y")
  1137.        Else
  1138.           Call Scrn("N")
  1139.        Endif
  1140.     Case 15
  1141.        Strng=Chr$(27)+"[9;68H"
  1142.        Call Scrn(Strng)
  1143.        Strng=Space$(3)
  1144.        Call Scrn(Strng)
  1145.        Strng=Chr$(27)+"[9;68H"
  1146.        Call Scrn(Strng)
  1147.        Strng=Mid$(Str$(MonsterRecord.BlockPercent),2)
  1148.        Call Scrn(Strng)
  1149.     Case 16
  1150.        Strng=Chr$(27)+"[11;53H"
  1151.        Call Scrn(Strng)
  1152.        If MonsterRecord.Prevent Then
  1153.           Call Scrn("Y")
  1154.        Else
  1155.           Call Scrn("N")
  1156.        Endif
  1157.     Case 17
  1158.        Strng=Chr$(27)+"[11;68H"
  1159.        Call Scrn(Strng)
  1160.        Strng=Space$(3)
  1161.        Call Scrn(Strng)
  1162.        Strng=Chr$(27)+"[11;68H"
  1163.        Call Scrn(Strng)
  1164.        Strng=Mid$(Str$(MonsterRecord.PreventPercent),2)
  1165.        Call Scrn(Strng)
  1166.     Case 18
  1167.        Strng=Chr$(27)+"[13;52H"
  1168.        Call Scrn(Strng)
  1169.        If MonsterRecord.Follow Then
  1170.           Call Scrn("Y")
  1171.        Else
  1172.           Call Scrn("N")
  1173.        Endif
  1174.     Case 19
  1175.        Strng=Chr$(27)+"[13;68H"
  1176.        Call Scrn(Strng)
  1177.        Strng=Space$(3)
  1178.        Call Scrn(Strng)
  1179.        Strng=Chr$(27)+"[13;68H"
  1180.        Call Scrn(Strng)
  1181.        Strng=Mid$(Str$(MonsterRecord.FollowPercent),2)
  1182.        Call Scrn(Strng)
  1183.     Case 20
  1184.        Strng=Chr$(27)+"[13;72H"
  1185.        Call Scrn(Strng)
  1186.        Strng=Space$(3)
  1187.        Call Scrn(Strng)
  1188.        Strng=Chr$(27)+"[13;72H"
  1189.        Call Scrn(Strng)
  1190.        Strng=Mid$(Str$(MonsterRecord.Teleport),2)
  1191.        Call Scrn(Strng)
  1192.     Case 21
  1193.        Strng=Chr$(27)+"[15;56H"
  1194.        Call Scrn(Strng)
  1195.        If MonsterRecord.Spell Then
  1196.           Call Scrn("Y")
  1197.        Else
  1198.           Call Scrn("N")
  1199.        Endif
  1200.     Case 22
  1201.        Strng=Chr$(27)+"[15;68H"
  1202.        Call Scrn(Strng)
  1203.        Strng=Space$(3)
  1204.        Call Scrn(Strng)
  1205.        Strng=Chr$(27)+"[15;68H"
  1206.        Call Scrn(Strng)
  1207.        Strng=Mid$(Str$(MonsterRecord.SpellPercent),2)
  1208.        Call Scrn(Strng)
  1209.     Case 23
  1210.        Strng=Chr$(27)+"[17;51H"
  1211.        Call Scrn(Strng)
  1212.        If MonsterRecord.Spell<1 Or_
  1213.        MonsterRecord.Spell>Lof(4)/Len(SpellRecord) Then
  1214.           Strng="<none>"
  1215.           Call Scrn(Strng)
  1216.           Strng=Space$(14)
  1217.           Call Scrn(Strng)
  1218.        Else
  1219.           Get 4,MonsterRecord.Spell,SpellRecord
  1220.           Strng=Left$(SpellRecord.SpellName,20)
  1221.           Call Scrn(Strng)
  1222.        Endif
  1223.     End Select
  1224.  End Select
  1225. 10071
  1226.  Exit Sub
  1227. 10072
  1228.  Resume 10071
  1229. End Sub
  1230.  
  1231. Sub AddNonplayer
  1232.  On Local Error Goto 10082
  1233.  Nonplayer.Number=Lof(9)/Len(MonsterRecord)+1
  1234.  MonsterRecord.MonsterName=Nul
  1235.  MonsterRecord.PluralName=Nul
  1236.  For Temp6=1 To 5
  1237.     MonsterRecord.Treasure(Temp6)=False
  1238.  Next
  1239.  MonsterRecord.Experience=False
  1240.  MonsterRecord.NumberAppearing=False
  1241.  MonsterRecord.Level=False
  1242.  MonsterRecord.Hits=False
  1243.  MonsterRecord.Poison=False
  1244.  MonsterRecord.LevelDrain=False
  1245.  MonsterRecord.Spell=False
  1246.  MonsterRecord.Block=False
  1247.  MonsterRecord.Prevent=False
  1248.  MonsterRecord.Follow=False
  1249.  MonsterRecord.Magic=True
  1250.  MonsterRecord.Jail=False
  1251.  MonsterRecord.Teleport=False
  1252.  MonsterRecord.FollowPercent=False
  1253.  MonsterRecord.BlockPercent=False
  1254.  MonsterRecord.PreventPercent=False
  1255.  MonsterRecord.SpellPercent=False
  1256.  MonsterRecord.PoisonPercent=False
  1257.  MonsterRecord.DrainPercent=False
  1258.  MonsterRecord.Rate=False
  1259.  MonsterRecord.RatePercent=False
  1260.  MonsterRecord.Permanent=-2
  1261.  For Temp6=1 To 5
  1262.     MonsterRecord.Talk(Temp6)=False
  1263.  Next
  1264.  MonsterRecord.Psionic=False
  1265.  MonsterRecord.PsionicSpell=False
  1266.  Put 9,Nonplayer.Number,MonsterRecord
  1267.  Call DisplayNonplayer
  1268. 10081
  1269.  Exit Sub
  1270. 10082
  1271.  Resume 10081
  1272. End Sub
  1273.  
  1274. Sub ShowSpell
  1275.  On Local Error Goto 10092
  1276.  Select Case TempX
  1277.  Case 0
  1278.     Strng=Chr$(27)+"[1;37;44m"
  1279.     Call Scrn(Strng)
  1280.     Strng=Chr$(27)+"[2;8H"
  1281.     Call Scrn(Strng)
  1282.     Strng=Space$(5)
  1283.     Call Scrn(Strng)
  1284.     Strng=Chr$(27)+"[1;33;44m"
  1285.     Call Scrn(Strng)
  1286.     Strng=Chr$(27)+"[2;2H"
  1287.     Call Scrn(Strng)
  1288.     Strng="Spell"+Str$(Spell.Number)
  1289.     Call Scrn(Strng)
  1290.     Strng=Chr$(27)+"[19;2H"
  1291.     Call Scrn(Strng)
  1292.     Strng="Class Type Restrictions"
  1293.     Call Scrn(Strng)
  1294.     Strng=Chr$(27)+"[9;49H"
  1295.     Call Scrn(Strng)
  1296.     Strng="Ingredient Casting Type"
  1297.     Call Scrn(Strng)
  1298.  Case Else
  1299.     Strng=Chr$(27)+"[1;37;40m"
  1300.     Call Scrn(Strng)
  1301.     Select Case TempX
  1302.     Case 1
  1303.        Strng=Chr$(27)+"[4;2H"
  1304.        Call Scrn(Strng)
  1305.        Strng=SpellRecord.SpellName
  1306.        Call Scrn(Strng)
  1307.     Case 2
  1308.        Strng=Chr$(27)+"[6;16H"
  1309.        Call Scrn(Strng)
  1310.        Strng=Space$(5)
  1311.        Call Scrn(Strng)
  1312.        Strng=Chr$(27)+"[6;16H"
  1313.        Call Scrn(Strng)
  1314.        Strng=Mid$(Str$(SpellRecord.Teleport),2)
  1315.        Call Scrn(Strng)
  1316.     Case 3
  1317.        Strng=Chr$(27)+"[8;8H"
  1318.        Call Scrn(Strng)
  1319.        Strng=Space$(2)
  1320.        Call Scrn(Strng)
  1321.        Strng=Chr$(27)+"[8;8H"
  1322.        Call Scrn(Strng)
  1323.        Strng=Mid$(Str$(SpellRecord.Level),2)
  1324.        Call Scrn(Strng)
  1325.     Case 4
  1326.        Strng=Chr$(27)+"[8;22H"
  1327.        Call Scrn(Strng)
  1328.        Strng=Space$(2)
  1329.        Call Scrn(Strng)
  1330.        Strng=Chr$(27)+"[8;22H"
  1331.        Call Scrn(Strng)
  1332.        Strng=Mid$(Str$(SpellRecord.SpellType),2)
  1333.        Call Scrn(Strng)
  1334.     Case 5
  1335.        Strng=Chr$(27)+"[10;16H"
  1336.        Call Scrn(Strng)
  1337.        If SpellRecord.Psionic Then
  1338.           Call Scrn("Y")
  1339.        Else
  1340.           Call Scrn("N")
  1341.        Endif
  1342.     Case 6
  1343.        Strng=Chr$(27)+"[12;20H"
  1344.        Call Scrn(Strng)
  1345.        Select Case SpellRecord.PsionicMode
  1346.        Case 1
  1347.           Strng="A"
  1348.        Case 2
  1349.           Strng="D"
  1350.        Case Else
  1351.           Strng="?"
  1352.        End Select
  1353.        Call Scrn(Strng)
  1354.     Case 7
  1355.        Strng=Chr$(27)+"[13;11H"
  1356.        Call Scrn(Strng)
  1357.        If SpellRecord.Equation Then
  1358.           Call Scrn("Y")
  1359.        Else
  1360.           Call Scrn("N")
  1361.        Endif
  1362.        Strng=Chr$(27)+"[14;2H"
  1363.        Call Scrn(Strng)
  1364.        Strng=Space$(40)
  1365.        Call Scrn(Strng)
  1366.        Strng=Chr$(27)+"[14;2H"
  1367.        Call Scrn(Strng)
  1368.        Strng=Rtrim$(SpellRecord.SpellEquate)
  1369.        Call Scrn(Strng)
  1370.     Case 8
  1371.        Strng=Chr$(27)+"[16;2H"
  1372.        Call Scrn(Strng)
  1373.        Strng=Lcase$(Left$(SpellRecord.Chant,78))
  1374.        Call Scrn(Strng)
  1375.     Case 9
  1376.        Strng=Chr$(27)+"[18;2H"
  1377.        Call Scrn(Strng)
  1378.        Strng=Left$(SpellRecord.Desc,78)
  1379.        Call Scrn(Strng)
  1380.     Case 10
  1381.        Strng=Chr$(27)+"[20;10H"
  1382.        Call Scrn(Strng)
  1383.        If SpellRecord.ClassType And Class1 Then
  1384.           Call Scrn("Y")
  1385.        Else
  1386.           Call Scrn("N")
  1387.        Endif
  1388.     Case 11
  1389.        Strng=Chr$(27)+"[20;23H"
  1390.        Call Scrn(Strng)
  1391.        If SpellRecord.ClassType And Class2 Then
  1392.           Call Scrn("Y")
  1393.        Else
  1394.           Call Scrn("N")
  1395.        Endif
  1396.     Case 12
  1397.        Strng=Chr$(27)+"[20;31H"
  1398.        Call Scrn(Strng)
  1399.        If SpellRecord.ClassType And Class3 Then
  1400.           Call Scrn("Y")
  1401.        Else
  1402.           Call Scrn("N")
  1403.        Endif
  1404.     Case 13
  1405.        Strng=Chr$(27)+"[20;40H"
  1406.        Call Scrn(Strng)
  1407.        If SpellRecord.ClassType And Class4 Then
  1408.           Call Scrn("Y")
  1409.        Else
  1410.           Call Scrn("N")
  1411.        Endif
  1412.     Case 14
  1413.        Strng=Chr$(27)+"[20;50H"
  1414.        Call Scrn(Strng)
  1415.        If SpellRecord.ClassType And Class5 Then
  1416.           Call Scrn("Y")
  1417.        Else
  1418.           Call Scrn("N")
  1419.        Endif
  1420.     Case 15
  1421.        Strng=Chr$(27)+"[20;59H"
  1422.        Call Scrn(Strng)
  1423.        If SpellRecord.ClassType And Class6 Then
  1424.           Call Scrn("Y")
  1425.        Else
  1426.           Call Scrn("N")
  1427.        Endif
  1428.     Case 16
  1429.        Strng=Chr$(27)+"[20;67H"
  1430.        Call Scrn(Strng)
  1431.        If SpellRecord.ClassType And Class7 Then
  1432.           Call Scrn("Y")
  1433.        Else
  1434.           Call Scrn("N")
  1435.        Endif
  1436.     Case 17
  1437.        Strng=Chr$(27)+"[20;75H"
  1438.        Call Scrn(Strng)
  1439.        If SpellRecord.ClassType And Class8 Then
  1440.           Call Scrn("Y")
  1441.        Else
  1442.           Call Scrn("N")
  1443.        Endif
  1444.     Case 18
  1445.        For Temp6=1 To 5
  1446.           Temp7=SpellRecord.Ingred(Temp6)
  1447.           Strng=Chr$(27)+"["+Mid$(Str$(Temp6+3),2)+";49H"
  1448.           Call Scrn(Strng)
  1449.           If Temp7>False And Temp7<=Lof(8)/Len(TreasureRecord) Then
  1450.              Get 8,Temp7,TreasureRecord
  1451.              Strng=TreasureRecord.TreasureName
  1452.              Call Scrn(Strng)
  1453.           Else
  1454.              Strng=Space$(30)
  1455.              Call Scrn(Strng)
  1456.           Endif
  1457.        Next
  1458.     Case 19
  1459.        Strng=Chr$(27)+"[10;61H"
  1460.        Call Scrn(Strng)
  1461.        If SpellRecord.SpellFlag And Use.Spell.Type Then
  1462.           Call Scrn("Y")
  1463.        Else
  1464.           Call Scrn("N")
  1465.        Endif
  1466.     Case 20
  1467.        Strng=Chr$(27)+"[12;56H"
  1468.        Call Scrn(Strng)
  1469.        If SpellRecord.SpellFlag And Scroll.Spell.Type Then
  1470.           Call Scrn("Y")
  1471.        Else
  1472.           Call Scrn("N")
  1473.        Endif
  1474.     Case 21
  1475.        Strng=Chr$(27)+"[14;62H"
  1476.        Call Scrn(Strng)
  1477.        If SpellRecord.SpellFlag And Cast.Spell.Type Then
  1478.           Call Scrn("Y")
  1479.        Else
  1480.           Call Scrn("N")
  1481.        Endif
  1482.     End Select
  1483.  End Select
  1484. 10091
  1485.  Exit Sub
  1486. 10092
  1487.  Resume 10091
  1488. End Sub
  1489.  
  1490. Sub AddSpell
  1491.  On Local Error Goto 10102
  1492.  Spell.Number=Lof(4)/Len(SpellRecord)+1
  1493.  SpellRecord.SpellName=Nul
  1494.  SpellRecord.Teleport=False
  1495.  SpellRecord.Level=False
  1496.  SpellRecord.Chant=Nul
  1497.  SpellRecord.SpellType=False
  1498.  SpellRecord.Psionic=False
  1499.  SpellRecord.PsionicMode=False
  1500.  SpellRecord.ClassType=False
  1501.  SpellRecord.Desc=Nul
  1502.  For Temp6=1 To 5
  1503.     SpellRecord.Ingred(Temp6)=False
  1504.  Next
  1505.  SpellRecord.SpellFlag=False
  1506.  SpellRecord.Equation=False
  1507.  SpellRecord.SpellEquate=Nul
  1508.  Put 4,Spell.Number,SpellRecord
  1509.  Call DisplaySpell
  1510. 10101
  1511.  Exit Sub
  1512. 10102
  1513.  Resume 10101
  1514. End Sub
  1515.  
  1516. Sub ShowField
  1517.  On Local Error Goto 10112
  1518.  If Next.Field Then
  1519.     Strng=Chr$(27)+"[1;33;44m"
  1520.     Call Scrn(Strng)
  1521.     Call DisplayField
  1522.     Selection=Next.Field
  1523.     Strng=Chr$(27)+"[1;37;41m"
  1524.     Call Scrn(Strng)
  1525.     Call DisplayField
  1526.  Endif
  1527. 10111
  1528.  Exit Sub
  1529. 10112
  1530.  Resume 10111
  1531. End Sub
  1532.  
  1533. Sub DisplayField
  1534.  On Local Error Goto 10122
  1535.  Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
  1536.  Mid$(Str$(Array.Data(Selection,2)),2)+"H"
  1537.  Call Scrn(Strng)
  1538.  Strng=Title.Data(Selection)
  1539.  Call Scrn(Strng)
  1540. 10121
  1541.  Exit Sub
  1542. 10122
  1543.  Resume 10121
  1544. End Sub
  1545.  
  1546. Sub RedisplayField
  1547.  On Local Error Goto 10132
  1548.  Strng=Chr$(27)+"[1;37;41m"
  1549.  Call Scrn(Strng)
  1550.  Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
  1551.  Mid$(Str$(Array.Data(Selection,2)),2)+"H"
  1552.  Call Scrn(Strng)
  1553.  Strng=Title.Data(Selection)
  1554.  Call Scrn(Strng)
  1555. 10131
  1556.  Exit Sub
  1557. 10132
  1558.  Resume 10131
  1559. End Sub
  1560.  
  1561. Sub MainSelect
  1562.  On Local Error Goto 10142
  1563.  Next.Field=False
  1564.  If TempX$=Chr$(9) Then
  1565.     TempX=77
  1566.  Endif
  1567.  Select Case TempX
  1568.  Case 59 To 68
  1569.     Next.Field=TempX-58
  1570.     TempX$=Chr$(13)
  1571.  Case 72
  1572.     If Selection>1 Then
  1573.        Next.Field=Selection-1
  1574.     Endif
  1575.  Case 80
  1576.     If Selection<10 Then
  1577.        Next.Field=Selection+1
  1578.     Endif
  1579.  Case 15, 75
  1580.     If Selection>5 Then
  1581.        Next.Field=Selection-5
  1582.     Endif
  1583.  Case 77
  1584.     If Selection<6 Then
  1585.        Next.Field=Selection+5
  1586.     Endif
  1587.  Case 71
  1588.     If Selection<>1 Then
  1589.       Next.Field=1
  1590.     Endif
  1591.  Case 79
  1592.     If Selection<>10 Then
  1593.        Next.Field=10
  1594.     Endif
  1595.  Case 73
  1596.     Select Case Selection
  1597.     Case 2 To 5
  1598.        Next.Field=1
  1599.     Case 7 To 10
  1600.        Next.Field=6
  1601.     End Select
  1602.  Case 81
  1603.     Select Case Selection
  1604.     Case 1 To 4
  1605.        Next.Field=5
  1606.     Case 6 To 9
  1607.        Next.Field=10
  1608.     End Select
  1609.  End Select
  1610.  Call ShowMainField
  1611. 10141
  1612.  Exit Sub
  1613. 10142
  1614.  Resume 10141
  1615. End Sub
  1616.  
  1617. Sub ShowMainField
  1618.  On Local Error Goto 10152
  1619.  If Next.Field Then
  1620.     If Next.Field<>Selection Then
  1621.        Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
  1622.        Mid$(Str$(Array.Data(Selection,2)+3),2)+"H"
  1623.        Call Scrn(Strng)
  1624.        Strng=Chr$(27)+"[1;37;44m"
  1625.        Call Scrn(Strng)
  1626.        Strng=Left$(Title.Data(Selection),1)
  1627.        Call Scrn(Strng)
  1628.        Strng=Chr$(27)+"[1;33;44m"
  1629.        Call Scrn(Strng)
  1630.        Strng=Mid$(Title.Data(Selection),2)
  1631.        Strng=Rtrim$(Strng)
  1632.        Call Scrn(Strng)
  1633.        Selection=Next.Field
  1634.        Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
  1635.        Mid$(Str$(Array.Data(Selection,2)+3),2)+"H"
  1636.        Call Scrn(Strng)
  1637.        Strng=Chr$(27)+"[1;37;41m"
  1638.        Call Scrn(Strng)
  1639.        Strng=Left$(Title.Data(Selection),1)
  1640.        Call Scrn(Strng)
  1641.        Strng=Chr$(27)+"[1;33;41m"
  1642.        Call Scrn(Strng)
  1643.        Strng=Mid$(Title.Data(Selection),2)
  1644.        Strng=Rtrim$(Strng)
  1645.        Call Scrn(Strng)
  1646.     Endif
  1647.  Endif
  1648. 10151
  1649.  Exit Sub
  1650. 10152
  1651.  Resume 10151
  1652. End Sub
  1653.  
  1654. Sub RoomSelect
  1655.  On Local Error Goto 10162
  1656.  Next.Field=False
  1657.  If TempX$=Chr$(9) Then
  1658.     TempX=77
  1659.  Endif
  1660.  Select Case TempX
  1661.  Case 77
  1662.     Select Case Selection
  1663.     Case 3 To 8, 10 To 12, 14
  1664.        Next.Field=Selection+1
  1665.     End Select
  1666.  Case 15, 75
  1667.     Select Case Selection
  1668.     Case 4 To 9, 11 To 13, 15
  1669.        Next.Field=Selection-1
  1670.     End Select
  1671.  Case 72
  1672.     Select Case Selection
  1673.     Case 2
  1674.        Next.Field=1
  1675.     Case 3
  1676.        Next.Field=2
  1677.     Case 10
  1678.        Next.Field=3
  1679.     Case 14
  1680.        Next.Field=10
  1681.     Case 13
  1682.        Next.Field=9
  1683.     Case 15
  1684.        Next.Field=13
  1685.     Case 16
  1686.        Next.Field=14
  1687.     End Select
  1688.  Case 80
  1689.     Select Case Selection
  1690.     Case 1
  1691.        Next.Field=2
  1692.     Case 2
  1693.        Next.Field=3
  1694.     Case 3
  1695.        Next.Field=10
  1696.     Case 9
  1697.        Next.Field=13
  1698.     Case 10
  1699.        Next.Field=14
  1700.     Case 13
  1701.        Next.Field=15
  1702.     Case 14
  1703.        Next.Field=16
  1704.     Case 15
  1705.        Next.Field=16
  1706.     End Select
  1707.  Case 71
  1708.     If Selection<>1 Then
  1709.        Next.Field=1
  1710.     Endif
  1711.  Case 79
  1712.     If Selection<>16 Then
  1713.        Next.Field=16
  1714.     Endif
  1715.  Case 73
  1716.     Select Case Selection
  1717.     Case 4 To 9
  1718.        Next.Field=3
  1719.     Case 11 To 13
  1720.        Next.Field=10
  1721.     Case 15
  1722.        Next.Field=14
  1723.     End Select
  1724.  Case 81
  1725.     Select Case Selection
  1726.     Case 3 To 8
  1727.        Next.Field=9
  1728.     Case 10 To 12
  1729.        Next.Field=13
  1730.     Case 14
  1731.        Next.Field=15
  1732.     End Select
  1733.  End Select
  1734.  Call ShowField
  1735. 10161
  1736.  Exit Sub
  1737. 10162
  1738.  Resume 10161
  1739. End Sub
  1740.  
  1741. Sub ObjectSelect
  1742.  On Local Error Goto 10172
  1743.  Next.Field=False
  1744.  If TempX$=Chr$(9) Then
  1745.     TempX=77
  1746.  Endif
  1747.  Select Case TempX
  1748.  Case 77
  1749.     Select Case Selection
  1750.     Case 1
  1751.        Next.Field=9
  1752.     Case 2, 3
  1753.        Next.Field=Selection+9
  1754.     Case 4
  1755.        Next.Field=5
  1756.     Case 6, 7, 8
  1757.        Next.Field=Selection+8
  1758.     End Select
  1759.  Case 15, 75
  1760.     Select Case Selection
  1761.     Case 5
  1762.        Next.Field=4
  1763.     Case 9, 10
  1764.        Next.Field=1
  1765.     Case 11, 12
  1766.        Next.Field=Selection-9
  1767.     Case 13
  1768.        Next.Field=3
  1769.     Case 14, 15, 16
  1770.        Next.Field=Selection-8
  1771.     End Select
  1772.  Case 72
  1773.     If Selection>1 Then
  1774.        Next.Field=Selection-1
  1775.     Endif
  1776.  Case 80
  1777.     If Selection<16 Then
  1778.        Next.Field=Selection+1
  1779.     Endif
  1780.  Case 71
  1781.     If Selection<>1 Then
  1782.        Next.Field=1
  1783.     Endif
  1784.  Case 79
  1785.     If ObjectRecord.Trap<=1 Then
  1786.        If Selection<>15 Then
  1787.           Next.Field=15
  1788.        Endif
  1789.     Else
  1790.        If Selection<>16 Then
  1791.           Next.Field=16
  1792.        Endif
  1793.     Endif
  1794.  Case 73
  1795.     Select Case Selection
  1796.     Case 2 To 8
  1797.        Next.Field=1
  1798.     Case 8
  1799.        Next.Field=9
  1800.     End Select
  1801.  Case 81
  1802.     Select Case Selection
  1803.     Case 1 To 7
  1804.        Next.Field=8
  1805.     Case 9 To 16
  1806.        If ObjectRecord.Trap<=1 Then
  1807.           If Selection<>15 Then
  1808.              Next.Field=15
  1809.           Endif
  1810.        Else
  1811.           If Next.Field<>16 Then
  1812.              Next.Field=16
  1813.           Endif
  1814.        Endif
  1815.     End Select
  1816.  End Select
  1817.  If Next.Field=16 Then
  1818.     If ObjectRecord.Trap<=1 Then
  1819.        Title.Data(16)="<none>  "
  1820.     Endif
  1821.     If ObjectRecord.Trap=2 Then
  1822.        Title.Data(16)="Teleport"
  1823.     Endif
  1824.     If ObjectRecord.Trap=3 Then
  1825.        Title.Data(16)="Hits For"
  1826.     Endif
  1827.  Endif
  1828.  If Next.Field=16 Then
  1829.     If ObjectRecord.Trap<=1 Then
  1830.        Exit Sub
  1831.     Endif
  1832.  Endif
  1833.  Call ShowField
  1834. 10171
  1835.  Exit Sub
  1836. 10172
  1837.  Resume 10171
  1838. End Sub
  1839.  
  1840. Sub TreasureSelect
  1841.  On Local Error Goto 10182
  1842.  Next.Field=False
  1843.  If TempX$=Chr$(9) Then
  1844.     TempX=77
  1845.  Endif
  1846.  Select Case TempX
  1847.  Case 77
  1848.     Select Case Selection
  1849.     Case 1 To 8
  1850.        Next.Field=Selection+8
  1851.     Case 9 To 25
  1852.        Next.Field=Selection+9
  1853.     End Select
  1854.  Case 15, 75
  1855.     Select Case Selection
  1856.     Case 9 To 16
  1857.        Next.Field=Selection-8
  1858.     Case 18 To 34
  1859.        Next.Field=Selection-9
  1860.     End Select
  1861.  Case 72
  1862.     If Selection>1 Then
  1863.        Next.Field=Selection-1
  1864.     Endif
  1865.  Case 80
  1866.     If Selection<34 Then
  1867.        Next.Field=Selection+1
  1868.     Endif
  1869.  Case 71
  1870.     If Selection<>1 Then
  1871.        Next.Field=1
  1872.     Endif
  1873.  Case 79
  1874.     If Selection<>34 Then
  1875.        Next.Field=34
  1876.     Endif
  1877.  Case 73
  1878.     Select Case Selection
  1879.     Case 2 To 8
  1880.        Next.Field=1
  1881.     Case 10 To 17
  1882.        Next.Field=9
  1883.     Case 19 To 26
  1884.        Next.Field=18
  1885.     Case 28 To 34
  1886.        Next.Field=27
  1887.     End Select
  1888.  Case 81
  1889.     Select Case Selection
  1890.     Case 1 To 7
  1891.        Next.Field=8
  1892.     Case 9 To 16
  1893.        Next.Field=17
  1894.     Case 18 To 25
  1895.        Next.Field=26
  1896.     Case 27 To 33
  1897.        Next.Field=34
  1898.     End Select
  1899.  End Select
  1900.  Call ShowField
  1901. 10181
  1902.  Exit Sub
  1903. 10182
  1904.  Resume 10181
  1905. End Sub
  1906.  
  1907. Sub MonsterSelect
  1908.  On Local Error Goto 10192
  1909.  Next.Field=False
  1910.  If TempX$=Chr$(9) Then
  1911.     TempX=77
  1912.  Endif
  1913.  Select Case TempX
  1914.  Case 77
  1915.     Select Case Selection
  1916.     Case 1
  1917.        Next.Field=9
  1918.     Case 2
  1919.        Next.Field=12
  1920.     Case 3
  1921.        Next.Field=14
  1922.     Case 4
  1923.        Next.Field=16
  1924.     Case 5
  1925.        Next.Field=18
  1926.     Case 6
  1927.        Next.Field=21
  1928.     Case 7
  1929.        Next.Field=8
  1930.     Case 8
  1931.        Next.Field=26
  1932.     Case 10
  1933.        Next.Field=11
  1934.     Case 12
  1935.        Next.Field=13
  1936.     Case 14
  1937.        Next.Field=15
  1938.     Case 16
  1939.        Next.Field=17
  1940.     Case 18
  1941.        Next.Field=19
  1942.     Case 21
  1943.        Next.Field=22
  1944.     Case 24
  1945.        Next.Field=25
  1946.     End Select
  1947.  Case 15, 75
  1948.     Select Case Selection
  1949.     Case 8
  1950.        Next.Field=7
  1951.     Case 9, 10
  1952.        Next.Field=1
  1953.     Case 11
  1954.        Next.Field=10
  1955.     Case 12
  1956.        Next.Field=2
  1957.     Case 13
  1958.        Next.Field=12
  1959.     Case 15
  1960.        Next.Field=14
  1961.     Case 14
  1962.        Next.Field=3
  1963.     Case 16
  1964.        Next.Field=4
  1965.     Case 17
  1966.        Next.Field=16
  1967.     Case 18
  1968.        Next.Field=5
  1969.     Case 19
  1970.        Next.Field=18
  1971.     Case 21
  1972.        Next.Field=6
  1973.     Case 22
  1974.        Next.Field=21
  1975.     Case 25
  1976.        Next.Field=24
  1977.     Case 26
  1978.        Next.Field=8
  1979.     End Select
  1980.  Case 72
  1981.     Select Case Selection
  1982.     Case 2 To 10
  1983.        Next.Field=Selection-1
  1984.     Case 11 To 18
  1985.        Next.Field=Selection-2
  1986.     Case 19
  1987.        Next.Field=20
  1988.     Case 20
  1989.        Next.Field=17
  1990.     Case 21
  1991.        Next.Field=18
  1992.     Case 22
  1993.        Next.Field=19
  1994.     Case 23
  1995.        Next.Field=21
  1996.     Case 24
  1997.        Next.Field=23
  1998.     Case 25
  1999.        Next.Field=23
  2000.     Case 26
  2001.        Next.Field=24
  2002.     End Select
  2003.  Case 80
  2004.     Select Case Selection
  2005.     Case 1 To 9
  2006.        Next.Field=Selection+1
  2007.     Case 10 To 16
  2008.        Next.Field=Selection+2
  2009.     Case 17
  2010.        Next.Field=20
  2011.     Case 18
  2012.        Next.Field=21
  2013.     Case 19
  2014.        Next.Field=22
  2015.     Case 20
  2016.        Next.Field=19
  2017.     Case 21
  2018.        Next.Field=23
  2019.     Case 22
  2020.        Next.Field=23
  2021.     Case 23
  2022.        Next.Field=24
  2023.     Case 24
  2024.        Next.Field=26
  2025.     Case 25
  2026.        Next.Field=26
  2027.     End Select
  2028.  Case 71
  2029.     If Selection<>1 Then
  2030.        Next.Field=1
  2031.     Endif
  2032.  Case 79
  2033.     If Selection<>26 Then
  2034.        Next.Field=26
  2035.     Endif
  2036.  Case 73
  2037.     Select Case Selection
  2038.     Case 2 To 8
  2039.        Next.Field=1
  2040.     Case 10 To 26
  2041.        Next.Field=9
  2042.     End Select
  2043.  Case 81
  2044.     Select Case Selection
  2045.     Case 1 To 7
  2046.        Next.Field=8
  2047.     Case 9 To 25
  2048.        Next.Field=26
  2049.     End Select
  2050.  End Select
  2051.  Call ShowField
  2052. 10191
  2053.  Exit Sub
  2054. 10192
  2055.  Resume 10191
  2056. End Sub
  2057.  
  2058. Sub NonplayerSelect
  2059.  On Local Error Goto 10202
  2060.  Next.Field=False
  2061.  If TempX$=Chr$(9) Then
  2062.     TempX=77
  2063.  Endif
  2064.  Select Case TempX
  2065.  Case 77
  2066.     Select Case Selection
  2067.     Case 1
  2068.        Next.Field=9
  2069.     Case 2
  2070.        Next.Field=12
  2071.     Case 3
  2072.        Next.Field=14
  2073.     Case 4
  2074.        Next.Field=16
  2075.     Case 5
  2076.        Next.Field=18
  2077.     Case 6
  2078.        Next.Field=21
  2079.     Case 7
  2080.        Next.Field=8
  2081.     Case 10
  2082.        Next.Field=11
  2083.     Case 12
  2084.        Next.Field=13
  2085.     Case 14
  2086.        Next.Field=15
  2087.     Case 16
  2088.        Next.Field=17
  2089.     Case 18
  2090.        Next.Field=19
  2091.     Case 21
  2092.        Next.Field=22
  2093.     End Select
  2094.  Case 15, 75
  2095.     Select Case Selection
  2096.     Case 8
  2097.        Next.Field=7
  2098.     Case 9, 10
  2099.        Next.Field=1
  2100.     Case 11
  2101.        Next.Field=10
  2102.     Case 12
  2103.        Next.Field=2
  2104.     Case 13
  2105.        Next.Field=12
  2106.     Case 15
  2107.        Next.Field=14
  2108.     Case 14
  2109.        Next.Field=3
  2110.     Case 16
  2111.        Next.Field=4
  2112.     Case 17
  2113.        Next.Field=16
  2114.     Case 18
  2115.        Next.Field=5
  2116.     Case 19
  2117.        Next.Field=18
  2118.     Case 21
  2119.        Next.Field=6
  2120.     Case 22
  2121.        Next.Field=21
  2122.     End Select
  2123.  Case 72
  2124.     Select Case Selection
  2125.     Case 2 To 10
  2126.        Next.Field=Selection-1
  2127.     Case 11 To 18
  2128.        Next.Field=Selection-2
  2129.     Case 19
  2130.        Next.Field=20
  2131.     Case 20
  2132.        Next.Field=17
  2133.     Case 21
  2134.        Next.Field=18
  2135.     Case 22
  2136.        Next.Field=19
  2137.     Case 23
  2138.        Next.Field=21
  2139.     End Select
  2140.  Case 80
  2141.     Select Case Selection
  2142.     Case 1 To 9
  2143.        Next.Field=Selection+1
  2144.     Case 10 To 16
  2145.        Next.Field=Selection+2
  2146.     Case 17
  2147.        Next.Field=20
  2148.     Case 18
  2149.        Next.Field=21
  2150.     Case 19
  2151.        Next.Field=22
  2152.     Case 20
  2153.        Next.Field=19
  2154.     Case 21, 22
  2155.        Next.Field=23
  2156.     End Select
  2157.  Case 71
  2158.     If Selection<>1 Then
  2159.        Next.Field=1
  2160.     Endif
  2161.  Case 79
  2162.     If Selection<>23 Then
  2163.        Next.Field=23
  2164.     Endif
  2165.  Case 73
  2166.     Select Case Selection
  2167.     Case 2 To 8
  2168.        Next.Field=1
  2169.     Case 10 To 23
  2170.        Next.Field=9
  2171.     End Select
  2172.  Case 81
  2173.     Select Case Selection
  2174.     Case 1 To 7
  2175.        Next.Field=8
  2176.     Case 9 To 22
  2177.        Next.Field=23
  2178.     End Select
  2179.  End Select
  2180.  Call ShowField
  2181. 10201
  2182.  Exit Sub
  2183. 10202
  2184.  Resume 10201
  2185. End Sub
  2186.  
  2187. Sub SpellSelect
  2188.  On Local Error Goto 10212
  2189.  Next.Field=False
  2190.  If TempX$=Chr$(9) Then
  2191.     TempX=77
  2192.  Endif
  2193.  Select Case TempX
  2194.  Case 15, 75
  2195.     Select Case Selection
  2196.     Case 4
  2197.        Next.Field=3
  2198.     Case 10 To 17
  2199.        Next.Field=Selection-1
  2200.     Case 18
  2201.        Next.Field=1
  2202.     Case 19 To 21
  2203.        Next.Field=Selection-14
  2204.     End Select
  2205.  Case 77
  2206.     Select Case Selection
  2207.     Case 1
  2208.        Next.Field=18
  2209.     Case 3
  2210.        Next.Field=4
  2211.     Case 10 To 16
  2212.        Next.Field=Selection+1
  2213.     Case 5 To 7
  2214.        Next.FIeld=Selection+14
  2215.     End Select
  2216.  Case 72
  2217.     Select Case Selection
  2218.     Case 2 To 16, 19 To 21
  2219.        Next.Field=Selection-1
  2220.     Case 17
  2221.        Next.Field=21
  2222.     End Select
  2223.  Case 80
  2224.     Select Case Selection
  2225.     Case 1 To 16, 18 To 20
  2226.        Next.Field=Selection+1
  2227.     Case 21
  2228.        Next.FIeld=17
  2229.     End Select
  2230.  Case 71, 73
  2231.     Select Case Selection
  2232.     Case 2 To 10
  2233.        Next.Field=1
  2234.     Case 11 To 17
  2235.        Next.Field=10
  2236.     Case 19 To 21
  2237.        Next.Field=18
  2238.     End Select
  2239.  Case 79, 81
  2240.     Select Case Selection
  2241.     Case 1 To 9
  2242.        Next.Field=10
  2243.     Case 10 To 16
  2244.        Next.Field=17
  2245.     Case 18 To 20
  2246.        Next.Field=21
  2247.     End Select
  2248.  End Select
  2249.  Call ShowField
  2250. 10211
  2251.  Exit Sub
  2252. 10212
  2253.  Resume 10211
  2254. End Sub
  2255.  
  2256. Sub UserSelect
  2257.  On Local Error Goto 10222
  2258.  Next.Field=False
  2259.  If TempX$=Chr$(9) Then
  2260.     TempX=77
  2261.  Endif
  2262.  Select Case TempX
  2263.  Case 77
  2264.     Select Case Selection
  2265.     Case 1 To 6
  2266.        Next.Field=Selection+17
  2267.     Case 7, 8
  2268.        Next.Field=Selection+16
  2269.     Case 9 To 16
  2270.        Next.Field=Selection+1
  2271.     Case 17
  2272.        Next.Field=27
  2273.     End Select
  2274.  Case 15, 75
  2275.     Select Case Selection
  2276.     Case 10 To 17
  2277.        Next.Field=Selection-1
  2278.     Case 18 To 22
  2279.        Next.Field=Selection-17
  2280.     Case 23 To 24
  2281.        Next.Field=Selection-16
  2282.     Case 27
  2283.        Next.Field=17
  2284.     End Select
  2285.  Case 72
  2286.     If Selection>1 Then
  2287.        Next.Field=Selection-1
  2288.     Endif
  2289.  Case 80
  2290.     If Selection<27 Then
  2291.        Next.Field=Selection+1
  2292.     Endif
  2293.  Case 71
  2294.     If Selection<>1 Then
  2295.        Next.Field=1
  2296.     Endif
  2297.  Case 79
  2298.     If Selection<>27 Then
  2299.        Next.Field=27
  2300.     Endif
  2301.  Case 73
  2302.     Select Case Selection
  2303.     Case 2 To 17
  2304.        Next.Field=1
  2305.     Case 19 To 27
  2306.        Next.Field=18
  2307.     End Select
  2308.  Case 81
  2309.     Select Case Selection
  2310.     Case 1 To 16
  2311.        Next.Field=17
  2312.     Case 17 To 26
  2313.        Next.Field=27
  2314.     End Select
  2315.  End Select
  2316.  Call ShowField
  2317. 10221
  2318.  Exit Sub
  2319. 10222
  2320.  Resume 10221
  2321. End Sub
  2322.  
  2323. Sub ShowAction
  2324.  On Local Error Goto 10232
  2325.  Select Case TempX
  2326.  Case 0
  2327.     Strng=Chr$(27)+"[1;37;44m"
  2328.     Call Scrn(Strng)
  2329.     Strng=Chr$(27)+"[3;2H"
  2330.     Call Scrn(Strng)
  2331.     Strng="Triggers"
  2332.     Call Scrn(Strng)
  2333.     Strng=Chr$(27)+"[3;50H"
  2334.     Call Scrn(Strng)
  2335.     Strng="Results"
  2336.     Call Scrn(Strng)
  2337.     Strng=Chr$(27)+"[2;17H"
  2338.     Call Scrn(Strng)
  2339.     Strng=Space$(5)
  2340.     Call Scrn(Strng)
  2341.     Strng=Chr$(27)+"[1;33;44m"
  2342.     Call Scrn(Strng)
  2343.     Strng=Chr$(27)+"[2;2H"
  2344.     Call Scrn(Strng)
  2345.     Strng="Action for Room"+Str$(Room.Action)
  2346.     Call Scrn(Strng)
  2347.     Strng=Chr$(27)+"[7;2H"
  2348.     Call Scrn(Strng)
  2349.     Strng="and/or"
  2350.     Call Scrn(Strng)
  2351.     Strng=Chr$(27)+"[1;37;44m"
  2352.     Call Scrn(Strng)
  2353.     Strng=Chr$(27)+"[10;67H"
  2354.     Call Scrn(Strng)
  2355.     Strng="(W/S/A/M)"
  2356.     Call Scrn(Strng)
  2357.     Strng=Chr$(27)+"[13;50H"
  2358.     Call Scrn(Strng)
  2359.     Strng="Fatigue/Vitality"
  2360.     Call Scrn(Strng)
  2361.     Strng=Chr$(27)+"[17;2H"
  2362.     Call Scrn(Strng)
  2363.     Strng="Direction Restriction"
  2364.     Call Scrn(Strng)
  2365.     Strng=Chr$(27)+"[20;2H"
  2366.     Call Scrn(Strng)
  2367.     Strng="All results are from entering a room unless indicated by a trigger"
  2368.     Call Scrn(Strng)
  2369.  Case Else
  2370.     Strng=Chr$(27)+"[1;37;40m"
  2371.     Call Scrn(Strng)
  2372.     Select Case TempX
  2373.     Case 1
  2374.        Strng=Chr$(27)+"[4;17H"
  2375.        Call Scrn(Strng)
  2376.        Strng=Space$(5)
  2377.        Call Scrn(Strng)
  2378.        Strng=Chr$(27)+"[4;17H"
  2379.        Call Scrn(Strng)
  2380.        Strng=Mid$(Str$(RoomRecord.MonsterTrigger),2)
  2381.        Call Scrn(Strng)
  2382.     Case 2
  2383.        Strng=Chr$(27)+"[6;18H"
  2384.        Call Scrn(Strng)
  2385.        Strng=Space$(5)
  2386.        Call Scrn(Strng)
  2387.        Strng=Chr$(27)+"[6;18H"
  2388.        Call Scrn(Strng)
  2389.        Strng=Mid$(Str$(RoomRecord.MonsterTalk),2)
  2390.        Call Scrn(Strng)
  2391.     Case 3
  2392.        Strng=Chr$(27)+"[8;14H"
  2393.        Call Scrn(Strng)
  2394.        Strng=Space$(5)
  2395.        Call Scrn(Strng)
  2396.        Strng=Chr$(27)+"[8;14H"
  2397.        Call Scrn(Strng)
  2398.        Strng=Mid$(Str$(RoomRecord.Teleport),2)
  2399.        Call Scrn(Strng)
  2400.     Case 4
  2401.        Strng=Chr$(27)+"[11;2H"
  2402.        Call Scrn(Strng)
  2403.        If RoomRecord.SpellTrigger<1 Or_
  2404.        RoomRecord.SpellTrigger>Lof(4)/Len(SpellRecord) Then
  2405.           Strng="<none>"
  2406.           Call Scrn(Strng)
  2407.           Strng=Space$(24)
  2408.           Call Scrn(Strng)
  2409.        Else
  2410.           Get 4,RoomRecord.SpellTrigger,SpellRecord
  2411.           Strng=Left$(SpellRecord.SpellName,30)
  2412.           Call Scrn(Strng)
  2413.        Endif
  2414.     Case 5
  2415.        Strng=Chr$(27)+"[13;14H"
  2416.        Call Scrn(Strng)
  2417.        Strng=Space$(5)
  2418.        Call Scrn(Strng)
  2419.        Strng=Chr$(27)+"[13;14H"
  2420.        Call Scrn(Strng)
  2421.        Strng=Mid$(Str$(Abs(RoomRecord.Level)),2)
  2422.        Call Scrn(Strng)
  2423.     Case 6
  2424.        Strng=Chr$(27)+"[15;16H"
  2425.        Call Scrn(Strng)
  2426.        Strng=Space$(3)
  2427.        Call Scrn(Strng)
  2428.        Strng=Chr$(27)+"[15;16H"
  2429.        Call Scrn(Strng)
  2430.        Strng="n/a"
  2431.        If RoomRecord.Level<False Then
  2432.           Strng="min"
  2433.        Endif
  2434.        If RoomRecord.Level>False Then
  2435.           Strng="max"
  2436.        Endif
  2437.        Call Scrn(Strng)
  2438.     Case 7
  2439.        Strng=Chr$(27)+"[18;8H"
  2440.        Call Scrn(Strng)
  2441.        If RoomRecord.Restrictions And Direction1 Then
  2442.           Call Scrn("Y")
  2443.        Else
  2444.           Call Scrn("N")
  2445.        Endif
  2446.     Case 8
  2447.        Strng=Chr$(27)+"[18;15H"
  2448.        Call Scrn(Strng)
  2449.        If RoomRecord.Restrictions And Direction2 Then
  2450.           Call Scrn("Y")
  2451.        Else
  2452.           Call Scrn("N")
  2453.        Endif
  2454.     Case 9
  2455.        Strng=Chr$(27)+"[18;23H"
  2456.        Call Scrn(Strng)
  2457.        If RoomRecord.Restrictions And Direction3 Then
  2458.           Call Scrn("Y")
  2459.        Else
  2460.           Call Scrn("N")
  2461.        Endif
  2462.     Case 10
  2463.        Strng=Chr$(27)+"[18;30H"
  2464.        Call Scrn(Strng)
  2465.        If RoomRecord.Restrictions And Direction4 Then
  2466.           Call Scrn("Y")
  2467.        Else
  2468.           Call Scrn("N")
  2469.        Endif
  2470.     Case 11
  2471.        Strng=Chr$(27)+"[18;36H"
  2472.        Call Scrn(Strng)
  2473.        If RoomRecord.Restrictions And Direction5 Then
  2474.           Call Scrn("Y")
  2475.        Else
  2476.           Call Scrn("N")
  2477.        Endif
  2478.     Case 12
  2479.        Strng=Chr$(27)+"[18;41H"
  2480.        Call Scrn(Strng)
  2481.        If RoomRecord.Restrictions And Direction6 Then
  2482.           Call Scrn("Y")
  2483.        Else
  2484.           Call Scrn("N")
  2485.        Endif
  2486.     Case 13
  2487.        Strng=Chr$(27)+"[18;48H"
  2488.        Call Scrn(Strng)
  2489.        If RoomRecord.Restrictions And Direction7 Then
  2490.           Call Scrn("Y")
  2491.        Else
  2492.           Call Scrn("N")
  2493.        Endif
  2494.     Case 14
  2495.        Strng=Chr$(27)+"[18;53H"
  2496.        Call Scrn(Strng)
  2497.        If RoomRecord.Restrictions And Direction8 Then
  2498.           Call Scrn("Y")
  2499.        Else
  2500.           Call Scrn("N")
  2501.        Endif
  2502.     Case 15
  2503.        Strng=Chr$(27)+"[18;58H"
  2504.        Call Scrn(Strng)
  2505.        If RoomRecord.Restrictions And Direction9 Then
  2506.           Call Scrn("Y")
  2507.        Else
  2508.           Call Scrn("N")
  2509.        Endif
  2510.     Case 16
  2511.        Strng=Chr$(27)+"[18;63H"
  2512.        Call Scrn(Strng)
  2513.        If RoomRecord.Restrictions And Direction10 Then
  2514.           Call Scrn("Y")
  2515.        Else
  2516.           Call Scrn("N")
  2517.        Endif
  2518.     Case 17
  2519.        Strng=Chr$(27)+"[18;68H"
  2520.        Call Scrn(Strng)
  2521.        If RoomRecord.Restrictions And Direction11 Then
  2522.           Call Scrn("Y")
  2523.        Else
  2524.           Call Scrn("N")
  2525.        Endif
  2526.     Case 18
  2527.        Strng=Chr$(27)+"[18;76H"
  2528.        Call Scrn(Strng)
  2529.        If RoomRecord.Restrictions And Direction12 Then
  2530.           Call Scrn("Y")
  2531.        Else
  2532.           Call Scrn("N")
  2533.        Endif
  2534.     Case 19
  2535.        Strng=Chr$(27)+"[4;62H"
  2536.        Call Scrn(Strng)
  2537.        Strng=Space$(5)
  2538.        Call Scrn(Strng)
  2539.        Strng=Chr$(27)+"[4;62H"
  2540.        Call Scrn(Strng)
  2541.        Strng=Mid$(Str$(RoomRecord.HealthRate),2)
  2542.        Call Scrn(Strng)
  2543.     Case 20
  2544.        Strng=Chr$(27)+"[6;65H"
  2545.        Call Scrn(Strng)
  2546.        Strng=Space$(5)
  2547.        Call Scrn(Strng)
  2548.        Strng=Chr$(27)+"[6;65H"
  2549.        Call Scrn(Strng)
  2550.        Strng=Mid$(Str$(RoomRecord.EncounterRate),2)
  2551.        Call Scrn(Strng)
  2552.     Case 21
  2553.        Strng=Chr$(27)+"[8;57H"
  2554.        Call Scrn(Strng)
  2555.        If RoomRecord.Fumble Then
  2556.           Call Scrn("Y")
  2557.        Else
  2558.           Call Scrn("N")
  2559.        Endif
  2560.     Case 22
  2561.        Strng=Chr$(27)+"[10;77H"
  2562.        Call Scrn(Strng)
  2563.        Strng="?"
  2564.        Select Case RoomRecord.Inventory
  2565.        Case 1
  2566.           Strng="W"
  2567.        Case 2
  2568.           Strng="S"
  2569.        Case 3
  2570.           Strng="A"
  2571.        Case 4
  2572.           Strng="M"
  2573.        End Select
  2574.        Call Scrn(Strng)
  2575.     Case 23
  2576.        Strng=Chr$(27)+"[12;64H"
  2577.        Call Scrn(Strng)
  2578.        Select Case RoomRecord.HitPoints
  2579.        Case Is<False
  2580.           Strng="V"
  2581.        Case Is>False
  2582.           Strng="F"
  2583.        Case False
  2584.           Strng="?"
  2585.        End Select
  2586.        Call Scrn(Strng)
  2587.     Case 24
  2588.        Strng=Chr$(27)+"[13;67H"
  2589.        Call Scrn(Strng)
  2590.        Strng=Space$(5)
  2591.        Call Scrn(Strng)
  2592.        Strng=Chr$(27)+"[13;67H"
  2593.        Call Scrn(Strng)
  2594.        Strng=Mid$(Str$(Abs(RoomRecord.HitPoints)),2)
  2595.        Call Scrn(Strng)
  2596.     Case 25
  2597.        Strng=Chr$(27)+"[15;60H"
  2598.        Call Scrn(Strng)
  2599.        Strng=Space$(4)
  2600.        Call Scrn(Strng)
  2601.        Strng=Chr$(27)+"[15;60H"
  2602.        Call Scrn(Strng)
  2603.        Strng=Mid$(Str$(RoomRecord.RustRate),2,4)
  2604.        Call Scrn(Strng)
  2605.     Case 26
  2606.        Strng=Chr$(27)+"[15;76H"
  2607.        Call Scrn(Strng)
  2608.        Strng=Space$(4)
  2609.        Call Scrn(Strng)
  2610.        Strng=Chr$(27)+"[15;76H"
  2611.        Call Scrn(Strng)
  2612.        Strng=Mid$(Str$(RoomRecord.StealRate),2,4)
  2613.        Call Scrn(Strng)
  2614.     End Select
  2615.  End Select
  2616. 10231
  2617.  Exit Sub
  2618. 10232
  2619.  Resume 10231
  2620. End Sub
  2621.  
  2622. Sub ActionSelect
  2623.  On Local Error Goto 10242
  2624.  Next.Field=False
  2625.  If TempX$=Chr$(9) Then
  2626.     TempX=77
  2627.  Endif
  2628.  Select Case TempX
  2629.  Case 77
  2630.     Select Case Selection
  2631.     Case 1 To 5
  2632.        Next.Field=Selection+18
  2633.     Case 6
  2634.        Next.Field=25
  2635.     Case 7 To 17
  2636.        Next.Field=Selection+1
  2637.     Case 25
  2638.        Next.Field=26
  2639.     End Select
  2640.  Case 15, 75
  2641.     Select Case Selection
  2642.     Case 8 To 18
  2643.        Next.Field=Selection-1
  2644.     Case 19 To 23
  2645.        Next.Field=Selection-18
  2646.     Case 24, 25
  2647.        Next.Field=Selection-19
  2648.     Case 26
  2649.        Next.Field=25
  2650.     End Select
  2651.  Case 72
  2652.     Select Case Selection
  2653.     Case 2 To 7, 20 To 25
  2654.        Next.Field=Selection-1
  2655.     Case 18
  2656.        Next.Field=26
  2657.     Case 26
  2658.        Next.Field=24
  2659.     End Select
  2660.  Case 80
  2661.     Select Case Selection
  2662.     Case 1 To 6, 19 To 24
  2663.        Next.Field=Selection+1
  2664.     Case 25, 26
  2665.        Next.Field=18
  2666.     End Select
  2667.  Case 71
  2668.     If Selection<>1 Then
  2669.        Next.Field=1
  2670.     Endif
  2671.  Case 79
  2672.     If Selection<>18 Then
  2673.        Next.Field=18
  2674.     Endif
  2675.  Case 73
  2676.     Select Case Selection
  2677.     Case 2 To 7
  2678.        Next.Field=1
  2679.     Case 18
  2680.        Next.Field=19
  2681.     End Select
  2682.  Case 81
  2683.     Select Case Selection
  2684.     Case 1 To 6
  2685.        Next.Field=7
  2686.     Case 19 To 26
  2687.        Next.Field=18
  2688.     End Select
  2689.  End Select
  2690.  Call ShowField
  2691. 10241
  2692.  Exit Sub
  2693. 10242
  2694.  Resume 10241
  2695. End Sub
  2696.  
  2697. Sub RoomLinkSelect
  2698.  On Local Error Goto 10252
  2699.  Next.Field=False
  2700.  If TempX$=Chr$(9) Then
  2701.     TempX=9
  2702.  Endif
  2703.  Select Case TempX
  2704.  Case 77
  2705.     Select Case Selection
  2706.     Case 1
  2707.        Next.Field=8
  2708.     Case 3
  2709.        Next.Field=9
  2710.     Case 4
  2711.        Next.Field=2
  2712.     Case 10
  2713.        Next.Field=3
  2714.     Case 11
  2715.        Next.Field=1
  2716.     End Select
  2717.  Case 75
  2718.     Select Case Selection
  2719.     Case 1
  2720.        Next.Field=11
  2721.     Case 2
  2722.        Next.Field=4
  2723.     Case 3
  2724.        Next.Field=10
  2725.     Case 8
  2726.        Next.Field=1
  2727.     Case 9
  2728.        Next.Field=3
  2729.     End Select
  2730.  Case 80
  2731.     Select Case Selection
  2732.     Case 1
  2733.        Next.Field=3
  2734.     Case 2
  2735.        Next.Field=9
  2736.     Case 4
  2737.        Next.Field=10
  2738.     Case 5, 6
  2739.        Next.Field=Selection+1
  2740.     Case 8
  2741.        Next.Field=2
  2742.     Case 11
  2743.        Next.Field=4
  2744.     End Select
  2745.  Case 72
  2746.     Select Case Selection
  2747.     Case 2
  2748.        Next.Field=8
  2749.     Case 3
  2750.        Next.Field=1
  2751.     Case 4
  2752.        Next.Field=11
  2753.     Case 6, 7
  2754.        Next.Field=Selection-1
  2755.     Case 9
  2756.        Next.Field=2
  2757.     Case 10
  2758.        Next.Field=4
  2759.     End Select
  2760.  Case 9
  2761.     Select Case Selection
  2762.     Case 1, 8, 11
  2763.        Next.Field=5
  2764.     Case 2, 4
  2765.        Next.Field=6
  2766.     Case 3, 9, 10
  2767.        Next.Field=7
  2768.     End Select
  2769.  Case 15
  2770.     Select Case Selection
  2771.     Case 5
  2772.        Next.Field=8
  2773.     Case 6
  2774.        Next.Field=2
  2775.     Case 7
  2776.        Next.Field=9
  2777.     End Select
  2778.  End Select
  2779.  Call ShowField
  2780. 10251
  2781.  Exit Sub
  2782. 10252
  2783.  Resume 10251
  2784. End Sub
  2785.  
  2786. Sub MonclassSelect
  2787.  On Local Error Goto 10262
  2788.  Next.Field=False
  2789.  Select Case TempX
  2790.  Case 72
  2791.     If Selection>1 Then
  2792.        Next.Field=Selection-1
  2793.     Endif
  2794.  Case 80
  2795.     If Selection<10 Then
  2796.        Next.Field=Selection+1
  2797.     Endif
  2798.  Case 71
  2799.     If Selection<>1 Then
  2800.        Next.Field=1
  2801.     Endif
  2802.  Case 79
  2803.     If Selection<>10 Then
  2804.        Next.Field=10
  2805.     Endif
  2806.  Case 73
  2807.     If Selection<>1 Then
  2808.        Next.Field=1
  2809.     Endif
  2810.  Case 81
  2811.     If Selection<>10 Then
  2812.        Next.Field=10
  2813.     Endif
  2814.  End Select
  2815.  If Next.Field Then
  2816.     Strng=Chr$(27)+"[1;33;44m"
  2817.     Call Scrn(Strng)
  2818.     Strng=Chr$(27)+"["+Mid$(Str$(Selection*2+1),2)+";2H"
  2819.     Call Scrn(Strng)
  2820.     Strng="Monster"+Str$(Selection)
  2821.     Call Scrn(Strng)
  2822.     Selection=Next.Field
  2823.     Call MonclassField
  2824.  Endif
  2825. 10261
  2826.  Exit Sub
  2827. 10262
  2828.  Resume 10261
  2829. End Sub
  2830.  
  2831. Sub MonclassField
  2832.  On Local Error Goto 10272
  2833.  Strng=Chr$(27)+"[1;37;41m"
  2834.  Call Scrn(Strng)
  2835.  Strng=Chr$(27)+"["+Mid$(Str$(Selection*2+1),2)+";2H"
  2836.  Call Scrn(Strng)
  2837.  Strng="Monster"+Str$(Selection)
  2838.  Call Scrn(Strng)
  2839. 10271
  2840.  Exit Sub
  2841. 10272
  2842.  Resume 10271
  2843. End Sub
  2844.  
  2845. Sub ShowUser
  2846.  On Local Error Goto 10282
  2847.  Select Case TempX
  2848.  Case 0
  2849.     Strng=Chr$(27)+"[1;33;44m"
  2850.     Call Scrn(Strng)
  2851.     Strng=Chr$(27)+"[2;6H"
  2852.     Call Scrn(Strng)
  2853.     Strng=Space$(5)
  2854.     Call Scrn(Strng)
  2855.     Strng=Chr$(27)+"[2;2H"
  2856.     Call Scrn(Strng)
  2857.     Strng="User"+Str$(User.Number)
  2858.     Call Scrn(Strng)
  2859.     Strng=Chr$(27)+"[1;37;44m"
  2860.     Call Scrn(Strng)
  2861.     Strng=Chr$(27)+"[12;7H"
  2862.     Call Scrn(Strng)
  2863.     Strng="(F/M/T/C/P/R/D/L/A/*)"
  2864.     Call Scrn(Strng)
  2865.     Strng=Chr$(27)+"[16;20H"
  2866.     Call Scrn(Strng)
  2867.     Strng="(B/P/S/T)"
  2868.     Call Scrn(Strng)
  2869.  Case Else
  2870.     Strng=Chr$(27)+"[1;37;40m"
  2871.     Call Scrn(Strng)
  2872.     Select Case TempX
  2873.     Case 1
  2874.        Strng=Chr$(27)+"[4;2H"
  2875.        Call Scrn(Strng)
  2876.        Strng=UserRecord.CodeName
  2877.        Call Decrypt(Strng)
  2878.        Strng=Lcase$(Strng)
  2879.        Mid$(Strng,1,1)=Ucase$(Mid$(Strng,1,1))
  2880.        Call Scrn(Strng)
  2881.     Case 2
  2882.        Strng=Chr$(27)+"[6;2H"
  2883.        Call Scrn(Strng)
  2884.        Strng=UserRecord.PassWord
  2885.        Call Decrypt(Strng)
  2886.        Strng=Lcase$(Strng)
  2887.        Call Scrn(Strng)
  2888.     Case 3
  2889.        Strng=Chr$(27)+"[8;2H"
  2890.        Call Scrn(Strng)
  2891.        Strng=Space$(5)
  2892.        Call Scrn(Strng)
  2893.        Strng=Chr$(27)+"[8;2H"
  2894.        Call Scrn(Strng)
  2895.        Strng=Mid$(Str$(UserRecord.Level),2)
  2896.        Call Scrn(Strng)
  2897.     Case 4
  2898.        Strng=Chr$(27)+"[10;2H"
  2899.        Call Scrn(Strng)
  2900.        Strng=Space$(5)
  2901.        Call Scrn(Strng)
  2902.        Strng=Chr$(27)+"[10;2H"
  2903.        Call Scrn(Strng)
  2904.        Strng=Mid$(Str$(UserRecord.Room),2)
  2905.        Call Scrn(Strng)
  2906.     Case 5
  2907.        Strng=Chr$(27)+"[11;7H"
  2908.        Call Scrn(Strng)
  2909.        If UserRecord.Race<1 Then
  2910.           UserRecord.Race=1
  2911.        Endif
  2912.        Strng=Space$(10)
  2913.        Call Scrn(Strng)
  2914.        Strng=Chr$(27)+"[11;7H"
  2915.        Call Scrn(Strng)
  2916.        Strng=Rtrim$(Race(UserRecord.Race))
  2917.        Call Scrn(Strng)
  2918.     Case 6
  2919.        Strng=Chr$(27)+"[12;29H"
  2920.        Call Scrn(Strng)
  2921.        Select Case UserRecord.ClassType
  2922.        Case 1
  2923.           Strng="F"
  2924.        Case 2
  2925.           Strng="M"
  2926.        Case 3
  2927.           Strng="T"
  2928.        Case 4
  2929.           Strng="C"
  2930.        Case 5
  2931.           Strng="P"
  2932.        Case 6
  2933.           Strng="R"
  2934.        Case 7
  2935.           Strng="D"
  2936.        Case 8
  2937.           Strng="L"
  2938.        Case 9
  2939.           Strng="A"
  2940.        Case 10
  2941.           Strng="*"
  2942.        Case Else
  2943.           Strng="?"
  2944.        End Select
  2945.        Call Scrn(Strng)
  2946.     Case 7
  2947.        Strng=Chr$(27)+"[13;12H"
  2948.        Call Scrn(Strng)
  2949.        Strng=Space$(7)
  2950.        Call Scrn(Strng)
  2951.        Strng=Chr$(27)+"[13;12H"
  2952.        Call Scrn(Strng)
  2953.        Select Case UserRecord.Align1
  2954.        Case Is<False
  2955.           Strng="Good"
  2956.        Case Is>False
  2957.           Strng="Evil"
  2958.        Case False
  2959.           Strng="Neutral"
  2960.        End Select
  2961.        Call Scrn(Strng)
  2962.        Strng=Chr$(27)+"[13;20H"
  2963.        Call Scrn(Strng)
  2964.        Strng=Space$(7)
  2965.        Call Scrn(Strng)
  2966.        Strng=Chr$(27)+"[13;20H"
  2967.        Call Scrn(Strng)
  2968.        Select Case UserRecord.Align2
  2969.        Case Is<False
  2970.           Strng="Lawful"
  2971.        Case Is>False
  2972.           Strng="Chaotic"
  2973.        Case Else
  2974.           Strng="Neutral"
  2975.        End Select
  2976.        Call Scrn(Strng)
  2977.     Case 8
  2978.        Strng=Chr$(27)+"[15;2H"
  2979.        Call Scrn(Strng)
  2980.        Strng=UserRecord.ClassName
  2981.        Call Decrypt(Strng)
  2982.        Call Scrn(Strng)
  2983.     Case 9
  2984.        Strng=Chr$(27)+"[16;30H"
  2985.        Call Scrn(Strng)
  2986.        Select Case UserRecord.Proficiency
  2987.        Case 1
  2988.           Strng="B"
  2989.        Case 2
  2990.           Strng="P"
  2991.        Case 3
  2992.           Strng="S"
  2993.        Case 4
  2994.           Strng="T"
  2995.        Case Else
  2996.           Strng="?"
  2997.        End Select
  2998.        Call Scrn(Strng)
  2999.     Case 10
  3000.        Strng=Chr$(27)+"[17;7H"
  3001.        Call Scrn(Strng)
  3002.        Strng=Space$(3)
  3003.        Call Scrn(Strng)
  3004.        Strng=Chr$(27)+"[17;7H"
  3005.        Call Scrn(Strng)
  3006.        Strng=Mid$(Str$(UserRecord.Weapons(1)),2)
  3007.        Call Scrn(Strng)
  3008.     Case 11
  3009.        Strng=Chr$(27)+"[17;17H"
  3010.        Call Scrn(Strng)
  3011.        Strng=Space$(3)
  3012.        Call Scrn(Strng)
  3013.        Strng=Chr$(27)+"[17;17H"
  3014.        Call Scrn(Strng)
  3015.        Strng=Mid$(Str$(UserRecord.Weapons(2)),2)
  3016.        Call Scrn(Strng)
  3017.     Case 12
  3018.        Strng=Chr$(27)+"[17;27H"
  3019.        Call Scrn(Strng)
  3020.        Strng=Space$(3)
  3021.        Call Scrn(Strng)
  3022.        Strng=Chr$(27)+"[17;27H"
  3023.        Call Scrn(Strng)
  3024.        Strng=Mid$(Str$(UserRecord.Weapons(3)),2)
  3025.        Call Scrn(Strng)
  3026.     Case 13
  3027.        Strng=Chr$(27)+"[17;41H"
  3028.        Call Scrn(Strng)
  3029.        Strng=Space$(3)
  3030.        Call Scrn(Strng)
  3031.        Strng=Chr$(27)+"[17;41H"
  3032.        Call Scrn(Strng)
  3033.        Strng=Mid$(Str$(UserRecord.Weapons(4)),2)
  3034.        Call Scrn(Strng)
  3035.     Case 14
  3036.        Strng=Chr$(27)+"[19;10H"
  3037.        Call Scrn(Strng)
  3038.        Strng=Space$(5)
  3039.        Call Scrn(Strng)
  3040.        Strng=Chr$(27)+"[19;10H"
  3041.        Call Scrn(Strng)
  3042.        Strng=Mid$(Str$(UserRecord.FatigueMax),2)
  3043.        Call Scrn(Strng)
  3044.     Case 15
  3045.        Strng=Chr$(27)+"[19;25H"
  3046.        Call Scrn(Strng)
  3047.        Strng=Space$(5)
  3048.        Call Scrn(Strng)
  3049.        Strng=Chr$(27)+"[19;25H"
  3050.        Call Scrn(Strng)
  3051.        Strng=Mid$(Str$(UserRecord.VitalityMax),2)
  3052.        Call Scrn(Strng)
  3053.     Case 16
  3054.        Strng=Chr$(27)+"[19;37H"
  3055.        Call Scrn(Strng)
  3056.        Strng=Space$(5)
  3057.        Call Scrn(Strng)
  3058.        Strng=Chr$(27)+"[19;37H"
  3059.        Call Scrn(Strng)
  3060.        Strng=Mid$(Str$(UserRecord.MagicMax),2)
  3061.        Call Scrn(Strng)
  3062.     Case 17
  3063.        Strng=Chr$(27)+"[21;17H"
  3064.        Call Scrn(Strng)
  3065.        Strng=Space$(5)
  3066.        Call Scrn(Strng)
  3067.        Strng=Chr$(27)+"[21;17H"
  3068.        Call Scrn(Strng)
  3069.        Strng=Mid$(Str$(UserRecord.PsionicMax),2)
  3070.        Call Scrn(Strng)
  3071.     Case 18
  3072.        Strng=Chr$(27)+"[3;54H"
  3073.        Call Scrn(Strng)
  3074.        Strng=Space$(22)
  3075.        Call Scrn(Strng)
  3076.        Strng=Chr$(27)+"[3;54H"
  3077.        Call Scrn(Strng)
  3078.        Strng=Mid$(Str$(UserRecord.Experience),2)
  3079.        Call Scrn(Strng)
  3080.     Case 19
  3081.        Strng=Chr$(27)+"[5;55H"
  3082.        Call Scrn(Strng)
  3083.        Strng=Space$(22)
  3084.        Call Scrn(Strng)
  3085.        Strng=Chr$(27)+"[5;55H"
  3086.        Call Scrn(Strng)
  3087.        Strng=Mid$(Str$(UserRecord.Gold),2)
  3088.        Call Scrn(Strng)
  3089.     Case 20
  3090.        Strng=Chr$(27)+"[7;62H"
  3091.        Call Scrn(Strng)
  3092.        Strng=Space$(3)
  3093.        Call Scrn(Strng)
  3094.        Strng=Chr$(27)+"[7;62H"
  3095.        Call Scrn(Strng)
  3096.        Strng=Mid$(Str$(UserRecord.NumCalls),2)
  3097.        Call Scrn(Strng)
  3098.     Case 21
  3099.        Strng=Chr$(27)+"[9;59H"
  3100.        Call Scrn(Strng)
  3101.        Strng=Space$(5)
  3102.        Call Scrn(Strng)
  3103.        Strng=Chr$(27)+"[9;59H"
  3104.        Call Scrn(Strng)
  3105.        Strng=Mid$(Str$(UserRecord.Stats(1)),2)
  3106.        Call Scrn(Strng)
  3107.     Case 22
  3108.        Strng=Chr$(27)+"[11;63H"
  3109.        Call Scrn(Strng)
  3110.        Strng=Space$(5)
  3111.        Call Scrn(Strng)
  3112.        Strng=Chr$(27)+"[11;63H"
  3113.        Call Scrn(Strng)
  3114.        Strng=Mid$(Str$(UserRecord.Stats(2)),2)
  3115.        Call Scrn(Strng)
  3116.     Case 23
  3117.        Strng=Chr$(27)+"[13;57H"
  3118.        Call Scrn(Strng)
  3119.        Strng=Space$(5)
  3120.        Call Scrn(Strng)
  3121.        Strng=Chr$(27)+"[13;57H"
  3122.        Call Scrn(Strng)
  3123.        Strng=Mid$(Str$(UserRecord.Stats(3)),2)
  3124.        Call Scrn(Strng)
  3125.     Case 24
  3126.        Strng=Chr$(27)+"[15;60H"
  3127.        Call Scrn(Strng)
  3128.        Strng=Space$(5)
  3129.        Call Scrn(Strng)
  3130.        Strng=Chr$(27)+"[15;60H"
  3131.        Call Scrn(Strng)
  3132.        Strng=Mid$(Str$(UserRecord.Stats(4)),2)
  3133.        Call Scrn(Strng)
  3134.     Case 25
  3135.        Strng=Chr$(27)+"[17;63H"
  3136.        Call Scrn(Strng)
  3137.        Strng=Space$(5)
  3138.        Call Scrn(Strng)
  3139.        Strng=Chr$(27)+"[17;63H"
  3140.        Call Scrn(Strng)
  3141.        Strng=Mid$(Str$(UserRecord.Stats(5)),2)
  3142.        Call Scrn(Strng)
  3143.     Case 26
  3144.        Strng=Chr$(27)+"[19;56H"
  3145.        Call Scrn(Strng)
  3146.        Strng=Space$(5)
  3147.        Call Scrn(Strng)
  3148.        Strng=Chr$(27)+"[19;56H"
  3149.        Call Scrn(Strng)
  3150.        Strng=Mid$(Str$(UserRecord.Stats(6)),2)
  3151.        Call Scrn(Strng)
  3152.     Case 27
  3153.        Strng=Chr$(27)+"[21;59H"
  3154.        Call Scrn(Strng)
  3155.        Strng=Space$(5)
  3156.        Call Scrn(Strng)
  3157.        Strng=Chr$(27)+"[21;59H"
  3158.        Call Scrn(Strng)
  3159.        Strng=Mid$(Str$(UserRecord.Stats(7)),2)
  3160.        Call Scrn(Strng)
  3161.     End Select
  3162.  End Select
  3163. 10281
  3164.  Exit Sub
  3165. 10282
  3166.  Resume 10281
  3167. End Sub
  3168.  
  3169. Sub ShowDeletedUser
  3170.  On Local Error Goto 10292
  3171.  Strng=Chr$(27)+"[1;37;40m"
  3172.  Call Scrn(Strng)
  3173.  Strng=Chr$(27)+"[4;2H"
  3174.  Call Scrn(Strng)
  3175.  Strng=Space$(30)
  3176.  Call Scrn(Strng)
  3177.  Strng=Chr$(27)+"[4;2H"
  3178.  Call Scrn(Strng)
  3179.  Strng=Deleted$
  3180.  Call Scrn(Strng)
  3181.  Strng=Chr$(27)+"[6;2H"
  3182.  Call Scrn(Strng)
  3183.  Strng=Space$(20)
  3184.  Call Scrn(Strng)
  3185.  Strng=Chr$(27)+"[6;2H"
  3186.  Call Scrn(Strng)
  3187.  Strng=Deleted$
  3188.  Call Scrn(Strng)
  3189.  Strng=Chr$(27)+"[8;2H"
  3190.  Call Scrn(Strng)
  3191.  Strng=Space$(5)
  3192.  Call Scrn(Strng)
  3193.  Strng=Chr$(27)+"[10;2H"
  3194.  Call Scrn(Strng)
  3195.  Strng=Space$(5)
  3196.  Call Scrn(Strng)
  3197.  Strng=Chr$(27)+"[1;37;44m"
  3198.  Call Scrn(Strng)
  3199.  Strng=Chr$(27)+"[12;7H"
  3200.  Call Scrn(Strng)
  3201.  Strng="(F/M/T/C/P/R/D/L/A/*)"
  3202.  Call Scrn(Strng)
  3203.  Strng=Chr$(27)+"[1;37;40m"
  3204.  Call Scrn(Strng)
  3205.  Strng=Chr$(27)+"[11;7H"
  3206.  Call Scrn(Strng)
  3207.  Strng=Space$(10)
  3208.  Call Scrn(Strng)
  3209.  Strng=Chr$(27)+"[12;29H"
  3210.  Call Scrn(Strng)
  3211.  Strng=" "
  3212.  Call Scrn(Strng)
  3213.  Strng=Chr$(27)+"[13;12H"
  3214.  Call Scrn(Strng)
  3215.  Strng=Space$(7)
  3216.  Call Scrn(Strng)
  3217.  Strng=Chr$(27)+"[13;20H"
  3218.  Call Scrn(Strng)
  3219.  Strng=Space$(7)
  3220.  Call Scrn(Strng)
  3221.  Strng=Chr$(27)+"[15;2H"
  3222.  Call Scrn(Strng)
  3223.  Strng=Space$(20)
  3224.  Call Scrn(Strng)
  3225.  Strng=Chr$(27)+"[15;2H"
  3226.  Call Scrn(Strng)
  3227.  Strng=Deleted$
  3228.  Call Scrn(Strng)
  3229.  Strng=Chr$(27)+"[1;37;44m"
  3230.  Call Scrn(Strng)
  3231.  Strng=Chr$(27)+"[16;20H"
  3232.  Call Scrn(Strng)
  3233.  Strng="(B/P/S/T)"
  3234.  Call Scrn(Strng)
  3235.  Strng=Chr$(27)+"[1;37;40m"
  3236.  Call Scrn(Strng)
  3237.  Strng=Chr$(27)+"[16;30H"
  3238.  Call Scrn(Strng)
  3239.  Strng=" "
  3240.  Call Scrn(Strng)
  3241.  Strng=Chr$(27)+"[17;7H"
  3242.  Call Scrn(Strng)
  3243.  Strng=Space$(3)
  3244.  Call Scrn(Strng)
  3245.  Strng=Chr$(27)+"[17;17H"
  3246.  Call Scrn(Strng)
  3247.  Strng=Space$(3)
  3248.  Call Scrn(Strng)
  3249.  Strng=Chr$(27)+"[17;27H"
  3250.  Call Scrn(Strng)
  3251.  Strng=Space$(3)
  3252.  Call Scrn(Strng)
  3253.  Strng=Chr$(27)+"[17;41H"
  3254.  Call Scrn(Strng)
  3255.  Strng=Space$(3)
  3256.  Call Scrn(Strng)
  3257.  Strng=Chr$(27)+"[19;10H"
  3258.  Call Scrn(Strng)
  3259.  Strng=Space$(5)
  3260.  Call Scrn(Strng)
  3261.  Strng=Chr$(27)+"[19;25H"
  3262.  Call Scrn(Strng)
  3263.  Strng=Space$(5)
  3264.  Call Scrn(Strng)
  3265.  Strng=Chr$(27)+"[19;37H"
  3266.  Call Scrn(Strng)
  3267.  Strng=Space$(5)
  3268.  Call Scrn(Strng)
  3269.  Strng=Chr$(27)+"[21;17H"
  3270.  Call Scrn(Strng)
  3271.  Strng=Space$(5)
  3272.  Call Scrn(Strng)
  3273.  Strng=Chr$(27)+"[3;54H"
  3274.  Call Scrn(Strng)
  3275.  Strng=Space$(22)
  3276.  Call Scrn(Strng)
  3277.  Strng=Chr$(27)+"[5;55H"
  3278.  Call Scrn(Strng)
  3279.  Strng=Space$(22)
  3280.  Call Scrn(Strng)
  3281.  Strng=Chr$(27)+"[7;62H"
  3282.  Call Scrn(Strng)
  3283.  Strng=" "
  3284.  Call Scrn(Strng)
  3285.  Strng=Chr$(27)+"[9;59H"
  3286.  Call Scrn(Strng)
  3287.  Strng=Space$(5)
  3288.  Call Scrn(Strng)
  3289.  Strng=Chr$(27)+"[11;63H"
  3290.  Call Scrn(Strng)
  3291.  Strng=Space$(5)
  3292.  Call Scrn(Strng)
  3293.  Strng=Chr$(27)+"[13;57H"
  3294.  Call Scrn(Strng)
  3295.  Strng=Space$(5)
  3296.  Call Scrn(Strng)
  3297.  Strng=Chr$(27)+"[15;60H"
  3298.  Call Scrn(Strng)
  3299.  Strng=Space$(5)
  3300.  Call Scrn(Strng)
  3301.  Strng=Chr$(27)+"[17;63H"
  3302.  Call Scrn(Strng)
  3303.  Strng=Space$(5)
  3304.  Call Scrn(Strng)
  3305.  Strng=Chr$(27)+"[19;56H"
  3306.  Call Scrn(Strng)
  3307.  Strng=Space$(5)
  3308.  Call Scrn(Strng)
  3309.  Strng=Chr$(27)+"[21;59H"
  3310.  Call Scrn(Strng)
  3311.  Strng=Space$(5)
  3312.  Call Scrn(Strng)
  3313. 10291
  3314.  Exit Sub
  3315. 10292
  3316.  Resume 10291
  3317. End Sub
  3318.  
  3319. Sub AddUser
  3320.  On Local Error Goto 10302
  3321.  User.Number=Lof(3)/Len(UserRecord)+1
  3322.  Strng=Deleted$
  3323.  Call Valid(Strng,30)
  3324.  Call Encrypt(Strng,True)
  3325.  UserRecord.CodeName=Strng
  3326.  Strng=Deleted$
  3327.  Call Valid(Strng,20)
  3328.  Call Encrypt(Strng,False)
  3329.  UserRecord.PassWord=Strng
  3330.  Strng=Deleted$
  3331.  Call Valid(Strng,20)
  3332.  Call Encrypt(Strng,True)
  3333.  UserRecord.ClassName=Strng
  3334.  UserRecord.ClassType=False
  3335.  For Temp6=1 To 7
  3336.     UserRecord.Stats(Temp6)=False
  3337.  Next
  3338.  For Temp6=1 To 4
  3339.     UserRecord.Weapons(Temp6)=False
  3340.  Next
  3341.  UserRecord.Room=False
  3342.  UserRecord.Level=False
  3343.  UserRecord.Experience=False
  3344.  UserRecord.Gold=False
  3345.  UserRecord.Borrow=False
  3346.  UserRecord.NumCalls=False
  3347.  UserRecord.Fatigue=False
  3348.  UserRecord.FatigueMax=False
  3349.  UserRecord.Vitality=False
  3350.  UserRecord.VitalityMax=False
  3351.  UserRecord.Magic=False
  3352.  UserRecord.MagicMax=False
  3353.  UserRecord.Psionic=False
  3354.  UserRecord.PsionicMax=False
  3355.  UserRecord.Poison=False
  3356.  UserRecord.Invisible=False
  3357.  UserRecord.Race=False
  3358.  UserRecord.Proficiency=False
  3359.  UserRecord.Bank=False
  3360.  UserRecord.PlayersKilled=False
  3361.  UserRecord.MonstersKilled=False
  3362.  UserRecord.Brief=False
  3363.  Strng=Date$
  3364.  Call Valid(Strng,10)
  3365.  Call Encrypt(Strng,True)
  3366.  UserRecord.DateOn=Strng
  3367.  UserRecord.Align1=False
  3368.  UserRecord.Align2=False
  3369.  UserRecord.Flags=False
  3370.  UserRecord.MaxCalls=False
  3371.  UserRecord.FromHour=False
  3372.  UserRecord.FromMin=False
  3373.  UserRecord.ToHour=False
  3374.  UserRecord.ToMin=False
  3375.  Put 3,User.Number,UserRecord
  3376.  Call DisplayUser
  3377. 10301
  3378.  Exit Sub
  3379. 10302
  3380.  Resume 10301
  3381. End Sub
  3382.  
  3383. Sub StatusLine
  3384.  On Local Error Goto 10312
  3385.  Temp1$=Strng
  3386.  Temp2$=Out2
  3387.  Strng=Chr$(27)+"[1;33;44m"
  3388.  Call Scrn(Strng)
  3389.  Strng=Chr$(27)+"[23;2H"
  3390.  Call Scrn(Strng)
  3391.  Strng=Space$(78)
  3392.  Call Scrn(Strng)
  3393.  Strng=Chr$(27)+"[23;2H"
  3394.  Call Scrn(Strng)
  3395.  Call Scrn(Temp1$)
  3396.  Strng=Chr$(27)+"[24;2H"
  3397.  Call Scrn(Strng)
  3398.  Strng=Space$(78)
  3399.  Call Scrn(Strng)
  3400.  Strng=Chr$(27)+"[24;2H"
  3401.  Call Scrn(Strng)
  3402.  Call Scrn(Temp2$)
  3403. 10311
  3404.  Exit Sub
  3405. 10312
  3406.  Resume 10311
  3407. End Sub
  3408.  
  3409. Sub AddRoom
  3410.  On Local Error Goto 10322
  3411.  Room.Number=Lof(5)/Len(RoomRecord)+1
  3412.  RoomRecord.ShortDesc=Nul
  3413.  RoomRecord.Restrictions=False
  3414.  RoomRecord.MonsterClass=False
  3415.  RoomRecord.SpellTrigger=False
  3416.  RoomRecord.MonsterTrigger=False
  3417.  RoomRecord.HealthRate=False
  3418.  RoomRecord.EncounterRate=False
  3419.  RoomRecord.HitPoints=False
  3420.  RoomRecord.Inventory=False
  3421.  RoomRecord.MonsterTalk=False
  3422.  RoomRecord.Fumble=False
  3423.  RoomRecord.Level=False
  3424.  RoomRecord.Teleport=False
  3425.  RoomRecord.RustRate=False
  3426.  RoomRecord.StealRate=False
  3427.  For Temp6=1 To 4
  3428.     RoomRecord.LongDesc(Temp6)=Nul
  3429.  Next
  3430.  For Temp6=1 To 11
  3431.     RoomRecord.Direct(Temp6)=False
  3432.  Next
  3433.  For Temp6=1 To 10
  3434.     RoomRecord.Object(Temp6)=False
  3435.     RoomRecord.ObjCharges(Temp6)=False
  3436.     RoomRecord.Treasure(Temp6)=False
  3437.     RoomRecord.TreCharges(Temp6)=False
  3438.     RoomRecord.Flags(Temp6)=False
  3439.  Next
  3440.  Put 5,Room.Number,RoomRecord
  3441.  Call DisplayRoom
  3442. 10321
  3443.  Exit Sub
  3444. 10322
  3445.  Resume 10321
  3446. End Sub
  3447.  
  3448. Sub AddAction
  3449.  On Local Error Goto 10332
  3450.  Room.Number=Lof(5)/Len(RoomRecord)+1
  3451.  RoomRecord.ShortDesc=Nul
  3452.  RoomRecord.Restrictions=False
  3453.  RoomRecord.MonsterClass=False
  3454.  RoomRecord.SpellTrigger=False
  3455.  RoomRecord.MonsterTrigger=False
  3456.  RoomRecord.HealthRate=False
  3457.  RoomRecord.EncounterRate=False
  3458.  RoomRecord.HitPoints=False
  3459.  RoomRecord.Inventory=False
  3460.  RoomRecord.MonsterTalk=False
  3461.  RoomRecord.Fumble=False
  3462.  RoomRecord.Level=False
  3463.  RoomRecord.Teleport=False
  3464.  RoomRecord.RustRate=False
  3465.  RoomRecord.StealRate=False
  3466.  For Temp6=1 To 4
  3467.     RoomRecord.LongDesc(Temp6)=Nul
  3468.  Next
  3469.  For Temp6=1 To 11
  3470.     RoomRecord.Direct(Temp6)=False
  3471.  Next
  3472.  For Temp6=1 To 10
  3473.     RoomRecord.Object(Temp6)=False
  3474.     RoomRecord.ObjCharges(Temp6)=False
  3475.     RoomRecord.Treasure(Temp6)=False
  3476.     RoomRecord.TreCharges(Temp6)=False
  3477.     RoomRecord.Flags(Temp6)=False
  3478.  Next
  3479.  Put 5,Room.Number,RoomRecord
  3480.  Call DisplayAction
  3481. 10331
  3482.  Exit Sub
  3483. 10332
  3484.  Resume 10331
  3485. End Sub
  3486.  
  3487. Sub ShowRoomObject
  3488.  On Local Error Goto 10352
  3489.  Call ClearSubstats
  3490.  TempD=True
  3491.  Strng=Chr$(27)+"[1;33;44m"
  3492.  Call Scrn(Strng)
  3493.  Strng=Chr$(27)+"[16;45H"
  3494.  Call Scrn(Strng)
  3495.  Strng="Object Number"+Str$(Object.Number)
  3496.  Call Scrn(Strng)
  3497.  Strng=Chr$(27)+"[1;37;40m"
  3498.  Call Scrn(Strng)
  3499.  Strng=Chr$(27)+"[2;33H"
  3500.  Call Scrn(Strng)
  3501.  Strng="  "
  3502.  Call Scrn(Strng)
  3503.  Strng=Chr$(27)+"[2;33H"
  3504.  Call Scrn(Strng)
  3505.  Strng=Mid$(Str$(Room.Objects),2)
  3506.  Call Scrn(Strng)
  3507.  If Object.Index=False Then
  3508.     Exit Sub
  3509.  Endif
  3510.  Get 6,Object.Index,ObjectRecord
  3511.  Strng=Chr$(27)+"[1;37;44m"
  3512.  Call Scrn(Strng)
  3513.  Strng=Chr$(27)+"[17;34H"
  3514.  Call Scrn(Strng)
  3515.  Strng="Name:"
  3516.  Call Scrn(Strng)
  3517.  Strng=Left$(ObjectRecord.ObjectName,20)
  3518.  Call Scrn(Strng)
  3519.  Strng=Chr$(27)+"[18;34H"
  3520.  Call Scrn(Strng)
  3521.  Strng="Identifier:"
  3522.  Call Scrn(Strng)
  3523.  Strng=Left$(ObjectRecord.ShortName,14)
  3524.  Strng=Lcase$(Strng)
  3525.  Call Scrn(Strng)
  3526.  Strng=Chr$(27)+"[19;34H"
  3527.  Call Scrn(Strng)
  3528.  Strng="Room Link:"
  3529.  Call Scrn(Strng)
  3530.  Strng=Mid$(Str$(ObjectRecord.RoomLink),2)
  3531.  Call Scrn(Strng)
  3532.  Strng=Chr$(27)+"[20;34H"
  3533.  Call Scrn(Strng)
  3534.  Strng="Permanent:"
  3535.  Call Scrn(Strng)
  3536.  If ObjectRecord.Permanent Then
  3537.     Call Scrn("Yes")
  3538.  Else
  3539.     Call Scrn("No")
  3540.  Endif
  3541.  Strng=Chr$(27)+"[21;34H"
  3542.  Call Scrn(Strng)
  3543.  Strng="Hidden:"
  3544.  Call Scrn(Strng)
  3545.  If RoomRecord.Flags(Room.Index)=Hidden.Object Then
  3546.     Call Scrn("Yes")
  3547.  Else
  3548.     Call Scrn("No")
  3549.  Endif
  3550.  Strng=Chr$(27)+"[22;34H"
  3551.  Call Scrn(Strng)
  3552.  Strng="Magically Hidden:"
  3553.  Call Scrn(Strng)
  3554.  If RoomRecord.Flags(Room.Index)=Magically.Hidden Then
  3555.     Call Scrn("Yes")
  3556.  Else
  3557.     Call Scrn("No")
  3558.  Endif
  3559.  Strng=Chr$(27)+"[17;60H"
  3560.  Call Scrn(Strng)
  3561.  Strng="Hidden:"
  3562.  Call Scrn(Strng)
  3563.  If ObjectRecord.Hidden Then
  3564.     Call Scrn("Yes")
  3565.  Else
  3566.     Call Scrn("No")
  3567.  Endif
  3568.  Strng=Chr$(27)+"[18;60H"
  3569.  Call Scrn(Strng)
  3570.  Strng="Invisible:"
  3571.  Call Scrn(Strng)
  3572.  If ObjectRecord.Invisible Then
  3573.     Call Scrn("Yes")
  3574.  Else
  3575.     Call Scrn("No")
  3576.  Endif
  3577.  Strng=Chr$(27)+"[19;60H"
  3578.  Call Scrn(Strng)
  3579.  Strng="Trapped:"
  3580.  Call Scrn(Strng)
  3581.  If ObjectRecord.JailTrap Then
  3582.     Call Scrn("Yes")
  3583.  Else
  3584.     Call Scrn("No")
  3585.  Endif
  3586.  Strng=Chr$(27)+"[20;60H"
  3587.  Call Scrn(Strng)
  3588.  Strng="Locked:"
  3589.  Call Scrn(Strng)
  3590.  If ObjectRecord.DoorLock>1 Then
  3591.     Call Scrn("Yes")
  3592.  Else
  3593.     Call Scrn("No")
  3594.  Endif
  3595.  Strng=Chr$(27)+"[21;60H"
  3596.  Call Scrn(Strng)
  3597.  Strng="Relocks:"
  3598.  Call Scrn(Strng)
  3599.  If ObjectRecord.Relocks Then
  3600.     Call Scrn("Yes")
  3601.  Else
  3602.     Call Scrn("No")
  3603.  Endif
  3604.  Strng=Chr$(27)+"[22;60H"
  3605.  Call Scrn(Strng)
  3606.  Strng="Key Number:"
  3607.  Call Scrn(Strng)
  3608.  Strng=Mid$(Str$(ObjectRecord.Keyed),2)
  3609.  Call Scrn(Strng)
  3610. 10351
  3611.  Exit Sub
  3612. 10352
  3613.  Resume 10351
  3614. End Sub
  3615.  
  3616. Sub ShowRoomTreasure
  3617.  On Local Error Goto 10362
  3618.  Call ClearSubstats
  3619.  TempD=True
  3620.  Strng=Chr$(27)+"[1;33;44m"
  3621.  Call Scrn(Strng)
  3622.  Strng=Chr$(27)+"[16;45H"
  3623.  Call Scrn(Strng)
  3624.  Strng="Treasure Number"+Str$(Treasure.Number)
  3625.  Call Scrn(Strng)
  3626.  Strng=Chr$(27)+"[1;37;40m"
  3627.  Call Scrn(Strng)
  3628.  Strng=Chr$(27)+"[2;22H"
  3629.  Call Scrn(Strng)
  3630.  Strng="  "
  3631.  Call Scrn(Strng)
  3632.  Strng=Chr$(27)+"[2;22H"
  3633.  Call Scrn(Strng)
  3634.  Strng=Mid$(Str$(Room.Treasure),2)
  3635.  Call Scrn(Strng)
  3636.  If Treasure.Index=False Then
  3637.     Exit Sub
  3638.  Endif
  3639.  Get 8,Treasure.Index,TreasureRecord
  3640.  Strng=Chr$(27)+"[1;37;44m"
  3641.  Call Scrn(Strng)
  3642.  Strng=Chr$(27)+"[17;34H"
  3643.  Call Scrn(Strng)
  3644.  Strng="Name:"
  3645.  Call Scrn(Strng)
  3646.  Strng=Left$(TreasureRecord.TreasureName,20)
  3647.  Call Scrn(Strng)
  3648.  Strng=Chr$(27)+"[18;34H"
  3649.  Call Scrn(Strng)
  3650.  Strng="Identifier:"
  3651.  Call Scrn(Strng)
  3652.  Strng=Left$(TreasureRecord.ShortName,14)
  3653.  Strng=Lcase$(Strng)
  3654.  Call Scrn(Strng)
  3655.  Strng=Chr$(27)+"[19;34H"
  3656.  Call Scrn(Strng)
  3657.  Strng="Weight:"
  3658.  Call Scrn(Strng)
  3659.  Strng=Mid$(Str$(TreasureRecord.Weight),2)
  3660.  Call Scrn(Strng)
  3661.  Strng=Chr$(27)+"[20;34H"
  3662.  Call Scrn(Strng)
  3663.  Strng="Value:"
  3664.  Call Scrn(Strng)
  3665.  Strng=Mid$(Str$(TreasureRecord.Gold),2)
  3666.  Call Scrn(Strng)
  3667.  Strng=Chr$(27)+"[21;34H"
  3668.  Call Scrn(Strng)
  3669.  Strng="Hits:"
  3670.  Call Scrn(Strng)
  3671.  Strng=Mid$(Str$(Abs(TreasureRecord.Plus)),2)
  3672.  Call Scrn(Strng)
  3673.  Strng=Chr$(27)+"[22;34H"
  3674.  Call Scrn(Strng)
  3675.  Strng="Strikes:"
  3676.  Call Scrn(Strng)
  3677.  Strng=Mid$(Str$(TreasureRecord.Charges),2)
  3678.  Call Scrn(Strng)
  3679.  Strng=Chr$(27)+"[17;60H"
  3680.  Call Scrn(Strng)
  3681.  Strng="Coins:"
  3682.  Call Scrn(Strng)
  3683.  If TreasureRecord.Coin Then
  3684.     Call Scrn("Yes")
  3685.  Else
  3686.     Call Scrn("No")
  3687.  Endif
  3688.  Strng=Chr$(27)+"[18;60H"
  3689.  Call Scrn(Strng)
  3690.  Strng="Potion:"
  3691.  Call Scrn(Strng)
  3692.  If TreasureRecord.Potion Then
  3693.     Call Scrn("Yes")
  3694.  Else
  3695.     Call Scrn("No")
  3696.  Endif
  3697.  Strng=Chr$(27)+"[19;60H"
  3698.  Call Scrn(Strng)
  3699.  Strng="Scroll:"
  3700.  Call Scrn(Strng)
  3701.  If TreasureRecord.Scroll Then
  3702.     Call Scrn("Yes")
  3703.  Else
  3704.     Call Scrn("No")
  3705.  Endif
  3706.  Strng=Chr$(27)+"[20;60H"
  3707.  Call Scrn(Strng)
  3708.  Strng="Invisible:"
  3709.  Call Scrn(Strng)
  3710.  If TreasureRecord.Invisible Then
  3711.     Call Scrn("Yes")
  3712.  Else
  3713.     Call Scrn("No")
  3714.  Endif
  3715.  Strng=Chr$(27)+"[21;60H"
  3716.  Call Scrn(Strng)
  3717.  Strng="Key Number:"
  3718.  Call Scrn(Strng)
  3719.  Strng=Mid$(Str$(TreasureRecord.Keyed),2)
  3720.  Call Scrn(Strng)
  3721.  Strng=Chr$(27)+"[22;60H"
  3722.  Call Scrn(Strng)
  3723.  Strng="Spell:"
  3724.  Call Scrn(Strng)
  3725.  If TreasureRecord.Spell=False Then
  3726.     Strng="<none>"
  3727.     Call Scrn(Strng)
  3728.     Strng=Space$(8)
  3729.     Call Scrn(Strng)
  3730.  Else
  3731.     If TreasureRecord.Spell<1 Or_
  3732.     TreasureRecord.Spell>Lof(4)/Len(SpellRecord) Then
  3733.        Strng="<out of range>"
  3734.        Call Scrn(Strng)
  3735.     Else
  3736.        Get 4,TreasureRecord.Spell,SpellRecord
  3737.        Strng=Left$(SpellRecord.SpellName,14)
  3738.        Call Scrn(Strng)
  3739.     Endif
  3740.  Endif
  3741. 10361
  3742.  Exit Sub
  3743. 10362
  3744.  Resume 10361
  3745. End Sub
  3746.  
  3747. Sub ClearSubstats
  3748.  On Local Error Goto 10372
  3749.  If TempD Then
  3750.     Strng=Chr$(27)+"[1;37;44m"
  3751.     Call Scrn(Strng)
  3752.     For Temp2=16 To 22
  3753.        Strng=Chr$(27)+"["+Mid$(Str$(Temp2),2)+";34H"
  3754.        Call Scrn(Strng)
  3755.        Strng=Space$(46)
  3756.        Call Scrn(Strng)
  3757.     Next
  3758.     TempD=False
  3759.  Endif
  3760. 10371
  3761.  Exit Sub
  3762. 10372
  3763.  Resume 10371
  3764. End Sub
  3765.  
  3766. Sub Help(Var1)
  3767.  On Local Error Goto 10382
  3768.  Strng=Chr$(27)+"[1;37;44m"
  3769.  Call Scrn(Strng)
  3770.  Strng=Chr$(27)+"[2J"
  3771.  Call Scrn(Strng)
  3772.  Strng=Chr$(27)+"[1;36;44m"
  3773.  Call Scrn(Strng)
  3774.  Strng=Chr$(27)+"[1;1H"
  3775.  Call Scrn(Strng)
  3776.  Strng=Chr$(214)+String$(78,196)+Chr$(183)
  3777.  Call Scrn(Strng)
  3778.  For Temp=2 To 24
  3779.     Strng=Chr$(27)+"["+Mid$(Str$(Temp),2)+";1H"
  3780.     Call Scrn(Strng)
  3781.     Strng=Chr$(186)
  3782.     Call Scrn(Strng)
  3783.     Strng=Chr$(27)+"["+Mid$(Str$(Temp),2)+";80H"
  3784.     Call Scrn(Strng)
  3785.     Strng=Chr$(186)
  3786.     Call Scrn(Strng)
  3787.  Next
  3788.  Strng=Chr$(27)+"[25;1H"
  3789.  Call Scrn(Strng)
  3790.  Strng=Chr$(211)+String$(78,196)
  3791.  Call Scrn(Strng)
  3792.  Color 11,1
  3793.  Locate 25,80,0
  3794.  Print Chr$(189);
  3795.  Strng=Chr$(27)+"[25;6H"
  3796.  Call Scrn(Strng)
  3797.  Strng=Chr$(27)+"[1;37;44m"
  3798.  Call Scrn(Strng)
  3799.  Strng=" Next Screen: Cursor Up/Dn "
  3800.  Call Scrn(Strng)
  3801.  Strng=Chr$(27)+"[25;35H"
  3802.  Call Scrn(Strng)
  3803.  Strng=" Next Topic: Page Up/Dn "
  3804.  Call Scrn(Strng)
  3805.  Strng=Chr$(27)+"[25;61H"
  3806.  Call Scrn(Strng)
  3807.  Strng=" Quit: Escape "
  3808.  Call Scrn(Strng)
  3809.  Strng=Chr$(27)+"[1;33;44m"
  3810.  Call Scrn(Strng)
  3811.  Temp2=1
  3812.  Temp1=False
  3813.  Gosub Read.Data
  3814.  Do
  3815.     TempX$=Inkey$
  3816.     While TempX$=Nul
  3817.        TempX$=Inkey$
  3818.     Wend
  3819.     If TempX$=Chr$(27) Then
  3820.        Exit Sub
  3821.     Endif
  3822.     If Len(TempX$)=2 Then
  3823.        Temp8=Asc(Mid$(TempX$,2,1))
  3824.        Select Case Temp8
  3825.        Case 72
  3826.           If Temp2<>1 Then
  3827.              Temp2=Temp2-1
  3828.              Gosub Read.Data
  3829.           Endif
  3830.        Case 73
  3831.           If Temp1 Then
  3832.              Temp2=1
  3833.              Temp1=Temp1-1
  3834.              Gosub Read.Data
  3835.           Endif
  3836.        Case 80
  3837.           Temp2=Temp2+1
  3838.           Gosub Read.Data
  3839.           Temp2=Temp4
  3840.        Case 81
  3841.           Temp1=Temp1+1
  3842.           Temp3=Temp2
  3843.           Temp2=1
  3844.           Gosub Read.Data
  3845.           If Temp5<Temp1 Then
  3846.              Temp1=Temp5
  3847.              Temp2=Temp3
  3848.           Endif
  3849.        End Select
  3850.     Endif
  3851.  Loop
  3852.  Exit Sub
  3853.  
  3854. Read.Data:
  3855.  Restore HelpData
  3856.  Temp5=False
  3857.  Temp8=1
  3858.  Dat1=False
  3859.  Dat2=False
  3860.  Dat3=False
  3861.  Do
  3862.     Read Dat1,Dat2,Dat3,OutZ
  3863.     OutZ=" "+OutZ+" "
  3864.     If Dat1>False And Dat1>Var1 Then
  3865.        Return
  3866.     Endif
  3867.     If (Dat1=Var1 Or Dat1=False) And Dat2=Temp1 Then
  3868.        Temp5=Dat2
  3869.        Temp4=1
  3870.        Temp7=False
  3871.        For Temp9=1 To Dat3
  3872.           Get 1,Temp9+Temp8,HelpRecord1
  3873.           Temp7=Temp7+1
  3874.           If Temp4=Temp2 Then
  3875.              Strng=Chr$(27)+"[1;"+Mid$(Str$(HelpRecord1.TextColor),2)+";44m"
  3876.              Call Scrn(Strng)
  3877.              Strng=Chr$(27)+"["+Mid$(Str$(Temp7+1),2)+";2H"
  3878.              Call Scrn(Strng)
  3879.              Strng=HelpRecord1.Text
  3880.              Call Scrn(Strng)
  3881.           Endif
  3882.           If Temp4=Temp2 And Temp7=1 Then
  3883.              Strng=Chr$(27)+"[1;37;44m"
  3884.              Call Scrn(Strng)
  3885.              Strng=Chr$(27)+"[1;2H"
  3886.              Call Scrn(Strng)
  3887.              Strng=String$(78,196)
  3888.              Call Scrn(Strng)
  3889.              VarX=Int(40-Len(OutZ)/2+1)
  3890.              Strng=Chr$(27)+"[1;"+Mid$(Str$(VarX),2)+"H"
  3891.              Call Scrn(Strng)
  3892.              Strng=OutZ
  3893.              Call Scrn(Strng)
  3894.           Endif
  3895.           If Temp7=22 Then
  3896.              If Temp4=Temp2 Then
  3897.                 Return
  3898.              Else
  3899.                 Temp4=Temp4+1
  3900.                 Temp7=False
  3901.              Endif
  3902.           Endif
  3903.        Next
  3904.        If Temp2>Temp4 Or Temp7=False Then
  3905.           Return
  3906.        Endif
  3907.        If Temp7<22 Then
  3908.           For Temp9=Temp7+1 To 22
  3909.              Strng=Chr$(27)+"["+Mid$(Str$(Temp9+1),2)+";2H"
  3910.              Call Scrn(Strng)
  3911.              Strng=Space$(78)
  3912.              Call Scrn(Strng)
  3913.           Next
  3914.        Endif 
  3915.        Return
  3916.     Endif
  3917.     Temp8=Temp8+Dat3
  3918.     Temp5=Dat2
  3919.  Loop Until Dat1=99 And Dat2=99 And Dat3=99
  3920.  Return
  3921. 10381
  3922.  Exit Sub
  3923. 10382
  3924.  Resume 10381
  3925. End Sub
  3926.  
  3927. Sub Scrn(Var$)
  3928.  On Local Error Goto 10392
  3929.  Var$=Var$+"$"
  3930.  InregsX.AX=&H0900
  3931.  InregsX.DS=Sseg(Var$)
  3932.  InregsX.DX=Sadd(Var$)
  3933.  Call InterruptX(&H21,InregsX,OutregsX)
  3934. 10391
  3935.  Exit Sub
  3936. 10392
  3937.  Resume 10391
  3938. End Sub
  3939.  
  3940. HelpData:
  3941.  Data 0,0,19,"DNDEDIT KEYS CHART"
  3942.  Data 1,1,34,"DNDEDIT ROOM EDIT KEYS CHART"
  3943.  Data 1,2,38,"DNDEDIT ROOM FIELDS"
  3944.  Data 2,1,16,"DNDEDIT OBJECT EDIT KEYS CHART"
  3945.  Data 2,2,146,"DNDEDIT OBJECT FIELDS"
  3946.  Data 3,1,17,"DNDEDIT TREASURE EDIT KEYS CHART"
  3947.  Data 3,2,250,"DNDEDIT TREASURE FIELDS"
  3948.  Data 4,1,17,"DNDEDIT MONSTER EDIT KEYS CHART"
  3949.  Data 4,2,172,"DNDEDIT MONSTER FIELDS"
  3950.  Data 5,1,16,"DNDEDIT SPELL EDIT KEYS CHART"
  3951.  Data 5,2,120,"DNDEDIT SPELL FIELDS"
  3952.  Data 6,1,10,"DNDEDIT ACTION EDIT KEYS CHART"
  3953.  Data 6,2,125,"DNDEDIT ACTION FIELDS"
  3954.  Data 7,1,20,"DNDEDIT USER EDIT KEYS CHART"
  3955.  Data 7,2,234,"DNDEDIT USER FIELDS"
  3956.  Data 8,1,14,"DNDEDIT MONCLASS EDIT KEYS CHART"
  3957.  Data 8,2,19,"DNDEDIT MONCLASS FIELDS"
  3958.  Data 9,1,17,"DNDEDIT ROOMLINK EDIT KEYS CHART"
  3959.  Data 9,2,9,"DNDEDIT ROOMLINK FIELDS"
  3960.  Data 10,1,17,"DNDEDIT NONPLAYER EDIT KEYS CHART"
  3961.  Data 10,2,146,"DNDEDIT NONPLAYER FIELDS"
  3962.  Data 99,99,99,"EOF"
  3963.