home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Beijing Paradise BBS Backup
/
PARADISE.ISO
/
software
/
BBSDOORW
/
DND29C4.ZIP
/
SOURCE.ZIP
/
DNDEDIT1.BAS
< prev
next >
Wrap
BASIC Source File
|
1993-01-07
|
92KB
|
3,963 lines
Rem dndedit1.bas v2.9c
Rem $Include: 'dndbbs.inc'
Sub ShowObject
On Local Error Goto 10002
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;8H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="Object"+Str$(Object.Number)
Call Scrn(Strng)
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=ObjectRecord.ObjectName
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[7;2H"
Call Scrn(Strng)
Strng=Lcase$(ObjectRecord.ShortName)
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[9;12H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;12H"
Call Scrn(Strng)
Strng=Mid$(Str$(ObjectRecord.RoomLink),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[11;10H"
Call Scrn(Strng)
If ObjectRecord.LightRoom Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 5
Strng=Chr$(27)+"[11;25H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;25H"
Call Scrn(Strng)
Strng=Mid$(Str$(ObjectRecord.LightTime),2)
Call Scrn(Strng)
Case 6
Strng=Chr$(27)+"[13;13H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;13H"
Call Scrn(Strng)
Strng=Mid$(Str$(ObjectRecord.Keyed),2)
Call Scrn(Strng)
Case 7
Strng=Chr$(27)+"[16;2H"
Call Scrn(Strng)
Strng=Left$(ObjectRecord.LongDesc,78)
Call Scrn(Strng)
Case 8
Strng=Chr$(27)+"[19;2H"
Call Scrn(Strng)
Strng=Left$(ObjectRecord.ShortDesc,40)
Call Scrn(Strng)
Case 9
Strng=Chr$(27)+"[3;57H"
Call Scrn(Strng)
If ObjectRecord.Hidden Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 10
Strng=Chr$(27)+"[5;60H"
Call Scrn(Strng)
If ObjectRecord.Invisible Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 11
Strng=Chr$(27)+"[7;60H"
Call Scrn(Strng)
If ObjectRecord.JailTrap Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 12
Strng=Chr$(27)+"[9;57H"
Call Scrn(Strng)
If ObjectRecord.DoorLock>1 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 13
Strng=Chr$(27)+"[11;58H"
Call Scrn(Strng)
If ObjectRecord.Relocks Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 14
Strng=Chr$(27)+"[13;60H"
Call Scrn(Strng)
If ObjectRecord.Permanent Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 15
Strng=Chr$(27)+"[15;65H"
Call Scrn(Strng)
Strng="?"
If ObjectRecord.Trap=1 Then
Strng="P"
Endif
If ObjectRecord.Trap=2 Then
Strng="F"
Endif
If ObjectRecord.Trap=3 Then
Strng="D"
Endif
Call Scrn(Strng)
End Select
End Select
10001
Exit Sub
10002
Resume 10001
End Sub
Sub DisplayObject
On Local Error Goto 10012
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[17;50H"
Call Scrn(Strng)
If ObjectRecord.Trap<=1 Then
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(4)
Call Scrn(Strng)
Else
If ObjectRecord.Trap=2 Then
Strng="Teleport"
Call Scrn(Strng)
Else
If ObjectRecord.Trap=3 Then
Strng="Hits For"
Call Scrn(Strng)
Endif
Endif
Endif
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[17;59H"
Call Scrn(Strng)
If ObjectRecord.Trap=2 Then
If ObjectRecord.Teleport>False Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Else
If ObjectRecord.Trap=3 Then
If ObjectRecord.Teleport>False Then
Call Scrn("F")
Else
If ObjectRecord.Teleport<False Then
Call Scrn("V")
Else
Call Scrn("?")
Endif
Endif
Endif
Endif
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[18;50H"
Call Scrn(Strng)
If ObjectRecord.Trap<=1 Then
Strng=Space$(16)
Call Scrn(Strng)
Else
If ObjectRecord.Trap=2 Then
Title.Data(17)="Room Teleport To"
Strng="Room Teleport To"
Call Scrn(Strng)
Else
If ObjectRecord.Trap=3 Then
Title.Data(17)="Fatigue/Vitality"
Strng="Fatigue/Vitality"
Call Scrn(Strng)
Endif
Endif
Endif
If ObjectRecord.Trap>1 Then
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Else
Strng=Chr$(27)+"[0;33;44m"
Call Scrn(Strng)
Endif
Strng=Chr$(27)+"[19;50H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
If ObjectRecord.Trap>1 Then
Strng=Chr$(27)+"[19;50H"
Call Scrn(Strng)
Strng=Mid$(Str$(Abs(ObjectRecord.Teleport)),2)
Call Scrn(Strng)
Endif
10011
Exit Sub
10012
Resume 10011
End Sub
Sub AddObject
On Local Error Goto 10022
Object.Number=Lof(6)/Len(ObjectRecord)+1
ObjectRecord.ObjectName=Nul
ObjectRecord.ShortName=Nul
ObjectRecord.RoomLink=False
ObjectRecord.Invisible=False
ObjectRecord.JailTrap=False
ObjectRecord.DoorLock=False
ObjectRecord.Permanent=False
ObjectRecord.Hidden=False
ObjectRecord.Closed=False
ObjectRecord.Keyed=False
ObjectRecord.Relocks=False
ObjectRecord.LightRoom=False
ObjectRecord.LightTime=False
ObjectRecord.LongDesc=Nul
ObjectRecord.ShortDesc=Nul
ObjectRecord.Trap=False
ObjectRecord.Teleport=False
Put 6,Object.Number,ObjectRecord
Call DisplayObjectScreen
10021
Exit Sub
10022
Resume 10021
End Sub
Sub ShowTreasure
On Local Error Goto 10032
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;11H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="Treasure"+Str$(Treasure.Number)
Call Scrn(Strng)
Exit Sub
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=TreasureRecord.TreasureName
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[6;2H"
Call Scrn(Strng)
Strng=Lcase$(TreasureRecord.ShortName)
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[8;9H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[8;9H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Weight),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[10;8H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[10;8H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Gold),2)
Call Scrn(Strng)
Case 5
Strng=Chr$(27)+"[12;7H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[12;7H"
Call Scrn(Strng)
Strng=Mid$(Str$(Abs(TreasureRecord.Plus)),2)
Call Scrn(Strng)
Case 6
Strng=Chr$(27)+"[14;10H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[14;10H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Charges),2)
Call Scrn(Strng)
Case 7
Strng=Chr$(27)+"[16;17H"
Call Scrn(Strng)
Strng="?"
If TreasureRecord.Proficiency=1 Then
Strng="B"
Endif
If TreasureRecord.Proficiency=2 Then
Strng="P"
Endif
If TreasureRecord.Proficiency=3 Then
Strng="S"
Endif
If TreasureRecord.Proficiency=4 Then
Strng="T"
Endif
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[16;7H"
Call Scrn(Strng)
Strng="(B/P/S/T)"
Call Scrn(Strng)
Case 8
Strng=Chr$(27)+"[18;16H"
Call Scrn(Strng)
If TreasureRecord.Type=False Then
If TreasureRecord.Plus=False Then
Strng="T"
Else
Strng="W"
Endif
Endif
If TreasureRecord.Type<False Then
Strng="S"
Endif
If TreasureRecord.Type>False Then
Strng="A"
Endif
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[18;6H"
Call Scrn(Strng)
Strng="(S/A/W/T)"
Call Scrn(Strng)
Case 9
Strng=Chr$(27)+"[3;26H"
Call Scrn(Strng)
If TreasureRecord.Coin Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 10
Strng=Chr$(27)+"[5;27H"
Call Scrn(Strng)
If TreasureRecord.Potion Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 11
Strng=Chr$(27)+"[7;27H"
Call Scrn(Strng)
If TreasureRecord.Scroll Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 12
Strng=Chr$(27)+"[9;30H"
Call Scrn(Strng)
If TreasureRecord.Invisible Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 13
Strng=Chr$(27)+"[11;29H"
Call Scrn(Strng)
If TreasureRecord.Loadable Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 14
Strng=Chr$(27)+"[13;31H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;31H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.AmmoLoads),2)
Call Scrn(Strng)
Case 15
Strng=Chr$(27)+"[15;31H"
Call Scrn(Strng)
If TreasureRecord.Ammunition Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 16
Strng=Chr$(27)+"[17;31H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;31H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Keyed),2)
Call Scrn(Strng)
Case 17
Strng=Chr$(27)+"[19;28H"
Call Scrn(Strng)
If TreasureRecord.Spell Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 18
If TreasureRecord.Spell<1 Or_
TreasureRecord.Spell>Lof(4)/Len(SpellRecord) Then
Strng=Chr$(27)+"[4;40H"
Call Scrn(Strng)
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(14)
Call Scrn(Strng)
Else
Get 4,TreasureRecord.Spell,SpellRecord
Strng=Chr$(27)+"[4;40H"
Call Scrn(Strng)
Strng=Left$(SpellRecord.SpellName,20)
Call Scrn(Strng)
Endif
Case 19
Strng=Chr$(27)+"[5;45H"
Call Scrn(Strng)
If TreasureRecord.RingType Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 20
Strng=Chr$(27)+"[8;40H"
Call Scrn(Strng)
Strng="?"
If TreasureRecord.RingType=1 Then
Strng="P"
Endif
If TreasureRecord.RingType=2 Then
Strng="L"
Endif
If TreasureRecord.RingType=3 Then
Strng="S"
Endif
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[7;50H"
Call Scrn(Strng)
Strng="(P/L/S)"
Call Scrn(Strng)
Case 21
Strng=Chr$(27)+"[10;40H"
Call Scrn(Strng)
If TreasureRecord.RingSpell=False Then
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(14)
Call Scrn(Strng)
Endif
If TreasureRecord.RingSpell<False Then
Strng="<generic spell>"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Endif
If TreasureRecord.RingSpell>False Then
Get 4,TreasureRecord.RingSpell,SpellRecord
Strng=Left$(SpellRecord.SpellName,20)
Call Scrn(Strng)
Endif
Case 22
Strng=Chr$(27)+"[11;51H"
Call Scrn(Strng)
If TreasureRecord.Recep Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 23
Strng=Chr$(27)+"[13;55H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
If TreasureRecord.Recep Then
Strng=Chr$(27)+"[13;55H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.RecepMax),2)
Call Scrn(Strng)
Endif
Case 24
Strng=Chr$(27)+"[15;49H"
Call Scrn(Strng)
If TreasureRecord.RecepFileName<>Nul Then
Strng=TreasureRecord.RecepFileName
Call Scrn(Strng)
Else
Strng=Space$(8)
Call Scrn(Strng)
Endif
Case 25
Strng=Chr$(27)+"[17;47H"
Call Scrn(Strng)
If TreasureRecord.Locked Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 26
Strng=Chr$(27)+"[19;47H"
Call Scrn(Strng)
If TreasureRecord.Edible Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 27
Strng=Chr$(27)+"[3;71H"
Call Scrn(Strng)
If TreasureRecord.Rustable Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 28
Strng=Chr$(27)+"[5;75H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[5;75H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.RustPercent),2)
Call Scrn(Strng)
Case 29
Strng=Chr$(27)+"[7;72H"
Call Scrn(Strng)
If TreasureRecord.Stealable Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 30
Strng=Chr$(27)+"[9;76H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;76H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.StealPercent),2)
Call Scrn(Strng)
Case 31
Strng=Chr$(27)+"[11;73H"
Call Scrn(Strng)
If TreasureRecord.Launchable Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 32
Strng=Chr$(27)+"[13;75H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;75H"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.LaunchLoads),2)
Call Scrn(Strng)
Case 33
Strng=Chr$(27)+"[15;74H"
Call Scrn(Strng)
If TreasureRecord.LaunchAmmo Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 34
Strng=Chr$(27)+"[17;70H"
Call Scrn(Strng)
If TreasureRecord.Movable Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
End Select
End Select
10031
Exit Sub
10032
Resume 10031
End Sub
Sub AddTreasure
On Local Error Goto 10042
Treasure.Number=Lof(8)/Len(TreasureRecord)+1
TreasureRecord.TreasureName=Nul
TreasureRecord.ShortName=Nul
TreasureRecord.Weight=False
TreasureRecord.Gold=False
TreasureRecord.Spell=False
TreasureRecord.Plus=False
TreasureRecord.Coin=False
TreasureRecord.Keyed=False
TreasureRecord.Scroll=False
TreasureRecord.Charges=False
TreasureRecord.Charges=False
TreasureRecord.Recep=False
TreasureRecord.RecepFileName=Nul
TreasureRecord.RecepMax=False
TreasureRecord.Type=False
TreasureRecord.Potion=False
TreasureRecord.Locked=False
TreasureRecord.Closed=False
TreasureRecord.Loadable=False
TreasureRecord.Ammunition=False
TreasureRecord.AmmoLoads=False
TreasureRecord.Invisible=False
TreasureRecord.Proficiency=False
TreasureRecord.RingType=False
TreasureRecord.RingSpell=False
TreasureRecord.Edible=False
TreasureRecord.Rustable=False
TreasureRecord.RustPercent=False
TreasureRecord.Stealable=False
TreasureRecord.StealPercent=False
TreasureRecord.Launchable=False
TreasureRecord.LaunchLoads=False
TreasureRecord.LaunchAmmo=False
TreasureRecord.Movable=False
Put 8,Treasure.Number,TreasureRecord
Call DisplayTreasure
10041
Exit Sub
10042
Resume 10041
End Sub
Sub ShowMonster
On Local Error Goto 10052
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;10H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="Monster"+Str$(Monster.Number)
Call Scrn(Strng)
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=MonsterRecord.MonsterName
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[7;2H"
Call Scrn(Strng)
Strng=MonsterRecord.PluralName
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[9;8H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;8H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Level),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Hits),2)
Call Scrn(Strng)
Case 5
Strng=Chr$(27)+"[13;13H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;13H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Experience),2)
Call Scrn(Strng)
Case 6
For Temp6=1 To 5
Temp7=MonsterRecord.Treasure(Temp6)
Strng=Chr$(27)+"["+Mid$(Str$(Temp6+14),2)+";2H"
Call Scrn(Strng)
If Temp7>False Then
Get 8,Temp7,TreasureRecord
Strng=TreasureRecord.TreasureName
Call Scrn(Strng)
Else
Strng=Space$(30)
Call Scrn(Strng)
Endif
Next
Case 7
Strng=Chr$(27)+"[21;10H"
Call Scrn(Strng)
If MonsterRecord.Psionic Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 8
If MonsterRecord.Psionic=False Then
Strng=Chr$(27)+"[21;22H"
Call Scrn(Strng)
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(14)
Call Scrn(Strng)
Else
Strng=Chr$(27)+"[21;22H"
Call Scrn(Strng)
Get 4,MonsterRecord.PsionicSpell,SpellRecord
Strng=Left$(SpellRecord.SpellName,20)
Call Scrn(Strng)
Endif
Case 9
Strng=Chr$(27)+"[3;58H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[3;58H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.NumberAppearing),2)
Call Scrn(Strng)
Case 10
Strng=Chr$(27)+"[5;52H"
Call Scrn(Strng)
If MonsterRecord.Poison Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 11
Strng=Chr$(27)+"[5;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[5;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.PoisonPercent),2)
Call Scrn(Strng)
Case 12
Strng=Chr$(27)+"[7;57H"
Call Scrn(Strng)
If MonsterRecord.LevelDrain Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 13
Strng=Chr$(27)+"[7;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[7;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.DrainPercent),2)
Call Scrn(Strng)
Case 14
Strng=Chr$(27)+"[9;51H"
Call Scrn(Strng)
If MonsterRecord.Block Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 15
Strng=Chr$(27)+"[9;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.BlockPercent),2)
Call Scrn(Strng)
Case 16
Strng=Chr$(27)+"[11;53H"
Call Scrn(Strng)
If MonsterRecord.Prevent Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 17
Strng=Chr$(27)+"[11;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.PreventPercent),2)
Call Scrn(Strng)
Case 18
Strng=Chr$(27)+"[13;52H"
Call Scrn(Strng)
If MonsterRecord.Follow Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 19
Strng=Chr$(27)+"[13;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.FollowPercent),2)
Call Scrn(Strng)
Case 20
Strng=Chr$(27)+"[13;72H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;72H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Teleport),2)
Call Scrn(Strng)
Case 21
Strng=Chr$(27)+"[15;56H"
Call Scrn(Strng)
If MonsterRecord.Spell Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 22
Strng=Chr$(27)+"[15;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.SpellPercent),2)
Call Scrn(Strng)
Case 23
Strng=Chr$(27)+"[17;51H"
Call Scrn(Strng)
If MonsterRecord.Spell<1 Or_
MonsterRecord.Spell>Lof(4)/Len(SpellRecord) Then
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(14)
Call Scrn(Strng)
Else
Get 4,MonsterRecord.Spell,SpellRecord
Strng=Left$(SpellRecord.SpellName,20)
Call Scrn(Strng)
Endif
Case 24
Strng=Chr$(27)+"[19;53H"
Call Scrn(Strng)
If MonsterRecord.Magic Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 25
Strng=Chr$(27)+"[19;65H"
Call Scrn(Strng)
If MonsterRecord.Permanent Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 26
Strng=Chr$(27)+"[20;54H"
Call Scrn(Strng)
If MonsterRecord.Equation Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[21;45H"
Call Scrn(Strng)
Strng=Space$(35)
Call Scrn(Strng)
Strng=Chr$(27)+"[21;45H"
Call Scrn(Strng)
Strng=Rtrim$(MonsterRecord.MonsterEquate)
Strng=Left$(Strng,35)
Call Scrn(Strng)
End Select
End Select
10051
Exit Sub
10052
Resume 10051
End Sub
Sub AddMonster
On Local Error Goto 10062
Monster.Number=Lof(7)/Len(MonsterRecord)+1
MonsterRecord.MonsterName=Nul
MonsterRecord.PluralName=Nul
For Temp6=1 To 5
MonsterRecord.Treasure(Temp6)=False
Next
MonsterRecord.Experience=False
MonsterRecord.NumberAppearing=False
MonsterRecord.Level=False
MonsterRecord.Hits=False
MonsterRecord.Poison=False
MonsterRecord.LevelDrain=False
MonsterRecord.Spell=False
MonsterRecord.Block=False
MonsterRecord.Prevent=False
MonsterRecord.Follow=False
MonsterRecord.Magic=False
MonsterRecord.Jail=False
MonsterRecord.Teleport=False
MonsterRecord.FollowPercent=False
MonsterRecord.BlockPercent=False
MonsterRecord.PreventPercent=False
MonsterRecord.SpellPercent=False
MonsterRecord.PoisonPercent=False
MonsterRecord.DrainPercent=False
MonsterRecord.Rate=False
MonsterRecord.RatePercent=False
MonsterRecord.Permanent=False
For Temp6=1 To 5
MonsterRecord.Talk(Temp6)=False
Next
MonsterRecord.Psionic=False
MonsterRecord.PsionicSpell=False
Put 7,Monster.Number,MonsterRecord
Call DisplayMonster
10061
Exit Sub
10062
Resume 10061
End Sub
Sub ShowNonplayer
On Local Error Goto 10072
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;12H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="Nonplayer"+Str$(Nonplayer.Number)
Call Scrn(Strng)
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=MonsterRecord.MonsterName
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[7;2H"
Call Scrn(Strng)
Strng=MonsterRecord.PluralName
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[9;8H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;8H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Level),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Hits),2)
Call Scrn(Strng)
Case 5
Strng=Chr$(27)+"[13;13H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;13H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Experience),2)
Call Scrn(Strng)
Case 6
For Temp6=1 To 5
Temp7=MonsterRecord.Treasure(Temp6)
Strng=Chr$(27)+"["+Mid$(Str$(Temp6+14),2)+";2H"
Call Scrn(Strng)
If Temp7>False Then
Get 8,Temp7,TreasureRecord
Strng=TreasureRecord.TreasureName
Call Scrn(Strng)
Else
Strng=Space$(30)
Call Scrn(Strng)
Endif
Next
Case 7
Strng=Chr$(27)+"[21;10H"
Call Scrn(Strng)
If MonsterRecord.Psionic Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 8
If MonsterRecord.Psionic=False Then
Strng=Chr$(27)+"[21;22H"
Call Scrn(Strng)
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(14)
Call Scrn(Strng)
Else
Strng=Chr$(27)+"[21;22H"
Call Scrn(Strng)
Get 4,MonsterRecord.PsionicSpell,SpellRecord
Strng=Left$(SpellRecord.SpellName,20)
Call Scrn(Strng)
Endif
Case 9
Strng=Chr$(27)+"[3;58H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[3;58H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.NumberAppearing),2)
Call Scrn(Strng)
Case 10
Strng=Chr$(27)+"[5;52H"
Call Scrn(Strng)
If MonsterRecord.Poison Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 11
Strng=Chr$(27)+"[5;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[5;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.PoisonPercent),2)
Call Scrn(Strng)
Case 12
Strng=Chr$(27)+"[7;57H"
Call Scrn(Strng)
If MonsterRecord.LevelDrain Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 13
Strng=Chr$(27)+"[7;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[7;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.DrainPercent),2)
Call Scrn(Strng)
Case 14
Strng=Chr$(27)+"[9;51H"
Call Scrn(Strng)
If MonsterRecord.Block Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 15
Strng=Chr$(27)+"[9;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.BlockPercent),2)
Call Scrn(Strng)
Case 16
Strng=Chr$(27)+"[11;53H"
Call Scrn(Strng)
If MonsterRecord.Prevent Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 17
Strng=Chr$(27)+"[11;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.PreventPercent),2)
Call Scrn(Strng)
Case 18
Strng=Chr$(27)+"[13;52H"
Call Scrn(Strng)
If MonsterRecord.Follow Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 19
Strng=Chr$(27)+"[13;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.FollowPercent),2)
Call Scrn(Strng)
Case 20
Strng=Chr$(27)+"[13;72H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;72H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.Teleport),2)
Call Scrn(Strng)
Case 21
Strng=Chr$(27)+"[15;56H"
Call Scrn(Strng)
If MonsterRecord.Spell Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 22
Strng=Chr$(27)+"[15;68H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;68H"
Call Scrn(Strng)
Strng=Mid$(Str$(MonsterRecord.SpellPercent),2)
Call Scrn(Strng)
Case 23
Strng=Chr$(27)+"[17;51H"
Call Scrn(Strng)
If MonsterRecord.Spell<1 Or_
MonsterRecord.Spell>Lof(4)/Len(SpellRecord) Then
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(14)
Call Scrn(Strng)
Else
Get 4,MonsterRecord.Spell,SpellRecord
Strng=Left$(SpellRecord.SpellName,20)
Call Scrn(Strng)
Endif
End Select
End Select
10071
Exit Sub
10072
Resume 10071
End Sub
Sub AddNonplayer
On Local Error Goto 10082
Nonplayer.Number=Lof(9)/Len(MonsterRecord)+1
MonsterRecord.MonsterName=Nul
MonsterRecord.PluralName=Nul
For Temp6=1 To 5
MonsterRecord.Treasure(Temp6)=False
Next
MonsterRecord.Experience=False
MonsterRecord.NumberAppearing=False
MonsterRecord.Level=False
MonsterRecord.Hits=False
MonsterRecord.Poison=False
MonsterRecord.LevelDrain=False
MonsterRecord.Spell=False
MonsterRecord.Block=False
MonsterRecord.Prevent=False
MonsterRecord.Follow=False
MonsterRecord.Magic=True
MonsterRecord.Jail=False
MonsterRecord.Teleport=False
MonsterRecord.FollowPercent=False
MonsterRecord.BlockPercent=False
MonsterRecord.PreventPercent=False
MonsterRecord.SpellPercent=False
MonsterRecord.PoisonPercent=False
MonsterRecord.DrainPercent=False
MonsterRecord.Rate=False
MonsterRecord.RatePercent=False
MonsterRecord.Permanent=-2
For Temp6=1 To 5
MonsterRecord.Talk(Temp6)=False
Next
MonsterRecord.Psionic=False
MonsterRecord.PsionicSpell=False
Put 9,Nonplayer.Number,MonsterRecord
Call DisplayNonplayer
10081
Exit Sub
10082
Resume 10081
End Sub
Sub ShowSpell
On Local Error Goto 10092
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;8H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="Spell"+Str$(Spell.Number)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;2H"
Call Scrn(Strng)
Strng="Class Type Restrictions"
Call Scrn(Strng)
Strng=Chr$(27)+"[9;49H"
Call Scrn(Strng)
Strng="Ingredient Casting Type"
Call Scrn(Strng)
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=SpellRecord.SpellName
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[6;16H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[6;16H"
Call Scrn(Strng)
Strng=Mid$(Str$(SpellRecord.Teleport),2)
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[8;8H"
Call Scrn(Strng)
Strng=Space$(2)
Call Scrn(Strng)
Strng=Chr$(27)+"[8;8H"
Call Scrn(Strng)
Strng=Mid$(Str$(SpellRecord.Level),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[8;22H"
Call Scrn(Strng)
Strng=Space$(2)
Call Scrn(Strng)
Strng=Chr$(27)+"[8;22H"
Call Scrn(Strng)
Strng=Mid$(Str$(SpellRecord.SpellType),2)
Call Scrn(Strng)
Case 5
Strng=Chr$(27)+"[10;16H"
Call Scrn(Strng)
If SpellRecord.Psionic Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 6
Strng=Chr$(27)+"[12;20H"
Call Scrn(Strng)
Select Case SpellRecord.PsionicMode
Case 1
Strng="A"
Case 2
Strng="D"
Case Else
Strng="?"
End Select
Call Scrn(Strng)
Case 7
Strng=Chr$(27)+"[13;11H"
Call Scrn(Strng)
If SpellRecord.Equation Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Strng=Chr$(27)+"[14;2H"
Call Scrn(Strng)
Strng=Space$(40)
Call Scrn(Strng)
Strng=Chr$(27)+"[14;2H"
Call Scrn(Strng)
Strng=Rtrim$(SpellRecord.SpellEquate)
Call Scrn(Strng)
Case 8
Strng=Chr$(27)+"[16;2H"
Call Scrn(Strng)
Strng=Lcase$(Left$(SpellRecord.Chant,78))
Call Scrn(Strng)
Case 9
Strng=Chr$(27)+"[18;2H"
Call Scrn(Strng)
Strng=Left$(SpellRecord.Desc,78)
Call Scrn(Strng)
Case 10
Strng=Chr$(27)+"[20;10H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class1 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 11
Strng=Chr$(27)+"[20;23H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class2 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 12
Strng=Chr$(27)+"[20;31H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class3 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 13
Strng=Chr$(27)+"[20;40H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class4 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 14
Strng=Chr$(27)+"[20;50H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class5 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 15
Strng=Chr$(27)+"[20;59H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class6 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 16
Strng=Chr$(27)+"[20;67H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class7 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 17
Strng=Chr$(27)+"[20;75H"
Call Scrn(Strng)
If SpellRecord.ClassType And Class8 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 18
For Temp6=1 To 5
Temp7=SpellRecord.Ingred(Temp6)
Strng=Chr$(27)+"["+Mid$(Str$(Temp6+3),2)+";49H"
Call Scrn(Strng)
If Temp7>False And Temp7<=Lof(8)/Len(TreasureRecord) Then
Get 8,Temp7,TreasureRecord
Strng=TreasureRecord.TreasureName
Call Scrn(Strng)
Else
Strng=Space$(30)
Call Scrn(Strng)
Endif
Next
Case 19
Strng=Chr$(27)+"[10;61H"
Call Scrn(Strng)
If SpellRecord.SpellFlag And Use.Spell.Type Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 20
Strng=Chr$(27)+"[12;56H"
Call Scrn(Strng)
If SpellRecord.SpellFlag And Scroll.Spell.Type Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 21
Strng=Chr$(27)+"[14;62H"
Call Scrn(Strng)
If SpellRecord.SpellFlag And Cast.Spell.Type Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
End Select
End Select
10091
Exit Sub
10092
Resume 10091
End Sub
Sub AddSpell
On Local Error Goto 10102
Spell.Number=Lof(4)/Len(SpellRecord)+1
SpellRecord.SpellName=Nul
SpellRecord.Teleport=False
SpellRecord.Level=False
SpellRecord.Chant=Nul
SpellRecord.SpellType=False
SpellRecord.Psionic=False
SpellRecord.PsionicMode=False
SpellRecord.ClassType=False
SpellRecord.Desc=Nul
For Temp6=1 To 5
SpellRecord.Ingred(Temp6)=False
Next
SpellRecord.SpellFlag=False
SpellRecord.Equation=False
SpellRecord.SpellEquate=Nul
Put 4,Spell.Number,SpellRecord
Call DisplaySpell
10101
Exit Sub
10102
Resume 10101
End Sub
Sub ShowField
On Local Error Goto 10112
If Next.Field Then
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Call DisplayField
Selection=Next.Field
Strng=Chr$(27)+"[1;37;41m"
Call Scrn(Strng)
Call DisplayField
Endif
10111
Exit Sub
10112
Resume 10111
End Sub
Sub DisplayField
On Local Error Goto 10122
Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
Mid$(Str$(Array.Data(Selection,2)),2)+"H"
Call Scrn(Strng)
Strng=Title.Data(Selection)
Call Scrn(Strng)
10121
Exit Sub
10122
Resume 10121
End Sub
Sub RedisplayField
On Local Error Goto 10132
Strng=Chr$(27)+"[1;37;41m"
Call Scrn(Strng)
Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
Mid$(Str$(Array.Data(Selection,2)),2)+"H"
Call Scrn(Strng)
Strng=Title.Data(Selection)
Call Scrn(Strng)
10131
Exit Sub
10132
Resume 10131
End Sub
Sub MainSelect
On Local Error Goto 10142
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 59 To 68
Next.Field=TempX-58
TempX$=Chr$(13)
Case 72
If Selection>1 Then
Next.Field=Selection-1
Endif
Case 80
If Selection<10 Then
Next.Field=Selection+1
Endif
Case 15, 75
If Selection>5 Then
Next.Field=Selection-5
Endif
Case 77
If Selection<6 Then
Next.Field=Selection+5
Endif
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>10 Then
Next.Field=10
Endif
Case 73
Select Case Selection
Case 2 To 5
Next.Field=1
Case 7 To 10
Next.Field=6
End Select
Case 81
Select Case Selection
Case 1 To 4
Next.Field=5
Case 6 To 9
Next.Field=10
End Select
End Select
Call ShowMainField
10141
Exit Sub
10142
Resume 10141
End Sub
Sub ShowMainField
On Local Error Goto 10152
If Next.Field Then
If Next.Field<>Selection Then
Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
Mid$(Str$(Array.Data(Selection,2)+3),2)+"H"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Left$(Title.Data(Selection),1)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Mid$(Title.Data(Selection),2)
Strng=Rtrim$(Strng)
Call Scrn(Strng)
Selection=Next.Field
Strng=Chr$(27)+"["+Mid$(Str$(Array.Data(Selection,1)),2)+";"+_
Mid$(Str$(Array.Data(Selection,2)+3),2)+"H"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;41m"
Call Scrn(Strng)
Strng=Left$(Title.Data(Selection),1)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;41m"
Call Scrn(Strng)
Strng=Mid$(Title.Data(Selection),2)
Strng=Rtrim$(Strng)
Call Scrn(Strng)
Endif
Endif
10151
Exit Sub
10152
Resume 10151
End Sub
Sub RoomSelect
On Local Error Goto 10162
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 3 To 8, 10 To 12, 14
Next.Field=Selection+1
End Select
Case 15, 75
Select Case Selection
Case 4 To 9, 11 To 13, 15
Next.Field=Selection-1
End Select
Case 72
Select Case Selection
Case 2
Next.Field=1
Case 3
Next.Field=2
Case 10
Next.Field=3
Case 14
Next.Field=10
Case 13
Next.Field=9
Case 15
Next.Field=13
Case 16
Next.Field=14
End Select
Case 80
Select Case Selection
Case 1
Next.Field=2
Case 2
Next.Field=3
Case 3
Next.Field=10
Case 9
Next.Field=13
Case 10
Next.Field=14
Case 13
Next.Field=15
Case 14
Next.Field=16
Case 15
Next.Field=16
End Select
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>16 Then
Next.Field=16
Endif
Case 73
Select Case Selection
Case 4 To 9
Next.Field=3
Case 11 To 13
Next.Field=10
Case 15
Next.Field=14
End Select
Case 81
Select Case Selection
Case 3 To 8
Next.Field=9
Case 10 To 12
Next.Field=13
Case 14
Next.Field=15
End Select
End Select
Call ShowField
10161
Exit Sub
10162
Resume 10161
End Sub
Sub ObjectSelect
On Local Error Goto 10172
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1
Next.Field=9
Case 2, 3
Next.Field=Selection+9
Case 4
Next.Field=5
Case 6, 7, 8
Next.Field=Selection+8
End Select
Case 15, 75
Select Case Selection
Case 5
Next.Field=4
Case 9, 10
Next.Field=1
Case 11, 12
Next.Field=Selection-9
Case 13
Next.Field=3
Case 14, 15, 16
Next.Field=Selection-8
End Select
Case 72
If Selection>1 Then
Next.Field=Selection-1
Endif
Case 80
If Selection<16 Then
Next.Field=Selection+1
Endif
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If ObjectRecord.Trap<=1 Then
If Selection<>15 Then
Next.Field=15
Endif
Else
If Selection<>16 Then
Next.Field=16
Endif
Endif
Case 73
Select Case Selection
Case 2 To 8
Next.Field=1
Case 8
Next.Field=9
End Select
Case 81
Select Case Selection
Case 1 To 7
Next.Field=8
Case 9 To 16
If ObjectRecord.Trap<=1 Then
If Selection<>15 Then
Next.Field=15
Endif
Else
If Next.Field<>16 Then
Next.Field=16
Endif
Endif
End Select
End Select
If Next.Field=16 Then
If ObjectRecord.Trap<=1 Then
Title.Data(16)="<none> "
Endif
If ObjectRecord.Trap=2 Then
Title.Data(16)="Teleport"
Endif
If ObjectRecord.Trap=3 Then
Title.Data(16)="Hits For"
Endif
Endif
If Next.Field=16 Then
If ObjectRecord.Trap<=1 Then
Exit Sub
Endif
Endif
Call ShowField
10171
Exit Sub
10172
Resume 10171
End Sub
Sub TreasureSelect
On Local Error Goto 10182
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1 To 8
Next.Field=Selection+8
Case 9 To 25
Next.Field=Selection+9
End Select
Case 15, 75
Select Case Selection
Case 9 To 16
Next.Field=Selection-8
Case 18 To 34
Next.Field=Selection-9
End Select
Case 72
If Selection>1 Then
Next.Field=Selection-1
Endif
Case 80
If Selection<34 Then
Next.Field=Selection+1
Endif
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>34 Then
Next.Field=34
Endif
Case 73
Select Case Selection
Case 2 To 8
Next.Field=1
Case 10 To 17
Next.Field=9
Case 19 To 26
Next.Field=18
Case 28 To 34
Next.Field=27
End Select
Case 81
Select Case Selection
Case 1 To 7
Next.Field=8
Case 9 To 16
Next.Field=17
Case 18 To 25
Next.Field=26
Case 27 To 33
Next.Field=34
End Select
End Select
Call ShowField
10181
Exit Sub
10182
Resume 10181
End Sub
Sub MonsterSelect
On Local Error Goto 10192
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1
Next.Field=9
Case 2
Next.Field=12
Case 3
Next.Field=14
Case 4
Next.Field=16
Case 5
Next.Field=18
Case 6
Next.Field=21
Case 7
Next.Field=8
Case 8
Next.Field=26
Case 10
Next.Field=11
Case 12
Next.Field=13
Case 14
Next.Field=15
Case 16
Next.Field=17
Case 18
Next.Field=19
Case 21
Next.Field=22
Case 24
Next.Field=25
End Select
Case 15, 75
Select Case Selection
Case 8
Next.Field=7
Case 9, 10
Next.Field=1
Case 11
Next.Field=10
Case 12
Next.Field=2
Case 13
Next.Field=12
Case 15
Next.Field=14
Case 14
Next.Field=3
Case 16
Next.Field=4
Case 17
Next.Field=16
Case 18
Next.Field=5
Case 19
Next.Field=18
Case 21
Next.Field=6
Case 22
Next.Field=21
Case 25
Next.Field=24
Case 26
Next.Field=8
End Select
Case 72
Select Case Selection
Case 2 To 10
Next.Field=Selection-1
Case 11 To 18
Next.Field=Selection-2
Case 19
Next.Field=20
Case 20
Next.Field=17
Case 21
Next.Field=18
Case 22
Next.Field=19
Case 23
Next.Field=21
Case 24
Next.Field=23
Case 25
Next.Field=23
Case 26
Next.Field=24
End Select
Case 80
Select Case Selection
Case 1 To 9
Next.Field=Selection+1
Case 10 To 16
Next.Field=Selection+2
Case 17
Next.Field=20
Case 18
Next.Field=21
Case 19
Next.Field=22
Case 20
Next.Field=19
Case 21
Next.Field=23
Case 22
Next.Field=23
Case 23
Next.Field=24
Case 24
Next.Field=26
Case 25
Next.Field=26
End Select
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>26 Then
Next.Field=26
Endif
Case 73
Select Case Selection
Case 2 To 8
Next.Field=1
Case 10 To 26
Next.Field=9
End Select
Case 81
Select Case Selection
Case 1 To 7
Next.Field=8
Case 9 To 25
Next.Field=26
End Select
End Select
Call ShowField
10191
Exit Sub
10192
Resume 10191
End Sub
Sub NonplayerSelect
On Local Error Goto 10202
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1
Next.Field=9
Case 2
Next.Field=12
Case 3
Next.Field=14
Case 4
Next.Field=16
Case 5
Next.Field=18
Case 6
Next.Field=21
Case 7
Next.Field=8
Case 10
Next.Field=11
Case 12
Next.Field=13
Case 14
Next.Field=15
Case 16
Next.Field=17
Case 18
Next.Field=19
Case 21
Next.Field=22
End Select
Case 15, 75
Select Case Selection
Case 8
Next.Field=7
Case 9, 10
Next.Field=1
Case 11
Next.Field=10
Case 12
Next.Field=2
Case 13
Next.Field=12
Case 15
Next.Field=14
Case 14
Next.Field=3
Case 16
Next.Field=4
Case 17
Next.Field=16
Case 18
Next.Field=5
Case 19
Next.Field=18
Case 21
Next.Field=6
Case 22
Next.Field=21
End Select
Case 72
Select Case Selection
Case 2 To 10
Next.Field=Selection-1
Case 11 To 18
Next.Field=Selection-2
Case 19
Next.Field=20
Case 20
Next.Field=17
Case 21
Next.Field=18
Case 22
Next.Field=19
Case 23
Next.Field=21
End Select
Case 80
Select Case Selection
Case 1 To 9
Next.Field=Selection+1
Case 10 To 16
Next.Field=Selection+2
Case 17
Next.Field=20
Case 18
Next.Field=21
Case 19
Next.Field=22
Case 20
Next.Field=19
Case 21, 22
Next.Field=23
End Select
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>23 Then
Next.Field=23
Endif
Case 73
Select Case Selection
Case 2 To 8
Next.Field=1
Case 10 To 23
Next.Field=9
End Select
Case 81
Select Case Selection
Case 1 To 7
Next.Field=8
Case 9 To 22
Next.Field=23
End Select
End Select
Call ShowField
10201
Exit Sub
10202
Resume 10201
End Sub
Sub SpellSelect
On Local Error Goto 10212
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 15, 75
Select Case Selection
Case 4
Next.Field=3
Case 10 To 17
Next.Field=Selection-1
Case 18
Next.Field=1
Case 19 To 21
Next.Field=Selection-14
End Select
Case 77
Select Case Selection
Case 1
Next.Field=18
Case 3
Next.Field=4
Case 10 To 16
Next.Field=Selection+1
Case 5 To 7
Next.FIeld=Selection+14
End Select
Case 72
Select Case Selection
Case 2 To 16, 19 To 21
Next.Field=Selection-1
Case 17
Next.Field=21
End Select
Case 80
Select Case Selection
Case 1 To 16, 18 To 20
Next.Field=Selection+1
Case 21
Next.FIeld=17
End Select
Case 71, 73
Select Case Selection
Case 2 To 10
Next.Field=1
Case 11 To 17
Next.Field=10
Case 19 To 21
Next.Field=18
End Select
Case 79, 81
Select Case Selection
Case 1 To 9
Next.Field=10
Case 10 To 16
Next.Field=17
Case 18 To 20
Next.Field=21
End Select
End Select
Call ShowField
10211
Exit Sub
10212
Resume 10211
End Sub
Sub UserSelect
On Local Error Goto 10222
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1 To 6
Next.Field=Selection+17
Case 7, 8
Next.Field=Selection+16
Case 9 To 16
Next.Field=Selection+1
Case 17
Next.Field=27
End Select
Case 15, 75
Select Case Selection
Case 10 To 17
Next.Field=Selection-1
Case 18 To 22
Next.Field=Selection-17
Case 23 To 24
Next.Field=Selection-16
Case 27
Next.Field=17
End Select
Case 72
If Selection>1 Then
Next.Field=Selection-1
Endif
Case 80
If Selection<27 Then
Next.Field=Selection+1
Endif
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>27 Then
Next.Field=27
Endif
Case 73
Select Case Selection
Case 2 To 17
Next.Field=1
Case 19 To 27
Next.Field=18
End Select
Case 81
Select Case Selection
Case 1 To 16
Next.Field=17
Case 17 To 26
Next.Field=27
End Select
End Select
Call ShowField
10221
Exit Sub
10222
Resume 10221
End Sub
Sub ShowAction
On Local Error Goto 10232
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[3;2H"
Call Scrn(Strng)
Strng="Triggers"
Call Scrn(Strng)
Strng=Chr$(27)+"[3;50H"
Call Scrn(Strng)
Strng="Results"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;17H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="Action for Room"+Str$(Room.Action)
Call Scrn(Strng)
Strng=Chr$(27)+"[7;2H"
Call Scrn(Strng)
Strng="and/or"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[10;67H"
Call Scrn(Strng)
Strng="(W/S/A/M)"
Call Scrn(Strng)
Strng=Chr$(27)+"[13;50H"
Call Scrn(Strng)
Strng="Fatigue/Vitality"
Call Scrn(Strng)
Strng=Chr$(27)+"[17;2H"
Call Scrn(Strng)
Strng="Direction Restriction"
Call Scrn(Strng)
Strng=Chr$(27)+"[20;2H"
Call Scrn(Strng)
Strng="All results are from entering a room unless indicated by a trigger"
Call Scrn(Strng)
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;17H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[4;17H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.MonsterTrigger),2)
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[6;18H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[6;18H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.MonsterTalk),2)
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[8;14H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[8;14H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.Teleport),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[11;2H"
Call Scrn(Strng)
If RoomRecord.SpellTrigger<1 Or_
RoomRecord.SpellTrigger>Lof(4)/Len(SpellRecord) Then
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(24)
Call Scrn(Strng)
Else
Get 4,RoomRecord.SpellTrigger,SpellRecord
Strng=Left$(SpellRecord.SpellName,30)
Call Scrn(Strng)
Endif
Case 5
Strng=Chr$(27)+"[13;14H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;14H"
Call Scrn(Strng)
Strng=Mid$(Str$(Abs(RoomRecord.Level)),2)
Call Scrn(Strng)
Case 6
Strng=Chr$(27)+"[15;16H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;16H"
Call Scrn(Strng)
Strng="n/a"
If RoomRecord.Level<False Then
Strng="min"
Endif
If RoomRecord.Level>False Then
Strng="max"
Endif
Call Scrn(Strng)
Case 7
Strng=Chr$(27)+"[18;8H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction1 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 8
Strng=Chr$(27)+"[18;15H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction2 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 9
Strng=Chr$(27)+"[18;23H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction3 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 10
Strng=Chr$(27)+"[18;30H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction4 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 11
Strng=Chr$(27)+"[18;36H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction5 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 12
Strng=Chr$(27)+"[18;41H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction6 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 13
Strng=Chr$(27)+"[18;48H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction7 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 14
Strng=Chr$(27)+"[18;53H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction8 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 15
Strng=Chr$(27)+"[18;58H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction9 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 16
Strng=Chr$(27)+"[18;63H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction10 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 17
Strng=Chr$(27)+"[18;68H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction11 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 18
Strng=Chr$(27)+"[18;76H"
Call Scrn(Strng)
If RoomRecord.Restrictions And Direction12 Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 19
Strng=Chr$(27)+"[4;62H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[4;62H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.HealthRate),2)
Call Scrn(Strng)
Case 20
Strng=Chr$(27)+"[6;65H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[6;65H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.EncounterRate),2)
Call Scrn(Strng)
Case 21
Strng=Chr$(27)+"[8;57H"
Call Scrn(Strng)
If RoomRecord.Fumble Then
Call Scrn("Y")
Else
Call Scrn("N")
Endif
Case 22
Strng=Chr$(27)+"[10;77H"
Call Scrn(Strng)
Strng="?"
Select Case RoomRecord.Inventory
Case 1
Strng="W"
Case 2
Strng="S"
Case 3
Strng="A"
Case 4
Strng="M"
End Select
Call Scrn(Strng)
Case 23
Strng=Chr$(27)+"[12;64H"
Call Scrn(Strng)
Select Case RoomRecord.HitPoints
Case Is<False
Strng="V"
Case Is>False
Strng="F"
Case False
Strng="?"
End Select
Call Scrn(Strng)
Case 24
Strng=Chr$(27)+"[13;67H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;67H"
Call Scrn(Strng)
Strng=Mid$(Str$(Abs(RoomRecord.HitPoints)),2)
Call Scrn(Strng)
Case 25
Strng=Chr$(27)+"[15;60H"
Call Scrn(Strng)
Strng=Space$(4)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;60H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.RustRate),2,4)
Call Scrn(Strng)
Case 26
Strng=Chr$(27)+"[15;76H"
Call Scrn(Strng)
Strng=Space$(4)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;76H"
Call Scrn(Strng)
Strng=Mid$(Str$(RoomRecord.StealRate),2,4)
Call Scrn(Strng)
End Select
End Select
10231
Exit Sub
10232
Resume 10231
End Sub
Sub ActionSelect
On Local Error Goto 10242
Next.Field=False
If TempX$=Chr$(9) Then
TempX=77
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1 To 5
Next.Field=Selection+18
Case 6
Next.Field=25
Case 7 To 17
Next.Field=Selection+1
Case 25
Next.Field=26
End Select
Case 15, 75
Select Case Selection
Case 8 To 18
Next.Field=Selection-1
Case 19 To 23
Next.Field=Selection-18
Case 24, 25
Next.Field=Selection-19
Case 26
Next.Field=25
End Select
Case 72
Select Case Selection
Case 2 To 7, 20 To 25
Next.Field=Selection-1
Case 18
Next.Field=26
Case 26
Next.Field=24
End Select
Case 80
Select Case Selection
Case 1 To 6, 19 To 24
Next.Field=Selection+1
Case 25, 26
Next.Field=18
End Select
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>18 Then
Next.Field=18
Endif
Case 73
Select Case Selection
Case 2 To 7
Next.Field=1
Case 18
Next.Field=19
End Select
Case 81
Select Case Selection
Case 1 To 6
Next.Field=7
Case 19 To 26
Next.Field=18
End Select
End Select
Call ShowField
10241
Exit Sub
10242
Resume 10241
End Sub
Sub RoomLinkSelect
On Local Error Goto 10252
Next.Field=False
If TempX$=Chr$(9) Then
TempX=9
Endif
Select Case TempX
Case 77
Select Case Selection
Case 1
Next.Field=8
Case 3
Next.Field=9
Case 4
Next.Field=2
Case 10
Next.Field=3
Case 11
Next.Field=1
End Select
Case 75
Select Case Selection
Case 1
Next.Field=11
Case 2
Next.Field=4
Case 3
Next.Field=10
Case 8
Next.Field=1
Case 9
Next.Field=3
End Select
Case 80
Select Case Selection
Case 1
Next.Field=3
Case 2
Next.Field=9
Case 4
Next.Field=10
Case 5, 6
Next.Field=Selection+1
Case 8
Next.Field=2
Case 11
Next.Field=4
End Select
Case 72
Select Case Selection
Case 2
Next.Field=8
Case 3
Next.Field=1
Case 4
Next.Field=11
Case 6, 7
Next.Field=Selection-1
Case 9
Next.Field=2
Case 10
Next.Field=4
End Select
Case 9
Select Case Selection
Case 1, 8, 11
Next.Field=5
Case 2, 4
Next.Field=6
Case 3, 9, 10
Next.Field=7
End Select
Case 15
Select Case Selection
Case 5
Next.Field=8
Case 6
Next.Field=2
Case 7
Next.Field=9
End Select
End Select
Call ShowField
10251
Exit Sub
10252
Resume 10251
End Sub
Sub MonclassSelect
On Local Error Goto 10262
Next.Field=False
Select Case TempX
Case 72
If Selection>1 Then
Next.Field=Selection-1
Endif
Case 80
If Selection<10 Then
Next.Field=Selection+1
Endif
Case 71
If Selection<>1 Then
Next.Field=1
Endif
Case 79
If Selection<>10 Then
Next.Field=10
Endif
Case 73
If Selection<>1 Then
Next.Field=1
Endif
Case 81
If Selection<>10 Then
Next.Field=10
Endif
End Select
If Next.Field Then
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"["+Mid$(Str$(Selection*2+1),2)+";2H"
Call Scrn(Strng)
Strng="Monster"+Str$(Selection)
Call Scrn(Strng)
Selection=Next.Field
Call MonclassField
Endif
10261
Exit Sub
10262
Resume 10261
End Sub
Sub MonclassField
On Local Error Goto 10272
Strng=Chr$(27)+"[1;37;41m"
Call Scrn(Strng)
Strng=Chr$(27)+"["+Mid$(Str$(Selection*2+1),2)+";2H"
Call Scrn(Strng)
Strng="Monster"+Str$(Selection)
Call Scrn(Strng)
10271
Exit Sub
10272
Resume 10271
End Sub
Sub ShowUser
On Local Error Goto 10282
Select Case TempX
Case 0
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;6H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[2;2H"
Call Scrn(Strng)
Strng="User"+Str$(User.Number)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[12;7H"
Call Scrn(Strng)
Strng="(F/M/T/C/P/R/D/L/A/*)"
Call Scrn(Strng)
Strng=Chr$(27)+"[16;20H"
Call Scrn(Strng)
Strng="(B/P/S/T)"
Call Scrn(Strng)
Case Else
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Select Case TempX
Case 1
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=UserRecord.CodeName
Call Decrypt(Strng)
Strng=Lcase$(Strng)
Mid$(Strng,1,1)=Ucase$(Mid$(Strng,1,1))
Call Scrn(Strng)
Case 2
Strng=Chr$(27)+"[6;2H"
Call Scrn(Strng)
Strng=UserRecord.PassWord
Call Decrypt(Strng)
Strng=Lcase$(Strng)
Call Scrn(Strng)
Case 3
Strng=Chr$(27)+"[8;2H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[8;2H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Level),2)
Call Scrn(Strng)
Case 4
Strng=Chr$(27)+"[10;2H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[10;2H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Room),2)
Call Scrn(Strng)
Case 5
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
If UserRecord.Race<1 Then
UserRecord.Race=1
Endif
Strng=Space$(10)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
Strng=Rtrim$(Race(UserRecord.Race))
Call Scrn(Strng)
Case 6
Strng=Chr$(27)+"[12;29H"
Call Scrn(Strng)
Select Case UserRecord.ClassType
Case 1
Strng="F"
Case 2
Strng="M"
Case 3
Strng="T"
Case 4
Strng="C"
Case 5
Strng="P"
Case 6
Strng="R"
Case 7
Strng="D"
Case 8
Strng="L"
Case 9
Strng="A"
Case 10
Strng="*"
Case Else
Strng="?"
End Select
Call Scrn(Strng)
Case 7
Strng=Chr$(27)+"[13;12H"
Call Scrn(Strng)
Strng=Space$(7)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;12H"
Call Scrn(Strng)
Select Case UserRecord.Align1
Case Is<False
Strng="Good"
Case Is>False
Strng="Evil"
Case False
Strng="Neutral"
End Select
Call Scrn(Strng)
Strng=Chr$(27)+"[13;20H"
Call Scrn(Strng)
Strng=Space$(7)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;20H"
Call Scrn(Strng)
Select Case UserRecord.Align2
Case Is<False
Strng="Lawful"
Case Is>False
Strng="Chaotic"
Case Else
Strng="Neutral"
End Select
Call Scrn(Strng)
Case 8
Strng=Chr$(27)+"[15;2H"
Call Scrn(Strng)
Strng=UserRecord.ClassName
Call Decrypt(Strng)
Call Scrn(Strng)
Case 9
Strng=Chr$(27)+"[16;30H"
Call Scrn(Strng)
Select Case UserRecord.Proficiency
Case 1
Strng="B"
Case 2
Strng="P"
Case 3
Strng="S"
Case 4
Strng="T"
Case Else
Strng="?"
End Select
Call Scrn(Strng)
Case 10
Strng=Chr$(27)+"[17;7H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;7H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Weapons(1)),2)
Call Scrn(Strng)
Case 11
Strng=Chr$(27)+"[17;17H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;17H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Weapons(2)),2)
Call Scrn(Strng)
Case 12
Strng=Chr$(27)+"[17;27H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;27H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Weapons(3)),2)
Call Scrn(Strng)
Case 13
Strng=Chr$(27)+"[17;41H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;41H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Weapons(4)),2)
Call Scrn(Strng)
Case 14
Strng=Chr$(27)+"[19;10H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;10H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.FatigueMax),2)
Call Scrn(Strng)
Case 15
Strng=Chr$(27)+"[19;25H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;25H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.VitalityMax),2)
Call Scrn(Strng)
Case 16
Strng=Chr$(27)+"[19;37H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;37H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.MagicMax),2)
Call Scrn(Strng)
Case 17
Strng=Chr$(27)+"[21;17H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[21;17H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.PsionicMax),2)
Call Scrn(Strng)
Case 18
Strng=Chr$(27)+"[3;54H"
Call Scrn(Strng)
Strng=Space$(22)
Call Scrn(Strng)
Strng=Chr$(27)+"[3;54H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Experience),2)
Call Scrn(Strng)
Case 19
Strng=Chr$(27)+"[5;55H"
Call Scrn(Strng)
Strng=Space$(22)
Call Scrn(Strng)
Strng=Chr$(27)+"[5;55H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Gold),2)
Call Scrn(Strng)
Case 20
Strng=Chr$(27)+"[7;62H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[7;62H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.NumCalls),2)
Call Scrn(Strng)
Case 21
Strng=Chr$(27)+"[9;59H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[9;59H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(1)),2)
Call Scrn(Strng)
Case 22
Strng=Chr$(27)+"[11;63H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;63H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(2)),2)
Call Scrn(Strng)
Case 23
Strng=Chr$(27)+"[13;57H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;57H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(3)),2)
Call Scrn(Strng)
Case 24
Strng=Chr$(27)+"[15;60H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;60H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(4)),2)
Call Scrn(Strng)
Case 25
Strng=Chr$(27)+"[17;63H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;63H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(5)),2)
Call Scrn(Strng)
Case 26
Strng=Chr$(27)+"[19;56H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;56H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(6)),2)
Call Scrn(Strng)
Case 27
Strng=Chr$(27)+"[21;59H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[21;59H"
Call Scrn(Strng)
Strng=Mid$(Str$(UserRecord.Stats(7)),2)
Call Scrn(Strng)
End Select
End Select
10281
Exit Sub
10282
Resume 10281
End Sub
Sub ShowDeletedUser
On Local Error Goto 10292
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=Space$(30)
Call Scrn(Strng)
Strng=Chr$(27)+"[4;2H"
Call Scrn(Strng)
Strng=Deleted$
Call Scrn(Strng)
Strng=Chr$(27)+"[6;2H"
Call Scrn(Strng)
Strng=Space$(20)
Call Scrn(Strng)
Strng=Chr$(27)+"[6;2H"
Call Scrn(Strng)
Strng=Deleted$
Call Scrn(Strng)
Strng=Chr$(27)+"[8;2H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[10;2H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[12;7H"
Call Scrn(Strng)
Strng="(F/M/T/C/P/R/D/L/A/*)"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[11;7H"
Call Scrn(Strng)
Strng=Space$(10)
Call Scrn(Strng)
Strng=Chr$(27)+"[12;29H"
Call Scrn(Strng)
Strng=" "
Call Scrn(Strng)
Strng=Chr$(27)+"[13;12H"
Call Scrn(Strng)
Strng=Space$(7)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;20H"
Call Scrn(Strng)
Strng=Space$(7)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;2H"
Call Scrn(Strng)
Strng=Space$(20)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;2H"
Call Scrn(Strng)
Strng=Deleted$
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[16;20H"
Call Scrn(Strng)
Strng="(B/P/S/T)"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[16;30H"
Call Scrn(Strng)
Strng=" "
Call Scrn(Strng)
Strng=Chr$(27)+"[17;7H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;17H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;27H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;41H"
Call Scrn(Strng)
Strng=Space$(3)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;10H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;25H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;37H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[21;17H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[3;54H"
Call Scrn(Strng)
Strng=Space$(22)
Call Scrn(Strng)
Strng=Chr$(27)+"[5;55H"
Call Scrn(Strng)
Strng=Space$(22)
Call Scrn(Strng)
Strng=Chr$(27)+"[7;62H"
Call Scrn(Strng)
Strng=" "
Call Scrn(Strng)
Strng=Chr$(27)+"[9;59H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[11;63H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[13;57H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[15;60H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;63H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;56H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
Strng=Chr$(27)+"[21;59H"
Call Scrn(Strng)
Strng=Space$(5)
Call Scrn(Strng)
10291
Exit Sub
10292
Resume 10291
End Sub
Sub AddUser
On Local Error Goto 10302
User.Number=Lof(3)/Len(UserRecord)+1
Strng=Deleted$
Call Valid(Strng,30)
Call Encrypt(Strng,True)
UserRecord.CodeName=Strng
Strng=Deleted$
Call Valid(Strng,20)
Call Encrypt(Strng,False)
UserRecord.PassWord=Strng
Strng=Deleted$
Call Valid(Strng,20)
Call Encrypt(Strng,True)
UserRecord.ClassName=Strng
UserRecord.ClassType=False
For Temp6=1 To 7
UserRecord.Stats(Temp6)=False
Next
For Temp6=1 To 4
UserRecord.Weapons(Temp6)=False
Next
UserRecord.Room=False
UserRecord.Level=False
UserRecord.Experience=False
UserRecord.Gold=False
UserRecord.Borrow=False
UserRecord.NumCalls=False
UserRecord.Fatigue=False
UserRecord.FatigueMax=False
UserRecord.Vitality=False
UserRecord.VitalityMax=False
UserRecord.Magic=False
UserRecord.MagicMax=False
UserRecord.Psionic=False
UserRecord.PsionicMax=False
UserRecord.Poison=False
UserRecord.Invisible=False
UserRecord.Race=False
UserRecord.Proficiency=False
UserRecord.Bank=False
UserRecord.PlayersKilled=False
UserRecord.MonstersKilled=False
UserRecord.Brief=False
Strng=Date$
Call Valid(Strng,10)
Call Encrypt(Strng,True)
UserRecord.DateOn=Strng
UserRecord.Align1=False
UserRecord.Align2=False
UserRecord.Flags=False
UserRecord.MaxCalls=False
UserRecord.FromHour=False
UserRecord.FromMin=False
UserRecord.ToHour=False
UserRecord.ToMin=False
Put 3,User.Number,UserRecord
Call DisplayUser
10301
Exit Sub
10302
Resume 10301
End Sub
Sub StatusLine
On Local Error Goto 10312
Temp1$=Strng
Temp2$=Out2
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[23;2H"
Call Scrn(Strng)
Strng=Space$(78)
Call Scrn(Strng)
Strng=Chr$(27)+"[23;2H"
Call Scrn(Strng)
Call Scrn(Temp1$)
Strng=Chr$(27)+"[24;2H"
Call Scrn(Strng)
Strng=Space$(78)
Call Scrn(Strng)
Strng=Chr$(27)+"[24;2H"
Call Scrn(Strng)
Call Scrn(Temp2$)
10311
Exit Sub
10312
Resume 10311
End Sub
Sub AddRoom
On Local Error Goto 10322
Room.Number=Lof(5)/Len(RoomRecord)+1
RoomRecord.ShortDesc=Nul
RoomRecord.Restrictions=False
RoomRecord.MonsterClass=False
RoomRecord.SpellTrigger=False
RoomRecord.MonsterTrigger=False
RoomRecord.HealthRate=False
RoomRecord.EncounterRate=False
RoomRecord.HitPoints=False
RoomRecord.Inventory=False
RoomRecord.MonsterTalk=False
RoomRecord.Fumble=False
RoomRecord.Level=False
RoomRecord.Teleport=False
RoomRecord.RustRate=False
RoomRecord.StealRate=False
For Temp6=1 To 4
RoomRecord.LongDesc(Temp6)=Nul
Next
For Temp6=1 To 11
RoomRecord.Direct(Temp6)=False
Next
For Temp6=1 To 10
RoomRecord.Object(Temp6)=False
RoomRecord.ObjCharges(Temp6)=False
RoomRecord.Treasure(Temp6)=False
RoomRecord.TreCharges(Temp6)=False
RoomRecord.Flags(Temp6)=False
Next
Put 5,Room.Number,RoomRecord
Call DisplayRoom
10321
Exit Sub
10322
Resume 10321
End Sub
Sub AddAction
On Local Error Goto 10332
Room.Number=Lof(5)/Len(RoomRecord)+1
RoomRecord.ShortDesc=Nul
RoomRecord.Restrictions=False
RoomRecord.MonsterClass=False
RoomRecord.SpellTrigger=False
RoomRecord.MonsterTrigger=False
RoomRecord.HealthRate=False
RoomRecord.EncounterRate=False
RoomRecord.HitPoints=False
RoomRecord.Inventory=False
RoomRecord.MonsterTalk=False
RoomRecord.Fumble=False
RoomRecord.Level=False
RoomRecord.Teleport=False
RoomRecord.RustRate=False
RoomRecord.StealRate=False
For Temp6=1 To 4
RoomRecord.LongDesc(Temp6)=Nul
Next
For Temp6=1 To 11
RoomRecord.Direct(Temp6)=False
Next
For Temp6=1 To 10
RoomRecord.Object(Temp6)=False
RoomRecord.ObjCharges(Temp6)=False
RoomRecord.Treasure(Temp6)=False
RoomRecord.TreCharges(Temp6)=False
RoomRecord.Flags(Temp6)=False
Next
Put 5,Room.Number,RoomRecord
Call DisplayAction
10331
Exit Sub
10332
Resume 10331
End Sub
Sub ShowRoomObject
On Local Error Goto 10352
Call ClearSubstats
TempD=True
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[16;45H"
Call Scrn(Strng)
Strng="Object Number"+Str$(Object.Number)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;33H"
Call Scrn(Strng)
Strng=" "
Call Scrn(Strng)
Strng=Chr$(27)+"[2;33H"
Call Scrn(Strng)
Strng=Mid$(Str$(Room.Objects),2)
Call Scrn(Strng)
If Object.Index=False Then
Exit Sub
Endif
Get 6,Object.Index,ObjectRecord
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[17;34H"
Call Scrn(Strng)
Strng="Name:"
Call Scrn(Strng)
Strng=Left$(ObjectRecord.ObjectName,20)
Call Scrn(Strng)
Strng=Chr$(27)+"[18;34H"
Call Scrn(Strng)
Strng="Identifier:"
Call Scrn(Strng)
Strng=Left$(ObjectRecord.ShortName,14)
Strng=Lcase$(Strng)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;34H"
Call Scrn(Strng)
Strng="Room Link:"
Call Scrn(Strng)
Strng=Mid$(Str$(ObjectRecord.RoomLink),2)
Call Scrn(Strng)
Strng=Chr$(27)+"[20;34H"
Call Scrn(Strng)
Strng="Permanent:"
Call Scrn(Strng)
If ObjectRecord.Permanent Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[21;34H"
Call Scrn(Strng)
Strng="Hidden:"
Call Scrn(Strng)
If RoomRecord.Flags(Room.Index)=Hidden.Object Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[22;34H"
Call Scrn(Strng)
Strng="Magically Hidden:"
Call Scrn(Strng)
If RoomRecord.Flags(Room.Index)=Magically.Hidden Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[17;60H"
Call Scrn(Strng)
Strng="Hidden:"
Call Scrn(Strng)
If ObjectRecord.Hidden Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[18;60H"
Call Scrn(Strng)
Strng="Invisible:"
Call Scrn(Strng)
If ObjectRecord.Invisible Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[19;60H"
Call Scrn(Strng)
Strng="Trapped:"
Call Scrn(Strng)
If ObjectRecord.JailTrap Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[20;60H"
Call Scrn(Strng)
Strng="Locked:"
Call Scrn(Strng)
If ObjectRecord.DoorLock>1 Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[21;60H"
Call Scrn(Strng)
Strng="Relocks:"
Call Scrn(Strng)
If ObjectRecord.Relocks Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[22;60H"
Call Scrn(Strng)
Strng="Key Number:"
Call Scrn(Strng)
Strng=Mid$(Str$(ObjectRecord.Keyed),2)
Call Scrn(Strng)
10351
Exit Sub
10352
Resume 10351
End Sub
Sub ShowRoomTreasure
On Local Error Goto 10362
Call ClearSubstats
TempD=True
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[16;45H"
Call Scrn(Strng)
Strng="Treasure Number"+Str$(Treasure.Number)
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;40m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2;22H"
Call Scrn(Strng)
Strng=" "
Call Scrn(Strng)
Strng=Chr$(27)+"[2;22H"
Call Scrn(Strng)
Strng=Mid$(Str$(Room.Treasure),2)
Call Scrn(Strng)
If Treasure.Index=False Then
Exit Sub
Endif
Get 8,Treasure.Index,TreasureRecord
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[17;34H"
Call Scrn(Strng)
Strng="Name:"
Call Scrn(Strng)
Strng=Left$(TreasureRecord.TreasureName,20)
Call Scrn(Strng)
Strng=Chr$(27)+"[18;34H"
Call Scrn(Strng)
Strng="Identifier:"
Call Scrn(Strng)
Strng=Left$(TreasureRecord.ShortName,14)
Strng=Lcase$(Strng)
Call Scrn(Strng)
Strng=Chr$(27)+"[19;34H"
Call Scrn(Strng)
Strng="Weight:"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Weight),2)
Call Scrn(Strng)
Strng=Chr$(27)+"[20;34H"
Call Scrn(Strng)
Strng="Value:"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Gold),2)
Call Scrn(Strng)
Strng=Chr$(27)+"[21;34H"
Call Scrn(Strng)
Strng="Hits:"
Call Scrn(Strng)
Strng=Mid$(Str$(Abs(TreasureRecord.Plus)),2)
Call Scrn(Strng)
Strng=Chr$(27)+"[22;34H"
Call Scrn(Strng)
Strng="Strikes:"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Charges),2)
Call Scrn(Strng)
Strng=Chr$(27)+"[17;60H"
Call Scrn(Strng)
Strng="Coins:"
Call Scrn(Strng)
If TreasureRecord.Coin Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[18;60H"
Call Scrn(Strng)
Strng="Potion:"
Call Scrn(Strng)
If TreasureRecord.Potion Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[19;60H"
Call Scrn(Strng)
Strng="Scroll:"
Call Scrn(Strng)
If TreasureRecord.Scroll Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[20;60H"
Call Scrn(Strng)
Strng="Invisible:"
Call Scrn(Strng)
If TreasureRecord.Invisible Then
Call Scrn("Yes")
Else
Call Scrn("No")
Endif
Strng=Chr$(27)+"[21;60H"
Call Scrn(Strng)
Strng="Key Number:"
Call Scrn(Strng)
Strng=Mid$(Str$(TreasureRecord.Keyed),2)
Call Scrn(Strng)
Strng=Chr$(27)+"[22;60H"
Call Scrn(Strng)
Strng="Spell:"
Call Scrn(Strng)
If TreasureRecord.Spell=False Then
Strng="<none>"
Call Scrn(Strng)
Strng=Space$(8)
Call Scrn(Strng)
Else
If TreasureRecord.Spell<1 Or_
TreasureRecord.Spell>Lof(4)/Len(SpellRecord) Then
Strng="<out of range>"
Call Scrn(Strng)
Else
Get 4,TreasureRecord.Spell,SpellRecord
Strng=Left$(SpellRecord.SpellName,14)
Call Scrn(Strng)
Endif
Endif
10361
Exit Sub
10362
Resume 10361
End Sub
Sub ClearSubstats
On Local Error Goto 10372
If TempD Then
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
For Temp2=16 To 22
Strng=Chr$(27)+"["+Mid$(Str$(Temp2),2)+";34H"
Call Scrn(Strng)
Strng=Space$(46)
Call Scrn(Strng)
Next
TempD=False
Endif
10371
Exit Sub
10372
Resume 10371
End Sub
Sub Help(Var1)
On Local Error Goto 10382
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[2J"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;36;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;1H"
Call Scrn(Strng)
Strng=Chr$(214)+String$(78,196)+Chr$(183)
Call Scrn(Strng)
For Temp=2 To 24
Strng=Chr$(27)+"["+Mid$(Str$(Temp),2)+";1H"
Call Scrn(Strng)
Strng=Chr$(186)
Call Scrn(Strng)
Strng=Chr$(27)+"["+Mid$(Str$(Temp),2)+";80H"
Call Scrn(Strng)
Strng=Chr$(186)
Call Scrn(Strng)
Next
Strng=Chr$(27)+"[25;1H"
Call Scrn(Strng)
Strng=Chr$(211)+String$(78,196)
Call Scrn(Strng)
Color 11,1
Locate 25,80,0
Print Chr$(189);
Strng=Chr$(27)+"[25;6H"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=" Next Screen: Cursor Up/Dn "
Call Scrn(Strng)
Strng=Chr$(27)+"[25;35H"
Call Scrn(Strng)
Strng=" Next Topic: Page Up/Dn "
Call Scrn(Strng)
Strng=Chr$(27)+"[25;61H"
Call Scrn(Strng)
Strng=" Quit: Escape "
Call Scrn(Strng)
Strng=Chr$(27)+"[1;33;44m"
Call Scrn(Strng)
Temp2=1
Temp1=False
Gosub Read.Data
Do
TempX$=Inkey$
While TempX$=Nul
TempX$=Inkey$
Wend
If TempX$=Chr$(27) Then
Exit Sub
Endif
If Len(TempX$)=2 Then
Temp8=Asc(Mid$(TempX$,2,1))
Select Case Temp8
Case 72
If Temp2<>1 Then
Temp2=Temp2-1
Gosub Read.Data
Endif
Case 73
If Temp1 Then
Temp2=1
Temp1=Temp1-1
Gosub Read.Data
Endif
Case 80
Temp2=Temp2+1
Gosub Read.Data
Temp2=Temp4
Case 81
Temp1=Temp1+1
Temp3=Temp2
Temp2=1
Gosub Read.Data
If Temp5<Temp1 Then
Temp1=Temp5
Temp2=Temp3
Endif
End Select
Endif
Loop
Exit Sub
Read.Data:
Restore HelpData
Temp5=False
Temp8=1
Dat1=False
Dat2=False
Dat3=False
Do
Read Dat1,Dat2,Dat3,OutZ
OutZ=" "+OutZ+" "
If Dat1>False And Dat1>Var1 Then
Return
Endif
If (Dat1=Var1 Or Dat1=False) And Dat2=Temp1 Then
Temp5=Dat2
Temp4=1
Temp7=False
For Temp9=1 To Dat3
Get 1,Temp9+Temp8,HelpRecord1
Temp7=Temp7+1
If Temp4=Temp2 Then
Strng=Chr$(27)+"[1;"+Mid$(Str$(HelpRecord1.TextColor),2)+";44m"
Call Scrn(Strng)
Strng=Chr$(27)+"["+Mid$(Str$(Temp7+1),2)+";2H"
Call Scrn(Strng)
Strng=HelpRecord1.Text
Call Scrn(Strng)
Endif
If Temp4=Temp2 And Temp7=1 Then
Strng=Chr$(27)+"[1;37;44m"
Call Scrn(Strng)
Strng=Chr$(27)+"[1;2H"
Call Scrn(Strng)
Strng=String$(78,196)
Call Scrn(Strng)
VarX=Int(40-Len(OutZ)/2+1)
Strng=Chr$(27)+"[1;"+Mid$(Str$(VarX),2)+"H"
Call Scrn(Strng)
Strng=OutZ
Call Scrn(Strng)
Endif
If Temp7=22 Then
If Temp4=Temp2 Then
Return
Else
Temp4=Temp4+1
Temp7=False
Endif
Endif
Next
If Temp2>Temp4 Or Temp7=False Then
Return
Endif
If Temp7<22 Then
For Temp9=Temp7+1 To 22
Strng=Chr$(27)+"["+Mid$(Str$(Temp9+1),2)+";2H"
Call Scrn(Strng)
Strng=Space$(78)
Call Scrn(Strng)
Next
Endif
Return
Endif
Temp8=Temp8+Dat3
Temp5=Dat2
Loop Until Dat1=99 And Dat2=99 And Dat3=99
Return
10381
Exit Sub
10382
Resume 10381
End Sub
Sub Scrn(Var$)
On Local Error Goto 10392
Var$=Var$+"$"
InregsX.AX=&H0900
InregsX.DS=Sseg(Var$)
InregsX.DX=Sadd(Var$)
Call InterruptX(&H21,InregsX,OutregsX)
10391
Exit Sub
10392
Resume 10391
End Sub
HelpData:
Data 0,0,19,"DNDEDIT KEYS CHART"
Data 1,1,34,"DNDEDIT ROOM EDIT KEYS CHART"
Data 1,2,38,"DNDEDIT ROOM FIELDS"
Data 2,1,16,"DNDEDIT OBJECT EDIT KEYS CHART"
Data 2,2,146,"DNDEDIT OBJECT FIELDS"
Data 3,1,17,"DNDEDIT TREASURE EDIT KEYS CHART"
Data 3,2,250,"DNDEDIT TREASURE FIELDS"
Data 4,1,17,"DNDEDIT MONSTER EDIT KEYS CHART"
Data 4,2,172,"DNDEDIT MONSTER FIELDS"
Data 5,1,16,"DNDEDIT SPELL EDIT KEYS CHART"
Data 5,2,120,"DNDEDIT SPELL FIELDS"
Data 6,1,10,"DNDEDIT ACTION EDIT KEYS CHART"
Data 6,2,125,"DNDEDIT ACTION FIELDS"
Data 7,1,20,"DNDEDIT USER EDIT KEYS CHART"
Data 7,2,234,"DNDEDIT USER FIELDS"
Data 8,1,14,"DNDEDIT MONCLASS EDIT KEYS CHART"
Data 8,2,19,"DNDEDIT MONCLASS FIELDS"
Data 9,1,17,"DNDEDIT ROOMLINK EDIT KEYS CHART"
Data 9,2,9,"DNDEDIT ROOMLINK FIELDS"
Data 10,1,17,"DNDEDIT NONPLAYER EDIT KEYS CHART"
Data 10,2,146,"DNDEDIT NONPLAYER FIELDS"
Data 99,99,99,"EOF"