Rem File: Dndbbs.inc Version v5.0a Release r2.0a Tweak t6.0a

DefInt A-Z
Rem $Dynamic

Rem $Include: 'const.inc'

Type RegTypeX
 AX As Integer
 BX As Integer
 CX As Integer
 DX As Integer
 BP As Integer
 SI As Integer
 DI As Integer
 Flags As Integer
 DS As Integer
 ES As Integer
End Type

Type ActionType
 Attribute1 As Integer
 Attribute2 As Integer
 AttackMonster(1 To 3) As Single
 EncounterRate As Integer
 Fumble As Integer
 HealthRate As Integer
 HitPoints As Integer
 Inventory As Integer
 InvPercent As Integer
 InvNumber As Integer
 Level As Integer
 MonsterTalk(1 To 3) As Single
 MonsterTrigger(1 To 3) As Single
 Restrictions As Integer
 RustRate As Integer
 SpellTrigger As Single
 StealRate As Integer
 Teleport(1 To 5) As Single
 TelePercent As Integer
 Hidden As Integer
 ItemForSale As Single
 WishPercent As Integer
 PoisonPercent As Integer
End Type

TYPE BankType
 UserIndex AS SINGLE
 DatePost AS STRING * 10
 TimePost AS STRING * 8
 Balance AS DOUBLE
 Balance2 AS DOUBLE
 Deleted As INTEGER
 PostAmount AS DOUBLE
 PostType AS STRING * 1
 PostSubType AS STRING * 1
 PostSubType2 As Integer
 From As String*30
 To As String*30
END TYPE

Type ContainerType
 ContainerName As String*30
 ContainerShort As String*30
 NamePrefix As String*15
 ContainerMax As Integer
 Closed As Integer
 Locked As Integer
 KeyNumber As Single
 UserNumber As Single
 RoomNumber As Single
 DeletedContainer As Integer
 InvisibleContainer As Integer
 Weight As Integer
 WithinContainer As Single
 Disappears As Single
 ContainerIndex As Single
 Size As Integer
 Material As Integer
 Permanent As Integer
 SelfImplodes As Integer
 RestrictItem(1 To 3) As Single
 TrapType As Integer
 TrapHits As Integer
 TrapItem As Single
 Prefix1 As String*8
 Damaged As Integer
 SwapFlag As Integer
 Scanned As Integer
 First2 As Single ' within list
 Last2 As Single ' within list
 First As Single ' inventory
 Last As Single ' inventory
 Prev As Single ' room\user container
 Next As Single ' room\user container
End Type

Type RoomType
 Action As Single
 Custom1 As String*12
 Custom2 As String*12
 Direct(1 To 14) As Single
 LongDesc(1 To 19) As Single
 MonClass As Single
 ShortDesc As String*80
 First As Single ' inventory
 Last As Single
 First2 As Single ' containers
 Last2 As Single
End Type

Type TreasureType
 TreasureName As String*30
 ShortName As String*30
 Weight As Integer
 Gold As Double
 Spell As Single
 Plus As Integer
 Coin As Integer
 Locked As Integer
 KeyNumber As Single
 Scroll As Integer
 Charges As Integer
 Potion As Integer
 Loadable As Integer
 Ammunition As Integer
 AmmoLoads As Single
 Invisible As Integer
 Permanent As Integer
 Proficiency As Integer
 WeaponNumber As Integer
 RingType As Integer
 RingSpell As Single
 Edible As Integer
 Rustable As Integer
 RustPercent As Integer
 Stealable As Integer
 StealPercent As Integer
 Launchable As Integer
 LaunchLoads As Single
 LaunchAmmo As Integer
 Movable As Integer
 Vehicle As Integer
 VehicleType As Integer
 LightType As Integer
 LightCharges As Integer
 FuelType As Integer
 FuelCharges As Integer
 Container As Integer
 ContainerMax As Integer
 ContainerPrefix As String*15
 ContainerDisappears As Single
 ContainerSize As Integer
 ContainerMaterial As Integer
 ContainerSelfImplodes As Integer
 PotionType As Single
 NewPotion As Single
 MixPotion As Integer
 TwoHanded As Integer
 RequireStr As Integer
 RequireDex As Integer
 RequireInt As Integer
 RestrictItem(1 To 3) As Single
 TrapType As Integer
 TrapHits As Integer
 TrapItem As Single
 MasterKey As Integer
 Liquid As Integer
 LiquidType As Integer
 LiquidFlags As Integer
 Prefix1 As String*8
 StaysInRoom As Integer
 Occupants As Integer
 BindType As Integer
 TimesCursed As Integer
 TimesBlessed As Integer
 Persistent AS INTEGER
 MaxPersistCharges AS INTEGER
 PersistTime AS SINGLE
 DischargePersist AS SINGLE
 ProperName As String*20
End Type

Type WeaponType
 Index As Single
 Charges As Integer
 Plus As Integer
End Type

Type WeaponType2
 Index As Single
 Charges As Integer
 Plus As Integer
 Time1 As Single
 Time2 As Single
End Type

Type UserType
 CodeName As String*30
 PassWord As String*20
 PassWord2 As String*20
 Question As String*80
 Answer As String*20
 PassWord3 As String*20
 ClassName As String*20
 ClassType As Integer
 Stats(1 To 7) As Integer
 Weapon(1 To 10) As WeaponType
 Weapons(1 To 4) As Integer
 Room As Single
 Level As Integer
 Experience As Double
 Gold As Double
 NumCalls As Integer
 Fatigue As Integer
 FatigueMax As Integer
 Vitality As Integer
 VitalityMax As Integer
 Magic As Integer
 MagicMax As Integer
 Poison As Integer
 Borrow As Double
 Invisible As Integer
 Race As Integer
 Proficiency As Integer
 Bank As Double
 PlayersKilled As Double
 MonstersKilled As Double
 Permanentkilled AS DOUBLE
 Brief As Integer
 DateOn As String*10
 Sysnews As String*10
 Beauty As Integer
 Glamour As Integer
 Psionic As Integer
 PsionicMax As Integer
 Align1 As Integer
 Align2 As Integer
 Flags As Integer
 Flags2 As Integer
 MaxCalls As Integer
 FromHour As Integer
 FromMin As Integer
 ToHour As Integer
 ToMin As Integer
 SortInv As Integer
 TimeUsed As Single
 TimeLimit As Single
 Hidden As Integer
 Encumbrance As Integer
 TimesLogon As Double
 TimesDied As Double
 Prefix1 As String*8
 Prefix2 As String*8
 First As Single ' inventory
 Last As Single
 First2 As Single ' containers
 Last2 As Single
 NodeList As String*127
 NodeList2 As Single
 EditList As Single
 StatusVar As Integer
 Prefix3 As String*8
 ShortcutKey1(1 To 8) As String*8
 ShortcutKey2(1 To 8) As String*32
 FunctionKeys(1 To 10) As String*20
 StatusLineString As String*80
 ActionLineString As String*80
 ObjectsCreated(1 To 10) As Double
 WishsLeft As Integer
 Block1 As Integer
 Block2 As Integer
 Buffer22 As Single
 Buffer23 As Single
 Buffer24 As Double
 Buffer25 As Double
End Type

Type GuestType
 OpenSystem As Integer
 OpenSystemTime1 As String*11
 OpenSystemTime2 As String*11
 GuestAllowed As Integer
 GuestStartsAtLevel As Integer
 GuestStartsInRoom As Single
 GuestTimeLeft As Integer
 GuestClass As Integer
 GuestRace As Integer
 GuestAlign1 As Integer
 GuestAlign2 As Integer
 GuestProf As Integer
 GuestStats As String*36
 GuestCanTeleport As Integer
 GuestRoomExit As String*30
 GuestRoomResurrect As Single
 GuestAllowMail As Integer
 GuestAllowCasino As Integer
 GuestAllowBank As Integer
 GuestAllowTeam As Integer
 DualPassword As Integer
 PasswordQuestion As Integer
 AllowDMLogon As Integer
 AllowLocalSysopLogon As Integer
 AllowLocalMaxLogon As Integer
 SysopName As String*30
 SysopEmail As String*30
 BBSname As String*80
 BBSdesc As String*80
 TownMayorTime As String*11
 GovernorTime As String*11
 GuildMasterTime As String*11
 SysopTime As String*11
 DMTime As String*11
 AsstDMTime As String*11
 PageTimes As String*35
 NodeBitMask As String*127
End Type

Type SpellType
 SpellName As String*30
 Chant As String*80
 Level As Integer
 SpellType As Integer
 Teleport As Single
 Psionic As Integer
 PsionicMode As Integer
 ClassType As Integer
 Desc As String*80
 Ingred(1 To 5) As Single
 SpellFlag As Integer
 SpellEquate As String*40
 Equation As Integer
 Prefix1 As String*8
 Buffer9 AS INTEGER
 Buffer10 AS INTEGER
 Buffer11 AS SINGLE
 Buffer12 AS SINGLE
End Type

Type MonClassType
 Monsters(1 To 10) As Single
End Type

Type LogType
 User As Single
 Message As String*80
 Clock As String*21
End Type

Type ObjectType
 ObjectName As String*30
 ShortName As String*30
 RoomLink1 As Single
 RoomLink2 As Single
 Invisible As Integer
 JailTrap As Integer
 DoorLock As Integer
 Destination As Integer
 Permanent As Integer
 Hidden As Integer
 Closed As Integer
 KeyNumber As Single
 Relocks As Integer
 LongDesc As String*80
 FromHour As Integer
 FromMin As Integer
 ToHour As Integer
 ToMin As Integer
 LightRoom As Integer
 LightTime As Integer
 ShortDesc As String*80
 Trap As Integer
 Teleport As Single
 SwitchType As Integer
 SwitchRoom As Single
 SwitchLight As Integer
 SwitchLockRoom As Integer
 Prefix1 As String*8
 PortalPassword As String*8
 ObjDesc(1 To 19) As Single
 Buffer5 AS INTEGER
 Buffer6 AS INTEGER
 InitRoom AS SINGLE
 InitRoom2 AS SINGLE
End Type

Type MonsterType
 MonsterName As String*30
 PluralName As String*30
 Experience As Double
 Gold As Double
 NumberAppearing As Integer
 Level As Integer
 Hits As Integer
 Poison As Integer
 LevelDrain As Integer
 Spell As Single
 Block As Integer
 Prevent As Integer
 Follow As Integer
 Magic As Integer
 Jail As Integer
 TeleportPercent As Integer
 FollowPercent As Integer
 BlockPercent As Integer
 PreventPercent As Integer
 SpellPercent As Integer
 PoisonPercent As Integer
 DrainPercent As Integer
 Rate As Integer
 RatePercent As Integer
 Permanent As Integer
 Talk(1 To 5) As Integer
 Psionic As Integer
 PsionicSpell As Single
 Equation As Integer
 MonsterEquate As String*40
 MonsterSurprise As String*40
 MonsterSavingThrow As String*40
 Prefix1 As String*8
 First As Single
 Last As Single
 Weapon AS Single
 Shield As Single
 Armor As Single
 PerMonster As Integer
 TalkGold As Double
 TalkGoldTimes As Integer
 TalkGoldPercent As Integer
 TalkItem As Single
 TalkItemTimes As Integer
 TalkItemPercent As Integer
 TalkMoveDirection As Integer
 Invisible AS INTEGER
 RemainsInRoom AS INTEGER
 Buffer15 AS SINGLE
 Buffer16 AS SINGLE
End Type

Type NewMessagesType
 LastMessage As Single
End Type

Type TableType
 ClassType As Integer
 Clock As String*21
 Date As String*10
 Flags As Integer
 From As String*30
 Killed As Integer
 Length As Integer
 Private As Integer
 Received As Integer
 Reply As Integer
 Start As Single
 Subject As String*20
 Thread As Single
 Time As String*8
 Timer As Single
 TimesRead As Double
 To As String*30
End Type

Rem Online player node information.
Type MessType1
 ActiveNode As Integer
 MachineName As String*16
 SuspendNode As Integer
 PortNumber As Integer
 ClassName As String*20
 ClassType As Integer
 Invisible As Integer
 Hidden As Integer
 LastCommand As String*15
 Level As Integer
 RoomNumber As Single
 Score1 As Double
 Score2 As Double
 Score3 As Double
 TimeOn As String*8
 UserIndex As Single
 UserName As String*30
 OfferTime As Single
 FromNode As Integer
 ToNode As Integer
 GoldOffer As Double
 ItemOffer As Single
 OfferCharges As Integer
 GoldFor As Double
 ItemFor As Single
 ForCharges As Integer
 ContainerOffer As Integer
 ContainerFor As Integer
 SendFlags As String*127
 ReceiveFlags As String*127
 Monitor As Integer
 Chatting As Integer
 Gold As Double
 Exp As Double
 LastMonster As Single
 LastUser As Single
 Fatigue As Integer
 Vitality As Integer
End Type

Rem Node messaging structure.
Type MessType2
 Message As String*80
 Message2 As String*30
 Message3 As Single
 Message4 As Single
 MessageType As Integer
 MessageTime As Single
 Node As Integer
 UserName As String*30
 UserIndex As Single
 RoomNumber As Single
 Flags As String*127
End Type

Rem Monsters in room.
Type MessType3
 Monster As MonsterType
 Weapon(1 To 3) As WeaponType2
 Index As Single
 Room As Single
 AutoMode As Integer
 IsAutomaton As Integer
End Type

Rem Offline players in room.
Type MessType4
 Index As Single
 Room As Single
 Hits As Double
 Exp As Double
 Align1 As Integer
 Align2 As Integer
 Time1 As Single
End Type

Rem Monster inventory.
Type MessType5
 Index As Single
 Inv As Single
 Charges As Integer
 Room As Single
 Monster As Single
 IsAutomaton As Integer
End Type

Rem Generic inventory structure.
Type MessType6
 Index As Single
 User As Single
 Charges As Integer
 Plus As Integer
 Room As Single
 Prev As Single
 Next As Single
 Temp(1 To 4) As Single
 Desc(1 To 4) As Single
 Time1 As Single
 Time2 As Single
End Type

Rem Online player node statistic update structure.
Type MessType7
 CodeName As String*30
 PassWord As String*20
 Level As Integer
 ClassType As Integer
 Proficiency As Integer
 Weapon1 As Integer
 Weapon2 As Integer
 Weapon3 As Integer
 Weapon4 As Integer
 Classname As String*20
 Stat1 As Integer
 Stat2 As Integer
 Stat3 As Integer
 Stat4 As Integer
 Stat5 As Integer
 Stat6 As Integer
 Stat7 As Integer
 Stat8 As Integer
 Stat9 As Integer
 Experience As Double
 Gold As Double
 Room As Single
 TimeLimit As Single
 MaxCalls As Integer
 FromHour As Integer
 FromMin As Integer
 ToHour As Integer
 ToMin As Integer
 SpecialFlags As Integer
 Race As Integer
 FatigueMax As Integer
 VitalityMax As Integer
 MagicMax As Integer
 PsionicMax As Integer
 Align1 As Integer
 Align2 As Integer
 Encumbrance As Integer
 First2 As Single
 Last2 As Single
 Weight As Integer
 Vehicle As Single
 NodeList As Single
 WishesLeft As Integer
 NodeList2 As String*127
 Prefix1 As String*8
 Prefix2 As String*8
 ObjCreated(1 To 10) As Double
 Flags1 As Integer
 Flags2 As Integer
 Flags3 As Integer
 Flags4 As Integer
 Flags5 As Integer
End Type

Type HelpType1
 Text As String*70
 CName As String*15
End Type

Type HelpType2
 NextRecNum As Integer
 CommandName As String*15
 Text As String*78
End Type

Type HelpType3
 TextColor As Integer
 Text As String*78
End Type

Type MessageBaseType
 BaseDeleted As Integer
 BaseFileName As String*8
 BaseMessName As String*78
 BaseType As Integer
End Type

Type BufferType
 Buffer As String*80
End Type

Type TeamMenuType
 Deleted As Integer
 Name As String*30
 Pass As String*20
 Gold As Double
 Member(1 To 5) As String*30
 UserIndex(1 To 5) As Single
 Prefix1 As String*8
 First As Single
 Last As Single
 First2 As Single
 Last2 As Single
 Activated(1 To 5) As Integer
End Type

Type UserCommandType
 AttackCommand As Integer
 CommandAbbr As String*2
 CommandClass(1 To 8) As Integer
 CommandParam As Integer
 CommandSet(1 To 3) As String*12
 CommandLimit As Integer
 CommandTime(1 To 4) As Integer
End Type

Type UserConfigType
 UserConfig1 As Single
 UserConfig2 As Integer
 UserConfig3 As String*80
End Type

Type SicUserType
 AccountLogin As String*8
 Account As String*8
 Password As String*8
 GroupLogin As String*8
 Group As String*8
 LibraryLogin As String*8
 Library As String*8
 MaxRecords As Single
 TimeLimit As Single
 PrinterSelect As Integer
 TimeUsed As Single
 LastMonth As Integer
 MaxRuntime As Single
 Commands(1 To 151) As Integer
End Type

Common Shared _
 Action.Recurse As Integer,_
 Action.FileName As String,_
 Action.Number As Single,_
 Action.Prompt As String,_
 ActionRecLen As Integer,_
 ActionRecord As ActionType,_
 Alignment.Name1() As String*7,_
 Alignment.Name2() As String*7,_
 Allow.Break As Integer,_
 Allow.High.Class As Integer,_
 Allow.Remote.Edit As Integer,_
 ANSI.Keys() As String*79,_
 ANSIPrefixChar As String,_
 Array.Data() As Integer,_
 Auto.Break As Integer,_
 Auto.Mode As Integer,_
 Auto.Pickup As Integer,_
 Avatar.Code As Integer,_
 Bank.FileName As String,_
 Bank.Log.FileName As String,_
 BankRecLen As Integer,_
 BankRecord AS BankType,_
 Blank.Menu As Integer,_
 Blank.Screen As Integer,_
 Break As Integer,_
 Brief.Messages As Integer,_
 Base.Address As Integer,_
 Buffer As String,_
 BufferRecLen As Integer,_
 BufferRecord As BufferType,_
 Bypass.CodeName As String,_
 Bypass.Login As Integer,_
 Bypass.Screen As Integer,_
 Bypass.Splash As Integer,_
 Byte As String*1,_
 BBS.Mode As Integer,_
 BBS.Name As String,_
 Carriage.Input As Integer,_
 Carriage.Return As Integer,_
 Catalog.FileName As String,_
 Chained As Integer,_
 Chained2 As Integer,_
 Chat As Integer,_
 Chat.Annoy As Integer,_
 Chat.Flag As Integer,_
 Chat.Mode As Integer,_
 Check.Machine.Name As Integer,_
 Choice As Single,_
 Class.Name() As String*15,_
 Clock.On As String*21,_
 CodeName.Temp As String,_
 Color.Code As Integer,_
 Column As Integer,_
 Command.Time.Limit As Integer,_
 Container.Filename As String,_
 Container.Index As Single,_
 Container.Number As Single,_
 ContainerRecLen As Integer,_
 ContainerRecord As ContainerType,_
 Continuous As Integer,_
 Count As Integer,_
 CtnInv.FileName As String,_
 Cursor.Position As Integer,_
 CursorX As Integer,_
 CursorY As Integer,_
 Current.Avatar.Background As Integer,_
 Current.Avatar.Foreground As Integer,_
 Data.Error As Integer,_
 Data.Path1 As String,_
 Data.Path2 As String,_
 Data.Path3 As String,_
 Data.Path4 As String,_
 Date.On As String*10,_
 Day.File.FileName As String,_
 Day.Log.FileName As String,_
 DayFileRecLen As Integer,_
 Debug.Mode As Integer,_
 Debug.Pack As Integer,_
 Direction() As String*9,_
 Disable.Play As Integer,_
 Disable.Break As Integer,_
 Disable.DM As Integer,_
 Disable.Nodes As Integer,_
 Disable.ANSI As Integer,_
 Disable.Avatar As Integer,_
 Disable.Share As Integer,_
 Disable.String As Integer,_
 Disable.String2 As Integer,_
 Disable.Sysop As Integer,_
 Disk.Log As Integer,_
 Disk.Space As Double,_
 DMhelp.Filename As String,_
 DND.Path As String,_
 Door.Node As String*2,_
 Door.Name As String,_
 Door.Time As Single,_
 DOS.Exit As String,_
 DOS.Major As Integer,_
 DOS.Minor As Integer,_
 Drive.Override As Integer,_
 Dungeon.Master As Integer,_
 Dungeon.Master.Assistant As Integer,_
 Echo As Integer,_
 Edit.Data() As String,_
 EditCommands As String*704,_
 Equate.Debug As Integer,_
 Email.Number As Single,_
 Entry.Command As Integer,_
 Extended.ANSI As Integer,_
 File.Extension1 As String,_
 File.Extension2 As String,_
 FileName As String,_
 Follow.Mode As Integer,_
 Following As Single,_
 Fossil.Active As Integer,_
 Fossil.Mode As Integer,_
 Fossil.Version As Integer,_
 Func.Buffer As String,_
 Governor As Integer,_
 Graphics.On As Integer,_
 Graphics.Off As Integer,_
 Graphics.Status As Integer,_
 Guild.Master As Integer,_
 GuestRecord As GuestType,_
 GuestLines() As String,_
 GuestLogin As Integer,_
 Help.FileName1 As String,_
 Help.Filename2 As String,_
 Help.Filename3 As String,_
 Help.Filename4 As String,_
 HelpRecLen1 As Integer,_
 HelpRecLen2 As Integer,_
 HelpRecLen3 As Integer,_
 HelpRecLen4 As Integer,_
 HelpRecord1 As HelpType1,_
 HelpRecord2 As HelpType2,_
 HelpRecord3 As HelpType3,_
 Hidden.Player As Integer,_
 Hidden As Integer,_
 High.Class.Name() As String*15,_
 Hint.FileName As String,_
 History.Count As Integer,_
 History() As String*79,_
 Inline.FileName1 As String,_
 Inline.FileName2 As String,_
 InregsX As RegTypeX,_
 Inserting As Integer,_
 InterestRate1 As Single,_
 InterestRate2 As Single,_
 InterestRate3 As Single,_
 Intoxicated As Integer,_
 InventoryNames() As String*8,_
 Invisible As Integer,_
 Ignore.Vehicle As Integer,_
 Last.Command As String,_
 Last.Command.Number As Integer,_
 Last.Module.Number As Integer,_
 Last.Monster As String,_
 Last.Monster.Temp As Integer,_
 LastUser.FileName As String,_
 LearnedSpells As String,_
 Line.Length As Integer,_
 Line.Limit As Integer,_
 Line.Number As Integer,_
 Lines.Scrolled As Integer,_
 Link.Data() As Integer,_
 Local.ANSI.Color As Integer,_
 Local.Avatar.Color As Integer,_
 Local.Mode As Integer,_
 Log.Extension As String,_
 Log.FileName As String,_
 Logged.In As Integer,_
 Logged.Node As Integer,_
 Logoff.FileName As String,_
 Logoff.Help.FileName As String,_
 Logon.Help.FileName As String,_
 LogRecLen As Integer,_
 LogRecord As LogType,_
 Loop.Flag As Integer,_
 Loops.Counted As Integer,_
 Lost.Carrier As Integer,_
 Low.Mem.Use As Integer,_
 Magic.Spell As Integer,_
 Max.Lines As Integer,_
 Max.Row As Integer,_
 MaxRow.OverRide As Integer,_
 Menu1() As String*25,_
 Menu2() As Integer,_
 Message.Base As String,_
 Message.Base.Filename As String,_
 Message.Base.Name As String,_
 Message.Base.Number As Single,_
 Message.Length As Integer,_
 Message.Name As String,_
 Message.Number As Integer,_
 Message.Reply As Integer,_
 Message.Stat As String,_
 Message.Thread As Single,_
 Message.To As String,_
 Message1 As String,_
 MessageBaseRecord As MessageBaseType,_
 MessageRecLen As Integer,_
 MessBaseRecLen As Integer,_
 MessWork.Filename As String,_
 MessWorkRecLen1 As Integer,_
 MessWorkRecLen2 As Integer,_
 MessWorkRecLen3 As Integer,_
 MessWorkRecLen4 As Integer,_
 MessWorkRecLen5 As Integer,_
 MessWorkRecLen6 As Integer,_
 MessWorkRecLen7 As Integer,_
 MessWorkRecord1 As MessType1,_
 MessWorkRecord2 As MessType2,_
 MessWorkRecord3 As MessType3,_
 MessWorkRecord4 As MessType4,_
 MessWorkRecord5 As MessType5,_
 MessWorkRecord6 As MessType6,_
 MessWorkRecord7 As MessType7,_
 Modem.Baud As Single,_
 Modem.Return As String,_
 Modem.Allow() As Integer,_
 Modem.Connect() As Single,_
 Modem.String() As String*20,_
 MonClass.FileName As String,_
 MonClass.Max As Single,_
 MonClass.Number As Single,_
 MonClassRecLen As Integer,_
 MonClassRecord As MonClassType,_
 Monitor.Mode As Integer,_
 Monster.Class() As Single,_
 Monster.Attacked As Single,_
 Monster.Cycle As Integer,_
 Monster.FileName As String,_
 Monster.Number As Single,_
 Monster.Percent() As Integer,_
 Monster.Rate() As Integer,_
 Monster.Rate1 As Integer,_
 Monster.Rate2 As Integer,_
 Monster.Temp As Single,_
 MonsterRecLen As Integer,_
 MonsterRecord As MonsterType,_
 Monsters.Killed As Double,_
 MonInv.FileName As String,_
 MonTalk.FileName As String,_
 MonTalkRecLen As Integer,_
 Mouse.Button As Integer,_
 Mouse.Button2 As Integer,_
 Mouse.Button3 As Integer,_
 Mouse.Column As Integer,_
 Mouse.Present As Integer,_
 Mouse.Row As Integer,_
 Mouse.X As Integer,_
 Mouse.Y As Integer,_
 Multiplier As Integer,_
 Multiplier2 As Integer,_
 New.Mail.Count As Integer,_
 New.Mail.Time As Single,_
 New.Room As Integer,_
 NewMessages As NewMessagesType,_
 NewMessRecLen As Integer,_
 Next.Field As Integer,_
 Next.Room As Single,_
 No As Integer,_
 No.Echo As Integer,_
 No.Input As Integer,_
 No.Input.Echo As Integer,_
 No.Input.Out As String,_
 Node As Integer,_
 NodeX As String,_
 Node.Abort As Integer,_
 Node.Work.Array1() As String*80,_
 Node.Work.Array2() As Integer,_
 NonPlayer.FileName As String,_
 NonPlayer.Max As Single,_
 NonPlayer.Number As Single,_
 NonPlayer.Rooms() As String*30,_
 NonPlayerRecLen As Integer,_
 Normal.User As Integer,_
 Notice.FileName As String,_
 Number.Appearing As Integer,_
 Numeral() As String*5,_
 Object.FileName As String,_
 Object.Index As Single,_
 Object.Number As Single,_
 ObjectRecLen As Integer,_
 ObjectRecord As ObjectType,_
 Options.Array() As String,_
 Options.Lines As Integer,_
 OS2.Detected As Integer,_
 Out2 As String,_
 Out3 As String,_
 Out4 As String,_
 Out5 As String,_
 Out6 As String,_
 Out7 As String,_
 Out8 As String,_
 Out9 As String,_
 OutregsX As RegTypeX,_
 OutZ As String,_
 Params As Integer,_
 Parse.Temp As Integer,_
 Parse.Temp2 As Integer,_
 Parsed.Command1 As String,_
 Parsed.Command2 As String,_
 Parser As Integer,_
 Pass.Door As Integer,_
 PassWord.Temp As String,_
 PassWord.Temp2 As String,_
 Permanent.Killed As Double,_
 Players.Killed As Double,_
 Port As Integer,_
 Port.Override As Integer,_
 Prefix1 As String,_
 Prefix2 As String,_
 Prelog.FileName As String,_
 Previous.Command As Integer,_
 Previous.Command1 As String,_
 Previous.Command2 As String,_
 Previous.Command3 As String,_
 Previous.Type1 As Integer,_
 Previous.Type2 As Integer,_
 Print.Log As Integer,_
 Private.Filename As String,_
 Private.Message As Integer,_
 Psi.Attack.Mode As Integer,_
 Psi.Defense.Mode As Integer,_
 Public.Filename As String,_
 Quit As Integer,_
 Race() As String*8,_
 Relogging As Integer,_
 Remote As Integer,_
 Remote.ANSI.Color As Integer,_
 Remote.Avatar.Color As Integer,_
 Room As Single,_
 Room.Action As Single,_
 Room.Array() As String*40,_
 Room.Containers As Single,_
 Room.Desc.Filename As String,_
 Room.FileName As String,_
 Room.Health.Rate As Integer,_
 Room.Index As Single,_
 Room.Link As Single,_
 Room.MonClass As Single,_
 Room.Monster.Rate As Integer,_
 Room.Number As Single,_
 Room.Objects As Single,_
 Room.Rate As Integer,_
 Room.Rust.Rate As Integer,_
 Room.Steal.Rate As Integer,_
 Room.Toggle As Integer,_
 Room.Treasure As Single,_
 RoomInv.FileName As String,_
 RoomDescLen As Integer,_
 RoomRecLen As Integer,_
 RoomRecord As RoomType,_
 Row As Integer,_
 Run.Number As Double,_
 Rust.Rate As Integer,_
 Security.Guard As Integer,_
 Selection As Integer,_
 Share.Installed As Integer,_
 Shelled As Integer,_
 Shell.Type As Integer,_
 Shell.Type2 As Integer,_
 Shortcut.Key1() As String*8,_
 Shortcut.Key2() As String*32,_
 Sort.Array1() As String*32,_
 Sort.Array2() As Integer,_
 Sorting As Integer,_
 Special.Names As Integer,_
 SpecialUserName() As String*30,_
 SpecialUserTime() As String*11,_
 Spell.FileName As String,_
 Spell.Number As Single,_
 SpellRecLen As Integer,_
 SpellRecord As SpellType,_
 Stat() As String*12,_
 Start.Loop As Integer,_
 Statusline.Mode As Integer,_
 Statusline.Line As Integer,_
 Statusline.String As String,_
 Steal.Rate As Integer,_
 Stored.Parsed.Command1 As String,_
 Stored.Parsed.Command2 As String,_
 Strng As String,_
 Strng1 As String,_
 Strng2 As String,_
 Strng3 As String,_
 Subject As String,_
 Summary.FileName As String,_
 Supported.Call As Integer,_
 Suspend.Node As Integer,_
 Sysop As Integer,_
 TableRecLen As Integer,_
 TableRecord As TableType,_
 Team.Containers As Single,_
 Team.Index As Single,_
 Team.Objects As Single,_
 Team.Treasure As Single,_
 Team.FileName As String,_
 Team.Items As Single,_
 Team.Number As Single,_
 Team.Player As Integer,_
 TeamInv.FileName As String,_
 TeamInv.Index As Single,_
 TeamInv.Number As Single,_
 TeamRecLen As Integer,_
 TeamRecord As TeamMenuType,_
 Teleported As Integer,_
 Temp, Temp!, Temp$,_
 Temp.Array1() As Integer,_
 Temp.Array2() As Integer,_
 Temp.Array3() As Single,_
 Temp.Array4() As Single,_
 Temp.ArrayS() As String,_
 Temp.ArrayX() As Single,_
 Temp.ArrayY() As Long,_
 Temp.ArrayZ() As Double,_
 Temp.Command As String,_
 Temp.Index As Single,_
 Temp.Time As Single,_
 Temp.User.Index As Single,_
 Temp0, Temp1, Temp2, Temp3,_
 Temp4, Temp5, Temp6, Temp7,_
 Temp8, Temp9, TempA$, TempA,_
 TempB$, TempB, TempC$, TempC,_
 TempD$, TempD, TempX$, TempX,_
 Temp0!, Temp1!, Temp2!, Temp3!,_
 Temp4!, Temp5!, Temp6!, Temp7!,_
 Temp8!, Temp9!, TempA!,_
 TempB!, TempC!,_
 TempD!, TempX!,_
 Time.Left As Single,_
 Time.On As String,_
 Time.Override As Integer,_
 Timeon As Single,_
 Timeout As Single,_
 Title.Data() As String,_
 Token As Integer,_
 Token1 As String,_
 Token2 As String,_
 Token.Index As Integer,_
 Town.Mayor As Integer,_
 Training.Stats() As Integer,_
 Treasure.Filename As String,_
 Treasure.Index As Single,_
 Treasure.Number As Single,_
 TreasureRecLen As Integer,_
 TreasureRecord As TreasureType,_
 Two.Minutes.Left As Integer,_
 Type.Ahead As String,_
 Type.Error As Integer,_
 Upper.Case As Integer,_
 Usage.FileName As String,_
 User.Attacked As Single,_
 User.Command As String,_
 User.Containers As Integer,_
 User.Echo As Integer,_
 User.FileName As String,_
 User.Index As Single,_
 User.Linefeeds As Integer,_
 User.Linelength As Integer,_
 User.Node As Integer,_
 User.Number As Single,_
 User.Object As Integer,_
 User.Online As Integer,_
 User.Pagelength As Integer,_
 User.Temp As Single,_
 User.Treasure As Integer,_
 User.Wordwrap As Integer,_
 UserCommandLen As Integer,_
 UserCommandRecord As UserCommandType,_
 UserConfigLen As Integer,_
 UserConfigRecord As UserConfigType,_
 UserInv.FileName As String,_
 UserProfile As SicUserType,_
 UserProfileRecLen As Integer,_
 UserRecLen As Integer,_
 UserRecord As UserType,_
 UserRecord2 As UserType,_
 Vehicle1 As Single,_
 Vehicle2 As Integer,_
 Vehicle3 As Single,_
 Vehicle4 As Integer,_
 Video.Page As Integer,_
 Wait.Mode As Integer,_
 Weapon.Type.Name() As String*9,_
 Weight As Double,_
 Welcome.FileName As String,_
 Win.Major As Integer,_
 Win.Minor As Integer,_
 Windows.Detected As Integer,_
 Word.Wrap As Integer,_
 Xcoor As Integer,_
 Ycoor As Integer,_
 Yes As Integer

 ' additional shared variables
 Common Shared IO.Upper.Case As Integer
 Common Shared Zbuffer As Integer, Zbuffer2 As Integer, Zbuffer3 As Integer

 Rem : All include files
 Rem :   dndbbs.inc, dndcnfg.inc, dndedit.inc, dndsic.inc, edit.inc
 Rem : must be identical to this point.

 Rem : Include files such as Dndpack.inc and Dndutil.inc must be edited for
 Rem :   types such as UserType. Dndcnvt.bas, Dndcnvt2.bas and Makeuser.bas
 Rem :   must also be updated for types such as UserType.

 Rem : Critical note:
 Rem :   Get UserFile must only be used with User.Index, for example:
 Rem :     Call Read.Record(UserFile,User.Index)
 Rem :   for any other variable use UserFile2, for example:
 Rem :     Call Read.Record(UserFile2,TempB!)
 Rem :   otherwise the current user will get overwritten to another user.

 Const MaxAlignment=3
 Const MaxArraySize=10
 Const MaxClasses=8
 Const MaxClassNames=10
 Const MaxCommands=3
 Const MaxConfigArray1=40
 Const MaxConfigArray2=150
 Const MaxConfigArray3=100
 Const MaxContainer=10
 Const MaxDirections=12
 Const MaxDMcommands=20
 Const MaxDMClasses=3
 Const MaxIngredients=5
 Const MaxItems=10
 Const MaxKeyDigits=6
 Const MaxLetters=26
 Const MaxMenus=10
 Const MaxMenuChoices=2
 Const MaxMonClass=10
 Const MaxModemBauds=30
 Const MaxMonInventory=5
 Const MaxMonTalk=5
 Const MaxNodes=126
 Const MaxNodeCommands=16
 Const MaxNumerals=10
 Const MaxOccupants=4
 Const MaxPorts=64
 Const MaxProfiles=151
 Const MaxRaces=8
 Const MaxRoomArrays=20
 Const MaxRoomInventory=20
 Const MaxRoomObjects=20
 Const MaxRoomRecurse=4
 Const MaxShortcutKeys=8
 Const MaxStats=7
 Const MaxStrips=50
 Const MaxSysopCommands=15
 Const MaxTemplate=704
 Const MaxTimes=4
 Const MaxUserCommands=155
 Const MaxUserInventory=15
 Const MaxUserObjects=5
 Const MaxTeamInv=12
 Const MaxTeamMembers=5
 Const MaxTrainStats=4
 Const MaxWeapons=4

 Const BankFee=3
 Const LoginTries=3

 Const Dead$="<dead>"
 Const Deleted$="<deleted>"
 Const Enter$="<enter>"
 Const More$="More(y/n/c/q)? "
 Const Mask$="#"
 Const MaxErrors=32
 Const MaxInt=32767
 Const MinInt=-32768
 Const None$="<null>"
 Const Offline$="<offline>"
 Const PrimeKey=29
 Const ProgramName$="DNDBBS"
 Const Quote$="'"
 Const Range$="<range error>"
 Const Release$="2.0a"
 Const RunMode$="gamma"
 Const Tweak$="6.0a"
 Const Version$="5.0a"
 Const YearRelease$="2025"

 Const Blunt=1
 Const Pole=2
 Const Sharp=3
 Const Thrusting=4

 Const Hidden.Object=1
 Const Magic.Trap=2
 Const Magically.Hidden=4

 Const Use.Spell.Type=1
 Const Scroll.Spell.Type=2
 Const Cast.Spell.Type=4

 Const Rerolled=1
 Const Stat1=2
 Const Stat2=4
 Const Stat3=8
 Const Stat4=16
 Const Stat5=32
 Const Stat6=64
 Const Stat7=128
 Const Wished=256
 Const Alignmented=512
 Const Locked.User=1024
 Const Special.Char1=2048
 Const Special.Char2=4096
 Const Special.Char3=8192
 Const Special.Char4=16384
 Const WishLevel=1

 Const Public.Base=1
 Const Private.Base=2
 Const DM.Base=4
 Const Sysop.Base=8
 Const TownMayor.Base=16
 Const Governor.Base=32
 Const GuildMaster.Base=64

 Const Class1=2
 Const Class2=4
 Const Class3=8
 Const Class4=16
 Const Class5=32
 Const Class6=64
 Const Class7=128
 Const Class8=256

 Const Direction1=2
 Const Direction2=4
 Const Direction3=8
 Const Direction4=16
 Const Direction5=32
 Const Direction6=64
 Const Direction7=128
 Const Direction8=256
 Const Direction9=512
 Const Direction10=1024
 Const Direction11=2048
 Const Direction12=4096
 Const Direction13=8192

 Const UserFile=1
 Const NonPlayerFile=2
 Const RoomFile=3
 Const ObjectFile=4
 Const MonsterFile=5
 Const TreasureFile=6
 Const MonTalkFile=7
 Const MessBaseFile=8
 Const MonClassFile=9
 Const SpellFile=10
 Const ActionFile=11
 Const MessageFile=12
 Const NewFile=13
 Const TableFile=14
 Const ContainerFile=15
 Const MessWorkFile1=16
 Const MessWorkFile2=17
 Const MessWorkFile3=18
 Const MessWorkFile4=19
 Const MessWorkFile5=20
 Const MessWorkFile6=21
 Const MessWorkFile7=22
 Const MessWorkFile8=23
 Const MessWorkFile9=24
 Const LogFile=25
 Const DayFile1=26
 Const TempFile1=27
 Const TempFile2=28
 Const HelpFile1=29
 Const HelpFile2=30
 Const HelpFile3=31
 Const HelpFile4=31
 Const TeamFile=32
 Const UserFile2=33
 Const SicFile=34
 Const DiskFile=35
 Const PrintFile=36
 Const UserInvFile=37
 Const CtnInvFile=38
 Const TeamInvFile=39
 Const RoomInvFile=40
 Const MonInvFile=41
 Const RoomDescFile=42
 Const BankFile=43
 Const ObjDescFile=44

 Const Fighter=1
 Const MagicUser=2
 Const Thief=3
 Const Cleric=4
 Const Paladin=5
 Const Ranger=6
 Const Druid=7
 Const Lady=8
 Const AsstDM=9
 Const DM=10

 Const Human=1
 Const Elf=2
 Const Gnome=3
 Const Dwarf=4
 Const Halfling=5
 Const HalfElf=6
 Const HalfOrc=7
 Const Ogre=8

 Const Enchant=1
 Const Offense=2
 Const Bless=3
 Const Wish=4
 Const Poison=5
 Const Vigor=6
 Const Heal=7
 Const CurePoison=8
 Const LevelDrain=9
 Const Teleporting=10
 Const Befuddled=11
 Const TurnUndead=12
 Const PassDoor=13
 Const Conjure=14
 Const Psionic=15
 Const DetectLock=16
 Const DetectEvil=17
 Const DetectTrap=18
 Const Intoxicate=19
 Const SetTrap=20
 Const Hiding=21
 Const Search=22
 Const Invisibly=23
 Const Identified=24
 Const Enlighten=25
 Const Illuminate=26
 Const Psyche=27
 Const Telepathy=28
 Const Curse=29
 Const Damnate=30
 Const Resurrect=31
 Const GrantWish=32
 Const StealWish=33

 Const PsiAttack=1
 Const PsiDefense=2

 Const LitRoom=0
 Const UnlitRoom=-1

 Const Follow.Command=54
 Const Hunt.Command=68
 Const Identify.Command=69
 Const Trace.Command=137
 Const Track.Command=138

 Const Attack=73
 Const Backstab=7
 Const Beat=9
 Const Befuddle=10
 Const Beguile=11
 Const Bemuse=12
 Const Bewilder=13
 Const Bewitch=14
 Const Charge=28
 Const Charm=29
 Const Circled=31
 Const Counter=35
 Const Discharge=40
 Const Dodge=42
 Const Feint=49
 Const Guard=59
 Const Killed=73
 Const Lunge=89
 Const Parry=99
 Const Pummel=106
 Const Punch=107
 Const Resist=115
 Const Shield=123
 Const Thrust=134
 Const Turn=140

 Const Fire=50
 Const Fly=53
 Const Launch=76
 Const PsiMode=105
 Const Swim=128

 Const Land=0
 Const Air=1
 Const Water=2
 Const AllTerrain=3

 Const HoldItem=67
 Const WearItem=146

 Const AutoCommand=1
 Const ChatCommand=4
 Const WaitCommand=14

 Const RideVehicle=117

 Declare Sub InterruptX(N As Integer,I As RegTypeX,O As RegTypeX)

 Declare Function Config1!(X%)
 Declare Function Config2%(X%)
 Declare Function Config3$(X%)
 Declare Function DateS$()
 Declare Function FClock$()
 Declare Function FClock2$()
 Declare Function Form$(X#)
 Declare Function Timeit!()
 Declare Function Time.Elapsed(T1!,T2!)
 Declare Function YN$(I%)
 Declare Function ValidDate(V$)
 Declare Function ValidHex(V$)

rem -end-
