-------------------------------------------------------------------------------
NOTE: THIS DOCUMENT DOES NOT CONTAIN THE CHANGES FROM V2.2l TO V2.2lc1. THAT
      INFORMATION CAN BE GET BY READING README.X
-------------------------------------------------------------------------------

Hi.

This is a short remark to well experienced Devil users.
For further documentation look at the file readme.txt and the new
english documentation in HTML-format starting with the file
docs/htmldoc/doc.htm. You can get the complete manual in Rich-Text-Format
from my homepage (if you want to print it). Many thanks must go to
Robin Martin for translating the manual and a lot of useful
discussions about the editor. 

This is the full version of Devil V2.2l

Please, please e-mail all bugs you encounter to the Mailing List. 
And please use the word "bug" somewhere in your header because all
the mails with this header will be sorted out from my mailing program
automatically.

FOR DESCENT 2 MODE, DEVIL NEEDS THE MEDIUM (48MB) INSTALLATION. Sorry about
this, but I can't access the data from the CD, it is packed.

A BIG thanks to all guys at the mailing list and all others for bug reporting
and making suggestions.

This is still a prerelease, so be careful and make backups of your levels. 

Have a good time,
Achim

PS: Next version (I hope the last one with major changes. After I have
done it, I won't do any changes to Devil except bug fixes. So if you
still miss features in Devil that are not listed below, mail them to
the DDL. But remember: Devil is an editor for RDL/RL2-files. I won't
add routines for editing robots or textures and such stuff):
 - a lot of bug fixes.
 - full Undo
 - Sphere generator
 - Spiral corridor generator
 - run animations of textures in rendering mode & handle animations in
   POG/HAM-files correctly
 - some minor things to improve useability (like adding a more
   reasonable way to activate the tag filter etc.)
 - display robots?? (I won't do this, I think. At least not in the
   next version)

New features: (V2.2k->V2.2l)
-Complete english manual is available (much, much thanks to Robin Martin who
 translated the manual from german without profound knowledge of the
 German language (!!), do him a favor if you can. Thanks to the proofreaders
 of the english manual, too). The manual is in HTML-format in the docs
 directory, you can get a versio in WinWord 97 format from my homepage.
-A key ('0') for selecting side 0, edge 0 is available (Lars Christensen)
-Ctrl-x/X,y/Y,z/Z align your sight to the pos./neg. x/y/z-Axis 
 (Lars Christensen).
-Group preview: There is an additional option in the Internal Menu 
 (Move&Display->Display what->Group preview). If it is turned on and
 in the cube window in the field 'Insert:' is a group with a defined
 connection side, the first cube of this group is displayed as it would
 be inserted when you press 'Insert'. Connected sides of the first cube of
 the macro are marked with the usual side markes (if the first cube is
 symmetric but the attached macros is it not). I hope this is a solution for 
 the great confusion about insertion of macros.
 The main reason for inserting this feature was the discussion on the DDL
 about some sort of 'Default' cubes that can be inserted. I haven't done
 this for two reasons: 
  A) If you insert a cube in side mode, you have a nearly equivalent feature.
  B) You can do this (and much more) via groups anyway.
 So I thought why most of you don't regard 'group insertion' as a full
 replacement for the desired feature and I suppose that the somewhat
 complicated insertion rules may be the main reason. I hope you are
 satisfied with this solution.
-Special cubes have special colors (Robin Martin)
-The original positions of the lines can be drawn in yellow if you
 move a point/side/cube with the mouse (Internal menu,Modify,Draw orig. lines)
 Works only if texture mapping is not on.
-The texture window zoom/pos./size are saved when you leave the editor and
 saved when you save your window positions.
-The POG-file handling changed: You will find a new button in the window
 with the move buttons to choose the POG-file. You can have only one POG-file
 at once in Devil (I don't think you need more, do you?). If no POG-file
 is loaded and a level is loaded for which exists a POG-file (that is a
 file which has the same name as the level with the ending POG and is in the
 path you have used the last time to load a pog-file) the POG-file is
 automatically loaded. If you want to turn off the POG-files, press the
 POG-file button and then in the file dialog 'cancel'.
-In the texture list: textures with a lightsource have a special symbol
 (a little bulb) in the lower left edge, textures with a lightsource that
 can be broken have another symbol (a little broken bulb) in the lower right
 edge. You can turn on/off this in the Internal menu (Modify&Illum.->
 Little bulbs)
-Cloaked walls implemented in menues as well as in rendering
-A new feature for adjusting the light manually:
 Press the button 'Adjust light' in the side window when the current
 side is a lightsource.
 Then all lightsources are turned off except the one of the current side and
 the lightsources without lightsource information (this information is lost
 if you save a level and load it again for the lightsources that can't be
 turned off in Descent). Then you can manually adjust the light from the
 only lightsource left by changing the light values in some corners. 
 After you have done this, press again on 'Adjust light' (on the same side,
 with the left button) and your changes will be saved and the other
 lightsources will be turned on again. If you press the right button the 
 second time, your changes will be cancelled. 
 With these feature you can manually adjust the light from lightsources that 
 are turned off in Descent (e.g. flickering lights).
 Descent subtracts for each lightsource that is turned off the appropriate
 values at the edges. Therefore here is a problem with 'overflow'-errors:
 If two lightsources are near each other the light at an edge between
 them might easily be more than 100% (say 150%, 75% from each lightsource)
 and then cut down to 100%. This results in errors if one of the two 
 lightsources is turned out because Descent will subtract the value for
 this lightsource from the light at the edge (therefore 75%) and get 25% 
 which is clearly much too dark. To avoid this, I have allowed light values
 for edges up to 200% (Descent seems to handle them correctly. If anyone
 has problems, please post them in the DDL). All edges with light values
 between 100% and 200% will look the same in Descent and Devil (as bright
 as possible), but the problem described above can be avoided (at least
 more often than before).
-You can see the flickering lights in the level. Just turn on the
 corresponding switch in the internal menue (Move&Display->Flickering lights)
 and press the right mouse button in the level window. If your system
 is not powerful enough to display as much frames as needed for the
 light (e.g. you need at least 10 frames per second to display a blinking
 light with mask 10 and timer 0.1), you can stretch the timescale
 in the Internal menue (e.g. if you specify a value 2.0 in 'Stretch time'
 a light which will blink in Descent every 1/10 second, will blink every
 1/5 second in Devil). Devil will give a message if the frame rate drops
 below the blinking rate of a displayed lightsource (you can turn this off in
 the Internal menue) and you need to adjust the timescale (if you don't adjust
 it you will get more or less random results for the blinking of the
 lightsource). I would expect a framerate at about 8-10 frames on a normal
 system in a not too complicated room (Pentium 133, a window with 480*480).
 You can speed up the framerate if you use smaller windows to display
 the level. 
-Due to the two changes listed above I had to change the handling of the
 lightsources. If you illuminate a part of the level, the following rules
 apply:
  A) All lightsources in the tagged cubes will be new calculated.
  B) All light in the edges of the tagged cubes will be reset to the min. value
     specified in the Internal menue before it gets new calculated.
  C) The effects of the light sources in the other (not-tagged) cubes is
     new calculated, too, but the light in these edges is not reset (but
     the old effect of the lightsource is subtracted and then the new
     calculated effect is added).
 The reason for rule B is that I suppose that this is the behaviour most
 of you will prefer. The reason for rule C is that this is the more consistent
 method, preserving the light values you changed manually without attaching
 them to a specified light source with 'Adjust light'. I can't apply
 rule C in general because all new cubes have not light 'min value' but
 something different.
-Light sources are copied to and from groups.
-Due to the fact that 'flickering lights' as well as 'adjust light' only
 work if the information for the lightsource is available and that in
 normal RL2-files only the information about the lightsources is saved that
 are known to be changed (and the information about the rest of the
 lightsources is lost), Devil saves now by default the information for all
 lightsources. If you run in trouble with this (because Descent is limited
 to 500 lightsources to be changed and 10000 edges to be changed), you can
 save the level in the standard way with the menupoint 'save without full
 light information'. No relevant data for Descent 2 will be lost if
 you do this but you won't be able to adjust light sources that are
 not turned out in Descent 2.
-Turning yourself with the mouse: You can flip all axis' (see Internal menue)
-You can make sides co-planar: 'Edit->make edge co-planar'. All tagged
 edges will be moved in the plane defined by the other three edges of
 the same side. If more than one edge on one side is tagged, nothing is
 changed for this side. Every moved edge will be untagged. It may be
 it bit clumsy to tag exactly one edge for each side, if this really
 is a limitation of this feature for you, think of a better way to do
 this and mail it to the DDL :-).
-You can read the files generated by the Descent Block Builder. To be more
 specific, Devil can read levels stored in an ASCII-format, so you can
 do your own small programs to create complicated structures. The
 format Devil uses is the same as the format used by the Descent Block
 Builder (at least I hope so). I've used it because I don't want to
 introduce even more file formats than there are already, although it
 is not exactly what I would have done...
 Anyway the format Devil reads, is specified as follows:
 head: DMB_BLOCK_FILE
 In the following lines the segments are specified:
 head of segment: segment <segnr>
    (the segnr must be start with 0 and always be increased by one.
 Than the sides of this segment follow. Always six sides with the numbers 0..5
    head of side: side <sidenr>
            side: tmap_num <t1> tmap_num2 <t2>
                  (t1 and t2 are the texture numbers (as in the normal level
                   which are not the same numbers as the numbers in the 
                   pig/pog-files) for texture 1 and texture 2.
                   The 3 most significant bits of t2 specify the direction
                   of texture 2 relatively to texture 1 (t2&0xc000==
                   0x0000->same dir.,
                   0x4000->t2 is rotated around 90 degrees counter-clockwise,
                   0x8000->180 degrees, 0xc000 270 degrees)
                   t2==0 --> no texture 2 at all
                   If you don't know what texture to choose, use t1=0 and t2=0
            side: uvls <u> <v> <l>
            side: uvls <u> <v> <l>
            side: uvls <u> <v> <l>
            side: uvls <u> <v> <l>
                  (four lines with the uvl-coords for this side. The uv-coords
                   specify in which way the texture is layed in this side.
                   If you don't know what to do with this, just use
                    (0,0), (0,2047), (-2047,2047), (-2047,0)
                   for each side and after you loaded the file in Devil
                   tag all cubes and let Devil recalculate the textures
                   (Lights and Textures->recalculate textures).
                   The third value in each line is the light value.
                   This should be a value between 0 (0%) and 32767 (100%)
   end of side. Remember that there must be six sides for each segment even
   if the segment has a children on this side.
 cont. segment: children <c0> <c1> <c2> <c3> <c4> <c5>
                (c0..c5 are the numbers of the cubes connected to this cube
                 on side 0..5. -1 if no cube is connected.)
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
       segment: vms_vector <no> <x> <y> <z>
                (the eight points for this segment. the number must run from
                 0..7. x,y,z are 4-byte-integers specifying the coordinates of
                 the points multiplied with 65536 (e.g. a normal cube which
                 has in Devil the size 20*20*20 has in this coordinates 
                 1310720*1310720*1310720 [20*65536=1310720]). Points with a 
                 certain number belong to sides with a certain number:
                  Side 0 Pnts 7 6 2 3  (left side)
                  Side 1 Pnts 0 4 7 3  (ceiling)
                  Side 2 Pnts 0 1 5 4  (right side)
                  Side 3 Pnts 2 6 5 1  (floor)
                  Side 4 Pnts 4 5 6 7  (front)
                  Side 5 Pnts 3 2 1 0  (back)
                 The comments in brackets are just to give you some sort
                 of orientation. They refer to cube 0 in the first level of
                 Descent 1 if your position is on the startplace of this
                 level.)
       segment: static_light <light>
                (the light which will be used for the objects in this cube,
                 e.g. robots)
 end of segment.   

Fixed bugs:
-Deleting the cube with the current point works. (thanks to Tom De Grave for
 the excellent bug report)
-If you change a wall from 'normal door' which needs a key to 'wall' (or
 any other type), the key selection is deleted (so you don't get walls
 which display the message that they need a key) (John Ratcliff)
-Supertransparent walls are now transparent for light but not illuminated
 on the other side of the wall (Lars Christensen)
-fixed problems with deleting tagged points. (Red Omen)
-made some more restrictions to the corridor wizard (two yellow points
 must have a distance of at least 3*cube depth). I hope this will avoid
 some of the reported crashes.
-If you insert a new door the switch-properties of the current door are
 copied correctly (Robin Martin).
-Corrected deleting tagged things or things in render mode. This
 bug had some more bad consequences concerning deleting things.
 (Robin Martin)
-Saving a hogfile twice in the mission manager (Robin Martin)
-The Descent-like map is now with greyshading (Robin Martin)
-'Make std. side' is now recognized to change the level (Robin Martin)
-Problems with switches which does not switch anything (Robin Martin)
-The F11 and F12 keys work in the appropriate way.
-The startside of a corridor will now longer be changed if you do not
 insert the corridor.
-Changed some names etc. to be consistent with the manual
-Right/Left button with Fit Bitmap work as they should (i.e. the left
 button changes only the current side, right button all tagged sides and
 the current side)
-Fixed problems with the secret start.

Bugs I could not reproduce (so it would be very good to have another
bug report) or bugs for which I was not able to find a good solution:
-Crash when scrolling down the texture window and there are no more textures
 than already displayed.
-Crash when turning the end of a corridor immediately after starting the
 corridor wizard.
-Long filenames under Windows 95 which won't work if you start Devil in
 plain DOS. I see the the problem but I don't want to turn off the long
 filenames (because of the guys using only W95) and I don't want to write
 all routines in a way that they can handle both. So best is, if you really 
 need to run Devil in plain DOS AND W95, to use the workaround proposed
 by John M. Aldrich: Just add a "set LFN=N" at the beginning of the "devil.bat"
 file. If you do this, you won't have long filenames at all. BTW there
 might be some problems with extraordinary characters in long filenames
 in Devil, so ... don't go to the limit and remember that Devil is a DOS
 program.

New features: (V2.2j->V2.2k)
-POG-files are supported. You need to copy the POG-file in the same directory
 as the RL2 file and Devil will load it automatically when you load the level.
 (the mission manager won't use the pog-files)
-There is a new move mode: Select object. If you move in this mode with the
 keys/buttons you can select the current cube, if you turn yourself, you
 can select the current side. You change the cube in the direction you specify.
 (should be quite clear; sometimes it is not possible to select a specific
 side this way without changing your own orientation, i.e. if the cube
 looks like this:
     |\
    0|  \
     |    \3
      \     \
      1 \__2__\
 If you press left you select side 0, if you press right/up you select 3,
 down selects 2, 1 is not accessible without banking. If 0 is not connected
 and 1 is you can achieve the neighbour of 1 by moving to the left.
 (Sounds complicated, just test it, it will work in the most cases as you
 expect it)
-Alt+Space does in Edge mode now the same thing as in point mode.
-After a controlled crash (the crashes with the long message) the position of
 the windows is restored.
-You can resize a texture in the "Fit Bitmap"-window or in the level window
 in each direction if you press the left mouse button and the right one.
 So be careful if you use "Fit Bitmap" in the level window because you
 must release the left mouse button before you can move the texture
 in the old fashioned way.
-Level saved to the Descent directory are not regarded as 'saved levels'
 anymore.

Fixes bugs: (V2.2j->V2.2k)
-Illuminating with 'smooth light' is working again.
-Fixed some problems with light sources which weren't properly turned out
 if you shoot them.
-A wall with supertransparent textures (the textures which you can only use
 as texture 2 on a wall, like the grate) are not longer considered as 
 transparent for the light.
-Fixed some problems in rendering transparent textures.
-In D1-mode 'Flip y-axis' is available
-Fixed some problems with clicking/tagging of objects.
-Some assert-errors in texture-move-mode (the fit bitmap window open)
 doesn't occur anymore.
-Fixed problems with negative values as texture numbers.
-Edges are now untagged if you remove their wall.
-Solved problems with 'make room' and rendering

Fixed bugs (V2.2i->V2.2j):
-Fixed problems in the moving routines which were occuring if you rotate too
 fast. This sometimes resulted in a crash in the rendering routine or a black
 screen.
-Fixed the crazy menuline.
-The window tagging is now respecting the max. visibility.
-Fixed problems with inserting macros with things.

Changed features (2.2h->2.2i):
-Rendering is faster.
-Due to the complaints about point/edge-mode, I have changed it again
 (the reason for seperating points/edges was that I was not able to find a
 intuitive way for clicking an edge and a point simultanously, so I have
 NOT made the changes undone):
 If you change the current edge you will change the current point, too,
 or in other words: Just use 'e' instead of 'p' and it will work as you are
 used to, but you can still use 'p' to get to an arbitrary point.
 This way you can still click points the way you think it should work and
 you are able to select points that are nearby without using the mouse.
 I hope you can live with this solution.
 BTW you can still use 'tag points' if you want to set the light: Just tag
 the points you want to change and then use 'use point tag' in edge mode.
 Or use special tag in point mode (to tag all edges corresponding to this
 point) or in edge mode (to tag all edges in the current cube corresponding
 to the point of the edge)
-You can flip the y-axis if you move with the keys:
 Have a look in the Internal menu.
-You can untag things with the tagbox is you press the right instead
 of the left button while you're holding ctrl down. (to be honest:
 this is a fixed bug not a new feature...:-)
-"tag flat sides" does not untag all sides before doing anything else.
 Warning: Due to this fact, all sides being 'flat' to a tagged side will
 be tagged not only sides being 'flat' to the current side.
-the lighting algorithm doesn't smooth the lights anymore. You'll have to
 use the new menupoint 'set smooth corner light' and then 
 'set inner cube light' to have this effect. The normal algorithm is working
 much better now and it does the light quite correctly, so IMHO you should
 use it without smoothing.

Fixed bugs (2.2h->2.2i)
-Removed warning if a level with flickering lights specifying connected sides
 is loaded.
-Illuminating a level several times in a row don't accumulate the light 
 anymore.
-Fixed problems with moving textures & floating point exceptions &
 complaining about texture you can't see .
-Problems with moving corridor window fixed
-Problems with rendering textures which were used as Texture 1 and Texture 2
 are solved
-If rendering is on and you change a texture the level window is updated
-Fixed some problems with the up/down-buttons for the textures 
-Fixed two bugs in the corridor generator causing a 'Floating Point Exception'
 and an assert error
-The keys which are dropped by robots are counted correctly in the level
 statistics.
-a lot of bugs in illuminating algorithm fixed. I'm wondering why the result
 was reasonable at all. (thanks to Luke Schneider for the excellent example)
-Fixed problems with the S3 graphic driver.
-Fixed the HOM problem. Strange: The reason for the HOM effects was
 a zero in reactor time/strength in a level without a reactor. So if you
 have built a level with these HOM effects, just insert a reactor, give
 him reasonable values for time/strength (at least >0) and the HOM effects
 will vanish. Really don't understand this....
 (thanks to Bradley Schneider for the reproducable bug description).

V2.2g-->V2.2h:
New features:
-In the edit menu: 'Make standard side'. If you choose this Devil tries
 to set the coords of all tagged sides to the standard coords (from a 
 20x20x20 cube). The algorithm tries to deform the side minimal, I hope
 the result is therefore predictable (it looks as it is).
-Insert in side menu with right button on a side without a neighbour:
 Same as insert with left button and then 'Make standard side' with
 the side opposite to the connected side in the new cube
 (suggested by Morg).

Fixed bugs:
-If the levels are saved due to a crash, Devil doesn't ask any question 
 anymore (Bradley Schneider & myself)
-Fixed the problems with inserting things...(Bradley Schneider)
-I've changed a few lines in the corridor generator, maybe it is crashing
 with a floating point exception anymore...
-Problems with connect cubes & rendering (John Ratcliff)
-'move texture' mode is not activated with tab anymore (Morg)
-The problems with deleting cubes with things within (Tony Brook)
 
V2.2f-->V2.2g:
Changed features:
-Texture moving with Alt+mouse is now somewhat more intuitive.
-In Fit Bitmap you have now three features with the double click with the
 left mouse button: without any key resets the coordinates to the
 coordinates of the current side, with shift recalculates the coordinates
 so they fit to the side, with alt sets the coordinates to standard 
 coordinates.
-The saving of the current work if Devil crashes should work now
 for Floating Point Exceptions, too.

Fixed bugs:
-New level is working now and inserting things as well. This was the
 most stupid bug I've ever produced. I've added this bug by hand to test
 the save current work feature for crashs and forgot to remove it again. 8->
 (Bradley Schneider et al.)
-Goto pos: Reinits the grfx now, so the correct cube is rendered if render
 mode is on (myself)
-Fixed: Corridor window moving down a few pixels each time it is opened.
 (myself)
-The backup levels if Devil crashes are not deleted in the batch file anymore.
 (stupid, isn't it?) (myself) 
-If the backup levels are saved, Devil asks no stupid questions anymore 
 (myself).
-Now the correct edges are tagged if you leave/reenter Devil (myself)
-Edges/Points are removed from the screen properly if you move something
 (myself)
-The cube for the things is now initialized correct, so you'll see things
 in rendermode from the start (myself)
 
V2.2e-->V2.2f:
--------------
New/changed functions:
-The two sides in a connection can be clicked seperately.
-Devil tried to save your current work in progress if it exits with
 an assert error (doesn't work with segmentation faults).
-Fit bitmap is back. The alt+mouse thing still works (or works now, see
 below) but the old 'Fit Bitmap' is back, too. Some things have changed:
 Press left (or right, this is arbitrary if no 'Fit Bitmap'-window
 is open) mousebutton on the texture in the side window. A new window
 appears. You can move the texture in this window with the right mouse
 button (same as if you press left+alt+right mouse button in the
 level window). You can move single points with the left button.
 With a double click with the left button you can reset the coords to
 the old coords, with a double click with left button+shift you can reset
 the coords to the standard-coords (which is one texture).
 If you want to save your changes to the current wall, press the left mouse
 button on the texture button in the side window again (if you press
 the right one, the coords will be saved to all tagged sides).
 Keys are not supported (yet).
 
Fixed bugs:
-Maybe the S3 modes are working again...
-Fixed asserting errors when inserting new things (Charles Davis & Bradley
 Schneider)
-Fixed the problem with moving the corridor (was a new one, the old
 one was fixed; this one was related to untagging edges on non-existent
 sides). Probably the problem with deleting the corridor was the same one.
 (Bradley Schneider & Zefrer)
-Rearranged the colors for the tagged&current objects. They are now drawn
 in mixture between green&blue (unfortunately a real 0,255,255 is not
 availble in the Descent palette). Furthermore the current point&edge
 are green now. (Luke Schneider)
-After "New level" the current point is now correctly initialized (myself)
-Fixed problems with "Split cube" twice in a new level. Surprisingly this
 was no problem with splitting cubes or connecting cubes but a problem
 in the initialization of a new level (needed three hours to find this
 &%$!"&% bug). (Bradley Schneider)
-Deleting a cube should now work always. (Bradley Schneider)
-The problem with tagging pnts should not appear again. I'm not sure here
 but I suppose the pointer to current point wasn't valid anymore, and the
 two problems mentioned may be related to this. (Bradley Schneider)
-Moving pnts/things is possible again. My pointer to the functions were
 messed up because of the new edge mode. Sorry. (Bradley Schneider)
-The reactor time is in seconds for Insane. The other levels are as follows:
  Trainee *3.0, Rookie *2.5, Hotshot *2.0, Ace *1.5, Insane *1.0 
 (thanks to Brian Aamot&all the others for this list)
-Deleting tagged cubes works for me...maybe this was the same problem as
 the one with deleting one cube. (Bradley Schneider)
-Moving the texture with the alt key works now as it should (no jumps
 after moving the texture with shift+alt). (Axis Experience)
-Fixed problems with entering point coordinates directly (John Ratcliff &
 Owen P Evans)
 
V2.2d-->V2.2e:
--------------

New (changed) features:
-Introduced a new type of object/mode: Edges. The current point is now fully 
 independent from the current cube and contains only the coordinate
 data of this point. The edges are the four corners of one side containing
 the lighting/uv data. 
-You can change reactor time&strength
-A new button in the side window: 'Locked'. Shows if a side is locked
 (you can still lock a side via Special Tag or alt+space in side mode). The
 uv-coords of a locked side won't be changed.
-Special tag in edge-mode tags all three edges corresponding to one point
 in the current cube. Special tag in pnt-mode tags all edges of this
 point. Special tag in side mode locks the side. In other modes
 special tag has no meaning.
-Tab is now change movemode again and turning double view on/off is now
 d instead of tab.

Bug fixes:
-Fixed a 'Floating Point Exception' in the texture mapping routines.
 I hope it is much more stable now.
-Fixed problems with moving the corridor with the mouse (it is not possible
 to 'select' the yellow corridor markers and you can now move the
 corridor markers even when they are far away)
 

V2.2c-->V2.2d:
--------------

New features:
-The RL2 files version 7 are now fully supported (so you can load DMB
 levels but not levels from the Vertigo series because you need some
 additional data (pig-files and so on) to handle this levels)
-Blinking lights are now available (if you have Descent V1.1 or better)
-You can tag single corners now with Alt+Space (in Point mode) and all
 corners with Alt+Shift+Space. Then you can change all the light values
 of the tagged corners with pressing the right mousebutton on one of
 the four light fields (which will be changed, too, of course). This
 is not the best solution but it is one I could do quickly. Maybe I will
 make an additional window for the corners but I have to think about this.

Fixed Bugs:
-Problems with crashing Devil if you turn on rendering/change display options
 without a level
-You can now click&tag pnts (it seems that I've forgotten to program this?!)
-Fixed the problem with moving the pnts the old way (with the buttons)
-Added the run.bat-File (don't know why this was not in the zip file ?)
-The message window now disappears if you press a key.
-The graphic errors if you change the current thing are fixed.
-Fixed bug with 'New level'.
-Hopefully fixed problems with the producers in Descent 1 mode.
-Fixed the problem with tagging walls.

V2.2b-->V2.2c:
--------------

New features:
-Moving yourself: I've changed the key definitions to achieve similar 
 key/mouse functions when you're moving yourself/objects. So most of you
 will probably kill me (again) because they will always press the wrong 
 key/button first but I hope you will get used to these definitions soon:
 You can move yourself if you press the right mouse button in the level
 window and hold it down (NEW):
 -If you press nothing else, you can move forward/backward and turn
  yourself around the z-axis.
 -If you press the left mouse button while you're holding down the right one
  you can turn yourself around the x/y-axis (left,right/up,down)
 -If you press shift while you're holding down the right mouse button you
  can slide right/left/up/down
 -If you press ctrl while you're holding down the right mouse button you
  will travel forward (so if you press the left mouse button, too,
  you can fly through the level)
 -If you press shift+left while you're holding down the right mouse button
  you will turn around the coord cross (if it is turned on, differs from
  pressing the left mouse button only in double view, of course)
 -It seems that ctrl+shift+left mouse button is not used ;-) but you feel
  like in a roller coaster if you try it :-).
-Clicking/Moving/Tagging an object: Press the left mouse button in the level 
 window and hold it down. You will see a white "scan circle" and in this 
 circle up to three other small purple/green circles (and if you are in 
 cube/side mode additional lines marking the cube/side). The green small 
 circle/lines mark the object which will be selected if you release the left 
 button. Of course the object nearest to the cursor will be the green one.
 You can tag the object if you press the ctrl button while you're holding
 the left button down (the tag-box is used as usual: first press ctrl and
 then the left mouse button).
 If you hold the left button down and then press the right one, too, you
 can move the object marked with the green circle in a similar manner
 like you can move yourself:
 -If you press nothing else, you can move forward/backward and turn
  yourself around the z-axis.
 -If you press the left mouse button while you're holding down the right one
  you can turn yourself around the x/y-axis (left,right/up,down)
 -If you press shift while you're holding down the right mouse button you
  can slide right/left/up/down
 If you press the ctrl-key before you press the right mouse button you will 
 move/turn all tagged objects of this mode (for this reason the ctrl
 sequences in moving yourself are the ones which make no sense for 
 object moving).
-A coord cross in the middle of the view can be turned on/off in single/double
 mode. In double mode the coord cross is at the position where the z-axis
 of the left and the right views have their intersection point.
-Tag->Tag flat sides: Tags all sides that are connected in a "flat" way
 to the current side. "Flat" means that the normal vector of the two
 sides have an angle which is not larger than the angle in the
 Internal Menu: Bitmaps&Illum.->Tag flat sides.
-The "align Bitmaps" feature can now align bitmaps in the same cube.
-The Internal Menu is somewhat reorganized
-The uvl-coords are now in the "Side" and not in the "Point" Menu. So it
 is no longer necessary to tag corners instead of points. In principle
 it is now possible to make the current point completely independent from
 the current cube but this was too much work for me in the moment...
-And last but not least: Texture mapping. There are four different
 kinds of texture mapping possible (Internal menu: Move&Display->Rendering)
 - Off: quite obvious, usual wireframe 
 - Only current cube: only the current cube is rendered.
 - On: You are beamed in the current cube and the level is displayed
    Descent like. You can fly around as you like if you leave the
    level the view is changed to "only current cube", if you enter the
    level again it is changed back. It is not that fast and it would
    be possible to optimize this a lot (especially the draw to screen
    procedure is quiet slow due to the graphics library I'm using and
    the inner loop is not Pentium-optimized at all and such stuff). I will
    focus my further work in enhancing this graphics engine and maybe I 
    will do a Devil update sometimes with a faster engine. But all in all
    it should be fast enough to have a look at the level and on a Pentium
    133 in a window not too large it should be fast enough to fly through
    the level. If you don't like the wireframe, you can turn it on/off with
    shift+tab.
  - On with collision: Same as above but now you should collide with the
    walls, so you can't leave the mine.
  The latter two modes might have a problem with recognize a collision
  with the wall (so may happen that you face a black screen). This problem
  is not a trivial one as I first thought but it hopefully will be fixed
  in one of the next versions. It doesn't happen very often but if it
  happens you can recover the correct view with ctrl+shift+space. You
  can select one of the four modes with shift+1,shift+2,shift+3,shift+4.
  Mode 3+4 only work in single view mode.
-With texture mapping it was quite obvious that my routines for
 recalculating the uv-coords of a side when a point of the side was
 moved wasn't very useful. I've changed them. 
-Moving textures: If you press alt when you're in side mode you can move
 the texture on the side instead of the side itself (of course you should
 have turned one of the texture mapping modes on if you do this otherwise
 you will see nothing).
-DMB 2 levels can now be read (but be careful: I've not programmed the
 support for the new RL2 version levels, so you will loose the data
 for the blinking lights and maybe some other things but I hope it will
 work). 
 
Fixed bugs:
-Hopefully avoided some assert-errors from insert.c line 62
-Fixed some problems with renumbering the cubes.
-Hopefully fixed the wrong shown lightsource file.
-"saved to descent directory" does not count as a "real" save, so there is
 now a further prompt if you leave the editor.
-Levels in D2 mode have now the ending .RL2 even if they were D1 levels when
 they were loaded.
-Messages for handling errors during loading a level are now much more
 meaningful (i.e. the number for the door not found for a specific cube
 is now the real number not 255)
-Zoom of texture list is saved 
-F5 mode is now turned off if you split a cube, so you don't get funny
 lines/FP exceptions anymore.
-Hopefully fixed the bug with non-convex cubes/connecting
-Fixed the bug with deleting tagged cubes and not deleting the tag list

