Aphex Twin is playing softly in the background. I have a large, hot coffee cup in front of me. I have gained some EXTRA concentration by meditating for an hour. I think I am just in the mood to start to explain how to use one of the most confusing utilities I have ever made. What am I refering to? The Map Editor. The command line usage of Mapeditor is 'MapEditor '. The file name must not be enclosed with quotes even in case the name had spaces - Quotes would be interpreted to be a part of the file name. If no map file name is given, the editor starts with a blank map, relying on default texture names and maze attributes. Let's take a look at how the Wolf3D's screen is produced. A set of rays is casted from the player's location along the map. Whenever this cast enters a new square in the map, the contents of that map square is checked. If there is a wall blocking the path of the ray, the wall block will be viewed on screen. The raycaster returns the distance to a wall in special "iterative units" that equals to the distance the ray travelled. After the distance to the wall has been retrieved, a piece of the vision can be rendered; a piece of one pixel width. This piece is filled with a wall according the distance and scaling formulas. I won't go any more detailed; this is the basis of a Wolfenstein 3D engine. This basic method forces all the walls to keep a steady 90 degrees angle with each other. Now, the map of my Wolf3D consists of two separate maps that allow some extensions. Why 2 maps? Well, what was left out in the previous explanation was that how the engine knows which texture it should display. This is read from the map, obviously. So, when a ray hits a block, the algorithm checks what is the ID of the block the ray hit and sets up the texture according to that? Yes and no. Yes, as it is basically that way. But there is an extension. I set up one texture ID to work as a pointer to the 2nd map. This 2nd map contains more texture settings, specially set so that when the special map texture ID (it is called "pseudo" or "special" or "#" -texture from here onwards) is hit by a ray, the engine checks which side on the #-block the ray hit the block from, and takes the texture to be displayed from the 2nd map so, that the texture on 2nd map that is BELOW the #-block is viewed on the south side, the 2nd map texture LEFT to #-block is viewed on the west side and so on. If you didn't get it, read this again and/or experiment yourself. It is very simple actually, but hellishly difficult to explain clearly. Now to the editing. You should see orange/gray #-mark at the beginning (and a map if you use WMAP script with a map). Press right arrow key, and the # turns to S. Also notice that the lower right window changed to say 'sky'. Press right again, and you'll see the word 'sky' to change to a texture (WOW!). If you wash your glasses and look a little more clearly, little above this window is the currently used texture's number, and it changes every time you press the right arrow key (oh, did you SURELY keep up with me?). The F1-F10 -keys are used to shortly select one texture of the 8 wall textures available, the arrow keys can also be used for that but it is slower to flip thru all those textures.. I am sure you understand. Let's move on. Grab your mouse (Of course the one on the table -Jokebot) and twist it a little. You will see some changes in the biggest window - the gray # or S or whatever square it now is, started shaking around. If you didn't get too excited, you realized that this gray thing works as your mouse pointer. Left mouse button is used to draw, right is used to clear up, as in DPaint and maaany many other utils. Now, let's assume you have just had an epilepsy attack and you see something like this on the screen's big window after you again regain the conscious consciousness: S################################# ;0 is the first (F2) square ; font has S 3 ;no really suitable char to express it. S p # S # S 0000000000000000000 # S # S # S###############################2# Let's take a look at at what you see: S= sky texture set in the left #= pseudo texture, and lots of it p= player starting location (placed by pressing 'p') 0= the first texture square that can be awaken with F2. 2= the third texture square that can be awaken with F4. 3= the fourth texture square that can be awaken with F5. Let's take another look to see what the 2nd map contains: Hit TAB key to enter the second map mode. .################################# ; · is the small rectangle in the .11111111111111111111111111111111· ;editor's screen . p 3# . 3# . ··················· 3# . 3# .22222222222222222222222222222223# .###############################·# According to this, the uppest wall consists entirely of the second wall texture (0 is the first, 1 is the second etc.). The rightmost would be of number four and the one most below would be of number 2. The walls that have no meaning for the 2nd map mode transform to '·'. Only the #s remain intact. What APPEARS around those #'s is the second map information that the engine uses to define what the #-block has on each side of it. You should now be able to generate any kind of map, or at least you will be with just a little practise. Let's take a look at some more keys: Q quits and saves the current map. ESC escapes without saving. The map file written by the editor will be called T:MapEditor.out, so the overwriting of older map file is not possible without wise scripts or intentions to overwrite. This is just a security question. S - stands for Select. This allows you to pick an other texture instead of the default one. A reqtools filerequester will appear, and you are supposed to pick the file with it. Only names the length of (combined name/path) of 32 chars or less are allowed. Longer names overwrite something essential. The texture should be 128x128x8 iff brush. A wall texture is most likely a texture below 14kB length. F - stands for Floor select. This allows you to pick another Floor Texture. This file is prompted likewise. Expected size is 256x256x8 iff brush - over 20 kB long file is quite likely a floor/ceiling texture. C - stands for Ceiling select. Similar to the floor select. B - stands for Background select. This allows you to select another Background texture file, yet only one exsting with the archive. Do not change the mountains.chraw to anything else. A - stands for Attributes. With this you can edit maze's attributes, like the height, ceiling/sky enability (and nothing more). Do not even try the other ones, the brightness/fadespeed values are still constants. This is another set of "friendly" reqtools requesters. That's it. Have fun editing maps ;) -STL