
4.09d (final release) changes - July 1997

1. Added DOS4GW.DOC (documentation on DOS4GW.EXE) and PMINFO.EXE
   (Protected Mode Information utility). The last line of displayed
   by PMINFO is the SWITCH needed to configure DOS4GW.EXE (through
   an environment variable) if you have trouble with protected mode.

2. The game driver will now tell you if it is using VESA compatible
   graphics mode instead of using the graphics chips directly. This
   may cause mouse droppings and other minor problems if your VESA
   drivers are incompatible with your MOUSE drivers.

3. Modified the scripts to display character pictures out of the
   way, either by itself to one side when using pop-ups, or on a
   frame if using full conversational frames.

4. Re-sized all CPICTnnn.PCX files (now in DCIMGGEN.PCX) to 88x88
   to fit in the conversation frames. If an image doesn't fit in 
   the space provided by SET_FRAME() it is displayed centered on
   the screen.

5. Cleanup the temporary files TEMPFILE.$$$ and TEMPBUF.$$$ when
   the sound engine is closed.

6. The file DCTXTVHx.PCX was not being found in the DCIMGVHx.RSC
   file when needed for READTEXT() to display a text block.

4.09c changes - July 1997

1. Added missing files YORN.EXE and DCFONTS.7X5 to DCG409.ZIP

2. Added DSP detection to Sound Blaster initialization. The system
   should now be able to tell what kind of Sound Blaster you have.
   SB, SBPro or SB16+. For older SB (1.0, 1.5, 2.0 or original
   SBPro), volume control is performed directly instead of through
   the mixer, and may not work correctly.

4.09b changes - July 1997

1. You may now use PACK.EXE to put all your PCX images into 
   RSC files. Images common to all video modes should go in
   the DCIMGGEN.RSC file, while images particular to each
   video mode go in DCIMGVHx.RSC.

   To display a PCX image, the game driver will first look in
   the DCIMGVHx.RSC video-mode specific RSC file. It will then
   look in the generic DCIMGGEN.RSC file. If not found, it will
   look for a stand alone PCX image file on the game's directory,
   and if not found it will look in the engine's directory (where
   the DCPLAY.EXE program is, which could be \DCGAMES\BIN in a
   standard registered installation, or the current directory in
   the shareware product.

2. The WAIT() and WAITCK() scripts wait for a specified amount
   of time (seconds or ticks) or until music that is playing
   stops. A wait(0) or waitck(0) command will wait until the
   music stops without time limit. Both WAIT() and WAITCK()
   will be interrupted if you press the SPACE bar, and will
   STOP the music currently playing. If you want to wait for
   a specific amount of time (which may be interrupted with
   SPACE bar also, but does not interrupt music, use TIMECK()
   or PAUSE(). FIX IN 4.09->If you use WAIT(0) or WAITCK(0), 
   and no music is playing, they return right away. However,
   if you don't have a sound blaster or you used the -S
   paramter or have turned sound off in the scripts, WAIT(0)
   and WAITCK(0) will wait for a space bar to be pressed, 
   instead of returning right away.

3. Volume now works properly. VOLUME(L,R) will set the MASTER
   volume for left and right speakers. VVOLUME(L,R) will set
   the VOICE volume only, while MVOLUME(L,R) will set the MUSIC
   volume ony. The Master volume controls the overall playback
   volume, and is a number between 0 and 100% (initial is 50%).
   The VVOLUME() and MVOLUME() are used for special cases when
   you want one or the other to be lower. Their initial value
   is 80% of the Master Volume). For example, when a battle 
   starts you may want to play background music, but you don't
   want it to be too high so sound effects can be heard better.
   You use MVOLUME(40) to set a low music volume and then set
   it back after the battle ends with MVOLUME(80).

4. Fixed (again) a pesky bug that prevented the NPC's image
   from changing on the screen when you modified NPC.BLOCK
   in some cases.

5. Modified the scripts to display the character's image off
   on one side of the selection pop-up menu. To do this, I
   used a trick of calling SET_FRAME() but not displaying the
   frame at all. Check it out in BARTENDE.SCR, near the top
   where it sais " if npc.picture >= 0 then.." 

6. Changed MIDIPLAY.EXE to use the new master volume control.

7. Changed DCWORLD.EXE to allow up to 96 entries in DCOLIST.DAT
   and to ignore errors in the file so you can still work even
   if the examples are screwed up.

8. Changed some of the VOICES in the game (DCG409SB.ZIP). There
   are now 2 voice options for JIMMY. One is VOICE002.RSC, the
   other one is stored as VOICE002.ALT. If you want to use the
   alternate voice, just rename VOICE002.RSC to VOICE002.ONE and
   rename VOICE002.ALT to VOICE002.RSC!

   Also, VOICE006.RSC contain's Remmar's voice. Remmar is the 
   guy in the hospital with Lug Rott.

9. I also added some pictures to some of the other characters 
   in the game. 

10.Changed the CONTROL script to match the 4.08 "body", which 
   is slightly different from the one in 4.07. In 4.08 the right
   hand holds the weapon, the left hand holds a staff and the 
   SHIELD is held in the "arms" slot (new one). Previously, the
   3 items (weapon, staff and shield) contended for the 2 slots
   (right-hand/left-hand).

11.Modified so that if you call LOADVFL with a -1 it CLOSES the
   the previously open character voice file (VOICEnnn.RSC). This
   prevents you from getting voices from a previous character 
   when talking to a new character that DOESN'T have voices.

12.Fixed the LOCATE() command to prevent mouse droppings.

13.Extended error codes for failures to load graphics tiles to
   assist diagnostics.

14.The READTEXT() function now accepts ANY KEY instead of just
   SPACE when pausing before a scroll, and the PAUSE command now
   accepts SPACE or ENTER (but not ANY KEY).

4.09a changes - June 1997

SOUND LIBRARY CHANGES

1. A new sound library (Varmint's Audio Tools) is now being
   used. The PLAY.BAT, TSR.COM and WORXLITE.EXE programs are
   now obsolete. Please delete them! 

2. The new sound library can play WAVE sounds (8 or 16 bits,
   from 8Khz to 45Khz sample rates). The VOC sound format is
   not supported for now. It will be in a later release.
   Use VOC2WAV.EXE or Blaster Master to convert VOCs to WAVEs.

3. The new library plays MIDI, S3M and MOD music files. The old
   CMF format is no longer supported. There are CMF to MOD and
   CMF to MIDI conversion programs around in the internet, but
   I don't have any right now..

4. The 64K limit on voice and music file size has been removed,
   so now you can have larger voice recordings and music files.

5. In addition to the IBK instrument bank file format, the new
   VCF format is now supported. This format is a TEXT file that
   can be edited by any text editor. Use the IBK2VCF utility if
   you want to use that format.

6. Added MVOLUME and VVOLUME to control MUSIC and VOICE
   volumes separately. You can still use VOLUME() to affect
   both volumes. Note that in 4.09 the LEFT/RIGHT volume control
   is not working. In a future release the LEFT/RIGHT volume
   will be used for PANNING waves (playing them louder on one
   speaker vs. the other). Volume still needs a bit of work.

7. DCGAMES will now run correctly in a DOS Window under Win 3.1
   and Win 95. Under WIN 95 you may have trouble with some of
   the Plug and Play "automatic" selections. The only one I
   know of is that the sound card is not found if it is set
   to IRQ 10. To solve this problem, assign a specific IRQ in
   the SYSTEM Control Panel. Good ones are 5 or 7.

8. You can now put all sound, music and instrument files into 
   RSC files using the PACK utility. The game will always look
   in the CURRENT rsc file first, then it will look in the 
   current directory and then in the directory where the engine 
   itself is running from. In a future release other files
   will be moved into RSCs, such as the templates, world files,
   PCX and GIF images, etc.

 === BACKWARDS COMPATIBILITY WITH THE OLD WORX LIBRARY ===
   The WORX sound library, which has to be loaded as a TSR
   by running PLAY.BAT (which runs TSR.COM and WORXLITE.EXE
   prior to running DCPLAY.EXE), is now obsolete. While the
   4.09 game engine will STILL use it (if present), it may
   go away in the near future. Use it only if your game is
   using CMF music and VOC voices and you can't convert to
   MIDI and WAVE in the short term.

Other MINOR Changes

1. The new variables SCREENX and SCREENY are now set with
   the PIXEL values of the last mouse click, just like POINTX
   and POINTY are set to the game coordinates.

2. The VIEWFLI() function was broken. FLIs would play at maximum
   speed, ignoring the speed setting in the FLI file.

3. The pop-up menus and images will now leave the PALETTE alone.
   This means if you change the palette during the game, it won't
   be changed back to the default when you use a menu.

4. Assignments to WORLD.DESTINATIONX(n) would fail, so it wasn't
   possible to change the destination of a door (automatic or 
   otherwise). It may also have affected TELEPORT(IMMEDIATE) to
   a specific DOOR instead of a specific LOCATION.

5. The SELECT pop-up menu will now appear over the STATISTICS
   area when you are in small screen mode to allow you to see
   the world area all the time. This is actually a trick. IF
   the DCLSTVHx.PCX template (or DCLS2VHx.PCX for longer lists)
   is WIDER than the statistics area, it will be displayed in
   the center of the screen. If it is THINER, it will be shown
   centered over the stats area. In a future release you will
   be able to drag the pop-ups to any place of the screen you
   want.
 
CHANGES TO DCWORLD

1. The file DCOLIST.DAT now contains a list of OBJECTS from which
   you can select when creating objects (using F2-Example). You
   can edit the DCOLIST.DAT file to customize your example objects,
   but be VERY CAREFUL with the format. Any missing commas, quotes
   or whatever can screw up the examples!

NEW OR CHANGED UTILITIES

1. The XTRACT utility had a bug copying tiles in VHU mode. It's
   been fixed.

2. The PCX2BLK utility had a bug loading VHU tiles back in. It's
   been fixed.

3. The BLK2PCX utility supports a -M option to create multiple
   PCX images instead of one. Use it when you have more images
   than fit on a single PCX file!

4. The DCBLOCK utility now verifies that you can't create more
   than 256 landscape tiles per palette. You can now have up
   to 1024 object and 1024 character tiles.

4.08 changes - March 1997

1. Added VOLUME( L, R ); to set the left and right volume
   for Sound Blaster Pro or higher. Default is 12. See the
   CONTROL script where <ALT>-V is handled for an example.

2. Fixed the script to move items from one player to another.
   It turns out that SELECT( player.bp ) returned the index
   of the select list, instead of the index of the selected
   item. In most cases this is the same value, but since 
   a backpack can have an empty space, that wasn't quite 
   right. I fixed several bugs:

   a) L3 = select( player.bp ); -> L3 will now be the index
      to the selected player.bp.

   b) The value of player.bp.index and curritem.index were
      not being returned properly. After the call to select,
      L3, player.bp.index and curritem.index will all have
      the same value. Note that "player.bp" also returns 
      the value of player.bp.index, and was working correctly.

3. The foreach OBJECT loop was broken. It would loop only over
   VISIBLE objects, even when you didn't specify VISIBLE. Note
   that foreach NPC was working properly.

4. The RANDOM() routine wasn't properly initialized and returned
   the same random sequence all the time. This isn't quite what
   was happening, but it should work all the time now.

4.08 (beta) changes - February 1997

1. Mode VH2 was added back in. The files in VH2FILES.ZIP
   should be expanded if you wish to use this mode.

2. Mode VH3 is now supported, but the template files
   (DCxxxVH3.PCX) are not provided. These templates will
   be provided in a later upgrade.

3. The VHU mode tiles (added in 4.07) can now be used in
   the original 640x480x256 mode (VHU) as well as in the
   new modes VHV (800x600x256) and VHW (1024x768x256). 
   Only the TEMPLATES are needed (files DCxxxVHV.PCX and
   DCxxxVHW.PCX). The VHU tiles are used for all 3 modes.
   
4. The volume setting for voice and music was fixed. In
   a future release I will introduce volume controls to
   the script language.

5. By default, MIDI files are assumed to follow Rolands
   MT32 instrument standard. However, if the file DCMUSIC.IBK
   is found at startup time, the instrument bank in that
   file will be used to play MIDI files instead. DCGAMES
   supplies 2 instrument banks (MT32.IBK containing the
   Roland MT32 standard instruments and GMIDI.IBK containing
   the General MIDI standard instruments). You should copy
   one or the other files to DCMUSIC.IBK as needed.

6. In addition to startup DCMUSIC.IBK, the new script command
   LOADIBK() can be used to load a instrument bank at any
   point in time during game play. The instrument bank remains
   loaded until another LOADIBK() is issued.

   Example:   LOADIBK( "GMIDI.IBK" );

7. New parameter -v tells the game driver to use VESA compatible
   graphics modes instead of direct chipset access. Use -v if
   you think you are having graphics board related problems.

8. The number of character tiles (in DCPEOPLE.VHx) and object
   tiles (in DCOBJECT.VHx) was raised to 1024. The previous
   limit was 512.

9. The new WAITCK() script command will wait for a specified
   number of CLOCK TICKS (there are roughly 18 ticks in a
   second). WAITCK() is similar to WAIT() in that it waits for
   the specified amount of time OR till music stops playing.

10.The new TIMECK() script command will wait for a specified
   number of clock ticks regardless of whether music is playing.

11. The new function TIMER will return the number of clock ticks
    since midnight. It can be used when you don't want to WAIT()
    for a specified amount of time, but you want to be able to 
    check a bit later to make sure at least a specified amount
    of time has gone by.

12. The mouse is no longer required. If you don't have one
    the game driver will let you continue on.

13. The HELP in the game driver was moved from WRITE/WRITELN to
    a pop-up window.

14. The new function P_DOTEXT() was introduced. It works exactly
    like DOTEXT() but the text strings are displayed inside the
    current frame (as set by SET_FRAME()).

15. The SET_FRAME() routine will now store the image under the
    frame and restore it when the text functions (PWRITE/PWRITELN
    and P_DOTEXT) cause it to scroll. 

16. The VIEWPCX, VIEWGIF and VIEWFLI functions will now NOT set
    use the palette inside the file, instead displaying the image
    using the current game driver's palette. However, if you want
    to use the picture's palette, use the new parameter:

       VIEWPCX( "filename.pcx", PALETTE );

17. The VIEWPCX, VIEWGIF and VIEWFLI functions can now display 
    their image centered inside the current FRAME as defined by
    the last SET_FRAME() command. This allows you to display images
    on top of other images or even anywhere on the screen.

       VIEWPCX( FRAME, "filename.pcx" );

    See the script file JIMMY.SCR for an example, and to see it
    working go talk to Jimmy in the example game.

18. The files ANYFRAME.PCX and ANYCONV.PCX were added to be used
    in conversations. Again, see the JIMMY.SCR example.

4.07 changes

1. A new mode called VHU that is 640x480x256 (same as
   VH1) but the tiles are 48x48 in size (much bigger 
   and square).  This mode will evolve into a variable
   tile size mode for 5.x, with tiles 24x24, 48x48 and
   72x72 in size.  Note that this mode is in ALPHA
   so you shouldn't use it. The tile files for VHU are
   quite large (4MB total vs 1.5MB in VH1 for example)
   and that doesn't include the animation tiles. When
   I add animation, every character will support up
   to 20 frames in VHU mode. This will make these files
   HUGE. The format for VHU will probably by incompatible
   with the format for the rest of the modes.

2. The ability to play "full screen" (the menu/stats 
   part on the right side disappears).  You can control
   it using: PAINT(SMALL); or PAINT(LARGE); in the 
   scripts. You can use the SPLIT function to find out
   if the screen is currently in SPLIT (SMALL) mode.

3. The ability to "transfer" to another world immediatly,
   rather than having to wait until the script finishes
   execution. 

     teleport( IMMEDIATE, dest-world, dest-door|x,y );

4. Removed the text box at the bottom and replaced it 
   with a "control" bar. This bar includes a smaller 
   text area, a player's statistics and and the icon 
   bar. I'm still playing around with the exact size of
   the text area and the stats.

5. Fixed text wraping for all text outputs, such as 
   WRITE/WRITELN (in the text box), PWRITE/PWRITELN 
   (in a PCX picture) and MSGBOX() (see below).

6. Added the ability to display a windows like box
   with up to 3 buttons, like:

    ! Display a box with 2 buttons labeled Yes and No..
    L0 = msgbox( QUESTION, 2,"Yes","No","Are you sure?" );

7. Changed the stats/menu boxes to much nicer boxes with
   edges and other nice features. The stats/menu boxes are
   stored in PCX images, and while you can modify them, 
   you should not alter their size, nor the title space
   or the ICON bar at the bottom of each one.

8. INITPLAY.SCR now runs every time you start playing. It
   is like the INITGAME script, but it runs every time, 
   not just at the begining of the game.  You can use it
   to set the palette, choose the type of interface 
   (large/small), etc., etc.

9. STOPPLAY.SCR new runs every time you stop playing. It 
   will display a DCGAMES "shareware" image, but you can
   remove that code and put your own. This allows you to
   do all kinds of house keeping before the game engine 
   quits.

10. There is a new "format" for the tile files (*.VHI,
    *.VH1, etc.) that uses about 1/2 the current size.
    A conversion program is included so no problem. If
    you have your own tiles, just run "DCCNVT5G.EXE".

11. The SELECT() command now displays a pop-up box 
    instead of using the statistics area. This allows
    you to do work in full screen mode w/out having to
    switch to small screen mode just to have a menu
    based interaction with an NPC. The pop-up box is 
    stored in DCLSTVHx.PCX (short) and DCLS2VHx.PCX
    (long).  If the available options exceed the space
    available in the long form, multiple pages are
    used (with a PgUp/PgDn notice at the bottom of the
    list.

12. Included templates MSGBOX(), SELECT() and the 
    statistics/menu area for VHI, VH1 and VHU mode.
    Other modes are not supported.  The only other
    mode I will support is VH2 (800x600) if I get 
    lot's of e-mail from people that absolutely 
    have to have it. Anything else (VLO, VH3, etc.)
    is out.

13. The MOVE and COPY commands have been extended to
    allow moves/copies to different members of the
    party. The M)ove command is implemented in the
    CONTROL script rougly as follows:

      Ln = SELECT( player.bp ); ! Select an ITEM 
      Lm = SELECT( group );     ! Select destination
      MOVE( player.bp, player(Lm) ); ! Move it

14. The READTEXT() command will now display text blocks
    inside the PCX image provided in DCTXTVHx.PCX. If it
    is not found, the text is still displayed in the text
    area (backwards compatible), but the text area is way
    too small to display full blocks of text.

    You can also use SET_FRAME() and VIEWPCX/GIF() to 
    put an image on the screen, then call READTEXT() with
    a second parameter of -1, to indicate that the image
    and frame are already set, so DCTXTVHx.PCX is not used.

15. Extended the STATS() command to include the following:

      stats( group  ); ! Show group statistics
      stats( player ); ! Show current player statistic
      stats( player.bp   ); ! Show current player's backpack
      stats( player.body ); ! Show current player's worn items
      stats( NEXT | PREV ); ! Show next (or previous) player's info

   You can also show NPC stats, backpack and body, but that feature
   is under development. It might not work just right just yet.

   You can still use STATS( <numeric expression> );, which will 
   display the statistics for the given player in the group, and
   using STATS; (no parameter) will just re-fresh the stats area.

   Note that stats() does NOT switch to SMALL mode, but it does 
   "remember" what you last specified, so you can do this:

      Ln = SPLIT;         ! Remember
      stats( player.bp ); ! Show inventory
      paint( small );     ! SMALL mode (does nothing if already small)
      <do stuff>
      if not Ln then paint( large ); endif; ! Restore Large Mode 
  
Other enhancements and bug fixes in 4.07

a) After a LOCATE, check npc.x/npc.y against pointx/pointy
   to make sure you found an NPC.

b) Check to make sure there is land nearby before you can
   exit a boat.

c) Allow boarding a boat from diagonal directions.

d) In battle, you could reference the invisible NPCs (that
   disapear when the fight starts). You could also "fight"
   with objects. These bugs have been fixed.

e) The VIEWPCX() function has been extended. If the picture
   you want to display has the wrong number of colors (16 in
   256 color mode or 256 in 16 color mode), a slower routine
   is used to display the PCX. The 256 colors are "mapped" to
   the closest of the 16 colors.

f) The ENDGAME routine was broken when invoked in the WORLDDEF
   script. It worked in other scripts.

g) The code to stop an entry in WORLDDEF/@GET (using STOP instead
   of CONTINUE) was not working. This was fixed.

4.06 changes

I think there was a bug in the text handling that
had to do with scrolling. I released this one just
a few days after 4.05 because of that bug, but I 
can't remember what it was.

4.05 changes

DCPLAY.EXE will now look for file DCFNTVHI.FGF
which is the font file to be used in the game.
The file is in FastGraf Font format (FGF). For
low resolutions (VLO) games, it will use the
old ugly font which is stored as DCFNTVLO.FGF.

Other enhancements and fixes include:

a) Moved code that divides follower statistics
   by half from the game driver to the script
   FIGHTING/@0, so you now have control over
   the follower's stats.

b) Instead of playing "Win" automatically when
   you win a battle, it calls FIGHTING/@2 (new
   entry point) so now you control what happens
   when you kill all the monsters.

c) When using "foreach npc|object do", if you 
   change the current npc/object's location
   inside the loop, sometimes you got funny
   behaviour (the loop wouldn't visit every
   npc or object, or it might visit the same
   one twice).

d) When you use FIGHT(STOP);, the script will
   NO-LONGER-STOP. This means you can add more
   script code to handle running away, etc.
   To get the old behaviour, just add a STOP;
   right after the FIGHT(STOP) in your scripts.

   Note that FIGHT; by itself (starting a fight)
   still stop the script. Once you start a fight
   a separate sequence is used.

e) Fixed a bug in POS(). It now correctly finds
   the first occurance of a character in a string.

4.04 changes:

Fixed minor bug in 4.03 (pause,beep,pause) in
sound board detection routine.

New entrypoint into CONTROL.SCR handles NPC
animation (@5) when not fighting. It is called
once per turn (after the player's move).

NOTE: NOTE: NOTE: NPCs are no longer animated
by the game driver. If you have modified the
CONTROL script you MUST add the @5 entrypoint
and implement NPC animation for hostile monsters
or they will stop moving.

Includes new version of WORXLITE, PLAY.BAT and
the TSR.COM utility to allow help install/remove
the sound blaster driver. TSR.COM didn't properly
detach the accelerated clock interrupt, so time
went REALLY FAAAAAST after you played DCGAMES,
make sure you install the new PLAY.BAT!

New features include SWRITE/SWRITELN, a version
of WRITE/WRITELN that sends it's output to a 
string variable instead of the screen:

  object.name = SWRITELN( player.name, "'s book" );

Another new feature is PWRITE/PWRITELN, a version
of WRITE/WRITELN that writes into a displayed PCX
image. The SETFRAME command (new) defines the margins
within the PCX image.

  ! SETFRAME( picture, xof,yof,xof,yof,color );
  SETFRAME( "BOOK1.PCX", 30, 30, 30, 30, 1 );
  VIEWPCX ( "BOOK1.PCX" );
  PWRITELN( "Title: ", object.name );
  PWRITELN( "Once upon a time.." );
  pause;
  paint( window );

Two new functions will tell if you can SEE or
REACH (with your current mode of transportation)
from one spot to another.  The LOS (line of sight)
and LOR (line of reach) functions, take 2 locations
and a set of landscape transparency values (for LOS)
or density values (for LOR).  For example:

   if LOS( npc, player ) then
     ! The monster can see the player..
   endif;

   if LOR( player, world.doorx(5), world.doory(5) ) then
     writeln( "The door is within reach!" );
   endif;

Full examples and function details can be found in
ADDENDUM.TXT, an addendum to the 4.00 documentation.

See also the file TEST.SCR which is invoked in the
game by pressing FKEY9. It tests LOS, LOR, SET_FRAME
and PWRITE/PWRITELN.

4.03 changes:

The file DCWORLD.EXE and DCPLAY.EXE are now
protected mode versions of the DCGAMES system.
They use the DOS4GW.EXE program (must be in 
the same place as the executables). They will
now use all available protected mode memory
and are optimized for 386 processors, so they
don't work on older processors.

Worlds may now be up to 512KB in size (up from
64KB). Compiled scripts (SCO files) can now be
a lot larger, and a few other internal limits
are also extended.

I also modified the script language to return
the string values instead of numbers when the
following variables are assigned to a string 
or displayed using write/writeln:

a) world.density(x,y) <- Returns string from the
   [WORLD DENSITIES] entry in DCCTOKEN.DAT

b) world.block(x,y) <- Returns string from the
   NAME field of the Tile record in DCBLOCKn.mde
   where n=0-9 and mde = VHI, VH1, etc.

I also fixed a bug in the code that allowed you
to replace the landcaping file on the fly. It 
was plain broken. Now you can have 2 sets of 
landscaping tiles, one for darkness, one for
daylight and switch like this:

    world.landcape = 1; ! Between 0 and 9 !

Finally, in order to make this protected mode
I had to extract the sound library and make it
into a TSR (because it's real-mode).  To run
DCPLAY now you need a batch file that loads
and removes the TSR.  See example file PLAY.BAT

This batch file marks memory (tsr i), loads the
WORXLITE tsr program, runs DCPLAY and removes
the WORXLITE tsr when DCPLAY ends.  Note that 
if you usually use the -S parameter because you
don't have a sound card, you can just run the
dcplay.exe program directly w/out loading the
worxlite program:
 
   dcplay.exe -s

4.02 changes:

The utility 'LOADPAL.EXE' will load a NEOPAINT
palette (file.PAL) into a DCGAMES palette 
(file.DAT).  The default palette is DCPALET.DAT
and is loaded at game startup.

Inside the scripts, you can use the LOADPAL() 
function to load an alternate palette. This 
function can be used to implement day/night
as follows in the 'time' routine in CONTROL.SCR

   if <sunrise> then
     loadpal( "DCPALET.DAT" );
   else
     loadpal( "NIGHTPAL.DAT" );
   endif;

You can also change the palette when you enter
a new world depending on the world type, for
example:

   if world.type = CAVE then
     loadpal( "CAVEPAL.DAT" );
   elsif time > sunrise and time < sunset then
     loadpal( "DCPALET.DAT" );
   else
     loadpal( "NIGHTPAL.DAT" );
   endif;

I also fixed WORLD.INDEX to return a simple
number (like it did in 3.x). I broke it trying
to implement a variable that returns the STRING
name of the world file.

If you want to get the name of the world file
(w/out extension), use WORLD.SINDEX, which will
return "WORLDnnn" where nnn = 000 to 999.

4.01 changes:

Fixes a bug that causes the game driver to hang
after a battle when using the -s parameter.

Also, contains minor patches to the CONTROL script
to handle 3.01 style hidden and locked doors.
