home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1997 June / CDW0697.iso / Quake / NIVELES / QMAP25.ZIP / EXPLORER.TXT < prev    next >
Encoding:
Text File  |  1996-11-20  |  29.6 KB  |  562 lines

  1.                       ---===  QUAKEMAP  ===---        for Windows 95
  2.  
  3. Version 2.3
  4.  
  5. This is the documentation for the QuakeMap Explorer only.
  6. See EDITOR.TXT for documentation about the QuakeMap Editor.
  7.  
  8.  
  9. ******** What is QuakeMap Explorer ? ******************************************
  10.  
  11.   QuakeMap is centered on a proprietary file format, near than PAK files,
  12.   which allows me to store some information about maps that couldn't be
  13.   stored in a standard MAP file, like grouped polyhedrons.
  14.  
  15.   More interestingly, we can now regroup several other datas than maps
  16.   in this proprietary file format. For example : new textures, or new
  17.   files to replace or complete ID standard files, like sound and model
  18.   files.
  19.  
  20.   Consider this : large maps often require A LOT of computing power, a
  21.   lot of time, and a lot of RAM to compile (I've "only" 16Mb - and I'm
  22.   having trouble compiling some large maps). That's why it would be
  23.   useful to distribute BSPs instead of (or with) MAPs. But BSPs are
  24.   large files, and it is illegal to distribute them, anyway, because it
  25.   usually contains some of ID's original textures. So I added the
  26.   ability to import BSP files, textures removed, in QuakeMap's files.
  27.   Not only does this reduce size, it makes the distribution of BSPs
  28.   legal. Then, on another computer, QuakeMap reconstructs the original
  29.   BSP, using textures from the local computer's PAK (or unPAKed) files.
  30.  
  31.   I have even included parts of the REACC program I made and distributed
  32.   (see DEACC & REACC). REACC is a compiler like QCC, which I wrote
  33.   without knowing that ID would release QCC. The purpose of
  34.   including REACC into QuakeMap is double.
  35.                                                 First, it will provide
  36.   another way to distribute QuakeC patches - a better way, because you
  37.   will distribute only portions of files that changed, not full files
  38.   like now. The interest of it is to allow you to use several patches at
  39.   once. This is usually not easy with the current method of distributing
  40.   complete modified files : to play with several of the patches,
  41.   you have to figure out what really changed in which file, and regroup
  42.   yourself the changes. QuakeMap's integrated patch compiler should be
  43.   able to deal with multiple patches from multiple sources.
  44.  
  45.   Second, it will allow us to associate QuakeC patches with particular
  46.   levels. We'll then be able to build level-specific programs, like we
  47.   did in Hexen. For example, we could do something like Hexen's first
  48.   level, where there are walls that make a half turn, fire a few fireballs
  49.   on you, and then rotate back in place. This could be done in a standard
  50.   QuakeC patch, but associating this patch with the level make it far
  51.   easier to use, and prevent oneself from playing the level without the
  52.   patch or vice-versa.
  53.                 
  54.   It also provides a consistent way of assigning actions with new keys -
  55.   you know, "impulse" commands. You'll be shown a list of new actions the
  56.   installed patches provides, and you'll have to choose a key for each
  57.   of them. QuakeMap will then automatically remap impulse numbers as
  58.   needed (useful for several patches from serveral sources) and
  59.   write the "autoexec.cfg" to bind them with the keys you choosen.
  60.  
  61.   I also distribute a light-weight DOS run-time, easily distributable
  62.   and configurable, which can expand files of the proprietary file
  63.   format into playable files, with the correct directory structure, add
  64.   textures to BSPs, as well as compiling QC patches and prompting for
  65.   key assignment. With this, you are able to distribute .qme files without
  66.   having to worry about whether the other people have QuakeMap or not. This
  67.   utility also lets anyone extract .map files out of .qme files. Source code
  68.   available.
  69.  
  70.  
  71. ******** Introduction *********************************************************
  72.  
  73. The screen you see when you first open Quake Map is this Quake
  74. Map Explorer.  If you open a .qme file, the left portion of the
  75. screen will display the entries (such as text descriptions,
  76. patches, etc.) that are included.
  77.  
  78. When you click on an entry, you see its contents in the right portion
  79. of the screen. The exact contents of each entry depends on which type
  80. the entry is : map, code patch, etc. Each entry type has an associated
  81. icon to help distinguish between them. You can add, remove, rename, cut
  82. and paste entries. To add a new entry, choose the entry type in the
  83. "New" menu. If no entry is selected, the right portion of the screen
  84. displays a big, fat "GO!" button. If you click on it, you tell
  85. QuakeMap that you want to play Quake with the opened file. It will
  86. process each entry, i.e. extract maps, compile code, etc, and launch
  87. Quake. It is the easier way to try playing with a .qme file.
  88.  
  89. The .qme file actually contains *everything* included in it : the description,
  90. the map (not stored like a standard ".map", but in a binary format that allows
  91. hierarchy and that is much faster to load in the editor than a .map file), etc.
  92. Even the QuakeC patches are stored in the .qme. To distribute your creations,
  93. you only have to distribute the .qme file.
  94.  
  95. So this explorer can also be a Quake front-end, for loading desired
  96. patches and maps. If you make a .qme file and give it to somebody else, this
  97. person *must* have QuakeMap in order to use it. But if he loads your .qme in
  98. QuakeMap, the first thing he will see is the big "GO !" button. By just pressing
  99. this button, he tolds QuakeMap that he would like to play with this .qme. So
  100. QuakeMap extracts each map as a separate ".map" file, looks for the textures
  101. that are used in these maps, extract them in the temporary "gfx/quakemap.wad"
  102. from the .pak files; QuakeMap then regroups the QuakeC patches and compile them
  103. in a single pass (regrouped because the compiler is slow at loading and
  104. analysing the original "progs.dat" file, which will be modified). When all this
  105. is done, QuakeMap launches QBSP, VIS and LIGHT on the extracted .map files, and
  106. launches Quake, with a command-line parameter that makes Quake automatically
  107. load the first map in the .qme !
  108.  
  109. Other people need to have QuakeMap in order to use your .qme files, but that
  110. will change soon, with the introduction of the DOS run-time. You will then only
  111. have to distribute the .qme file and, if necessary, the small DOS-based program
  112. that allows anyone to run Quake with your .qme, as well as extract entries
  113. (extract maps as standard .map files, for example).
  114.  
  115. QuakeMap works by creating a parallel directory structure in the Quake
  116. directory, named QMapExec. When it runs Quake, it gives it the "-game QMapExec"
  117. parameter, and so Quake looks in the QMapExec directory and sub-directories
  118. first. If you want to play with a .qme, every files are extracted in the
  119. appropriate subdirectories : maps are stored in the directory "QMapExec\maps",
  120. for example. You should consider this QMapExec directory as temporary only,
  121. and never put anything by yourself there. It is totally cleared every time you
  122. click on the "GO!" button.
  123.  
  124. There is a Wizard to help you to import external files into QuakeMap, in order
  125. to use them with QuakeMap. For example, if you found a cool new monster on the
  126. Internet, it will probably come with an .mdl file (the monster's model), a .qc
  127. file (the monster's AI), and maybe .wav files (sounds).  This wizard will help
  128. you to put all this in a QuakeMap file (.qme), so that you can put this new
  129. monster in your maps. Choose 'New' 'Import Wizard' to open the wizard.
  130.  
  131.  
  132. ******** Entry types **********************************************************
  133.  
  134.  
  135.  ** Descriptions **
  136.  
  137. The first type of entry that may be put in a .qme file is "description". It is
  138. used to write down standard description texts, like the ones you find on the
  139. Internet, associated with maps, and telling you who is the author, giving you
  140. a description of the map, etc.
  141.  
  142. You enter text in a "description" entry by using the forms you see in the right
  143. portion of the screen. Note that you can enter text formatting for the
  144. description. Of course, text attributes will not be used while producting the
  145. .txt file, but QuakeMap stores them and other people having QuakeMap will see
  146. them.
  147.  
  148. To build a .txt file out of a description, choose "export as .txt" in the
  149. "Description" menu.
  150.  
  151. Descriptions are not extracted automatically when you click on the "GO!"
  152. button.
  153.  
  154.  
  155.  ** Maps **
  156.  
  157. Entries of type "map" are... well, maps. They contains maps, but not stored in
  158. .map file format; instead, they are stored as a binary format that allows to
  159. save information like the hierarchy of groups and sub-groups. When you click on
  160. a "map" entry, you see a preview of the map at the right. To edit the map, you
  161. have to open the QuakeMap Editor by clicking on the corresponding button.
  162.  
  163. You can give every map a DOS filename (8 caracters maximum). Type it under
  164. "File name after extraction". This filename does not depend on the name of the
  165. entry itself (remember, you can give any entry any name). The DOS filename will
  166. be used when extracting the map as a .map file, and so it is the name you must
  167. type in the Quake console if you want to play with it later. For example, if
  168. you give a map the name "MyTest", it will be extracted as "MyTest.map", rebuilt by
  169. QBSP/VIS/LIGHT into "MyTest.bsp", and you will be able to play with it by typing,
  170. in the Quake console, "MAP MYTEST".
  171.  
  172. Note that once the QuakeMap Editor is opened, you can choose, in the File menu,
  173. either "export as map" to save your map in a standard .map file, or "Save in
  174. new entry" to save your map in a new entry of the .qme file. To store the map
  175. in a new entry of another .qme file, you have to save it in a new entry in the
  176. current .qme file and use cut and paste to move it in the other .qme file.
  177.  
  178. Maps are extracted automatically when you click on the "GO!" button, and
  179. QBSP, VIS and LIGHT are launched. Quake is run by using a "+map xxx"
  180. command-line parameter to automatically load and play the first map found
  181. in the .qme file.
  182.  
  183. Entries of type "map" may also be used as models for new entities, or to define
  184. the shape of new entities that don't move, like health boxes, but that you made
  185. yourself, along with their behavior. See the example discussion below.
  186.  
  187.  
  188.  ** New entities **
  189.  
  190. Well, this is not a real entity type ; it is in fact just a special Map entity.
  191. See below, in ยบ Examples, for more informations about it.
  192.  
  193.  
  194.  ** QuakeC **
  195.  
  196. These entities holds QuakeC code patches. You can write patches in standard
  197. QuakeC. However, they are a few things you must be aware of :
  198.  
  199.   - The integrated QC compiler is a patch compiler - that is, it takes the
  200.     original Progs.dat file, modifies it, and writes a new one. You don't
  201.     have to recompile all the .qc files released by id Software. Anyway,
  202.     you couldn't, because this compiler does not support some operations
  203.     that are essential to produce a Progs.dat but that make no sense for
  204.     patches, like modifying the system variables.
  205.  
  206.   - Unlike what you do usually with the .qc files, you should not distribute
  207.     a whole, modified .qc file as a patch. You should only write a modified
  208.     version of one or a few functions - only the ones that needs changes,
  209.     and not a whole .qc file !
  210.  
  211.   - To let the user play with multiple patches from multiple sources, you
  212.     should, whenever possible, modify functions by only adding something
  213.     at its begin or at its end. This is done trough the special "inherited"
  214.     variable, which contains the address of the original function when you
  215.     are overwriting one. See Rockets.qme for examples of this.
  216.  
  217.   - A few keywords have been added to easily bind actions with keys. You
  218.     can bind the execution of a function to a key. In standard ways, you
  219.     would have to modify the W_WeaponFrame function to add support for your
  220.     new function, through an IMPULSE command. This is automated with
  221.     QuakeMap : IMPULSE numbers are choosen automatically, and W_WeaponFrame
  222.     is modified in the background. See Radar.qme and BindTest.qme for
  223.     examples of this.
  224.  
  225.   - When you run a QuakeC patch that contains "bind" commands, you will be
  226.     asked to choose which key you want to bind to the actions. This lets
  227.     the user of your .qme files know which special actions your patch
  228.     provides, and see and if he wants change the keys.
  229.  
  230.  
  231.  ** Compiled BSP **
  232.  
  233. You can include a compiled map into your .qme file. This enlarge its size,
  234. of course, but it lets other users play your maps without having to run
  235. QBSP/VIS/LIGHT first. For large maps, this may be a great time saving for
  236. them, especially if their computer is not too powerful or has not enough RAM
  237. to compile large maps.
  238.  
  239. Like maps, you must give every included .bsp a DOS filename that will be used
  240. for extraction. Note that you can distribute both the map and the
  241. corresponding, precomputed .bsp file in the same .qme file. As long as their
  242. DOS filenames are the same, the -bsp file is considered to be the compiled
  243. version of the map, and the map is not extracted and recompiled when you click
  244. on the "GO!" button - only the .bsp is.
  245.  
  246. For room saving as well as for legal concerns, textures will be removed from
  247. the included .bsp files, and restored when the .bsp needs to be extracted.
  248. Here are some explanations about this process.
  249.  
  250. In fact, if you remove textures from a standard .bsp file, then it is no longer
  251. a standard .bsp file. What QuakeMap does, is allowing you to store into .qme
  252. files a copy of parts of a .bsp. A standard .bsp file holds a predefined number
  253. of entries - you may think of them like .pak files, but with no explicit
  254. filename. The first entry is the Entities data, the second entry is Planes data,
  255. the third one is Textures, and so on. So what QuakeMap does is reading each of
  256. the .bsp entries, and storing them in the .qme, except the Textures entry, which
  257. is only stored in the .qme as a list of texture names, instead of actual texture
  258. images. When you use QuakeMap to extract the integrated .bsp, it does the
  259. opposite job and uses texture names - and the original textures found in the
  260. .pak files - to rebuild a standard .bsp.
  261.  
  262. Q: Could there be a problem if a level is created with some textures removed
  263.    from a .bsp/.pak that the new user does not have ?
  264.  
  265. The textures you used from a .bsp from ID Software is supposed to be available
  266. on every machine running Quake. The only problem would be if you used textures
  267. that are not available in the Shareware version of Quake, but you are not
  268. supposed to do a Quake editor that works well with the Shareware version, are
  269. you ?  ,-)   Anyway, ID removed support for modified Quake in the Shareware
  270. version.
  271.  
  272. Now, if you used personal textures you made yourself or you got from elsewhere,
  273. QuakeMap will also import them in another entry of type "New textures". When it
  274. must rebuild the .bsp, not only will it look for textures in id's .bsp's, but
  275. also in the "New textures" entry. This way, you can distribute your .qme files
  276. without trouble - non-standard textures are systematically be stored in the
  277. file. The only problems are caused from different textures having the same name.
  278. During the operation of importing and exporting back the .bsp, QuakeMap could
  279. use the wrong texture. Try to avoid this case.
  280.  
  281.  
  282.  ** New textures **
  283.  
  284. Entries of this type contain your personal textures. If you are already using
  285. your own textures with other map editors, you have your texture set in .wad
  286. files. QuakeMap allows you to import textures from .wad files as well as .bmp's
  287. or even compiled .bsp's.
  288.  
  289. Click on the "View/Edit" button to open the texture browser. There, with the
  290. help of the right mouse button, you can import and export textures from/to
  291. .wad's, .bsp's or .bmp's, as well as the clipboard. If you make your own new
  292. textures with a picture editor, save them as .bmp's and import them back in
  293. QuakeMap - or use copy and paste. Width and height must be a multiple of 16.
  294. The colors will be converted to fit the color palette of Quake.
  295.  
  296. You probably know that Quake uses 4 images for each texture : besides the
  297. normal one, there is a another image, twice as small as the first one, a 3rd,
  298. 1/4 of the original size, and a 4th, 1/8 of the original size. This helps
  299. prevent aliasing effects. QuakeMap will automatically compute these scaled-down
  300. images, by computing means for each pixel. However, you can also import and
  301. export .bmp's which contains all 4 images. Such images must be disposed as
  302. follow in the bitmap :
  303.  
  304.  +---------------+-------+---+-+ 1/8
  305.  |               |       |1/4+-+
  306.  |               |  1/2  +---+ |
  307.  |  normal       |       |     |
  308.  |  image        +-------+     |
  309.  |               |             |
  310.  |               |             |
  311.  |               |    black    |
  312.  +---------------+-------------+
  313.  
  314. If QuakeMap detects that your .bmp contains a single image, it computes the
  315. scaled-down ones; if it detects that the scaled-down textures are present, they
  316. are directly used.
  317.  
  318. The process of color conversion consists in assigning for each pixel the nearest
  319. color available in the Quake palette. Be careful of some color effets : some
  320. colors, like light green, can't be rendered, because the palette of Quake
  321. doesn't contain any light green entry. Also note that some colors look strange
  322. in fully lighted Quake maps, because Quake laks lighter colors. The navy blue,
  323. for example, will be light gray in too light maps. You can see this effect in
  324. the original levels of Quake, in the Well of Wishes, for example : the blue
  325. Dopefish background becomes light gray if you come near with a powerup that make
  326. you shine. Don't blame QuakeMap as I first did.
  327.  
  328. In the texture browser, your textures are displayed in a new 'tab' whose name
  329. is the name you gave to the entry in QuakeMap Explorer. This new 'tab' is
  330. available for you to use your new textures in your maps.
  331.  
  332. Textures are stored in the .qme file itself, so they can make it grow a lot.
  333. The textures you imported are only available for maps in the same .qme file, so
  334. you would have to duplicate this entry for each .qme file. File Links can help
  335. to solve this problem; see below.
  336.  
  337.  
  338.  ** Imported file **
  339.  
  340. Imported files are files that are stored directly in the .qme file, ready to
  341. be extracted in a particular sub-directory. For example, to include a new
  342. sound in your .qme, all you have to do is to make a new entry and importing
  343. the .wav file in it. Like for maps and compiled BSPs, you have to give the
  344. DOS filename for this file, but this time with the path. For example, sounds
  345. must be stored in the "sounds/" subdirectory, so you would give your file the
  346. DOS filename : "sounds\mysound.wav". See Radar.qme for this example.
  347.  
  348. Imported files are automatically extracted when you click on the "GO!" button.
  349.  
  350.  
  351.  ** Links to id's textures **
  352.  
  353. This type of entry is not available to you. I used it in file Models.qme to
  354. make links to id's original textures and organize them into groups. You can't
  355. change this group organization, unless you like big text lists. See by yourself.
  356.  
  357.  
  358.  ** File Links **
  359.  
  360. This type of entry allows you to reuse your preffered entries from several
  361. .qme's. File Links are just a logical link to another file, whose entries will
  362. be processed as if they really where in the current file. You can put your own
  363. textures, code patches, motionless entities (like health boxes), and so on, in
  364. a .qme file used as model, and link your other .qme's to it. See examples below.
  365.  
  366. Be careful that the linked file is NOT physically included in the .qme file -
  367. it is the only thing that is not when you make a new entry. So you have to
  368. distribute the linked .qme files together when you plan to distribute one.
  369.  
  370.  
  371. ******** Examples *************************************************************
  372.  
  373. In this section, I will describe the examples distributed with QuakeMap, as well
  374. as have a look at the particular Models.qme file.
  375.  
  376.  
  377.  ** Radar.qme **
  378.  
  379. This is a QuakeC patch for 1.01 Quake from Id Software, made by Francesco
  380. Ferrara. It simply signal vicinity of enemy with a dark sound. The sound is a
  381. standard wave file (.wav), 11 KHz, 8 bits, mono. It is extracted to the
  382. "QMapExec\sounds\" sub-directory when you run Quake, where it can be found by
  383. Quake's "precache_sound" routine.
  384.  
  385. The QuakeC code is in the "Radar code" entry. W_Precache() is called at the
  386. start of a map, to allow precaching of sounds and other things. I show there
  387. how to add a behavior to a function without loosing the original behavior :
  388. simply call "inherited();". Binding keys to the activation and deactivation of
  389. the radar is easy : all you have to write is a "bind" command, followed by
  390. the default key name, the description, and the function to call when the key
  391. is pressed. If the function is defined as "void()", it will be called whenever
  392. you press the key; if it is defined as "void(float xxx)", it will also be called
  393. when you release the key. In the latter case, the float parameter will be 1 when
  394. the key is pressed and 0 when it is released. You can also write a string
  395. instead of a function name after the "bind" command : this will bind the key to
  396. a Quake's console command. Try this :
  397.  
  398.   bind "F", "Full ammo", "impulse 9"
  399.  
  400. There is another special command : "autoexec". It just writes something in the
  401. .cfg file that will be executed at Quake start-up. Try this :
  402.  
  403.   bind "F", "Flash screen when pressed and call MyFunc() when released", "+flash"
  404.   autoexec "alias +flash bf"
  405.   autoexec "alias -flash \q", MyFunc, "\q"     //      \q means quote
  406.  
  407.  
  408.  ** Rockets.qme **
  409.  
  410. This file contains two QuakeC examples, heavily commented. Look by yourself.
  411.  
  412.  
  413.  ** ExploWal.qme **
  414.  
  415. Explodable wall, to be reused in your maps. See explanations below about
  416. BspItems.qme and use the sample ExpWTest.qme to see how to add
  417. explodable walls in your own levels.
  418.  
  419.  
  420.  ** BspItems.qme **
  421.  
  422. This demonstrates how to create new fixed entities, like health boxes. The file
  423. BspItems.qme itself is not supposed to be run. It only contains the definitions
  424. for these new boxes, with I called MyCrates. The file to run is
  425. BspTest.qme, which contains only a File Link to BspItems.qme and a test
  426. map to show the result. Try running BspTest to see how it looks. If you
  427. want to use MyCrates in your levels, just make a File Link to BspItems.qme from
  428. your .qme file.
  429.  
  430. Here is how MyCrates are made. The first entry in BspItems.qme is the 3D shape
  431. of MyCrates. As you can see, it is no real map, but instead only a single
  432. polyhedron with a Duplicator. I needed to put the polyhedron and the Duplicator
  433. in a group, named "Crate", because if I don't, the Duplicator duplicates
  434. "worldspawn" itself, and you get three worldspawns ! This is not allowed, and
  435. if you try to, QuakeMap will protest. Let's come back to MyCrate. The crate
  436. itself uses personal textures. They are stored in entry "Textures for MyCrate".
  437.  
  438. The QuakeC code is the link between the entities, found in maps as
  439. "item_mycrate", and the .bsp produced by "MyCrate 3D model", as well as the
  440. behavior for MyCrate.
  441.  
  442. The last entry is, once more, not a real map, but stores the "item_mycrate"
  443. definition so that QuakeMap knows that it can let the user insert such entities
  444. in maps. As you can see when you click on this entry, "This stores models for
  445. new entities". To tell QuakeMap that a pseudo-map stores models for new
  446. entities, check "Stores models" in the "Map" menu or in the entry's
  447. context-menu.
  448.  
  449. The map itself only contains a group named "My Crate" and an "item_mycrate"
  450. entity. The group is in fact "worldspawn", but has been renamed to something
  451. else and its icon has been changed. The "item_mycrate" is also special because
  452. its classname is, in fact, "item_mycrate             A new crate". This long
  453. name is only the description of the item. The real classname has been set in
  454. the "_new" Specific. More about this two paragraphs later.
  455.  
  456.  
  457.  ** The standard Models.qme file **
  458.  
  459. This file is required for QuakeMap to run. It contains several important
  460. informations, like models for making new entries, the list of the new
  461. entities that you may put in your maps, the links to id's textures, etc.
  462.  
  463. Note that you can't directly open this file. If you try to, only a copy will be
  464. opened, so that the original file is always accessible for QuakeMap. You can,
  465. however, make changes to the copy and then save back over the previous
  466. Models.qme (of course, if you don't have QuakeMap's .zip file any more, I
  467. recommend making a backup of the original Models.qme first).
  468.  
  469. The "Model" entries are used whenever you make a new entry with the "New" menu
  470. or with the "New map" command. There is one "Model" entry for each entry type,
  471. expected "Texture Links", because you can't create new texture links. You can
  472. change them to change, for example, what your new maps look like, or to
  473. automatically include your name in the "author" field of Descriptions.
  474.  
  475. This file contains a lot of entries besides the "Model" ones. They are three
  476. map that are designated as "Stores models for new entities", which contains
  477. exactly what appear in the "New..." window when you want to add something to
  478. your map. More about this in next paragraph.
  479.  
  480. The last 17 entries are the links to id's original textures. They are stored in
  481. the text format you see when you click on one of them. You can modify them, but
  482. be careful to respect the format (texturename=filename) and not enter filenames
  483. that doesn't exist.
  484.  
  485.  
  486.  ** Models for new entities **
  487.  
  488. The list you see in the "New..." window, when you want to add a new entity or
  489. polyhedron to your level, is build by putting together every map that has been
  490. tagged "Stores models". You can put this tag by choosing "Stores models" in the
  491. "Map" menu. Such maps are no real maps - QuakeMap will never try to extract them
  492. for being built and played in. Try opening entry "New entities" in file
  493. Models.qme.
  494.  
  495. The top group, which is usually "worldspawn", has been renamed to something more
  496. appropriated, and its icon has been changed. I recommend that you always change
  497. the icon of the top group to this "New folder" icon. If you created the list
  498. with the menu command 'New' 'New entities', this change has already been made
  499. for you. You can change an icon by picking another one in the list that appears
  500. below the Specifics. You can add your own icons.
  501.  
  502. Now, open the sub-groups and note that the classname, along with the entity
  503. description, is a single text - just try to adjust spaces so that it looks good.
  504. To be exact, you can put whatever you like as a classname : it won't be used at
  505. all when you will choose an entity to add it to one of your map. Everything that
  506. is "addable" - i.e. everything that can be copied into your map by double-
  507. clicking on it in the "New..." window - must have a "_new" Specific. This
  508. Specific not only tells QuakeMap that the entity is "addable", but also specifies
  509. the real classname to give to it. I know this sounds strange, but it allowed me
  510. to make whole groups addable, like the teleporters. There is a Wizard to help you
  511. set the various Specifics for addable things; click on 'New entity Wizard'.
  512.  
  513. Finally, have a look at entry "New polyhedrons". As you know, polyhedrons don't
  514. appear in the entity list - at least not individually. This means that I had to
  515. use a trick to allow you to see and select the simpler polyhedrons, like the
  516. cube, wall 1, etc. In fact, what you see are just groups with a special icons,
  517. like the top group itself. Try clicking on "Cube". You will see its Specifics :
  518. "_icon 3" to give it the icon of a cube; there is a "_new" Specific, like
  519. everything addable, but it is a bit special - it says "*". This is a trick to
  520. tell QuakeMap to remove the group when you try to add it to your map, and keep
  521. only its sub-items. The "Cube" group has a single sub-item, the cubic polyhedron.
  522. This is how it works. There is also another Specific, "_texture". It tells
  523. QuakeMap that this group holds polyhedrons with user-definable texture. The
  524. Specific "_texture" tells "clip" : it means that every time QuakeMap finds a
  525. texture named "clip" in the sub-items of the group, it will change it with the
  526. texture choosen at the bottom of the "New..." window. If you have a look at the
  527. map, you will see that all the cube's sides use the texture "clip".
  528.  
  529. The ability to set a particular texture name to replace has been used to make
  530. teleporters. Their frame has a user-definable texture, so their groups hold
  531. the Specific "_texture" with the name of the texture that where originally used
  532. for the frame of the teleporter. But the interior of the teleporter must always
  533. has texture "*teleport", and so won't be replaced.
  534.  
  535. All this is a bit complicated but powerful. It allows you to make your own
  536. "New..." lists, as shown in BspItems.qme. If you open BspTest.qme, and
  537. then its single map, you will see that the "New..." window has two more lines,
  538. holding the new "item_mycrate". This is taken from the last entry of the linked
  539. file BspItems.qme, and will be available in every .qme file that makes a link
  540. to BspItems.qme. Using the same technic, you can build your own new items and
  541. use them in all your maps.
  542.  
  543.  
  544. ******** Conclusion ***********************************************************
  545.  
  546. I hope this documentation, with the examples, should be enough for you
  547. to experiment the QuakeMap Explorer, and realize how useful it may be to
  548. work with .qme files. As I said, I hope that this file format will prove to
  549. be good for distribution also, and that it will generalize itself with the
  550. introduction of the now released DOS run-time.
  551.  
  552.  
  553. NO WARRANTIES, either expressed or implied. This software is
  554. provided "as is". Use at your own risk. The author cannot be held
  555. responsible for any damage caused to your computer or its data.
  556. Quake and all associated logo's and textures are the property of
  557. id Software.
  558.  
  559.  
  560. Author : Armin Rigo, armin.rigo@p22.gnothi.fn.alphanet.ch
  561. Comments/bug reports are welcome and encouraged.
  562.