LORD 5.02 FP - Legend of the Red Dragon, Free Pascal port
=========================================================

A native Linux build of Deuce's LORD 5.02 JS (the lord.js that ships with
Synchronet), ported line by line to Free Pascal.  It plays the same and uses
the same data files: lordtxt.lrd and the other .lrd screens, mlooks.txt,
flooks.txt, lord.ini, and player.bin / state.bin in the same binary format, so
an existing lord.js game directory can be used as is.

Other Places runs DOS LORD 4.06 In-Game Modules (IGMs) under dosemu, the same
IGMs LORD 4.06 runs, listed in 3RDPARTY.DAT.  Not included: the inter-BBS game
server, RIP graphics, and lord.js's JavaScript IGMs.


FILES
-----
  lord        the game
  lordcfg     the setup program (like LORD's LORDCFG.EXE)
  lord.ini    options; created by lordcfg if missing
  *.lrd, mlooks.txt, flooks.txt   text and screens (from LORD / lord.js)
  LORDTXT.DAT LORD 4.06's stock screens (included).  When it is in the game
              directory its screens are used in place of lordtxt.lrd's (the
              plain 4.06 bank, Inn, Turgon's, town...); lordtxt.lrd still
              gives the ones 4.06 doesn't have.  Delete or rename it for
              lord.js's ANSI screens.
  LORD.LDY, EVENTS.LDY  LORD 4.06's forest event scripts (see FOREST EVENTS);
              delete LORD.LDY for the game's built-in versions
  3RDPARTY.DAT  the Other Places (IGM) list, empty to start with
  LORDC406.EXE  LORD 4.06's LORDCFG, for registering 4.06 (lordcfg's G)

  The rest of LORD 4.06's distribution is included as it came, for its
  docs (LORD.DOC, LADY.DOC, LORDSTRC.PAS for IGM authors) and for DOS
  IGMs that look for its files: LORD406.EXE and LORD.OVR (4.06's own
  LORD.EXE), START.BAT, START1-START5, DSTART, *SAY.DAT, LENEMY.DAT and
  the other .DAT files.  This game doesn't read them - it uses the .lrd
  files above - so they can be deleted if not wanted.

  Made by the game: player.bin, state.bin, lognow.lrd, logold.lrd,
  mail*.lrd, bar.lrd, darkbar.lrd, garden.lrd, dirt.lrd, scores.lrd,
  nodeon.*, *.lock, error.log.

  Optional overrides written by lordcfg's table editors (lord.js reads the
  same files): weapon.bin, armour.bin, trainers.bin, lenemy.bin, dragon.bin.


RUNNING
-------
  lord -d <drop file or node dir> [-r rows] [-n node] [-p gamedir]
  lord -l [-u name] [-p gamedir]            (sysop local play)
  lord 0                                    (local play as node 0, as LORD 4.06)
  lord -d <drop file> -i                    (show what the drop file says)
  add -debug to log LADY scripts (see FOREST EVENTS)

  -d  the drop file, or the node directory holding one.  Read by name:
        DOOR32.SYS, DOOR.SYS (GAP), DORINFOx.DEF, CHAIN.TXT (WWIV),
        CALLINFO.BBS (Wildcat), SFDOORS.DAT (Spitfire), PCBOARD.SYS,
        EXITINFO.BBS (RemoteAccess - name only).
      Given a directory, the first found in that order is used
      (DORINFO<node>.DEF before DORINFO1.DEF).
  -r  caller's screen rows (DOOR32.SYS has none; default 24).
  -p  game directory; default is the directory the program is in.

  The caller is on stdin/stdout.  Players are matched to BBS users by the
  real name in the drop file, as lord.js does.


SYNCHRONET (Linux)
------------------
  SCFG > External Programs > Online Programs (Doors) > add:

    Name                       LORD - Legend of the Red Dragon
    Start-up Directory         /sbbs/xtrn/lordfp
    Command Line               /sbbs/xtrn/lordfp/lord -d %n -r %r
    Multiple Concurrent Users  Yes
    Intercept I/O              Yes
    Native Executable          Yes
    BBS Drop File Type         DOOR32.SYS (any type listed above works)
    Place Drop File In         Node Directory

  INSTALL.TXT is a step-by-step guide: dosemu2 for Synchronet on Linux,
  installing doors, both versions of LORD FP, and IGMs.


OTHER PLACES (DOS LORD IGMs)
----------------------------
  3RDPARTY.DAT in the game directory lists the IGMs, two lines each, exactly
  as LORD 4.06 does: the DOS command line (* = node number), then the name
  players see.  lordcfg's "Other Places" screen adds and removes entries.

  For each visit the game writes the LORD 4.06 files an IGM expects into the
  game directory - PLAYER.DAT (236-byte records), INFO.<node>, OUT.<account>,
  NODE<n>.DAT, TIME.DAT, LASTHERO.DAT, MARRAGE.DAT, LOGNOW.TXT, and a DOOR.SYS
  in the node directory if there is none - runs the IGM under dosemu with
  the caller attached, and then brings back whatever the IGM changed: player
  stats, the fairy, MAIL<account>.DAT, new Daily Happenings lines, Violet's
  marriage, and an OUT.<account> "QUIT" or "stay here" request.

  [IGM] in lord.ini:
    DOSemuCommand   how dosemu is started; %d node dir, %b the batch file's
                    DOS path, %n node.  The default matches Synchronet's
                    dosemu setup: D: node dir, E: /sbbs/xtrn, F: ctrl...
    DOSGameDir      the game directory as DOS sees it, e.g. E:\LORDFP\.
                    Blank = worked out from /sbbs/xtrn (symlinks followed).
    PreCommands     DOS commands before each IGM, ; separated (e.g. share).
                    IGMs that need a FOSSIL driver (The Pawn Shop 3.40)
                    need dosemu's: PreCommands=fossil.com >NUL

  MAINT.BAT in the game directory is run under dosemu once a day, at the
  first login after the daily maintenance, as LORD 4.06 does: IGMs put
  their own upkeep there (The Pawn Shop's PSETUP /M).  It gets the same
  LORD 4.06 files as an IGM, and what it changes is brought back.

  IGMs keep their own config naming LORD's directory: point each one at
  this game's directory (e.g. E:\LORDFP\), not at a DOS LORD install, or
  both games will share and overwrite the IGM's data.  Tested with The Dragon
  Vault and Barak's House.


FOREST EVENTS (LADY SCRIPTS)
----------------------------
  If LORD.LDY is in the game directory, the forest's random events come from
  it, as in LORD 4.06: the game runs its quest LORD.  LORD 4.06's LORD.LDY and
  EVENTS.LDY (the old man, a sack of gold, a Hammer Stone, a gem, the horse
  seller) can be copied in as they are; file names are matched in any case.
  Scripts such as Belgarion's LORD LADY scripts can be added the way LORD
  4.06's LADY.DOC describes.  The fairies, Olivia, the flower garden, the
  dungeon and the other big events stay built in.  Without LORD.LDY the game
  uses its own versions of those events.

  LORD 4.07/4.08 scripts run too: the extra commands in 4.07's LADY.DOC
  (+, - and ! in @set, <> and != in @if, @saveplayer, @endgame, @changearm,
  @changewep, @setbit, @openfile and the rest) and its other hooks: INN.LDY
  (quest LEAVEINN) when a player leaves the Inn, BANK.LDY (LEAVEBANK) when
  they leave the bank - in place of the built-in amulet offer - and a MAINT
  quest in any .LDY file at the daily maintenance.

  4.07-style events (with an @#INSTALL quest) are installed with lordcfg's E
  (LADY events) screen: give it the event's .LDY file and it adds the event,
  makes LORD.LDY, INN.LDY or BANK.LDY again (each event in a file has the same
  chance), or adds an Other Places entry ("@LADY <event> <file>" in
  3RDPARTY.DAT).  Uninstall runs the event's @#UNINSTALL and shows what it
  would delete first; events can also be turned off.  The list is kept in
  ladyevnt.dat.  The first time, the events in the current LORD.LDY, INN.LDY
  and BANK.LDY are taken over (the originals are kept as LORD.ORG, INN.ORG and
  BANK.ORG), so a hand-made LORD.LDY keeps working.  4.06-style scripts (no
  @#INSTALL) are still added to LORD.LDY by hand - but once lordcfg manages
  the file, add them through it or they will be overwritten.  &rnd<n> gives 1
  to n, as 4.07's LADY.DOC says (4.06's said 0 to n; its own scripts work
  either way).

  lord -debug writes every script line it runs to lady.log in the game
  directory; in the forest 3 runs LORD.LDY (as in LORD 4.06) and X runs quest
  TEST in TEST.LDY (as in 4.07) - for testing scripts.


SETUP PROGRAM
-------------
  lordcfg [-p gamedir]

    1  Game options (everything in lord.ini)
    2  Tournament settings
    3  Player editor: every field, including today's counts (fights,
       skill uses, seen master/dragon/bard, flirted...); a new day for
       one player or everyone (the game's own new-day reset at their next
       login, for players who have played today); delete; clear stuck
       "on now" flags
    4  Weapons, armour, masters, monsters and the dragon
    5  Game status
    E  LADY events: install, uninstall, turn on or off
    6/7 Today's / yesterday's daily log
    8  Synchronet install help
    R  Reset the game (deletes players, mail, logs and talk; keeps
       lord.ini and the tables)
    G  Register LORD 4.06 (shown when 4.06's own LORDCFG is in the game
       directory): how to enter the code with it - 4.06 checks its own
       code

  lordcfg -406 -p <LORD 4.06 directory>

    Tools for the original DOS LORD 4.06 game (not this port): a player
    editor for its PLAYER.DAT (all fields, today's counts, a new day for one
    player or everyone, clear "playing now"), and Register.  The first change
    in a session copies PLAYER.DAT to PLAYER.BAK.  Players marked as playing
    now can be edited, but their game may overwrite the change.


DIFFERENCES FROM lord.js
------------------------
  Bugs in lord.js that are fixed here:

  - No ugly / pretty stick forest event: LORD 4.06 doesn't have it.
  - Any armour or weapon can be bought, as in LORD 4.06: lord.js's shop
    limit (defence points needed for armour, strength for weapons) is off
    by default.  lordcfg's "Shop strength/defence limit" turns it on.

  - Blackjack: dealer cards went into the player's hand and the dealer drew
    until the deck ran out.
  - Death Knight test: "Decapitate" always counted as right; it is now a fair
    50/50 again, as in LORD 4.06, and the charm point for showing kindness
    after a wrong guess can happen.
  - Olivia: kicking her head away is now remembered; the "mess around" speech
    shows the first time; the kiss works once she likes you.
  - The Old Man in the Dark Cloak Tavern now remembers your description.
  - Kissing Violet's hand gives the experience it says it does.
  - A fairy blessing no longer offers a horse when you already have one.
  - The Inn weapon trade works (it threw an error).
  - Online duels no longer end after the first enemy strike.
  - Dead players away for a while are raised the configured number of times.
  - Proposing while married no longer goes ahead anyway.
